Compare commits

...

10 Commits
0.9.3 ... 0.9.6

Author SHA1 Message Date
Pierre Schmitz
12eec95ff8 set version in Makefile 2010-05-02 15:46:51 +02:00
Pierre Schmitz
d4f00819ac copy namcap.log to working dir 2010-05-02 15:42:29 +02:00
Pierre Schmitz
4a4455c086 Set target CARCH before sourcing the PKGBUILD
CARCH might be used within the PKGBUILD to select correct sources
2010-05-02 15:23:54 +02:00
Pierre Schmitz
52e140f2fe exit 1 on build failure 2010-05-02 15:16:53 +02:00
Pierre Schmitz
48dead1af7 Force correct remote file permissions 2010-03-31 23:58:59 +02:00
Pierre Schmitz
17e875f6b3 makechrootpkg: Keep source files even if build fails
implementes FS#18437
2010-03-03 21:49:22 +01:00
Pierre Schmitz
a7c5010d24 Upload any pkg.tar.* file as long as it is canonical 2010-03-03 21:41:53 +01:00
Pierre Schmitz
f72775feac PKGEXT was not defined in the context 2010-03-03 21:38:59 +01:00
Pierre Schmitz
371f57b043 Don't check if package was released already
The checks aren't reliable enough and fail if the local repo is broken due to
network failures. So for now we just allways commit.
2010-02-22 19:11:17 +01:00
Pierre Schmitz
2fe5dbf904 be more fail safe 2010-02-22 08:13:43 +01:00
4 changed files with 47 additions and 39 deletions

View File

@@ -1,3 +1,5 @@
V=0.9.6
all: all:
install: install:

View File

@@ -1,42 +1,34 @@
#!/bin/bash #!/bin/bash
if [ "$1" = '' ]; then abort() {
echo 'Usage: archrelease <repo>' echo ${1:-'archrelease: Cancelled'}
exit 1 exit 1
}
if [ "$1" = '' ]; then
abort 'Usage: archrelease <repo>'
fi fi
if [ ! -f PKGBUILD ]; then if [ ! -f PKGBUILD ]; then
echo 'archrelease: PKGBUILD not found' abort 'archrelease: PKGBUILD not found'
exit 1
fi fi
if [ "$(basename $(readlink -f .))" != 'trunk' ]; then if [ "$(basename $(readlink -f .))" != 'trunk' ]; then
echo 'archrelease: Not in a package trunk dir' abort 'archrelease: Not in a package trunk dir'
exit 1
fi fi
if [ ! -z "$(svn status -q)" ]; then if [ ! -z "$(svn status -q)" ]; then
echo 'archrelease: You have not committed your changes yet!' abort 'archrelease: You have not committed your changes yet!'
echo ' Please run "svn commit" first'
exit 1
fi fi
echo -n 'releasing package...' echo -n 'releasing package...'
pushd .. >/dev/null pushd .. >/dev/null
trunk=$(svnversion -cn trunk | cut -f1 -d:)
repo=$(svnversion -cn "repos/${1}" 2>/dev/null | cut -f1 -d:)
if [[ ${trunk} -le ${repo} ]]; then
echo 'already done'
exit 1
fi
if [ -d "repos/${1}" ]; then if [ -d "repos/${1}" ]; then
svn rm --force -q "repos/${1}" svn rm --force -q "repos/${1}"
svn commit -q -m "archrelease: remove ${1}" svn commit -q -m "archrelease: remove ${1}" || abort
fi fi
svn copy -q -r HEAD trunk "repos/${1}" svn copy -q -r HEAD trunk "repos/${1}"
svn commit -q -m "archrelease: copy trunk to ${1}" svn commit -q -m "archrelease: copy trunk to ${1}" || abort
popd >/dev/null popd >/dev/null
echo 'done' echo 'done'

View File

@@ -5,6 +5,17 @@ abort() {
exit 1 exit 1
} }
getpkgfile() {
if [[ ${#} -ne 1 ]]; then
echo 'ERROR: No canonical package found!' >&2
exit 1
elif [ ! -f "${1}" ]; then
echo "ERROR: Package ${1} not found!" >&2
exit 1
fi
echo ${1}
}
# Source makepkg.conf; fail if it is not found # Source makepkg.conf; fail if it is not found
if [ -r '/etc/makepkg.conf' ]; then if [ -r '/etc/makepkg.conf' ]; then
@@ -74,17 +85,18 @@ echo 'done'
for _arch in ${arch[@]}; do for _arch in ${arch[@]}; do
for _pkgname in ${pkgname[@]}; do for _pkgname in ${pkgname[@]}; do
pkgfile=$_pkgname-$pkgver-$pkgrel-${_arch}$PKGEXT pkgfile=$(getpkgfile "$_pkgname-$pkgver-$pkgrel-${_arch}".pkg.tar.* 2>/dev/null)
pkgdestfile=$(getpkgfile "$PKGDEST/$_pkgname-$pkgver-$pkgrel-${_arch}".pkg.tar.* 2>/dev/null)
if [ ! -f $pkgfile -a -f "$PKGDEST/$pkgfile" ]; then if [ ! -f "$pkgfile" -a -f "$pkgdestfile" ]; then
pkgfile="$PKGDEST/$pkgfile" pkgfile="$pkgdestfile"
elif [ ! -f $pkgfile ]; then elif [ ! -f "$pkgfile" ]; then
echo "skipping ${_arch}" echo "skipping ${_arch}"
continue 2 continue 2
fi fi
echo -n 'uploading ' echo -n 'uploading '
rsync -c -h -L --progress $rsyncopts "${pkgfile}" -e ssh $server:staging/$repo || abort rsync -p --chmod 'ug=rw,o=r' -c -h -L --progress $rsyncopts "${pkgfile}" -e ssh $server:staging/$repo || abort
done done
archrelease $repo-${_arch} || abort archrelease $repo-${_arch} || abort
done done

View File

@@ -147,6 +147,8 @@ if ! grep 'SRCDEST=/srcdest' "$copydir/etc/makepkg.conf" >/dev/null 2>&1; then
echo 'SRCDEST=/srcdest' >> "$copydir/etc/makepkg.conf" echo 'SRCDEST=/srcdest' >> "$copydir/etc/makepkg.conf"
fi fi
# Set target CARCH as it might be used within the PKGBUILD to select correct sources
CARCH=$(eval $(grep '^CARCH=' "$copydir/etc/makepkg.conf"))
# Copy PKGBUILD and sources # Copy PKGBUILD and sources
source PKGBUILD source PKGBUILD
cp PKGBUILD "$copydir/build/" cp PKGBUILD "$copydir/build/"
@@ -196,21 +198,20 @@ cd /build
export HOME=/build export HOME=/build
sudo -u nobody makepkg $MAKEPKG_ARGS || touch BUILD_FAILED sudo -u nobody makepkg $MAKEPKG_ARGS || touch BUILD_FAILED
[ -f BUILD_FAILED ] && exit 1 [ -f BUILD_FAILED ] && exit 1
which namcap &>/dev/null && namcap /build/PKGBUILD /pkgdest/*${PKGEXT} > /pkgdest/namcap.log which namcap &>/dev/null && namcap /build/PKGBUILD /pkgdest/*.pkg.tar.* > /build/namcap.log
exit 0 exit 0
EOF EOF
) > "$copydir/chrootbuild" ) > "$copydir/chrootbuild"
chmod +x "$copydir/chrootbuild" chmod +x "$copydir/chrootbuild"
if mkarchroot -r "/chrootbuild" "$copydir"; then if mkarchroot -r "/chrootbuild" "$copydir"; then
for pkgfile in "${copydir}"/pkgdest/*${PKGEXT}; do for pkgfile in "${copydir}"/pkgdest/*.pkg.tar.*; do
[ -e "$pkgfile" ] || continue [ -e "$pkgfile" ] || continue
_pkgname=$(basename "$pkgfile")
if [ "$add_to_db" -eq "1" ]; then if [ "$add_to_db" -eq "1" ]; then
[ -d "${copydir}/repo" ] || mkdir -p "${copydir}/repo" mkdir -p "${copydir}/repo"
pushd "${copydir}/repo" >/dev/null pushd "${copydir}/repo" >/dev/null
cp "$pkgfile" . cp "$pkgfile" .
repo-add repo.db.tar.gz "$_pkgname" repo-add repo.db.tar.gz "$(basename "$pkgfile")"
popd >/dev/null popd >/dev/null
fi fi
@@ -221,16 +222,7 @@ if mkarchroot -r "/chrootbuild" "$copydir"; then
fi fi
done done
for f in "${copydir}"/srcdest/*; do for l in "${copydir}"/build/{namcap,*-{build,package}}.log; do
[ -e "$f" ] || continue
if [ -d "$SRCDEST" ]; then
mv "$f" "${SRCDEST}"
else
mv "$f" "${WORKDIR}"
fi
done
for l in "${copydir}"/build/*-{build,package}.log; do
[ -f "$l" ] && mv "$l" "${WORKDIR}" [ -f "$l" ] && mv "$l" "${WORKDIR}"
done done
else else
@@ -238,9 +230,19 @@ else
touch "${copydir}/build/BUILD_FAILED" touch "${copydir}/build/BUILD_FAILED"
fi fi
for f in "${copydir}"/srcdest/*; do
[ -e "$f" ] || continue
if [ -d "$SRCDEST" ]; then
mv "$f" "${SRCDEST}"
else
mv "$f" "${WORKDIR}"
fi
done
if [ -e "${copydir}/build/BUILD_FAILED" ]; then if [ -e "${copydir}/build/BUILD_FAILED" ]; then
echo "Build failed, check $copydir/build" echo "Build failed, check $copydir/build"
rm "${copydir}/build/BUILD_FAILED" rm "${copydir}/build/BUILD_FAILED"
exit 1
else else
rm -rf "${copydir}"/build/* rm -rf "${copydir}"/build/*
fi fi