Fix sysusers.d generator barfing on legit content (#2246236)
This commit is contained in:
parent
b367237b47
commit
b0f8f4c9e8
184
rpm-4.19.0-sysusers-fixes.patch
Normal file
184
rpm-4.19.0-sysusers-fixes.patch
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
From fff4b0b2249223fccddcce9eea8658ddd12f30a0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Panu Matilainen <pmatilai@redhat.com>
|
||||||
|
Date: Fri, 3 Nov 2023 11:34:54 +0200
|
||||||
|
Subject: [PATCH 1/4] Use macro error reporting for %add_sysuser errors
|
||||||
|
|
||||||
|
Lua has error() but no warning() (obviously) which we'll want in the next
|
||||||
|
step, so for consistency lets just use macro.error() instead.
|
||||||
|
---
|
||||||
|
macros.in | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/macros.in b/macros.in
|
||||||
|
index a047d1e388..1f6d8b252f 100644
|
||||||
|
--- a/macros.in
|
||||||
|
+++ b/macros.in
|
||||||
|
@@ -1325,14 +1325,14 @@ end
|
||||||
|
prefix = 'Provides: '
|
||||||
|
end
|
||||||
|
if #arg < 2 then
|
||||||
|
- error('not enough arguments')
|
||||||
|
+ macros.error({'not enough arguments'})
|
||||||
|
end
|
||||||
|
if arg[1] == 'g' then
|
||||||
|
type = 'group'
|
||||||
|
elseif arg[1] == 'u' then
|
||||||
|
type = 'user'
|
||||||
|
else
|
||||||
|
- error('invalid sysuser type: '..arg[1])
|
||||||
|
+ macros.error({'invalid sysuser type: '..arg[1]})
|
||||||
|
end
|
||||||
|
name = arg[2]
|
||||||
|
line = table.concat(arg, ' ')
|
||||||
|
|
||||||
|
From 8e392aef642fba1f63b6d86b11fad85d63d94ba1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Panu Matilainen <pmatilai@redhat.com>
|
||||||
|
Date: Fri, 3 Nov 2023 11:51:11 +0200
|
||||||
|
Subject: [PATCH 2/4] Fix an apparent thinko/typo in the sysusers test spec
|
||||||
|
|
||||||
|
I'm quite sure I didn't really intend to test duplicate files behavior
|
||||||
|
here...
|
||||||
|
---
|
||||||
|
tests/data/SPECS/klang.spec | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tests/data/SPECS/klang.spec b/tests/data/SPECS/klang.spec
|
||||||
|
index 7e917fdc7f..e6cce1add8 100644
|
||||||
|
--- a/tests/data/SPECS/klang.spec
|
||||||
|
+++ b/tests/data/SPECS/klang.spec
|
||||||
|
@@ -28,6 +28,7 @@ Summary: %{SUMMARY} server
|
||||||
|
|
||||||
|
%install
|
||||||
|
mkdir -p ${RPM_BUILD_ROOT}/var/lib/klangd
|
||||||
|
+mkdir -p ${RPM_BUILD_ROOT}/var/lib/plongd
|
||||||
|
mkdir -p ${RPM_BUILD_ROOT}/usr/bin/
|
||||||
|
mkdir -p ${RPM_BUILD_ROOT}/etc
|
||||||
|
mkdir -p ${RPM_BUILD_ROOT}/%{_sysusersdir}
|
||||||
|
@@ -59,5 +60,5 @@ EOF
|
||||||
|
%{_sysusersdir}/klangd.conf
|
||||||
|
%{_sysusersdir}/plong.conf
|
||||||
|
%attr(-,klangd,klangd) /var/lib/klangd
|
||||||
|
-%attr(-,plong,klong) /var/lib/klangd
|
||||||
|
+%attr(-,plong,klong) /var/lib/plongd
|
||||||
|
/usr/bin/klangd
|
||||||
|
|
||||||
|
From 59a212dbe3cb19331582c9c022105ae47b9ace21 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Panu Matilainen <pmatilai@redhat.com>
|
||||||
|
Date: Fri, 3 Nov 2023 11:53:11 +0200
|
||||||
|
Subject: [PATCH 3/4] Handle unsupported 'r' and 'm' sysusers types more
|
||||||
|
gracefully
|
||||||
|
|
||||||
|
People will want to use existing sysusers.d files through rpm and while
|
||||||
|
we don't support 'r' and 'm' at this time, we shouldn't really call
|
||||||
|
them "invalid" and error out. Issue a warning instead, and ignore.
|
||||||
|
|
||||||
|
This is the first half of
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2246236
|
||||||
|
---
|
||||||
|
macros.in | 3 +++
|
||||||
|
tests/data/SPECS/klang.spec | 2 ++
|
||||||
|
tests/rpmi.at | 7 +++++++
|
||||||
|
3 files changed, 12 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/macros.in b/macros.in
|
||||||
|
index 1f6d8b252f..fefb351ac3 100644
|
||||||
|
--- a/macros.in
|
||||||
|
+++ b/macros.in
|
||||||
|
@@ -1331,6 +1331,9 @@ end
|
||||||
|
type = 'group'
|
||||||
|
elseif arg[1] == 'u' then
|
||||||
|
type = 'user'
|
||||||
|
+ elseif arg[1] == 'r' or arg[1] == 'm' then
|
||||||
|
+ macros.warn({'ignoring unsupported sysuser type: '..arg[1]})
|
||||||
|
+ return
|
||||||
|
else
|
||||||
|
macros.error({'invalid sysuser type: '..arg[1]})
|
||||||
|
end
|
||||||
|
diff --git a/tests/data/SPECS/klang.spec b/tests/data/SPECS/klang.spec
|
||||||
|
index e6cce1add8..e7c03cd7f8 100644
|
||||||
|
--- a/tests/data/SPECS/klang.spec
|
||||||
|
+++ b/tests/data/SPECS/klang.spec
|
||||||
|
@@ -47,6 +47,8 @@ EOF
|
||||||
|
cat << EOF > ${RPM_BUILD_ROOT}/%{_sysusersdir}/plong.conf
|
||||||
|
u plong - "Plong fu" /var/lib/plong /sbin/nologin
|
||||||
|
g klong -
|
||||||
|
+m ding dong
|
||||||
|
+r - 123-321
|
||||||
|
EOF
|
||||||
|
|
||||||
|
%files common
|
||||||
|
diff --git a/tests/rpmi.at b/tests/rpmi.at
|
||||||
|
index 6339a70a7c..94d8967b12 100644
|
||||||
|
--- a/tests/rpmi.at
|
||||||
|
+++ b/tests/rpmi.at
|
||||||
|
@@ -1481,7 +1481,14 @@ AT_SETUP([rpm -i sysusers])
|
||||||
|
AT_KEYWORDS([install build sysusers])
|
||||||
|
RPMDB_INIT
|
||||||
|
|
||||||
|
+RPMTEST_CHECK([
|
||||||
|
runroot rpmbuild -bb --quiet /data/SPECS/klang.spec
|
||||||
|
+],
|
||||||
|
+[0],
|
||||||
|
+[],
|
||||||
|
+[warning: ignoring unsupported sysuser type: m
|
||||||
|
+warning: ignoring unsupported sysuser type: r
|
||||||
|
+])
|
||||||
|
|
||||||
|
RPMTEST_CHECK([
|
||||||
|
runroot rpm -U /build/RPMS/noarch/klang-client-1.0-1.noarch.rpm
|
||||||
|
|
||||||
|
From c47f71a72e7f885615c677e88ce92810ed1f00c8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Panu Matilainen <pmatilai@redhat.com>
|
||||||
|
Date: Fri, 3 Nov 2023 12:15:58 +0200
|
||||||
|
Subject: [PATCH 4/4] Fix comment line handling in sysusers.d(8) files
|
||||||
|
|
||||||
|
sysusers.d(8) format permits empty lines and commits, and so must we.
|
||||||
|
Add some extra fluff to the test-case for this.
|
||||||
|
|
||||||
|
This is the second half of
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2246236
|
||||||
|
|
||||||
|
Fixes: #2741
|
||||||
|
---
|
||||||
|
fileattrs/sysusers.attr | 4 ++++
|
||||||
|
tests/data/SPECS/klang.spec | 5 +++++
|
||||||
|
2 files changed, 9 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/fileattrs/sysusers.attr b/fileattrs/sysusers.attr
|
||||||
|
index f7a3e838d1..48d4caede9 100644
|
||||||
|
--- a/fileattrs/sysusers.attr
|
||||||
|
+++ b/fileattrs/sysusers.attr
|
||||||
|
@@ -6,6 +6,9 @@
|
||||||
|
# For groups created as a side-effect, only provide the group.
|
||||||
|
%__sysusers_provides() %{lua:
|
||||||
|
for line in io.lines(macros["1"]) do
|
||||||
|
+ if line:sub(1, 1) == '#' then
|
||||||
|
+ goto continue
|
||||||
|
+ end
|
||||||
|
fields = {}
|
||||||
|
for w in line:gmatch("%S+") do
|
||||||
|
table.insert(fields, w)
|
||||||
|
@@ -14,5 +17,6 @@
|
||||||
|
table.insert(fields, 1, '-b')
|
||||||
|
print(macros.add_sysuser(fields))
|
||||||
|
end
|
||||||
|
+ ::continue::
|
||||||
|
end
|
||||||
|
}
|
||||||
|
diff --git a/tests/data/SPECS/klang.spec b/tests/data/SPECS/klang.spec
|
||||||
|
index e7c03cd7f8..64bd90c104 100644
|
||||||
|
--- a/tests/data/SPECS/klang.spec
|
||||||
|
+++ b/tests/data/SPECS/klang.spec
|
||||||
|
@@ -45,7 +45,12 @@ cat << EOF > ${RPM_BUILD_ROOT}/%{_sysusersdir}/klangd.conf
|
||||||
|
u klangd - "Klang server" /var/lib/klangd /sbin/nologin
|
||||||
|
EOF
|
||||||
|
cat << EOF > ${RPM_BUILD_ROOT}/%{_sysusersdir}/plong.conf
|
||||||
|
+
|
||||||
|
+# Real life files have all sorts of anomalies
|
||||||
|
u plong - "Plong fu" /var/lib/plong /sbin/nologin
|
||||||
|
+#...such as empty lines
|
||||||
|
+
|
||||||
|
+# and comments comments
|
||||||
|
g klong -
|
||||||
|
m ding dong
|
||||||
|
r - 123-321
|
2
rpm.spec
2
rpm.spec
@ -140,6 +140,7 @@ rpm-4.18.90-weak-user-group.patch
|
|||||||
|
|
||||||
# Patches already upstream:
|
# Patches already upstream:
|
||||||
# ...
|
# ...
|
||||||
|
rpm-4.19.0-sysusers-fixes.patch
|
||||||
|
|
||||||
# These are not yet upstream
|
# These are not yet upstream
|
||||||
rpm-4.7.1-geode-i686.patch
|
rpm-4.7.1-geode-i686.patch
|
||||||
@ -619,6 +620,7 @@ fi
|
|||||||
* Mon Nov 13 2023 Panu Matilainen <pmatilai@redhat.com> - 4.19.0-2
|
* Mon Nov 13 2023 Panu Matilainen <pmatilai@redhat.com> - 4.19.0-2
|
||||||
- Ensure central package ops log via rpm-plugin-audit recommends (#1476926)
|
- Ensure central package ops log via rpm-plugin-audit recommends (#1476926)
|
||||||
- Own our Python module directory (#2248555)
|
- Own our Python module directory (#2248555)
|
||||||
|
- Fix sysusers.d generator barfing on legit content (#2246236)
|
||||||
|
|
||||||
* Tue Sep 19 2023 Michal Domonkos <mdomonko@redhat.com> - 4.19.0-1
|
* Tue Sep 19 2023 Michal Domonkos <mdomonko@redhat.com> - 4.19.0-1
|
||||||
- Update to 4.19.0
|
- Update to 4.19.0
|
||||||
|
Loading…
Reference in New Issue
Block a user