Jump to content
funtoo forums
  • 0
klipkyle

A bunch of stuff now requires static-libs USE flag

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])

 

Share this post


Link to post
Share on other sites

13 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.

Share this post


Link to post
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).

Share this post


Link to post
Share on other sites
  • 0

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.

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0

Just ran ego sync and emerge is complaining 

!!! One of the following packages is required to complete your request:
- dev-libs/json-c-0.12::core-kit (Change USE: +static-libs)

 

Share this post


Link to post
Share on other sites
  • 0
2 hours ago, mauricev said:

Just ran ego sync and emerge is complaining 


!!! One of the following packages is required to complete your request:
- dev-libs/json-c-0.12::core-kit (Change USE: +static-libs)

 

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

Share this post


Link to post
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

Share this post


Link to post
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])

 

Share this post


Link to post
Share on other sites
  • 0
7 hours ago, mauricev said:

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])

 

The first question is where the cryptsetup USE flag for genkernel comes from. Installing debian-sources-lts with the binary USE flag does not require it, only the luks USE flag does. But as it says "installed" for genkernel, what is the output of 'emerge -pv genkernel'? If it wants to install it with the cryptsetup USE flag, try 'USE="-cryptsetup emerge -pv genkernel'.

Another question would be if you want to have genkernel using the cryptsetup USE flag. If not, you should find out where it is coming from. If yes, using the mix-in encrypted-root works fine.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...