mbox series

[bug#68656,core-updates,0/7] Cryptsetup woes

Message ID cover.1705762361.git.dev@jpoiret.xyz
Headers show
Series Cryptsetup woes | expand

Message

Josselin Poiret Jan. 22, 2024, 1:33 p.m. UTC
Hi everyone,

I'm working on core-updates, trying to build gnome and the desktop
configuration example.  I've already pushed some fixes, but cryptsetup and
lvm2 are proving to be quite annoying: for the same reason as the recent mpv
patches [1], the Require.private fields of pkg-config files are actually used
even when dynamic linking [2].  This means we need to propagate some
transitive dependencies for users of the library, but here the packages also
contain binaries for end-users and we don't want to propagate to them.

So in the meantime, I just added some new functions
libdevmapper-propagated-inputs and libcryptsetup-propagated-inputs that I then
manually included in the dependents's inputs.  I am not satisfied by this, but
this is better than manually adding each needed transitive input, or
propagating to end-users.

Any ideas?

[1] mid:521d0ba6e3d10b3b8aa98b35862d819c82223412.1704430613.git.hako@ultrarare.space
[2] https://bugs.freedesktop.org/show_bug.cgi?id=105572

Best,

Josselin Poiret (7):
  gnu: cryptsetup: Update to 2.6.1.
  gnu: Add libdevmapper-propagated-inputs.
  gnu: Add libcryptsetup-propagated-inputs.
  gnu: volume-key: Add required transitive dependencies.
  gnu: libblockdev: Add libcryptsetup propagated inputs.
  gnu: lvm2-static: Properly handle eudev dependency in pkg-config.
  gnu: cryptsetup-static: Fix static build.

 gnu/packages/cryptsetup.scm | 104 +++++++++++++++++++++---------------
 gnu/packages/disk.scm       |  46 ++++++++--------
 gnu/packages/linux.scm      |  42 +++++++++------
 3 files changed, 111 insertions(+), 81 deletions(-)


base-commit: a5735488d3917ccb95fa975385ff294c4e3b9521

Comments

Maxim Cournoyer Jan. 24, 2024, 4:42 p.m. UTC | #1
Hi Josselin,

Josselin Poiret <dev@jpoiret.xyz> writes:

> Hi everyone,
>
> I'm working on core-updates, trying to build gnome and the desktop
> configuration example.  I've already pushed some fixes, but cryptsetup and
> lvm2 are proving to be quite annoying: for the same reason as the recent mpv
> patches [1], the Require.private fields of pkg-config files are actually used
> even when dynamic linking [2].

Ooof.  I've read this whole thread, and if I got something right, our
best options would be:

1. try using pkgconf instead of pkg-config, which supports
Requires.internal as a correct way to define Requires.private for truly
private libraries, and may have a different handling (more correct?) of
the Requires.private field.

2. Specify the -Ddefault_library=shared in the default configure-flags
of Meson; when done that way, Meson doesn't add the libs to
Requires.private in its generated .pc files.  That obviously means
building static libraries is not supported, but that's not a concern too
great for Guix, I would think.

Thoughts?