/[gentoo-x86]/eclass/enlightenment.eclass
Gentoo

Diff of /eclass/enlightenment.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.56 Revision 1.84
1# Copyright 1999-2005 Gentoo Foundation 1# Copyright 1999-2010 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/enlightenment.eclass,v 1.56 2005/08/23 23:53:26 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/enlightenment.eclass,v 1.84 2010/08/22 23:31:08 vapier Exp $
4#
5# Author: vapier@gentoo.org
6 4
5# @ECLASS: enlightenment.eclass
6# @MAINTAINER:
7# enlightenment@gentoo.org
8# @BLURB: simplify enlightenment package management
9
7inherit eutils 10inherit eutils libtool
8 11
12# @ECLASS-VARIABLE: E_PYTHON
13# @DEFAULT_UNSET
14# @DESCRIPTION:
15# if defined, the package is based on Python/distutils
16
17# @ECLASS-VARIABLE: E_CYTHON
18# @DEFAULT_UNSET
19# @DESCRIPTION:
20# if defined, the package is Cython bindings (implies E_PYTHON)
21
9# ECVS_STATE's: 22# E_STATE's:
10# release [default] 23# release [default]
11# KEYWORDS arch 24# KEYWORDS arch
12# SRC_URI $P.tar.gz 25# SRC_URI $P.tar.gz
13# S $WORKDIR/$P 26# S $WORKDIR/$P
14# 27#
16# KEYWORDS ~arch 29# KEYWORDS ~arch
17# SRC_URI $P.tar.bz2 30# SRC_URI $P.tar.bz2
18# S $WORKDIR/$P 31# S $WORKDIR/$P
19# 32#
20# live $PV has a 9999 marker 33# live $PV has a 9999 marker
21# KEYWORDS -* 34# KEYWORDS ""
22# SRC_URI `cvs up` 35# SRC_URI cvs/svn/etc... up
23# S $WORKDIR/$ECVS_MODULE 36# S $WORKDIR/$E_S_APPEND
24# 37#
25# Overrides: 38# Overrides:
26# KEYWORDS EKEY_STATE 39# KEYWORDS EKEY_STATE
27# SRC_URI EURI_STATE 40# SRC_URI EURI_STATE
28# S EURI_STATE 41# S EURI_STATE
29 42
30EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst 43#E_LIVE_DEFAULT_CVS="cvs.sourceforge.net:/cvsroot/enlightenment"
44E_LIVE_SERVER_DEFAULT_CVS="anoncvs.enlightenment.org:/var/cvs/e"
45E_LIVE_SERVER_DEFAULT_SVN="http://svn.enlightenment.org/svn/e/trunk"
31 46
32ECVS_STATE="release" 47E_STATE="release"
33if [[ ${PV/9999} != ${PV} ]] ; then 48if [[ ${PV/9999} != ${PV} ]] ; then
49 E_LIVE_SERVER=${E_LIVE_SERVER:-${E_LIVE_SERVER_DEFAULT_SVN}}
50 E_STATE="live"
51 WANT_AUTOTOOLS="yes"
52
53 # force people to opt-in to legacy cvs
34 if [[ -z ${ECVS_MODULE} ]] ; then 54 if [[ -n ${ECVS_MODULE} ]] ; then
35 ECVS_MODULE=${PN} 55 ECVS_SERVER=${ECVS_SERVER:-${E_LIVE_SERVER_DEFAULT_CVS}}
36 if [[ ${CATEGORY/libs} != ${CATEGORY} ]] ; then 56 E_LIVE_SOURCE="cvs"
37 ECVS_MODULE="e17/libs/${PN}" 57 E_S_APPEND=${ECVS_MODULE}
38 else
39 ECVS_MODULE="e17/apps/${PN}"
40 fi
41 fi
42 ECVS_SERVER=${ECVS_SERVER:-cvs.sourceforge.net:/cvsroot/enlightenment}
43 ECVS_STATE="live"
44 inherit cvs 58 inherit cvs
45elif [[ ${PV/.200[3-9][0-1][0-9][0-3][0-9]/} != ${PV} ]] ; then 59 else
60 ESVN_URI_APPEND=${ESVN_URI_APPEND:-${PN}}
61 ESVN_PROJECT="enlightenment/${ESVN_SUB_PROJECT}"
62 ESVN_REPO_URI=${ESVN_SERVER:-${E_LIVE_SERVER_DEFAULT_SVN}}/${ESVN_SUB_PROJECT}/${ESVN_URI_APPEND}
63 E_S_APPEND=${ESVN_URI_APPEND}
64 E_LIVE_SOURCE="svn"
65 inherit subversion
66 fi
67elif [[ -n ${E_SNAP_DATE} ]] ; then
46 ECVS_STATE="snap" 68 E_STATE="snap"
47elif [[ ${PV%%.[0-9][0-9][0-9]} != ${PV} ]] ; then 69else
48 ECVS_STATE="snap"
49 EURI_STATE="release" 70 E_STATE="release"
50fi 71fi
72
73# Parse requested python state
74: ${E_PYTHON:=${E_CYTHON}}
75if [[ -n ${E_PYTHON} ]] ; then
76 WANT_AUTOTOOLS="no"
77
78 PYTHON_DEPEND="2:2.4"
79
80 inherit python distutils
81fi
82
83if [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
84 WANT_AUTOCONF=${E_WANT_AUTOCONF:-latest}
85 WANT_AUTOMAKE=${E_WANT_AUTOMAKE:-latest}
86 inherit autotools
87fi
88
89ENLIGHTENMENT_EXPF="pkg_setup src_unpack src_compile src_install pkg_postinst"
90case "${EAPI:-0}" in
91 2|3|4) ENLIGHTENMENT_EXPF+=" src_prepare src_configure" ;;
92 *) ;;
93esac
94EXPORT_FUNCTIONS ${ENLIGHTENMENT_EXPF}
51 95
52DESCRIPTION="A DR17 production" 96DESCRIPTION="A DR17 production"
53HOMEPAGE="http://www.enlightenment.org/" 97HOMEPAGE="http://www.enlightenment.org/"
54case ${EURI_STATE:-${ECVS_STATE}} in 98case ${EURI_STATE:-${E_STATE}} in
55 release) SRC_URI="http://enlightenment.freedesktop.org/files/${P}.tar.gz mirror://sourceforge/enlightenment/${P}.tar.gz";; 99 release) SRC_URI="mirror://sourceforge/enlightenment/${P}.tar.gz";;
56 snap) SRC_URI="mirror://gentoo/${P}.tar.bz2";; 100 snap) SRC_URI="http://download.enlightenment.org/snapshots/${E_SNAP_DATE}/${P}.tar.bz2";;
57 live) SRC_URI="";; 101 live) SRC_URI="";;
58esac 102esac
59 103
60LICENSE="BSD" 104LICENSE="BSD"
61SLOT="0" 105SLOT="0"
62case ${EKEY_STATE:-${ECVS_STATE}} in 106case ${EKEY_STATE:-${E_STATE}} in
63 release) KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sparc x86";; 107 release) KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-interix ~x86-solaris ~x64-solaris";;
64 snap) KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86";; 108 snap) KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-interix ~x86-solaris ~x64-solaris";;
65 live) KEYWORDS="-*";; 109 live) KEYWORDS="";;
66esac 110esac
67IUSE="nls doc" 111IUSE="nls doc"
68 112
69DEPEND="doc? ( app-doc/doxygen )" 113DEPEND="doc? ( app-doc/doxygen )"
70RDEPEND="nls? ( sys-devel/gettext )" 114RDEPEND="nls? ( sys-devel/gettext )"
115[[ -n ${E_PYTHON} ]] && DEPEND+=" >=dev-python/setuptools-0.6_rc9"
116[[ -n ${E_CYTHON} ]] && DEPEND+=" >=dev-python/cython-0.12.1"
71 117
72case ${EURI_STATE:-${ECVS_STATE}} in 118case ${EURI_STATE:-${E_STATE}} in
73 release) S=${WORKDIR}/${P};; 119 release) S=${WORKDIR}/${P};;
74 snap) S=${WORKDIR}/${PN};; 120 snap) S=${WORKDIR}/${P};;
75 live) S=${WORKDIR}/${ECVS_MODULE};; 121 live) S=${WORKDIR}/${E_S_APPEND};;
76esac 122esac
77 123
78enlightenment_warning_msg() { 124enlightenment_warning_msg() {
125 if [[ -n ${E_LIVE_SERVER} ]] ; then
126 einfo "Using user server for live sources: ${E_LIVE_SERVER}"
127 fi
79 if [[ ${ECVS_STATE} == "snap" ]] ; then 128 if [[ ${E_STATE} == "snap" ]] ; then
80 ewarn "Please do not contact the E team about bugs in Gentoo." 129 ewarn "Please do not contact the E team about bugs in Gentoo."
81 ewarn "Only contact vapier@gentoo.org via e-mail or bugzilla." 130 ewarn "Only contact enlightenment@gentoo.org via e-mail or bugzilla."
82 ewarn "Remember, this stuff is CVS only code so dont cry when" 131 ewarn "Remember, this stuff is DEV only code so dont cry when"
83 ewarn "I break you :)." 132 ewarn "I break you :)."
84 elif [[ ${ECVS_STATE} == "live" ]] ; then 133 elif [[ ${E_STATE} == "live" ]] ; then
85 eerror "This is a LIVE CVS ebuild." 134 eerror "This is a LIVE SOURCES ebuild."
86 eerror "That means there are NO promises it will work." 135 eerror "That means there are NO promises it will work."
87 eerror "If it fails to build, FIX THE CODE YOURSELF" 136 eerror "If it fails to build, FIX THE CODE YOURSELF"
88 eerror "before reporting any issues." 137 eerror "before reporting any issues."
89 fi 138 fi
90} 139}
91 140
92enlightenment_die() { 141enlightenment_die() {
93 enlightenment_warning_msg 142 enlightenment_warning_msg
94 die "$@"$'\n'"!!! SEND BUG REPORTS TO vapier@gentoo.org NOT THE E TEAM" 143 die "$@"$'\n'"!!! SEND BUG REPORTS TO enlightenment@gentoo.org NOT THE E TEAM"
95} 144}
96 145
97enlightenment_pkg_setup() { 146enlightenment_pkg_setup() {
98 enlightenment_warning_msg 147 : enlightenment_warning_msg
99}
100
101# the stupid gettextize script prevents non-interactive mode, so we hax it
102gettext_modify() {
103 use nls || return 0
104 cp $(which gettextize) "${T}"/ || die "could not copy gettextize"
105 sed -i \
106 -e 's:read dummy < /dev/tty::' \
107 "${T}"/gettextize
108} 148}
109 149
110enlightenment_src_unpack() { 150enlightenment_src_unpack() {
111 if [[ ${ECVS_STATE} == "live" ]] ; then 151 if [[ ${E_STATE} == "live" ]] ; then
152 case ${E_LIVE_SOURCE} in
112 cvs_src_unpack 153 cvs) cvs_src_unpack;;
154 svn) subversion_src_unpack;;
155 *) die "eek!";;
156 esac
113 else 157 else
114 unpack ${A} 158 unpack ${A}
115 fi 159 fi
116 gettext_modify 160 hasq src_prepare ${ENLIGHTENMENT_EXPF} || enlightenment_src_prepare
161}
162
163enlightenment_src_prepare() {
117 [[ -s gendoc ]] && chmod a+rx gendoc 164 [[ -s gendoc ]] && chmod a+rx gendoc
165 if [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
166 [[ -d po ]] && eautopoint -f
167 # autotools require README, when README.in is around, but README
168 # is created later in configure step
169 [[ -f README.in ]] && touch README
170 eautoreconf
171 fi
172 epunt_cxx
173 elibtoolize
174}
175
176enlightenment_src_configure() {
177 # gstreamer sucks, work around it doing stupid stuff
178 export GST_REGISTRY="${S}/registry.xml"
179
180 econf ${MY_ECONF}
118} 181}
119 182
120enlightenment_src_compile() { 183enlightenment_src_compile() {
121 if [[ ! -e configure ]] ; then 184 hasq src_configure ${ENLIGHTENMENT_EXPF} || enlightenment_src_configure
122 export WANT_AUTOMAKE=${EAUTOMAKE:-1.8} 185
123 env \ 186 if [[ -z ${E_PYTHON} ]] ; then
124 PATH="${T}:${PATH}" \
125 NOCONFIGURE=yes \
126 USER=blah \
127 ./autogen.sh \
128 || enlightenment_die "autogen failed" 187 emake || enlightenment_die "emake failed"
129 # symlinked files will cause sandbox violation 188 else
130 for x in config.{guess,sub} ; do 189 distutils_src_compile
131 [[ ! -L ${x} ]] && continue 190 fi
132 rm -f ${x} 191
133 touch ${x} 192 if use doc ; then
134 done 193 if [[ -x ./gendoc ]] ; then
135 if [[ ! -z ${EHACKLIBLTDL} ]] ; then 194 ./gendoc || enlightenment_die "gendoc failed"
136 cd libltdl 195 else
137 autoconf || enlightenment_die "autogen in libltdl failed" 196 emake doc || enlightenment_die "emake doc failed"
138 cd ..
139 fi 197 fi
140 fi 198 fi
141 epunt_cxx
142 econf ${MY_ECONF} || enlightenment_die "econf failed"
143 emake || enlightenment_die "emake failed"
144 use doc && [[ -x ./gendoc ]] && { ./gendoc || enlightenment_die "gendoc failed" ; }
145} 199}
146 200
147enlightenment_src_install() { 201enlightenment_src_install() {
148 make install DESTDIR="${D}" || enlightenment_die 202 emake install DESTDIR="${D}" || enlightenment_die
149 find "${D}" -name CVS -type d -exec rm -rf '{}' \; 2>/dev/null 203 find "${D}" '(' -name CVS -o -name .svn -o -name .git ')' -type d -exec rm -rf '{}' \; 2>/dev/null
150 dodoc AUTHORS ChangeLog NEWS README TODO ${EDOCS} 204 for d in AUTHORS ChangeLog NEWS README TODO ${EDOCS}; do
205 [[ -f ${d} ]] && dodoc ${d}
206 done
151 use doc && [[ -d doc ]] && dohtml -r doc/* 207 use doc && [[ -d doc ]] && dohtml -r doc/*
152} 208}
153 209
154enlightenment_pkg_postinst() { 210enlightenment_pkg_postinst() {
155 enlightenment_warning_msg 211 : enlightenment_warning_msg
156} 212}

Legend:
Removed from v.1.56  
changed lines
  Added in v.1.84

  ViewVC Help
Powered by ViewVC 1.1.20