From 0336b36fa5ae1620b7d490cbad1c1420749d5bb7 Mon Sep 17 00:00:00 2001 From: Eric Gerbier Date: Sat, 2 Nov 2024 17:42:33 +0100 Subject: [PATCH] - bugfix comment missing with spec-only on rpm file - bugfix file with space --- processing_func.src | 42 ++++++++++++++++++++---------------------- rpmrebuild.sh | 2 +- rpmrebuild_files.sh | 17 ++--------------- rpmrebuild_ghost.sh | 6 +++++- rpmrebuild_lib.src | 9 ++------- 5 files changed, 30 insertions(+), 46 deletions(-) diff --git a/processing_func.src b/processing_func.src index 09f8a0f..00e95b8 100755 --- a/processing_func.src +++ b/processing_func.src @@ -411,47 +411,45 @@ function CheckMissing { # %dir %attr(0755, root, root) "/usr/lib/rpmrebuild" while :; do - read line + local line + local OLD_IFS + OLD_IFS="$IFS" + IFS="" + read -r line + IFS="$OLD_IFS" + # test end of input [ -z "$line" ] && break + local file + local is_ghost file=$( echo $line | cut -d\" -f2 ) is_ghost=$( echo $line | grep '%ghost') - # quote meta characters - # see also in rpmrebuild_files.sh - #file=$( quote $file ) - if [ -n "$RPMREBUILD_NOQUOTE" ] - then - # no quote - echo - else - case "$line" in - # replace * by \* - *\**) line=${line//\*/\\*} ;; - # replace \ by \\ - *\\*) line=${line//\\/\\\\} ;; - *) ;; - esac - fi + # test real file + tst_file=$( echo -e "$file" ) if [ -n "$is_ghost" ] then # ghost file may be missing - echo $line + echo "$line" elif [ -n "$RPMREBUILD_package_flag" ] then # work on rpm file # check in buildroot tar expand - if [ -e "${BUILDROOT}/${file}" ] + if [ "$RPMREBUILD_spec_only" = "yes" ] + then + # no way to check because no buildroot, no file extracted + echo -E "$line" + elif [ -e "${BUILDROOT}/${tst_file}" ] then - echo $line + echo -E "$line" else echo "# MISSING: $line" fi else # work on installed package - if [ -e "${file}" ] + if [ -e "${tst_file}" ] then - echo $line + echo -E "$line" else echo "# MISSING: $line" fi diff --git a/rpmrebuild.sh b/rpmrebuild.sh index cdba61d..e4c2790 100755 --- a/rpmrebuild.sh +++ b/rpmrebuild.sh @@ -142,7 +142,7 @@ function RpmUnpack # create buildroot if necessary function CreateBuildRoot { - Debug '(CreateBuildRoot)' + Debug "(CreateBuildRoot) $BUILDROOT" if [ -z "$RPMREBUILD_package_flag" ]; then # installed package if [ "$need_change_files" = "yes" ]; then diff --git a/rpmrebuild_files.sh b/rpmrebuild_files.sh index 4a4b6eb..9f844ba 100755 --- a/rpmrebuild_files.sh +++ b/rpmrebuild_files.sh @@ -101,20 +101,7 @@ while :; do #[ -n "$wild" ] && file=$(echo "$file"|sed 's/\*/\\*/') # quick and portable # quote metacharacters, see also CheckMissing (processing_func.src) -# file=$( quote $file ) - if [ -n "$RPMREBUILD_NOQUOTE" ] - then - # do not quote - echo - else - case "$file" in - # replace * by \* - *\**) file=${file//\*/\\*} ;; - # replace \ by \\ - *\\*) file=${file//\\/\\\\} ;; - *) ;; - esac - fi + file=$( Quote "$file" ) # comment missing files is now done after in CheckMissing func (processing_func.src) # to be able to work also on rpm files (not expanded yet in this state) @@ -260,6 +247,6 @@ while :; do esac fi - echo "${lang_str}${dir_str}${fflags_str}${attr_str}${caps_str}${verify_str}\"${file}\"" + echo -E "${lang_str}${dir_str}${fflags_str}${attr_str}${caps_str}${verify_str}\"${file}\"" done || Critical "$MY_BASENAME done" exit 0 diff --git a/rpmrebuild_ghost.sh b/rpmrebuild_ghost.sh index dded292..4d6f388 100755 --- a/rpmrebuild_ghost.sh +++ b/rpmrebuild_ghost.sh @@ -59,7 +59,11 @@ while :; do read file_verify read file_lang read file_cap - read file + # Trailer space may be part of filename. + OLD_IFS="$IFS" + IFS="" + read -r file + IFS="$OLD_IFS" case "$file_flags" in *g*) diff --git a/rpmrebuild_lib.src b/rpmrebuild_lib.src index e1021e1..72fd1c4 100755 --- a/rpmrebuild_lib.src +++ b/rpmrebuild_lib.src @@ -136,18 +136,13 @@ function TestAwk fi } ############################################################################### -# todo : quote meta characters is used in 2 subs -# rpmrebuild_files.sh -# processing_func.src : CheckMissing +# quote meta characters is used in rpmrebuild_files.sh function Quote { local x x="$1" - if [ -n "$RPMREBUILD_NOQUOTE" ] + if [ -z "$RPMREBUILD_NOQUOTE" ] then - # do not quote - echo - else case "$x" in # replace * by \* *\**) x=${x//\*/\\*} ;; -- 2.46.0