Ludovic Courtès writes: > Hi! > > Marius Bakke skribis: > >> Diego Nicola Barbato writes: >> >>> Hi Guix, >>> >>> An unfortunate chain of propagated-inputs causes 'util-linux' (mount, >>> umount, etc.) to be installed alongside 'mps-youtube': 'mps-youtube' >>> propagates 'python-pygobject', which propagates 'glib', which propagates >>> 'util-linux'. It seems to have been introduced with commit 6c237a2, >>> when 'util-linux' was moved to the propagated-inputs of 'glib'. > > Do we know why this commit moved ‘util-linux’ to propagated-inputs? > Presumably because of this line in ‘gio-2.0.pc’, right? > > Requires.private: gmodule-no-export-2.0, zlib, mount >= 2.23, libselinux I assume so. > If it’s “just” because of this, I’d say we don’t need to propagate > ‘util-linux’: we only build shared libraries for GLib anyway, so none of > our packages actually use ‘Requires.private’. If we were to add > packages requiring it, it’s fine to just add ‘mount’ as an explicit > inputs of these packages IMO. > > We could follow the same reasoning for the other things that are > propagated due to their being listed in ‘Requires.private’. > > Thoughts? Right. You know, I had forgotten that Requires.private were for static libraries. Thanks for pointing that out. I think quite a few packages propagate Requires.private dependencies without using static libraries. Something to watch out for in the ongoing quest to purge static libraries from Guix. > Moving ‘util-linux’ back to ‘inputs’ could perhaps be done on the next > ‘staging’ or on ‘core-updates’. util-linux now has 7880 dependent packages, as 'fontconfig' recently started depending on it. So it must go through 'core-updates'. Luckily that branch is slated to start by the end of this month, so the waiting time should not be too long. >> I have attached a WIP patch that fixes this "long term", by moving the >> util-linux libraries to a separate output. It rebuilds 7753 packages >> and is intended for the 'core-updates' branch. >> >> From b9cbe08694ddd8248ac32ce60d5fc40d5c619a54 Mon Sep 17 00:00:00 2001 >> From: Marius Bakke >> Date: Sun, 13 Oct 2019 16:07:44 +0200 >> Subject: [PATCH] gnu: util-linux: Move libraries to separate output. >> >> Fixes . >> Reported by Diego Nicola Barbato . >> >> * gnu/packages/linux.scm (util-linux)[outputs]: Add "dev". >> [arguments]: Update #:configure-flags accordingly. Add phase >> "adjust-bindirs", and rename "move-static-libraries" to "move-libraries", >> while adding a substitution for the .pc files. >> * gnu/packages/fontutils.scm (fontconfig)[propagated-inputs]: Use the "dev" >> output of UTIL-LINUX. >> * gnu/packages/glib.scm (glib)[propagated-inputs]: Likewise. > > [...] > >> --- a/gnu/packages/linux.scm >> +++ b/gnu/packages/linux.scm >> @@ -1089,19 +1089,40 @@ providing the system administrator with some help in common tasks.") >> (("build_kill=yes") "build_kill=no")) >> #t)))) >> (build-system gnu-build-system) >> - (outputs '("out" >> - "static")) ; >2 MiB of static .a libraries >> + (outputs '("out" ;6.4 MiB executables and documentation >> + "dev" ;8.8 MiB shared libraries, headers and locales >> + "static")) ;2.9 MiB static .a libraries > > Shared libraries are not just for development, so I’d say it should be > “lib” instead, no? Agreed. Will adjust this patch accordingly once I get around to start working on 'core-updates'. :-)