From 61c4333040040b42d1dd897dbe96b50dea3d1813 Mon Sep 17 00:00:00 2001 From: Stefan Fiedler Date: Tue, 2 May 2006 14:29:32 +0000 Subject: [PATCH] Stefan Fiedler: scripts/Build-Pkg: fix var/adm files creation; no duplicate entries in cksums and md5sums files, correct checksums on all other files. misc/tools-source/getfiles.c: filter non-directory files, not regular files. [2006042722031485110] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@7571 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- misc/tools-source/getfiles.c | 2 +- scripts/Build-Pkg | 58 ++++++++++++++++++++---------------- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/misc/tools-source/getfiles.c b/misc/tools-source/getfiles.c index cb30c1b0e..20c0379f7 100644 --- a/misc/tools-source/getfiles.c +++ b/misc/tools-source/getfiles.c @@ -34,7 +34,7 @@ int main(int argc, char ** argv) { while ( fgets(buf, 512, stdin) != NULL && (fn = strchr(buf, ' ')) != NULL ) { if ( (n = strchr(++fn, '\n')) != NULL ) *n = '\0'; - if ( !stat(fn,&st) && S_ISREG(st.st_mode) ) + if ( !stat(fn,&st) && !S_ISDIR(st.st_mode) ) puts(fn); } return 0; diff --git a/scripts/Build-Pkg b/scripts/Build-Pkg index e353fca0b..aa19843a1 100755 --- a/scripts/Build-Pkg +++ b/scripts/Build-Pkg @@ -1075,35 +1075,9 @@ abort() { done } | sort -u > var/adm/flists/$spkg - if [ $stagelevel -ge 2 -a $nopostinst = 0 -a -d /var/adm/postinstall ]; then - cp var/adm/flists/$spkg "$(mktemp var/adm/postinstall/${spkg}-install.XXXXXX)" - fi - echo "<$spkg> Creating package dependencies file ..." sed "s,^[^ ]*,$spkg:," < $builddir/dependencies.txt > var/adm/dependencies/$spkg - echo "<$spkg> Creating md5sum and cksum files ..." - getfiles < var/adm/flists/$spkg > $builddir/files.lst - if [ -s $builddir/files.lst ] ; then - while read file ; do - [[ "$file" = "var/adm/*" ]] && continue - [ -z "${file//[ ]/}" ] && continue - if [ -b "$file" -o -c "$file" -o -p "$file" -o -L "$file" -o -S "$file" ] ; then - echo "X ${file}" >> var/adm/md5sums/$spkg - echo "X $( stat -c %s ${file} ) ${file}" >> var/adm/cksums/$spkg - elif [ ${ROCKCFG_CREATE_CKSUM} -eq 1 ] ; then - md5sum "${file}" >> var/adm/md5sums/$spkg - cksum "${file}" >> var/adm/cksums/$spkg - else - echo "0 ${file}" >> var/adm/md5sums/$spkg - echo "0 $( stat -c %s ${file} ) ${file}" >> var/adm/cksums/$spkg - fi - done < $builddir/files.lst - else - cat /dev/null > var/adm/md5sums/$spkg - cat /dev/null > var/adm/cksums/$spkg - fi - echo "<$spkg> Creating package description ..." # rocksrcck=$(cd $base; md5sum package/*/$pkg/* 2> /dev/null | \ @@ -1150,6 +1124,38 @@ EOT fi done < $base/Documentation/Developers/PKG-DESC-FORMAT } > var/adm/descs/$spkg + + # Create them last so checksums of other var/adm files are correct. + echo "<$spkg> Creating md5sum and cksum files ..." + echo -n > var/adm/cksums/$spkg + echo -n > var/adm/md5sums/$spkg + # getfiles only returns non-directories, suitable for checksum creation. + getfiles < var/adm/flists/$spkg > $builddir/files.lst + if [ -s $builddir/files.lst ] ; then + while read file ; do + [ -z "${file//[ ]/}" ] && continue + # Checksums on these files are volatile. + if [ "$file" = "var/adm/cksums/$spkg" -o \ + "$file" = "var/adm/md5sums/$spkg" -o \ + -b "$file" -o -c "$file" -o -p "$file" -o \ + -L "$file" -o -S "$file" ] ; then + echo "X ${file}" >> var/adm/md5sums/$spkg + echo "X $( stat -c %s ${file} ) ${file}" \ + >> var/adm/cksums/$spkg + elif [ ${ROCKCFG_CREATE_CKSUM} -eq 1 ] ; then + md5sum "${file}" >> var/adm/md5sums/$spkg + cksum "${file}" >> var/adm/cksums/$spkg + else + echo "0 ${file}" >> var/adm/md5sums/$spkg + echo "0 $( stat -c %s ${file} ) ${file}" \ + >> var/adm/cksums/$spkg + fi + done < $builddir/files.lst + fi + + if [ $stagelevel -ge 2 -a $nopostinst = 0 -a -d /var/adm/postinstall ]; then + cp var/adm/flists/$spkg "$(mktemp var/adm/postinstall/${spkg}-install.XXXXXX)" + fi ) done