Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/shadow/
Date: Mon, 22 Aug 2022 17:26:14
Message-Id: 1661189022.cb4678df788c15149b1f0c629c55cac2d5d6df75.sam@gentoo
1 commit: cb4678df788c15149b1f0c629c55cac2d5d6df75
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Mon Aug 22 17:23:24 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Mon Aug 22 17:23:42 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cb4678df
7
8 sys-apps/shadow: add 4.12.3
9
10 Signed-off-by: Sam James <sam <AT> gentoo.org>
11
12 sys-apps/shadow/Manifest | 2 +
13 sys-apps/shadow/shadow-4.12.3.ebuild | 259 +++++++++++++++++++++++++++++++++++
14 2 files changed, 261 insertions(+)
15
16 diff --git a/sys-apps/shadow/Manifest b/sys-apps/shadow/Manifest
17 index acb270ebf3d2..3d8dd3125c24 100644
18 --- a/sys-apps/shadow/Manifest
19 +++ b/sys-apps/shadow/Manifest
20 @@ -3,3 +3,5 @@ DIST shadow-4.12.1.tar.xz 1745968 BLAKE2B 613055a1ffa4499b8e9e106327dc13c38e51a7
21 DIST shadow-4.12.1.tar.xz.asc 488 BLAKE2B a8c38241971712ed1d382dcbb0ba7976b0e9d063feee2d5b23b443d7e5c4f51c221f660223ba92aa2d9ca3111bd200456425e9d8104a5be60c2c3d5b6b662a3f SHA512 f87d4353812e95b6b20d0be48fd1d63eebe6ecc4fe23a05493195c7b158a6454df7b88cb2617d56332f620a1ef0387ba782afa0b1b49a50545a79c14d4f928b9
22 DIST shadow-4.12.2.tar.xz 1746756 BLAKE2B 0f5b6c57b8682ffad34fe6acd700f6a2072ae327a6348142b37b87f1327af56beab5ee978b837453151f590aeb085d5c15040fe8403c257e3af8d92351c091b4 SHA512 d463fa84ce2a0b43a4a74be46d7a6d8c4ee90454bd4ec38ff4f1a1d016cf49c27ad3a2834e85795f093ae220ba594510aa5b5e4f12330ff3e35b752c285b1e15
23 DIST shadow-4.12.2.tar.xz.asc 488 BLAKE2B 342cbc8b0332cb007f78792fdcc5260d09df75a522973cc7c608966ce68e6523a7b56069ef2a651f1c8ed26fb75f05be61622b088aea0ebb23b9042bfcd47356 SHA512 1362a4e447b6d64c1fb4e670cad8b3f2c44c1a089d62b5f25c9e7e79ca12c472589729aafdbb51cd96eb3a12e2a5612fa3af8fb905f9cfc82168f22260b33d55
24 +DIST shadow-4.12.3.tar.xz 1747620 BLAKE2B 63b10d75a11d419156a996b8acf1bebbfab28999c2ab796e6625c028882073d4021806d8b56224190886c076a1205955e7797cb6f797ef73af3a8a33ac34bf2f SHA512 0529889258f54e7634762dc154aa680d55f8c5f1654afadd1b7431cfbb890a3b1ba27c7ff4b7c45986e4ee2289946db2e420b23ed13e4e5b15800a1fb3a013bc
25 +DIST shadow-4.12.3.tar.xz.asc 488 BLAKE2B b23525c3303f78df9d046c0225ed3ee1715cb000650630daae8b41fb71413daa45b5fe39a98fc640aaafa0f219fbaf9e065afa6b44f051373fb1967358ccc43d SHA512 d3f294d86c0e2174c88809810a801737c01cd01f9cadbe7b1ae382b2745d86e2e30c0718fa6489c2abb65500ed94c8ac1961d05243b5a1800c966384c69281c9
26
27 diff --git a/sys-apps/shadow/shadow-4.12.3.ebuild b/sys-apps/shadow/shadow-4.12.3.ebuild
28 new file mode 100644
29 index 000000000000..e3760212af13
30 --- /dev/null
31 +++ b/sys-apps/shadow/shadow-4.12.3.ebuild
32 @@ -0,0 +1,259 @@
33 +# Copyright 1999-2022 Gentoo Authors
34 +# Distributed under the terms of the GNU General Public License v2
35 +
36 +EAPI=8
37 +
38 +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/sergehallyn.asc
39 +inherit libtool pam verify-sig
40 +
41 +DESCRIPTION="Utilities to deal with user accounts"
42 +HOMEPAGE="https://github.com/shadow-maint/shadow"
43 +SRC_URI="https://github.com/shadow-maint/shadow/releases/download/${PV}/${P}.tar.xz"
44 +SRC_URI+=" verify-sig? ( https://github.com/shadow-maint/shadow/releases/download/${PV}/${P}.tar.xz.asc )"
45 +
46 +LICENSE="BSD GPL-2"
47 +# Subslot is for libsubid's SONAME.
48 +SLOT="0/4"
49 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
50 +IUSE="acl audit bcrypt cracklib nls pam selinux skey split-usr su xattr"
51 +# Taken from the man/Makefile.am file.
52 +LANGS=( cs da de es fi fr hu id it ja ko pl pt_BR ru sv tr zh_CN zh_TW )
53 +
54 +REQUIRED_USE="?? ( cracklib pam )"
55 +
56 +COMMON_DEPEND="
57 + virtual/libcrypt:=
58 + acl? ( sys-apps/acl:0= )
59 + audit? ( >=sys-process/audit-2.6:0= )
60 + cracklib? ( >=sys-libs/cracklib-2.7-r3:0= )
61 + nls? ( virtual/libintl )
62 + pam? ( sys-libs/pam:0= )
63 + skey? ( sys-auth/skey:0= )
64 + selinux? (
65 + >=sys-libs/libselinux-1.28:0=
66 + sys-libs/libsemanage:0=
67 + )
68 + xattr? ( sys-apps/attr:0= )
69 +"
70 +DEPEND="${COMMON_DEPEND}
71 + >=sys-kernel/linux-headers-4.14
72 +"
73 +RDEPEND="${COMMON_DEPEND}
74 + !<sys-apps/man-pages-5.11-r1
75 + !=sys-apps/man-pages-5.12-r0
76 + !=sys-apps/man-pages-5.12-r1
77 + nls? (
78 + !<app-i18n/man-pages-it-5.06-r1
79 + !<app-i18n/man-pages-ja-20180315-r1
80 + !<app-i18n/man-pages-ru-5.03.2390.2390.20191017-r1
81 + )
82 + pam? ( >=sys-auth/pambase-20150213 )
83 + su? ( !sys-apps/util-linux[su(-)] )
84 +"
85 +BDEPEND="
86 + app-arch/xz-utils
87 + sys-devel/gettext
88 + verify-sig? ( sec-keys/openpgp-keys-sergehallyn )
89 +"
90 +
91 +PATCHES=(
92 + "${FILESDIR}/${PN}-4.1.3-dots-in-usernames.patch"
93 +)
94 +
95 +src_prepare() {
96 + default
97 +
98 + elibtoolize
99 +}
100 +
101 +src_configure() {
102 + local myeconfargs=(
103 + --disable-account-tools-setuid
104 + --disable-static
105 + --with-btrfs
106 + --without-group-name-max-length
107 + --without-tcb
108 + $(use_enable nls)
109 + $(use_with acl)
110 + $(use_with audit)
111 + $(use_with bcrypt)
112 + $(use_with cracklib libcrack)
113 + $(use_with elibc_glibc nscd)
114 + $(use_with pam libpam)
115 + $(use_with selinux)
116 + $(use_with skey)
117 + $(use_with su)
118 + $(use_with xattr attr)
119 + )
120 +
121 + econf "${myeconfargs[@]}"
122 +
123 + if use nls ; then
124 + local l langs="po" # These are the pot files.
125 + for l in ${LANGS[*]} ; do
126 + has ${l} ${LINGUAS-${l}} && langs+=" ${l}"
127 + done
128 + sed -i "/^SUBDIRS = /s:=.*:= ${langs}:" man/Makefile || die
129 + fi
130 +}
131 +
132 +set_login_opt() {
133 + local comment="" opt=${1} val=${2}
134 + if [[ -z ${val} ]]; then
135 + comment="#"
136 + sed -i \
137 + -e "/^${opt}\>/s:^:#:" \
138 + "${ED}"/etc/login.defs || die
139 + else
140 + sed -i -r \
141 + -e "/^#?${opt}\>/s:.*:${opt} ${val}:" \
142 + "${ED}"/etc/login.defs
143 + fi
144 + local res=$(grep "^${comment}${opt}\>" "${ED}"/etc/login.defs)
145 + einfo "${res:-Unable to find ${opt} in /etc/login.defs}"
146 +}
147 +
148 +src_install() {
149 + emake DESTDIR="${D}" suidperms=4711 install
150 +
151 + # 4.9 regression: https://github.com/shadow-maint/shadow/issues/389
152 + emake DESTDIR="${D}" -C man install
153 +
154 + find "${ED}" -name '*.la' -type f -delete || die
155 +
156 + insinto /etc
157 + if ! use pam ; then
158 + insopts -m0600
159 + doins etc/login.access etc/limits
160 + fi
161 +
162 + # needed for 'useradd -D'
163 + insinto /etc/default
164 + insopts -m0600
165 + doins "${FILESDIR}"/default/useradd
166 +
167 + if use split-usr ; then
168 + # move passwd to / to help recover broke systems #64441
169 + # We cannot simply remove this or else net-misc/scponly
170 + # and other tools will break because of hardcoded passwd
171 + # location
172 + dodir /bin
173 + mv "${ED}"/usr/bin/passwd "${ED}"/bin/ || die
174 + dosym ../../bin/passwd /usr/bin/passwd
175 + fi
176 +
177 + cd "${S}" || die
178 + insinto /etc
179 + insopts -m0644
180 + newins etc/login.defs login.defs
181 +
182 + set_login_opt CREATE_HOME yes
183 + if ! use pam ; then
184 + set_login_opt MAIL_CHECK_ENAB no
185 + set_login_opt SU_WHEEL_ONLY yes
186 + set_login_opt CRACKLIB_DICTPATH /usr/lib/cracklib_dict
187 + set_login_opt LOGIN_RETRIES 3
188 + set_login_opt ENCRYPT_METHOD SHA512
189 + set_login_opt CONSOLE
190 + else
191 + dopamd "${FILESDIR}"/pam.d-include/shadow
192 +
193 + for x in chsh shfn ; do
194 + newpamd "${FILESDIR}"/pam.d-include/passwd ${x}
195 + done
196 +
197 + for x in chpasswd newusers ; do
198 + newpamd "${FILESDIR}"/pam.d-include/chpasswd ${x}
199 + done
200 +
201 + newpamd "${FILESDIR}"/pam.d-include/shadow-r1 groupmems
202 +
203 + # Comment out login.defs options that pam hates
204 + local opt sed_args=()
205 + for opt in \
206 + CHFN_AUTH \
207 + CONSOLE \
208 + CRACKLIB_DICTPATH \
209 + ENV_HZ \
210 + ENVIRON_FILE \
211 + FAILLOG_ENAB \
212 + FTMP_FILE \
213 + LASTLOG_ENAB \
214 + MAIL_CHECK_ENAB \
215 + MOTD_FILE \
216 + NOLOGINS_FILE \
217 + OBSCURE_CHECKS_ENAB \
218 + PASS_ALWAYS_WARN \
219 + PASS_CHANGE_TRIES \
220 + PASS_MIN_LEN \
221 + PORTTIME_CHECKS_ENAB \
222 + QUOTAS_ENAB \
223 + SU_WHEEL_ONLY
224 + do
225 + set_login_opt ${opt}
226 + sed_args+=( -e "/^#${opt}\>/b pamnote" )
227 + done
228 + sed -i "${sed_args[@]}" \
229 + -e 'b exit' \
230 + -e ': pamnote; i# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.' \
231 + -e ': exit' \
232 + "${ED}"/etc/login.defs || die
233 +
234 + # Remove manpages that pam will install for us
235 + # and/or don't apply when using pam
236 + find "${ED}"/usr/share/man -type f \
237 + '(' -name 'limits.5*' -o -name 'suauth.5*' ')' \
238 + -delete
239 +
240 + # Remove pam.d files provided by pambase.
241 + rm "${ED}"/etc/pam.d/{login,passwd} || die
242 + if use su ; then
243 + rm "${ED}"/etc/pam.d/su || die
244 + fi
245 + fi
246 +
247 + # Remove manpages that are handled by other packages
248 + find "${ED}"/usr/share/man -type f \
249 + '(' -name id.1 -o -name getspnam.3 ')' \
250 + -delete || die
251 +
252 + if ! use su ; then
253 + find "${ED}"/usr/share/man -type f -name su.1 -delete || die
254 + fi
255 +
256 + cd "${S}" || die
257 + dodoc ChangeLog NEWS TODO
258 + newdoc README README.download
259 + cd doc || die
260 + dodoc HOWTO README* WISHLIST *.txt
261 +}
262 +
263 +pkg_preinst() {
264 + rm -f "${EROOT}"/etc/pam.d/system-auth.new \
265 + "${EROOT}/etc/login.defs.new"
266 +}
267 +
268 +pkg_postinst() {
269 + # Missing entries from /etc/passwd can cause odd system blips.
270 + # See bug #829872.
271 + if ! pwck -r -q -R "${EROOT:-/}" &>/dev/null ; then
272 + ewarn "Running 'pwck' returned errors. Please run it manually to fix any errors."
273 + fi
274 +
275 + # Enable shadow groups.
276 + if [[ ! -f "${EROOT}"/etc/gshadow ]] ; then
277 + if grpck -r -R "${EROOT:-/}" 2>/dev/null ; then
278 + grpconv -R "${EROOT:-/}"
279 + else
280 + ewarn "Running 'grpck' returned errors. Please run it by hand, and then"
281 + ewarn "run 'grpconv' afterwards!"
282 + fi
283 + fi
284 +
285 + [[ ! -f "${EROOT}"/etc/subgid ]] &&
286 + touch "${EROOT}"/etc/subgid
287 + [[ ! -f "${EROOT}"/etc/subuid ]] &&
288 + touch "${EROOT}"/etc/subuid
289 +
290 + einfo "The 'adduser' symlink to 'useradd' has been dropped."
291 +}