#!/bin/bash if [ $# -ne 3 -a $# -ne 4 ]; then msg "usage: $(basename $0) [-f] " msg " -f Force building. Skip license checks" exit 1 fi . "$(dirname $0)/../db-functions" . "$(dirname $0)/../config" FORCE=0 if [ "$1" = "-f" ]; then FORCE=1 shift fi packagename="$1" reponame="$2" arch="$3" script_lock create_srcpackage() { if [ -f "$1/PKGBUILD" ]; then pushd "$1" >/dev/null pkgver=$(. PKGBUILD; echo ${pkgver}) if [ $? -ne 0 ]; then error "Failed to read pkgver from $1" return 1 fi pkgrel=$(. PKGBUILD; echo ${pkgrel}) if [ $? -ne 0 ]; then error "Failed to read pkgrel from $1" return 1 fi license=($(. PKGBUILD; echo ${license[@]})) if [ $? -ne 0 ]; then error "Failed to read license from $1" return 1 fi if ! [ $FORCE == 1 ] && ! chk_license ${license[@]} ; then # Removed so as not to clutter failed.txt #warning "$packagename license (${license[@]}) does not require source tarballs" return 0 else msg "Creating source tarball for $packagename-$pkgver-$pkgrel" fi local line /usr/bin/makepkg --allsource --ignorearch > "$WORKDIR/makepkg.log" 2>&1 if [ $? -ne 0 ]; then error "Failed to download source for $packagename-$pkgver-$pkgrel ($reponame-$arch)" while read line; do msg2 "${line}" done < "$WORKDIR/makepkg.log" return 1 fi if [ -f "${packagename}-${pkgver}-${pkgrel}${SRCEXT}" ]; then mv "${packagename}-${pkgver}-${pkgrel}${SRCEXT}" "${FTP_BASE}/${SRCPOOL}" else error "Source package not found: ${packagename}-${pkgver}-${pkgrel}${SRCEXT}" while read line; do msg2 "${line}" done < "$WORKDIR/makepkg.log" return 1 fi popd >/dev/null return 0 fi } set_umask cd "$WORKDIR" failed=0 if /usr/bin/svn export -q "$SVNREPO/$packagename" $packagename; then if [ -f "$packagename/repos/$reponame-any/PKGBUILD" ]; then create_srcpackage "$packagename/repos/$reponame-any" || failed=1 elif [ -f "$packagename/repos/$reponame-$arch/PKGBUILD" ]; then create_srcpackage "$packagename/repos/$reponame-$arch" || failed=1 else error "PKGBUILD for '$packagename' does not exist in repo '$reponame-$arch' or '$reponame-any'" failed=1 fi else error "Package '$packagename' does not exist in repo '$reponame-$arch'" failed=1 fi script_unlock exit $failed