** Description changed:

- It's very handy to install build-essential meta package on dev systems,
- but it seems to have a hard dependency on coreutils-from-uutils.  When I
- replaced it by coreutils-from-gnu by running:
+ [Impact]
+ Many packages depend on build-essential or users install build-essential to 
get a tool chain.
+ 
+ The dependency on coreutils-from-uutils means that people using GNU
+ coreutils cannot install build-essential and packages depending on it.
+ 
+ [Solution]
+ As a compromise to maintain integrity of Ubuntu package builds while allowing 
as much freedom as possible we:
+ 
+ 1. make dpkg-checkbuilddeps inject a coreutils-from-uutils unless the
+ package build-depends on coreutils-from-gnu
+ 
+ 2. replace the build-essential dependency with a bumped version
+ requirement on the new dpkg.
+ 
+ [Test plan]
+ Automated test case is included.
+ This change was deployed in 26.10.
+ 
+ To further check, build a package in a sbuild w/ proposed and ensure it
+ builds.
+ 
+ To further check, build a package in sbuild w/ proposed and coreutils-
+ from-gnu and build-essential installed and check the dependency check
+ fails.
+ 
+ [Where problems could occur]
+ There may be complex bootstrapping issues and so on, but nothing significant: 
The changes are fairly straightforward: We literally check the list of 
build-depends we parsed to see if it contains -gnu and otherwise inject uutils.
+ 
+ [Caveat: Limitations on flexibility]
+ Note that the dpkg check allows a package to build-depends on 
coreutils-from-gnu instead of coreutis-from-uutils (it only injects a build 
depends for coreutils-from-uutils when no coreutils-from-gnu one is present).
+ 
+ However, while this works, you cannot build those packages in a normal
+ builder: The coreutils-from-uutils package is protected, and can't be
+ removed automatically to install coreutils-from-gnu - so this cannot be
+ used to build official Ubuntu packages with GNU coreutils (yet?).
+ 
+ [Original bug report]
+ It's very handy to install build-essential meta package on dev systems, but 
it seems to have a hard dependency on coreutils-from-uutils.  When I replaced 
it by coreutils-from-gnu by running:
  
  sudo apt install coreutils-from-gnu coreutils-from-uutils- --allow-
  remove-essential
  
  It ended up removing build-essential meta package from my system.
  
  It would be useful to have a virtual package for coreutils that accept
  any of the available flavors and make users' lives easier to replace one
  by another.

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

Title:
  Transition coreutils-from-uutils requirement from build-essential to
  dpkg-buildpackage runtime check

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/build-essential/+bug/2147638/+subscriptions


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

Reply via email to