From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ya.ru; s=mail; t=1638174085; bh=8YtSn1WOYOAoI2tQCWq/t1jLuiCuP6Fc9OP6mnq5w7A=; h=In-Reply-To:From:Subject:References:Date:Message-ID:To; b=CKxqrPDqRkH/q0zSHxExO0C1XsqY0Kx+0ERwvvCmwJ22rmfDXMcnT1CQHBrq8sJIa DItSWeAcGHcWNG4NlQJYgiGxfKL4aZm8RjoBCmajenIj21OzyR+8xW4umfTaO3qDQo BJurtjWJ2OlX7Cbww6KSsrr4TN1ss9iTnUGJRZ2Y= Authentication-Results: vla5-55f9a0bd6174.qloud-c.yandex.net; dkim=pass header.i=@ya.ru X-Yandex-Fwd: 2 Message-ID: Date: Mon, 29 Nov 2021 15:21:24 +0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Content-Language: ru To: devel-distro@lists.altlinux.org References: <20211122182425.GH24863@imap.altlinux.org> <20211122184518.10821-1-mike@altlinux.org> From: =?UTF-8?B?0JDQvdGC0L7QvSDQnNC40LTRjtC60L7Qsg==?= In-Reply-To: <20211122184518.10821-1-mike@altlinux.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: Re: [devel-distro] =?utf-8?q?=5BPATCH_0/4=5D_archdep-filter_=D0=B8_?= =?utf-8?b?0LzQvdC+0LbQtdGB0YLQstC10L3QvdGL0LUg0LDRgNGF0LjRgtC10LrRgtGD?= =?utf-8?b?0YDRiw==?= 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, 29 Nov 2021 08:21:31 -0000 Archived-At: List-Archive: 23.11.2021 01:45, Michael Shigorin пишет: > Здравствуйте. > Изначально казалось странным, что в форме 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(-) > -- С уважением, Антон Мидюков