Your message dated Wed, 24 May 2023 16:14:02 +0200 with message-id <440f93c3-69cf-a151-b1cd-c9ceb4fb9e6d@debian.org> and subject line Re: Bug#1035745: unblock: dash/0.5.12-4 (preapproval) has caused the Debian Bug report #1035745, regarding unblock: dash/0.5.12-4 (preapproval) to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 1035745: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1035745 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: unblock: dash/0.5.12-4 (preapproval)
- From: Luca Boccassi <bluca@debian.org>
- Date: Mon, 08 May 2023 16:54:32 +0100
- Message-id: <[🔎] 17122e38fe3791fb796d046b1e5a1333fff91129.camel@debian.org>
Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock X-debbugs-CC: andrew.shadura@collabora.co.uk Dear Release Team, Filing this on request of the dash maintainer. We have recently implemented a much needed cleanup that removes an unnecessary diversion on /bin/sh, that makes the essential set nice and clean and diversion- free, so that it can be set up without complex machinery. This cleanup has been uploaded last week to experimental with dash/0.5.12-3. We have tested it and cannot see any issues with it. The autopkgtest has been enhanced to cover the case, and a new job testing the downgrade/upgrade paths has been added to Salsa CI. Given it simplifies an essential package, it is my opinion that it would be beneficial to ship this in Bookworm, hence we are filing this book to gather your feedback. There is one ulterior advantage: in case we decide to finish the usrmerge transition in Trixie via diverts, this is a necessary fix for that to work, so having this in place already in Bookworm would make things easier on that too, in case we go down that path. [1] dash ticket: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=989632 Debdiff from current bookworm to the version in experimental attached. Note that 0.5.12-4 does not exist yet as this is a pre-approval request, but it would be a changelog-only upload. The only changes in the debdiff are in the maintainer scripts to drop the diversion, and in the added autopkgtest to cover it. [1] https://lists.debian.org/debian-devel/2023/04/msg00008.html -- Kind regards, Luca Boccassidiff -Nru dash-0.5.12/debian/changelog dash-0.5.12/debian/changelog --- dash-0.5.12/debian/changelog 2023-01-05 13:20:48.000000000 +0000 +++ dash-0.5.12/debian/changelog 2023-04-30 14:53:24.000000000 +0100 @@ -1,3 +1,19 @@ +dash (0.5.12-3) experimental; urgency=medium + + [ Andrej Shadura ] + * Fix bug number in the patch description + + [ Helmut Grohne ] + * dash.postinst: Remove upgrade path from pre-sarge ash. (Closes: + #989419) + * Remove unnecessary diversion in case /bin/sh points to dash. (Closes: + #989632) + + [ Luca Boccassi ] + * dash.postinst: remove unused function + + -- Andrej Shadura <andrewsh@debian.org> Sun, 30 Apr 2023 15:53:24 +0200 + dash (0.5.12-2) unstable; urgency=medium * Fix the changelog entry. diff -Nru dash-0.5.12/debian/dash.postinst dash-0.5.12/debian/dash.postinst --- dash-0.5.12/debian/dash.postinst 2023-01-05 13:20:48.000000000 +0000 +++ dash-0.5.12/debian/dash.postinst 2023-04-30 14:53:24.000000000 +0100 @@ -33,7 +33,7 @@ diverter=$(dpkg-divert --listpackage $dfile) truename=$(dpkg-divert --truename $dfile) - if [ "$diverter" = dash ]; then + if [ -z "$diverter" ]; then # good. return fi @@ -43,9 +43,9 @@ return fi - if [ -n "$diverter" ] && [ "$diverter" != bash ]; then - # Let dpkg-divert error out; we are not taking - # over the diversion, unless we added it + if [ "$diverter" != bash ]; then + # Let dpkg-divert error out; we are not removing the + # diversion, unless we added it # ourselves on behalf of bash. dpkg-divert --package dash --no-rename --remove $dfile echo "This should never be reached" @@ -53,7 +53,6 @@ fi dpkg-divert --package bash --no-rename --remove $dfile - dpkg-divert --package dash --no-rename --divert $distrib --add $dfile # remove the old equivalent of $distrib, if it existed. if [ -n "$DPKG_ROOT$truename" ]; then rm -f "$DPKG_ROOT$truename" @@ -61,62 +60,23 @@ replace_with_link $dfile $ltarget $distrib } -unclaim_binsh() { +drop_obsolete_diversion() { dfile=$1 ltarget=$2 distrib=${3:-$dfile.distrib} - diverter=$(dpkg-divert --listpackage $dfile) - truename=$(dpkg-divert --truename $dfile) + diverter=$(dpkg-divert --listpackage "$dfile") + truename=$(dpkg-divert --truename "$dfile") + actualtarget=$(readlink "$dfile") - if [ "$diverter" != dash ]; then - # good. + if [ "$diverter" != dash ] || [ "$truename" != "$distrib" ] || [ "$actualtarget" != "$ltarget" ]; then + # Not our diversion or a non-trivial one. return fi - - # Donate the diversion and sh symlink to the bash package. - ltarget=$(echo $ltarget | sed s/dash/bash/) - dpkg-divert --package dash --no-rename --remove $dfile - dpkg-divert --package bash --no-rename --divert $distrib --add $dfile - if [ -n "$truename" ]; then - rm -f "$truename" - fi - replace_with_link $dfile $ltarget $distrib -} - -initial_binsh_setup() { - dfile=$1 ltarget=$2 distrib=${3:-$dfile.distrib} ashfile=$4 - diverter=$(dpkg-divert --listpackage $dfile) - truename=$(dpkg-divert --truename $dfile) - - if [ -z "$diverter" ]; then - # good. - return - fi - - if [ "$diverter" = ash ]; then - dpkg-divert --package ash --no-rename --remove $dfile - dpkg-divert --package dash --no-rename --divert $distrib --add $dfile - - if [ "$truename" != "$distrib" ] && [ -e "$truename" ]; then - mv "$truename" "$distrib" - fi - replace_with_link $dfile $ltarget - return - fi - - if - [ -h $dfile ] && - [ -f $dfile ] && - [ -f $ashfile ] && - cmp $dfile $ashfile - then - replace_with_link $dfile $ltarget - fi + dpkg-divert --package dash --no-rename --remove "$dfile" + rm -f "$truename" } -if [ "$1" = configure ] && [ -z "$2" ]; then - initial_binsh_setup /bin/sh dash '' /bin/ash - initial_binsh_setup /usr/share/man/man1/sh.1.gz dash.1.gz \ - /usr/share/man/man1/sh.distrib.1.gz \ - /usr/share/man/man1/ash.1.gz +if [ "$1" = configure ] && dpkg --compare-versions "$2" lt 0.5.12-3~; then + drop_obsolete_diversion /bin/sh dash + drop_obsolete_diversion /usr/share/man/man1/sh.1.gz dash.1.gz /usr/share/man/man1/sh.distrib.1.gz fi claim_binsh /bin/sh dash diff -Nru dash-0.5.12/debian/gitlab-ci.yml dash-0.5.12/debian/gitlab-ci.yml --- dash-0.5.12/debian/gitlab-ci.yml 2023-01-05 13:20:48.000000000 +0000 +++ dash-0.5.12/debian/gitlab-ci.yml 2023-04-30 14:53:24.000000000 +0100 @@ -1,3 +1,89 @@ include: - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml + +variables: + DASH_BULLSEYE: 0.5.11+git20200708+dd9ef66-5 + DASH_BOOKWORM: 0.5.12-2 + DASH_VERSIONS: $DASH_BULLSEYE $DASH_BOOKWORM + +fetch-snapshots: + stage: test + image: $SALSA_CI_IMAGES_GENERIC_TESTS + script: + - apt-get install -qy devscripts + - | + for v in $DASH_VERSIONS + do + debsnap -v --binary dash $v --force -a amd64 + done + needs: [] + artifacts: + paths: + - binary-dash + +.install-snapshots: + stage: test + image: $SALSA_CI_IMAGES_GENERIC_TESTS + script: + - echo SEQUENCE=$SEQUENCE + - | + for v in $SEQUENCE + do + case "$v" in + this) + echo === Installing the currently built version + apt-get install -qy --allow-downgrades ${WORKING_DIR}/dash_*.deb + ;; + install-diversion) + echo === Setting diversion to bash + echo "dash dash/sh boolean false" | debconf-set-selections + dpkg-reconfigure dash + ;; + *) + echo === Installing $v + apt-get install -qy --allow-downgrades ./binary-dash/dash_$v*.deb + ;; + esac + done + variables: + GIT_STRATEGY: none + needs: + - job: build + artifacts: true + - job: fetch-snapshots + artifacts: true + +test-upgrade: + extends: .install-snapshots + parallel: + matrix: + - SEQUENCE: + - $DASH_BULLSEYE $DASH_BOOKWORM this + - $DASH_BULLSEYE this + +test-downgrade: + extends: .install-snapshots + parallel: + matrix: + - SEQUENCE: + - this $DASH_BOOKWORM + - this $DASH_BULLSEYE + +test-upgrade-with-diversion: + extends: .install-snapshots + parallel: + matrix: + - SEQUENCE: + - $DASH_BULLSEYE install-diversion $DASH_BOOKWORM this + - $DASH_BULLSEYE install-diversion this + +test-downgrade-with-diversion: + extends: .install-snapshots + parallel: + matrix: + - SEQUENCE: + - $DASH_BULLSEYE install-diversion $DASH_BOOKWORM this $DASH_BOOKWORM + - $DASH_BULLSEYE install-diversion $DASH_BOOKWORM this $DASH_BULLSEYE + - $DASH_BULLSEYE install-diversion this $DASH_BOOKWORM + - $DASH_BULLSEYE install-diversion this $DASH_BULLSEYE diff -Nru dash-0.5.12/debian/patches/0020-Update-manpages.patch dash-0.5.12/debian/patches/0020-Update-manpages.patch --- dash-0.5.12/debian/patches/0020-Update-manpages.patch 2023-01-05 13:20:48.000000000 +0000 +++ dash-0.5.12/debian/patches/0020-Update-manpages.patch 2023-04-30 14:53:24.000000000 +0100 @@ -48,7 +48,7 @@ man: Document ulimit -w Bug-Debian: https://bugs.debian.org/558607 -Bug-Debian: https://bugs.debian.org/850202 +Bug-Debian: https://bugs.debian.org/975325 --- src/dash.1 | 97 +++++++++++++++++++++++++++++++++++++++++++---------------- src/options.c | 2 +- diff -Nru dash-0.5.12/debian/tests/smoke dash-0.5.12/debian/tests/smoke --- dash-0.5.12/debian/tests/smoke 2023-01-05 13:20:48.000000000 +0000 +++ dash-0.5.12/debian/tests/smoke 2023-04-30 14:53:24.000000000 +0100 @@ -12,8 +12,8 @@ ok(-x '/bin/sh', '/bin/sh must be executable'); ok(-x '/bin/dash', '/bin/dash must be executable'); ok(-x '/bin/bash', '/bin/bash must be executable'); +ok(! -f '/bin/sh.distrib', '/bin/sh.distrib must not be present'); diag(qx(ls -l /bin/sh)); -diag(qx(ls -l /bin/sh.distrib)); diag(qx(ls -l /bin/dash)); diag(qx(ls -l /bin/bash)); @@ -25,17 +25,10 @@ my $diverter = qx(dpkg-divert --listpackage /bin/sh); -if ($diverter eq "dash\n") { - like(realpath('/bin/sh'), qr{^(?:/usr)?/bin/dash}, - '/bin/sh diverted by dash'); -} -elsif ($diverter eq "bash\n") { - like(realpath('/bin/sh'), qr{^(?:/usr)?/bin/dash}, - '/bin/sh diverted by dash pretending to be bash'); -} -else { - is($diverter, "LOCAL\n", '/bin/sh diverted locally'); -} +ok($diverter eq "" or $diverter eq "LOCAL\n", '/bin/sh not diverted or local diversion'); +ok($diverter ne "dash\n", '/bin/sh not diverted by dash'); +ok($diverter ne "bash\n", '/bin/sh not diverted by bash'); +ok(like(realpath('/bin/sh'), qr{^(?:/usr)?/bin/dash})); my $tmpdir = File::Temp->newdir(); chdir $tmpdir;Attachment: signature.asc
Description: This is a digitally signed message part
--- End Message ---
--- Begin Message ---
- To: Luca Boccassi <bluca@debian.org>, 1035745-done@bugs.debian.org
- Cc: Andrej Shadura <andrewsh@debian.org>
- Subject: Re: Bug#1035745: unblock: dash/0.5.12-4 (preapproval)
- From: Paul Gevers <elbrus@debian.org>
- Date: Wed, 24 May 2023 16:14:02 +0200
- Message-id: <440f93c3-69cf-a151-b1cd-c9ceb4fb9e6d@debian.org>
- In-reply-to: <[🔎] 17122e38fe3791fb796d046b1e5a1333fff91129.camel@debian.org>
- References: <[🔎] 17122e38fe3791fb796d046b1e5a1333fff91129.camel@debian.org>
Hi Luca, On 08-05-2023 17:54, Luca Boccassi wrote:Filing this on request of the dash maintainer. We have recently implemented a much needed cleanup that removes an unnecessary diversion on /bin/sh, that makes the essential set nice and clean and diversion- free, so that it can be set up without complex machinery.Let's do this in trixie. This request has been uneasy since you filed it, that's why it took so long to reply. Today I discussed with Andrej and we agreed this is too late for bookworm.PaulAttachment: OpenPGP_signature
Description: OpenPGP digital signature
--- End Message ---