Re: [gentoo-dev] About udev-145: new features / extras and kernel requirements

2009-08-30 Thread Lars Wendler
> In summation, I say hard-enable these:
>
> acl
>

Please don't do this. It would force installation of sys-apps/acl to any user 
which I think is not desired by everybody. I'd rather like to see this being 
enabled by either the acl or the consolekit USE flag.

Lars Wendler (Polynomial-C)
Gentoo Staffer and bug-wrangler


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


Re: [gentoo-dev] linux-info.eclass: lacking sources, config checks and module building

2009-08-30 Thread Mike Auty
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Robin H. Johnson wrote:
> If you feel like reviewing ~140 packages and filing bugs for them, I
> won't stop you. But I'm just going to go and fix the ones that seem
> simple enough to me, and only file bugs for the complex ones.

Ok, I'll do what I can tomorrow.  I'm off to bed now...  5:)

> Err, I'm not following what you claim is the problem here?
> 
> cat/foo-mod:
> inherit linux-mod
> CONFIG_CHECK="!option"
>
> ...
> 
> The user sets USE=-modules because they have built cat/foo-mod on their
> own, into the kernel. foo-mod installs nothing

Just checking that it will actually install nothing, rather than failing
out with an error because the kernel has "option" set.  I'm just
re-iterating that CONFIG_CHECK should only occur if USE="modules".  If
USE="-modules", then the CONFIG_CHECK options should probably be ignored
shouldn't they?

> It needs to be ALWAYS available. The ipset bug I linked earlier in the
> thread was an example of that. The userspace is useless without the
> kernel code, but there is nothing to stop the user patching it into
> their kernel and not having it as a module at all (as is the case on a
> couple of my work boxes, which is why the bug got filed).

Ok, fair enough.  However, in that instance, ipset is a userspace
dependency, I was talking about kernel modules that have no userspace
dependencies.  I suppose there could be a case where someone is trying
to custom build a userspace tool that isn't in portage yet, but I still
think it might cause confusion to allow USE="modules" on kernel modules
(without any dependencies) that then install nothing.  I'm wondering
which will cause more bugs to be filed?

Mike  5:)
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)

iEYEARECAAYFAkqbHEEACgkQu7rWomwgFXrEpQCeIMWofCtvwHKJoZsb3/qUyLcP
tTUAoIb3Sr645x6NY82LXK6i/3g75NF5
=uaOB
-END PGP SIGNATURE-



Re: [gentoo-dev] linux-info.eclass: lacking sources, config checks and module building

2009-08-30 Thread Robin H. Johnson
On Mon, Aug 31, 2009 at 01:00:41AM +0100, Mike Auty wrote:
> > I missed a bit for the config option.
> > If there is NO source of the config data, what do we do?
> > Error out or more warnings?
> Well, if we can't determine whether a config option's set or not, if
> it's not critical (ie, it's ~CHECK), then we warn.  If there's any hard
> checks, then we error out I suppose.
+1.

> > This is what I use for my home workstation:
> > /etc/portage/profile/virtuals:virtual/linux-sources sys-kernel/git-sources
> > /etc/portage/profile/virtuals:virtual/alsa sys-kernel/git-sources
> > /etc/portage/profile/package.provided:sys-kernel/git-sources-2.6.30
> > Saves having any fake package like that.
> Ah cunning, I'll have to try that...
We should document it in the kernel web pages.

> > Want to lend a hand fixing up the ebuilds then? I'll work on the eclass 
> > sources
> > check.
> Sure, as long as I sure I know how we're fixing them, I'd be glad to
> help.  5:)  I'd just be fixing the userspace ones to make sure they're
> ~CHECK or would I be doing something else as well?  Also should I do
> that via bugs and a week's grace period, or would you recommend I just
> dive right in?
If you feel like reviewing ~140 packages and filing bugs for them, I
won't stop you. But I'm just going to go and fix the ones that seem
simple enough to me, and only file bugs for the complex ones.

> > There IS still a point of having the entirely empty kernel package 
> > installed:
> > - Split userspace/kernel packages where the userspace package has a 
> > dependency
> >   on the module-providing package. 
> > - other packages that might have a dependency on the module-providing 
> > package.
> > - /etc/modprobe.d/ files.
> > 
> > USE=-modules will ONLY block files installed to /lib/modules/.
> Ok, presumably USE=-modules will also stop the kernel checks, otherwise
> the following could occur.  Let's say the foobar package builds external
> modules and explicitly requires that foobar not be set in the kernel.
> With USE=-modules, there's no internal version and there's no external
> version, but the kernel package is installed, and the deps are happy,
> even though they'll bug out when it's showtime.

Err, I'm not following what you claim is the problem here?

cat/foo-mod:
inherit linux-mod
CONFIG_CHECK="!..."
MODULE_NAMES=""

cat/foo-usr:
RDEPEND="cat/foo"

And say foo-mod provides /dev/foo for some crazy hardware.

The user sets USE=-modules because they have built cat/foo-mod on their
own, into the kernel. foo-mod installs nothing, foo-usr installs fine.
foo-usr runs, and /dev/foo already exists, so it gets used fine.

> Presumably there's also packages that aren't split, or depended on,
> where not installing the modules is never a good idea.  Is there still a
> way to disable the USE flag, or will it be a requirement of the
> linux-mod package?
It needs to be ALWAYS available. The ipset bug I linked earlier in the
thread was an example of that. The userspace is useless without the
kernel code, but there is nothing to stop the user patching it into
their kernel and not having it as a module at all (as is the case on a
couple of my work boxes, which is why the bug got filed).

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


pgpGQavFipWmZ.pgp
Description: PGP signature


[gentoo-dev] Automated Package Removal and Addition Tracker, for the week ending 2009-08-30 23h59 UTC

2009-08-30 Thread Robin H. Johnson
The attached list notes all of the packages that were added or removed
from the tree, for the week ending 2009-08-30 23h59 UTC.

Removals:
xfce-extra/thunar-archive   2009-08-24 09:19:17 ssuominen
xfce-extra/xfce4-cpu-freq   2009-08-24 09:33:22 ssuominen
xfce-extra/xfce4-xfapplet   2009-08-24 12:01:37 ssuominen
xfce-extra/xfce4-smartbookmark  2009-08-24 12:15:33 ssuominen
xfce-extra/xfce4-mount  2009-08-24 13:30:06 ssuominen
xfce-extra/thunar-media-tags2009-08-24 13:53:17 ssuominen
xfce-extra/xfce4-netload2009-08-25 07:56:52 ssuominen
xfce-extra/xfce4-places 2009-08-25 07:56:52 ssuominen
xfce-extra/xfce4-quicklauncher  2009-08-25 08:21:29 ssuominen
xfce-extra/xfce4-eyes   2009-08-25 09:02:19 ssuominen
xfce-extra/xfce4-genmon 2009-08-25 09:02:20 ssuominen
xfce-extra/xfce4-battery2009-08-25 10:51:48 ssuominen
xfce-extra/xfce4-cellmodem  2009-08-25 10:51:48 ssuominen
xfce-extra/xfce4-notes  2009-08-25 11:42:21 ssuominen
xfce-extra/xfce4-cpugraph   2009-08-25 12:35:05 ssuominen
xfce-extra/xfce4-datetime   2009-08-25 12:35:05 ssuominen
xfce-extra/xfce4-fsguard2009-08-25 12:35:05 ssuominen
xfce-extra/xfce4-systemload 2009-08-25 13:24:21 ssuominen
xfce-extra/xfce4-time-out   2009-08-25 13:24:22 ssuominen
xfce-extra/xfce4-timer  2009-08-25 13:24:22 ssuominen
xfce-extra/xfce4-diskperf   2009-08-25 13:49:59 ssuominen
xfce-extra/xfce4-verve  2009-08-25 13:50:00 ssuominen
xfce-extra/xfce4-wavelan2009-08-25 14:11:06 ssuominen
xfce-extra/xfce4-mailwatch  2009-08-25 15:47:43 ssuominen
xfce-extra/xfce4-modemlights2009-08-25 15:47:44 ssuominen
xfce-extra/xfce4-weather2009-08-25 15:47:44 ssuominen
media-sound/gnusound2009-08-27 22:02:26 ssuominen

Additions:
xfce-extra/thunar-archive-plugin2009-08-24 09:17:21 ssuominen
xfce-extra/xfce4-cpufreq-plugin 2009-08-24 09:31:19 ssuominen
xfce-extra/xfswitch-plugin  2009-08-24 09:51:48 ssuominen
xfce-extra/xfce4-gvfs-mount 2009-08-24 10:03:55 ssuominen
xfce-extra/xfce4-xfapplet-plugin2009-08-24 11:59:32 ssuominen
xfce-extra/xfce4-smartbookmark-plugin   2009-08-24 12:13:09 ssuominen
net-misc/modemmanager   2009-08-24 13:19:04 dagger
net-misc/ofono  2009-08-24 13:20:40 dagger
net-misc/mobile-broadband-provider-info 2009-08-24 13:21:52 dagger
net-misc/connman2009-08-24 13:24:08 dagger
gnome-extra/connman-gnome   2009-08-24 13:25:24 dagger
xfce-extra/xfce4-mount-plugin   2009-08-24 13:28:44 ssuominen
xfce-extra/thunar-media-tags-plugin 2009-08-24 13:52:40 ssuominen
app-i18n/ibus-qt2009-08-24 15:00:19 matsuu
xfce-extra/xfce4-places-plugin  2009-08-25 07:47:20 ssuominen
xfce-extra/xfce4-netload-plugin 2009-08-25 07:52:46 ssuominen
xfce-extra/xfce4-quicklauncher-plugin   2009-08-25 08:20:36 ssuominen
xfce-extra/xfce4-eyes-plugin2009-08-25 08:43:52 ssuominen
xfce-extra/xfce4-genmon-plugin  2009-08-25 08:52:26 ssuominen
xfce-extra/xfce4-cellmodem-plugin   2009-08-25 10:23:47 ssuominen
xfce-extra/xfce4-battery-plugin 2009-08-25 10:34:19 ssuominen
xfce-extra/xfce4-notes-plugin   2009-08-25 11:26:09 ssuominen
xfce-extra/xfce4-cpugraph-plugin2009-08-25 12:15:35 ssuominen
xfce-extra/xfce4-fsguard-plugin 2009-08-25 12:25:16 ssuominen
xfce-extra/xfce4-datetime-plugin2009-08-25 12:32:41 ssuominen
xfce-extra/xfce4-systemload-plugin  2009-08-25 13:03:49 ssuominen
xfce-extra/xfce4-time-out-plugin2009-08-25 13:13:15 ssuominen
xfce-extra/xfce4-timer-plugin   2009-08-25 13:22:44 ssuominen
xfce-extra/xfce4-verve-plugin   2009-08-25 13:32:21 ssuominen
xfce-extra/xfce4-diskperf-plugin2009-08-25 13:38:35 ssuominen
xfce-extra/xfce4-wavelan-plugin 2009-08-25 14:05:05 ssuominen
xfce-extra/xfce4-weather-plugin 2009-08-25 15:03:36 ssuominen
xfce-extra/xfce4-modemlights-plugin 2009-08-25 15:33:18 ssuominen
xfce-extra/xfce4-mailwatch-plugin   2009-08-25 15:45:51 ssuominen
dev-perl/common-sense   2009-08-25 17:43:07 robbat2
games-puzzle/zaz2009-08-26 05:50:27 mr_bones_
gnome-extra/indicator-applet2009-08-26 06:13:22 ssuominen
net-im/indicator-messages   2009-08-26 06:29:29 ssuominen
xfce-extra/xfce4-linelight-plugin   2009-08-26 10:48:2

Re: [gentoo-dev] linux-info.eclass: lacking sources, config checks and module building

2009-08-30 Thread Mike Auty
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Robin H. Johnson wrote:
> Yes, a warning with using /proc/config.gz.
> 
> I missed a bit for the config option.
> If there is NO source of the config data, what do we do?
> Error out or more warnings?

Well, if we can't determine whether a config option's set or not, if
it's not critical (ie, it's ~CHECK), then we warn.  If there's any hard
checks, then we error out I suppose.

> This is what I use for my home workstation:
> /etc/portage/profile/virtuals:virtual/linux-sources sys-kernel/git-sources
> /etc/portage/profile/virtuals:virtual/alsa sys-kernel/git-sources
> /etc/portage/profile/package.provided:sys-kernel/git-sources-2.6.30
> 
> Saves having any fake package like that.

Ah cunning, I'll have to try that...

> Want to lend a hand fixing up the ebuilds then? I'll work on the eclass 
> sources
> check.

Sure, as long as I sure I know how we're fixing them, I'd be glad to
help.  5:)  I'd just be fixing the userspace ones to make sure they're
~CHECK or would I be doing something else as well?  Also should I do
that via bugs and a week's grace period, or would you recommend I just
dive right in?

> There IS still a point of having the entirely empty kernel package installed:
> - Split userspace/kernel packages where the userspace package has a dependency
>   on the module-providing package. 
> - other packages that might have a dependency on the module-providing package.
> - /etc/modprobe.d/ files.
> 
> USE=-modules will ONLY block files installed to /lib/modules/.

Ok, presumably USE=-modules will also stop the kernel checks, otherwise
the following could occur.  Let's say the foobar package builds external
modules and explicitly requires that foobar not be set in the kernel.
With USE=-modules, there's no internal version and there's no external
version, but the kernel package is installed, and the deps are happy,
even though they'll bug out when it's showtime.

Presumably there's also packages that aren't split, or depended on,
where not installing the modules is never a good idea.  Is there still a
way to disable the USE flag, or will it be a requirement of the
linux-mod package?

> I'm not sure we can get away with USE-defaults for this change, due to the
> amount of EAPI=0 stuff that will be changing, so it'll be in
> profiles/base/make.defaults instead.

That's fine, just so long as it's on and not off, I don't mind what
system we use to do it.  5:)

Mike  5:)
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)

iEYEARECAAYFAkqbEqkACgkQu7rWomwgFXq53QCdFi8YlDrKwkh9b0g6EX2DBI35
0t0AnRRRV+oxqQaKPqzcWxGJDtW2lszQ
=oia+
-END PGP SIGNATURE-



[gentoo-dev] New global USE flag: modules

2009-08-30 Thread Robin H. Johnson
Per my thread on building modules and linux-info, USE=modules will be moving
from being a local USE flag to being a global, AND it will be enabled by
default in the base profile.

Proposed description:
-
Enable building of kernel modules

Existing tree usage:

app-emulation/kvm:modules - Build the kernel modules from the kvm package
media-libs/libifp:modules - Build kernel modules for non-root usage
sys-block/open-iscsi:modules - Build the open-iscsi kernel modules
x11-drivers/ati-drivers:modules - Build the kernel modules
x11-drivers/linuxwacom:modules - Build kernel module

Expected impact:

At least 120 packages will change, possibly as many as 140.
Many of these may be simply the via the eclass.

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


pgpygiLs1lOTh.pgp
Description: PGP signature


Re: [gentoo-dev] linux-info.eclass: lacking sources, config checks and module building

2009-08-30 Thread Robin H. Johnson
On Mon, Aug 31, 2009 at 12:30:02AM +0100, Mike Auty wrote:
> > Checking a configuration option, for non-module use:
> > 
> > 0. (optional) give an env var to make all checks non-fatal.
> > 1. Use existing logic of .config from /usr/src/linux, KERNEL_DIR et al.
> > 2. Fall back to /proc/config.gz if available.
> Where 2 also issues a warning, presumably?  I've had a think and can't
> see any repercussions in changing the default behaviour, but I'm
> assuming people would only generally hit 2 with virtual machines and/or
> hardened servers.  Can you see either of these suffering from defaulting
> to the running kernel?  Do you know of many circumstances where 2 might
> get hit by normal users other than those situations?
Yes, a warning with using /proc/config.gz.

I missed a bit for the config option.
If there is NO source of the config data, what do we do?
Error out or more warnings?

> Also (and potentially off-topic), if we're using linux-info to detect
> kernel sources, whether installed or not, should we also check the tree
> for ebuilds that require a package which PROVIDES="sources"?  I
> personally use a single git checkout, since I think (possibly
> mistakenly, I honestly haven't checked) that it will leave different
> checkouts of the kernel all over my /usr/src directory, whenever a new
> version's emerged.  I've had to create a fake-sources package to trick
> ebuilds that need *some* sources installed, and I'm wondering if that
> should be necessary?
This is what I use for my home workstation:
/etc/portage/profile/virtuals:virtual/linux-sources sys-kernel/git-sources
/etc/portage/profile/virtuals:virtual/alsa sys-kernel/git-sources
/etc/portage/profile/package.provided:sys-kernel/git-sources-2.6.30

Saves having any fake package like that.

> > It's a one-liner to give an override making all checks non-fatal, with
> > the downside that it can't differentiate why the checks are being made.
> > So yes, in the case we should simply fix all of the ebuilds (after the
> > kernel source check is fixed as well).
> I'd definitely try and do things the right way, and a global override
> (whilst easy) doesn't sound like it.  Fixing all the ebuilds (and the
> kernel source check) sounds like the way to go.
Want to lend a hand fixing up the ebuilds then? I'll work on the eclass sources
check.

> > So I propose this as resolutions from the above:
> > 1. USE=modules added to the base profile.
> > 2. Every package that builds kernel modules must offer USE=modules, 
> >which can be used to disable building the kernel modules, leaving a
> >pure userspace build of that package.
> Yep, although if the changes are in linux-mod, then those packages that
> *only* provide kernel modules will need a way to not present that use
> flag (no point installing a package is USE="-modules" and nothing gets
> installed). 
There IS still a point of having the entirely empty kernel package installed:
- Split userspace/kernel packages where the userspace package has a dependency
  on the module-providing package. 
- other packages that might have a dependency on the module-providing package.
- /etc/modprobe.d/ files.

USE=-modules will ONLY block files installed to /lib/modules/.

> Also, I'd assume +modules would be added as a default.
I'm not sure we can get away with USE-defaults for this change, due to the
amount of EAPI=0 stuff that will be changing, so it'll be in
profiles/base/make.defaults instead.

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



Re: [gentoo-dev] linux-info.eclass: lacking sources, config checks and module building

2009-08-30 Thread Mike Auty
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Robin H. Johnson wrote:
> The existing state is:
> - Force the user to install sources
> 
> Our choices are:
> - `uname -r` output.
> - Create an override environment variable for all the checks.
> 
> /proc/config.gz comes back here again, in that, we can use it as a
> middle ground with `uname -r`, rather than having the environment
> variable.

Ok, that seems a very reasonable use.

> So from our discussion, I propose the following:
> Finding the kernel version:
> ---
> 0. (optional) give an env var to bypass entirely.
> 1. Use existing logic of /usr/src/linux, KERNEL_DIR et al.
> 2. Fall back to using the running version, with a warning.
> 
> Checking a configuration option, for non-module use:
> 
> 0. (optional) give an env var to make all checks non-fatal.
> 1. Use existing logic of .config from /usr/src/linux, KERNEL_DIR et al.
> 2. Fall back to /proc/config.gz if available.

Where 2 also issues a warning, presumably?  I've had a think and can't
see any repercussions in changing the default behaviour, but I'm
assuming people would only generally hit 2 with virtual machines and/or
hardened servers.  Can you see either of these suffering from defaulting
to the running kernel?  Do you know of many circumstances where 2 might
get hit by normal users other than those situations?

Also (and potentially off-topic), if we're using linux-info to detect
kernel sources, whether installed or not, should we also check the tree
for ebuilds that require a package which PROVIDES="sources"?  I
personally use a single git checkout, since I think (possibly
mistakenly, I honestly haven't checked) that it will leave different
checkouts of the kernel all over my /usr/src directory, whenever a new
version's emerged.  I've had to create a fake-sources package to trick
ebuilds that need *some* sources installed, and I'm wondering if that
should be necessary?

> Two different cases here:
> 1. Portage knows their kernel is not setup correctly.
> 2. Portage cannot find out enough info.
> 
> It's #2 that bites on virtual machines and hardened servers, and is what
> I'd like to fix.

Ok, I'm all for it, and the solution you've suggested sounds fine.

> It's a one-liner to give an override making all checks non-fatal, with
> the downside that it can't differentiate why the checks are being made.
> So yes, in the case we should simply fix all of the ebuilds (after the
> kernel source check is fixed as well).

I'd definitely try and do things the right way, and a global override
(whilst easy) doesn't sound like it.  Fixing all the ebuilds (and the
kernel source check) sounds like the way to go.

> So I propose this as resolutions from the above:
> 1. USE=modules added to the base profile.
> 2. Every package that builds kernel modules must offer USE=modules, 
>which can be used to disable building the kernel modules, leaving a
>pure userspace build of that package.
>
> Most of the changes to the above can be done in the linux-mod eclass, so
> I don't think we'll have to touch that many packages directly.
>

Yep, although if the changes are in linux-mod, then those packages that
*only* provide kernel modules will need a way to not present that use
flag (no point installing a package is USE="-modules" and nothing gets
installed).  Also, I'd assume +modules would be added as a default.

The whole plan sounds extremely sensible in general!  5:)

Mike  5:)
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)

iEYEARECAAYFAkqbC3oACgkQu7rWomwgFXpwywCeKzcB0Znzuul3wq9U9ew5+SuX
scQAnjShkQTVQQrFABb8u2t0RsP9K34z
=LFlY
-END PGP SIGNATURE-



Re: [gentoo-dev] linux-info.eclass: lacking sources, config checks and module building

2009-08-30 Thread Robin H. Johnson
On Sun, Aug 30, 2009 at 10:58:33PM +0100, Mike Auty wrote:
> Robin H. Johnson wrote:
> > FYI:
> > get_running_version is used in one single ebuild, in the entire tree:
> > sys-fs/evms/evms-2.5.5-r10.ebuild
> > And there it's only for a warning.
> Ok, I was just suggesting that if there was an intention to implement
> config.gz checks, they should only apply when people ask about the
> running version rather than the build version.  Since that doesn't seem
> popular or even necessary, perhaps neither is the need to check config.gz?
The running version stuff may be needed to be used more than it is
presently.

If no kernel sources are present at all, all functions that check the
kernel version presently bail out. get_version is also at the very top
of linux-info's pkg_setup function, so it bails as well:
* Determining the location of the kernel source code
* Unable to find kernel sources at /usr/src/linux
...

The existing state is:
- Force the user to install sources

Our choices are:
- `uname -r` output.
- Create an override environment variable for all the checks.

/proc/config.gz comes back here again, in that, we can use it as a
middle ground with `uname -r`, rather than having the environment
variable.

So from our discussion, I propose the following:
Finding the kernel version:
---
0. (optional) give an env var to bypass entirely.
1. Use existing logic of /usr/src/linux, KERNEL_DIR et al.
2. Fall back to using the running version, with a warning.

Checking a configuration option, for non-module use:

0. (optional) give an env var to make all checks non-fatal.
1. Use existing logic of .config from /usr/src/linux, KERNEL_DIR et al.
2. Fall back to /proc/config.gz if available.


> > The great majority of CONFIG_CHECK usage in the tree is fatal already.
> > It only actually needs to be fatal only when it's being used to build a
> > module.
> Ok, I see what you're suggesting now.  When people want to build
> packages, but portage knows their kernel isn't setup to run them
> properly, then it should still build them, but warn them strongly about
> it (as opposed to currently, where it'll just die).
Two different cases here:
1. Portage knows their kernel is not setup correctly.
2. Portage cannot find out enough info.

It's #2 that bites on virtual machines and hardened servers, and is what
I'd like to fix.

> > This leaves us between hand-holding the basic user's kernel configuration
> > (exiting if the kernel config option is not enabled), and changing all
> > non-module instances in the tree to be non-fatal.
> Ok, so then the question is do we sacrifice correctness for fewer
> (invalid) bugs?  Seems like a judgement call.  For what it's worth, I'm
> not sure adding extra plumbing to allow smart users to bypass the checks
> is the right middle ground.  I'd either leave it as is, or change the
> ebuilds to accurately reflect whether the userspace will build or not.
It's a one-liner to give an override making all checks non-fatal, with
the downside that it can't differentiate why the checks are being made.
So yes, in the case we should simply fix all of the ebuilds (after the
kernel source check is fixed as well).

> > If you're building modules, most of the time you're using linux-mod, not 
> > just
> > linux-info. There's no document or recommended behavior in the tree for the
> > above actually, and I'd like to introduce one.
> Sounds like a good idea, it might also be worth adding to the quizes, if
> existing devs are asking how it should be done?  I guess that's a call
> on how common it is to have kernel config requirements on userspace...
142 packages inherit linux-mod.
130 packages use functions or the MODULE_NAMES code from linux-mod.
105 packages inherit linux-info.
11 packages inherit both linux-info AND linux-mod.

So I propose this as resolutions from the above:
1. USE=modules added to the base profile.
2. Every package that builds kernel modules must offer USE=modules, 
   which can be used to disable building the kernel modules, leaving a
   pure userspace build of that package.

Most of the changes to the above can be done in the linux-mod eclass, so
I don't think we'll have to touch that many packages directly.

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


pgpshiQ2Mw61x.pgp
Description: PGP signature


Re: [gentoo-dev] linux-info.eclass: lacking sources, config checks and module building

2009-08-30 Thread Mike Auty
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Robin H. Johnson wrote:
> FYI:
> get_running_version is used in one single ebuild, in the entire tree:
> sys-fs/evms/evms-2.5.5-r10.ebuild
> And there it's only for a warning.

Ok, I was just suggesting that if there was an intention to implement
config.gz checks, they should only apply when people ask about the
running version rather than the build version.  Since that doesn't seem
popular or even necessary, perhaps neither is the need to check config.gz?

> The great majority of CONFIG_CHECK usage in the tree is fatal already.
> It only actually needs to be fatal only when it's being used to build a
> module.

Ok, I see what you're suggesting now.  When people want to build
packages, but portage knows their kernel isn't setup to run them
properly, then it should still build them, but warn them strongly about
it (as opposed to currently, where it'll just die).

> This leaves us between hand-holding the basic user's kernel configuration
> (exiting if the kernel config option is not enabled), and changing all
> non-module instances in the tree to be non-fatal.

Ok, so then the question is do we sacrifice correctness for fewer
(invalid) bugs?  Seems like a judgement call.  For what it's worth, I'm
not sure adding extra plumbing to allow smart users to bypass the checks
is the right middle ground.  I'd either leave it as is, or change the
ebuilds to accurately reflect whether the userspace will build or not.

>> That all seems fine, but again these just seem like standard guidelines.
>>  Is there not already some "how to write kernel module ebuilds" page
>> somewhere that documents how you're supposed to use linux-info?
> If you're building modules, most of the time you're using linux-mod, not just
> linux-info. There's no document or recommended behavior in the tree for the
> above actually, and I'd like to introduce one.

Sounds like a good idea, it might also be worth adding to the quizes, if
existing devs are asking how it should be done?  I guess that's a call
on how common it is to have kernel config requirements on userspace...

Still, I think I'm on the right page, and even in agreement (which makes
me happy).  5:)  Thanks!

Mike  5:)
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)

iEYEARECAAYFAkqa9gkACgkQu7rWomwgFXq1PwCfTbp8hqsGZjDmsxKE21gKe1Y8
lYYAoI2EBCn5KwQdlm6Xd8u0q7KGl7gI
=Jrsa
-END PGP SIGNATURE-



Re: [gentoo-dev] linux-info.eclass: lacking sources, config checks and module building

2009-08-30 Thread Robin H. Johnson
On Sun, Aug 30, 2009 at 09:21:24PM +0100, Mike Auty wrote:
> [ "${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}" == "$(uname -r)" ] && \
> OUTPUT_DIR="${OUTPUT_DIR:-/lib/modules/${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}/build}"
This check is inside the get_version call, and is ultimately used to set
KV_OUT_DIR, which is in turn used for all the config checks.

The conditional part of the check means that it's only used if the
running kernel is also the one currently pointed to by the sources
variables (which were used further up in the function to populate KV_*).

I also realize on closer reading, that the above bit will never even be
reached unless the kernel sources are present.

> Otherwise it's taken from the KBUILD_DIR and then it even checks inside
> the KV_DIR's Makefile to find one.  So not checking /proc/config.gz
> isn't a moot point anymore, which is not to say it's not a good idea,
> but the reason against doing it still stands.  To deal with running
> kernel's, there's a get_running_version function, that will use uname to
> fill out the KV_* variables appropriately.
FYI:
get_running_version is used in one single ebuild, in the entire tree:
sys-fs/evms/evms-2.5.5-r10.ebuild
And there it's only for a warning.

> > Proposed solution:
> > --
> > We need to be able to reduce user error, so we cannot simply make it
> > trust the user by default. So I propose that we add an environment
> > variable (I'm not set on the name yet), eg:
> > EXTERNALLY_BUILT_KERNEL=1
> > 
> > This option will cause linux-info.eclass to consider ALL kernel option
> > checks non-fatal. That way we still get the warnings and logs, but it
> > does not stop the builds.
> I'm not sure what this is solving?  It doesn't seem to reduce user
> error, it just allows users a way to override portage errors?  It seems
> unrelated to config.gz and the discussion going on in the previous
> thread.  I do like the idea of being able to override portage when it's
> stopping us from building (incorrectly), but surely with the capability
> to have non-fatal checks, we can try to minimize the times when
> portage/the ebuild is wrong using that, instead of a whole new override?
The great majority of CONFIG_CHECK usage in the tree is fatal already.
It only actually needs to be fatal only when it's being used to build a
module.

However, past bugs have shown lots of users complaining that a package
doesn't work, simply because they did not have the relevant option
enabled in their kernel.

This leaves us between hand-holding the basic user's kernel configuration
(exiting if the kernel config option is not enabled), and changing all
non-module instances in the tree to be non-fatal.

If we make all the non-module uses non-fatal, there will be an increase of bugs
due to users not reading the warnings.

> > When is the above NOT enough?
> > -
> > The only time that ANY kernel sources are required is when you are
> > building an out-of-tree module. For this purpose, they must be
> > configured.
> There's a lot of ebuilds that use linux-info, and they can't all be
> out-of-tree modules.  Are they misusing linux-info, or are you saying
> there's a specific instance in which linux-info requires configured
> kernel sources?
Here's a few that I know of, off the top of my head:

app-mobilephone/gnokii/gnokii-0.6.27-r4.ebuild:
CONFIG_CHECK="UNIX98_PTYS"

/usr/portage/net-print/hplip/hplip-3.9.4b-r1.ebuild:
CONFIG_CHECK="PARPORT PPDEV"

/usr/portage/net-firewall/conntrack-tools/conntrack-tools-0.9.13.ebuild:

CONFIG_CHECK="IP_NF_CONNTRACK_NETLINK"
CONFIG_CHECK="NF_CT_NETLINK"
CONFIG_CHECK="${CONFIG_CHECK} NF_CONNTRACK
linux_chkconfig_present "NF_CONNTRACK_IPV4" || \
linux_chkconfig_present "NF_CONNTRACK_IPV6" || \

If you don't have configured kernel sources, all of these ebuilds fail right
now. They are not building modules, simply userspace. The CONFIG_CHECK elements
are not prefixed with tilde to make them non-fatal.

conntrack-tools is actually even worse, as it has a kernel version check before
the config checks, which would also fail without kernel sources.

> > The check for having configured kernel sources must only be executed
> > when the modules are about to be compiled. Putting it in pkg_preinst
> > would block use of binpkgs on (related) machines.
> > 
> > - If a package builds modules AND userspace, we should offer a way to
> >   build the userspace only, as the user can build their modules
> >   externally (or patch them into the kernel) [1]
> > - For packages that ONLY build modules, and no userspace at all, having
> >   EXTERNALLY_BUILT_KERNEL=1 means that they should error out? [2]
> >   (this case might be thrown into the above one).
> 
> That all seems fine, but again these just seem like standard guidelines.
>  Is there not already some "how to write kernel module ebuilds" page
> somewhere that documents how you're supposed to use linux-info?
If you're building m

Re: [gentoo-dev] Road towards EAPI 3 main tree approval

2009-08-30 Thread Ciaran McCreesh
On Sun, 30 Aug 2009 23:03:42 +0300
Petteri Räty  wrote:
> As far as I understand paludis already has the features implemented so
> maybe we could give EAPI 3 some field testing in some overlays to see
> how it works in practice from ebuild writer point of view.

The main issue with that is eclasses. Quite a few eclasses have
hard-coded lists of 'case ${EAPI:-0} in' lists. These would need to be
updated. So if you go this route:

> 20:01 < zmedico> Betelgeuse: I'd guess they could test it as
> EAPI=paludis-3_pre or something like that

then you'll have to clutter up the main tree with paludis-3_pre. And if
instead you call it '3', it means we have to guarantee we're not going
to make any last minute changes.

Also, as I recall there're two outstanding issues with EAPI 3 that
would need to be addressed by the Council.

First, there's the question of package.mask etc as directories. Some
people were after either doing a quicky EAPI 2.1 or reopening EAPI 3 to
allow that for the 10.0 profiles. I don't know whether that's still
considered worth doing or whether it's an EAPI 4 thing.

Second, there's the issue with 'nonfatal' and 'die' [1]. EAPI 3 as
originally worded made 'die' ignore 'nonfatal' (so that people wouldn't
have to modify all their eclass functions to take into account that
suddenly callers could override their dies), but some crappy wording in
the original spec (which has been addressed) meant that some people
didn't realise that, and would prefer it if we did that differently.

> Paludis does not recognize it atm but probably easy to get a new
> revision/version out:

Yup, can do that easily enough if there's interest once the above has
been addressed.

[1]: 
http://archives.gentoo.org/gentoo-dev/msg_358b12a494173ab82f3e7d1b2b6b5bf9.xml

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] [RFC] USE flags requirements (EAPI-4 ?)

2009-08-30 Thread Ciaran McCreesh
On Sun, 30 Aug 2009 19:06:02 +0200
Mounir Lamouri  wrote:
> So I think we should add a new feature in PMS already used in Exherbo
> EAPI, USE flags requirements [1]. That means an ebuild should be able
> to say a USE flag is available only if some other ones are in a
> specific state. Let's take the mplayer example, if we have a line
> like this: USE_REQUIREMENTS="encode? ( mp2 mp3 faac x264 xvid )", PM
> should be able to show the user USE="mp3" will be ignored because he
> didn't set USE="encode" and the PM will disable this USE flag by
> himself. The same way, for ekiga:
> USE_REQUIREMENTS="kde? ( kontact )", PM should be able to show the
> user if he set USE="kontact", kde USE flag is enabled and the PM will
> enable this USE flag by himself.

Is the less expressive solution you're describing still useful enough
to make it worthwhile? When we were doing this for Exherbo, we
identified five types of inter-use-flag dependency:

* if a then b
* if a then not b
* at least one of a b c, possibly only if d
* exactly one of a b c, possibly only if d
* at most one of a b c, possibly only if d

Does Gentoo make use of all of these, and are there any cases that the
above doesn't cover? How would you express each of the above using
USE_REQUIREMENTS?

From a package manager perspective, it's much easier to give good
advice to the user if we're told by the ebuild exactly what's going on.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] linux-info.eclass: lacking sources, config checks and module building

2009-08-30 Thread Mike Auty
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Robin H. Johnson wrote:
> It does NOT check /proc/config.gz presently. The original logic against
> not checking /proc was that we were targeting the kernel being built,
> but that's moot given the use of `uname -r` in OUTPUT_DIR.

I might be reading the eclass wrong, but it looks as though OUTPUT_DIR
is only set to use uname -r if the KV_* variables match the output of
uname -r:

[ "${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}" == "$(uname -r)" ] && \
OUTPUT_DIR="${OUTPUT_DIR:-/lib/modules/${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}/build}"

Otherwise it's taken from the KBUILD_DIR and then it even checks inside
the KV_DIR's Makefile to find one.  So not checking /proc/config.gz
isn't a moot point anymore, which is not to say it's not a good idea,
but the reason against doing it still stands.  To deal with running
kernel's, there's a get_running_version function, that will use uname to
fill out the KV_* variables appropriately.

> Proposed solution:
> --
> We need to be able to reduce user error, so we cannot simply make it
> trust the user by default. So I propose that we add an environment
> variable (I'm not set on the name yet), eg:
> EXTERNALLY_BUILT_KERNEL=1
> 
> This option will cause linux-info.eclass to consider ALL kernel option
> checks non-fatal. That way we still get the warnings and logs, but it
> does not stop the builds.

I'm not sure what this is solving?  It doesn't seem to reduce user
error, it just allows users a way to override portage errors?  It seems
unrelated to config.gz and the discussion going on in the previous
thread.  I do like the idea of being able to override portage when it's
stopping us from building (incorrectly), but surely with the capability
to have non-fatal checks, we can try to minimize the times when
portage/the ebuild is wrong using that, instead of a whole new override?

> When is the above NOT enough?
> -
> The only time that ANY kernel sources are required is when you are
> building an out-of-tree module. For this purpose, they must be
> configured.

There's a lot of ebuilds that use linux-info, and they can't all be
out-of-tree modules.  Are they misusing linux-info, or are you saying
there's a specific instance in which linux-info requires configured
kernel sources?

> The check for having configured kernel sources must only be executed
> when the modules are about to be compiled. Putting it in pkg_preinst
> would block use of binpkgs on (related) machines.
> 
> - If a package builds modules AND userspace, we should offer a way to
>   build the userspace only, as the user can build their modules
>   externally (or patch them into the kernel) [1]
> - For packages that ONLY build modules, and no userspace at all, having
>   EXTERNALLY_BUILT_KERNEL=1 means that they should error out? [2]
>   (this case might be thrown into the above one).

That all seems fine, but again these just seem like standard guidelines.
 Is there not already some "how to write kernel module ebuilds" page
somewhere that documents how you're supposed to use linux-info?

Mike  5:)
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)

iEYEARECAAYFAkqa30QACgkQu7rWomwgFXo99gCfd8NbK9QkxtJ9BKalq/n1iBxn
l0QAoLiBsvKXZRzR4Dp8HEtoxrsONCtc
=ZK9i
-END PGP SIGNATURE-



[gentoo-dev] Road towards EAPI 3 main tree approval

2009-08-30 Thread Petteri Räty
As many of you know EAPI 3 has been waiting for Portage to implement it
for many months now and I asked zmedico for his estimate on whether it
will be done this year:

19:50 < Betelgeuse> zmedico: Let's put it this way. How likely in
percentages is EAPI 2 this year?
19:50 < Betelgeuse> s/2/3/
19:51 < zmedico> I'd give it 80% chance I guess

As far as I understand paludis already has the features implemented so
maybe we could give EAPI 3 some field testing in some overlays to see
how it works in practice from ebuild writer point of view. Paludis does
not recognize it atm but probably easy to get a new revision/version out:

20:01 < zmedico> Betelgeuse: I'd guess they could test it as
EAPI=paludis-3_pre or something like that
20:01 < dleverton> Betelgeuse: it doesn't install the config file, just
uses it for tests, so that's correct

So what's the general sentiment for giving this some spin in overlays?
Maybe having some usage would build some social pressure on zmedico :)

Regards,
Petteri



signature.asc
Description: OpenPGP digital signature


[gentoo-dev] linux-info.eclass: lacking sources, config checks and module building

2009-08-30 Thread Robin H. Johnson
Seeing the debate raised in the udev thread about checking for the
kernel, I'd like to propose that we revise the linux-info.eclass.

linux-info already checks a number of locations:
- KBUILD_OUTPUT,
- KERNEL_DIR, which defaults to /usr/src/linux/
- OUTPUT_DIR, which defaults to /lib/modules/`uname -r`/build/

It does NOT check /proc/config.gz presently. The original logic against
not checking /proc was that we were targeting the kernel being built,
but that's moot given the use of `uname -r` in OUTPUT_DIR.

Additionally, linux-info.eclass already has provisions for non-fatally
checking for kernel config options, by prefixing them with a tilde.

In parallel to what we actually check, we have the issue of systems that
may not have ANY of the above, or ANY kernel sources whatsoever.
The most common amongst these are:
- Hardened systems
- Virtual Machines

Proposed solution:
--
We need to be able to reduce user error, so we cannot simply make it
trust the user by default. So I propose that we add an environment
variable (I'm not set on the name yet), eg:
EXTERNALLY_BUILT_KERNEL=1

This option will cause linux-info.eclass to consider ALL kernel option
checks non-fatal. That way we still get the warnings and logs, but it
does not stop the builds.

When is the above NOT enough?
-
The only time that ANY kernel sources are required is when you are
building an out-of-tree module. For this purpose, they must be
configured.

The check for having configured kernel sources must only be executed
when the modules are about to be compiled. Putting it in pkg_preinst
would block use of binpkgs on (related) machines.

- If a package builds modules AND userspace, we should offer a way to
  build the userspace only, as the user can build their modules
  externally (or patch them into the kernel) [1]
- For packages that ONLY build modules, and no userspace at all, having
  EXTERNALLY_BUILT_KERNEL=1 means that they should error out? [2]
  (this case might be thrown into the above one).

Footnotes:
--
1. This has already been requested for ipset, bug #274577.
2. What about documentation? Is that enough of userspace still?

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


pgphnpgtI4Etg.pgp
Description: PGP signature


Re: [gentoo-dev] [RFC] USE flags requirements (EAPI-4 ?)

2009-08-30 Thread Nirbheek Chauhan
On Sun, Aug 30, 2009 at 10:36 PM, Mounir Lamouri wrote:
> I think this new feature should help everyones life. We can also imagine
> great features like a minimal USE-flag that will be something like:
> USE_REQUIREMENTS="minimal? ( foo bar )" to set a list of USE flags to
> disable if minimal USE flag is enabled. Combined to EAPI-1 auto-enabled
> USE flags, it could help disabling all auto-enabled USE flags for some
> uses... That's just an idea.
>

There's also bug 251179[1], which is ugly at first glance, but shows
that we don't really need an extra variable to control dependencies
between USE-flags (it *is* after all a dependency).

So, we can either use

use1? ( =${CATEGORY}/${PVR}[use2,use3,use4] )

which will probably require less changes to portage's resolver; or
something else like

use1? ( use2 use3 use4 )

The latter is unambiguous because it's not a package atom (no / ).
Either of these will work great when portage gets automatic
USE-dependency enabling.

1. http://bugs.gentoo.org/show_bug.cgi?id=251179
-- 
~Nirbheek Chauhan

GNOME+Mozilla Team, Gentoo



Re: [gentoo-dev] About udev-145: new features / extras and kernel requirements

2009-08-30 Thread Robin H. Johnson
On Sun, Aug 30, 2009 at 05:05:05PM +0200, Bruno wrote:
> Is this bound to consolekit or does it rather fall under 'acl' use-flag?
> I guess this includes a kernel requirement (ACL support for tmpfs)
Yes, this would imply CONFIG_TMPFS_POSIX_ACL to actually be used.

> > * usb-db: Provide udev-rules with device names of pci and usb devices
> > * hid2hci: Special utility to fix resume of some hid devices
> > * keymap: Auto-configure model specific keys found on many laptops 
> > ("brightness up", "next song", "www browser", or "suspend")
> > * modem-modeswitch: Switch modems that provide virtual cd-drive with
> > drivers to modem mode
> > * gudev: glib/gobject support for libudev
> Is gudev just a binding or is it more? If it's just a binding it may
> be nice to have it tied to a use-flag.
USE=glib has a couple of packages already, and this looks like another
good one for it.

> > This makes udev depend on these libs:
> > libacl, libglib2, libusb, usbutils, pciutils, gperf
dev-util/gperf is not a lib. It's one of those packages that should
almost NEVER be seen in RDEPEND even, as it generates C/C++ during build
time only.

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


pgpH1PMbWGvYu.pgp
Description: PGP signature


Re: [gentoo-dev] [RFC] USE flags requirements (EAPI-4 ?)

2009-08-30 Thread Thomas Anderson
On Sun, Aug 30, 2009 at 07:06:02PM +0200, Mounir Lamouri wrote:
> Hi,

> However, dying is probably not the best solution too.
> So I think we should add a new feature in PMS already used in Exherbo
> EAPI, USE flags requirements [1]. That means an ebuild should be able to
> say a USE flag is available only if some other ones are in a specific state.
> Let's take the mplayer example, if we have a line like this:
> USE_REQUIREMENTS="encode? ( mp2 mp3 faac x264 xvid )", PM should be able
> to show the user USE="mp3" will be ignored because he didn't set
> USE="encode" and the PM will disable this USE flag by himself.
> The same way, for ekiga:
> USE_REQUIREMENTS="kde? ( kontact )", PM should be able to show the user
> if he set USE="kontact", kde USE flag is enabled and the PM will enable
> this USE flag by himself.

I'm not sure acting as if the user didn't enable the USE flag is the best
option. If I manually enable the bar USE-flag I might not expect there to be an
issue and not notice that it has been silently ignored. In general I think we
should take the approach that if we can't give a user what he/she asked for we
should error out and tell him/her that there was a problem and that
such-and-such needs to be changed.

> I'm not writing a GLEP draft so don't try to found an issue in the
> syntax used, it's only to know if this kind of feature will be
> appreciated by other users/devs than me and if it could be added to
> EAPI-4 and worth to work on it.
> I can write the GLEP and implement the feature in portage.

I very much would like this feature. I've been using it in Exherbo and it's
quite useful so far. Only thing is that it'll be possible to do this sort of
thing(only you'll have to || die) with EAPI-3 as a 'if use foo; then use bar
|| die "foo needs bar"'. The question is whether it is worth it to have this
special construct for USE-flag combinations(there're far more possibilities than
the one I gave), and I'd say it is worth it.
> 
> [1] http://www.exherbo.org/docs/exheres-for-smarties.html#myoptions
> 
> Thanks,
> Mounir
> 

Regards,
Thomas
-- 
-
Thomas Anderson
Gentoo Developer
/
Areas of responsibility:
AMD64, Secretary to the Gentoo Council
-


pgpC6dfSRDZwM.pgp
Description: PGP signature


[gentoo-dev] Re: [gentoo-dev-announce] Deprecation of Python 2.4

2009-08-30 Thread Arfrever Frehtes Taifersar Arahesis
2009-08-30 11:14:53 Petteri Räty napisał(a):
> Arfrever Frehtes Taifersar Arahesis wrote:
> > Python 2.4 is deprecated. There are plans to mask for removal it when
> > remaining packages incompatible with Python 2.5 are fixed.
> > (We will announce masking of Python 2.4 at least 1 month before masking it.)
> > 
> > Please don't add new packages to the tree which work only with Python 2.4.
> > 
> > If you want to add a package which depends on a Python module, which had 
> > been
> > maintained separately in the past, but has been also included in Python 2.5,
> > then don't add this Python module to the tree only for use with Python 2.4,
> > but instead depend on Python >=2.5.
> > 
> 
> Where's the CC and Reply-To to gentoo-dev? Does removing python 2.4 have
> any effect on the upgrade path for old installations?

sys-apps/portage-2.1.4.5 should work with Python 2.5 and probably also 2.6.
sys-apps/portage-2.1.6.7 works with Python 2.5 and 2.6.
>=sys-apps/portage-2.1.6.13 works with Python 2.5 and 2.6 and doesn't work with 
>Python 2.4.

-- 
Arfrever Frehtes Taifersar Arahesis


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


[gentoo-dev] [RFC] USE flags requirements (EAPI-4 ?)

2009-08-30 Thread Mounir Lamouri
Hi,

While writing and using some ebuilds, I had to deal with (pseudo) USE
flags requirements. For example, if you install mplayer with
USE="encode" the result will depend on other USE flags: if you have
USE="encode mp3", it will install lame for example. I know a few ebuilds
behave like that in the tree. We can also see some ebuilds that will
force an option if you set another one: if you set USE="-foo +bar" and
bar needs foo, it will silently set --enable-foo. Finally, they are some
ebuilds like >=ekiga-3 that will just fail if you have two USE flags
"conflicting": kontact needs kde so USE="kde -kontact" and USE="kde
kontact" are okay but USE="-kde kontact" will fail.

In my opinion, we can't keep auto-enabling some options because the user
has enabled another option without telling him and without telling the
package manager. For example, I'm a lambda user, I've set USE=kontact
but I don't know it's related to KDE, I don't have a KDE desktop and I
don't want one. With the regular behavior in the tree, kde will be
enabled silently and the user will don't have a clue about it like the
package manager. This last one is even worst because if we imagine a
library ebuild with this behavior used by other ebuilds in the tree,
EAPI-2 use dependencies will break. (foo ebuild depends on ekiga[kde],
user will have to rebuild ekiga if it has been built with USE="-kde
kontact" even if ekiga has been built with kde support or foo ebuild
depends on mplayer[mp3] should be mplayer[encode,mp3].

However, dying is probably not the best solution too.
So I think we should add a new feature in PMS already used in Exherbo
EAPI, USE flags requirements [1]. That means an ebuild should be able to
say a USE flag is available only if some other ones are in a specific state.
Let's take the mplayer example, if we have a line like this:
USE_REQUIREMENTS="encode? ( mp2 mp3 faac x264 xvid )", PM should be able
to show the user USE="mp3" will be ignored because he didn't set
USE="encode" and the PM will disable this USE flag by himself.
The same way, for ekiga:
USE_REQUIREMENTS="kde? ( kontact )", PM should be able to show the user
if he set USE="kontact", kde USE flag is enabled and the PM will enable
this USE flag by himself.

I think this new feature should help everyones life. We can also imagine
great features like a minimal USE-flag that will be something like:
USE_REQUIREMENTS="minimal? ( foo bar )" to set a list of USE flags to
disable if minimal USE flag is enabled. Combined to EAPI-1 auto-enabled
USE flags, it could help disabling all auto-enabled USE flags for some
uses... That's just an idea.

I'm not writing a GLEP draft so don't try to found an issue in the
syntax used, it's only to know if this kind of feature will be
appreciated by other users/devs than me and if it could be added to
EAPI-4 and worth to work on it.
I can write the GLEP and implement the feature in portage.

[1] http://www.exherbo.org/docs/exheres-for-smarties.html#myoptions

Thanks,
Mounir



[gentoo-dev] Re: [gentoo-dev-announce] Deprecation of Python 2.4

2009-08-30 Thread Ryan Hill
On Sun, 30 Aug 2009 12:14:53 +0300
Petteri Räty  wrote:

> Arfrever Frehtes Taifersar Arahesis wrote:
> > Python 2.4 is deprecated. There are plans to mask for removal it when
> > remaining packages incompatible with Python 2.5 are fixed.
> > (We will announce masking of Python 2.4 at least 1 month before masking it.)
> > 
> > Please don't add new packages to the tree which work only with Python 2.4.
> > 
> > If you want to add a package which depends on a Python module, which had 
> > been
> > maintained separately in the past, but has been also included in Python 2.5,
> > then don't add this Python module to the tree only for use with Python 2.4,
> > but instead depend on Python >=2.5.
> > 
> 
> Where's the CC and Reply-To to gentoo-dev? Does removing python 2.4 have
> any effect on the upgrade path for old installations?

Any upgrade path was destroyed when all python versions (including 2.4) moved
to EAPI != 0.


-- 
fonts, toolchain,  Character is what you are in the dark.
gcc-porting,
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662


signature.asc
Description: PGP signature


Re: [gentoo-dev] About udev-145: new features / extras and kernel requirements

2009-08-30 Thread Mike Auty
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

William Hubbs wrote:
>  I agree here.  The eclass should check /proc/config.gz.
>  Also, another reason to use the eclass is it respects KBUILD_OUTPUT if
>  it is set.

- From the indenting I can't tell if you wrote this or not, however, we
need to differentiate between running and build time environments.
Ebuilding is a build-time process.  That means the running kernel isn't
 important, since we're not running udev, we're just building it.  When
the machine is next rebooted, we could be using a completely different
kernel (or even one that hasn't been installed yet).  We should only
care about the build-time kernel when we're building, which the user has
to specify (which they do implicitly by using /usr/src/linux, or
explicitly by using KBUILD_OUTPUT or another environment variable).

If you go by the running kernel, then you're requiring people to reboot
their computers before they can build software for a kernel they're
about to run.  That simply ensures downtime on a potentially critical
service, and moreover it's an unnecessary constraint.  The existing udev
can continue running until the machine is rebooted without a problem.
When the machine restarts *any* kernel could be chosen, and build time
checks won't help prevent a bad kernel from being booted.  That's why
the linux-info.eclass does the checks it currently does, and *doesn't*
check /proc/config.gz and *doesn't* check /$(uname -r)/ directories...

So in summary:

* Check the running kernel if you're about to run.
* Check the kernel the user's chosen to build against if you're about to
build, using linux-info.

If the ebuild restarts the service (causing a reread off disk, rather
than just a reread of the rules) then fine, use the check to disable the
restart, and/or warn the user, but don't stop the user from building the
software.

You can also put a check in the init.d, but it just creates the
possibility that the check is wrong when udev could potentially still
run.  I'd simply try running udev and check if it exits or errors as
expected.  Only if it doesn't exit or error when it should would I add
checks to the initscript, and even then I'd suggest fixing the code to
error correctly, over adding our own checks in...

Mike  5:)
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)

iEYEARECAAYFAkqapk4ACgkQu7rWomwgFXqDbACgtYdXtmlgo6JA49o9on111XPE
Y/QAnROtzEhAUg0ML9J+nd6rTvKfZeFz
=pbOj
-END PGP SIGNATURE-



Re: [gentoo-dev] About udev-145: new features / extras and kernel requirements

2009-08-30 Thread William Hubbs
On Sun, Aug 30, 2009 at 08:16:47PM +0530, Nirbheek Chauhan wrote:
> On Sun, Aug 30, 2009 at 7:41 PM, Matthias Schwarzott wrote:
> > Hi there!
> >
> > The new udev-145 and newer have some new kernel requirements. How should the
> > ebuild verify they are met?
> > Some possible ways:
> > 1. Check config under /usr/src/linux
> > 2. Check /proc/config.gz
> > 3. Print message for user in pkg_postinst
> >
> 
> ebuilds usually use linux-info.eclass for this, but that only checks
> /usr/src/linux -- although checking /proc/config.gz *as well* would be
> better. That change should be made in the eclass.
 
 I agree here.  The eclass should check /proc/config.gz.
 Also, another reason to use the eclass is it respects KBUILD_OUTPUT if
 it is set.

If /proc/config.gz is the first thing we check, I don't think we need to
bother at all with checking .config since we know the setup of the
running kernel.  What does everyone think?

-- 
William Hubbs
gentoo accessibility team lead
willi...@gentoo.org


pgpdLEnuLNcR5.pgp
Description: PGP signature


[gentoo-dev] Re: About udev-145: new features / extras and kernel requirements

2009-08-30 Thread Duncan
Arun Raghavan posted on Sun, 30 Aug 2009 19:54:47 +0530 as excerpted:

> 2009/8/30 Matthias Schwarzott :
>> Hi there!
>>
>> The new udev-145 and newer have some new kernel requirements. How
>> should the ebuild verify they are met?
>> Some possible ways:
>> 1. Check config under /usr/src/linux
>> 2. Check /proc/config.gz
>> 3. Print message for user in pkg_postinst
> 
> All of the above? Rationale being (1) is required to check against the
> kernel you're supposedly using, (2) for the kernel you definitely are
> using, and (3) to make sure people remember.

Indeed, all of the above, but not requiring the first two only giving 
their status in #3.

Some people don't have the kernel option enabling /proc/config.gz turned 
on, so #2 isn't reliable, and #1, /usr/src/linux, could point who /knows/ 
where, maybe something current, maybe not.  (Here, it points at my local 
kernel git repo... which may or may not correspond to the currently 
running kernel, tho it's usually reasonably close, and it's usually 
within a few days of upstream unless I'm git bisecting some bug.)

Thus, neither of the first two is reliable, but checking them and putting 
the status in #3 should be helpful.

Another alternative, ultimately safer: add another option, and require 
that at least one of the three pass:

1-2 as they are.

3. Check UDEV_ASSUME_KERNEL_OPTS in the environment (could be set in 
make.conf for portage and compatible PMs).

Then in the message corresponding to the original #3 except presumably in 
unpack or prepare, report status as a reminder, and die if none of the 
above tests pass.  #3, the env var, would allow users to override without 
hacking the ebuild itself, if for some reason they decided they needed 
to.  If it's the only one that passes, ewarn/eerror to the effect 
"Relying on UDEV_ASSUME_KERNEL_OPTS override.  If it breaks, you get to 
keep the pieces!"

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




Re: [gentoo-dev] About udev-145: new features / extras and kernel requirements

2009-08-30 Thread Bruno
On Sun, 30 August 2009 Matthias Schwarzott  wrote:
> The new udev-145 and newer have some new kernel requirements. How
> should the ebuild verify they are met?
> Some possible ways:
> 1. Check config under /usr/src/linux

/usr/src/linux is not the best place to look at...

Checks should rather be done on first kernel config found in following
locations (checked in this order):
 - KBUILD_OUTPUT
 - KERNEL_DIR
 - /usr/src/linux, /proc/config.gz, /lib/modules/$(uname -r)/build/.config

Maybe just use linux-info eclass for the checks

> 2. Check /proc/config.gz

This should rather happen in init script, if possible do not check
on every boot but only when a "new" kernel is used (e.g. when uname
output changes)

> 3. Print message for user in pkg_postinst

This makes sense in any case.

> Second point: udev-145 bundles a lot of new extras, but they can only
> be enabled/disabled all or nothing.
> 
> These extras are:
> * udev-acl: Apply consolekit permissions to devices for users (audio,
> video, joysticks, scanner, cameras, ...)

Is this bound to consolekit or does it rather fall under 'acl' use-flag?
I guess this includes a kernel requirement (ACL support for tmpfs)

> * usb-db: Provide udev-rules with device names of pci and usb devices
> * hid2hci: Special utility to fix resume of some hid devices
> * keymap: Auto-configure model specific keys found on many laptops 
> ("brightness up", "next song", "www browser", or "suspend")
> * modem-modeswitch: Switch modems that provide virtual cd-drive with
> drivers to modem mode
> * gudev: glib/gobject support for libudev

Is gudev just a binding or is it more? If it's just a binding it may
be nice to have it tied to a use-flag.

> This makes udev depend on these libs:
> libacl, libglib2, libusb, usbutils, pciutils, gperf

Bruno



Re: [gentoo-dev] About udev-145: new features / extras and kernel requirements

2009-08-30 Thread Nirbheek Chauhan
On Sun, Aug 30, 2009 at 7:41 PM, Matthias Schwarzott wrote:
> Hi there!
>
> The new udev-145 and newer have some new kernel requirements. How should the
> ebuild verify they are met?
> Some possible ways:
> 1. Check config under /usr/src/linux
> 2. Check /proc/config.gz
> 3. Print message for user in pkg_postinst
>

ebuilds usually use linux-info.eclass for this, but that only checks
/usr/src/linux -- although checking /proc/config.gz *as well* would be
better. That change should be made in the eclass.

Personally, I would also add an ewarn into pkg_postinst to prevent
users from blundering into a broken system.

> Second point: udev-145 bundles a lot of new extras, but they can only be
> enabled/disabled all or nothing.
>

Eww. I suppose upstream is not open to making it a bit more granular?

> These extras are:
> * udev-acl: Apply consolekit permissions to devices for users (audio, video,
> joysticks, scanner, cameras, ...)

This looks very useful for desktop users. As long as it doesn't pull
in ConsoleKit itself, enabling this by default should not be a
problem.

> * usb-db: Provide udev-rules with device names of pci and usb devices

What are the consumers of this?

> * hid2hci: Special utility to fix resume of some hid devices

If the consumer of this is pm-suspend, pm-hibernate etc, I say enable
by default.

> * keymap: Auto-configure model specific keys found on many laptops
> ("brightness up", "next song", "www browser", or "suspend")

This should be enabled by default, especially since HAL is getting
deprecated, and everything using HAL for this stuff will have to turn
to udev (X, gnome, kde)

> * gudev: glib/gobject support for libudev
>

This is the interface almost everything is going to turn to with GNOME
2.28 (via DeviceKit-power and DeviceKit-disks in most cases). By the
time GNOME 2.30 and 3.0 are released, (theoretically) nothing will use
HAL.

I believe there are ongoing efforts to port X to use udev/gudev
instead of HAL, as well as KDE[1]

> This makes udev depend on these libs:
> libacl, libglib2, libusb, usbutils, pciutils, gperf
>
> Up to now I have just added use-flag "extras" to control these. But I suppose
> that udev-acl and maybe gudev is a hard requirement for newer hal or
> devicekit versions. And upstream thinks these should be enabled by default.

There are no "new" versions of HAL anymore (it's gone into maintenance
mode), but all current DeviceKit-{power,disks} versions *need* gudev.

In summation, I say hard-enable these:

acl, keymap, hid2hci

Put "gudev" under a USE-flag, enabled by +use, and put the rest under
"extras", not enabled by default.


1. http://fedoraproject.org/wiki/KDE_Programming_Wishlist
-- 
~Nirbheek Chauhan

GNOME+Mozilla Team, Gentoo



Re: [gentoo-dev] About udev-145: new features / extras and kernel requirements

2009-08-30 Thread Arun Raghavan
2009/8/30 Matthias Schwarzott :
> Hi there!
>
> The new udev-145 and newer have some new kernel requirements. How should the
> ebuild verify they are met?
> Some possible ways:
> 1. Check config under /usr/src/linux
> 2. Check /proc/config.gz
> 3. Print message for user in pkg_postinst

All of the above? Rationale being (1) is required to check against the
kernel you're supposedly using, (2) for the kernel you definitely are
using, and (3) to make sure people remember.

An alternative to (2) and (3), though is to add a check to the udev initscript.

Cheers,
-- 
Arun Raghavan
http://arunraghavan.net/
(Ford_Prefect | Gentoo) & (arunsr | GNOME)



[gentoo-dev] About udev-145: new features / extras and kernel requirements

2009-08-30 Thread Matthias Schwarzott
Hi there!

The new udev-145 and newer have some new kernel requirements. How should the 
ebuild verify they are met?
Some possible ways:
1. Check config under /usr/src/linux
2. Check /proc/config.gz
3. Print message for user in pkg_postinst



Second point: udev-145 bundles a lot of new extras, but they can only be 
enabled/disabled all or nothing.

These extras are:
* udev-acl: Apply consolekit permissions to devices for users (audio, video, 
joysticks, scanner, cameras, ...)
* usb-db: Provide udev-rules with device names of pci and usb devices
* hid2hci: Special utility to fix resume of some hid devices
* keymap: Auto-configure model specific keys found on many laptops 
("brightness up", "next song", "www browser", or "suspend")
* modem-modeswitch: Switch modems that provide virtual cd-drive with drivers 
to modem mode
* gudev: glib/gobject support for libudev

This makes udev depend on these libs:
libacl, libglib2, libusb, usbutils, pciutils, gperf

Up to now I have just added use-flag "extras" to control these. But I suppose 
that udev-acl and maybe gudev is a hard requirement for newer hal or 
devicekit versions. And upstream thinks these should be enabled by default.

Are any of these extras considered harmful?

Regards
Matthias



[gentoo-dev] QA last rites for

2009-08-30 Thread Diego E . Pettenò

# Diego E. Pettenò  (30 Aug 2009)
#  on behalf of QA team
#
# Old version of synce framework; 0.13 and 0.14 are in the
# tree and don't need these packages. synce-rra was just
# fixed after almost an year (at least) of build failure.
#
# Removal on 2009-10-29


[gentoo-dev] QA last rites for dev-cpp/libmxmlplus

2009-08-30 Thread Diego E . Pettenò

# Diego E. Pettenò  (30 Aug 2009)
#  on behalf of QA team
#
# Unmaintained upstream, unneeded in tree, collides with
# dev-libs/mini-xml (bug #247405) which is actually used.
#
# Removal on 2009-10-29
dev-cpp/libmxmlplus



[gentoo-dev] Re: [gentoo-dev-announce] Deprecation of Python 2.4

2009-08-30 Thread Petteri Räty
Arfrever Frehtes Taifersar Arahesis wrote:
> Python 2.4 is deprecated. There are plans to mask for removal it when
> remaining packages incompatible with Python 2.5 are fixed.
> (We will announce masking of Python 2.4 at least 1 month before masking it.)
> 
> Please don't add new packages to the tree which work only with Python 2.4.
> 
> If you want to add a package which depends on a Python module, which had been
> maintained separately in the past, but has been also included in Python 2.5,
> then don't add this Python module to the tree only for use with Python 2.4,
> but instead depend on Python >=2.5.
> 

Where's the CC and Reply-To to gentoo-dev? Does removing python 2.4 have
any effect on the upgrade path for old installations?

Regards,
Petteri



signature.asc
Description: OpenPGP digital signature