* [gentoo-user] Compile large packages as last package @ 2021-08-14 19:20 Ramon Fischer 2021-08-14 21:37 ` Neil Bothwick 2021-08-15 15:48 ` [gentoo-user] " Nikos Chantziaras 0 siblings, 2 replies; 6+ messages in thread From: Ramon Fischer @ 2021-08-14 19:20 UTC (permalink / raw To: Gentoo User [-- Attachment #1.1: Type: text/plain, Size: 733 bytes --] Hello list, I would like to tag or be able to prioritise (not via "nice" or "renice") large packages. Currently, one system is compiling package 245 of 279 and nothing else. "qlop --running --verbose --time" shows me, that it is "qtwebengine", which will compile for a few hours, blocking all other packages. I set "MAKEOPTS" AND "EMERGE_DEFAULT_OPTS" like so: MAKEOPTS="--jobs 8 --load-average 7.2" EMERGE_DEFAULT_OPTS="--jobs 8 --load-average 7.2" Is there any way to tell "portage", that packages like "qtwebengine", "(ungoogled-)chromium", "firefox" and so on are always compiled as last package? Regards -Ramon -- GPG public key: 5983 98DA 5F4D A464 38FD CF87 155B E264 13E6 99BF [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 840 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gentoo-user] Compile large packages as last package 2021-08-14 19:20 [gentoo-user] Compile large packages as last package Ramon Fischer @ 2021-08-14 21:37 ` Neil Bothwick 2021-08-15 15:48 ` [gentoo-user] " Nikos Chantziaras 1 sibling, 0 replies; 6+ messages in thread From: Neil Bothwick @ 2021-08-14 21:37 UTC (permalink / raw To: gentoo-user [-- Attachment #1: Type: text/plain, Size: 578 bytes --] On Sat, 14 Aug 2021 21:20:23 +0200, Ramon Fischer wrote: > Is there any way to tell "portage", that packages like "qtwebengine", > "(ungoogled-)chromium", "firefox" and so on are always compiled as last > package? You can use the --exclude option for emerge. Maybe a script that runs emerge @world with --exclude then again without? While I haven't tried it with a script, I do use --exclude when chromium is in the list because my laptop only has 8GB RAM, which means chromium takes ages. -- Neil Bothwick Isn't 'Criminal Lawyer' rather redundant? [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* [gentoo-user] Re: Compile large packages as last package 2021-08-14 19:20 [gentoo-user] Compile large packages as last package Ramon Fischer 2021-08-14 21:37 ` Neil Bothwick @ 2021-08-15 15:48 ` Nikos Chantziaras 2021-09-08 12:12 ` Ramon Fischer 1 sibling, 1 reply; 6+ messages in thread From: Nikos Chantziaras @ 2021-08-15 15:48 UTC (permalink / raw To: gentoo-user On 14/08/2021 22:20, Ramon Fischer wrote: > Is there any way to tell "portage", that packages like "qtwebengine", > "(ungoogled-)chromium", "firefox" and so on are always compiled as last > package? The simplest way is to exclude those packages in the first update, and then allow them in the second: emerge -uDU @world --exclude "qtwebengine firefox chromium" && emerge -uDU @world The dependency tracker of portage will of course also exclude packages that depend on the excluded packages, unless they themselves have updates pending. In that case, they *might* get built twice; once against the current version of the excluded packages, and then perhaps again on the second run, if there's rebuild triggers involved. Most of the time though, you won't run into cases of redundant rebuilds. Rebuild triggers are not very common. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gentoo-user] Re: Compile large packages as last package 2021-08-15 15:48 ` [gentoo-user] " Nikos Chantziaras @ 2021-09-08 12:12 ` Ramon Fischer 2021-09-08 15:24 ` David M. Fellows 0 siblings, 1 reply; 6+ messages in thread From: Ramon Fischer @ 2021-09-08 12:12 UTC (permalink / raw To: gentoo-user [-- Attachment #1.1: Type: text/plain, Size: 2212 bytes --] Thank you for your ideas! I was actually hoping for a neat hack with "/etc/portage/env/" and "/etc/portage/package.env/", where you can set environment variables. I will try out the following solution: $ < "/etc/portage/package.env/no_tmpfs.conf # custom - 20181121 - rfischer: list packages, which are too big for tmpfs #app-emulation/qemu-kv no_tmpfs.conf #app-office/libreoffice no_tmpfs.conf #dev-java/icedtea no_tmpfs.conf #dev-lang/ghc no_tmpfs.conf #dev-lang/rust no_tmpfs.conf #mail-client/thunderbird no_tmpfs.conf #sci-libs/tensorflow no_tmpfs.conf #sys-devel/gcc no_tmpfs.conf #www-client/firefox no_tmpfs.conf #www-client/ungoogled-chromium no_tmpfs.conf #throttle_make_emerge.conf $ < "${HOME}/bin/update.sh" [...] large_package_list=$(/bin/grep --extended-regexp --only-matching "[a-z]+-[a-z]+\/[-0-9a-zA-Z]+" "/etc/portage/package.env/no_tmpfs.conf") [...] /usr/bin/emerge --ask --update --deep --newuse --tree --verbose --exclude="${large_package_list//$'\n'/ }" @world /usr/bin/emerge --ask --update --deep --newuse --tree --verbose @world -Ramon On 15/08/2021 17:48, Nikos Chantziaras wrote: > On 14/08/2021 22:20, Ramon Fischer wrote: >> Is there any way to tell "portage", that packages like "qtwebengine", >> "(ungoogled-)chromium", "firefox" and so on are always compiled as >> last package? > > The simplest way is to exclude those packages in the first update, and > then allow them in the second: > > emerge -uDU @world --exclude "qtwebengine firefox chromium" && emerge > -uDU @world > > The dependency tracker of portage will of course also exclude packages > that depend on the excluded packages, unless they themselves have > updates pending. In that case, they *might* get built twice; once > against the current version of the excluded packages, and then perhaps > again on the second run, if there's rebuild triggers involved. > > Most of the time though, you won't run into cases of redundant > rebuilds. Rebuild triggers are not very common. > > -- GPG public key: 5983 98DA 5F4D A464 38FD CF87 155B E264 13E6 99BF [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 840 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gentoo-user] Re: Compile large packages as last package 2021-09-08 12:12 ` Ramon Fischer @ 2021-09-08 15:24 ` David M. Fellows 2021-09-08 19:57 ` [gentoo-user] Re: Compile large packages as last package [SOLVED] Ramon Fischer 0 siblings, 1 reply; 6+ messages in thread From: David M. Fellows @ 2021-09-08 15:24 UTC (permalink / raw To: gentoo-user, Ramon Fischer >Thank you for your ideas! > >I was actually hoping for a neat hack with "/etc/portage/env/" and >"/etc/portage/package.env/", where you can set environment variables. Did you look at example 2 in https://wiki.gentoo.org/wiki//etc/portage/package.env ? It seems to address your problem. DaveF > >I will try out the following solution: > > $ < "/etc/portage/package.env/no_tmpfs.conf > # custom - 20181121 - rfischer: list packages, which are too big for > tmpfs > #app-emulation/qemu-kv no_tmpfs.conf > #app-office/libreoffice no_tmpfs.conf > #dev-java/icedtea no_tmpfs.conf > #dev-lang/ghc no_tmpfs.conf > #dev-lang/rust no_tmpfs.conf > #mail-client/thunderbird no_tmpfs.conf > #sci-libs/tensorflow no_tmpfs.conf > #sys-devel/gcc no_tmpfs.conf > #www-client/firefox no_tmpfs.conf > #www-client/ungoogled-chromium no_tmpfs.conf #throttle_make_emerge.conf > > $ < "${HOME}/bin/update.sh" > [...] > large_package_list=$(/bin/grep --extended-regexp --only-matching > "[a-z]+-[a-z]+\/[-0-9a-zA-Z]+" "/etc/portage/package.env/no_tmpfs.conf") > [...] > /usr/bin/emerge --ask --update --deep --newuse --tree --verbose > --exclude="${large_package_list//$'\n'/ }" @world > /usr/bin/emerge --ask --update --deep --newuse --tree --verbose @world > >-Ramon > >On 15/08/2021 17:48, Nikos Chantziaras wrote: >> On 14/08/2021 22:20, Ramon Fischer wrote: >>> Is there any way to tell "portage", that packages like "qtwebengine", >>> "(ungoogled-)chromium", "firefox" and so on are always compiled as >>> last package? >> >> The simplest way is to exclude those packages in the first update, and >> then allow them in the second: >> >> emerge -uDU @world --exclude "qtwebengine firefox chromium" && emerge >> -uDU @world >> >> The dependency tracker of portage will of course also exclude packages >> that depend on the excluded packages, unless they themselves have >> updates pending. In that case, they *might* get built twice; once >> against the current version of the excluded packages, and then perhaps >> again on the second run, if there's rebuild triggers involved. >> >> Most of the time though, you won't run into cases of redundant >> rebuilds. Rebuild triggers are not very common. >> >> > >-- >GPG public key: 5983 98DA 5F4D A464 38FD CF87 155B E264 13E6 99BF > > > >>> application/pgp-signature attachment, name=OpenPGP_signature ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [gentoo-user] Re: Compile large packages as last package [SOLVED] 2021-09-08 15:24 ` David M. Fellows @ 2021-09-08 19:57 ` Ramon Fischer 0 siblings, 0 replies; 6+ messages in thread From: Ramon Fischer @ 2021-09-08 19:57 UTC (permalink / raw To: David M. Fellows, gentoo-user [-- Attachment #1.1: Type: text/plain, Size: 3560 bytes --] Thank you for the hint, but I am very aware of this. As the subject says, I want to compile large packages as last package, since it sometimes happens, that a large package may get compiled as package 245 of 300 for example; blocking other small packages. I just re-used "/etc/portage/package.env/no_tmpfs.conf", since it already contains a list of large packages, which most likely need a long time to compile. I should have been more elaborate in my last e-mail: I was actually hoping for a neat hack, where you can tag or prioritise (not nice or renice) packages in "/etc/portage/env/" or "/etc/portage/package.env/" to compile them as last packages. The solution with "--exclude" is working well so far; I had no redundant rebuilds. :) Maybe I need to tweak it later on, if rebuilds occur frequently, but this for another time. -Ramon On 08/09/2021 17:24, David M. Fellows wrote: >> Thank you for your ideas! >> >> I was actually hoping for a neat hack with "/etc/portage/env/" and >> "/etc/portage/package.env/", where you can set environment variables. > Did you look at example 2 in > https://wiki.gentoo.org/wiki//etc/portage/package.env ? > > It seems to address your problem. > DaveF >> I will try out the following solution: >> >> $ < "/etc/portage/package.env/no_tmpfs.conf >> # custom - 20181121 - rfischer: list packages, which are too big for >> tmpfs >> #app-emulation/qemu-kv no_tmpfs.conf >> #app-office/libreoffice no_tmpfs.conf >> #dev-java/icedtea no_tmpfs.conf >> #dev-lang/ghc no_tmpfs.conf >> #dev-lang/rust no_tmpfs.conf >> #mail-client/thunderbird no_tmpfs.conf >> #sci-libs/tensorflow no_tmpfs.conf >> #sys-devel/gcc no_tmpfs.conf >> #www-client/firefox no_tmpfs.conf >> #www-client/ungoogled-chromium no_tmpfs.conf #throttle_make_emerge.conf >> >> $ < "${HOME}/bin/update.sh" >> [...] >> large_package_list=$(/bin/grep --extended-regexp --only-matching >> "[a-z]+-[a-z]+\/[-0-9a-zA-Z]+" "/etc/portage/package.env/no_tmpfs.conf") >> [...] >> /usr/bin/emerge --ask --update --deep --newuse --tree --verbose >> --exclude="${large_package_list//$'\n'/ }" @world >> /usr/bin/emerge --ask --update --deep --newuse --tree --verbose @world >> >> -Ramon >> >> On 15/08/2021 17:48, Nikos Chantziaras wrote: >>> On 14/08/2021 22:20, Ramon Fischer wrote: >>>> Is there any way to tell "portage", that packages like "qtwebengine", >>>> "(ungoogled-)chromium", "firefox" and so on are always compiled as >>>> last package? >>> The simplest way is to exclude those packages in the first update, and >>> then allow them in the second: >>> >>> emerge -uDU @world --exclude "qtwebengine firefox chromium" && emerge >>> -uDU @world >>> >>> The dependency tracker of portage will of course also exclude packages >>> that depend on the excluded packages, unless they themselves have >>> updates pending. In that case, they *might* get built twice; once >>> against the current version of the excluded packages, and then perhaps >>> again on the second run, if there's rebuild triggers involved. >>> >>> Most of the time though, you won't run into cases of redundant >>> rebuilds. Rebuild triggers are not very common. >>> >>> >> -- >> GPG public key: 5983 98DA 5F4D A464 38FD CF87 155B E264 13E6 99BF >> >> >> >>>> application/pgp-signature attachment, name=OpenPGP_signature -- GPG public key: 5983 98DA 5F4D A464 38FD CF87 155B E264 13E6 99BF [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 840 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-09-08 19:58 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-08-14 19:20 [gentoo-user] Compile large packages as last package Ramon Fischer 2021-08-14 21:37 ` Neil Bothwick 2021-08-15 15:48 ` [gentoo-user] " Nikos Chantziaras 2021-09-08 12:12 ` Ramon Fischer 2021-09-08 15:24 ` David M. Fellows 2021-09-08 19:57 ` [gentoo-user] Re: Compile large packages as last package [SOLVED] Ramon Fischer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox