From 74a3d654ce30ec83453f12a5939a91fdb94e8bb0 Mon Sep 17 00:00:00 2001 From: Eric Gerbier Date: Fri, 6 Sep 2024 16:42:29 +0200 Subject: [PATCH] support filetrigger (merged from github repo) --- optional_tags.cfg | 2 + plugins/demo.plug | 2 + processing_func.src | 18 +++++++++ rpmrebuild_parser.src | 89 +++++++++++++++++++++++++++++++++++++++++-- rpmrebuild_rpmqf.src | 10 +++++ spec_func.src | 8 ++++ 6 files changed, 125 insertions(+), 4 deletions(-) diff --git a/optional_tags.cfg b/optional_tags.cfg index fe90209..fc69433 100644 --- a/optional_tags.cfg +++ b/optional_tags.cfg @@ -33,3 +33,5 @@ SUPPLEMENTVERSION d_line # only in rpm 5 TRIGGERCONDS d_word TRIGGERTYPE d_word +FILETRIGGERCONDS d_line +TRANSFILETRIGGERCONDS d_line diff --git a/plugins/demo.plug b/plugins/demo.plug index d377f7b..fcafbbb 100644 --- a/plugins/demo.plug +++ b/plugins/demo.plug @@ -30,6 +30,8 @@ change-spec-requires demo.sh change-spec-description demo.sh change-spec-files demo.sh change-spec-triggers demo.sh +change-spec-filetriggers demo.sh +change-spec-transfiletriggers demo.sh change-spec-pre demo.sh change-spec-pretrans demo.sh change-spec-post demo.sh diff --git a/processing_func.src b/processing_func.src index eb8beaa..4785f9c 100755 --- a/processing_func.src +++ b/processing_func.src @@ -41,6 +41,8 @@ function processing_init SPEC_RECOMMENDS=${SPEC_DIR}/recommends SPEC_SUPPLEMENTS=${SPEC_DIR}/supplements SPEC_TRIGGERS=${SPEC_DIR}/triggers + SPEC_FILETRIGGERS=${SPEC_DIR}/filetriggers + SPEC_TRANSFILETRIGGERS=${SPEC_DIR}/transfiletriggers SPEC_VERIFYSCRIPT=${SPEC_DIR}/verifyscript spec_index=1 @@ -64,6 +66,8 @@ function processing_init si_recommends=1 si_supplements=1 si_triggers=1 + si_filetriggers=1 + si_transfiletriggers=1 si_verifyscript=1 si_rpmqf=1 } @@ -224,6 +228,20 @@ function processing_spec_change SPEC_OUT=$SPEC_TRIGGERS.$si_triggers ;; + change-spec-filetriggers | \ + edit-filetriggers) + SPEC_IN=$SPEC_FILETRIGGERS.$si_filetriggers + si_filetriggers=$(( si_filetriggers + 1 )) + SPEC_OUT=$SPEC_FILETRIGGERS.$si_filetriggers + ;; + + change-spec-transfiletriggers | \ + edit-transfiletriggers) + SPEC_IN=$SPEC_TRANSFILETRIGGERS.$si_transfiletriggers + si_transfiletriggers=$(( si_transfiletriggers + 1 )) + SPEC_OUT=$SPEC_TRANSFILETRIGGERS.$si_transfiletriggers + ;; + change-spec-verifyscript | \ edit-verifyscript) SPEC_IN=$SPEC_VERIFYSCRIPT.$si_verifyscript diff --git a/rpmrebuild_parser.src b/rpmrebuild_parser.src index f0261fe..46c640b 100755 --- a/rpmrebuild_parser.src +++ b/rpmrebuild_parser.src @@ -81,6 +81,8 @@ options: --change-spec-description= --change-spec-files= --change-spec-triggers= + --change-spec-filetriggers= + --change-spec-transfiletriggers= --change-spec-pre= --change-spec-pretrans= --change-spec-post= @@ -105,6 +107,8 @@ options: --edit-description --edit-files --edit-triggers + --edit-filetriggers + --edit-transfiletriggers --edit-pre --edit-pretrans --edit-post @@ -358,11 +362,26 @@ function ProcessLongOptions change-spec-f | \ change-spec-fi | \ change-spec-fil | \ - change-spec-file | \ + change-spec-file) + AmbiguousOption + return 1 + ;; + change-spec-files) LONG_OPTION="change-spec-files" ;; + change-spec-filet | \ + change-spec-filetr | \ + change-spec-filetri | \ + change-spec-filetrig | \ + change-spec-filetrigg | \ + change-spec-filetrigge | \ + change-spec-filetrigger | \ + change-spec-filetriggers) + LONG_OPTION="change-spec-filetriggers" + ;; + change-spec-o | \ change-spec-ob | \ change-spec-obs | \ @@ -475,7 +494,28 @@ function ProcessLongOptions ;; change-spec-t | \ - change-spec-tr | \ + change-spec-tr) + AmbiguousOption + return 1 + ;; + + change-spec-tra | \ + change-spec-tran | \ + change-spec-trans | \ + change-spec-transf | \ + change-spec-transfi | \ + change-spec-transfile | \ + change-spec-transfilet | \ + change-spec-transfiletr | \ + change-spec-transfiletri | \ + change-spec-transfiletrig | \ + change-spec-transfiletrigg | \ + change-spec-transfiletrigge | \ + change-spec-transfiletrigger | \ + change-spec-transfiletriggers) + LONG_OPTION="change-spec-transfiletriggers" + ;; + change-spec-tri | \ change-spec-trig | \ change-spec-trigg | \ @@ -619,11 +659,27 @@ function ProcessLongOptions edit-f | \ edit-fi | \ edit-fil | \ - edit-file | \ + edit-file) + AmbiguousOption + return 1 + ;; + edit-files) LONG_OPTION='edit-files' ;; + edit-filet | \ + edit-filetr | \ + edit-filetri | \ + edit-filetri | \ + edit-filetrig | \ + edit-filetrigg | \ + edit-filetrigge | \ + edit-filetrigger | \ + edit-filetriggers) + LONG_OPTION='edit-filetriggers' + ;; + edit-o | \ edit-ob | \ edit-obs | \ @@ -749,7 +805,28 @@ function ProcessLongOptions ;; edit-t | \ - edit-tr | \ + edit-tr) + AmbiguousOption + return 1 + ;; + + edit-tra | \ + edit-tran | \ + edit-trans | \ + edit-transf | \ + edit-transfi | \ + edit-transfile | \ + edit-transfilet | \ + edit-transfiletr | \ + edit-transfiletri | \ + edit-transfiletrig | \ + edit-transfiletrigg | \ + edit-transfiletrigge | \ + edit-transfiletrigger | \ + edit-transfiletriggers) + LONG_OPTION='edit-transfiletriggers' + ;; + edit-tri | \ edit-trig | \ edit-trigg | \ @@ -1038,6 +1115,7 @@ function ProcessLongOptions change-spec-description | \ change-spec-enhances | \ change-spec-files | \ + change-spec-filetriggers | \ change-spec-obsoletes | \ change-spec-pre | \ change-spec-pretrans | \ @@ -1051,6 +1129,7 @@ function ProcessLongOptions change-spec-recommends | \ change-spec-suggests | \ change-spec-supplements | \ + change-spec-transfiletriggers | \ change-spec-triggers | \ change-spec-verifyscript | \ change-spec-whole) @@ -1095,6 +1174,7 @@ function ProcessLongOptions edit-description | \ edit-enhances | \ edit-files | \ + edit-filetriggers | \ edit-obsoletes | \ edit-pre | \ edit-pretrans | \ @@ -1108,6 +1188,7 @@ function ProcessLongOptions edit-suggests | \ edit-recommends | \ edit-supplements | \ + edit-transfiletriggers | \ edit-triggers | \ edit-verifyscript | \ edit-whole) diff --git a/rpmrebuild_rpmqf.src b/rpmrebuild_rpmqf.src index 04d62ea..5f4c574 100755 --- a/rpmrebuild_rpmqf.src +++ b/rpmrebuild_rpmqf.src @@ -146,6 +146,16 @@ echo echo '[%%trigger%{TRIGGERTYPE} -p %{TRIGGERSCRIPTPROG} -- %{TRIGGERCONDS}\n%|TRIGGERSCRIPTS?{%{TRIGGERSCRIPTS}\n}|]' } +function qf_spec_filetriggers { +echo +echo '[%%filetrigger%{FILETRIGGERTYPE} -p %{FILETRIGGERSCRIPTPROG} -P %{FILETRIGGERPRIORITIES} -- %{FILETRIGGERCONDS}\n%|FILETRIGGERSCRIPTS?{%{FILETRIGGERSCRIPTS}\n}|]' +} + +function qf_spec_transfiletriggers { +echo +echo '[%%transfiletrigger%{TRANSFILETRIGGERTYPE} -p %{TRANSFILETRIGGERSCRIPTPROG} -P %{TRANSFILETRIGGERPRIORITIES} -- %{TRANSFILETRIGGERCONDS}\n%|TRANSFILETRIGGERSCRIPTS?{%{TRANSFILETRIGGERSCRIPTS}\n}|]' +} + function qf_spec_pre { echo echo '%|PREINPROG?{%%pre -p %{PREINPROG}\n%|PREIN?{[%{PREIN}\n]}|}:{%|PREIN?{\n%%pre\n[%{PREIN}\n]}|}|' diff --git a/spec_func.src b/spec_func.src index 6a9bff8..f919bd7 100755 --- a/spec_func.src +++ b/spec_func.src @@ -172,6 +172,8 @@ function SpecGeneration spec_query qf_spec_description > "$SPEC_DESCRIPTION.$i" || Error "(SpecGeneration) qf_spec_description" || return spec_files > "$SPEC_FILES.$i" || Error "(SpecGeneration) spec_files" || return spec_query qf_spec_triggers > "$SPEC_TRIGGERS.$i" || Error "(SpecGeneration) qf_spec_triggers" || return + spec_query qf_spec_filetriggers > "$SPEC_FILETRIGGERS.$i" || Error "(SpecGeneration) qf_spec_filetriggers" || return + spec_query qf_spec_transfiletriggers > "$SPEC_TRANSFILETRIGGERS.$i" || Error "(SpecGeneration) qf_spec_transfiletriggers" || return spec_query qf_spec_pre > "$SPEC_PRE.$i" || Error "(SpecGeneration) qf_spec_pre" || return spec_query qf_spec_pretrans > "$SPEC_PRETRANS.$i" || Error "(SpecGeneration) qf_spec_pretrans" || return spec_query qf_spec_post > "$SPEC_POST.$i" || Error "(SpecGeneration) qf_spec_post" || return @@ -242,6 +244,8 @@ function spec_concatenate # %%triger -> %trigger (in begin of line) local sed_trigger="/^%%trigger/s/^%%/%/1" + local sed_filetrigger="/^%%filetrigger/s/^%%/%/1" + local sed_transfiletrigger="/^%%transfiletrigger/s/^%%/%/1" # %%pre -> %pre (in begin of line) It'll work for %%preun too. local sed_pre="/^%%pre/s/^%%/%/1" # %%post -> %post (in begin of line) It'll work for %%postun too. @@ -251,11 +255,15 @@ function spec_concatenate sed \ -e "$sed_double_percent" \ -e "$sed_trigger" \ + -e "$sed_filetrigger" \ + -e "$sed_transfiletrigger" \ -e "$sed_pre" \ -e "$sed_post" \ -e "$sed_verifyscript" \ -e "$sed_global" \ "$SPEC_TRIGGERS.$si_triggers" \ + "$SPEC_FILETRIGGERS.$si_filetriggers" \ + "$SPEC_TRANSFILETRIGGERS.$si_transfiletriggers" \ "$SPEC_PRE.$si_pre" \ "$SPEC_PRETRANS.$si_pretrans" \ "$SPEC_POST.$si_post" \ -- 2.46.0