I'm tired of maintaining essentially the same code in 20-odd ebuilds, so I am wanting to condense the common bits into a single eclass.
Most of you probably don't care, but it may be of interest to those few who maintain gkrellm plugin ebuilds. I have attached my first draft of the eclass. As you can see, there are 3 main important benefits to using this eclass: 1 - Sets up the basic dependencies shared by all gkrellm plugins 2 - New pkg_setup check to ensure gkrellm was built with USE="X" (see bug 167227 for more info on why this is necessary for 99.9% of plugins) 3 - The plugin install location is now centralized, and available via the gkrellm-plugin_dir function, instead of each ebuild hard-coding '/usr/$(get_libdir)/gkrellm2/plugins' As an added benefit, the most common variant of src_install was centralized here too. If there are no major objections, I will add this eclass shortly, at which point anyone is free (and encouraged!) to use it for their gkrellm plugin ebuilds. I will begin converting all my ebuilds shortly thereafter. -- Jim Ramsay Gentoo/Linux Developer (rox,gkrellm)
# Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ # # Original Author: Jim Ramsay <[EMAIL PROTECTED]> # # Purpose: # Provides common methods used by (almost) all gkrellm plugins: # - Sets up default dependencies # - Adds pkg_setup check to ensure gkrellm was built with USE="X" (bug # 167227) # - Provides 'gkrellm-plugin_dir' function in lieu of hard-coding the plugins # directory (which *may* change in the future) # - Provides the most common src_install method to avoid code duplication. # # Utility Routines: # gkrellm-plugin_dir - Returns the gkrellm-2 plugin directory # # Environment: # For src_install: # PLUGIN_SO - The name of the plugin's .so file which will be installed in # the plugin dir. Defaults to "${PN}.so" # PLUGIN_DOCS - An optional list of docs to be installed. # inherit multilib eutils ECLASS="gkrellm-plugin" INHERITED="$INHERITED $ECLASS" RDEPEND="=app-admin/gkrellm-2*" DEPEND="${RDEPEND} dev-util/pkgconfig" gkrellm-plugin_dir() { echo /usr/$(get_libdir)/gkrellm2/plugins } gkrellm-plugin_pkg_setup() { if ! built_with_use app-admin/gkrellm X && \ ! has X ${IUSE}; then eerror "This plugin requires the X frontend of gkrellm." eerror "Please re-emerge app-admin/gkrellm with USE=\"X\"" die "Please re-emerge app-admin/gkrellm with USE=\"X\"" fi } gkrellm-plugin_src_install() { insinto $(gkrellm-plugin_dir) doins ${PLUGIN_SO:-${PN}.so} DDOCS="README* ChangeLog AUTHORS COPYING FAQ TODO INSTALL" for doc in ${DDOCS}; do [ -s "$doc" ] && dodoc $doc done [ -n "${PLUGIN_DOCS}" ] && dodoc ${PLUGIN_DOCS} } EXPORT_FUNCTIONS pkg_setup src_install
signature.asc
Description: PGP signature