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

Diff of /eclass/enlightenment.eclass

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

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

Legend:
Removed from v.1.58  
changed lines
  Added in v.1.104

  ViewVC Help
Powered by ViewVC 1.1.20