Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] BINDIST question
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Installing Gentoo
View previous topic :: View next topic  
Author Message
johngalt
Apprentice
Apprentice


Joined: 09 Sep 2004
Posts: 258
Location: 3rd Rock

PostPosted: Mon Jun 11, 2018 11:24 pm    Post subject: [SOLVED] BINDIST question Reply with quote

Hi, all.

I'm installing Gentoo on a Dell Laptop uEFI based boot using GPT on the SSD. I'm using SystemRescueCD current to boot the laptop to perform the install. {If more info is needed, particularly hw info, LMK)

I'm selecting the desktop/17.0 profile. When I extract the latest stage 3 tarball, and go to edit /etc/portage/make.conf, I see this line in there:

Code:
# NOTE: This stage was built with the bindist Use flag enabled


Yes in checking
Code:
emerge --info
I don't see that as a USE flag. My gut tells me that is because I am booted off the SRCD, even though I have already chroot into the extracted system on the SSD.

My gut also tells me that the answer to my question is "It's personal preference" but I like being thorough, so:

Should I add bindist to my USE flags in make.conf?
_________________
desultory wrote:
If you want to retain credibility as a functional adult; when you are told that you are acting boorishly, the correct response is to consider that possibility and act accordingly to correct that behavior.


Amen.


Last edited by johngalt on Thu Jun 14, 2018 4:29 pm; edited 3 times in total
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7071

PostPosted: Mon Jun 11, 2018 11:46 pm    Post subject: Reply with quote

don't add it if you don't need it (also because bindist is know to cause some problem).

it's just a message telling you the livecd was built with bindist useflag, that's a useflag for redistributing binary, so it make sense a livecd was built with it in order to comply with some distribution restriction.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43186
Location: 56N 3W

PostPosted: Tue Jun 12, 2018 12:25 am    Post subject: Reply with quote

johngalt,

The stage3 was built with the bindist USE flag but its no longer set in make.conf when the stage is shipped.

Code:
emerge -pve @world
will show bindist* on a few packages to indicate that flag has been changed since the package was built.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
johngalt
Apprentice
Apprentice


Joined: 09 Sep 2004
Posts: 258
Location: 3rd Rock

PostPosted: Tue Jun 12, 2018 6:00 am    Post subject: Reply with quote

Thanks for the info, folks.
_________________
desultory wrote:
If you want to retain credibility as a functional adult; when you are told that you are acting boorishly, the correct response is to consider that possibility and act accordingly to correct that behavior.


Amen.
Back to top
View user's profile Send private message
johngalt
Apprentice
Apprentice


Joined: 09 Sep 2004
Posts: 258
Location: 3rd Rock

PostPosted: Tue Jun 12, 2018 6:19 am    Post subject: Reply with quote

NeddySeagoon wrote:
johngalt,

The stage3 was built with the bindist USE flag but its no longer set in make.conf when the stage is shipped.

Code:
emerge -pve @world
will show bindist* on a few packages to indicate that flag has been changed since the package was built.


Ha! I knew I'd find something crazy happening here eventually.

So, running that also gave me this at the bottom:

Code:
Total: 45 packages (30 new, 15 reinstalls), Size of downloads: 378,259 KiB

 * Error: circular dependencies:

(virtual/jdk-1.8.0-r3:1.8/1.8::gentoo, ebuild scheduled for merge) depends on
 (dev-java/icedtea-bin-3.8.0:8/8::gentoo, ebuild scheduled for merge) (runtime)
  (net-print/cups-2.2.7:0/0::gentoo, ebuild scheduled for merge) (runtime)
   (virtual/jre-1.8.0-r1:1.8/1.8::gentoo, ebuild scheduled for merge) (buildtime)
    (virtual/jdk-1.8.0-r3:1.8/1.8::gentoo, ebuild scheduled for merge) (runtime)

It might be possible to break this cycle
by applying any of the following changes:
- dev-java/icedtea-bin-3.8.0 (Change USE: +multilib)
- dev-java/icedtea-bin-3.8.0 (Change USE: -cups)
- net-print/cups-2.2.7 (Change USE: -java)

Note that this change can be reverted, once the package has been installed.

Note that the dependency graph contains a lot of cycles.
Several changes might be required to resolve all cycles.
Temporarily changing some use flag for all packages might be the better option.


I'm looking around for an answer, but I'm guessing that removing cups from java and java from cups would be the ideal thing to do.

The reason I leave out multilib is that 'emerge --info | grep ^USE' gives me

Code:
USE="/ X a52 aac acl acpi alsa amd64 apm audiofile berkdb bluetooth branding bzip2 cairo caps cdda cddb cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam flac fortran gdbm geoip geolocation gif glamor gphoto2 gpm gsl gstreamer gtk iconv ipv6 java jpeg lcms ldap libnotify libtirpc lm_sensors mad matroska mng modules mp3 mp4 mpeg mtp multilib ncurses networkmanager nls nptl ogg opengl openmp oss pam pango pcre pdf png policykit ppds qt3support qt5 raw readline samba sdl seccomp session skey slang snmp sound spell ssl startup-notification svg syslog tcpd threads tiff truetype udev udisks unicode upower usb vorbis wifi wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ALSA_CARDS="hda-intel usb-audio" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon plan sheets stage words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-0" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_5" PYTHON_TARGETS="python2_7 python3_5" RUBY_TARGETS="ruby23" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"


And in there I see multilib is already globally enabled, right?
_________________
desultory wrote:
If you want to retain credibility as a functional adult; when you are told that you are acting boorishly, the correct response is to consider that possibility and act accordingly to correct that behavior.


Amen.
Back to top
View user's profile Send private message
johngalt
Apprentice
Apprentice


Joined: 09 Sep 2004
Posts: 258
Location: 3rd Rock

PostPosted: Tue Jun 12, 2018 6:24 am    Post subject: Reply with quote

So, the easiest way to do so would be for me to issue:

Code:

echo "dev-java/icedtea-bin-3.8.0 -cups" >> /etc/portage/package.use/icedtea
echo "net-print/cups-2.2.7 -java" >> /etc/portage/package.use/cups


Which would make them global overrides for these two packages from here on out, avoiding this cyclic dependency from now on, correct?

Or would this be version specific, and I need to be more generic, so leave off both packages' version numbers?
_________________
desultory wrote:
If you want to retain credibility as a functional adult; when you are told that you are acting boorishly, the correct response is to consider that possibility and act accordingly to correct that behavior.


Amen.
Back to top
View user's profile Send private message
LIsLinuxIsSogood
Veteran
Veteran


Joined: 13 Feb 2016
Posts: 1014

PostPosted: Tue Jun 12, 2018 8:06 am    Post subject: Reply with quote

You have many options for specifying the slot and package. Usually the level of ebuilds are at atom level and has to do with the ebuild writer maintaining it. There is probably an issue there if you look deep enough that could need the attention of one of these package maintainers. I would suggest trying either:

1) disabling use flag for java... in Cups

2) maybe just specifying the multilib use flag since the global flag is not getting applied...


Otherwise, your solution seems fairly good, except that if the problem is not resolved in the next version bump of the software then you could run into it again.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43186
Location: 56N 3W

PostPosted: Tue Jun 12, 2018 8:55 am    Post subject: Reply with quote

johngalt,

The important thing here is
Code:
Note that this change can be reverted, once the package has been installed.


First try
Code:
USE="-cups" emerge -pve @world
This is one time where you want to have portage forget the USE flag change.
The idea is to install java without cups support just long enough to have cups install, then drop the USE="-cups" and do it again.
There is no need to use /etc/portage/package.use/ for this temporary change but it will work.
Well, dev-java/icedtea-bin-3.8.0 needs a comparison operator as you provide a version.
echo ... >> ... is usually a bad thing. One day you will only use >, but that's what backups are for.

multilib comes from the stage3 and affects the on disk layout of your install. Its possible to go from a multilib to no-multilib install but not the other way.
It tells build systems that you want both 32 bit and 64 bit code built.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
LIsLinuxIsSogood
Veteran
Veteran


Joined: 13 Feb 2016
Posts: 1014

PostPosted: Wed Jun 13, 2018 12:44 am    Post subject: Reply with quote

Neddy, hate to be prodding for more information but please explain further regarding global multilib use flag. If this thing worked as expected shouldn't all global USE flags be applied at the time of compiling of new packages as well as the other USE variables set at the time of system installation?

Quote:
The idea is to install java without cups support just long enough to have cups install, then drop the USE="-cups" and do it again.


As for another possible way to do this would be to just remove java altogether...A far superior approach in my opinion unless you have a need for it on your system.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7071

PostPosted: Wed Jun 13, 2018 11:54 am    Post subject: Reply with quote

and another way would be --nodeps the virtuals, cups and icedtea, because the real issue is just a circual dep over the virtual/jdk
Back to top
View user's profile Send private message
gordonb3
Apprentice
Apprentice


Joined: 01 Jul 2015
Posts: 185

PostPosted: Wed Jun 13, 2018 7:44 pm    Post subject: Reply with quote

Seems like nobody is answering the original question...

`bindist` flag will be required if you are building packages or possibly a complete operating system to be used by other people than yourself. The result of this flag is that it will deselect parts of the code for which the license agreement states that you may not freely distribute these as binaries.

The `problem` with setting this USE flag as @krinn mentions, is that devs sometimes expire package versions that can build with `bindist` and portage will request you to alter the value of that for some packages. Which really doesn't work because then the next dependency will complain about it. And of course it gets to be a real problem if you are developing or maintaining something that disallows dropping that USE flag. Example: the current main tree does not have a version of hostapd that can build with `bindist` set, so without using an overlay that allows installing a version that does you are legally not allowed to create a Gentoo based distribution that supplies a WiFi access point.

In short: enabling USE `bindist` is for developers. It is safe and in most cases advisable to drop it if you are a user.
Back to top
View user's profile Send private message
johngalt
Apprentice
Apprentice


Joined: 09 Sep 2004
Posts: 258
Location: 3rd Rock

PostPosted: Thu Jun 14, 2018 4:28 pm    Post subject: Reply with quote

@NeddySeadragoon (see what I did there?) Thanks for the advice.

In going back and reading what each flags listed in the USE flag index actually does, I realized that I needed a bit of trimming anyway. Some of the flags I had selected may apply to 20 or 30 different packages, but in reality I owuld only be using 1 or 2 of those, so in my specific case, the rule of 5 was not validated (and the major mistake I associated with that was that the rule of 5 applied globally, as opposed to *me*).

I've trimmed it down quite a bit, and in the process removed the offending java and cups global flags. For the packages that need them I'll build them in there.

@LisLinuxIsSogood - that's what I ended up doing. I will need at least parts of the JAVA SDK on there, but the majority of packages iI want installed have 0 reliance on JAVA itself, but I had mistakenly fallen into the same trap I did over a decade ago when I was building from stage 1 and tried to (n00bishly) include flags for everything I thought I would need to run the system.

@krinn - Ahh, yeah, thanks for that - I might run into this again at a later point when I actually install the SDK, so good to know.

@gordonb3 - thank you for the detailed explanation of the bindist flag. Makes a lot more sense now. And thanks for the example - it really clarified the issue.

So, bindist java and cups all 3 removed. The ones I have left I have included simply for simplicity sake, as more than a few of them are necessary for when I install XFCE and get the DM running correctly, but another skim through the index and what relies on each flag and I should be able to build a list of flags I can add for specific packages and clean up make.conf some more.

@everyone - thanks again for the help and the patience. I've done what I can to research problems that I run into on my own (including, most recently, having the kernel compile fail because there was no lzo package emerged when I set LZO compression for the kernel - oops!). If there is one thing that brought me back to Gentoo as opposed to sticking *any* other distro on this laptop it is the fact that I (fondly!) remember the vast amount of help I received years ago when I first got started in Gentoo, in the true build from scratch Stage one days.

You guys have not disappointed - the community is just as helpful now as it was back then.

Thank you!
_________________
desultory wrote:
If you want to retain credibility as a functional adult; when you are told that you are acting boorishly, the correct response is to consider that possibility and act accordingly to correct that behavior.


Amen.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Installing Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum