From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Michael Shigorin To: devel-distro@lists.altlinux.org Date: Mon, 22 Nov 2021 21:45:14 +0300 Message-Id: <20211122184518.10821-1-mike@altlinux.org> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20211122182425.GH24863@imap.altlinux.org> References: <20211122182425.GH24863@imap.altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [devel-distro] =?utf-8?q?=5BPATCH_0/4=5D_archdep-filter_=D0=B8_?= =?utf-8?b?0LzQvdC+0LbQtdGB0YLQstC10L3QvdGL0LUg0LDRgNGF0LjRgtC10Lo=?= =?utf-8?b?0YLRg9GA0Ys=?= X-BeenThere: devel-distro@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: Distributions development List-Id: Distributions development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Nov 2021 18:45:29 -0000 Archived-At: List-Archive: Здравствуйте. Изначально казалось странным, что в форме pkg@arch нельзя указать как минимум несколько архитектур -- с несколькими пакетами было всё-таки неясно (хотя ситуация с libreoffice намекает, что выбор между a b c d@arch как "a b c d"@arch или "a" "b" "c" "d@arch" стоило делать в пользу первого). Ну не получилось у меня сразу сделать такую раскрывалку; собственно, сегодня тоже практически весь день и ушёл по мотивам накропанного было: -java-11-openjdk@!mipsel +java-11-openjdk@X86 +java-11-openjdk@ARM +java-11-openjdk@ppc64le +jre@mipsel +jre@E2K Но зато с предлагаемыми коммитами теперь можно так: pkg@ARCHES1,arch2 pkg@!ARCHES3,arch4 Прошу смотреть, испытывать и если всё хорошо -- забрать. Не гонял особо тщательно примерно вот такое (и не уверен, что такое надо уметь, хотя и хорошо бы для завершённости): pkg1@... pkg2@!... pkg3@... --- С переделкой же под обработку всей строки до @ как подлежащей фильтрации (на текущие pkg.in/lists/ это не окажет какого-либо влияния, я проверил, что '^[^#].* .*@' там отсутствуют) застрял вот на чём (и это противоречит той "завершённости", поскольку выбирает другую): --- bin/archdep-filter 2021-11-22 21:19:00.169564135 +0300 +++ bin/archdep-filter2 2021-11-22 21:19:46.657753727 +0300 @@ -36,13 +36,14 @@ cat ${f:+"$f"} | sed -r ':loop; s/^((([^@]+@!)[^,]+)+),([a-zA-Z0-9_]+)/\1@!\4/; t loop' | sed -r ':loop; s/^((([^@]+@)[^,]+)+),([a-zA-Z0-9_]+)/\1\n\3\4/; t loop' | -sed -rn "s/\<([^@ ]*)\>|\<([^@ ]*)@$A\>[^ ]*\>/\1\2/pg" | -sed -rn "s/\<([^@ ]*)\>|\<[^@ ]*@\!$A\>[^ ]*\> */\1/pg" | -sed -r "s/\<([^@ ]*)@IA32\>/\1@i586 i586-\1@x86_64/g" | -sed -rn "s/\<([^@ ]*)\>|\<([^@ ]*)@$a\>[^ ]*\>/\1\2/pg" | -sed -rn "s/\<([^@ ]*)\>|\<[^ ]*@\!$a\>[^ ]*\> */\1/pg" | -sed -r "s/\<([^@ ]*)@\![^ ]+\>/\1/g" | -sed -r "s/\<([^@ ]*)@[^@ ]+\> *//g" | +sed -rn "s/\<([^@]*)\>|\<([^@]*)@$A\>[^ ]*\>/\1\2/pg" | +sed -rn "s/\<([^@]*)\>|\<[^@]*@\!$A\>[^ ]*\> */\1/pg" | +tee /dev/stderr | +sed -r "s/\<([^@]*)@IA32\>/\1@i586 i586-\1@x86_64/g" | +sed -rn "s/\<([^@]*)\>|\<([^@]*)@$a\>[^ ]*\>/\1\2/pg" | +sed -rn "s/\<([^@]*)\>|\<[^ ]*@\!$a\>[^ ]*\> */\1/pg" | +sed -r "s/\<([^@]*)@\![^ ]+\>/\1/g" | +sed -r "s/\<([^@]*)@[^@]+\> *//g" | sed -r "s/^ +//;s/ +$//;/^$/d" | if [ -n "$f" ]; then cat > "$t" && mv "$t" "$f" $ echo -e 'a_b c d@!X86,aarch64' | sh bin/archdep-filter2 -a aarch64 a_b c d@!X86@!aarch64 a_b c d@! $ echo -e 'a_b c d@!X86,aarch64' | sh bin/archdep-filter2 -a aarch64 >/dev/null a_b c d@!X86@!aarch64 Бишь где-то лишний маркер "@!" остаётся. Но сегодня уже никакой возможности это добивать нет. Michael Shigorin (4): bin/archdep-filter: implement multi-matching bin/archdep-filter: implement multi-!matching too bin/archdep-filter: cosmetic cleanups bin/archdep-filter: a debugging note bin/archdep-filter | 20 +++++++++++++------- doc/archdep.txt | 6 ++++++ 2 files changed, 19 insertions(+), 7 deletions(-) -- 2.33.0