View previous topic :: View next topic |
Author |
Message |
mounty1 l33t
Joined: 06 Jul 2006 Posts: 942 Location: Queensland
|
Posted: Fri Mar 08, 2024 9:45 am Post subject: How to stop EBUILD performing premerge checks [SOLVED] |
|
|
It's well known that you can use I_KNOW_WHAT_I_AM_DOING=1 to stop emerge from performing checks.
emerge is a front-end for ebuild.
How do you prevent ebuild whateverthepackage.ebuild compile from performing the checks? I_KNOW_WHAT_I_AM_DOING=1 doesn't do it. I.e., how does emerge invoke ebuild when the env. var be set?
I need this because on one machine, emerge chromium just dies for some reason and the workaround is repeatedly to run ebuild chromium-version.ebuild compile. Yes I know it would be nice to find out why but I just don't have time or interest in fixing crappy little build problems.
The check is failing because /var/tmp/portage is a 32 GiB file system, chromium is taking 16 GiB so the check for 19 GiB free space is failing. I tried mounting an empty file system at /var/tmp/portage/www-client/chromium-blah/temp/2 (so that in fact there is 19 GiB free under .../temp) but the test was written by Microsoft and fails anyway, no doubt by trying to be too clever and failing.
So to repeat the question: how do you prevent ebuild whateverthepackage.ebuild compile from performing the checks? _________________ Michael Mounteney
Last edited by mounty1 on Fri Mar 08, 2024 8:08 pm; edited 1 time in total |
|
Back to top |
|
|
CaptainBlood Advocate
Joined: 24 Jan 2010 Posts: 3839
|
Posted: Fri Mar 08, 2024 10:44 am Post subject: Re: How to stop EBUILD performing premerge checks |
|
|
mounty1 wrote: | The check is failing because /var/tmp/portage is a 32 GiB file system, chromium is taking 16 GiB so the check for 19 GiB free space is failing. I tried mounting an empty file system at /var/tmp/portage/www-client/chromium-blah/temp/2 (so that in fact there is 19 GiB free under .../temp) but the test was written by Microsoft and fails anyway, no doubt by trying to be too clever and failing. | This sounds confusing here... I may be mistaken
Thks 4 ur attention, interest & support. _________________ USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. " |
|
Back to top |
|
|
Genone Retired Dev
Joined: 14 Mar 2003 Posts: 9605 Location: beyond the rim
|
Posted: Fri Mar 08, 2024 11:03 am Post subject: |
|
|
Space checks are performed by the check-reqs eclass. Skimming over that, looks like you can set CHECKREQS_DONOTHING to any value which will then bypass the die() call (the check is still performed and you'll get the message, but execution will continue).
Also I_KNOW_WHAT_I_AM_DOING is not a real thing, there are zero references to it in portage itself (some ebuilds or scripts might reference it, but that's just random then). |
|
Back to top |
|
|
wjb l33t
Joined: 10 Jul 2005 Posts: 629 Location: Fife, Scotland
|
Posted: Fri Mar 08, 2024 11:56 am Post subject: |
|
|
You can use package.env to tweak builds for individual packages, Gentoo Wiki: /etc/portage/package.env
So you could change MAKEOPTS to use less cores for chromium, which should reduce the RAM requirements - hopefully to something that will pass the check.
Or modify an ebuild function. |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2390
|
Posted: Fri Mar 08, 2024 12:04 pm Post subject: |
|
|
wjb wrote: | You can use package.env to tweak builds for individual packages, Gentoo Wiki: /etc/portage/package.env
So you could change MAKEOPTS to use less cores for chromium, which should reduce the RAM requirements - hopefully to something that will pass the check.
Or modify an ebuild function. |
That's not what OP asked for. There's a difference between disk space and memory requirements. When you want to resume an ebuild, although the sources are unpacked, the pre-merge check is still executed and it fails, although no more additional disk space is required. /Actually the ebuild has no way of knowing that in advance/
@CaptainBlood, does that clear the quoted statement you find confusing?
Genone wrote: | Space checks are performed by the check-reqs eclass. Skimming over that, looks like you can set CHECKREQS_DONOTHING to any value which will then bypass the die() call (the check is still performed and you'll get the message, but execution will continue).
Also I_KNOW_WHAT_I_AM_DOING is not a real thing, there are zero references to it in portage itself (some ebuilds or scripts might reference it, but that's just random then). |
I wish I knew that a few years back. It might have saved a lot of unnecessary compile hours for my old and tired setup back then.
Best Regards,
Georgi |
|
Back to top |
|
|
CaptainBlood Advocate
Joined: 24 Jan 2010 Posts: 3839
|
Posted: Fri Mar 08, 2024 12:37 pm Post subject: |
|
|
Code: | /var/tmp/portage is a 32 GiB file system, chromium is taking 16 GiB | What does chromium has to do with /var/tmp/portage?
noob here, never used chromium in gentoo... Code: | test was written by Microsoft | even more confusing to me
Thks 4 ur attention, interest & support. _________________ USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. " |
|
Back to top |
|
|
Hu Administrator
Joined: 06 Mar 2007 Posts: 22602
|
Posted: Fri Mar 08, 2024 3:10 pm Post subject: |
|
|
www-client/chromium is a Gentoo Portage package which, like all Portage packages, will be built in a directory under PORTAGE_TMPDIR, which defaults to /var/tmp/portage. OP's problem then is that the artifacts from the first failed build consume disk space and make the build area look "too small" because the check assumes that the ebuild is not yet using any space, and that unpacking and building will consume space. In OP's case, unpacking has been done and will not be repeated, so the space consumed by source files does not need to be consumed again. Some amount of compilation has been done before the failure, so some build artifacts exist and consume space, and will not be duplicated by resuming the build.
That comment about the test by Microsoft seems wrong to me. OP seems to be asking about a Gentoo Portage safety check, not something from the upstream project.
For some purposes, which may or may not include the one about which the OP is asking, Portage restores the environment from the initial build when processing the resumption. This may (note: I have not checked this!) mean that the override environment variable needs to be set in the first call to emerge, so that it is present in the restored environment that the later manual ebuild sets up. If I am right, which I may not be, setting the override variable only on the attempted ebuild resumption will not propagate into the eclass, and therefore will have no effect. |
|
Back to top |
|
|
mounty1 l33t
Joined: 06 Jul 2006 Posts: 942 Location: Queensland
|
Posted: Fri Mar 08, 2024 8:08 pm Post subject: |
|
|
Hu wrote: | ... Portage restores the environment from the initial build when processing the resumption. |
Thank you. This is the key.
In /var/tmp/portage/www-client/chromium-blahversion/temp/environment, add Code: | declare CHECKREQS_DONOTHING="1" | and the ebuild proceeds. _________________ Michael Mounteney |
|
Back to top |
|
|
mounty1 l33t
Joined: 06 Jul 2006 Posts: 942 Location: Queensland
|
Posted: Fri Mar 08, 2024 8:13 pm Post subject: |
|
|
Hu wrote: | That comment about the test by Microsoft seems wrong to me. OP seems to be asking about a Gentoo Portage safety check, not something from the upstream project.. |
It was a flippant remark referencing Microsoft's predilection for building 'smarts' into their 'products' which cause more problems than they solve. _________________ Michael Mounteney |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2390
|
Posted: Sat Mar 09, 2024 9:45 am Post subject: |
|
|
Judging by the following:
mounty1 wrote: | Hu wrote: | ... Portage restores the environment from the initial build when processing the resumption. |
Thank you. This is the key.
In /var/tmp/portage/www-client/chromium-blahversion/temp/environment, add Code: | declare CHECKREQS_DONOTHING="1" | and the ebuild proceeds. |
I think a clarification about the following is needed:
Genone wrote: | Space checks are performed by the check-reqs eclass. Skimming over that, looks like you can set CHECKREQS_DONOTHING to any value which will then bypass the die() call (the check is still performed and you'll get the message, but execution will continue).
|
You don't need to modify anything in PORTAGE_TEMPDIR.
You can define variables at the command line and they'll take precedence over the ones defined in files. What you needed to do was:
Code: | CHECKREQS_DONOTHING="1" FEATURES="keepwork" emerge chromium |
CHECKREQS_DONOTHING will cause portage to skip chicks and FEATURES="keepwork" will prevent portage from cleaning up PORTAGE_TEMDIR. The second part is necessary to avoid modifying make.conf or per-package configuration in /etc/portage.
Best Regards,
Georgi |
|
Back to top |
|
|
CaptainBlood Advocate
Joined: 24 Jan 2010 Posts: 3839
|
Posted: Sat Mar 09, 2024 2:10 pm Post subject: Re: How to stop EBUILD performing premerge checks [SOLVED] |
|
|
mounty1 wrote: | How do you prevent ebuild whateverthepackage.ebuild compile from performing the checks? | I overlooked that,
which is a workaround to not restart the emerge from scratch; that make sense with lasting ebuilds.
I gave up trying to do this, because of mitigated results, e.g. lasting failed re-builds.
I currently favor to restart from scratch.
This post may help to reconsider my position.
Thks 4 ur attention, interest & support. _________________ USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. " |
|
Back to top |
|
|
|