# Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: Exp $ ECVS_SERVER="cvs.gnucash.org:/home/cvs/cvsroot" ECVS_MODULE="gnucash" ECVS_BRANCH="gnucash-gnome2-dev" ECVS_USER="cvs" ECVS_PASS="guest" #ECVS_CLEAN="1" #inherit cvs eutils flag-o-matic gnome2 libtool inherit cvs eutils flag-o-matic libtool DESCRIPTION="A personal finance manager" HOMEPAGE="http://www.gnucash.org/" LICENSE="GPL-2" SLOT="2" KEYWORDS="x86 ~sparc ~ppc ~alpha ~amd64" IUSE="chipcard hbci nls ofx postgres quotes" RDEPEND=">=dev-libs/glib-2.4 >=dev-util/guile-1.3.4 amd64? ( >=dev-util/guile-1.6.4-r2 ) >=dev-libs/g-wrap-1.3.3 >=dev-libs/libxml2-2.5.10 >=gnome-extra/libgsf-1.8.0 >=media-libs/libart_lgpl-2.3.11 >=sys-apps/texinfo-4.0 >=dev-libs/popt-1.5 =sys-libs/db-1* >=x11-libs/gtk+-2.4 >=media-libs/gdk-pixbuf-0.2 >=gnome-base/libgnomeui-2.4 >=gnome-base/libgnomeprint-2.5.2 >=gnome-base/libgnomeprintui-2.5.2 >=gnome-extra/libgtkhtml-3.6 >=dev-libs/slib-2.3.8 >=media-libs/libpng-1.0.9 >=media-libs/jpeg-6b >=sys-libs/zlib-1.1.4 >=app-text/scrollkeeper-0.3.1 app-text/docbook-xsl-stylesheets =app-text/docbook-xml-dtd-4.1.2* chipcard? ( sys-libs/libchipcard net-libs/aqhbci-ddvcard ) efence? ( dev-util/efence ) hbci? ( >=net-libs/aqhbci-1.0.0 ) ofx? ( >=dev-libs/libofx-0.7.0 ) quotes? ( dev-perl/DateManip dev-perl/Finance-Quote dev-perl/HTML-TableExtract ) postgres? ( dev-db/postgresql )" DEPEND="${RDEPEND} >=dev-lang/perl-5 >=dev-libs/slib-2.3.8 >=dev-lang/swig-1.3_alpha4 >=gnome-base/libglade-2.4 gnome-base/libghttp dev-util/pkgconfig nls? ( sys-devel/gettext )" # gnome2_src_install variable: # use make DESTDIR=${D} install rather than einstall USE_DESTDIR="1" DOCS="AUTHORS ChangeLog COPYING GNOME2_STATUS HACKING \ INSTALL NEWS README* TODO doc/README*" S="${WORKDIR}/gnucash" #${dir}="/opt/gnc-g2-unstable" src_unpack() { cvs_src_unpack gnome2_omf_fix cd ${S} pwd # fix db-1.85 compatibility check and some *m4 typos #epatch ${FILESDIR}/${P}-db185.patch #epatch ${FILESDIR}/${PN}-${PV}-m4fixes.patch } src_compile() { # add `use_enable efence` and USE="efence" # if you want gnucash linked with efence myconf="--prefix=${dir}\ --enable-ctags \ --enable-etags \ --disable-error-on-warning \ `use_enable hbci` \ `use_enable nls` \ `use_enable ofx` \ `use_enable postgres sql` \ ${myconf}" ./autogen.sh ${myconf} || die "autogen.sh failed" emake || die "make failed" } src_install() { #dodir ${dir} gnome2_src_install #dodir ${D}/usr/share/pixmaps #cp ${D}/usr/share/gnucash/gnucash-icon.png ${D}/usr/share/pixmaps/gnucash-icon.png } pkg_postinst() { gnome2_pkg_postinst if ! use quotes; then ewarn einfo "If you wish to enable Online Stock Quotes Retrieval," einfo "Please re-emerge gnucash with USE=\"quotes\"" ewarn fi ewarn einfo "You installed a cvs version of gnucash's GTK2 port." einfo "If you have to complain, please refer to" einfo "https://bugs.gentoo.org/show_bug.cgi?id=87469" ewarn } gnome2_src_configure() { # [ -n "${ELTCONF}" ] && elibtoolize ${ELTCONF} elibtoolize ${ELTCONF} use debug && G2CONF="${G2CONF} --enable-debug=yes" # doc keyword for gtk-doc G2CONF="${G2CONF} $(use_enable doc gtk-doc)" econf "$@" ${G2CONF} || die "./configure failure" } gnome2_src_compile() { gnome2_src_configure "$@" emake || die "compile failure" } gnome2_src_install() { # if this is not present, scrollkeeper-update may segfault and # create bogus directories in /var/lib/ dodir /var/lib/scrollkeeper # we must delay gconf schema installation due to sandbox export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL="1" if [ -z "${USE_DESTDIR}" -o "${USE_DESTDIR}" = "0" ]; then einstall "scrollkeeper_localstate_dir=${D}/var/lib/scrollkeeper/" "$@" || die "einstall failed" else make DESTDIR=${D} \ "$@" install || die "make DESTDIR install failed" fi unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL # manual document installation [ -n "${DOCS}" ] && dodoc ${DOCS} # do not keep /var/lib/scrollkeeper because: # 1. scrollkeeper will get regenerated at pkg_postinst() # 2. ${D}/var/lib/scrollkeeper contains only indexes for the current pkg # thus it makes no sense if pkg_postinst ISN'T run for some reason. if [ -z "`find ${D} -name '*.omf'`" ]; then export SCROLLKEEPER_UPDATE="0" fi # regenerate these in pkg_postinst() rm -rf ${D}/var/lib/scrollkeeper # make sure this one doesn't get in the portage db rm -fr ${D}/usr/share/applications/mimeinfo.cache } gnome2_gconf_install() { if [ -x ${ROOT}/usr/bin/gconftool-2 ] then unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL export GCONF_CONFIG_SOURCE=`${ROOT}/usr/bin/gconftool-2 --get-default-source` einfo "Installing GNOME 2 GConf schemas" grep "obj /etc/gconf/schemas" ${ROOT}/var/db/pkg/*/${PF}/CONTENTS | sed 's:obj \([^ ]*\) .*:\1:' | while read F; do if [ -e "${F}" ]; then # echo "DEBUG::gconf install ${F}" ${ROOT}/usr/bin/gconftool-2 --makefile-install-rule ${F} 1>/dev/null fi done fi } gnome2_gconf_uninstall() { if [ -x ${ROOT}/usr/bin/gconftool-2 ] then unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL export GCONF_CONFIG_SOURCE=`${ROOT}/usr/bin/gconftool-2 --get-default-source` einfo "Uninstalling GNOME 2 GConf schemas" cat ${ROOT}/var/db/pkg/*/${PN}-${PVR}/CONTENTS | grep "obj /etc/gconf/schemas" | sed 's:obj \([^ ]*\) .*:\1:' |while read F; do # echo "DEBUG::gconf install ${F}" ${ROOT}/usr/bin/gconftool-2 --makefile-uninstall-rule ${F} 1>/dev/null done fi } gnome2_icon_cache_update() { local updater=`which gtk-update-icon-cache` if ! grep -q "obj /usr/share/icons" ${ROOT}/var/db/pkg/*/${PF}/CONTENTS \ || [ ! -x "$updater" ]; then # Nothing to update return fi ebegin "Updating icons cache" local retval=0 for dir in \ $(find ${ROOT}/usr/share/icons -maxdepth 1 -mindepth 1 -type d); do if [ -f "${dir}/index.theme" ]; then $updater -qf $dir || retval=$? fi done eend $retval } gnome2_omf_fix() { # workaround/patch against omf.make or omf-install/Makefile.in # in order to remove redundant scrollkeeper-updates. # - local omf_makefiles omf_makefiles="$@" [ -f ${S}/omf-install/Makefile.in ] \ && omf_makefiles="${omf_makefiles} ${S}/omf-install/Makefile.in" # FIXME: does this really work? because omf.make only gets included # when autoconf/automake is run. You should directly patch # the Makefile.in's [ -f ${S}/omf.make ] \ && omf_makefiles="${omf_makefiles} ${S}/omf.make" ebegin "Fixing OMF Makefiles" local retval=0 for omf in ${omf_makefiles}; do sed -i -e 's:scrollkeeper-update:true:' ${omf} || retval=$? done eend $retval } gnome2_scrollkeeper_update() { if [ -x ${ROOT}/usr/bin/scrollkeeper-update ] && [ "${SCROLLKEEPER_UPDATE}" = "1" ] then einfo "Updating scrollkeeper database ..." scrollkeeper-update -q -p ${ROOT}/var/lib/scrollkeeper fi } gnome2_pkg_postinst() { gnome2_gconf_install gnome2_scrollkeeper_update fdo-mime_desktop_database_update fdo-mime_mime_database_update gnome2_icon_cache_update } #gnome2_pkg_prerm() { # gnome2_gconf_uninstall #} gnome2_pkg_postrm() { gnome2_scrollkeeper_update fdo-mime_desktop_database_update fdo-mime_mime_database_update gnome2_icon_cache_update } #EXPORT_FUNCTIONS src_compile src_install pkg_postinst pkg_prerm pkg_postrm #EXPORT_FUNCTIONS src_compile src_install pkg_postinst pkg_postrm