# Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/eclass/kde-source.eclass,v 1.18 2003/07/17 14:55:10 danarmak Exp $ # # Author Dan Armak # # This is for kde-base cvs ebuilds. Read comments about settings. # It uses $S and sets $SRC_URI, so inherit it as late as possible (certainly after any other eclasses). # See http://www.gentoo.org/~danarmak/kde-cvs.html ! # All of the real functionality is in cvs.eclass; this just adds some trivial kde-specific items ECLASS=kde-source INHERITED="$INHERITED $ECLASS" # --- begin user-configurable settings --- # Set yours in profile (e.g. make.conf), or export from the command line to override. # Most have acceptable default values or are set by the ebuilds, but be sure to read the comments # in cvs.eclass for detailed descriptions of them all. # You should probably set at least ECVS_SERVER. # TODO: add options to store the modules as tarballs in $DISTDIR or elsewhere # Under this directory the cvs modules are stored/accessed # Storing in tarballs in $DISTDIR to be implemented soon [ -z "$ECVS_TOP_DIR" ] && ECVS_TOP_DIR="$DISTDIR/cvs-src/kde" # Set to name of cvs server. Set to "" to disable fetching (offline mode). # In offline mode, we presume that modules are already checked out at the specified # location and that they shouldn't be updated. # Format example: "anoncvs.kde.org:/home/kde" (without :pserver:anonymous@ part) # Mirror list is available at http://developer.kde.org/source/anoncvs.html [ -z "$ECVS_SERVER" ] && ECVS_SERVER="anoncvs.kde.org:/home/kde" [ -z "$ECVS_AUTH" ] && ECVS_AUTH="pserver" # for apps living inside modules like kdenonbeta - see also beginning of our _src_unpack # KCVS_SUBDIR=... # If a tag is specified as ECVS_BRANCH, it will be used for the kde-common module # as well. If that is wrong (fex when checking out kopete branch kopete_0_6_2_release), # use KCVS_BRANCH instead. # you can set this variable (in your ebuild, of course) to disable fetching of /doc/* # under the KCVS_SUBDIR scheme. this is appropriate for kde-i18n stuff, but not for # eg kdeextragear, kdenonbeta etc. # KCVS_SUBDIR_NODOC=true # Other variables: see cvs.eclass # we do this here and not in the very beginning because we need to keep # the configuration order intact: env. and profile settings override # kde-source.eclass defaults, which in turn override cvs.eclass defaults inherit cvs #... and reset $ECLASS. Ugly I know, hopefully I can prettify it someday ECLASS=kde-source # --- end user-configurable settings --- DESCRIPTION="$DESCRIPTION (cvs) " # set this to more easily maintain cvs and std ebuilds side-by-side # (we don't need to remove SRC_URI, kde-dist.eclass, kde.org.eclass etc # from the cvs ones). To download patches or something, set SRC_URI again after # inheriting kde_source. SRC_URI="" if [ -n "$KCVS_SUBDIR" -o -n "$KCVS_MODULE" ]; then S="$WORKDIR/$KCVS_MODULE" else # default for kde-base ebuilds S="$WORKDIR/${ECVS_MODULE:-$PN}" fi kde-source_src_unpack() { debug-print-function $FUNCNAME $* # decide what the main module is that we're fetching and call cvs_src_unpack # the other things are fetched later # (kde-common/admin, /doc/*, /) if [ -n "$KCVS_SUBDIR" ]; then ECVS_MODULE="$KCVS_MODULE/$KCVS_SUBDIR" elif [ -n "$KCVS_MODULE" ]; then ECVS_MODULE="$KCVS_MODULE" else # default for kde-base ebuilds ECVS_MODULE="$PN" fi cvs_src_unpack # subdirs of kde modules get special treatment that is designed for # subdirs which are separate selfcontained apps and only need # automake/autoconf stuff etc. added to them. # this fits for apps from kdenonbeta, kdeextragear modules etc. # So, if we just fetched a module's subdir, fetch the top directory # of the module (non-recursively) and make it build only the subdirectory # we need. # ECVS_LOCALNAME note: disabled when KCVS_SUBDIR is enabled because the logic # of how it should work is unclear and I don't see any need for it here anyway if [ -n "$KCVS_SUBDIR" ]; then if [ -n "$KCVS_BRANCH" ]; then ECVS_BRANCH2="$ECVS_BRANCH" ECVS_BRANCH="$KCVS_BRANCH" fi ECVS_MODULE="$KCVS_MODULE" ECVS_LOCAL=yes cvs_src_unpack # we need the /doc/ directory too, # and we need the top-level doc/ directory fetched locally ECVS_MODULE="${KCVS_MODULE}/doc" ECVS_LOCAL=yes cvs_src_unpack # but, if such a directory doesn't exist on the cvs server and we're # in offline mode cvs.eclass will abort, so only call this if we're # in online mode or the dir is already fetched # also, the ebuild might have disabled this functionality explicitly # (kde-i18n stuff does this for now) if [ -z "$KCVS_SUBDIR_NODOC" ] && [ -d "$ECVS_TOP_DIR/$KCVS_MODULE/doc/$KCVS_SUBDIR" -o "$ECVS_SERVER" != "offline" ]; then ECVS_MODULE="${KCVS_MODULE}/doc/${KCVS_SUBDIR}" cvs_src_unpack fi if [ -n "$KCVS_BRANCH" ]; then ECVS_BRANCH="$ECVS_BRANCH2" fi fi # typically for kde cvs apps, the admin subdir lives in the kde-common module # which is also needed if [ ! -d "$S/admin" ]; then ECVS_MODULE="kde-common/admin" cvs_src_unpack mv ${WORKDIR}/kde-common/admin $S/ fi # make sure we give them a clean cvs checkout cd ${S} [ -f "Makefile" ] && make -f Makefile.cvs cvs-clean [ -f "config.cache" ] && rm config.cache } EXPORT_FUNCTIONS src_unpack