public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [RFC] Font eclass EAPI update and design
@ 2010-02-01 10:35 Tomáš Chvátal
  2010-02-01 13:14 ` [gentoo-dev] " Peter Volkov
  2010-02-02 10:18 ` Torsten Veller
  0 siblings, 2 replies; 8+ messages in thread
From: Tomáš Chvátal @ 2010-02-01 10:35 UTC (permalink / raw
  To: gentoo-dev, fonts


[-- Attachment #1.1: Type: text/plain, Size: 508 bytes --]

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

[-- Attachment #1.2: font.eclass --]
[-- Type: text/plain, Size: 4402 bytes --]

# 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
}

[-- Attachment #1.3: font.diff --]
[-- Type: text/plain, Size: 6697 bytes --]

--- 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
 }

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [gentoo-dev] Re: [RFC] Font eclass EAPI update and design
  2010-02-01 10:35 [gentoo-dev] [RFC] Font eclass EAPI update and design Tomáš Chvátal
@ 2010-02-01 13:14 ` Peter Volkov
  2010-02-01 13:29   ` Tomáš Chvátal
  2010-02-02 10:18 ` Torsten Veller
  1 sibling, 1 reply; 8+ messages in thread
From: Peter Volkov @ 2010-02-01 13:14 UTC (permalink / raw
  To: Tomáš Chvátal; +Cc: gentoo-dev, fonts

В Пнд, 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




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [gentoo-dev] Re: [RFC] Font eclass EAPI update and design
  2010-02-01 13:14 ` [gentoo-dev] " Peter Volkov
@ 2010-02-01 13:29   ` Tomáš Chvátal
  2010-02-01 18:53     ` Peter Volkov
  2010-02-01 22:26     ` Ryan Hill
  0 siblings, 2 replies; 8+ messages in thread
From: Tomáš Chvátal @ 2010-02-01 13:29 UTC (permalink / raw
  To: Peter Volkov; +Cc: gentoo-dev, fonts

-----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-----



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-dev] Re: [RFC] Font eclass EAPI update and design
  2010-02-01 13:29   ` Tomáš Chvátal
@ 2010-02-01 18:53     ` Peter Volkov
  2010-02-01 22:26     ` Ryan Hill
  1 sibling, 0 replies; 8+ messages in thread
From: Peter Volkov @ 2010-02-01 18:53 UTC (permalink / raw
  To: gentoo-dev; +Cc: fonts, scarabeus

В Пнд, 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.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [gentoo-dev] Re: [RFC] Font eclass EAPI update and design
  2010-02-01 13:29   ` Tomáš Chvátal
  2010-02-01 18:53     ` Peter Volkov
@ 2010-02-01 22:26     ` Ryan Hill
  1 sibling, 0 replies; 8+ messages in thread
From: Ryan Hill @ 2010-02-01 22:26 UTC (permalink / raw
  To: gentoo-dev

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





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [gentoo-dev] Re: [RFC] Font eclass EAPI update and design
  2010-02-01 10:35 [gentoo-dev] [RFC] Font eclass EAPI update and design Tomáš Chvátal
  2010-02-01 13:14 ` [gentoo-dev] " Peter Volkov
@ 2010-02-02 10:18 ` Torsten Veller
  2010-02-02 10:30   ` Tomáš Chvátal
  2010-02-02 10:50   ` Fabian Groffen
  1 sibling, 2 replies; 8+ messages in thread
From: Torsten Veller @ 2010-02-02 10:18 UTC (permalink / raw
  To: gentoo-dev

* 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?



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-dev] Re: [RFC] Font eclass EAPI update and design
  2010-02-02 10:18 ` Torsten Veller
@ 2010-02-02 10:30   ` Tomáš Chvátal
  2010-02-02 10:50   ` Fabian Groffen
  1 sibling, 0 replies; 8+ messages in thread
From: Tomáš Chvátal @ 2010-02-02 10:30 UTC (permalink / raw
  To: gentoo-dev, prefix

-----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-----



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [gentoo-dev] Re: [RFC] Font eclass EAPI update and design
  2010-02-02 10:18 ` Torsten Veller
  2010-02-02 10:30   ` Tomáš Chvátal
@ 2010-02-02 10:50   ` Fabian Groffen
  1 sibling, 0 replies; 8+ messages in thread
From: Fabian Groffen @ 2010-02-02 10:50 UTC (permalink / raw
  To: gentoo-dev

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



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-02-02 10:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-01 10:35 [gentoo-dev] [RFC] Font eclass EAPI update and design Tomáš Chvátal
2010-02-01 13:14 ` [gentoo-dev] " Peter Volkov
2010-02-01 13:29   ` Tomáš Chvátal
2010-02-01 18:53     ` Peter Volkov
2010-02-01 22:26     ` Ryan Hill
2010-02-02 10:18 ` Torsten Veller
2010-02-02 10:30   ` Tomáš Chvátal
2010-02-02 10:50   ` Fabian Groffen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox