From 53bc2cba958b00609fdfcf85f655399f00235305 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 21 Nov 2014 21:16:20 +0000
Subject: pacman: update to 4.1.2

---
 ...1-pacman-key-compatibility-with-gnupg-2.1.patch | 27 +++++++
 abs/core/pacman/PKGBUILD                           | 67 ++++++++++------
 abs/core/pacman/__changelog                        |  2 -
 abs/core/pacman/makepkg.conf                       | 19 +++--
 abs/core/pacman/pacman.conf.i686                   | 90 ++++++++++++++++++++++
 5 files changed, 171 insertions(+), 34 deletions(-)
 create mode 100644 abs/core/pacman/0001-pacman-key-compatibility-with-gnupg-2.1.patch
 create mode 100644 abs/core/pacman/pacman.conf.i686

diff --git a/abs/core/pacman/0001-pacman-key-compatibility-with-gnupg-2.1.patch b/abs/core/pacman/0001-pacman-key-compatibility-with-gnupg-2.1.patch
new file mode 100644
index 0000000..65b72ef
--- /dev/null
+++ b/abs/core/pacman/0001-pacman-key-compatibility-with-gnupg-2.1.patch
@@ -0,0 +1,27 @@
+From 41c8263ba289dac191d7f74faaa62476baf41c28 Mon Sep 17 00:00:00 2001
+From: Tobias Powalowski <tpowa@archlinux.org>
+Date: Fri, 21 Nov 2014 20:54:58 +1000
+Subject: [PATCH] pacman-key: compatibility with gnupg-2.1
+
+GnuPG 2.1 no longer allow empty passphrases by default.
+
+Signed-off-by: Allan McRae <allan@archlinux.org>
+---
+ scripts/pacman-key.sh.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/scripts/pacman-key.sh.in b/scripts/pacman-key.sh.in
+index ba8d02e..5ba0ad8 100644
+--- a/scripts/pacman-key.sh.in
++++ b/scripts/pacman-key.sh.in
+@@ -151,6 +151,7 @@ Key-Usage: sign
+ Name-Real: Pacman Keyring Master Key
+ Name-Email: pacman@localhost
+ Expire-Date: 0
++%no-protection
+ %commit
+ %echo Done
+ EOF
+-- 
+2.1.3
+
diff --git a/abs/core/pacman/PKGBUILD b/abs/core/pacman/PKGBUILD
index 56424d7..4e0fbf9 100644
--- a/abs/core/pacman/PKGBUILD
+++ b/abs/core/pacman/PKGBUILD
@@ -4,30 +4,47 @@
 # Maintainer: Dave Reisner <dreisner@archlinux.org>
 
 pkgname=pacman
-pkgver=4.1.0
-pkgrel=1
+pkgver=4.1.2
+pkgrel=7
 pkgdesc="A library-based package manager with dependency support"
 arch=('i686' 'x86_64')
 url="http://www.archlinux.org/pacman/"
 license=('GPL')
 groups=('base' 'base-devel')
-depends=('bash' 'glibc>=2.15' 'libarchive>=3.1.2' 'curl>=7.19.4'
+depends=('bash>=4.2.042-2' 'glibc>=2.17-2' 'libarchive>=3.1.2' 'curl>=7.19.4'
          'gpgme' 'pacman-mirrorlist' 'archlinux-keyring')
-makedepends=('asciidoc')
-checkdepends=('fakechroot')
+checkdepends=('python2' 'fakechroot')
 optdepends=('fakeroot: for makepkg usage as normal user')
+provides=('pacman-contrib')
+conflicts=('pacman-contrib')
+replaces=('pacman-contrib')
 backup=(etc/pacman.conf etc/makepkg.conf)
-install=pacman.install
-options=(!libtool)
+options=('strip' 'debug')
 source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz{,.sig}
+	0001-pacman-key-compatibility-with-gnupg-2.1.patch
+        pacman.conf.i686
         pacman.conf.x86_64
         makepkg.conf)
+md5sums=('063c8b0ff6bdf903dc235445525627cd'
+         'SKIP'
+         'd0e015b1bf78cbf9762d9c44ea5f77a9'
+         '2db6c94709bb30cc614a176ecf8badb1'
+         'de74a13618347f08ae4a9637f74471c4'
+         '2da6544e387f940588a90cb4b9b914e2')
+validpgpkeys=('6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD')  # Allan McRae <allan@archlinux.org>
+
+prepare() {
+  cd "$pkgname-$pkgver"
+  patch -p1 -i $srcdir/0001-pacman-key-compatibility-with-gnupg-2.1.patch
+}
 
 build() {
-  cd $srcdir/$pkgname-$pkgver
+  cd "$pkgname-$pkgver"
 
   ./configure --prefix=/usr --sysconfdir=/etc \
-    --localstatedir=/var --enable-doc
+    --localstatedir=/var --enable-doc \
+    --with-scriptlet-shell=/usr/bin/bash \
+    --with-ldconfig=/usr/bin/ldconfig
   make
   make -C contrib
 }
@@ -37,41 +54,43 @@ check() {
 }
 
 package() {
-  cd $srcdir/$pkgname-$pkgver
-  make DESTDIR=$pkgdir install
+  cd "$pkgname-$pkgver"
+
+  make DESTDIR="$pkgdir" install
+  make DESTDIR="$pkgdir" -C contrib install
 
   # install Arch specific stuff
-  mkdir -p $pkgdir/etc
-  case "$CARCH" in
+  install -dm755 "$pkgdir/etc"
+  install -m644 "$srcdir/pacman.conf.$CARCH" "$pkgdir/etc/pacman.conf"
+
+  case $CARCH in
     i686)
-      install -m644 $srcdir/pacman.conf.i686 $pkgdir/etc/pacman.conf
       mycarch="i686"
       mychost="i686-pc-linux-gnu"
       myflags="-march=i686"
       ;;
     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"
       ;;
   esac
-  install -m644 $srcdir/makepkg.conf $pkgdir/etc/
+
   # set things correctly in the default conf file
-  sed -i $pkgdir/etc/makepkg.conf \
+  install -m644 "$srcdir/makepkg.conf" "$pkgdir/etc"
+  sed -i "$pkgdir/etc/makepkg.conf" \
     -e "s|@CARCH[@]|$mycarch|g" \
     -e "s|@CHOST[@]|$mychost|g" \
     -e "s|@CARCHFLAGS[@]|$myflags|g"
 
-  # install completion files
-  install -Dm644 contrib/bash_completion "$pkgdir/usr/share/bash-completion/completions/pacman"
+  # put bash_completion in the right location
+  install -dm755 "$pkgdir/usr/share/bash-completion/completions"
+  mv "$pkgdir/etc/bash_completion.d/pacman" "$pkgdir/usr/share/bash-completion/completions"
+  rmdir "$pkgdir/etc/bash_completion.d"
+
   for f in makepkg pacman-key; do
     ln -s pacman "$pkgdir/usr/share/bash-completion/completions/$f"
   done
 
-  install -Dm644 contrib/zsh_completion $pkgdir/usr/share/zsh/site-functions/_pacman
+  install -Dm644 contrib/PKGBUILD.vim "$pkgdir/usr/share/vim/vimfiles/syntax/PKGBUILD.vim"
 }
-md5sums=('a0f2b3148bee4784f21cf373cf59a0bc'
-         'SKIP'
-         'de74a13618347f08ae4a9637f74471c4'
-         '2ea6f0a5badef735ec7d30a372f5e9c6')
diff --git a/abs/core/pacman/__changelog b/abs/core/pacman/__changelog
index d53c316..e69de29 100644
--- a/abs/core/pacman/__changelog
+++ b/abs/core/pacman/__changelog
@@ -1,2 +0,0 @@
-- PKGBUILD: change dep glibc to LH 2.16
-- pacman.install: remove SyncFirst option from /etc/pacman.conf
diff --git a/abs/core/pacman/makepkg.conf b/abs/core/pacman/makepkg.conf
index dfec258..8cf5faa 100644
--- a/abs/core/pacman/makepkg.conf
+++ b/abs/core/pacman/makepkg.conf
@@ -11,7 +11,7 @@
 DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
           'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
           'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
-          'rsync::/usr/bin/rsync -z %u %o'
+          'rsync::/usr/bin/rsync --no-motd -z %u %o'
           'scp::/usr/bin/scp -C %u %o')
 
 # Other common tools:
@@ -30,14 +30,14 @@ CHOST="@CHOST@"
 # -march (or -mcpu) builds exclusively for an architecture
 # -mtune optimizes for an architecture, but builds for whole processor family
 CPPFLAGS="-D_FORTIFY_SOURCE=2"
-CFLAGS="@CARCHFLAGS@ -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4"
-CXXFLAGS="@CARCHFLAGS@ -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4"
+CFLAGS="@CARCHFLAGS@ -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4"
+CXXFLAGS="@CARCHFLAGS@ -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4"
 LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro"
 #-- Make Flags: change this for DistCC/SMP systems
 #MAKEFLAGS="-j2"
 #-- Debugging flags
-#DEBUG_CFLAGS="-g -fvar-tracking-assignments"
-#DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
+DEBUG_CFLAGS="-g -fvar-tracking-assignments"
+DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
 
 #########################################################################
 # BUILD ENVIRONMENT
@@ -67,7 +67,7 @@ BUILDENV=(fakeroot !distcc color !ccache check !sign)
 #   These are default values for the options=() settings
 #########################################################################
 #
-# Default: OPTIONS=(strip docs libtool staticlibs emptydirs zipman purge !upx !debug)
+# Default: OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !upx !debug)
 #  A negated option will do the opposite of the comments below.
 #
 #-- strip:      Strip symbols from binaries/libraries
@@ -80,7 +80,7 @@ BUILDENV=(fakeroot !distcc color !ccache check !sign)
 #-- upx:        Compress binary executable files using UPX
 #-- debug:      Add debugging flags as specified in DEBUG_* variables
 #
-OPTIONS=(strip docs libtool staticlibs emptydirs zipman purge !upx !debug)
+OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !upx !debug)
 
 #-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
 INTEGRITY_CHECK=(md5)
@@ -109,6 +109,8 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
 #SRCDEST=/home/sources
 #-- Source packages: specify a fixed directory where all src packages will be placed
 #SRCPKGDEST=/home/srcpackages
+#-- Log files: specify a fixed directory where all log files will be placed
+#LOGDEST=/home/makepkglogs
 #-- Packager: name/email of the person or organization building packages
 #PACKAGER="John Doe <john@doe.com>"
 #-- Specify a key to use for package signing
@@ -121,9 +123,10 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
 COMPRESSGZ=(gzip -c -f -n)
 COMPRESSBZ2=(bzip2 -c -f)
 COMPRESSXZ=(xz -c -z -)
+COMPRESSLRZ=(lrzip -q)
+COMPRESSLZO=(lzop -q)
 COMPRESSZ=(compress -c -f)
 
-
 #########################################################################
 # EXTENSION DEFAULTS
 #########################################################################
diff --git a/abs/core/pacman/pacman.conf.i686 b/abs/core/pacman/pacman.conf.i686
new file mode 100644
index 0000000..92e76b4
--- /dev/null
+++ b/abs/core/pacman/pacman.conf.i686
@@ -0,0 +1,90 @@
+#
+# /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
+#GPGDir      = /etc/pacman.d/gnupg/
+HoldPkg     = pacman glibc
+#XferCommand = /usr/bin/curl -C - -f %u > %o
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+#UseDelta    = 0.7
+Architecture = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg   =
+#IgnoreGroup =
+
+#NoUpgrade   =
+#NoExtract   =
+
+# Misc options
+#UseSyslog
+#Color
+#TotalDownload
+CheckSpace
+#VerbosePkgLists
+
+# By default, pacman accepts packages signed by keys that its local keyring
+# trusts (see pacman-key and its man page), as well as unsigned packages.
+SigLevel    = Required DatabaseOptional
+LocalFileSigLevel = Optional
+#RemoteFileSigLevel = Required
+
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
+# keyring can then be populated with the keys of all official Arch Linux
+# packagers with `pacman-key --populate archlinux`.
+
+#
+# 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
+
+# An example of a custom package repository.  See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
-- 
cgit v0.12

