El jue, 02-05-2013 a las 17:16 +0200, hasufell escribió: > On 05/02/2013 05:12 PM, Pacho Ramos wrote: > > El jue, 02-05-2013 a las 15:54 +0200, hasufell escribió: > >> On 05/02/2013 03:40 PM, Pacho Ramos wrote: > >>> El jue, 02-05-2013 a las 14:34 +0200, hasufell escribió: > >>>> On 05/02/2013 12:41 PM, Pacho Ramos wrote: > >>>>> gnome-games was splitted in separate packages per game and, then, we > >>>>> need an eclass to also set proper settings inherited from gnome2 and > >>>>> games eclasses. This should also solve: > >>>>> https://bugs.gentoo.org/show_bug.cgi?id=432848 > >>>>> > >>>>> eclass and ebuild (games-puzzle/five-or-more) to try attached > >>>>> > >>>> > >>>> This does not honour GAMES_DATADIR afais. > >>> > >>> They cannot honor it since installing all stuff under /usr/share/games > >>> will lead to them even failing to start (I tried it before). > >>> > >> > >> Why? > >> > >> It's a common problem that people hardcode data dir destination in their > >> source files, assuming that people only want to install into /usr/share. > >> That is simply a bug and needs to be fixed in the package (it also means > >> it will probably fail for /usr/local and many other usecases, so this is > >> not even a gentoo specific bug). > >> > >> You cannot fix that on eclass level and it is not a reason to drop > >> supporting GAMES_DATADIR variable. That is inconsistent and does not > >> make sense. You would even get mixed permissions unless you fix that up > >> too. > >> > > > > I don't understand why games team makes all this prefix work, isn't > > changing permissions of installed files enough? > > > > I doubt if upstream will be ok with installing > > schemas/translations/gtk-doc stuff under this prefix :/ > > > > schemas/translations/gtk-doc don't need to be installed under that > prefix. Sometimes you have to seperate install locations, otherwise you > would end up getting pixmaps in /usr/share/games/pixmaps and such. > > That sometimes needs some micro-management. Datafiles should _always_ > have a seperate switch to choose the destination.
This is another attempt, some pending problems are: - localedir is wrongly chosen - it installs /var stuff under /var/games/games instead of /var/games :S
# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/eclass/python-single-r1.eclass,v 1.16 2013/04/07 17:02:52 mgorny Exp $ # @ECLASS: gnome-games # @MAINTAINER: # Gnome team <gn...@gentoo.org> # @AUTHOR: # Author: Pacho Ramos <pa...@gentoo.org> # @BLURB: An eclass to build gnome-games. # @DESCRIPTION: # An eclass to build gnome-games using proper phases from gnome2 and # games eclasses. case "${EAPI:-0}" in 0|1) die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}" ;; 2|3|4|5) ;; *) die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" ;; esac inherit games gnome2 EXPORT_FUNCTIONS pkg_setup src_prepare src_configure src_compile src_install pkg_preinst pkg_postinst pkg_postrm if [[ ! ${_GNOME_GAMES} ]]; then RDEPEND="!gnome-extra/gnome-games" # @FUNCTION: gnome-games_pkg_setup # @DESCRIPTION: # Set proper phase defaults gnome-games_pkg_setup() { debug-print-function ${FUNCNAME} "${@}" games_pkg_setup } # @FUNCTION: gnome-games_src_prepare # @DESCRIPTION: # Set proper phase defaults gnome-games_src_prepare() { debug-print-function ${FUNCNAME} "${@}" gnome2_src_prepare } # @FUNCTION: gnome-games_src_configure # @DESCRIPTION: # Set proper phase defaults, relying on gnome2_src_configure # and passing extra arguments from egamesconf (games.eclass) gnome-games_src_configure() { debug-print-function ${FUNCNAME} "${@}" gnome2_src_configure \ --bindir="${GAMES_BINDIR}" \ --libdir="$(games_get_libdir)" \ --sysconfdir="${GAMES_SYSCONFDIR}" \ --localstatedir="${GAMES_STATEDIR}" \ --prefix="${GAMES_PREFIX}" \ --localedir=/usr/share/locale \ "$@" # GAMES_DATADIR causes games to fail to run due schemas and other # files getting installed in unexpected places # --datadir="${GAMES_DATADIR}" # # We need to not set GAMES_PREFIX to get translations working # --localedir="${EPREFIX}"/usr/share/locale is not enough # --prefix="${GAMES_PREFIX}" -> setting bindir instead } # @FUNCTION: gnome-games_src_compile # @DESCRIPTION: # Set proper phase defaults gnome-games_src_compile() { debug-print-function ${FUNCNAME} "${@}" gnome2_src_compile } # @FUNCTION: gnome-games_src_install # @DESCRIPTION: # Set proper phase defaults gnome-games_src_install() { debug-print-function ${FUNCNAME} "${@}" gnome2_src_install prepgamesdirs } # @FUNCTION: gnome-games_pkg_preinst # @DESCRIPTION: # Set proper phase defaults gnome-games_pkg_preinst() { debug-print-function ${FUNCNAME} "${@}" gnome2_pkg_preinst games_pkg_preinst } # @FUNCTION: gnome-games_pkg_preinst # @DESCRIPTION: # Set proper phase defaults gnome-games_pkg_postinst() { debug-print-function ${FUNCNAME} "${@}" gnome2_pkg_postinst games_pkg_postinst } # @FUNCTION: gnome-games_pkg_postrm # @DESCRIPTION: # Set proper phase defaults gnome-games_pkg_postrm() { debug-print-function ${FUNCNAME} "${@}" gnome2_pkg_postrm } _GNOME_GAMES=1 fi