FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Development

 
 
LinkBack Thread Tools
 
Old 08-15-2012, 02:04 PM
Fabian Groffen
 
Default remove system set?

On 15-08-2012 09:43:37 -0400, Rich Freeman wrote:
> In that case then just ignore that whole section of my post.
> Personally I consider the existence of @system a bit of a hack - like
> the big kernel lock. It works OK, but here and there we run into
> issues with it.
>
> Williamh pointed out that the plan for now is to virtualize
> openrc/systemd, which certainly is a solution to that problem. Being
> an evolutionary vs revolutionary solution it is probably the better
> next step. In fact, if you kept making many steps like that one
> before long @system would become mostly a big collection of virtuals
> anyway, and at that point its only reason for being would be as an
> arbitrary list of packages that ebuild maintainers shouldn't add as
> dependencies, at which point you could start stripping it away.
>
> That isn't unlike what was done to get rid of the big kernel lock -
> just remove it one instance at a time...

I see it more as the set of packages I need to have on my system/Prefix,
to have Portage and its ebuilds working happily and me being able to do
basic stuff. One can debate whether ssh belongs to that set. For a
non-Prefix (regular Gentoo?) system it's sort of essential, for a Prefix
system, it's quite handy to have an ssh that actually works.

Nevertheless, the system set, is a vital part of bootstrapping e.g. a
Prefix setup. The whole route leading up to the situation of having the
full set installed consists of numerous --nodeps emerges carefully put
in an order where one can get away with the errors one receives due to
missing stuff.

From that angle, if you wouldd remove the system set, would you add its
contents to the Portage ebuild? Portage itself doesn't need a compiler
or might not need gawk, but whatever it runs (ebuilds) often need so.

Adding libc, a compiler, linker, shell, etc. to almost any every ebuild
looks pretty much useless to me. Adding deps for all regular tools an
ebuild uses (bash, sed, awk, cut, wc, ...) seems like error-prone and
pretty much useless to me as well. So, there is the system set which
just is the central place where those packages are recorded.


--
Fabian Groffen
Gentoo on a different level
 
Old 08-16-2012, 12:05 PM
Rich Freeman
 
Default remove system set?

On Wed, Aug 15, 2012 at 10:04 AM, Fabian Groffen <grobian@gentoo.org> wrote:
>
> From that angle, if you wouldd remove the system set, would you add its
> contents to the Portage ebuild? Portage itself doesn't need a compiler
> or might not need gawk, but whatever it runs (ebuilds) often need so.

Nope - I'd add them to every ebuild, and only where needed. That's
the whole point.

>
> Adding libc, a compiler, linker, shell, etc. to almost any every ebuild
> looks pretty much useless to me. Adding deps for all regular tools an
> ebuild uses (bash, sed, awk, cut, wc, ...) seems like error-prone and
> pretty much useless to me as well. So, there is the system set which
> just is the central place where those packages are recorded.

It is only useful for situations where people want to do something
unusual. Some would argue that this is the only situation where
Gentoo is useful. If I wanted a system just like everybody else's I
guess I'd run Ubuntu, if not Windows or OSX.

In any case, I do agree that getting there is associated with pain. I
just like to think that getting there "someday" would be nice. I know
that a systematic effort exists in mathematics to try to reduce all of
math to a minimum set of axioms and have everything else be formally
derived. I consider that a thing of beauty, even if I don't care to
read the two volumes necessary to get to 1+1=2.

Rich
 
Old 08-17-2012, 03:13 AM
Doug Goldstein
 
Default remove system set?

On Thu, Aug 16, 2012 at 7:05 AM, Rich Freeman <rich0@gentoo.org> wrote:
> On Wed, Aug 15, 2012 at 10:04 AM, Fabian Groffen <grobian@gentoo.org> wrote:
>>
>> From that angle, if you wouldd remove the system set, would you add its
>> contents to the Portage ebuild? Portage itself doesn't need a compiler
>> or might not need gawk, but whatever it runs (ebuilds) often need so.
>
> Nope - I'd add them to every ebuild, and only where needed. That's
> the whole point.
>
>>
>> Adding libc, a compiler, linker, shell, etc. to almost any every ebuild
>> looks pretty much useless to me. Adding deps for all regular tools an
>> ebuild uses (bash, sed, awk, cut, wc, ...) seems like error-prone and
>> pretty much useless to me as well. So, there is the system set which
>> just is the central place where those packages are recorded.
>
> It is only useful for situations where people want to do something
> unusual. Some would argue that this is the only situation where
> Gentoo is useful. If I wanted a system just like everybody else's I
> guess I'd run Ubuntu, if not Windows or OSX.
>
> In any case, I do agree that getting there is associated with pain. I
> just like to think that getting there "someday" would be nice. I know
> that a systematic effort exists in mathematics to try to reduce all of
> math to a minimum set of axioms and have everything else be formally
> derived. I consider that a thing of beauty, even if I don't care to
> read the two volumes necessary to get to 1+1=2.
>
> Rich
>

The other point of the system set is to get rid of the chicken and egg
problem. For example, virtually every package in the system set ships
as a tar, including tar itself. All the compression utilities ship as
tars, which need to be installed to build tar (think -z, -j, -J). You
need a standard C library to run virtually everything including tar,
which you need to extract your standard C sources. The list goes on.


--
Doug Goldstein
 
Old 08-17-2012, 03:26 AM
Michael Mol
 
Default remove system set?

On Thu, Aug 16, 2012 at 11:13 PM, Doug Goldstein <cardoe@gentoo.org> wrote:
> On Thu, Aug 16, 2012 at 7:05 AM, Rich Freeman <rich0@gentoo.org> wrote:

[snip]

>>
>> It is only useful for situations where people want to do something
>> unusual. Some would argue that this is the only situation where
>> Gentoo is useful. If I wanted a system just like everybody else's I
>> guess I'd run Ubuntu, if not Windows or OSX.
>>
>> In any case, I do agree that getting there is associated with pain. I
>> just like to think that getting there "someday" would be nice. I know
>> that a systematic effort exists in mathematics to try to reduce all of
>> math to a minimum set of axioms and have everything else be formally
>> derived. I consider that a thing of beauty, even if I don't care to
>> read the two volumes necessary to get to 1+1=2.
>>
>> Rich
>>
>
> The other point of the system set is to get rid of the chicken and egg
> problem. For example, virtually every package in the system set ships
> as a tar, including tar itself. All the compression utilities ship as
> tars, which need to be installed to build tar (think -z, -j, -J). You
> need a standard C library to run virtually everything including tar,
> which you need to extract your standard C sources. The list goes on.

Bootstrapping is an inherently curious problem. Most systems are built
upon the systems they themselves build, but getting to that
self-hosting state always requires some unclean solution. (E.g. the
first C compiler couldn't have been written in C. The first x86
assembler wouldn't have been written in x86 assembler. Etc.)

Ideally, you'd want as narrow a bootstrapping channel as possible.
Assuming things start off statically linked, what's the sequence for
going from an empty chroot to stage 1, 2, 3...? What are the starting
conditions?


--
:wq
 
Old 08-17-2012, 07:43 PM
"Gregory M. Turner"
 
Default remove system set?

On 8/16/2012 8:26 PM, Michael Mol wrote:


Ideally, you'd want as narrow a bootstrapping channel as possible.


I guess I tend to think that, too, and I'm pretty sure it's correct. But
I don't normally think about why, and since you've prompted me to do so,
perhaps it's a good moment to interject the fairly obvious, but
amusingly contrary notion that there is too much of a good thing to be
had in this dimension.


I suppose the main reason to want a minimal pre-bootstrap tool-chain is
to maximize repeatability, minimize platform quirks, maximize
time-stability in the face of changing code bases, and so forth.


Plus... you know... it's a lot more likely to make somebody say "Wow!"
the "narrow" way. Which maybe sounds like I'm poking fun, but I do
actually think there's some intrinsic value in that.


However, there /are/ also reasons to make the bootstrap-er machine more
fat and complex. Most of them boiling down to there only being so much
time in a day.


Otherwise we would boot-strap from stage -10, consisting only of a sed
script and some architecture files to generate crude asm lexers ....



-gmt
 
Old 08-17-2012, 08:10 PM
Zac Medico
 
Default remove system set?

On 08/16/2012 08:26 PM, Michael Mol wrote:
> Ideally, you'd want as narrow a bootstrapping channel as possible.
> Assuming things start off statically linked, what's the sequence for
> going from an empty chroot to stage 1, 2, 3...? What are the starting
> conditions?

We use sys-apps/catalyst, which builds stage1 in a new $ROOT by simply
extracting a seed stage3 and calling $PORTDIR/scripts/booststrap.sh. The
stage1 is pretty minimal, but it's enough to generate a new stage3 by
simply calling emerge -e @system (you can skip stage2 step entirely).
The stage2 step is just used to rebuild some essential packages for a
more specialized CHOST, so it's only needed when your stage1 has a
generic CHOST and you want to build a stage3 with a more specialized CHOST.
--
Thanks,
Zac
 
Old 08-18-2012, 01:03 AM
Rich Freeman
 
Default remove system set?

On Thu, Aug 16, 2012 at 11:26 PM, Michael Mol <mikemol@gmail.com> wrote:
> Bootstrapping is an inherently curious problem. Most systems are built
> upon the systems they themselves build, but getting to that
> self-hosting state always requires some unclean solution.

Yup, I never viewed getting rid of @system as a solution to the
bootstrapping problem. You could even have an @stage3 set for
convenience, or a meta-virtual to create one, using a fully
functioning Gentoo system. I also wasn't suggesting we have empty
stage3s or anything like that. By all means supply a default
collection of packages, and feel free to include openssh in that
collection. However, those default packages would be nothing more
than a starting point and users could uninstall them at will. Perhaps
portage would have some set it would offer a warning before
uninstalling (either a hardcoded list like @system, or use logic like
any dep of portage or gcc).

Rich
 
Old 08-18-2012, 01:11 AM
Michael Mol
 
Default remove system set?

On Fri, Aug 17, 2012 at 9:03 PM, Rich Freeman <rich0@gentoo.org> wrote:
> On Thu, Aug 16, 2012 at 11:26 PM, Michael Mol <mikemol@gmail.com> wrote:
>> Bootstrapping is an inherently curious problem. Most systems are built
>> upon the systems they themselves build, but getting to that
>> self-hosting state always requires some unclean solution.
>
> Yup, I never viewed getting rid of @system as a solution to the
> bootstrapping problem. You could even have an @stage3 set for
> convenience, or a meta-virtual to create one, using a fully
> functioning Gentoo system. I also wasn't suggesting we have empty
> stage3s or anything like that. By all means supply a default
> collection of packages, and feel free to include openssh in that
> collection. However, those default packages would be nothing more
> than a starting point and users could uninstall them at will. Perhaps
> portage would have some set it would offer a warning before
> uninstalling (either a hardcoded list like @system, or use logic like
> any dep of portage or gcc).

Sure, this makes perfect sense to me. It does depend on having
dependency logic fully expressed, and not dependent on @system as an
inherent dependency. But that's something that ought to be a long-term
goal, not a short-term goal, just based on the amount of work required
to get there, and possibly the work required to maintain it.

Incidentally, I'm pretty sure portage already does offer a warning
when you might unmerge a package that's in @system; on a fresh
install, the first --depclean will try to remove nano, and portage
warns the user.

--
:wq
 

Thread Tools




All times are GMT. The time now is 10:55 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org