blob: 7c1825b7c51d7173fc7cdbb79aed02b5864b3a93 (
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
#GAWK_IS_BETA=yes
DESCRIPTION="GNU awk pattern-matching language"
HOMEPAGE="https://www.gnu.org/software/gawk/gawk.html"
if [[ ${GAWK_IS_BETA} == yes || ${PV} == *_beta* ]] ; then
if [[ ${PV} == *_beta* ]] ; then
# Beta versioning is sometimes for the release prior, e.g.
# 5.2.1_beta is labelled upstream as 5.2.0b.
MY_PV=${PV/_beta/b}
MY_PV=$(ver_cut 1-2 ${MY_PV}).$(($(ver_cut 3 ${MY_PV}) - 1))$(ver_cut 4- ${MY_PV})
MY_P=${PN}-${MY_PV}
S="${WORKDIR}"/${MY_P}
else
MY_P=${P}
fi
SRC_URI="https://www.skeeve.com/gawk/${MY_P}.tar.gz"
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gawk.asc
inherit verify-sig
SRC_URI="mirror://gnu/gawk/${P}.tar.xz"
SRC_URI+=" verify-sig? ( mirror://gnu/gawk/${P}.tar.xz.sig )"
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"
fi
LICENSE="GPL-3+"
SLOT="0"
# While tempting to enable mpfr by default as e.g. Fedora do, as of 5.2.x,
# MPFR support is "on parole" and may be removed:
# https://www.gnu.org/software/gawk/manual/html_node/MPFR-On-Parole.html.
IUSE="mpfr pma nls readline"
RDEPEND="
mpfr? (
dev-libs/gmp:=
dev-libs/mpfr:=
)
readline? ( sys-libs/readline:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
>=sys-apps/texinfo-7.1
>=sys-devel/bison-3.5.4
nls? ( sys-devel/gettext )
"
if [[ ${GAWK_IS_BETA} != yes ]] ; then
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-gawk )"
fi
PATCHES=(
"${FILESDIR}"/${P}-str2wstr.patch
)
src_prepare() {
default
# Use symlinks rather than hardlinks, and disable version links
sed -i \
-e '/^LN =/s:=.*:= $(LN_S):' \
-e '/install-exec-hook:/s|$|\nfoo:|' \
Makefile.in doc/Makefile.in || die
# bug #413327
sed -i '/^pty1:$/s|$|\n_pty1:|' test/Makefile.in || die
# Fix standards conflict on Solaris
if [[ ${CHOST} == *-solaris* ]] ; then
sed -i \
-e '/\<_XOPEN_SOURCE\>/s/1$/600/' \
-e '/\<_XOPEN_SOURCE_EXTENDED\>/s/1//' \
extension/inplace.c || die
fi
}
src_configure() {
# README says gawk may not work properly if built with non-Bison.
# We already BDEPEND on Bison, so just unset YACC rather than
# guessing if we need to do yacc.bison or bison -y.
unset YACC
local myeconfargs=(
--cache-file="${S}"/config.cache
--libexec='$(libdir)/misc'
$(use_with mpfr)
$(use_enable nls)
$(use_enable pma)
$(use_with readline)
)
econf "${myeconfargs[@]}"
}
src_install() {
# Automatic dodocs barfs
rm -rf README_d || die
default
# Install headers
insinto /usr/include/awk
doins *.h
rm "${ED}"/usr/include/awk/config.h || die
}
pkg_postinst() {
# Symlink creation here as the links do not belong to gawk, but to any awk
if has_version app-admin/eselect && has_version app-eselect/eselect-awk ; then
eselect awk update ifunset
else
local l
for l in "${EROOT}"/usr/share/man/man1/gawk.1* "${EROOT}"/usr/bin/gawk ; do
if [[ -e ${l} ]] && ! [[ -e ${l/gawk/awk} ]] ; then
ln -s "${l##*/}" "${l/gawk/awk}" || die
fi
done
if ! [[ -e ${EROOT}/bin/awk ]] ; then
# /bin might not exist yet (stage1)
[[ -d "${EROOT}/bin" ]] || mkdir "${EROOT}/bin" || die
ln -s "../usr/bin/gawk" "${EROOT}/bin/awk" || die
fi
fi
}
pkg_postrm() {
if has_version app-admin/eselect && has_version app-eselect/eselect-awk ; then
eselect awk update ifunset
fi
}
|