diff options
author | rhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58> | 2008-12-22 19:27:00 +0000 |
---|---|---|
committer | rhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58> | 2008-12-22 19:27:00 +0000 |
commit | 52a6b2792631217e5e7a96a5bd1577e320b2cdcf (patch) | |
tree | a75b9a6ccb558c3dc1c1321de74df7aece7ff81d /trunk | |
parent | a8a8c9c4225963cd7ad8749a5dd52ca8489f595a (diff) | |
download | simplepkg-52a6b2792631217e5e7a96a5bd1577e320b2cdcf.tar.gz simplepkg-52a6b2792631217e5e7a96a5bd1577e320b2cdcf.tar.bz2 |
attempting to fix #46
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@705 04377dda-e619-0410-9926-eae83683ac58
Diffstat (limited to 'trunk')
-rw-r--r-- | trunk/Makefile | 1 | ||||
-rw-r--r-- | trunk/doc/CHANGELOG | 1 | ||||
-rwxr-xr-x | trunk/src/mkbuild | 82 | ||||
-rwxr-xr-x | trunk/utils/repos (renamed from trunk/src/repos) | 0 |
4 files changed, 62 insertions, 22 deletions
diff --git a/trunk/Makefile b/trunk/Makefile index 6cc561f..ed65bf8 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -28,7 +28,6 @@ install_lib: install_bin: $(INSTALL) -D --mode=0755 src/simplaret $(DESTDIR)/$(PREFIX)/bin/simplaret - $(INSTALL) -D --mode=0755 src/repos $(DESTDIR)/$(PREFIX)/bin/repos $(INSTALL) -D --mode=0755 src/lspkg $(DESTDIR)/$(PREFIX)/bin/lspkg $(INSTALL) -D --mode=0755 src/mkbuild $(DESTDIR)/$(PREFIX)/bin/mkbuild $(INSTALL) -D --mode=0755 src/mkpatch $(DESTDIR)/$(PREFIX)/bin/mkpatch diff --git a/trunk/doc/CHANGELOG b/trunk/doc/CHANGELOG index 1ae2a84..de955e9 100644 --- a/trunk/doc/CHANGELOG +++ b/trunk/doc/CHANGELOG @@ -4,6 +4,7 @@ simplepkg changelog 0.6pre31 ======== + - repos script moved to utils/ folder - new "compact" template storage format - common.sh: - default arch when its not present at /etc/slackware-version is now assumed to be "i486" diff --git a/trunk/src/mkbuild b/trunk/src/mkbuild index 6e4e8de..a6dc947 100755 --- a/trunk/src/mkbuild +++ b/trunk/src/mkbuild @@ -109,8 +109,7 @@ ${red}AUTHOR${normal} Written by ${blue}Rudson R. Alves${normal} ${red}AVAILABILITY${normal} - by svn: ${yellow}svn checkout svn://slack.sarava.org/simplepkg${normal} - this mkbuild is found in branches/0.6/ + by svn: ${yellow}svn checkout http://slack.sarava.org/simplepkg${normal} ${red}REPORTING BUGS${normal} Report bugs to <${blue}rudsonaalves[at]rra.etc.br${normal}> @@ -129,7 +128,7 @@ function set_parameters { # Use: set_parameters $@ # where $@ are the parameters input # - # Parameters analyze + # Parameter evaluation ACTION="build" while [ "$1" ]; do @@ -401,7 +400,7 @@ function get_mkbuild_status { function activate_sections { - # Enable and desable sections + # Enable and disable sections ACTIONS_LIST=`sed '/^#>>/,/<</ ! d; /^#/ d ' $MKBUILD_NAME | tr -d ' '` for i in $ACTIONS_LIST; do STATUS=`echo $i | cut -f1 -d:` @@ -628,10 +627,12 @@ function submit_mkbuild { svn_copy $WORK/$MKBUILD_NAME $MKBUILD_PATH for i in `ls $WORK | grep -E -v '(SlackBuild|old|slack-required|.mkbuild$|.tmp$)\*{0,1}$'`; do - if ! is_the_same $(dirname $MKBUILD_PATH) $WORK; then - svn_copy $WORK/$i $MKBUILD_PATH - else - svn_add $WORK/$i + if [ "`basename $i`" != "$DIST_SRC_NAME" ]; then + if ! is_the_same $(dirname $MKBUILD_PATH) $WORK; then + svn_copy $WORK/$i $MKBUILD_PATH + else + svn_add $WORK/$i + fi fi done @@ -655,7 +656,7 @@ function submit_cleanup { if ! is_the_same $(dirname $MKBUILD_PATH) $WORK; then ( cd $WORK - rm -f *.old *.tmp *.SlackBuild slack-required + rm -f *.old *.tmp *.SlackBuild slack-required $DIST_SRC_NAME ) fi @@ -708,6 +709,7 @@ function decompress_find { function load_parameters { # Load Createpkg parameters + SOURCE_DIR="`eval_parameter SOURCE_DIR /var/simplepkg/sources`" SLACKBUILDS_DIR="`eval_parameter SLACKBUILDS_DIR /var/simplepkg/slackbuilds`" [ ! -d $SLACKBUILDS_DIR ] && mkdir -p $SLACKBUILDS_DIR @@ -726,10 +728,11 @@ function load_parameters { function file_metainfo { - # get integrity file metainformation - # usage: file_metainfo <file> <file_type> + # get integrity file metadata + # usage: file_metainfo <file> <file_type> <manifest_file> - local size algo sum="" file="$1" file_type="`echo $2 | tr '[:lower:]' '[:upper:]'`" + local sum="" file="$1" file_type="`echo $2 | tr '[:lower:]' '[:upper:]'`" + local size algo candidate folders path manifest_file="$3" if [ -d "$file" ]; then return @@ -740,15 +743,41 @@ function file_metainfo { fi if [ ! -e "$file" ]; then - echo "$file_type `basename $file` " # end space is important - return + if [ "$file_type" == "DIST" ]; then + + folders="$WORK $TMP $SOURCE_DIR" + if ! is_the_same /tmp $TMP; then + folders="$folders /tmp" + fi + + echo "Trying to find $(basename $file)) at $folders..." + + for path in $folders; do + candidate="$(find $path -name $(basename $file))" + if [ ! -z "$candidate" ]; then + break + fi + done + + if [ ! -z "$candidate" ]; then + echo "Using $(basename $file) found at $(dirname $candidate) to hash at the Manifest." + file="$candidate" + else + echo "$file_type `basename $file` " >> $manifest_file # end space is important + return 1 + fi + + else + echo "$file_type `basename $file` " >> $manifest_file # end space is important + return 1 + fi fi for algo in md5 sha1 sha256 sha512 rmd160; do sum="$sum `echo $algo | tr '[:lower:]' '[:upper:]'` `gethash $algo $file`" done - echo $file_type `basename $file` `file_size $file` $sum + echo $file_type `basename $file` `file_size $file` $sum >> $manifest_file } @@ -771,9 +800,16 @@ function update_manifest_info { # Set temporary file tmpfile="`mktemp $TMP/mkbuild_manifest.XXXXXX`" - # Update metainfo + # Update metadata sed -e "/^$file_type `basename $file` /d" `dirname $file`/Manifest > $tmpfile - file_metainfo $file $file_type >> $tmpfile + file_metainfo $file $file_type $tmpfile + + if [ "$?" != "0" ]; then + echo "Could not add hashes for $file on Manifest: file not found." + echo "Please do it with --update-manifest." + fi + + # Save Manifest changes sort $tmpfile > `dirname $file`/Manifest rm -f $tmpfile @@ -795,10 +831,10 @@ function update_manifest { update_manifest_info $WORK/slack-required fi - # Add source code information - DIST_SRC_NAME="`eval "echo $CONST_STRING"`" # we need this to strip some escape strings - DIST_SRC_NAME="`eval "echo $DIST_SRC_NAME"`" # twice does the job - update_manifest_info $DIST_SRC_NAME dist + # Add source code information if its not already there + if ! grep -q -e "^DIST $DIST_SRC_NAME " $WORK/Manifest; then + update_manifest_info $DIST_SRC_NAME dist + fi # Update patches for i in `find $WORK | grep -E '(.diff$|.diff.gz$|.diff.bz2$|.patch$|.patch.gz$|.patch.bz2$)\*{0,1}$'`; do @@ -988,6 +1024,10 @@ if [ ! -z $MKBUILD_NAME ]; then [ -z $SOURCE_NAME ] && SOURCE_NAME=`eval "echo $CONST_STRING"` [ $VERBOSE -eq $on ] && echo "SOURCE_NAME=\"$SOURCE_NAME\"" + # Eval source code name + DIST_SRC_NAME="`eval "echo $CONST_STRING"`" # we need this to strip some escape strings + DIST_SRC_NAME="`eval "echo $DIST_SRC_NAME"`" # twice does the job + # Documentations list DOCFILES=`validate_parameter "$DOCFILES" "DOCUMENTATION FILES" "NEWS TODO README AUTHORS INSTALL ChangeLog MAINTAINERS COPYING LICENSE SIGNATURE readme.*"` [ $VERBOSE -eq $on ] && echo "[[DOCUMENTATION FILES]]=\"$DOCFILES\"" diff --git a/trunk/src/repos b/trunk/utils/repos index e4a17ee..e4a17ee 100755 --- a/trunk/src/repos +++ b/trunk/utils/repos |