1 |
spyderous |
1.1 |
# Copyright 1999-2005 Gentoo Foundation |
2 |
|
|
# Distributed under the terms of the GNU General Public License v2 |
3 |
chithanh |
1.122 |
# $Header: /var/cvsroot/gentoo-x86/eclass/x-modular.eclass,v 1.121 2011/08/29 01:28:10 vapier Exp $ |
4 |
scarabeus |
1.120 |
# |
5 |
|
|
# @DEPRECATED |
6 |
|
|
# This eclass has been superseded by xorg-2 |
7 |
|
|
# Please modify your ebuilds to use that instead |
8 |
spyderous |
1.1 |
# |
9 |
dberkholz |
1.91 |
# @ECLASS: x-modular.eclass |
10 |
|
|
# @MAINTAINER: |
11 |
|
|
# Donnie Berkholz <dberkholz@gentoo.org>, x11@gentoo.org |
12 |
|
|
# @BLURB: Reduces code duplication in the modularized X11 ebuilds. |
13 |
|
|
# @DESCRIPTION: |
14 |
|
|
# This eclass makes trivial X ebuilds possible for apps, fonts, drivers, |
15 |
|
|
# and more. Many things that would normally be done in various functions |
16 |
|
|
# can be accessed by setting variables instead, such as patching, |
17 |
|
|
# running eautoreconf, passing options to configure and installing docs. |
18 |
spyderous |
1.1 |
# |
19 |
dberkholz |
1.91 |
# All you need to do in a basic ebuild is inherit this eclass and set |
20 |
|
|
# DESCRIPTION, KEYWORDS and RDEPEND/DEPEND. If your package is hosted |
21 |
|
|
# with the other X packages, you don't need to set SRC_URI. Pretty much |
22 |
|
|
# everything else should be automatic. |
23 |
|
|
|
24 |
remi |
1.109 |
if [[ ${PV} = 9999* ]]; then |
25 |
|
|
GIT_ECLASS="git" |
26 |
|
|
SNAPSHOT="yes" |
27 |
|
|
SRC_URI="" |
28 |
|
|
fi |
29 |
|
|
|
30 |
|
|
# If we're a font package, but not the font.alias one |
31 |
|
|
FONT_ECLASS="" |
32 |
|
|
if [[ "${PN/#font-}" != "${PN}" ]] \ |
33 |
|
|
&& [[ "${CATEGORY}" = "media-fonts" ]] \ |
34 |
|
|
&& [[ "${PN}" != "font-alias" ]] \ |
35 |
|
|
&& [[ "${PN}" != "font-util" ]]; then |
36 |
|
|
# Activate font code in the rest of the eclass |
37 |
|
|
FONT="yes" |
38 |
|
|
|
39 |
|
|
# Whether to inherit the font eclass |
40 |
|
|
FONT_ECLASS="font" |
41 |
|
|
fi |
42 |
|
|
|
43 |
|
|
inherit eutils libtool multilib toolchain-funcs flag-o-matic autotools \ |
44 |
|
|
${FONT_ECLASS} ${GIT_ECLASS} |
45 |
|
|
|
46 |
|
|
EXPORTED_FUNCTIONS="src_unpack src_compile src_install pkg_preinst pkg_postinst pkg_postrm" |
47 |
|
|
|
48 |
|
|
case "${EAPI:-0}" in |
49 |
|
|
0|1) |
50 |
|
|
;; |
51 |
|
|
2) |
52 |
|
|
EXPORTED_FUNCTIONS="${EXPORTED_FUNCTIONS} src_prepare src_configure" |
53 |
|
|
;; |
54 |
|
|
*) |
55 |
|
|
die "Unknown EAPI ${EAPI}" |
56 |
|
|
;; |
57 |
|
|
esac |
58 |
|
|
|
59 |
|
|
# exports must be ALWAYS after inherit |
60 |
|
|
EXPORT_FUNCTIONS ${EXPORTED_FUNCTIONS} |
61 |
|
|
|
62 |
dberkholz |
1.91 |
# @ECLASS-VARIABLE: XDIR |
63 |
|
|
# @DESCRIPTION: |
64 |
|
|
# Directory prefix to use for everything. If you want to install to a |
65 |
|
|
# non-default prefix (e.g., /opt/xorg), change XDIR. This has not been |
66 |
|
|
# recently tested. You may need to uncomment the setting of datadir and |
67 |
|
|
# mandir in x-modular_src_install() or add it back in if it's no longer |
68 |
|
|
# there. You may also want to change the SLOT. |
69 |
spyderous |
1.1 |
XDIR="/usr" |
70 |
|
|
|
71 |
|
|
IUSE="" |
72 |
|
|
HOMEPAGE="http://xorg.freedesktop.org/" |
73 |
spyderous |
1.44 |
|
74 |
dberkholz |
1.91 |
# @ECLASS-VARIABLE: SNAPSHOT |
75 |
|
|
# @DESCRIPTION: |
76 |
|
|
# If set to 'yes' and configure.ac exists, eautoreconf will run. Set |
77 |
|
|
# before inheriting this eclass. |
78 |
vapier |
1.118 |
: ${SNAPSHOT:=no} |
79 |
dberkholz |
1.91 |
|
80 |
spyderous |
1.44 |
# Set up SRC_URI for individual modular releases |
81 |
|
|
BASE_INDIVIDUAL_URI="http://xorg.freedesktop.org/releases/individual" |
82 |
dberkholz |
1.99 |
# @ECLASS-VARIABLE: MODULE |
83 |
|
|
# @DESCRIPTION: |
84 |
|
|
# The subdirectory to download source from. Possible settings are app, |
85 |
|
|
# doc, data, util, driver, font, lib, proto, xserver. Set above the |
86 |
|
|
# inherit to override the default autoconfigured module. |
87 |
dberkholz |
1.101 |
if [[ -z ${MODULE} ]]; then |
88 |
|
|
case ${CATEGORY} in |
89 |
|
|
app-doc) MODULE="doc" ;; |
90 |
|
|
media-fonts) MODULE="font" ;; |
91 |
|
|
x11-apps|x11-wm) MODULE="app" ;; |
92 |
|
|
x11-misc|x11-themes) MODULE="util" ;; |
93 |
|
|
x11-drivers) MODULE="driver" ;; |
94 |
|
|
x11-base) MODULE="xserver" ;; |
95 |
|
|
x11-proto) MODULE="proto" ;; |
96 |
|
|
x11-libs) MODULE="lib" ;; |
97 |
|
|
esac |
98 |
|
|
fi |
99 |
dberkholz |
1.87 |
|
100 |
|
|
if [[ -n ${GIT_ECLASS} ]]; then |
101 |
|
|
EGIT_REPO_URI="git://anongit.freedesktop.org/git/xorg/${MODULE}/${PN}" |
102 |
|
|
else |
103 |
|
|
SRC_URI="${SRC_URI} ${BASE_INDIVIDUAL_URI}/${MODULE}/${P}.tar.bz2" |
104 |
spyderous |
1.44 |
fi |
105 |
|
|
|
106 |
spyderous |
1.1 |
SLOT="0" |
107 |
|
|
|
108 |
joshuabaergen |
1.40 |
# Set the license for the package. This can be overridden by setting |
109 |
remi |
1.113 |
# LICENSE after the inherit. Nearly all FreeDesktop-hosted X packages |
110 |
|
|
# are under the MIT license. (This is what Red Hat does in their rpms) |
111 |
|
|
LICENSE="MIT" |
112 |
joshuabaergen |
1.40 |
|
113 |
spyderous |
1.1 |
# Set up shared dependencies |
114 |
spyderous |
1.28 |
if [[ -n "${SNAPSHOT}" ]]; then |
115 |
spyderous |
1.1 |
# FIXME: What's the minimal libtool version supporting arbitrary versioning? |
116 |
|
|
DEPEND="${DEPEND} |
117 |
|
|
>=sys-devel/libtool-1.5 |
118 |
|
|
>=sys-devel/m4-1.4" |
119 |
joshuabaergen |
1.81 |
WANT_AUTOCONF="latest" |
120 |
|
|
WANT_AUTOMAKE="latest" |
121 |
spyderous |
1.1 |
fi |
122 |
|
|
|
123 |
remi |
1.109 |
if [[ -n "${FONT}" ]]; then |
124 |
spyderous |
1.3 |
RDEPEND="${RDEPEND} |
125 |
spyderous |
1.36 |
media-fonts/encodings |
126 |
spyderous |
1.30 |
x11-apps/mkfontscale |
127 |
|
|
x11-apps/mkfontdir" |
128 |
spyderous |
1.3 |
PDEPEND="${PDEPEND} |
129 |
|
|
media-fonts/font-alias" |
130 |
spyderous |
1.25 |
|
131 |
|
|
# Starting with 7.0RC3, we can specify the font directory |
132 |
|
|
# But oddly, we can't do the same for encodings or font-alias |
133 |
|
|
|
134 |
dberkholz |
1.91 |
# @ECLASS-VARIABLE: FONT_DIR |
135 |
|
|
# @DESCRIPTION: |
136 |
|
|
# If you're creating a font package and the suffix of PN is not equal to |
137 |
|
|
# the subdirectory of /usr/share/fonts/ it should install into, set |
138 |
|
|
# FONT_DIR to that directory or directories. Set before inheriting this |
139 |
|
|
# eclass. |
140 |
vapier |
1.118 |
: ${FONT_DIR:=${PN##*-}} |
141 |
spyderous |
1.25 |
|
142 |
|
|
# Fix case of font directories |
143 |
|
|
FONT_DIR=${FONT_DIR/ttf/TTF} |
144 |
|
|
FONT_DIR=${FONT_DIR/otf/OTF} |
145 |
|
|
FONT_DIR=${FONT_DIR/type1/Type1} |
146 |
|
|
FONT_DIR=${FONT_DIR/speedo/Speedo} |
147 |
|
|
|
148 |
dirtyepic |
1.111 |
# Set up configure options, wrapped so ebuilds can override if need be |
149 |
|
|
if [[ -z ${FONT_OPTIONS} ]]; then |
150 |
|
|
FONT_OPTIONS="--with-fontdir=\"/usr/share/fonts/${FONT_DIR}\"" |
151 |
|
|
fi |
152 |
spyderous |
1.25 |
|
153 |
|
|
if [[ -n "${FONT}" ]]; then |
154 |
dberkholz |
1.96 |
if [[ ${PN##*-} = misc ]] || [[ ${PN##*-} = 75dpi ]] || [[ ${PN##*-} = 100dpi ]] || [[ ${PN##*-} = cyrillic ]]; then |
155 |
spyderous |
1.25 |
IUSE="${IUSE} nls" |
156 |
|
|
fi |
157 |
|
|
fi |
158 |
spyderous |
1.3 |
fi |
159 |
|
|
|
160 |
spyderous |
1.7 |
# If we're a driver package |
161 |
spyderous |
1.12 |
if [[ "${PN/#xf86-video}" != "${PN}" ]] || [[ "${PN/#xf86-input}" != "${PN}" ]]; then |
162 |
joshuabaergen |
1.29 |
# Enable driver code in the rest of the eclass |
163 |
|
|
DRIVER="yes" |
164 |
spyderous |
1.7 |
fi |
165 |
|
|
|
166 |
spyderous |
1.41 |
# Debugging -- ignore packages that can't be built with debugging |
167 |
|
|
if [[ -z "${FONT}" ]] \ |
168 |
dberkholz |
1.89 |
&& [[ "${CATEGORY/app-doc}" = "${CATEGORY}" ]] \ |
169 |
|
|
&& [[ "${CATEGORY/x11-proto}" = "${CATEGORY}" ]] \ |
170 |
|
|
&& [[ "${PN/util-macros}" = "${PN}" ]] \ |
171 |
|
|
&& [[ "${PN/xbitmaps}" = "${PN}" ]] \ |
172 |
|
|
&& [[ "${PN/xkbdata}" = "${PN}" ]] \ |
173 |
|
|
&& [[ "${PN/xorg-cf-files}" = "${PN}" ]] \ |
174 |
|
|
&& [[ "${PN/xcursor}" = "${PN}" ]] \ |
175 |
spyderous |
1.41 |
; then |
176 |
|
|
DEBUGGABLE="yes" |
177 |
|
|
IUSE="${IUSE} debug" |
178 |
|
|
fi |
179 |
|
|
|
180 |
spyderous |
1.1 |
DEPEND="${DEPEND} |
181 |
spyderous |
1.64 |
>=dev-util/pkgconfig-0.18" |
182 |
spyderous |
1.39 |
|
183 |
spyderous |
1.43 |
if [[ "${PN/util-macros}" = "${PN}" ]]; then |
184 |
spyderous |
1.39 |
DEPEND="${DEPEND} |
185 |
chithanh |
1.122 |
>=x11-misc/util-macros-1.3.0" |
186 |
spyderous |
1.39 |
fi |
187 |
spyderous |
1.1 |
|
188 |
spyderous |
1.13 |
RDEPEND="${RDEPEND} |
189 |
exg |
1.59 |
!<=x11-base/xorg-x11-6.9" |
190 |
spyderous |
1.13 |
# Provides virtual/x11 for temporary use until packages are ported |
191 |
spyderous |
1.1 |
# x11-base/x11-env" |
192 |
|
|
|
193 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_specs_check |
194 |
|
|
# @USAGE: |
195 |
|
|
# @DESCRIPTION: |
196 |
|
|
# Make any necessary changes related to gcc specs (generally hardened) |
197 |
spyderous |
1.54 |
x-modular_specs_check() { |
198 |
|
|
if [[ ${PN:0:11} = "xorg-server" ]] || [[ -n "${DRIVER}" ]]; then |
199 |
solar |
1.62 |
append-ldflags -Wl,-z,lazy |
200 |
spyderous |
1.56 |
# (#116698) breaks loading |
201 |
|
|
filter-ldflags -Wl,-z,now |
202 |
spyderous |
1.54 |
fi |
203 |
|
|
} |
204 |
|
|
|
205 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_dri_check |
206 |
|
|
# @USAGE: |
207 |
|
|
# @DESCRIPTION: |
208 |
|
|
# Ensures the server supports DRI if building a driver with DRI support |
209 |
spyderous |
1.55 |
x-modular_dri_check() { |
210 |
spyderous |
1.53 |
# (#120057) Enabling DRI in drivers requires that the server was built with |
211 |
|
|
# support for it |
212 |
remi |
1.107 |
# Starting with xorg-server 1.5.3, DRI support is always enabled unless |
213 |
|
|
# USE=minimal is set (see bug #252084) |
214 |
spyderous |
1.53 |
if [[ -n "${DRIVER}" ]]; then |
215 |
|
|
if has dri ${IUSE} && use dri; then |
216 |
|
|
einfo "Checking for direct rendering capabilities ..." |
217 |
remi |
1.107 |
if has_version '>=x11-base/xorg-server-1.5.3'; then |
218 |
|
|
if built_with_use x11-base/xorg-server minimal; then |
219 |
|
|
die "You must build x11-base/xorg-server with USE=-minimal." |
220 |
|
|
fi |
221 |
|
|
else |
222 |
|
|
if ! built_with_use x11-base/xorg-server dri; then |
223 |
|
|
die "You must build x11-base/xorg-server with USE=dri." |
224 |
|
|
fi |
225 |
spyderous |
1.53 |
fi |
226 |
|
|
fi |
227 |
|
|
fi |
228 |
spyderous |
1.55 |
} |
229 |
spyderous |
1.53 |
|
230 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_server_supports_drivers_check |
231 |
|
|
# @USAGE: |
232 |
|
|
# @DESCRIPTION: |
233 |
|
|
# Ensures the server SDK is installed if a driver is being built |
234 |
joshuabaergen |
1.61 |
x-modular_server_supports_drivers_check() { |
235 |
|
|
# (#135873) Only certain servers will actually use or be capable of |
236 |
|
|
# building external drivers, including binary drivers. |
237 |
|
|
if [[ -n "${DRIVER}" ]]; then |
238 |
spyderous |
1.67 |
if has_version '>=x11-base/xorg-server-1.1'; then |
239 |
spyderous |
1.66 |
if ! built_with_use x11-base/xorg-server xorg; then |
240 |
|
|
eerror "x11-base/xorg-server is not built with support for external drivers." |
241 |
|
|
die "You must build x11-base/xorg-server with USE=xorg." |
242 |
|
|
fi |
243 |
joshuabaergen |
1.61 |
fi |
244 |
|
|
fi |
245 |
|
|
} |
246 |
|
|
|
247 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_unpack_source |
248 |
|
|
# @USAGE: |
249 |
|
|
# @DESCRIPTION: |
250 |
|
|
# Simply unpack source code. Nothing else. |
251 |
spyderous |
1.55 |
x-modular_unpack_source() { |
252 |
dberkholz |
1.87 |
if [[ -n ${GIT_ECLASS} ]]; then |
253 |
|
|
git_src_unpack |
254 |
|
|
else |
255 |
|
|
unpack ${A} |
256 |
|
|
fi |
257 |
maekke |
1.104 |
cd "${S}" |
258 |
joshuabaergen |
1.16 |
|
259 |
spyderous |
1.25 |
if [[ -n ${FONT_OPTIONS} ]]; then |
260 |
|
|
einfo "Detected font directory: ${FONT_DIR}" |
261 |
|
|
fi |
262 |
spyderous |
1.1 |
} |
263 |
|
|
|
264 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_patch_source |
265 |
|
|
# @USAGE: |
266 |
|
|
# @DESCRIPTION: |
267 |
|
|
# Apply all patches |
268 |
spyderous |
1.1 |
x-modular_patch_source() { |
269 |
|
|
# Use standardized names and locations with bulk patching |
270 |
|
|
# Patch directory is ${WORKDIR}/patch |
271 |
|
|
# See epatch() in eutils.eclass for more documentation |
272 |
spyderous |
1.28 |
if [[ -z "${EPATCH_SUFFIX}" ]] ; then |
273 |
spyderous |
1.1 |
EPATCH_SUFFIX="patch" |
274 |
|
|
fi |
275 |
|
|
|
276 |
dberkholz |
1.91 |
# @VARIABLE: PATCHES |
277 |
|
|
# @DESCRIPTION: |
278 |
|
|
# If you have any patches to apply, set PATCHES to their locations and epatch |
279 |
|
|
# will apply them. It also handles epatch-style bulk patches, if you know how to |
280 |
|
|
# use them and set the correct variables. If you don't, read eutils.eclass. |
281 |
dberkholz |
1.95 |
if [[ ${#PATCHES[@]} -gt 1 ]]; then |
282 |
|
|
for x in "${PATCHES[@]}"; do |
283 |
|
|
epatch "${x}" |
284 |
|
|
done |
285 |
|
|
elif [[ -n "${PATCHES}" ]]; then |
286 |
|
|
for x in ${PATCHES}; do |
287 |
|
|
epatch "${x}" |
288 |
spyderous |
1.1 |
done |
289 |
|
|
# For non-default directory bulk patching |
290 |
spyderous |
1.28 |
elif [[ -n "${PATCH_LOC}" ]] ; then |
291 |
spyderous |
1.1 |
epatch ${PATCH_LOC} |
292 |
|
|
# For standard bulk patching |
293 |
spyderous |
1.28 |
elif [[ -d "${EPATCH_SOURCE}" ]] ; then |
294 |
spyderous |
1.1 |
epatch |
295 |
|
|
fi |
296 |
|
|
} |
297 |
|
|
|
298 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_reconf_source |
299 |
|
|
# @USAGE: |
300 |
|
|
# @DESCRIPTION: |
301 |
|
|
# Run eautoreconf if necessary, and run elibtoolize. |
302 |
spyderous |
1.1 |
x-modular_reconf_source() { |
303 |
spyderous |
1.28 |
if [[ "${SNAPSHOT}" = "yes" ]] |
304 |
spyderous |
1.1 |
then |
305 |
|
|
# If possible, generate configure if it doesn't exist |
306 |
dberkholz |
1.74 |
if [ -f "./configure.ac" ] |
307 |
spyderous |
1.1 |
then |
308 |
spyderous |
1.51 |
eautoreconf |
309 |
spyderous |
1.1 |
fi |
310 |
|
|
fi |
311 |
|
|
|
312 |
spyderous |
1.54 |
# Joshua Baergen - October 23, 2005 |
313 |
|
|
# Fix shared lib issues on MIPS, FBSD, etc etc |
314 |
|
|
elibtoolize |
315 |
spyderous |
1.1 |
} |
316 |
|
|
|
317 |
remi |
1.109 |
# @FUNCTION: x-modular_src_prepare |
318 |
|
|
# @USAGE: |
319 |
|
|
# @DESCRIPTION: |
320 |
|
|
# Prepare a package after unpacking, performing all X-related tasks. |
321 |
|
|
x-modular_src_prepare() { |
322 |
|
|
[[ -n ${GIT_ECLASS} ]] && has src_prepare ${EXPORTED_FUNCTIONS} \ |
323 |
|
|
&& git_src_prepare |
324 |
|
|
x-modular_patch_source |
325 |
|
|
x-modular_reconf_source |
326 |
|
|
} |
327 |
|
|
|
328 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_src_unpack |
329 |
|
|
# @USAGE: |
330 |
|
|
# @DESCRIPTION: |
331 |
|
|
# Unpack a package, performing all X-related tasks. |
332 |
spyderous |
1.1 |
x-modular_src_unpack() { |
333 |
spyderous |
1.54 |
x-modular_specs_check |
334 |
joshuabaergen |
1.61 |
x-modular_server_supports_drivers_check |
335 |
spyderous |
1.55 |
x-modular_dri_check |
336 |
spyderous |
1.1 |
x-modular_unpack_source |
337 |
remi |
1.109 |
has src_prepare ${EXPORTED_FUNCTIONS} || x-modular_src_prepare |
338 |
spyderous |
1.1 |
} |
339 |
|
|
|
340 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_font_configure |
341 |
|
|
# @USAGE: |
342 |
|
|
# @DESCRIPTION: |
343 |
|
|
# If a font package, perform any necessary configuration steps |
344 |
spyderous |
1.25 |
x-modular_font_configure() { |
345 |
|
|
if [[ -n "${FONT}" ]]; then |
346 |
|
|
# Might be worth adding an option to configure your desired font |
347 |
|
|
# and exclude all others. Also, should this USE be nls or minimal? |
348 |
scarabeus |
1.112 |
if has nls ${IUSE//+} && ! use nls; then |
349 |
spyderous |
1.25 |
FONT_OPTIONS="${FONT_OPTIONS} |
350 |
|
|
--disable-iso8859-2 |
351 |
|
|
--disable-iso8859-3 |
352 |
|
|
--disable-iso8859-4 |
353 |
|
|
--disable-iso8859-5 |
354 |
|
|
--disable-iso8859-6 |
355 |
|
|
--disable-iso8859-7 |
356 |
|
|
--disable-iso8859-8 |
357 |
|
|
--disable-iso8859-9 |
358 |
|
|
--disable-iso8859-10 |
359 |
|
|
--disable-iso8859-11 |
360 |
|
|
--disable-iso8859-12 |
361 |
|
|
--disable-iso8859-13 |
362 |
|
|
--disable-iso8859-14 |
363 |
|
|
--disable-iso8859-15 |
364 |
|
|
--disable-iso8859-16 |
365 |
|
|
--disable-jisx0201 |
366 |
|
|
--disable-koi8-r" |
367 |
|
|
fi |
368 |
|
|
fi |
369 |
|
|
} |
370 |
|
|
|
371 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_debug_setup |
372 |
|
|
# @USAGE: |
373 |
|
|
# @DESCRIPTION: |
374 |
|
|
# Set up CFLAGS for a debug build |
375 |
spyderous |
1.41 |
x-modular_debug_setup() { |
376 |
|
|
if [[ -n "${DEBUGGABLE}" ]]; then |
377 |
|
|
if use debug; then |
378 |
|
|
strip-flags |
379 |
spyderous |
1.42 |
append-flags -g |
380 |
spyderous |
1.41 |
fi |
381 |
|
|
fi |
382 |
|
|
} |
383 |
|
|
|
384 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_src_configure |
385 |
|
|
# @USAGE: |
386 |
|
|
# @DESCRIPTION: |
387 |
|
|
# Perform any necessary pre-configuration steps, then run configure |
388 |
spyderous |
1.6 |
x-modular_src_configure() { |
389 |
spyderous |
1.25 |
x-modular_font_configure |
390 |
spyderous |
1.41 |
x-modular_debug_setup |
391 |
spyderous |
1.25 |
|
392 |
dberkholz |
1.91 |
# @VARIABLE: CONFIGURE_OPTIONS |
393 |
|
|
# @DESCRIPTION: |
394 |
vapier |
1.118 |
# Any extra options to pass to configure |
395 |
dberkholz |
1.91 |
|
396 |
spyderous |
1.1 |
# If prefix isn't set here, .pc files cause problems |
397 |
dberkholz |
1.85 |
if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then |
398 |
spyderous |
1.1 |
econf --prefix=${XDIR} \ |
399 |
|
|
--datadir=${XDIR}/share \ |
400 |
spyderous |
1.25 |
${FONT_OPTIONS} \ |
401 |
spyderous |
1.7 |
${DRIVER_OPTIONS} \ |
402 |
spyderous |
1.1 |
${CONFIGURE_OPTIONS} |
403 |
|
|
fi |
404 |
spyderous |
1.6 |
} |
405 |
|
|
|
406 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_src_make |
407 |
|
|
# @USAGE: |
408 |
|
|
# @DESCRIPTION: |
409 |
|
|
# Run make. |
410 |
spyderous |
1.6 |
x-modular_src_make() { |
411 |
spyderous |
1.1 |
emake || die "emake failed" |
412 |
|
|
} |
413 |
|
|
|
414 |
dberkholz |
1.108 |
# @FUNCTION: x-modular_src_compile |
415 |
dberkholz |
1.91 |
# @USAGE: |
416 |
|
|
# @DESCRIPTION: |
417 |
|
|
# Compile a package, performing all X-related tasks. |
418 |
spyderous |
1.6 |
x-modular_src_compile() { |
419 |
remi |
1.109 |
has src_configure ${EXPORTED_FUNCTIONS} || x-modular_src_configure |
420 |
spyderous |
1.6 |
x-modular_src_make |
421 |
|
|
} |
422 |
|
|
|
423 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_src_install |
424 |
|
|
# @USAGE: |
425 |
|
|
# @DESCRIPTION: |
426 |
|
|
# Install a built package to ${D}, performing any necessary steps. |
427 |
|
|
# Creates a ChangeLog from git if using live ebuilds. |
428 |
spyderous |
1.1 |
x-modular_src_install() { |
429 |
|
|
# Install everything to ${XDIR} |
430 |
remi |
1.106 |
if [[ ${CATEGORY} = x11-proto ]]; then |
431 |
|
|
make \ |
432 |
|
|
${PN/proto/}docdir=/usr/share/doc/${PF} \ |
433 |
|
|
DESTDIR="${D}" \ |
434 |
|
|
install \ |
435 |
|
|
|| die |
436 |
|
|
else |
437 |
|
|
make \ |
438 |
scarabeus |
1.115 |
docdir=/usr/share/doc/${PF} \ |
439 |
remi |
1.106 |
DESTDIR="${D}" \ |
440 |
|
|
install \ |
441 |
|
|
|| die |
442 |
|
|
fi |
443 |
spyderous |
1.1 |
# Shouldn't be necessary in XDIR=/usr |
444 |
|
|
# einstall forces datadir, so we need to re-force it |
445 |
|
|
# datadir=${XDIR}/share \ |
446 |
|
|
# mandir=${XDIR}/share/man \ |
447 |
spyderous |
1.7 |
|
448 |
dberkholz |
1.87 |
if [[ -n ${GIT_ECLASS} ]]; then |
449 |
|
|
pushd "${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}" |
450 |
|
|
git log ${GIT_TREE} > "${S}"/ChangeLog |
451 |
|
|
popd |
452 |
|
|
fi |
453 |
|
|
|
454 |
spyderous |
1.60 |
if [[ -e ${S}/ChangeLog ]]; then |
455 |
maekke |
1.104 |
dodoc "${S}"/ChangeLog |
456 |
spyderous |
1.60 |
fi |
457 |
dberkholz |
1.91 |
# @VARIABLE: DOCS |
458 |
|
|
# @DESCRIPTION: |
459 |
vapier |
1.118 |
# Any documentation to install via dodoc |
460 |
dberkholz |
1.92 |
[[ -n ${DOCS} ]] && dodoc ${DOCS} |
461 |
spyderous |
1.60 |
|
462 |
spyderous |
1.7 |
# Don't install libtool archives for server modules |
463 |
spyderous |
1.70 |
if [[ -e ${D}/usr/$(get_libdir)/xorg/modules ]]; then |
464 |
maekke |
1.104 |
find "${D}"/usr/$(get_libdir)/xorg/modules -name '*.la' \ |
465 |
spyderous |
1.7 |
| xargs rm -f |
466 |
|
|
fi |
467 |
spyderous |
1.48 |
|
468 |
|
|
if [[ -n "${FONT}" ]]; then |
469 |
|
|
remove_font_metadata |
470 |
|
|
fi |
471 |
dberkholz |
1.75 |
|
472 |
|
|
if [[ -n "${DRIVER}" ]]; then |
473 |
|
|
install_driver_hwdata |
474 |
|
|
fi |
475 |
spyderous |
1.1 |
} |
476 |
spyderous |
1.2 |
|
477 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_pkg_preinst |
478 |
|
|
# @USAGE: |
479 |
|
|
# @DESCRIPTION: |
480 |
|
|
# This function doesn't do anything right now, but it may in the future. |
481 |
spyderous |
1.4 |
x-modular_pkg_preinst() { |
482 |
dberkholz |
1.77 |
# We no longer do anything here, but we can't remove it from the API |
483 |
|
|
: |
484 |
spyderous |
1.4 |
} |
485 |
|
|
|
486 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_pkg_postinst |
487 |
|
|
# @USAGE: |
488 |
|
|
# @DESCRIPTION: |
489 |
|
|
# Run X-specific post-installation tasks on the live filesystem. The |
490 |
|
|
# only task right now is some setup for font packages. |
491 |
spyderous |
1.2 |
x-modular_pkg_postinst() { |
492 |
|
|
if [[ -n "${FONT}" ]]; then |
493 |
|
|
setup_fonts |
494 |
|
|
fi |
495 |
|
|
} |
496 |
|
|
|
497 |
dberkholz |
1.91 |
# @FUNCTION: x-modular_pkg_postrm |
498 |
|
|
# @USAGE: |
499 |
|
|
# @DESCRIPTION: |
500 |
|
|
# Run X-specific post-removal tasks on the live filesystem. The only |
501 |
|
|
# task right now is some cleanup for font packages. |
502 |
spyderous |
1.25 |
x-modular_pkg_postrm() { |
503 |
|
|
if [[ -n "${FONT}" ]]; then |
504 |
dberkholz |
1.78 |
font_pkg_postrm |
505 |
spyderous |
1.25 |
fi |
506 |
|
|
} |
507 |
|
|
|
508 |
dberkholz |
1.91 |
# @FUNCTION: setup_fonts |
509 |
|
|
# @USAGE: |
510 |
|
|
# @DESCRIPTION: |
511 |
|
|
# Generates needed files for fonts and fixes font permissions |
512 |
spyderous |
1.2 |
setup_fonts() { |
513 |
dberkholz |
1.77 |
if [[ ! -n "${FONT_DIR}" ]]; then |
514 |
|
|
msg="FONT_DIR is empty. The ebuild should set it to at least one subdir of /usr/share/fonts." |
515 |
spyderous |
1.25 |
eerror "${msg}" |
516 |
|
|
die "${msg}" |
517 |
spyderous |
1.2 |
fi |
518 |
|
|
|
519 |
|
|
create_fonts_scale |
520 |
|
|
create_fonts_dir |
521 |
|
|
create_font_cache |
522 |
|
|
} |
523 |
|
|
|
524 |
dberkholz |
1.91 |
# @FUNCTION: remove_font_metadata |
525 |
|
|
# @USAGE: |
526 |
|
|
# @DESCRIPTION: |
527 |
|
|
# Don't let the package install generated font files that may overlap |
528 |
|
|
# with other packages. Instead, they're generated in pkg_postinst(). |
529 |
spyderous |
1.48 |
remove_font_metadata() { |
530 |
|
|
local DIR |
531 |
|
|
for DIR in ${FONT_DIR}; do |
532 |
|
|
if [[ "${DIR}" != "Speedo" ]] && \ |
533 |
|
|
[[ "${DIR}" != "CID" ]] ; then |
534 |
|
|
# Delete font metadata files |
535 |
|
|
# fonts.scale, fonts.dir, fonts.cache-1 |
536 |
maekke |
1.104 |
rm -f "${D}"/usr/share/fonts/${DIR}/fonts.{scale,dir,cache-1} |
537 |
spyderous |
1.48 |
fi |
538 |
|
|
done |
539 |
|
|
} |
540 |
|
|
|
541 |
dberkholz |
1.91 |
# @FUNCTION: install_driver_hwdata |
542 |
|
|
# @USAGE: |
543 |
|
|
# @DESCRIPTION: |
544 |
vapier |
1.121 |
# Installs device-to-driver mappings for system-config-display and |
545 |
dberkholz |
1.91 |
# anything else that uses hwdata. |
546 |
dberkholz |
1.75 |
install_driver_hwdata() { |
547 |
|
|
insinto /usr/share/hwdata/videoaliases |
548 |
|
|
for i in "${FILESDIR}"/*.xinf; do |
549 |
|
|
# We need this for the case when none exist, |
550 |
|
|
# so *.xinf doesn't expand |
551 |
|
|
if [[ -e $i ]]; then |
552 |
|
|
doins $i |
553 |
|
|
fi |
554 |
|
|
done |
555 |
|
|
} |
556 |
|
|
|
557 |
dberkholz |
1.91 |
# @FUNCTION: discover_font_dirs |
558 |
|
|
# @USAGE: |
559 |
|
|
# @DESCRIPTION: |
560 |
|
|
# Deprecated. Sets up the now-unused FONT_DIRS variable. |
561 |
spyderous |
1.4 |
discover_font_dirs() { |
562 |
dberkholz |
1.77 |
FONT_DIRS="${FONT_DIR}" |
563 |
spyderous |
1.4 |
} |
564 |
|
|
|
565 |
dberkholz |
1.91 |
# @FUNCTION: create_fonts_scale |
566 |
|
|
# @USAGE: |
567 |
|
|
# @DESCRIPTION: |
568 |
|
|
# Create fonts.scale file, used by the old server-side fonts subsystem. |
569 |
spyderous |
1.2 |
create_fonts_scale() { |
570 |
|
|
ebegin "Creating fonts.scale files" |
571 |
|
|
local x |
572 |
dberkholz |
1.77 |
for DIR in ${FONT_DIR}; do |
573 |
|
|
x=${ROOT}/usr/share/fonts/${DIR} |
574 |
spyderous |
1.28 |
[[ -z "$(ls ${x}/)" ]] && continue |
575 |
|
|
[[ "$(ls ${x}/)" = "fonts.cache-1" ]] && continue |
576 |
spyderous |
1.2 |
|
577 |
|
|
# Only generate .scale files if truetype, opentype or type1 |
578 |
|
|
# fonts are present ... |
579 |
|
|
|
580 |
dberkholz |
1.79 |
# NOTE: There is no way to regenerate Speedo/CID fonts.scale |
581 |
dberkholz |
1.83 |
# <dberkholz@gentoo.org> 2 August 2004 |
582 |
spyderous |
1.28 |
if [[ "${x/encodings}" = "${x}" ]] \ |
583 |
dberkholz |
1.79 |
&& [[ -n "$(find ${x} -iname '*.[pot][ft][abcf]' -print)" ]]; then |
584 |
|
|
mkfontscale \ |
585 |
maekke |
1.104 |
-a "${ROOT}"/usr/share/fonts/encodings/encodings.dir \ |
586 |
spyderous |
1.2 |
-- ${x} |
587 |
|
|
fi |
588 |
|
|
done |
589 |
|
|
eend 0 |
590 |
|
|
} |
591 |
|
|
|
592 |
dberkholz |
1.91 |
# @FUNCTION: create_fonts_dir |
593 |
|
|
# @USAGE: |
594 |
|
|
# @DESCRIPTION: |
595 |
|
|
# Create fonts.dir file, used by the old server-side fonts subsystem. |
596 |
spyderous |
1.2 |
create_fonts_dir() { |
597 |
|
|
ebegin "Generating fonts.dir files" |
598 |
dberkholz |
1.77 |
for DIR in ${FONT_DIR}; do |
599 |
|
|
x=${ROOT}/usr/share/fonts/${DIR} |
600 |
spyderous |
1.28 |
[[ -z "$(ls ${x}/)" ]] && continue |
601 |
|
|
[[ "$(ls ${x}/)" = "fonts.cache-1" ]] && continue |
602 |
spyderous |
1.2 |
|
603 |
spyderous |
1.28 |
if [[ "${x/encodings}" = "${x}" ]]; then |
604 |
dberkholz |
1.79 |
mkfontdir \ |
605 |
maekke |
1.104 |
-e "${ROOT}"/usr/share/fonts/encodings \ |
606 |
|
|
-e "${ROOT}"/usr/share/fonts/encodings/large \ |
607 |
spyderous |
1.2 |
-- ${x} |
608 |
|
|
fi |
609 |
|
|
done |
610 |
|
|
eend 0 |
611 |
|
|
} |
612 |
|
|
|
613 |
dberkholz |
1.91 |
# @FUNCTION: create_font_cache |
614 |
|
|
# @USAGE: |
615 |
|
|
# @DESCRIPTION: |
616 |
|
|
# Create fonts.cache-1 files, used by the new client-side fonts |
617 |
|
|
# subsystem. |
618 |
spyderous |
1.2 |
create_font_cache() { |
619 |
dberkholz |
1.78 |
font_pkg_postinst |
620 |
spyderous |
1.2 |
} |