X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@lists.alpinelinux.org Received: from mail-bw0-f223.google.com (mail-bw0-f223.google.com [209.85.218.223]) by lists.alpinelinux.org (Postfix) with ESMTP id 4108561A7E8 for ; Tue, 4 Aug 2009 06:50:45 +0000 (UTC) Received: by bwz23 with SMTP id 23so2951813bwz.25 for ; Mon, 03 Aug 2009 23:50:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:from:to:cc :in-reply-to:references:content-type:date:message-id:mime-version :x-mailer:content-transfer-encoding; bh=QtKLZg36y/NKdEmnbsTcK+ElLLGWgzDFnxtA+bp/DHY=; b=PeqBstl9Dc1BMByg2vTVSmOxTWaFq1zLSCQaELQMHAv2Mh30cNKibRlWhm32v+m57O KMVHSkBVfgK/hgSAddEwyeTGs40RynjmJNP2t2LKTwUxlBq/ilhylTYb/iVbK6ktKKDP sRhUxCqYCe7EbR/2jcILugB94IEW7qZn2LyBU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:x-mailer:content-transfer-encoding; b=f7GFJ/2zXBIu3/RPha/x4Q6HVZhdVQi3eStmWOJlSWH30XgyJMIat5yPUMtrpXgifR gfV8HJ2oS19PuO+7hYVWJ69Bp25sTqdVK/A/fNT2sv7FSlypgCJW8Ock/JEc1WM/Umdx b1AeIqK6EEmZEMIoEi6FeZ0XO23RN01wAHBZE= Received: by 10.103.8.5 with SMTP id l5mr3755654mui.14.1249368643939; Mon, 03 Aug 2009 23:50:43 -0700 (PDT) Received: from ?10.65.65.1? ([90.149.199.29]) by mx.google.com with ESMTPS id j2sm35239738mue.20.2009.08.03.23.50.41 (version=SSLv3 cipher=RC4-MD5); Mon, 03 Aug 2009 23:50:42 -0700 (PDT) Subject: Re: [alpine-devel] How to handle regular git/svn builds From: Natanael Copa To: Mark Constable Cc: alpine-devel@lists.alpinelinux.org In-Reply-To: <4A779F91.6090707@renta.net> References: <4A779F91.6090707@renta.net> Content-Type: text/plain Date: Tue, 04 Aug 2009 08:52:07 +0200 Message-Id: <1249368727.12941.69.camel@localhost.localdomain> X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: Mime-Version: 1.0 X-Mailer: Evolution 2.26.3 Content-Transfer-Encoding: 7bit On Tue, 2009-08-04 at 12:40 +1000, Mark Constable wrote: > Perhaps I missed something obvious but I haven't yet come across > an example of an APKBUILD pulling source from git or svn repos. I think I copied some examples from Archlinux... oh... I didnt ship them with the release. Probably because I was not sure how to deal with it officially. > ATM I do this with Archlinux by using a non-standard getsource() > function in the PKGBUILD. I don't want to use the standard way > for two reasons, a) it needlessly self modifies the $pkgver > variable in the PKGBUILD and b) expects to pull the git/svn > source into $srcdir rather than my preferred $SRCDEST. > > The implications of a) is that every PKGBUILD is changed with > every build so when it comes time to commit the source package > changes then EVERY package is going to have a be committed even > though it's only a redundant $pkgver variable update that is > not even used. It just creates useless git log noise. not really following here. You dont need to commit if you dont want log noise? If you do have a new build, new package, then its nice to have tha logged? > I solve this problem by using $pkgrel=$(date -u +%Y%m%d%H) which > dynamically updates that field and allows me to build unique > packages multiple times per day without modifying the PKGBUILD. The drawback with this is that you will fork in global scope which is a no-no from performance point of view. Its no problem if you have 1 or two APKBUILDs doing this but it might be a problem if we get many many APKBUILDs. > The second b) point is that I have about 20Gb of cloned and checked > out sources and there is no way I want all that bulk intermixed > in with my source packages. > > Anyway, this works but I'm wondering what any official thoughts > about handling this might be? sounds like you have more experience than me in this field. Personally i dont create packages of git/svn versions. I prefer snapshots. When i work on something I do 'make install' and just install it rather than package it first. Hm. I wonder if we could use git-describe to set the version. > > --markc > > ----------------------------------------------------------------- > pkgname=apk-tools > pkgver=2.0_pre17 > pkgrel=$(date -u +%Y%m%d%H) > pkgdesc="Alpine Package Keeper - package manager for alpine" > depends= > makedepends="zlib-dev openssl-dev pkgconfig" > source="0001-db-fix-checksum-storing-to-db.patch > 0001-io-fix-corruption-of-big-files-on-mmap-write.patch" > > url="http://git.alpinelinux.org/cgit/apk-tools/" > license=GPL-2 > > build() > { > _getsource || return 1 > > cd "$srcdir/$pkgname-$pkgver" > sed -i -e 's:-Werror::' Make.rules > make || return 1 > make DESTDIR="$pkgdir" install > cd "$pkgdir/sbin" > ln -s apk apk_add > ln -s apk apk_audit > ln -s apk apk_del > ln -s apk apk_index > ln -s apk apk_info > ln -s apk apk_version > } > > _getsource() > { > [ -d $SRCDEST ] && cd $SRCDEST || return 1 You need quotes "$SRCDEST" (or paths with spaces will break things for you). > if [ -d $pkgname/.git ]; then > cd $pkgname && git pull origin > else > git clone git://git.alpinelinux.org/apk-tools $pkgname > fi > rsync -a --cvs-exclude --delete $SRCDEST/$pkgname/ $srcdir/$pkgname-$pkgver you need to append rsync to makedepends. > } well, there are several ways to deal with svn/git packages, I think we in general prefers to have the official packages only use releases, or in worst case, snapshots. It would still be nice to have some recommended way to build custom svn/git packages. -nc --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---