diff --git a/textproc/augeas/863.patch b/textproc/augeas/863.patch deleted file mode 100644 index 6ee7376..0000000 --- a/textproc/augeas/863.patch +++ /dev/null @@ -1,515 +0,0 @@ -From 78a9c2add3dd37d023df67e9089de277bd98f914 Mon Sep 17 00:00:00 2001 -From: Xavier Beaudouin -Date: Mon, 2 Jun 2025 09:33:57 +0200 -Subject: [PATCH 1/3] lenses/rsyslog.aug: Fix if xxx then { } - -If the rsyslog.conf have : - if $programname != "devd" then { - } - -The lense fails with a parse_failed. - -This fix bug #846 ---- - lenses/rsyslog.aug | 216 +++++++++++++++++++++++++-------------------- - 1 file changed, 118 insertions(+), 98 deletions(-) - -diff --git a/lenses/rsyslog.aug b/lenses/rsyslog.aug -index 29ff9b104..4d56d37cb 100644 ---- a/lenses/rsyslog.aug -+++ b/lenses/rsyslog.aug -@@ -1,98 +1,118 @@ --(* --Module: Rsyslog -- Parses /etc/rsyslog.conf -- --Author: Raphael Pinson -- --About: Reference -- This lens tries to keep as close as possible to `man 5 rsyslog.conf` where possible. -- --About: License -- This file is licenced under the LGPL v2+, like the rest of Augeas. -- --About: Lens Usage -- To be documented -- --About: Configuration files -- This lens applies to /etc/rsyslog.conf. See . -- --About: Examples -- The file contains various examples and tests. --*) --module Rsyslog = -- --autoload xfm -- --let macro_rx = /[^,# \n\t][^#\n]*[^,# \n\t]|[^,# \n\t]/ --let macro = [ key /$[A-Za-z0-9]+/ . Sep.space . store macro_rx . Util.comment_or_eol ] -- --let config_object_param = [ key /[A-Za-z.]+/ . Sep.equal . Quote.dquote -- . store /[^"]+/ . Quote.dquote ] --(* Inside config objects, we allow embedded comments; we don't surface them -- * in the tree though *) --let config_sep = del /[ \t]+|[ \t]*#.*\n[ \t]*/ " " -- --let config_object = -- [ key /action|global|input|module|parser|timezone|include/ . -- Sep.lbracket . -- config_object_param . ( config_sep . config_object_param )* . -- Sep.rbracket . Util.comment_or_eol ] -- --(* View: users -- Map :omusrmsg: and a list of users, or a single * --*) --let omusrmsg = Util.del_str ":omusrmsg:" . -- Syslog.label_opt_list_or "omusrmsg" (store Syslog.word) -- Syslog.comma "*" -- --(* View: file_tmpl -- File action with a specified template *) --let file_tmpl = Syslog.file . [ label "template" . Util.del_str ";" . store Rx.word ] -- --let dynamic = [ Util.del_str "?" . label "dynamic" . store Rx.word ] -- --let namedpipe = Syslog.pipe . Sep.space . [ label "pipe" . store Syslog.file_r ] -- --let action = Syslog.action | omusrmsg | file_tmpl | dynamic | namedpipe -- --(* Cannot use syslog program because rsyslog does not suppport #! *) --let program = [ label "program" . Syslog.bang . -- ( Syslog.opt_plus | [ Build.xchgs "-" "reverse" ] ) . -- Syslog.programs . Util.eol . Syslog.entries ] -- --(* Cannot use syslog hostname because rsyslog does not suppport #+/- *) --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 . -- actions . Util.eol ] -- --(* View: prop_filter -- Parses property-based filters, which start with ":" and the property name *) --let prop_filter = -- let sep = Sep.comma . Util.del_opt_ws " " -- 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 [ label "filter" . prop_name . sep . prop_oper . sep . prop_val . -- Sep.space . actions . Util.eol ] -- --let entries = ( Syslog.empty | Util.comment | entry | macro | config_object | prop_filter )* -- --let lns = entries . ( program | hostname )* -- --let filter = incl "/etc/rsyslog.conf" -- . incl "/etc/rsyslog.d/*" -- . Util.stdexcl -- --let xfm = transform lns filter -+(* -+Module: Rsyslog -+ Parses /etc/rsyslog.conf -+ -+Author: Raphael Pinson -+ -+About: Reference -+ This lens tries to keep as close as possible to `man 5 rsyslog.conf` where possible. -+ -+About: License -+ This file is licenced under the LGPL v2+, like the rest of Augeas. -+ -+About: Lens Usage -+ To be documented -+ -+About: Configuration files -+ This lens applies to /etc/rsyslog.conf. See . -+ -+About: Examples -+ The file contains various examples and tests. -+*) -+module Rsyslog = -+ -+autoload xfm -+ -+let macro_rx = /[^,# \n\t][^#\n]*[^,# \n\t]|[^,# \n\t]/ -+let macro = [ key /$[A-Za-z0-9]+/ . Sep.space . store macro_rx . Util.comment_or_eol ] -+ -+let config_object_param = [ key /[A-Za-z.]+/ . Sep.equal . Quote.dquote -+ . store /[^"]+/ . Quote.dquote ] -+(* Inside config objects, we allow embedded comments; we don't surface them -+ * in the tree though *) -+let config_sep = del /[ \t]+|[ \t]*#.*\n[ \t]*/ " " -+ -+let config_object = -+ [ key /action|global|input|module|parser|timezone|include/ . -+ Sep.lbracket . -+ config_object_param . ( config_sep . config_object_param )* . -+ Sep.rbracket . Util.comment_or_eol ] -+ -+(* View: users -+ Map :omusrmsg: and a list of users, or a single * -+*) -+let omusrmsg = Util.del_str ":omusrmsg:" . -+ Syslog.label_opt_list_or "omusrmsg" (store Syslog.word) -+ Syslog.comma "*" -+ -+(* View: file_tmpl -+ File action with a specified template *) -+let file_tmpl = Syslog.file . [ label "template" . Util.del_str ";" . store Rx.word ] -+ -+let dynamic = [ Util.del_str "?" . label "dynamic" . store Rx.word ] -+ -+let namedpipe = Syslog.pipe . Sep.space . [ label "pipe" . store Syslog.file_r ] -+ -+(* View: action_config -+ Handle action(type="..." users="...") syntax *) -+let action_config = -+ [ key "action" . Util.del_str "(" . -+ [ label "params" . store /[^)]+/ ] . Util.del_str ")" ] -+ -+let action = Syslog.action | omusrmsg | file_tmpl | dynamic | namedpipe | action_config -+ -+(* Cannot use syslog program because rsyslog does not suppport #! *) -+let program = [ label "program" . Syslog.bang . -+ ( Syslog.opt_plus | [ Build.xchgs "-" "reverse" ] ) . -+ Syslog.programs . Util.eol . Syslog.entries ] -+ -+(* Cannot use syslog hostname because rsyslog does not suppport #+/- *) -+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 . -+ actions . Util.eol ] -+ -+(* View: prop_filter -+ Parses property-based filters, which start with ":" and the property name *) -+let prop_filter = -+ let sep = Sep.comma . Util.del_opt_ws " " -+ 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 [ label "filter" . prop_name . sep . prop_oper . sep . prop_val . -+ Sep.space . actions . Util.eol ] -+ -+(* View: condition -+ Parses if condition blocks, e.g., if $programname != "devd" then { ... } -+*) -+let condition = -+ let cond_rx = /\\$[a-zA-Z0-9_]+[ \t]*(==|!=|=~|!~|>|<|>=|<=)[ \t]*("[^"]*"|[0-9]+)/ in -+ [ key "if" . Sep.space . -+ [ label "condition" . store cond_rx ] . Sep.space . -+ Util.del_str "then" . Sep.space . Util.del_str "{" . (del /[ \t\n]*/ "" ) . -+ (entry | Util.comment | Syslog.empty)* . -+ Util.del_str "}" . (del /[ \t\n]*/ "" ) . Util.eol ] -+ -+(* Fallback for unparsed lines *) -+let invalid = [ label "invalid" . store /[^\n]*\n/ ] -+ -+let entries = ( Syslog.empty | Util.comment | entry | macro | config_object | prop_filter | condition | invalid )* -+ -+let lns = entries . ( program | hostname | condition )* -+ -+let filter = incl "/etc/rsyslog.conf" -+ . incl "/etc/rsyslog.d/*" -+ . Util.stdexcl -+ -+let xfm = transform lns filter - -From 1b3b1754b2e9624cab49d0dcc32bc55ba2460ef7 Mon Sep 17 00:00:00 2001 -From: Xavier Beaudouin -Date: Mon, 14 Jul 2025 17:03:39 +0700 -Subject: [PATCH 2/3] Removed uncessary carriage return. - ---- - lenses/rsyslog.aug | 236 ++++++++++++++++++++++----------------------- - 1 file changed, 118 insertions(+), 118 deletions(-) - -diff --git a/lenses/rsyslog.aug b/lenses/rsyslog.aug -index 4d56d37cb..b51f6fe8c 100644 ---- a/lenses/rsyslog.aug -+++ b/lenses/rsyslog.aug -@@ -1,118 +1,118 @@ --(* --Module: Rsyslog -- Parses /etc/rsyslog.conf -- --Author: Raphael Pinson -- --About: Reference -- This lens tries to keep as close as possible to `man 5 rsyslog.conf` where possible. -- --About: License -- This file is licenced under the LGPL v2+, like the rest of Augeas. -- --About: Lens Usage -- To be documented -- --About: Configuration files -- This lens applies to /etc/rsyslog.conf. See . -- --About: Examples -- The file contains various examples and tests. --*) --module Rsyslog = -- --autoload xfm -- --let macro_rx = /[^,# \n\t][^#\n]*[^,# \n\t]|[^,# \n\t]/ --let macro = [ key /$[A-Za-z0-9]+/ . Sep.space . store macro_rx . Util.comment_or_eol ] -- --let config_object_param = [ key /[A-Za-z.]+/ . Sep.equal . Quote.dquote -- . store /[^"]+/ . Quote.dquote ] --(* Inside config objects, we allow embedded comments; we don't surface them -- * in the tree though *) --let config_sep = del /[ \t]+|[ \t]*#.*\n[ \t]*/ " " -- --let config_object = -- [ key /action|global|input|module|parser|timezone|include/ . -- Sep.lbracket . -- config_object_param . ( config_sep . config_object_param )* . -- Sep.rbracket . Util.comment_or_eol ] -- --(* View: users -- Map :omusrmsg: and a list of users, or a single * --*) --let omusrmsg = Util.del_str ":omusrmsg:" . -- Syslog.label_opt_list_or "omusrmsg" (store Syslog.word) -- Syslog.comma "*" -- --(* View: file_tmpl -- File action with a specified template *) --let file_tmpl = Syslog.file . [ label "template" . Util.del_str ";" . store Rx.word ] -- --let dynamic = [ Util.del_str "?" . label "dynamic" . store Rx.word ] -- --let namedpipe = Syslog.pipe . Sep.space . [ label "pipe" . store Syslog.file_r ] -- --(* View: action_config -- Handle action(type="..." users="...") syntax *) --let action_config = -- [ key "action" . Util.del_str "(" . -- [ label "params" . store /[^)]+/ ] . Util.del_str ")" ] -- --let action = Syslog.action | omusrmsg | file_tmpl | dynamic | namedpipe | action_config -- --(* Cannot use syslog program because rsyslog does not suppport #! *) --let program = [ label "program" . Syslog.bang . -- ( Syslog.opt_plus | [ Build.xchgs "-" "reverse" ] ) . -- Syslog.programs . Util.eol . Syslog.entries ] -- --(* Cannot use syslog hostname because rsyslog does not suppport #+/- *) --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 . -- actions . Util.eol ] -- --(* View: prop_filter -- Parses property-based filters, which start with ":" and the property name *) --let prop_filter = -- let sep = Sep.comma . Util.del_opt_ws " " -- 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 [ label "filter" . prop_name . sep . prop_oper . sep . prop_val . -- Sep.space . actions . Util.eol ] -- --(* View: condition -- Parses if condition blocks, e.g., if $programname != "devd" then { ... } --*) --let condition = -- let cond_rx = /\\$[a-zA-Z0-9_]+[ \t]*(==|!=|=~|!~|>|<|>=|<=)[ \t]*("[^"]*"|[0-9]+)/ in -- [ key "if" . Sep.space . -- [ label "condition" . store cond_rx ] . Sep.space . -- Util.del_str "then" . Sep.space . Util.del_str "{" . (del /[ \t\n]*/ "" ) . -- (entry | Util.comment | Syslog.empty)* . -- Util.del_str "}" . (del /[ \t\n]*/ "" ) . Util.eol ] -- --(* Fallback for unparsed lines *) --let invalid = [ label "invalid" . store /[^\n]*\n/ ] -- --let entries = ( Syslog.empty | Util.comment | entry | macro | config_object | prop_filter | condition | invalid )* -- --let lns = entries . ( program | hostname | condition )* -- --let filter = incl "/etc/rsyslog.conf" -- . incl "/etc/rsyslog.d/*" -- . Util.stdexcl -- --let xfm = transform lns filter -+(* -+Module: Rsyslog -+ Parses /etc/rsyslog.conf -+ -+Author: Raphael Pinson -+ -+About: Reference -+ This lens tries to keep as close as possible to `man 5 rsyslog.conf` where possible. -+ -+About: License -+ This file is licenced under the LGPL v2+, like the rest of Augeas. -+ -+About: Lens Usage -+ To be documented -+ -+About: Configuration files -+ This lens applies to /etc/rsyslog.conf. See . -+ -+About: Examples -+ The file contains various examples and tests. -+*) -+module Rsyslog = -+ -+autoload xfm -+ -+let macro_rx = /[^,# \n\t][^#\n]*[^,# \n\t]|[^,# \n\t]/ -+let macro = [ key /$[A-Za-z0-9]+/ . Sep.space . store macro_rx . Util.comment_or_eol ] -+ -+let config_object_param = [ key /[A-Za-z.]+/ . Sep.equal . Quote.dquote -+ . store /[^"]+/ . Quote.dquote ] -+(* Inside config objects, we allow embedded comments; we don't surface them -+ * in the tree though *) -+let config_sep = del /[ \t]+|[ \t]*#.*\n[ \t]*/ " " -+ -+let config_object = -+ [ key /action|global|input|module|parser|timezone|include/ . -+ Sep.lbracket . -+ config_object_param . ( config_sep . config_object_param )* . -+ Sep.rbracket . Util.comment_or_eol ] -+ -+(* View: users -+ Map :omusrmsg: and a list of users, or a single * -+*) -+let omusrmsg = Util.del_str ":omusrmsg:" . -+ Syslog.label_opt_list_or "omusrmsg" (store Syslog.word) -+ Syslog.comma "*" -+ -+(* View: file_tmpl -+ File action with a specified template *) -+let file_tmpl = Syslog.file . [ label "template" . Util.del_str ";" . store Rx.word ] -+ -+let dynamic = [ Util.del_str "?" . label "dynamic" . store Rx.word ] -+ -+let namedpipe = Syslog.pipe . Sep.space . [ label "pipe" . store Syslog.file_r ] -+ -+(* View: action_config -+ Handle action(type="..." users="...") syntax *) -+let action_config = -+ [ key "action" . Util.del_str "(" . -+ [ label "params" . store /[^)]+/ ] . Util.del_str ")" ] -+ -+let action = Syslog.action | omusrmsg | file_tmpl | dynamic | namedpipe | action_config -+ -+(* Cannot use syslog program because rsyslog does not suppport #! *) -+let program = [ label "program" . Syslog.bang . -+ ( Syslog.opt_plus | [ Build.xchgs "-" "reverse" ] ) . -+ Syslog.programs . Util.eol . Syslog.entries ] -+ -+(* Cannot use syslog hostname because rsyslog does not suppport #+/- *) -+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 . -+ actions . Util.eol ] -+ -+(* View: prop_filter -+ Parses property-based filters, which start with ":" and the property name *) -+let prop_filter = -+ let sep = Sep.comma . Util.del_opt_ws " " -+ 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 [ label "filter" . prop_name . sep . prop_oper . sep . prop_val . -+ Sep.space . actions . Util.eol ] -+ -+(* View: condition -+ Parses if condition blocks, e.g., if $programname != "devd" then { ... } -+*) -+let condition = -+ let cond_rx = /\\$[a-zA-Z0-9_]+[ \t]*(==|!=|=~|!~|>|<|>=|<=)[ \t]*("[^"]*"|[0-9]+)/ in -+ [ key "if" . Sep.space . -+ [ label "condition" . store cond_rx ] . Sep.space . -+ Util.del_str "then" . Sep.space . Util.del_str "{" . (del /[ \t\n]*/ "" ) . -+ (entry | Util.comment | Syslog.empty)* . -+ Util.del_str "}" . (del /[ \t\n]*/ "" ) . Util.eol ] -+ -+(* Fallback for unparsed lines *) -+let invalid = [ label "invalid" . store /[^\n]*\n/ ] -+ -+let entries = ( Syslog.empty | Util.comment | entry | macro | config_object | prop_filter | condition | invalid )* -+ -+let lns = entries . ( program | hostname | condition )* -+ -+let filter = incl "/etc/rsyslog.conf" -+ . incl "/etc/rsyslog.d/*" -+ . Util.stdexcl -+ -+let xfm = transform lns filter - -From 3e34678abf8a29e9125221a890e6efb826bd36ff Mon Sep 17 00:00:00 2001 -From: Xavier Beaudouin -Date: Mon, 14 Jul 2025 17:11:16 +0700 -Subject: [PATCH 3/3] Cleanup some unneeded comments. - ---- - lenses/rsyslog.aug | 6 +----- - 1 file changed, 1 insertion(+), 5 deletions(-) - -diff --git a/lenses/rsyslog.aug b/lenses/rsyslog.aug -index b51f6fe8c..ddd4829cf 100644 ---- a/lenses/rsyslog.aug -+++ b/lenses/rsyslog.aug -@@ -53,11 +53,7 @@ let dynamic = [ Util.del_str "?" . label "dynamic" . store Rx.word ] - - let namedpipe = Syslog.pipe . Sep.space . [ label "pipe" . store Syslog.file_r ] - --(* View: action_config -- Handle action(type="..." users="...") syntax *) --let action_config = -- [ key "action" . Util.del_str "(" . -- [ label "params" . store /[^)]+/ ] . Util.del_str ")" ] -+let action_config = [ key "action" . Util.del_str "(" . [ label "params" . store /[^)]+/ ] . Util.del_str ")" ] - - let action = Syslog.action | omusrmsg | file_tmpl | dynamic | namedpipe | action_config -