Public bug reported:

swiftlang 6.2.3-1 was removed from stonking-proposed (bug #2170775)
because its arm64 build could not succeed in place. This bug tracks
getting the new version in next cycle, which needs an arm64 bootstrap.

== Problem ==

swiftlang build-depends on itself: swiftlang (>= 6.1.3), swiftlang-dev.
swiftlang-dev is Architecture: all, so the new version gets built on
amd64 and published first. It depends on libswiftlang (>= <same
version>), which on arm64 can only come from the arm64 build of that
same upload. Once the new swiftlang-dev is in proposed, apt picks it and
doesn't fall back to the older one in the release pocket:

  E: Unable to satisfy dependencies. Reached two conflicting assignments:
     1. swiftlang-dev:arm64=6.2.3-1 is selected for install because:
        ... sbuild-build-depends-main-dummy:arm64 Depends swiftlang-dev
     2. swiftlang-dev:arm64=6.2.3-1 Depends libswiftlang (>= 6.2.3-1)
        but none of the choices are installable:
        [no choices]

https://launchpadlibrarian.net/880899441/buildlog_ubuntu-stonking-
arm64.swiftlang_6.2.3-1_BUILDING.txt.gz

So if the first arm64 build attempt fails for any reason, every retry is
stuck.

== How Debian got it in ==

Pure timing: the Debian arm64 build of 6.2.3-1 started before swiftlang-
dev 6.2.3-1 was published (arch:all build finished 2026-02-07 16:46 UTC;
the ~4h arm64 build finished at 16:58 UTC), so it installed
swiftlang/swiftlang-dev/libswiftlang 6.1.3-4 and built fine. Later
binNMUs (+b1) were fine because libswiftlang 6.2.3-1 then existed on
arm64.

== Proposed plan for next cycle ==

1. Bootstrap arm64 once: build the new swiftlang version for arm64 against the 
previous swiftlang-dev (e.g. in a bootstrap PPA that only uses the release 
pocket, or with the new swiftlang-dev not yet visible), then have the archive 
admins copy those arm64 binaries into the primary archive (or upload while the 
release pocket swiftlang-dev still satisfies the build).
2. After that, normal uploads/rebuilds work as long as each arm64 build 
succeeds the first time.
3. Longer term, consider making the build-dependency resilient, e.g. versioning 
swiftlang-dev's dependency on libswiftlang less strictly, or build-depending on 
a specific bootstrap-compatible swiftlang-dev, so a failed arm64 build doesn't 
create a loop. Worth discussing with Debian (swiftlang maintainers) too.

Also note Debian #1143708 (serious FTBFS for 6.2.3-1 in Debian), which
should be checked against the version targeted next cycle.

Subscribing ~ubuntu-archive since step 1 likely needs an archive admin
binary copy.

** Affects: swiftlang (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2170777

Title:
  swiftlang: bootstrap arm64 for new versions next cycle (self build-
  dependency loop via arch:all swiftlang-dev)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/swiftlang/+bug/2170777/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to