SOURCES: adapter.awk, builder - update from SPECS

glen glen at pld-linux.org
Sat Apr 5 10:42:22 CEST 2008


Author: glen                         Date: Sat Apr  5 08:42:22 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- update from SPECS

---- Files affected:
SOURCES:
   adapter.awk (1.6 -> 1.7) , builder (1.21 -> 1.22) 

---- Diffs:

================================================================
Index: SOURCES/adapter.awk
diff -u SOURCES/adapter.awk:1.6 SOURCES/adapter.awk:1.7
--- SOURCES/adapter.awk:1.6	Wed Feb 13 21:56:23 2008
+++ SOURCES/adapter.awk	Sat Apr  5 10:42:17 2008
@@ -18,6 +18,7 @@
 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
 
 # TODO
+# - really long sourceX make preamble sorting totally fcked up (try snake.spec r1.1)
 # - parse ../PLD-doc/BuildRequires.txt and setup proper BR epoches?
 # - add "-nc" option to skip CVS interaction
 # - sort Summary(XX)
@@ -929,27 +930,7 @@
 		# assigning to $2 kills preamble formatting
 		$2 = fixedsub(filename, url[n], $2)
 
-		# sourceforge urls
-		sub("[?&]big_mirror=.*$", "", $2);
-		sub("[?&]modtime=.*$", "", $2);
-
-		sub("[?]use_mirror=.*$", "", $2);
-		sub("[?]download$", "", $2);
-
-		sub("^http://prdownloads\.sourceforge\.net/", "http://dl.sourceforge.net/", $2)
-		sub("^http://download\.sf\.net/", "http://dl.sourceforge.net/", $2)
-		sub("^http://download\.sourceforge\.net/", "http://dl.sourceforge.net/", $2)
-		sub("^http://downloads\.sourceforge\.net/", "http://dl.sourceforge.net/", $2)
-
-		sub("^http://.*\.dl\.sourceforge\.net/", "http://dl.sourceforge.net/", $2)
-		sub("^http://dl\.sourceforge\.net/sourceforge/", "http://dl.sourceforge.net/", $2)
-		sub("^http://dl\.sf\.net/", "http://dl.sourceforge.net/", $2)
-
-		sub("^ftp://ftp\.gnome\.org/", "http://ftp.gnome.org/", $2)
-		sub("^http://ftp\.gnome\.org/pub/gnome/", "http://ftp.gnome.org/pub/GNOME/", $2)
-
-		# apache urls
-		sub("^http://apache.zone-h.org/", "http://www.apache.org/dist/", $2)
+		$2 = unify_url($2)
 	}
 
 
@@ -1595,6 +1576,37 @@
 	return 1
 }
 
+function unify_url(url)
+{
+
+	# sourceforge urls
+	sub("[?&]big_mirror=.*$", "", url);
+	sub("[?&]modtime=.*$", "", url);
+	sub("[?]use_mirror=.*$", "", url);
+	sub("[?]download$", "", url);
+
+	sub("^http://prdownloads\.sourceforge\.net/", "http://dl.sourceforge.net/", url)
+	sub("^http://download\.sf\.net/", "http://dl.sourceforge.net/", url)
+	sub("^http://download\.sourceforge\.net/", "http://dl.sourceforge.net/", url)
+	sub("^http://downloads\.sourceforge\.net/", "http://dl.sourceforge.net/", url)
+
+	sub("^http://.*\.dl\.sourceforge\.net/", "http://dl.sourceforge.net/", url)
+	sub("^http://dl\.sourceforge\.net/sourceforge/", "http://dl.sourceforge.net/", url)
+	sub("^http://dl\.sf\.net/", "http://dl.sourceforge.net/", url)
+
+	sub("^ftp://ftp\.gnome\.org/", "http://ftp.gnome.org/", url)
+	sub("^http://ftp\.gnome\.org/pub/gnome/", "http://ftp.gnome.org/pub/GNOME/", url)
+
+	# apache urls
+	sub("^http://apache.zone-h.org/", "http://www.apache.org/dist/", url)
+
+	# gnu.org
+	sub("^ftp://ftp.gnu.org/", "http://ftp.gnu.org/", url)
+	sub("^http://ftp.gnu.org/pub/gnu/", "http://ftp.gnu.org/gnu/", url)
+
+	return url
+}
+
 function demacroize(str)
 {
 	if (mod_name) {
@@ -1626,11 +1638,14 @@
 
 function kill_preamble_macros()
 {
-	if ($1 ~ /^URL:/ || $1 ~ /^Obsoletes:/) {
+	if ($1 ~ /^Obsoletes:/) {
+		# NB! assigning $2 a value breaks tabbing
+		$2 = demacroize($2);
+	}
+	if ($1 ~ /^URL:/) {
 		# NB! assigning $2 a value breaks tabbing
 		$2 = demacroize($2);
-		# unify sourceforge url
-		sub("\.sf\.net/$", ".sourceforge.net/", $2);
+		$2 = unify_url($2)
 	}
 }
 
@@ -1705,6 +1720,7 @@
 	sub(/^tftp-server$/, "tftpdaemon", $2);
 
 	sub(/^gcc-c\+\+$/, "libstdc++-devel", $2);
+	sub(/^chkconfig$/, "/sbin/chkconfig", $2);
 
 	replace_php_virtual_deps()
 }

================================================================
Index: SOURCES/builder
diff -u SOURCES/builder:1.21 SOURCES/builder:1.22
--- SOURCES/builder:1.21	Wed Feb 13 22:17:12 2008
+++ SOURCES/builder	Sat Apr  5 10:42:17 2008
@@ -192,6 +192,13 @@
 	RPMBUILD="rpmbuild"
 fi
 
+#
+# are we using cvs-nserver ?
+#
+CVS_NSERVER=0
+cvs --version 2>&1 | grep -q 'CVS-nserver'
+[ $? -eq 0 ] && CVS_NSERVER=1
+
 POLDEK_INDEX_DIR="`$RPM --eval %_rpmdir`/"
 POLDEK_CMD="$SU_SUDO /usr/bin/poldek --noask"
 
@@ -332,7 +339,7 @@
                     - as above, but allow float version
 --use-greed-sources
                     - try download source from tag head if don't find it in
-                      current tag	
+                      current tag
 -U, --update        - refetch sources, don't use distfiles, and update md5 comments
 -Upi, --update-poldek-indexes
                     - refresh or make poldek package index files.
@@ -1164,6 +1171,26 @@
 	echo -n "$TAGVER"
 }
 
+# bool is_tag_a_branch(tag)
+#
+# returns 1 if a tag is a branch set on SPECFILE
+is_tag_a_branch() {
+	if [ -n "$DEBUG" ]; then
+		set -x
+		set -v
+	fi
+
+	if [ $# -ne 1 ]; then
+		return 0;
+	fi
+
+	TAG=$1
+
+	cd "$SPEC_DIR"
+	cvs status -v $SPECFILE | grep -Eiq "${TAG}.+(branch: [0-9.]+)"
+	return $?
+}
+
 tag_files()
 {
 	TAG_FILES="$@"
@@ -1190,6 +1217,18 @@
 		OPTIONS="-d $CVSROOT $OPTIONS"
 	fi
 
+	# if a tagname we are about to set already exists
+	# and happens to be a branch (common case with AC-branch)
+	# pass -B (allows -F to disturb branch tag)
+	local _tag=$TAG
+	if [ "$TAG_VERSION" = "yes" ]; then
+		_tag=$TAGVER
+	fi;
+	is_tag_a_branch $_tag
+	if [ $? -eq 0 -a $CVS_NSERVER -eq 0 ]; then
+		OPTIONS="$OPTIONS -B"
+	fi;
+
 	cd "$SOURCE_DIR"
 	local tag_files
 	for i in $TAG_FILES; do
@@ -1655,13 +1694,13 @@
 }
 
 # checks a given list of packages/files/provides agains current rpmdb.
-# outputs all dependencies whcih current rpmdb doesn't satisfy.
+# outputs all dependencies which current rpmdb doesn't satisfy.
 # input can be either STDIN or parameters
 _rpm_prov_check()
 {
 	local DEPS
 
-	if [ "$#" -gt 0 ]; then
+	if [ $# -gt 0 ]; then
 		DEPS="$@"
 	else
 		DEPS=$(cat)
@@ -1677,13 +1716,13 @@
 }
 
 # checks if given package/files/provides exists in rpmdb.
-# inout can be either stdin or parameters
-# returns packages wchi hare present in the rpmdb
+# input can be either stdin or parameters
+# returns packages which are present in the rpmdb
 _rpm_cnfl_check()
 {
 	local DEPS
 
-	if [ "$#" -gt 0 ]; then
+	if [ $# -gt 0 ]; then
 		DEPS="$@"
 	else
 		DEPS=$(cat)
@@ -1708,7 +1747,7 @@
 			fi
 
 			if [ -n "$CNFL" ] || [ -n "$DEPS" ]; then
-				echo "fetch builderequires: install [$DEPS]; remove [$CNFL]"
+				echo "fetch BuildRequires: install [$DEPS]; remove [$CNFL]"
 				update_shell_title "poldek: install [$DEPS]; remove [$CNFL]"
 				$SU_SUDO /usr/bin/poldek -q --update || $SU_SUDO /usr/bin/poldek -q --upa
 			fi
@@ -1722,7 +1761,7 @@
 					update_shell_title "install deps: $DEPS"
 					echo "Trying to install dependencies ($DEPS):"
 					local log=.${SPECFILE}_poldek.log
-					$SU_SUDO /usr/bin/poldek --caplookup -uGq $DEPS | tee $log
+					$SU_SUDO /usr/bin/poldek --caplookup -uGqQ $DEPS | tee $log
 					failed=$(awk '/^error:/{a=$2; sub(/^error: /, "", a); sub(/:$/, "", a); print a}' $log)
 					rm -f $log
 					local ok
@@ -1888,7 +1927,7 @@
 
 	mkdir -p $TOP_DIR/{RPMS,BUILD,SRPMS}
 	cd $TOP_DIR
-	cvs -d $CVSROOT co SOURCES/.cvsignore SPECS/{mirrors,md5,adapter{,.awk},fetchsrc_request,builder,{relup,compile,repackage}.sh}
+	cvs -d $CVSROOT co SOURCES/{.cvsignore,dropin} SPECS/{mirrors,md5,adapter{,.awk},fetchsrc_request,builder,{relup,compile,repackage}.sh}
 
 	init_builder
 
@@ -1911,7 +1950,7 @@
 	if [ $? != 0 ]; then
 		Exit_error err_no_source_in_repo $1
 	fi
-	
+
 }
 
 # remove entries from CVS/Entries
@@ -2195,10 +2234,10 @@
 		-debug)
 			RPMBUILDOPTS="${RPMBUILDOPTS} -debug"; shift
 			;;
-		-* )
+		-*)
 			Exit_error err_invalid_cmdline "$1"
 			;;
-		* )
+		*)
 			SPECFILE="${1}"
 			# check if specname was passed as specname:cvstag
 			if [ "${SPECFILE##*:}" != "${SPECFILE}" ]; then
@@ -2211,7 +2250,7 @@
 done
 
 if [ -f CVS/Entries ] && [ -z "$CVSTAG" ]; then
-	CVSTAG=$(awk -vSPECFILE="${SPECFILE%.spec}.spec" -F/ '$2 == SPECFILE && $6 ~ /^T/{print substr($6, 2)}' CVS/Entries)
+	CVSTAG=$(awk -vSPECFILE=$(basename ${SPECFILE%.spec}.spec) -F/ '$2 == SPECFILE && $6 ~ /^T/{print substr($6, 2)}' CVS/Entries)
 	if [ "$CVSTAG" ]; then
 		echo >&2 "builder: Stick tag $CVSTAG active. Use -r TAGNAME to override."
 	fi
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/adapter.awk?r1=1.6&r2=1.7&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/builder?r1=1.21&r2=1.22&f=u



More information about the pld-cvs-commit mailing list