summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: ae7e119d4d02a3ebb5ef8c039e5197b89aa3160a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Upstream Maintainer: jtts
# Contributor: josephgbr <rafael.f.f1 at gmail.com> 
# Contributor: Janax <janax99@yahoo.com>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
# Maintainer: Fantix King <fantix.king at gmail.com> 

_pkgbasename=pam
pkgname=libx32-${_pkgbasename}
pkgver=1.1.8
pkgrel=5
pkgdesc="PAM (Pluggable Authentication Modules) library (x32 ABI)"
arch=('x86_64')
license=('GPL2')
url="http://linux-pam.org"
depends=(libx32-cracklib libx32-libtirpc $_pkgbasename) # pambase libx32-glibc
makedepends=('libx32-flex' 'gcc-multilib-x32') # w3m docbook-xml>=4.4 docbook-xsl
#backup=(etc/security/{access.conf,group.conf,limits.conf,namespace.conf,namespace.init,pam_env.conf,time.conf} etc/default/passwd etc/environment)
source=(https://fedorahosted.org/releases/l/i/linux-pam/Linux-PAM-$pkgver.tar.bz2
        ftp://ftp.archlinux.org/other/pam_unix2/pam_unix2-2.9.1.tar.bz2
        pam_unix2-glibc216.patch
        pam-1.1.8-cve-2013-7041.patch
        pam-1.1.8-cve-2014-2583.patch)
sha256sums=('c4b1f23a236d169e2496fea20721578d864ba00f7242d2b41d81050ac87a1e55'
            '3315747699fece4e1cc5771885d243b3e017c4c4ca1326e86228d590a840e955'
            '6644c5cff46878c65bdc77977becbeda392675702264bfcc7c610a45a9982574'
            '18034730d74f67c79feb2c6abc796442c0c548ce221b8e9d633e98a7bd3cce2c'
            'b10255f690f9f4a8cec044383d9cd03031b9a7be9892d824b2adc451d6d06f65')
options=('!emptydirs')

prepare () {
  cd $srcdir/Linux-PAM-$pkgver
  # fix CVEs in pam
  patch -Np1 -i  "${srcdir}/pam-1.1.8-cve-2013-7041.patch"
  patch -Np1 -i  "${srcdir}/pam-1.1.8-cve-2014-2583.patch"

  # fix pam_unix2 building
  cd $srcdir/pam_unix2-2.9.1
  patch -Np1 -i "${srcdir}/pam_unix2-glibc216.patch"
}

build() {
  export CC='gcc -mx32'
  export CXX='g++ -mx32'
  export PKG_CONFIG_PATH='/usr/libx32/pkgconfig'
  
  cd $srcdir/Linux-PAM-$pkgver
  ./configure --libdir=/usr/libx32 --sbindir=/usr/bin --with-xml-catalog=no --disable-db
  make

  cd $srcdir/pam_unix2-2.9.1
  # modify flags to build against the pam compiled here, not a system lib.
  ./configure \
      CFLAGS="$CFLAGS -I$srcdir/Linux-PAM-$pkgver/libpam/include/" \
      LDFLAGS="$LDFLAGS -L$srcdir/Linux-PAM-$pkgver/libpam/.libs/" \
      --libdir=/usr/libx32 \
      --sbindir=/usr/bin
  make
}

package() {
  cd $srcdir/Linux-PAM-$pkgver
  make DESTDIR=$pkgdir SCONFIGDIR=/etc/security install

  # build pam_unix2 module
  # source ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2
  cd $srcdir/pam_unix2-2.9.1
  #make DESTDIR=$pkgdir install
  install src/pam_unix2.so $pkgdir/usr/libx32/security/pam_unix2.so

  # add the realtime permissions for audio users
  #sed -i 's|# End of file||' $pkgdir/etc/security/limits.conf
  #cat >>$pkgdir/etc/security/limits.conf <<_EOT
#*               -       rtprio          0
#*               -       nice            0
#@audio          -       rtprio          65
#@audio          -       nice           -10
#@audio          -       memlock         40000
#_EOT

  # fix some missing symlinks from old pam for compatibility
  cd $pkgdir/usr/libx32/security
  ln -s pam_unix.so pam_unix_acct.so
  ln -s pam_unix.so pam_unix_auth.so
  ln -s pam_unix.so pam_unix_passwd.so
  ln -s pam_unix.so pam_unix_session.so

  # set unix_chkpwd uid
  #chmod +s $pkgdir/usr/bin/unix_chkpwd

  # cleanup for libx32 package
  rm -rf "${pkgdir}"/{etc,usr/{include,share,bin}}
}