packages: rpm-build-tools/adapter.awk, rpm-build-tools/adapter.sh, rpm-buil...

pawelz pawelz at pld-linux.org
Tue Feb 16 18:36:43 CET 2010


Author: pawelz                       Date: Tue Feb 16 17:36:43 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- adapter up to rev. 1.43
- adapter.awk up to rev. 1.438
- builder up to rev. 1.606
- pldnotify.awk up to rev. 1.78
- let it be version 4.4.36

---- Files affected:
packages/rpm-build-tools:
   adapter.awk (1.10 -> 1.11) , adapter.sh (1.6 -> 1.7) , builder.sh (1.26 -> 1.27) , pldnotify.awk (1.9 -> 1.10) , rpm-build-tools.spec (1.18 -> 1.19) 

---- Diffs:

================================================================
Index: packages/rpm-build-tools/adapter.awk
diff -u packages/rpm-build-tools/adapter.awk:1.10 packages/rpm-build-tools/adapter.awk:1.11
--- packages/rpm-build-tools/adapter.awk:1.10	Sun Jun 28 19:04:45 2009
+++ packages/rpm-build-tools/adapter.awk	Tue Feb 16 18:36:37 2010
@@ -26,6 +26,8 @@
 # - desc wrapping is totally fucked up on global.spec,1.25, dosemu.spec,1.115-
 # - it should change: /%source([0-9]+)/i to %{SOURCE\1}
 # - extra quote on LDFLAGS line: https://bugs.launchpad.net/pld-linux/+bug/385836
+# - %{with_foo:%attr()...} gets converted to %attr() %{with_foo:...} [vlc.spec]
+# - 'R: foo ' (with traliling space) gets coverted to "R: foo\nR: " [vlc.spec @ 1.199 ]
 
 BEGIN {
 	RPM_SECTIONS = "package|build|changelog|clean|description|install|post|posttrans|postun|pre|prep|pretrans|preun|triggerin|triggerpostun|triggerun|verifyscript|check"
@@ -57,7 +59,7 @@
 
 	import_rpm_macros()
 
-	packages_dir = topdir "/packages"
+	packages_dir = topdir
 	groups_file = packages_dir "/rpm.groups"
 
 	system("cd "packages_dir"; [ -f rpm.groups ] || cvs up rpm.groups > /dev/null")
@@ -708,7 +710,7 @@
 		replace_requires();
 	}
 
-	if (field ~ /^requires:/) {
+	if (field ~ /^requires:/ || field ~ /^requires\(/) {
 		replace_requires();
 	}
 
@@ -728,6 +730,11 @@
 		$1 = "License:"
 	}
 
+	# ease updating from debian .dsc
+	if (field ~ /homepage:/) {
+		$1 = "URL:"
+	}
+
 	if (field ~ /license:/) {
 		l = substr($0, index($0, $2));
 		if (l == "Python Software Foundation License") {
@@ -751,6 +758,9 @@
 		if (l == "GPLv2+") {
 			l = "GPL v2+"
 		}
+		if (l == "LGPLv2+") {
+			l = "LGPL v2+"
+		}
 		$0 = "License:\t" l;
 	}
 
@@ -1403,6 +1413,11 @@
 		$0 = "%attr(755,root,root) " $0
 	}
 
+	# remove attrs from man pages
+	if (/%{_mandir}/ && /^%attr/) {
+		sub("^%attr\\(.*\\) *", "");
+	}
+
 	# /etc/sysconfig files
 	# %attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/*
 	# attr not required, allow default 644 attr
@@ -1572,20 +1587,26 @@
 {
 
 	# sourceforge urls
-	# Docs about sourceforge mirror system: http://sourceforge.net/docs/B05/
-	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)
+	# Docs about sourceforge mirror system: http://sourceforge.net/apps/trac/sourceforge/wiki/Mirrors
+	sub("^http://prdownloads\.sourceforge\.net/", "http://downloads.sourceforge.net/", url)
+	sub("^http://download\.sf\.net/", "http://downloads.sourceforge.net/", url)
+	sub("^http://download\.sourceforge\.net/", "http://downloads.sourceforge.net/", url)
+	sub("^http://dl\.sourceforge\.net/", "http://downloads.sourceforge.net/", url)
+	sub("^http://.*\.dl\.sourceforge\.net/", "http://downloads.sourceforge.net/", url)
+	sub("^http://dl\.sf\.net/", "http://downloads.sourceforge.net/", url)
+	sub("^http://downloads\.sourceforge\.net/sourceforge/", "http://downloads.sourceforge.net/", url)
+	# new style urls, strip "files/" between and prepend dl.
+	if (match(url, "^http://sourceforge.net/projects/[^/]+/files/")) {
+		url = substr(url, 1, RLENGTH - length("files/")) substr(url, RSTART + RLENGTH);
+		sub("^http://sourceforge.net/projects/", "http://downloads.sourceforge.net/project/", url);
+	}
+	if (url ~ /sourceforge.net/) {
+		sub("[?&]big_mirror=.*$", "", url);
+		sub("[?&]modtime=.*$", "", url);
+		sub("[?]use_mirror=.*$", "", url);
+		sub("[?]download$", "", url);
+		sub("/download$", "", 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)
@@ -1693,73 +1714,6 @@
 	BR[BR_count++] = br
 }
 
-function replace_requires()
-{
-
-	# jpackages
-	sub(/^java-devel$/, "jdk", $2);
-	sub(/^log4j$/, "java-log4j", $2);
-	sub(/^logging-log4j$/, "java-log4j", $2);
-	sub(/^jakarta-log4j$/, "java-log4j", $2);
-	sub(/^oro$/, "java-oro", $2);
-	sub(/^jakarta-oro$/, "java-oro", $2);
-	sub(/^jakarta-ant$/, "ant", $2);
-	sub(/^xerces-j2$/, "java-xerces", $2);
-	sub(/^xerces-j$/, "java-xerces", $2);
-	sub(/^ldapjdk$/, "ldapsdk", $2);
-	sub(/^saxon-scripts$/, "saxon", $2);
-	sub(/^xalan-j2$/, "java-xalan", $2);
-	sub(/^xalan-j$/, "java-xalan", $2);
-	sub(/^gnu-regexp$/, "java-gnu-regexp", $2);
-	sub(/^gnu.regexp$/, "java-gnu-regexp", $2);
-	sub(/^jakarta-commons-httpclient$/, "java-commons-httpclient", $2);
-	sub(/^xml-commons-resolver$/, "java-xml-commons-resolver", $2);
-	sub(/^axis$/, "java-axis", $2);
-	sub(/^wsdl4j$/, "java-wsdl4j", $2);
-	sub(/^uddi4j$/, "java-uddi4j", $2);
-	sub(/^hamcrest$/, "java-hamcrest", $2);
-
-	# redhat virtual
-	sub(/^tftp-server$/, "tftpdaemon", $2);
-
-	sub(/^gcc-c\+\+$/, "libstdc++-devel", $2);
-	sub(/^chkconfig$/, "/sbin/chkconfig", $2);
-
-	# fedora
-	sub(/^iscsi-initiator-utils$/, "open-iscsi", $2);
-
-	replace_php_virtual_deps()
-}
-
-# php virtual deps as discussed in devel-en
-function replace_php_virtual_deps()
-{
-	pkg = $2
-#	if (pkg == "php-program") {
-#		$0 = $1 "\t/usr/bin/php"
-#		return
-#	}
-
-#	if (pkg ~ /^php-[a-z]/ && pkg !~ /^php-(pear|common|cli|devel|fcgi|cgi|dirs|program|pecl-)/) {
-#		sub(/^php-/, "php(", pkg);
-#		sub(/$/, ") # verify this correctness -- it may be wanted to use specific not virtual dep", pkg);
-#		$2 = pkg
-#	}
-
-	if (pkg ~/^php$/) {
-		$2 = "webserver(php)";
-		if ($4 ~ /^[0-9]:/) {
-			$4 = substr($4, 3);
-		}
-	}
-
-	if (pkg ~/^php4$/) {
-		$2 = "webserver(php)";
-		if ($4 ~ /^[0-9]:/) {
-			$4 = substr($4, 3);
-		}
-	}
-}
 
 # Load rpm macros
 # you should update the list also in adapter when making changes here
@@ -1819,7 +1773,110 @@
 	tmpdir = ENVIRON["tmpdir"]
 }
 
+
+# php virtual deps as discussed in devel-en
+function replace_php_virtual_deps() {
+	pkg = $2
+#	if (pkg == "php-program") {
+#		$0 = $1 "\t/usr/bin/php"
+#		return
+#	}
+
+#	if (pkg ~ /^php-[a-z]/ && pkg !~ /^php-(pear|common|cli|devel|fcgi|cgi|dirs|program|pecl-)/) {
+#		sub(/^php-/, "php(", pkg);
+#		sub(/$/, ") # verify this correctness -- it may be wanted to use specific not virtual dep", pkg);
+#		$2 = pkg
+#	}
+
+	if (pkg ~/^php$/) {
+		$2 = "webserver(php)";
+		if ($4 ~ /^[0-9]:/) {
+			$4 = substr($4, 3);
+		}
+	}
+
+	if (pkg ~/^php4$/) {
+		$2 = "webserver(php)";
+		if ($4 ~ /^[0-9]:/) {
+			$4 = substr($4, 3);
+		}
+	}
+}
+
+function replace_requires() {
+
+	# jpackages
+	sub(/^java-devel$/, "jdk", $2);
+	sub(/^log4j$/, "java-log4j", $2);
+	sub(/^logging-log4j$/, "java-log4j", $2);
+	sub(/^jakarta-log4j$/, "java-log4j", $2);
+	sub(/^oro$/, "java-oro", $2);
+	sub(/^jakarta-oro$/, "java-oro", $2);
+	sub(/^jakarta-ant$/, "ant", $2);
+	sub(/^xerces-j2$/, "java-xerces", $2);
+	sub(/^xerces-j$/, "java-xerces", $2);
+	sub(/^ldapjdk$/, "ldapsdk", $2);
+	sub(/^saxon-scripts$/, "saxon", $2);
+	sub(/^xalan-j2$/, "java-xalan", $2);
+	sub(/^xalan-j$/, "java-xalan", $2);
+	sub(/^gnu-regexp$/, "java-gnu-regexp", $2);
+	sub(/^gnu.regexp$/, "java-gnu-regexp", $2);
+	sub(/^jakarta-commons-httpclient$/, "java-commons-httpclient", $2);
+	sub(/^xml-commons-resolver$/, "java-xml-commons-resolver", $2);
+	sub(/^axis$/, "java-axis", $2);
+	sub(/^wsdl4j$/, "java-wsdl4j", $2);
+	sub(/^uddi4j$/, "java-uddi4j", $2);
+	sub(/^hamcrest$/, "java-hamcrest", $2);
+
+	# redhat virtual
+	sub(/^tftp-server$/, "tftpdaemon", $2);
+
+	sub(/^gcc-c\+\+$/, "libstdc++-devel", $2);
+	sub(/^chkconfig$/, "/sbin/chkconfig", $2);
+
+	# fedora
+	sub(/^iscsi-initiator-utils$/, "open-iscsi", $2);
+	sub(/^gnome-python2-extras$/, "python-gnome-extras", $2);
+	sub(/^gtk2$/, "gtk+2", $2);
+	sub(/^gtk2-devel$/, "gtk+2-devel", $2);
+	sub(/^pygtk2-devel$/, "python-pygtk-devel", $2);
+	sub(/^pygtk2$/, "python-pygtk", $2);
+	sub(/^qt4-devel$/, "qt4-build", $2);
+	sub(/^file-devel$/, "libmagic-devel", $2);
+	sub(/^gamin-python$/, "python-gamin", $2);
+	sub(/^pygobject2$/, "python-pygobject", $2);
+	sub(/^tkinter$/, "python-tkinter", $2);
+	sub(/^python-imaging$/, "python-PIL", $2);
+	sub(/^python-imaging-tk$/, "python-PIL-tk", $2);
+	sub(/^initscripts$/, "rc-scripts", $2);
+
+	# debian
+	sub(/^libgconf2-dev$/, "GConf2-devel", $2);
+	sub(/^libglib2.0-dev$/, "glib2-devel", $2);
+	sub(/^libgtk2.0-dev$/, "gtk+2-devel", $2);
+	sub(/^libhunspell-dev$/, "hunspell-devel", $2);
+	sub(/^libpango1.0-dev$/, "pango-devel", $2);
+	sub(/^libxslt1-dev$/, "libxslt-devel", $2);
+	sub(/^libgl1-mesa-dev$/, "OpenGL-devel", $2);
+	sub(/^mesa-common-dev$/, "OpenGL-devel", $2);
+	sub(/^libgl1-mesa-dri$/, "OpenGL", $2);
+	sub(/^libglu1-mesa-dev$/, "OpenGL-GLU-devel", $2);
+	sub(/^libxss-dev$/, "xorg-lib-libXScrnSaver-devel", $2);
+	sub(/^libboost-filesystem[0-9.]+-dev$/, "boost-devel", $2);
+	sub(/^libboost-program-options[0-9.]+-dev$/, "boost-devel", $2);
+	sub(/^libboost-regex[0-9.]+-dev$/, "boost-devel", $2);
+	sub(/^libboost-thread[0-9.]+-dev$/, "boost-devel", $2);
+	sub(/^libmcrypt-dev$/, "libmcrypt-devel", $2);
+	sub(/^libcurl4-openssl-dev$/, "curl-devel", $2);
+	sub(/^libmhash-dev$/, "mhash-devel", $2);
+	sub(/^libqt4-dev$/, "qt4-build", $2);
+	sub(/^libssl-dev$/, "openssl-devel", $2);
+
+	replace_php_virtual_deps()
+}
+
 function replace_groupnames(group) {
+	group = replace(group, "Amusements/Games", "Applications/Games");
 	group = replace(group, "Amusements/Games/Strategy/Real Time", "X11/Applications/Games/Strategy");
 	group = replace(group, "Application/Multimedia", "Applications/Multimedia");
 	group = replace(group, "Application/System", "Applications/System");
@@ -1854,6 +1911,7 @@
 	group = replace(group, "System Environment/Daemons", "Daemons");
 	group = replace(group, "System Environment/Kernel", "Base/Kernel");
 	group = replace(group, "System Environment/Libraries", "Libraries");
+	group = replace(group, "System Tools", "Applications/System");
 	group = replace(group, "System", "Base");
 	group = replace(group, "System/Base", "Base");
 	group = replace(group, "System/Kernel and hardware", "Base/Kernel");
@@ -1861,6 +1919,8 @@
 	group = replace(group, "System/Servers", "Daemons");
 	group = replace(group, "Text Processing/Markup/HTML", "Applications/Text");
 	group = replace(group, "Text Processing/Markup/XML", "Applications/Text");
+	group = replace(group, "User Interface/Desktops", "X11/Applications");
+	group = replace(group, "Utilities/System", "Applications/System");
 	group = replace(group, "Web/Database", "Applications/WWW");
 	group = replace(group, "X11/GNOME", "X11/Applications");
 	group = replace(group, "X11/GNOME/Applications", "X11/Applications");

================================================================
Index: packages/rpm-build-tools/adapter.sh
diff -u packages/rpm-build-tools/adapter.sh:1.6 packages/rpm-build-tools/adapter.sh:1.7
--- packages/rpm-build-tools/adapter.sh:1.6	Sun Jun 28 19:04:45 2009
+++ packages/rpm-build-tools/adapter.sh	Tue Feb 16 18:36:38 2010
@@ -47,13 +47,25 @@
 	exit 1
 fi
 
+[ -n "$PAGER" ] || PAGER="/usr/bin/less -r"
+
+if [ -n "$CONFIG_DIR" ]; then
+	USER_CFG="$CONFIG_DIR/.adapterrc"
+elif [ -n "$HOME_ETC" ]; then
+	USER_CFG="$HOME_ETC/.adapterrc"
+else
+	USER_CFG=~/.adapterrc
+fi
+
+[ -f $USER_CFG ] && . $USER_CFG
+
 t=$(getopt -o hsomdaV --long help,version,sort,sort-br,no-macros,skip-macros,skip-desc,skip-defattr -n "$PROGRAM" -- "$@") || exit $?
 eval set -- "$t"
 
 while true; do
 	case "$1" in
 	-h|--help)
- 		echo 2>&1 "$usage"
+		echo 2>&1 "$usage"
 		exit 1
 	;;
 	-s|--no-sort|--skip-sort)
@@ -89,25 +101,42 @@
 
 diffcol()
 {
-	 # vim like diff colourization
-	 sed -e '
-	 s,,^[,g;
-	 s,,^G,g;
-	 s,^\(Index:\|diff\|---\|+++\) .*$,&,;
-	 s,^@@ ,&,g;
-	 s,^-,&,;
-	 s,^+,&,;
-	 s,\r,^M,g;
-	 s,	,    ,g;
-	 s,\([^[:space:]]\)\([[:space:]]\+\)$,\1\2,g;
-	 s,$,,
-	 ' "$@"
+	# vim like diff colourization
+LC_ALL=en_US.UTF-8 gawk ' {
+	split( $0, S, /\t/ );
+	$0 = S[ 1 ];
+	for ( i = 2; i in S; i++ ) {
+		spaces = 7 - ( (length( $0 ) - 1) % 8 );
+		$0 = $0 "\xE2\x9E\x94";
+		for ( y = 0; y < spaces; y++ )
+			$0 = $0 "\xE2\x87\xBE";
+		$0 = $0 S[ i ];
+	}
+	gsub( /\033/, "\033[44m^[\033[49m" );
+	cmd = "";
+	if ( sub( /^ /, "" ) )
+		cmd = " ";
+	sub( /(\xE2\x9E\x94(\xE2\x87\xBE)*| )+$/, "\033[31;41m&\033[39;49m" );
+	gsub( /\xE2\x9E\x94(\xE2\x87\xBE)*/, "\033[7m&\033[27m" );
+	gsub( /\xE2\x87\xBE/, " " );
+	# uncomment if you do not like utf-8 arrow
+	# gsub( /\xE2\x9E\x94/, ">" );
+	$0 = cmd $0;
+	gsub( /\007/, "\033[44m^G\033[49m" );
+	gsub( /\r/, "\033[44m^M\033[49m" );
+}
+/^(Index:|diff|---|\+\+\+) / { $0 = "\033[32m" $0 }
+/^@@ / { $0 = "\033[33m" $0 }
+/^-/ { $0 = "\033[35m" $0 }
+/^+/ { $0 = "\033[36m" $0 }
+{ $0 = $0 "\033[0m"; print }
+' "$@"
 }
 
 diff2hunks()
 {
-	 # diff2hunks orignally by dig
-	 perl -e '
+	# diff2hunks orignally by dig
+	perl -e '
 #! /usr/bin/perl -w
 
 use strict;
@@ -222,7 +251,7 @@
 	elif [ "$(diff --brief $SPECFILE $tmp)" ]; then
 		diff -u $SPECFILE $tmp > $tmp.diff
 		if [ -t 1 ]; then
-				diffcol $tmp.diff | less -r
+				diffcol $tmp.diff | $PAGER
 				while : ; do
 					echo -n "Accept? (Yes, No, Confirm each chunk)? "
 					read ans
@@ -235,12 +264,12 @@
 					[cC]) # confirm each chunk
 						diff2hunks $tmp.diff
 						for t in $(ls $tmp-*.diff); do
-								diffcol $t | less -r
+								diffcol $t | $PAGER
 								echo -n "Accept? (Yes, [N]o, Quit)? "
 								read ans
 								case "$ans" in
 								[yYoO]) # y0 mama
-									patch < $t
+									patch -p0 < $t
 									;;
 								[Q]) # Abort
 									break
@@ -274,3 +303,5 @@
 fi
 
 adapterize
+
+# vim: ts=4:sw=4

================================================================
Index: packages/rpm-build-tools/builder.sh
diff -u packages/rpm-build-tools/builder.sh:1.26 packages/rpm-build-tools/builder.sh:1.27
--- packages/rpm-build-tools/builder.sh:1.26	Sun Jun 28 19:04:45 2009
+++ packages/rpm-build-tools/builder.sh	Tue Feb 16 18:36:38 2010
@@ -22,6 +22,7 @@
 # - builder -u fetches current version first (well that's okay, how you compare versions if you have no old spec?)
 # - when Icon: field is present, -5 and -a5 doesn't work
 # - builder -R skips installing BR if spec is not present before builder invocation (need to run builder twice)
+# - does not respect NoSource: X, and tries to cvs up such files [ example: VirtualBox-bin.spec and its Source0 ]
 # TODO:
 # - ability to do ./builder -bb foo.spec foo2.spec foo3.spec
 
@@ -86,7 +87,7 @@
 GROUP_BCONDS="no"
 
 # create symlinks for tools in PACKAGE_DIR, see get_spec()
-SYMLINK_TOOLS="yes"
+SYMLINK_TOOLS="no"
 
 PATCHES=""
 SOURCES=""
@@ -264,8 +265,8 @@
                       them into src.rpm,
 --short-circuit     - short-circuit build
 -B, --branch        - add branch
--c, --clean         - clean all temporarily created files (in BUILD, SOURCES,
-                      SPECS and \$RPM_BUILD_ROOT and CVS/Entries) after rpmbuild commands.
+-c, --clean         - clean all temporarily created files (in BUILD\$RPM_BUILD_ROOT) after rpmbuild commands.
+                      may be used with building process.
 -m, --mr-proper     - clean all temporarily created files (in BUILD, SOURCES,
 					  SPECS and \$RPM_BUILD_ROOT and CVS/Entries). Doesn't run
 					  any rpm building.
@@ -374,7 +375,7 @@
 depspecname() {
 	local package="$1"
 
-	package=$(echo "$package" | sed -e '/perl(.*)/{s,perl(\(.*\)),perl-\1,;s,::,-,g}')
+	package=$(echo "$package" | sed -e '/perl(.*)/{s,perl(\(.*\)),perl-\1,;s,::,-,g};' -e 's/-\(devel\|static\)$//' )
 	echo "$package"
 }
 
@@ -411,7 +412,7 @@
 # set TARGET from BuildArch: from SPECFILE
 set_spec_target() {
 	if [ -n "$SPECFILE" ] && [ -z "$TARGET" ]; then
-		tmp=$(awk '/^BuildArch:/ { print $NF}' $ASSUMED_NAME/$SPECFILE)
+		tmp=$(awk '/^BuildArch:/ { print $NF; exit }' $ASSUMED_NAME/$SPECFILE)
 		if [ "$tmp" ]; then
 				target_platform=$(rpm -E '%{_target_vendor}-%{_target_os}%{?_gnu}')
 				TARGET="$tmp"
@@ -437,16 +438,16 @@
 %x8664 x86_64 amd64 ia32e
 %alt_kernel %{nil}
 %_alt_kernel %{nil}
-%requires_releq_kernel_up %{nil}
-%requires_releq_kernel_smp %{nil}
-%requires_releq_kernel %{nil}
+%requires_releq_kernel_up(s:n:) %{nil}
+%requires_releq_kernel_smp(s:n:) %{nil}
+%requires_releq_kernel(s:n:) %{nil}
 %requires_releq() %{nil}
 %pyrequires_eq() %{nil}
 %requires_eq() %{nil}
 %requires_eq_to() %{nil}
-%releq_kernel_up ERROR
-%releq_kernel_smp ERROR
-%releq_kernel ERROR
+%releq_kernel_up(n:) ERROR
+%releq_kernel_smp(n:) ERROR
+%releq_kernel(n:) ERROR
 %kgcc_package ERROR
 %_fontsdir ERROR
 %ruby_version ERROR
@@ -661,8 +662,8 @@
 
 	if [ "$NOINIT" != "yes" ] ; then
 		TOP_DIR=$(eval $RPM $RPMOPTS --eval '%{_topdir}')
-		REPO_DIR=$TOP_DIR/packages
-		PACKAGE_DIR=$TOP_DIR/packages/$ASSUMED_NAME
+		REPO_DIR=$TOP_DIR
+		PACKAGE_DIR=$REPO_DIR/$ASSUMED_NAME
 	else
 		REPO_DIR="."
 		PACKAGE_DIR="."
@@ -682,7 +683,8 @@
 
 	cd "$REPO_DIR"
 	if [ ! -f "$ASSUMED_NAME/$SPECFILE" ]; then
-		SPECFILE="$(basename $SPECFILE .spec).spec"
+		# XXX: still needed?
+		SPECFILE=$(basename $SPECFILE)
 	fi
 	if [ "$NOCVSSPEC" != "yes" ]; then
 
@@ -702,7 +704,7 @@
 
 			# create symlinks for tools
 			if [ "$SYMLINK_TOOLS" != "no" ]; then
-				for a in dropin md5 adapter builder {relup,compile,repackage,rsync}.sh; do
+				for a in dropin md5 adapter builder {relup,compile,repackage,rsync,pearize}.sh; do
 					[ -f $a ] || continue
 					ln -s ../$a $ASSUMED_NAME
 					cvsignore_df $a
@@ -959,18 +961,27 @@
 }
 
 check_md5() {
+	local bad
 	[ "$NO5" = "yes" ] && return
 
 	update_shell_title "check md5"
 
 	for i in "$@"; do
-		if good_md5 "$i" && good_size "$i"; then
-			continue
+		bad=0
+		if ! good_md5 "$i"; then
+			echo -n "MD5 sum mismatch."
+			bad=1
+		fi
+		if ! good_size "$i"; then
+			echo -n "0 sized file."
+			bad=1
 		fi
 
-		echo "MD5 sum mismatch or 0 size.  Use -U to refetch sources,"
-		echo "or -5 to update md5 sums, if you're sure files are correct."
-		Exit_error err_no_source_in_repo $i
+		if [ $bad -eq 1 ]; then
+			echo " Use -U to refetch sources,"
+			echo "or -5 to update md5 sums, if you're sure files are correct."
+			Exit_error err_no_source_in_repo $i
+		fi
 	done
 }
 
@@ -1014,13 +1025,13 @@
 				if echo $i | grep -vE '(http|ftp|https|cvs|svn)://' | grep -qE '\.(gz|bz2)$']; then
 					echo "Warning: no URL given for $i"
 				fi
+				target="$fp"
 
 				if [ -z "$NODIST" ] && [ -n "$srcmd5" ]; then
 					if good_md5 "$i" && good_size "$i"; then
 						echo "$fp having proper md5sum already exists"
 						continue
 					fi
-					target="$fp"
 
 					# optionally prefer mirror over distfiles if there's mirror
 					# TODO: build url list and then try each url from the list
@@ -1072,6 +1083,7 @@
 								update_shell_title "${GETURI2%% *}: $url_attic"
 								${GETURI2} ${OUTFILEOPT} "$target" "$url_attic"
 							fi
+							test -s "$target" || rm -f "$target"
 						fi
 					fi
 
@@ -1098,11 +1110,12 @@
 						im="$i"
 					fi
 					update_shell_title "${GETURI%% *}: $im"
-					${GETURI} "$im" || \
+					${GETURI} "$im" ${OUTFILEOPT} "$target" || \
 					if [ "`echo $im | grep -E 'ftp://'`" ]; then
 						update_shell_title "${GETURI2%% *}: $im"
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/rpm-build-tools/adapter.awk?r1=1.10&r2=1.11&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/rpm-build-tools/adapter.sh?r1=1.6&r2=1.7&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/rpm-build-tools/builder.sh?r1=1.26&r2=1.27&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/rpm-build-tools/pldnotify.awk?r1=1.9&r2=1.10&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/rpm-build-tools/rpm-build-tools.spec?r1=1.18&r2=1.19&f=u



More information about the pld-cvs-commit mailing list