[arch-dev-public] making a devtools release

Eric Bélanger snowmaniscool at gmail.com
Tue Sep 1 23:08:49 EDT 2009


On Tue, Sep 1, 2009 at 8:43 AM, Allan McRae<allan at archlinux.org> wrote:
> Allan McRae wrote:
>>
>> Eric Bélanger wrote:
>>>
>>> On Tue, Sep 1, 2009 at 1:43 AM, Allan McRae<allan at archlinux.org> wrote:
>>>
>>>>
>>>> Eric Bélanger wrote:
>>>>    At least two are not yet, but I have them on a local working branch:
>>>> - makechrootpkg: fixed copying of .install file to chroot for split
>>>> packages
>>>> - devtools: clean up of commitpkg
>>>>
>>>> Let me know if there are any others that I missed.
>>>>
>>>
>>> These are the only ones that haven't been commited yet.
>>>
>>
>> Great - I will push those when I get home from the office.
>
> All pushed now.
> @Eric: you should look into creating git format patches.  It makes applying
> them much easier (especially keeping attribution data - I didn't know how to
> keep you as the author so I added a Patch-by line).
>
> Allan
>

Hi,

Here's a patch inline and attachedfor split support in commitpkg. It's
in git format.  Let me know if the patch is incorrect git-wise.  BTW,
I haven't tested it as I don't have any split package to update.

Eric

======
>From 58ae91541350c5f7868420c3f09d8876ed5c406d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Eric=20B=E9langer?= <snowmaniscool at gmail.com>
Date: Tue, 1 Sep 2009 22:35:25 -0400
Subject: [PATCH] commitpkg: Added split package support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

All packages created by the PKGBUILD are uploaded to the staging
directory. The output and svn commit messages uses pkgbase instead of
pkgname.

Signed-off-by: Eric Bélanger <snowmaniscool at gmail.com>
---
 commitpkg |  112 +++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 58 insertions(+), 54 deletions(-)

diff --git a/commitpkg b/commitpkg
index a7078e7..4341507 100755
--- a/commitpkg
+++ b/commitpkg
@@ -26,76 +26,80 @@ if [ -z "$CARCH" ]; then
 fi

 source PKGBUILD
-pkgfile=${pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
-anypkgfile=${pkgname}-${pkgver}-${pkgrel}-any${PKGEXT}
+pkgbase=${pkgbase:-${pkgname[0]}}

-if [ ! -f $pkgfile ]; then
-    if [ -f $PKGDEST/$pkgfile ]; then
-        pkgfile=$PKGDEST/$pkgfile
-	anypkgfile=$PKGDEST/$anypkgfile
-    elif [ -f $anypkgfile ]; then
-	pkgfile=$anypkgfile
-	CARCH=any
-    elif [ -f $PKGDEST/$anypkgfile ]; then
-	pkgfile=$PKGDEST/$anypkgfile
-	CARCH=any
-    else
-        echo "File $pkgfile doesn't exist"
-        exit 1
+for _pkgname in ${pkgname[@]}; do
+    pkgfile=${_pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
+    anypkgfile=${_pkgname}-${pkgver}-${pkgrel}-any${PKGEXT}
+
+    if [ ! -f $pkgfile ]; then
+	if [ -f $PKGDEST/$pkgfile ]; then
+            pkgfile=$PKGDEST/$pkgfile
+	    anypkgfile=$PKGDEST/$anypkgfile
+	elif [ -f $anypkgfile ]; then
+	    pkgfile=$anypkgfile
+	    CARCH=any
+	elif [ -f $PKGDEST/$anypkgfile ]; then
+	    pkgfile=$PKGDEST/$anypkgfile
+	    CARCH=any
+	else
+            echo "File $pkgfile doesn't exist"
+            exit 1
+	fi
     fi
-fi

 # set up repo-specific opts depending on how we were called
-server="gerolde.archlinux.org"
-if [ "$cmd" == "extrapkg" ]; then
-    repo="extra"
-elif [ "$cmd" == "corepkg" ]; then
-    repo="core"
-elif [ "$cmd" == "testingpkg" ]; then
-    repo="testing"
-elif [ "$cmd" == "communitypkg" ]; then
-    repo="community"
-    server="aur.archlinux.org"
-else
-    if [ $# -eq 0 ]; then
-        echo "usage: commitpkg <reponame> [-l limit] [commit message]"
-        exit 1
+    server="gerolde.archlinux.org"
+    if [ "$cmd" == "extrapkg" ]; then
+	repo="extra"
+    elif [ "$cmd" == "corepkg" ]; then
+	repo="core"
+    elif [ "$cmd" == "testingpkg" ]; then
+	repo="testing"
+    elif [ "$cmd" == "communitypkg" ]; then
+	repo="community"
+	server="aur.archlinux.org"
+    else
+	if [ $# -eq 0 ]; then
+            echo "usage: commitpkg <reponame> [-l limit] [commit message]"
+            exit 1
+	fi
+	repo="$1"
+	shift
     fi
-    repo="$1"
-    shift
-fi

 # see if any limit options were passed, we'll send them to SCP
-unset scpopts
-if [ "$1" = "-l" ]; then
-    scpopts="$1 $2"
-    shift 2
-fi
+    unset scpopts
+    if [ "$1" = "-l" ]; then
+	scpopts="$1 $2"
+	shift 2
+    fi

 # combine what we know into a variable
-uploadto="staging/${repo}/$(basename ${pkgfile})"
-scp ${scpopts} "${pkgfile}" "${server}:${uploadto}"
-if [ "$(md5sum "${pkgfile}" | cut -d' ' -f1)" != "$(ssh ${server}
md5sum "${uploadto}" | cut -d' ' -f1)" ]; then
-    echo "File got corrupted during upload, cancelled."
-    exit 1
-else
-    echo "File integrity okay."
-fi
+    uploadto="staging/${repo}/$(basename ${pkgfile})"
+    scp ${scpopts} "${pkgfile}" "${server}:${uploadto}"
+    if [ "$(md5sum "${pkgfile}" | cut -d' ' -f1)" != "$(ssh ${server}
md5sum "${uploadto}" | cut -d' ' -f1)" ]; then
+	echo "File got corrupted during upload, cancelled."
+	exit 1
+    else
+	echo "File integrity okay."
+    fi

-if [ $? -ne 0 ]; then
-    echo "Cancelled"
-    exit 1
-fi
-echo "===> Uploaded $pkgfile"
+    if [ $? -ne 0 ]; then
+	echo "Cancelled"
+	exit 1
+    fi
+    echo "===> Uploaded $pkgfile"
+done

 if [ "$1" != "" ]; then
-    svn commit -m "upgpkg: $pkgname $pkgver-$pkgrel
+    svn commit -m "upgpkg: $pkgbase $pkgver-$pkgrel
     $1" > /dev/null
     if [ $? -ne 0 ]; then
         echo "Cancelled"
         exit 1
     fi
-    echo "===> Commited with \"upgpkg: $pkgname $pkgver-$pkgrel
+    echo "===> Commited with \"upgpkg: $pkgbase $pkgver-$pkgrel
     $1\" message"
 else
     svn commit >/dev/null
@@ -103,7 +107,7 @@ else
         echo "Cancelled"
         exit 1
     fi
-    echo "===> Commited with \"upgpkg: $pkgname $pkgver-$pkgrel\" message"
+    echo "===> Commited with \"upgpkg: $pkgbase $pkgver-$pkgrel\" message"
 fi

 archrelease $repo-$CARCH
-- 
1.6.4.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-commitpkg-Added-split-package-support.patch
Type: text/x-patch
Size: 4686 bytes
Desc: not available
URL: <http://mailman.archlinux.org/pipermail/arch-dev-public/attachments/20090901/6dd86c8f/attachment-0001.bin>


More information about the arch-dev-public mailing list