Re: [gentoo-dev] preserve_old_lib and I'm even more lazy

2012-02-24 Thread Rich Freeman
On Fri, Feb 24, 2012 at 1:43 PM, Alexis Ballier  wrote:
> moreover the && wont delete the lib if revdep-rebuild failed i think,
> so it should be even safer to copy/paste :)

Am I the only paranoid person who moves them rather than unlinking
them?  Oh, if only btrfs were stable...

Rich



Re: [gentoo-dev] btrfs status and/was: preserve_old_lib

2012-02-24 Thread Rich Freeman
On Fri, Feb 24, 2012 at 8:06 PM, Richard Yao  wrote:
> Have you tried ZFS?

Yes - but not terribly interested in doing that on linux.  I do
appreciate that it can be done, but still lacks raid-z reshaping,
which means it isn't quite flexible enough.

> On 02/24/12 18:26, Duncan wrote:
>> FWIW, in the rare event it breaks revdep-rebuild or the underlying
>>  rebuilding itself, I rely on my long set FEATURES=buildpkg and
>> emerge -K.

I also use buildpkg, but I don't keep them around forever.

>> I'm not sure if that's a reference to the btrfs snapshots allowing
>>  rollbacks feature, or a hint that you're running it and worried
>> about its stability underneath you...

That would be the former.  I'm QUITE aware of its stability.

I've played around with it on a VM - I posted on my blog an experience
with it around a year ago as well.  It has come quite a way, but it is
definitely not production quality.  Xfs-tools is useful if you want to
try breaking it - I think I posted on my blog an article about
capturing linux kernel core dumps for debugging purposes - it panics
quite readily.

If you do want to mess with it I'd recommend using the git kernel
maintained by the btrfs team.  It is obviously bleeding-edge, but due
to the high pace of fixes it tends to be more stable than the version
in the mainline kernel.

Rich



Re: [gentoo-dev] preserve_old_lib and I'm even more lazy

2012-02-24 Thread Rich Freeman
On Fri, Feb 24, 2012 at 10:44 PM, Mike Gilbert  wrote:
>
> I've been using btrfs exclusively for about 6 months, and I don't
> *think* I've lost anything... :)
>

>From what I've seen as long as you keep things simple, and don't have
heavy loads, you're at least reasonably likely to get by unscathed.
I'd definitely keep good backups though.  Just read the mailing lists,
or for kicks run xfs-test on your server.  Xfs-test doesn't do any
direct disk access or anything like that - it is no different than
running bazillions of cat's, mv's, rm's, cp's, etc.  It most likely
will panic your system if you try it on btrfs - on ext4 it will
probably load the living daylights out of it but you should be fine.
The issues with btrfs at this point are the ones that aren't so easy
to spot, like race conditions, issues when you use more unusual
configurations, and so on.

Oh, and go ahead and try filling up your disk some time.  If your
kernel is recent enough it might not panic when you get down to a few
GB left.

I'm eager for the rise of btrfs - it IS the filesystem of the future.
However, that cuts both ways right now.

Rich



Re: [gentoo-dev] preserve_old_lib and I'm even more lazy

2012-02-25 Thread Rich Freeman
On Sat, Feb 25, 2012 at 10:02 AM, Doug Goldstein  wrote:
> FWIW, I'll second the ZFS > btrfs suggestion.

Oh, if you need a safe COW filesystem today I'd definitely recommend
ZFS over btrfs for sure, although I suspect the people who are most
likely to take this sort of advice are also the sort of people who are
most likely to not be running Gentoo.  There are a bazillion problems
with btrfs as it stands.

However, fundamentally there is no reason to think that ZFS will
remain better in the future, once the bugs are worked out.  They're
still focusing on keeping btrfs from hosing your data - tuning
performance is not a priority yet.  However, the b-tree design of
btrfs should scale very well once the bugs are worked out.

Rich



Re: [gentoo-dev] preserve_old_lib and I'm even more lazy

2012-02-25 Thread Rich Freeman
On Sat, Feb 25, 2012 at 3:52 PM, Richard Yao  wrote:
> ZFSOnLinux performance tuning is not a priority either, but there have
> been a few patches and the performance is good. btrfs might one day
> outperform ZFS in terms of single disk performance, assuming that it
> does not already, but I question the usefulness of single disk
> performance as a performance metric.

Why would btrfs be inferior to ZFS on multiple disks?  I can't see how
its architecture would do any worse, and the planned features are
superior to ZFS (which isn't to say that ZFS can't improve either).

Beyond the licensing issues ZFS also does not support reshaping of
raid-z, which is the only n+1 redundancy solution it offers.  Btrfs of
course does not yet support n+1 at all aside from some experimental
patches floating around, but it plans to support reshaping at some
point in time.  Of course, there is no reason you couldn't implement
reshaping for ZFS, it just hasn't happened yet.  Right now the
competition for me is with ext4+lvm+mdraid.  While I really would like
to have COW soon, I doubt I'll implement anything that doesn't support
reshaping as mdraid+lvm does.

I do realize that you can add multiple raid-zs to a zpool, but that
isn't quite enough.  If I have 4x1TB disks I'd like to be able to add
a single 1TB disk and end up with 5TB of space.  I'd rather not have
to find 3 more 1TB hard drives to hold the data on while I redo my
raid and then try to somehow sell them again.

Rich



Re: [gentoo-dev] preserve_old_lib and I'm even more lazy

2012-02-25 Thread Rich Freeman
On Sat, Feb 25, 2012 at 4:56 PM, Richard Yao  wrote:
> raidz has 3 varieties, which are single parity, double parity and
> triple parity. As for reshaping, ZFS is a logical volume manager. You
> can set and resize limits on ZFS datasets as you please.

That isn't my understanding as far as raidz reshaping goes.  You can
create raidz's and add them to a zpool.  You can add individual
drives/partitions to zpools.  You can remove any of these from a zpool
at any time and have it move data into other storage areas.  However,
you can't reshape a raidz.

Suppose I have a system with 5x1TB hard drives.  They're merged into a
single raidz with single-parity, so I have 4TB of space.  I want to
add one 1TB drive to the array and have 5TB of single-parity storage.
As far as I'm aware you can't do that with raidz.  What you could do
is set up some other 4TB storage area (raidz or otherwise), remove the
original raidz, recycle those drives into the new raidz, and then move
the data back onto it.  However, doing this requires 4TB of storage
space.  With mdadm you could do this online without the need for
additional space as a holding area.

ZFS is obviously a capable filesystem, but unless Oracle re-licenses
it we'll never see it take off on Linux.  For good or bad everybody
seems to like the monolithic kernel.  Btrfs obviously has a ways to go
before it is a viable replacement, but I doubt Oracle would be sinking
so much money into it if they intended to ever re-license ZFS.

Rich



Re: [gentoo-dev] preserve_old_lib and I'm even more lazy

2012-02-25 Thread Rich Freeman
On Sat, Feb 25, 2012 at 5:47 PM, Richard Yao  wrote:
> If you have proper backups, you should be able to destroy the pool,
> make a new one and restore the backup. If you do not have backups,
> then I think there are more important things to consider than your
> ability to do this without them.

I wouldn't have pointed it out if the solution were this simple in my
case.  Not everything is worth backing up - I'd rather take a 2%
chance of losing everything but maybe the 0.1% of my storage that I
back up, than wipe the drive and have a 100% chance of losing
everything but the 0.1% of my storage that I back up.  My data isn't
worth the cost of a proper backup solution, but it isn't worthless
either so if I can have my cake and eat it too so much the better.

That said, it is true that reshaping often isn't practical for other
reasons, such as having 4 1TB drives, and by the time you want to add
another one the best price point is on 500TB drives.

Thanks for your comments just the same - they are informative.  My
licensing concern is more of wanting to promote GPL software than
being compliant, so FreeBSD isn't much of a help.  You may be right
about Oracle wanting to keep btrfs for the low end, although where
they are already aiming is already high enough for me, and once btrfs
becomes mainstream nobody is really going to be able to hold it back -
it isn't like Oracle actually has any control over it beyond
contributing the most code.

Rich



Re: [gentoo-dev] RFD: EAPI specification in ebuilds

2012-03-08 Thread Rich Freeman
On Thu, Mar 8, 2012 at 11:51 AM, Ulrich Mueller  wrote:
>> On Thu, 08 Mar 2012, Michael Orlitzky wrote:
>
>> There's also libbash now:
>
> Looks like complete overkill to me, considering the simple task at
> hand.
>

Plus, wasn't the whole point that we can't guarantee that the bash
installed on a user's system can parse the ebuild until we've checked
the EAPI?  If we use libbash doesn't that just keep the same
constraint but on a different package?  Is the current stable libbash
guaranteed to be able to parse a bash v12 script?

If you just parse the file with a defined set of rules without regard
to how bash might parse the file, then you can determine the EAPI and
then decide how to source it.  For all we know EAPI G will turn
ebuilds into python scripts so trying to read the thing with bash or
libbash will be doomed to failure.

Rich



Re: [gentoo-dev] RFD: EAPI specification in ebuilds

2012-03-09 Thread Rich Freeman
On Fri, Mar 9, 2012 at 12:47 PM, Zac Medico  wrote:
> Anyway, lets focus on our main goal, which is to decide on a way to
> obtain the EAPI _without_ sourcing the ebuild.

Agreed.  Plus, an approach that either uses the filename or something
like a comment line is also going to be much more flexible if bash
syntax changes substantially, or if we want to support
ebuilds-in-python or some other approach.

That is the main merit I see to the shebang approach - you could
define some kind of API that actually involves executing the ebuild.
Sticking the EAPI in the filename is a little less complicated and it
gives you the same flexibility - I'm not aware of any file format that
is fussy about the content of the filename.

Even approaches like putting EAPI=5 in the file (even inside a
comment) might break if the file is meant to be generally interpreted
by some program that has rigid syntax rules.Most scripting
languages could probably handle this somehow, but if you ever wanted
ELF ebuilds that wouldn't be so likely to fly unless you could embed
\nEAPI=ELF8\n in something near the start of the file.

Sure, I doubt we'll ever want ELF ebuilds (I'd consider
non-programatic ebuilds for more trivial packages more likely), but
the point is that we should prefer options that offer more flexibility
down the road over ones that solve the immediate need but just leave
us with the same debate two years from now.

Rich



[gentoo-dev] Re: newsitem: unmasking udev-181

2012-03-10 Thread Rich Freeman
On Sat, Mar 10, 2012 at 9:27 PM, William Hubbs  wrote:
> here is the udev 181 unmasking news item.
>
> If all goes well, this will be committed to the tree  on 3/14 UTC.

I guess this might be OK for unstable, but before this goes stable we
really need to improve the docs around this.  As far as I can tell
neither the genkernel nor dracut docs have specific instructions about
how to handle mounting /usr.  Since having a separate /usr is often
the result of having a more complex configuration (nfs, lvm, mdraid,
etc), instructions explaining how things work and how to handle
variations is pretty important.  Perhaps genkernel automagically does
the right thing in some cases, but I know that dracut does not unless
you properly configure it.  I doubt either tool will handle more
complex situations without some scripting.

I'm not really asking for automation here - just documentation and
reasonable stability in how things work.

Again, this is likely more of a concern before this is stabilized.
However, knowing what I went through to get my bind-mounted /usr on
LVM+mdraid working with dracut, I can imagine that any unstable users
with tricky setups could face a fun weekend.

Perhaps a suggestion for the news item.  I'd recommend that anybody
who needs an initramfs to mount /usr get that working BEFORE they
upgrade udev.  This situation is a heck of a lot easier to figure out
if the system still can be booted when the initramfs doesn't work.

Rich



Re: [gentoo-dev] Re: newsitem: unmasking udev-181

2012-03-10 Thread Rich Freeman
On Sat, Mar 10, 2012 at 10:28 PM, Luca Barbato  wrote:
> I guess we could pour more effort in getting dracut more easy to use and/or
> try to figure out which are the items that should be moved to / and fix the
> remaining ones...
>

Well, I'm trying not to take sides in that war.  Unless we want to
patch the living daylights out of upsteam it seems almost moot.

I'm not even so much interested in making dracut easy to use.  I'd
just appreciate it if there were even a single sentence written on
each of its modules and options, let alone some kind of coherent guide
to how to make it all work.

There is a guide out there, but it hasn't really kept pace with the
very rapidly evolving tool, and it doesn't really cover all the
nuances.

Another useful thing would be to update our official RAID+LVM guide so
that when you're done following it your system will boot.

Rich



Re: [gentoo-dev] Deprecate EAPI1?

2012-03-11 Thread Rich Freeman
On Sun, Mar 11, 2012 at 9:28 AM, Patrick Lauer  wrote:
> I'd deprecate eapi2 too, we don't need 5 flavours around when we
> effectively only want to support one (and eapi0 in a few places)
>
> I wouldn't mind having a deprecation timeline for eapi3 too (now +6
> months maybe?), but there's no need to rush things.

Is there really much of a benefit to this?  I guess for anybody who
runs scripts to mass-manipulate ebuilds it might be helpful, but I
think all the package managers planned on supporting all the EAPIs for
quite a while longer.

I can imagine that this will lead to quite a bit of churn with
updating ebuilds and especially eclasses.  If a package doesn't
require a feature in a newer EAPI, what is the point?

Why not deprecate the x86 arch while we're at it...  :)

Rich



Re: [gentoo-dev] Deprecate EAPI1?

2012-03-11 Thread Rich Freeman
On Sun, Mar 11, 2012 at 12:18 PM, Chí-Thanh Christopher Nguyễn
 wrote:
> Assume a new version 13.37 of your package manager drops EAPI=1 support.
> So package-manager-13.37.ebuild checks in pkg_pretend() if any EAPI=1
> package is installed on the system. If yes, then it aborts, telling the
> user to get rid of the package first.
>
> That way, the situation where the package manager does not know how to
> uninstall a package is avoided.

I take it that removing a package without using a package manager is
left as an exercise to the reader?

Rich



Re: [gentoo-dev] Deprecate EAPI1?

2012-03-11 Thread Rich Freeman
On Sun, Mar 11, 2012 at 8:15 PM, Francesco Riosa  wrote:
> To be able to upgrade a gentoo installation as old as five years is
> interesting and valuable but require an effort that has yet to be
> made.

I suspect it shouldn't be difficult IF you have access to a binary
package respository for the system set.  Then you can do an emerge -K
system and get all your core packages updated.

In theory you should be able to install a gentoo stage3 in a chroot
and do a quickpkg @system to generate such a repository.

I'm open to comments as to why this wouldn't work, but it would seem
to be the easiest solution to me.

Of course, this won't get you whatever CFLAGS/USE settings you prefer
- but once you have a working updated system set you could always do
an emerge -e system to rebuild them with your own settings.

Rich



Re: [gentoo-dev] RFD: EAPI specification in ebuilds

2012-03-11 Thread Rich Freeman
On Sun, Mar 11, 2012 at 10:03 PM, Brian Harring  wrote:
> Pragmatic reality, the eapi function actually would work fine.  As
> pointed out elsewhere, bash parses as it goes- which isn't going to
> change.

Unless the ebuild isn't written in bash...

How do you source the ebuild if you don't know what to use to source
it?  How do you know what to use to source it if you don't know the
EAPI?  Right now all the existing EAPIs use bash, but there is no
reason the file couldn't be xml, or python, or just about anything
else.

If we want to allow for that kind of flexibility, then it might make
sense to go ahead and state that our convention is to stick EAPI=5 in
one of the first few lines of the ebuild, or inside a comment, but
also go a step further and state that the text "EAPI=" cannot appear
elsewhere in the ebuild (or perhaps within the first 10 lines).  Just
about any file format we might use would allow us to make "EAPI="
appear in it, but not all could guarantee that it would occur at the
start of a line, or at the start of a line immediately after a #.

In any case, I can really see the KISS value in a very rigid syntax
that is trivial to parse.  Stuff like this almost makes me wish our
ebuilds already were xml files or such, with bash embedded inside
sections.  Finding a particular tag in an xml file is trivial as the
fundamentals haven't changed in 15 years.

Rich



Re: [gentoo-dev] Re: newsitem: unmasking udev-181

2012-03-12 Thread Rich Freeman
On Sun, Mar 11, 2012 at 7:15 PM, William Hubbs  wrote:
>
> I was thinking of another news item once we are ready to go stable.
>
> What do you think?
>

I think that makes the most sense.  That news item can include links
to the documentation that gets written over the next few months.

Rich



Re: [gentoo-dev] RFD: EAPI specification in ebuilds

2012-03-12 Thread Rich Freeman
On Mon, Mar 12, 2012 at 6:12 AM, Kent Fredric  wrote:
>
> There's the obvious case of compiled-binaries where that might not be
> possible, but thats definately strawman stuff and I wouldn't support
> that sort of nonsense anyway. Compiled binaries for ebuilds can gtfo.
>

Why do I feel like a similar debate must have happened on some list
back when the SMTP message terminator was worked out?  The problem is
that we're running into is the use of in-band control information.

An advantage of sticking the EAPI in the filename is that it is
completely out-of-band.  Other options like an external file or POSIX
attributes have the same advantage (with the disadvantage that they
are harder to keep in-sync or support in general).

If you want to stick the EAPI inside the file then we have to go with
one of two routes:

1.  Make the file directly interpret-able by some existing tool like
bash, xml parsers, or (gtfo) ld-linux.so.  This requires making the
EAPI in-band info, and thus if the file format changes there is risk
that any existing code that interprets EAPIs could break, to the
degree that we weren't infinitely clever in designing the spec.

2.  Make the file require pre-processing before being fed to another
interpreter.  This breaks syntax-highlighting and such, and is
generally more of a pita.  However, this allows in-file EAPI info to
remain out-of-band.  An ebuild might be an xml file with EAPI and
other meta-data, and might contain sections that get ripped out and
handed over to bash, python, or ld-linux.so to the extent that you
want to be told to gtfo.

In my thinking the option with the fewest drawbacks and the greatest
extent of future-proofing is to go with GLEP 55 and stick it in the
filename.  Every filesystem and rsync tool handles filenames, they're
impossible to separate from file contents, and every interpreter out
there ignores them.

If we don't want to stick it in the filename then either we have to
decide that whatever we come up with could break, or that we really
have to change what ebuilds look like.

Rich



Re: [gentoo-dev] RFD : .ebuild is only bash

2012-03-12 Thread Rich Freeman
On Mon, Mar 12, 2012 at 11:59 AM, Ciaran McCreesh
 wrote:
> On Tue, 13 Mar 2012 04:57:04 +1300
> Kent Fredric  wrote:
>> I think this notion should be concluded before we continue debating as
>> to how best to implement EAPI declarations.
>>
>> Is it really so fixed that ".ebuild" will only ever be bash ?
>
> What version of bash are we talking about here? It's not the case that
> ebuilds will always be bash 3, which is enough to make GLEP 55 the safe
> option.

Well, we do always have the option of keeping the EAPI= syntax but
making it more strict per the proposals, and then grepping it out
rather than sourcing the ebuild.  That seems likely to always work
with bash.  Then if we ever switched to some other format we'd have to
reconsider whether we want to tweak this approach further or adopt
GLEP 55.

If you envision a future where big changes are inevitable over the
long term, then just going with GLEP 55 is probably the cleanest
solution.  If you envision a future where we are likely to never move
away from bash, or if we do it is so far off that we're content to let
our children deal with it, then other approaches may seem nicer.

I guess the question is whether we need to future-proof against a
future that may never come.  Then again, as we're seeing from systemd
a lot of stuff that "always" was done in bash doesn't necessarily have
to stay that way.

Rich



Re: [gentoo-dev] RFD: EAPI specification in ebuilds

2012-03-12 Thread Rich Freeman
On Mon, Mar 12, 2012 at 1:01 PM, Zac Medico  wrote:
> It would be very fragile without the sanity check / feedback mechanism
> that's already been suggested.

Another obvious check is to have repoman run a grep with the regexp
and give an error if there is not exactly one match.

Rich



Re: [gentoo-dev] RFD: EAPI specification in ebuilds

2012-03-12 Thread Rich Freeman
On Mon, Mar 12, 2012 at 1:46 PM, Zac Medico  wrote:
> If we want to handle every possible screwup, including stray EAPI
> assignments inside inherited eclasses, we still need to compare the
> probed value to the value that's obtained from bash.

Well, I wasn't intending to suggest that the repoman check need be the
only one.  However, preventing problems is at least as useful as
detecting them.

That said, it would probably best to have exactly one way to determine
the official EAPI.  If that is to parse the filename, then parse the
filename.  If it is to grep for a regexp and expect exactly one hit
and parse it in a certain way, then do that.

It might be that the "one" official way is to grep for a regexp and if
you find it, use it, otherwise assume 0, 1, 2, 3, or 4 and source the
ebuild for it.  That still gives you only a single answer (well,
except in situations where the current way is already broken).

If people want to abuse the EAPI syntax I suppose we can generate an
error, but ignoring it might be just as valid behavior.  I'm not sure
what happens if you define PN/etc in ebuild besides things breaking in
a horrible manner.  I'd put changing EAPI in the same category.

Rich



Re: [gentoo-dev] RFD : .ebuild is only bash

2012-03-13 Thread Rich Freeman
On Tue, Mar 13, 2012 at 2:29 AM, Richard Yao  wrote:
> To make XML a viable substitute for bash, you will need to implement a
> turing complete language in XML, which should probably preclude its use
> in ebuilds. You would  likely have better luck with a functional
> programming language, although you are more than welcome to demonstrate
> otherwise.

Well, a trivial solution to that is to embed bash code (or some other
language) into the content of the xml file.  As I and others posted
earlier the advantage is that it makes all the key/value stuff easier
to manage than doing it in bash, but it makes editing the scripting
content harder and requires pre-processing before being fed into an
interpreter.

If you look at metadata.xml you could argue that we're already using
xml-based ebuilds to an extent, but we split the metadata across two
different files in different formats and call them different things.

In any case, my point in bringing up xml was that the whole point of
GLEP 55 was to future-proof the interpretation of ebuild files, and
xml is just one example of what the future could conceivably look
like.

Rich



Re: [gentoo-dev] Let's redesign the entire filesystem! [was newsitem: unmasking udev-181]

2012-03-13 Thread Rich Freeman
On Tue, Mar 13, 2012 at 8:20 PM, Joshua Kinard  wrote:
> The trend now seems to be to modularize everything these days, even stuff
> like the core disk drivers, then build those core modules into an initramfs
> that the kernel cherrypicks from at boot.  That's the perception, anyways,
> and one which I don't really get.

Well, on most distros the kernel is just another package that is the
same on every box.  If you want one kernel for every PC, then it needs
to support every piece of hardware in existence.  So, either it is
highly modular, or it is going to suck up a ton of RAM.

The solution is a one-size-fits-all kernel, combined with a
one-size-fits-all initramfs.

For Gentoo where people build their own kernels, it doesn't make as much sense.

Rich



Re: [gentoo-dev] Re: newsitem: unmasking udev-181

2012-03-14 Thread Rich Freeman
On Tue, Mar 13, 2012 at 8:29 PM, Joshua Kinard  wrote:
>
> My contention is that I shouldn't need an initramfs loaded into my kernel to
> get my system into a minimally-usable state.  I've been running separate
> /usr setups for 10+ years, and only now, such a setup breaks, hence my beef
> with Fedora's assertion that such a setup is wrong.

I was thinking about this and here is another way to think about it.

Right now you can't boot a linux kernel without a whole bunch of c/asm
code in linux.  That code is necessary to do arch-specific setup,
locate the root device, mount it, and run init.

The new model is that you can't boot a linux kernel without a whole
bunch of c/asm code in linux, and a bunch of scripts and userspace
code in a blob (that can potentially be part of the kernel image).

You could view this as a simple refactoring of code.  Instead of all
the boot logic being in c/asm which is hard to tweak, now some of it
is written in bash and a bunch of userspace tools.  All of this can
just be viewed as part of the kernel - it can even be part of the same
file if you want.

Obviously this isn't a perfect analogy, as a bunch of userspace tools
already existed but now require the extra glue code to work (mounting
/usr).

Once upon a time you didn't even need grub or lilo to boot - you could
just stick the kernel at the start of your boot disk and the first 512
bytes of the kernel conveniently contained a boot sector.  That code
actually still exists but simply tells the user to bugger_off.

So, you really could just view this as another step in the evolution
of the linux boot process.  After seeing some of the more exotic boot
processes used in ARM/etc stuff like this just doesn't throw me for
much of a loop.  And, if you setup dracut/genkernel appropriately it
really is just one extra step to make your system bootable.

Rich



Re: [gentoo-dev] Re: Let's redesign the entire filesystem!

2012-03-14 Thread Rich Freeman
On Wed, Mar 14, 2012 at 1:29 PM, Zac Medico  wrote:
> On 03/14/2012 10:11 AM, Maxim Kammerer wrote:
>> What's wrong with:
>>   * having an "early mounts" list file
>>   * having an "early modules" list file
>>   * init system in early boot (e.g., OpenRC in init.sh) loading "early
>> modules" and mounting "early mounts" from /etc/fstab
>
> You're assuming that the /sbin/init hasn't migrated to /usr/sbin/init.
> Other that that, it sounds like a perfect solution if you're in the "I'd
> rather die than use an initramfs" camp.

Well, anybody is welcome to create any replacement/addition for
(/usr)/sbin/init or (/usr)/sbin/rc that they wish.  If you make it
good enough, perhaps others will even use it.

Beyond that, anything else is just a suggestion.  In the end the folks
writing udev and systemd are writing code, which gets them a lot
further than emails do...  :)

Rich



Re: [gentoo-dev] Re: Let's redesign the entire filesystem!

2012-03-14 Thread Rich Freeman
On Wed, Mar 14, 2012 at 7:51 PM, Richard Yao  wrote:
>
> I proposed a way that this could work with no effort on the part of the
> Gentoo developers in one of my earlier emails:
>

Then go ahead and make it happen.  If as you say no dev participation
is needed there is nothing Gentoo needs to do to support this.

On Wed, Mar 14, 2012 at 6:49 PM, Greg KH  wrote:
>
> We aren't Debian here people, we don't support "everything" :)
>
> If you want to support both, great, feel free to step up and do the
> work.
>

Gentoo is about choice, but it is largely about the choices that
people are willing to step up and maintain.

A few months ago there was a big thread and lots of devs said that
systemd isn't supported on Gentoo.  Some devs stepped up and decided
to maintain it and now I'd say systemd is about as supported on Gentoo
as Prefix, FreeBSD, Sparc, or MIPS.  That didn't happen because of
mailing list persuasion - it happened because a few people interested
in making it happen wrote a bunch of ebuilds.  How do systemd units
end up in various packages?  The people interested in seeing them
write good-quality patches and submit bugs, or otherwise work with the
maintainers to commit them.

For those who don't like the current direction, by all means create an
overlay called udev-root, mdev-boot, noinitramfs, or whatever.  You
don't need anybody's permission to do it - just go on github and make
it happen.  Write some good code.  There are several devs here who
might even help you out with it, and nobody here is going to object to
packages going into the main tree as long as they're maintained in
accordance with Gentoo QA.  Create some USE flags where you need
tie-ins to other system packages and as long as everything behaves
nicely and patches are good and maintained, I'm sure the package
maintainers will accept them.

Gentoo already gives its users a lot of choice, but it can only offer
the choices that people are willing to maintain.  Right now I see a
lot of complaining and not a lot of maintaining.  When I see a package
lastrited I don't moan about it - I either sigh or sign up to maintain
it.  By all means make suggestions to improve the transition or write
docs, but simply posting on this list isn't likely to change the
direction the linux winds are blowing.  The forces involved are much
larger than Gentoo.

Rich



Re: [gentoo-dev] Re: Let's redesign the entire filesystem!

2012-03-15 Thread Rich Freeman
On Thu, Mar 15, 2012 at 7:04 AM, Joshua Kinard  wrote:
> This does lead me to wonder if a light-weight udev could exist that lacks
> half or more of the functionality of the current udev.  I'll be honest, I've
> only edited my udev rules file once, and that was only when I installed a
> Sun Happy Meal quad ethernet card in which all four ports utilize the same
> MAC address and udev doesn't handle this very gracefully (if I had Solaris,
> I could edit the card's firmware and change this setting).

You know - I had a similar issue, but with a pair of PL2303 USB RS232
interfaces.  That makes me wonder if there is a possible way to
enhance udev to better handle situations where devices have no unique
ID and thus tend to be difficult to access consistently across
reboots.  In my case I had to hack a rule so that I got a symlink if
the device was in a specific USB slot.  Use case is controlling tuners
for mythtv.

No doubt a simpler 80% solution could be created for udev, and likely
it would be easier to cut down on its dependencies as a result.
However, the other 20% of users will still need the more complete
solution.  Big distros that want to support lots of hardware with a
one-size-fits-all configuration will just deploy that complete
solution everywhere, which means that the only people maintaining the
simple solution would be people who like to tailor each system.

For most of the more enterprise-y OS providers (ie the ones with money
to pay devs), one-size-fits-all is a lot more sustainable.  You won't
find an edition of MS Windows that works only on PCs without scanners
and sound but uses 50MB less RAM, for example.

Sure, we don't have the same constraints as the enterprise-y distros,
but we do have the constraint that if we want to do things differently
we will spend a lot of time patching what we could otherwise simply
reuse as-is.

I don't think that split filesystem installs are going away anytime
soon.  In fact, when btrfs is finally mature we might see them
blossum.  Using subvolumes you could have more granular snapshotting
and mount options, while still maintaining a shared disk space pool
(with granular quotas).  If everything the distro is likely to mangle
is in a few subvolumes you can reverts snapshots on those without
losing changes in other subvolumes if you ran in production before
deciding to revert.  That gets you a lot more flexibility than a
single snapshot on root - especially in terms of recovery time (you
can still copy files between snapshots if you only snapshotted root -
in fact with reflinks this is very fast).

Rich



Re: [gentoo-dev] Re: Let's redesign the entire filesystem!

2012-03-15 Thread Rich Freeman
On Thu, Mar 15, 2012 at 10:42 AM, Greg KH  wrote:
>
> Why not use the links in /dev/serial/ which are there for this specific
> reason?
>

# ls -l /dev/serial
ls: cannot access /dev/serial: No such file or directory

Something in a newer version of udev perhaps?  Or would my defining my
own symlinks end up overriding some rule elsewhere.  I just added
these lines to /etc/udev/rules.d:
SUBSYSTEM=="tty", DRIVERS=="pl2303", KERNELS=="4-1:1.0",
KERNEL=="ttyUSB*", SYMLINK="mythser/rca1"
SUBSYSTEM=="tty", DRIVERS=="pl2303", KERNELS=="3-3:1.0",
KERNEL=="ttyUSB*", SYMLINK="mythser/rca2"

Rich



Re: [gentoo-dev] gentoo-news repository migrated to git

2012-03-15 Thread Rich Freeman
On Thu, Mar 15, 2012 at 2:28 PM, Ulrich Mueller  wrote:
> The gentoo-news repository has moved from subversion to git some time
> ago. New news items should be committed to git only, because the
> master rsync doesn't pull from the svn repository any more.
>

Is there a link to the repository anywhere?  I don't see one on g.o,
but I might not be looking in the right place.

Might not hurt to include instructions on how to push to it as well...

Rich



Re: [gentoo-dev] /dev/serial/ (was "Let's redesign the entire filesystem!")

2012-03-15 Thread Rich Freeman
On Thu, Mar 15, 2012 at 3:17 PM, Greg KH  wrote:
> On Thu, Mar 15, 2012 at 03:04:36PM -0400, Rich Freeman wrote:
>> # ls -l /dev/serial
>> ls: cannot access /dev/serial: No such file or directory
>
> Do you have your serial device plugged in?  If not, it will not show up.
>

Yup - it is plugged in, and the links in /dev/mythser show up fine.
Since I've been recording my TV shows on the correct channels I have
to assume the devices are working fine too.

> You do know that USB buses can be dynamically renumbered depending on
> the phase of the moon, right?  Be careful here...

Hmm - this has been stable for me for years, compared to just using
/dev/ttyUSBn.

In any case, I have no idea why nothing shows up in /dev/serial.  The
only device nodes I can find for serial are /dev/ttyUSBn and
/dev/mythser/n (the latter being from my own rules).

Rich



Re: [gentoo-dev] Undocumented and unused USE variables

2012-03-16 Thread Rich Freeman
On Fri, Mar 16, 2012 at 8:49 AM, Christoph Niethammer
 wrote:
> Here the euse command is realy handy. :-)
> However the sysfs USE flag is still hiding its documentation.
> So lets see if this is a bug or a feature. ;-)

Yup, euse is helpful, or you can grep /usr/portage/profiles/use.*
(including the local version).

I suspect we'll find 3 categories here:

1.  Stuff like amd64 which isn't really a USE flag proper, but which
is required due to how arch support works.  As far as I know amd64 is
the only one in this category.

2.  Stuff like pango which really are documented.

3.  Stuff like sysfs which are neither.  File a bug...  :)

Rich



Re: [gentoo-dev] RFD: EAPI specification in ebuilds

2012-03-18 Thread Rich Freeman
On Sun, Mar 18, 2012 at 3:23 AM, Ralph Sennhauser  wrote:
> The ebuild extensions for GLEP 55
> would likely always be ebuild- as integers are reserved for
> future use by Gentoo.

Looking at GLEP 55 the proposal was ebuild- - not
ebuild-.  I don't believe there is any restriction that EAPIs
be integers or incremental in nature.

Don't mean to nitpick, but perhaps not all realize this...

Rich



Re: [gentoo-dev] RFC: License problem

2012-03-21 Thread Rich Freeman
On Wed, Mar 21, 2012 at 10:34 AM, Richard Yao  wrote:
> On 03/21/12 10:18, Justin wrote:
>> I will not extract part of the software, e.g. subroutines, for use in
>> other contexts without permission of the author.
>
> Portage could be considered to be one of these contexts.

Unless portage is just installing a small part of the application then
I don't really see an issue here.  If we keep it as a whole I don't
see the issue.

The first clause really suggests that we need RESTRICT=mirror.  I
don't see any clear need for RESTRICT=fetch.

Obviously the license needs to go into the tree/etc.

Rich



Re: [gentoo-dev] About suggesting to create a separate partition for portage tree in handbook

2012-03-27 Thread Rich Freeman
On Tue, Mar 27, 2012 at 2:34 PM, Alexandre Rostovtsev 
> The partitioning scheme is something that the user needs to decide on
> *before* getting Gentoo up and running. After the user had finished
> installing the operating system, it's too late to inform him about the
> advantages of a separate /usr/portage.

Yes and no (if you have free space, you could easily move /usr/portage
- some other changes are harder).

However, you could extend this line of argument to raid, lvm, and even
stuff like the use of systemd or an alternative package manager.  All
of those things are much easier to implement if you just start out
with them.

I'm all for creating a wiki to talk about some alternative options.
Perhaps even link to it at the start of the handbook in the intro (if
you're not in a rush and want to read about more advanced
configurations, check out ...).

However, I tend to agree that the handbook should be a
nearly-foolproof no-frills Gentoo installation.

> 1. ext4, not ext3, needs to be recommended as the default filesystem. We
> have kernel 3.2 marked stable, there is no need to keep talking about
> ext4 as if it's something experimental.

I tend to agree here.  Not sure we need the full discussion of
filesystems either.  Ext4 is probably good enough for everybody, and
mention ext3/2 as more established alternatives.

I tend to feel the same way about stuff like LILO.

Then again, Gentoo is about choice.  It just seems like we're
presenting users with more choices than makes sense for a newbie.  If
there is a choice between something that 99.99% of users will want,
and some ancient piece of cruft that still works and is better for
0.01% of the userbase, does that really have to be in the handbook?

Rich



Re: [gentoo-dev] About suggesting to create a separate partition for portage tree in handbook

2012-03-28 Thread Rich Freeman
On Wed, Mar 28, 2012 at 3:16 AM, Brian Dolbec  wrote:
> On Tue, 2012-03-27 at 19:16 +0100, Ciaran McCreesh wrote:
>> But that's ok, because extensive studies have shown that the only possible
>> reasons for putting /usr/portage on its own partition are historical,
>> since everyone has an SSD now.
>>
>
> Yeah, right.  Since I must be the only one out there that doesn't yet
> have an SSD, you'll give me (and anyone else that still doesn't) one?

Woosh...



Re: [gentoo-dev] About suggesting to create a separate partition for portage tree in handbook

2012-03-28 Thread Rich Freeman
On Wed, Mar 28, 2012 at 10:59 AM, Richard Yao  wrote:
> On 03/28/12 03:16, Brian Dolbec wrote:
>> On Tue, 2012-03-27 at 19:16 +0100, Ciaran McCreesh wrote:
>>> But that's ok, because extensive studies have shown that the only possible
>>> reasons for putting /usr/portage on its own partition are historical,
>>> since everyone has an SSD now.
>>
>> Yeah, right.  Since I must be the only one out there that doesn't yet
>> have an SSD, you'll give me (and anyone else that still doesn't) one?
>
> In response to the people who don't like what Brian had to say, I would
> like to say that we can't start making assumptions about what hardware
> people have and ignore anyone who does not fit those assumptions.

Nobody doesn't like what Brian had to say.  Most everybody around here
including Ciaran likely agrees with him.

The issue is that Ciaran said the complete opposite of what he was
trying to communicate (sarcasm), and that likely due to
language/culture/etc that might not have been clear to somebody who
isn't a native English speaker in a western culture.

The allusion was clearly to the larger udev/systemd/usr issues and the
point he was making is that many of these boil down to disagreements
about what use cases you consider important.

So, just take everything Ciaran said in that particular post, assume
he meant the exact opposite, and now you'll see where he is coming
from.

Yes, I do agree that sarcasm tends to cause problems on international
email lists, but his post did at least make me smile.  :)

Rich



Re: [gentoo-dev] rfc: location of portage tree

2012-03-28 Thread Rich Freeman
On Wed, Mar 28, 2012 at 2:53 PM, Christoph Mende  wrote:
>
> I believe it's /var/lib/. Here's what FHS says:
> /var/cache is intended for cached data from applications. Such data is
> locally generated as a result of time-consuming I/O or calculation.
> The application must be able to regenerate or restore the data. Unlike
> /var/spool, the cached files can be deleted without data loss.
>

I can do rm -rf /usr/portage ; mkdir /usr/portage ; emerge --sync and
it will work just fine, I think.

That really does point to cache.  The only thing different from a
browser cache is that portage doesn't automatically refresh it.

distfiles and packages are the same (well, depending on where you get
your binpackages from, that might or might not be a cache per-se - if
you're just using FEATURES=buildpkg then you can do an emerge -e world
and get it back).

> And:
> /var/lib/ is the location that must be used for all distribution
> packaging support.
>

I think that things like the local list of installed packages belongs
in this category.  It is a bit debatable how the tree fits into this.

However, this really is bikeshedding.  Sure, /usr isn't ideal, but
unless we actually start supporting some use case where it doesn't
work so well in the future, I doubt we'll ever see it move.  Plus,
there is even a case for keeping it in /usr in the Fedora-envisioned
/usr-is-ro world.  You could have a complete installation and a
portage tree that it was generated from all snapshotted there.  Sure,
maybe /usr/lib or /usr/share might make more sense then, but again, I
don't see it changing unless it actually results in a real benefit to
users.

Rich



Re: [gentoo-dev] Relicensing sys-freebsd/* under the BSD-2 license

2012-03-30 Thread Rich Freeman
On Fri, Mar 30, 2012 at 2:47 PM, Ulrich Mueller  wrote:
> Ebuilds in the Portage tree must be licensed under the GPL. This is
> part of the Gentoo Social Contract [1], so I guess it won't change
> anytime soon.
>
> And IMHO, we would be ill-advised to allow different licenses for
> ebuilds in the tree, because that would imply that we cannot copy code
> from one ebuild to another (or from ebuild to eclass) any more.
>

Speaking as an individual trustee, I tend to agree.

If there are specific pains associated with not being able to submit
patches upstream or such, please do point them out and I'm sure we'll
consider what can be done to accommodate this.  However, if this
really is a one-off situation then we're probably better-off if we
just ask individual contributors to re-license when needed.

I'd think the only thing in the portage tree upstream would be
interested in would be patches (including sed operations).

Rich



Re: [gentoo-dev] Happy 10th birthday (in advance)

2012-03-31 Thread Rich Freeman
On Sat, Mar 31, 2012 at 7:44 AM, Samuli Suominen  wrote:
> (or hand me powers to remove people from ML :-)
>

That sounds like a great idea.  We could create a code of conduct, and
then designate individuals to enforce it.  Maybe we should call them
proctors:
http://www.gentoo.org/proj/en/council/coc.xml

What could go wrong?

Seriously though, this debate like many others recently probably
shouldn't be viewed as for-Gentoo and against-Gentoo.  Lots of people
care about Gentoo, we just don't always agree on what is best.  In
this case the issue is pragmatism vs idealism, and both have their
place.

What is important is that we go ahead and share our views, debate
points within reason, don't obsess over getting in the last word, and
then work together to support the decisions that get made.

My two cents in this debate is that I'm willing to accept Ciaran's
suggestion that Portage 2.2's approach has its limitations, but it is
the best thing we have implemented now, and thus I'll take the 98%
solution over the 20% solution (which is what we get if all we do is
argue over how to get to 100%(.  If somebody wants to write the code
to get us from 98->100%, I'm sure we'll all be for it.

Rich



Re: [gentoo-dev] Re: [gentoo-dev-announce] Council meeting summary for 3 April 2012

2012-04-08 Thread Rich Freeman
On Sun, Apr 8, 2012 at 6:04 PM, Greg KH  wrote:
> On Sun, Apr 08, 2012 at 04:30:01PM +0200, Ulrich Mueller wrote:

>> The council has voted in favour of a separate /usr being supported
>> (5 yes, 1 no vote).
>
> What?

Perhaps the council should be the ones to clarify, but I think the
vote only was for separate /usr being supported.  The irc log seemed a
bit more nuanced than perhaps came out in the summary.  Maybe I'm
misreading it.  I didn't see anything in the log about a decision that
newer versions of udev are not able to be stabled.

So, as to what "a separate /usr being supported" means, the impression
I got was "don't worry if you're running it, you'll have an upgrade
path."  Right now it sounds like the proposed upgrade path is that
some devs will fork udev and keep it running more like the current one
(presumably breaking in the same situations that it already does
today).

> And udev isn't even the problem, all you need is to mount your /usr from
> initramfs.  So, the original proposal wasn't even a correct/valid
> proposal in the first place.

Well, as far as I can tell the proposal that was voted on didn't even
mention udev at all, or initramfs.  But, as you point out using an
initramfs is likely to be more reliable.

I'm sure the same arguments were going around back when people were
advocating for dropping bootloader support in the kernel and telling
people to bugger_off_msg.  An initramfs creates more flexibility, at
the cost of an extra layer of software, just like grub.  The main
downside to it is that it tends to require more maintenance, though if
you build the necessary drivers to mount /usr into the kernel I
imagine that an initramfs would probably work across differing kernel
versions.

In any case, we should still be updating documentation/etc regardless.
 A better guide to dracut/genkernel would be useful no matter how this
turns out.  I'd like to see stable Gentoo stay current with udev in
any case, but I don't mind using a forked version as long as it is of
similar quality to the original.  As you've pointed out already, that
may not actually help people with a separate /usr, so I'd encourage
people to get an initramfs working.

Rich



Re: [gentoo-dev] Are we allowed to provide valid SRC_URI for fetch restricted packages?

2012-04-10 Thread Rich Freeman
On Tue, Apr 10, 2012 at 3:38 PM, Mike Frysinger  wrote:
>
> i don't see a problem here.  although this is something that you'd prob want
> to post to the trustees and let them make a decision.
> -mike
>

This is a bit of a stale thread.  This particular package was modified
to remove the SRC_URI, so it is no longer outstanding.  The Trustees
have discussed, and i'd say a majority would prefer not to have
SRC_URI for fetch-restricted files.  However, I don't believe we put
it to a vote.

Personally, I tend to not see an issue here, but am open-minded to
specific precedents/etc that raise concerns.  I think others are a bit
more conservative.

Rich



Re: [gentoo-dev] Re: Re: Re: [gentoo-dev-announce] Council meeting summary for 3 April 2012

2012-04-11 Thread Rich Freeman
On Tue, Apr 10, 2012 at 10:28 PM, Steven J Long
 wrote:
> As for the burden of ensuring that binaries installed to /{s,}bin don't link
> to libs in /usr, why not just automate a QA check for that, and let
> developers decide whether a fix is necessary? After all, core packages that
> do that even when configured with prefix and execprefix = /, aren't so
> portable, and Gentoo has always championed "doing the right thing" wrt
> helping upstream fix portability issues.

The only issue with that logic is that upstream is perfectly aware of
what they're doing already, and bugs are likely to be closed as
WONTFIX.  So, all the QA checks would do is ensure that we slowly
start maintaining forks of more and more packages.  Right now the
problem is probably manageable, but I'm not convinced it will stay
that way.  Once upstream developers consider all constraints to be
removed on their dependencies you could see a lot of stuff getting
pulled into root if you tried to enforce this rule.

In any case, it sounds like the directive is to keep limping along for
a while longer, and that makes sense anyway until docs/etc are
improved.  I agree with Ralph's suggestion that the newer initramfs
tools should be stabilized as well.

Rich



Re: [gentoo-dev] Re: Re: Re: Re: [gentoo-dev-announce] Council meeting summary for 3 April 2012

2012-04-11 Thread Rich Freeman
On Wed, Apr 11, 2012 at 11:09 AM, Steven J Long
 wrote:
> That might be true for some Linux-only packages, but I really find it hard
> to believe that any upstream targetting more than one OS (just adding a BSD
> is enough) with software that could be considered critical (I for one would
> include all POSIX utilities as well as basic stuff like mount, fsck and
> lvm2) would want to ignore this kind of thing; if the build-system is
> ignoring configuration, it's a bug.

The issue is that if udev requires libfoo, then libfoo must not be in
/usr.  If libfoo is libx11 or dbus or some other complex library, that
will pull in a bunch of other stuff as well.  However, I doubt that
the maintainers of all those libraries would consider them
boot-essential, so they may not be inclined to make the move.

Obviously we're not there now, but it is a possible consequence of
moving in this direction.

Keep in mind that systemd in particular does not aim to be
cross-platform - they advertise this as one of their core features.
Since tight integration is their goal that could slowly bring in a lot
of other stuff.  The main platform pushing it along is Fedora, and
they're aiming to move everything into /usr, so this is a non-issue
for them.

> I read the decision from the Council to be "we will continue to support the
> traditional split /usr eg with lvm, and no initramfs" and a Council member
> put himself forward to maintain patches to udev to ensure that going
> forward, since it is needed in his employment.
>
> Given that we can do it with initscripts, and don't need to fork udev at
> all, what's the problem?

I can't really comment on what the decision from the Council actually
was.  However, maintaining patches to udev is effectively the same
thing as forking it.  Right now it probably isn't hard, and over time
that could change.

The only time patches != fork is if the patches have been submitted
upstream and are likely to be merged.

In any case, it isn't a crisis now and waiting a little to see which
way the wind ends up blowing probably makes sense.

Rich



Re: [gentoo-dev] >= udev-182 tracker

2012-04-11 Thread Rich Freeman
On Wed, Apr 11, 2012 at 3:53 PM, William Hubbs  wrote:
> To allay any fears of that happening, I have opened a tracker [1] for
> issues which need to be resolved before newer udevs can go stable.
>

Probably wouldn't hurt for the initramfs maintainers to open a
stablization tracking bug for whatever version they think will best
address the /usr mounting issue and make them blockers.

Rich



Re: [gentoo-dev] Re: Re: Re: Re: Re: [gentoo-dev-announce] Council meeting summary for 3 April 2012

2012-04-21 Thread Rich Freeman
On Sat, Apr 21, 2012 at 10:43 PM, Steven J Long
 wrote:
> The Council has voted that Gentoo continue to support that subset, without
> an initramfs.

Citation, please?

Rich



Re: [gentoo-dev] Proposal to move use.local.desc somewhere in /var

2012-04-24 Thread Rich Freeman
On Tue, Apr 24, 2012 at 1:32 PM, Mike Frysinger  wrote:
> it's also a bit of a speed issue.  i often want to look at what flags get used
> across the tree.  what's faster: loading + parsing 15000 xml files, or loading
> 1 file ? shifting it to metadata/ as a cache of all the xml files is probably
> fine, but i'm not sure dropping it completely is an improvement.

++

Any time I add a new use flag/etc the first thing I do is look for how
other packages accomplish the same thing.  No sense writing scripts
when we already have one that does the job.

Rich



Re: [gentoo-dev] Re: New license: yEd Software License Agreement

2012-04-27 Thread Rich Freeman
On Fri, Apr 27, 2012 at 9:45 AM, Amadeusz Żołnowski  wrote:
> Excerpts from Duncan's message of 2012-04-27 15:38:20 +0200:
>> No distribution allowed.  You're going to be doing restrict=mirror,
>> correct?
>
> Why RESTRICT=mirror? I'd put RESTRICT=fetch, actually.
>

I don't see much point in using RESTRICT=fetch unless there is no URL
available to fetch.  I think RESTRICT=mirror should be sufficient in
most cases to cover situations where we are not allowed to
redistribute, and is consistent with what we do across the tree.

Consistency is very important where there are legal concerns.
Otherwise our actions with one ebuild will be used to argue that our
actions on another ebuild are wrong.

Rich



Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force

2012-04-27 Thread Rich Freeman
On Fri, Apr 27, 2012 at 7:35 AM, Chí-Thanh Christopher Nguyễn
 wrote:
> I agree that the ~arch ebuilds should be tested in the same
> configuration in which they will end up in arch. However in this case,
> the possible configurations for arch are a subset of those in ~arch, so
> the testing covers those too.

Just because a stable system brings in fewer use flags doesn't
necessarily mean that it is less likely to break.  Use flags can have
all kinds of effects, some applied when they are present, and others
applied when they are absent.

The value of testing comes from testing things in the anticipated
future production environment.  Of course, the fact that we stabilize
individual packages and not all their libraries/etc at the same time
already weakens this.

Rich



Re: [gentoo-dev] Re: New license: yEd Software License Agreement

2012-04-27 Thread Rich Freeman
On Fri, Apr 27, 2012 at 10:54 AM, Duncan <1i5t5.dun...@cox.net> wrote:
> Tho FWIW I think restrict=fetch applies to stuff like cd/dvd-based game
> data as well, where the agreement is on the cd not a website, but still
> requires specific click-thru.

I think the real determiner should almost always be whether there is a
URL that you can reliably fetch or not.

If you're talking about a CD there is nothing to fetch.  If you want
somebody to copy a file off of a CD and stick it in distfiles then
RESTRICT=fetch makes perfect sense, but it has nothing to do with
licensing, but the fact that no consistent URL exists.

Legally the basic issue is whether linking to something is the same as
distributing it.  I'm open to a lawyer's summary, but my sense is that
the case law around this is very messy, especially on an international
scale.

Rich



Re: [gentoo-dev] Re: New license: yEd Software License Agreement

2012-04-27 Thread Rich Freeman
On Fri, Apr 27, 2012 at 11:33 AM, Amadeusz Żołnowski  wrote:
>
> And this is probably the case when user has to accept a license on the
> website.  This is URL for zip archive of yEd-3.9.1:
>
>  http://www.yworks.com/en/products_download.php?file=yEd-3.9.1.zip
>
> It directs to website with license text, check-box for accept and
> download button.  If check-box is not set, following message is shown:
>
>  "In order to download yEd, it is necessary that you first accept the
>  license terms."
>
> If check-box is set, client is redirected to the page with actual link to
> zip archive.

It turns out the vendor is lying - you can download it fine without
accepting the license from:
http://www.yworks.com/products/yed/demo/yEd-3.9.1.zip

No doubt the vendor WANTS users to accept the license first, but it is
not "necessary" from a technical standpoint.

>
> Moreover, I have had email conversation with yWorks representative and
> he says that installation files need to be obtained manually by the end
> users from their website.
>

Again, they likely intend for them to be obtained in this manner, but
the word "need" is not true from a technical perspective.

This brings up a debate that was recently held over deep-linking in
bugzilla over a math library.  The trustees never took a final vote
since the maintainer decided to just implement RESTRICT=fetch.  The
issue there was about more than just copyright, however, and the trade
regulations around munitions do not apply in this case.

I don't think we have clear policy around this situation.  I see our options as:
1.  Set RESTRICT=fetch because upstream wants us to and we like to cooperate.
2.  Set RESTRICT=fetch because even if legally they're on shaky ground
upstream could probably waste a lot of our time and money.
3.  Set RESTRICT=mirror because legally we think we have the right to
do so, and want to stand for our principles and make life easier for
our users.

The potential upstream responses to doing #3 might be to do nothing,
to not like us, to sue us, or to not use a fixed URL to distribute the
file so that we have to restrict fetching for technical reasons.

Do we as a matter of policy want to respect broken click-through
download implementations?

Rich



Re: [gentoo-dev] Re: New license: yEd Software License Agreement

2012-04-27 Thread Rich Freeman
On Fri, Apr 27, 2012 at 2:04 PM, Nikos Chantziaras  wrote:
> Didn't the user already accept the license by putting it in ACCEPT_LICENSE?
>  If not, portage will not download it.
>

Well, I'd argue that it is impossible to "accept a license" in the
first place.  It is possible to agree to a contract if there is
consideration on both sides and a meeting of the minds.

Copyright says you can't copy something.  A license says you might be
able to.  You don't have to "accept" a license to benefit it.  A
license does not restrict what a user can do, it restricts what the
person issuing the license can do (I can't sue you for redistributing
my code if I licensed it to you under the GPL).  Some licenses are
conditional - I only limit my own ability to sue you if you give
people a copy of the source for any binary you give them, and if you
don't do that I am now free to sue you.

Ultimately the foundation for licenses is copyright law, and other
forms of IP law.  Copyright says we can't distribute anything we don't
create except under very specific circumstances.  A license says that
we can distribute stuff without fear of lawsuit under some conditions.

The yEd license says we can't distribute anything, so as far as I can
see, we might as well not have any license at all.  We're not
protected at all from a lawsuit, except to the degree that we don't do
anything that we can be sued for (like distributing their software).

But yes, from a technical standpoint you can only install a package if
its license is contained in ACCEPT_LICENSE.  Whether this has any
legal meaning is up to you or a court with jurisdiction to decide.

Rich



Re: [gentoo-dev] Re: New license: yEd Software License Agreement

2012-04-28 Thread Rich Freeman
On Sat, Apr 28, 2012 at 2:53 PM, Alec Warner  wrote:
> That doesn't mean you didn't / cannot accept, merely that some (all?)
> provisions are likely unenforceable in a court of law. I don't think
> EULAs have been ruled illegal yet.

I doubt that my proclamation that you aren't allowed to eat breakfast
has been ruled illegal yet either.  Fortunately that has no bearing on
whether you need to listen to me.  :)

Oh, and I also proclaim that you accept my proclamation by choosing to
eat your next meal.  Fortunately in reality that has no bearing on
whether you accept my agreement either.  Just because a publisher says
that the terms of a contract of adhesion are binding on you by virtue
of your taking some action does not make it so.

Courts have ruled inconsistently on whether EULAs can be enforced.
Then again, Missouri is one of those places where courts have ruled
that software is not sold but licensed, and the Foundation is
incorporated there (as well as in New Mexico).  So, perhaps there is
some element of risk here, though I'd have to read the court decisions
to see whether the fact that the software is free impacts the
enforcability of the EULA.

That makes me wonder whether we should consider more carefully where
we incorporate - if it makes us more subject to local jurisdiction it
probably isn't a good idea to incorporate in multiple jurisdictions
since it allows a potential plaintiff to venue shop.

Rich



Re: [gentoo-dev] busybox[sep-usr] support for mounting /usr w/out hassle

2012-04-30 Thread Rich Freeman
On Mon, Apr 30, 2012 at 4:05 AM, Tony "Chainsaw" Vroon
 wrote:
> Binaries that are essential for system boot, and must be available in
> single user mode go in /bin and /sbin, with their libraries in /lib.
> This allows for /usr to be:
> 1) marked read-only for NFS mounts, which some of us rely on
> 2) inside of an LVM2 container, allowing for / to be (very) small
> 3) on a squashfs filesystem, in order to save space

These are all things easily supported with an initramfs.  In fact,
initramfs-based solutions allow the same sorts of things to be done
with all the other filesystems and not just /usr.

> Trying to second-guess my motivation, and trying to undo unanimous
> council votes simply because your opinion is different, really has to
> stop.

I don't think anybody is trying to undo council votes - people are
just speculating as to what they voted on.  The easiest solution is
for somebody to say "I'm John Smith, and I am speaking officially for
the council, and we agree that what was decided upon is X."

It seems pretty clear that everybody wants to support a separate /usr.
 We even have multiple supported solutions, including an initramfs, a
use flag on busybox, and I believe somebody posted a script that can
be run during early boot to mount /usr.  It sounds like the only thing
that isn't supported is "doing nothing" - but with Gentoo if you "do
nothing" you don't get an installed system that works on any
configuration.

>
> I feel a lot better about vapier's pragmatic approach then I do about
> udev/systemd upstream's ability and motivation to support current
> systems. If you had any doubts about whether udev was part of the
> problem, consider what tarball you will have to extract it from in future.

Well, if others feel differently about the direction udev is taking,
they can of course just fork it.

I can't say I'm terribly excited about the amount of vertical
integration going on.  I don't run Gnome, and I don't run Unity.  I
really do prefer the unix way.

However, I don't contribute much to those upstream projects, and I
don't see much value in telling a bunch of people who do that they are
doing it wrong.  I don't like how Google develops Android in the dark,
or that they bundle 1GB of third-party stuff in their Chromium source
and distribute a favored binary-only derivative.  However, I do like
that they're giving me all of that stuff essentially for free, and so
beyond the odd blog post I try not to give them too hard a time.

In the same way I think we need to give the maintainers of these
projects in Gentoo some slack, or join those projects and help them to
address your needs.  It is a lot easier to tell others what to do than
to help make it happen, but a volunteer-based project like Gentoo
needs the latter more than the former.

Rich



Re: [gentoo-dev] Chromium bundled code

2012-04-30 Thread Rich Freeman
On Mon, Apr 30, 2012 at 12:11 PM, Mike Frysinger  wrote:
> On Monday 30 April 2012 12:00:59 Rich Freeman wrote:
>> doing it wrong.  I don't like how Google develops Android in the dark,
>> or that they bundle 1GB of third-party stuff in their Chromium source
>> and distribute a favored binary-only derivative.
>
> err, they distribute a Chromium source tarball, and their build system
> includes flags to use the system versions of those bundled libs if you so
> choose.  i think this is a perfectly fine compromise.

Must be a fairly new compromise - but glad to hear that they've come
along a bit.

Maybe their future Google Earth install package for Linux won't bundle wine.  :)

In any case, I think this really just gets to my point - people who
develop FOSS aren't doing it with the express goal of making your life
difficult - they just don't always have the same itches.  If you help
them out or ask NICELY sometimes they'll even help scratch yours.

Rich



Re: [gentoo-dev] Chromium bundled code

2012-05-03 Thread Rich Freeman
On Thu, May 3, 2012 at 5:34 AM, "Paweł Hajdan, Jr."
 wrote:
>
> Right, and the source tarball is ~175 MB. It's not perfect, but it's
> also far from 1 GB. The bundled libraries are included in the tarball.

I was thinking about the unpacked size - which is 1001M according to
du for chromium-18.0.1025.168.tar.bz2.  That's a lot of source code...

However, my whole point wasn't to throw stones at the chromium team -
I think that they've been doing a great job of fixing this problem,
and will continue to do so.  I just was pointing out that Google's
practice of bundling dependencies wasn't to my liking, but that I
wasn't going to give them too much of a hard time precisely because
I'm not being part of the solution.

Rich



Re: [gentoo-dev] Chromium bundled code

2012-05-04 Thread Rich Freeman
On Fri, May 4, 2012 at 9:50 PM, Chí-Thanh Christopher Nguyễn
 wrote:
> I'd say that Android is an operating system based on Linux. It is not
> 'the Linux "stack"'.
> I think he was wondering whether the lock-in between dbus, udev and the
> Linux kernel will reach proportions where they will be distributed in
> one source tree.

Well, I think that all of this is at the heart of the debate.  I don't
see whether the source trees are merged as being terribly important -
the issue is whether the level of integration makes them difficult to
peel apart.

This is just the vertical integration debate all over again.  If you
want to use gnome, thou shalt use systemd.  If you want to use
Chromium, thou shalt use udev, and so on.  I can't wait until we hit
the point where if you want to use your favorite browser you have to
install the maintainer's favorite DE, sysvinit, etc.

The only solution I see to getting back to the "unix way" is to agree
upon standard APIs, but I think that is many years off.  Most of these
technologies are very new, and rapidly evolving.  Google themselves
have shown with platforms like Android that compatibility is not of
terrible importance to them beyond the application API (how many times
have they broken the camera driver binary interface?), and of course
Linux is famous for breaking driver-level binary interfaces, though
this is mitigated by the fact that outside of Android almost everybody
makes their drivers open-source, or they actually support their
drivers for more than six months.

The next year or two will be an interesting experiment for the Linux
community.  Will the "unix way" prevail, or does the future lie in
highly integrated tools, that generally do not interoperate, but which
provide much greater functionality?

Rich



Re: [gentoo-dev] RFC: remove ldap from desktop profiles use flags

2012-05-05 Thread Rich Freeman
On Sat, May 5, 2012 at 3:55 PM, Dale  wrote:
> Jesus Rivero (Neurogeek) wrote:
>> I don't like this change much. There are valid use cases for an ldap use
>> flag in the desktop profile that could break easily with this change.
>>

There are valid use cases for every USE flag in portage, otherwise
they wouldn't be there.  The fact that SOME people find ldap useful on
a desktop does not mean that it should be the default.

>
> Not to mention, you add the possibility that the user may miss the
> change since they are not expecting it.  I would expect it when I was
> changing profiles but not so much just coming out of the blue.

It has already been suggested that this be prefaced by a news item,
which would be completely sensible for just about any profile USE
change.

Rich



Re: [gentoo-dev] RFC: remove ldap from desktop profiles use flags

2012-05-06 Thread Rich Freeman
On Sun, May 6, 2012 at 5:37 AM, Michał Górny  wrote:
>
> I don't think even heavyweight DE/WM usually needs ldap...
>

Tend to agree.  I don't think we want to create a new profile every
time we want to change one of the flags.

Some other questionable ones:
emboss - Adds support for the European Molecular Biology Open Software Suite
firefox - probably OK for what it does now, but not everybody uses it
xulrunner - not even used now

There will always be some level of variation if you are looking at
single flags.  What matters isn't coming up with profiles that exactly
match all of our users, but rather ones that are good for 80+% of
them.

As far as ldap goes, if we wanted an "enterprise desktop" profile that
might be a good fit for such a configuration.  I agree that -ldap
isn't really a lightweight desktop so much as a normal one.  If you
really wanted "lightweight" then you'd probably not be running desktop
at all, or the regular desktop vs kde/gnome.

The bottom line is that we don't need 47 different profile targets -
there will always be a "use" for 1 more.  That's why we all run Gentoo
- we aren't bound by the decisions made for us by the package
maintainers.

Rich



Re: [gentoo-dev] RFC: remove ldap from desktop profiles use flags

2012-05-07 Thread Rich Freeman
On Mon, May 7, 2012 at 7:17 PM, Walter Dnes  wrote:
>  There's a "server" profile which could be the answer.

I've never seen that as being a terribly useful profile.  Servers tend
to be very minimal configurations.  Maybe if we ever ripped sshd out
of the default profile we might put it there, but beyond that what
would you run on EVERY server?  If I were to build a server I'd just
stick with the default profile, and then add to it.

Rich



Re: [gentoo-dev] Tightly-coupled core distro [was: Council meeting summary for 3 April 2012]

2012-05-09 Thread Rich Freeman
On Wed, May 9, 2012 at 9:08 PM, Patrick Lauer  wrote:
> On 05/10/12 06:36, Greg KH wrote:
>> On Wed, May 09, 2012 at 08:51:37PM +0200, Fabio Erculiani wrote:
>>> Please stop throwing lennartware at people. FailAudio has been enough, 
>>> thanks.
>> The use of these terms is both rude and totally uncalled for.  You
>> should be ashamed of yourself.
> It's reactive. I've been called stupid, conservative, behind the times,
> user of obsolete software that will go the way of the dinosaurs. Why
> should we be ashamed of not agreeing with these funny pranksters?

Look, I have pretty mixed feelings about all the vertical integration.
 However, let's at least do each other the professional courtesy of
not resorting to name-calling.  We're allowed to disagree, and that's
OK.  By all means voice your opinion.  However, let's talk about the
issues, and not the people advocating them.

This is just polite behavior.  It is also the rules for posting on
this list, especially if you hold a g.o address.

> So why would I give up my freedom to tinker just because someone else is
> writing more code than I do?

I understand your frustration.  Really, I do - I often find myself
sharing it.  However, in the end people working on FOSS are basically
free to do what they want, and everybody is free to use or support
what they want.  I don't like the fact that most people contributing
to Android tend/aspire to be associated with the commercial market for
smartphones, and as a result they tend to embrace pro-developer /
anti-consumer solutions (like not allowing easy blocking of ads, or
randomizing calls to read the IMEI, etc).  However, the market is what
it is.  The only thing that is really any different today is that
companies are at least releasing the source for the stuff they do - in
the past they'd have just closed it all off so that there wouldn't
even be the option of forking.  If I want to I can at least find the
API call to read my IMEI and tamper with it.

I think part of the community frustration is the increasing level of
commercial support around Linux.  That has given us much more robust
stuff to play with, but it also has resulted in a loss of control and
change in general atmosphere.  In the world of 1999 Linux market share
took a back seat to hackability.  In the world of the Canonicals,
market share matters a great deal, and appealing to open source
contributors matters a lot less.

Rich



Re: [gentoo-dev] pushing fixes to stable before closing bugs

2012-05-12 Thread Rich Freeman
On Sat, May 12, 2012 at 6:34 AM, "Paweł Hajdan, Jr."
 wrote:
> The idea is that if you only fix in ~arch, you risk a serious and
> _known_ regression in stable, which could be easily avoided.

How can you have a regression in stable if stable has the bug already?
 A regression is when you have a stable package with a bug, then you
introduce a new stable package that doesn't have that bug, and then
you introduce yet another new stable package that has the same bug
back again.

While I can see some value in tracking whether bugs have made it to
stable yet, I think we need better tools if we want to do that.
Otherwise it is a big housekeeping mess tracking what is and isn't in
stable yet.

I see the value when we're talking about security bugs, or very
critical bugs, but for the run-of-the-mill minor issues that are the
majority of bug reports I don't see the value in keeping bugs open for
a month or two just to track that the inevitable hasn't happened yet.

Rich



Re: [gentoo-dev] pushing fixes to stable before closing bugs

2012-05-12 Thread Rich Freeman
On Sat, May 12, 2012 at 4:01 PM, "Paweł Hajdan, Jr."
 wrote:
> Agreed. I'm talking about compile errors or crashes here. I've really
> seen arches stabilizing packages with known problems, just having closed
> bugs because "the fix is in ~arch".

We might already be on the same page, but I think the bar to set for
stable is that the new build must be overall at least as good as the
previous one.  Having known issues isn't necessarily a problem as long
as overall the level of quality is maintained (all software has bugs -
some teams are just better about knowing about them).

If foo-3 is stable, and foo-4.1 introduces a bug, and foo-4.2 fixes
that bug, then I agree that stablizing foo-4.1 might be a mistake.  On
the other hand, if foo-3 has 30 bugs, and foo-4.1 has 20 bugs, and
foo-4.2 has 25 bugs (just not that one in particular), then it might
still make sense to go with 4.1 in the short term.  Obviously not all
bugs are equal.

This is why maintainers in general should be controlling what packages
get STABLEREQ'ed, and for important packages it is best to make this
decision as a team.  Is there really a sense that this is a big
problem?  I'm sure it happens - but AFAICT the effort required to
prevent this might not be worth it except in isolated cases.

Rich



Re: [gentoo-dev] Re: RFC: Enable FEATURES=config-protect-if-modified by default?

2012-05-16 Thread Rich Freeman
On Wed, May 16, 2012 at 5:02 AM, Fabio Erculiani  wrote:
> I implemented this feature in Entropy long time ago (2009 iirc) and
> enabled it by default as well.
> We never had a single issue. Users seem quite happy about it.
>

This is also the default behavior with the cfg-update alternative to
dispatch-conf - unmodified files are just replaced.  Never had a
problem with it.  90% of the time these are files I've never even
looked at.

Will the new option remove files automatically as well?  I've been
getting warnings on boot that I suspect are the result of ancient udev
rules files that never got removed due to protection.  I've been
meaning to investigate, but I need to figure out which if any I did
actually modify.

Rich



Re: [gentoo-dev] Re: Remove eclass/ChangeLog

2012-05-23 Thread Rich Freeman
On Wed, May 23, 2012 at 4:02 AM, Samuli Suominen  wrote:
> On 05/23/2012 05:36 AM, Ryan Hill wrote:
>> One person doesn't do entries.  OMG let's remove it!
>>
>
> absolutely because inconsitency renderess the file useless
>

Well, for now the solution is to enforce following policy.

For the future, perhaps the policy's time has ended.  Sure, Changelogs
can be handy, but they are increasingly redundant and scm comments
have the potential to be far more useful.  By all means require
meaningful scm commit comments, but if Changelog files are holding us
back either auto-generate them or ditch them.

And, to add my own to cents to this chain about the only thing worse
than failing to directly inherit an eclass dependency is to break the
tree fixing the problem on personal initiative.  When a dev messes up
the solution is to talk to them or if necessary talk to devrel/QA -
not to break end-user systems.

Rich



Re: [gentoo-dev] Portage Git migration - clean cut or git-cvsserver

2012-05-23 Thread Rich Freeman
On Wed, May 23, 2012 at 10:43 AM, Anthony G. Basile  wrote:
>
> Looks like the bloodbath begins.  I too am in favor of killing cvs.

Please, let it die.  I'll miss my scripts, but I'll gladly deal with
that over whatever breakage comes along every time some cvs plugin
messes up the tree, or we can't use some useful git feature because
cvs amazingly enough behaves like an scm invented 20 years ago.

Rich



Re: [gentoo-dev] Portage Git migration - clean cut or git-cvsserver

2012-05-23 Thread Rich Freeman
On Wed, May 23, 2012 at 1:22 PM, Alexey Shvetsov  wrote:
>
> That isnt true =) you can commit from shallow clone  if and only if original
> repo doesnt have a branching and merging points before and after shallow
> clone point respectively
>

Is that going to be a practical condition to maintain?

And how big will the repository actually be?  Are we talking a GB or
two, or something orders of magnitude larger?

Rich



Re: [gentoo-dev] Portage Git migration - clean cut or git-cvsserver

2012-05-23 Thread Rich Freeman
On Wed, May 23, 2012 at 4:00 PM, Ezequiel Garcia  wrote:
> On Wed, May 23, 2012 at 4:37 PM, Arun Raghavan  
> wrote:
>> I, for one, think we should stay with CVS and leave all this git
>> Linusware to the new-fangled Fedora kids with their fancy init systems
>> and tight coupling. CVS was good enough for my grandfather, and it's
>> good enough for you.
>
> Perhaps it would be instructive if you could tell us one advantage of
> cvs over git.
>

Sure.  The slow commit rate encourages careful deliberation before
hitting the enter key, which therefore improves quality.

Then, if you do make a mistake the slow commit rate means that fixing
that mistake can take a long time, which increases the amount of pain
our end-users run into due to the mistake, which leads to lots of
flame wars on -dev.  That means that the guy who made the mistake is
subjected to more public ridicule, and is less likely to do it again,
That improves quality too.

Since cvs doesn't tie together tree-wide changes in a nice way or
allow them to be transactionally completed, individual package
maintainers don't need to be as concerned with the big picture view.
Now as the maintainer of libfoo the fact that somebody changed my
ebuild without making a corresponding change in some profile is
completely hidden from me, and I can go to sleep peacefully without
realizing that my users are all going to have horribly broken systems
in the morning.  Blissful ignorance of end-user suffering improves
developer morale, and helps get rid of pesky users at the same time.

cvs also makes more more aware of what is going on around me.  Anytime
I want to work on something in parallel with the main development
branch I get to manually merge changes in, which keeps me aware of my
place in the world.  That means that I'm less likely to build nice new
features, which means fewer bugs, which improves quality, and may even
drive away users as an added bonus!

See, cvs is really the wave of the future!

Rich



Re: [gentoo-dev] Portage Git migration - clean cut or git-cvsserver

2012-05-24 Thread Rich Freeman
On Thu, May 24, 2012 at 11:02 AM, Ralph Sennhauser  wrote:
> Can we keep the master on Gentoo hardware please.
>
> Also, there still should be a bug at b.g.o and git format-patch works
> just fine for that. Maybe it's only github now but how many places is a
> developer supposed to monitor?

I'm actually a little torn on this one.  I'm fine with keeping the
"master" on Gentoo in the sense that this is where the rsync tree gets
generated.  However, gitbub has a lot of tools like pull requests that
could potentially improve workflow, especially for things like proxy
maintainers.  So, letting those teams work more outside of Gentoo and
just push their changes into Gentoo might make sense.

Perhaps github should be viewed as a widely-shared overlay that gets
automatic updates from the main tree in the master branch (or whatever
we call it).  You can work on a branch in github, get it where you
want it to be, and then push it to Gentoo pretty easily.  When I don't
have access to an upstream repository I often just push a copy to a
fork on Github just to make my own life easier.

Rich



Re: [gentoo-dev] Portage Git migration - Handling Pull Requests (Was: clean cut or git-cvsserver)

2012-05-24 Thread Rich Freeman
On Thu, May 24, 2012 at 6:01 PM, Dan Douglas  wrote:
> But ok it's a good point. Github isn't a good central point of contact. People
> have to use their discression. It's just uncommon these days for a project as
> big as Gentoo to have ultra-centralized corporate-style procedures where
> everything happens exclusively though official channels. And anyway you 
> couldn't
> "enforce" that sort of thing if you tried.
>

++

There is no policy that every commit in cvs needs to be referenced to
a bug, and I doubt we're going to change that.  So, if I call up
another dev on the phone and tell them they have a typo in an ebuild,
and they fix it and commit it, nothing has gone wrong.  That isn't the
most efficient way to work usually, but there is no policy against it.
 In general users should file bugs and not contact devs directly, but
if somebody has a private arrangement otherwise, no harm no foul.

Github is just another overlay.  If in the course of working on the
next kde release the kde team makes 385 changes to their overlay, we
don't make them log and close 385 bugs on b.g.o before they merge in
the files from the overlay.

So, if a team wants to use non-official tools, by all means go ahead.
The QA standards apply to anything hitting the main tree, and must be
followed at that point in time.  We should keep our tools working
well, but if in some case there is a better way of working, or a small
team has some other preference, well, have at it!

Rich



Re: [gentoo-dev] Re: review required by herd? (new ebuild)

2012-05-26 Thread Rich Freeman
On Fri, May 25, 2012 at 11:23 PM, Ryan Hill  wrote:
> Some projects are territorial.  Games is one.  I imagine adding something
> to kde, gnome, or xfce categories without contacting those guys would get you
> an email.  If in doubt I usually file a bug when I'm adding a package and CC
> them.  If they don't respond, I add it.

Perhaps, but in general devs should be fairly free to add new packages
to the tree as long as they properly maintain them.  If a dev makes a
mistake with a newly-added package, then file a bug and they can fix
it.  If there is a dispute over whether something is a bug then we
have QA/Devrel/council/etc.

That said, things work best when everybody cooperates, so if the
maintainer and a project can get along that is fine.  If not, then
that's what Devrel/Council is for.

In that bug it was suggested that the Council doesn't get involved
with projects.  I'm not quite sure in that case why we'd even bother
to have a Council.  I view the Council like the Supreme Court - the
lower courts (projects) can do things however seems best, but if
things get out of hand you can always appeal.  Most of the time the
Council will just let the projects run things, but in general I think
they should have fairly absolute control over the distro, since they
are an elected body (alongside the Trustees which has a different but
perhaps overlapping domain).

Rich



Re: [gentoo-dev] RFC: Enable FEATURES="userpriv usersandbox" by default?

2012-05-28 Thread Rich Freeman
On Mon, May 28, 2012 at 9:09 PM, Maxim Kammerer  wrote:
> Ditto, ~2 years with regular full @world rebuild.
>

Yup, been years since the last time I even saw a bug for this.

Probably wouldn't hurt to announce in news if it will impact existing
users.  I doubt anybody would actually remove the portage user, but
never hurts just to make people aware...

Rich



Re: [gentoo-dev] RFC: Enable FEATURES="userpriv usersandbox" by default?

2012-05-29 Thread Rich Freeman
On Tue, May 29, 2012 at 10:11 AM, Michał Górny  wrote:
>
> Wouldn't that break users who sync using a regular user? And then break
> again, and again every time portage is merged?

Yup, unless that regular user is the same one used for userpriv (if
I'm correctly understanding the problem that you're pointing at).  I
don't see this as a show-stopper - just a reason to have a news item.
Those not using userpriv can always disable it and run as root as they
are already doing.  Those who are using a regular user to sync could
ensure that their make.conf uses the same user for userpriv.

Rich



Re: [gentoo-dev] RFC: Enable FEATURES="userpriv usersandbox" by default?

2012-05-29 Thread Rich Freeman
On Tue, May 29, 2012 at 10:57 AM, hasufell  wrote:
> I am against too many defaults. It's documented and people can
> activate it.
> I'm already annoyed by pre-set stuff like "cups" in
> releases/make.defaults.

While universal agreement is a bit much to hope for, I just wanted to
point out that fewer defaults is really just an illusion.

There is ALWAYS a default, anytime you have an option.  The default
might be one thing, or it might be another, but there is ALWAYS a
default.  My thinking is that our defaults should generally reflect
the most mainstream or least-surprising behavior, especially where
there are upstream projects.  in the case of portage, we are the
upstream, so we should do whatever is most useful and least obnoxious
to our users.

If you're running something other than a generic desktop/server, there
will always be a need to tweak things.

Rich



Re: [gentoo-dev] Portage Git migration - clean cut or git-cvsserver

2012-05-29 Thread Rich Freeman
On Sat, May 26, 2012 at 12:18 PM, Alexey Shvetsov  wrote:
> Since most of us want "clean cut" solution so i will close bug #333699 as
> WONTFIX

Along these lines, I'm looking at 333531 (the git migration tracker),
and it seems like there isn't actually much to do:

333685 - Seems like no action, and not sure how critical
333687 - while the bug is still open, as far as I can tell it seems
good enough to me to move forward
333697 - ditto
333701 - paused since there are other tasks to do first, though it
seems to me that little remains

333705 - not sure how critical this actually is - do we care if in
some obscure case history is lost?  Nothing says that we have to
completely destroy the old cvs repo.  Maybe we should just do a mock
migration now and post copies of the before/after somewhere public and
let people have at them.

333709 - seems like there is legitimate work to be done here, but
again nothing that big

So, what is the big issue?  Is there something not being tracked, or
is one of those items a lot harder than it looks?

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-05-30 Thread Rich Freeman
On Wed, May 30, 2012 at 6:16 AM, Dirkjan Ochtman  wrote:
> Yeah... this is why I was asking about access to infra to test the
> conversion; so far, I haven't had any replies, though.
>

A mock conversion would probably help with creating
procedures/docs/etc as well.  It is nice to say that we're "just going
to use git" but I think everybody has a slightly different picture of
how that is going to work.

If we could set up an "official unofficial" portage tree in git based
on a one-time migration (maybe refreshing it from time to time) that
could be a sandbox used to work things out, and it would then be
replaced with the official tree.  When the official migration comes
along we'd already be experts in doing it.

All we need to do is execute the migration, and just not point the
rsync generation process at it.  Maybe it won't be perfectly right at
first, and that would basically be the point of doing it.  Devs could
update tools to work against it, and the docs could be written
alongside.

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-05-31 Thread Rich Freeman
On Thu, May 31, 2012 at 12:49 PM, Robin H. Johnson  wrote:
> 1.
> Discussion on merge policy. Originally I thought we would disallow merge
> commits, so that we would get a cleaner history. However, it turns out that if
> the repo ends up being pushed to different places with slightly different
> histories, merges are absolutely going to be required to prevent somebody from
> having to rebase at least one of their sets of commits that are already 
> pushed.

Not sure I'm following, but I will be the first to admit that I'm a
git novice.  Would this be aided by a convention, like only committing
to master on the gentoo official repository, and any on-the-side work
on places like github/etc stays in branches?  Those repositories would
just keep getting fed commits on master from the official repository.

>
> 2.
> Git-SVN breakage. Why does this matter you're wondering?
> We need the newer Git for the commit signing, but it comes with a
> price, the git-svn binary has some major failures with SVN 1.7.
> Git since 1.7.8 has been broken this way.

To clarify - these won't be issues for gentoo per se, but there is a
sense that we can't stabilize the latest git because it will break it
for people using git-svn on non-gentoo work?

I think the general conclusion was that we would not be supporting any
mixed git+cvs/svn/etc workflows for gentoo itself.

If that is the case, what is our sense of how important this feature
even is to gentoo developers?  They're the only ones who really have
to have the latest git to commit to the official tree.

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-05-31 Thread Rich Freeman
On Thu, May 31, 2012 at 3:13 PM, Robin H. Johnson  wrote:
> - You have a commit, that you want to put into the Gentoo tree.
> - You have already pushed it to your github, signed
> - It needs to be merged/rebased so that it applies on the Gentoo tree.
> - If you force it to be a rebase so it applies on the tip, then you may
>  have changed the history of your github tree, and broken any further
>  forks.
> - If you permit a merge instead, nobody gets broken.

Maybe the best compromise is to tell people that if you push to
"master" on other repositories, you get to deal with the mess.  If we
try to keep side overlays/etc working on branches and not on master
then there will be no history to rewrite, as the merge will be rebased
when it hits the official master, and from there it will get pulled by
other repositories.

We can perhaps allow merge commits on other branches, where the
continuity of history is less important.

Does that make sense?

> You'd be excluding me entirely, I need to use git-svn for other work
> projects, and emerging between two different versions of git would be
> very annoying (I switch constantly between the sides of work as they
> overlap).

I'm a big proponent of letting the people doing the work scratch their
own itches first!  However, this does make us dependent on upstream -
is there any sense of when they'll be ready, or what their own
priority is for this issue.  If this is becoming a deprecated feature
then I'm not sure we can tie our future to it.

I wasn't sure if any of the existing git-svn bugs pertained to this
issue.  Either way we should add this as a blocker to the git
migration tracker.

I think that even if we made a big push it would still take us a month
or two to be ready with docs/infra/etc, and that might be optimistic.
So, this might not be rate-limiting if upstream is actively working on
it.

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-05-31 Thread Rich Freeman
On Thu, May 31, 2012 at 3:33 PM, Michał Górny  wrote:
> What would git signing work with rebased commits? Would all of them
> have to be signed once again?
>

The whole point of rebasing is to throw away history (which is either
good or bad based on your perspective).

So, if 14 devs spend 3 years and 2000 commits working on something in
a branch, and I commit it to master using a rebase, then all you'll
see in the master history is that rich0 committed 20k lines of code to
master on May 31st, and that would be signed by me.

I think that rebasing before merging is a pretty typical workflow
anyway - when you submit a patch to Linus, he doesn't really care that
you spent six months tweaking it - he just is getting a big blob of
code that either works or doesn't.  Does all that sub-history really
matter?  You could always push the branch to the repository if you
wanted to keep it on the side.

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-05-31 Thread Rich Freeman
On Thu, May 31, 2012 at 5:52 PM, Kent Fredric  wrote:
> Just I haven't worked out what happens when the SHA1 of the 'parent'
> header changes, which *will* change if the rebase is anything other
> than a fast-forward.
>
> If that SHA1 changes, the gpg signature will surely fail?

Rebasing doesn't modify past commits - it creates new ones and the
past ones are no longer in the history of the current head.  So, it
doesn't break the old signatures so much as discard them.  You would
need to create new signatures in their place, presumably from whoever
performed the rebase.

I'm trying to glean what I can from the little info out there about
how the new commit signatures work, but I don't think that you can use
signatures to convey authorship if later authors are going to rebase
the branch.  The situation is not unlike what we have now with
manifests.

As far as I can tell if you want to do work outside of master, and
then get those commits into master but preserve all the past
signatures in the history of master, then you'd need to do a merge
commit, so that all the deltas to do the merge are in a separate
commit which is then signed by the person doing the merge.

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-06-01 Thread Rich Freeman
On Fri, Jun 1, 2012 at 12:05 AM, Michał Górny  wrote:
> Yes, it isn't but such kind of work flow was presented in the message I
> replied to.

Yup, I wasn't aware that when rebasing you have the option to squash
commits or not.  They all get rewritten as if they were applied to the
current head in the first place, but apparently unless you squash them
you still get all the individual commits.

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-06-01 Thread Rich Freeman
On Fri, Jun 1, 2012 at 12:55 AM, Kent Fredric  wrote:
>
> Hmm, thats annoying. Almost makes me wish it was the trees that were
> signed, not the commits.

I think it is the tree that is signed, but that changes too.

Rebasing re-applies the same diff to the new head to give you a new
set of commits.  When you apply the same diff to a different parent
you end up with a different tree, so the tree signature won't be the
same either.

Keep in mind that git does not store a long train of diffs.  It stores
a long chain of complete trees, and the diffs get calculated if you
ask for them.  Since it is COW you only re-store files that actually
change, and incorporate others by reference.  However, if you have a
1MB file that you change 1 line on 100x, you'll end up with 100MB of
files.  Of course, when they get packed I'd hope that they'd compress
well.

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-06-01 Thread Rich Freeman
On Fri, Jun 1, 2012 at 7:23 AM, Kent Fredric  wrote:
>
> Nope, at least not as far as I can tell, and I just implemented commit
> signature verification >_>

I've been trying to find an example of a signed commit, but can't find
one anywhere, so it is hard to tell what it is doing without going
through the git source carefully.  If you have an example of a signed
commit feel free to send it to me.

Note that I am NOT interested in the output of any git operation (such
as git log --show-signature, git show, etc) - these are all processed
and do not reveal what is actually going on.  I want a copy of the
actual file containing the signature.  If the signature is embedded in
the commit then I want the file in the objects directory tree that
contains the commit.  They're just compressed text files (though it is
a bit of a pain to decompress them).

> Not nessecarily. Given that :
>
>  a file with a given content has a fixed SHA
> A tree is just a list of these SHA's , and that in turn is referenced
> by SHA, so if 2 commits have identical file content, their 'tree' sha
> will be the same ( in theory ).
>
> So that means, if you perform a rebase, assuming the filesystem looks
> the same as it did before the rebase, it will have the same SHA1 for
> the tree, regardless of the process of how it got to be that way.

The filesystem WON'T look the same after a rebase.

quick example (operations done in this order):

file in commit A in master:
1
2
3
4
5

file in commit B in a branch off of master:
1
2a
3
4
5

file in commit C in master:
1
2
3
4a
5

if you merge master into the branch you'll end up with a new commit D
whose parent is B that looks like:
1
2a
3
4a
5

if instead you rebase master into the branch you'll end up with a new
commit D whose parent is C that looks like:
1
2a
3
4a
5

The history for the branch will no longer contain B.  If there were 14
commits B1..14 you'd end up with 14 commits D1.14 that each contain
the line 4a.  None of them would use the same trees as B1..14, and
they can't use the same signatures as a result, even if only the tree
was signed.   As far as the new history was concerned, line 4a was
there before the branch was started.

At least, that is my understanding of rebasing.  Again, I'm a bit of a
git novice, but I never really grokked git until I saw a presentation
that didn't start with commands, but instead started out with just
walking through the actual structure of the repository.  Once you grok
the COW model I find it all clicks into place.

Rich



Re: Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-06-01 Thread Rich Freeman
On Fri, Jun 1, 2012 at 11:12 AM, Andreas K. Huettel
 wrote:
> Now, does the "signed data" also contain the parent sha?
>

So, I was working on a lengthy email which now would be fairly
repetitive of what Kent posted.

Suffice it to say I managed to rip out a commit from the kde overlay,
deflate it, and compared that the signature:

-BEGIN PGP SIGNATURE-
 Version: GnuPG v2.0.18 (GNU/Linux)

 iQEcBAABCgAGBQJPx+mcAAoJEO+t9ga+3I3aqLoH/0OrRA1+NPRHGfbbLoQrqMwl
 sB+2It2Pb9LfPjEme+lrQu5WgFY4j7k0qd2ZYdnXM7JdQjsqmpfAMloHh5JN4TAS
 4vk8+u2GJCYgzL/SY5XlPl2l8dT91PhQJSN0yVt4Q9TsoN3nzVpFBjACJCy9R6j2
 HrXvz/g3+MqY/9VesV8IiVgvQUTVgCdh8zBJ2rVyWAVH0bErsn518aiwEyfzNOxA
 1qJxxgGJLMpXp+nI8rnmhqTAAKiNA+byAKAsTEl3LS7OvQZ51aOCwa4A2GLOn2ef
 5JmuYQG5/FsS0RfXrqk72PiStTBWa3TakHYrgNXOXlslIR5AIB2tYnXqZcdEqYQ=
 =fucY
 -END PGP SIGNATURE-

does in fact verify for the payload:
--start--
tree 7d7f97cded40158d0f580ca6fbe97398d5c867f8
parent 14d7d9cb2219f64c7a715d8da0bbe48a32c9dad8
author Johannes Huber  1338501525 +0200
committer Johannes Huber  1338501525 +0200

[kde-base/kdelibs] Sync with live.

(Portage version: 2.2.0_alpha108/git/Linux i686, unsigned Manifest commit)
--end--

Dump those into a text file and run gpg for yourself...  The full
commit contains the gpg signature in a field as already posted by
Kent.

And while I appreciate the performance boost and space savings
provided by all the compression/packing/etc, I've learned to almost
hate those features with a passion this morning...  Getting a cloned
repo unpacked, and the commit decompressed was a bit pita.  The other
issue is that the header in the commit file is stripped before it is
signed, the actual start of the commit is "commit 830tree..."

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-06-01 Thread Rich Freeman
On Fri, Jun 1, 2012 at 9:25 AM, Nicolas Sebrecht  wrote:
> So, like explained before your concern is clearly out of the current
> discussion. Importing commit history from Overlays is not supported and
> will probably never be. Gentoo doesn't forces (and doesn't want to)
> overlays maintainers to use Git.

I'm not sure that git even supports this, unless the overlay is a
complete clone of the entire gentoo-x86.git repository.

I think the way git operations work is by finding common parents in
the history of two heads, and then moving forward from there.  If you
have two completely different repositories then they never will have a
common parent.

Plus, even if it did work, to rebase the overlay on the gentoo-x86
repository you'd have to import the full gentoo-x86 tree into it.
Then you'd have to push EVERYTHING in your overlay into gentoo-x86.  I
don't think you can just push individual files from one tree to
another.

>From what I've seen the various methods out there which do involve
moving only part of one branch into another basically involve a LOT of
history manipulation or are really no different than just copying the
files into the branch and adding them, losing all history in the
process.

I'm not sure how important all that history preservation actually is -
the overlay would still possess it.  If we did want to preserve it
then the only practical option I see is to have the overlay start out
as a clone of gentoo-x86 and keep around all the non-overlay packages,
which then means that anybody using the overlay will get all those old
gentoo-x86 packages as part of their portage tree.  Plus you still
have the rebase+gpg-signatures=fail issue.

Rich



Re: Re: Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-06-01 Thread Rich Freeman
On Fri, Jun 1, 2012 at 11:36 AM, Andreas K. Huettel
 wrote:
>> On 2 June 2012 03:12, Andreas K. Huettel  wrote:
>> Yes. Which basically means, you *cannot* have both
>>
>> a) rebase only merges
>> and
>> b) every commit must be signed
>>
>> as policies.
>>
>
> I would say that this is a very strong argument in favour of allowing merge
> commits.

One advantage of merge commits with signatures is that the history
really does reflect who signed what.

Proxy maintainer signs a bunch of ebuilds.  I merge them in.  The
commits show that the proxy maintainer signed a bunch of work done
against an old tree, and I signed a bunch of merge diffs that
basically synced them up to the new tree.

However, this is missing another issue.  What is the value of
preserving all those original signatures in the first place?  I'd
think that they'd mainly be used as some kind of web-of-trust.  Well,
would such a web-of-trust include proxy maintainers in the first
place?

If you want the tree to be traceable to Gentoo devs, then rewriting
the signatures is probably a good thing.

However, Kent did point out the rebase function doesn't actually apply
new signatures to the "new old" commits anyway, so you'd end up with
unsigned commits in the history.

git-rebase is just a shell script, that ultimately just calls
git-commit as far as I can see, which means that implementing
re-signing is just a matter of adding the appropriate parameters, or
use default configuration (assuming it doesn't already do this).

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-06-01 Thread Rich Freeman
On Fri, Jun 1, 2012 at 12:33 PM, Robin H. Johnson  wrote:
> What about overlay repositories that elect to be a branch of the main
> tree via git?
>
> Do we call that forbidden usage?

I think that branches off of the main tree are mainly going to be
useful for more eclass/profile/etc-related work.  Work on a package or
small group of packages will almost always go better in a completely
independent overlay.  If you try to do that kind of work in a branch
then if you create an rsync tree from that branch it will contain all
the other packages that you aren't working on, and they'll get stale
very quickly.  Anybody using that as an overlay will get a bunch of
old ebuilds for who-knows-what in their tree.

Now, branches in the main tree are going to be really useful for stuff
like package moves, new virtuals, eclass api changes, or other messy
changes that have big tree-wide impacts.  You can stage the change and
fix the 300 impacted ebuilds in a branch, get lots of people to test
them, and then merge those in with a single transaction, pulling in
updates from master all the while.  That is more about portage tree
maintenance than package maintenance per-se.

All that said, having the tree in git is still a big help to proxy
maintainers and others even with all these issues.  I've worked as an
outside contributor to other projects and it is a lot easier with git.
 I can easily work in my own PM, rebase against their master, and then
easily submit a nice clean diff as a patch, even without doing any
pushing at all.  I don't have to have push rights to anything official
to be more efficient in my contributions.

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-06-01 Thread Rich Freeman
On Fri, Jun 1, 2012 at 4:49 PM, Michael Weber  wrote:
>
> Cloning the repo [1] takes 200seconds on 8cores (it's 2GB of data and
> 22 minutes of 3.4GHz cpus).
>

As others have pointed out, probably the best way to bootstrap this is
to offer tarballs of a shallow repository and a full repository.
Perhaps we'd offer the latter as a torrent.  The shallow repository
should be light on the CPU too.

This would be a lot easier on the server than having everybody and
their uncle doing a full 2GB clone.

Devs could then do a pull to get the latest and greatest, and that
would only transfer the delta.

I imagine our mirror network can handle the bandwidth compared to what
we're already doing with distfiles.  Worst case we could take a
one-time hit and use S3 or whatever to do the distribution (they even
support bittorrent to cut down on the bill).

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-06-02 Thread Rich Freeman
On Sat, Jun 2, 2012 at 12:04 AM, Robin H. Johnson  wrote:
> please look up git-bundle before suggesting things like tarballs of
> repos/checkouts.
>

Looks useful.  Wasn't aware that a bundle was something other than a tarball.

We'll probably need to spell out the preferred process in the docs,
and reference it frequently in communications.  Otherwise you'll get
quite a few clones instead.

It appears that devs will have to add the remote for the live
repository after they've cloned the bundle - otherwise they'll just
keep pulling from the bundle which isn't all that convenient.

Rich



Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver

2012-06-02 Thread Rich Freeman
On Sat, Jun 2, 2012 at 8:03 AM, Dirkjan Ochtman  wrote:
> On Sat, Jun 2, 2012 at 12:59 PM, Rich Freeman  wrote:
>> It appears that devs will have to add the remote for the live
>> repository after they've cloned the bundle - otherwise they'll just
>> keep pulling from the bundle which isn't all that convenient.
>
> I think you still misunderstand. As I understand Robin, we wouldn't
> even offer up a clone of the full-history bundle, it would only be
> offered as a normal download. The default workflow is cloning from the
> shallow version, which will obviously give you the desired remote.

I wasn't talking about full-history.

I was talking about the fact that we're distributing a bundle.  If you
clone a bundle, you won't have a remote for the live repository.  You
would need to add it, unless you plan to never push a commit back to
the gentoo repository, and you plan to manually download bundles
anytime you want to update your local repository.

I'm not sure how exactly Robin was planning on making the full history
available, but it sounded like it would also be distributed as a
bundle.  That means that you can certainly clone it - just type git
clone path-to-locally-saved-bundle-file .  If it is in some other
format like a pack file then you would import it into a repository via
a different command.

Rich



Re: [gentoo-dev] Git braindump: 2 of N: developer interaction (merge co-ordinators)

2012-06-03 Thread Rich Freeman
On Sun, Jun 3, 2012 at 2:21 PM, Dirkjan Ochtman  wrote:
> That makes a lot of sense. There are probably a bunch of
> projects/teams where having their own branches makes some amount of
> sense; but we should really try the free-for-all at first.

So, it sounds like we have a migrated tree already.  Why not just plan
a few days where we tell everybody to just mirror their work as an
experiment (it would be strongly encouraged but not mandatory if for
some reason a few can't go along with it).  So, devs would do their
work in cvs, and then just do the exact same commit in git and push
it.  The rsync mirrors would of course stay with cvs (this is just a
test).

Perhaps we might even make it a complete free-for-all with no rules at
first.  Then we can circle back on the list and discuss what did and
didn't work well.  That could include rebase-vs-merge, problems with
concurrency, and so on.

A test of some sort would cut down the risk of the unexpected when we
do the real migration.

Rich



Re: [gentoo-dev] Git braindump: 1 of N: merging & git signing

2012-06-04 Thread Rich Freeman
On Mon, Jun 4, 2012 at 2:50 AM, Dirkjan Ochtman  wrote:
> On Sun, Jun 3, 2012 at 9:35 PM, Andreas K. Huettel  
> wrote:
>> However, then the "committer" of the contributed commits before the merge is
>> then the user, I guess?
>>
>> (The rule meaning as suggested by Robin
>>> - if you include a commit from a user:
>>>   author := non-@gentoo
>>>   committer := @gentoo
>>>   signer := $committer
>
> I guess, I'm not sure how the committer thing works in git.
>

Well, only Robin can explain exactly what he meant, but it sounds like
we don't want the committer field to ever have a non-gentoo email in
it, and signatures should be gentoo as well.  So, if a dev just
applies a patch to their tree/etc then there is no issue (just set
author).  If a dev wants to actually pull in a commit they'd need to
edit the fields accordingly and re-sign it.  Not sure offhand how to
best do that (I assume it is possible - probably with some variation
on rebase or something rebase calls).

I don't think the intent is to snub non-devs.  The issue is what is
the purpose of the signatures and committers field in the first place.
 The signature verifies that the commit is intact, and you can only do
that if you have a key to check it with, and you can trust that key.
If the signer is a dev then we already have policy that the keys need
to be published, and we have a list of key IDs on our website.  I'm
sure that could be improved on.  If we stick non-dev signatures in the
tree then that becomes more of a problem (though it clearly is
possible - maybe something to think about).  I assume the committer
denotes a layer of accountability, and having a dev in that spot makes
sense (devs who are proxies are accountable for oversight at some
level - though I'd personally give them the benefit of the doubt since
we want to encourage the proxy role).

I think the key with git is to not let the perfect be the enemy of the
good.  We don't have an unbroken signature chain on our current
portage tree, so I don't think we need one to move to git.  As long as
git is at least as good as what we have now, then we should accept it.
 We should of course strive to improve, but let's not keep the almost
completely unsigned cvs around for another 10 years while we argue
about signatures.

Rich



Re: [gentoo-dev] Git braindump: 2 of N: developer interaction (merge co-ordinators)

2012-06-04 Thread Rich Freeman
On Mon, Jun 4, 2012 at 2:48 AM, Dirkjan Ochtman  wrote:
> IMO we should try to be cutting down barriers from the git migration,
> not throwing up more. The process has taken long enough already; the
> desire to control everything about the migration is part of why it's
> taken so long.

Fair enough.

We should also be asking ourselves what happens if something goes
really wrong and there are no commits for a whole two days.  I think
the answer is, not much.  As long as there are a few devs who can tend
to security issues or whatever I don't see it as an issue if we have
the odd glitch.

We do need to get the docs up so that we're at least somewhat
harmonized on conventions (authors vs committers, and so on).  Let's
not burn the first person to make a mistake at the stake either...

Rich



Re: [gentoo-dev] Git braindump: 1 of N: merging & git signing

2012-06-04 Thread Rich Freeman
On Mon, Jun 4, 2012 at 8:45 AM, Dirkjan Ochtman  wrote:
>
> Well, it doesn't seem like a big deal IF there's an explicit merge
> commit that's signed by a dev.

I'm not sure about that.  If you were verifying a tree, how would you
identify which commits were merged in by what dev, using an automated
algorithm?

The only thing the merge commit contains is a list of two parents, and
a tree.  It doesn't say which one is which, unless we can rely on
their order.  Now, all those intermediate commits were never actually
published via rsync, so their integrity isn't a direct issue.
However, I'm not sure how easy automated verification would be.

Rich



Re: [gentoo-dev] Git braindump: 1 of N: merging & git signing

2012-06-04 Thread Rich Freeman
On Mon, Jun 4, 2012 at 9:48 AM, Dirkjan Ochtman  wrote:
>
> You simply walk the tree from root to tip. When you encounter an
> unsigned changeset, the nearest signed descendant is responsible for
> merging that changeset.
>

How do you KNOW that the nearest signed descendant actually merged it?

How do you know it wasn't added by a hacker?

Also, when walking the tree keep in mind that there isn't just one
path in it (with merge commits), and the links are from any particular
HEAD going back.  I'm not convinced that this is impossible, but it
isn't as trivial as it might seem at first glance.

Rich



Re: [gentoo-dev] Git braindump: 1 of N: merging & git signing

2012-06-04 Thread Rich Freeman
On Mon, Jun 4, 2012 at 10:26 AM, Dirkjan Ochtman  wrote:
> On Mon, Jun 4, 2012 at 4:18 PM, Rich Freeman  wrote:
>> How do you KNOW that the nearest signed descendant actually merged it?
>>
>> How do you know it wasn't added by a hacker?
>
> Because then the signature for the nearest signed descendant wouldn't
> check out (unless it got hacked before he signed it, of course, but in
> that case hopefully he wouldn't sign it...).

When I do a cvs commit, I don't check the logs to make sure the last
25 commits all look valid.  So, why would I expect others to do any
differently in git.  I make my changes, I run a git pull (bringing in
the hacked commit on gentoo-x86 master), and then merge/rebase in my
changes, signing my commit (which indicates that what _I_ just
commited is good, not that everything before is good).  I am not the
one commiting in hacked files - they were there before I got there.

>
> Of course, we'd have to make sure the tip of whatever is pushed is
> always signed, but the hook for that should be trivial.

Yup, but the hacker wouldn't run the hook.

Rich



Re: [gentoo-dev] Git braindump: 1 of N: merging & git signing

2012-06-04 Thread Rich Freeman
On Mon, Jun 4, 2012 at 11:02 AM, Dirkjan Ochtman  wrote:
> If the tree was bad before you pushed, then it's not your fault the
> tree is bad. You're only responsible for the commits you bring into
> the tree, so if you're merging contributor's unsigned changesets, you
> merge them with a signature of your own.

Yup, but the fact that the tree is bad is still a problem, even if it
isn't my fault.

> If the hacker has unfettered access to the server where the repository
> lives, we probably have bigger problems, as they can get whatever
> rsynced to all our users. I guess we could have rsync process check
> that the cset it's about to push out to mirrors is signed?

So, the whole point of signing is that it lets you prove that the
repository is uncompromised.  If we're going to assume that the server
is secure, then we don't need signatures - whatever is on the server
is by definition correct.

A robust security infrastructure is already spelled out in a GLEP
(though that one is dated).  Ideally it should be verifiable from end
to end, so that when you run emerge if a package has been tampered
with it will just refuse to install it.  Since we don't distribute the
whole git repository the git commits only get us part of the way
there.  However, if every step of the distribution assumes that the
previous step could have been compromised that would be a good start.

Again, we don't need to be there 100% to go live.  However, I think
that was the whole point of signing commits.  If we aren't going to
add any assurance at all with our signing practices, then there isn't
much point in having them.

Rich



Re: [gentoo-dev] Git braindump: 1 of N: merging & git signing

2012-06-04 Thread Rich Freeman
On Mon, Jun 4, 2012 at 12:19 PM, Dirkjan Ochtman  wrote:
> So to prevent your scenario, we'd
> have to get everyone to check the signature of the tip of tree they
> pulled before committing/merging.

How can we be sure this has happened?

This is the problem with signed manifests today.  I can sign a
manifest, but I didn't actually check all the files inside it, and the
file might or might not have been signed before I modified it, and
most likely I didn't even check the signature even if it was there.

Anything we do has to be automated to be of any real value.  Ideally
if something goes wrong it should be as detectable as possible.

Warts and all the current system hasn't broken down yet.  However, if
we ever did find out about an intrusion in our cvs repository, we'd
essentially have to do a 100% code review to be sure it was OK, and
that includes checking all tarballs on mirrors.

With signed commits we could verify that the tree was intact, and if
anything bad was found we could pinpoint exactly whose key was
compromised and do a focused check on their commits.

Rich



Re: [gentoo-dev] Git braindump: 1 of N: merging & git signing

2012-06-04 Thread Rich Freeman
On Mon, Jun 4, 2012 at 3:10 PM, Brian Harring  wrote:
> One thing people need to keep in mind here is that when you sign the
> commit, you're signing off on the history implicitly.  Directly
> addressing freeman's comment about "people sign the manifest but don't
> look at what they're signing", when it comes to git signage, bluntly,
> people doing that shouldn't have access- if they can't be arsed to
> validate what they're signing, then trusting them w/ the tree is
> probably questionable.

I suspect that you're missing my point.  The argument was made that as
long as merge commits are signed you know that unsigned commits
referenced by them are OK.  However, some of those commits might have
been already in gentoo-x86 and I doubt that anybody is going to check
those.  If I have a perfect commit, I do a git pull and a git push and
the result is a merge that references whatever was in gentoo-x86
before, whether placed there by dev, or hacker, or whatever.  Unless I
go back and review the existing gentoo-x86 history (and likely have to
repeat the process when somebody else does a push before I do), I
can't vouch for what was in there already - just what I'm adding.

The reason I mentioned maifests is that they have the same issue.  If
I keyword an arch on foo-1.4.5, I sign the manifest.  That doesn't
mean that I checked every file in the package's directory tree for
issues.  At most I checked foo-1.4.5, but I can't sign off on just
1.4.5 - I have to sign off on everything.  Also, when I sign off on
1.4.5, I'm really just signing off for the keyword change, not the
piece of buggy code I didn't write on line 37 of the ebuild.

Of course when merging a pile of commits into the tree you should
check all of them to make sure they're fine (or rather that the end
result of them is fine - no absolute need to squash together bug
introductions and fixes even if that is nicer).  However, I'm not sure
I'd extend that to checking commits ALREADY in gentoo-x86 made by some
other dev.

The general principle is that if you change something in the tree, you
should be responsible for what you changed, and that makes sense.

Rich



Re: [gentoo-dev] Git braindump: 1 of N: merging & git signing

2012-06-04 Thread Rich Freeman
On Mon, Jun 4, 2012 at 4:41 PM, Brian Harring  wrote:
>
> If that doesn't answer your question/concerns, be more explicit
> please.

How about a scenario:

1.  Gentoo dev commits a bunch of stuff to the tree.  Top of tree is signed.
2.  Hacker commits something to the tree.  Top of tree is not signed.
No need for preimage attacks or whatever on sha1 - they just log into
the server and do a git commit or whatever right into the tree.
3.  Gentoo dev commits a bunch of stuff to the tree.  Top of tree is signed.
4.  Rsync mirror update happens - top of tree is signed, so update
proceeds normally.

If you go back and look at the tree you see a bunch of signed and
unsigned commits.  How do you easily detect how the unsigned ones got
there (via a dev with a merge commit, or via other means)?  Either way
they'll be parents of merge commits - since merge commits have two
parents - the pre-commit gentoo-x86 tree, and the incoming commits.

Andreas - I'm pretty sure a merge commit still includes a tree.

Rich



Re: [gentoo-dev] Git braindump: 1 of N: merging & git signing

2012-06-05 Thread Rich Freeman
On Tue, Jun 5, 2012 at 2:50 AM, Michał Górny  wrote:
> On Mon, 4 Jun 2012 16:57:42 -0400
> Rich Freeman  wrote:
>
>> If you go back and look at the tree you see a bunch of signed and
>> unsigned commits.  How do you easily detect how the unsigned ones got
>> there (via a dev with a merge commit, or via other means)?
>
> Well, that's not a very good solution but the server-side hooks could
> also verify the tree state before applying new commits.

The obvious problem with this is that it makes the git server a single
point of failure - if it is compromised the hooks will not help.
Hooks should nevertheless be there to eliminate mistakes.

Note that in no way are any of these git flaws any worse than the
status quo.  I just want to avoid any false sense of security.  I
think these are flaws that are worth fixing, and I think that was why
many have labored to get the signing enabled in git in the first
place.

My suggestion is to keep working on this, but it shouldn't be
considered a blocker for adoption, since these are not new security
flaws, and if anything despite its holes git is an improvement.

Rich



Re: [gentoo-dev] Git braindump: 1 of N: merging & git signing

2012-06-08 Thread Rich Freeman
On Fri, Jun 8, 2012 at 7:01 AM, W. Trevor King  wrote:
> When the breach is discovered, you can then isolate the dev (or devs)
> who implicitly signed the hack (2) by pulling the ToT without checking
> for a valid signature (3).  Then you yell at them for sloppy security,
> and tell them to install your signature-checking post-receive hook.

Well, if devs are supposed to do this, we should probably write this
down as a policy somewhere.  Probably wouldn't hurt if the
post-receive hook actually existed, and it was designed to only work
on the official tree otherwise everybody will just uninstall it since
people don't just pull from the official tree.

I doubt any dev checks the signatures on manifest files before they
overwrite them with a new signature.  If they did it wouldn't matter
since those signatures aren't even mandatory anyway.  Certainly it
isn't intuitive to me that when I perform a signature on changes I
make that I'm also vouching for work committed by somebody else before
me.

Process can be as effective as technology in achieving security, but
only if those processes are clear, and unintrusive enough to ensure
they are followed.  I wouldn't count on being able to yell at
developers - first it does nothing to solve the mess that you'd be in
at that point, and second you can only yell at volunteers so much.

Rich



  1   2   3   4   5   6   7   8   9   10   >