Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Gentoo Development (http://www.linux-archive.org/gentoo-development/)
-   -   Font eclass EAPI update and design (http://www.linux-archive.org/gentoo-development/318392-font-eclass-eapi-update-design.html)

Tomáš Chvátal 02-01-2010 09:35 AM

Font eclass EAPI update and design
 
Hi guys,

As I was reworking the x-modular-r2 eclass I found out that most of the
slowdowns for fonts were produced in fonts eclass.
Since we were the guys who are supposed to update it, I redesign it to
be bit faster and also to support all known eapis.

I would like to ask you to review the changes and spot anything that
might slipped my sight.

(Diff and full eclass attached)

Expected addition to main tree: if nothing huge is found after fosdem,
otherwise in 3 weeks

Cheers

Tomas
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# @ECLASS: font.eclass
# @MAINTAINER:
# fonts@gentoo.org

# Author: Tomáš Chvátal <scarabeus@gentoo.org>
# Author: foser <foser@gentoo.org>
# @BLURB: Eclass to make font installation uniform

inherit eutils

EXPORT_FUNCTIONS pkg_setup src_install pkg_postinst pkg_postrm

# @ECLASS-VARIABLE: FONT_SUFFIX
# @DESCRIPTION:
# Space delimited list of font suffixes to install
: ${FONT_SUFFIX:=}

# @ECLASS-VARIABLE: FONT_S
# @DESCRIPTION:
# Dir containing the fonts
: ${FONT_S:=${S}}

# @ECLASS-VARIABLE: FONT_PN
# @DESCRIPTION:
# Last part of $FONTDIR
: ${FONT_PN:=${PN}}

# @ECLASS-VARIABLE: FONTDIR
# @DESCRIPTION:
# This is where the fonts are installed
: ${FONTDIR:-/usr/share/fonts/${FONT_PN}}

# @ECLASS-VARIABLE: FONT_CONF
# @DESCRIPTION:
# Array, which element(s) is(are) path(s) of fontconfig-2.4 file(s) to install
FONT_CONF=( "" )

# @ECLASS-VARIABLE: DOCS
# @DESCRIPTION:
# Docs to install
: ${DOCS:-}

IUSE="X"

DEPEND="X? (
x11-apps/mkfontdir
media-fonts/encodings
)
media-libs/fontconfig"

# @FUNCTION: font_xfont_config
# @DESCRIPTION:
# Creates the Xfont files.
font_xfont_config() {
# create Xfont files
if has X ${IUSE//+} && use X ; then
ebegin "Creating fonts.scale & fonts.dir"
rm -f "${ED}${FONTDIR}"/fonts.{dir,scale}
mkfontscale "${ED}${FONTDIR}"
mkfontdir
-e ${EPREFIX}/usr/share/fonts/encodings
-e ${EPREFIX}/usr/share/fonts/encodings/large
"${ED}${FONTDIR}"
eend $?
if [ -e "${FONT_S}/fonts.alias" ] ; then
doins "${FONT_S}/fonts.alias"
fi
fi
}

# @FUNCTION: font_xft_config
# @DESCRIPTION:
# Creates the fontconfig cache if necessary.
font_xft_config() {
# create fontconfig cache
ebegin "Creating fontconfig cache"
fc-cache -sf "${ED}${FONTDIR}"
eend $?
}

# @FUNCTION: font_fontconfig
# @DESCRIPTION:
# Installs the fontconfig config files of FONT_CONF.
font_fontconfig() {
local conffile
if [[ -n ${FONT_CONF[@]} ]]; then
insinto /etc/fonts/conf.avail/
for conffile in "${FONT_CONF[@]}"; do
[[ -e ${conffile} ]] && doins ${conffile}
done
fi
}

# @FUNCTION: font_src_install
# @DESCRIPTION:
# The font src_install function.
font_src_install() {
local suffix commondoc

pushd "${FONT_S}" > /dev/null

insinto "${FONTDIR}"

for suffix in ${FONT_SUFFIX}; do
doins *.${suffix}
done

rm -f fonts.{dir,scale} encodings.dir

font_xfont_config
font_xft_config
font_fontconfig

popd > /dev/null

[[ -n ${DOCS} ]] && { dodoc ${DOCS} || die "docs installation failed" ; }

# install common docs
for commondoc in COPYRIGHT README{,.txt} NEWS AUTHORS BUGS ChangeLog FONTLOG.txt; do
[[ -s ${commondoc} ]] && dodoc ${commondoc}
done
}

# @FUNCTION: font_pkg_setup
# @DESCRIPTION:
# The font pkg_setup function.
# Collision portection and Prefix compat for eapi < 3.
font_pkg_setup() {
# make sure we get no collisions
# setup is not the nicest place, but preinst doesn't cut it
[[ -e "${FONTDIR}/fonts.cache-1" ]] && rm -f "${FONTDIR}/fonts.cache-1"

# Prefix compat
case ${EAPI:-0} in
0|1|2)
if ! use prefix; then
EPREFIX=
ED=${D}
EROOT=${ROOT}
[[ ${EROOT} = */ ]] || EROOT+="/"
fi
;;
esac
}

# @FUNCTION: font_pkg_postinst
# @DESCRIPTION:
# The font pkg_postinst function.
# Update global font cache and fix permissions.
font_pkg_postinst() {
# unreadable font files = fontconfig segfaults
find "${EROOT}"usr/share/fonts/ -type f '!' -perm 0644 -print0
| xargs -0 chmod -v 0644 2>/dev/null

if [[ -n ${FONT_CONF[@]} ]]; then
local conffile
echo
elog "The following fontconfig configuration files have been installed:"
elog
for conffile in "${FONT_CONF[@]}"; do
if [[ -e ${EROOT}etc/fonts/conf.avail/$(basename ${conffile}) ]]; then
elog " $(basename ${conffile})"
fi
done
elog
elog "Use `eselect fontconfig` to enable/disable them."
echo
fi

if [[ ${ROOT} == / ]]; then
ebegin "Updating global fontcache"
fc-cache -fs
eend $?
fi
}

# @FUNCTION: font_pkg_postrm
# @DESCRIPTION:
# The font pkg_postrm function.
# Updates global font cache
font_pkg_postrm() {
# unreadable font files = fontconfig segfaults
find "${EROOT}"usr/share/fonts/ -type f '!' -perm 0644 -print0
| xargs -0 chmod -v 0644 2>/dev/null

if [[ ${ROOT} == / ]]; then
ebegin "Updating global fontcache"
fc-cache -fs
eend $?
fi
}
--- gentoo/gentoo-x86/eclass/font.eclass 2009-10-11 21:26:11.000000000 +0200
+++ /usr/local/portage/x11/eclass/font.eclass 2010-01-31 18:38:19.000000000 +0100
@@ -1,42 +1,38 @@
-# Copyright 1999-2007 Gentoo Foundation
+# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/font.eclass,v 1.47 2009/10/11 11:44:42 maekke Exp $
+# $Header: $

# @ECLASS: font.eclass
# @MAINTAINER:
# fonts@gentoo.org
-#
+
+# Author: Tomáš Chvátal <scarabeus@gentoo.org>
# Author: foser <foser@gentoo.org>
# @BLURB: Eclass to make font installation uniform

inherit eutils

-
EXPORT_FUNCTIONS pkg_setup src_install pkg_postinst pkg_postrm

-#
-# Variable declarations
-#
-
# @ECLASS-VARIABLE: FONT_SUFFIX
# @DESCRIPTION:
# Space delimited list of font suffixes to install
-FONT_SUFFIX=${FONT_SUFFIX:-}
+: ${FONT_SUFFIX:=}

# @ECLASS-VARIABLE: FONT_S
# @DESCRIPTION:
# Dir containing the fonts
-FONT_S=${S}
+: ${FONT_S:=${S}}

# @ECLASS-VARIABLE: FONT_PN
# @DESCRIPTION:
# Last part of $FONTDIR
-FONT_PN=${FONT_PN:-${PN}}
+: ${FONT_PN:=${PN}}

# @ECLASS-VARIABLE: FONTDIR
# @DESCRIPTION:
# This is where the fonts are installed
-FONTDIR=${FONTDIR:-/usr/share/fonts/${FONT_PN}}
+: ${FONTDIR:-/usr/share/fonts/${FONT_PN}}

# @ECLASS-VARIABLE: FONT_CONF
# @DESCRIPTION:
@@ -46,31 +42,30 @@
# @ECLASS-VARIABLE: DOCS
# @DESCRIPTION:
# Docs to install
-DOCS=${DOCS:-}
+: ${DOCS:-}

IUSE="X"

-DEPEND="X? ( x11-apps/mkfontdir
- media-fonts/encodings )
- media-libs/fontconfig"
-
-#
-# Public functions
-#
+DEPEND="X? (
+ x11-apps/mkfontdir
+ media-fonts/encodings
+ )
+ media-libs/fontconfig"

# @FUNCTION: font_xfont_config
# @DESCRIPTION:
# Creates the Xfont files.
font_xfont_config() {
# create Xfont files
- if use X ; then
- einfo "Creating fonts.scale & fonts.dir ..."
- rm -f "${D}${FONTDIR}"/fonts.{dir,scale}
- mkfontscale "${D}${FONTDIR}"
+ if has X ${IUSE//+} && use X ; then
+ ebegin "Creating fonts.scale & fonts.dir"
+ rm -f "${ED}${FONTDIR}"/fonts.{dir,scale}
+ mkfontscale "${ED}${FONTDIR}"
mkfontdir
- -e /usr/share/fonts/encodings
- -e /usr/share/fonts/encodings/large
- "${D}${FONTDIR}"
+ -e ${EPREFIX}/usr/share/fonts/encodings
+ -e ${EPREFIX}/usr/share/fonts/encodings/large
+ "${ED}${FONTDIR}"
+ eend $?
if [ -e "${FONT_S}/fonts.alias" ] ; then
doins "${FONT_S}/fonts.alias"
fi
@@ -81,11 +76,10 @@
# @DESCRIPTION:
# Creates the fontconfig cache if necessary.
font_xft_config() {
- if ! has_version '>=media-libs/fontconfig-2.4'; then
- # create fontconfig cache
- einfo "Creating fontconfig cache ..."
- fc-cache -sf "${D}${FONTDIR}"
- fi
+ # create fontconfig cache
+ ebegin "Creating fontconfig cache"
+ fc-cache -sf "${ED}${FONTDIR}"
+ eend $?
}

# @FUNCTION: font_fontconfig
@@ -94,26 +88,20 @@
font_fontconfig() {
local conffile
if [[ -n ${FONT_CONF[@]} ]]; then
- if has_version '>=media-libs/fontconfig-2.4'; then
- insinto /etc/fonts/conf.avail/
- for conffile in "${FONT_CONF[@]}"; do
- [[ -e ${conffile} ]] && doins ${conffile}
- done
- fi
+ insinto /etc/fonts/conf.avail/
+ for conffile in "${FONT_CONF[@]}"; do
+ [[ -e ${conffile} ]] && doins ${conffile}
+ done
fi
}

-#
-# Public inheritable functions
-#
-
# @FUNCTION: font_src_install
# @DESCRIPTION:
-# The font src_install function, which is exported.
+# The font src_install function.
font_src_install() {
local suffix commondoc

- cd "${FONT_S}"
+ pushd "${FONT_S}" > /dev/null

insinto "${FONTDIR}"

@@ -127,8 +115,9 @@
font_xft_config
font_fontconfig

- cd "${S}"
- dodoc ${DOCS} 2> /dev/null
+ popd > /dev/null
+
+ [[ -n ${DOCS} ]] && { dodoc ${DOCS} || die "docs installation failed" ; }

# install common docs
for commondoc in COPYRIGHT README{,.txt} NEWS AUTHORS BUGS ChangeLog FONTLOG.txt; do
@@ -138,60 +127,69 @@

# @FUNCTION: font_pkg_setup
# @DESCRIPTION:
-# The font pkg_setup function, which is exported.
+# The font pkg_setup function.
+# Collision portection and Prefix compat for eapi < 3.
font_pkg_setup() {
# make sure we get no collisions
# setup is not the nicest place, but preinst doesn't cut it
[[ -e "${FONTDIR}/fonts.cache-1" ]] && rm -f "${FONTDIR}/fonts.cache-1"
+
+ # Prefix compat
+ case ${EAPI:-0} in
+ 0|1|2)
+ if ! use prefix; then
+ EPREFIX=
+ ED=${D}
+ EROOT=${ROOT}
+ [[ ${EROOT} = */ ]] || EROOT+="/"
+ fi
+ ;;
+ esac
}

# @FUNCTION: font_pkg_postinst
# @DESCRIPTION:
-# The font pkg_postinst function, which is exported.
+# The font pkg_postinst function.
+# Update global font cache and fix permissions.
font_pkg_postinst() {
# unreadable font files = fontconfig segfaults
- find "${ROOT}"usr/share/fonts/ -type f '!' -perm 0644 -print0
+ find "${EROOT}"usr/share/fonts/ -type f '!' -perm 0644 -print0
| xargs -0 chmod -v 0644 2>/dev/null

if [[ -n ${FONT_CONF[@]} ]]; then
- if has_version '>=media-libs/fontconfig-2.4'; then
- local conffile
- echo
- elog "The following fontconfig configuration files have been installed:"
- elog
- for conffile in "${FONT_CONF[@]}"; do
- if [[ -e ${ROOT}etc/fonts/conf.avail/$(basename ${conffile}) ]]; then
- elog " $(basename ${conffile})"
- fi
- done
- elog
- elog "Use `eselect fontconfig` to enable/disable them."
- echo
- fi
- fi
-
- if has_version '>=media-libs/fontconfig-2.4'; then
- if [[ ${ROOT} == "/" ]]; then
- ebegin "Updating global fontcache"
- fc-cache -fs
- eend $?
- fi
+ local conffile
+ echo
+ elog "The following fontconfig configuration files have been installed:"
+ elog
+ for conffile in "${FONT_CONF[@]}"; do
+ if [[ -e ${EROOT}etc/fonts/conf.avail/$(basename ${conffile}) ]]; then
+ elog " $(basename ${conffile})"
+ fi
+ done
+ elog
+ elog "Use `eselect fontconfig` to enable/disable them."
+ echo
+ fi
+
+ if [[ ${ROOT} == / ]]; then
+ ebegin "Updating global fontcache"
+ fc-cache -fs
+ eend $?
fi
}

# @FUNCTION: font_pkg_postrm
# @DESCRIPTION:
-# The font pkg_postrm function, which is exported.
+# The font pkg_postrm function.
+# Updates global font cache
font_pkg_postrm() {
# unreadable font files = fontconfig segfaults
- find "${ROOT}"usr/share/fonts/ -type f '!' -perm 0644 -print0
+ find "${EROOT}"usr/share/fonts/ -type f '!' -perm 0644 -print0
| xargs -0 chmod -v 0644 2>/dev/null

- if has_version '>=media-libs/fontconfig-2.4'; then
- if [[ ${ROOT} == "/" ]]; then
- ebegin "Updating global fontcache"
- fc-cache -fs
- eend $?
- fi
+ if [[ ${ROOT} == / ]]; then
+ ebegin "Updating global fontcache"
+ fc-cache -fs
+ eend $?
fi
}

Peter Volkov 02-01-2010 12:14 PM

Font eclass EAPI update and design
 
В Пнд, 01/02/2010 в 11:35 +0100, Tomáš Chvátal пишет:
> As I was reworking the x-modular-r2 eclass I found out that most of the
> slowdowns for fonts were produced in fonts eclass.

Exactly what slowdowns are you talking about? I've reviewed all changes
and I don't see any noticeable performance improvements anywhere. Or
what do you mean?

> I would like to ask you to review the changes and spot anything that
> might slipped my sight.

1.
-FONT_SUFFIX=${FONT_SUFFIX:-}
+: ${FONT_SUFFIX:=}

What are the benefits of this change? Personally I prefer first syntax
more since it's more evident and does not need to run empty command :

2.
if has X ${IUSE//+} && use X ; then

I'm not sure. With this change should we update all packages depending
on font.eclass to have X in IUSE?

3.
If you dropped

if has_version '>=media-libs/fontconfig-2.4'; then

then >=media-libs/fontconfig-2.4 should be in DEPEND.

4.
+ [[ -n ${DOCS} ]] && { dodoc ${DOCS} || die "docs installation
failed" ; }

This should be non fatal, until somebody installs all packages that
inherit font.eclass and assures us that nothing broke with this change.

--
Peter.
h

Tomáš Chvátal 02-01-2010 12:29 PM

Font eclass EAPI update and design
 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dne 1.2.2010 14:14, Peter Volkov napsal(a):
> В Пнд, 01/02/2010 в 11:35 +0100, Tomáš Chvátal пишет:
>> As I was reworking the x-modular-r2 eclass I found out that most of the
>> slowdowns for fonts were produced in fonts eclass.
>
> Exactly what slowdowns are you talking about? I've reviewed all changes
> and I don't see any noticeable performance improvements anywhere. Or
> what do you mean?
Well it might be visible if you use some font from overlay and from main
tree (overlay use also the x-modular-r2) not sure which changes helped
it more :P
>
>> I would like to ask you to review the changes and spot anything that
>> might slipped my sight.
>
> 1.
> -FONT_SUFFIX=${FONT_SUFFIX:-}
> +: ${FONT_SUFFIX:=}
>
> What are the benefits of this change? Personally I prefer first syntax
> more since it's more evident and does not need to run empty command :
I am just used to this syntax. I dont think it is so huge issue that it
would need revert.
>
> 2.
> if has X ${IUSE//+} && use X ; then
>
> I'm not sure. With this change should we update all packages depending
> on font.eclass to have X in IUSE?
Nak this specialy allows that you dont have to keep X in iuse.
But it does not matter anyway because it is and was always defined by
eclass. But with this syntax it allows us to remove that IUSE="X" from
eclass global scope at some point.
>
> 3.
> If you dropped
>
> if has_version '>=media-libs/fontconfig-2.4'; then
>
> then >=media-libs/fontconfig-2.4 should be in DEPEND.
Probably yes, but think when was the 2.3 removed from portage :] (Jul 2007).
Dep added.
>
> 4.
> + [[ -n ${DOCS} ]] && { dodoc ${DOCS} || die "docs installation
> failed" ; }
>
> This should be non fatal, until somebody installs all packages that
> inherit font.eclass and assures us that nothing broke with this change.
>
Actualy former behaviour was violating QA rules for dodoc, so it should
be fixed anyway.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAktm1y8ACgkQHB6c3gNBRYe7GACfclA2J/2eMSw/wZJnfT9E2/4G
uB0AnRhnJ9RoiaoMwTkPASFMSlEx4XkY
=f/72
-----END PGP SIGNATURE-----

Peter Volkov 02-01-2010 05:53 PM

Font eclass EAPI update and design
 
В Пнд, 01/02/2010 в 14:29 +0100, Tomáš Chvátal пишет:
> > 2.
> > if has X ${IUSE//+} && use X ; then
> >
> > I'm not sure. With this change should we update all packages depending
> > on font.eclass to have X in IUSE?
> Nak this specialy allows that you dont have to keep X in iuse.
> But it does not matter anyway because it is and was always defined by
> eclass. But with this syntax it allows us to remove that IUSE="X" from
> eclass global scope at some point.

Do we have such goal? Where this is useful?

> > 4.
> > + [[ -n ${DOCS} ]] && { dodoc ${DOCS} || die "docs installation
> > failed" ; }
> >
> > This should be non fatal, until somebody installs all packages that
> > inherit font.eclass and assures us that nothing broke with this change.

> Actualy former behaviour was violating QA rules for dodoc, so it should
> be fixed anyway.

And yet we have more strong policy that states "not to break the tree".
Since previous version of eclass issued no warning about missed
documentation, it's highly probable that lot's of font packages will
fail to emerge after this change (we already had one report, while
eclass is in x11 overlay only)... So this is no go, until somebody
checks that no package (at least in stable tree) became broken by this
change.

--
Peter.

Ryan Hill 02-01-2010 09:26 PM

Font eclass EAPI update and design
 
On Mon, 01 Feb 2010 14:29:19 +0100
Tomáš Chvátal <scarabeus@gentoo.org> wrote:
> Dne 1.2.2010 14:14, Peter Volkov napsal(a):

> > 1.
> > -FONT_SUFFIX=${FONT_SUFFIX:-}
> > +: ${FONT_SUFFIX:=}
> >
> > What are the benefits of this change? Personally I prefer first syntax
> > more since it's more evident and does not need to run empty command :
> I am just used to this syntax. I dont think it is so huge issue that it
> would need revert.

No thanks. The second form is unreadable.

> > 4.
> > + [[ -n ${DOCS} ]] && { dodoc ${DOCS} || die "docs installation
> > failed" ; }
> >
> > This should be non fatal, until somebody installs all packages that
> > inherit font.eclass and assures us that nothing broke with this change.
> >
> Actualy former behaviour was violating QA rules for dodoc, so it should
> be fixed anyway.

Well then the QA rules for dodoc are dumb. :P There is no reason for an
ebuild to die when a generic doc file doesn't get installed.

The prefix changes are welcome assuming they've been tested.


--
fonts, by design, by neglect
gcc-porting, for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662

Torsten Veller 02-02-2010 09:18 AM

Font eclass EAPI update and design
 
* Tomáš Chvátal <scarabeus@gentoo.org>:
> # @FUNCTION: font_pkg_setup
> # @DESCRIPTION:
> # The font pkg_setup function.
> # Collision portection and Prefix compat for eapi < 3.
> font_pkg_setup() {
> # make sure we get no collisions
> # setup is not the nicest place, but preinst doesn't cut it
> [[ -e "${FONTDIR}/fonts.cache-1" ]] && rm -f "${FONTDIR}/fonts.cache-1"

(E)ROOT is missing.

> # Prefix compat
> case ${EAPI:-0} in
> 0|1|2)
> if ! use prefix; then
> EPREFIX=
> ED=${D}
> EROOT=${ROOT}
> [[ ${EROOT} = */ ]] || EROOT+="/"
> fi
> ;;
> esac

Don't we need this for every eclass using EPREFIX, ED and EROOT
independent of EAPI?
Can't we move this to prefix.eclass and inherit it? Or is the EPREFIX
setting in prefix.eclass already enough?

Tomáš Chvátal 02-02-2010 09:30 AM

Font eclass EAPI update and design
 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dne 2.2.2010 11:18, Torsten Veller napsal(a):
> * Tomáš Chvátal <scarabeus@gentoo.org>:
>> # @FUNCTION: font_pkg_setup
>> # @DESCRIPTION:
>> # The font pkg_setup function.
>> # Collision portection and Prefix compat for eapi < 3.
>> font_pkg_setup() {
>> # make sure we get no collisions
>> # setup is not the nicest place, but preinst doesn't cut it
>> [[ -e "${FONTDIR}/fonts.cache-1" ]] && rm -f "${FONTDIR}/fonts.cache-1"
>
> (E)ROOT is missing.
Good spot. EFixed :]
>
>> # Prefix compat
>> case ${EAPI:-0} in
>> 0|1|2)
>> if ! use prefix; then
>> EPREFIX=
>> ED=${D}
>> EROOT=${ROOT}
>> [[ ${EROOT} = */ ]] || EROOT+="/"
>> fi
>> ;;
>> esac
>
> Don't we need this for every eclass using EPREFIX, ED and EROOT
> independent of EAPI?
> Can't we move this to prefix.eclass and inherit it? Or is the EPREFIX
> setting in prefix.eclass already enough?
>

Actualy dunno, i did it this way because it is the way how other eclass
were altered in this matter.

Maybe we could add it to base eclass and then via proper inheritance it
might work. Or to prefix eclass which would be inherited elsewhere.

We would have to ask prefix mages, adding them to CC :]

Tomas
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAktn/qgACgkQHB6c3gNBRYfwGwCdGqFw9sMuxbd3QxafWjY4i+me
y/0AoJAoBg11gyZTBxIp9QyqFrK4c9pa
=W3Rf
-----END PGP SIGNATURE-----

Fabian Groffen 02-02-2010 09:50 AM

Font eclass EAPI update and design
 
On 02-02-2010 11:18:32 +0100, Torsten Veller wrote:
> > # Prefix compat
> > case ${EAPI:-0} in
> > 0|1|2)
> > if ! use prefix; then
> > EPREFIX=
> > ED=${D}
> > EROOT=${ROOT}
> > [[ ${EROOT} = */ ]] || EROOT+="/"
> > fi
> > ;;
> > esac
>
> Don't we need this for every eclass using EPREFIX, ED and EROOT
> independent of EAPI?
> Can't we move this to prefix.eclass and inherit it? Or is the EPREFIX
> setting in prefix.eclass already enough?

You cannot set EROOT and ED (reliably) from prefix.eclass, unless you
wrap them in phase funcs for which ROOT and D are guaranteed to be
defined. OIW: The logic can be moved but a simple "inherit prefix"
won't be enough to use EROOT and ED.


--
Fabian Groffen
Gentoo on a different level


All times are GMT. The time now is 08:25 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.