diff options
Diffstat (limited to 'abs/core/pacman')
-rw-r--r-- | abs/core/pacman/PKGBUILD | 46 | ||||
-rw-r--r-- | abs/core/pacman/mirrorlist | 101 | ||||
-rw-r--r-- | abs/core/pacman/pacman.conf | 76 | ||||
-rw-r--r-- | abs/core/pacman/pacman.install | 56 |
4 files changed, 279 insertions, 0 deletions
diff --git a/abs/core/pacman/PKGBUILD b/abs/core/pacman/PKGBUILD new file mode 100644 index 0000000..ccd1857 --- /dev/null +++ b/abs/core/pacman/PKGBUILD @@ -0,0 +1,46 @@ +# $Id: PKGBUILD 10342 2008-08-27 01:24:22Z dan $ +# Maintainer: Aaron Griffin <aaron@archlinux.org> +# Maintainer: Dan McGee <dan@archlinux.org> + +pkgname=pacman +pkgver=3.2.1 +pkgrel=10 +pkgdesc="A library-based package manager with dependency support" +arch=('i686' 'x86_64') +url="http://www.archlinux.org/pacman/" +license=('GPL') +groups=('base') +depends=('bash' 'libarchive>=2.5.5' 'libdownload>=1.3') +backup=(etc/pacman.conf etc/makepkg.conf etc/pacman.d/mirrorlist) +install=pacman.install +options=(!libtool) +source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz + pacman.conf + mirrorlist) +md5sums=('5b133613cebd74aa8c199de049e25cc4' + '49b799e923933a30cdefcac06f530fb0' + 'a16981c0fef957a95999550f68cdb0f8') + +build() { + cd $startdir/src/$pkgname-$pkgver + + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var + make || return 1 + make DESTDIR=$startdir/pkg install || return 1 + + # install arch specific stuff + mkdir -p ${startdir}/pkg/etc/pacman.d + install -m644 ${startdir}/src/pacman.conf ${startdir}/pkg/etc/ + install -m644 ${startdir}/src/mirrorlist ${startdir}/pkg/etc/pacman.d/ + + # customize mirrorlist to architecture + sed -i -e "s/@carch@/${CARCH}/g" ${startdir}/pkg/etc/pacman.d/mirrorlist + + # install completion files + mkdir -p $startdir/pkg/etc/bash_completion.d/ + install -m644 contrib/bash_completion $startdir/pkg/etc/bash_completion.d/pacman + mkdir -p $startdir/pkg/usr/share/zsh/site-functions/ + install -m644 contrib/zsh_completion $startdir/pkg/usr/share/zsh/site-functions/_pacman +} + +# vim: set ts=2 sw=2 et: diff --git a/abs/core/pacman/mirrorlist b/abs/core/pacman/mirrorlist new file mode 100644 index 0000000..83e75ae --- /dev/null +++ b/abs/core/pacman/mirrorlist @@ -0,0 +1,101 @@ +# +# Arch Linux repository mirrorlist +# + +# North America +# - United States +Server = ftp://ftp.archlinux.org/$repo/os/@carch@ +Server = ftp://locke.suu.edu/linux/dist/archlinux/$repo/os/@carch@ +Server = http://archlinux.unixheads.org/$repo/os/@carch@ +Server = ftp://ftp.gtlib.gatech.edu/pub/linux/distributions/archlinux/$repo/os/@carch@ +Server = ftp://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/@carch@ +Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/@carch@ +Server = ftp://ftp.ibiblio.org/pub/linux/distributions/archlinux/$repo/os/@carch@ +Server = http://holmes.umflint.edu/archlinux/$repo/os/@carch@ +Server = http://mirror.neotuli.net/arch/$repo/os/@carch@ +Server = http://mirror.rit.edu/archlinux/$repo/os/@carch@ +Server = http://mirror.umoss.org/archlinux/$repo/os/@carch@ +Server = http://schlunix.org/archlinux/$repo/os/@carch@ +# - Canada +Server = ftp://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/@carch + +# South America +# - Brazil +Server = http://archlinux.c3sl.ufpr.br/$repo/os/@carch@ +Server = ftp://archlinux.c3sl.ufpr.br/archlinux/$repo/os/@carch@ +Server = ftp://ftp.las.ic.unicamp.br/pub/archlinux/$repo/os/@carch@ + +# Europe +# - Austria +Server = ftp://gd.tuwien.ac.at/opsys/linux/archlinux/$repo/os/@carch@ +# - Belgium +Server = ftp://ftp.belnet.be/mirror/archlinux.org/$repo/os/@carch@ +# - Czech Republic +Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/$repo/os/@carch@ +# - Estonia +Server = ftp://ftp.estpak.ee/pub/archlinux/$repo/os/@carch@ +# - France +Server = ftp://mir1.archlinuxfr.org/archlinux/$repo/os/@carch@ +Server = ftp://mir2.archlinuxfr.org/archlinux/$repo/os/@carch@ +Server = ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/archlinux/$repo/os/@carch@ +Server = http://mir.archlinux.fr/$repo/os/@carch@ +Server = ftp://ftp.free.fr/mirrors/ftp.archlinux.org/$repo/os/@carch@ +Server = ftp://ftp.rez-gif.supelec.fr/Linux/archlinux/$repo/os/@carch@ +# - Germany +Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/@carch@ +Server = ftp://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/@carch@ +Server = ftp://ftp.uni-bayreuth.de/pub/linux/archlinux/$repo/os/@carch@ +Server = ftp://ftp.archlinuxppc.org/@carch@/$repo/os/@carch@ +Server = ftp://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/@carch@ +Server = http://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/@carch@ +# - Great Britain +Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/@carch@ +Server = ftp://mirrors.uk2.net/pub/archlinux/$repo/os/@carch@ +Server = http://archlinux.mirrors.uk2.net/$repo/os/@carch@ +# - Greece +Server = ftp://ftp.ntua.gr/pub/linux/archlinux/$repo/os/@carch@ +# - Hungary +Server = ftp://ftp.mfa.kfki.hu/pub/mirrors/ftp.archlinux.org/$repo/os/@carch@ +# - Ireland +Server = ftp://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/@carch@ +# - Italy +Server = ftp://mi.mirror.garr.it/mirrors/archlinux/$repo/os/@carch@ +# - Netherlands +Server = ftp://ftp.nluug.nl/pub/metalab/distributions/archlinux/$repo/os/@carch@ +Server = ftp://ftp.surfnet.nl/pub/os/Linux/distr/archlinux/$repo/os/@carch@ +# - Norway +Server = http://arch.likbilen.com/$repo/os/@carch +# - Poland +Server = ftp://mirror.icis.pcz.pl/archlinux/$repo/os/@carch@ +Server = http://piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/@carch@ +Server = ftp://ftp.piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/@carch@ +Server = http://unix.net.pl/archlinux.org/$repo/os/@carch@ +# - Portugal +Server = ftp://cesium.di.uminho.pt/pub/archlinux/$repo/os/@carch@ +# - Romania +Server = ftp://ftp.iasi.roedu.net/mirrors/archlinux.org/$repo/os/@carch@ +# - Russia +Server = ftp://mirror.yandex.ru/archlinux/$repo/os/@carch@ +Server = http://archlinux.freeside.ru/$repo/os/@carch@ +# - Sweden +Server = ftp://ftp.ds.hj.se/pub/os/linux/archlinux/$repo/os/@carch@ +Server = ftp://ftp.gigabit.nu/$repo/os/@carch@ +# - Switzerland +Server = http://archlinux.puzzle.ch/$repo/os/@carch@ +# - Turkey +Server = http://server.elsistech.com/archlinux/$repo/os/@carch@ +# - Ukraine +Server = ftp://hell.org.ua/archlinux/$repo/os/@carch@ +Server = ftp://ftp.linux.kiev.ua/pub/Linux/ArchLinux/$repo/os/@carch@ + +# Asia +# - Israel +Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/@carch@ +# - Vietnam +# Domain name is ftp.indochinalinux.com but there are frequent DNS problems +Server = ftp://202.78.230.5/archlinux/$repo/os/@carch@ + +# Australia +Server = ftp://mirror.pacific.net.au/linux/archlinux/$repo/os/@carch@ +Server = ftp://mirror.aarnet.edu.au/pub/archlinux/$repo/os/@carch@ + diff --git a/abs/core/pacman/pacman.conf b/abs/core/pacman/pacman.conf new file mode 100644 index 0000000..6a7bd54 --- /dev/null +++ b/abs/core/pacman/pacman.conf @@ -0,0 +1,76 @@ +# +# /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 %u > %o + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options (all disabled by default) +#NoPassiveFtp +#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 +# +# 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. +# + +# Testing is disabled by default. To enable, uncomment the following +# two 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] +# Add your preferred servers here, they will be used first +Include = /etc/pacman.d/mirrorlist + +[extra] +# Add your preferred servers here, they will be used first +Include = /etc/pacman.d/mirrorlist + +[community] +# Add your preferred servers here, they will be used first +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 + diff --git a/abs/core/pacman/pacman.install b/abs/core/pacman/pacman.install new file mode 100644 index 0000000..46e4763 --- /dev/null +++ b/abs/core/pacman/pacman.install @@ -0,0 +1,56 @@ +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + # one time stuff for md5sum issue with older pacman versions + if [ "$(vercmp $2 3.0.2)" -lt 0 ]; then + _resetbackups + fi +} + +_resetbackups() { + echo ">>> Performing one-time reset of NoUpgrade md5sums. After this reset" + echo ">>> you are able to remove all NoUpgrade lines of already protected" + echo ">>> files from pacman.conf." + echo ">>>" + + # path variables + pacconf="/etc/pacman.conf" + dbpath="/var/lib/pacman/local" + + # get a list of NoUpgrade files from the user's pacman.conf + echo ">>> Retrieving pacman.conf NoUpgrade list..." + config=$(grep "^NoUpgrade" $pacconf | cut -d'=' -f2) + # add the standard list of files, even if they are already above + config="$config \ + etc/passwd etc/group etc/shadow etc/sudoers \ + etc/fstab etc/raidtab etc/ld.so.conf \ + etc/rc.conf etc/rc.local \ + etc/modprobe.conf etc/modules.conf \ + etc/lilo.conf boot/grub/menu.lst" + + # blank md5sum for use in sed expression + zeroes='00000000000000000000000000000000' + + for file in $config; do + echo ">>> -> finding owner of /$file..." + line=$(LC_ALL=C LANG=C pacman -Qo /$file 2>/dev/null) + # if file is owned by a package, go find its incorrectly stored sum + if [ ! -z "$line" ]; then + # get the name and version of the package owning file + name=$(echo $line | awk '{print $5}') + version=$(echo $line | awk '{print $6}') + # set the path to the backup array holding the md5sum + path="$dbpath/$name-$version/files" + # run a sed on the path to reset the line containing $file + # NOTE: literal tab characters in sed expression after $file + echo ">>> -> resetting sum of /$file..." + sed -i "s#$file [0-9a-fA-F]*#$file $zeroes#" $path + else + echo ">>> -> $file is unowned." + fi + done +} + +op=$1 +shift +$op $* |