From b2aca61360c33ad3161f8ef35a1c28ebb2507600 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Tue, 26 Oct 2021 13:02:37 +0100 Subject: base-files, metadata: support additional group membership Some packages may require additional group membership for the system user added by that package. Allow defining additional groups as third member of the ':'-separated tuple, allowing to specify multiple ','-separated groups with optional GID. Example: USERID:=foouser=1000:foogroup=1000:addg1=1001,addg2=1002,addg3 Signed-off-by: Daniel Golle --- scripts/metadata.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'scripts/metadata.pm') diff --git a/scripts/metadata.pm b/scripts/metadata.pm index f252c5309c..ee5a2945ca 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -295,13 +295,19 @@ sub parse_package_metadata($) { my @ugspecs = split /\s+/, $1; for my $ugspec (@ugspecs) { - my @ugspec = split /:/, $ugspec, 2; + my @ugspec = split /:/, $ugspec, 3; if ($ugspec[0]) { parse_package_metadata_usergroup($src->{makefile}, "user", \%usernames, \%userids, $ugspec[0]) or return 0; } if ($ugspec[1]) { parse_package_metadata_usergroup($src->{makefile}, "group", \%groupnames, \%groupids, $ugspec[1]) or return 0; } + if ($ugspec[2]) { + my @addngroups = split /,/, $ugspec[2]; + for my $addngroup (@addngroups) { + parse_package_metadata_usergroup($src->{makefile}, "group", \%groupnames, \%groupids, $addngroup) or return 0; + } + } } }; } -- cgit v1.2.3