summaryrefslogtreecommitdiff
path: root/buildrepo.in
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2015-06-05 06:47:52 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2015-06-05 06:47:52 +0000
commitd4d0dc0c335ecf96fcfb97077050197efd92ca1d (patch)
treeb52f63d6993256dea4c012075ad9b254deb82095 /buildrepo.in
parentda666e00c75451b5eedf17efee85cfa9041e769e (diff)
downloadabuild-d4d0dc0c335ecf96fcfb97077050197efd92ca1d.tar.gz
abuild-d4d0dc0c335ecf96fcfb97077050197efd92ca1d.tar.bz2
abuild-d4d0dc0c335ecf96fcfb97077050197efd92ca1d.tar.xz
abuild-d4d0dc0c335ecf96fcfb97077050197efd92ca1d.zip
remove buildrepo
We ship a new implementation of buildrepo with lua-aports
Diffstat (limited to 'buildrepo.in')
-rw-r--r--buildrepo.in206
1 files changed, 0 insertions, 206 deletions
diff --git a/buildrepo.in b/buildrepo.in
deleted file mode 100644
index f489908..0000000
--- a/buildrepo.in
+++ /dev/null
@@ -1,206 +0,0 @@
-#!/bin/sh
-
-program=${0##*/}
-
-aportsdir=${APORTSDIR:-$HOME/aports}
-repodir=${REPODIR:-$HOME/packages}
-
-if [ -f /etc/abuild.conf ]; then
- . /etc/abuild.conf
-fi
-
-if [ -z "$CARCH" ]; then
- machine=$(uname -m)
- case $machine in
- i[3-9]86) CARCH=x86;;
- *) CARCH=$machine;;
- esac
-fi
-
-usage() {
- echo "usage: $program [-a APORTSDIR] [-d REPODIR] [-hp] [-l LOGPREFIX ]"
- echo " [-r DEPREPO] REPOSITORY..."
-
- echo "options:"
- echo " -a Set the aports base dir to APORTSDIR instead of $aportsdir"
- echo " -d Set destination repository base dir to REPODIR instead of $repodir"
- echo " -h Show this help and exit"
- echo " -l Send build to logfile, prefixed by LOGPREFIX"
- echo " -k Keep going, even if packages fails"
- echo " -p Purge obsolete packages from REPODIR after build"
- echo " -r Dependencies are found in DEPREPO"
- exit 1
-}
-
-is_in() {
- local needle="$1" arg=
- shift
- for arg; do
- [ "$needle" = "$arg" ] && return 0
- done
- return 1
-}
-
-check_arch() {
- [ "$1" = "all" ] || [ "$1" = "noarch" ] || is_in "$CARCH" $@
-}
-
-listpackages() {
- local repo="$1" i= pkgname= pkgver= pkgrel= subpackage= arch= subpkg= linguas=
- local lang= suffix=
- cd "$aportsdir/$repo"
- for i in */APKBUILD; do
- cd "$aportsdir/$repo"/${i%/*} || return 1
- pkgname=
- pkgver=
- pkgrel=0
- subpackages=
- arch=
- linguas=
- . ./APKBUILD
- suffix="$pkgver-r$pkgrel.apk"
-
- if ! check_arch $arch; then
- continue
- fi
- for subpkg in $pkgname $subpackages; do
- echo ${subpkg%:*}-$suffix
- done
- for lang in $linguas; do
- echo $pkgname-lang-$lang-$suffix
- done
- done
-}
-
-all_exist() {
- while [ $# -gt 0 ]; do
- [ -e "$1" ] || return 1
- shift 1
- done
- return 0
-}
-
-list_needbuild() {
- local repo="$1" i=
-
- cd "$aportsdir/$repo" || return 0
-
- # first we try copy everything possible and find out which we need
- # to rebuild. By doing this we might save us for rebuilding
- # needed when running 'abuild -R'
- for apkbuild in */APKBUILD; do
- [ -f "$aportsdir/$repo/$apkbuild" ] || continue
- export REPODEST="$repodir"
- cd "$aportsdir/$repo"/${apkbuild%/*} || return 1
- pkgname=
- pkgver=
- pkgrel=0
- subpackages=
- arch=
- . ./APKBUILD
-
- if ! check_arch $arch; then
- continue
- fi
-
- pkgs=
- for subpkg in $pkgname $subpackages; do
- pkgfile=${subpkg%:*}-$pkgver-r$pkgrel.apk
- if ! [ -f "$REPODEST/$repo/$CARCH/$pkgfile" ]; then
- pkgs="$pkgs $pkgfile"
- fi
- done
- if [ -z "$pkgs" ]; then
- continue
- fi
-
- # try link or copy the files if they are in the ports dir
- if all_exist $pkgs; then
- echo ">>> Copying " $pkgs >&2
- cp -p -l $pkgs "$repodir/$repo/$CARCH"/ 2>/dev/null \
- || cp -p $pkgs "$repodir/$repo/$CARCH"/ \
- || echo "$apkbuild"
- else
- echo "$apkbuild"
- fi
- done
-}
-
-do_build() {
- local repo="$1" i=
- cd "$aportsdir/$repo" || return 0
- local needbuild="$(list_needbuild $repo)"
-
- export REPODEST="$repodir"
- export ABUILD_BLACKLIST
- # build the postponed packages if any
- if [ -n "$needbuild" ]; then
- for i in $needbuild; do
- cd "$aportsdir/$repo"/${i%/*} || return 1
- if ! abuild -k -R; then
- [ -n "$keep_going" ] || return 1
- ABUILD_BLACKLIST="$ABUILD_BLACKLIST $i"
- fi
- done
- fi
-
- # kill old packages in repo
- if [ -n "$dopurge" ]; then
- echo ">>> Removing old packages from $repo..."
- local tmp=$(mktemp /tmp/$program-XXXXXX)
- local purgefiles
- cd "$repodir/$repo/$CARCH" || return 1
- trap 'rm -f "$tmp"; exit 1' INT
- ( listpackages "$1") >$tmp || return 1
- purge=$(ls *.apk 2>/dev/null | grep -v -w -f $tmp)
- if [ -n "$purge" ]; then
- rm -f $purge
- fi
- rm -f "$tmp"
- fi
-
- # generate the repository index
- echo ">>> Generating Index for $repo..."
- cd "$repodir/$repo/$CARCH"
- local deps
- for i in $deprepo; do
- deps="--repo $repodir/$i"
- done
- oldindex=
- if [ -f APKINDEX.tar.gz ]; then
- oldindex="--index APKINDEX.tar.gz"
- fi
- tmpindex=$(mktemp).tar.gz
- apk index --rewrite-arch $CARCH $oldindex -o $tmpindex \
- --description "$repo $(cd $aportsdir && git describe)" \
- -- *.apk
- abuild-sign $tmpindex && mv $tmpindex APKINDEX.tar.gz
- chmod 644 APKINDEX.tar.gz
- rm -f tmp.*
-}
-
-while getopts "a:d:hkl:pr:" opt; do
- case "$opt" in
- a) aportsdir=$OPTARG;;
- d) repodir=$OPTARG;;
- h) usage >&2;;
- k) keep_going=1;;
- l) logprefix=$OPTARG;;
- p) dopurge=1;;
- r) deprepo="$deprepo $OPTARG";;
- esac
-done
-shift $(($OPTIND - 1))
-
-[ $# -eq 0 ] && usage >&2
-
-while [ $# -gt 0 ]; do
- if [ -n "$logprefix" ]; then
- do_build $1 >$logprefix.$1.log 2>&1 || exit 1
- else
- do_build $1 || exit 1
- fi
- deprepo="$deprepo $1"
- shift
-done
-