Diff bash-5.1_p16-r7 with a bash-5.2_p15-r5

/usr/portage/app-shells/bash/bash-5.2_p15-r5.ebuild 2023-10-09 14:52:28.852368334 +0300
7 7
inherit flag-o-matic toolchain-funcs prefix verify-sig
8 8

  
9 9
# Uncomment if we have a patchset
10
GENTOO_PATCH_DEV="sam"
11
GENTOO_PATCH_VER="${PV}"
10
#GENTOO_PATCH_DEV="sam"
11
#GENTOO_PATCH_VER="${PV}"
12 12

  
13 13
# Official patchlevel
14 14
# See ftp://ftp.cwru.edu/pub/bash/bash-5.1-patches/
......
20 20

  
21 21
is_release() {
22 22
	case ${PV} in
23
		*_alpha*|*_beta*|*_rc*)
23
		9999|*_alpha*|*_beta*|*_rc*)
24 24
			return 1
25 25
			;;
26 26
		*)
......
32 32
[[ ${PV} != *_p* ]] && PLEVEL=0
33 33

  
34 34
# The version of readline this bash normally ships with.
35
READLINE_VER="8.1"
35
# Note: right now, we don't use the system copy of readline for bash for non-releases.
36
READLINE_VER="8.2_p1"
36 37

  
37 38
DESCRIPTION="The standard GNU Bourne again shell"
38
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html"
39
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git"
39 40

  
40
if is_release ; then
41
if [[ ${PV} == 9999 ]] ; then
42
	EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git"
43
	EGIT_BRANCH=devel
44
	inherit git-r3
45
elif is_release ; then
41 46
	SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz"
42 47
	SRC_URI+=" verify-sig? ( mirror://gnu/bash/${MY_P}.tar.gz.sig )"
43 48

  
......
68 73
		unset my_p patch_url my_patch_index upstream_url_base mirror_url_base
69 74
	fi
70 75
else
71
	SRC_URI="ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz"
72
	SRC_URI+=" verify-sig? ( ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz.sig )"
76
	SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz"
77
	SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz.sig )"
73 78
fi
74 79

  
75 80
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
76 81
	SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
77 82
fi
78 83

  
79
LICENSE="GPL-3"
84
LICENSE="GPL-3+"
80 85
SLOT="0"
81
[[ "${PV}" == *_rc* ]] || \
82
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
83
IUSE="afs bashlogger examples mem-scramble +net nls plugins +readline"
86
if is_release ; then
87
	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
88
fi
89
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
84 90

  
85 91
DEPEND="
86
	>=sys-libs/ncurses-5.2-r2:0=
92
	>=sys-libs/ncurses-5.2-r2:=
87 93
	nls? ( virtual/libintl )
88
	readline? ( >=sys-libs/readline-${READLINE_VER}:0= )
89 94
"
95
if is_release ; then
96
	DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )"
97
fi
90 98
RDEPEND="
91 99
	${DEPEND}
92 100
"
93 101
# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011)
94
BDEPEND="sys-devel/bison
95
	verify-sig? ( sec-keys/openpgp-keys-chetramey )"
102
BDEPEND="
103
	sys-devel/bison
104
	pgo? ( dev-util/gperf )
105
	verify-sig? ( sec-keys/openpgp-keys-chetramey )
106
"
96 107

  
97 108
S="${WORKDIR}/${MY_P}"
98 109

  
110
# EAPI 8 tries to append it but it doesn't exist here
111
QA_CONFIGURE_OPTIONS="--disable-static"
112

  
99 113
PATCHES=(
100
	# Patches from Chet sent to bashbug ml
101
	"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-5.0-syslog-history-extern.patch
114
	#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
102 115

  
103
	"${FILESDIR}"/${PN}-5.1_p16-configure-clang16.patch
116
	# Patches from Chet sent to bash-bug ml
117
	"${FILESDIR}"/${PN}-5.0-syslog-history-extern.patch
118
	"${FILESDIR}"/${PN}-5.2_p15-random-ub.patch
119
	"${FILESDIR}"/${PN}-5.2_p15-configure-clang16.patch
104 120
)
105 121

  
106 122
pkg_setup() {
......
156 172
	sed -i -r '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in || die
157 173
	touch -r . doc/* || die
158 174

  
175
	# Sometimes hangs (more noticeable w/ pgo), bug #907403.
176
	rm tests/run-jobs || die
177

  
159 178
	eapply -p0 "${PATCHES[@]}"
160 179
	eapply_user
161 180
}
......
203 222
	#use static && export LDFLAGS="${LDFLAGS} -static"
204 223
	use nls || myconf+=( --disable-nls )
205 224

  
206
	# Historically, we always used the builtin readline, but since
207
	# our handling of SONAME upgrades has gotten much more stable
208
	# in the PM (and the readline ebuild itself preserves the old
209
	# libs during upgrades), linking against the system copy should
210
	# be safe.
211
	# Exact cached version here doesn't really matter as long as it
212
	# is at least what's in the DEPEND up above.
213
	export ac_cv_rl_version=${READLINE_VER%%_*}
214

  
215 225
	if is_release ; then
226
		# Historically, we always used the builtin readline, but since
227
		# our handling of SONAME upgrades has gotten much more stable
228
		# in the PM (and the readline ebuild itself preserves the old
229
		# libs during upgrades), linking against the system copy should
230
		# be safe.
231
		# Exact cached version here doesn't really matter as long as it
232
		# is at least what's in the DEPEND up above.
233
		export ac_cv_rl_version=${READLINE_VER%%_*}
234

  
216 235
		# Use system readline only with released versions.
217 236
		myconf+=( --with-installed-readline=. )
218 237
	fi
......
237 256
}
238 257

  
239 258
src_compile() {
240
	emake
259
	if use pgo ; then
260
		# Build Bash and run its tests to generate profiles.
261
		emake CFLAGS="${CFLAGS} -fprofile-generate=${T}/pgo -fprofile-dir=${T}/pgo"
241 262

  
242
	if use plugins ; then
243
		emake -C examples/loadables all others
263
		# Used in test suite.
264
		unset A
265

  
266
		emake CFLAGS="${CFLAGS} -fprofile-generate=${T}/pgo -fprofile-dir=${T}/pgo" -k check
267

  
268
		if tc-is-clang; then
269
			llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die
270
		fi
271

  
272
		# Rebuild Bash using the profiling data we just generated.
273
		emake clean
274
		emake CFLAGS="${CFLAGS} -fprofile-use=${T}/pgo -fprofile-dir=${T}/pgo"
275

  
276
		use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} -fprofile-use=${T}/pgo -fprofile-dir=${T}/pgo" all others
277
	else
278
		emake
279

  
280
		use plugins && emake -C examples/loadables all others
244 281
	fi
245 282
}
246 283

  
284
src_test() {
285
	# Used in test suite.
286
	unset A
287

  
288
	default
289
}
290

  
247 291
src_install() {
248 292
	local d f
249 293

  
Thank you!