That's actually is somewhat like merge with
http://git.niifaq.ru/enlightenment-niifaq/tree/eclass/enlightenment.eclass
Changes made:
1) no forced WANT_AUTOTOOLS=yes for live ebuilds - it's set only if ebuild
hasn't
set it itself before inherit. It's useful for external packages, that
are not using autotools, but may be integrated with efl.eclass
2) same for WANT_AUTO{MAKE,CONF} - package may want specific version,
not only latest. Also, user's choice is honored at most
3) EAPI=2 compatibility. Warning: no backward compatibility. profiles/eapi
should be set to 2, and every ebuild should define EAPI="2"
4) MY_ECONF changes moved to src_configure. It will prevent QA arguing
about use_enable calls into global scope. --disable-static is
forced as explicit argument to econf, to prevent ebuild drop
it from MY_ECONF by incident
5) cvs dependency now only if autotools are required
6) debug section is dropped - such functionality should be controlled by
user. debug use-flag should be used only if there is such
configure flags (that are enabling, for example, more verbose
messaging)
7) Only subversion is supported. Rest of multi-repository support is
leaned up. It's easier to override src_unpack in external
packages than develop nice and efficient system for multiply vcs
support
8) Autogen.sh call replaced with explicit eautoreconf call. Autopoint
call also added, as it's not handled by eautoreconf, based on
configure.ac greping.
9) pkg_postinst/setup removed as useless no-op
Signed-off-by: Andrian Nord <[email protected]>
Index: efl.eclass
===================================================================
--- efl.eclass (revision 45907)
+++ efl.eclass (working copy)
@@ -4,6 +4,7 @@
#
# Author: [email protected]
# Modified: [email protected]
+# Modified: [email protected]
inherit eutils libtool flag-o-matic
@@ -35,25 +36,32 @@
E_LIVE_SERVER_DEFAULT_SVN="http://svn.enlightenment.org/svn/e/trunk"
E_STATE="release"
+
if [[ ${PV/9999} != ${PV} ]] ; then
- E_LIVE_SERVER=${E_LIVE_SERVER:-${E_LIVE_SERVER_DEFAULT_SVN}}
E_STATE="live"
- WANT_AUTOTOOLS="yes"
+ PROPERTIES="live"
+ : ${WANT_AUTOTOOLS:=yes}
+
+ [[ -n ${E_LIVE_OFFLINE} ]] && ESCM_OFFLINE="yes"
+
+ E_LIVE_SERVER=${E_LIVE_SERVER:-${E_LIVE_SERVER_DEFAULT_SVN}}
ESVN_URI_APPEND=${ESVN_URI_APPEND:-${PN}}
ESVN_PROJECT="enlightenment/${ESVN_SUB_PROJECT}"
-
ESVN_REPO_URI=${ESVN_SERVER:-${E_LIVE_SERVER_DEFAULT_SVN}}/${ESVN_SUB_PROJECT}/${ESVN_URI_APPEND}
+ ESVN_REPO_URI=${E_LIVE_SERVER}/${ESVN_SUB_PROJECT}/${ESVN_URI_APPEND}
+
E_S_APPEND=${ESVN_URI_APPEND}
- E_LIVE_SOURCE="svn"
inherit subversion
elif [[ -n ${E_SNAP_DATE} ]] ; then
E_STATE="snap"
else
E_STATE="release"
fi
+
if [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
- WANT_AUTOCONF=${E_WANT_AUTOCONF:-latest}
- WANT_AUTOMAKE=${E_WANT_AUTOMAKE:-latest}
+ : ${WANT_AUTOCONF:=${E_WANT_AUTOCONF:-latest}}
+ : ${WANT_AUTOMAKE:=${E_WANT_AUTOMAKE:-latest}}
+
inherit autotools
fi
@@ -66,39 +74,35 @@
LICENSE="BSD"
SLOT="0"
+
case ${EKEY_STATE:-${E_STATE}} in
release) KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sh sparc
x86 ~x86-fbsd";;
snap) KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh
~sparc ~x86 ~x86-fbsd";;
live) KEYWORDS="";;
esac
+
DEPEND="${DEPEND} dev-util/pkgconfig"
-MY_ECONF="--disable-static"
+MY_ECONF=""
if [[ -z "${E_NO_NLS}" ]]; then
IUSE="${IUSE} nls"
DEPEND="${DEPEND} nls? ( sys-devel/gettext )"
- MY_ECONF="${MY_ECONF} $(use_enable nls)"
# gettext (via `autopoint`) needs to run cvs #245073
- [[ ${E_STATE} == "live" ]] && DEPEND="${DEPEND} dev-util/cvs"
+ if [[ ${E_STATE} == "live" ]] && [[ ${wANT_AUTOTOOLS} == "yes" ]]; then
+ DEPEND="${DEPEND} dev-util/cvs"
+ fi
fi
if [[ -z "${E_NO_DOC}" ]]; then
IUSE="${IUSE} doc"
DEPEND="${DEPEND} doc? ( app-doc/doxygen )"
- MY_ECONF="${MY_ECONF} $(use_enable doc)"
fi
-if [[ -z "${E_NO_VISIBILITY}" ]]; then
- if [[ $(gcc-major-version) -ge 4 ]]; then
- append-flags -fvisibility=hidden
- fi
+if [[ -z "${E_NO_VISIBILITY}" ]] && [[ $(gcc-major-version) -ge 4 ]]; then
+ append-flags -fvisibility=hidden
fi
-if [[ "${E_STATE}" != "release" ]]; then
- IUSE="${IUSE} debug"
-fi
-
case ${EURI_STATE:-${E_STATE}} in
release) S=${WORKDIR}/${P};;
snap) S=${WORKDIR}/${P};;
@@ -109,6 +113,7 @@
if [[ -n ${E_LIVE_SERVER} ]] ; then
einfo "Using user server for live sources: ${E_LIVE_SERVER}"
fi
+
if [[ ${E_STATE} == "snap" ]] ; then
ewarn "Please do not contact the E team about bugs in Gentoo."
ewarn "Only contact [email protected] via e-mail or
bugzilla."
@@ -127,10 +132,6 @@
die "$@"$'\n'"!!! SEND BUG REPORTS TO [email protected] NOT THE
E TEAM"
}
-efl_pkg_setup() {
- : efl_warning_msg
-}
-
efl_src_test() {
if use test; then
emake -j1 check || die "Make check failed. see above for
details"
@@ -148,52 +149,70 @@
efl_src_unpack() {
if [[ ${E_STATE} == "live" ]] ; then
- case ${E_LIVE_SOURCE} in
- svn) subversion_src_unpack;;
- *) die "eek!";;
- esac
+ subversion_src_unpack
else
unpack ${A}
fi
+
+ cd "${S}"
+}
+
+efl_src_prepare() {
gettext_modify
+
[[ -s gendoc ]] && chmod a+rx gendoc
-}
-efl_src_compile() {
- # gstreamer sucks, work around it doing stupid stuff
- export GST_REGISTRY="${S}/registry.xml"
+ if [[ -e configure.ac || -e configure.in ]] \
+ && [[
"${WANT_AUTOTOOLS}" == "yes" ]]; then
+ if grep -qE '^[[:space:]]*AM_GNU_GETTEXT_VERSION' configure.*;
then
+ local autopoint_log_file="${T}/autopoint.$$"
- if use debug; then
- strip-flags
- append-flags -g
- if ! hasq nostrip $FEATURES && ! hasq splitdebug $FEATURES; then
- ewarn "Compiling with USE=debug but portage will strip
binaries!"
- ewarn "Please use portage FEATURES=nostrip or
splitdebug"
- ewarn "See
http://www.gentoo.org/proj/en/qa/backtraces.xml"
+ ebegin "Running autopoint"
+
+ autopoint -f &> "${autopoint_log_file}"
+
+ if ! eend $?; then
+ ewarn "Autopoint failed"
+ ewarn "Log in ${autopoint_log_file}"
+ ewarn "(it makes sense only when compile fails
afterwards)"
+ fi
+
+ if grep -qi 'cvs program not found'
"${autopoint_log_file}"; then
+ ewarn "This error seems to be due missing CVS"
+ ewarn "(it's usage hardcoded into autopoint
code)"
+ ewarn "Please 'emerge cvs' if compilation will
fail"
+ ebeep 3
+ fi
fi
- fi
- if [[ ! -e configure ]] ; then
- env \
- PATH="${T}:${PATH}" \
- NOCONFIGURE=yes \
- USER=blah \
- ./autogen.sh \
- || efl_die "autogen failed"
- # symlinked files will cause sandbox violation
+ # someone forgot these very useful file...
+ touch README
+
+ eautoreconf
local x
for x in config.{guess,sub} ; do
[[ ! -L ${x} ]] && continue
rm -f ${x}
touch ${x}
done
- elif [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
- eautoreconf
fi
+
epunt_cxx
elibtoolize
- econf ${MY_ECONF} || efl_die "econf failed"
+}
+
+efl_src_configure() {
+ if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
+ [[ -z "${E_NO_NLS}" ]] && MY_ECONF+=" $(use_enable nls)"
+ [[ -z "${E_NO_DOC}" ]] && MY_ECONF+=" $(use_enable doc)"
+
+ econf --disable-static "${MY_ECONF}" || efl_die "configure
failed"
+ fi
+}
+
+efl_src_compile() {
emake || efl_die "emake failed"
+
if use doc; then
if [[ -x ./gendoc ]]; then
./gendoc || efl_die "gendoc failed"
@@ -205,11 +224,14 @@
efl_src_install() {
emake install DESTDIR="${D}" || efl_die
- find "${D}" '(' -name CVS -o -name .svn -o -name .git ')' -type d -exec
rm -rf '{}' \; 2>/dev/null
+
+ find "${D}" -name .svn -type d -exec rm -rf '{}' \; 2>/dev/null
find "${D}" -name '*.la' -delete
+
for d in AUTHORS ChangeLog NEWS README TODO ${EDOCS}; do
[[ -f ${d} ]] && dodoc ${d}
done
+
if use doc && [[ -d doc ]]; then
if [[ -d doc/html ]]; then
dohtml -r doc/html/*
@@ -219,8 +241,4 @@
fi
}
-efl_pkg_postinst() {
- : efl_warning_msg
-}
-
-EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst
src_test
+EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_install
src_test
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel