Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 11374 - bootstrap script does not save all settings from original make.conf
Summary: bootstrap script does not save all settings from original make.conf
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: Martin Schlemmer (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-11-29 22:13 UTC by Felipe Ghellar
Modified: 2011-10-30 22:20 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Felipe Ghellar 2002-11-29 22:13:21 UTC
I just started a new Gentoo installation. I edited make.conf according to the
instructions and included ACCEPT_KEYWORDS="~x86". I intended to time the
compilation process, so before bootstraping I edited bootstrap.sh, changed all
'emerge <something>' lines to 'emerge -f <somethimg>' and executed it, so I
could exclude downloading times from the measurements. All went fine in this step.

I then restored the original bootstrap.sh and executed it. Strangely enough, it
started to download texinfo-4.2.tar.gz, despite it had already downloaded
texinfo-4.3.tar.gz before. I stopped it, restored make.conf from
make.conf.build, edited bootstrap.sh again and commented out the line that
emerges portage (it was already emerged) and ran it again. It then started to
build texinfo-4.3 as expected. I then checked and noticed that
texinfo-4.3.ebuild currently had "~x86" included in the KEYWORDS.

The conclusion is that when make.conf was overwritten, my ACCEPT_KEYWORDS="~x86"
was thrown away. Maybe the original make.conf should be restored right after
emerging portage, and not just in the end of the whole process.
Comment 1 Martin Schlemmer (RETIRED) gentoo-dev 2002-11-30 14:11:35 UTC
This is known, and maybe wanted behaviour, as you want bootstrap to be
under known to work conditions ....  What I usually do is add it to
my /etc/make.profile/make.defaults ...
Comment 2 Nicholas Jones (RETIRED) gentoo-dev 2002-11-30 19:56:08 UTC
export it in your environment if you want to build your box unstable.
Comment 3 Felipe Ghellar 2002-12-05 11:05:57 UTC
Please forgive me if I got an incorrect impression, but it looks like you are
trying to convince me that it was my fault if Portage didn't respect the
settings I chose, because I shouldn'd have chosen those settings anyway. I don't
want to seem rude, but I'd like to refer to some portions of the Gentoo's
website contents.

Quoting <http://www.gentoo.org/main/en/about.xml>:

"He discovered lots of up-to-date packages that could be auto-built using the
optimizations settings and build-time functionality that he wanted, rather than
what some distro creator thought would be best for him. All of the sudden, Larry
the Cow was in control. And he liked it."

"Portage allows you to set up Gentoo Linux the way you like it -- with the
optimization settings that you want, and with optional build-time functionality
(like GNOME, KDE, mysql, ALSA, LDAP support, etc.) enabled or disabled as you
desire."

"You decide what kind of system you want, and Portage will create it for you."

"the resultant installed binaries will be optimized and customized to your exact
specifications."

Also, in <http://www.gentoo.org/doc/en/gentoo-x86-install.xml>, step 11 is where
I set up my make.conf, and step 12 is where bootstraping takes place. I see no
reason for step 12 to ignore what was set up in step 11.

I understand why make.conf is overwritten, and this is expected. That's why
CHOST, CFLAGS, CXXFLAGS and friends are saved before emerging Portage, right?

So, again, please correct me if I'm wrong, but I believe that restoring the
original make.conf right after Portage is emerged in bootstrap.sh would fix this
issue, and probably any other that would arise when new variables get added to
make.conf.

Thanks for your attention.
Comment 4 Martin Schlemmer (RETIRED) gentoo-dev 2002-12-05 14:48:14 UTC
Because bootstrap is very fragile, we make sure that its merged with *tested*
USE flags ...  This is where the moving of make.conf comes in.  It is also
because some wierd setting in make.conf could cause bootstrap to fail, and
its a lot more time to get it running again than say 'emerge system'.

Now, because CFLAGS and CXXFLAGS are exported in bootstrap.sh, those are what
gets used to compile the packages that gets merged during bootstrap.sh.  Thus
its *only* USE flags that are different from what you set.

At the end of bootstap, your original make.conf is restored, and the 
'emerge system', etc is done with that.

Now, you may argue that we force you to use the USE flags for bootstrap that
we have chosen ... on the other hand, think about this:

Because its not a precompiled Distro, *you* can still edit bootstrap.sh to
suite your needs.  And this is why we try to keep things simple in most
cases .. to give the user the chance to change stuff to suite him, without
having to dig through to much fluff.

On the other hand, if you do reach this level of experience to make changes
to bootstrap.sh, or any other file/ebuild, we *do* expect you to first check
with vanilla scripts/ebuilds if its not due to your hacking that things broke.

So to conclude:

1) Yes, we do force our USE flags on you during bootstrap, but you can edit
   bootstrap.sh if you really like.  Its more to make the experience of first
   time users thus the better that we do this.

2) In theory, your make.conf should be restroed afterwards, and the rest done
   as you selected.  This is of course excluding the cases we know of that
   some flags may cause failure in a particular ebuild or unstability.
Comment 5 Mark Guertin 2003-01-09 16:26:52 UTC
Azarah is very right here

If it doesn't have USE="-* build", as forced in bootstrap.sh things will just
pain not work properly (non-static things for a bootsrap is not a pretty
scenerio) :)
Comment 6 Felipe Ghellar 2003-03-16 15:46:11 UTC
There has recently been a discussion about this on gentoo-dev. Good points were raised there.

This is a link to the start of the thread:
http://article.gmane.org/gmane.linux.gentoo.devel/7383
Comment 7 Martin Schlemmer (RETIRED) gentoo-dev 2003-03-20 10:12:37 UTC
Portage will no longer install /etc/make.conf if 'build' or 'bootstrap' in USE.