Unverified Commit d5970df3 authored by Eli Schwartz's avatar Eli Schwartz
Browse files

db-move: also block moving package from staging to extra without handling testing

Don't allow anomalous testing packages floating around after a rebuild
which are older than stable.
parent 8804e63f
......@@ -14,6 +14,11 @@ repo_to="${args[1]}"
ftppath_from="${FTP_BASE}/${repo_from}/os/"
ftppath_to="${FTP_BASE}/${repo_to}/os/"
check_leapfrog=false
if in_array "${repo_from}" "${STAGING_REPOS[@]}" && in_array "${repo_to}" "${STABLE_REPOS[@]}"; then
check_leapfrog=true
fi
if ! check_repo_permission "$repo_to" || ! check_repo_permission "$repo_from"; then
die "You don't have permission to move packages from %s to %s" "$repo_from" "$repo_to"
fi
......@@ -42,6 +47,10 @@ for pkgbase in "${args[@]:2}"; do
die "Could not read pkgver"
fi
if [[ ${check_leapfrog} = true ]] && leapfrog=$(find_repo_for_package "${pkgbase}" "${pkgarch}" "${TESTING_REPOS[@]}"); then
die "Package %s cannnot be moved from %s to %s while it exists in %s" "${pkgbase}" "${repo_from}" "${repo_to}" "${leapfrog}"
fi
for pkgname in "${pkgnames[@]}"; do
getpkgfile "${ftppath_from}/${pkgarch}/${pkgname}-${pkgver}-${vcsrepo_from##*-}"${PKGEXTS} >/dev/null
done
......
......@@ -39,6 +39,20 @@ load ../lib/common
done
}
@test "move package from staging to extra while a testing package exists fails" {
releasePackage extra pkg-any-a
db-update
updatePackage pkg-any-a
releasePackage testing pkg-any-a
db-update
updatePackage pkg-any-a
releasePackage staging pkg-any-a
db-update
run db-move staging extra pkg-any-a
[ "$status" -ne 0 ]
}
@test "move single-arch packages" {
local arches=('i686' 'x86_64')
local pkgs=('pkg-single-arch' 'pkg-simple-b')
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment