Date: 23 Oct 2009 23:42:05 +0200 From: Johannes 5 Joemann <joemann@beefree.free.de> To: FreeBSD-gnats-submit@FreeBSD.org Cc: sergei@FreeBSD.org Subject: ports/139872: [PATCH] ports-mgmt/porttools: improve port's directory name heuristic and handle added/deleted files in CVS mode Message-ID: <20091023214205.76272.qmail@beefree.free.de> Resent-Message-ID: <200910232200.n9NM0DBO034956@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 139872 >Category: ports >Synopsis: [PATCH] ports-mgmt/porttools: improve port's directory name heuristic and handle added/deleted files in CVS mode >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri Oct 23 22:00:13 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Johannes 5 Joemann >Release: FreeBSD 8.0-RC1 i386 >Organization: >Environment: System: FreeBSD xxx.free.de 8.0-RC1 FreeBSD 8.0-RC1 #0: Thu Sep 24 23:14:55 CEST 2009 >Description: - Improve the heuristic for finding the port's directory name: - In CVS mode use CVS/Repository as the source of the port's directory name, - else try to fall back to the basename of the working directory if the PORTNAME heuristic fails. - The patches below should also fix <http://sourceforge.net/support/tracker.php?aid=1969774>. - Handle added/deleted files in CVS mode: - When finally submitting you'll have to use "port submit -L" if files are added or deleted, because that's FATAL for portlint. Port maintainer (sergei@FreeBSD.org) is cc'd. Generated with FreeBSD Port Tools 0.99 (with the patches below applied) >How-To-Repeat: >Fix: --- porttools-0.99_1.patch begins here --- Index: Makefile =================================================================== RCS file: /home/ncvs/ports/ports-mgmt/porttools/Makefile,v retrieving revision 1.25 diff -u -r1.25 Makefile --- Makefile 9 Sep 2009 21:02:21 -0000 1.25 +++ Makefile 23 Oct 2009 20:34:46 -0000 @@ -7,6 +7,7 @@ PORTNAME= porttools PORTVERSION= 0.99 +PORTREVISION= 1 CATEGORIES= ports-mgmt MASTER_SITES= SF --- files/patch-cmd_submit.in.orig 1970-01-01 00:00:00.000000000 +0100 +++ files/patch-cmd_submit.in 2009-10-23 22:30:57.000000000 +0200 @@ -0,0 +1,25 @@ +--- cmd_submit.in.orig 2009-09-09 21:59:59.000000000 +0200 ++++ cmd_submit.in 2009-10-23 20:37:25.000000000 +0200 +@@ -155,6 +155,8 @@ + RELEASE="`uname -srp`" + SYSTEM="`uname -a | cut -d ' ' -f 1-12`" + ++# PORTBASENAME will be set by util_diff if PORTNAME != port's directory ++PORTBASENAME="" + # Generate diff or shar, depending on the mode + . ${SCRIPT_DIR}/util_diff + +@@ -242,7 +244,12 @@ + fi + + # Generate Synopsis line +-SYNOPSIS="[${PREFIX}] ${CATEGORY}/${PORTNAME}: ${SUFFIX}" ++if [ -z "${PORTBASENAME}" ] ++then ++ SYNOPSIS="[${PREFIX}] ${CATEGORY}/${PORTNAME}: ${SUFFIX}" ++else ++ SYNOPSIS="[${PREFIX}] ${CATEGORY}/${PORTBASENAME}: ${SUFFIX}" ++fi + + echo "===> Generating PR form" + PR_FORM="${TEMPROOT}/PR" --- files/patch-util_diff.in.orig 1970-01-01 00:00:00.000000000 +0100 +++ files/patch-util_diff.in 2009-10-23 22:30:57.000000000 +0200 @@ -0,0 +1,71 @@ +--- util_diff.in.orig 2009-09-09 21:59:59.000000000 +0200 ++++ util_diff.in 2009-10-23 20:39:33.000000000 +0200 +@@ -20,6 +20,7 @@ + # Create a temporary dir for generated files (patch/shar, PR form) + TEMPROOT="`mktemp -d -t port`" || exit 1 + ++FILTER_CMD="cat" + if [ "${MODE}" = "new" ] + then + # Generate shar file with new port +@@ -54,15 +55,24 @@ + + # Run 'cvs update' first + echo "===> Updating from CVS" +- cvs -R update -Pd ++ cvs -R update -Pd 2> ${TEMPROOT}/.cvs.out + if [ $? -ne 0 ] + then + echo "Error updating CVS" + rm -rf ${TEMPROOT} + exit 1 + fi ++ PORTBASENAME=`sed -E -e 's%.*/([^/]+)$%\1%' CVS/Repository` ++ DELETED_FILES=`sed -E -n -e 's%^cvs update: warning: (.*) was lost$%\1%p' ${TEMPROOT}/.cvs.out` ++ ADDED_FILES=`cvs -R status | sed -E -n -e 's%^\? (.*)$%\1%p'` ++ for f in ${DELETED_FILES} ++ do ++ rm -f $f ++ touch -t 197001010000 $f ++ done + + DIFF_CMD="cvs -R diff -uN" ++ FILTER_CMD='grep -v ^\?[[:space:]]' + else + # Non-CVS modes + if [ -d ${DIFF_MODE} ] +@@ -76,6 +86,18 @@ + PKGNAMESUFFIX="`make -V PKGNAMESUFFIX`" + PORTNAME="${PKGNAMEPREFIX}`make -V PORTNAME`${PKGNAMESUFFIX}" + ORIG_DIR="${DIFF_MODE}/${CATEGORY}/${PORTNAME}" ++ if [ ! -d ${ORIG_DIR} ] ++ then ++ PORTBASENAME=`basename \`pwd\`` ++ if [ -d "${DIFF_MODE}/${CATEGORY}/${PORTBASENAME}" ] ++ then ++ echo "Original version does not exist at ${ORIG_DIR}" ++ ORIG_DIR="${DIFF_MODE}/${CATEGORY}/${PORTBASENAME}" ++ echo "Using ${ORIG_DIR} instead" ++ else ++ PORTBASENAME="" ++ fi ++ fi + else + # -d <pattern> have been specified + # <pattern> is used to determine original port location +@@ -97,7 +119,14 @@ + echo "===> Generating patch" + PKGNAME="`make -V PKGNAME`" + PATCH="${TEMPROOT}/${PKGNAME}.patch" +- ${DIFF_CMD} > ${PATCH} ++ ${DIFF_CMD} | ${FILTER_CMD} > ${PATCH} ++ [ -z "${DELETED_FILES}" ] || rm -f ${DELETED_FILES} ++ for f in ${ADDED_FILES} ++ do ++ touch -t 197001010000 $f.orig ++ diff -u $f.orig $f >> ${PATCH} ++ rm -f $f.orig ++ done + #if [ $? -ne 0 ] + #then + # echo "Error generating patch" --- porttools-0.99_1.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20091023214205.76272.qmail>