** Description changed: TL;DR - python3-jsonschema is uninstallable on i386 due to no python3-rpbs- + python3-jsonschema is uninstallable on i386 due to no python3-rpds- py@i386, and it's a build-dependency of jq. Thus, this makes jq an FTBFS on i386. We can't pull jq@i386 out of the distro, as it yanks too much stuff. Nor can we enable i386 for the build-deps because there are too many (rust anyone?). Proposal: Diff: --- a/debian/control +++ b/debian/control @@ -12,7 +12,7 @@ Build-Depends: debhelper-compat (= 13), python3-yaml, python3-markdown, python3-lxml, - python3-jsonschema, + python3-jsonschema [!i386], valgrind [amd64], Standards-Version: 4.6.2 Rules-Requires-Root: no PPA: https://launchpad.net/~ahasenack/+archive/ubuntu/jq-ftbfs/+packages There are no DEP8 tests. [ Longer explanation ] From https://launchpadlibrarian.net/783618671/buildlog_ubuntu- plucky-i386.jq_1.7.1-3build1_BUILDING.txt.gz The following packages have unmet dependencies: python3-jsonschema : Depends: python3-jsonschema-specifications but it is not going to be installed Depends: python3-referencing but it is not going to be installed Depends: python3-rpds-py but it is not installable E: Unable to correct problems, you have held broken packages. E: The following information from --solver 3.0 may provide additional context: Unable to satisfy dependencies. Reached two conflicting decisions: 1. python3-jsonschema:i386 is selected for install because: 1. sbuild-build-depends-main-dummy:i386=0.invalid.0 is selected for install 2. sbuild-build-depends-main-dummy:i386 Depends python3-jsonschema 2. python3-jsonschema:i386 Depends python3-rpds-py but none of the choices are installable: [no choices] apt-get failed. The last jq rebuild[1] was during the noble cycle, on 2024-03-31. Back then it used python3-jsonschema 4.10.3-2ubuntu1[2] from noble, which does NOT depend on python3-rpds-py. The python3-rpds-py build-dependency was added in python-jsonschema 4.19.2-1[3], a new upstream version. And this causes the jq ftbfs because python3-rpds-py was never built for i386 in ubuntu. This is an FTBFS since oracular. 1. https://launchpadlibrarian.net/722170615/buildlog_ubuntu-noble-i386.jq_1.7.1-3build1_BUILDING.txt.gz 2. https://launchpad.net/ubuntu/+source/python-jsonschema/4.10.3-2ubuntu1 3. https://salsa.debian.org/openstack-team/third-party/python-jsonschema/-/commit/45c057ea750683392b2700069a3cb3e5ba3c0019 [ Proposal and justification ] Text copied from the linked MP (note the [link references] restart at 1!): This is my proposal to fix the FTBFS on i386, with minimal impact to the other architectures: do not build-depend on python3-jsonschema on i386. This fix can also be used to SRU jq to oracular, where the same problem happens. The real bug/problem here is that python3-jsonschema is uninstallable on i386. It's an arch all package, but it has arch-specific dependencies, and i386 is one of them. python3-jsonschema, however, is only used by jq via the docs/validate_manual_schema.py[4] script. That script is conditionally invoked in the Makefile[3], if the docs/content/manual/manual.yml file is changed (via a patch, for example): # We use the examples in the manual as additional tests, to ensure they always work. # As a result, we need to rebuild the tests if the manual has been updated. # Making changes to the manpage without having the python deps means your # tests won't run. If you aren't making changes to the examples, you probably # don't care. But if you are, then you need to run the tests anyway. tests/man.test tests/manonig.test: $(srcdir)/docs/content/manual/manual.yml if ENABLE_DOCS $(AM_V_GEN) ( cd ${abs_srcdir}/docs && \ python validate_manual_schema.py content/manual/manual.yml && \ python build_mantests.py ) else @echo Changes to the manual.yml require docs to be enabled to update the manual test. @echo As a result, the manual test is out of date. endif We can see in current launchpad build logs[1] (i386 example, but it's the same in amd64[2]) the message: make[4]: 'tests/man.test' is up to date. indicating that that block in the Makefile which would invoke validate_manual_schema.py was skipped. Also, when invoked manually in the build directory, we see the same: $ make tests/man.test make: 'tests/man.test' is up to date. But make a change to that file, and the script is run. And we also discover another bug: $ echo andreas-was-here >> docs/content/manual/manual.yml $ make tests/man.test ( cd /home/ubuntu/git/packages/jq/jq/docs && \ python validate_manual_schema.py content/manual/manual.yml && \ python build_mantests.py ) /bin/bash: line 2: python: command not found make: *** [Makefile:1851: tests/man.test] Error 127 That bug was introduced by d/p/0006-Do-not-use-pipenv-to-build- docs.patch[5] which uses just "python" instead of "python3". Shows the age of that patch, I guess. Anyway, I'm not touching that here. But I could. Let me know what you think in the comments below, and don't forget to like and subscribe! The runtime dependencies of jq in amd64 and i386 are the same after this change as far as I could tell. I will do another check with the PPA build after it's built. PPA: https://launchpad.net/~ahasenack/+archive/ubuntu/jq-ftbfs/+packages DEP8: there are none. Should find a way to run the autopkgtests of packages that invoke jq... 1. https://launchpadlibrarian.net/722170615/buildlog_ubuntu-noble-i386.jq_1.7.1-3build1_BUILDING.txt.gz 2. https://launchpadlibrarian.net/722189983/buildlog_ubuntu-noble-amd64.jq_1.7.1-3build1_BUILDING.txt.gz 3. https://git.launchpad.net/ubuntu/+source/jq/tree/Makefile.am?h=applied/ubuntu/devel#n151 4. https://git.launchpad.net/ubuntu/+source/jq/tree/docs/validate_manual_schema.py?h=applied/ubuntu/devel 5. https://git.launchpad.net/ubuntu/+source/jq/tree/debian/patches/0006-Do-not-use-pipenv-to-build-docs.patch?h=applied/ubuntu/devel - [ Verification ] There are no DEP8 tests in this package. I downloaded the binary packages for all architectures from my PPA, and from the ubuntu archive, and ran this script: #!/bin/bash PACKAGES="jq libjq-dev libjq1" ARCHS="amd64 arm64 armhf i386 ppc64el riscv64 s390x" for arch in ${ARCHS}; do - for pkg in $PACKAGES; do - diff -u <(dpkg --info plucky-archive/${pkg}*${arch}.deb) <(dpkg --info ppa/${pkg}*${arch}.deb) > ${pkg}_${arch}.diff - done + for pkg in $PACKAGES; do + diff -u <(dpkg --info plucky-archive/${pkg}*${arch}.deb) <(dpkg --info ppa/${pkg}*${arch}.deb) > ${pkg}_${arch}.diff + done done I then manually inspected all diff files, and concluded there were no dependency changes introduced in any of them. Here is the diff for i386: ### jq_i386.diff --- /dev/fd/63 2025-04-08 13:30:32.178866732 +0000 +++ /dev/fd/62 2025-04-08 13:30:32.178866732 +0000 @@ -1,13 +1,13 @@ - new Debian package, version 2.0. + new Debian package, version 2.0. - size 66730 bytes: control archive=922 bytes. - 859 bytes, 24 lines control - 352 bytes, 6 lines md5sums + size 68758 bytes: control archive=963 bytes. + 871 bytes, 24 lines control + 423 bytes, 7 lines md5sums - Package: jq - - Version: 1.7.1-3build1 - + Version: 1.7.1-3ubuntu1~ppa3 - Architecture: i386 - Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> + Package: jq + - Version: 1.7.1-3build1 + + Version: 1.7.1-3ubuntu1~ppa3 + Architecture: i386 + Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> - Installed-Size: 111 - Depends: libc6 (>= 2.38), libjq1 (= 1.7.1-3build1) + Installed-Size: 115 + Depends: libc6 (>= 2.38), libjq1 (= 1.7.1-3ubuntu1~ppa3) - Section: utils - Priority: optional - Multi-Arch: foreign + Section: utils + Priority: optional + Multi-Arch: foreign ### libjq-dev_i386.diff --- /dev/fd/63 2025-04-08 13:30:32.183866798 +0000 +++ /dev/fd/62 2025-04-08 13:30:32.184866812 +0000 @@ -1,14 +1,14 @@ - new Debian package, version 2.0. + new Debian package, version 2.0. - size 11842 bytes: control archive=894 bytes. - 928 bytes, 27 lines control - 246 bytes, 4 lines md5sums + size 13764 bytes: control archive=936 bytes. + 940 bytes, 27 lines control + 324 bytes, 5 lines md5sums - Package: libjq-dev - Source: jq - - Version: 1.7.1-3build1 - + Version: 1.7.1-3ubuntu1~ppa3 - Architecture: i386 - Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> - Installed-Size: 49 + Package: libjq-dev + Source: jq + - Version: 1.7.1-3build1 + + Version: 1.7.1-3ubuntu1~ppa3 + Architecture: i386 + Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> + Installed-Size: 49 - Depends: libjq1 (= 1.7.1-3build1) + Depends: libjq1 (= 1.7.1-3ubuntu1~ppa3) - Section: libdevel - Priority: optional - Multi-Arch: same + Section: libdevel + Priority: optional + Multi-Arch: same ### libjq1_i386.diff --- /dev/fd/63 2025-04-08 13:30:32.189866878 +0000 +++ /dev/fd/62 2025-04-08 13:30:32.189866878 +0000 @@ -1,16 +1,16 @@ - new Debian package, version 2.0. + new Debian package, version 2.0. - size 198160 bytes: control archive=1950 bytes. - 929 bytes, 27 lines control + size 199940 bytes: control archive=1953 bytes. + 935 bytes, 27 lines control - 212 bytes, 3 lines md5sums - 26 bytes, 1 lines shlibs - 4584 bytes, 178 lines symbols - 75 bytes, 2 lines triggers - Package: libjq1 - Source: jq - - Version: 1.7.1-3build1 - + Version: 1.7.1-3ubuntu1~ppa3 - Architecture: i386 - Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> + 212 bytes, 3 lines md5sums + 26 bytes, 1 lines shlibs + 4584 bytes, 178 lines symbols + 75 bytes, 2 lines triggers + Package: libjq1 + Source: jq + - Version: 1.7.1-3build1 + + Version: 1.7.1-3ubuntu1~ppa3 + Architecture: i386 + Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> - Installed-Size: 597 + Installed-Size: 605 - Depends: libc6 (>= 2.38), libonig5 (>= 6.8.1) - Section: utils - Priority: optional + Depends: libc6 (>= 2.38), libonig5 (>= 6.8.1) + Section: utils + Priority: optional And here is the diff for amd64: ### jq_amd64.diff --- /dev/fd/63 2025-04-08 13:30:32.091865576 +0000 +++ /dev/fd/62 2025-04-08 13:30:32.092865589 +0000 @@ -1,13 +1,13 @@ - new Debian package, version 2.0. + new Debian package, version 2.0. - size 65538 bytes: control archive=925 bytes. - 860 bytes, 24 lines control - 352 bytes, 6 lines md5sums + size 67904 bytes: control archive=961 bytes. + 872 bytes, 24 lines control + 423 bytes, 7 lines md5sums - Package: jq - - Version: 1.7.1-3build1 - + Version: 1.7.1-3ubuntu1~ppa3 - Architecture: amd64 - Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> + Package: jq + - Version: 1.7.1-3build1 + + Version: 1.7.1-3ubuntu1~ppa3 + Architecture: amd64 + Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> - Installed-Size: 112 - Depends: libc6 (>= 2.38), libjq1 (= 1.7.1-3build1) + Installed-Size: 116 + Depends: libc6 (>= 2.38), libjq1 (= 1.7.1-3ubuntu1~ppa3) - Section: utils - Priority: optional - Multi-Arch: foreign + Section: utils + Priority: optional + Multi-Arch: foreign ### libjq-dev_amd64.diff --- /dev/fd/63 2025-04-08 13:30:32.103865735 +0000 +++ /dev/fd/62 2025-04-08 13:30:32.103865735 +0000 @@ -1,14 +1,14 @@ - new Debian package, version 2.0. + new Debian package, version 2.0. - size 11854 bytes: control archive=897 bytes. - 929 bytes, 27 lines control - 248 bytes, 4 lines md5sums + size 13776 bytes: control archive=941 bytes. + 941 bytes, 27 lines control + 326 bytes, 5 lines md5sums - Package: libjq-dev - Source: jq - - Version: 1.7.1-3build1 - + Version: 1.7.1-3ubuntu1~ppa3 - Architecture: amd64 - Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> - Installed-Size: 49 + Package: libjq-dev + Source: jq + - Version: 1.7.1-3build1 + + Version: 1.7.1-3ubuntu1~ppa3 + Architecture: amd64 + Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> + Installed-Size: 49 - Depends: libjq1 (= 1.7.1-3build1) + Depends: libjq1 (= 1.7.1-3ubuntu1~ppa3) - Section: libdevel - Priority: optional - Multi-Arch: same + Section: libdevel + Priority: optional + Multi-Arch: same ### libjq1_amd64.diff --- /dev/fd/63 2025-04-08 13:30:32.111865841 +0000 +++ /dev/fd/62 2025-04-08 13:30:32.112865855 +0000 @@ -1,16 +1,16 @@ - new Debian package, version 2.0. + new Debian package, version 2.0. - size 140506 bytes: control archive=1955 bytes. - 930 bytes, 27 lines control + size 159348 bytes: control archive=1956 bytes. + 936 bytes, 27 lines control - 214 bytes, 3 lines md5sums - 26 bytes, 1 lines shlibs - 4584 bytes, 178 lines symbols - 75 bytes, 2 lines triggers - Package: libjq1 - Source: jq - - Version: 1.7.1-3build1 - + Version: 1.7.1-3ubuntu1~ppa3 - Architecture: amd64 - Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> + 214 bytes, 3 lines md5sums + 26 bytes, 1 lines shlibs + 4584 bytes, 178 lines symbols + 75 bytes, 2 lines triggers + Package: libjq1 + Source: jq + - Version: 1.7.1-3build1 + + Version: 1.7.1-3ubuntu1~ppa3 + Architecture: amd64 + Maintainer: Ubuntu Developers <ubuntu-devel-disc...@lists.ubuntu.com> - Installed-Size: 358 + Installed-Size: 410 - Depends: libc6 (>= 2.39), libonig5 (>= 6.8.1) - Section: utils - Priority: optional - + Depends: libc6 (>= 2.39), libonig5 (>= 6.8.1) + Section: utils + Priority: optional The other diffs for the other architectures are similar. - [ Original Description ] https://launchpadlibrarian.net/783618671/buildlog_ubuntu- plucky-i386.jq_1.7.1-3build1_BUILDING.txt.gz The following packages have unmet dependencies: python3-jsonschema : Depends: python3-jsonschema-specifications but it is not going to be installed Depends: python3-referencing but it is not going to be installed Depends: python3-rpds-py but it is not installable E: Unable to correct problems, you have held broken packages. E: The following information from --solver 3.0 may provide additional context: Unable to satisfy dependencies. Reached two conflicting decisions: 1. python3-jsonschema:i386 is selected for install because: 1. sbuild-build-depends-main-dummy:i386=0.invalid.0 is selected for install 2. sbuild-build-depends-main-dummy:i386 Depends python3-jsonschema 2. python3-jsonschema:i386 Depends python3-rpds-py but none of the choices are installable: [no choices] apt-get failed. The last jq rebuild[1] was during the noble cycle, on 2024-03-31. Back then it used python3-jsonschema 4.10.3-2ubuntu1[2] from noble, which does NOT depend on python3-rpds-py. The python3-rpds-py build-dependency was added in python-jsonschema 4.19.2-1[3], a new upstream version. And this causes the jq ftbfs because python3-rpds-py was never built for i386 in ubuntu. This is an FTBFS since oracular. For plucky, we either stop building jq for i386, or start building rpds- py for i386. Unsure yet how to handle this situation in an SRU. jq@i386 at least runs in oracular as-is, same in plucky: ubuntu@o-jq-i386:~$ dpkg -l jq Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-=============-============-==================================================== ii jq:i386 1.7.1-3build1 i386 lightweight and flexible command-line JSON processor ubuntu@o-jq-i386:~$ ldd /usr/bin/jq linux-gate.so.1 (0xf7a92000) libjq.so.1 => /lib/i386-linux-gnu/libjq.so.1 (0xf79f1000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf77a7000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7696000) libonig.so.5 => /lib/i386-linux-gnu/libonig.so.5 (0xf7602000) /lib/ld-linux.so.2 (0xf7a94000) 1. https://launchpadlibrarian.net/722170615/buildlog_ubuntu-noble-i386.jq_1.7.1-3build1_BUILDING.txt.gz 2. https://launchpad.net/ubuntu/+source/python-jsonschema/4.10.3-2ubuntu1 3. https://salsa.debian.org/openstack-team/third-party/python-jsonschema/-/commit/45c057ea750683392b2700069a3cb3e5ba3c0019
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2104170 Title: FTBFS on i386: unresolvable deps To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/jq/+bug/2104170/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs