Compare commits

..

18 Commits

Author SHA1 Message Date
Levente Polyak
383cfa7e60 Version 20220609 2022-06-09 21:29:10 +02:00
Levente Polyak
7a8f101498 doc/export-pkgbuild-keys.1: fix filename to detect manpage location
The manpage doc has been added without a suffix which fails during
install.
2022-06-09 21:25:10 +02:00
Levente Polyak
01b6196883 export-pkgbuild-keys: use TEMPDIR while exporting key
This avoids the possibility to pollute the keys directory with temporary
files if the script is aborted in between.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-06-09 21:10:03 +02:00
Levente Polyak
8d4c46d368 export-pkgbuild-keys: add simple success export messages
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-06-09 21:06:38 +02:00
Allan McRae
d00a28ea0e Export source PGPs from PKGBUILD on commit
Provide a tool to export keys listed in the PKGBUILDs validpgpkeys to
keys/pgp/$fingerprint.asc.

The presense of the "keys" directory alongside the PKGBUILD in trunk/
is tested during commitpkg.  If the directory is abscent, keys are
exported and added to the commit.  If the directory is present, a
check is made to ensure all valid PGP keys are provided.

Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-06-09 20:41:18 +02:00
Felix Yan
5e98478344 mkarchroot: generate and use C.UTF-8 by default
systemd >= 251 is forcing nspawns to use LANG=C.UTF-8:
b626f6959b

It makes sense to generate the C.UTF-8 locate here when using it as the
default LANG value.

Related to: https://bugs.archlinux.org/task/74864
2022-06-09 01:07:43 +02:00
Felix Yan
0c61761f33 mkarchroot: unshare mount namespace to avoid broken root chroot creation
While `extra-x86_64-build -c` is running `pacstrap` and has
`/var/lib/archbuild/extra-x86_64/root/run` mounted, another user logs
in, thus creating a new mountpoint `/run/user/$uid` that propagates into
`/var/lib/archbuild/extra-x86_64/root/run/user/$uid` leading to a broken
root chroot.

Successive `extra-x86_64-build -c` calls will result in cleanup errors:

```
$ extra-x86_64-build -c
==> Creating chroot for [extra] (x86_64)...
-> Deleting chroot copy 'root'...
rm: skipping '/var/lib/archbuild/extra-x86_64/root/run', since it's on a different device
rm: skipping '/var/lib/archbuild/extra-x86_64/root/run', since it's on a different device
==> ERROR: Working directory '/var/lib/archbuild/extra-x86_64/root' already exists
==> ERROR: Aborting...
```

Reported by and patch adjusted from archlinuxcn.

Fixes FS#64698
2022-06-09 00:56:41 +02:00
Levente Polyak
c2f163b640 diffpkg: support comparing two given package archives
This adds support similar to diffpkg from the infrastructure repo
that is based on the assumption that two archives can be passed
to the tooling in order to compare them.
2022-05-17 21:03:44 +02:00
Levente Polyak
c339536a37 diffpkg: support multiple diff modes to compare with
This adds support for the following diff modes:

- content list (default)
- diffoscope
- .PKGINFO diff
- .BUILDINFO diff
2022-05-17 21:03:44 +02:00
Jelle van der Waa
11edc45048 diffpkg - diff repo vs. build package
Include a new tool as alternative to checkpkg, this runs diffoscope on a
newly build package and the current repository package. This can be
useful for finding new files / binaries.
2022-05-17 21:03:43 +02:00
Levente Polyak
f42b032c5e make: respect PREFIX for bash completion instead of hardcoded /usr 2022-05-17 21:02:10 +02:00
Levente Polyak
c52fab2562 make: remove bash completion symlinks on uninstall 2022-05-17 20:57:32 +02:00
Leonidas Spyropoulos
54acc5872c build: enable gitlab-ci
Closes #85

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-04-28 19:10:59 +02:00
Haochen Tong
82cb6756aa sogrep: fail if links database cannot be retrieved
If the links database (for some reason) does not exist on the mirror,
curl will save the html 404 page as ${repo}.links.tar.gz in the cache,
and sogrep will later fail with a decompression error from bsdtar.

This patch adds -f to curl so it doesn't save the error page, and exit
after displaying an error in such case.

Fixes !88

Signed-off-by: Haochen Tong <i@hexchain.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2022-04-06 00:11:16 +02:00
Evangelos Foutras
74164e348b makepkg.conf: set LTOFLAGS="-flto=auto"
For use with pacman 6.0.1-4 which backports support for LTOFLAGS in
order to speed up builds that use gcc as the compiler. This is less
useful when clang is used, though a hack would be to specify in the
PKGBUILD `LTOFLAGS="-flto=thin"` (outside of any function).
2022-03-07 15:41:17 +02:00
Levente Polyak
a17c9c6a70 Version 20220207 2022-02-07 23:28:03 +01:00
Evangelos Foutras
065c00ad8f makepkg.conf: drop -fvar-tracking-assignments flag
According to gcc(1), this flag (like -fvar-tracking) is enabled by
default when compiling with optimization and debugging information.

As an additional benefit, packages building with the clang compiler
will work with the default flags without having to remove this flag
due to not being recognized by clang.
2022-01-31 16:34:07 +02:00
Levente Polyak
ea162ef041 make: use gzip option to get reproducible tar dist like GitLab 2022-01-26 22:44:09 +01:00
13 changed files with 457 additions and 28 deletions

View File

@@ -1,15 +0,0 @@
on: push
jobs:
test:
runs-on: ubuntu-latest
container: archlinux/archlinux:latest
steps:
- name: Install dependencies
run: pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils asciidoc shellcheck
- uses: actions/checkout@v2
- name: Run tests
run: |
make PREFIX=/usr
make PREFIX=/usr DESTDIR="$(mktemp -d)" install
make check || true
SHELLCHECK_OPTS="-S error" make check

2
.gitignore vendored
View File

@@ -6,6 +6,8 @@ archrelease
bash_completion
checkpkg
commitpkg
diffpkg
export-pkgbuild-keys
finddeps
lddd
makechrootpkg

21
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,21 @@
image: "archlinux:latest"
stages:
- build
- test
build:
stage: build
needs: []
script:
- pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils asciidoc
- make PREFIX=/usr
- make PREFIX=/usr DESTDIR=build install
check:
stage: test
needs: []
script:
- pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils asciidoc shellcheck
- make check || true
- SHELLCHECK_OPTS="-S error" make check

View File

@@ -1,4 +1,4 @@
V=20220126
V=20220609
BUILDTOOLVER ?= $(V)
PREFIX = /usr/local
@@ -12,6 +12,8 @@ IN_PROGS = \
checkpkg \
commitpkg \
crossrepomove\
diffpkg \
export-pkgbuild-keys \
finddeps \
find-libdeps \
lddd \
@@ -73,9 +75,11 @@ BASHCOMPLETION_LINKS = \
MANS = \
doc/archbuild.1 \
doc/arch-nspawn.1 \
doc/export-pkgbuild-keys.1 \
doc/makechrootpkg.1 \
doc/lddd.1 \
doc/checkpkg.1 \
doc/diffpkg.1 \
doc/offload-build.1 \
doc/sogrep.1 \
doc/makerepropkg.1 \
@@ -116,8 +120,8 @@ install:
for l in ${ARCHBUILD_LINKS}; do ln -sf archbuild $(DESTDIR)$(PREFIX)/bin/$$l; done
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 bash_completion $(DESTDIR)$(PREFIX)/share/bash-completion/completions/devtools
for l in ${BASHCOMPLETION_LINKS}; do ln -sf devtools $(DESTDIR)$(PREFIX)/share/bash-completion/completions/$$l; done
install -Dm0644 zsh_completion $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_devtools
ln -sf archco $(DESTDIR)$(PREFIX)/bin/communityco
for manfile in $(MANS); do \
@@ -131,7 +135,8 @@ uninstall:
for l in ${COMMITPKG_LINKS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$l; done
for l in ${ARCHBUILD_LINKS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$l; done
for l in ${CROSSREPOMOVE_LINKS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$l; done
rm $(DESTDIR)/usr/share/bash-completion/completions/devtools
for l in ${BASHCOMPLETION_LINKS}; do rm -f $(DESTDIR)$(PREFIX)/share/bash-completion/completions/$$l; done
rm $(DESTDIR)$(PREFIX)/share/bash-completion/completions/devtools
rm $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_devtools
rm -f $(DESTDIR)$(PREFIX)/bin/communityco
rm -f $(DESTDIR)$(PREFIX)/bin/find-libprovides
@@ -146,7 +151,7 @@ tag:
@git tag --sign --message "Version $(TODAY)" $(TODAY)
dist:
git archive --format=tar --prefix=devtools-$(V)/ $(V) | gzip -9 > devtools-$(V).tar.gz
git archive --format=tar --prefix=devtools-$(V)/ $(V) | gzip > devtools-$(V).tar.gz
gpg --detach-sign --use-agent devtools-$(V).tar.gz
upload:

View File

@@ -48,6 +48,21 @@ case "$cmd" in
;;
esac
if (( ${#validpgpkeys[@]} != 0 )); then
if [[ -d keys ]]; then
for key in "${validpgpkeys[@]}"; do
if [[ ! -f keys/pgp/$key.asc ]]; then
export-pkgbuild-keys || die 'Failed to export valid PGP keys for source files'
fi
done
else
export-pkgbuild-keys || die 'Failed to export valid PGP keys for source files'
fi
svn add --parents --force keys/pgp/*
fi
# find files which should be under source control
needsversioning=()
for s in "${source[@]}"; do
@@ -60,6 +75,9 @@ for i in 'changelog' 'install'; do
needsversioning+=("$file")
done < <(sed -n "s/^[[:space:]]*$i=//p" PKGBUILD)
done
for key in "${validpgpkeys[@]}"; do
needsversioning+=("keys/pgp/$key.asc")
done
# assert that they really are controlled by SVN
if (( ${#needsversioning[*]} )); then

228
diffpkg.in Normal file
View File

@@ -0,0 +1,228 @@
#!/bin/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
shopt -s extglob
m4_include(lib/common.sh)
usage() {
cat <<- _EOF_
Usage: ${BASH_SOURCE[0]##*/} [OPTIONS] [MODES] [FILE|PKGNAME...]
Searches for a locally built package corresponding to the PKGBUILD, and
downloads the last version of that package from the Pacman repositories.
It then compares the package archives using different modes while using
simple tar content list by default.
When given one package, use it to diff against the locally built one.
When given two packages, diff both packages against each other.
In either case, a package name will be converted to a filename from the
cache, and diffpkg will proceed as though this filename was initially
specified.
OPTIONS
-M, --makepkg-config Set an alternate makepkg configuration file
-v, --verbose Provide more detailed/unfiltered output
-h, --help Show this help text
MODES
-l, --list Activate content list diff mode (default)
-d, --diffoscope Activate diffoscope diff mode
-p, --pkginfo Activate .PKGINFO diff mode
-b, --buildinfo Activate .BUILDINFO diff mode
_EOF_
}
MAKEPKG_CONF=/etc/makepkg.conf
VERBOSE=0
TARLIST=0
DIFFOSCOPE=0
PKGINFO=0
BUILDINFO=0
# option checking
while (( $# )); do
case $1 in
-h|--help)
usage
exit 0
;;
-M|--makepkg-config)
MAKEPKG_CONF="$2"
shift 2
;;
-l|--list)
TARLIST=1
shift
;;
-d|--diffoscope)
DIFFOSCOPE=1
shift
;;
-p|--pkginfo)
PKGINFO=1
shift
;;
-b|--buildinfo)
BUILDINFO=1
shift
;;
-v|--verbose)
VERBOSE=1
shift
;;
--)
shift
break
;;
-*,--*)
die "invalid argument: %s" "$1"
;;
*)
break
;;
esac
done
if ! (( DIFFOSCOPE || TARLIST || PKGINFO || BUILDINFO )); then
TARLIST=1
fi
# Source makepkg.conf; fail if it is not found
if [[ -r "${MAKEPKG_CONF}" ]]; then
# shellcheck source=makepkg-x86_64.conf
source "${MAKEPKG_CONF}"
else
die "${MAKEPKG_CONF} not found!"
fi
# Source user-specific makepkg.conf overrides
if [[ -r "${XDG_CONFIG_HOME:-$HOME/.config}/pacman/makepkg.conf" ]]; then
# shellcheck source=/dev/null
source "${XDG_CONFIG_HOME:-$HOME/.config}/pacman/makepkg.conf"
elif [[ -r "$HOME/.makepkg.conf" ]]; then
# shellcheck source=/dev/null
source "$HOME/.makepkg.conf"
fi
STARTDIR=$(pwd)
trap 'rm -rf $TMPDIR' EXIT INT TERM QUIT
TMPDIR=$(mktemp -d --tmpdir diffpkg-script.XXXXXXXX)
export TMPDIR
tar_list() {
bsdtar tf "$*" | if (( VERBOSE )); then
cat
else
sed -E 's|^usr/lib/modules/[0-9][^/]+|usr/lib/modules/[…]|g'
fi | sort
}
diff_pkgs() {
local oldpkg newpkg
oldpkg=$(readlink -m "$1")
newpkg=$(readlink -m "$2")
[[ -f $oldpkg ]] || die "No such file: %s" "${oldpkg}"
[[ -f $newpkg ]] || die "No such file: %s" "${newpkg}"
if (( TARLIST )); then
tar_list "$oldpkg" > "$TMPDIR/filelist-old"
tar_list "$newpkg" > "$TMPDIR/filelist"
sdiff -s "$TMPDIR/filelist-old" "$TMPDIR/filelist"
fi
if (( PKGINFO )); then
bsdtar xOqf "$oldpkg" .PKGINFO > "$TMPDIR/pkginfo-old"
bsdtar xOqf "$newpkg" .PKGINFO > "$TMPDIR/pkginfo"
sdiff -s "$TMPDIR/pkginfo-old" "$TMPDIR/pkginfo"
fi
if (( BUILDINFO )); then
bsdtar xOqf "$oldpkg" .BUILDINFO > "$TMPDIR/buildinfo-old"
bsdtar xOqf "$newpkg" .BUILDINFO > "$TMPDIR/buildinfo"
sdiff -s "$TMPDIR/buildinfo-old" "$TMPDIR/buildinfo"
fi
if (( DIFFOSCOPE )); then
diffoscope "$oldpkg" "$newpkg"
fi
}
fetch_pkg() {
local pkg pkgdest pkgurl
case $1 in
*://*)
pkgurl=$1 ;;
/*|*/*)
pkgurl=$(readlink -m "$1") ;;
*.pkg.tar*)
pkgurl=$1 ;;
'')
;;
*)
pkg=$1 ;;
esac
[[ -n $pkgurl ]] || pkgurl=$(pacman -Spdd --print-format '%l' --noconfirm "$pkg") ||
die "Couldn't download previous package for %s." "$pkg"
pkg=${pkgurl##*/}
pkgdest=$(mktemp -t -d "${pkg}-XXXXXX")/${pkg}
if [[ $pkgurl = file://* || ( $pkgurl = /* && -f $pkgurl ) ]]; then
ln -sf "${pkgurl#file://}" "$pkgdest"
elif [[ -f "$PKGDEST/$pkg" ]]; then
ln -sf "$PKGDEST/$pkg" "$pkgdest"
elif [[ -f "$STARTDIR/$pkg" ]]; then
ln -sf "$STARTDIR/$pkg" "$pkgdest"
elif [[ $pkgurl = *://* ]]; then
curl -fsLC - --retry 3 --retry-delay 3 -o "$pkgdest" "$pkgurl" || \
die "Couldn't download %s" "$pkgurl"
else
die "File not found: %s" "$pkgurl"
fi
echo "$pkgdest"
}
if (( $# < 2 )); then
if [[ ! -f PKGBUILD ]]; then
die "This must be run in the directory of a built package.\nTry '$(basename "$0") --help' for more information."
fi
# shellcheck source=PKGBUILD.proto
. ./PKGBUILD
if [[ ${arch[0]} == 'any' ]]; then
CARCH='any'
fi
for _pkgname in "${pkgname[@]}"; do
comparepkg=$_pkgname
pkgurl=
target_pkgver=$(get_full_version "$_pkgname")
if ! pkgfile=$(find_cached_package "$_pkgname" "$target_pkgver" "$CARCH"); then
die 'tarball not found for package: %s' "${_pkgname}-$target_pkgver"
fi
ln -s "$pkgfile" "$TMPDIR"
if (( $# )); then
comparepkg="$1"
fi
oldpkg=$(fetch_pkg "$comparepkg") || exit 1
diff_pkgs "$oldpkg" "$pkgfile"
done
else
file1=$(fetch_pkg "$1") || exit 1
file2=$(fetch_pkg "$2") || exit 1
diff_pkgs "$file1" "$file2"
fi

57
doc/diffpkg.1.asciidoc Normal file
View File

@@ -0,0 +1,57 @@
diffpkg(1)
===========
Name
----
diffpkg - Compare package files using different modes.
Synopsis
--------
diffpkg [OPTIONS] [MODES] [FILE|PKGNAME...]
Description
-----------
Searches for a locally built package corresponding to the PKGBUILD, and
downloads the last version of that package from the Pacman repositories.
It then compares the package archives using different modes while using
simple tar content list by default.
When given one package, use it to diff against the locally built one.
When given two packages, diff both packages against each other.
In either case, a package name will be converted to a filename from the
cache, and diffpkg will proceed as though this filename was initially
specified.
Options
-------
*-M, --makepkg-config*::
Set an alternate makepkg configuration file
*-v, --verbose*::
Provide more detailed/unfiltered output
*-h, --help*::
Show a help text
Modes
-----
*-l, --list*::
Activate tar content list diff mode (default)
*-d, --diffoscope*::
Activate diffoscope diff mode
*-p, --pkginfo*::
Activate .PKGINFO diff mode
*-b, --buildinfo*::
Activate .BUILDINFO diff mode
See Also
--------
include::footer.asciidoc[]

View File

@@ -0,0 +1,25 @@
export-pkgbuild-keys(1)
=======================
Name
----
export-pkgbuild-keys - Export valid source signing keys from a PKGBUILD
Synopsis
--------
export-pkgbuild-keys
Description
-----------
Export the PGP keys from a PKGBUILDs validpgpkeys array into the keys/pgp/
subdirectory. Useful for distributing packager validated source signing
keys alongside PKGBUILDs.
Options
-------
*-h, --help*::
Show a help text.
include::footer.asciidoc[]

73
export-pkgbuild-keys.in Normal file
View File

@@ -0,0 +1,73 @@
#!/bin/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
m4_include(lib/common.sh)
usage() {
cat <<- _EOF_
Usage: ${BASH_SOURCE[0]##*/}
Export the PGP keys from a PKGBUILDs validpgpkeys array into the keys/pgp/
subdirectory. Useful for distributing packager validated source signing
keys alongside PKGBUILDs.
OPTIONS
-h, --help Show this help text
_EOF_
}
# option checking
while (( $# )); do
case $1 in
-h|--help)
usage
exit 0
;;
*)
die "invalid argument: %s" "$1"
;;
esac
done
if [[ ! -f PKGBUILD ]]; then
die "This must be run a directory containing a PKGBUILD."
fi
mapfile -t validpgpkeys < <(
# shellcheck source=PKGBUILD.proto
. ./PKGBUILD
printf "%s\n" "${validpgpkeys[@]}"
)
msg "Exporting ${#validpgpkeys[@]} PGP keys..."
if (( ${#validpgpkeys[@]} == 0 )); then
exit 0
fi
trap 'rm -rf $TEMPDIR' EXIT INT TERM QUIT
TEMPDIR=$(mktemp -d --tmpdir export-pkgbuild-keys.XXXXXXXXXX)
mkdir -p keys/pgp
error=0
for key in "${validpgpkeys[@]}"; do
gpg --output "$TEMPDIR/$key.asc" --armor --export --export-options export-minimal "$key" 2>/dev/null
# gpg does not give a non-zero return value if it fails to export...
if [[ -f $TEMPDIR/$key.asc ]]; then
msg2 "Exported $key"
mv "$TEMPDIR/$key.asc" "keys/pgp/$key.asc"
else
if [[ -f keys/pgp/$key.asc ]]; then
warning "Failed to update key: $key"
else
error "Key unavailable: $key"
error=1
fi
fi
done
if (( error )); then
die "Failed to export all \'validpgpkeys\' entries."
fi

View File

@@ -45,12 +45,13 @@ CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
-fstack-clash-protection -fcf-protection"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
LTOFLAGS="-flto=auto"
#RUSTFLAGS="-C opt-level=2"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
#-- Debugging flags
DEBUG_CFLAGS="-g -fvar-tracking-assignments"
DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
DEBUG_CFLAGS="-g"
DEBUG_CXXFLAGS="$DEBUG_CFLAGS"
#DEBUG_RUSTFLAGS="-C debuginfo=2"
#########################################################################

View File

@@ -81,11 +81,11 @@ for file in "${files[@]}"; do
cp "$file" "$working_dir$file"
done
pacstrap -${umode}Mcd ${pac_conf:+-C "$pac_conf"} "$working_dir" \
unshare --mount pacstrap -${umode}Mcd ${pac_conf:+-C "$pac_conf"} "$working_dir" \
"${cache_dirs[@]/#/--cachedir=}" "$@" || die 'Failed to install all packages'
printf '%s.UTF-8 UTF-8\n' en_US de_DE > "$working_dir/etc/locale.gen"
echo 'LANG=en_US.UTF-8' > "$working_dir/etc/locale.conf"
printf '%s.UTF-8 UTF-8\n' C en_US de_DE > "$working_dir/etc/locale.gen"
echo 'LANG=C.UTF-8' > "$working_dir/etc/locale.conf"
echo "$CHROOT_VERSION" > "$working_dir/.arch-chroot"
systemd-machine-id-setup --root="$working_dir"

View File

@@ -36,8 +36,11 @@ recache() {
local dbpath=${SOCACHE_DIR}/${arch}/${repo}.links.tar.gz
mkdir -p "${dbpath%/*}"
(( VERBOSE )) && echo "Fetching ${repo}.links.tar.gz..."
curl -LR "${verbosity}" -o "${dbpath}" -z "${dbpath}" \
"${SOLINKS_MIRROR}/${repo}/os/${arch}/${repo}.links.tar.gz"
if ! curl -fLR "${verbosity}" -o "${dbpath}" -z "${dbpath}" \
"${SOLINKS_MIRROR}/${repo}/os/${arch}/${repo}.links.tar.gz"; then
echo "error: failed to download links database for repo ${repo}"
exit 1
fi
done
done
}

View File

@@ -1,4 +1,4 @@
#compdef archbuild archco arch-nspawn archrelease 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-x86_64-build=archbuild testing-x86_64-build=archbuild staging-x86_64-build=archbuild multilib-build=archbuild multilib-testing-build=archbuild multilib-staging-build=archbuild kde-unstable-x86_64-build=archbuild gnome-unstable-x86_64-build=archbuild communityco=archco checkpkg sogrep offload-build makerepropkg
#compdef archbuild archco arch-nspawn archrelease commitpkg diffpkg 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-x86_64-build=archbuild testing-x86_64-build=archbuild staging-x86_64-build=archbuild multilib-build=archbuild multilib-testing-build=archbuild multilib-staging-build=archbuild kde-unstable-x86_64-build=archbuild gnome-unstable-x86_64-build=archbuild communityco=archco checkpkg sogrep offload-build makerepropkg
#
# SPDX-License-Identifier: GPL-3.0-or-later
@@ -41,6 +41,17 @@ _commitpkg_args=(
'1:commit_msg'
)
_diffpkg_args=(
'(-l --list)'{-l,--list}'[Tar content list diff mode]'
'(-d --diffoscope)'{-d,--diffoscope}'[Diffoscope diff mode]'
'(-p --pkginfo)'{-p,--pkginfo}'[.PKGINFO diff mode]'
'(-b --buildinfo)'{-b,--buildinfo}'[.BUILDINFO diff mode]'
'(-m --makepkg-config)'{-m,--makepkg-config}'[Location of a makepkg config file]:makepkg_config:_files -g "*.conf(.)"'
'(-v --verbose)'{-v,--verbose}'[Provide more detailed/unfiltered output]'
'(-h --help)'{-h,--help}'[Display usage]'
'*:packages:_devtools_completions_all_packages'
)
_finddeps_args=(
'1:packages:_devtools_completions_all_packages'
)