Compare commits
No commits in common. "c8" and "imports/c9/augeas-1.13.0-1.el9" have entirely different histories.
c8
...
imports/c9
@ -1 +1 @@
|
|||||||
afe7aee292e058141d8c19f6a82b5f8bae2d5163 SOURCES/augeas-1.12.0.tar.gz
|
22c15195bf6c7e71b4cfa2cc387b30a65ce75e65 SOURCES/augeas-1.13.0.tar.gz
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/augeas-1.12.0.tar.gz
|
SOURCES/augeas-1.13.0.tar.gz
|
||||||
|
@ -1,59 +0,0 @@
|
|||||||
From e666bf968071a9976bd44e1eb65645eb9d51b5cb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pino Toscano <ptoscano@redhat.com>
|
|
||||||
Date: Wed, 23 Oct 2019 11:35:57 +0200
|
|
||||||
Subject: [PATCH 1/9] Grub: support '+' in kernel command line option names
|
|
||||||
(#647)
|
|
||||||
|
|
||||||
This way it is possible to parse files that pass options with '+' in the
|
|
||||||
name to the kernel.
|
|
||||||
|
|
||||||
(cherry picked from commit 2ba77589baee1bf2d43d3a49f8e6f3eb522e5bba)
|
|
||||||
---
|
|
||||||
lenses/grub.aug | 2 +-
|
|
||||||
lenses/tests/test_grub.aug | 17 +++++++++++++++++
|
|
||||||
2 files changed, 18 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lenses/grub.aug b/lenses/grub.aug
|
|
||||||
index 24ad39bc..82c1c37a 100644
|
|
||||||
--- a/lenses/grub.aug
|
|
||||||
+++ b/lenses/grub.aug
|
|
||||||
@@ -196,7 +196,7 @@ module Grub =
|
|
||||||
(* View: kernel_args
|
|
||||||
Parse the file name and args on a kernel or module line. *)
|
|
||||||
let kernel_args =
|
|
||||||
- let arg = /[A-Za-z0-9_.$-]+/ - /type|no-mem-option/ in
|
|
||||||
+ let arg = /[A-Za-z0-9_.$\+-]+/ - /type|no-mem-option/ in
|
|
||||||
store /(\([a-z0-9,]+\))?\/[^ \t\n]*/ .
|
|
||||||
(spc . multiboot_arg)? .
|
|
||||||
(spc . [ key arg . (eq. store /([^ \t\n])*/)?])* . eol
|
|
||||||
diff --git a/lenses/tests/test_grub.aug b/lenses/tests/test_grub.aug
|
|
||||||
index 75657203..e50bdc4f 100644
|
|
||||||
--- a/lenses/tests/test_grub.aug
|
|
||||||
+++ b/lenses/tests/test_grub.aug
|
|
||||||
@@ -258,6 +258,23 @@ password --encrypted ^9^32kwzzX./3WISQ0C /boot/grub/custom.lst
|
|
||||||
{ "md5" }
|
|
||||||
} }
|
|
||||||
|
|
||||||
+ (* Test kernel options with different special characters. *)
|
|
||||||
+ test Grub.lns get "title Fedora (2.6.24.4-64.fc8)
|
|
||||||
+ root (hd0,0)
|
|
||||||
+ kernel /vmlinuz-2.6.24.4-64.fc8 ro root=/dev/vg00/lv00 with.dot=1 with-dash=1 with_underscore=1 with+plus=1
|
|
||||||
+ initrd /initrd-2.6.24.4-64.fc8.img\n" =
|
|
||||||
+ { "title" = "Fedora (2.6.24.4-64.fc8)"
|
|
||||||
+ { "root" = "(hd0,0)" }
|
|
||||||
+ { "kernel" = "/vmlinuz-2.6.24.4-64.fc8"
|
|
||||||
+ { "ro" }
|
|
||||||
+ { "root" = "/dev/vg00/lv00" }
|
|
||||||
+ { "with.dot" = "1" }
|
|
||||||
+ { "with-dash" = "1" }
|
|
||||||
+ { "with_underscore" = "1" }
|
|
||||||
+ { "with+plus" = "1" }
|
|
||||||
+ }
|
|
||||||
+ { "initrd" = "/initrd-2.6.24.4-64.fc8.img" } }
|
|
||||||
+
|
|
||||||
(* Test parsing of invalid entries via menu_error *)
|
|
||||||
test Grub.lns get "default=0\ncrud=no\n" =
|
|
||||||
{ "default" = "0" }
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
|||||||
From eb2dc4ec0879290f42e35a7facc345ca1c70ba69 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Rapha=C3=ABl=20Pinson?= <raphael.pinson@camptocamp.com>
|
|
||||||
Date: Tue, 12 Nov 2019 13:33:26 +0100
|
|
||||||
Subject: [PATCH 2/9] Rsyslog: support multiple actions in filters and
|
|
||||||
selectors (#653)
|
|
||||||
|
|
||||||
(cherry picked from commit 5181105bae84dc7819a00886f068ad0bb4e6d05a)
|
|
||||||
---
|
|
||||||
lenses/rsyslog.aug | 11 ++++++++---
|
|
||||||
lenses/tests/test_rsyslog.aug | 37 +++++++++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 45 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lenses/rsyslog.aug b/lenses/rsyslog.aug
|
|
||||||
index 7b9f7dc9..29ff9b10 100644
|
|
||||||
--- a/lenses/rsyslog.aug
|
|
||||||
+++ b/lenses/rsyslog.aug
|
|
||||||
@@ -65,11 +65,17 @@ let hostname = [ label "hostname" .
|
|
||||||
( Syslog.plus | [ Build.xchgs "-" "reverse" ] ) .
|
|
||||||
Syslog.hostnames . Util.eol . Syslog.entries ]
|
|
||||||
|
|
||||||
+(* View: actions *)
|
|
||||||
+let actions =
|
|
||||||
+ let prop_act = [ label "action" . action ]
|
|
||||||
+ in let act_sep = del /[ \t]*\n&[ \t]*/ "\n& "
|
|
||||||
+ in Build.opt_list prop_act act_sep
|
|
||||||
+
|
|
||||||
(* View: entry
|
|
||||||
An entry contains selectors and an action
|
|
||||||
*)
|
|
||||||
let entry = [ label "entry" . Syslog.selectors . Syslog.sep_tab .
|
|
||||||
- [ label "action" . action ] . Util.eol ]
|
|
||||||
+ actions . Util.eol ]
|
|
||||||
|
|
||||||
(* View: prop_filter
|
|
||||||
Parses property-based filters, which start with ":" and the property name *)
|
|
||||||
@@ -78,9 +84,8 @@ let prop_filter =
|
|
||||||
in let prop_name = [ Util.del_str ":" . label "property" . store Rx.word ]
|
|
||||||
in let prop_oper = [ label "operation" . store /[A-Za-z!-]+/ ]
|
|
||||||
in let prop_val = [ label "value" . Quote.do_dquote (store /[^\n"]*/) ]
|
|
||||||
- in let prop_act = [ label "action" . action ]
|
|
||||||
in [ label "filter" . prop_name . sep . prop_oper . sep . prop_val .
|
|
||||||
- Sep.space . prop_act . Util.eol ]
|
|
||||||
+ Sep.space . actions . Util.eol ]
|
|
||||||
|
|
||||||
let entries = ( Syslog.empty | Util.comment | entry | macro | config_object | prop_filter )*
|
|
||||||
|
|
||||||
diff --git a/lenses/tests/test_rsyslog.aug b/lenses/tests/test_rsyslog.aug
|
|
||||||
index 9011a2b3..e83613a2 100644
|
|
||||||
--- a/lenses/tests/test_rsyslog.aug
|
|
||||||
+++ b/lenses/tests/test_rsyslog.aug
|
|
||||||
@@ -222,3 +222,40 @@ test Rsyslog.lns get "*.* ?DynamicFile\n" =
|
|
||||||
{ "dynamic" = "DynamicFile" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+(* Multiple actions in filters and selectors *)
|
|
||||||
+test Rsyslog.lns get ":msg, startswith, \"iptables:\" -/var/log/iptables.log
|
|
||||||
+& ~
|
|
||||||
+# Save boot messages also to boot.log
|
|
||||||
+local7.* /var/log/boot.log
|
|
||||||
+local3.err /var/log/nfsen/nfsenlog
|
|
||||||
+& /var/log/also.log
|
|
||||||
+\n" =
|
|
||||||
+ { "filter"
|
|
||||||
+ { "property" = "msg" }
|
|
||||||
+ { "operation" = "startswith" }
|
|
||||||
+ { "value" = "iptables:" }
|
|
||||||
+ { "action"
|
|
||||||
+ { "no_sync" }
|
|
||||||
+ { "file" = "/var/log/iptables.log" } }
|
|
||||||
+ { "action"
|
|
||||||
+ { "discard" } }
|
|
||||||
+ }
|
|
||||||
+ { "#comment" = "Save boot messages also to boot.log" }
|
|
||||||
+ { "entry"
|
|
||||||
+ { "selector"
|
|
||||||
+ { "facility" = "local7" }
|
|
||||||
+ { "level" = "*" } }
|
|
||||||
+ { "action"
|
|
||||||
+ { "file" = "/var/log/boot.log" } }
|
|
||||||
+ }
|
|
||||||
+ { "entry"
|
|
||||||
+ { "selector"
|
|
||||||
+ { "facility" = "local3" }
|
|
||||||
+ { "level" = "err" } }
|
|
||||||
+ { "action"
|
|
||||||
+ { "file" = "/var/log/nfsen/nfsenlog" } }
|
|
||||||
+ { "action"
|
|
||||||
+ { "file" = "/var/log/also.log" } } }
|
|
||||||
+ { }
|
|
||||||
+
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
From 5218c2997b7b77752511ebc61ffa743fd2d8fcbf Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pino Toscano <ptoscano@redhat.com>
|
|
||||||
Date: Fri, 17 May 2019 13:47:20 +0200
|
|
||||||
Subject: [PATCH 3/9] * src/augrun.c (nexttoken): add more escape characters
|
|
||||||
|
|
||||||
Synchonize the list of "pass-through" characters with the set in the
|
|
||||||
'name_follow' variable in pathx.c: as pathx_escape_name() escapes them,
|
|
||||||
make sure that aug_srun() accepts them as arguments.
|
|
||||||
---
|
|
||||||
src/augrun.c | 10 +++++++++-
|
|
||||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/augrun.c b/src/augrun.c
|
|
||||||
index 07f865a9..fd710c5f 100644
|
|
||||||
--- a/src/augrun.c
|
|
||||||
+++ b/src/augrun.c
|
|
||||||
@@ -133,8 +133,16 @@ static char *nexttoken(struct command *cmd, char **line, bool path) {
|
|
||||||
copy = true;
|
|
||||||
if (*s == '\\') {
|
|
||||||
switch (*(s+1)) {
|
|
||||||
+ case ']':
|
|
||||||
case '[':
|
|
||||||
- case ']': /* pass both literally */
|
|
||||||
+ case '|':
|
|
||||||
+ case '/':
|
|
||||||
+ case '=':
|
|
||||||
+ case '(':
|
|
||||||
+ case ')':
|
|
||||||
+ case '!':
|
|
||||||
+ case ',': /* pass them literally;
|
|
||||||
+ * see 'name_follow' in pathx.c */
|
|
||||||
nescaped = 2;
|
|
||||||
break;
|
|
||||||
case 't': /* insert tab */
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
|||||||
From fc2b84a2ecd9a403cb602d2de26d6c1804a3ceac Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pino Toscano <ptoscano@redhat.com>
|
|
||||||
Date: Fri, 17 May 2019 15:18:50 +0200
|
|
||||||
Subject: [PATCH 4/9] * src/augtool.c: hopefully fix readline quoting issues
|
|
||||||
|
|
||||||
Configure the quoting (also using a detector) and word break characters,
|
|
||||||
so it is possible to autocomplete paths with special characters (like
|
|
||||||
spaces, which are already quoted by augeas).
|
|
||||||
---
|
|
||||||
src/augtool.c | 12 ++++++++++++
|
|
||||||
1 file changed, 12 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/augtool.c b/src/augtool.c
|
|
||||||
index b42ef630..31a991eb 100644
|
|
||||||
--- a/src/augtool.c
|
|
||||||
+++ b/src/augtool.c
|
|
||||||
@@ -267,10 +267,22 @@ static char *get_home_dir(uid_t uid) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* Inspired from:
|
|
||||||
+ * https://thoughtbot.com/blog/tab-completion-in-gnu-readline
|
|
||||||
+ */
|
|
||||||
+static int quote_detector(char *str, int index) {
|
|
||||||
+ return index > 0
|
|
||||||
+ && str[index - 1] == '\\'
|
|
||||||
+ && quote_detector(str, index - 1) == 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static void readline_init(void) {
|
|
||||||
rl_readline_name = "augtool";
|
|
||||||
rl_attempted_completion_function = readline_completion;
|
|
||||||
rl_completion_entry_function = readline_path_generator;
|
|
||||||
+ rl_completer_quote_characters = "\"'";
|
|
||||||
+ rl_completer_word_break_characters = (char *) " ";
|
|
||||||
+ rl_char_is_quoted_p = "e_detector;
|
|
||||||
|
|
||||||
/* Set up persistent history */
|
|
||||||
char *home_dir = get_home_dir(getuid());
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,133 +0,0 @@
|
|||||||
From 1b4d6a9918b8bcbc06af4ce99a48cd66fed97196 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pino Toscano <ptoscano@redhat.com>
|
|
||||||
Date: Tue, 4 Feb 2020 17:54:22 +0100
|
|
||||||
Subject: [PATCH 5/9] Krb5: improve [dbmodules] and includes (#630)
|
|
||||||
|
|
||||||
* Krb5: fix/revamp parsing of [dbmodules] subsection
|
|
||||||
|
|
||||||
The [dbmodules] subsection so far was parsed much like the [dbdefaults]
|
|
||||||
one, and thus it did not handle realms.
|
|
||||||
|
|
||||||
Revamp it a bit to handle realms, and specify the only keyword not in
|
|
||||||
realm subsections.
|
|
||||||
|
|
||||||
* Krb5: allow include/includedir directives everywhere
|
|
||||||
|
|
||||||
MIT Kerberos allows this, so do not restrict them only before any other
|
|
||||||
section.
|
|
||||||
---
|
|
||||||
lenses/krb5.aug | 27 +++++++++++++++++++--------
|
|
||||||
lenses/tests/test_krb5.aug | 36 +++++++++++++++++++++++++++++++++++-
|
|
||||||
2 files changed, 54 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lenses/krb5.aug b/lenses/krb5.aug
|
|
||||||
index 46c22656..6b509c42 100644
|
|
||||||
--- a/lenses/krb5.aug
|
|
||||||
+++ b/lenses/krb5.aug
|
|
||||||
@@ -21,10 +21,11 @@ let closebr = del /[ \t]*\}/ "}"
|
|
||||||
and realms in the [appdefaults] section.
|
|
||||||
*)
|
|
||||||
|
|
||||||
+let include_re = /include(dir)?/
|
|
||||||
let realm_re = /[A-Z0-9][.a-zA-Z0-9-]*/
|
|
||||||
let realm_anycase_re = /[A-Za-z0-9][.a-zA-Z0-9-]*/
|
|
||||||
let app_re = /[a-z][a-zA-Z0-9_]*/
|
|
||||||
-let name_re = /[.a-zA-Z0-9_-]+/
|
|
||||||
+let name_re = /[.a-zA-Z0-9_-]+/ - include_re
|
|
||||||
|
|
||||||
let value_br = store /[^;# \t\r\n{}]+/
|
|
||||||
let value = store /[^;# \t\r\n]+/
|
|
||||||
@@ -130,10 +131,19 @@ let dbdefaults =
|
|
||||||
simple_section "dbdefaults" keys
|
|
||||||
|
|
||||||
let dbmodules =
|
|
||||||
- let keys = /db_library|ldap_kerberos_container_dn|ldap_kdc_dn/
|
|
||||||
- |/ldap_kadmind_dn|ldap_service_password_file|ldap_servers/
|
|
||||||
- |/ldap_conns_per_server/ in
|
|
||||||
- simple_section "dbmodules" keys
|
|
||||||
+ let subsec_key = /database_name|db_library|disable_last_success/
|
|
||||||
+ |/disable_lockout|ldap_conns_per_server|ldap_(kdc|kadmind)_dn/
|
|
||||||
+ |/ldap_(kdc|kadmind)_sasl_mech|ldap_(kdc|kadmind)_sasl_authcid/
|
|
||||||
+ |/ldap_(kdc|kadmind)_sasl_authzid|ldap_(kdc|kadmind)_sasl_realm/
|
|
||||||
+ |/ldap_kerberos_container_dn|ldap_servers/
|
|
||||||
+ |/ldap_service_password_file|mapsize|max_readers|nosync/
|
|
||||||
+ |/unlockiter/ in
|
|
||||||
+ let subsec_option = subsec_entry subsec_key eq comment in
|
|
||||||
+ let key = /db_module_dir/ in
|
|
||||||
+ let option = entry key eq value comment in
|
|
||||||
+ let realm = [ indent . label "realm" . store realm_re .
|
|
||||||
+ eq_openbr . (subsec_option)* . closebr . eol ] in
|
|
||||||
+ record "dbmodules" (option|realm)
|
|
||||||
|
|
||||||
(* This section is not documented in the krb5.conf manpage,
|
|
||||||
but the Fermi example uses it. *)
|
|
||||||
@@ -152,11 +162,12 @@ let kdc =
|
|
||||||
let pam =
|
|
||||||
simple_section "pam" name_re
|
|
||||||
|
|
||||||
-let includes = Build.key_value_line /include(dir)?/ Sep.space (store Rx.fspath)
|
|
||||||
+let includes = Build.key_value_line include_re Sep.space (store Rx.fspath)
|
|
||||||
+let include_lines = includes . (comment|empty)*
|
|
||||||
|
|
||||||
-let lns = (comment|empty|includes)* .
|
|
||||||
+let lns = (comment|empty)* .
|
|
||||||
(libdefaults|login|appdefaults|realms|domain_realm
|
|
||||||
- |logging|capaths|dbdefaults|dbmodules|instance_mapping|kdc|pam)*
|
|
||||||
+ |logging|capaths|dbdefaults|dbmodules|instance_mapping|kdc|pam|include_lines)*
|
|
||||||
|
|
||||||
let filter = (incl "/etc/krb5.conf.d/*.conf")
|
|
||||||
. (incl "/etc/krb5.conf")
|
|
||||||
diff --git a/lenses/tests/test_krb5.aug b/lenses/tests/test_krb5.aug
|
|
||||||
index f746543b..10b87605 100644
|
|
||||||
--- a/lenses/tests/test_krb5.aug
|
|
||||||
+++ b/lenses/tests/test_krb5.aug
|
|
||||||
@@ -1029,7 +1029,7 @@ default_ccache_name = KEYRING:persistent:%{uid}\n" =
|
|
||||||
{ }
|
|
||||||
{ "default_ccache_name" = "KEYRING:persistent:%{uid}" } }
|
|
||||||
|
|
||||||
-(* Include(dir) test *)
|
|
||||||
+(* Include(dir) tests *)
|
|
||||||
let include_test = "include /etc/krb5.other_conf.d/other.conf
|
|
||||||
includedir /etc/krb5.conf.d/
|
|
||||||
"
|
|
||||||
@@ -1037,3 +1037,37 @@ includedir /etc/krb5.conf.d/
|
|
||||||
test Krb5.lns get include_test =
|
|
||||||
{ "include" = "/etc/krb5.other_conf.d/other.conf" }
|
|
||||||
{ "includedir" = "/etc/krb5.conf.d/" }
|
|
||||||
+
|
|
||||||
+let include2_test = "[logging]
|
|
||||||
+ default = FILE:/var/log/krb5libs.log
|
|
||||||
+
|
|
||||||
+include /etc/krb5.other_conf.d/other.conf
|
|
||||||
+
|
|
||||||
+includedir /etc/krb5.conf.d/
|
|
||||||
+"
|
|
||||||
+
|
|
||||||
+test Krb5.lns get include2_test =
|
|
||||||
+ { "logging"
|
|
||||||
+ { "default"
|
|
||||||
+ { "file" = "/var/log/krb5libs.log" } }
|
|
||||||
+ { }
|
|
||||||
+ }
|
|
||||||
+ { "include" = "/etc/krb5.other_conf.d/other.conf" }
|
|
||||||
+ { }
|
|
||||||
+ { "includedir" = "/etc/krb5.conf.d/" }
|
|
||||||
+
|
|
||||||
+(* [dbmodules] test *)
|
|
||||||
+let dbmodules_test = "[dbmodules]
|
|
||||||
+ ATHENA.MIT.EDU = {
|
|
||||||
+ disable_last_success = true
|
|
||||||
+ }
|
|
||||||
+ db_module_dir = /some/path
|
|
||||||
+"
|
|
||||||
+
|
|
||||||
+test Krb5.lns get dbmodules_test =
|
|
||||||
+ { "dbmodules"
|
|
||||||
+ { "realm" = "ATHENA.MIT.EDU"
|
|
||||||
+ { "disable_last_success" = "true" }
|
|
||||||
+ }
|
|
||||||
+ { "db_module_dir" = "/some/path" }
|
|
||||||
+ }
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
|||||||
From eb7c72cfffa5360a65be270c5554abf36739e382 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pino Toscano <ptoscano@redhat.com>
|
|
||||||
Date: Tue, 4 Feb 2020 18:05:05 +0100
|
|
||||||
Subject: [PATCH 6/9] Systemd: fix parsing of envvars with spaces (#659)
|
|
||||||
|
|
||||||
Allow spaces inside of values quoted with single or double quotes.
|
|
||||||
|
|
||||||
This amends commit f64d8bc7a7670f3af2549fdcefb64c2b5f22cd0d that added
|
|
||||||
support for quoted values.
|
|
||||||
---
|
|
||||||
lenses/systemd.aug | 4 ++--
|
|
||||||
lenses/tests/test_systemd.aug | 9 +++++++++
|
|
||||||
2 files changed, 11 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lenses/systemd.aug b/lenses/systemd.aug
|
|
||||||
index b868e86f..77434367 100644
|
|
||||||
--- a/lenses/systemd.aug
|
|
||||||
+++ b/lenses/systemd.aug
|
|
||||||
@@ -132,8 +132,8 @@ let entry_env =
|
|
||||||
let envkv (env_val:lens) = key env_key . Util.del_str "=" . env_val
|
|
||||||
(* bare has no spaces, and is optionally quoted *)
|
|
||||||
in let bare = Quote.do_quote_opt (envkv (store /[^#'" \t\n]*[^#'" \t\n\\]/)?)
|
|
||||||
- in let bare_dqval = envkv (store /"[^#" \t\n]*[^#" \t\n\\]"/)
|
|
||||||
- in let bare_sqval = envkv (store /'[^#' \t\n]*[^#' \t\n\\]'/)
|
|
||||||
+ in let bare_dqval = envkv (store /"[^#"\t\n]*[^#"\t\n\\]"/)
|
|
||||||
+ in let bare_sqval = envkv (store /'[^#'\t\n]*[^#'\t\n\\]'/)
|
|
||||||
(* quoted has at least one space, and must be quoted *)
|
|
||||||
in let quoted = Quote.do_quote (envkv (store /[^#"'\n]*[ \t]+[^#"'\n]*/))
|
|
||||||
in let envkv_quoted = [ bare ] | [ bare_dqval ] | [ bare_sqval ] | [ quoted ]
|
|
||||||
diff --git a/lenses/tests/test_systemd.aug b/lenses/tests/test_systemd.aug
|
|
||||||
index 3397456e..19c57075 100644
|
|
||||||
--- a/lenses/tests/test_systemd.aug
|
|
||||||
+++ b/lenses/tests/test_systemd.aug
|
|
||||||
@@ -206,6 +206,8 @@ FOO=BAR
|
|
||||||
Environment=\"LANG=foo bar\" FOO=BAR
|
|
||||||
Environment=OPTIONS=\"-LS0-6d\"
|
|
||||||
Environment=OPTIONS='-LS0-6d'
|
|
||||||
+Environment=VAR=\"with some spaces\" VAR2='more spaces'
|
|
||||||
+Environment=VAR='with some spaces'
|
|
||||||
"
|
|
||||||
(* Test: Systemd.lns *)
|
|
||||||
test Systemd.lns get env =
|
|
||||||
@@ -247,6 +249,13 @@ test Systemd.lns get env =
|
|
||||||
{ "Environment"
|
|
||||||
{ "OPTIONS" = "'-LS0-6d'" }
|
|
||||||
}
|
|
||||||
+ { "Environment"
|
|
||||||
+ { "VAR" = "\"with some spaces\"" }
|
|
||||||
+ { "VAR2" = "'more spaces'" }
|
|
||||||
+ }
|
|
||||||
+ { "Environment"
|
|
||||||
+ { "VAR" = "'with some spaces'" }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
(* Variable: unit *)
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
|||||||
From efd61b77563489ca0fa21904cc1fecfc482afd06 Mon Sep 17 00:00:00 2001
|
|
||||||
From: granquet <ranquet.guillaume@gmail.com>
|
|
||||||
Date: Tue, 6 Oct 2020 23:03:18 +0200
|
|
||||||
Subject: [PATCH 7/9] Ssh: add Match keyword support (#695)
|
|
||||||
|
|
||||||
Signed-off-by: Guillaume Ranquet <guillaume-externe.ranquet@edf.fr>
|
|
||||||
---
|
|
||||||
lenses/ssh.aug | 19 +++++++++++++++++--
|
|
||||||
lenses/tests/test_ssh.aug | 12 ++++++++++++
|
|
||||||
2 files changed, 29 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lenses/ssh.aug b/lenses/ssh.aug
|
|
||||||
index 4e731581..c140c9a9 100644
|
|
||||||
--- a/lenses/ssh.aug
|
|
||||||
+++ b/lenses/ssh.aug
|
|
||||||
@@ -92,7 +92,7 @@ module Ssh =
|
|
||||||
| rekey_limit
|
|
||||||
|
|
||||||
let key_re = /[A-Za-z0-9]+/
|
|
||||||
- - /SendEnv|Host|ProxyCommand|RemoteForward|LocalForward|MACs|Ciphers|(HostKey|Kex)Algorithms|PubkeyAcceptedKeyTypes|GlobalKnownHostsFile|RekeyLimit/i
|
|
||||||
+ - /SendEnv|Host|Match|ProxyCommand|RemoteForward|LocalForward|MACs|Ciphers|(HostKey|Kex)Algorithms|PubkeyAcceptedKeyTypes|GlobalKnownHostsFile|RekeyLimit/i
|
|
||||||
|
|
||||||
|
|
||||||
let other_entry = [ indent . key key_re
|
|
||||||
@@ -105,11 +105,26 @@ module Ssh =
|
|
||||||
let host = [ key /Host/i . spc . value_to_eol . eol . entry* ]
|
|
||||||
|
|
||||||
|
|
||||||
+ let condition_entry =
|
|
||||||
+ let value = store /[^ \t\r\n=]+/ in
|
|
||||||
+ [ spc . key /[A-Za-z0-9]+/ . spc . value ]
|
|
||||||
+
|
|
||||||
+ let match_cond =
|
|
||||||
+ [ label "Condition" . condition_entry+ . eol ]
|
|
||||||
+
|
|
||||||
+ let match_entry = entry
|
|
||||||
+
|
|
||||||
+ let match =
|
|
||||||
+ [ key /Match/i . match_cond
|
|
||||||
+ . [ label "Settings" . match_entry+ ]
|
|
||||||
+ ]
|
|
||||||
+
|
|
||||||
+
|
|
||||||
(************************************************************************
|
|
||||||
* Group: LENS
|
|
||||||
*************************************************************************)
|
|
||||||
|
|
||||||
- let lns = entry* . host*
|
|
||||||
+ let lns = entry* . (host | match)*
|
|
||||||
|
|
||||||
let xfm = transform lns (incl "/etc/ssh/ssh_config" .
|
|
||||||
incl (Sys.getenv("HOME") . "/.ssh/config") .
|
|
||||||
diff --git a/lenses/tests/test_ssh.aug b/lenses/tests/test_ssh.aug
|
|
||||||
index f5fca252..456624e4 100644
|
|
||||||
--- a/lenses/tests/test_ssh.aug
|
|
||||||
+++ b/lenses/tests/test_ssh.aug
|
|
||||||
@@ -5,6 +5,9 @@ module Test_ssh =
|
|
||||||
"# start
|
|
||||||
IdentityFile /etc/ssh/identity.asc
|
|
||||||
|
|
||||||
+Match final all
|
|
||||||
+ GSSAPIAuthentication yes
|
|
||||||
+
|
|
||||||
Host suse.cz
|
|
||||||
ForwardAgent yes
|
|
||||||
SendEnv LC_LANG
|
|
||||||
@@ -30,6 +33,15 @@ PubkeyAcceptedKeyTypes ssh-ed25519-cert-v01@openssh.com,ssh-ed25519,ssh-rsa-cert
|
|
||||||
{ "#comment" = "start" }
|
|
||||||
{ "IdentityFile" = "/etc/ssh/identity.asc" }
|
|
||||||
{ }
|
|
||||||
+ { "Match"
|
|
||||||
+ { "Condition"
|
|
||||||
+ { "final" = "all" }
|
|
||||||
+ }
|
|
||||||
+ { "Settings"
|
|
||||||
+ { "GSSAPIAuthentication" = "yes" }
|
|
||||||
+ { }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
{ "Host" = "suse.cz"
|
|
||||||
{ "ForwardAgent" = "yes" }
|
|
||||||
{ "SendEnv"
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,251 +0,0 @@
|
|||||||
From 59fb794a4c47b811998273323cd49cc91f9db7e2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
||||||
Date: Wed, 12 Jan 2022 16:11:22 +0000
|
|
||||||
Subject: [PATCH 8/9] Include mke2fs lens and test from upstream
|
|
||||||
|
|
||||||
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1807010
|
|
||||||
---
|
|
||||||
lenses/mke2fs.aug | 108 ++++++++++++++++++++++++++---------
|
|
||||||
lenses/tests/test_mke2fs.aug | 46 ++++++++++++++-
|
|
||||||
2 files changed, 124 insertions(+), 30 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lenses/mke2fs.aug b/lenses/mke2fs.aug
|
|
||||||
index dc895490..46a7136e 100644
|
|
||||||
--- a/lenses/mke2fs.aug
|
|
||||||
+++ b/lenses/mke2fs.aug
|
|
||||||
@@ -34,6 +34,14 @@ let sep = IniFile.sep /=[ \t]*/ "="
|
|
||||||
(* View: empty *)
|
|
||||||
let empty = IniFile.empty
|
|
||||||
|
|
||||||
+(* View: boolean
|
|
||||||
+ The configuration parser of e2fsprogs recognizes different values
|
|
||||||
+ for booleans, so list all the recognized values *)
|
|
||||||
+let boolean = ("y"|"yes"|"true"|"t"|"1"|"on"|"n"|"no"|"false"|"nil"|"0"|"off")
|
|
||||||
+
|
|
||||||
+(* View: fspath *)
|
|
||||||
+let fspath = /[^ \t\n"]+/
|
|
||||||
+
|
|
||||||
|
|
||||||
(************************************************************************
|
|
||||||
* Group: RECORD TYPES
|
|
||||||
@@ -47,27 +55,59 @@ let entry (kw:regexp) (lns:lens) = Build.key_value_line kw sep lns
|
|
||||||
|
|
||||||
(* View: list_sto
|
|
||||||
A list of values with given lens *)
|
|
||||||
-let list_sto (kw:regexp) (lns:lens) = counter "item" .
|
|
||||||
- entry kw
|
|
||||||
- (Build.opt_list
|
|
||||||
- [lns]
|
|
||||||
- Sep.comma)
|
|
||||||
+let list_sto (kw:regexp) (lns:lens) =
|
|
||||||
+ entry kw (Quote.do_dquote_opt_nil (Build.opt_list [lns] Sep.comma))
|
|
||||||
|
|
||||||
(* View: entry_sto
|
|
||||||
Store a regexp as entry value *)
|
|
||||||
-let entry_sto (kw:regexp) (val:regexp) = entry kw (store val)
|
|
||||||
+let entry_sto (kw:regexp) (val:regexp) =
|
|
||||||
+ entry kw (Quote.do_dquote_opt_nil (store val))
|
|
||||||
+ | entry kw (Util.del_str "\"\"")
|
|
||||||
|
|
||||||
|
|
||||||
(************************************************************************
|
|
||||||
* Group: COMMON ENTRIES
|
|
||||||
*************************************************************************)
|
|
||||||
+
|
|
||||||
+(* View: common_entries_list
|
|
||||||
+ Entries with a list value *)
|
|
||||||
+let common_entries_list = ("base_features"|"default_features"|"default_mntopts")
|
|
||||||
+
|
|
||||||
+(* View: common_entries_int
|
|
||||||
+ Entries with an integer value *)
|
|
||||||
+let common_entries_int = ("cluster_size"|"flex_bg_size"|"force_undo"
|
|
||||||
+ |"inode_ratio"|"inode_size"|"num_backup_sb")
|
|
||||||
+
|
|
||||||
+(* View: common_entries_bool
|
|
||||||
+ Entries with a boolean value *)
|
|
||||||
+let common_entries_bool = ("auto_64-bit_support"|"discard"
|
|
||||||
+ |"enable_periodic_fsck"|"lazy_itable_init"
|
|
||||||
+ |"lazy_journal_init"|"packed_meta_blocks")
|
|
||||||
+
|
|
||||||
+(* View: common_entries_string
|
|
||||||
+ Entries with a string value *)
|
|
||||||
+let common_entries_string = ("encoding"|"journal_location")
|
|
||||||
+
|
|
||||||
+(* View: common_entries_double
|
|
||||||
+ Entries with a double value *)
|
|
||||||
+let common_entries_double = ("reserved_ratio")
|
|
||||||
+
|
|
||||||
(* View: common_entry
|
|
||||||
Entries shared between <defaults> and <fs_types> sections *)
|
|
||||||
-let common_entry = list_sto ("base_features"|"default_features")
|
|
||||||
- (key Rx.word)
|
|
||||||
+let common_entry = list_sto common_entries_list (key Rx.word)
|
|
||||||
+ | entry_sto common_entries_int Rx.integer
|
|
||||||
+ | entry_sto common_entries_bool boolean
|
|
||||||
+ | entry_sto common_entries_string Rx.word
|
|
||||||
+ | entry_sto common_entries_double Rx.decimal
|
|
||||||
| entry_sto "blocksize" ("-"? . Rx.integer)
|
|
||||||
| entry_sto "hash_alg" ("legacy"|"half_md4"|"tea")
|
|
||||||
- | entry_sto ("inode_ratio"|"inode_size") Rx.integer
|
|
||||||
+ | entry_sto "errors" ("continue"|"remount-ro"|"panic")
|
|
||||||
+ | list_sto "features"
|
|
||||||
+ ([del /\^/ "^" . label "disable"]?
|
|
||||||
+ . key Rx.word)
|
|
||||||
+ | list_sto "options"
|
|
||||||
+ (key Rx.word . Util.del_str "="
|
|
||||||
+ . store Rx.word)
|
|
||||||
|
|
||||||
(************************************************************************
|
|
||||||
* Group: DEFAULTS SECTION
|
|
||||||
@@ -75,11 +115,8 @@ let common_entry = list_sto ("base_features"|"default_features")
|
|
||||||
|
|
||||||
(* View: defaults_entry
|
|
||||||
Possible entries under the <defaults> section *)
|
|
||||||
-let defaults_entry = entry_sto "force_undo" ("true"|"false")
|
|
||||||
- | entry_sto "fs_type" Rx.word
|
|
||||||
- | entry_sto "undo_dir" Rx.fspath
|
|
||||||
- | list_sto "default_mntopts" (key Rx.word)
|
|
||||||
- | entry_sto "enable_periodic_fsck" Rx.integer
|
|
||||||
+let defaults_entry = entry_sto "fs_type" Rx.word
|
|
||||||
+ | entry_sto "undo_dir" fspath
|
|
||||||
|
|
||||||
(* View: defaults_title
|
|
||||||
Title for the <defaults> section *)
|
|
||||||
@@ -95,24 +132,12 @@ let defaults = IniFile.record defaults_title
|
|
||||||
* Group: FS_TYPES SECTION
|
|
||||||
*************************************************************************)
|
|
||||||
|
|
||||||
-(* View: fs_types_entry
|
|
||||||
- Possible entries under a <fs_types_record> group *)
|
|
||||||
-let fs_types_entry =list_sto "features"
|
|
||||||
- ([del /\^/ "^" . label "disable"]?
|
|
||||||
- . key Rx.word)
|
|
||||||
- | list_sto "options"
|
|
||||||
- (key Rx.word . Util.del_str "="
|
|
||||||
- . store Rx.word)
|
|
||||||
- | entry_sto "lazy_itable_init" ("true"|"false")
|
|
||||||
- | entry_sto ("flex_bg_size"|"auto_64-bit_support")
|
|
||||||
- Rx.integer
|
|
||||||
-
|
|
||||||
(* View: fs_types_record
|
|
||||||
Fs group records under the <fs_types> section *)
|
|
||||||
let fs_types_record = [ label "filesystem"
|
|
||||||
. Util.indent . store Rx.word
|
|
||||||
. del /[ \t]*=[ \t]*\{[ \t]*\n/ " = {\n"
|
|
||||||
- . ((Util.indent . (fs_types_entry|common_entry)) | empty | comment)*
|
|
||||||
+ . ((Util.indent . common_entry) | empty | comment)*
|
|
||||||
. del /[ \t]*\}[ \t]*\n/ " }\n" ]
|
|
||||||
|
|
||||||
(* View: fs_types_title
|
|
||||||
@@ -125,6 +150,33 @@ let fs_types = IniFile.record fs_types_title
|
|
||||||
(fs_types_record | comment)
|
|
||||||
|
|
||||||
|
|
||||||
+(************************************************************************
|
|
||||||
+ * Group: OPTIONS SECTION
|
|
||||||
+ *************************************************************************)
|
|
||||||
+
|
|
||||||
+(* View: options_entries_int
|
|
||||||
+ Entries with an integer value *)
|
|
||||||
+let options_entries_int = ("proceed_delay"|"sync_kludge")
|
|
||||||
+
|
|
||||||
+(* View: options_entries_bool
|
|
||||||
+ Entries with a boolean value *)
|
|
||||||
+let options_entries_bool = ("old_bitmaps")
|
|
||||||
+
|
|
||||||
+(* View: options_entry
|
|
||||||
+ Possible entries under the <options> section *)
|
|
||||||
+let options_entry = entry_sto options_entries_int Rx.integer
|
|
||||||
+ | entry_sto options_entries_bool boolean
|
|
||||||
+
|
|
||||||
+(* View: defaults_title
|
|
||||||
+ Title for the <options> section *)
|
|
||||||
+let options_title = IniFile.title "options"
|
|
||||||
+
|
|
||||||
+(* View: options
|
|
||||||
+ A options section *)
|
|
||||||
+let options = IniFile.record options_title
|
|
||||||
+ ((Util.indent . options_entry) | comment)
|
|
||||||
+
|
|
||||||
+
|
|
||||||
(************************************************************************
|
|
||||||
* Group: LENS AND FILTER
|
|
||||||
*************************************************************************)
|
|
||||||
@@ -132,7 +184,7 @@ let fs_types = IniFile.record fs_types_title
|
|
||||||
(* View: lns
|
|
||||||
The mke2fs lens
|
|
||||||
*)
|
|
||||||
-let lns = (empty|comment)* . (defaults|fs_types)*
|
|
||||||
+let lns = (empty|comment)* . (defaults|fs_types|options)*
|
|
||||||
|
|
||||||
(* Variable: filter *)
|
|
||||||
let filter = incl "/etc/mke2fs.conf"
|
|
||||||
diff --git a/lenses/tests/test_mke2fs.aug b/lenses/tests/test_mke2fs.aug
|
|
||||||
index f1ddbe9e..bcf2fe61 100644
|
|
||||||
--- a/lenses/tests/test_mke2fs.aug
|
|
||||||
+++ b/lenses/tests/test_mke2fs.aug
|
|
||||||
@@ -33,6 +33,10 @@ module Test_mke2fs =
|
|
||||||
inode_ratio = 1048576
|
|
||||||
blocksize = -1
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+[options]
|
|
||||||
+ proceed_delay = 1
|
|
||||||
+ sync_kludge = 1
|
|
||||||
"
|
|
||||||
|
|
||||||
test Mke2fs.lns get conf =
|
|
||||||
@@ -74,10 +78,48 @@ module Test_mke2fs =
|
|
||||||
{ "inode_ratio" = "4096" } }
|
|
||||||
{ "filesystem" = "largefile"
|
|
||||||
{ "inode_ratio" = "1048576" }
|
|
||||||
- { "blocksize" = "-1" } } }
|
|
||||||
+ { "blocksize" = "-1" } }
|
|
||||||
+ {} }
|
|
||||||
+ { "options"
|
|
||||||
+ { "proceed_delay" = "1" }
|
|
||||||
+ { "sync_kludge" = "1" } }
|
|
||||||
|
|
||||||
|
|
||||||
-test Mke2fs.fs_types_entry
|
|
||||||
+ let quoted_conf = "[defaults]
|
|
||||||
+ base_features = \"sparse_super,filetype,resize_inode,dir_index,ext_attr\"
|
|
||||||
+
|
|
||||||
+[fs_types]
|
|
||||||
+ ext4dev = {
|
|
||||||
+ features = \"has_journal,^extent\"
|
|
||||||
+ default_mntopts = \"user_xattr\"
|
|
||||||
+ encoding = \"utf8\"
|
|
||||||
+ encoding = \"\"
|
|
||||||
+ }
|
|
||||||
+"
|
|
||||||
+
|
|
||||||
+ test Mke2fs.lns get quoted_conf =
|
|
||||||
+ { "defaults"
|
|
||||||
+ { "base_features"
|
|
||||||
+ { "sparse_super" }
|
|
||||||
+ { "filetype" }
|
|
||||||
+ { "resize_inode" }
|
|
||||||
+ { "dir_index" }
|
|
||||||
+ { "ext_attr" } }
|
|
||||||
+ {} }
|
|
||||||
+ { "fs_types"
|
|
||||||
+ { "filesystem" = "ext4dev"
|
|
||||||
+ { "features"
|
|
||||||
+ { "has_journal" }
|
|
||||||
+ { "extent"
|
|
||||||
+ { "disable" } } }
|
|
||||||
+ { "default_mntopts"
|
|
||||||
+ { "user_xattr" } }
|
|
||||||
+ { "encoding" = "utf8" }
|
|
||||||
+ { "encoding" }
|
|
||||||
+ } }
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+test Mke2fs.common_entry
|
|
||||||
put "features = has_journal,^extent\n"
|
|
||||||
after set "/features/has_journal/disable" "";
|
|
||||||
rm "/features/extent/disable" = "features = ^has_journal,extent\n"
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,148 +0,0 @@
|
|||||||
From f1480aa0c228107a22664e6302c6f2b388536ece Mon Sep 17 00:00:00 2001
|
|
||||||
From: rwmjones <rjones@redhat.com>
|
|
||||||
Date: Thu, 6 Oct 2022 12:15:56 +0100
|
|
||||||
Subject: [PATCH 9/9] semanage: Fix parsing of ignoredirs (#758)
|
|
||||||
|
|
||||||
From /etc/selinux/semanage.conf from a RHEL 9.1 system, this line
|
|
||||||
caused problems:
|
|
||||||
|
|
||||||
ignoredirs=/root;/bin;/boot;/dev;/etc [...]
|
|
||||||
|
|
||||||
Parse this as a list of modified Rx.fspath, generating a tree like:
|
|
||||||
|
|
||||||
/files/etc/selinux/semanage.conf/ignoredirs/1 = /root
|
|
||||||
/files/etc/selinux/semanage.conf/ignoredirs/2 = /bin
|
|
||||||
/files/etc/selinux/semanage.conf/ignoredirs/3 = /dev
|
|
||||||
/files/etc/selinux/semanage.conf/ignoredirs/4 = /etc
|
|
||||||
[...]
|
|
||||||
|
|
||||||
Also this adds the RHEL 9 file as another test case and adjusts the
|
|
||||||
output of the existing test case.
|
|
||||||
|
|
||||||
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2077120
|
|
||||||
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
|
|
||||||
|
|
||||||
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
|
|
||||||
(cherry picked from commit a3ba6e2d32b95507e2474a219e788ac3d54bc4a1)
|
|
||||||
---
|
|
||||||
lenses/semanage.aug | 7 +++-
|
|
||||||
lenses/tests/test_semanage.aug | 4 +-
|
|
||||||
tests/root/etc/selinux/semanage.conf | 60 ++++++++++++++++++++++++++++
|
|
||||||
tests/xpath.tests | 1 +
|
|
||||||
4 files changed, 70 insertions(+), 2 deletions(-)
|
|
||||||
create mode 100644 tests/root/etc/selinux/semanage.conf
|
|
||||||
|
|
||||||
diff --git a/lenses/semanage.aug b/lenses/semanage.aug
|
|
||||||
index 46f93b32..edd97131 100644
|
|
||||||
--- a/lenses/semanage.aug
|
|
||||||
+++ b/lenses/semanage.aug
|
|
||||||
@@ -23,7 +23,12 @@ let sep = IniFile.sep "=" "="
|
|
||||||
let empty = IniFile.empty
|
|
||||||
let eol = IniFile.eol
|
|
||||||
|
|
||||||
-let entry = IniFile.entry IniFile.entry_re sep comment
|
|
||||||
+let list_keys = "ignoredirs"
|
|
||||||
+let scl = del ";" ";"
|
|
||||||
+let fspath = /[^ \t\n;#]+/ (* Rx.fspath without ; or # *)
|
|
||||||
+
|
|
||||||
+let entry = IniFile.entry_list list_keys sep fspath scl comment
|
|
||||||
+ | IniFile.entry (IniFile.entry_re - list_keys) sep comment
|
|
||||||
| empty
|
|
||||||
|
|
||||||
let title = IniFile.title_label "@group" (IniFile.record_re - /^end$/)
|
|
||||||
diff --git a/lenses/tests/test_semanage.aug b/lenses/tests/test_semanage.aug
|
|
||||||
index a6ceaca0..f76b95f3 100644
|
|
||||||
--- a/lenses/tests/test_semanage.aug
|
|
||||||
+++ b/lenses/tests/test_semanage.aug
|
|
||||||
@@ -68,7 +68,9 @@ test Semanage.lns get conf =
|
|
||||||
{ "usepasswd" = "False" }
|
|
||||||
{ "bzip-small" = "true" }
|
|
||||||
{ "bzip-blocksize" = "5" }
|
|
||||||
- { "ignoredirs" = "/root" }
|
|
||||||
+ { "ignoredirs"
|
|
||||||
+ { "1" = "/root" }
|
|
||||||
+ }
|
|
||||||
{ }
|
|
||||||
{ "@group" = "sefcontext_compile"
|
|
||||||
{ "path" = "/usr/sbin/sefcontext_compile" }
|
|
||||||
diff --git a/tests/root/etc/selinux/semanage.conf b/tests/root/etc/selinux/semanage.conf
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..406f16f1
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/root/etc/selinux/semanage.conf
|
|
||||||
@@ -0,0 +1,60 @@
|
|
||||||
+# Authors: Jason Tang <jtang@tresys.com>
|
|
||||||
+#
|
|
||||||
+# Copyright (C) 2004-2005 Tresys Technology, LLC
|
|
||||||
+#
|
|
||||||
+# This library is free software; you can redistribute it and/or
|
|
||||||
+# modify it under the terms of the GNU Lesser General Public
|
|
||||||
+# License as published by the Free Software Foundation; either
|
|
||||||
+# version 2.1 of the License, or (at your option) any later version.
|
|
||||||
+#
|
|
||||||
+# This library is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
+# Lesser General Public License for more details.
|
|
||||||
+#
|
|
||||||
+# You should have received a copy of the GNU Lesser General Public
|
|
||||||
+# License along with this library; if not, write to the Free Software
|
|
||||||
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
+#
|
|
||||||
+# Specify how libsemanage will interact with a SELinux policy manager.
|
|
||||||
+# The four options are:
|
|
||||||
+#
|
|
||||||
+# "source" - libsemanage manipulates a source SELinux policy
|
|
||||||
+# "direct" - libsemanage will write directly to a module store.
|
|
||||||
+# /foo/bar - Write by way of a policy management server, whose
|
|
||||||
+# named socket is at /foo/bar. The path must begin
|
|
||||||
+# with a '/'.
|
|
||||||
+# foo.com:4242 - Establish a TCP connection to a remote policy
|
|
||||||
+# management server at foo.com. If there is a colon
|
|
||||||
+# then the remainder is interpreted as a port number;
|
|
||||||
+# otherwise default to port 4242.
|
|
||||||
+module-store = direct
|
|
||||||
+
|
|
||||||
+# When generating the final linked and expanded policy, by default
|
|
||||||
+# semanage will set the policy version to POLICYDB_VERSION_MAX, as
|
|
||||||
+# given in <sepol/policydb.h>. Change this setting if a different
|
|
||||||
+# version is necessary.
|
|
||||||
+#policy-version = 19
|
|
||||||
+
|
|
||||||
+# expand-check check neverallow rules when executing all semanage
|
|
||||||
+# commands. There might be a penalty in execution time if this
|
|
||||||
+# option is enabled.
|
|
||||||
+expand-check=0
|
|
||||||
+
|
|
||||||
+# usepasswd check tells semanage to scan all pass word records for home directories
|
|
||||||
+# and setup the labeling correctly. If this is turned off, SELinux will label only /home
|
|
||||||
+# and home directories of users with SELinux login mappings defined, see
|
|
||||||
+# semanage login -l for the list of such users.
|
|
||||||
+# If you want to use a different home directory, you will need to use semanage fcontext command.
|
|
||||||
+# For example, if you had home dirs in /althome directory you would have to execute
|
|
||||||
+# semanage fcontext -a -e /home /althome
|
|
||||||
+usepasswd=False
|
|
||||||
+bzip-small=true
|
|
||||||
+bzip-blocksize=5
|
|
||||||
+ignoredirs=/root;/bin;/boot;/dev;/etc;/lib;/lib64;/proc;/run;/sbin;/sys;/tmp;/usr;/var
|
|
||||||
+optimize-policy=true
|
|
||||||
+
|
|
||||||
+[sefcontext_compile]
|
|
||||||
+path = /usr/sbin/sefcontext_compile
|
|
||||||
+args = -r $@
|
|
||||||
+[end]
|
|
||||||
diff --git a/tests/xpath.tests b/tests/xpath.tests
|
|
||||||
index a7db8d83..feab7584 100644
|
|
||||||
--- a/tests/xpath.tests
|
|
||||||
+++ b/tests/xpath.tests
|
|
||||||
@@ -109,6 +109,7 @@ test descendant-or-self /files/descendant-or-self :: 4
|
|
||||||
/files/etc/ssh/ssh_config/Host/SendEnv[1]/4 = LC_TIME
|
|
||||||
/files/etc/ssh/ssh_config/Host/SendEnv[2]/4 = LC_TELEPHONE
|
|
||||||
/files/etc/aliases/4
|
|
||||||
+ /files/etc/selinux/semanage.conf/ignoredirs/4 = /dev
|
|
||||||
/files/etc/fstab/4
|
|
||||||
/files/etc/pam.d/login/4
|
|
||||||
/files/etc/pam.d/newrole/4
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,28 +1,27 @@
|
|||||||
Name: augeas
|
Name: augeas
|
||||||
Version: 1.12.0
|
Version: 1.13.0
|
||||||
Release: 8%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: A library for changing configuration files
|
Summary: A library for changing configuration files
|
||||||
|
|
||||||
Group: System Environment/Libraries
|
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
URL: http://augeas.net/
|
URL: http://augeas.net/
|
||||||
Source0: http://download.augeas.net/%{name}-%{version}.tar.gz
|
|
||||||
|
|
||||||
# Patches are stored here:
|
# The upstream release tarballs on github don't work, see:
|
||||||
# https://github.com/rwmjones/augeas/tree/rhel-8.8
|
# https://github.com/hercules-team/augeas/pull/744
|
||||||
|
# The website release tarballs were not created for 1.13:
|
||||||
|
# http://download.augeas.net/
|
||||||
|
#Source0: https://github.com/hercules-team/augeas/archive/refs/tags/release-%{version}.tar.gz
|
||||||
|
# So I had to create a tarball myself using make dist.
|
||||||
|
Source0: %{name}-%{version}.tar.gz
|
||||||
|
|
||||||
Patch1: 0001-Grub-support-in-kernel-command-line-option-names-647.patch
|
Provides: bundled(gnulib)
|
||||||
Patch2: 0002-Rsyslog-support-multiple-actions-in-filters-and-sele.patch
|
|
||||||
Patch3: 0003-src-augrun.c-nexttoken-add-more-escape-characters.patch
|
BuildRequires: make
|
||||||
Patch4: 0004-src-augtool.c-hopefully-fix-readline-quoting-issues.patch
|
BuildRequires: gcc
|
||||||
Patch5: 0005-Krb5-improve-dbmodules-and-includes-630.patch
|
BuildRequires: readline-devel
|
||||||
Patch6: 0006-Systemd-fix-parsing-of-envvars-with-spaces-659.patch
|
BuildRequires: libselinux-devel
|
||||||
Patch7: 0007-Ssh-add-Match-keyword-support-695.patch
|
BuildRequires: libxml2-devel
|
||||||
Patch8: 0008-Include-mke2fs-lens-and-test-from-upstream.patch
|
|
||||||
Patch9: 0009-semanage-Fix-parsing-of-ignoredirs-758.patch
|
|
||||||
|
|
||||||
BuildRequires: readline-devel libselinux-devel libxml2-devel
|
|
||||||
BuildRequires: autoconf, automake
|
|
||||||
Requires: %{name}-libs = %{version}-%{release}
|
Requires: %{name}-libs = %{version}-%{release}
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -37,7 +36,6 @@ format and the transformation into a tree.
|
|||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Development files for %{name}
|
Summary: Development files for %{name}
|
||||||
Group: Development/Libraries
|
|
||||||
Requires: %{name}-libs = %{version}-%{release}
|
Requires: %{name}-libs = %{version}-%{release}
|
||||||
Requires: pkgconfig
|
Requires: pkgconfig
|
||||||
|
|
||||||
@ -48,9 +46,6 @@ developing applications that use %{name}.
|
|||||||
|
|
||||||
%package libs
|
%package libs
|
||||||
Summary: Libraries for %{name}
|
Summary: Libraries for %{name}
|
||||||
Group: System Environment/Libraries
|
|
||||||
|
|
||||||
Provides: bundled(gnulib)
|
|
||||||
|
|
||||||
%description libs
|
%description libs
|
||||||
The libraries for %{name}.
|
The libraries for %{name}.
|
||||||
@ -60,6 +55,14 @@ configuration files into a tree structure, which it exposes through its
|
|||||||
public API. Changes made through the API are written back to the initially
|
public API. Changes made through the API are written back to the initially
|
||||||
read files.
|
read files.
|
||||||
|
|
||||||
|
%package static
|
||||||
|
Summary: Static libraries for %{name}
|
||||||
|
Requires: %{name}-devel = %{version}-%{release}
|
||||||
|
|
||||||
|
%description static
|
||||||
|
The %{name}-static package contains static libraries needed to produce
|
||||||
|
static builds using %{name}.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
@ -70,19 +73,21 @@ read files.
|
|||||||
%ifarch riscv64
|
%ifarch riscv64
|
||||||
--disable-gnulib-tests \
|
--disable-gnulib-tests \
|
||||||
%endif
|
%endif
|
||||||
--disable-static
|
--enable-static
|
||||||
make V=1 %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
%check
|
%check
|
||||||
# Disable test-preserve.sh SELinux testing. This fails when run under mock due
|
# Disable test-preserve.sh SELinux testing. This fails when run under mock due
|
||||||
# to differing SELinux labelling.
|
# to differing SELinux labelling.
|
||||||
export SKIP_TEST_PRESERVE_SELINUX=1
|
export SKIP_TEST_PRESERVE_SELINUX=1
|
||||||
|
|
||||||
make %{?_smp_mflags} check || {
|
# Tests disabled because gnulib tests fail see:
|
||||||
echo '===== tests/test-suite.log ====='
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1674672
|
||||||
cat tests/test-suite.log
|
#make %{?_smp_mflags} check || {
|
||||||
exit 1
|
# echo '===== tests/test-suite.log ====='
|
||||||
}
|
# cat tests/test-suite.log
|
||||||
|
# exit 1
|
||||||
|
#}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
@ -93,15 +98,12 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
|
|||||||
# so it shouldn't be packaged.
|
# so it shouldn't be packaged.
|
||||||
rm -r $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/dist/tests
|
rm -r $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/dist/tests
|
||||||
|
|
||||||
%clean
|
# In 1.9.0, the example /usr/bin/dump gets installed inadvertently
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -f $RPM_BUILD_ROOT/usr/bin/dump
|
||||||
|
|
||||||
%post libs -p /sbin/ldconfig
|
%ldconfig_scriptlets libs
|
||||||
|
|
||||||
%postun libs -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root,-)
|
|
||||||
%{_bindir}/augmatch
|
%{_bindir}/augmatch
|
||||||
%{_bindir}/augparse
|
%{_bindir}/augparse
|
||||||
%{_bindir}/augtool
|
%{_bindir}/augtool
|
||||||
@ -111,7 +113,6 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_datadir}/vim/vimfiles/ftdetect/augeas.vim
|
%{_datadir}/vim/vimfiles/ftdetect/augeas.vim
|
||||||
|
|
||||||
%files libs
|
%files libs
|
||||||
%defattr(-,root,root,-)
|
|
||||||
# _datadir/augeas and _datadir/augeas/lenses are owned
|
# _datadir/augeas and _datadir/augeas/lenses are owned
|
||||||
# by filesystem.
|
# by filesystem.
|
||||||
%{_datadir}/augeas/lenses/dist
|
%{_datadir}/augeas/lenses/dist
|
||||||
@ -119,64 +120,58 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%doc AUTHORS COPYING NEWS
|
%doc AUTHORS COPYING NEWS
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root,-)
|
|
||||||
%doc
|
%doc
|
||||||
%{_includedir}/*
|
%{_includedir}/*
|
||||||
%{_libdir}/*.so
|
%{_libdir}/*.so
|
||||||
%{_libdir}/pkgconfig/augeas.pc
|
%{_libdir}/pkgconfig/augeas.pc
|
||||||
|
|
||||||
|
%files static
|
||||||
|
%{_libdir}/libaugeas.a
|
||||||
|
%{_libdir}/libfa.a
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Oct 12 2022 Richard W.M. Jones <rjones@redhat.com> - 1.12.0-8
|
* Wed Jan 12 2022 Richard W.M. Jones <rjones@redhat.com> - 1.13.0-1
|
||||||
- Fix parsing of semanage.conf ignoredirs
|
- New upstream version 1.13.0
|
||||||
resolves: rhbz#1931058
|
|
||||||
|
|
||||||
* Wed Jan 12 2022 Richard W.M. Jones <rjones@redhat.com> - 1.12.0-7
|
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.1-0.2.git18558bb
|
||||||
- Fix parsing of mke2fs.conf files
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||||
resolves: rhbz#1807010
|
|
||||||
|
|
||||||
* Tue Jan 05 2021 Pino Toscano <ptoscano@redhat.com> - 1.12.0-6
|
* Tue Jul 06 2021 Richard W.M. Jones <rjones@redhat.com> - 1.12.1-0.1
|
||||||
- Ssh: parse Match options (RHBZ#1716359)
|
- Package up a git pre-release of 1.12.1 or 1.13.0.
|
||||||
|
|
||||||
* Mon Feb 10 2020 Pino Toscano <ptoscano@redhat.com> - 1.12.0-5
|
* Thu Apr 15 2021 Richard W.M. Jones <rjones@redhat.com> - 1.12.0-6
|
||||||
- Fix completion with special characters in augtool. (RHBZ#1232224)
|
- Add upstream patch to parse chrony configuration.
|
||||||
- Krb5: improve handling of [dbmodules]; allow include/includedir directives
|
- Use %%autosetup.
|
||||||
everywhere (RHBZ#1798486)
|
|
||||||
- Systemd: improve parsing of quoted variables of Environment (RHBZ#1798922)
|
|
||||||
|
|
||||||
* Thu Nov 14 2019 Pino Toscano <ptoscano@redhat.com> - 1.12.0-4
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.0-5
|
||||||
- Rsyslog: support multiple actions in filters and selectors (RHBZ#1660884)
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
* Thu Nov 07 2019 Pino Toscano <ptoscano@redhat.com> - 1.12.0-3
|
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.0-4
|
||||||
- Grub: handle '+' in kernel command line options (RHBZ#1769314)
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
* Mon Jun 03 2019 Pino Toscano <ptoscano@redhat.com> - 1.12.0-2
|
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.0-3
|
||||||
- Disable static libraries, not needed in RHEL.
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
* Tue May 14 2019 Pino Toscano <ptoscano@redhat.com> - 1.12.0-1
|
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.0-2
|
||||||
- New upstream release (RHBZ#1709416)
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
* Fstab: allow leading whitespaces (RHBZ#1671950)
|
|
||||||
|
|
||||||
* Thu Dec 13 2018 Pino Toscano <ptoscano@redhat.com> - 1.10.1-8
|
* Mon Apr 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.12.0-1
|
||||||
- Add simple tests (RHBZ#1653994)
|
- New upstream release 1.12.0.
|
||||||
|
|
||||||
* Wed Dec 12 2018 Pino Toscano <ptoscano@redhat.com> - 1.10.1-7
|
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.11.0-4
|
||||||
- Anaconda: new lens (RHBZ#1657192)
|
- Rebuild for readline 8.0
|
||||||
|
|
||||||
* Thu Nov 29 2018 Pino Toscano <ptoscano@redhat.com> - 1.10.1-6
|
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.11.0-3
|
||||||
- Semanage: new lens (RHBZ#1652840)
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
- Add "Provides: bundled(gnulib)" to augeas-libs, as it embeds gnulib
|
|
||||||
(RHBZ#1653768)
|
|
||||||
|
|
||||||
* Fri Nov 23 2018 Pino Toscano <ptoscano@redhat.com> - 1.10.1-5
|
* Mon Nov 26 2018 Richard W.M. Jones <rjones@redhat.com> - 1.11.0-2
|
||||||
- Rsyslog: support include() directive (RHBZ#1652832)
|
- Augeas uses gnulib, add the correct 'Provides' line.
|
||||||
|
|
||||||
* Tue Nov 13 2018 Pino Toscano <ptoscano@redhat.com> - 1.10.1-4
|
* Tue Aug 28 2018 Richard W.M. Jones <rjones@redhat.com> - 1.11.0-1
|
||||||
- Grub: better handle invalid grub.conf files (RHBZ#1649262)
|
- New upstream version 1.11.0.
|
||||||
- Sudoers: handle "always_query_group_plugin" option (RHBZ#1649299)
|
|
||||||
|
|
||||||
* Mon Oct 08 2018 Pino Toscano <ptoscano@redhat.com> - 1.10.1-3
|
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.10.1-3
|
||||||
- Backport some upstream commits to fix few memory leaks, and potential
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
memory issues (RHBZ#1602446)
|
|
||||||
|
|
||||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.10.1-2
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.10.1-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
Loading…
Reference in New Issue
Block a user