public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Determenistic system group and user id
@ 2015-12-13 18:03 Alexey Shvetsov
  2015-12-13 20:41 ` [gentoo-dev] Use GLEP27! Robin H. Johnson
                   ` (2 more replies)
  0 siblings, 3 replies; 35+ messages in thread
From: Alexey Shvetsov @ 2015-12-13 18:03 UTC (permalink / raw
  To: gentoo-dev

Hi all!

We trying to use ldap for users @work, many of our workstations running 
binary gentoo based distro called Calculate linux. However if we wanna 
have wide use of ldap there is a need for determenistic system group 
gids names and user uids.

Many ebuilds in tree uses enewgroup and enewuser with -1 (aka next 
available parameter)[1]. However it will be much better to set distro 
wide deterministic uid and gid for system service name. So for example 
ldap users may have determenistic groups like video, audio, plugdev, 
etc..

[1] $ egrep '(enewgroup|enewuser)' * -R | awk -F '/' '{print $1 "/" $2}' 
| grep -v eclass | sort -u | wc -l
443
So there not so much gid uids needed

-- 
Best Regards,
Alexey 'Alexxy' Shvetsov
Best Regards,
Alexey 'Alexxy' Shvetsov, PhD
Department of Molecular and Radiation Biophysics
FSBI Petersburg Nuclear Physics Institute, NRC Kurchatov Institute,
Leningrad region, Gatchina, Russia
Gentoo Team Ru
Gentoo Linux Dev
mailto:alexxyum@gmail.com
mailto:alexxy@gentoo.org
mailto:alexxy@omrb.pnpi.spb.ru


^ permalink raw reply	[flat|nested] 35+ messages in thread

* [gentoo-dev] Use GLEP27!
  2015-12-13 18:03 [gentoo-dev] Determenistic system group and user id Alexey Shvetsov
@ 2015-12-13 20:41 ` Robin H. Johnson
  2015-12-14  4:49   ` Alexey Shvetsov
  2015-12-14  9:22   ` Michał Górny
  2015-12-13 20:58 ` [gentoo-dev] Determenistic system group and user id Mike Gilbert
  2015-12-13 22:23 ` Alec Warner
  2 siblings, 2 replies; 35+ messages in thread
From: Robin H. Johnson @ 2015-12-13 20:41 UTC (permalink / raw
  To: gentoo-dev

On Sun, Dec 13, 2015 at 09:03:51PM +0300, Alexey Shvetsov wrote:
> Hi all!
> 
> We trying to use ldap for users @work, many of our workstations running 
> binary gentoo based distro called Calculate linux. However if we wanna 
> have wide use of ldap there is a need for determenistic system group 
> gids names and user uids.
> 
> Many ebuilds in tree uses enewgroup and enewuser with -1 (aka next 
> available parameter)[1]. However it will be much better to set distro 
> wide deterministic uid and gid for system service name. So for example 
> ldap users may have determenistic groups like video, audio, plugdev, 
> etc..
GLEP27 was approved for this, however it is barely used.

Convert the rest of the tree to use it, and then you'll be done, aside
from the existing mess on user systems.

-- 
Robin Hugh Johnson
Gentoo Linux: Developer, Infrastructure Lead, Foundation Trustee
E-Mail     : robbat2@gentoo.org
GnuPG FP   : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Determenistic system group and user id
  2015-12-13 18:03 [gentoo-dev] Determenistic system group and user id Alexey Shvetsov
  2015-12-13 20:41 ` [gentoo-dev] Use GLEP27! Robin H. Johnson
@ 2015-12-13 20:58 ` Mike Gilbert
  2015-12-13 22:23 ` Alec Warner
  2 siblings, 0 replies; 35+ messages in thread
From: Mike Gilbert @ 2015-12-13 20:58 UTC (permalink / raw
  To: Gentoo Dev

On Sun, Dec 13, 2015 at 1:03 PM, Alexey Shvetsov <alexxy@gentoo.org> wrote:
> We trying to use ldap for users @work, many of our workstations running
> binary gentoo based distro called Calculate linux. However if we wanna have
> wide use of ldap there is a need for determenistic system group gids names
> and user uids.

I think you are looking for GLEP 27 and the related bug 53269.

Unfortunately, it seems there has been no movement on that bug in
several years. Maybe you could help implement something?

https://wiki.gentoo.org/wiki/GLEP:27

https://bugs.gentoo.org/show_bug.cgi?id=53269


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Determenistic system group and user id
  2015-12-13 18:03 [gentoo-dev] Determenistic system group and user id Alexey Shvetsov
  2015-12-13 20:41 ` [gentoo-dev] Use GLEP27! Robin H. Johnson
  2015-12-13 20:58 ` [gentoo-dev] Determenistic system group and user id Mike Gilbert
@ 2015-12-13 22:23 ` Alec Warner
  2015-12-13 23:46   ` Marc Schiffbauer
                     ` (2 more replies)
  2 siblings, 3 replies; 35+ messages in thread
From: Alec Warner @ 2015-12-13 22:23 UTC (permalink / raw
  To: Gentoo Dev

[-- Attachment #1: Type: text/plain, Size: 2186 bytes --]

On Sun, Dec 13, 2015 at 10:03 AM, Alexey Shvetsov <alexxy@gentoo.org> wrote:

> Hi all!
>
> We trying to use ldap for users @work, many of our workstations running
> binary gentoo based distro called Calculate linux. However if we wanna have
> wide use of ldap there is a need for determenistic system group gids names
> and user uids.
>
> Many ebuilds in tree uses enewgroup and enewuser with -1 (aka next
> available parameter)[1]. However it will be much better to set distro wide
> deterministic uid and gid for system service name. So for example ldap
> users may have determenistic groups like video, audio, plugdev, etc..
>

So the first question I normally ask here is:

1) Why do you need deterministic uid / gid's?
2) If you do need deterministic uid / gid's, I would recommend storing them
all in the same place.

For example, you typically want a deterministic UID for a user. To
accomplish this, you add that user to LDAP, give them a UID in LDAP, and
then either add LDAP to nssswitch or use something like nsscache to sync
the ldap UID's into the local system.

3) If you need deterministic GID's I would recommend storing them all in
LDAP and syncing the group memberships locally.

I never understood why people would think the distro should handle unique
gid / uids. Plus you usually end up running:

1) More than one distro.
2) More than one 'flavor' of a single distro where for whatever reason, uid
and gid decisions differed (they renumbered, etc.)

So if you want a consistent GID for a group, store the group name and gid
in ldap and sync it; do not rely on your distro to do it. IMHO doing so is
a design error.

-A


>
> [1] $ egrep '(enewgroup|enewuser)' * -R | awk -F '/' '{print $1 "/" $2}' |
> grep -v eclass | sort -u | wc -l
> 443
> So there not so much gid uids needed
>
> --
> Best Regards,
> Alexey 'Alexxy' Shvetsov
> Best Regards,
> Alexey 'Alexxy' Shvetsov, PhD
> Department of Molecular and Radiation Biophysics
> FSBI Petersburg Nuclear Physics Institute, NRC Kurchatov Institute,
> Leningrad region, Gatchina, Russia
> Gentoo Team Ru
> Gentoo Linux Dev
> mailto:alexxyum@gmail.com
> mailto:alexxy@gentoo.org
> mailto:alexxy@omrb.pnpi.spb.ru
>
>

[-- Attachment #2: Type: text/html, Size: 3124 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Determenistic system group and user id
  2015-12-13 22:23 ` Alec Warner
@ 2015-12-13 23:46   ` Marc Schiffbauer
  2015-12-14  5:17   ` Alexey Shvetsov
  2015-12-14  6:39   ` Robin H. Johnson
  2 siblings, 0 replies; 35+ messages in thread
From: Marc Schiffbauer @ 2015-12-13 23:46 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1295 bytes --]

* Alec Warner schrieb am 13.12.15 um 23:23 Uhr:
[...]
> I never understood why people would think the distro should handle unique
> gid / uids. Plus you usually end up running:
> 
> 1) More than one distro.

not in most places

> 2) More than one 'flavor' of a single distro where for whatever reason, uid
> and gid decisions differed (they renumbered, etc.)
> 
> So if you want a consistent GID for a group, store the group name and gid
> in ldap and sync it; do not rely on your distro to do it. IMHO doing so is
> a design error.

I disagree here. Most (enterprise) environments use just one distro. And 
its just very useful if you have sticky UIDs for daemon users for 
example.

One example: You build an apache two-node cluster using DRBD (and 
pacemaker...).  If you happen to install some daemons in random order on 
both nodes you might end up with apache having different UIDs which will 
break things. This is a PITA.

ANd you do not want another central LDAP-Cluster just to have apache 
UIDs in sync ;)

Red Hat for example has unique distro UIDs for many years now.

I would strongly vote for making GLEP27 reality. It makes life easier in 
many places.

-Marc

-- 
0x35A64134 - 8AAC 5F46 83B4 DB70 8317
             3723 296C 6CCA 35A6 4134

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-13 20:41 ` [gentoo-dev] Use GLEP27! Robin H. Johnson
@ 2015-12-14  4:49   ` Alexey Shvetsov
  2015-12-14  6:06     ` Robin H. Johnson
  2015-12-14  9:22   ` Michał Górny
  1 sibling, 1 reply; 35+ messages in thread
From: Alexey Shvetsov @ 2015-12-14  4:49 UTC (permalink / raw
  To: gentoo-dev; +Cc: Robin H. Johnson

Hi!

Ok. Since there is GLEP27 we should make it reality. To do so i think we 
should
1. Have some list of system uid/gid (on wiki for example). Also we need 
to agree on uid/gid numbers for services
2. Add uid/gid from list to existing ebuilds
3. Make a repoman (or may be eclass) check, that will no allow to commit 
ebuilds with enewuser enewgroup calls with undefined uids
4. Make some script or howto to migrate to determenistic uids/gids from 
1



Robin H. Johnson писал 13-12-2015 23:41:
> On Sun, Dec 13, 2015 at 09:03:51PM +0300, Alexey Shvetsov wrote:
>> Hi all!
>> 
>> We trying to use ldap for users @work, many of our workstations 
>> running
>> binary gentoo based distro called Calculate linux. However if we wanna
>> have wide use of ldap there is a need for determenistic system group
>> gids names and user uids.
>> 
>> Many ebuilds in tree uses enewgroup and enewuser with -1 (aka next
>> available parameter)[1]. However it will be much better to set distro
>> wide deterministic uid and gid for system service name. So for example
>> ldap users may have determenistic groups like video, audio, plugdev,
>> etc..
> GLEP27 was approved for this, however it is barely used.
> 
> Convert the rest of the tree to use it, and then you'll be done, aside
> from the existing mess on user systems.

-- 
Best Regards,
Alexey 'Alexxy' Shvetsov
Best Regards,
Alexey 'Alexxy' Shvetsov, PhD
Department of Molecular and Radiation Biophysics
FSBI Petersburg Nuclear Physics Institute, NRC Kurchatov Institute,
Leningrad region, Gatchina, Russia
Gentoo Team Ru
Gentoo Linux Dev
mailto:alexxyum@gmail.com
mailto:alexxy@gentoo.org
mailto:alexxy@omrb.pnpi.spb.ru


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Determenistic system group and user id
  2015-12-13 22:23 ` Alec Warner
  2015-12-13 23:46   ` Marc Schiffbauer
@ 2015-12-14  5:17   ` Alexey Shvetsov
  2015-12-14  6:39   ` Robin H. Johnson
  2 siblings, 0 replies; 35+ messages in thread
From: Alexey Shvetsov @ 2015-12-14  5:17 UTC (permalink / raw
  To: gentoo-dev; +Cc: antarus, Alec Warner

Hi Alec!

Alec Warner писал 14-12-2015 01:23:
> On Sun, Dec 13, 2015 at 10:03 AM, Alexey Shvetsov <alexxy@gentoo.org>
> wrote:
> 
>> Hi all!
>> 
>> We trying to use ldap for users @work, many of our workstations
>> running binary gentoo based distro called Calculate linux. However
>> if we wanna have wide use of ldap there is a need for determenistic
>> system group gids names and user uids.
>> 
>> Many ebuilds in tree uses enewgroup and enewuser with -1 (aka next
>> available parameter)[1]. However it will be much better to set
>> distro wide deterministic uid and gid for system service name. So
>> for example ldap users may have determenistic groups like video,
>> audio, plugdev, etc..
> 
> So the first question I normally ask here is:
> 
> 1) Why do you need deterministic uid / gid's?

for exmaple plugdev group may have random gid from range 10-1000+ (i 
have some systems when it have gid >1000)
so if you're ldap user want to mount external drive on workstation you 
dont know what gid it should have..

> 2) If you do need deterministic uid / gid's, I would recommend storing
> them all in the same place.
> 
> For example, you typically want a deterministic UID for a user. To
> accomplish this, you add that user to LDAP, give them a UID in LDAP,
> and then either add LDAP to nssswitch or use something like nsscache
> to sync the ldap UID's into the local system.
> 
> 3) If you need deterministic GID's I would recommend storing them all
> in LDAP and syncing the group memberships locally.

Syncing groups localy is major design error if you have more then 10+ 
systems.

> 
> I never understood why people would think the distro should handle
> unique gid / uids. Plus you usually end up running:
> 
> 1) More than one distro.

Its not the case. Most time there only one 'supported' distro by local 
IT stuff.

> 2) More than one 'flavor' of a single distro where for whatever
> reason, uid and gid decisions differed (they renumbered, etc.)
> 
> So if you want a consistent GID for a group, store the group name and
> gid in ldap and sync it; do not rely on your distro to do it. IMHO
> doing so is a design error.
> 
> -A
> 
>> [1] $ egrep '(enewgroup|enewuser)' * -R | awk -F '/' '{print $1 "/"
>> $2}' | grep -v eclass | sort -u | wc -l
>> 443
>> So there not so much gid uids needed
>> 
>> --
>> Best Regards,
>> Alexey 'Alexxy' Shvetsov
>> Best Regards,
>> Alexey 'Alexxy' Shvetsov, PhD
>> Department of Molecular and Radiation Biophysics
>> FSBI Petersburg Nuclear Physics Institute, NRC Kurchatov Institute,
>> Leningrad region, Gatchina, Russia
>> Gentoo Team Ru
>> Gentoo Linux Dev
>> mailto:alexxyum@gmail.com
>> mailto:alexxy@gentoo.org
>> mailto:alexxy@omrb.pnpi.spb.ru

-- 
Best Regards,
Alexey 'Alexxy' Shvetsov
Best Regards,
Alexey 'Alexxy' Shvetsov, PhD
Department of Molecular and Radiation Biophysics
FSBI Petersburg Nuclear Physics Institute, NRC Kurchatov Institute,
Leningrad region, Gatchina, Russia
Gentoo Team Ru
Gentoo Linux Dev
mailto:alexxyum@gmail.com
mailto:alexxy@gentoo.org
mailto:alexxy@omrb.pnpi.spb.ru


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-14  4:49   ` Alexey Shvetsov
@ 2015-12-14  6:06     ` Robin H. Johnson
  2015-12-14 14:48       ` Doug Goldstein
  0 siblings, 1 reply; 35+ messages in thread
From: Robin H. Johnson @ 2015-12-14  6:06 UTC (permalink / raw
  To: gentoo-dev

On Mon, Dec 14, 2015 at 07:49:42AM +0300, Alexey Shvetsov wrote:
> Hi!
> 
> Ok. Since there is GLEP27 we should make it reality. To do so i think we 
> should
> 1. Have some list of system uid/gid (on wiki for example). Also we need 
> to agree on uid/gid numbers for services
This database was already started, prior to GLEP27.
In CVS, you want gentoo-src/eid_database/

> 2. Add uid/gid from list to existing ebuilds

> 3. Make a repoman (or may be eclass) check, that will no allow to commit 
> ebuilds with enewuser enewgroup calls with undefined uids
I think in the original discussion, there were concerns that there were
cases where this was going to be valid. I think this check needs to come
later, after we rule those out. It should however start to warn about
them ASAP.

> 4. Make some script or howto to migrate to determenistic uids/gids from 
Much of the work was implemented for GSOC2006, "Creandus" by
developer pioto.

Cardoe did more work on it later on.

-- 
Robin Hugh Johnson
Gentoo Linux: Developer, Infrastructure Lead, Foundation Trustee
E-Mail     : robbat2@gentoo.org
GnuPG FP   : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Determenistic system group and user id
  2015-12-13 22:23 ` Alec Warner
  2015-12-13 23:46   ` Marc Schiffbauer
  2015-12-14  5:17   ` Alexey Shvetsov
@ 2015-12-14  6:39   ` Robin H. Johnson
  2015-12-14 20:03     ` Alec Warner
  2 siblings, 1 reply; 35+ messages in thread
From: Robin H. Johnson @ 2015-12-14  6:39 UTC (permalink / raw
  To: gentoo-dev

On Sun, Dec 13, 2015 at 02:23:29PM -0800, Alec Warner wrote:
> 1) Why do you need deterministic uid / gid's?
> 2) If you do need deterministic uid / gid's, I would recommend storing them
> all in the same place.
They are ALL for system users and groups.

TL;DR: if you're sharing data/config for system users/groups between
multiple systems based on UID/GID (not username), you need consistent
generation.

Data on NFSv[23], with a shared apache/nginx user was one of the
original examples. I agree since then, that the data should NOT be owned
by apache/nginx anymore (NFSv4 also solves the problem).

A much newer example, is let's consider the system group 'plugdev'. It's
one that is created dynamically at the moment.

If I want to put my user in that group LDAP-wide, and have an LDAP
environment, I need to make sure the plugdev GID is the same on all
systems (actually it also varies slightly depending which LDAP group
membership model you're using for NSS data).

> For example, you typically want a deterministic UID for a user. To
> accomplish this, you add that user to LDAP, give them a UID in LDAP, and
> then either add LDAP to nssswitch or use something like nsscache to sync
> the ldap UID's into the local system.
> 
> 3) If you need deterministic GID's I would recommend storing them all in
> LDAP and syncing the group memberships locally.
So you want to define the group twice? Both in LDAP and locally?

> I never understood why people would think the distro should handle unique
> gid / uids. Plus you usually end up running:
> 
> 1) More than one distro.
> 2) More than one 'flavor' of a single distro where for whatever reason, uid
> and gid decisions differed (they renumbered, etc.)
Here's the work LSB did on it, with further references to what more
distros do:
https://github.com/LinuxStandardBase/lsb/blob/master/documents/wip/userNaming.txt

Here's the debian central database for it:
https://anonscm.debian.org/cgit/users/cjwatson/base-passwd.git/tree/README


> So if you want a consistent GID for a group, store the group name and gid
> in ldap and sync it; do not rely on your distro to do it. IMHO doing so is
> a design error.
Which is incompatible with NFSv3.

> > [1] $ egrep '(enewgroup|enewuser)' * -R | awk -F '/' '{print $1 "/" $2}' |
> > grep -v eclass | sort -u | wc -l
> > 443
> > So there not so much gid uids needed
There are definitely entries like these, so be very careful in your counting.
enewgroup $PN
enewuser ${PN} -1 -1 /var/lib/${PN} ${PN}

Based on counting unique tuples of
($CAT/$PN, $ARGS, I count 410+ of each enewgroup and enewuser calls.

$ git grep -e 'enewuser ' -e 'enewgroup ' | \
  sed -r -e 's,/[^/]+:[[:space:]]*,/: ,g' -e 's,#.*,,g' | \
  grep -e ': enew' |sort |uniq

Also watch out for packages that create MULTIPLE users/groups for privilege
separation (qmail is notorious for this).

-- 
Robin Hugh Johnson
Gentoo Linux: Developer, Infrastructure Lead, Foundation Trustee
E-Mail     : robbat2@gentoo.org
GnuPG FP   : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-13 20:41 ` [gentoo-dev] Use GLEP27! Robin H. Johnson
  2015-12-14  4:49   ` Alexey Shvetsov
@ 2015-12-14  9:22   ` Michał Górny
  2015-12-14 14:57     ` Doug Goldstein
  2015-12-14 20:22     ` Ulrich Mueller
  1 sibling, 2 replies; 35+ messages in thread
From: Michał Górny @ 2015-12-14  9:22 UTC (permalink / raw
  To: gentoo-dev, Robin H. Johnson

[-- Attachment #1: Type: text/plain, Size: 1486 bytes --]



Dnia 13 grudnia 2015 21:41:02 CET, "Robin H. Johnson" <robbat2@gentoo.org> napisał(a):
>On Sun, Dec 13, 2015 at 09:03:51PM +0300, Alexey Shvetsov wrote:
>> Hi all!
>> 
>> We trying to use ldap for users @work, many of our workstations
>running 
>> binary gentoo based distro called Calculate linux. However if we
>wanna 
>> have wide use of ldap there is a need for determenistic system group 
>> gids names and user uids.
>> 
>> Many ebuilds in tree uses enewgroup and enewuser with -1 (aka next 
>> available parameter)[1]. However it will be much better to set distro
>
>> wide deterministic uid and gid for system service name. So for
>example 
>> ldap users may have determenistic groups like video, audio, plugdev, 
>> etc..
>GLEP27 was approved for this, however it is barely used.
>
>Convert the rest of the tree to use it, and then you'll be done, aside
>from the existing mess on user systems.

As far as I can see, this GLEP predates EAPI and does not meet modern standards. It needs to be updated or killed with fire.

For a start, relation to EAPI needs to be defined. This will likely require both profiles and ebuilds to use the new EAPI.

Also, the contents of 'backwards compatibility' section are unacceptable. But that's probably going to be covered by EAPI.

The spec itself is hard to follow, though the idea seems simple. It makes me wonder if we aren't missing something important there.
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

[-- Attachment #2: Type: text/html, Size: 1753 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-14  6:06     ` Robin H. Johnson
@ 2015-12-14 14:48       ` Doug Goldstein
  0 siblings, 0 replies; 35+ messages in thread
From: Doug Goldstein @ 2015-12-14 14:48 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1497 bytes --]

On 12/14/15 12:06 AM, Robin H. Johnson wrote:
> On Mon, Dec 14, 2015 at 07:49:42AM +0300, Alexey Shvetsov wrote:
>> Hi!
>>
>> Ok. Since there is GLEP27 we should make it reality. To do so i think we 
>> should
>> 1. Have some list of system uid/gid (on wiki for example). Also we need 
>> to agree on uid/gid numbers for services
> This database was already started, prior to GLEP27.
> In CVS, you want gentoo-src/eid_database/
> 
>> 2. Add uid/gid from list to existing ebuilds
> 
>> 3. Make a repoman (or may be eclass) check, that will no allow to commit 
>> ebuilds with enewuser enewgroup calls with undefined uids
> I think in the original discussion, there were concerns that there were
> cases where this was going to be valid. I think this check needs to come
> later, after we rule those out. It should however start to warn about
> them ASAP.
> 
>> 4. Make some script or howto to migrate to determenistic uids/gids from 
> Much of the work was implemented for GSOC2006, "Creandus" by
> developer pioto.
> 
> Cardoe did more work on it later on.
> 

I'll try to find what I did but at one point I had the database of
uid/gid updated to include everything in the tree. I had some patches
for enewuser/enewgroup to not allow them to do anything unless the ids
were in the database.

Sadly, its been a long long time. But I still would love to see this
happen. There just wasn't much interest from everyone in making this happen.

-- 
Doug Goldstein


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 959 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-14  9:22   ` Michał Górny
@ 2015-12-14 14:57     ` Doug Goldstein
  2015-12-14 20:22     ` Ulrich Mueller
  1 sibling, 0 replies; 35+ messages in thread
From: Doug Goldstein @ 2015-12-14 14:57 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1708 bytes --]

On 12/14/15 3:22 AM, Michał Górny wrote:
> 
> 
> Dnia 13 grudnia 2015 21:41:02 CET, "Robin H. Johnson"
> <robbat2@gentoo.org> napisał(a):
>>On Sun, Dec 13, 2015 at 09:03:51PM +0300, Alexey Shvetsov wrote:
>>> Hi all!
>>>
>>> We trying to use ldap for users @work, many of our workstations
>>running
>>> binary gentoo based distro called Calculate linux. However if we
>>wanna
>>> have wide use of ldap there is a need for determenistic system group
>>> gids names and user uids.
>>>
>>> Many ebuilds in tree uses enewgroup and enewuser with -1 (aka next
>>> available parameter)[1]. However it will be much better to set distro
>>
>>> wide deterministic uid and gid for system service name. So for
>>example
>>> ldap users may have determenistic groups like video, audio, plugdev,
>>> etc..
>>GLEP27 was approved for this, however it is barely used.
>>
>>Convert the rest of the tree to use it, and then you'll be done, aside
>>from the existing mess on user systems.
> 
> As far as I can see, this GLEP predates EAPI and does not meet modern
> standards. It needs to be updated or killed with fire.
> 
> For a start, relation to EAPI needs to be defined. This will likely
> require both profiles and ebuilds to use the new EAPI.
> 
> Also, the contents of 'backwards compatibility' section are
> unacceptable. But that's probably going to be covered by EAPI.
> 
> The spec itself is hard to follow, though the idea seems simple. It
> makes me wonder if we aren't missing something important there.
> -- 
> Sent from my Android device with K-9 Mail. Please excuse my brevity.


Don't kill it. The best way forward would be to update it.

-- 
Doug Goldstein


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 959 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Determenistic system group and user id
  2015-12-14  6:39   ` Robin H. Johnson
@ 2015-12-14 20:03     ` Alec Warner
  0 siblings, 0 replies; 35+ messages in thread
From: Alec Warner @ 2015-12-14 20:03 UTC (permalink / raw
  To: Gentoo Dev

[-- Attachment #1: Type: text/plain, Size: 4281 bytes --]

On Sun, Dec 13, 2015 at 10:39 PM, Robin H. Johnson <robbat2@gentoo.org>
wrote:

> On Sun, Dec 13, 2015 at 02:23:29PM -0800, Alec Warner wrote:
> > 1) Why do you need deterministic uid / gid's?
> > 2) If you do need deterministic uid / gid's, I would recommend storing
> them
> > all in the same place.
> They are ALL for system users and groups.
>

What does that mean though? What is a System user or a System group?
Why should you not store them in the user / group directory?


>
> TL;DR: if you're sharing data/config for system users/groups between
> multiple systems based on UID/GID (not username), you need consistent
> generation.
>

> Data on NFSv[23], with a shared apache/nginx user was one of the
> original examples. I agree since then, that the data should NOT be owned
> by apache/nginx anymore (NFSv4 also solves the problem).
>

This is certainly one workaround (you generate a shard user / role user
that is the same uid / gid on every machine and you make that own the data
/ run the service.) But you might as well just add apache to LDAP and call
it a day?


>
> A much newer example, is let's consider the system group 'plugdev'. It's
> one that is created dynamically at the moment.
>
> If I want to put my user in that group LDAP-wide, and have an LDAP
> environment, I need to make sure the plugdev GID is the same on all
> systems (actually it also varies slightly depending which LDAP group
> membership model you're using for NSS data).
>
> > For example, you typically want a deterministic UID for a user. To
> > accomplish this, you add that user to LDAP, give them a UID in LDAP, and
> > then either add LDAP to nssswitch or use something like nsscache to sync
> > the ldap UID's into the local system.
> >
> > 3) If you need deterministic GID's I would recommend storing them all in
> > LDAP and syncing the group memberships locally.
> So you want to define the group twice? Both in LDAP and locally?
>

Sorry, when I said sync I meant nsscache or similar. I understand why that
would be confusing ;)


>
> > I never understood why people would think the distro should handle unique
> > gid / uids. Plus you usually end up running:
> >
> > 1) More than one distro.
> > 2) More than one 'flavor' of a single distro where for whatever reason,
> uid
> > and gid decisions differed (they renumbered, etc.)
> Here's the work LSB did on it, with further references to what more
> distros do:
>
> https://github.com/LinuxStandardBase/lsb/blob/master/documents/wip/userNaming.txt
>
> Here's the debian central database for it:
> https://anonscm.debian.org/cgit/users/cjwatson/base-passwd.git/tree/README
>
>
I'm not opposed to this effort, simply that getting everyone to conform is
tricky and in complex environments you will inevitably end up in situations
outside of the scope of the effort. I prefer practicality ;)


> > So if you want a consistent GID for a group, store the group name and gid
> > in ldap and sync it; do not rely on your distro to do it. IMHO doing so
> is
> > a design error.
> Which is incompatible with NFSv3.
>

How so? (to be clear, most of my experience is with sec=krb5 nfsv3, and I
haven't had to futz with it in a number of years.)
But IIRC nfsv3 sends the uid / gid numbers in the protocol; you can't send
names. Which is why you need consistent uid / gids. But I do not quite
grasp how using LDAP to achieve this breaks nfsv3.


>
> > > [1] $ egrep '(enewgroup|enewuser)' * -R | awk -F '/' '{print $1 "/"
> $2}' |
> > > grep -v eclass | sort -u | wc -l
> > > 443
> > > So there not so much gid uids needed
> There are definitely entries like these, so be very careful in your
> counting.
> enewgroup $PN
> enewuser ${PN} -1 -1 /var/lib/${PN} ${PN}
>
> Based on counting unique tuples of
> ($CAT/$PN, $ARGS, I count 410+ of each enewgroup and enewuser calls.
>
> $ git grep -e 'enewuser ' -e 'enewgroup ' | \
>   sed -r -e 's,/[^/]+:[[:space:]]*,/: ,g' -e 's,#.*,,g' | \
>   grep -e ': enew' |sort |uniq
>
> Also watch out for packages that create MULTIPLE users/groups for privilege
> separation (qmail is notorious for this).
>
> --
> Robin Hugh Johnson
> Gentoo Linux: Developer, Infrastructure Lead, Foundation Trustee
> E-Mail     : robbat2@gentoo.org
> GnuPG FP   : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85
>
>

[-- Attachment #2: Type: text/html, Size: 6806 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-14  9:22   ` Michał Górny
  2015-12-14 14:57     ` Doug Goldstein
@ 2015-12-14 20:22     ` Ulrich Mueller
  2015-12-15  4:00       ` Peter Stuge
  2015-12-15  5:13       ` Mike Frysinger
  1 sibling, 2 replies; 35+ messages in thread
From: Ulrich Mueller @ 2015-12-14 20:22 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1670 bytes --]

>>>>> On Mon, 14 Dec 2015, Michał Górny wrote:

> As far as I can see, this GLEP predates EAPI and does not meet
> modern standards. It needs to be updated or killed with fire.

> For a start, relation to EAPI needs to be defined. This will likely
> require both profiles and ebuilds to use the new EAPI.

Certainly this is true for ebuilds. We could introduce EUSERS and
EGROUPS variables as well as FEATURES=noautoaccts in EAPI 7.

I'd rather avoid bumping all profiles to EAPI 7, though. From a
pragmatic point of view, I think nothing bad would happen if we would
add user and group definition files to an existing (EAPI 5) profile,
as old package managers would simple ignore these files.

> Also, the contents of 'backwards compatibility' section are
> unacceptable. But that's probably going to be covered by EAPI.

> The spec itself is hard to follow, though the idea seems simple. 
> It makes me wonder if we aren't missing something important there.

The spec seems incomplete. I cannot find a description of the user and
group files' format. (But in fact, there is a standard format which
suggests itself, namely that of the passwd(5) and group(5) files.)

Also having whole directory trees seems wasteful and doesn't fit so
well into the existing design of profiles. It might be simpler to put
"user" (or "passwd") and "group" files directly in the profile.
(If directories are really needed, we could use the scheme foreseen
in [1] for package.* and use.* files.)

Also a mechanism how a subprofile could undefine a user or group
defined in its parent seems to be missing.

Ulrich


[1] https://bugs.gentoo.org/282296

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-14 20:22     ` Ulrich Mueller
@ 2015-12-15  4:00       ` Peter Stuge
  2015-12-15  5:13       ` Mike Frysinger
  1 sibling, 0 replies; 35+ messages in thread
From: Peter Stuge @ 2015-12-15  4:00 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 311 bytes --]

Ulrich Mueller wrote:
> (If directories are really needed, we could use the scheme foreseen
> in [1] for package.* and use.* files.)

So package.{users,group} ?


> Also a mechanism how a subprofile could undefine a user or group
> defined in its parent seems to be missing.

Maybe set the id to -1 ?


//Peter

[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-14 20:22     ` Ulrich Mueller
  2015-12-15  4:00       ` Peter Stuge
@ 2015-12-15  5:13       ` Mike Frysinger
  2015-12-15  6:28         ` Ulrich Mueller
  1 sibling, 1 reply; 35+ messages in thread
From: Mike Frysinger @ 2015-12-15  5:13 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1304 bytes --]

On 14 Dec 2015 21:22, Ulrich Mueller wrote:
> The spec seems incomplete. I cannot find a description of the user and
> group files' format. (But in fact, there is a standard format which
> suggests itself, namely that of the passwd(5) and group(5) files.)

i recall going with xml at the time, but i can't find reference to it.

> Also having whole directory trees seems wasteful and doesn't fit so
> well into the existing design of profiles. It might be simpler to put
> "user" (or "passwd") and "group" files directly in the profile.
> (If directories are really needed, we could use the scheme foreseen
> in [1] for package.* and use.* files.)

we implemented this GLEP in Chromium OS and have been using it for a while:
https://chromium.googlesource.com/chromiumos/overlays/eclass-overlay/+/master

having a directory of files is way more user friendly imo and allows for
a format that is easier to read.  /etc/passwd and /etc/group format are
not that easy to scan and aren't portable.

> Also a mechanism how a subprofile could undefine a user or group
> defined in its parent seems to be missing.

what exactly do you mean by that ?  you want to make it so attempts to
use the account yield an undefined error ?  or you want to have it so
a child can revert back to an earlier definition ?
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15  5:13       ` Mike Frysinger
@ 2015-12-15  6:28         ` Ulrich Mueller
  2015-12-15 14:19           ` Mike Frysinger
  0 siblings, 1 reply; 35+ messages in thread
From: Ulrich Mueller @ 2015-12-15  6:28 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1662 bytes --]

>>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:

> On 14 Dec 2015 21:22, Ulrich Mueller wrote:
>> The spec seems incomplete. I cannot find a description of the user and
>> group files' format. (But in fact, there is a standard format which
>> suggests itself, namely that of the passwd(5) and group(5) files.)

> i recall going with xml at the time, but i can't find reference to it.

So the package manager would have to parse XML? We have tried to avoid
that, so far.

>> Also having whole directory trees seems wasteful and doesn't fit so
>> well into the existing design of profiles. It might be simpler to put
>> "user" (or "passwd") and "group" files directly in the profile.
>> (If directories are really needed, we could use the scheme foreseen
>> in [1] for package.* and use.* files.)

> we implemented this GLEP in Chromium OS and have been using it for a while:
> https://chromium.googlesource.com/chromiumos/overlays/eclass-overlay/+/master

> having a directory of files is way more user friendly imo and allows for
> a format that is easier to read.  /etc/passwd and /etc/group format are
> not that easy to scan and aren't portable.

As we most likely will introduce profile file directories in EAPI 7
(see bug 282296), I'd rather use the same scheme for the user and
group files, but not something different.

>> Also a mechanism how a subprofile could undefine a user or group
>> defined in its parent seems to be missing.

> what exactly do you mean by that ?  you want to make it so attempts to
> use the account yield an undefined error ?  or you want to have it so
> a child can revert back to an earlier definition ?

The former.

Ulrich

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15  6:28         ` Ulrich Mueller
@ 2015-12-15 14:19           ` Mike Frysinger
  2015-12-15 14:33             ` Michał Górny
                               ` (2 more replies)
  0 siblings, 3 replies; 35+ messages in thread
From: Mike Frysinger @ 2015-12-15 14:19 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2788 bytes --]

On 15 Dec 2015 07:28, Ulrich Mueller wrote:
> >>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:
> 
> > On 14 Dec 2015 21:22, Ulrich Mueller wrote:
> >> The spec seems incomplete. I cannot find a description of the user and
> >> group files' format. (But in fact, there is a standard format which
> >> suggests itself, namely that of the passwd(5) and group(5) files.)
> 
> > i recall going with xml at the time, but i can't find reference to it.
> 
> So the package manager would have to parse XML? We have tried to avoid
> that, so far.

not entirely accurate considering we have metadata.xml

> >> Also having whole directory trees seems wasteful and doesn't fit so
> >> well into the existing design of profiles. It might be simpler to put
> >> "user" (or "passwd") and "group" files directly in the profile.
> >> (If directories are really needed, we could use the scheme foreseen
> >> in [1] for package.* and use.* files.)
> 
> > we implemented this GLEP in Chromium OS and have been using it for a while:
> > https://chromium.googlesource.com/chromiumos/overlays/eclass-overlay/+/master
> 
> > having a directory of files is way more user friendly imo and allows for
> > a format that is easier to read.  /etc/passwd and /etc/group format are
> > not that easy to scan and aren't portable.
> 
> As we most likely will introduce profile file directories in EAPI 7
> (see bug 282296), I'd rather use the same scheme for the user and
> group files, but not something different.

a flat text file akin to /etc/passwd is not readable.  xml is readable.

a markdown like format would work -- easy to parse by machines & humans
and is a single stackable file.
user:ntp
<whitespace>uid:203
<whitespace>gid:203
user:man
<whitespace>uid:13
<whitespace>gid:13
(using : as delimiter since that's what *NIX uses in /etc/passwd)

the main one would grow probably to about 2000+ lines (~400 users in the
tree and each entry takes ~4 lines assuming we enforce eliding of defaults)
which isn't that terrible.  CrOS has a python script already for validating
the db consistency.

> >> Also a mechanism how a subprofile could undefine a user or group
> >> defined in its parent seems to be missing.
> 
> > what exactly do you mean by that ?  you want to make it so attempts to
> > use the account yield an undefined error ?  or you want to have it so
> > a child can revert back to an earlier definition ?
> 
> The former.

we already handle this in CrOS by explicitly including a flag in the file:
defunct:true

thus the PM need not care about the status when locating files or otherwise
include any special handling.  if the last file you hit is marked as defunct,
then enew{user,group} will throw an error when they're called.
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 14:19           ` Mike Frysinger
@ 2015-12-15 14:33             ` Michał Górny
  2015-12-15 15:08               ` Mike Frysinger
  2015-12-15 14:56             ` Ulrich Mueller
  2015-12-15 18:35             ` Alec Warner
  2 siblings, 1 reply; 35+ messages in thread
From: Michał Górny @ 2015-12-15 14:33 UTC (permalink / raw
  To: Mike Frysinger; +Cc: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 918 bytes --]

On Tue, 15 Dec 2015 09:19:36 -0500
Mike Frysinger <vapier@gentoo.org> wrote:

> On 15 Dec 2015 07:28, Ulrich Mueller wrote:
> > >>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:  
> >   
> > > On 14 Dec 2015 21:22, Ulrich Mueller wrote:  
> > >> The spec seems incomplete. I cannot find a description of the user and
> > >> group files' format. (But in fact, there is a standard format which
> > >> suggests itself, namely that of the passwd(5) and group(5) files.)  
> >   
> > > i recall going with xml at the time, but i can't find reference to it.  
> > 
> > So the package manager would have to parse XML? We have tried to avoid
> > that, so far.  
> 
> not entirely accurate considering we have metadata.xml

Not entirely accurate considering the contents of metadata.xml are not
necessary to build and install packages.

-- 
Best regards,
Michał Górny
<http://dev.gentoo.org/~mgorny/>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 14:19           ` Mike Frysinger
  2015-12-15 14:33             ` Michał Górny
@ 2015-12-15 14:56             ` Ulrich Mueller
  2015-12-15 15:00               ` Michał Górny
                                 ` (2 more replies)
  2015-12-15 18:35             ` Alec Warner
  2 siblings, 3 replies; 35+ messages in thread
From: Ulrich Mueller @ 2015-12-15 14:56 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1071 bytes --]

>>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:

> a flat text file akin to /etc/passwd is not readable.  xml is readable.

ESR's case study about the password file format seems to disagree:
http://www.catb.org/esr/writings/taoup/html/ch05s01.html#id2901332

I think the name:password:uid:gid:gecos:directory:shell format is
readable well enough for human eyes. Certainly it is machine readable;
even with standard tools like fgetpwent(3) (or its equivalent in other
programming languages).

> a markdown like format would work -- easy to parse by machines & humans
> and is a single stackable file.

Reinventing the wheel?

> user:ntp
> <whitespace>uid:203
> <whitespace>gid:203
> user:man
> <whitespace>uid:13
> <whitespace>gid:13
> (using : as delimiter since that's what *NIX uses in /etc/passwd)

> the main one would grow probably to about 2000+ lines (~400 users in
> the tree and each entry takes ~4 lines assuming we enforce eliding
> of defaults) which isn't that terrible.

To me this looks like a lot of added redundancy for little (if any)
benefit.

Ulrich

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 14:56             ` Ulrich Mueller
@ 2015-12-15 15:00               ` Michał Górny
  2015-12-15 15:10                 ` Mike Frysinger
  2015-12-15 15:16               ` Mike Frysinger
  2015-12-15 20:52               ` Mike Frysinger
  2 siblings, 1 reply; 35+ messages in thread
From: Michał Górny @ 2015-12-15 15:00 UTC (permalink / raw
  To: Ulrich Mueller; +Cc: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 774 bytes --]

On Tue, 15 Dec 2015 15:56:34 +0100
Ulrich Mueller <ulm@gentoo.org> wrote:

> >>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:  
> 
> > a flat text file akin to /etc/passwd is not readable.  xml is readable.  
> 
> ESR's case study about the password file format seems to disagree:
> http://www.catb.org/esr/writings/taoup/html/ch05s01.html#id2901332
> 
> I think the name:password:uid:gid:gecos:directory:shell format is
> readable well enough for human eyes. Certainly it is machine readable;
> even with standard tools like fgetpwent(3) (or its equivalent in other
> programming languages).

Alternatively we could go for whitespace-separated, like fstab. Column
aligning even more.

-- 
Best regards,
Michał Górny
<http://dev.gentoo.org/~mgorny/>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 14:33             ` Michał Górny
@ 2015-12-15 15:08               ` Mike Frysinger
  2015-12-15 15:24                 ` Anthony G. Basile
  0 siblings, 1 reply; 35+ messages in thread
From: Mike Frysinger @ 2015-12-15 15:08 UTC (permalink / raw
  To: Michał Górny; +Cc: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 967 bytes --]

On 15 Dec 2015 15:33, Michał Górny wrote:
> On Tue, 15 Dec 2015 09:19:36 -0500 Mike Frysinger wrote:
> > On 15 Dec 2015 07:28, Ulrich Mueller wrote:
> > > >>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:  
> > >   
> > > > On 14 Dec 2015 21:22, Ulrich Mueller wrote:  
> > > >> The spec seems incomplete. I cannot find a description of the user and
> > > >> group files' format. (But in fact, there is a standard format which
> > > >> suggests itself, namely that of the passwd(5) and group(5) files.)  
> > >   
> > > > i recall going with xml at the time, but i can't find reference to it.  
> > > 
> > > So the package manager would have to parse XML? We have tried to avoid
> > > that, so far.  
> > 
> > not entirely accurate considering we have metadata.xml
> 
> Not entirely accurate considering the contents of metadata.xml are not
> necessary to build and install packages.

read the context.  your statement is fairly obvious.
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 15:00               ` Michał Górny
@ 2015-12-15 15:10                 ` Mike Frysinger
  0 siblings, 0 replies; 35+ messages in thread
From: Mike Frysinger @ 2015-12-15 15:10 UTC (permalink / raw
  To: mgorny; +Cc: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 838 bytes --]

On 15 Dec 2015 16:00, Michał Górny wrote:
> On Tue, 15 Dec 2015 15:56:34 +0100 Ulrich Mueller wrote:
> > >>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:  
> > 
> > > a flat text file akin to /etc/passwd is not readable.  xml is readable.  
> > 
> > ESR's case study about the password file format seems to disagree:
> > http://www.catb.org/esr/writings/taoup/html/ch05s01.html#id2901332
> > 
> > I think the name:password:uid:gid:gecos:directory:shell format is
> > readable well enough for human eyes. Certainly it is machine readable;
> > even with standard tools like fgetpwent(3) (or its equivalent in other
> > programming languages).
> 
> Alternatively we could go for whitespace-separated, like fstab. Column
> aligning even more.

we cannot because whitespace is valid, and we use it already in fields
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 14:56             ` Ulrich Mueller
  2015-12-15 15:00               ` Michał Górny
@ 2015-12-15 15:16               ` Mike Frysinger
  2015-12-15 20:52               ` Mike Frysinger
  2 siblings, 0 replies; 35+ messages in thread
From: Mike Frysinger @ 2015-12-15 15:16 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1002 bytes --]

On 15 Dec 2015 15:56, Ulrich Mueller wrote:
> >>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:
> 
> > a flat text file akin to /etc/passwd is not readable.  xml is readable.
> 
> ESR's case study about the password file format seems to disagree:
> http://www.catb.org/esr/writings/taoup/html/ch05s01.html#id2901332

i don't generally find anything ESR has to say useful, and his code even
less so

> I think the name:password:uid:gid:gecos:directory:shell format is
> readable well enough for human eyes.

having looked at way too many of these, i disagree.  it's harder (imo) to
scan due to the lack of alignment, it's more of a pita to deal with defaults,
and it doesn't permit for additional metadata like i already quoted (the
defunct field).

> Certainly it is machine readable;
> even with standard tools like fgetpwent(3) (or its equivalent in other
> programming languages).

again, not portable.  the format proposed is also trivial to parse by
python and awk.
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 15:08               ` Mike Frysinger
@ 2015-12-15 15:24                 ` Anthony G. Basile
  2015-12-15 19:17                   ` Mike Frysinger
  0 siblings, 1 reply; 35+ messages in thread
From: Anthony G. Basile @ 2015-12-15 15:24 UTC (permalink / raw
  To: gentoo-dev


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 12/15/15 10:08 AM, Mike Frysinger wrote:
> On 15 Dec 2015 15:33, Michał Górny wrote:
>> On Tue, 15 Dec 2015 09:19:36 -0500 Mike Frysinger wrote:
>>> On 15 Dec 2015 07:28, Ulrich Mueller wrote:
>>>>>>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote: 
>>>>  
>>>>> On 14 Dec 2015 21:22, Ulrich Mueller wrote: 
>>>>>> The spec seems incomplete. I cannot find a description of the
user and
>>>>>> group files' format. (But in fact, there is a standard format which
>>>>>> suggests itself, namely that of the passwd(5) and group(5) files.) 
>>>>  
>>>>> i recall going with xml at the time, but i can't find reference to
it. 
>>>>
>>>> So the package manager would have to parse XML? We have tried to avoid
>>>> that, so far. 
>>>
>>> not entirely accurate considering we have metadata.xml
>>
>> Not entirely accurate considering the contents of metadata.xml are not
>> necessary to build and install packages.
>
> read the context.  your statement is fairly obvious.
> -mike
i looked through portage code and we do have xml parsing sprinkled
throughout, mostly in repoman for obvious reasons.  why are we trying to
avoid xml?  to be honest i don't have strong feelings about either the
flat file (a la /etc/passwd) or xml.

i'm interested in this because the hardened-sources kernel does make use
of some special uid/gids.  gengor pointed me to glep 27 and suggested
that i implement it but i wasn't that interested.  still, it would clean
up the hardened.

- -- 
Anthony G. Basile, Ph.D.
Gentoo Linux Developer [Hardened]
E-Mail    : blueness@gentoo.org
GnuPG FP  : 1FED FAD9 D82C 52A5 3BAB  DC79 9384 FA6E F52D 4BBA
GnuPG ID  : F52D4BBA
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iEYEARECAAYFAlZwMJkACgkQl5yvQNBFVTV07gCdHOlrLeoLOdwbEDTeN9TlTM1m
to8AoItHHwBbBvZDp1JkJw9ZO6sm6Sr3
=hYwF
-----END PGP SIGNATURE-----



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 14:19           ` Mike Frysinger
  2015-12-15 14:33             ` Michał Górny
  2015-12-15 14:56             ` Ulrich Mueller
@ 2015-12-15 18:35             ` Alec Warner
  2015-12-15 19:22               ` Mike Frysinger
  2 siblings, 1 reply; 35+ messages in thread
From: Alec Warner @ 2015-12-15 18:35 UTC (permalink / raw
  To: Gentoo Dev

[-- Attachment #1: Type: text/plain, Size: 2944 bytes --]

On Tue, Dec 15, 2015 at 6:19 AM, Mike Frysinger <vapier@gentoo.org> wrote:

> On 15 Dec 2015 07:28, Ulrich Mueller wrote:
> > >>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:
> >
> > > On 14 Dec 2015 21:22, Ulrich Mueller wrote:
> > >> The spec seems incomplete. I cannot find a description of the user and
> > >> group files' format. (But in fact, there is a standard format which
> > >> suggests itself, namely that of the passwd(5) and group(5) files.)
> >
> > > i recall going with xml at the time, but i can't find reference to it.
> >
> > So the package manager would have to parse XML? We have tried to avoid
> > that, so far.
>
> not entirely accurate considering we have metadata.xml
>
> > >> Also having whole directory trees seems wasteful and doesn't fit so
> > >> well into the existing design of profiles. It might be simpler to put
> > >> "user" (or "passwd") and "group" files directly in the profile.
> > >> (If directories are really needed, we could use the scheme foreseen
> > >> in [1] for package.* and use.* files.)
> >
> > > we implemented this GLEP in Chromium OS and have been using it for a
> while:
> > >
> https://chromium.googlesource.com/chromiumos/overlays/eclass-overlay/+/master
> >
> > > having a directory of files is way more user friendly imo and allows
> for
> > > a format that is easier to read.  /etc/passwd and /etc/group format are
> > > not that easy to scan and aren't portable.
> >
> > As we most likely will introduce profile file directories in EAPI 7
> > (see bug 282296), I'd rather use the same scheme for the user and
> > group files, but not something different.
>
> a flat text file akin to /etc/passwd is not readable.  xml is readable.
>

u trollin' bro?


>
> a markdown like format would work -- easy to parse by machines & humans
> and is a single stackable file.
> user:ntp
> <whitespace>uid:203
> <whitespace>gid:203
> user:man
> <whitespace>uid:13
> <whitespace>gid:13
> (using : as delimiter since that's what *NIX uses in /etc/passwd)
>
> the main one would grow probably to about 2000+ lines (~400 users in the
> tree and each entry takes ~4 lines assuming we enforce eliding of defaults)
> which isn't that terrible.  CrOS has a python script already for validating
> the db consistency.
>
> > >> Also a mechanism how a subprofile could undefine a user or group
> > >> defined in its parent seems to be missing.
> >
> > > what exactly do you mean by that ?  you want to make it so attempts to
> > > use the account yield an undefined error ?  or you want to have it so
> > > a child can revert back to an earlier definition ?
> >
> > The former.
>
> we already handle this in CrOS by explicitly including a flag in the file:
> defunct:true
>
> thus the PM need not care about the status when locating files or otherwise
> include any special handling.  if the last file you hit is marked as
> defunct,
> then enew{user,group} will throw an error when they're called.
> -mike
>

[-- Attachment #2: Type: text/html, Size: 4141 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 15:24                 ` Anthony G. Basile
@ 2015-12-15 19:17                   ` Mike Frysinger
  0 siblings, 0 replies; 35+ messages in thread
From: Mike Frysinger @ 2015-12-15 19:17 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1056 bytes --]

On 15 Dec 2015 10:24, Anthony G. Basile wrote:
> i looked through portage code and we do have xml parsing sprinkled
> throughout, mostly in repoman for obvious reasons.  why are we trying to
> avoid xml?  to be honest i don't have strong feelings about either the
> flat file (a la /etc/passwd) or xml.
> 
> i'm interested in this because the hardened-sources kernel does make use
> of some special uid/gids.  gengor pointed me to glep 27 and suggested
> that i implement it but i wasn't that interested.  still, it would clean
> up the hardened.

i don't think XML adds that much over RST, and are trivial to parse, both
on an ad-hoc basis, as well as python has modules to enable it.  i think
most people would agree RST or flat text files are less verbose than XML
w/out really losing that much (if anything).  at the time i was thinking
XML purely because we were much more of an XML shop at the time (we had
guidexml and metadata.xml), but with the rise of wiki/github/glep and the
fall of guidexml, the project has moved on.
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 18:35             ` Alec Warner
@ 2015-12-15 19:22               ` Mike Frysinger
  0 siblings, 0 replies; 35+ messages in thread
From: Mike Frysinger @ 2015-12-15 19:22 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 873 bytes --]

On 15 Dec 2015 10:35, Alec Warner wrote:
> On Tue, Dec 15, 2015 at 6:19 AM, Mike Frysinger wrote:
> > a flat text file akin to /etc/passwd is not readable.  xml is readable.
> 
> u trollin' bro?

in this domain, it's harder to screw up xml and not notice (either human or
machine) whereas it's pretty easy to add/omit an extra : and not notice as
the file will be valid from a parsing pov.

quick, off the top of your head, which of these are correct ?
and tell me which field exactly each one is supposed to go to ?
and then reasonably expect new comers to read this and not choke ?
lp:x:4:7::/var/spool/lpd:/bin/false
lp:x:4:7:/var/spool/lpd:/bin/false
lp:x:4:7:/var/spool/lpd::/bin/false
lp:x:4:7::lpd:/bin/false
lp:x:4:7:lpd:/bin/false
lp:x:4:7:lpd::/bin/false

i consider this format simply a different form of hazing except we all lose ;)
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 14:56             ` Ulrich Mueller
  2015-12-15 15:00               ` Michał Górny
  2015-12-15 15:16               ` Mike Frysinger
@ 2015-12-15 20:52               ` Mike Frysinger
  2015-12-15 21:35                 ` Ulrich Mueller
  2 siblings, 1 reply; 35+ messages in thread
From: Mike Frysinger @ 2015-12-15 20:52 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1435 bytes --]

On 15 Dec 2015 15:56, Ulrich Mueller wrote:
> >>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:
> 
> > a flat text file akin to /etc/passwd is not readable.  xml is readable.
> 
> ESR's case study about the password file format seems to disagree:
> http://www.catb.org/esr/writings/taoup/html/ch05s01.html#id2901332

because you cited it, i read it anyways.  that document is about how text
formats should be preferred over binary formats because they do not require
custom tools to modify/update, and because it's easier for binary formats
to screw themselves over from a portability/extensible pov.  it does not
champion the passwd format all by itself, and even says that it's a bit
rigid, and you should consider tagged formats if you want something more.
which we do.

see also the example i posted to Alec as why the format is hostile to devs
whereas my simple RST proposal has none of these issues.

we also know the format works because it's been in use by CrOS for two
years now, including:
(1) profile stacking/overrides
(2) marking users as "dead"
(3) tools to verify/check consistency at rest
(4) parallel installs
(5) correct handling of ROOT and SYSROOT
although 4/5 were written only with Linux/flat files in mind, so they do
not support other OS's or account formats (e.g. ldap/etc...).  i imagine
we'll need to merge with the existing user.eclass logic rather than drop
in replace.
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 20:52               ` Mike Frysinger
@ 2015-12-15 21:35                 ` Ulrich Mueller
  2015-12-15 21:55                   ` Mike Frysinger
  0 siblings, 1 reply; 35+ messages in thread
From: Ulrich Mueller @ 2015-12-15 21:35 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1454 bytes --]

>>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:

> On 15 Dec 2015 15:56, Ulrich Mueller wrote:
>> ESR's case study about the password file format seems to disagree:
>> http://www.catb.org/esr/writings/taoup/html/ch05s01.html#id2901332

> because you cited it, i read it anyways.  that document is about how text
> formats should be preferred over binary formats because they do not require
> custom tools to modify/update, and because it's easier for binary formats
> to screw themselves over from a portability/extensible pov.  it does not
> champion the passwd format all by itself, and even says that it's a bit
> rigid, and you should consider tagged formats if you want something more.
> which we do.

> see also the example i posted to Alec as why the format is hostile to devs
> whereas my simple RST proposal has none of these issues.

Whatever the format will be, the more important question is where this
would be implemented:

- In the package manager, with user and group definition in profiles.
  This seems to be what GLEP 27 suggests, and as far as I can see, it
  would require an EAPI bump. Certainly doable, but last time we
  bumped profiles to a new EAPI we had a rather long transition
  period.

- In user.eclass, which could be extended to use the EUSERS and
  EGROUPS variables defined in ebuilds. The problem is, where would
  one store the user and group definitions then? Profiles cannot be
  accessed from an eclass.

Ulrich

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 21:35                 ` Ulrich Mueller
@ 2015-12-15 21:55                   ` Mike Frysinger
  2015-12-16  1:23                     ` Anthony G. Basile
  0 siblings, 1 reply; 35+ messages in thread
From: Mike Frysinger @ 2015-12-15 21:55 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1647 bytes --]

On 15 Dec 2015 22:35, Ulrich Mueller wrote:
> Whatever the format will be, the more important question is where this
> would be implemented:
> 
> - In the package manager, with user and group definition in profiles.
>   This seems to be what GLEP 27 suggests, and as far as I can see, it
>   would require an EAPI bump. Certainly doable, but last time we
>   bumped profiles to a new EAPI we had a rather long transition
>   period.
> 
> - In user.eclass, which could be extended to use the EUSERS and
>   EGROUPS variables defined in ebuilds. The problem is, where would
>   one store the user and group definitions then? Profiles cannot be
>   accessed from an eclass.

long term, i think profiles are better to hold the db as it provides for
clean stacking and is trivial for site-specific extension/control, as well
as image builders via something like catalyst.

short/mid term, i was thinking of writing a new package that holds the db
and tools to query/manage it.  user.eclass would DEPEND on it and ask it
for details, perhaps even doing the actual fs updates (the bash code here
is not pretty wrt locks and python would be much nicer).  that tool could
even search additional site paths (like /usr/local) to locate overrides.

the API to ebuilds/eclasses would be unchanged.  in CrOS, we only look at
the first argument (the user/group name) and load all other details from
the db.  we could seamlessly migrate over existing ebuilds by opting in to
this simpler form.

maybe the short/mid term solution is enough to not get into profile mess
even if i think it's the correct data storage location.
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-15 21:55                   ` Mike Frysinger
@ 2015-12-16  1:23                     ` Anthony G. Basile
  2015-12-16  4:04                       ` Mike Frysinger
  0 siblings, 1 reply; 35+ messages in thread
From: Anthony G. Basile @ 2015-12-16  1:23 UTC (permalink / raw
  To: gentoo-dev


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 12/15/15 4:55 PM, Mike Frysinger wrote:
> On 15 Dec 2015 22:35, Ulrich Mueller wrote:
>> Whatever the format will be, the more important question is where this
>> would be implemented:
>>
>> - In the package manager, with user and group definition in profiles.
>>   This seems to be what GLEP 27 suggests, and as far as I can see, it
>>   would require an EAPI bump. Certainly doable, but last time we
>>   bumped profiles to a new EAPI we had a rather long transition
>>   period.
>>
>> - In user.eclass, which could be extended to use the EUSERS and
>>   EGROUPS variables defined in ebuilds. The problem is, where would
>>   one store the user and group definitions then? Profiles cannot be
>>   accessed from an eclass.
>
> long term, i think profiles are better to hold the db as it provides for
> clean stacking and is trivial for site-specific extension/control, as well
> as image builders via something like catalyst.
>
> short/mid term, i was thinking of writing a new package that holds the db
> and tools to query/manage it.  user.eclass would DEPEND on it and ask it
> for details, perhaps even doing the actual fs updates (the bash code here
> is not pretty wrt locks and python would be much nicer).  that tool could
> even search additional site paths (like /usr/local) to locate overrides.

how do we get our own uid/gid's in there for our packages?  just open a
bug against the new package?

>
>
> the API to ebuilds/eclasses would be unchanged.  in CrOS, we only look at
> the first argument (the user/group name) and load all other details from
> the db.  we could seamlessly migrate over existing ebuilds by opting in to
> this simpler form.
>
> maybe the short/mid term solution is enough to not get into profile mess
> even if i think it's the correct data storage location.
> -mike


- -- 
Anthony G. Basile, Ph.D.
Gentoo Linux Developer [Hardened]
E-Mail    : blueness@gentoo.org
GnuPG FP  : 1FED FAD9 D82C 52A5 3BAB  DC79 9384 FA6E F52D 4BBA
GnuPG ID  : F52D4BBA
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iEYEARECAAYFAlZwvQcACgkQl5yvQNBFVTVEaACfT1nMMFXsPyqM0u4rGDHJP29/
pFkAn0XOcHTmVAAp9K9opvWT9isuMOxp
=xPUD
-----END PGP SIGNATURE-----



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-16  1:23                     ` Anthony G. Basile
@ 2015-12-16  4:04                       ` Mike Frysinger
  2015-12-17 10:57                         ` Ulrich Mueller
  0 siblings, 1 reply; 35+ messages in thread
From: Mike Frysinger @ 2015-12-16  4:04 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2098 bytes --]

On 15 Dec 2015 20:23, Anthony G. Basile wrote:
> On 12/15/15 4:55 PM, Mike Frysinger wrote:
> > On 15 Dec 2015 22:35, Ulrich Mueller wrote:
> >> Whatever the format will be, the more important question is where this
> >> would be implemented:
> >>
> >> - In the package manager, with user and group definition in profiles.
> >>   This seems to be what GLEP 27 suggests, and as far as I can see, it
> >>   would require an EAPI bump. Certainly doable, but last time we
> >>   bumped profiles to a new EAPI we had a rather long transition
> >>   period.
> >>
> >> - In user.eclass, which could be extended to use the EUSERS and
> >>   EGROUPS variables defined in ebuilds. The problem is, where would
> >>   one store the user and group definitions then? Profiles cannot be
> >>   accessed from an eclass.
> >
> > long term, i think profiles are better to hold the db as it provides for
> > clean stacking and is trivial for site-specific extension/control, as well
> > as image builders via something like catalyst.
> >
> > short/mid term, i was thinking of writing a new package that holds the db
> > and tools to query/manage it.  user.eclass would DEPEND on it and ask it
> > for details, perhaps even doing the actual fs updates (the bash code here
> > is not pretty wrt locks and python would be much nicer).  that tool could
> > even search additional site paths (like /usr/local) to locate overrides.
> 
> how do we get our own uid/gid's in there for our packages?  just open a
> bug against the new package?

i would open the git repo to all devs and just let anyone push directly
and roll releases.  maybe just push a tag and that's what the ebuild would
hit.  no need to be gate keepers here since we don't today w/ebuilds and
calls to enew{user,group}.

the question is how to handle the tools.  i'm thinking we should have two
distinct packages so the db could be completely overridden by overlays.

the tools could be in the same repo or a sep one.  i don't feel strongly
either way as we'd just mark base-system@ as the maintaining herd.
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-16  4:04                       ` Mike Frysinger
@ 2015-12-17 10:57                         ` Ulrich Mueller
  2015-12-17 13:45                           ` Mike Frysinger
  0 siblings, 1 reply; 35+ messages in thread
From: Ulrich Mueller @ 2015-12-17 10:57 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1444 bytes --]

>>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:

> On 15 Dec 2015 20:23, Anthony G. Basile wrote:
>> > short/mid term, i was thinking of writing a new package that
>> > holds the db and tools to query/manage it. user.eclass would
>> > DEPEND on it and ask it for details, perhaps even doing the
>> > actual fs updates (the bash code here is not pretty wrt locks and
>> > python would be much nicer). that tool could even search
>> > additional site paths (like /usr/local) to locate overrides.
>> 
>> how do we get our own uid/gid's in there for our packages? just
>> open a bug against the new package?

> i would open the git repo to all devs and just let anyone push
> directly and roll releases. maybe just push a tag and that's what
> the ebuild would hit. no need to be gate keepers here since we don't
> today w/ebuilds and calls to enew{user,group}.

So if I want to add a new user or group, I would have to commit it to
the repo of that package, then roll a new release, create an ebuild
for that release, add that version to DEPEND of my own package's
ebuild, and only then my ebuild could refer to the new user? And
eventually, I'd have to take care of stabilising things, too? That
looks like a cumbersome procedure, even if it is only intended as a
stopgap solution until we can move things to a profile.

Couldn't we add the user/group db to a subdir of the eclass dir
instead, so that user.eclass could access it there?

Ulrich

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [gentoo-dev] Use GLEP27!
  2015-12-17 10:57                         ` Ulrich Mueller
@ 2015-12-17 13:45                           ` Mike Frysinger
  0 siblings, 0 replies; 35+ messages in thread
From: Mike Frysinger @ 2015-12-17 13:45 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1857 bytes --]

On 17 Dec 2015 11:57, Ulrich Mueller wrote:
> >>>>> On Tue, 15 Dec 2015, Mike Frysinger wrote:
> > On 15 Dec 2015 20:23, Anthony G. Basile wrote:
> >> > short/mid term, i was thinking of writing a new package that
> >> > holds the db and tools to query/manage it. user.eclass would
> >> > DEPEND on it and ask it for details, perhaps even doing the
> >> > actual fs updates (the bash code here is not pretty wrt locks and
> >> > python would be much nicer). that tool could even search
> >> > additional site paths (like /usr/local) to locate overrides.
> >> 
> >> how do we get our own uid/gid's in there for our packages? just
> >> open a bug against the new package?
> 
> > i would open the git repo to all devs and just let anyone push
> > directly and roll releases. maybe just push a tag and that's what
> > the ebuild would hit. no need to be gate keepers here since we don't
> > today w/ebuilds and calls to enew{user,group}.
> 
> So if I want to add a new user or group, I would have to commit it to
> the repo of that package, then roll a new release, create an ebuild
> for that release, add that version to DEPEND of my own package's
> ebuild, and only then my ebuild could refer to the new user? And
> eventually, I'd have to take care of stabilising things, too? That
> looks like a cumbersome procedure, even if it is only intended as a
> stopgap solution until we can move things to a profile.

yes, that's what you'd have to do.  considering packages themselves have
to go through stabilization, that particular aspect isn't a big deal.  or
we just auto-stable it.

> Couldn't we add the user/group db to a subdir of the eclass dir
> instead, so that user.eclass could access it there?

people get whiny when we leverage eclass/ for storage.  but we do it
already, so it makes no difference to me.
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2015-12-17 13:45 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-13 18:03 [gentoo-dev] Determenistic system group and user id Alexey Shvetsov
2015-12-13 20:41 ` [gentoo-dev] Use GLEP27! Robin H. Johnson
2015-12-14  4:49   ` Alexey Shvetsov
2015-12-14  6:06     ` Robin H. Johnson
2015-12-14 14:48       ` Doug Goldstein
2015-12-14  9:22   ` Michał Górny
2015-12-14 14:57     ` Doug Goldstein
2015-12-14 20:22     ` Ulrich Mueller
2015-12-15  4:00       ` Peter Stuge
2015-12-15  5:13       ` Mike Frysinger
2015-12-15  6:28         ` Ulrich Mueller
2015-12-15 14:19           ` Mike Frysinger
2015-12-15 14:33             ` Michał Górny
2015-12-15 15:08               ` Mike Frysinger
2015-12-15 15:24                 ` Anthony G. Basile
2015-12-15 19:17                   ` Mike Frysinger
2015-12-15 14:56             ` Ulrich Mueller
2015-12-15 15:00               ` Michał Górny
2015-12-15 15:10                 ` Mike Frysinger
2015-12-15 15:16               ` Mike Frysinger
2015-12-15 20:52               ` Mike Frysinger
2015-12-15 21:35                 ` Ulrich Mueller
2015-12-15 21:55                   ` Mike Frysinger
2015-12-16  1:23                     ` Anthony G. Basile
2015-12-16  4:04                       ` Mike Frysinger
2015-12-17 10:57                         ` Ulrich Mueller
2015-12-17 13:45                           ` Mike Frysinger
2015-12-15 18:35             ` Alec Warner
2015-12-15 19:22               ` Mike Frysinger
2015-12-13 20:58 ` [gentoo-dev] Determenistic system group and user id Mike Gilbert
2015-12-13 22:23 ` Alec Warner
2015-12-13 23:46   ` Marc Schiffbauer
2015-12-14  5:17   ` Alexey Shvetsov
2015-12-14  6:39   ` Robin H. Johnson
2015-12-14 20:03     ` Alec Warner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox