Hi,

On Wed, 8 Jan 2025 11:33:02 +0000 (UTC) Gianfranco Costamagna 
<locutusofb...@debian.org> wrote:
> Hello, as seen here [1] and here [2] botch now FTBFS in sid
> 
> compare `./tools/wanna-build-sortblockers.py --help` with man page...
> `./tools/wanna-build-sortblockers.py --help` and man page 
> ./wanna-build-sortblockers disagree:
> help
> max
> max-popcon
> max-popcon]
> min
> min-popcon
> reverse
> verbose != help
> max
> max-popcon
> min
> min-popcon
> reverse
> verbose
> make[2]: *** [Makefile:278: test-man] Error 1
> make[2]: Leaving directory '/build/reproducible-path/botch-0.24'
> make[1]: *** [debian/rules:25: override_dh_auto_test-arch] Error 2
> make[1]: Leaving directory '/build/reproducible-path/botch-0.24'
> make: *** [debian/rules:7: binary] Error 2

the problem first appeared with snapshot timestamp
20250107T145252Z. Steps to reproduce:

debbisect --cache=./cache --ignore-cached-results 20250107T085457Z 
20250107T145252Z 'mmdebstrap --aptopt="Acquire::Check-Valid-Until \"false\"" 
--include=python3,wget,ca-certificates --verbose unstable /dev/null 
$DEBIAN_BISECT_MIRROR --customize-hook="chroot \"\$1\" sh -c \"dpkg-query -W > 
/pkglist\"" --customize-hook="download /pkglist 
./debbisect.$DEBIAN_BISECT_TIMESTAMP.pkglist" --chrooted-customize-hook="wget 
https://sources.debian.org/data/main/b/botch/0.24-5/tools/wanna-build-sortblockers.py
 && echo \"\$(python3 ./wanna-build-sortblockers.py --help 2>&1)\" && test 
\"\$(python3 ./wanna-build-sortblockers.py --help 2>&1 | sed -ne \"s/^ 
\\+\\(-[^ =-]\\+,\\)\\? --\\([^ =]\\+\\)\\([ =].*\\)\\?\\\$/\2/p\" | grep 
--count max-popcon)\" = 1"'
[...]
bisection finished successfully
  last good timestamp: 20250107T085457Z
  first bad timestamp: 20250107T145252Z
the following packages differ between the last good and first bad timestamp:
  diffutils 1:3.10-1+b1 -> 1:3.10-2
  libpython3-stdlib:arm64 3.12.8-1 -> 3.13.1-1
  libpython3.13-minimal:arm64 (n.a.) -> 3.13.1-3
  libpython3.13-stdlib:arm64 (n.a.) -> 3.13.1-3
  python3 3.12.8-1 -> 3.13.1-1
  python3-minimal 3.12.8-1 -> 3.13.1-1
  python3.13 (n.a.) -> 3.13.1-3
  python3.13-minimal (n.a.) -> 3.13.1-3
  sysvinit-utils 3.11-1 -> 3.13-1

Looking into the logs, it appears that starting with python 3.13, the format of
the argparse --help output changed like this:

-usage: wanna-build-sortblockers.py [-h] [-r]
-                                   [-m | -M | --min-popcon | --max-popcon]
-                                   [-v]
+usage: wanna-build-sortblockers.py [-h] [-r] [-m | -M | --min-popcon |
+                                   --max-popcon] [-v]
                                    build-attempt-list importance-metric

And the sed script is not prepared to deal with lines that start with a
double-dash but are *not* belonging to the list of long options as later in the
--help output.

The fix is to add another call to sed which cuts off all the lines above the
line matching /^options:$/ and to only match lines that start with exactly two
spaces.

I'm working on a fix in salsa.

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature

Reply via email to