Compare commits

...

21 Commits

Author SHA1 Message Date
Pierre Schmitz
372fb4e7d1 bugfix release 2010-11-22 19:14:47 +01:00
Andrea Scarpino
25133fcd17 Fetch the right architecture when a repo contains dash
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-11-22 16:07:14 +01:00
Pierre Schmitz
e3d2f1a020 prepare release 2010-11-18 00:28:25 +01:00
Pierre Schmitz
8440133032 archbuild: simplify multilib call 2010-11-17 22:10:21 +01:00
Pierre Schmitz
0adf83fadf Don't try to guess users architecture 2010-11-16 13:43:13 +01:00
Pierre Schmitz
ecc3fcf86d Explicitly install libtool-multilib when building multilib packages
This bypasses a strange pacman behaviour with the --noconfirm parameter.
2010-11-16 13:31:54 +01:00
Pierre Schmitz
394d9c8b54 Create pacman sync dir on chroot creation
See https://bugs.archlinux.org/task/21125
2010-11-16 13:27:33 +01:00
Pierre Schmitz
7a3550c903 commitpkg: pkgfile might be an absolute path when using PKGDEST 2010-10-19 07:44:35 +02:00
Pierre Schmitz
c290215aa6 prepare release 2010-10-17 14:33:40 +02:00
Andrea Scarpino
32b55d1587 install option (-I) does not require a directory containing a PKGBUILD
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-10-17 12:57:57 +02:00
Pierre Schmitz
6201853f52 install gcc-multilib for multilib-build by default 2010-10-17 12:57:48 +02:00
Florian Pritz
fbc3929ec0 commitpkg: error out if ~/staging/$repo doesn't exist
Signed-off-by: Florian Pritz <bluewind@xssn.at>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-09-16 06:15:40 +02:00
Pierre Schmitz
8cb3bcc17b checkpkg: make diff output more readable 2010-09-11 20:17:41 +02:00
Pierre Schmitz
db7a90ccd2 Use pacman to determine the host's mirror 2010-09-11 19:25:54 +02:00
Pierre Schmitz
a9bfd8d2c9 ad support for multilib-testing 2010-09-11 19:09:05 +02:00
Pierre Schmitz
0d0e1a9079 repare release 2010-09-06 20:53:26 +02:00
Ionut Biru
b9ea05789d checkpkg: fix extracting soname bumps
extracting the tarball was done from the wrong directory

Signed-off-by: Ionut Biru <ibiru@archlinux.org>
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2010-09-06 20:28:14 +02:00
Pierre Schmitz
79ac757e7f add support for community-staging repository 2010-09-01 20:00:11 +02:00
Pierre Schmitz
a4eabcceaa add makepkg.conf for [multilib] 2010-08-22 21:54:17 +02:00
Pierre Schmitz
b591e69541 add initial [multilib] support 2010-08-22 21:52:23 +02:00
Pierre Schmitz
2f18ca1836 Use findmnt to generate a mtab
Instead of just copying the hosts mtab use findmnt. This way only reachable mount points are shown.
2010-08-22 20:26:33 +02:00
11 changed files with 216 additions and 36 deletions

View File

@@ -1,4 +1,4 @@
V=0.9.9 V=0.9.13
all: all:
@@ -13,6 +13,9 @@ install:
ln -sf commitpkg $(DESTDIR)/usr/bin/stagingpkg ln -sf commitpkg $(DESTDIR)/usr/bin/stagingpkg
ln -sf commitpkg $(DESTDIR)/usr/bin/communitypkg ln -sf commitpkg $(DESTDIR)/usr/bin/communitypkg
ln -sf commitpkg $(DESTDIR)/usr/bin/community-testingpkg ln -sf commitpkg $(DESTDIR)/usr/bin/community-testingpkg
ln -sf commitpkg $(DESTDIR)/usr/bin/community-stagingpkg
ln -sf commitpkg $(DESTDIR)/usr/bin/multilibpkg
ln -sf commitpkg $(DESTDIR)/usr/bin/multilib-testingpkg
# arch{co,release,rm} # arch{co,release,rm}
install -m 755 archco $(DESTDIR)/usr/bin install -m 755 archco $(DESTDIR)/usr/bin
install -m 755 communityco $(DESTDIR)/usr/bin install -m 755 communityco $(DESTDIR)/usr/bin
@@ -29,6 +32,8 @@ install:
ln -sf archbuild $(DESTDIR)/usr/bin/testing-x86_64-build ln -sf archbuild $(DESTDIR)/usr/bin/testing-x86_64-build
ln -sf archbuild $(DESTDIR)/usr/bin/staging-i686-build ln -sf archbuild $(DESTDIR)/usr/bin/staging-i686-build
ln -sf archbuild $(DESTDIR)/usr/bin/staging-x86_64-build ln -sf archbuild $(DESTDIR)/usr/bin/staging-x86_64-build
ln -sf archbuild $(DESTDIR)/usr/bin/multilib-build
ln -sf archbuild $(DESTDIR)/usr/bin/multilib-testing-build
# Additional packaging helper scripts # Additional packaging helper scripts
install -m 755 lddd $(DESTDIR)/usr/bin install -m 755 lddd $(DESTDIR)/usr/bin
install -m 755 finddeps $(DESTDIR)/usr/bin install -m 755 finddeps $(DESTDIR)/usr/bin
@@ -40,6 +45,8 @@ install:
install -m 644 pacman-extra.conf $(DESTDIR)/usr/share/devtools install -m 644 pacman-extra.conf $(DESTDIR)/usr/share/devtools
install -m 644 pacman-testing.conf $(DESTDIR)/usr/share/devtools install -m 644 pacman-testing.conf $(DESTDIR)/usr/share/devtools
install -m 644 pacman-staging.conf $(DESTDIR)/usr/share/devtools install -m 644 pacman-staging.conf $(DESTDIR)/usr/share/devtools
install -m 644 pacman-multilib.conf $(DESTDIR)/usr/share/devtools
install -m 644 pacman-multilib-testing.conf $(DESTDIR)/usr/share/devtools
uninstall: uninstall:
# remove all files we installed # remove all files we installed
@@ -51,6 +58,9 @@ uninstall:
rm $(DESTDIR)/usr/bin/stagingpkg rm $(DESTDIR)/usr/bin/stagingpkg
rm $(DESTDIR)/usr/bin/communitypkg rm $(DESTDIR)/usr/bin/communitypkg
rm $(DESTDIR)/usr/bin/community-testingpkg rm $(DESTDIR)/usr/bin/community-testingpkg
rm $(DESTDIR)/usr/bin/community-stagingpkg
rm $(DESTDIR)/usr/bin/multilibpkg
rm $(DESTDIR)/usr/bin/multilib-testingpkg
rm $(DESTDIR)/usr/sbin/mkarchroot rm $(DESTDIR)/usr/sbin/mkarchroot
rm $(DESTDIR)/usr/sbin/makechrootpkg rm $(DESTDIR)/usr/sbin/makechrootpkg
rm $(DESTDIR)/usr/bin/extra-i686-build rm $(DESTDIR)/usr/bin/extra-i686-build
@@ -59,6 +69,8 @@ uninstall:
rm $(DESTDIR)/usr/bin/testing-x86_64-build rm $(DESTDIR)/usr/bin/testing-x86_64-build
rm $(DESTDIR)/usr/bin/staging-i686-build rm $(DESTDIR)/usr/bin/staging-i686-build
rm $(DESTDIR)/usr/bin/staging-x86_64-build rm $(DESTDIR)/usr/bin/staging-x86_64-build
rm $(DESTDIR)/usr/bin/multilib-build
rm $(DESTDIR)/usr/bin/multilib-testing-build
rm $(DESTDIR)/usr/bin/lddd rm $(DESTDIR)/usr/bin/lddd
rm $(DESTDIR)/usr/bin/finddeps rm $(DESTDIR)/usr/bin/finddeps
rm $(DESTDIR)/usr/bin/archco rm $(DESTDIR)/usr/bin/archco
@@ -71,6 +83,8 @@ uninstall:
rm $(DESTDIR)/usr/share/devtools/pacman-extra.conf rm $(DESTDIR)/usr/share/devtools/pacman-extra.conf
rm $(DESTDIR)/usr/share/devtools/pacman-testing.conf rm $(DESTDIR)/usr/share/devtools/pacman-testing.conf
rm $(DESTDIR)/usr/share/devtools/pacman-staging.conf rm $(DESTDIR)/usr/share/devtools/pacman-staging.conf
rm $(DESTDIR)/usr/share/devtools/pacman-multilib.conf
rm $(DESTDIR)/usr/share/devtools/pacman-multilib-testing.conf
dist: dist:
git archive --format=tar --prefix=devtools-$(V)/ $(V) | gzip -9 > devtools-$(V).tar.gz git archive --format=tar --prefix=devtools-$(V)/ $(V) | gzip -9 > devtools-$(V).tar.gz

View File

@@ -1,8 +1,16 @@
#!/bin/bash #!/bin/bash
base_packages='base base-devel sudo'
cmd="$(basename "${0%-build}")" cmd="$(basename "${0%-build}")"
repo=${cmd%-*} if [ "${cmd%-*}" == 'multilib' ]; then
arch=${cmd#*-} repo="${cmd}"
arch='x86_64'
base_packages+=' gcc-multilib libtool-multilib'
else
repo=${cmd%-*}
arch=${cmd##*-}
fi
chroots='/var/tmp/archbuild' chroots='/var/tmp/archbuild'
clean_first=false clean_first=false
@@ -21,11 +29,6 @@ while getopts 'cr:' arg; do
esac esac
done done
if [ "$(uname -m)" == 'i686' -a "${arch}" != 'i686' ]; then
echo 'You can only build i686 packages on this system'
exit 1
fi
if ${clean_first} || [ ! -d "${chroots}/${repo}-${arch}" ]; then if ${clean_first} || [ ! -d "${chroots}/${repo}-${arch}" ]; then
echo "Creating chroot for [${repo}] (${arch})..." echo "Creating chroot for [${repo}] (${arch})..."
sudo rm -rf ${chroots}/${repo}-${arch} sudo rm -rf ${chroots}/${repo}-${arch}
@@ -34,7 +37,7 @@ if ${clean_first} || [ ! -d "${chroots}/${repo}-${arch}" ]; then
-C /usr/share/devtools/pacman-${repo}.conf \ -C /usr/share/devtools/pacman-${repo}.conf \
-M /usr/share/devtools/makepkg-${arch}.conf \ -M /usr/share/devtools/makepkg-${arch}.conf \
${chroots}/${repo}-${arch}/root \ ${chroots}/${repo}-${arch}/root \
base base-devel sudo ${base_packages}
fi fi
echo "Building in chroot for [${repo}] (${arch})..." echo "Building in chroot for [${repo}] (${arch})..."

View File

@@ -80,12 +80,12 @@ for _pkgname in ${pkgname[@]}; do
sort -o filelist-$_pkgname filelist-$_pkgname sort -o filelist-$_pkgname filelist-$_pkgname
sort -o filelist-$_pkgname-old filelist-$_pkgname-old sort -o filelist-$_pkgname-old filelist-$_pkgname-old
diff filelist-$_pkgname-old filelist-$_pkgname diff -u 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 mkdir -p pkg
cd pkg cd pkg
bsdtar xf "$pkgfile" > /dev/null bsdtar xf ../"$pkgfile" > /dev/null
for i in `diff ../filelist-$_pkgname-old ../filelist-$_pkgname | grep \> | grep \.so\. | awk '{print $2}'`; do for i in `diff ../filelist-$_pkgname-old ../filelist-$_pkgname | grep \> | grep \.so\. | awk '{print $2}'`; do
echo -n "${i}: " echo -n "${i}: "
objdump -p $i | grep SONAME objdump -p $i | grep SONAME

View File

@@ -54,6 +54,15 @@ elif [ "$cmd" == 'communitypkg' ]; then
elif [ "$cmd" == 'community-testingpkg' ]; then elif [ "$cmd" == 'community-testingpkg' ]; then
repo='community-testing' repo='community-testing'
server='aur.archlinux.org' server='aur.archlinux.org'
elif [ "$cmd" == 'community-stagingpkg' ]; then
repo='community-staging'
server='aur.archlinux.org'
elif [ "$cmd" == 'multilibpkg' ]; then
repo='multilib'
server='aur.archlinux.org'
elif [ "$cmd" == 'multilib-testingpkg' ]; then
repo='multilib-testing'
server='aur.archlinux.org'
else else
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
abort 'usage: commitpkg <reponame> [-l limit] [commit message]' abort 'usage: commitpkg <reponame> [-l limit] [commit message]'
@@ -110,7 +119,7 @@ for _arch in ${arch[@]}; do
fi fi
echo -n 'uploading ' echo -n 'uploading '
rsync -p --chmod 'ug=rw,o=r' -c -h -L --progress $rsyncopts --partial "${pkgfile}" -e ssh $server:staging/$repo || abort rsync -p --chmod 'ug=rw,o=r' -c -h -L --progress $rsyncopts --partial "${pkgfile}" -e ssh "$server:staging/$repo/${pkgfile##*/}" || abort
done done
archrelease $repo-${_arch} || abort archrelease $repo-${_arch} || abort
done done

View File

@@ -87,7 +87,7 @@ if [ "$EUID" != '0' ]; then
exit 1 exit 1
fi fi
if [ ! -f PKGBUILD ]; then if [ ! -f PKGBUILD -a -z "$install_pkg" ]; then
echo 'This must be run in a directory containing a PKGBUILD.' echo 'This must be run in a directory containing a PKGBUILD.'
exit 1 exit 1
fi fi

View File

@@ -73,13 +73,13 @@ if [ -z "$cache_dir" ]; then
fi fi
if [ -f /etc/pacman.d/mirrorlist ]; then if [ -f /etc/pacman.d/mirrorlist ]; then
host_mirror=$(grep -v '^#' -m1 /etc/pacman.d/mirrorlist | sed -E 's#/os/(i686|x86_64)#/os/\$arch#g') host_mirror=$(pacman -Sdp extra/devtools 2>/dev/null | sed -E 's#(.*/)extra/os/.*#\1$repo/os/$arch#')
fi fi
if [ -z "${host_mirror}" ]; then if [ -z "${host_mirror}" ]; then
host_mirror='Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch' host_mirror='http://mirrors.kernel.org/archlinux/$repo/os/$arch'
fi fi
if echo "${host_mirror}" | grep -q 'file://'; then if echo "${host_mirror}" | grep -q 'file://'; then
host_mirror_path=$(echo "${host_mirror}" | sed -E 's#Server\s=\sfile://(/.*)/\$repo/os/(\$arch|i686|x86_64)#\1#g') host_mirror_path=$(echo "${host_mirror}" | sed -E 's#file://(/.*)/\$repo/os/\$arch#\1#g')
fi fi
# {{{ functions # {{{ functions
@@ -114,9 +114,9 @@ chroot_mount() {
} }
copy_hostconf () { copy_hostconf () {
cp /etc/mtab "${working_dir}/etc/mtab" chroot "${working_dir}" /bin/findmnt -rnu -o SOURCE,TARGET,FSTYPE,OPTIONS > "${working_dir}/etc/mtab"
cp /etc/resolv.conf "${working_dir}/etc/resolv.conf" cp /etc/resolv.conf "${working_dir}/etc/resolv.conf"
echo "${host_mirror}" > ${working_dir}/etc/pacman.d/mirrorlist echo "Server = ${host_mirror}" > ${working_dir}/etc/pacman.d/mirrorlist
} }
chroot_umount () { chroot_umount () {
@@ -153,7 +153,7 @@ if [ "$RUN" != "" ]; then
exit 1 exit 1
fi fi
mkdir -p "${working_dir}/var/lib/pacman/" mkdir -p "${working_dir}/var/lib/pacman/sync"
mkdir -p "${working_dir}/etc/" mkdir -p "${working_dir}/etc/"
chroot_mount chroot_mount

View File

@@ -58,23 +58,18 @@ Architecture = auto
# after the header, and they will be used before the default mirrors. # after the header, and they will be used before the default mirrors.
#[testing] #[testing]
## Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist #Include = /etc/pacman.d/mirrorlist
[core] [core]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[extra] [extra]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
#[community-testing] #[community-testing]
## Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/mirrorlist #Include = /etc/pacman.d/mirrorlist
[community] [community]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for # An example of a custom package repository. See the pacman manpage for

View File

@@ -0,0 +1,87 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
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 - %u > %o
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options (all disabled by default)
#UseSyslog
#ShowSize
#UseDelta
#TotalDownload
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
[testing]
Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[community-testing]
Include = /etc/pacman.d/mirrorlist
[community]
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]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#Server = file:///home/custompkgs

84
pacman-multilib.conf Normal file
View File

@@ -0,0 +1,84 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
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 - %u > %o
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options (all disabled by default)
#UseSyslog
#ShowSize
#UseDelta
#TotalDownload
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
#[community-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repository here.
[multilib]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#Server = file:///home/custompkgs

View File

@@ -58,31 +58,24 @@ Architecture = auto
# after the header, and they will be used before the default mirrors. # after the header, and they will be used before the default mirrors.
[staging] [staging]
## Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[testing] [testing]
## Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[core] [core]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[extra] [extra]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[community-staging] [community-staging]
## Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[community-testing] [community-testing]
## Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[community] [community]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for # An example of a custom package repository. See the pacman manpage for

View File

@@ -58,23 +58,18 @@ Architecture = auto
# after the header, and they will be used before the default mirrors. # after the header, and they will be used before the default mirrors.
[testing] [testing]
## Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[core] [core]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[extra] [extra]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[community-testing] [community-testing]
## Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
[community] [community]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for # An example of a custom package repository. See the pacman manpage for