1 | # Copyright 1999-2005 Gentoo Foundation |
1 | # Copyright 1999-2005 Gentoo Foundation |
2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/x-modular.eclass,v 1.42 2006/02/03 18:09:46 spyderous Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/x-modular.eclass,v 1.52 2006/04/03 23:49:32 spyderous Exp $ |
4 | # |
4 | # |
5 | # Author: Donnie Berkholz <spyderous@gentoo.org> |
5 | # Author: Donnie Berkholz <spyderous@gentoo.org> |
6 | # |
6 | # |
7 | # This eclass is designed to reduce code duplication in the modularized X11 |
7 | # This eclass is designed to reduce code duplication in the modularized X11 |
8 | # ebuilds. |
8 | # ebuilds. |
… | |
… | |
25 | # |
25 | # |
26 | # Pretty much everything else should be automatic. |
26 | # Pretty much everything else should be automatic. |
27 | |
27 | |
28 | EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_preinst pkg_postinst pkg_postrm |
28 | EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_preinst pkg_postinst pkg_postrm |
29 | |
29 | |
30 | inherit eutils libtool toolchain-funcs flag-o-matic |
30 | inherit eutils libtool toolchain-funcs flag-o-matic autotools |
31 | |
31 | |
32 | # Directory prefix to use for everything |
32 | # Directory prefix to use for everything |
33 | XDIR="/usr" |
33 | XDIR="/usr" |
34 | |
34 | |
35 | # Set up default patchset version(s) if necessary |
35 | # Set up default patchset version(s) if necessary |
… | |
… | |
38 | XDPVER="1" |
38 | XDPVER="1" |
39 | fi |
39 | fi |
40 | |
40 | |
41 | IUSE="" |
41 | IUSE="" |
42 | HOMEPAGE="http://xorg.freedesktop.org/" |
42 | HOMEPAGE="http://xorg.freedesktop.org/" |
43 | SRC_URI="http://xorg.freedesktop.org/releases/X11R7.0/src/everything/${P}.tar.bz2 |
43 | |
44 | http://xorg.freedesktop.org/releases/X11R7.0-RC4/everything/${P}.tar.bz2 |
44 | # Set up SRC_URI for individual modular releases |
45 | http://xorg.freedesktop.org/releases/X11R7.0-RC3/everything/${P}.tar.bz2 |
45 | BASE_INDIVIDUAL_URI="http://xorg.freedesktop.org/releases/individual" |
46 | http://xorg.freedesktop.org/releases/X11R7.0-RC2/everything/${P}.tar.bz2 |
46 | if [[ ${CATEGORY} = x11-apps ]]; then |
47 | http://xorg.freedesktop.org/releases/X11R7.0-RC1/everything/${P}.tar.bz2 |
47 | SRC_URI="${SRC_URI} |
|
|
48 | ${BASE_INDIVIDUAL_URI}/app/${P}.tar.bz2" |
|
|
49 | elif [[ ${CATEGORY} = app-doc ]]; then |
|
|
50 | SRC_URI="${SRC_URI} |
|
|
51 | ${BASE_INDIVIDUAL_URI}/doc/${P}.tar.bz2" |
|
|
52 | # x11-misc contains data and util, x11-themes contains data |
|
|
53 | elif [[ ${CATEGORY} = x11-misc ]] || [[ ${CATEGORY} = x11-themes ]]; then |
|
|
54 | SRC_URI="${SRC_URI} |
|
|
55 | ${BASE_INDIVIDUAL_URI}/data/${P}.tar.bz2 |
|
|
56 | ${BASE_INDIVIDUAL_URI}/util/${P}.tar.bz2" |
|
|
57 | elif [[ ${CATEGORY} = x11-drivers ]]; then |
|
|
58 | SRC_URI="${SRC_URI} |
|
|
59 | ${BASE_INDIVIDUAL_URI}/driver/${P}.tar.bz2" |
|
|
60 | elif [[ ${CATEGORY} = media-fonts ]]; then |
|
|
61 | SRC_URI="${SRC_URI} |
|
|
62 | ${BASE_INDIVIDUAL_URI}/font/${P}.tar.bz2" |
|
|
63 | elif [[ ${CATEGORY} = x11-libs ]]; then |
|
|
64 | SRC_URI="${SRC_URI} |
|
|
65 | ${BASE_INDIVIDUAL_URI}/lib/${P}.tar.bz2" |
|
|
66 | elif [[ ${CATEGORY} = x11-proto ]]; then |
|
|
67 | SRC_URI="${SRC_URI} |
|
|
68 | ${BASE_INDIVIDUAL_URI}/proto/${P}.tar.bz2" |
|
|
69 | elif [[ ${CATEGORY} = x11-base ]]; then |
|
|
70 | SRC_URI="${SRC_URI} |
|
|
71 | ${BASE_INDIVIDUAL_URI}/xserver/${P}.tar.bz2" |
|
|
72 | fi |
|
|
73 | |
|
|
74 | # SRC_URI for full releases |
|
|
75 | SRC_URI="${SRC_URI} |
48 | http://xorg.freedesktop.org/releases/X11R7.0-RC0/everything/${P}.tar.bz2" |
76 | http://xorg.freedesktop.org/releases/X11R7.0/src/everything/${P}.tar.bz2" |
|
|
77 | |
49 | SLOT="0" |
78 | SLOT="0" |
50 | |
79 | |
51 | # Set the license for the package. This can be overridden by setting |
80 | # Set the license for the package. This can be overridden by setting |
52 | # LICENSE after the inherit. |
81 | # LICENSE after the inherit. |
53 | LICENSE=${PN} |
82 | LICENSE=${PN} |
… | |
… | |
62 | >=sys-devel/m4-1.4" |
91 | >=sys-devel/m4-1.4" |
63 | fi |
92 | fi |
64 | |
93 | |
65 | # If we're a font package, but not the font.alias one |
94 | # If we're a font package, but not the font.alias one |
66 | if [[ "${PN/#font-}" != "${PN}" ]] \ |
95 | if [[ "${PN/#font-}" != "${PN}" ]] \ |
|
|
96 | && [[ "${CATEGORY}" = "media-fonts" ]] \ |
67 | && [[ "${PN}" != "font-alias" ]] \ |
97 | && [[ "${PN}" != "font-alias" ]] \ |
68 | && [[ "${PN}" != "font-util" ]]; then |
98 | && [[ "${PN}" != "font-util" ]]; then |
69 | # Activate font code in the rest of the eclass |
99 | # Activate font code in the rest of the eclass |
70 | FONT="yes" |
100 | FONT="yes" |
71 | |
101 | |
… | |
… | |
122 | || [[ "${PN/xcursor}" != "${PN}" ]] \ |
152 | || [[ "${PN/xcursor}" != "${PN}" ]] \ |
123 | ; then |
153 | ; then |
124 | DEBUGGABLE="yes" |
154 | DEBUGGABLE="yes" |
125 | IUSE="${IUSE} debug" |
155 | IUSE="${IUSE} debug" |
126 | if use debug; then |
156 | if use debug; then |
|
|
157 | if ! has splitdebug ${FEATURES}; then |
127 | RESTRICT="${RESTRICT} nostrip" |
158 | RESTRICT="${RESTRICT} nostrip" |
|
|
159 | fi |
128 | fi |
160 | fi |
129 | fi |
161 | fi |
130 | |
162 | |
131 | DEPEND="${DEPEND} |
163 | DEPEND="${DEPEND} |
132 | >=dev-util/pkgconfig-0.18" |
164 | >=dev-util/pkgconfig-0.18" |
133 | |
165 | |
134 | if [[ "${PN/util-macros}" != "${PN}" ]]; then |
166 | if [[ "${PN/util-macros}" = "${PN}" ]]; then |
135 | DEPEND="${DEPEND} |
167 | DEPEND="${DEPEND} |
136 | >=x11-misc/util-macros-0.99.2" |
168 | >=x11-misc/util-macros-0.99.2" |
137 | fi |
169 | fi |
138 | |
170 | |
139 | # >=sys-apps/man-1.6b-r2 required to look in [0-8]x/ directories |
171 | # >=sys-apps/man-1.6b-r2 required to look in [0-8]x/ directories |
… | |
… | |
187 | if [[ "${SNAPSHOT}" = "yes" ]] |
219 | if [[ "${SNAPSHOT}" = "yes" ]] |
188 | then |
220 | then |
189 | # If possible, generate configure if it doesn't exist |
221 | # If possible, generate configure if it doesn't exist |
190 | if [ -f "${S}/configure.ac" ] |
222 | if [ -f "${S}/configure.ac" ] |
191 | then |
223 | then |
192 | einfo "Running autoreconf..." |
224 | eautoreconf |
193 | autoreconf -v --force --install |
|
|
194 | fi |
225 | fi |
195 | fi |
226 | fi |
196 | |
227 | |
197 | } |
228 | } |
198 | |
229 | |
199 | x-modular_src_unpack() { |
230 | x-modular_src_unpack() { |
200 | if [[ ${PN:0:11} = "xorg-server" ]] || [[ -n "${DRIVER}" ]]; then |
231 | if [[ ${PN:0:11} = "xorg-server" ]] || [[ -n "${DRIVER}" ]]; then |
201 | if gcc-specs-now; then |
232 | if gcc-specs-now; then |
202 | msg="Do not emerge ${PN} without vanilla gcc!" |
233 | msg="${PN} does not work with hardened gcc specs. Switch to vanilla gcc specs to emerge ${PN}." |
203 | eerror "$msg" |
234 | eerror "$msg" |
204 | die "$msg" |
235 | die "$msg" |
205 | fi |
236 | fi |
206 | fi |
237 | fi |
207 | |
238 | |
… | |
… | |
281 | # Shouldn't be necessary in XDIR=/usr |
312 | # Shouldn't be necessary in XDIR=/usr |
282 | # einstall forces datadir, so we need to re-force it |
313 | # einstall forces datadir, so we need to re-force it |
283 | # datadir=${XDIR}/share \ |
314 | # datadir=${XDIR}/share \ |
284 | # mandir=${XDIR}/share/man \ |
315 | # mandir=${XDIR}/share/man \ |
285 | |
316 | |
|
|
317 | # Make sure docs get compressed |
|
|
318 | prepalldocs |
|
|
319 | |
286 | # Don't install libtool archives for server modules |
320 | # Don't install libtool archives for server modules |
287 | if [[ -e ${D}/usr/lib/xorg/modules ]]; then |
321 | if [[ -e ${D}/usr/lib/xorg/modules ]]; then |
288 | find ${D}/usr/lib/xorg/modules -name '*.la' \ |
322 | find ${D}/usr/lib/xorg/modules -name '*.la' \ |
289 | | xargs rm -f |
323 | | xargs rm -f |
|
|
324 | fi |
|
|
325 | |
|
|
326 | # Don't install overlapping fonts.* files |
|
|
327 | # Generate them instead when possible |
|
|
328 | if [[ -n "${FONT}" ]]; then |
|
|
329 | remove_font_metadata |
290 | fi |
330 | fi |
291 | } |
331 | } |
292 | |
332 | |
293 | x-modular_pkg_preinst() { |
333 | x-modular_pkg_preinst() { |
294 | if [[ -n "${FONT}" ]]; then |
334 | if [[ -n "${FONT}" ]]; then |
… | |
… | |
352 | |
392 | |
353 | create_fonts_scale |
393 | create_fonts_scale |
354 | create_fonts_dir |
394 | create_fonts_dir |
355 | fix_font_permissions |
395 | fix_font_permissions |
356 | create_font_cache |
396 | create_font_cache |
|
|
397 | } |
|
|
398 | |
|
|
399 | remove_font_metadata() { |
|
|
400 | local DIR |
|
|
401 | for DIR in ${FONT_DIR}; do |
|
|
402 | if [[ "${DIR}" != "Speedo" ]] && \ |
|
|
403 | [[ "${DIR}" != "CID" ]] ; then |
|
|
404 | # Delete font metadata files |
|
|
405 | # fonts.scale, fonts.dir, fonts.cache-1 |
|
|
406 | rm -f ${D}/usr/share/fonts/${DIR}/fonts.{scale,dir,cache-1} |
|
|
407 | fi |
|
|
408 | done |
357 | } |
409 | } |
358 | |
410 | |
359 | discover_font_dirs() { |
411 | discover_font_dirs() { |
360 | pushd ${IMAGE}/usr/share/fonts |
412 | pushd ${IMAGE}/usr/share/fonts |
361 | FONT_DIRS="$(find . -maxdepth 1 -mindepth 1 -type d)" |
413 | FONT_DIRS="$(find . -maxdepth 1 -mindepth 1 -type d)" |