Jump to content
Read the Funtoo Newsletter: Summer 2023 ×
  • 0

A bunch of stuff now requires static-libs USE flag


klipkyle

Question

Hello,

While running world updates in Funtoo 1.4 today, I noticed that cryptsetup is now built in a static configuration.  (See FL-6642.)  This caused emerge to complain about some USE flags that needed to be added to package.use.

I added the below entries to package.use, and all was fine after that.  However, I wonder why is this not detected automatically?  Should these USE changes be in one of Funtoo's profiles?

kyle@perkins ~ $ emerge -puDN @world

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U  ] sys-libs/glibc-2.29-r3 [2.29-r2]
[ebuild   R    ] app-crypt/argon2-20171227-r1  USE="static-libs*" 
[ebuild     U  ] media-libs/freetype-2.9.1-r5 [2.9.1-r4]
[ebuild   R    ] dev-libs/openssl-1.1.1b-r2  USE="static-libs*" 
[ebuild   R    ] dev-libs/json-c-0.13.1-r1  USE="static-libs*" 
[ebuild   R    ] dev-libs/popt-1.16-r2  USE="static-libs*" 
[ebuild   R    ] dev-libs/libgpg-error-1.36  USE="static-libs*" 
[ebuild   R    ] sys-fs/lvm2-2.02.173  USE="static-libs*" 
[ebuild   R    ] sys-fs/cryptsetup-2.1.0  USE="static*" 

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by sys-fs/cryptsetup-2.1.0::core-kit[-static-libs,static]
# required by sys-libs/libblockdev-2.22::core-kit[cryptsetup]
# required by sys-fs/udisks-2.7.8::gnome-kit
# required by media-sound/clementine-1.3.1_p20190127::media-kit[udisks]
# required by @selected
# required by @world (argument)
>=sys-fs/lvm2-2.02.173 static-libs
# required by sys-fs/cryptsetup-2.1.0::core-kit[-libressl,-static-libs,static,openssl]
# required by sys-libs/libblockdev-2.22::core-kit[cryptsetup]
# required by sys-fs/udisks-2.7.8::gnome-kit
# required by media-sound/clementine-1.3.1_p20190127::media-kit[udisks]
# required by @selected
# required by @world (argument)
>=dev-libs/openssl-1.1.1b-r2 static-libs
# required by sys-fs/cryptsetup-2.1.0::core-kit[-static-libs,static]
# required by sys-libs/libblockdev-2.22::core-kit[cryptsetup]
# required by sys-fs/udisks-2.7.8::gnome-kit
# required by media-sound/clementine-1.3.1_p20190127::media-kit[udisks]
# required by @selected
# required by @world (argument)
>=dev-libs/json-c-0.13.1-r1 static-libs
# required by sys-fs/cryptsetup-2.1.0::core-kit[-static-libs,argon2,static]
# required by sys-libs/libblockdev-2.22::core-kit[cryptsetup]
# required by sys-fs/udisks-2.7.8::gnome-kit
# required by media-sound/clementine-1.3.1_p20190127::media-kit[udisks]
# required by @selected
# required by @world (argument)
>=app-crypt/argon2-20171227-r1 static-libs
# required by sys-fs/cryptsetup-2.1.0::core-kit[-static-libs,static]
# required by sys-libs/libblockdev-2.22::core-kit[cryptsetup]
# required by sys-fs/udisks-2.7.8::gnome-kit
# required by media-sound/clementine-1.3.1_p20190127::media-kit[udisks]
# required by @selected
# required by @world (argument)
>=dev-libs/popt-1.16-r2 static-libs
# required by sys-fs/cryptsetup-2.1.0::core-kit[-static-libs,static]
# required by sys-libs/libblockdev-2.22::core-kit[cryptsetup]
# required by sys-fs/udisks-2.7.8::gnome-kit
# required by media-sound/clementine-1.3.1_p20190127::media-kit[udisks]
# required by @selected
# required by @world (argument)
>=dev-libs/libgpg-error-1.36 static-libs

emerge: there are no ebuilds built with USE flags to satisfy "dev-libs/json-c:=[static-libs(+)]".
!!! One of the following packages is required to complete your request:
- dev-libs/json-c-0.12::core-kit (Change USE: +static-libs)
(dependency required by "sys-fs/cryptsetup-2.1.0::core-kit[-static-libs,static]" [ebuild])
(dependency required by "sys-libs/libblockdev-2.22::core-kit[cryptsetup]" [installed])
(dependency required by "sys-fs/udisks-2.7.8::gnome-kit" [installed])
(dependency required by "media-sound/clementine-1.3.1_p20190127::media-kit[udisks]" [installed])
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])

 

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Yeah, might be a good idea to file an improvement request to add to profiles. If you're not using any type of LUKS or encrypted root or home etc, you could always add -static to cryptsetup in package.use. Maybe a cool idea to add a new mix-in for all this, to go along with the documentation that needs upgraded ? There is an open bug for this maybe I'll add to it.

Link to comment
Share on other sites

  • 0
5 minutes ago, bcowan said:

If you're not using any type of LUKS or encrypted root or home etc, you could always add -static to cryptsetup in package.use.

I'm using neither on this system.  I suppose I can go back to a dynamically-linked cryptsetup, but I understand why one might want cryptsetup to be statically linked (no LD_LIBRARY_PATH attacks).

Link to comment
Share on other sites

  • 0
  • Funtoo Linux BDFL

I am adding an encrypted-root mix-in and undoing the previous change that required a ton of stuff to be static. Sorry about that -- that was an ugly mess. I forgot that making cryptsetup static would make all of its dependencies also need to be static.

Link to comment
Share on other sites

  • 0
  • Funtoo Linux BDFL

OK, I cleaned up this mess. No more static stuff should need to be manually turned on now. Here is a summary of the changes I made:

  • cryptsetup now has USE static turned off by default
  • genkernel now has cryptsetup turned off by default
  • new encrypted-root mix-in to enable when you want LUKS that will flip all the necessary switches
Link to comment
Share on other sites

  • 0
On 10/3/2019 at 12:54 PM, jhan said:

json-c does not need the static-libs USE flag unless you have set static-libs for the package cryptsetup. Or use the mix-in encrypted-root.

If that is not the case for you, please check the emerge output. There should be more information about which package requires the USE flag to be set for json-c

This is not the case. My emerge output is https://pastebin.com/Pb8PTyWY

Link to comment
Share on other sites

  • 0
On 10/6/2019 at 2:55 AM, jhan said:

I did not mean the output of 'emerge --info'. I meant the output of the emerge that complained about json-c needing the static USE flag.

emerge: there are no ebuilds built with USE flags to satisfy "dev-libs/json-c:=[static-libs(+)]".
!!! One of the following packages is required to complete your request:
- dev-libs/json-c-0.12::core-kit (Change USE: +static-libs)
(dependency required by "sys-fs/cryptsetup-2.1.0::core-kit[static,-static-libs]" [ebuild])
(dependency required by "sys-kernel/genkernel-3.4.40.23-r2::core-kit[cryptsetup]" [installed])
(dependency required by "sys-kernel/debian-sources-lts-4.19.67_p2-r1::core-kit[binary]" [ebuild])
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...