diff options
Diffstat (limited to 'libre/pacman')
-rw-r--r-- | libre/pacman/0001-makepkg-fix-removing-symbolic-link.patch | 32 | ||||
-rw-r--r-- | libre/pacman/PKGBUILD | 88 | ||||
-rw-r--r-- | libre/pacman/makepkg.conf | 114 | ||||
-rw-r--r-- | libre/pacman/pacman.conf | 89 | ||||
-rw-r--r-- | libre/pacman/pacman.conf.mips64el | 89 | ||||
-rw-r--r-- | libre/pacman/pacman.conf.x86_64 | 98 | ||||
-rw-r--r-- | libre/pacman/pacman.install | 62 | ||||
-rw-r--r-- | libre/pacman/rePKGBUILD | 39 |
8 files changed, 611 insertions, 0 deletions
diff --git a/libre/pacman/0001-makepkg-fix-removing-symbolic-link.patch b/libre/pacman/0001-makepkg-fix-removing-symbolic-link.patch new file mode 100644 index 000000000..a14e1de69 --- /dev/null +++ b/libre/pacman/0001-makepkg-fix-removing-symbolic-link.patch @@ -0,0 +1,32 @@ +From c493eef643ecb3a54c79083c51a8975f816ed9de Mon Sep 17 00:00:00 2001 +From: Allan McRae <allan@archlinux.org> +Date: Tue, 28 Jun 2011 22:47:35 +1000 +Subject: [PATCH] makepkg: fix removing symbolic link + +The path was not being stripped from $file before prefixing with +$srcdir resulting in the attempted removal of a very weird +filename. + +Signed-off-by: Allan McRae <allan@archlinux.org> +Signed-off-by: Dan McGee <dan@archlinux.org> +(cherry picked from commit e92905a2c8c14c7855e2841f44d3c139aa40844c) +--- + scripts/makepkg.sh.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in +index 3ace945..b0b0882 100644 +--- a/scripts/makepkg.sh.in ++++ b/scripts/makepkg.sh.in +@@ -509,7 +509,7 @@ download_sources() { + local file=$(get_filepath "$netfile" || true) + if [[ -n "$file" ]]; then + msg2 "$(gettext "Found %s")" "${file##*/}" +- rm -f "$srcdir/$file" ++ rm -f "$srcdir/${file##*/}" + ln -s "$file" "$srcdir/" + continue + fi +-- +1.7.6 + diff --git a/libre/pacman/PKGBUILD b/libre/pacman/PKGBUILD new file mode 100644 index 000000000..1768684e1 --- /dev/null +++ b/libre/pacman/PKGBUILD @@ -0,0 +1,88 @@ +# $Id: PKGBUILD 126847 2011-06-07 19:50:19Z dan $ +# Maintainer: Dan McGee <dan@archlinux.org> + +pkgname=pacman +pkgver=3.5.4 +pkgrel=4 +pkgdesc="A library-based package manager with dependency support" +arch=('i686' 'x86_64' 'mips64el') +url="http://www.archlinux.org/pacman/" +license=('GPL') +groups=('base') +depends=('bash' 'glibc>=2.14' 'libarchive>=2.8.4' 'libfetch>=2.28' 'pacman-mirrorlist') +optdepends=('fakeroot: for makepkg usage as normal user' + 'curl: for rankmirrors usage') +backup=(etc/pacman.conf etc/makepkg.conf) +install=pacman.install +options=(!libtool) +source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz + pacman.conf + pacman.conf.x86_64 + pacman.conf.mips64el + makepkg.conf + 0001-makepkg-fix-removing-symbolic-link.patch) +md5sums=('2dd3a85d55ee3dd89abd349aa837447c' + 'ba85525fe868f030bef209b0487dd5a5' + '7aaccf24479f396d4a5987c8ccd2f3a2' + '150a2854816cd67b1608e00f99701c1c' + 'be10d3d2e533515a0470237761415568' + '749a4ddc6d8418d8d031f1c9b4e09d6f') + +# keep an upgrade path for older installations +PKGEXT='.pkg.tar.gz' + +build() { + cd $srcdir/$pkgname-$pkgver + + patch -Np1 < "$srcdir/0001-makepkg-fix-removing-symbolic-link.patch" + + ./configure --prefix=/usr --sysconfdir=/etc \ + --localstatedir=/var --enable-doc + make +} + +package() { + cd $srcdir/$pkgname-$pkgver + make DESTDIR=$pkgdir install + + # install Arch specific stuff + mkdir -p $pkgdir/etc + case "$CARCH" in + i686) + install -m644 $srcdir/pacman.conf $pkgdir/etc/pacman.conf + mycarch="i686" + mychost="i686-pc-linux-gnu" + myflags="-mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2" + myldflags="-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu" + ;; + x86_64) + install -m644 $srcdir/pacman.conf.x86_64 $pkgdir/etc/pacman.conf + mycarch="x86_64" + mychost="x86_64-unknown-linux-gnu" + myflags="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2" + myldflags="-Wl,--hash-style=gnu -Wl,--as-needed" + ;; + mips64el) + install -m644 $srcdir/pacman.conf.mips64el $pkgdir/etc/pacman.conf + mycarch="mips64el" + mychost="mips64el-unknown-linux-gnu" + myflags="-O2 -march=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2" + myldflags="" + ;; + esac + install -m644 $srcdir/makepkg.conf $pkgdir/etc/ + # set things correctly in the default conf file + sed -i $pkgdir/etc/makepkg.conf \ + -e "s|@CARCH[@]|$mycarch|g" \ + -e "s|@CHOST[@]|$mychost|g" \ + -e "s|@LDFLAGS[@]|$myldflags|g" \ + -e "s|@CARCHFLAGS[@]|$myflags|g" + + # install completion files + mkdir -p $pkgdir/etc/bash_completion.d/ + install -m644 contrib/bash_completion $pkgdir/etc/bash_completion.d/pacman + mkdir -p $pkgdir/usr/share/zsh/site-functions/ + install -m644 contrib/zsh_completion $pkgdir/usr/share/zsh/site-functions/_pacman +} + +# vim: set ts=2 sw=2 et: diff --git a/libre/pacman/makepkg.conf b/libre/pacman/makepkg.conf new file mode 100644 index 000000000..bfa971b7b --- /dev/null +++ b/libre/pacman/makepkg.conf @@ -0,0 +1,114 @@ +# +# /etc/makepkg.conf +# + +######################################################################### +# SOURCE ACQUISITION +######################################################################### +# +#-- The download utilities that makepkg should use to acquire sources +# Format: 'protocol::agent' +DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u' + 'http::/usr/bin/wget -c -t 3 --waitretry=3 -O %o %u' + 'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u' + 'rsync::/usr/bin/rsync -z %u %o' + 'scp::/usr/bin/scp -C %u %o') + +# Other common tools: +# /usr/bin/snarf +# /usr/bin/lftpget -c +# /usr/bin/curl + +######################################################################### +# ARCHITECTURE, COMPILE FLAGS +######################################################################### +# +CARCH="@CARCH@" +CHOST="@CHOST@" + +#-- Exclusive: will only run on @CARCH@ +# -march (or -mcpu) builds exclusively for an architecture +# -mtune optimizes for an architecture, but builds for whole processor family +CFLAGS="@CARCHFLAGS@" +CXXFLAGS="@CARCHFLAGS@" +LDFLAGS="@LDFLAGS@" +#-- Make Flags: change this for DistCC/SMP systems +#MAKEFLAGS="-j2" + +######################################################################### +# BUILD ENVIRONMENT +######################################################################### +# +# Defaults: BUILDENV=(fakeroot !distcc color !ccache check) +# A negated environment option will do the opposite of the comments below. +# +#-- fakeroot: Allow building packages as a non-root user +#-- distcc: Use the Distributed C/C++/ObjC compiler +#-- color: Colorize output messages +#-- ccache: Use ccache to cache compilation +#-- check: Run the check() function if present in the PKGBUILD +# +BUILDENV=(fakeroot !distcc color !ccache check) +# +#-- If using DistCC, your MAKEFLAGS will also need modification. In addition, +#-- specify a space-delimited list of hosts running in the DistCC cluster. +#DISTCC_HOSTS="" + +######################################################################### +# GLOBAL PACKAGE OPTIONS +# These are default values for the options=() settings +######################################################################### +# +# Default: OPTIONS=(strip docs libtool emptydirs zipman purge) +# A negated option will do the opposite of the comments below. +# +#-- strip: Strip symbols from binaries/libraries +#-- docs: Save doc directories specified by DOC_DIRS +#-- libtool: Leave libtool (.la) files in packages +#-- emptydirs: Leave empty directories in packages +#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip +#-- purge: Remove files specified by PURGE_TARGETS +# +OPTIONS=(strip docs libtool emptydirs zipman purge) + +#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512 +INTEGRITY_CHECK=(md5) +#-- Options to be used when stripping binaries. See `man strip' for details. +STRIP_BINARIES="--strip-all" +#-- Options to be used when stripping shared libraries. See `man strip' for details. +STRIP_SHARED="--strip-unneeded" +#-- Options to be used when stripping static libraries. See `man strip' for details. +STRIP_STATIC="--strip-debug" +#-- Manual (man and info) directories to compress (if zipman is specified) +MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info}) +#-- Doc directories to remove (if !docs is specified) +DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc}) +#-- Files to be removed from all packages (if purge is specified) +PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod) + +######################################################################### +# PACKAGE OUTPUT +######################################################################### +# +# Default: put built package and cached source in build directory +# +#-- Destination: specify a fixed directory where all packages will be placed +#PKGDEST=/home/packages +#-- Source cache: specify a fixed directory where source files will be cached +#SRCDEST=/home/sources +#-- Source packages: specify a fixed directory where all src packages will be placed +#SRCPKGDEST=/home/srcpackages +#-- Packager: name/email of the person or organization building packages +#PACKAGER="John Doe <john@doe.com>" + +######################################################################### +# EXTENSION DEFAULTS +######################################################################### +# +# WARNING: Do NOT modify these variables unless you know what you are +# doing. +# +PKGEXT='.pkg.tar.xz' +SRCEXT='.src.tar.gz' + +# vim: set ft=sh ts=2 sw=2 et: diff --git a/libre/pacman/pacman.conf b/libre/pacman/pacman.conf new file mode 100644 index 000000000..56f2b4670 --- /dev/null +++ b/libre/pacman/pacman.conf @@ -0,0 +1,89 @@ +# +# /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 - -f %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 +#CheckSpace + +# +# 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. + +#[libre-testing] +#Include = /etc/pacman.d/mirrorlist + +[libre] +Include = /etc/pacman.d/mirrorlist + +#[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 + +# Parabola also supports community projects and personal repositories, to find +# them check out this wiki page: http://wiki.parabolagnulinux.org/Repositories + +# 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/libre/pacman/pacman.conf.mips64el b/libre/pacman/pacman.conf.mips64el new file mode 100644 index 000000000..82955b965 --- /dev/null +++ b/libre/pacman/pacman.conf.mips64el @@ -0,0 +1,89 @@ +# +# /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 - -f %u > %o +#CleanMethod = KeepInstalled +Architecture = mips64el + +# 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 +#CheckSpace + +# +# 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. + +#[libre-testing] +#Include = /etc/pacman.d/mirrorlist + +[libre] +Include = /etc/pacman.d/mirrorlist + +#[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 + +# Parabola also supports community projects and personal repositories, to find +# them check out this wiki page: http://wiki.parabolagnulinux.org/Repositories + +# 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/libre/pacman/pacman.conf.x86_64 b/libre/pacman/pacman.conf.x86_64 new file mode 100644 index 000000000..503df75e2 --- /dev/null +++ b/libre/pacman/pacman.conf.x86_64 @@ -0,0 +1,98 @@ +# +# /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 - -f %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 +#CheckSpace + +# +# 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. + +#[libre-testing] +#Include = /etc/pacman.d/mirrorlist + +[libre] +Include = /etc/pacman.d/mirrorlist + +#[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 repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +#[multilib] +#Include = /etc/pacman.d/mirrorlist + +# Parabola also supports community projects and personal repositories, to find +# them check out this wiki page: http://wiki.parabolagnulinux.org/Repositories + +# 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/libre/pacman/pacman.install b/libre/pacman/pacman.install new file mode 100644 index 000000000..0e598bb4b --- /dev/null +++ b/libre/pacman/pacman.install @@ -0,0 +1,62 @@ +#!/bin/sh +# 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 + if [ "$(vercmp $2 3.5.0)" -lt 0 ]; then + _warnupgrade + fi +} + +_warnupgrade() { + echo ">>> The pacman database format has changed as of pacman 3.5.0." + echo ">>> You will need to run \`pacman-db-upgrade\` as root." + echo ">>>" +} + +_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 +} diff --git a/libre/pacman/rePKGBUILD b/libre/pacman/rePKGBUILD new file mode 100644 index 000000000..af613dc74 --- /dev/null +++ b/libre/pacman/rePKGBUILD @@ -0,0 +1,39 @@ +# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar> +source PKGBUILD +CARCH=x86_64 +unset build package md5sums source +_repo=core +source=(PKGBUILD + http://mirrors.kernel.org/archlinux/${_repo}/os/${CARCH}/${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT + # files for pkg modifications + pacman.conf + pacman.conf.x86_64 + ) +options=(!strip) + +build() { + cd "${srcdir}/" + rm .{INSTALL,PKGINFO} ${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT + # put actions for package modifications below this line + +} + +package() { + cd ${srcdir} + cp -a ./* ${pkgdir} + + rm ${pkgdir}/{PKGBUILD,pacman.conf{,.x86_64}} + +# No need to repackage for mips64el + case "$CARCH" in + i686) + install -m644 $srcdir/pacman.conf $pkgdir/etc/pacman.conf + ;; + x86_64) + install -m644 $srcdir/pacman.conf.x86_64 $pkgdir/etc/pacman.conf + ;; + esac +} + + +# vim:set ts=2 sw=2 et: |