From b839415c5d4b668914c8bf734c42310909734640 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 4 Apr 2023 11:38:17 +0100 Subject: [PATCH] Fix parsing of /usr/lib/tmpfiles.d/provision.conf resolves: rhbz#2155136 --- ...y-add-new-directives-and-options-745.patch | 2 +- ...ump-parse-auto_reset_crashkernel-754.patch | 2 +- ...manage-Fix-parsing-of-ignoredirs-758.patch | 2 +- ...or-letter-types-allow-as-prefix-for-.patch | 164 ++++++++++++++++++ augeas.spec | 10 +- 5 files changed, 176 insertions(+), 4 deletions(-) create mode 100644 0004-Tmpfiles-allow-for-letter-types-allow-as-prefix-for-.patch diff --git a/0001-Chrony-add-new-directives-and-options-745.patch b/0001-Chrony-add-new-directives-and-options-745.patch index ea6b1ba..91e6345 100644 --- a/0001-Chrony-add-new-directives-and-options-745.patch +++ b/0001-Chrony-add-new-directives-and-options-745.patch @@ -1,7 +1,7 @@ From 08101c754aafab4d0f79367839bbd0d6012c31cf Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Wed, 2 Mar 2022 14:54:39 +0100 -Subject: [PATCH 1/3] Chrony: add new directives and options (#745) +Subject: [PATCH 1/4] Chrony: add new directives and options (#745) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/0002-Kdump-parse-auto_reset_crashkernel-754.patch b/0002-Kdump-parse-auto_reset_crashkernel-754.patch index 0c9b150..edea2f3 100644 --- a/0002-Kdump-parse-auto_reset_crashkernel-754.patch +++ b/0002-Kdump-parse-auto_reset_crashkernel-754.patch @@ -1,7 +1,7 @@ From e0bce2e8c21ccc69729676e8dc6fa1e541aedee2 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 20 Apr 2022 10:13:06 +0200 -Subject: [PATCH 2/3] Kdump: parse "auto_reset_crashkernel" (#754) +Subject: [PATCH 2/4] Kdump: parse "auto_reset_crashkernel" (#754) The "auto_reset_crashkernel" keyword was introduced in the following kexec-tools patch set: diff --git a/0003-semanage-Fix-parsing-of-ignoredirs-758.patch b/0003-semanage-Fix-parsing-of-ignoredirs-758.patch index f1b417f..2e6963c 100644 --- a/0003-semanage-Fix-parsing-of-ignoredirs-758.patch +++ b/0003-semanage-Fix-parsing-of-ignoredirs-758.patch @@ -1,7 +1,7 @@ From aca3def462ab141c3991a2d27c44341b809cf970 Mon Sep 17 00:00:00 2001 From: rwmjones Date: Thu, 6 Oct 2022 12:15:56 +0100 -Subject: [PATCH 3/3] semanage: Fix parsing of ignoredirs (#758) +Subject: [PATCH 3/4] semanage: Fix parsing of ignoredirs (#758) From /etc/selinux/semanage.conf from a RHEL 9.1 system, this line caused problems: diff --git a/0004-Tmpfiles-allow-for-letter-types-allow-as-prefix-for-.patch b/0004-Tmpfiles-allow-for-letter-types-allow-as-prefix-for-.patch new file mode 100644 index 0000000..787ad89 --- /dev/null +++ b/0004-Tmpfiles-allow-for-letter-types-allow-as-prefix-for-.patch @@ -0,0 +1,164 @@ +From 34749f9ea1af8e3fad9e60891beda0fe786cb0f2 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Fri, 24 Mar 2023 11:26:46 +0100 +Subject: [PATCH 4/4] Tmpfiles: allow '=', '~', '^' for letter types, allow ":" + as prefix for the mode + +* Tmpfiles: allow '=', '~', '^' for letter types + +Allow an equal sign, a tilde character and/or a caret for the type +specification: +- equal: strict file type enforcing +- tilde: base64-encoded content in the argument +- caret: credential name in the argument + +Fixes: #795 + +* Tmpfiles: allow ":" as prefix for the mode + +Represents a mode to be set only for new inodes. + +(cherry picked from commit 41b2a33ff02687fa53d69a012a1d47141b196a86) +--- + lenses/tests/test_tmpfiles.aug | 78 ++++++++++++++++++++++++++++++++++ + lenses/tmpfiles.aug | 9 ++-- + 2 files changed, 83 insertions(+), 4 deletions(-) + +diff --git a/lenses/tests/test_tmpfiles.aug b/lenses/tests/test_tmpfiles.aug +index 6ced069f..4bbd06a2 100644 +--- a/lenses/tests/test_tmpfiles.aug ++++ b/lenses/tests/test_tmpfiles.aug +@@ -97,6 +97,60 @@ Tree for *) + { "argument" = "-" } + } + ++ (* Variable: equal ++Example with an equal sign in the type *) ++ let equal = "d= /tmp/foo 0755 root root - -\n" ++ ++ (* Variable: equal_tree ++Tree for *) ++ let equal_tree = ++ { ++ "1" ++ { "type" = "d=" } ++ { "path" = "/tmp/foo" } ++ { "mode" = "0755" } ++ { "uid" = "root" } ++ { "gid" = "root" } ++ { "age" = "-" } ++ { "argument" = "-" } ++ } ++ ++ (* Variable: tilde ++Example with a tilde character in the type *) ++ let tilde = "w~ /tmp/foo 0755 root root - dGVzdAo=\n" ++ ++ (* Variable: tilde_tree ++Tree for *) ++ let tilde_tree = ++ { ++ "1" ++ { "type" = "w~" } ++ { "path" = "/tmp/foo" } ++ { "mode" = "0755" } ++ { "uid" = "root" } ++ { "gid" = "root" } ++ { "age" = "-" } ++ { "argument" = "dGVzdAo=" } ++ } ++ ++ (* Variable: caret ++Example with a caret in the type *) ++ let caret = "f^ /etc/motd.d/50-provision.conf - - - - login.motd\n" ++ ++ (* Variable: caret_tree ++Tree for *) ++ let caret_tree = ++ { ++ "1" ++ { "type" = "f^" } ++ { "path" = "/etc/motd.d/50-provision.conf" } ++ { "mode" = "-" } ++ { "uid" = "-" } ++ { "gid" = "-" } ++ { "age" = "-" } ++ { "argument" = "login.motd" } ++ } ++ + (* Variable: short + Example with only type and path *) + let short = "A+ /tmp/foo\n" +@@ -337,6 +391,22 @@ Tree for *) + { "mode" = "755" } + } + ++ (* Variable: mode_colon ++Mode field with colon prefix *) ++ let mode_colon = "d- /root :0700 root :root\n" ++ ++ (* Variable: mode_colon_tree ++Tree for *) ++ let mode_colon_tree = ++ { ++ "1" ++ { "type" = "d-" } ++ { "path" = "/root" } ++ { "mode" = ":0700" } ++ { "uid" = "root" } ++ { "gid" = ":root" } ++ } ++ + (************************************************************************ + * Group: INVALID EXAMPLES + *************************************************************************) +@@ -377,6 +447,12 @@ Invalid example that contain invalid mode (letter) *) + + test Tmpfiles.lns get minus = minus_tree + ++ test Tmpfiles.lns get equal = equal_tree ++ ++ test Tmpfiles.lns get tilde = tilde_tree ++ ++ test Tmpfiles.lns get caret = caret_tree ++ + test Tmpfiles.lns get short = short_tree + + test Tmpfiles.lns get short_mode = short_mode_tree +@@ -405,6 +481,8 @@ Invalid example that contain invalid mode (letter) *) + + test Tmpfiles.lns get mode3 = mode3_tree + ++ test Tmpfiles.lns get mode_colon = mode_colon_tree ++ + + (* failure cases *) + +diff --git a/lenses/tmpfiles.aug b/lenses/tmpfiles.aug +index 01b3003a..1163c84a 100644 +--- a/lenses/tmpfiles.aug ++++ b/lenses/tmpfiles.aug +@@ -50,15 +50,16 @@ Empty lines *) + + (* View: type + One letter. Some of them can have a "+" and all can have an +-exclamation mark ("!") and/or minus sign ("-"). ++exclamation mark ("!"), a minus sign ("-"), an equal sign ("="), ++a tilde character ("~") and/or a caret ("^"). + + Not all letters are valid. + *) +- let type = /([fFwdDevqQpLcbCxXrRzZtThHaAm]|[fFwpLcbaA]\+)!?-?/ ++ let type = /([fFwdDevqQpLcbCxXrRzZtThHaAm]|[fFwpLcbaA]\+)[-!=~^]*/ + + (* View: mode +-"-", or 3-4 bytes. Optionally starts with a "~". *) +- let mode = /(-|~?[0-7]{3,4})/ ++"-", or 3-4 bytes. Optionally starts with a "~" or a ":". *) ++ let mode = /(-|(~|:)?[0-7]{3,4})/ + + (* View: age + "-", or one of the formats seen in the manpage: 10d, 5seconds, 1y5days. +-- +2.31.1 + diff --git a/augeas.spec b/augeas.spec index b19e755..a63af7b 100644 --- a/augeas.spec +++ b/augeas.spec @@ -1,6 +1,6 @@ Name: augeas Version: 1.13.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A library for changing configuration files License: LGPLv2+ @@ -26,6 +26,10 @@ Patch2: 0002-Kdump-parse-auto_reset_crashkernel-754.patch # Upstream commit a3ba6e2d32b95507e2474a219e788ac3d54bc4a1 Patch3: 0003-semanage-Fix-parsing-of-ignoredirs-758.patch +# Fix parsing of /usr/lib/tmpfiles.d/provision.conf +# Upstream commit 41b2a33ff02687fa53d69a012a1d47141b196a86 +Patch4: 0004-Tmpfiles-allow-for-letter-types-allow-as-prefix-for-.patch + Provides: bundled(gnulib) BuildRequires: make @@ -142,6 +146,10 @@ rm -f $RPM_BUILD_ROOT/usr/bin/dump %{_libdir}/libfa.a %changelog +* Tue Apr 04 2023 Richard W.M. Jones - 1.13.0-4 +- Fix parsing of /usr/lib/tmpfiles.d/provision.conf + resolves: rhbz#2155136 + * Thu Oct 06 2022 Richard W.M. Jones - 1.13.0-3 - Fix parsing of /etc/selinux/semanage.conf in RHEL 9 resolves: rhbz#2077120