1# Contributor: Rasmus Thomsen <oss@cogitri.dev>
2# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
3pkgname=linux-pam
4pkgver=1.7.0
5pkgrel=3
6pkgdesc="Linux PAM (Pluggable Authentication Modules for Linux)"
7url="https://www.kernel.org/pub/linux/libs/pam"
8arch="all"
9license="BSD-3-Clause"
10makedepends="
11 bison
12 flex-dev
13 linux-headers
14 meson
15 "
16options="suid !check"
17subpackages="$pkgname-dev $pkgname-manual::noarch $pkgname-doc"
18source="https://github.com/linux-pam/linux-pam/releases/download/v$pkgver/Linux-PAM-$pkgver.tar.xz
19
20 base-auth.pamd
21 base-account.pamd
22 base-password.pamd
23 base-session.pamd
24 base-session-noninteractive.pamd
25 other.pamd
26 login.pamd
27 su.pamd
28 "
29builddir="$srcdir"/Linux-PAM-$pkgver
30
31# secfixes:
32# 1.6.0-r0:
33# - CVE-2024-22365
34# 1.5.1-r0:
35# - CVE-2020-27780
36
37build() {
38 export CFLAGS="$CFLAGS -flto=auto"
39 export LDFLAGS="$LDFLAGS"
40 abuild-meson \
41 -Dexamples=false \
42 -Dhtmldir=/usr/share/doc/Linux-PAM \
43 -Ddocdir=/usr/share/man \
44 build .
45
46 meson compile -C build
47}
48
49package() {
50 DESTDIR="$pkgdir" meson install -C build
51
52 # install our pam.d files
53 install -Dm644 "$srcdir"/base-auth.pamd "$pkgdir"/usr/lib/pam.d/base-auth
54 install -Dm644 "$srcdir"/base-password.pamd "$pkgdir"/usr/lib/pam.d/base-password
55 install -Dm644 "$srcdir"/base-account.pamd "$pkgdir"/usr/lib/pam.d/base-account
56 install -Dm644 "$srcdir"/base-session.pamd "$pkgdir"/usr/lib/pam.d/base-session
57 install -Dm644 "$srcdir"/base-session-noninteractive.pamd \
58 "$pkgdir"/usr/lib/pam.d/base-session-noninteractive
59 install -Dm644 "$srcdir"/other.pamd "$pkgdir"/usr/lib/pam.d/other
60 install -Dm644 "$srcdir"/login.pamd "$pkgdir"/usr/lib/pam.d/login
61 install -Dm644 "$srcdir"/su.pamd "$pkgdir"/usr/lib/pam.d/su
62
63 # make "unix_chkpwd" shadow group and enable g+s
64 chgrp shadow "$pkgdir"/usr/sbin/unix_chkpwd \
65 && chmod g+s "$pkgdir"/usr/sbin/unix_chkpwd
66
67 # we don't ship systemd
68 rm -r "$pkgdir"/usr/lib/systemd
69}
70
71manual() {
72 pkgdesc="$pkgdesc (manual)"
73
74 amove usr/share/doc/Linux-PAM
75}
76
77sha512sums="
78ab5cadb0eb5e95e36146fdbbc77eef4e5e0f38aeee4e819b080a1316f69969c3c33e4a2daf3246ded4c2e58ce517d7f1acb0d8de02a4898ff753f4c3aeec51cf Linux-PAM-1.7.0.tar.xz
79988e4ba32fe6b7adeb4898c784eb40d6f88f3fca78ead82b61686f0e1597f306abb3ee338aa2e4cf2db0191b8c1a7e319332e7f6d6aed3ab381f71c0a3355de9 base-auth.pamd
805d3e960ead44dcb2b3f732825482eefab9a9ffa4d4d5fc1d30cbf2fe8c5c896f1114a0ad3a6c606fa9fbf5c43400388f4ee8d7fca8110721eabfc9691004756b base-account.pamd
81b3a900d6067ba04faa8016d9408da75917e8c0502020a4048bba1de2ca54c705c4d5f8307e759080fd5a9d5f3522f52a708803f1f01627eac56d9d7c6d363d13 base-password.pamd
82fcf6d2413b658a158436d1b9db9d8255ce5f12f0a3151268c49702333dbbf4e6429a72a36ce74c48f346dc2b44ac16898fae79f49756d5b89a386fdcdce0186a base-session.pamd
832f18114b8a6a78ed798646962526876f3536b4759c00dce339e21f0695ea71d0917c048dc852c3d1c79bd17cd19dc513a3c6463abaffcff3f792b906cec98ede base-session-noninteractive.pamd
84299bb3791652174a4d836d60f146200bb692ad80c20c18e6e872543ac8885156ff1a7ca00acaf55b89672fa98f00b8df53879c9ab1913a9cc91f620163dd50be other.pamd
85ae3a807bc121eb59b54f5e53ff8efdde972610cf7463b6a38bccbc89b49954aa2e0a8693919b01f8bc7a956ba58c97de34a28963bc14f526b70b3073d64427b5 login.pamd
86a71ac72a21a5d18612365b2b0a4a0da1f9d1101a30d3f5d97f479f6378c3a0fbc219617000448c8b5a0ab2597f2e4944202b13a69624dbe849bf9ea39d00ca22 su.pamd
87"