summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config2
-rwxr-xr-xcron-jobs/sourceballs4
-rw-r--r--db-functions49
-rwxr-xr-xdb-move48
-rwxr-xr-xdb-remove15
-rwxr-xr-xdb-update4
-rw-r--r--test/lib/common.inc15
-rwxr-xr-xtesting2x10
8 files changed, 52 insertions, 95 deletions
diff --git a/config b/config
index 3df6c95..e1e705b 100644
--- a/config
+++ b/config
@@ -1,6 +1,4 @@
FTP_BASE="/srv/ftp"
-SVNREPO=''
-SVNUSER=''
PKGREPOS=()
PKGPOOL=''
SRCPOOL=''
diff --git a/cron-jobs/sourceballs b/cron-jobs/sourceballs
index 6f75ccc..9572a30 100755
--- a/cron-jobs/sourceballs
+++ b/cron-jobs/sourceballs
@@ -77,9 +77,9 @@ for repo in ${PKGREPOS[@]}; do
continue
fi
- # Get the sources from svn
+ # Get the sources from xbs
mkdir -p -m0770 "${WORKDIR}/pkgbuilds/${repo}-${pkgarch}"
- arch_svn export -q "${SVNREPO}/${pkgbase}/repos/${repo}-${pkgarch}" \
+ cp -a "$(xbs releasepath "${pkgbase}" "${repo}" "${pkgarch}")" \
"${WORKDIR}/pkgbuilds/${repo}-${pkgarch}/${pkgbase}" >/dev/null 2>&1
if [ $? -ge 1 ]; then
failedpkgs[${#failedpkgs[*]}]="${pkgbase}-${pkgver}${SRCEXT}"
diff --git a/db-functions b/db-functions
index 523e872..c98b26f 100644
--- a/db-functions
+++ b/db-functions
@@ -17,11 +17,6 @@ restore_umask () {
# set up general environment
WORKDIR=$(mktemp -dt "${0##*/}.XXXXXXXXXX")
-if [ -n "${SVNUSER}" ]; then
- setfacl -m u:"${SVNUSER}":rwx "${WORKDIR}"
- setfacl -m d:u:"${USER}":rwx "${WORKDIR}"
- setfacl -m d:u:"${SVNUSER}":rwx "${WORKDIR}"
-fi
LOCKS=()
# Used: plain, msg, msg2, warning, error, in_array
@@ -292,7 +287,7 @@ check_pkgfile() {
fi
}
-check_pkgsvn() {
+check_pkgxbs() {
local pkgfile="${1}"
local _pkgbase="$(getpkgbase ${pkgfile})"
[ $? -ge 1 ] && return 1
@@ -306,18 +301,11 @@ check_pkgsvn() {
in_array "${repo}" ${PKGREPOS[@]} || return 1
- if [ ! -f "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}/${_pkgbase}" ]; then
- mkdir -p "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}"
- arch_svn export -q "${SVNREPO}/${_pkgbase}/repos/${repo}-${_pkgarch}/PKGBUILD" \
- "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}/${_pkgbase}" >/dev/null
- [ $? -ge 1 ] && return 1
- fi
-
- local svnver="$(. "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}/${_pkgbase}"; echo $(get_full_version ${epoch:-0} ${pkgver} ${pkgrel}) )"
- [ "${svnver}" == "${_pkgver}" ] || return 1
+ local xbsver="$(. "`xbs releasepath ${_pkgbase} ${repo} ${_pkgarch}`/PKGBUILD"; echo $(get_full_version ${epoch:-0} ${pkgver} ${pkgrel}) )"
+ [ "${xbsver}" == "${_pkgver}" ] || return 1
- local svnnames=($(. "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}/${_pkgbase}"; echo ${pkgname[@]}))
- in_array "${_pkgname}" ${svnnames[@]} || return 1
+ local xbsnames=($(. "`xbs releasepath ${_pkgbase} ${repo} ${_pkgarch}`/PKGBUILD"; echo ${pkgname[@]}))
+ in_array "${_pkgname}" ${xbsnames[@]} || return 1
return 0
}
@@ -328,7 +316,7 @@ check_splitpkgs() {
local pkgfiles=(${@})
local pkgfile
local pkgdir
- local svnname
+ local xbsname
mkdir -p "${WORKDIR}/check_splitpkgs/"
pushd "${WORKDIR}/check_splitpkgs" >/dev/null
@@ -341,16 +329,9 @@ check_splitpkgs() {
mkdir -p "${repo}/${_pkgarch}/${_pkgbase}"
echo "${_pkgname}" >> "${repo}/${_pkgarch}/${_pkgbase}/staging"
- if [ ! -f "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}/${_pkgbase}" ]; then
- mkdir -p "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}"
- arch_svn export -q "${SVNREPO}/${_pkgbase}/repos/${repo}-${_pkgarch}/PKGBUILD" \
- "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}/${_pkgbase}" >/dev/null
- [ $? -ge 1 ] && return 1
- fi
-
- local svnnames=($(. "${WORKDIR}/pkgbuilds/${repo}-${_pkgarch}/${_pkgbase}"; echo ${pkgname[@]}))
- for svnname in ${svnnames[@]}; do
- echo "${svnname}" >> "${repo}/${_pkgarch}/${_pkgbase}/svn"
+ local xbsnames=($(. "`xbs releasepath ${_pkgbase} ${repo} ${_pkgarch}`/PKGBUILD"; echo ${pkgname[@]}))
+ for xbsname in ${xbsnames[@]}; do
+ echo "${xbsname}" >> "${repo}/${_pkgarch}/${_pkgbase}/xbs"
done
done
popd >/dev/null
@@ -358,8 +339,8 @@ check_splitpkgs() {
for pkgdir in "${WORKDIR}/check_splitpkgs/${repo}"/*/*; do
[ ! -d "${pkgdir}" ] && continue
sort -u "${pkgdir}/staging" -o "${pkgdir}/staging"
- sort -u "${pkgdir}/svn" -o "${pkgdir}/svn"
- if [ ! -z "$(comm -13 "${pkgdir}/staging" "${pkgdir}/svn")" ]; then
+ sort -u "${pkgdir}/xbs" -o "${pkgdir}/xbs"
+ if [ ! -z "$(comm -13 "${pkgdir}/staging" "${pkgdir}/xbs")" ]; then
return 1
fi
done
@@ -465,11 +446,3 @@ arch_repo_remove() {
|| error "repo-remove ${filesfile} ${pkgs[@]}"
set_repo_permission "${repo}" "${arch}"
}
-
-arch_svn() {
- if [ -z "${SVNUSER}" ]; then
- /usr/bin/svn "${@}"
- else
- sudo -u "${SVNUSER}" -- /usr/bin/svn --username "${USER}" "${@}"
- fi
-}
diff --git a/db-move b/db-move
index 1fa44d4..045f33c 100755
--- a/db-move
+++ b/db-move
@@ -24,19 +24,17 @@ for pkgarch in ${ARCHES[@]}; do
repo_lock ${repo_from} ${pkgarch} || exit 1
done
-# check if packages to be moved exist in svn and ftp dir
-arch_svn checkout -q -N "${SVNREPO}" "${WORKDIR}/svn" >/dev/null
+# check if packages to be moved exist in xbs and ftp dir
for pkgbase in ${args[@]:2}; do
- arch_svn up -q "${WORKDIR}/svn/${pkgbase}" >/dev/null
for pkgarch in ${ARCHES[@]} 'any'; do
- svnrepo_from="${WORKDIR}/svn/${pkgbase}/repos/${repo_from}-${pkgarch}"
- if [ -r "${svnrepo_from}/PKGBUILD" ]; then
- pkgnames=($(. "${svnrepo_from}/PKGBUILD"; echo ${pkgname[@]}))
+ xbsrepo_from="$(xbs releasepath ${pkgbase} ${repo_from} ${pkgarch})"
+ if [ -r "${xbsrepo_from}/PKGBUILD" ]; then
+ pkgnames=($(. "${xbsrepo_from}/PKGBUILD"; echo ${pkgname[@]}))
if [ ${#pkgnames[@]} -lt 1 ]; then
die "Could not read pkgname"
fi
- pkgver=$(. "${svnrepo_from}/PKGBUILD"; echo $(get_full_version ${epoch:-0} ${pkgver} ${pkgrel}))
+ pkgver=$(. "${xbsrepo_from}/PKGBUILD"; echo $(get_full_version ${epoch:-0} ${pkgver} ${pkgrel}))
if [ -z "${pkgver}" ]; then
die "Could not read pkgver"
fi
@@ -63,35 +61,19 @@ msg "Moving packages from [${repo_from}] to [${repo_to}]..."
declare -A add_pkgs
declare -A remove_pkgs
for pkgbase in ${args[@]:2}; do
- tag_list=""
- for pkgarch in ${ARCHES[@]} 'any'; do
- svnrepo_from="${WORKDIR}/svn/${pkgbase}/repos/${repo_from}-${pkgarch}"
- svnrepo_to="${WORKDIR}/svn/${pkgbase}/repos/${repo_to}-${pkgarch}"
-
- if [ -f "${svnrepo_from}/PKGBUILD" ]; then
+ # move the package in xbs
+ arches=($(xbs move ${repo_from} ${repo_to} ${pkgbase}))
+ # move the package in ftp
+ for pkgarch in ${arches[@]}; do
+ dir_to="$(xbs releasepath $pkgbase $repo_to $pkgarch)"
+ if true; then # to add in indent level to make merging easier
if [ "${pkgarch}" == 'any' ]; then
- tarches=(${ARCHES[@]})
+ tarches=("${ARCHES[@]}")
else
tarches=("${pkgarch}")
fi
- msg2 "${pkgbase} ($(echo ${tarches[@]}))"
- pkgnames=($(. "${svnrepo_from}/PKGBUILD"; echo ${pkgname[@]}))
- pkgver=$(. "${svnrepo_from}/PKGBUILD"; echo $(get_full_version ${epoch:-0} ${pkgver} ${pkgrel}))
-
- if [ -d "${svnrepo_to}" ]; then
- for file in $(arch_svn ls "${svnrepo_to}"); do
- arch_svn rm -q "${svnrepo_to}/$file@"
- done
- else
- mkdir "${svnrepo_to}"
- arch_svn add -q "${svnrepo_to}"
- fi
-
- for file in $(arch_svn ls "${svnrepo_from}"); do
- arch_svn mv -q -r HEAD "${svnrepo_from}/$file@" "${svnrepo_to}/"
- done
- arch_svn rm --force -q "${svnrepo_from}"
- tag_list="$tag_list, $pkgarch"
+ pkgnames=($(. "${dir_to}/PKGBUILD"; echo ${pkgname[@]}))
+ pkgver=$(. "${dir_to}/PKGBUILD"; echo $(get_full_version ${epoch:-0} ${pkgver} ${pkgrel}))
for pkgname in ${pkgnames[@]}; do
for tarch in ${tarches[@]}; do
@@ -108,8 +90,6 @@ for pkgbase in ${args[@]:2}; do
done
fi
done
- tag_list="${tag_list#, }"
- arch_svn commit -q "${WORKDIR}/svn/${pkgbase}" -m "${0##*/}: moved ${pkgbase} from [${repo_from}] to [${repo_to}] (${tag_list})"
done
for tarch in ${ARCHES[@]}; do
diff --git a/db-remove b/db-remove
index 25cb9a7..e632c47 100755
--- a/db-remove
+++ b/db-remove
@@ -12,9 +12,6 @@ repo="$1"
arch="$2"
pkgbases=(${@:3})
-ftppath="$FTP_BASE/$repo/os"
-svnrepo="$repo-$arch"
-
if ! check_repo_permission $repo; then
die "You don't have permission to remove packages from ${repo}"
fi
@@ -32,14 +29,12 @@ done
remove_pkgs=()
for pkgbase in ${pkgbases[@]}; do
msg "Removing $pkgbase from [$repo]..."
- arch_svn checkout -q "${SVNREPO}/${pkgbase}" "${WORKDIR}/svn/${pkgbase}" >/dev/null
-
- if [ -d "${WORKDIR}/svn/$pkgbase/repos/$svnrepo" ]; then
- remove_pkgs=(${remove_pkgs[@]} $(. "${WORKDIR}/svn/$pkgbase/repos/$svnrepo/PKGBUILD"; echo ${pkgname[@]}))
- arch_svn rm --force -q "${WORKDIR}/svn/$pkgbase/repos/$svnrepo"
- arch_svn commit -q "${WORKDIR}/svn/$pkgbase" -m "${0##*/}: $pkgbase removed by $(id -un)"
+ path="$(xbs releasepath "$pkgbase" "$repo" "$arch")"
+ if [ -d "$path" ]; then
+ remove_pkgs+=($(. "$path/PKGBUILD"; echo ${pkgname[@]}))
+ xbs unrelease "$pkgbase" "$repo" "$arch"
else
- warning "$pkgbase not found in $svnrepo"
+ warning "$pkgbase not found in $repo-$arch"
warning "Removing only $pkgbase from the repo"
warning "If it was a split package you have to remove the others yourself!"
remove_pkgs[${#remove_pkgs[*]}]=$pkgbase
diff --git a/db-update b/db-update
index 576fe2b..28fcabe 100755
--- a/db-update
+++ b/db-update
@@ -45,8 +45,8 @@ for repo in ${repos[@]}; do
if ${REQUIRE_SIGNATURE} && ! pacman-key -v "${pkg}.sig" >/dev/null 2>&1; then
die "Package ${repo}/${pkg##*/} does not have a valid signature"
fi
- if ! check_pkgsvn "${pkg}" "${repo}"; then
- die "Package ${repo}/${pkg##*/} is not consistent with svn repository"
+ if ! check_pkgxbs "${pkg}" "${repo}"; then
+ die "Package ${repo}/${pkg##*/} is not consistent with xbs"
fi
if ! check_pkgrepos "${pkg}"; then
die "Package ${repo}/${pkg##*/} already exists in another repository"
diff --git a/test/lib/common.inc b/test/lib/common.inc
index fbdd30b..396f12f 100644
--- a/test/lib/common.inc
+++ b/test/lib/common.inc
@@ -19,6 +19,10 @@ arches() (
printf '%s\n' "${ARCHES[*]}"
)
+arch_svn() {
+ /usr/bin/svn "$@"
+}
+
signpkg() {
if [[ -r '/etc/makepkg.conf' ]]; then
source '/etc/makepkg.conf'
@@ -120,6 +124,15 @@ setUp() {
arch_svn commit -q -m"initial commit of ${pkg}" "${TMP}/svn-packages-copy"
done
+ mkdir -p "${TMP}/home/.config/libretools"
+ export XDG_CONFIG_HOME="${TMP}/home/.config"
+ printf '%s\n' \
+ 'SVNURL=foo' \
+ "SVNREPO=\"${TMP}/svn-packages-copy\"" \
+ "ARCHES=($(arches))" \
+ > $XDG_CONFIG_HOME/libretools/xbs-abs.conf
+ printf '%s\n' 'BUILDSYSTEM=abs' > $XDG_CONFIG_HOME/xbs.conf
+
cat <<eot > "$(dirname ${BASH_SOURCE[0]})/../../config.local"
FTP_BASE="${TMP}/ftp"
SVNREPO="${TMP}/svn-packages-copy"
@@ -155,7 +168,7 @@ releasePackage() {
local pkgname
pushd "${TMP}/svn-packages-copy"/${pkgbase}/trunk/ >/dev/null
- archrelease ${repo}-${arch} >/dev/null 2>&1
+ xbs release ${repo} ${arch} >/dev/null 2>&1
pkgver=$(. PKGBUILD; echo $(get_full_version ${epoch:-0} ${pkgver} ${pkgrel}))
pkgname=($(. PKGBUILD; echo ${pkgname[@]}))
popd >/dev/null
diff --git a/testing2x b/testing2x
index 369857f..a76e972 100755
--- a/testing2x
+++ b/testing2x
@@ -20,12 +20,10 @@ declare -A pkgs
for pkgbase in $*; do
if [ ! -d "${WORKDIR}/${pkgbase}" ]; then
- arch_svn export -q "${SVNREPO}/${pkgbase}/repos" "${WORKDIR}/${pkgbase}" >/dev/null
-
found_source=false
for pkgarch in ${ARCHES[@]} 'any'; do
- svnrepo_from="${WORKDIR}/${pkgbase}/${TESTING_REPO}-${pkgarch}"
- if [ -r "${svnrepo_from}/PKGBUILD" ]; then
+ xbsrepo_from="$(xbs releasepath ${pkgbase} ${TESTING_REPO} ${pkgarch})"
+ if [ -r "${xbsrepo_from}/PKGBUILD" ]; then
found_source=true
break
fi
@@ -34,8 +32,8 @@ for pkgbase in $*; do
found_target=false
for pkgarch in ${ARCHES[@]} 'any'; do
for repo in ${STABLE_REPOS[@]}; do
- svnrepo_to="${WORKDIR}/${pkgbase}/${repo}-${pkgarch}"
- if [ -r "${svnrepo_to}/PKGBUILD" ]; then
+ xbsrepo_to="$(xbs releasepath ${pkgbase} ${repo} ${pkgarch})"
+ if [ -r "${xbsrepo_to}/PKGBUILD" ]; then
found_target=true
pkgs[${repo}]+="${pkgbase} "
break 2