mirror of
				https://gitlab.archlinux.org/archlinux/devtools.git
				synced 2025-11-04 09:44:42 +01:00 
			
		
		
		
	Compare commits
	
		
			22 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					65365f1853 | ||
| 
						 | 
					06a681ca3d | ||
| 
						 | 
					b763788b16 | ||
| 
						 | 
					c2d9a0e7b1 | ||
| 
						 | 
					ee4edefa2f | ||
| 
						 | 
					a8b64995ee | ||
| 
						 | 
					2c9855fe6b | ||
| 
						 | 
					4d4ffb5d8f | ||
| 
						 | 
					2d79191c97 | ||
| 
						 | 
					5b3ca82ae5 | ||
| 
						 | 
					90a5e441cd | ||
| 
						 | 
					3c7dbe0ea2 | ||
| 
						 | 
					130227546a | ||
| 
						 | 
					594f972666 | ||
| 
						 | 
					0e32334cca | ||
| 
						 | 
					58d0ccc4f8 | ||
| 
						 | 
					bfd2862bc4 | ||
| 
						 | 
					56d4dec19f | ||
| 
						 | 
					f62f307c84 | ||
| 
						 | 
					8efe61b4e2 | ||
| 
						 | 
					8ffc2e44ee | ||
| 
						 | 
					a628c1a006 | 
							
								
								
									
										20
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
V=20111106
 | 
			
		||||
V=20120206
 | 
			
		||||
 | 
			
		||||
PREFIX = /usr/local
 | 
			
		||||
 | 
			
		||||
@@ -25,7 +25,10 @@ CONFIGFILES = \
 | 
			
		||||
	pacman-testing.conf \
 | 
			
		||||
	pacman-staging.conf \
 | 
			
		||||
	pacman-multilib.conf \
 | 
			
		||||
	pacman-multilib-testing.conf
 | 
			
		||||
	pacman-multilib-testing.conf \
 | 
			
		||||
	pacman-multilib-staging.conf \
 | 
			
		||||
	pacman-kde-unstable.conf \
 | 
			
		||||
	pacman-gnome-unstable.conf
 | 
			
		||||
 | 
			
		||||
COMMITPKG_LINKS = \
 | 
			
		||||
	extrapkg \
 | 
			
		||||
@@ -36,7 +39,10 @@ COMMITPKG_LINKS = \
 | 
			
		||||
	community-testingpkg \
 | 
			
		||||
	community-stagingpkg \
 | 
			
		||||
	multilibpkg \
 | 
			
		||||
	multilib-testingpkg
 | 
			
		||||
	multilib-testingpkg \
 | 
			
		||||
	multilib-stagingpkg \
 | 
			
		||||
	kde-unstablepkg \
 | 
			
		||||
	gnome-unstablepkg
 | 
			
		||||
 | 
			
		||||
ARCHBUILD_LINKS = \
 | 
			
		||||
	extra-i686-build \
 | 
			
		||||
@@ -46,7 +52,12 @@ ARCHBUILD_LINKS = \
 | 
			
		||||
	staging-i686-build \
 | 
			
		||||
	staging-x86_64-build \
 | 
			
		||||
	multilib-build \
 | 
			
		||||
	multilib-testing-build
 | 
			
		||||
	multilib-testing-build \
 | 
			
		||||
	multilib-staging-build \
 | 
			
		||||
	kde-unstable-i686-build \
 | 
			
		||||
	kde-unstable-x86_64-build \
 | 
			
		||||
	gnome-unstable-i686-build \
 | 
			
		||||
	gnome-unstable-x86_64-build
 | 
			
		||||
 | 
			
		||||
all: $(BINPROGS) $(SBINPROGS) bash_completion zsh_completion
 | 
			
		||||
 | 
			
		||||
@@ -54,6 +65,7 @@ edit = sed -e "s|@pkgdatadir[@]|$(DESTDIR)$(PREFIX)/share/devtools|g"
 | 
			
		||||
 | 
			
		||||
%: %.in Makefile lib/common.sh
 | 
			
		||||
	@echo "GEN $@"
 | 
			
		||||
	@$(RM) "$@"
 | 
			
		||||
	@m4 -P $@.in | $(edit) >$@
 | 
			
		||||
	@chmod a-w "$@"
 | 
			
		||||
	@chmod +x "$@"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								archbuild.in
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								archbuild.in
									
									
									
									
									
								
							@@ -2,8 +2,7 @@
 | 
			
		||||
 | 
			
		||||
m4_include(lib/common.sh)
 | 
			
		||||
 | 
			
		||||
# FIXME: temporary added curl until pacman 4.0 moves to [core]
 | 
			
		||||
base_packages=(base base-devel sudo curl)
 | 
			
		||||
base_packages=(base base-devel sudo)
 | 
			
		||||
 | 
			
		||||
cmd="${0##*/}"
 | 
			
		||||
if [[ "${cmd%%-*}" == 'multilib' ]]; then
 | 
			
		||||
@@ -53,27 +52,13 @@ if ${clean_first} || [[ ! -d "${chroots}/${repo}-${arch}" ]]; then
 | 
			
		||||
	done
 | 
			
		||||
	exec 9>&-
 | 
			
		||||
 | 
			
		||||
	# FIXME: temporary workaround until pacman 4.0 moves to [core]
 | 
			
		||||
	if pacman -V | grep -q 'v4.' && ( [[ "$repo" == 'extra' || "$repo" == 'multilib' ]] ); then
 | 
			
		||||
		pacman_conf=$(mktemp)
 | 
			
		||||
		cp "@pkgdatadir@/pacman-${repo}.conf" "${pacman_conf}"
 | 
			
		||||
		sed -r 's/^#(SigLevel = Never)/\1/' -i "${pacman_conf}"
 | 
			
		||||
	else
 | 
			
		||||
		pacman_conf="@pkgdatadir@/pacman-${repo}.conf"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	rm -rf "${chroots}/${repo}-${arch}"
 | 
			
		||||
	mkdir -p "${chroots}/${repo}-${arch}"
 | 
			
		||||
	setarch "${arch}" mkarchroot \
 | 
			
		||||
		-C "${pacman_conf}" \
 | 
			
		||||
		-C "@pkgdatadir@/pacman-${repo}.conf" \
 | 
			
		||||
		-M "@pkgdatadir@/makepkg-${arch}.conf" \
 | 
			
		||||
		"${chroots}/${repo}-${arch}/root" \
 | 
			
		||||
		"${base_packages[@]}"
 | 
			
		||||
 | 
			
		||||
	# FIXME: temporary workaround until pacman 4.0 moves to [core]
 | 
			
		||||
	if pacman -V | grep -q 'v4.' && ( [[ "$repo" == 'extra' || "$repo" == 'multilib' ]] ); then
 | 
			
		||||
		cp "@pkgdatadir@/pacman-${repo}.conf" "${chroots}/${repo}-${arch}/root/etc/pacman.conf"
 | 
			
		||||
	fi
 | 
			
		||||
else
 | 
			
		||||
	setarch ${arch} mkarchroot \
 | 
			
		||||
		-u \
 | 
			
		||||
@@ -83,4 +68,4 @@ else
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
msg "Building in chroot for [${repo}] (${arch})..."
 | 
			
		||||
setarch "${arch}" makechrootpkg -c -n -r "${chroots}/${repo}-${arch}"
 | 
			
		||||
exec setarch "${arch}" makechrootpkg -c -n -r "${chroots}/${repo}-${arch}"
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@ m4_include(lib/common.sh)
 | 
			
		||||
 | 
			
		||||
scriptname=${0##*/}
 | 
			
		||||
 | 
			
		||||
if [ "$1" = '' ]; then
 | 
			
		||||
if [[ -z $1 ]]; then
 | 
			
		||||
	echo 'Usage: '$scriptname' <package name>...'
 | 
			
		||||
	exit 1
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 | 
			
		||||
m4_include(lib/common.sh)
 | 
			
		||||
 | 
			
		||||
if [ "$1" = '' ]; then
 | 
			
		||||
if [[ -z $1 ]]; then
 | 
			
		||||
	echo 'Usage: archrm <path to checkout>'
 | 
			
		||||
	exit 1
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										89
									
								
								commitpkg.in
									
									
									
									
									
								
							
							
						
						
									
										89
									
								
								commitpkg.in
									
									
									
									
									
								
							@@ -3,30 +3,36 @@
 | 
			
		||||
m4_include(lib/common.sh)
 | 
			
		||||
 | 
			
		||||
getpkgfile() {
 | 
			
		||||
	if [[ ${#} -ne 1 ]]; then
 | 
			
		||||
		die 'No canonical package found!'
 | 
			
		||||
	elif [ ! -f "${1}" ]; then
 | 
			
		||||
		die "Package ${1} not found!"
 | 
			
		||||
	fi
 | 
			
		||||
	case $# in
 | 
			
		||||
		0)
 | 
			
		||||
			error 'No canonical package found!'
 | 
			
		||||
			return 1
 | 
			
		||||
			;;
 | 
			
		||||
		[!1])
 | 
			
		||||
			error 'Failed to canonicalize package name -- multiple packages found:'
 | 
			
		||||
			msg2 '%s' "$@"
 | 
			
		||||
			return 1
 | 
			
		||||
			;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	echo ${1}
 | 
			
		||||
	echo "$1"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Source makepkg.conf; fail if it is not found
 | 
			
		||||
if [ -r '/etc/makepkg.conf' ]; then
 | 
			
		||||
if [[ -r '/etc/makepkg.conf' ]]; then
 | 
			
		||||
	source '/etc/makepkg.conf'
 | 
			
		||||
else
 | 
			
		||||
	die '/etc/makepkg.conf not found!'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Source user-specific makepkg.conf overrides
 | 
			
		||||
if [ -r ~/.makepkg.conf ]; then
 | 
			
		||||
if [[ -r ~/.makepkg.conf ]]; then
 | 
			
		||||
	. ~/.makepkg.conf
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
cmd=${0##*/}
 | 
			
		||||
 | 
			
		||||
if [ ! -f PKGBUILD ]; then
 | 
			
		||||
if [[ ! -f PKGBUILD ]]; then
 | 
			
		||||
	die 'No PKGBUILD file'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -35,7 +41,7 @@ pkgbase=${pkgbase:-$pkgname}
 | 
			
		||||
 | 
			
		||||
case "$cmd" in
 | 
			
		||||
	commitpkg)
 | 
			
		||||
		if [ $# -eq 0 ]; then
 | 
			
		||||
		if (( $# == 0 )); then
 | 
			
		||||
			die 'usage: commitpkg <reponame> [-l limit] [-a arch] [commit message]'
 | 
			
		||||
		fi
 | 
			
		||||
		repo="$1"
 | 
			
		||||
@@ -50,7 +56,7 @@ case "$cmd" in
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
case "$repo" in
 | 
			
		||||
	core|extra|testing|staging)
 | 
			
		||||
	core|extra|testing|staging|kde-unstable|gnome-unstable)
 | 
			
		||||
		server='gerolde.archlinux.org' ;;
 | 
			
		||||
	community*|multilib*)
 | 
			
		||||
		server='aur.archlinux.org' ;;
 | 
			
		||||
@@ -89,25 +95,25 @@ while getopts ':l:a:' flag; do
 | 
			
		||||
done
 | 
			
		||||
shift $(( OPTIND - 1 ))
 | 
			
		||||
 | 
			
		||||
if [ -n "$(svn status -q)" ]; then
 | 
			
		||||
if [[ -n $(svn status -q) ]]; then
 | 
			
		||||
	msgtemplate="upgpkg: $pkgbase $(get_full_version)"$'\n\n'
 | 
			
		||||
	if [ -n "$1" ]; then
 | 
			
		||||
	if [[ -n $1 ]]; then
 | 
			
		||||
		stat_busy 'Committing changes to trunk'
 | 
			
		||||
		svn commit -q -m "${msgtemplate}${1}" || die
 | 
			
		||||
		stat_done
 | 
			
		||||
	else
 | 
			
		||||
		msgfile="$(mktemp)"
 | 
			
		||||
		echo "$msgtemplate" > "$msgfile"
 | 
			
		||||
		if [ -n "$SVN_EDITOR" ]; then
 | 
			
		||||
		if [[ -n $SVN_EDITOR ]]; then
 | 
			
		||||
			$SVN_EDITOR "$msgfile"
 | 
			
		||||
		elif [ -n "$VISUAL" ]; then
 | 
			
		||||
		elif [[ -n $VISUAL ]]; then
 | 
			
		||||
			$VISUAL "$msgfile"
 | 
			
		||||
		elif [ -n "$EDITOR" ]; then
 | 
			
		||||
		elif [[ -n $EDITOR ]]; then
 | 
			
		||||
			$EDITOR "$msgfile"
 | 
			
		||||
		else
 | 
			
		||||
			vi "$msgfile"
 | 
			
		||||
		fi
 | 
			
		||||
		[ -s "$msgfile" ] || die
 | 
			
		||||
		[[ -s $msgfile ]] || die
 | 
			
		||||
		stat_busy 'Committing changes to trunk'
 | 
			
		||||
		svn commit -q -F "$msgfile" || die
 | 
			
		||||
		unlink "$msgfile"
 | 
			
		||||
@@ -116,37 +122,35 @@ if [ -n "$(svn status -q)" ]; then
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
declare -a uploads
 | 
			
		||||
declare -a commit_arches
 | 
			
		||||
declare -a skip_arches
 | 
			
		||||
 | 
			
		||||
for _arch in ${arch[@]}; do
 | 
			
		||||
	if [ -n "$commit_arch" ] && [ "${_arch}" != "$commit_arch" ]; then
 | 
			
		||||
		warning "skipping ${_arch}"
 | 
			
		||||
	if [[ -n $commit_arch && ${_arch} != "$commit_arch" ]]; then
 | 
			
		||||
		skip_arches+=($_arch)
 | 
			
		||||
		continue
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	for _pkgname in ${pkgname[@]}; do
 | 
			
		||||
		fullver=$(get_full_version $_pkgname)
 | 
			
		||||
		pkgfile=$(getpkgfile "$_pkgname-$fullver-${_arch}".pkg.tar.?z 2>/dev/null)
 | 
			
		||||
		pkgdestfile=$(getpkgfile "$PKGDEST/$_pkgname-$fullver-${_arch}".pkg.tar.?z 2>/dev/null)
 | 
			
		||||
 | 
			
		||||
		if [ -f "$pkgfile" ]; then
 | 
			
		||||
			pkgfile="./$pkgfile"
 | 
			
		||||
		elif [ -f "$pkgdestfile" ]; then
 | 
			
		||||
			pkgfile="$pkgdestfile"
 | 
			
		||||
		else
 | 
			
		||||
			warning "skipping ${_arch}"
 | 
			
		||||
		if ! pkgfile=$(shopt -s nullglob;
 | 
			
		||||
				getpkgfile "${PKGDEST+$PKGDEST/}$_pkgname-$fullver-${_arch}".pkg.tar.?z); then
 | 
			
		||||
			warning "Skipping $_pkgname-$fullver-$_arch: failed to locate package file"
 | 
			
		||||
			skip_arches+=($_arch)
 | 
			
		||||
			continue 2
 | 
			
		||||
		fi
 | 
			
		||||
		uploads+=("$pkgfile")
 | 
			
		||||
 | 
			
		||||
		sigfile="${pkgfile}.sig"
 | 
			
		||||
		if [[ $SIGNPKG == 'y' ]] && [ ! -f "${sigfile}" ]; then
 | 
			
		||||
		if [[ $SIGNPKG == 'y' && ! -f $sigfile ]]; then
 | 
			
		||||
			msg "Signing package ${pkgfile}..."
 | 
			
		||||
			if [[ -n $GPGKEY ]]; then
 | 
			
		||||
				SIGNWITHKEY="-u ${GPGKEY}"
 | 
			
		||||
			fi
 | 
			
		||||
			gpg --detach-sign --use-agent ${SIGNWITHKEY} "${pkgfile}" || die
 | 
			
		||||
		fi
 | 
			
		||||
		if [ -f "${sigfile}" ]; then
 | 
			
		||||
		if [[ -f $sigfile ]]; then
 | 
			
		||||
			if ! gpg --verify "$sigfile" >/dev/null 2>&1; then
 | 
			
		||||
				die "Signature ${pkgfile}.sig is incorrect!"
 | 
			
		||||
			fi
 | 
			
		||||
@@ -157,19 +161,30 @@ for _arch in ${arch[@]}; do
 | 
			
		||||
	done
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
if [[ -n $commit_arch ]]; then
 | 
			
		||||
	archrelease "$repo-$commit_arch" || die
 | 
			
		||||
else
 | 
			
		||||
	archrelease "${arch[@]/#/$repo-}" || die
 | 
			
		||||
fi
 | 
			
		||||
for _arch in ${arch[@]}; do
 | 
			
		||||
	if ! in_array $_arch ${skip_arches[@]}; then
 | 
			
		||||
		commit_arches+=($_arch)
 | 
			
		||||
	fi
 | 
			
		||||
done
 | 
			
		||||
archrelease "${commit_arches[@]/#/$repo-}" || die
 | 
			
		||||
 | 
			
		||||
new_uploads=()
 | 
			
		||||
 | 
			
		||||
# convert to absolute paths so rsync can work with colons (epoch)
 | 
			
		||||
while read -r -d '' upload; do
 | 
			
		||||
	  new_uploads+=("$upload")
 | 
			
		||||
done < <(realpath -z "${uploads[@]}")
 | 
			
		||||
 | 
			
		||||
uploads=("${new_uploads[@]}")
 | 
			
		||||
unset new_uploads
 | 
			
		||||
 | 
			
		||||
if [[ ${#uploads[*]} -gt 0 ]]; then
 | 
			
		||||
	msg 'Uploading all package and signature files'
 | 
			
		||||
	rsync "${rsyncopts[@]}" "${uploads[@]}" "$server:staging/$repo/" || die
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "${arch[*]}" == 'any' ]; then
 | 
			
		||||
	if [ -d ../repos/$repo-i686 -a -d ../repos/$repo-x86_64 ]; then
 | 
			
		||||
if [[ "${arch[*]}" == 'any' ]]; then
 | 
			
		||||
	if [[ -d ../repos/$repo-i686 && -d ../repos/$repo-x86_64 ]]; then
 | 
			
		||||
		pushd ../repos/ >/dev/null
 | 
			
		||||
		stat_busy "Removing $repo-i686 and $repo-x86_64"
 | 
			
		||||
		svn rm -q $repo-i686
 | 
			
		||||
@@ -179,7 +194,7 @@ if [ "${arch[*]}" == 'any' ]; then
 | 
			
		||||
		popd >/dev/null
 | 
			
		||||
	fi
 | 
			
		||||
else
 | 
			
		||||
	if [ -d ../repos/$repo-any ]; then
 | 
			
		||||
	if [[ -d ../repos/$repo-any ]]; then
 | 
			
		||||
		pushd ../repos/ >/dev/null
 | 
			
		||||
		stat_busy "Removing $repo-any"
 | 
			
		||||
		svn rm -q $repo-any
 | 
			
		||||
 
 | 
			
		||||
@@ -68,12 +68,12 @@ find . -type f $find_args | while read filename; do
 | 
			
		||||
 | 
			
		||||
	# get architecture of the file; if soarch is empty it's not an ELF binary
 | 
			
		||||
	soarch=$(LC_ALL=C readelf -h "$filename" 2>/dev/null | sed -n 's/.*Class.*ELF\(32\|64\)/\1/p')
 | 
			
		||||
	[ -n "$soarch" ] || continue
 | 
			
		||||
	[[ -n $soarch ]] || continue
 | 
			
		||||
 | 
			
		||||
	if [[ $script_mode = "provides" ]]; then
 | 
			
		||||
		# get the string binaries link to: libfoo.so.1.2 -> libfoo.so.1
 | 
			
		||||
		sofile=$(LC_ALL=C readelf -d "$filename" 2>/dev/null | sed -n 's/.*Library soname: \[\(.*\)\].*/\1/p')
 | 
			
		||||
		[ -z "$sofile" ] && sofile="${filename##*/}"
 | 
			
		||||
		[[ -z $sofile ]] && sofile="${filename##*/}"
 | 
			
		||||
		process_sofile
 | 
			
		||||
	elif [[ $script_mode = "deps" ]]; then
 | 
			
		||||
		# process all libraries needed by the binary
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								lddd.in
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								lddd.in
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
#
 | 
			
		||||
# lddd - find broken library links on your machine
 | 
			
		||||
#
 | 
			
		||||
@@ -27,9 +27,9 @@ for tree in $PATH $libdirs $extras; do
 | 
			
		||||
	-name '*.mcopclass' ! -name '*.mcoptype')
 | 
			
		||||
	IFS=$ifs
 | 
			
		||||
	for i in $files; do
 | 
			
		||||
		if [ $(file $i | grep -c 'ELF') -ne 0 ]; then
 | 
			
		||||
		if (( $(file $i | grep -c 'ELF') != 0 )); then
 | 
			
		||||
			#  Is an ELF binary.
 | 
			
		||||
			if [ $(ldd $i 2>/dev/null | grep -c 'not found') -ne 0 ]; then
 | 
			
		||||
			if (( $(ldd $i 2>/dev/null | grep -c 'not found') != 0 )); then
 | 
			
		||||
				#  Missing lib.
 | 
			
		||||
				echo "$i:" >> $TEMPDIR/raw.txt
 | 
			
		||||
				ldd $i 2>/dev/null | grep 'not found' >> $TEMPDIR/raw.txt
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@ install_pkg=
 | 
			
		||||
add_to_db=false
 | 
			
		||||
run_namcap=false
 | 
			
		||||
chrootdir=
 | 
			
		||||
passeddir=
 | 
			
		||||
 | 
			
		||||
default_copy=$USER
 | 
			
		||||
[[ -n $SUDO_USER ]] && default_copy=$SUDO_USER
 | 
			
		||||
@@ -52,8 +53,8 @@ usage() {
 | 
			
		||||
	echo '-I <pkg>   Install a package into the working copy of the chroot'
 | 
			
		||||
	echo '-l <copy>  The directory to use as the working copy of the chroot'
 | 
			
		||||
	echo '           Useful for maintaining multiple copies.'
 | 
			
		||||
	echo '-n         Run namcap on the package'
 | 
			
		||||
	echo "           Default: $default_copy"
 | 
			
		||||
	echo '-n         Run namcap on the package'
 | 
			
		||||
	exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -63,7 +64,7 @@ while getopts 'hcudr:I:l:n' arg; do
 | 
			
		||||
		c) clean_first=true ;;
 | 
			
		||||
		u) update_first=true ;;
 | 
			
		||||
		d) add_to_db=true ;;
 | 
			
		||||
		r) chrootdir="$OPTARG" ;;
 | 
			
		||||
		r) passeddir="$OPTARG" ;;
 | 
			
		||||
		I) install_pkg="$OPTARG" ;;
 | 
			
		||||
		l) copy="$OPTARG" ;;
 | 
			
		||||
		n) run_namcap=true ;;
 | 
			
		||||
@@ -72,7 +73,7 @@ while getopts 'hcudr:I:l:n' arg; do
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# Canonicalize chrootdir, getting rid of trailing /
 | 
			
		||||
chrootdir=$(readlink -e "$chrootdir")
 | 
			
		||||
chrootdir=$(readlink -e "$passeddir")
 | 
			
		||||
 | 
			
		||||
if [[ ${copy:0:1} = / ]]; then
 | 
			
		||||
	copydir=$copy
 | 
			
		||||
@@ -87,7 +88,7 @@ makepkg_args="$makepkg_args ${*:$OPTIND}"
 | 
			
		||||
# See if -R was passed to makepkg
 | 
			
		||||
for arg in ${*:$OPTIND}; do
 | 
			
		||||
	if [[ $arg = -R ]]; then
 | 
			
		||||
		repack=1
 | 
			
		||||
		repack=true
 | 
			
		||||
		break
 | 
			
		||||
	fi
 | 
			
		||||
done
 | 
			
		||||
@@ -101,7 +102,7 @@ if [[ ! -f PKGBUILD && -z $install_pkg ]]; then
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ ! -d $chrootdir ]]; then
 | 
			
		||||
	die "No chroot dir defined, or invalid path '$chrootdir'"
 | 
			
		||||
	die "No chroot dir defined, or invalid path '$passeddir'"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ ! -d $chrootdir/root ]]; then
 | 
			
		||||
@@ -264,6 +265,7 @@ echo 'LANG=C' > "$copydir/etc/locale.conf"
 | 
			
		||||
# working copy
 | 
			
		||||
cat >"$copydir/chrootbuild" <<EOF
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
. /etc/profile
 | 
			
		||||
export LANG=C
 | 
			
		||||
export HOME=/build
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -47,34 +47,34 @@ while getopts 'r:ufnhC:M:c:' arg; do
 | 
			
		||||
	esac
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
if [ "$EUID" != '0' ]; then
 | 
			
		||||
if (( $EUID != 0 )); then
 | 
			
		||||
	die 'This script must be run as root.'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
shift $(($OPTIND - 1))
 | 
			
		||||
 | 
			
		||||
if [ "$RUN" = '' -a $# -lt 2 ]; then
 | 
			
		||||
if [[ -z $RUN ]] && (( $# < 2 )); then
 | 
			
		||||
	die 'You must specify a directory and one or more packages.'
 | 
			
		||||
elif [ $# -lt 1 ]; then
 | 
			
		||||
elif (( $# < 1 )); then
 | 
			
		||||
	die 'You must specify a directory.'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
working_dir="$(readlink -f ${1})"
 | 
			
		||||
shift 1
 | 
			
		||||
 | 
			
		||||
[ "${working_dir}" = '' ] && die 'Please specify a working directory.'
 | 
			
		||||
[[ -z $working_dir ]] && die 'Please specify a working directory.'
 | 
			
		||||
 | 
			
		||||
if [ -z "$cache_dir" ]; then
 | 
			
		||||
if [[ -z $cache_dir ]]; then
 | 
			
		||||
	cache_conf=${working_dir}/etc/pacman.conf
 | 
			
		||||
	[ ! -f $cache_conf ] && cache_conf=${pac_conf:-/etc/pacman.conf}
 | 
			
		||||
	[[ ! -f $cache_conf ]] && cache_conf=${pac_conf:-/etc/pacman.conf}
 | 
			
		||||
	cache_dir=$( (grep -m 1 '^CacheDir' $cache_conf || echo 'CacheDir = /var/cache/pacman/pkg') | sed 's/CacheDir\s*=\s*//')
 | 
			
		||||
	unset cache_conf
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -f /etc/pacman.d/mirrorlist ]; then
 | 
			
		||||
if [[ -f /etc/pacman.d/mirrorlist ]]; then
 | 
			
		||||
	host_mirror=$(pacman -Sddp extra/devtools 2>/dev/null | sed -E 's#(.*/)extra/os/.*#\1$repo/os/$arch#')
 | 
			
		||||
fi
 | 
			
		||||
if [ -z "${host_mirror}" ]; then
 | 
			
		||||
if [[ -z $host_mirror ]]; then
 | 
			
		||||
	host_mirror='http://mirrors.kernel.org/archlinux/$repo/os/$arch'
 | 
			
		||||
fi
 | 
			
		||||
if echo "${host_mirror}" | grep -q 'file://'; then
 | 
			
		||||
@@ -83,13 +83,13 @@ fi
 | 
			
		||||
 | 
			
		||||
# {{{ functions
 | 
			
		||||
chroot_mount() {
 | 
			
		||||
	[ -e "${working_dir}/sys" ] || mkdir "${working_dir}/sys"
 | 
			
		||||
	[[ -e "${working_dir}/sys" ]] || mkdir "${working_dir}/sys"
 | 
			
		||||
	mount -t sysfs sysfs "${working_dir}/sys"
 | 
			
		||||
 | 
			
		||||
	[ -e "${working_dir}/proc" ] || mkdir "${working_dir}/proc"
 | 
			
		||||
	[[ -e "${working_dir}/proc" ]] || mkdir "${working_dir}/proc"
 | 
			
		||||
	mount -t proc proc "${working_dir}/proc"
 | 
			
		||||
 | 
			
		||||
	[ -e "${working_dir}/dev" ] || mkdir "${working_dir}/dev"
 | 
			
		||||
	[[ -e "${working_dir}/dev" ]] || mkdir "${working_dir}/dev"
 | 
			
		||||
	mount -t tmpfs dev "${working_dir}/dev" -o mode=0755,size=10M,nosuid
 | 
			
		||||
	mknod -m 666 "${working_dir}/dev/null" c 1 3
 | 
			
		||||
	mknod -m 666 "${working_dir}/dev/zero" c 1 5
 | 
			
		||||
@@ -105,19 +105,19 @@ chroot_mount() {
 | 
			
		||||
	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"
 | 
			
		||||
	[[ -e "${working_dir}/dev/shm" ]] || mkdir "${working_dir}/dev/shm"
 | 
			
		||||
	mount -t tmpfs shm "${working_dir}/dev/shm" -o nodev,nosuid,size=128M
 | 
			
		||||
 | 
			
		||||
	[ -e "${working_dir}/dev/pts" ] || mkdir "${working_dir}/dev/pts"
 | 
			
		||||
	[[ -e "${working_dir}/dev/pts" ]] || mkdir "${working_dir}/dev/pts"
 | 
			
		||||
	mount -t devpts devpts "${working_dir}/dev/pts" -o newinstance,ptmxmode=666
 | 
			
		||||
	ln -s pts/ptmx "${working_dir}/dev/ptmx"
 | 
			
		||||
 | 
			
		||||
	[ -e "${cache_dir}" ] || mkdir -p "${cache_dir}"
 | 
			
		||||
	[ -e "${working_dir}/${cache_dir}" ] || mkdir -p "${working_dir}/${cache_dir}"
 | 
			
		||||
	[[ -e $cache_dir ]] || mkdir -p "${cache_dir}"
 | 
			
		||||
	[[ -e "${working_dir}/${cache_dir}" ]] || mkdir -p "${working_dir}/${cache_dir}"
 | 
			
		||||
	mount -o bind "${cache_dir}" "${working_dir}/${cache_dir}"
 | 
			
		||||
 | 
			
		||||
	if [ -n "${host_mirror_path}" ]; then
 | 
			
		||||
		[ -e "${working_dir}/${host_mirror_path}" ] || mkdir -p "${working_dir}/${host_mirror_path}"
 | 
			
		||||
	if [[ -n $host_mirror_path ]]; then
 | 
			
		||||
		[[ -e "${working_dir}/${host_mirror_path}" ]] || mkdir -p "${working_dir}/${host_mirror_path}"
 | 
			
		||||
		mount -o bind "${host_mirror_path}" "${working_dir}/${host_mirror_path}"
 | 
			
		||||
		mount -o remount,ro,bind "${host_mirror_path}" "${working_dir}/${host_mirror_path}"
 | 
			
		||||
	fi
 | 
			
		||||
@@ -126,15 +126,14 @@ chroot_mount() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
copy_hostconf () {
 | 
			
		||||
	chroot "${working_dir}" /bin/findmnt -rnu -o SOURCE,TARGET,FSTYPE,OPTIONS > "${working_dir}/etc/mtab"
 | 
			
		||||
	cp /etc/resolv.conf "${working_dir}/etc/resolv.conf"
 | 
			
		||||
	echo "Server = ${host_mirror}" > ${working_dir}/etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
	if [ "$pac_conf" != "" -a "$NOCOPY" = "n" ]; then
 | 
			
		||||
	if [[ -n $pac_conf && $NOCOPY = 'n' ]]; then
 | 
			
		||||
		cp ${pac_conf} ${working_dir}/etc/pacman.conf
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [ "$makepkg_conf" != "" -a "$NOCOPY" = "n" ]; then
 | 
			
		||||
	if [[ -n $makepkg_conf && $NOCOPY = 'n' ]]; then
 | 
			
		||||
		cp ${makepkg_conf} ${working_dir}/etc/makepkg.conf
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
@@ -146,12 +145,12 @@ chroot_umount () {
 | 
			
		||||
	umount "${working_dir}/dev/shm"
 | 
			
		||||
	umount "${working_dir}/dev"
 | 
			
		||||
	umount "${working_dir}/${cache_dir}"
 | 
			
		||||
	[ -n "${host_mirror_path}" ] && umount "${working_dir}/${host_mirror_path}"
 | 
			
		||||
	[[ -n $host_mirror_path ]] && umount "${working_dir}/${host_mirror_path}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
chroot_lock () {
 | 
			
		||||
	# Only reopen the FD if it wasn't handed to us
 | 
			
		||||
	if [ "$(readlink -f /dev/fd/9)" != "${working_dir}.lock" ]; then
 | 
			
		||||
	if [[ $(readlink -f /dev/fd/9) != "${working_dir}.lock" ]]; then
 | 
			
		||||
	  exec 9>"${working_dir}.lock"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
@@ -165,10 +164,10 @@ chroot_lock () {
 | 
			
		||||
# }}}
 | 
			
		||||
 | 
			
		||||
umask 0022
 | 
			
		||||
if [ "$RUN" != "" ]; then
 | 
			
		||||
if [[ -n $RUN ]]; then
 | 
			
		||||
	# run chroot {{{
 | 
			
		||||
	#Sanity check
 | 
			
		||||
	if [ ! -f "${working_dir}/.arch-chroot" ]; then
 | 
			
		||||
	if [[ ! -f "${working_dir}/.arch-chroot" ]]; then
 | 
			
		||||
		die "'${working_dir}' does not appear to be a Arch chroot."
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
@@ -181,7 +180,7 @@ if [ "$RUN" != "" ]; then
 | 
			
		||||
	# }}}
 | 
			
		||||
else
 | 
			
		||||
	# {{{ build chroot
 | 
			
		||||
	if [ -e "${working_dir}" -a "${FORCE}" = "n" ]; then
 | 
			
		||||
	if [[ -e $working_dir && $FORCE = 'n' ]]; then
 | 
			
		||||
		die "Working directory '${working_dir}' already exists - try using -f"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
@@ -196,13 +195,13 @@ else
 | 
			
		||||
	chroot_mount
 | 
			
		||||
 | 
			
		||||
	pacargs="--noconfirm --root=${working_dir} --cachedir=${cache_dir}"
 | 
			
		||||
	if [ "$pac_conf" != "" ]; then
 | 
			
		||||
	if [[ -n $pac_conf ]]; then
 | 
			
		||||
		pacargs="$pacargs --config=${pac_conf}"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [ $# -ne 0 ]; then
 | 
			
		||||
	if (( $# != 0 )); then
 | 
			
		||||
		op='-Sy'
 | 
			
		||||
		if [ "$FORCE" = "y" ]; then
 | 
			
		||||
		if [[ $FORCE = 'y' ]]; then
 | 
			
		||||
			op="${op}f"
 | 
			
		||||
		fi
 | 
			
		||||
		if ! pacman ${op} ${pacargs} $@; then
 | 
			
		||||
@@ -210,18 +209,18 @@ else
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [ -d "${working_dir}/lib/modules" ]; then
 | 
			
		||||
	if [[ -d "${working_dir}/lib/modules" ]]; then
 | 
			
		||||
		ldconfig -r "${working_dir}"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [ -e "${working_dir}/etc/locale.gen" ]; then
 | 
			
		||||
	if [[ -e "${working_dir}/etc/locale.gen" ]]; then
 | 
			
		||||
		sed -i 's@^#\(en_US\|de_DE\)\(\.UTF-8\)@\1\2@' "${working_dir}/etc/locale.gen"
 | 
			
		||||
		chroot "${working_dir}" /usr/sbin/locale-gen
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	copy_hostconf
 | 
			
		||||
 | 
			
		||||
	if [ ! -e "${working_dir}/.arch-chroot" ]; then
 | 
			
		||||
	if [[ ! -e "${working_dir}/.arch-chroot" ]]; then
 | 
			
		||||
		date +%s > "${working_dir}/.arch-chroot"
 | 
			
		||||
	fi
 | 
			
		||||
	# }}}
 | 
			
		||||
 
 | 
			
		||||
@@ -47,8 +47,8 @@ Architecture = auto
 | 
			
		||||
# the following line. This will treat any key imported into pacman's keyring as
 | 
			
		||||
# trusted.
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
# Disable signature checks for now
 | 
			
		||||
#SigLevel = Never
 | 
			
		||||
# For now, off by default unless you read the above.
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										99
									
								
								pacman-gnome-unstable.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								pacman-gnome-unstable.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
			
		||||
#
 | 
			
		||||
# /etc/pacman.conf
 | 
			
		||||
#
 | 
			
		||||
# See the pacman.conf(5) manpage for option and repository directives
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# GENERAL OPTIONS
 | 
			
		||||
#
 | 
			
		||||
[options]
 | 
			
		||||
# The following paths are commented out with their default values listed.
 | 
			
		||||
# If you wish to use different paths, uncomment and update the paths.
 | 
			
		||||
#RootDir     = /
 | 
			
		||||
#DBPath      = /var/lib/pacman/
 | 
			
		||||
#CacheDir    = /var/cache/pacman/pkg/
 | 
			
		||||
#LogFile     = /var/log/pacman.log
 | 
			
		||||
#GPGDir      = /etc/pacman.d/gnupg/
 | 
			
		||||
HoldPkg     = pacman glibc
 | 
			
		||||
# If upgrades are available for these packages they will be asked for first
 | 
			
		||||
SyncFirst   = pacman
 | 
			
		||||
#XferCommand = /usr/bin/curl -C - -f %u > %o
 | 
			
		||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
 | 
			
		||||
#CleanMethod = KeepInstalled
 | 
			
		||||
Architecture = auto
 | 
			
		||||
 | 
			
		||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
 | 
			
		||||
#IgnorePkg   =
 | 
			
		||||
#IgnoreGroup =
 | 
			
		||||
 | 
			
		||||
#NoUpgrade   =
 | 
			
		||||
#NoExtract   =
 | 
			
		||||
 | 
			
		||||
# Misc options
 | 
			
		||||
#UseSyslog
 | 
			
		||||
#UseDelta
 | 
			
		||||
#TotalDownload
 | 
			
		||||
# We cannot check disk space from within a chroot environment
 | 
			
		||||
#CheckSpace
 | 
			
		||||
#VerbosePkgLists
 | 
			
		||||
 | 
			
		||||
# PGP signature checking
 | 
			
		||||
# NOTE: None of this will work without running `pacman-key --init` first.
 | 
			
		||||
# The compiled in default is equivalent to the following line. This requires
 | 
			
		||||
# you to locally sign and trust packager keys using `pacman-key` for them to be
 | 
			
		||||
# considered valid.
 | 
			
		||||
#SigLevel = Optional TrustedOnly
 | 
			
		||||
# If you wish to check signatures but avoid local sign and trust issues, use
 | 
			
		||||
# the following line. This will treat any key imported into pacman's keyring as
 | 
			
		||||
# trusted.
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
# For now, off by default unless you read the above.
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
#   - can be defined here or included from another file
 | 
			
		||||
#   - pacman will search repositories in the order defined here
 | 
			
		||||
#   - local/custom mirrors can be added here or in separate files
 | 
			
		||||
#   - repositories listed first will take precedence when packages
 | 
			
		||||
#     have identical names, regardless of version number
 | 
			
		||||
#   - URLs will have $repo replaced by the name of the current repo
 | 
			
		||||
#   - URLs will have $arch replaced by the name of the architecture
 | 
			
		||||
#
 | 
			
		||||
# Repository entries are of the format:
 | 
			
		||||
#       [repo-name]
 | 
			
		||||
#       Server = ServerName
 | 
			
		||||
#       Include = IncludePath
 | 
			
		||||
#
 | 
			
		||||
# The header [repo-name] is crucial - it must be present and
 | 
			
		||||
# uncommented to enable the repo.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# The testing repositories are disabled by default. To enable, uncomment the
 | 
			
		||||
# repo name header and Include lines. You can add preferred servers immediately
 | 
			
		||||
# after the header, and they will be used before the default mirrors.
 | 
			
		||||
 | 
			
		||||
[gnome-unstable]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[testing]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[core]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-testing]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
# An example of a custom package repository.  See the pacman manpage for
 | 
			
		||||
# tips on creating your own repositories.
 | 
			
		||||
#[custom]
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
#Server = file:///home/custompkgs
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										99
									
								
								pacman-kde-unstable.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								pacman-kde-unstable.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
			
		||||
#
 | 
			
		||||
# /etc/pacman.conf
 | 
			
		||||
#
 | 
			
		||||
# See the pacman.conf(5) manpage for option and repository directives
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# GENERAL OPTIONS
 | 
			
		||||
#
 | 
			
		||||
[options]
 | 
			
		||||
# The following paths are commented out with their default values listed.
 | 
			
		||||
# If you wish to use different paths, uncomment and update the paths.
 | 
			
		||||
#RootDir     = /
 | 
			
		||||
#DBPath      = /var/lib/pacman/
 | 
			
		||||
#CacheDir    = /var/cache/pacman/pkg/
 | 
			
		||||
#LogFile     = /var/log/pacman.log
 | 
			
		||||
#GPGDir      = /etc/pacman.d/gnupg/
 | 
			
		||||
HoldPkg     = pacman glibc
 | 
			
		||||
# If upgrades are available for these packages they will be asked for first
 | 
			
		||||
SyncFirst   = pacman
 | 
			
		||||
#XferCommand = /usr/bin/curl -C - -f %u > %o
 | 
			
		||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
 | 
			
		||||
#CleanMethod = KeepInstalled
 | 
			
		||||
Architecture = auto
 | 
			
		||||
 | 
			
		||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
 | 
			
		||||
#IgnorePkg   =
 | 
			
		||||
#IgnoreGroup =
 | 
			
		||||
 | 
			
		||||
#NoUpgrade   =
 | 
			
		||||
#NoExtract   =
 | 
			
		||||
 | 
			
		||||
# Misc options
 | 
			
		||||
#UseSyslog
 | 
			
		||||
#UseDelta
 | 
			
		||||
#TotalDownload
 | 
			
		||||
# We cannot check disk space from within a chroot environment
 | 
			
		||||
#CheckSpace
 | 
			
		||||
#VerbosePkgLists
 | 
			
		||||
 | 
			
		||||
# PGP signature checking
 | 
			
		||||
# NOTE: None of this will work without running `pacman-key --init` first.
 | 
			
		||||
# The compiled in default is equivalent to the following line. This requires
 | 
			
		||||
# you to locally sign and trust packager keys using `pacman-key` for them to be
 | 
			
		||||
# considered valid.
 | 
			
		||||
#SigLevel = Optional TrustedOnly
 | 
			
		||||
# If you wish to check signatures but avoid local sign and trust issues, use
 | 
			
		||||
# the following line. This will treat any key imported into pacman's keyring as
 | 
			
		||||
# trusted.
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
# For now, off by default unless you read the above.
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
#   - can be defined here or included from another file
 | 
			
		||||
#   - pacman will search repositories in the order defined here
 | 
			
		||||
#   - local/custom mirrors can be added here or in separate files
 | 
			
		||||
#   - repositories listed first will take precedence when packages
 | 
			
		||||
#     have identical names, regardless of version number
 | 
			
		||||
#   - URLs will have $repo replaced by the name of the current repo
 | 
			
		||||
#   - URLs will have $arch replaced by the name of the architecture
 | 
			
		||||
#
 | 
			
		||||
# Repository entries are of the format:
 | 
			
		||||
#       [repo-name]
 | 
			
		||||
#       Server = ServerName
 | 
			
		||||
#       Include = IncludePath
 | 
			
		||||
#
 | 
			
		||||
# The header [repo-name] is crucial - it must be present and
 | 
			
		||||
# uncommented to enable the repo.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# The testing repositories are disabled by default. To enable, uncomment the
 | 
			
		||||
# repo name header and Include lines. You can add preferred servers immediately
 | 
			
		||||
# after the header, and they will be used before the default mirrors.
 | 
			
		||||
 | 
			
		||||
[kde-unstable]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[testing]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[core]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-testing]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
# An example of a custom package repository.  See the pacman manpage for
 | 
			
		||||
# tips on creating your own repositories.
 | 
			
		||||
#[custom]
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
#Server = file:///home/custompkgs
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										113
									
								
								pacman-multilib-staging.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								pacman-multilib-staging.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,113 @@
 | 
			
		||||
#
 | 
			
		||||
# /etc/pacman.conf
 | 
			
		||||
#
 | 
			
		||||
# See the pacman.conf(5) manpage for option and repository directives
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# GENERAL OPTIONS
 | 
			
		||||
#
 | 
			
		||||
[options]
 | 
			
		||||
# The following paths are commented out with their default values listed.
 | 
			
		||||
# If you wish to use different paths, uncomment and update the paths.
 | 
			
		||||
#RootDir     = /
 | 
			
		||||
#DBPath      = /var/lib/pacman/
 | 
			
		||||
#CacheDir    = /var/cache/pacman/pkg/
 | 
			
		||||
#LogFile     = /var/log/pacman.log
 | 
			
		||||
#GPGDir      = /etc/pacman.d/gnupg/
 | 
			
		||||
HoldPkg     = pacman glibc
 | 
			
		||||
# If upgrades are available for these packages they will be asked for first
 | 
			
		||||
SyncFirst   = pacman
 | 
			
		||||
#XferCommand = /usr/bin/curl -C - -f %u > %o
 | 
			
		||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
 | 
			
		||||
#CleanMethod = KeepInstalled
 | 
			
		||||
Architecture = auto
 | 
			
		||||
 | 
			
		||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
 | 
			
		||||
#IgnorePkg   =
 | 
			
		||||
#IgnoreGroup =
 | 
			
		||||
 | 
			
		||||
#NoUpgrade   =
 | 
			
		||||
#NoExtract   =
 | 
			
		||||
 | 
			
		||||
# Misc options
 | 
			
		||||
#UseSyslog
 | 
			
		||||
#UseDelta
 | 
			
		||||
#TotalDownload
 | 
			
		||||
# We cannot check disk space from within a chroot environment
 | 
			
		||||
#CheckSpace
 | 
			
		||||
#VerbosePkgLists
 | 
			
		||||
 | 
			
		||||
# PGP signature checking
 | 
			
		||||
# NOTE: None of this will work without running `pacman-key --init` first.
 | 
			
		||||
# The compiled in default is equivalent to the following line. This requires
 | 
			
		||||
# you to locally sign and trust packager keys using `pacman-key` for them to be
 | 
			
		||||
# considered valid.
 | 
			
		||||
#SigLevel = Optional TrustedOnly
 | 
			
		||||
# If you wish to check signatures but avoid local sign and trust issues, use
 | 
			
		||||
# the following line. This will treat any key imported into pacman's keyring as
 | 
			
		||||
# trusted.
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
# For now, off by default unless you read the above.
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
#   - can be defined here or included from another file
 | 
			
		||||
#   - pacman will search repositories in the order defined here
 | 
			
		||||
#   - local/custom mirrors can be added here or in separate files
 | 
			
		||||
#   - repositories listed first will take precedence when packages
 | 
			
		||||
#     have identical names, regardless of version number
 | 
			
		||||
#   - URLs will have $repo replaced by the name of the current repo
 | 
			
		||||
#   - URLs will have $arch replaced by the name of the architecture
 | 
			
		||||
#
 | 
			
		||||
# Repository entries are of the format:
 | 
			
		||||
#       [repo-name]
 | 
			
		||||
#       Server = ServerName
 | 
			
		||||
#       Include = IncludePath
 | 
			
		||||
#
 | 
			
		||||
# The header [repo-name] is crucial - it must be present and
 | 
			
		||||
# uncommented to enable the repo.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# The testing repositories are disabled by default. To enable, uncomment the
 | 
			
		||||
# repo name header and Include lines. You can add preferred servers immediately
 | 
			
		||||
# after the header, and they will be used before the default mirrors.
 | 
			
		||||
 | 
			
		||||
[staging]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[testing]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[core]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-staging]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-testing]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
# If you want to run 32 bit applications on your x86_64 system,
 | 
			
		||||
# enable the multilib repository here.
 | 
			
		||||
[multilib-staging]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[multilib-testing]
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[multilib]
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
# An example of a custom package repository.  See the pacman manpage for
 | 
			
		||||
# tips on creating your own repositories.
 | 
			
		||||
#[custom]
 | 
			
		||||
#Server = file:///home/custompkgs
 | 
			
		||||
 | 
			
		||||
@@ -47,7 +47,7 @@ Architecture = auto
 | 
			
		||||
# the following line. This will treat any key imported into pacman's keyring as
 | 
			
		||||
# trusted.
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
# Disable signature checks for now
 | 
			
		||||
# For now, off by default unless you read the above.
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -47,8 +47,8 @@ Architecture = auto
 | 
			
		||||
# the following line. This will treat any key imported into pacman's keyring as
 | 
			
		||||
# trusted.
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
# Disable signature checks for now
 | 
			
		||||
#SigLevel = Never
 | 
			
		||||
# For now, off by default unless you read the above.
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,7 @@ Architecture = auto
 | 
			
		||||
# the following line. This will treat any key imported into pacman's keyring as
 | 
			
		||||
# trusted.
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
# Disable signature checks for now
 | 
			
		||||
# For now, off by default unless you read the above.
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,7 @@ Architecture = auto
 | 
			
		||||
# the following line. This will treat any key imported into pacman's keyring as
 | 
			
		||||
# trusted.
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
# Disable signature checks for now
 | 
			
		||||
# For now, off by default unless you read the above.
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -11,14 +11,14 @@
 | 
			
		||||
 | 
			
		||||
m4_include(lib/common.sh)
 | 
			
		||||
 | 
			
		||||
if [ $# -le 1 ]; then
 | 
			
		||||
if (( $# < 1 )); then
 | 
			
		||||
	echo "usage: $(basename $0) <chrootdir> <packages to rebuild>"
 | 
			
		||||
	echo "  example: $(basename $0) ~/chroot readline bash foo bar baz"
 | 
			
		||||
	exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Source makepkg.conf; fail if it is not found
 | 
			
		||||
if [ -r '/etc/makepkg.conf' ]; then
 | 
			
		||||
if [[ -r '/etc/makepkg.conf' ]]; then
 | 
			
		||||
	source '/etc/makepkg.conf'
 | 
			
		||||
else
 | 
			
		||||
	die '/etc/makepkg.conf not found!'
 | 
			
		||||
@@ -63,7 +63,7 @@ for pkg in $pkgs; do
 | 
			
		||||
 | 
			
		||||
	msg2 "Building '$pkg'"
 | 
			
		||||
	/usr/bin/svn update "$pkg"
 | 
			
		||||
	if [ ! -d "$pkg/trunk" ]; then
 | 
			
		||||
	if [[ ! -d "$pkg/trunk" ]]; then
 | 
			
		||||
		FAILED="$FAILED $pkg"
 | 
			
		||||
		warning "$pkg does not exist in SVN"
 | 
			
		||||
		continue
 | 
			
		||||
@@ -77,7 +77,7 @@ for pkg in $pkgs; do
 | 
			
		||||
		error "$pkg Failed!"
 | 
			
		||||
	else
 | 
			
		||||
		pkgfile=$(pkg_from_pkgbuild)
 | 
			
		||||
		if [ -e "$pkgfile" ]; then
 | 
			
		||||
		if [[ -e $pkgfile ]]; then
 | 
			
		||||
			msg2 "$pkg Complete"
 | 
			
		||||
		else
 | 
			
		||||
			FAILED="$FAILED $pkg"
 | 
			
		||||
@@ -87,7 +87,7 @@ for pkg in $pkgs; do
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
cd "$REBUILD_ROOT"
 | 
			
		||||
if [ "$FAILED" != "" ]; then
 | 
			
		||||
if [[ -n $FAILED ]]; then
 | 
			
		||||
	msg 'Packages failed:'
 | 
			
		||||
	for pkg in $FAILED; do
 | 
			
		||||
		msg2 "$pkg"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#compdef archbuild archco archrelease archrm commitpkg finddeps makechrootpkg mkarchroot rebuildpkgs extrapkg=commitpkg corepkg=commitpkg testingpkg=commitpkg stagingpkg=commitpkg communitypkg=commitpkg community-testingpkg=commitpkg community-stagingpkg=commitpkg multilibpkg=commitpkg multilib-testingpkg=commitpkg extra-i686-build=archbuild extra-x86_64-build=archbuild testing-i686-build=archbuild testing-x86_64-build=archbuild staging-i686-build=archbuild staging-x86_64-build=archbuild multilib-build=archbuild multilib-testing-build=archbuild communityco=archco
 | 
			
		||||
#compdef archbuild archco archrelease archrm commitpkg finddeps makechrootpkg mkarchroot rebuildpkgs extrapkg=commitpkg corepkg=commitpkg testingpkg=commitpkg stagingpkg=commitpkg communitypkg=commitpkg community-testingpkg=commitpkg community-stagingpkg=commitpkg multilibpkg=commitpkg multilib-testingpkg=commitpkg extra-i686-build=archbuild extra-x86_64-build=archbuild testing-i686-build=archbuild testing-x86_64-build=archbuild staging-i686-build=archbuild staging-x86_64-build=archbuild multilib-build=archbuild multilib-testing-build=archbuild multilib-staging-build=archbuild kde-unstable-i686-build=archbuild kde-unstable-x86_64-build=archbuild gnome-unstable-i686-build=archbuild gnome-unstable-x86_64-build=archbuild communityco=archco
 | 
			
		||||
 | 
			
		||||
_arch=(i686 x86_64 any)
 | 
			
		||||
 | 
			
		||||
@@ -9,9 +9,12 @@ _tags=(
 | 
			
		||||
	staging-i686 staging-x86_64 staging-any
 | 
			
		||||
	testing-i686 testing-x86_64 testing-any
 | 
			
		||||
	multilib-testing-i686 multilib-testing-x86_64 multilib-testing-any
 | 
			
		||||
	multilib-staging-i686 multilib-staging-x86_64 multilib-staging-any
 | 
			
		||||
	community-i686 community-x86_64 community-any
 | 
			
		||||
	community-staging-i686 community-staging-x86_64 community-staging-any
 | 
			
		||||
	community-testing-i686 community-testing-x86_64 community-testing-any
 | 
			
		||||
	kde-unstable-i686 kde-unstable-x86_64 kde-unstable-any
 | 
			
		||||
	gnome-unstable-i686 gnome-unstable-x86_64 gnome-unstable-any
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
_archbuild_args=(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user