mirror of
https://gitlab.archlinux.org/archlinux/devtools.git
synced 2025-09-13 18:06:19 +02:00
Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
dee4d05b1e | ||
![]() |
10eba28151 | ||
![]() |
9cef7e0a9e | ||
![]() |
cb3a6ce1e8 | ||
![]() |
fb71ad1e7f | ||
![]() |
828143751b | ||
![]() |
890baf6891 |
4
Makefile
4
Makefile
@@ -1,4 +1,4 @@
|
||||
V=20121115
|
||||
V=20130127
|
||||
|
||||
PREFIX = /usr/local
|
||||
|
||||
@@ -115,6 +115,6 @@ dist:
|
||||
gpg --detach-sign --use-agent devtools-$(V).tar.gz
|
||||
|
||||
upload:
|
||||
scp devtools-$(V).tar.gz devtools-$(V).tar.gz.sig gerolde.archlinux.org:/srv/ftp/other/devtools/
|
||||
scp devtools-$(V).tar.gz devtools-$(V).tar.gz.sig nymeria.archlinux.org:/srv/ftp/other/devtools/
|
||||
|
||||
.PHONY: all clean install uninstall dist upload
|
||||
|
16
archbuild.in
16
archbuild.in
@@ -3,6 +3,7 @@
|
||||
m4_include(lib/common.sh)
|
||||
|
||||
base_packages=(base base-devel sudo)
|
||||
makechrootpkg_args=(-c -n)
|
||||
|
||||
cmd="${0##*/}"
|
||||
if [[ "${cmd%%-*}" == 'multilib' ]]; then
|
||||
@@ -18,13 +19,17 @@ chroots='/var/lib/archbuild'
|
||||
clean_first=false
|
||||
|
||||
usage() {
|
||||
echo "usage $cmd"
|
||||
echo "Usage: $cmd [options] -- [makechrootpkg args]"
|
||||
echo ' -h This help'
|
||||
echo ' -c Recreate the chroot before building'
|
||||
echo ' -r <dir> Create chroots in this directory'
|
||||
echo ''
|
||||
echo "Default makechrootpkg args: ${makechrootpkg_args[*]}"
|
||||
echo ''
|
||||
exit 1
|
||||
}
|
||||
|
||||
while getopts 'cr:' arg; do
|
||||
while getopts 'hcr:' arg; do
|
||||
case "${arg}" in
|
||||
c) clean_first=true ;;
|
||||
r) chroots="$OPTARG" ;;
|
||||
@@ -32,7 +37,10 @@ while getopts 'cr:' arg; do
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ "$EUID" != '0' ]]; then
|
||||
# Pass all arguments after -- right to makepkg
|
||||
makechrootpkg_args+=("${@:$OPTIND}")
|
||||
|
||||
if (( EUID )); then
|
||||
die 'This script must be run as root.'
|
||||
fi
|
||||
|
||||
@@ -71,4 +79,4 @@ else
|
||||
fi
|
||||
|
||||
msg "Building in chroot for [${repo}] (${arch})..."
|
||||
exec setarch "${arch}" makechrootpkg -c -n -r "${chroots}/${repo}-${arch}"
|
||||
exec setarch "${arch}" makechrootpkg "${makechrootpkg_args[@]}" -r "${chroots}/${repo}-${arch}"
|
||||
|
@@ -11,7 +11,7 @@ fi
|
||||
|
||||
case $scriptname in
|
||||
archco)
|
||||
SVNURL="svn+ssh://gerolde.archlinux.org/srv/svn-packages";;
|
||||
SVNURL="svn+ssh://svn-packages@nymeria.archlinux.org/srv/repos/svn-packages/svn";;
|
||||
communityco)
|
||||
SVNURL="svn+ssh://svn-community@nymeria.archlinux.org/srv/repos/svn-community/svn";;
|
||||
*)
|
||||
|
14
commitpkg.in
14
commitpkg.in
@@ -42,7 +42,7 @@ pkgbase=${pkgbase:-$pkgname}
|
||||
case "$cmd" in
|
||||
commitpkg)
|
||||
if (( $# == 0 )); then
|
||||
die 'usage: commitpkg <reponame> [-f] [-s server] [-l limit] [-a arch] [commit message]'
|
||||
die 'Usage: commitpkg <reponame> [-f] [-s server] [-l limit] [-a arch] [commit message]'
|
||||
fi
|
||||
repo="$1"
|
||||
shift
|
||||
@@ -51,7 +51,7 @@ case "$cmd" in
|
||||
repo="${cmd%pkg}"
|
||||
;;
|
||||
*)
|
||||
die 'usage: commitpkg <reponame> [-f] [-s server] [-l limit] [-a arch] [commit message]'
|
||||
die 'Usage: commitpkg <reponame> [-f] [-s server] [-l limit] [-a arch] [commit message]'
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -105,15 +105,7 @@ for _arch in ${arch[@]}; do
|
||||
done
|
||||
|
||||
if [[ -z $server ]]; then
|
||||
case "$repo" in
|
||||
core|extra|testing|staging|kde-unstable|gnome-unstable)
|
||||
server='gerolde.archlinux.org' ;;
|
||||
community*|multilib*)
|
||||
server='nymeria.archlinux.org' ;;
|
||||
*)
|
||||
server='gerolde.archlinux.org'
|
||||
msg "Non-standard repository $repo in use, defaulting to server $server" ;;
|
||||
esac
|
||||
server='nymeria.archlinux.org'
|
||||
fi
|
||||
|
||||
if [[ -n $(svn status -q) ]]; then
|
||||
|
@@ -11,26 +11,16 @@ fi
|
||||
|
||||
pkgbase="${1}"
|
||||
|
||||
packages_svn='svn+ssh://gerolde.archlinux.org/srv/svn-packages'
|
||||
packages_server='gerolde.archlinux.org'
|
||||
community_svn='svn+ssh://svn-community@nymeria.archlinux.org/srv/repos/svn-community/svn'
|
||||
community_server='nymeria.archlinux.org'
|
||||
mirror='http://mirrors.kernel.org/archlinux'
|
||||
|
||||
case $scriptname in
|
||||
extra2community)
|
||||
source_svn="${packages_svn}"
|
||||
target_svn="${community_svn}"
|
||||
source_server="${packages_server}"
|
||||
target_server="${community_server}"
|
||||
source_name='packages'
|
||||
target_name='community'
|
||||
source_repo='extra'
|
||||
target_repo='community'
|
||||
;;
|
||||
community2extra)
|
||||
source_svn="${community_svn}"
|
||||
target_svn="${packages_svn}"
|
||||
source_server="${community_server}"
|
||||
target_server="${packages_server}"
|
||||
source_name='community'
|
||||
target_name='packages'
|
||||
source_repo='community'
|
||||
target_repo='extra'
|
||||
;;
|
||||
@@ -39,6 +29,13 @@ case $scriptname in
|
||||
;;
|
||||
esac
|
||||
|
||||
server='nymeria.archlinux.org'
|
||||
mirror="http://${server}"
|
||||
source_svn="svn+ssh://svn-${source_name}@${server}/srv/repos/svn-${source_name}/svn"
|
||||
target_svn="svn+ssh://svn-${target_name}@${server}/srv/repos/svn-${target_name}/svn"
|
||||
source_dbscripts="/srv/repos/svn-${source_name}/dbscripts"
|
||||
target_dbscripts="/srv/repos/svn-${target_name}/dbscripts"
|
||||
|
||||
setup_workdir
|
||||
|
||||
pushd $WORKDIR >/dev/null
|
||||
@@ -59,7 +56,7 @@ for _arch in ${arch[@]}; do
|
||||
for _pkgname in ${pkgname[@]}; do
|
||||
fullver=$(get_full_version $_pkgname)
|
||||
# FIXME: this only works with .xz packages
|
||||
ssh "${target_server}" "cd staging/${target_repo}
|
||||
ssh "${server}" "cd staging/${target_repo}
|
||||
curl -O ${mirror}/${source_repo}/os/${repo_arch}/$_pkgname-$fullver-${_arch}.pkg.tar.xz
|
||||
curl -O ${mirror}/${source_repo}/os/${repo_arch}/$_pkgname-$fullver-${_arch}.pkg.tar.xz.sig" || die
|
||||
done
|
||||
@@ -73,22 +70,11 @@ pushd "target_checkout/${pkgbase}/trunk" >/dev/null
|
||||
archrelease "${arch[@]/#/$target_repo-}" || die
|
||||
popd >/dev/null
|
||||
|
||||
if [[ "${target_server}" == "${community_server}" ]]; then
|
||||
dbscripts_path='/srv/repos/svn-community/dbscripts'
|
||||
else
|
||||
dbscripts_path='/arch'
|
||||
fi
|
||||
|
||||
ssh "${target_server}" "${dbscripts_path}/db-update" || die
|
||||
ssh "${server}" "${target_dbscripts}/db-update" || die
|
||||
|
||||
msg "Removing ${pkgbase} from ${source_repo}"
|
||||
if [[ "${source_server}" == "${community_server}" ]]; then
|
||||
dbscripts_path='/srv/repos/svn-community/dbscripts'
|
||||
else
|
||||
dbscripts_path='/arch'
|
||||
fi
|
||||
for _arch in ${arch[@]}; do
|
||||
ssh "${source_server}" "${dbscripts_path}/db-remove ${source_repo} ${_arch} ${pkgbase}"
|
||||
ssh "${server}" "${source_dbscripts}/db-remove ${source_repo} ${_arch} ${pkgbase}"
|
||||
done
|
||||
svn -q checkout -N "${source_svn}" source_checkout
|
||||
svn -q up "source_checkout/${pkgbase}"
|
||||
|
@@ -8,7 +8,7 @@ m4_include(lib/common.sh)
|
||||
match=$1
|
||||
|
||||
if [[ -z $match ]]; then
|
||||
echo 'usage: finddeps <depname>'
|
||||
echo 'Usage: finddeps <depname>'
|
||||
echo ''
|
||||
echo 'Find packages that depend on a given depname.'
|
||||
echo 'Run this script from the top-level directory of your ABS tree.'
|
||||
|
@@ -28,7 +28,7 @@ default_copy=$USER
|
||||
src_owner=${SUDO_USER:-$USER}
|
||||
|
||||
usage() {
|
||||
echo "usage ${0##*/} [options] -r <chrootdir> [--] [makepkg args]"
|
||||
echo "Usage: ${0##*/} [options] -r <chrootdir> [--] [makepkg args]"
|
||||
echo ' Run this script in a PKGBUILD dir to build a package inside a'
|
||||
echo ' clean chroot. All unrecognized arguments passed to this script'
|
||||
echo ' will be passed to makepkg.'
|
||||
@@ -161,8 +161,8 @@ if [[ -n $install_pkg ]]; then
|
||||
|
||||
rm "$copydir/$pkgname"
|
||||
|
||||
# Exit early, we've done all we need to
|
||||
exit $ret
|
||||
# If there is no PKGBUILD we have done
|
||||
[[ -f PKGBUILD ]] || exit $ret
|
||||
fi
|
||||
|
||||
$update_first && mkarchroot -u "$copydir"
|
||||
|
@@ -22,7 +22,7 @@ APPNAME=$(basename "${0}")
|
||||
|
||||
# usage: usage <exitvalue>
|
||||
usage() {
|
||||
echo "usage ${APPNAME} [options] working-dir [package-list | app]"
|
||||
echo "Usage: ${APPNAME} [options] working-dir [package-list | app]"
|
||||
echo ' options:'
|
||||
echo ' -r <app> Run "app" within the context of the chroot'
|
||||
echo ' -u Update the chroot via pacman'
|
||||
@@ -98,44 +98,6 @@ bind_mount() {
|
||||
chroot_mount() {
|
||||
trap 'trap_chroot_umount' EXIT INT QUIT TERM HUP
|
||||
|
||||
if (( ! have_nspawn )); then
|
||||
bind_mount /sys ro
|
||||
|
||||
[[ -e "${working_dir}/proc" ]] || mkdir "${working_dir}/proc"
|
||||
mount -t proc proc -o nosuid,noexec,nodev "${working_dir}/proc"
|
||||
bind_mount /proc/sys ro
|
||||
|
||||
[[ -e "${working_dir}/dev" ]] || mkdir "${working_dir}/dev"
|
||||
mount -t tmpfs dev "${working_dir}/dev" -o mode=0755,size=10M,nosuid,strictatime
|
||||
mknod -m 666 "${working_dir}/dev/null" c 1 3
|
||||
mknod -m 666 "${working_dir}/dev/zero" c 1 5
|
||||
mknod -m 600 "${working_dir}/dev/console" c 5 1
|
||||
mknod -m 644 "${working_dir}/dev/random" c 1 8
|
||||
mknod -m 644 "${working_dir}/dev/urandom" c 1 9
|
||||
mknod -m 666 "${working_dir}/dev/tty" c 5 0
|
||||
mknod -m 666 "${working_dir}/dev/ptmx" c 5 2
|
||||
mknod -m 666 "${working_dir}/dev/tty0" c 4 0
|
||||
mknod -m 666 "${working_dir}/dev/full" c 1 7
|
||||
mknod -m 666 "${working_dir}/dev/rtc0" c 254 0
|
||||
ln -s /proc/kcore "${working_dir}/dev/core"
|
||||
ln -s /proc/self/fd "${working_dir}/dev/fd"
|
||||
ln -s /proc/self/fd/0 "${working_dir}/dev/stdin"
|
||||
ln -s /proc/self/fd/1 "${working_dir}/dev/stdout"
|
||||
ln -s /proc/self/fd/2 "${working_dir}/dev/stderr"
|
||||
|
||||
[[ -e "${working_dir}/dev/shm" ]] || mkdir "${working_dir}/dev/shm"
|
||||
mount -t tmpfs shm "${working_dir}/dev/shm" -o nodev,nosuid,size=128M
|
||||
|
||||
bind_mount /dev/pts
|
||||
|
||||
[[ -e "${working_dir}/run" ]] || mkdir "${working_dir}/run"
|
||||
mount -t tmpfs tmpfs "${working_dir}/run" -o mode=0755,nodev,nosuid,strictatime,size=64M
|
||||
|
||||
for host_config in resolv.conf localtime; do
|
||||
bind_mount /etc/$host_config ro
|
||||
done
|
||||
fi
|
||||
|
||||
[[ -n $host_mirror_path ]] && bind_mount "$host_mirror_path" ro
|
||||
|
||||
bind_mount "${cache_dirs[0]}"
|
||||
@@ -167,19 +129,6 @@ trap_chroot_umount () {
|
||||
umount "${working_dir}/${cache_dir}"
|
||||
done
|
||||
[[ -n $host_mirror_path ]] && umount "${working_dir}/${host_mirror_path}"
|
||||
|
||||
if (( ! have_nspawn )); then
|
||||
for host_config in resolv.conf localtime; do
|
||||
umount "${working_dir}/etc/${host_config}"
|
||||
done
|
||||
umount "${working_dir}/proc/sys"
|
||||
umount "${working_dir}/proc"
|
||||
umount "${working_dir}/sys"
|
||||
umount "${working_dir}/dev/pts"
|
||||
umount "${working_dir}/dev/shm"
|
||||
umount "${working_dir}/dev"
|
||||
umount "${working_dir}/run"
|
||||
fi
|
||||
}
|
||||
|
||||
chroot_lock () {
|
||||
@@ -199,20 +148,11 @@ chroot_lock () {
|
||||
chroot_run() {
|
||||
local dir=$1
|
||||
shift
|
||||
if (( have_nspawn)); then
|
||||
eval systemd-nspawn -D "${dir}" -- ${@} 2>/dev/null
|
||||
else
|
||||
eval unshare -mui -- chroot "${dir}" ${@}
|
||||
fi
|
||||
}
|
||||
|
||||
# }}}
|
||||
|
||||
# use systemd-nspawn if we have it available and systemd is running
|
||||
if type -P systemd-nspawn >/dev/null && mountpoint -q /sys/fs/cgroup/systemd; then
|
||||
have_nspawn=1
|
||||
fi
|
||||
|
||||
umask 0022
|
||||
if [[ -n $RUN ]]; then
|
||||
# run chroot {{{
|
||||
|
@@ -12,7 +12,7 @@
|
||||
m4_include(lib/common.sh)
|
||||
|
||||
if (( $# < 1 )); then
|
||||
echo "usage: $(basename $0) <chrootdir> <packages to rebuild>"
|
||||
echo "Usage: $(basename $0) <chrootdir> <packages to rebuild>"
|
||||
echo " example: $(basename $0) ~/chroot readline bash foo bar baz"
|
||||
exit 1
|
||||
fi
|
||||
@@ -47,7 +47,7 @@ pkg_from_pkgbuild() {
|
||||
chrootdir="$1"; shift
|
||||
pkgs="$@"
|
||||
|
||||
SVNPATH='svn+ssh://gerolde.archlinux.org/srv/svn-packages'
|
||||
SVNPATH='svn+ssh://nymeria.archlinux.org/srv/repos/svn-packages/svn'
|
||||
|
||||
msg "Work will be done in $(pwd)/rebuilds"
|
||||
|
||||
|
Reference in New Issue
Block a user