mirror of
https://gitlab.archlinux.org/archlinux/devtools.git
synced 2025-09-13 18:06:19 +02:00
Compare commits
45 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6da47a8f6a | ||
![]() |
6350ec0461 | ||
![]() |
3da3a5486f | ||
![]() |
7020d2351b | ||
![]() |
7952d6fbfc | ||
![]() |
3c175e98bd | ||
![]() |
ddb08cb9a1 | ||
![]() |
88a929cfc0 | ||
![]() |
c24209028a | ||
![]() |
61010062ff | ||
![]() |
6ef4d5f30b | ||
![]() |
40ddf4d44f | ||
![]() |
b445920d55 | ||
![]() |
7887d9bb47 | ||
![]() |
35573fe147 | ||
![]() |
5688152f41 | ||
![]() |
e1312ec493 | ||
![]() |
e652dc8085 | ||
![]() |
ba4f28cc43 | ||
![]() |
dc7b96e917 | ||
![]() |
cb25d50913 | ||
![]() |
c51cc8d365 | ||
![]() |
e64c1d33eb | ||
![]() |
19f3a868f4 | ||
![]() |
f1ee5208ed | ||
![]() |
b97b245d52 | ||
![]() |
ee970f0bde | ||
![]() |
35fc83ce7d | ||
![]() |
51b5d69cfc | ||
![]() |
30bcca88d3 | ||
![]() |
25aae4ecfe | ||
![]() |
c8ba49c6a1 | ||
![]() |
e63c5f26a2 | ||
![]() |
c9c4e8043c | ||
![]() |
2582637376 | ||
![]() |
74df2a90d8 | ||
![]() |
8384ad849d | ||
![]() |
1febb47b2c | ||
![]() |
c57284e053 | ||
![]() |
d177c87080 | ||
![]() |
4b24337a51 | ||
![]() |
9a29f624f1 | ||
![]() |
3040951ca0 | ||
![]() |
5d39ffb341 | ||
![]() |
7e5ae10b43 |
35
Makefile
35
Makefile
@@ -1,10 +1,11 @@
|
||||
V=0.9.23
|
||||
V=0.9.27
|
||||
|
||||
PREFIX = /usr/local
|
||||
|
||||
BINPROGS = \
|
||||
checkpkg \
|
||||
commitpkg \
|
||||
archco \
|
||||
communityco \
|
||||
archrelease \
|
||||
archrm \
|
||||
archbuild \
|
||||
@@ -49,23 +50,27 @@ ARCHBUILD_LINKS = \
|
||||
all:
|
||||
|
||||
install:
|
||||
install -dm0755 $(DESTDIR)/usr/bin
|
||||
install -dm0755 $(DESTDIR)/usr/sbin
|
||||
install -dm0755 $(DESTDIR)/usr/share/devtools
|
||||
install -m0755 ${BINPROGS} $(DESTDIR)/usr/bin
|
||||
install -m0755 ${SBINPROGS} $(DESTDIR)/usr/sbin
|
||||
install -m0644 ${CONFIGFILES} $(DESTDIR)/usr/share/devtools
|
||||
for l in ${COMMITPKG_LINKS}; do ln -sf commitpkg $(DESTDIR)/usr/bin/$$l; done
|
||||
for l in ${ARCHBUILD_LINKS}; do ln -sf archbuild $(DESTDIR)/usr/bin/$$l; done
|
||||
install -dm0755 $(DESTDIR)$(PREFIX)/bin
|
||||
install -dm0755 $(DESTDIR)$(PREFIX)/sbin
|
||||
install -dm0755 $(DESTDIR)$(PREFIX)/share/devtools
|
||||
install -m0755 ${BINPROGS} $(DESTDIR)$(PREFIX)/bin
|
||||
install -m0755 ${SBINPROGS} $(DESTDIR)$(PREFIX)/sbin
|
||||
install -m0644 ${CONFIGFILES} $(DESTDIR)$(PREFIX)/share/devtools
|
||||
for l in ${COMMITPKG_LINKS}; do ln -sf commitpkg $(DESTDIR)$(PREFIX)/bin/$$l; done
|
||||
for l in ${ARCHBUILD_LINKS}; do ln -sf archbuild $(DESTDIR)$(PREFIX)/bin/$$l; done
|
||||
install -Dm0644 bash_completion $(DESTDIR)/etc/bash_completion.d/devtools
|
||||
install -Dm0644 zsh_completion $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_devtools
|
||||
ln -sf archco $(DESTDIR)$(PREFIX)/bin/communityco
|
||||
|
||||
uninstall:
|
||||
for f in ${BINPROGS}; do rm -f $(DESTDIR)/usr/bin/$$f; done
|
||||
for f in ${SBINPROGS}; do rm -f $(DESTDIR)/usr/sbin/$$f; done
|
||||
for f in ${CONFIGFILES}; do rm -f $(DESTDIR)/usr/share/devtools/$$f; done
|
||||
for l in ${COMMITPKG_LINKS}; do rm -f $(DESTDIR)/usr/bin/$$l; done
|
||||
for l in ${ARCHBUILD_LINKS}; do rm -f $(DESTDIR)/usr/bin/$$l; done
|
||||
for f in ${BINPROGS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
|
||||
for f in ${SBINPROGS}; do rm -f $(DESTDIR)$(PREFIX)/sbin/$$f; done
|
||||
for f in ${CONFIGFILES}; do rm -f $(DESTDIR)$(PREFIX)/share/devtools/$$f; done
|
||||
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
|
||||
rm $(DESTDIR)/etc/bash_completion.d/devtools
|
||||
rm $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_devtools
|
||||
rm -f $(DESTDIR)$(PREFIX)/bin/communityco
|
||||
|
||||
dist:
|
||||
git archive --format=tar --prefix=devtools-$(V)/ $(V) | gzip -9 > devtools-$(V).tar.gz
|
||||
|
17
archco
17
archco
@@ -1,10 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
scriptname=${0##*/}
|
||||
|
||||
if [ "$1" = '' ]; then
|
||||
echo 'Usage: archco <package name> [<package name>]'
|
||||
echo 'Usage: '$scriptname' <package name>...'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case $scriptname in
|
||||
archco)
|
||||
SVNURL="svn+ssh://gerolde.archlinux.org/srv/svn-packages";;
|
||||
communityco)
|
||||
SVNURL="svn+ssh://aur.archlinux.org/srv/svn-packages";;
|
||||
*)
|
||||
echo "error: couldn't find svn url for $scriptname"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
for i in "$@"; do
|
||||
svn co svn+ssh://gerolde.archlinux.org/srv/svn-packages/$i
|
||||
svn co "$SVNURL/$i"
|
||||
done
|
||||
|
62
archrelease
62
archrelease
@@ -5,31 +5,63 @@ abort() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ "$1" = '' ]; then
|
||||
abort 'Usage: archrelease <repo>'
|
||||
if [[ -z $1 ]]; then
|
||||
abort 'Usage: archrelease <repo>...'
|
||||
fi
|
||||
|
||||
if [ ! -f PKGBUILD ]; then
|
||||
# TODO: validate repo is really repo-arch
|
||||
|
||||
if [[ ! -f PKGBUILD ]]; then
|
||||
abort 'archrelease: PKGBUILD not found'
|
||||
fi
|
||||
|
||||
trunk=$(basename $(pwd))
|
||||
trunk=${PWD##*/}
|
||||
|
||||
if [ "$(basename $(dirname $(pwd)))" == "repos" ]; then
|
||||
abort 'archrelease: Not in a package trunk dir'
|
||||
# Normally this should be trunk, but it may be something
|
||||
# such as 'gnome-unstable'
|
||||
IFS='/' read -r -d '' -a parts <<< "$PWD"
|
||||
if [[ "${parts[@]:(-2):1}" == "repos" ]]; then
|
||||
abort 'archrelease: Should not be in repos dir (try from trunk/)'
|
||||
fi
|
||||
unset parts
|
||||
|
||||
if [ ! -z "$(svn status -q)" ]; then
|
||||
if [[ $(svn status -q) ]]; then
|
||||
abort 'archrelease: You have not committed your changes yet!'
|
||||
fi
|
||||
|
||||
echo -n "releasing package to ${1}..."
|
||||
pushd .. >/dev/null
|
||||
if [ -d "repos/${1}" ]; then
|
||||
svn rm --force -q "repos/${1}"
|
||||
svn commit -q -m "archrelease: remove ${1}" || abort
|
||||
fi
|
||||
svn copy -q -r HEAD "${trunk}" "repos/${1}"
|
||||
svn commit -q -m "archrelease: copy ${trunk} to ${1}" || abort
|
||||
popd >/dev/null
|
||||
IFS=$'\n' read -r -d '' -a known_files < <(svn ls -r HEAD "$trunk")
|
||||
for file in "${known_files[@]}"; do
|
||||
if [[ ${file:(-1)} = '/' ]]; then
|
||||
abort "archrelease: subdirectories are not supported in package directories!"
|
||||
fi
|
||||
done
|
||||
|
||||
for tag in "$@"; do
|
||||
echo -n "copying ${trunk} to ${tag}..."
|
||||
|
||||
if [[ -d repos/$tag ]]; then
|
||||
declare -a trash
|
||||
trash=()
|
||||
while read -r file; do
|
||||
trash+=("repos/$tag/$file")
|
||||
done < <(svn ls "repos/$tag")
|
||||
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
|
||||
|
||||
echo 'done'
|
||||
done
|
||||
|
||||
echo -n "releasing package..."
|
||||
printf -v tag_list ", %s" "$@"; tag_list="${tag_list#, }"
|
||||
svn commit -q -m "archrelease: copy ${trunk} to $tag_list" || abort
|
||||
echo 'done'
|
||||
|
||||
popd >/dev/null
|
||||
|
68
checkpkg
68
checkpkg
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Source makepkg.conf; fail if it is not found
|
||||
if [ -r '/etc/makepkg.conf' ]; then
|
||||
if [[ -r '/etc/makepkg.conf' ]]; then
|
||||
source '/etc/makepkg.conf'
|
||||
else
|
||||
echo '/etc/makepkg.conf not found!'
|
||||
@@ -9,87 +9,77 @@ else
|
||||
fi
|
||||
|
||||
# Source user-specific makepkg.conf overrides
|
||||
if [ -r ~/.makepkg.conf ]; then
|
||||
if [[ -r ~/.makepkg.conf ]]; then
|
||||
source ~/.makepkg.conf
|
||||
fi
|
||||
|
||||
strip_url() {
|
||||
echo $1 | sed 's|^.*://.*/||g'
|
||||
}
|
||||
|
||||
if [ ! -f PKGBUILD ]; then
|
||||
if [[ ! -f PKGBUILD ]]; then
|
||||
echo 'This must be run in the directory of a built package.'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
. PKGBUILD
|
||||
if [ "$arch" == 'any' ]; then
|
||||
if [[ $arch == 'any' ]]; then
|
||||
CARCH='any'
|
||||
fi
|
||||
|
||||
STARTDIR=$(pwd)
|
||||
TEMPDIR=$(mktemp -d /tmp/checkpkg-script.XXXX)
|
||||
cd $TEMPDIR
|
||||
cd "$TEMPDIR"
|
||||
|
||||
for _pkgname in ${pkgname[@]}; do
|
||||
if [ -z ${epoch} ] ; then
|
||||
for _pkgname in "${pkgname[@]}"; do
|
||||
if [[ -z ${epoch} ]] ; then
|
||||
pkgfile=${_pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
|
||||
else
|
||||
pkgfile=${_pkgname}-${epoch}:${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
|
||||
fi
|
||||
|
||||
if [ -f "$STARTDIR/$pkgfile" ]; then
|
||||
cp "$STARTDIR/$pkgfile" .
|
||||
elif [ -f "$PKGDEST/$pkgfile" ]; then
|
||||
cp "$PKGDEST/$pkgfile" .
|
||||
if [[ -f "$STARTDIR/$pkgfile" ]]; then
|
||||
ln -s "$STARTDIR/$pkgfile" "$pkgfile"
|
||||
elif [[ -f "$PKGDEST/$pkgfile" ]]; then
|
||||
ln -s "$PKGDEST/$pkgfile" "$pkgfile"
|
||||
else
|
||||
echo "File \"$pkgfile\" doesn't exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tmp=`pacman -Spdd --noconfirm $_pkgname`
|
||||
pkgurl=$(pacman -Spdd --print-format '%l' --noconfirm "$_pkgname")
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "Couldn't download previous package for $_pkgname."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pkgurl=`echo $tmp | rev | cut -d ' ' -f 1 | rev`
|
||||
oldpkg=${pkgurl##*://*/}
|
||||
|
||||
oldpkg=`strip_url $pkgurl`
|
||||
|
||||
if [ "$(basename $oldpkg)" = "$(basename $pkgfile)" ]; then
|
||||
if [[ ${oldpkg##*/} = ${pkgfile##*/} ]]; then
|
||||
echo "The built package ($_pkgname) is the one in the repo right now!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f $oldpkg ]; then
|
||||
if echo $pkgurl | grep '^file:///' > /dev/null 2>&1; then
|
||||
cp `echo $pkgurl | sed 's#^file://##'` .
|
||||
elif [ -f $PKGDEST/$oldpkg ]; then
|
||||
cp $PKGDEST/$oldpkg .
|
||||
elif [ -f $STARTDIR/$oldpkg ]; then
|
||||
cp $STARTDIR/$oldpkg .
|
||||
if [[ ! -f $oldpkg ]]; then
|
||||
if [[ $pkgurl = file://* ]]; then
|
||||
ln -s "${pkgurl#file://}" "${pkgurl##file://*/}"
|
||||
elif [[ -f "$PKGDEST/$oldpkg" ]]; then
|
||||
ln -s "$PKGDEST/$oldpkg" "$oldpkg"
|
||||
elif [[ -f "$STARTDIR/$oldpkg" ]]; then
|
||||
ln -s "$STARTDIR/$oldpkg" "$oldpkg"
|
||||
else
|
||||
wget --quiet $pkgurl
|
||||
wget --quiet "$pkgurl"
|
||||
fi
|
||||
fi
|
||||
|
||||
bsdtar tf $oldpkg > filelist-$_pkgname-old
|
||||
bsdtar tf "$pkgfile" > filelist-$_pkgname
|
||||
bsdtar tf "$oldpkg" | sort > "filelist-$_pkgname-old"
|
||||
bsdtar tf "$pkgfile" | sort > "filelist-$_pkgname"
|
||||
|
||||
sort -o filelist-$_pkgname filelist-$_pkgname
|
||||
sort -o filelist-$_pkgname-old filelist-$_pkgname-old
|
||||
sdiff -s "filelist-$_pkgname-old" "filelist-$_pkgname"
|
||||
|
||||
sdiff -s filelist-$_pkgname-old filelist-$_pkgname
|
||||
|
||||
if diff filelist-$_pkgname-old filelist-$_pkgname | grep '\.so' > /dev/null 2>&1; then
|
||||
if diff "filelist-$_pkgname-old" "filelist-$_pkgname" | grep '\.so' > /dev/null 2>&1; then
|
||||
mkdir -p pkg
|
||||
cd pkg
|
||||
bsdtar xf ../"$pkgfile" > /dev/null
|
||||
for i in `diff ../filelist-$_pkgname-old ../filelist-$_pkgname | grep \> | grep \.so | awk '{print $2}'`; do
|
||||
echo -n "${i}: "
|
||||
objdump -p $i | grep SONAME
|
||||
diff "../filelist-$_pkgname-old" "../filelist-$_pkgname" | awk '/>.*\.so/{$1 = ""; print $0}' | while read i; do
|
||||
echo "${i}: " "$(objdump -p "$i" | grep SONAME)"
|
||||
done
|
||||
cd ..
|
||||
else
|
||||
|
70
commitpkg
70
commitpkg
@@ -78,10 +78,10 @@ case "$repo" in
|
||||
esac
|
||||
|
||||
# check if all local source files are under version control
|
||||
for s in ${source[@]}; do
|
||||
echo $s | grep -Fvq '://' && \
|
||||
svn status $s | grep -q '^\?' && \
|
||||
abort "$s is not under version control"
|
||||
for s in "${source[@]}"; do
|
||||
if [[ $s != *://* ]] && ! svn status -v "$s" | grep -q '^[ AMRX~]'; then
|
||||
abort "$s is not under version control"
|
||||
fi
|
||||
done
|
||||
|
||||
# check if changelog and install files are under version control
|
||||
@@ -90,33 +90,50 @@ for i in 'changelog' 'install'; do
|
||||
for file in $filelist; do
|
||||
# evaluate any bash variables used
|
||||
eval file=${file}
|
||||
if svn status ${file} | grep -q '^\?'; then
|
||||
if ! svn status -v "${file}" | grep -q '^[ AMRX~]'; then
|
||||
abort "${file} is not under version control"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# see if any limit options were passed, we'll send them to rsync
|
||||
rsyncopts='-e ssh -p --chmod=ug=rw,o=r -c -h -L --progress --partial -y'
|
||||
if [ "$1" = '-l' ]; then
|
||||
rsyncopts="$rsyncopts --bwlimit=$2"
|
||||
shift 2
|
||||
fi
|
||||
rsyncopts=(-e ssh -p --chmod=ug=rw,o=r -c -h -L --progress --partial -y)
|
||||
while getopts ':l:a:' flag; do
|
||||
case $flag in
|
||||
l) rsyncopts+=("--bwlimit=$2") ;;
|
||||
a) commit_arch=$2 ;;
|
||||
:) echo "option requires an argument -- '$OPTARG'" >&2
|
||||
exit 1 ;;
|
||||
\?) echo "invalid option -- '$OPTARG'" >&2
|
||||
exit 1 ;;
|
||||
esac
|
||||
done
|
||||
shift $(( OPTIND - 1 ))
|
||||
|
||||
if [ "$1" = "-a" ]; then
|
||||
commit_arch=$2
|
||||
shift 2
|
||||
if [ -n "$(svn status -q)" ]; then
|
||||
echo -n 'committing changes to trunk...'
|
||||
msgtemplate="upgpkg: $pkgbase $(get_full_version ${epoch:-0} $pkgver $pkgrel)"$'\n\n'
|
||||
if [ -n "$1" ]; then
|
||||
svn commit -q -m "${msgtemplate}${1}" || abort
|
||||
else
|
||||
msgfile="$(mktemp)"
|
||||
echo "$msgtemplate" > "$msgfile"
|
||||
if [ -n "$SVN_EDITOR" ]; then
|
||||
$SVN_EDITOR "$msgfile"
|
||||
elif [ -n "$VISUAL" ]; then
|
||||
$VISUAL "$msgfile"
|
||||
elif [ -n "$EDITOR" ]; then
|
||||
$EDITOR "$msgfile"
|
||||
else
|
||||
vi "$msgfile"
|
||||
fi
|
||||
[ -s "$msgfile" ] || abort
|
||||
svn commit -q -F "$msgfile" || abort
|
||||
unlink "$msgfile"
|
||||
fi
|
||||
echo 'done'
|
||||
fi
|
||||
|
||||
echo -n 'committing changes to trunk...'
|
||||
if [ -n "$1" ]; then
|
||||
svn commit -q -m "upgpkg: $pkgbase $pkgver-$pkgrel
|
||||
$1" || abort
|
||||
else
|
||||
svn commit -q || abort
|
||||
fi
|
||||
echo 'done'
|
||||
|
||||
declare -a uploads
|
||||
|
||||
for _arch in ${arch[@]}; do
|
||||
@@ -155,12 +172,17 @@ for _arch in ${arch[@]}; do
|
||||
abort "Signature ${pkgfile}.sig was not found"
|
||||
fi
|
||||
done
|
||||
archrelease $repo-${_arch} || abort
|
||||
done
|
||||
|
||||
if [[ -n $commit_arch ]]; then
|
||||
archrelease "$repo-$commit_arch" || abort
|
||||
else
|
||||
archrelease "${arch[@]/#/$repo-}" || abort
|
||||
fi
|
||||
|
||||
if [[ ${#uploads[*]} -gt 0 ]]; then
|
||||
echo 'uploading all package and signature files'
|
||||
rsync $rsyncopts "${uploads[@]}" "$server:staging/$repo/" || abort
|
||||
rsync "${rsyncopts[@]}" "${uploads[@]}" "$server:staging/$repo/" || abort
|
||||
fi
|
||||
|
||||
if [ "${arch[*]}" == 'any' ]; then
|
||||
|
10
communityco
10
communityco
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$1" = '' ]; then
|
||||
echo 'Usage: communityco <package name> [<package name>]'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for i in "$@"; do
|
||||
svn co svn+ssh://aur.archlinux.org/srv/svn-packages/$i
|
||||
done
|
8
lddd
8
lddd
@@ -4,9 +4,9 @@
|
||||
#
|
||||
|
||||
ifs=$IFS
|
||||
IFS=':'
|
||||
IFS="${IFS}:"
|
||||
|
||||
libdirs='/lib:/usr/lib:/opt/qt/lib:/opt/kde/lib:/usr/lib/libfakeroot:/opt/NX/lib'
|
||||
libdirs="/lib /usr/lib /usr/local/lib $(cat /etc/ld.so.conf.d/*)"
|
||||
extras=
|
||||
|
||||
TEMPDIR=$(mktemp -d /tmp/lddd-script.XXXX)
|
||||
@@ -25,9 +25,9 @@ for tree in $PATH $libdirs $extras; do
|
||||
-name '*.mcopclass' ! -name '*.mcoptype')
|
||||
IFS=$ifs
|
||||
for i in $files; do
|
||||
if [ `file $i | grep -c 'ELF'` -ne 0 ]; then
|
||||
if [ $(file $i | grep -c 'ELF') -ne 0 ]; then
|
||||
# Is an ELF binary.
|
||||
if [ `ldd $i 2>/dev/null | grep -c 'not found'` -ne 0 ]; then
|
||||
if [ $(ldd $i 2>/dev/null | grep -c 'not found') -ne 0 ]; then
|
||||
# Missing lib.
|
||||
echo "$i:" >> $TEMPDIR/raw.txt
|
||||
ldd $i 2>/dev/null | grep 'not found' >> $TEMPDIR/raw.txt
|
||||
|
@@ -74,8 +74,12 @@ done
|
||||
# Canonicalize chrootdir, getting rid of trailing /
|
||||
chrootdir=$(readlink -e "$chrootdir")
|
||||
|
||||
[[ -z $copy ]] && copy=$default_copy
|
||||
copydir="$chrootdir/$copy"
|
||||
if [[ ${copy:0:1} = "/" ]]; then
|
||||
copydir=$copy
|
||||
else
|
||||
[[ -z $copy ]] && copy=$default_copy
|
||||
copydir="$chrootdir/$copy"
|
||||
fi
|
||||
|
||||
# Pass all arguments after -- right to makepkg
|
||||
MAKEPKG_ARGS="$MAKEPKG_ARGS ${*:$OPTIND}"
|
||||
@@ -153,7 +157,7 @@ fi
|
||||
if [ -n "$install_pkg" ]; then
|
||||
pkgname="$(basename "$install_pkg")"
|
||||
cp "$install_pkg" "$copydir/$pkgname"
|
||||
mkarchroot -r "pacman -U /$pkgname" "$copydir"
|
||||
mkarchroot -r "pacman -U /$pkgname --noconfirm" "$copydir"
|
||||
ret=$?
|
||||
rm "$copydir/$pkgname"
|
||||
# Exit early, we've done all we need to
|
||||
|
@@ -29,9 +29,9 @@ CHOST="i686-pc-linux-gnu"
|
||||
#-- Exclusive: will only run on i686
|
||||
# -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"
|
||||
CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed"
|
||||
CFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
|
||||
CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
|
||||
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu"
|
||||
#-- Make Flags: change this for DistCC/SMP systems
|
||||
#MAKEFLAGS="-j2"
|
||||
|
||||
|
@@ -29,9 +29,9 @@ CHOST="x86_64-unknown-linux-gnu"
|
||||
#-- Exclusive: will only run on x86_64
|
||||
# -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"
|
||||
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
|
||||
LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed"
|
||||
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
|
||||
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
|
||||
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu"
|
||||
#-- Make Flags: change this for DistCC/SMP systems
|
||||
#MAKEFLAGS="-j2"
|
||||
|
||||
|
@@ -220,7 +220,7 @@ else
|
||||
fi
|
||||
|
||||
if [ -e "${working_dir}/etc/locale.gen" ]; then
|
||||
echo -e 'en_US.UTF-8 UTF-8\nde_DE.UTF-8 UTF-8' > "${working_dir}/etc/locale.gen"
|
||||
sed -i 's@^#\(en_US\|de_DE\)\(\.UTF-8\)@\1\2@' "${working_dir}/etc/locale.gen"
|
||||
chroot "${working_dir}" locale-gen
|
||||
fi
|
||||
|
||||
|
81
zsh_completion
Normal file
81
zsh_completion
Normal file
@@ -0,0 +1,81 @@
|
||||
#compdef archbuild archco archrelease archrm commitpkg finddeps makechrootpkg mkarchroot rebuildpkgs extrapkg=commitpkg corepkg=commitpkg testingpkg=commitpkg stagingpkg=commitpkg communitypkg=commitpkg community-testingpkg=commitpkg community-stagingpkg=commitpkg multilibpkg=commitpkg multilib-testingpkg=commitpkg extra-i686-build=archbuild extra-x86_64-build=archbuild testing-i686-build=archbuild testing-x86_64-build=archbuild staging-i686-build=archbuild staging-x86_64-build=archbuild multilib-build=archbuild multilib-testing-build=archbuild communityco=archco
|
||||
|
||||
_arch=(i686 x86_64 any)
|
||||
|
||||
_tags=(
|
||||
core-i686 core-x86_64 core-any
|
||||
extra-i686 extra-x86_64 extra-any
|
||||
multilib-i686 multilib-x86_64 multilib-any
|
||||
staging-i686 staging-x86_64 staging-any
|
||||
testing-i686 testing-x86_64 testing-any
|
||||
multilib-testing-i686 multilib-testing-x86_64 multilib-testing-any
|
||||
community-i686 community-x86_64 community-any
|
||||
community-staging-i686 community-staging-x86_64 community-staging-any
|
||||
community-testing-i686 community-testing-x86_64 community-testing-any
|
||||
)
|
||||
|
||||
_archbuild_args=(
|
||||
'-c[Recreate the chroot before building]'
|
||||
'-r[Create chroots in this directory]:base_dir:_files -/'
|
||||
)
|
||||
|
||||
_archco_args=(
|
||||
'*:packages:_devtools_completions_all_packages'
|
||||
)
|
||||
|
||||
_archrelease_args=(
|
||||
"*:arch:($_tags[*])"
|
||||
)
|
||||
|
||||
_archrm_args=(
|
||||
'1:path:_files -/'
|
||||
)
|
||||
|
||||
_commitpkg_args=(
|
||||
"-a[Release to a specific architecture only]:arch:($_arch[*])"
|
||||
'-l[Set bandwidth limit]:limit'
|
||||
'1:commit_msg'
|
||||
)
|
||||
|
||||
_finddeps_args=(
|
||||
'1:packages:_devtools_completions_installed_packages'
|
||||
)
|
||||
|
||||
_makechrootpkg_args=(
|
||||
'-I[Install a package into the working copy]:target:_files -g "*.pkg.tar.*(.)"'
|
||||
'-c[Clean the chroot before building]'
|
||||
'-d[Add the package to a local db at /repo after building]'
|
||||
'-h[Display usage]'
|
||||
'-l[The directory to use as the working copy]:copy_dir:_files -/'
|
||||
'-r[The chroot dir to use]:chroot_dir:_files -/'
|
||||
'-u[Update the working copy of the chroot before building]'
|
||||
)
|
||||
|
||||
_mkarchroot_args=(
|
||||
'-r[Run a program within the context of the chroot]:app'
|
||||
'-u[Update the chroot via pacman]'
|
||||
'-f[Force overwrite of files in the working-dir]'
|
||||
'-C[Location of a pacman config file]:pacman_config:_files'
|
||||
'-M[Location of a makepkg config file]:makepkg_config:_files'
|
||||
'-n[Do not copy config files into the chroot]'
|
||||
'-c[Set pacman cache]:pacman_cache:_files -/'
|
||||
'-h[Display usage]'
|
||||
)
|
||||
|
||||
_rebuildpkgs_args=(
|
||||
'1:chroot_dir:_files -/'
|
||||
'*:packages:_devtools_completions_installed_packages'
|
||||
)
|
||||
|
||||
_devtools_completions_all_packages() {
|
||||
typeset -U packages
|
||||
packages=($(_call_program packages pacman -Sql))
|
||||
compadd - "${(@)packages}"
|
||||
}
|
||||
|
||||
_devtools() {
|
||||
local argname="_${service}_args[@]"
|
||||
_arguments -s "${(P)argname}"
|
||||
}
|
||||
|
||||
_devtools
|
Reference in New Issue
Block a user