summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config10
-rw-r--r--config.local.gerolde2
-rw-r--r--config.local.sigurd2
-rwxr-xr-xcron-jobs/ftpdir-cleanup14
-rw-r--r--db-functions29
-rwxr-xr-xdb-move8
-rwxr-xr-xdb-update4
-rw-r--r--test/lib/common.inc26
-rwxr-xr-xtest/runTest16
9 files changed, 48 insertions, 63 deletions
diff --git a/config b/config
index a595331..89e89fd 100644
--- a/config
+++ b/config
@@ -1,16 +1,10 @@
-
FTP_BASE="/srv/ftp"
SVNREPO="file:///srv/svn-packages"
SVNREPOCOMMUNITY="file:///srv/svn-community"
-declare -A PKGREPO
-PKGREPO['default']='core extra testing staging kde-unstable gnome-unstable'
-PKGREPO['sigurd']='community community-testing community-staging multilib multilib-testing'
-
-declare -A PKGPOOL
-PKGPOOL['default']='pool/packages'
-PKGPOOL['sigurd']='pool/community'
+PKGREPOS=()
+PKGPOOL=''
CLEANUP_DESTDIR="/srv/package-cleanup"
CLEANUP_DRYRUN=false
diff --git a/config.local.gerolde b/config.local.gerolde
new file mode 100644
index 0000000..dd8ba86
--- /dev/null
+++ b/config.local.gerolde
@@ -0,0 +1,2 @@
+PKGREPOS=('core' 'extra' 'testing' 'staging' 'kde-unstable' 'gnome-unstable')
+PKGPOOL='pool/packages'
diff --git a/config.local.sigurd b/config.local.sigurd
new file mode 100644
index 0000000..c8c3c9f
--- /dev/null
+++ b/config.local.sigurd
@@ -0,0 +1,2 @@
+PKGREPOS=('community' 'community-testing' 'community-staging' 'multilib' 'multilib-testing')
+PKGPOOL='pool/community'
diff --git a/cron-jobs/ftpdir-cleanup b/cron-jobs/ftpdir-cleanup
index 5c8776e..914ef8c 100755
--- a/cron-jobs/ftpdir-cleanup
+++ b/cron-jobs/ftpdir-cleanup
@@ -18,11 +18,9 @@ clean_pkg() {
fi
}
-repos=($(get_repos_for_host))
-
script_lock
-for repo in ${repos[@]}; do
+for repo in ${PKGREPOS[@]}; do
for arch in ${ARCHES[@]}; do
repo_lock ${repo} ${arch} || exit 1
done
@@ -30,7 +28,7 @@ done
${CLEANUP_DRYRUN} && warning 'dry run mode is active'
-for repo in ${repos[@]}; do
+for repo in ${PKGREPOS[@]}; do
for arch in ${ARCHES[@]}; do
if [ ! -f "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT}" ]; then
warning "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT} not found, skipping"
@@ -61,7 +59,7 @@ for repo in ${repos[@]}; do
done
# get a list of all available packages in the pacakge pool
-find "$FTP_BASE/$(get_pkgpool_for_host)" -name "*${PKGEXT}" -printf '%f\n' | sort > "${WORKDIR}/pool"
+find "$FTP_BASE/${PKGPOOL}" -name "*${PKGEXT}" -printf '%f\n' | sort > "${WORKDIR}/pool"
# create a list of packages in our db
cat "${WORKDIR}/db-"* | sort -u > "${WORKDIR}/db"
@@ -70,12 +68,12 @@ if [ ${#old_pkgs[@]} -ge 1 ]; then
msg "Removing old packages from package pool..."
for old_pkg in ${old_pkgs[@]}; do
msg2 "${old_pkg}"
- clean_pkg "$FTP_BASE/$(get_pkgpool_for_host)/${old_pkg}"
+ clean_pkg "$FTP_BASE/${PKGPOOL}/${old_pkg}"
done
fi
# cleanup of legacy $repo/os/any directories
-for repo in ${repos[@]}; do
+for repo in ${PKGREPOS[@]}; do
if [ ! -d "${FTP_BASE}/${repo}/os/any" ]; then
continue
fi
@@ -98,7 +96,7 @@ for repo in ${repos[@]}; do
done
-for repo in ${repos[@]}; do
+for repo in ${PKGREPOS[@]}; do
for arch in ${ARCHES[@]}; do
repo_unlock ${repo} ${arch}
done
diff --git a/db-functions b/db-functions
index 18029ee..939f2d5 100644
--- a/db-functions
+++ b/db-functions
@@ -294,7 +294,7 @@ check_pkgsvn() {
[ $? -ge 1 ] && return 1
local repo="${2}"
- in_array "${repo}" $(get_repos_for_host) || return 1
+ in_array "${repo}" ${PKGREPOS[@]} || return 1
if [ ! -f "${WORKDIR}/pkgbuilds/${repo}/${pkgbase}" ]; then
mkdir -p "${WORKDIR}/pkgbuilds/${repo}"
@@ -320,13 +320,13 @@ check_pkgrepos() {
local pkgver="$(getpkgver ${pkgfile})"
[ $? -ge 1 ] && return 1
- if [ -f "${FTP_BASE}/$(get_pkgpool_for_host)/${pkgname}-${pkgver}-"*${PKGEXT} ]; then
+ if [ -f "${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-"*${PKGEXT} ]; then
return 1
fi
local repo
local arch
- for repo in $(get_repos_for_host); do
+ for repo in ${PKGREPOS[@]}; do
for arch in ${ARCHES[@]}; do
if [ -f "${FTP_BASE}/${repo}/os/${arch}/${pkgname}-${pkgver}"*${PKGEXT} ]; then
return 1
@@ -337,22 +337,6 @@ check_pkgrepos() {
return 0
}
-get_repos_for_host() {
- if [ -n "${PKGREPO[$(hostname -s)]}" ]; then
- echo "${PKGREPO[$(hostname -s)]}"
- else
- echo "${PKGREPO['default']}"
- fi
-}
-
-get_pkgpool_for_host() {
- if [ -n "${PKGPOOL[$(hostname -s)]}" ]; then
- echo "${PKGPOOL[$(hostname -s)]}"
- else
- echo "${PKGPOOL['default']}"
- fi
-}
-
#usage: chk_license ${license[@]}"
chk_license() {
local l
@@ -397,9 +381,12 @@ pkgver_from_src() {
check_repo_permission() {
local repo=$1
- in_array "${repo}" $(get_repos_for_host) || return 1
+ [ ${#PKGREPOS[@]} -eq 0 ] && return 1
+ [ -z "${PKGPOOL}" ] && return 1
+
+ in_array "${repo}" ${PKGREPOS[@]} || return 1
- [ -w "$FTP_BASE/$(get_pkgpool_for_host)" ] || return 1
+ [ -w "$FTP_BASE/${PKGPOOL}" ] || return 1
local arch
for arch in ${ARCHES}; do
diff --git a/db-move b/db-move
index fe9d2c9..cdc261c 100755
--- a/db-move
+++ b/db-move
@@ -92,11 +92,11 @@ for pkgbase in ${args[@]:2}; do
# copy package to pool if needed
# TODO: can be removed once every package has been moved to the package pool
- if [ ! -f ${FTP_BASE}/$(get_pkgpool_for_host)/${pkgfile} ]; then
- cp ${pkgpath} ${FTP_BASE}/$(get_pkgpool_for_host)
+ if [ ! -f ${FTP_BASE}/${PKGPOOL}/${pkgfile} ]; then
+ cp ${pkgpath} ${FTP_BASE}/${PKGPOOL}
fi
- ln -s "../../../$(get_pkgpool_for_host)/${pkgfile}" ${ftppath_to}/${tarch}/
- add_pkgs[${tarch}]+="${FTP_BASE}/$(get_pkgpool_for_host)/${pkgfile} "
+ ln -s "../../../${PKGPOOL}/${pkgfile}" ${ftppath_to}/${tarch}/
+ add_pkgs[${tarch}]+="${FTP_BASE}/${PKGPOOL}/${pkgfile} "
remove_pkgs[${tarch}]+="${pkgname} "
done
done
diff --git a/db-update b/db-update
index 70f0525..49ecbde 100755
--- a/db-update
+++ b/db-update
@@ -58,9 +58,9 @@ for repo in ${repos[@]}; do
msg2 "${pkgfile} (${pkgarch})"
# any packages might have been moved by the previous run
if [ -f "${pkg}" ]; then
- mv "${pkg}" "$FTP_BASE/$(get_pkgpool_for_host)"
+ mv "${pkg}" "$FTP_BASE/${PKGPOOL}"
fi
- ln -s "../../../$(get_pkgpool_for_host)/${pkgfile}" "$FTP_BASE/$repo/os/${pkgarch}"
+ ln -s "../../../${PKGPOOL}/${pkgfile}" "$FTP_BASE/$repo/os/${pkgarch}"
add_pkgs[${#add_pkgs[*]}]=${pkgfile}
done
if [ ${#add_pkgs[@]} -ge 1 ]; then
diff --git a/test/lib/common.inc b/test/lib/common.inc
index 71dfd3d..a0d864a 100644
--- a/test/lib/common.inc
+++ b/test/lib/common.inc
@@ -29,13 +29,15 @@ setUp() {
local r
local a
- #[ -f "${curdir}/../config.local" ] && die "${curdir}/../config.local exists"
+ [ -f "${curdir}/../config.local" ] && die "${curdir}/../config.local exists"
TMP="$(mktemp -d /dev/shm/$(basename $0).XXXXXXXXXX)"
#msg "Using ${TMP}"
- mkdir -p "${TMP}/"{ftp,tmp,staging,{package,source}-cleanup,svn-{packages,community}-{copy,repo}}
+ PKGREPOS=('core' 'extra' 'testing')
+ PKGPOOL='pool/packages'
+ mkdir -p "${TMP}/"{ftp,tmp,staging,{package,source}-cleanup,svn-packages-{copy,repo}}
- for r in ${PKGREPO[@]}; do
+ for r in ${PKGREPOS[@]}; do
mkdir -p "${TMP}/staging/${r}"
for a in ${ARCHES[@]} any; do
mkdir -p "${TMP}/ftp/${r}/os/${a}"
@@ -47,9 +49,7 @@ setUp() {
msg 'Creating svn repository...'
svnadmin create "${TMP}/svn-packages-repo"
- svnadmin create "${TMP}/svn-community-repo"
svn checkout -q "file://${TMP}/svn-packages-repo" "${TMP}/svn-packages-copy"
- svn checkout -q "file://${TMP}/svn-community-repo" "${TMP}/svn-community-copy"
for p in "${pkgdir}"/*; do
pkg=$(basename $p)
@@ -63,6 +63,8 @@ setUp() {
FTP_BASE="${TMP}/ftp"
SVNREPO="file://${TMP}/svn-packages-repo"
SVNREPOCOMMUNITY="file://${TMP}/svn-community-repo"
+ PKGREPOS=(${PKGREPOS[@]})
+ PKGPOOL="${PKGPOOL}"
CLEANUP_DESTDIR="${TMP}/package-cleanup"
SOURCE_CLEANUP_DESTDIR="${TMP}/source-cleanup"
STAGING="${TMP}/staging"
@@ -95,12 +97,12 @@ checkAnyPackage() {
local pkg=$2
local arch
- [ -r "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg}" ] || fail "$(get_pkgpool_for_host)/${pkg} not found"
+ [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}" ] || fail "${PKGPOOL}/${pkg} not found"
for arch in i686 x86_64; do
[ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}" ] || fail "${repo}/os/${arch}/${pkg} not a symlink"
- [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}")" == "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg}" ] \
- || fail "${repo}/os/${arch}/${pkg} does not link to $(get_pkgpool_for_host)/${pkg}"
+ [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}")" == "${FTP_BASE}/${PKGPOOL}/${pkg}" ] \
+ || fail "${repo}/os/${arch}/${pkg} does not link to ${PKGPOOL}/${pkg}"
done
[ -r "${STAGING}"/${repo}/${pkg} ] && fail "${repo}/${pkg} found in staging dir"
@@ -116,18 +118,18 @@ checkPackage() {
local pkg=$2
local arch=$3
- [ -r "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg}" ] || fail "$(get_pkgpool_for_host)/${pkg} not found"
+ [ -r "${FTP_BASE}/${PKGPOOL}/${pkg}" ] || fail "${PKGPOOL}/${pkg} not found"
[ -L "${FTP_BASE}/${repo}/os/${arch}/${pkg}" ] || fail "${repo}/os/${arch}/${pkg} not a symlink"
[ -r "${STAGING}"/${repo}/${pkg} ] && fail "${repo}/${pkg} found in staging dir"
- [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}")" == "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg}" ] \
- || fail "${repo}/os/${arch}/${pkg} does not link to $(get_pkgpool_for_host)/${pkg}"
+ [ "$(readlink -e "${FTP_BASE}/${repo}/os/${arch}/${pkg}")" == "${FTP_BASE}/${PKGPOOL}/${pkg}" ] \
+ || fail "${repo}/os/${arch}/${pkg} does not link to ${PKGPOOL}/${pkg}"
( [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT%.tar.*}" ] \
&& bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT%.tar.*}" -O | grep -q ${pkg}) \
|| fail "${pkg} not in ${repo}/os/${arch}/${repo}${DBEXT%.tar.*}"
- local pkgbase=$(getpkgbase "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg}")
+ local pkgbase=$(getpkgbase "${FTP_BASE}/${PKGPOOL}/${pkg}")
svn up -q "${TMP}/svn-packages-copy/${pkgbase}"
[ -d "${TMP}/svn-packages-copy/${pkgbase}/repos/${repo}-${arch}" ] \
|| fail "svn-packages-copy/${pkgbase}/repos/${repo}-${arch} does not exist"
diff --git a/test/runTest b/test/runTest
index b07b099..4681944 100755
--- a/test/runTest
+++ b/test/runTest
@@ -321,7 +321,7 @@ testCleanupSimplePackages() {
for arch in ${arches[@]}; do
local pkg1="pkg-simple-a-1-1-${arch}.pkg.tar.xz"
checkRemovedPackage extra 'pkg-simple-a' ${arch}
- [ -f "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg1}" ] && fail "$(get_pkgpool_for_host)/${pkg1} found"
+ [ -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" ] && fail "${PKGPOOL}/${pkg1} found"
[ -f "${FTP_BASE}/${repo}/os/${arch}/${pkg1}" ] && fail "${repo}/os/${arch}/${pkg1} found"
local pkg2="pkg-simple-b-1-1-${arch}.pkg.tar.xz"
@@ -344,7 +344,7 @@ testCleanupAnyPackages() {
local pkg1='pkg-any-a-1-1-any.pkg.tar.xz'
checkRemovedAnyPackage extra 'pkg-any-a'
- [ -f "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg1}" ] && fail "$(get_pkgpool_for_host)/${pkg1} found"
+ [ -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" ] && fail "${PKGPOOL}/${pkg1} found"
[ -f "${FTP_BASE}/${repo}/os/${arch}/${pkg1}" ] && fail "${repo}/os/${arch}/${pkg1} found"
local pkg2="pkg-any-b-1-1-${arch}.pkg.tar.xz"
@@ -375,7 +375,7 @@ testCleanupSplitPackages() {
for arch in ${arches[@]}; do
for pkg in "${pkgdir}/${pkgs[0]}"/*-${arch}.pkg.tar.*; do
checkRemovedPackage extra ${pkgs[0]} ${arch}
- [ -f "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg}" ] && fail "$(get_pkgpool_for_host)/${pkg} found"
+ [ -f "${FTP_BASE}/${PKGPOOL}/${pkg}" ] && fail "${PKGPOOL}/${pkg} found"
[ -f "${FTP_BASE}/${repo}/os/${arch}/${pkg}" ] && fail "${repo}/os/${arch}/${pkg} found"
done
@@ -410,7 +410,7 @@ testMovePackagesWithoutPool() {
for old in 0 2; do
for pkg in "${pkgdir}/${pkgs[${old}]}"/*-${arch}.pkg.tar.*; do
pkg=$(basename $pkg)
- mv -f "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg}" "${FTP_BASE}/testing/os/${arch}/${pkg}"
+ mv -f "${FTP_BASE}/${PKGPOOL}/${pkg}" "${FTP_BASE}/testing/os/${arch}/${pkg}"
done
done
done
@@ -441,7 +441,7 @@ testUpdateAnyPackageWithoutPool() {
releasePackage extra pkg-any-a any
../db-update
# transform two packages to old style layout
- mv -f "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg1}" "${FTP_BASE}/extra/os/any"
+ mv -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" "${FTP_BASE}/extra/os/any"
for arch in i686 x86_64; do
ln -sf "../any/${pkg1}" "${FTP_BASE}/extra/os/${arch}"
done
@@ -461,7 +461,7 @@ testUpdateAnyPackageWithoutPool() {
checkAnyPackage extra "${pkg2}"
- [ -f "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg1}" ] && fail "$(get_pkgpool_for_host)/${pkg1} found"
+ [ -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" ] && fail "${PKGPOOL}/${pkg1} found"
for arch in any i686 x86_64; do
[ -f "${FTP_BASE}/extra/os/${arch}/${pkg1}" ] && fail "extra/os/${arch}/${pkg1} found"
done
@@ -482,7 +482,7 @@ testMoveAnyPackagesWithoutPool() {
# transform a package to old style layout
for pkg in "${pkgdir}/${pkgs[0]}"/*-any.pkg.tar.*; do
pkg=$(basename $pkg)
- mv -f "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg}" "${FTP_BASE}/testing/os/any/${pkg}"
+ mv -f "${FTP_BASE}/${PKGPOOL}/${pkg}" "${FTP_BASE}/testing/os/any/${pkg}"
for arch in i686 x86_64; do
ln -sf "../any/${pkg}" "${FTP_BASE}/testing/os/${arch}/${pkg}"
done
@@ -519,7 +519,7 @@ testUpdateSameAnyPackageToDifferentRepositoriesWithoutPool() {
# transform a package to old style layout
for pkg in "${pkgdir}/pkg-any-a"/*-any.pkg.tar.*; do
pkg=$(basename $pkg)
- mv -f "${FTP_BASE}/$(get_pkgpool_for_host)/${pkg}" "${FTP_BASE}/extra/os/any/${pkg}"
+ mv -f "${FTP_BASE}/${PKGPOOL}/${pkg}" "${FTP_BASE}/extra/os/any/${pkg}"
for arch in i686 x86_64; do
ln -sf "../any/${pkg}" "${FTP_BASE}/extra/os/${arch}/${pkg}"
done