Re: [gentoo-dev] Init systems portage category

2009-10-12 Thread Richard Freeman

Jesús Guerrero wrote:


In my opinion, if we really want to speak about a way to implement that
kind of snapshoting, we should start thinking about providing a better
integration with lvm, from the root. lvm can take care of the snapshots on
a non-expensive way, and it would be relatively easy to implement. However
a lot of stuff would need to be re-documented, starting from the handbook,
and the init system.


LVM snapshotting is extremely wasteful - it has no knowledge of the 
underlying structure of a filesystem.  For example, if I moved all the 
files around on a fairly full ext3 filesystem, an LVM snapshot would 
consume the full size of the filesystem.  However, a filesystem-level 
solution wouldn't need to store a single byte of data since nothing 
actually changed.


Also - a snapshot restoration obliterates ALL data on the partition that 
has changed since the snapshot was taken - so unless the essential files 
are on a separate partition it won't work out well.


LVM snapshots really seem to be a solution to atomic backups - if you 
unmount, snapshot, and remount a filesystem then you can run a 
self-consistent backup off of the snapshot with minimal downtime.  The 
wasted space isn't a big deal since the snapshot would be deleted before 
it grew too far.


Finally - I'm not to eager to try out lvm2 again anytime soon - I lost a 
ton of data when something glitched and wiped out data across multiple 
lvm partitions.  I know that the error must have been in the lvm layer 
(not md or the filesystem), because when I fscked and repaired one 
filesystem, another filesystem instantly became hosed (on a separate lvm 
partition).  Somehow the partitions had gotten scrambled together and 
the fsck was crossing partition boundaries.  Plus, dmesg was dumping all 
kinds of compliants at the md layer about the lvm device trying to 
access out-of-range clusters.  Googling I found a few other reports of 
similar behavior - it seems extremely rare, but very nasty.


Fortunately the most important stuff on my PC was backed up (good 
planning), but it was still a pain - I lost tons of DVR recordings since 
I don't back that up (not worth the cost vs the value of the data).  Now 
I just run ext3 on top of md and I haven't had any problems.


You're right that btrfs will definitely help.  However, being able to 
create a personal stage1 tarball at will would certainly also be useful, 
and it wouldn't actually consume much disk space.




Re: [gentoo-dev] Support for multiple ABIs for amd64 (64bit,32bit) in multilib overlay

2009-10-12 Thread Robin H. Johnson
On Mon, Oct 12, 2009 at 04:50:23PM -0400, Mike Frysinger wrote:
> what exactly does this "lib32" do ?  naming USE flags according to specific 
> ABI implementations is a bad idea.  you have to forget special casing 
> anything 
> to "lib32 vs lib64".  amd64, while the most common, is hardly extensible.  we 
> must handle multiple ABIs which easily might have the same bitsize.
The canonical example for this does still remain MIPS I believe.

The most common ABIs in MIPS are:
o32, n32 - Both in Gentoo releases
n64 - Was experimentally done in Gentoo 
(default-linux/mips/2007.1-dev/generic-be/n64)
o64, eabi, meabi, nubi - Not sure if they were were ever released in any way.

Crossdev DOES support the full swath of these last I checked it.

-- 
Robin Hugh Johnson
Gentoo Linux: Developer, Trustee & Infrastructure Lead
E-Mail : robb...@gentoo.org
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85


pgpNSvc8hydHP.pgp
Description: PGP signature


Re: [gentoo-dev] Support for multiple ABIs for amd64 (64bit,32bit) in multilib overlay

2009-10-12 Thread Mike Frysinger
On Monday 12 October 2009 15:49:48 Thomas Sachau wrote:
> Mike Frysinger schrieb:
> > On Sunday 16 August 2009 08:37:37 Thomas Sachau wrote:
> >> -for the portage version: It is also in the multilib overlay, but in a
> >>  different branch called portage-multilib. To use this, you should read
> >> the instructions at [1] (doc/portage-multilib-instructions). This one
> >> should also mainly work, but there is probably a good amount of packages
> >> in the main tree, which may refuse to work with it.
> >
> > the abi-wrapper doesnt look terribly appealing.  why dont we use
> > broken/custom -config handling as incentive to convert packages to .pc
> > files.  pkg-config handles ABI/cross-compile splitting cleanly and
> > transparently.
> 
> I am totally unfamiliar with pkg-config, so that would take some time or a
>  helping hand.

going by the pkg-config wrapper we use for cross-compiling, the multilib code 
should unset:
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS
PKG_CONFIG_ALLOW_SYSTEM_LIBS

then it should export export PKG_CONFIG_LIBDIR to the ABI-specific pkgconfig 
dir.  so it should be something akin to:
export PKG_CONFIG_LIBDIR=/usr/$(get_libdir)/pkgconfig

any package that adds things to PKG_CONFIG_PATH (grep /etc/env.d/) will be a 
problem here, but it seems only qt-3 currently falls into this category.  the 
easiest thing will probably be to just disallow this behavior completely.

then pkg-config should automatically locate the right abi-specific .pc files 
and filter the related abi-specific flags.

> > bash-4 is stable, so we could start depending on it.
> 
> It still has 3 unstable KEYWORDS including mips.

mips doesnt count -- it's moving all to ~arch, and you've counted the bsd 
arches which are never stable (currently).

> > you dont save/restore CPPFLAGS
> 
> Are there any initial values it should get?

the current profiles dont set any, but it should be treated as a precious 
toolchain variable same as any other compiler flag

another quick look at _setup_abi_env() looks like it needs work:
 - LD should not default to `ld`
 - the -L paths to system dirs in LDFLAGS should not be there -- the toolchain 
can handle these just fine
 - missing CPPFLAGS handling
 - see previous comments re-pkg-config
 - you dont declare pyver local
 - the abi if check is uncommon syntax.  "! [[ a == b ]]" -> "[[ a != b ]]"

> > is there documentation that covers the proposed changes/design to portage
> > ? i'm not looking for high level (it runs src_compile twice).  i dont
> > recall seeing details posted to the portage or gentoo mailing lists ... 
> > it's hard to review `git diff portage-svn..master`.
> 
> There is currently no documentation for the actual code version.

what about documentation for ebuild writers ?  only thing i see is how to 
install the new version of portage.

> In short, there are those changes:
> 
> 1. ability to run phases multiple times in ebuild.sh:
> 
> change from
> ...
> dyn_unpack()
> src_unpack
> 
> dyn_compile()
> src_compile
> 
> dyn_install()
> src_install
> ...
> 
> to basicly
> 
> ...
> dyn_unpack()
> for each ABI
> call set_abi
> create ABI workdir
> set ABI envronment variables
> call src_unpack
> 
> dyn_compile()
> for each ABI
> call set_abi
> use workdir for current ABI
> set ABI environment variables
> call src_compile
> 
> dyn_install()
> for each ABI
> call set_abi
> use workdir for current ABI
> set ABI environment variables
> call src_install
> call _finalize_abi_install
> create gentoo-multilib headers (if needed)
> ...

so basically what we already do in like glibc and sandbox.  at the base level, 
should be fine since it's been working so far with these few ebuilds.

how do you control whether the multilib headers are needed ?  it'll probably 
make sense in general, but there are def some packages where this will only 
get in the way (the toolchain ones).

how do you differentiate between packages where multi ABIs make no sense ?  
for example, most packages that dont install any libraries but just binaries.  
let's use the simple package app-text/tree.

a lot of this multilib code should probably continue to live in the tree as 
it's a pretty big base of code to formalize that could do with fixes over 
time.  i.e. we figure out that certain paths / define protections dont work so 
well, so changing them to something else would require PMS changing !?  there 
has been talk before about pushing a lot of basic stuff to the tree so things 
dont have to be encoded in the PMS.

how are packages handled that can only be used via 1 ABI ?  any of the 
packages listed in the amd64 no-multilib package.mask for example.  while 
these are mostly binary-only, this isnt a binary-specific issue.  there are a 
number of packages which only work on x86/ppc but could easily work in a 
multilib amd64/ppc64 as

Re: [gentoo-dev] Support for multiple ABIs for amd64 (64bit,32bit) in multilib overlay

2009-10-12 Thread Nirbheek Chauhan
On Tue, Oct 13, 2009 at 1:19 AM, Thomas Sachau  wrote:
>> the abi-wrapper doesnt look terribly appealing.  why dont we use 
>> broken/custom
>> -config handling as incentive to convert packages to .pc files.  pkg-config
>> handles ABI/cross-compile splitting cleanly and transparently.
>
> I am totally unfamiliar with pkg-config, so that would take some time or a 
> helping hand.
>

You can take a look at http://is.gd/4fSfN for an overview (google
cache of original since fdo downtime wiped home directories). I
completely agree with Mike that pkg-config makes all this much simpler
and consistent.

>> bash-4 is stable, so we could start depending on it.
>
> It still has 3 unstable KEYWORDS including mips.
>

~mips ~sparc-fbsd ~x86-fbsd

^^ None of these arches do stable keywords...


-- 
~Nirbheek Chauhan

GNOME+Mozilla Team, Gentoo



Re: [gentoo-dev] Init systems portage category

2009-10-12 Thread Jesús Guerrero
On Mon, 12 Oct 2009 13:52:49 -0400, Robert Bradbury
 wrote:
> I agree with Wyatt's point.
> 
> Wouldn't there be an easy way to reset the last access date on all of
the
> files to say 1/1/2009 on a system then execute a relatively robust
> multi-user boot (and maybe a world emerge upgrade) and record which
files
> are actually used during that process, then determine which package they
> belong to and label those with some "level of criticality"?

In my opinion, if we really want to speak about a way to implement that
kind of snapshoting, we should start thinking about providing a better
integration with lvm, from the root. lvm can take care of the snapshots on
a non-expensive way, and it would be relatively easy to implement. However
a lot of stuff would need to be re-documented, starting from the handbook,
and the init system.

Into my eyes, it's the only serious way to do this at least until btrfs is
ready for the masses, and there's a long way until we reach that point
still.

As for the package bits, it's true that the semantic and delimitation
about what's part of the system and what isn't, and the mechanism to handle
some things could be better, but I've grown accustomed to the way it is and
I really don't care if that changes or not.
-- 
Jesús Guerrero



Re: [gentoo-dev] Support for multiple ABIs for amd64 (64bit,32bit) in multilib overlay

2009-10-12 Thread Thomas Sachau
Mike Frysinger schrieb:
> On Sunday 16 August 2009 08:37:37 Thomas Sachau wrote:
>> -for the portage version: It is also in the multilib overlay, but in a
>>  different branch called portage-multilib. To use this, you should read the
>>  instructions at [1] (doc/portage-multilib-instructions). This one should
>>  also mainly work, but there is probably a good amount of packages in the
>>  main tree, which may refuse to work with it.
> 
> the abi-wrapper doesnt look terribly appealing.  why dont we use 
> broken/custom 
> -config handling as incentive to convert packages to .pc files.  pkg-config 
> handles ABI/cross-compile splitting cleanly and transparently.

I am totally unfamiliar with pkg-config, so that would take some time or a 
helping hand.

> bash-4 is stable, so we could start depending on it.

It still has 3 unstable KEYWORDS including mips.

> you dont save/restore CPPFLAGS

Are there any initial values it should get?

> is there documentation that covers the proposed changes/design to portage ?  
> i'm not looking for high level (it runs src_compile twice).  i dont recall 
> seeing details posted to the portage or gentoo mailing lists ...  it's hard 
> to 
> review `git diff portage-svn..master`.
> -mike

There is currently no documentation for the actual code version.

In short, there are those changes:

1. ability to run phases multiple times in ebuild.sh:

change from
...
dyn_unpack()
src_unpack

dyn_compile()
src_compile

dyn_install()
src_install
...

to basicly

...
dyn_unpack()
for each ABI
call set_abi
create ABI workdir
set ABI envronment variables
call src_unpack

dyn_compile()
for each ABI
call set_abi
use workdir for current ABI
set ABI environment variables
call src_compile

dyn_install()
for each ABI
call set_abi
use workdir for current ABI
set ABI environment variables
call src_install
call _finalize_abi_install
create gentoo-multilib headers (if needed)
...

2. Adding the internal lib32 useflag and usedeps with some workarounds

3. Added bin/auto-multilib.sh, which contains most functions, merged together 
from the older version
kanaka presented ( => http://dev.gentoo.org/~kanaka/auto-multilib/) and the 
multilib-native.eclass
from master branch of multilib overlay.

-- 
Thomas Sachau

Gentoo Linux Developer



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Moving real multilib support into main tree portage with request for council decision

2009-10-12 Thread Thomas Sachau
Mike Frysinger schrieb:
> On Sunday 11 October 2009 06:21:14 Thomas Sachau wrote:
>> as announced in a previous mail, i created a fork of portage, which has
>>  support to create 32bit libs during compile phase for 64bit platforms
>>  (currently amd64 tested, ppc64 untested).
>>
>> In short, it does execute every src_* phase twice with keeping a workdir
>>  for every ABI and saving some default environment vars (like *FLAGS).
>>  Since the current ABI is the last one in this order, the 64bit phase will
>>  overwrite everthing from 32bit phase except those parts, which have a
>>  different install location, so mostly libs, which go in lib32 instead of
>>  lib64.
>>
>> A current ebuild and docs for using it are currently in the
>>  portage-multilib branch of the multilib overlay.
> 
> your git instructions are overly complicated (doc/portage-multilib-
> instructions).  your two checkouts and .git/config edit are one command:
> git checkout -b portage-multilib origin/portage-multilib
> 
> you really should line wrap that file too
> 

both changed

>> I asked zmedico about inclusion into the main svn tree of portage, but he
>>  requested a council ok before he would be accepting it. So this is my
>>  request for discussion and ok (in tomorrows or the following meeting) from
>>  the council.
> 
> getting review + approval in a day or two is pretty unreasonable, especially 
> when info as to what is being changed/proposed isnt well documented.
> -mike

Thats why my intention was to get it on todays agenda for discussion (and more 
people looking at it)
and possible decision at the following meeting, so the wording may have been 
unclear.

-- 
Thomas Sachau

Gentoo Linux Developer



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Init systems portage category

2009-10-12 Thread Robert Bradbury
I agree with Wyatt's point.

Wouldn't there be an easy way to reset the last access date on all of the
files to say 1/1/2009 on a system then execute a relatively robust
multi-user boot (and maybe a world emerge upgrade) and record which files
are actually used during that process, then determine which package they
belong to and label those with some "level of criticality"?

Its probably also true that this list of files could be part of a "critical
system backup" that one could just keep around in a bz2 file for fast
recoveries (or even as md5sum's to determine when they might have been hosed
by disk errors or viruses) -- or is this something that is already done by
some of the selinux options?  [I've never used selinux so am unsure of
everything it does.]

R.


Re: [gentoo-dev] Init systems portage category

2009-10-12 Thread Robert Bradbury
2009/10/12 Jesús Guerrero 

>
> But there's one... That what the "system" set is about in first place. We
> could argue if creating a new category would be any good or not, that's a
> different issue. But there's already a list of packages that's considered
> critical for a Gentoo system. That's what "system" is, and you will get a
> big red waning when trying to uninstall one package belonging to this
> category.
>

My point would be that the selection criteria isn't particularly
robust/strict.  Iptunnel, df or du for example are not required to the best
of my knowledge for system booting or emerges.  Dev-lang/python is on the
other hand required for emerging (and is not a "sys" package).  I'm also not
sure that the warnings are strict enough.  In order to upgrade a package
(util-linux I think) recently I had to unmerge a library package on which it
depended but which conflicted with an upgrade to said library.  The unmerge
of the library package broke either fsck or mount (I can't remember which).
Had I tried to reboot before the upgrade was completed there would have been
problems.

Big "red warnings" are of no use when one is doing semi-automatic-upgrades
(and colored encodings are normally disabled when one dumps the emerge
output to a file).  What is needed is a separate indicator in emerge outputs
indicating that an upgrade is potentially "Dangerous" or should require
"Manual" intervention.  Anyone who is not a full time developer but who
wants to maintain a relatively up-to-date Gentoo system (which IMO is its
primary advantage over "packaged" releases such as RedHat, Ubuntu, etc.) is
going to want to automate the nightly emerges as much as possible such that
no user intervention is required.  And that probably works 90% of the time.
But there are those 5% of emerges that fail "reasonably" and require some
intervention (e.g. bug reports) and those 0.1-1% of emerges that fail (or
even succeed) with potential problems that could cost the user days.  It is
that final category (and it isn't every binary produced by a sys* package)
that I am suggesting warrants more attention.

Robert


Re: [gentoo-dev] Init systems portage category

2009-10-12 Thread Wyatt Epp
2009/10/12 Jesús Guerrero 

>  But there's one... That what the "system" set is about in first place. We
> could argue if creating a new category would be any good or not, that's a
> different issue. But there's already a list of packages that's considered
> critical for a Gentoo system. That's what "system" is, and you will get a
> big red waning when trying to uninstall one package belonging to this
> category.
>
>
Seeing as we understand @system to be "critical for a functional Gentoo
system", the phrase "critical packages" may have been poorly chosen for
communicating the concept of "things that, should I be cavalier in playing
with them, may leave me with a system that is incapable of playing again
without intervention from one of those lovely LiveCD things".

Nevertheless, there is a class of "packages that I need to watch out for,
because they'll make my life miserable in ways X can only dream about and
THEN stab me in the kidneys with a rusty javelin if I'm not careful" under
discussion that could probably use some action.  It's unfortunate that
there's no good way of encoding arbitrary semantic metadata about a small
set of packages such that it can be leveraged by various sources to achieve
this end...

Regards,
Wyatt


Re: [gentoo-dev] Init systems portage category

2009-10-12 Thread Jesús Guerrero
On Mon, 12 Oct 2009 12:45:27 -0400, Robert Bradbury
 wrote:
> On Mon, Oct 12, 2009 at 11:39 AM, Victor Ostorga
> wrote:
> 
>>
>> I don't know the history about init systems category, but obviously is
>> necessary to stablish a category into which init systems should live
>> happy forever (sys-init ? app-init? foobar?).
>>
>>
> I don't know what you want to call it, "sys-init" perhaps.  But it, and
a
> number of other packages, e.g. sys-apps/util-linux (which includes mount
> and
> fsck), openrc, bash, udev, etc. belong in a "special" category for
> "packages
> which could prevent the system from booting or corrupt file systems" if
the
> emerges do not work perfectly.  I get hung up once or twice a year by
> semi-auto-emerging a package not realizing that it is a potential
> show-stopper that should be closely monitored (or which should require
an
> immediate system reboot to see if it broke anything).  In contrast, you
> could break any of the various X libraries, browsers, etc. and still
have a
> system from which one could fall back/forward.
> 
> Right now one only knows if an emerge is "N"ew or an "U"pgrade with
little
> indication as to how badly it could go wrong.
> 
> As far as I know there is no "critical packages" list (or class) which
> include those that are likely to create much bigger headaches than
common
> emerge failures (for example this would include all executables used by
the
> init/openrc processes) which under ideal circumstances would be part of
a
> single package that could be compiled with a "static" option.

But there's one... That what the "system" set is about in first place. We
could argue if creating a new category would be any good or not, that's a
different issue. But there's already a list of packages that's considered
critical for a Gentoo system. That's what "system" is, and you will get a
big red waning when trying to uninstall one package belonging to this
category.

-- 
Jesús Guerrero



Re: [gentoo-dev] Init systems portage category

2009-10-12 Thread Robert Bradbury
On Mon, Oct 12, 2009 at 11:39 AM, Victor Ostorga wrote:

>
> I don't know the history about init systems category, but obviously is
> necessary to stablish a category into which init systems should live
> happy forever (sys-init ? app-init? foobar?).
>
>
I don't know what you want to call it, "sys-init" perhaps.  But it, and a
number of other packages, e.g. sys-apps/util-linux (which includes mount and
fsck), openrc, bash, udev, etc. belong in a "special" category for "packages
which could prevent the system from booting or corrupt file systems" if the
emerges do not work perfectly.  I get hung up once or twice a year by
semi-auto-emerging a package not realizing that it is a potential
show-stopper that should be closely monitored (or which should require an
immediate system reboot to see if it broke anything).  In contrast, you
could break any of the various X libraries, browsers, etc. and still have a
system from which one could fall back/forward.

Right now one only knows if an emerge is "N"ew or an "U"pgrade with little
indication as to how badly it could go wrong.

As far as I know there is no "critical packages" list (or class) which
include those that are likely to create much bigger headaches than common
emerge failures (for example this would include all executables used by the
init/openrc processes) which under ideal circumstances would be part of a
single package that could be compiled with a "static" option.

Robert


[gentoo-dev] Init systems portage category

2009-10-12 Thread Victor Ostorga
Lately I have stepeed into bug 216461 "init systems in sys-apps as well
as in sys-process and even app-admin" and was about to moving
sys-process/minit to sys/apps-minit , but stepped into bug 190982
"move sys-process/{minit,runit} and app-admin/jinit to sys-aps" which
is the same and closed WONTFIX in 2009-08-09 .

I don't know the history about init systems category, but obviously is
necessary to stablish a category into which init systems should live
happy forever (sys-init ? app-init? foobar?).

Regards,

Víctor.




[gentoo-dev] Last rites: app-admin/eselect-news

2009-10-12 Thread Ulrich Mueller
# Ulrich Mueller  (11 Oct 2009)
# Blocked by its own dependency, therefore no longer installable.
# Use the news module of app-admin/eselect-1.2* as replacement.
# Masked for removal in 30 days, bug 288560.
app-admin/eselect-news