Re: [gentoo-dev] Re: udev and /usr

2011-09-17 Thread Joost Roeleveld
On Friday, September 16, 2011 06:06:35 PM Duncan wrote:
 Joost Roeleveld posted on Fri, 16 Sep 2011 10:36:27 +0200 as excerpted:
  I agree, I just used this example to explain that it shouldn't be
  necessary to force an initramfs on all users just because there is a
  small group who wants to have an extreme setup.
 
 Careful with the extreme.  As you no doubt realize by now, the udev
 folks apparently consider anyone wanting a separate /usr but not an initr*
 extreme.  That'd certainly apply double if said admin (since no simple
 user cares about such stuff, in this view) had /usr on lvm.

Yes, I've noticed that.

Except that Redhat and Centos use LVM by default. Which will also mean that 
simple users also end up using LVM.
Then again, they also end up with an initr* and a generic kernel for 
everything under the sun.
I haven't properly looked at the kernel-configs from redhat lately, but I 
don't think they include all the possible hardware options be default?

--
Joost




Re: [gentoo-dev] Re: udev and /usr

2011-09-17 Thread Rich Freeman
On Sat, Sep 17, 2011 at 2:16 AM, Joost Roeleveld jo...@antarean.org wrote:


 Except that Redhat and Centos use LVM by default. Which will also mean that
 simple users also end up using LVM.
 Then again, they also end up with an initr* and a generic kernel for
 everything under the sun.
 I haven't properly looked at the kernel-configs from redhat lately, but I
 don't think they include all the possible hardware options be default?



The typical mainstream binary distro approach is to:

1.  Build every module under the sun that won't cause more support headaches
than benefits.
2.  Build a really smart initramfs that can find root whether it is on raid,
lvm, luks, or on a SAN behind luks and a VPN (ok, I'm stretching it a
little).
3.  Deploy that on everything.

With an initramfs you can essentially build a completely modular kernel,
since the kernel can rely on any module it wishes right from the start.
 However, once the initramfs is done the kernel is still a minimal size
since unused modules don't occupy space (the initramfs wipes itself out of
ram as its last step, unless in a debug mode).

Sure, the fancy initramfs takes work, but since the install image is
one-size-fits-all it is less maintenance in the long haul.  Plus you can
replace your motherboard and still boot the same drive image.  The downside
is that it might take an extra second or two to boot, but dracut is pretty
fast.

Honestly, if I were running a server setup I'd probably consider using an
intiramfs.  They're a lot less susceptible to being messed up if for
whatever reason the drives get re-ordered in the BIOS (root=UUID, or with
LVM the device names can usually be trusted).  I once booted off of a rescue
CD that for whatever reason changed the major numbers assigned to my raid
devices and for a while I could never predict what /dev/md# my root would
end up with.  That is what started my quest to get dracut working, which
I'll continue whenever git.kernel.org is back up...

Rich


Re: [gentoo-dev] udev and /usr

2011-09-17 Thread Robin H. Johnson
On Fri, Sep 16, 2011 at 10:36:27AM +0200, Joost Roeleveld wrote:
   Either udev does this already and the execution sequence is always the
   same. In which case my suggestion above would follow the same sequence
   as the queue would be on a First-in First-out basis.
   Or, if udev doesn't do this yet, udev will end up having the same
   problem.
  It doesn't do it presently. The worst case I've seen is having an early
  rule that succeeds, but gives different results w/ /var mounted vs. not
  mounted. This rule didn't actual fail, so it does not get retried...
 And here is my main concern with this. The udev team don't list all the 
 possible filesystems where things can go wrong. They only mention /usr.
We know that there are rules that invoke various parts of /usr, and
rules that have state storage in various parts of /var. I agree that a
lot more granularity would be useful, to help those that might have
multiple mountpoints within each of /usr and /var (eg, I have
/usr/lib64/debug in a seperate LV).

   This is why I would suggest the actiond process to be started after
   localmount.
  That's too late. What about all the udev rules required to get the
  device nodes for localmount to succeed?
 Shouldn't these already exist for currently working setups?
Specifically, I meant, how do you know which rules to run immediately
before localmount, and which to postpone via actiond?

The upstream discussions I've been party to previously (both on
lists
and in person), have been trying to avoid needing a full dependency
system in udev, because it's a huge degree of additional complexity.
   I don't see why it would not be possible to pause actioning of these
   scripts till the boot-process says all required mounts are available.
  
  You still have to declare which scripts need to be paused, and/or which
  rules inside the scripts need to be paused. Even worse are cases where
  mounting some of localmount entries requires those scripts to have
  completed.
 In other words, a dependency on the rules would be needed?
Yes, as I noted in my initial response to you, there's going to be
interdependencies between udev rules and other parts of the system.
(The other reason I think systemd and udev might merge at some point, or
at least have good IPC between them, because there is a potential for
speed gains there).

  udev runs that rule as soon as the hardware turns up, which is often
  before localmount.
 I have doubts about having all these things handled by udev. As you said, 
 there is an init-script that handles this. Is the ultimate goal to get rid of 
 init-scripts and have everything done automagically?
The rule is really useful  important if you plug in a USB or Firewire
sound card at some point after boot. If you already had it configured a
previous time, that rule will restore your volume settings :-).

The other parts of that init script are valuable still, but the volume
restore is just a crutch for failing to load the volume when the device
was first detected. If you have a soundcard that makes a pop when your
system boots, that's a bug caused by this.

  Just because there are no visible errors, doesn't mean that they don't
  exist. This move to encourage initramfs is to ensure that there isn't
  any major breakage incidents soon. What if udev upstream suddenely
  starts hard requiring /usr to mounted, and not doing retries at all.
  How many systems are going to break, and users going to complain about
  needing to use livecds to recover?
 A lot. And those will be very vocal.
 I have a few goals with this thread and one of them is to try to figure out 
 how best to avoid users to get affected by this.
For now, users having an initramfs ahead of time is the best option to
avoid future breakages.

  DEVTMPFS creates the first batch, and udev creates the rest.
  
  The deciding case then becomes:
  - Is the device for your /usr entry in fstab created by udev or
something else?
  
  MD: done by devtmpfs
  LVM: done by udev+lvm
  by-uuid/by-label: done by udev
  
  by-uuid and by-label present a lot of annoyance to the minimal
  initramfs. We have to ensure that we explicitly support them, which has
  increased the complexity of the initramfs.
 My /usr is on LVM. That requires udev.
 
 My understanding is:
 - udev needs /usr to be mounted to work
Correct.

 - udev is needed to sort out LVM to get access to /usr
Incorrect. But perhaps not for the reason that you think.

Using genkernel's initramfs here as an example, this is the sequence of
LVM commands that run:
vgscan
vgchange -ay --sysinit

That --sysinit part is important, as it tells LVM to avoid locking (and
some interaction with udev), and then LVM has fallback code to create
the symlinks and other device nodes in /dev. What udev CAN do is create
all of the by-label/by-uuid bits above. The fallback code in LVM is very
complex, just for the case of handling udev not being there yet.

 And why can't this be implemented in 

[gentoo-dev] Infrastructure Team survey

2011-09-17 Thread Alec Warner
Hello,

My name is Alec and I am a recent addition to the Gentoo
Infrastructure Team. I think our Infra team does a decent job of
holding the fort. However I am curious what developers and users think
about our efforts. As such I have a short (4 question) survey[1] for
you. You do not need to be a developer to answer the survey.

[1] 
https://docs.google.com/a/scriptkitty.com/spreadsheet/viewform?formkey=dC1BVVdkSDlnR1RKdE9LMlY2SWEwV0E6MQ#gid=0

PS: Yes the survey is a poopy Google Doc. No you should not need a
Google Account to respond to it. Yes Google will store your IP and
browser string. This is one of the easiest ways to do a survey. If you
really hate Google you can just email your replies to me
(anta...@gentoo.org) and I'll add them to the spreadsheet by hand.

-A



Re: [gentoo-dev] new `usex` helper

2011-09-17 Thread Zac Medico
On 09/16/2011 02:06 AM, Brian Harring wrote:
 On Thu, Sep 15, 2011 at 10:00:19PM -0500, Donnie Berkholz wrote:
 On 17:29 Wed 14 Sep , Brian Harring wrote:
 On Wed, Sep 14, 2011 at 02:16:41PM -0500, Donnie Berkholz wrote:
 On 19:14 Tue 13 Sep , Brian Harring wrote:
 On Tue, Sep 13, 2011 at 09:02:28PM -0500, Donnie Berkholz wrote:
 On 17:56 Tue 13 Sep , Mike Frysinger wrote:
 useful enough for EAPI ?  or should i just stick it into eutils.eclass 
 ?  OR BOTH !?

 I prefer to avoid EAPI whenever possible, as it just makes things slower 
 and more complex.

 Exactly the wrong approach; it winds up with master 
 repositories/overlays cloning the functionality all over the damn 
 place.

 Why are people cloning anything if it's in eutils.eclass in gentoo-x86?

 There are more repositories than just gentoo-x86, and overlay is *not* 
 the only configuration in use.

 Who else besides you is using any other configuration? Should we really 
 give a crap about the 0.001% population with some weird setup when we're 
 trying to improve things for the 99.999% one?
 
 Specious argument; the point of controllable stacking was to avoid the 
 issue of overlay's forcing their eclasses upon gentoo-x86 ebuilds 
 (which may not support those modified eclasses) via the old 
 PORTDIR_OVERLAY behaviour.  This is why multiple repositories have 
 layout.conf master definitions- to explicitly mark that they 
 require/consume a seperate repo.
 
 What you're basically proposing is a variation of the push format 
 definitions into a central tree, and require everyone to use that 
 central tree.  This discussion has come and gone; I say that being 
 one of the folks who was *pushing for the repository solution*.  The 
 problem there is it fundamentally enables (more forces) fragmentation.
 
 Realistically I assume you're taking the stance EAPI gets in the way, 
 lets do away with it- if so, well, out with it, and I'll dredge up 
 the old logs/complaints that lead to EAPI.
 
 
 In the old days of the PM only handling a single overlay stack, what 
 you're suggesting would be less heinous- heinous in detail, but 
 pragmatic in reality.  These days it's a regressive approach- 
 requiring everyone to slave gentoo-x86 isn't sane, nor is avoiding 
 eapi (resulting in people having to duplicate code into each 
 repository stack).

 I don't know many people who aren't using gentoo-x86 or a repo that 
 pulls in changes directly from it.
 
 rephrase please; either you're saying everyone uses gentoo-x86 which 
 is sort of true (funtoo/chrome aren't necessarily riding HEAD/trunk 
 however which means things can get ugly for derivative repository 
 usage), but still ignores the situations where people have overlays 
 w/ developmental eclasses that they need to selectively control where 
 it overrides (which is where the notion of repo stacking comes into 
 play).
 ~brian

As I've mentioned in bug #380391 [1], a possible hybrid approach would
be to distribute an eclass library that can be installed as a dependency
of the package manager. This would provide benefits similar to those of
using eclasses from gentoo-x86, while avoiding the introduction of a
dependencies on either gentoo-x86 or package manager implementations.

[1] https://bugs.gentoo.org/show_bug.cgi?id=380391#c3
-- 
Thanks,
Zac



[gentoo-dev] FEATURES=stricter as a default in developer profile not the best idea

2011-09-17 Thread Paweł Hajdan, Jr.
TLDR: Let's remove FEATURES=stricter from developer profile, I bet
most people have it disabled anyway and it doesn't seem useful.

I recently started more testing in one of my stable chroots, and I
switched it to the developer profile. During the update the following
error happened:

  * QA Notice: Package has poor programming practices which may compile
  *fine but exhibit random runtime failures.
  * gam_listener.c:101: warning: implicit declaration of function 
 'gam_exclude_check'
  * gam_server.c:624: warning: implicit declaration of function 
 'gam_error_init'
  * gam_connection.c:402: warning: implicit declaration of function 
 'gam_exclude_check'
  * gam_inotify.c:145: warning: implicit declaration of function 
 'gam_poll_basic_init'
 
  * Please do not file a Gentoo bug and instead report the above QA
  * issues directly to the upstream developers of this software.
  * Homepage: http://www.gnome.org/~veillard/gamin/
  * ERROR: app-admin/gam-server-0.1.10 failed:
  *   install aborted due to poor programming practices shown above
  *
  * Call stack:
  *   misc-functions.sh, line 992:  Called install_qa_check
  *   misc-functions.sh, line 688:  Called die
  * The specific snippet of code:
  *  has stricter ${FEATURES}  die install 
 aborted due to \

Which is of course for a package I'm not a developer of. It seems to me
that any people who use the developer profile productively have already
disabled FEATURES=stricter. In fact, I've done so in my development VM.

I suggest that we remove FEATURES=stricter from developer profile's
defaults.

/usr/portage/profiles/targets/developer/make.defaults:FEATURES=collision-protect
multilib-strict sign splitdebug stricter test test-fail-continue
userpriv usersandbox

An alternative solution would be to make misc-functions.sh not bail out
on errors beyond control of most people, but that's an order of
magnitude more complicated.

Thoughts?



signature.asc
Description: OpenPGP digital signature


[gentoo-dev] Last rites: www-plugins/weave

2011-09-17 Thread Mounir Lamouri

# Mounir Lamouri volk...@gentoo.org (18 Sep 2011)
# Masked for removal in 30 days. Use Firefox 4 or higher instead.
www-plugins/weave



Re: [gentoo-dev] Fwd: [gentoo-dev-announce] Call for items for September 13 council meeting

2011-09-17 Thread Donnie Berkholz
On 14:06 Fri 16 Sep , Zac Medico wrote:
 Bumping the EAPI of the root profiles/eapi file would be a different 
 matter, since it applies to the whole repository. If you want to 
 version bump that repository-level EAPI, then you need to wait until 
 at least 6 months after supporting package managers have been 
 available in stable.

So in your opinion, it would be fine to bump profiles/eapi to EAPI=4 
now?

-- 
Thanks,
Donnie

Donnie Berkholz
Council Member / Sr. Developer
Gentoo Linux
Blog: http://dberkholz.com


pgpT74nMsKtpS.pgp
Description: PGP signature


Re: [gentoo-dev] new `usex` helper

2011-09-17 Thread Donnie Berkholz
On 13:43 Fri 16 Sep , Brian Harring wrote:
 What I said from the getgo and you're missing is that pushing EAPI 
 implementation into the tree and ignoring EAPI, or having this notion 
 that every repository must automatically use gentoo-x86 (pushing the 
 format into the tree) is /wrong/;

I'm not necessarily requiring that every repository must automatically 
use gentoo-x86 — just the ones that want to use features in an eclass 
distributed with gentoo-x86. It sounds to me like the logical 
consequence of what you're saying is that every useful function that's 
now or could eventually be in an eclass must instead be incorporated 
into EAPI. I guess I just don't see where you're drawing the line.

What I'm suggesting is that we should add useful stuff to eclasses by 
default. If people want to use that stuff, they can stack on the 
gentoo-x86 repo and inherit the eclass. I don't know why EAPI needs to 
come into it at all.

 aside from meaning that the format definition can now *vary*, which is 
 great for wasting dev time and screwing up compatibility, it opens up 
 tweaking/customizing that functionality- aka, 
 fragmentation/divergence.

People doing that outside gentoo-x86 should do it the same way as ones 
within it, by bumping the eclass to a new unique name. Ideally one 
that's not just a numeric value so it won't conflict with ours, in the 
same way as EAPI naming.

 If we did the sort of thing you're basically pushing for, how long do 
 you think it would be till funtoo added support for a new archive 
 format to unpack?  That's a *simple*, and *likely* example of how this 
 can diverge.

So, what I'm getting out of this is that we should make it harder for 
derivative distributions to innovate? Why should I care if they want to 
do stuff with new archive formats?

 Further, doing as you propose means we're flat out, shit out of luck 
 /ever/ distributing a usable cache for standalone repositories.  If 
 they're bound to the changes of another repository, distributing a 
 cache in parallel is pointless (and not doable in current form since 
 metadata/cache lacks necessary eclass validation data for overlay 
 inheritance).

Not much different from other cross-repository dependencies; you have to 
keep everything in lockstep because who knows what other people will do 
with their repos. Maybe people would want to distribute their own copies 
of forked dependent repositories too, I haven't thought much about it.

-- 
Thanks,
Donnie

Donnie Berkholz
Council Member / Sr. Developer
Gentoo Linux
Blog: http://dberkholz.com


pgptazUS3EHSs.pgp
Description: PGP signature


[gentoo-dev] glibc-2.13 stabilization

2011-09-17 Thread Mike Frysinger
'bout that time again.  if you peeps know of anything blocking glibc-2.13 from 
going stable, mark the relevant bug as blocking the tracker.

tracker: https://bugs.gentoo.org/354107
stabilization: https://bugs.gentoo.org/382377
-mike


signature.asc
Description: This is a digitally signed message part.


Re: [gentoo-dev] Fwd: [gentoo-dev-announce] Call for items for September 13 council meeting

2011-09-17 Thread Zac Medico
On 09/17/2011 08:47 PM, Donnie Berkholz wrote:
 On 14:06 Fri 16 Sep , Zac Medico wrote:
 Bumping the EAPI of the root profiles/eapi file would be a different 
 matter, since it applies to the whole repository. If you want to 
 version bump that repository-level EAPI, then you need to wait until 
 at least 6 months after supporting package managers have been 
 available in stable.
 
 So in your opinion, it would be fine to bump profiles/eapi to EAPI=4 
 now?

Yes, it's feasible. As a consequence, we may get some complaints from
users who haven't upgraded during the last six months. For users like
these, we could take a snapshot of the tree before the EAPI is bumped,
and archive it so they can use it to update their package manager to a
version that supports the new EAPI.
-- 
Thanks,
Zac



Re: [gentoo-dev] udev and /usr

2011-09-17 Thread Luca Barbato

On 9/15/11 1:33 PM, Joost Roeleveld wrote:

On Thursday, September 15, 2011 09:31:45 PM Luca Barbato wrote:

On 15/09/2011 16:33, Joost Roeleveld wrote:

Hi Devs,

Not sure if you are aware of the discussions on the gentoo-user list
about the upcoming change where systemd and udev require /usr to be
available prior to starting of udev.


systemd seems more and more just a support burden for no gain...


Myself and a lot of others on the gentoo-user list agree with this.
Especially as there are plenty of installations where udev works without /usr
mounted.


Glad we agree.

I think putting more pressure so systemd isn't given as granted would be 
more healthy for both those who are not using it (because, again, is an 
aberration for any kind of daemon not written for it) and those that 
want to use it (since maybe as desktop-only it might have some nice 
integrations).


Probably just adding the dbus interfaces and thinning it down might be 
something useful if that integration might have use-cases.


lu - not feeling a mindless lemming