Compare commits

..

28 Commits

Author SHA1 Message Date
Pierre Schmitz
6cf9332896 prepare release 2011-10-14 10:06:33 +02:00
Pierre Schmitz
f10d88e029 Call locale-gen with full path in chroot environment
Thanks to Peter Schuller for this hint
2011-10-14 09:55:28 +02:00
Pierre Schmitz
5c6c2d532e makechrootpkg: Avoid running namcap on non-package file like signatures
We only use .xz or .gz compression for pacakges so we can be more specific and avoid a match of e.g. *.pkg.tar.xz.sig etc.
2011-10-14 09:35:39 +02:00
Pierre Schmitz
b06b9f6010 Merge remote-tracking branch 'cryptocrack/for-pierre' 2011-10-14 09:33:07 +02:00
Pierre Schmitz
9715ddbe9d Apply pacman 4.0 changes to our copies of makepkg.conf and pacman.conf
Note: Signature checks are disabled for now until we provide a keyring package.
2011-10-14 09:09:46 +02:00
Lukas Fleischer
a0c6bf4556 Honor TMPDIR environment variable
Replace all mktemp(1) invocations that hardcode "/tmp" with `mktemp
--tmpdir` and change templates accordingly.

Note that "--tmpdir" is GNU-ish which is okay given that we currently
support Arch Linux only anyway.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-13 11:10:09 +02:00
Lukas Fleischer
dcb80e7b5c finddeps: Unset optdepends
The optdepends array should be unset before sourcing the PKGBUILD to avoid
dangling optional depends.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-13 08:23:36 +02:00
Lukas Fleischer
84b789f760 finddeps: Use read builtin to iterate over packages
Using parameter substitution might result in unpredictable behaviour
when directories contain whitespaces here. The read shell builtin is the
proper way to read single lines.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-13 08:23:35 +02:00
Lukas Fleischer
8edb443c12 finddeps: Remove redundant cd(1)
Source the PKGBUILD using the correct path (relative to our base
directory) instead of using cd(1) to switch to the ABS base directory
first and to the package directory afterwards.

This is very useful when trying to track errors, also:

    $ ~/src/devtools/finddeps libdaq
    ./community/snort (depends)
    PKGBUILD: line 17: ruby: command not found
    PKGBUILD: line 19: [: =: unary operator expected

Versus:

    $ ~/src/devtools/finddeps libdaq
    ./community/snort (depends)
    ./community/ruby-pkgconfig/PKGBUILD: line 17: ruby: command not found
    ./community/lmms/PKGBUILD: line 19: [: =: unary operator expected

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-13 08:23:34 +02:00
Lukas Fleischer
4800be25c2 finddeps: Proper quoting, use double brackets
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-13 08:23:33 +02:00
Lukas Fleischer
fe2040cd14 archrelease: Fix SVN error when repository is empty
If trash is empty, `svn rm -q "${trash[@]}"` fails with:

    svn: Try 'svn help' for more info and then
    svn: Not enough arguments provided

This doesn't result in any further malfunction but is kind of confusing
and unexpected. Skipping `svn rm` on an empty trash fixes this.

Reported-by: Alexander Rødseth <rodseth@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-12 16:53:08 +02:00
Allan McRae
a991c9a71f Always log builds in makechrootpkg
It is very helpful to always log the build output in makechrootpkg
so pass "-L" as a standard option to makepkg.

Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:04 +02:00
Dan McGee
022cd3d523 archrelease: call 'svn copy' once for all files
We don't need to invoke svn copy on each file; it accepts multiple
arguments. This cut Allan's time releasing one patch-friendly package
from 5 minutes to 2 minutes.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:04 +02:00
Jan Alexander Steffens (heftig)
a790c39c7d makechrootpkg: If chroot is missing, exit instead of usage
I'm not sure why this was handled differently than the other
error conditions.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:04 +02:00
Jan Alexander Steffens (heftig)
e66a1f3cd8 makechrootpkg: Add option to explicitly run namcap
Installs namcap if needed, *after* building the package,
contrary to the former way of having to have namcap installed,
e.g. via makedepends.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:03 +02:00
Jan Alexander Steffens (heftig)
7a9f808a0f makechrootpkg: Source PKGBUILD only once
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:03 +02:00
Jan Alexander Steffens (heftig)
b9070bf0b8 makechrootpkg: Use nullglob
Use nullglob instead of checking for existence. If the glob doesn't
match any files, it will be removed instead of staying unexpanded.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:03 +02:00
Jan Alexander Steffens (heftig)
1df6799747 makechrootpkg: Always set PKGDEST and SRCDEST
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:03 +02:00
Jan Alexander Steffens (heftig)
e41deee5e5 makechrootpkg: Replace $workdir with . ($PWD)
$workdir is never used when we change directory, so it's superfluous.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:03 +02:00
Jan Alexander Steffens (heftig)
004ced2a33 makechrootpkg: Eliminate appname, only used once
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:03 +02:00
Jan Alexander Steffens (heftig)
733668f4cc makechrootpkg: Bashify syntax
No functional change. Eliminates unused variables RUN and FORCE.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:03 +02:00
Lukas Fleischer
21daec135a Makefile: Add a cleanup target
Allows for using `make clean` to remove any output files generated by
make(1).

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:02 +02:00
Lukas Fleischer
46c4def073 Support non-standard install locations
This build system overhaul allows for adding (define-style) macros to
our scripts. All source files are now suffixed with ".in" to clarify
that they might contain unprocessed defines. The Makefile provides a new
rule to preprocess source files and generate proper output scripts.

Also, add a "@pkgdatadir@" define (as used in GNU Autotools) and use it
instead of hardcoded paths to "/usr/share/devtools" everywhere. We
missed this when adding PREFIX support to the build system in commit
35fc83ce7d.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-07 21:53:02 +02:00
Lukas Fleischer
142b032212 zsh_completion: Fix package completion
Make use of _devtools_completions_all_packages() instead of using
_devtools_completions_installed_packages(). The latter was removed
during an earlier review of the patch adding ZSH completion (now
6350ec04 in master) but we forgot to change two references.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-29 13:59:55 +02:00
Lukas Fleischer
5f8458f197 commitpkg: Avoid unnecessary use of basename(1)
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-29 13:58:50 +02:00
Lukas Fleischer
50c311c261 archbuild: Avoid unnecessary use of basename(1)
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-29 13:58:49 +02:00
Lukas Fleischer
ef10f6c799 archbuild: Proper quoting, use double brackets
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-29 13:58:49 +02:00
Lukas Fleischer
d70918d18a archbuild: Use array for base packages
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-29 13:58:49 +02:00
23 changed files with 359 additions and 259 deletions

13
.gitignore vendored
View File

@@ -1,2 +1,15 @@
*~
devtools-*.tar.gz
archbuild
archco
archrelease
archrm
bash_completion
checkpkg
commitpkg
finddeps
lddd
makechrootpkg
mkarchroot
rebuildpkgs
zsh_completion

View File

@@ -1,4 +1,4 @@
V=0.9.27
V=0.9.28
PREFIX = /usr/local
@@ -47,7 +47,16 @@ ARCHBUILD_LINKS = \
multilib-build \
multilib-testing-build
all:
all: $(BINPROGS) $(SBINPROGS) bash_completion zsh_completion
%: %.in
@echo "GEN $@"
@sed -e "s|@pkgdatadir[@]|$(DESTDIR)$(PREFIX)/share/devtools|g" "$<" >"$@"
@chmod a-w "$@"
@chmod +x "$@"
clean:
rm -f $(BINPROGS) $(SBINPROGS) bash_completion zsh_completion
install:
install -dm0755 $(DESTDIR)$(PREFIX)/bin
@@ -78,4 +87,4 @@ dist:
upload:
scp devtools-$(V).tar.gz gerolde.archlinux.org:/srv/ftp/other/devtools/
.PHONY: all install uninstall dist upload
.PHONY: all clean install uninstall dist upload

View File

@@ -1,67 +0,0 @@
#!/bin/bash
base_packages='base base-devel sudo'
cmd="$(basename "${0%-build}")"
if [ "${cmd%-*}" == 'multilib' ]; then
repo="${cmd}"
arch='x86_64'
base_packages+=' multilib-devel'
else
repo=${cmd%-*}
arch=${cmd##*-}
fi
chroots='/var/tmp/archbuild'
clean_first=false
usage() {
echo "usage $(basename "$0")"
echo ' -c Recreate the chroot before building'
echo ' -r <dir> Create chroots in this directory'
exit 1
}
while getopts 'cr:' arg; do
case "${arg}" in
c) clean_first=true ;;
r) chroots="$OPTARG" ;;
*) usage ;;
esac
done
if [ "$EUID" != '0' ]; then
echo 'This script must be run as root.'
exit 1
fi
if ${clean_first} || [ ! -d "${chroots}/${repo}-${arch}" ]; then
echo "Creating chroot for [${repo}] (${arch})..."
for copy in ${chroots}/${repo}-${arch}/*; do
[[ -d $copy ]] || continue
echo "Deleting chroot copy '$(basename "${copy}")'..."
# Lock the copy
exec 9>${copy}.lock
flock 9
{ type -P btrfs && btrfs subvolume delete ${copy}; } &>/dev/null
rm -rf ${copy}
done
exec 9>&-
rm -rf ${chroots}/${repo}-${arch}
mkdir -p ${chroots}/${repo}-${arch}
setarch ${arch} mkarchroot \
-C /usr/share/devtools/pacman-${repo}.conf \
-M /usr/share/devtools/makepkg-${arch}.conf \
${chroots}/${repo}-${arch}/root \
${base_packages}
else
setarch ${arch} mkarchroot \
-u \
${chroots}/${repo}-${arch}/root
fi
echo "Building in chroot for [${repo}] (${arch})..."
setarch ${arch} makechrootpkg -c -r ${chroots}/${repo}-${arch}

68
archbuild.in Normal file
View File

@@ -0,0 +1,68 @@
#!/bin/bash
base_packages=(base base-devel sudo)
cmd="${0##*/}"
if [[ "${cmd%%-*}" == 'multilib' ]]; then
repo="${cmd%-build}"
arch='x86_64'
base_packages+=(multilib-devel)
else
tag="${cmd%-build}"
repo=${tag%-*}
arch=${tag##*-}
fi
chroots='/var/tmp/archbuild'
clean_first=false
usage() {
echo "usage $cmd"
echo ' -c Recreate the chroot before building'
echo ' -r <dir> Create chroots in this directory'
exit 1
}
while getopts 'cr:' arg; do
case "${arg}" in
c) clean_first=true ;;
r) chroots="$OPTARG" ;;
*) usage ;;
esac
done
if [[ "$EUID" != '0' ]]; then
echo 'This script must be run as root.'
exit 1
fi
if ${clean_first} || [[ ! -d "${chroots}/${repo}-${arch}" ]]; then
echo "Creating chroot for [${repo}] (${arch})..."
for copy in "${chroots}/${repo}-${arch}"/*; do
[[ -d $copy ]] || continue
echo "Deleting chroot copy '$(basename "${copy}")'..."
# Lock the copy
exec 9>"${copy}.lock"
flock 9
{ type -P btrfs && btrfs subvolume delete "${copy}"; } &>/dev/null
rm -rf "${copy}"
done
exec 9>&-
rm -rf "${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[@]}"
else
setarch ${arch} mkarchroot \
-u \
"${chroots}/${repo}-${arch}/root"
fi
echo "Building in chroot for [${repo}] (${arch})..."
setarch "${arch}" makechrootpkg -c -r "${chroots}/${repo}-${arch}"

0
archco → archco.in Executable file → Normal file
View File

7
archrelease → archrelease.in Executable file → Normal file
View File

@@ -46,15 +46,14 @@ for tag in "$@"; do
while read -r file; do
trash+=("repos/$tag/$file")
done < <(svn ls "repos/$tag")
svn rm -q "${trash[@]}"
[[ $trash ]] && svn rm -q "${trash[@]}"
else
mkdir -p "repos/$tag"
svn add --parents -q "repos/$tag"
fi
for file in "${known_files[@]}"; do
svn copy -q -r HEAD "$trunk/$file" "repos/$tag/"
done
# copy all files at once from trunk to the subdirectory in repos/
svn copy -q -r HEAD ${known_files[@]/#/$trunk/} "repos/$tag/"
echo 'done'
done

0
archrm → archrm.in Executable file → Normal file
View File

2
checkpkg → checkpkg.in Executable file → Normal file
View File

@@ -24,7 +24,7 @@ if [[ $arch == 'any' ]]; then
fi
STARTDIR=$(pwd)
TEMPDIR=$(mktemp -d /tmp/checkpkg-script.XXXX)
TEMPDIR=$(mktemp -d --tmpdir checkpkg-script.XXXX)
cd "$TEMPDIR"
for _pkgname in "${pkgname[@]}"; do

2
commitpkg → commitpkg.in Executable file → Normal file
View File

@@ -42,7 +42,7 @@ if [ -r ~/.makepkg.conf ]; then
. ~/.makepkg.conf
fi
cmd=$(basename "$0")
cmd=${0##*/}
if [ ! -f PKGBUILD ]; then
abort 'No PKGBUILD file'

29
finddeps → finddeps.in Executable file → Normal file
View File

@@ -3,7 +3,9 @@
# finddeps - find packages that depend on a given depname
#
if [ "$1" = '' ]; then
match=$1
if [[ -z $match ]]; then
echo 'usage: finddeps <depname>'
echo ''
echo 'Find packages that depend on a given depname.'
@@ -12,35 +14,24 @@ if [ "$1" = '' ]; then
exit 0
fi
match=$1
tld=$(pwd)
for d in $(find . -type d); do
cd $d
if [ -f PKGBUILD ]; then
unset pkgname depends makedepends
. PKGBUILD
find . -type d | while read d; do
if [[ -f "$d/PKGBUILD" ]]; then
unset pkgname depends makedepends optdepends
. "$d/PKGBUILD"
for dep in "${depends[@]}"; do
# lose the version comparator, if any
depname=${dep%%[<>=]*}
if [ "$depname" = "$match" ]; then
echo "$d (depends)"
fi
[[ $depname = $match ]] && echo "$d (depends)"
done
for dep in "${makedepends[@]}"; do
# lose the version comparator, if any
depname=${dep%%[<>=]*}
if [ "$depname" = "$match" ]; then
echo "$d (makedepends)"
fi
[[ $depname = $match ]] && echo "$d (makedepends)"
done
for dep in "${optdepends[@]/:*}"; do
# lose the version comaparator, if any
depname=${dep%%[<>=]*}
if [ "$depname" = "$match" ]; then
echo "$d (optdepends)"
fi
[[ $depname = $match ]] && echo "$d (optdepends)"
done
fi
cd $tld
done

2
lddd → lddd.in Executable file → Normal file
View File

@@ -9,7 +9,7 @@ IFS="${IFS}:"
libdirs="/lib /usr/lib /usr/local/lib $(cat /etc/ld.so.conf.d/*)"
extras=
TEMPDIR=$(mktemp -d /tmp/lddd-script.XXXX)
TEMPDIR=$(mktemp -d --tmpdir lddd-script.XXXX)
echo 'Go out and drink some tea, this will take a while :) ...'
# Check ELF binaries in the PATH and specified dir trees.

242
makechrootpkg → makechrootpkg.in Executable file → Normal file
View File

@@ -8,27 +8,23 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
FORCE='n'
RUN=''
MAKEPKG_ARGS='-s --noconfirm'
REPACK=''
WORKDIR=$PWD
shopt -s nullglob
update_first='0'
clean_first='0'
install_pkg=''
add_to_db=0
chrootdir=''
APPNAME=$(basename "${0}")
makepkg_args='-s --noconfirm -L'
repack=false
update_first=false
clean_first=false
install_pkg=
add_to_db=false
run_namcap=false
chrootdir=
default_copy=$USER
[[ -n $SUDO_USER ]] && default_copy=$SUDO_USER
[[ -z $default_copy || $default_copy = root ]] && default_copy=copy
usage() {
echo "usage ${APPNAME} [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.'
@@ -41,7 +37,7 @@ usage() {
echo 'command:'
echo ' mkarchroot <chrootdir>/root base base-devel sudo'
echo ''
echo "Default makepkg args: $MAKEPKG_ARGS"
echo "Default makepkg args: $makepkg_args"
echo ''
echo 'Flags:'
echo '-h This help'
@@ -54,27 +50,29 @@ 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"
exit 1
}
while getopts 'hcudr:I:l:' arg; do
case "${arg}" in
while getopts 'hcudr:I:l:n' arg; do
case "$arg" in
h) usage ;;
c) clean_first=1 ;;
u) update_first=1 ;;
d) add_to_db=1 ;;
c) clean_first=true ;;
u) update_first=true ;;
d) add_to_db=true ;;
r) chrootdir="$OPTARG" ;;
I) install_pkg="$OPTARG" ;;
l) copy="$OPTARG" ;;
*) MAKEPKG_ARGS="$MAKEPKG_ARGS -$arg $OPTARG" ;;
n) run_namcap=true ;;
*) makepkg_args="$makepkg_args -$arg $OPTARG" ;;
esac
done
# Canonicalize chrootdir, getting rid of trailing /
chrootdir=$(readlink -e "$chrootdir")
if [[ ${copy:0:1} = "/" ]]; then
if [[ ${copy:0:1} = / ]]; then
copydir=$copy
else
[[ -z $copy ]] && copy=$default_copy
@@ -82,35 +80,35 @@ else
fi
# Pass all arguments after -- right to makepkg
MAKEPKG_ARGS="$MAKEPKG_ARGS ${*:$OPTIND}"
makepkg_args="$makepkg_args ${*:$OPTIND}"
# See if -R was passed to makepkg
for arg in ${*:$OPTIND}; do
if [ "$arg" = '-R' ]; then
REPACK=1
break;
if [[ $arg = -R ]]; then
repack=1
break
fi
done
if [ "$EUID" != '0' ]; then
if (( EUID )); then
echo 'This script must be run as root.'
exit 1
fi
if [ ! -f PKGBUILD -a -z "$install_pkg" ]; then
if [[ ! -f PKGBUILD && -z $install_pkg ]]; then
echo 'This must be run in a directory containing a PKGBUILD.'
exit 1
fi
if [ ! -d "$chrootdir" ]; then
if [[ ! -d $chrootdir ]]; then
echo "No chroot dir defined, or invalid path '$chrootdir'"
exit 1
fi
if [ ! -d "$chrootdir/root" ]; then
if [[ ! -d $chrootdir/root ]]; then
echo 'Missing chroot dir root directory.'
echo "Try using: mkarchroot $chrootdir/root base base-devel sudo"
usage
exit 1
fi
umask 0022
@@ -124,7 +122,7 @@ if ! flock -n 9; then
echo "done"
fi
if [ ! -d "$copydir" -o "$clean_first" -eq "1" ]; then
if [[ ! -d $copydir ]] || $clean_first; then
# Get a read lock on the root chroot to make
# sure we don't clone a half-updated chroot
exec 8>"$chrootdir/root.lock"
@@ -138,8 +136,9 @@ if [ ! -d "$copydir" -o "$clean_first" -eq "1" ]; then
echo -n 'creating clean working copy...'
use_rsync=false
if type -P btrfs >/dev/null; then
[ -d $copydir ] && btrfs subvolume delete "$copydir" &>/dev/null
btrfs subvolume snapshot "$chrootdir/root" "$copydir" &>/dev/null || use_rsync=true
[[ -d $copydir ]] && btrfs subvolume delete "$copydir" &>/dev/null
btrfs subvolume snapshot "$chrootdir/root" "$copydir" &>/dev/null ||
use_rsync=true
else
use_rsync=true
fi
@@ -154,152 +153,151 @@ if [ ! -d "$copydir" -o "$clean_first" -eq "1" ]; then
exec 8>&-
fi
if [ -n "$install_pkg" ]; then
pkgname="$(basename "$install_pkg")"
if [[ -n $install_pkg ]]; then
pkgname="${install_pkg##*/}"
cp "$install_pkg" "$copydir/$pkgname"
mkarchroot -r "pacman -U /$pkgname --noconfirm" "$copydir"
ret=$?
rm "$copydir/$pkgname"
# Exit early, we've done all we need to
exit $ret
fi
if [ $update_first -eq 1 ]; then
mkarchroot -u "$copydir"
fi
$update_first && mkarchroot -u "$copydir"
[ -d "$copydir/build" ] || mkdir "$copydir/build"
mkdir -p "$copydir/build"
if [ "$REPACK" != "1" ]; then
# Remove anything in there UNLESS -R (repack) was passed to makepkg
rm -rf "$copydir/build/"*
fi
# Remove anything in there UNLESS -R (repack) was passed to makepkg
$repack || rm -rf "$copydir"/build/*
# Read .makepkg.conf even if called via sudo
if [ -n "${SUDO_USER}" ]; then
makepkg_conf="/$(eval echo ~${SUDO_USER})/.makepkg.conf"
if [[ -n $SUDO_USER ]]; then
makepkg_conf="$(eval echo ~$SUDO_USER)/.makepkg.conf"
else
makepkg_conf="~/.makepkg.conf"
makepkg_conf="$HOME/.makepkg.conf"
fi
# Get SRC/PKGDEST from makepkg.conf
if [ -f "${makepkg_conf}" ]; then
eval $(grep '^SRCDEST=' "${makepkg_conf}")
eval $(grep '^PKGDEST=' "${makepkg_conf}")
eval $(grep '^MAKEFLAGS=' "${makepkg_conf}")
eval $(grep '^PACKAGER=' "${makepkg_conf}")
if [[ -f $makepkg_conf ]]; then
eval $(grep '^SRCDEST=' "$makepkg_conf")
eval $(grep '^PKGDEST=' "$makepkg_conf")
eval $(grep '^MAKEFLAGS=' "$makepkg_conf")
eval $(grep '^PACKAGER=' "$makepkg_conf")
fi
[ -z "${SRCDEST}" ] && eval $(grep '^SRCDEST=' /etc/makepkg.conf)
[ -z "${PKGDEST}" ] && eval $(grep '^PKGDEST=' /etc/makepkg.conf)
[ -d "$copydir/pkgdest" ] || mkdir "$copydir/pkgdest"
if ! grep 'PKGDEST="/pkgdest"' "$copydir/etc/makepkg.conf" >/dev/null 2>&1; then
[[ -z $SRCDEST ]] && eval $(grep '^SRCDEST=' /etc/makepkg.conf)
[[ -z $PKGDEST ]] && eval $(grep '^PKGDEST=' /etc/makepkg.conf)
[[ -z $MAKEFLAGS ]] && eval $(grep '^MAKEFLAGS=' /etc/makepkg.conf)
[[ -z $PACKAGER ]] && eval $(grep '^PACKAGER=' /etc/makepkg.conf)
# Use PKGBUILD directory if PKGDEST or SRCDEST don't exist
[[ -d $PKGDEST ]] || PKGDEST=.
[[ -d $SRCDEST ]] || SRCDEST=.
mkdir -p "$copydir/pkgdest"
if ! grep -q 'PKGDEST="/pkgdest"' "$copydir/etc/makepkg.conf"; then
echo 'PKGDEST="/pkgdest"' >> "$copydir/etc/makepkg.conf"
fi
[ -d "$copydir/srcdest" ] || mkdir "$copydir/srcdest"
if ! grep 'SRCDEST="/srcdest"' "$copydir/etc/makepkg.conf" >/dev/null 2>&1; then
mkdir -p "$copydir/srcdest"
if ! grep -q 'SRCDEST="/srcdest"' "$copydir/etc/makepkg.conf"; then
echo 'SRCDEST="/srcdest"' >> "$copydir/etc/makepkg.conf"
fi
[ -z "${MAKEFLAGS}" ] && eval $(grep '^MAKEFLAGS=' /etc/makepkg.conf)
if [ -n "${MAKEFLAGS}" ]; then
sed -i '/^MAKEFLAGS=/d' "$copydir/etc/makepkg.conf"
echo "MAKEFLAGS='${MAKEFLAGS}'" >> "$copydir/etc/makepkg.conf"
if [[ -n $MAKEFLAGS ]]; then
sed -i '/^MAKEFLAGS=/d' "$copydir/etc/makepkg.conf"
echo "MAKEFLAGS='${MAKEFLAGS}'" >> "$copydir/etc/makepkg.conf"
fi
[ -z "${PACKAGER}" ] && eval $(grep '^PACKAGER=' /etc/makepkg.conf)
if [ -n "${PACKAGER}" ]; then
sed -i '/^PACKAGER=/d' "$copydir/etc/makepkg.conf"
echo "PACKAGER='${PACKAGER}'" >> "$copydir/etc/makepkg.conf"
if [[ -n $PACKAGER ]]; then
sed -i '/^PACKAGER=/d' "$copydir/etc/makepkg.conf"
echo "PACKAGER='${PACKAGER}'" >> "$copydir/etc/makepkg.conf"
fi
# Set target CARCH as it might be used within the PKGBUILD to select correct sources
eval $(grep '^CARCH=' "$copydir/etc/makepkg.conf")
export CARCH
# Copy PKGBUILD and sources
source=($(. PKGBUILD; echo ${source[@]}))
cp PKGBUILD "$copydir/build/"
for f in ${source[@]}; do
basef=$(echo $f | sed 's|::.*||' | sed 's|^.*://.*/||g')
if [ -f "$basef" ]; then
cp "$basef" "$copydir/srcdest/"
elif [ -f "$SRCDEST/$basef" ]; then
cp "$SRCDEST/$basef" "$copydir/srcdest/"
fi
done
( . PKGBUILD
for i in 'changelog' 'install'; do
filelist=$(sed -n "s/^[[:space:]]*$i=//p" PKGBUILD)
for file in $filelist; do
# evaluate any bash variables used
eval file=${file}
if [[ -f "$file" ]]; then
cp "$file" "$copydir/build/"
# Copy PKGBUILD and sources
cp PKGBUILD "$copydir/build/"
(
source PKGBUILD
for file in "${source[@]}"; do
file="${file%%::*}"
file="${file##*://*/}"
if [[ -f $file ]]; then
cp "$file" "$copydir/srcdest/"
elif [[ -f $SRCDEST/$file ]]; then
cp "$SRCDEST/$file" "$copydir/srcdest/"
fi
done
done
# Find all changelog and install files, even inside functions
for i in changelog install; do
sed -n "s/^[[:space:]]*$i=//p" PKGBUILD | while IFS= read -r file; do
# evaluate any bash variables used
eval file="$file"
[[ -f $file ]] && cp "$file" "$copydir/build/"
done
done
)
chown -R nobody "$copydir/build"
chown -R nobody "$copydir/srcdest"
chown -R nobody "$copydir/pkgdest"
chown -R nobody "$copydir"/{build,pkgdest,srcdest}
echo 'nobody ALL = NOPASSWD: /usr/bin/pacman' > "$copydir/etc/sudoers.d/nobody-pacman"
chmod 440 "$copydir/etc/sudoers.d/nobody-pacman"
#This is a little gross, but this way the script is recreated every time in the
#working copy
(cat <<EOF
# This is a little gross, but this way the script is recreated every time in the
# working copy
cat >"$copydir/chrootbuild" <<EOF
#!/bin/bash
export LANG=C
cd /build
export HOME=/build
sudo -u nobody makepkg $MAKEPKG_ARGS || touch BUILD_FAILED
[ -f BUILD_FAILED ] && exit 1
which namcap &>/dev/null && namcap /build/PKGBUILD /pkgdest/*.pkg.tar.* > /build/namcap.log
cd /build
sudo -u nobody makepkg $makepkg_args || touch BUILD_FAILED
[[ -f BUILD_FAILED ]] && exit 1
if $run_namcap; then
pacman -S --needed --noconfirm namcap
namcap /build/PKGBUILD /pkgdest/*.pkg.tar.?z > /build/namcap.log
fi
exit 0
EOF
) > "$copydir/chrootbuild"
chmod +x "$copydir/chrootbuild"
if mkarchroot -r "/chrootbuild" "$copydir"; then
for pkgfile in "${copydir}"/pkgdest/*.pkg.tar.*; do
[ -e "$pkgfile" ] || continue
if [ "$add_to_db" -eq "1" ]; then
mkdir -p "${copydir}/repo"
pushd "${copydir}/repo" >/dev/null
for pkgfile in "$copydir"/pkgdest/*.pkg.tar.*; do
if $add_to_db; then
mkdir -p "$copydir/repo"
pushd "$copydir/repo" >/dev/null
cp "$pkgfile" .
repo-add repo.db.tar.gz "$(basename "$pkgfile")"
repo-add repo.db.tar.gz "${pkgfile##*/}"
popd >/dev/null
fi
if [ -d "$PKGDEST" ]; then
mv "$pkgfile" "${PKGDEST}"
else
mv "$pkgfile" "${WORKDIR}"
fi
mv "$pkgfile" "$PKGDEST"
done
for l in "${copydir}"/build/{namcap,*-{build,check,package,package_*}}.log; do
[ -f "$l" ] && mv "$l" "${WORKDIR}"
for l in "$copydir"/build/{namcap,*-{build,check,package,package_*}}.log; do
[[ -f $l ]] && mv "$l" .
done
else
#just in case. We returned 1, make sure we fail
touch "${copydir}/build/BUILD_FAILED"
# Just in case. We returned 1, make sure we fail
touch "$copydir/build/BUILD_FAILED"
fi
for f in "${copydir}"/srcdest/*; do
[ -e "$f" ] || continue
if [ -d "$SRCDEST" ]; then
mv "$f" "${SRCDEST}"
else
mv "$f" "${WORKDIR}"
fi
for f in "$copydir"/srcdest/*; do
mv "$f" "$SRCDEST"
done
if [ -e "${copydir}/build/BUILD_FAILED" ]; then
if [[ -e $copydir/build/BUILD_FAILED ]]; then
echo "Build failed, check $copydir/build"
rm "${copydir}/build/BUILD_FAILED"
rm "$copydir/build/BUILD_FAILED"
exit 1
fi

View File

@@ -8,16 +8,16 @@
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
'http::/usr/bin/wget -c -t 3 --waitretry=3 -O %o %u'
'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u'
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync -z %u %o'
'scp::/usr/bin/scp -C %u %o')
# Other common tools:
# /usr/bin/snarf
# /usr/bin/lftpget -c
# /usr/bin/curl
# /usr/bin/wget
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
@@ -26,7 +26,7 @@ DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
CARCH="i686"
CHOST="i686-pc-linux-gnu"
#-- Exclusive: will only run on i686
#-- Compiler and Linker Flags
# -march (or -mcpu) builds exclusively for an architecture
# -mtune optimizes for an architecture, but builds for whole processor family
CFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
@@ -39,7 +39,7 @@ LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu"
# BUILD ENVIRONMENT
#########################################################################
#
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check)
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- fakeroot: Allow building packages as a non-root user
@@ -47,19 +47,23 @@ LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu"
#-- color: Colorize output messages
#-- ccache: Use ccache to cache compilation
#-- check: Run the check() function if present in the PKGBUILD
#-- sign: Generate PGP signature file
#
BUILDENV=(fakeroot !distcc color !ccache check)
BUILDENV=(fakeroot !distcc color !ccache check !sign)
#
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
#-- specify a space-delimited list of hosts running in the DistCC cluster.
#DISTCC_HOSTS=""
#
#-- Specify a directory for package building.
#BUILDDIR=/tmp/makepkg
#########################################################################
# GLOBAL PACKAGE OPTIONS
# These are default values for the options=() settings
#########################################################################
#
# Default: OPTIONS=(strip docs libtool emptydirs zipman purge)
# Default: OPTIONS=(strip docs libtool emptydirs zipman purge !upx)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
@@ -68,8 +72,9 @@ BUILDENV=(fakeroot !distcc color !ccache check)
#-- emptydirs: Leave empty directories in packages
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
#-- upx: Compress binary executable files using UPX
#
OPTIONS=(strip docs libtool emptydirs zipman purge)
OPTIONS=(strip docs libtool emptydirs zipman purge !upx)
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
INTEGRITY_CHECK=(md5)
@@ -100,6 +105,8 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#SRCPKGDEST=/home/srcpackages
#-- Packager: name/email of the person or organization building packages
#PACKAGER="John Doe <john@doe.com>"
#-- Specify a key to use for package signing
#GPGKEY=""
#########################################################################
# EXTENSION DEFAULTS

View File

@@ -8,16 +8,16 @@
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
'http::/usr/bin/wget -c -t 3 --waitretry=3 -O %o %u'
'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u'
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync -z %u %o'
'scp::/usr/bin/scp -C %u %o')
# Other common tools:
# /usr/bin/snarf
# /usr/bin/lftpget -c
# /usr/bin/curl
# /usr/bin/wget
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
@@ -26,7 +26,7 @@ DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
CARCH="x86_64"
CHOST="x86_64-unknown-linux-gnu"
#-- Exclusive: will only run on x86_64
#-- Compiler and Linker Flags
# -march (or -mcpu) builds exclusively for an architecture
# -mtune optimizes for an architecture, but builds for whole processor family
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
@@ -39,7 +39,7 @@ LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu"
# BUILD ENVIRONMENT
#########################################################################
#
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check)
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- fakeroot: Allow building packages as a non-root user
@@ -47,19 +47,23 @@ LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu"
#-- color: Colorize output messages
#-- ccache: Use ccache to cache compilation
#-- check: Run the check() function if present in the PKGBUILD
#-- sign: Generate PGP signature file
#
BUILDENV=(fakeroot !distcc color !ccache check)
BUILDENV=(fakeroot !distcc color !ccache check !sign)
#
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
#-- specify a space-delimited list of hosts running in the DistCC cluster.
#DISTCC_HOSTS=""
#
#-- Specify a directory for package building.
#BUILDDIR=/tmp/makepkg
#########################################################################
# GLOBAL PACKAGE OPTIONS
# These are default values for the options=() settings
#########################################################################
#
# Default: OPTIONS=(strip docs libtool emptydirs zipman purge)
# Default: OPTIONS=(strip docs libtool emptydirs zipman purge !upx)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
@@ -68,8 +72,9 @@ BUILDENV=(fakeroot !distcc color !ccache check)
#-- emptydirs: Leave empty directories in packages
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
#-- upx: Compress binary executable files using UPX
#
OPTIONS=(strip docs libtool emptydirs zipman purge)
OPTIONS=(strip docs libtool emptydirs zipman purge !upx)
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
INTEGRITY_CHECK=(md5)
@@ -100,6 +105,8 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#SRCPKGDEST=/home/srcpackages
#-- Packager: name/email of the person or organization building packages
#PACKAGER="John Doe <john@doe.com>"
#-- Specify a key to use for package signing
#GPGKEY=""
#########################################################################
# EXTENSION DEFAULTS

2
mkarchroot → mkarchroot.in Executable file → Normal file
View File

@@ -221,7 +221,7 @@ else
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}" locale-gen
chroot "${working_dir}" /usr/sbin/locale-gen
fi
if [ ! -e "${working_dir}/.arch-chroot" ]; then

View File

@@ -13,11 +13,12 @@
#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/wget --passive-ftp -c -O %o %u
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
@@ -28,12 +29,25 @@ Architecture = auto
#NoUpgrade =
#NoExtract =
# Misc options (all disabled by default)
# Misc options
#UseSyslog
#ShowSize
#UseDelta
#TotalDownload
#CheckSpace
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
# Disable signature checks for now
SigLevel = Never
#
# REPOSITORIES
@@ -76,5 +90,6 @@ 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

View File

@@ -13,11 +13,12 @@
#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/wget --passive-ftp -c -O %o %u
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
@@ -28,12 +29,25 @@ Architecture = auto
#NoUpgrade =
#NoExtract =
# Misc options (all disabled by default)
# Misc options
#UseSyslog
#ShowSize
#UseDelta
#TotalDownload
#CheckSpace
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
# Disable signature checks for now
SigLevel = Never
#
# REPOSITORIES
@@ -76,6 +90,7 @@ Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repository here.
[multilib-testing]
#SigLevel = Optional TrustAll
Include = /etc/pacman.d/mirrorlist
[multilib]

View File

@@ -13,11 +13,12 @@
#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/wget --passive-ftp -c -O %o %u
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
@@ -28,12 +29,25 @@ Architecture = auto
#NoUpgrade =
#NoExtract =
# Misc options (all disabled by default)
# Misc options
#UseSyslog
#ShowSize
#UseDelta
#TotalDownload
#CheckSpace
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
# Disable signature checks for now
SigLevel = Never
#
# REPOSITORIES
@@ -76,6 +90,7 @@ Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repository here.
[multilib]
#SigLevel = Optional TrustAll
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for

View File

@@ -13,11 +13,12 @@
#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/wget --passive-ftp -c -O %o %u
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
@@ -28,12 +29,25 @@ Architecture = auto
#NoUpgrade =
#NoExtract =
# Misc options (all disabled by default)
# Misc options
#UseSyslog
#ShowSize
#UseDelta
#TotalDownload
#CheckSpace
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
# Disable signature checks for now
SigLevel = Never
#
# REPOSITORIES
@@ -76,6 +90,7 @@ Include = /etc/pacman.d/mirrorlist
[community-testing]
Include = /etc/pacman.d/mirrorlist
#SigLevel = Optional TrustAll
[community]
Include = /etc/pacman.d/mirrorlist

View File

@@ -13,11 +13,12 @@
#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/wget --passive-ftp -c -O %o %u
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
@@ -28,12 +29,25 @@ Architecture = auto
#NoUpgrade =
#NoExtract =
# Misc options (all disabled by default)
# Misc options
#UseSyslog
#ShowSize
#UseDelta
#TotalDownload
#CheckSpace
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
# Disable signature checks for now
SigLevel = Never
#
# REPOSITORIES
@@ -76,5 +90,6 @@ 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

0
rebuildpkgs → rebuildpkgs.in Executable file → Normal file
View File

View File

@@ -38,7 +38,7 @@ _commitpkg_args=(
)
_finddeps_args=(
'1:packages:_devtools_completions_installed_packages'
'1:packages:_devtools_completions_all_packages'
)
_makechrootpkg_args=(
@@ -64,7 +64,7 @@ _mkarchroot_args=(
_rebuildpkgs_args=(
'1:chroot_dir:_files -/'
'*:packages:_devtools_completions_installed_packages'
'*:packages:_devtools_completions_all_packages'
)
_devtools_completions_all_packages() {