Broken compile scripts in LVM
Folks,
Some of the scripts use echo "string" > /dev/stderr when instead they should be using echo "string" >&2. I have attached a patch that fixes this problem. The result is that in automated builds, the stdout gets stomped if you use the first technique (resulting in loss of logging data).
Thanks.
-steve
scripts/iopver +5 -7
@@ -48,21 +48,19 @@ sed -e 's/.*LVM_LIB_IOP_VERSION[[:space:]]*\([[:digit:]]*\).*/\1/'`; if [ -z "$ver1" ]; then - echo "Error: iopver can't determine the IOP version from $file1" > \ - /dev/stderr; + echo "Error: iopver can't determine the IOP version from $file1" >&2 ; exit -1; fi if [ -z "$ver2" ]; then - echo "Error: iopver can't determine the IOP version from $file2" > \ - /dev/stderr; + echo "Error: iopver can't determine the IOP version from $file2" >&2 ; exit -2; fi if [ "$ver1" != "$ver2" ]; then - echo -e "Error: iopver reading inconsistent IOP versions" > /dev/stderr - echo -e "IOP version $ver1 reported in $file1" > /dev/stderr - echo -e "IOP version $ver2 reported in $file2" > /dev/stderr + echo -e "Error: iopver reading inconsistent IOP versions" >&2 + echo -e "IOP version $ver1 reported in $file1" >&2 + echo -e "IOP version $ver2 reported in $file2" >&2 exit -3; fi echo "$ver1"
scripts/linuxver +2 -2
@@ -42,7 +42,7 @@ file="${linux_src}/Makefile"; if [ ! -e $file ]; then - echo "linuxver - $file does not exist" > /dev/stderr; + echo "linuxver - $file does not exist" >&2; exit -1; fi
@@ -69,7 +69,7 @@ echo "${major}.${minor}.${sublvl}"; fi; else - echo "linuxver: Unable to determine version of linux kernel in ${linux_src}" > /dev/stderr; + echo "linuxver: Unable to determine version of linux kernel in ${linux_src}" >&2; exit -2; fi
scripts/lvmver +1 -2
@@ -46,8 +46,7 @@ sed -e 's/\(#define[[:blank:]]LVM_RELEASE_NAME[[:blank:]]*"\)\([-.[:alnum:]^\n]*\)\(".*\)/\2/'`; if [ -z "$ver" ]; then - echo "Error: iopver can't determine the IOP version from $file" > \ - /dev/stderr; + echo "Error: iopver can't determine the IOP version from $file" >&2; exit -1; fi
scripts/patch_fragment.sh +1 -1
@@ -22,7 +22,7 @@ relative=${orig:$((${#kernel_path} + 1))}; if ! [ -a $new ]; then - echo "$new not found" > /dev/stderr + echo "$new not found" >&2 exit 2; fi
Steven,
I have changed that in CVS (Branch: LVM_BRANCH_1-0) a couple of days ago and announced that on lvm-devel (the list for patches and development discussions). Jeremy A. Puhlman pointed it out on October 4th already.
Quoted 19 lines · Steven Dake
Folks,
Some of the scripts use echo "string" >
/dev/stderrwhen instead they should be using echo "string" >&2. I have attached a patch that fixes this problem. The result is that in automated builds, the stdout gets stomped if you use the first technique (resulting in loss of logging data).Thanks.
-steve
diff -u3 lvm-1.0.5/scripts/iopver lvm-1.0.5-fixed/scripts/iopver
scripts/iopver +0
-1@@ -48,21 +48,19 @@ sed -e 's/.*LVM_LIB_IOP_VERSION[[:space:]]*\([[:digit:]]*\).*/\1/'`; if [ -z "$ver1" ]; then - echo "Error: iopver can't determine the IOP version from $file1" > \
<SNIP>
Quoted 5 lines
scripts/iopver +1
-1- echo "$new not found" > /dev/stderr + echo "$new not found" >&2 exit 2; fi
Signature · 15 lines
Regards,
Heinz -- The LVM Guy --
*** Software bugs are stupid.
Nevertheless it needs not so stupid people to solve them ***
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Heinz Mauelshagen Sistina Software Inc.
Senior Consultant/Developer Am Sonnenhang 11
56242 Marienrachdorf
Germany
[email protected] +49 2626 141200
FAX 924446
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-Heinz,
Thanks Jeremy had asked me to forward the patch on. I guess he also did it himself
-steve
Quoted 46 lines · Heinz J . Mauelshagen
Steven,
I have changed that in CVS (Branch: LVM_BRANCH_1-0) a couple of days ago and announced that on lvm-devel (the list for patches and development discussions). Jeremy A. Puhlman pointed it out on October 4th already.
Quoted 22 lines · Steven Dake
Folks,
Some of the scripts use echo "string" >
/dev/stderrwhen instead they should be using echo "string" >&2. I have attached a patch that fixes this problem. The result is that in automated builds, the stdout gets stomped if you use the first technique (resulting in loss of logging data).Thanks.
-steve
diff -u3 lvm-1.0.5/scripts/iopver lvm-1.0.5-fixed/scripts/iopver
scripts/iopver +0
-0@@ -48,21 +48,19 @@ sed -e 's/.*LVM_LIB_IOP_VERSION[[:space:]]*\([[:digit:]]*\).*/\1/'`;if [ -z "$ver1" ]; then
scripts/iopver +0
-1- echo "Error: iopver can't determine the IOP version from $file1" > \<SNIP>
Quoted 7 lines
scripts/iopver +1
-1- echo "$new not found" > /dev/stderr + echo "$new not found" >&2exit 2;fi