Gentoo Archives: gentoo-commits

From: Amy Liffey <amynka@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/fpc/
Date: Fri, 25 Aug 2017 11:46:22
Message-Id: 1503661504.09a601f2701211a6ef4a6556ff12b1e3d33e7d51.amynka@gentoo
1 commit: 09a601f2701211a6ef4a6556ff12b1e3d33e7d51
2 Author: Horea Christian <horea.christ <AT> yandex <DOT> com>
3 AuthorDate: Mon Aug 21 15:24:59 2017 +0000
4 Commit: Amy Liffey <amynka <AT> gentoo <DOT> org>
5 CommitDate: Fri Aug 25 11:45:04 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=09a601f2
7
8 dev-lang/fpc: added new revision which is usable under prefix
9
10 Package-Manager: Portage-2.3.8, Repoman-2.3.3
11
12 dev-lang/fpc/fpc-3.0.2-r1.ebuild | 165 +++++++++++++++++++++++++++++++++++++++
13 dev-lang/fpc/metadata.xml | 4 +-
14 2 files changed, 167 insertions(+), 2 deletions(-)
15
16 diff --git a/dev-lang/fpc/fpc-3.0.2-r1.ebuild b/dev-lang/fpc/fpc-3.0.2-r1.ebuild
17 new file mode 100644
18 index 00000000000..38a17395ed7
19 --- /dev/null
20 +++ b/dev-lang/fpc/fpc-3.0.2-r1.ebuild
21 @@ -0,0 +1,165 @@
22 +# Copyright 1999-2017 Gentoo Foundation
23 +# Distributed under the terms of the GNU General Public License v2
24 +
25 +EAPI=5
26 +
27 +inherit prefix toolchain-funcs
28 +
29 +HOMEPAGE="https://www.freepascal.org/"
30 +DESCRIPTION="Free Pascal Compiler"
31 +SRC_URI="mirror://sourceforge/freepascal/fpcbuild-${PV}.tar.gz
32 + mirror://sourceforge/freepascal/fpc-${PV}.source.tar.gz
33 + amd64? ( mirror://sourceforge/freepascal/${P}.x86_64-linux.tar )
34 + x86? ( mirror://sourceforge/freepascal/${P}.i386-linux.tar )
35 + doc? ( mirror://sourceforge/freepascal/Documentation/${PV}/doc-html.tar.gz -> ${P}-doc-html.tar.gz )"
36 +
37 +SLOT="0"
38 +LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
39 +KEYWORDS="~amd64 ~x86"
40 +IUSE="doc ide source"
41 +
42 +RDEPEND="ide? ( !dev-lang/fpc-ide )"
43 +
44 +RESTRICT="strip" #269221
45 +
46 +S=${WORKDIR}/fpcbuild-${PV}/fpcsrc
47 +
48 +pkg_pretend() {
49 + if [[ ${MERGE_TYPE} != binary ]]; then
50 + # Bug 475210
51 + if $(tc-getLD) --version | grep -q "GNU gold"; then
52 + eerror "fpc does not function correctly when built with the gold linker."
53 + eerror "Please select the bfd linker with binutils-config."
54 + die "GNU gold detected"
55 + fi
56 + fi
57 +}
58 +
59 +src_unpack() {
60 + case ${ARCH} in
61 + amd64) FPC_ARCH="x86_64" PV_BIN=${PV} ;;
62 + x86) FPC_ARCH="i386" PV_BIN=${PV} ;;
63 + *) die "This ebuild doesn't support ${ARCH}." ;;
64 + esac
65 +
66 + unpack ${A}
67 +
68 + tar -xf ${PN}-${PV_BIN}.${FPC_ARCH}-linux/binary.${FPC_ARCH}-linux.tar || die "Unpacking binary.${FPC_ARCH}-linux.tar failed!"
69 + tar -xzf base.${FPC_ARCH}-linux.tar.gz || die "Unpacking base.${FPC_ARCH}-linux.tar.gz failed!"
70 +}
71 +
72 +src_prepare() {
73 + find "${WORKDIR}" -name Makefile -exec sed -i -e 's/ -Xs / /g' {} + || die
74 +
75 + # let the pkg manager compress man files
76 + sed -i '/find man.* gzip /d' "${WORKDIR}"/fpcbuild-${PV}/install/man/Makefile || die
77 +
78 + # make the compiled binary check for fpc.cfg under the prefixed /etc/ path
79 + hprefixify "${WORKDIR}"/fpcbuild-${PV}/fpcsrc/compiler/options.pas
80 +}
81 +
82 +set_pp() {
83 + case ${ARCH} in
84 + amd64) FPC_ARCH="x64" FPC_PARCH="x86_64" ;;
85 + x86) FPC_ARCH="386" FPC_PARCH="i386" ;;
86 + *) die "This ebuild doesn't support ${ARCH}." ;;
87 + esac
88 +
89 + case ${1} in
90 + bootstrap) pp="${WORKDIR}"/lib/fpc/${PV_BIN}/ppc${FPC_ARCH} ;;
91 + new) pp="${S}"/compiler/ppc${FPC_ARCH} ;;
92 + *) die "set_pp: unknown argument: ${1}" ;;
93 + esac
94 +}
95 +
96 +src_compile() {
97 + local pp
98 +
99 + # Using the bootstrap compiler.
100 + set_pp bootstrap
101 +
102 + emake -j1 PP="${pp}" compiler_cycle AS="$(tc-getAS)"
103 +
104 + # Save new compiler from cleaning...
105 + cp "${S}"/compiler/ppc${FPC_ARCH} "${S}"/ppc${FPC_ARCH}.new || die
106 +
107 + # ...rebuild with current version...
108 + emake -j1 PP="${S}"/ppc${FPC_ARCH}.new AS="$(tc-getAS)" compiler_cycle
109 +
110 + # ..and clean up afterwards
111 + rm "${S}"/ppc${FPC_ARCH}.new || die
112 +
113 + # Using the new compiler.
114 + set_pp new
115 +
116 + emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl_clean
117 +
118 + emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl packages_all utils
119 +
120 + if use ide ; then
121 + cd "${S}"/ide || die
122 + emake -j1 PP="${pp}" AS="$(tc-getAS)"
123 + fi
124 +}
125 +
126 +src_install() {
127 + local pp
128 + set_pp new
129 +
130 + #fpcbuild-3.0.0/utils/fpcm/fpcmake
131 + #${WORKDIR}/${PN}build-${PV}/utils/fpcm/fpcmake"
132 + #fpcbuild-3.0.0/fpcsrc/utils/fpcm/bin/x86_64-linux/fpcmake
133 + set -- PP="${pp}" FPCMAKE="${S}/utils/fpcm/bin/${FPC_PARCH}-linux/fpcmake" \
134 + INSTALL_PREFIX="${ED}"/usr \
135 + INSTALL_DOCDIR="${ED}"/usr/share/doc/${PF} \
136 + INSTALL_MANDIR="${ED}"/usr/share/man \
137 + INSTALL_SOURCEDIR="${ED}"/usr/lib/fpc/${PV}/source
138 +
139 + emake -j1 "$@" compiler_install rtl_install packages_install utils_install
140 +
141 + dosym ../lib/fpc/${PV}/ppc${FPC_ARCH} /usr/bin/ppc${FPC_ARCH}
142 +
143 + cd "${S}"/../install/doc || die
144 + emake -j1 "$@" installdoc
145 +
146 + cd "${S}"/../install/man || die
147 + emake -j1 "$@" installman
148 +
149 + if use doc ; then
150 + cd "${S}"/../../doc || die
151 + dodoc -r *
152 + fi
153 +
154 + if use ide ; then
155 + cd "${S}"/ide || die
156 + emake -j1 "$@" install
157 + fi
158 +
159 + if use source ; then
160 + cd "${S}" || die
161 + shift
162 + emake -j1 PP="${ED}"/usr/bin/ppc${FPC_ARCH} "$@" sourceinstall
163 + find "${ED}"/usr/lib/fpc/${PV}/source -name '*.o' -exec rm {} \;
164 + fi
165 +
166 + "${ED}"/usr/lib/fpc/${PV}/samplecfg "${ED}"/usr/lib/fpc/${PV} "${ED}"/etc || die
167 +
168 + # set correct (prefixed) path for e.g. unit files
169 + sed -i "s:${ED}:${EPREFIX}:g" "${ED}"/etc/fpc.cfg || die
170 +
171 + if use ide ; then
172 + sed -e "s:${ED}::g" \
173 + -i "${ED}"/etc/fppkg.cfg \
174 + -i "${ED}"/etc/fppkg/* \
175 + -i "${ED}"/usr/lib/fpc/${PV}/ide/text/fp*.cfg \
176 + || die
177 + fi
178 +
179 + rm -r "${ED}"/usr/lib/fpc/lexyacc || die
180 +}
181 +
182 +pkg_postinst() {
183 + if [[ -z ${REPLACING_VERSIONS} ]] && use ide; then
184 + einfo "To read the documentation in the fpc IDE, enable the doc USE flag"
185 + fi
186 +}
187
188 diff --git a/dev-lang/fpc/metadata.xml b/dev-lang/fpc/metadata.xml
189 index 515fcf55caa..f42de96b8d5 100644
190 --- a/dev-lang/fpc/metadata.xml
191 +++ b/dev-lang/fpc/metadata.xml
192 @@ -2,8 +2,8 @@
193 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
194 <pkgmetadata>
195 <maintainer type="person">
196 - <email>amynka@g.o</email>
197 - </maintainer>
198 + <email>amynka@g.o</email>
199 + </maintainer>
200 <use>
201 <flag name="ide">Build and install the Free Pascal Compiler IDE</flag>
202 </use>