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

Reply via email to