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 | |
|---|---|---|---|
| 
						 | 
					cfd81ab563 | ||
| 
						 | 
					ac1ee41e4d | ||
| 
						 | 
					ecae65e7fd | ||
| 
						 | 
					c617c67ff8 | ||
| 
						 | 
					7228cc00e8 | ||
| 
						 | 
					a26416dca3 | ||
| 
						 | 
					37bb1d33a7 | ||
| 
						 | 
					dbef0b91bf | ||
| 
						 | 
					499f20071a | ||
| 
						 | 
					0d3d63e3aa | ||
| 
						 | 
					d2ec5ab67d | ||
| 
						 | 
					a23d93ce7f | ||
| 
						 | 
					246b8ead60 | ||
| 
						 | 
					b14a1b1bcc | ||
| 
						 | 
					0cd9e1ae7e | ||
| 
						 | 
					3734c80bf7 | ||
| 
						 | 
					7b696f6f8d | ||
| 
						 | 
					ed9d5a16e3 | ||
| 
						 | 
					e44c49aebb | ||
| 
						 | 
					c5cd72c085 | ||
| 
						 | 
					8bedb89fd6 | ||
| 
						 | 
					c7cda47342 | 
							
								
								
									
										7
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
V=20120611
 | 
			
		||||
V=20121004
 | 
			
		||||
 | 
			
		||||
PREFIX = /usr/local
 | 
			
		||||
 | 
			
		||||
@@ -64,6 +64,10 @@ CROSSREPOMOVE_LINKS = \
 | 
			
		||||
	extra2community \
 | 
			
		||||
	community2extra
 | 
			
		||||
 | 
			
		||||
BASHCOMPLETION_LINKS = \
 | 
			
		||||
	archco \
 | 
			
		||||
	communityco
 | 
			
		||||
 | 
			
		||||
all: $(BINPROGS) $(SBINPROGS) bash_completion zsh_completion
 | 
			
		||||
 | 
			
		||||
edit = sed -e "s|@pkgdatadir[@]|$(DESTDIR)$(PREFIX)/share/devtools|g"
 | 
			
		||||
@@ -90,6 +94,7 @@ install:
 | 
			
		||||
	for l in ${CROSSREPOMOVE_LINKS}; do ln -sf crossrepomove $(DESTDIR)$(PREFIX)/bin/$$l; done
 | 
			
		||||
	ln -sf find-libdeps $(DESTDIR)$(PREFIX)/bin/find-libprovides
 | 
			
		||||
	install -Dm0644 bash_completion $(DESTDIR)/usr/share/bash-completion/completions/devtools
 | 
			
		||||
	for l in ${BASHCOMPLETION_LINKS}; do ln -sf devtools $(DESTDIR)/usr/share/bash-completion/completions/$$l; done
 | 
			
		||||
	install -Dm0644 zsh_completion $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_devtools
 | 
			
		||||
	ln -sf archco $(DESTDIR)$(PREFIX)/bin/communityco
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								archbuild.in
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								archbuild.in
									
									
									
									
									
								
							@@ -14,7 +14,7 @@ else
 | 
			
		||||
	repo=${tag%-*}
 | 
			
		||||
	arch=${tag##*-}
 | 
			
		||||
fi
 | 
			
		||||
chroots='/var/tmp/archbuild'
 | 
			
		||||
chroots='/var/lib/archbuild'
 | 
			
		||||
clean_first=false
 | 
			
		||||
 | 
			
		||||
usage() {
 | 
			
		||||
@@ -43,28 +43,31 @@ if ${clean_first} || [[ ! -d "${chroots}/${repo}-${arch}" ]]; then
 | 
			
		||||
		[[ -d $copy ]] || continue
 | 
			
		||||
		msg2 "Deleting chroot copy '$(basename "${copy}")'..."
 | 
			
		||||
 | 
			
		||||
		# Lock the copy
 | 
			
		||||
		exec 9>"${copy}.lock"
 | 
			
		||||
		flock 9
 | 
			
		||||
		exec 9>"$copydir.lock"
 | 
			
		||||
		if ! flock -n 9; then
 | 
			
		||||
			stat_busy "Locking chroot copy '$copy'"
 | 
			
		||||
			flock 9
 | 
			
		||||
			stat_done
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		{ type -P btrfs && btrfs subvolume delete "${copy}"; } &>/dev/null
 | 
			
		||||
		rm -rf "${copy}"
 | 
			
		||||
		rm -rf --one-file-system "${copy}"
 | 
			
		||||
	done
 | 
			
		||||
	exec 9>&-
 | 
			
		||||
 | 
			
		||||
	rm -rf "${chroots}/${repo}-${arch}"
 | 
			
		||||
	rm -rf --one-file-system "${chroots}/${repo}-${arch}"
 | 
			
		||||
	mkdir -p "${chroots}/${repo}-${arch}"
 | 
			
		||||
	setarch "${arch}" mkarchroot \
 | 
			
		||||
		-C "@pkgdatadir@/pacman-${repo}.conf" \
 | 
			
		||||
		-M "@pkgdatadir@/makepkg-${arch}.conf" \
 | 
			
		||||
		"${chroots}/${repo}-${arch}/root" \
 | 
			
		||||
		"${base_packages[@]}"
 | 
			
		||||
		"${base_packages[@]}" || abort
 | 
			
		||||
else
 | 
			
		||||
	setarch ${arch} mkarchroot \
 | 
			
		||||
		-u \
 | 
			
		||||
		-C "@pkgdatadir@/pacman-${repo}.conf" \
 | 
			
		||||
		-M "@pkgdatadir@/makepkg-${arch}.conf" \
 | 
			
		||||
		"${chroots}/${repo}-${arch}/root"
 | 
			
		||||
		"${chroots}/${repo}-${arch}/root" || abort
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
msg "Building in chroot for [${repo}] (${arch})..."
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								commitpkg.in
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								commitpkg.in
									
									
									
									
									
								
							@@ -183,19 +183,21 @@ for _arch in ${arch[@]}; do
 | 
			
		||||
		commit_arches+=($_arch)
 | 
			
		||||
	fi
 | 
			
		||||
done
 | 
			
		||||
archrelease "${archreleaseopts[@]}" "${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 [[ ${#commit_arches[*]} -gt 0 ]]; then
 | 
			
		||||
	archrelease "${archreleaseopts[@]}" "${commit_arches[@]/#/$repo-}" || die
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ ${#uploads[*]} -gt 0 ]]; then
 | 
			
		||||
	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
 | 
			
		||||
	msg 'Uploading all package and signature files'
 | 
			
		||||
	rsync "${rsyncopts[@]}" "${uploads[@]}" "$server:staging/$repo/" || die
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
@@ -62,8 +62,6 @@ setup_workdir() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cleanup() {
 | 
			
		||||
	trap - EXIT INT QUIT TERM
 | 
			
		||||
 | 
			
		||||
	[[ -n $WORKDIR ]] && rm -rf "$WORKDIR"
 | 
			
		||||
	[[ $1 ]] && exit $1
 | 
			
		||||
}
 | 
			
		||||
@@ -73,13 +71,23 @@ abort() {
 | 
			
		||||
	cleanup 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
trap_abort() {
 | 
			
		||||
	trap - EXIT INT QUIT TERM HUP
 | 
			
		||||
	abort
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
trap_exit() {
 | 
			
		||||
	trap - EXIT INT QUIT TERM HUP
 | 
			
		||||
	cleanup 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
die() {
 | 
			
		||||
	error "$*"
 | 
			
		||||
	cleanup 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
trap abort INT QUIT TERM HUP
 | 
			
		||||
trap 'cleanup 0' EXIT
 | 
			
		||||
trap 'trap_abort' INT QUIT TERM HUP
 | 
			
		||||
trap 'trap_exit' EXIT
 | 
			
		||||
 | 
			
		||||
##
 | 
			
		||||
#  usage : in_array( $needle, $haystack )
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,7 @@ passeddir=
 | 
			
		||||
default_copy=$USER
 | 
			
		||||
[[ -n $SUDO_USER ]] && default_copy=$SUDO_USER
 | 
			
		||||
[[ -z $default_copy || $default_copy = root ]] && default_copy=copy
 | 
			
		||||
src_owner=${SUDO_USER:-$USER}
 | 
			
		||||
 | 
			
		||||
usage() {
 | 
			
		||||
	echo "usage ${0##*/} [options] -r <chrootdir> [--] [makepkg args]"
 | 
			
		||||
@@ -258,15 +259,11 @@ nobody ALL = NOPASSWD: /usr/bin/pacman
 | 
			
		||||
EOF
 | 
			
		||||
chmod 440 "$copydir/etc/sudoers.d/nobody-pacman"
 | 
			
		||||
 | 
			
		||||
# Set this system wide as makepkg will source /etc/profile before calling build()
 | 
			
		||||
echo 'LANG=C' > "$copydir/etc/locale.conf"
 | 
			
		||||
 | 
			
		||||
# This is a little gross, but this way the script is recreated every time in the
 | 
			
		||||
# working copy
 | 
			
		||||
cat >"$copydir/chrootbuild" <<EOF
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
. /etc/profile
 | 
			
		||||
export LANG=C
 | 
			
		||||
export HOME=/build
 | 
			
		||||
 | 
			
		||||
cd /build
 | 
			
		||||
@@ -278,7 +275,7 @@ if $run_namcap; then
 | 
			
		||||
	pacman -S --needed --noconfirm namcap
 | 
			
		||||
	for pkgfile in /build/PKGBUILD /pkgdest/*.pkg.tar.?z; do
 | 
			
		||||
		echo "Checking \${pkgfile##*/}"
 | 
			
		||||
		namcap "\$pkgfile" 2>&1 | tee "/build/\${pkgfile##*/}-namcap.log"
 | 
			
		||||
		sudo -u nobody namcap "\$pkgfile" 2>&1 | tee "/build/\${pkgfile##*/}-namcap.log"
 | 
			
		||||
	done
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -296,10 +293,12 @@ if mkarchroot -r "/chrootbuild" "$copydir"; then
 | 
			
		||||
			popd >/dev/null
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		chown "$src_owner" "$pkgfile"
 | 
			
		||||
		mv "$pkgfile" "$PKGDEST"
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	for l in "$copydir"/build/*-{build,check,namcap,package,package_*}.log; do
 | 
			
		||||
		chown "$src_owner" "$l"
 | 
			
		||||
		[[ -f $l ]] && mv "$l" .
 | 
			
		||||
	done
 | 
			
		||||
else
 | 
			
		||||
@@ -308,6 +307,7 @@ else
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
for f in "$copydir"/srcdest/*; do
 | 
			
		||||
	chown "$src_owner" "$f"
 | 
			
		||||
	mv "$f" "$SRCDEST"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										163
									
								
								mkarchroot.in
									
									
									
									
									
								
							
							
						
						
									
										163
									
								
								mkarchroot.in
									
									
									
									
									
								
							@@ -10,10 +10,11 @@
 | 
			
		||||
 | 
			
		||||
m4_include(lib/common.sh)
 | 
			
		||||
 | 
			
		||||
CHROOT_VERSION='v2'
 | 
			
		||||
 | 
			
		||||
FORCE='n'
 | 
			
		||||
RUN=''
 | 
			
		||||
NOCOPY='n'
 | 
			
		||||
USE_DEVTMPFS='n'
 | 
			
		||||
 | 
			
		||||
working_dir=''
 | 
			
		||||
 | 
			
		||||
@@ -29,13 +30,12 @@ usage() {
 | 
			
		||||
	echo '    -C <file>     Location of a pacman config file'
 | 
			
		||||
	echo '    -M <file>     Location of a makepkg config file'
 | 
			
		||||
	echo '    -n            Do not copy config files into the chroot'
 | 
			
		||||
	echo '    -c <dir>      Set pacman cache. Default: /var/cache/pacman/pkg'
 | 
			
		||||
	echo '    -d            Use devtmpfs instead of minimal /dev (tmpfs)'
 | 
			
		||||
	echo '    -c <dir>      Set pacman cache'
 | 
			
		||||
	echo '    -h            This message'
 | 
			
		||||
	exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
while getopts 'r:ufnhC:M:c:d' arg; do
 | 
			
		||||
while getopts 'r:ufnhC:M:c:' arg; do
 | 
			
		||||
	case "${arg}" in
 | 
			
		||||
		r) RUN="$OPTARG" ;;
 | 
			
		||||
		u) RUN='/bin/sh -c "pacman -Syu --noconfirm && (pacman -Qqu >/dev/null && pacman -Su --noconfirm || exit 0)"' ;;
 | 
			
		||||
@@ -44,7 +44,6 @@ while getopts 'r:ufnhC:M:c:d' arg; do
 | 
			
		||||
		M) makepkg_conf="$OPTARG" ;;
 | 
			
		||||
		n) NOCOPY='y' ;;
 | 
			
		||||
		c) cache_dir="$OPTARG" ;;
 | 
			
		||||
		d) USE_DEVTMPFS="y" ;;
 | 
			
		||||
		h|?) usage 0 ;;
 | 
			
		||||
		*) error "invalid argument '${arg}'"; usage ;;
 | 
			
		||||
	esac
 | 
			
		||||
@@ -68,35 +67,46 @@ shift 1
 | 
			
		||||
[[ -z $working_dir ]] && die 'Please specify a working directory.'
 | 
			
		||||
 | 
			
		||||
if [[ -z $cache_dir ]]; then
 | 
			
		||||
	cache_conf=${working_dir}/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
 | 
			
		||||
	cache_dirs=($(pacman -v $cache_conf 2>&1 | grep '^Cache Dirs:' | sed 's/Cache Dirs:\s*//g'))
 | 
			
		||||
else
 | 
			
		||||
	cache_dirs=(${cache_dir})
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
	host_mirror='http://mirrors.kernel.org/archlinux/$repo/os/$arch'
 | 
			
		||||
fi
 | 
			
		||||
host_mirror=$(pacman -Sddp extra/devtools 2>/dev/null | sed -E 's#(.*/)extra/os/.*#\1$repo/os/$arch#')
 | 
			
		||||
if echo "${host_mirror}" | grep -q 'file://'; then
 | 
			
		||||
	host_mirror_path=$(echo "${host_mirror}" | sed -E 's#file://(/.*)/\$repo/os/\$arch#\1#g')
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# {{{ functions
 | 
			
		||||
bind_mount() {
 | 
			
		||||
	local mode="${2:-rw}"
 | 
			
		||||
	local target="${working_dir}${1}"
 | 
			
		||||
 | 
			
		||||
	if [[ ! -e "$target" ]]; then
 | 
			
		||||
		if [[ -d "$1" ]]; then
 | 
			
		||||
			install -d "$target"
 | 
			
		||||
		else
 | 
			
		||||
			install -D /dev/null "$target"
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	mount -o bind "$1" "$target"
 | 
			
		||||
	mount -o remount,${mode},bind "$target"
 | 
			
		||||
	mount --make-slave "$target"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
chroot_mount() {
 | 
			
		||||
	[[ -e "${working_dir}/sys" ]] || mkdir "${working_dir}/sys"
 | 
			
		||||
	mount -t sysfs sysfs "${working_dir}/sys"
 | 
			
		||||
	trap 'trap_chroot_umount' EXIT INT QUIT TERM HUP
 | 
			
		||||
 | 
			
		||||
	[[ -e "${working_dir}/proc" ]] || mkdir "${working_dir}/proc"
 | 
			
		||||
	mount -t proc proc "${working_dir}/proc"
 | 
			
		||||
	if (( ! have_nspawn )); then
 | 
			
		||||
		bind_mount /sys ro
 | 
			
		||||
 | 
			
		||||
	[[ -e "${working_dir}/dev" ]] || mkdir "${working_dir}/dev"
 | 
			
		||||
	if [[ ${USE_DEVTMPFS} = "y" ]]; then
 | 
			
		||||
		mount -t devtmpfs dev "${working_dir}/dev" -o mode=0755,nosuid
 | 
			
		||||
	else
 | 
			
		||||
		mount -t tmpfs dev "${working_dir}/dev" -o mode=0755,size=10M,nosuid
 | 
			
		||||
		[[ -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
 | 
			
		||||
@@ -106,35 +116,36 @@ chroot_mount() {
 | 
			
		||||
		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 timezone localtime; do
 | 
			
		||||
			bind_mount /etc/$host_config ro
 | 
			
		||||
		done
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	[[ -e "${working_dir}/dev/shm" ]] || mkdir "${working_dir}/dev/shm"
 | 
			
		||||
	mount -t tmpfs shm "${working_dir}/dev/shm" -o nodev,nosuid,size=128M
 | 
			
		||||
	[[ -n $host_mirror_path ]] && bind_mount "$host_mirror_path" ro
 | 
			
		||||
 | 
			
		||||
	[[ -e "${working_dir}/dev/pts" ]] || mkdir "${working_dir}/dev/pts"
 | 
			
		||||
	mount -t devpts devpts "${working_dir}/dev/pts" -o newinstance,ptmxmode=666
 | 
			
		||||
	mount -o bind "${working_dir}/dev/pts/ptmx" "${working_dir}/dev/ptmx"
 | 
			
		||||
 | 
			
		||||
	[[ -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}"
 | 
			
		||||
		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
 | 
			
		||||
 | 
			
		||||
	trap 'chroot_umount' EXIT INT QUIT TERM HUP
 | 
			
		||||
	bind_mount "${cache_dirs[0]}"
 | 
			
		||||
	for cache_dir in ${cache_dirs[@]:1}; do
 | 
			
		||||
		bind_mount "$cache_dir" ro
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
copy_hostconf () {
 | 
			
		||||
	cp /etc/resolv.conf "${working_dir}/etc/resolv.conf"
 | 
			
		||||
	cp -a /etc/pacman.d/gnupg "${working_dir}/etc/pacman.d"
 | 
			
		||||
	echo "Server = ${host_mirror}" > ${working_dir}/etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
	if [[ -n $pac_conf && $NOCOPY = 'n' ]]; then
 | 
			
		||||
@@ -144,17 +155,30 @@ copy_hostconf () {
 | 
			
		||||
	if [[ -n $makepkg_conf && $NOCOPY = 'n' ]]; then
 | 
			
		||||
		cp ${makepkg_conf} ${working_dir}/etc/makepkg.conf
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${cache_dirs[@]})|g" -i ${working_dir}/etc/pacman.conf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
chroot_umount () {
 | 
			
		||||
	umount "${working_dir}/proc"
 | 
			
		||||
	umount "${working_dir}/sys"
 | 
			
		||||
	umount "${working_dir}/dev/ptmx"
 | 
			
		||||
	umount "${working_dir}/dev/pts"
 | 
			
		||||
	umount "${working_dir}/dev/shm"
 | 
			
		||||
	umount "${working_dir}/dev"
 | 
			
		||||
	umount "${working_dir}/${cache_dir}"
 | 
			
		||||
trap_chroot_umount () {
 | 
			
		||||
	trap 'trap_exit' EXIT INT QUIT TERM HUP
 | 
			
		||||
 | 
			
		||||
	for cache_dir in ${cache_dirs[@]}; do
 | 
			
		||||
		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 timezone 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 () {
 | 
			
		||||
@@ -170,21 +194,39 @@ chroot_lock () {
 | 
			
		||||
		stat_done
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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 {{{
 | 
			
		||||
	#Sanity check
 | 
			
		||||
	if [[ ! -f "${working_dir}/.arch-chroot" ]]; then
 | 
			
		||||
		die "'${working_dir}' does not appear to be a Arch chroot."
 | 
			
		||||
	elif [[ $(cat "${working_dir}/.arch-chroot") != ${CHROOT_VERSION} ]]; then
 | 
			
		||||
		die "'${working_dir}' is not compatible with ${APPNAME} version ${CHROOT_VERSION}. Please rebuild."
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	chroot_lock
 | 
			
		||||
	chroot_mount
 | 
			
		||||
	copy_hostconf
 | 
			
		||||
 | 
			
		||||
	eval chroot "${working_dir}" ${RUN}
 | 
			
		||||
	chroot_run "${working_dir}" ${RUN}
 | 
			
		||||
 | 
			
		||||
	# }}}
 | 
			
		||||
else
 | 
			
		||||
@@ -197,40 +239,35 @@ else
 | 
			
		||||
		chmod 0755 "${working_dir}"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	mkdir -p "${working_dir}/var/lib/pacman/sync"
 | 
			
		||||
	mkdir -p "${working_dir}/etc/"
 | 
			
		||||
 | 
			
		||||
	chroot_lock
 | 
			
		||||
	chroot_mount
 | 
			
		||||
 | 
			
		||||
	pacargs="--noconfirm --root=${working_dir} --cachedir=${cache_dir}"
 | 
			
		||||
	pacargs="${cache_dirs[@]/#/--cachedir=}"
 | 
			
		||||
	if [[ -n $pac_conf ]]; then
 | 
			
		||||
		pacargs="$pacargs --config=${pac_conf}"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if (( $# != 0 )); then
 | 
			
		||||
		op='-Sy'
 | 
			
		||||
		if [[ $FORCE = 'y' ]]; then
 | 
			
		||||
			op="${op}f"
 | 
			
		||||
			pacargs="$pacargs --force"
 | 
			
		||||
		fi
 | 
			
		||||
		if ! pacman ${op} ${pacargs} $@; then
 | 
			
		||||
		if ! pacstrap -GMcd "${working_dir}" ${pacargs} $@; then
 | 
			
		||||
			die 'Failed to install all packages'
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [[ -d "${working_dir}/lib/modules" ]]; then
 | 
			
		||||
		ldconfig -r "${working_dir}"
 | 
			
		||||
		chroot_run "${working_dir}" ldconfig
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	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
 | 
			
		||||
		chroot_run "${working_dir}" locale-gen
 | 
			
		||||
	fi
 | 
			
		||||
	echo 'LANG=C' > "${working_dir}/etc/locale.conf"
 | 
			
		||||
 | 
			
		||||
	copy_hostconf
 | 
			
		||||
 | 
			
		||||
	if [[ ! -e "${working_dir}/.arch-chroot" ]]; then
 | 
			
		||||
		date +%s > "${working_dir}/.arch-chroot"
 | 
			
		||||
	fi
 | 
			
		||||
	echo "${CHROOT_VERSION}" > "${working_dir}/.arch-chroot"
 | 
			
		||||
	# }}}
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
@@ -45,9 +45,6 @@ Architecture = auto
 | 
			
		||||
# keyring can then be populated with the keys of all official Arch Linux
 | 
			
		||||
# packagers with `pacman-key --populate archlinux`.
 | 
			
		||||
 | 
			
		||||
# Signature checking does not work within our chroot
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
#   - can be defined here or included from another file
 | 
			
		||||
@@ -72,18 +69,23 @@ SigLevel = Never
 | 
			
		||||
# after the header, and they will be used before the default mirrors.
 | 
			
		||||
 | 
			
		||||
#[testing]
 | 
			
		||||
#SigLevel = PackageRequired
 | 
			
		||||
#Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[core]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
#[community-testing]
 | 
			
		||||
#SigLevel = PackageRequired
 | 
			
		||||
#Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
# An example of a custom package repository.  See the pacman manpage for
 | 
			
		||||
 
 | 
			
		||||
@@ -45,9 +45,6 @@ Architecture = auto
 | 
			
		||||
# keyring can then be populated with the keys of all official Arch Linux
 | 
			
		||||
# packagers with `pacman-key --populate archlinux`.
 | 
			
		||||
 | 
			
		||||
# Signature checking does not work within our chroot
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
#   - can be defined here or included from another file
 | 
			
		||||
@@ -72,21 +69,27 @@ SigLevel = Never
 | 
			
		||||
# after the header, and they will be used before the default mirrors.
 | 
			
		||||
 | 
			
		||||
[gnome-unstable]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[core]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
# An example of a custom package repository.  See the pacman manpage for
 | 
			
		||||
 
 | 
			
		||||
@@ -45,9 +45,6 @@ Architecture = auto
 | 
			
		||||
# keyring can then be populated with the keys of all official Arch Linux
 | 
			
		||||
# packagers with `pacman-key --populate archlinux`.
 | 
			
		||||
 | 
			
		||||
# Signature checking does not work within our chroot
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
#   - can be defined here or included from another file
 | 
			
		||||
@@ -72,21 +69,27 @@ SigLevel = Never
 | 
			
		||||
# after the header, and they will be used before the default mirrors.
 | 
			
		||||
 | 
			
		||||
[kde-unstable]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[core]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
# An example of a custom package repository.  See the pacman manpage for
 | 
			
		||||
 
 | 
			
		||||
@@ -45,9 +45,6 @@ Architecture = auto
 | 
			
		||||
# keyring can then be populated with the keys of all official Arch Linux
 | 
			
		||||
# packagers with `pacman-key --populate archlinux`.
 | 
			
		||||
 | 
			
		||||
# Signature checking does not work within our chroot
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
#   - can be defined here or included from another file
 | 
			
		||||
@@ -72,40 +69,50 @@ SigLevel = Never
 | 
			
		||||
# after the header, and they will be used before the default mirrors.
 | 
			
		||||
 | 
			
		||||
[staging]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[core]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-staging]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
# If you want to run 32 bit applications on your x86_64 system,
 | 
			
		||||
# enable the multilib repository here.
 | 
			
		||||
# enable the multilib repositories as required here.
 | 
			
		||||
[multilib-staging]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[multilib-testing]
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[multilib]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -45,9 +45,6 @@ Architecture = auto
 | 
			
		||||
# keyring can then be populated with the keys of all official Arch Linux
 | 
			
		||||
# packagers with `pacman-key --populate archlinux`.
 | 
			
		||||
 | 
			
		||||
# Signature checking does not work within our chroot
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
#   - can be defined here or included from another file
 | 
			
		||||
@@ -72,31 +69,38 @@ SigLevel = Never
 | 
			
		||||
# after the header, and they will be used before the default mirrors.
 | 
			
		||||
 | 
			
		||||
[testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[core]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
# If you want to run 32 bit applications on your x86_64 system,
 | 
			
		||||
# enable the multilib repository here.
 | 
			
		||||
# enable the multilib repositories as required here.
 | 
			
		||||
[multilib-testing]
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[multilib]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -45,9 +45,6 @@ Architecture = auto
 | 
			
		||||
# keyring can then be populated with the keys of all official Arch Linux
 | 
			
		||||
# packagers with `pacman-key --populate archlinux`.
 | 
			
		||||
 | 
			
		||||
# Signature checking does not work within our chroot
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
#   - can be defined here or included from another file
 | 
			
		||||
@@ -72,28 +69,39 @@ SigLevel = Never
 | 
			
		||||
# after the header, and they will be used before the default mirrors.
 | 
			
		||||
 | 
			
		||||
#[testing]
 | 
			
		||||
#SigLevel = PackageRequired
 | 
			
		||||
#Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[core]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
#[community-testing]
 | 
			
		||||
#SigLevel = PackageRequired
 | 
			
		||||
#Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
# If you want to run 32 bit applications on your x86_64 system,
 | 
			
		||||
# enable the multilib repository here.
 | 
			
		||||
# enable the multilib repositories as required here.
 | 
			
		||||
 | 
			
		||||
#[multilib-testing]
 | 
			
		||||
#SigLevel = PackageRequired
 | 
			
		||||
#Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[multilib]
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -45,9 +45,6 @@ Architecture = auto
 | 
			
		||||
# keyring can then be populated with the keys of all official Arch Linux
 | 
			
		||||
# packagers with `pacman-key --populate archlinux`.
 | 
			
		||||
 | 
			
		||||
# Signature checking does not work within our chroot
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
#   - can be defined here or included from another file
 | 
			
		||||
@@ -72,29 +69,36 @@ SigLevel = Never
 | 
			
		||||
# after the header, and they will be used before the default mirrors.
 | 
			
		||||
 | 
			
		||||
[staging]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[core]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-staging]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
#SigLevel = Optional TrustAll
 | 
			
		||||
[community]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -45,9 +45,6 @@ Architecture = auto
 | 
			
		||||
# keyring can then be populated with the keys of all official Arch Linux
 | 
			
		||||
# packagers with `pacman-key --populate archlinux`.
 | 
			
		||||
 | 
			
		||||
# Signature checking does not work within our chroot
 | 
			
		||||
SigLevel = Never
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# REPOSITORIES
 | 
			
		||||
#   - can be defined here or included from another file
 | 
			
		||||
@@ -72,18 +69,23 @@ SigLevel = Never
 | 
			
		||||
# after the header, and they will be used before the default mirrors.
 | 
			
		||||
 | 
			
		||||
[testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[core]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community-testing]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
[community]
 | 
			
		||||
SigLevel = PackageRequired
 | 
			
		||||
Include = /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
# An example of a custom package repository.  See the pacman manpage for
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user