Mail archive
alpine-devel

Re: [alpine-devel] RFC: volatile repo/apkbuilds

From: Jeremy Thomerson <jeremy_at_thomersonfamily.com>
Date: Mon, 9 Nov 2009 09:08:14 -0600

Seems to make sense to me. I have a question, though: Say there are two
packages I have installed - PackageA from volatile and PackageB version
1.2.2 from main. If PackageB suddenly shows up in volatile, would my next
update upgrade it? I think it would be important that only packages that
are already installed as volatile versions are upgraded to other volatile
versions.

Jeremy

On Fri, Nov 6, 2009 at 7:21 AM, Natanael Copa <natanael.copa_at_gmail.com>wrote:

> Hi,
>
> Been playing with the idea previously mentioned by Mark Constable with
> volatile packages from svn/git/cvs.
>
> The idea is that each run it will update the sources from git/svn and if
> needed, recompile. That way we could have a "volatile" repository which
> tracks some upstream projects, like apk-tools, abuild etc.
>
> This gives us early packages for testing/development.
>
> What would be nice is if:
> * packages are only updated/rebuilt when upstream have changes. so
> pkgrel=$(date -u +%Y%m%d%H)
> wont do it.
>
> * package version includes the scm id of some sort.
>
> * we dont need to modify the apkbuild when things changes upstream
>
> So far I have been thinking in those lines:
>
> Set pkgver to "volatile":
> pkgver="volatile"
>
> The must provide a getpkgver() function which will give the pkgrel late.
>
> The apkbuild must override the fetch() and unpack() functions.
>
> Example:
>
> ...
> source=
> _git_source="git://git.alpinelinux.org/apk-tools"
>
> getpkgver() {
> if [ ! -d "$srcdir"/$pkgname ]; then
> unpack
> fi
> cd "$srcdir"/$pkgname
> local tagver=$(git describe --exact-match | sed 's/^v//')
> local n=$(git describe --long | cut -d- -f2)
> pkgver=${_tagver}_git${n}
> }
>
> fetch() {
> msg "Fetching source from $_git_source"
> if [ -d "$SRCDEST"/$pkgname/.git ]; then
> cd "$SRCDEST"/$pkgname
> git pull --rebase
> else
> rm -rf "$SRCDEST"/$pkgname
> git clone "$_git_source" "$SRCDEST"/$pkgname
> fi
> cd "$SRCDEST"/$pkgname
> }
>
> unpack() {
> if [ ! -d "$SRCDEST"/$pkgname ]; then
> fetch
> fi
> mkdir -p "$srcdir"/$pkgname-$pkgver
> rsync -a --delete "$SRCDEST"/$pkgname/ \
> "$srcdir"/$pkgname
> }
>
> build() {
> cd "$srcdir/$pkgname"
> make || return 1
> }
>
> package() {
> cd "$srcdir/$pkgname"
> make DESTDIR="$pkgdir" install
> }
> ...
>
> Does that make sense?
>
> Other ideas?
>
> -nc
>
>
>
> ---
> Unsubscribe: alpine-devel+unsubscribe_at_lists.alpinelinux.org<alpine-devel%2Bunsubscribe_at_lists.alpinelinux.org>
> Help: alpine-devel+help_at_lists.alpinelinux.org<alpine-devel%2Bhelp_at_lists.alpinelinux.org>
> ---
>
>



---
Unsubscribe:  alpine-devel+unsubscribe_at_lists.alpinelinux.org
Help:         alpine-devel+help_at_lists.alpinelinux.org
---
Received on Mon Nov 09 2009 - 09:08:14 UTC