Compare commits

...

23 Commits

Author SHA1 Message Date
Pierre Schmitz
e64c1d33eb prepare release 2011-08-14 14:12:54 +02:00
Pierre Schmitz
19f3a868f4 update makepkg.conf from pacman 3.5.4-4 2011-08-14 14:12:34 +02:00
Pierre Schmitz
f1ee5208ed supress svn verbose output 2011-08-13 23:02:45 +02:00
Pierre Schmitz
b97b245d52 prepare release 2011-08-13 22:58:08 +02:00
Lukas Fleischer
ee970f0bde commitpkg: Provide a commit message template
Generate a message template when omitting the commit message (includes
the same subject line that is used if a commit message is specified).

Also, use two newlines to separate the subject line from the message
body as it looks much clearer that way.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-13 20:33:44 +02:00
Lukas Fleischer
35fc83ce7d Makefile: Add PREFIX support
Default to "/usr/local" which should be used if you want to build
devtools from sources and install without using a package manager.

Use `make PREFIX=/usr install` to install to "/usr" instead.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-13 20:31:22 +02:00
Lukas Fleischer
51b5d69cfc archrelease: Fix removal of repository content
Fix the `svn rm` invocation when releasing to a repository that already
contains some files. `svn ls` only returns basenames, so we need to
prepend the path here.

Regression introduced in 8384ad849d.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-13 20:20:21 +02:00
Lukas Fleischer
30bcca88d3 commitpkg: Use positive patterns in SVN checks
In addition to what we had before, this will also detect:

* Non-existent files.
* Files that are missing or scheduled for deletion.
* Ignored files.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-13 20:18:35 +02:00
Lukas Fleischer
25aae4ecfe commitpkg: Avoid unnecessary use of grep(1)
Use bash patterns instead of using grep(1) to check if a source file
contains the string "://".

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-13 20:18:11 +02:00
Lukas Fleischer
c8ba49c6a1 commitpkg: Proper quoting in version control checks
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-13 20:15:19 +02:00
Pierre Schmitz
e63c5f26a2 Remove communityco on uninstall 2011-08-13 20:11:34 +02:00
Florian Pritz
c9c4e8043c merge archco and communityco
Signed-off-by: Florian Pritz <bluewind@xinu.at>

 delete mode 100755 communityco
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-13 20:10:15 +02:00
Eric Bélanger
2582637376 checkpkg: Use symlinks in work directory instead of copying the packages
Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-08-13 20:06:43 +02:00
Florian Pritz
74df2a90d8 makechrootpkg: support absolute paths for chroot copy
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-07-25 20:37:48 +02:00
Dan McGee
8384ad849d archrelease: remove extra SVN commit
This relies on the fact that trunk/ never has any subdirectories, so we
can simply copy all the files in it to the relevant repos/xxx/ directory
after removing all existing files in that directory.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-07-25 20:36:21 +02:00
Gerardo Exequiel Pozzi
1febb47b2c Edit /etc/locale.gen instead of overwrite.
I need this for archiso, instead of maintaining a private copy.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-07-25 18:28:17 +02:00
Andrea Scarpino
c57284e053 Install a package in the chroot without confirm
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-07-25 18:03:35 +02:00
Eric Bélanger
d177c87080 lddd: Add /usr/local/lib to library directories
Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-07-25 18:02:10 +02:00
Eric Bélanger
4b24337a51 lddd: Replace hardcoded list of library directories by those listed in /etc/ld.so.conf.d
Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-07-25 18:01:18 +02:00
Eric Bélanger
9a29f624f1 checkpkg: Clean up soname check output
A missing quote in a grep command was giving out false matches.

By moving the objdump command in the same echo statement as the
filename, we ensure that every library name are displayed on a line of
their own in case they don't have a SONAME defined in their
headers. That is the case for some plugin libraries.

Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-07-25 17:53:08 +02:00
Eric Bélanger
3040951ca0 Replace backticks by $() and add missing quotes
Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-07-25 17:53:02 +02:00
Dan McGee
5d39ffb341 archrelease: add repos/ directory if it doesn't exist
Very easy thing to forget when creating a new package, but easy enough
to check for and add automatically.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-07-25 17:50:22 +02:00
user
7e5ae10b43 Include epoch in updpkg default message
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2011-05-30 00:03:06 +02:00
11 changed files with 112 additions and 67 deletions

View File

@@ -1,10 +1,11 @@
V=0.9.23
V=0.9.25
PREFIX = /usr/local
BINPROGS = \
checkpkg \
commitpkg \
archco \
communityco \
archrelease \
archrm \
archbuild \
@@ -49,23 +50,25 @@ 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
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 -f $(DESTDIR)$(PREFIX)/bin/communityco
dist:
git archive --format=tar --prefix=devtools-$(V)/ $(V) | gzip -9 > devtools-$(V).tar.gz

17
archco
View File

@@ -1,10 +1,23 @@
#!/bin/bash
scriptname=${0##*/}
if [ "$1" = '' ]; then
echo 'Usage: archco <package name> [<package name>]'
echo 'Usage: '$scriptname' <package name> [<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

View File

@@ -9,14 +9,18 @@ if [ "$1" = '' ]; then
abort 'Usage: archrelease <repo>'
fi
# TODO: validate repo is really repo-arch
if [ ! -f PKGBUILD ]; then
abort 'archrelease: PKGBUILD not found'
fi
trunk=$(basename $(pwd))
# Normally this should be trunk, but it may be something
# such as 'gnome-unstable'
if [ "$(basename $(dirname $(pwd)))" == "repos" ]; then
abort 'archrelease: Not in a package trunk dir'
abort 'archrelease: Should not be in repos dir (try from trunk/)'
fi
if [ ! -z "$(svn status -q)" ]; then
@@ -26,10 +30,27 @@ 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
for file in $(svn ls "repos/${1}"); do
svn rm -q "repos/${1}/$file"
done
fi
svn copy -q -r HEAD "${trunk}" "repos/${1}"
svn commit -q -m "archrelease: copy ${trunk} to ${1}" || abort
if [ ! -d repos ]; then
mkdir repos
svn add -q repos
fi
if [ ! -d "repos/${1}" ]; then
mkdir "repos/${1}"
svn add -q "repos/${1}"
fi
known_files=$(svn ls "trunk")
for file in $known_files; do
if [ "$file" != "${file%/}" ]; then
abort "archrelease: subdirectories are not supported in package directories!"
fi
done
for file in $known_files; do
svn copy -q -r HEAD "trunk/$file" "repos/${1}/"
done
svn commit -q -m "archrelease: copy trunk to ${1}" || abort
popd >/dev/null
echo 'done'

View File

@@ -39,24 +39,24 @@ for _pkgname in ${pkgname[@]}; do
fi
if [ -f "$STARTDIR/$pkgfile" ]; then
cp "$STARTDIR/$pkgfile" .
ln -s "$STARTDIR/$pkgfile" "$pkgfile"
elif [ -f "$PKGDEST/$pkgfile" ]; then
cp "$PKGDEST/$pkgfile" .
ln -s "$PKGDEST/$pkgfile" "$pkgfile"
else
echo "File \"$pkgfile\" doesn't exist"
exit 1
fi
tmp=`pacman -Spdd --noconfirm $_pkgname`
tmp=$(pacman -Spdd --noconfirm $_pkgname)
if [ $? -ne 0 ]; then
echo "Couldn't download previous package for $_pkgname."
exit 1
fi
pkgurl=`echo $tmp | rev | cut -d ' ' -f 1 | rev`
pkgurl=$(echo $tmp | rev | cut -d ' ' -f 1 | rev)
oldpkg=`strip_url $pkgurl`
oldpkg=$(strip_url $pkgurl)
if [ "$(basename $oldpkg)" = "$(basename $pkgfile)" ]; then
echo "The built package ($_pkgname) is the one in the repo right now!"
@@ -65,11 +65,11 @@ for _pkgname in ${pkgname[@]}; do
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 .
ln -s "${pkgurl#file://}" $(basename "${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
fi
@@ -87,9 +87,8 @@ for _pkgname in ${pkgname[@]}; do
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
for i in $(diff ../filelist-$_pkgname-old ../filelist-$_pkgname | grep \> | grep '\.so' | awk '{print $2}'); do
echo "${i}: " "$(objdump -p $i | grep SONAME)"
done
cd ..
else

View File

@@ -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 '^\?' && \
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,7 +90,7 @@ 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
@@ -109,11 +109,26 @@ if [ "$1" = "-a" ]; then
fi
echo -n 'committing changes to trunk...'
msgtemplate="upgpkg: $pkgbase $(get_full_version ${epoch:-0} $pkgver $pkgrel)
"
if [ -n "$1" ]; then
svn commit -q -m "upgpkg: $pkgbase $pkgver-$pkgrel
$1" || abort
svn commit -q -m "${msgtemplate}${1}" || abort
else
svn commit -q || abort
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'

View File

@@ -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
View File

@@ -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

View File

@@ -74,8 +74,12 @@ done
# Canonicalize chrootdir, getting rid of trailing /
chrootdir=$(readlink -e "$chrootdir")
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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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