summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Hrušecký <miska@gentoo.org>2011-09-16 15:49:19 +0000
committerMichal Hrušecký <miska@gentoo.org>2011-09-16 15:49:19 +0000
commit44fcfc77109db4aad2aeb46ad2490c2ecfe50b14 (patch)
tree65497646e4423b69b03c78923327ec3b6011d586 /eclass/obs-service.eclass
parentStable for HPPA (bug #382971). (diff)
downloadgentoo-2-44fcfc77109db4aad2aeb46ad2490c2ecfe50b14.tar.gz
gentoo-2-44fcfc77109db4aad2aeb46ad2490c2ecfe50b14.tar.bz2
gentoo-2-44fcfc77109db4aad2aeb46ad2490c2ecfe50b14.zip
Two new eclasses to help with obs.
Diffstat (limited to 'eclass/obs-service.eclass')
-rw-r--r--eclass/obs-service.eclass97
1 files changed, 97 insertions, 0 deletions
diff --git a/eclass/obs-service.eclass b/eclass/obs-service.eclass
new file mode 100644
index 000000000000..430dc2b69c80
--- /dev/null
+++ b/eclass/obs-service.eclass
@@ -0,0 +1,97 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/obs-service.eclass,v 1.1 2011/09/16 15:49:19 miska Exp $
+
+# @ECLASS: obs-service.eclass
+# @MAINTAINER:
+# miska@gentoo.org
+# @BLURB: Reduces code duplication in the Open Build Service services.
+# @DESCRIPTION:
+# This eclass makes it easier to package Open Build Service services. Based on
+# provided information it will set all needed variables and takes care of
+# installation.
+#
+# @EXAMPLE:
+# Typical ebuild using obs-service.eclass:
+#
+# @CODE
+# EAPI=4
+#
+# inherit obs-service
+#
+# KEYWORDS=""
+#
+# DEPEND=""
+# RDEPEND="${DEPEND}"
+#
+# @CODE
+
+# @ECLASS-VARIABLE: OBS_SERVICE_NAME
+# @DESCRIPTION:
+# Name of the service. If not set, it is taken from ${PN}.
+
+# @ECLASS-VARIABLE: OPENSUSE_RELEASE
+# @DESCRIPTION:
+# From which stable openSUSE realease to take a package.
+
+# @ECLASS-VARIABLE: ADDITIONAL_FILES
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# If any additional files are needed.
+
+case "${EAPI:-0}" in
+ 4) : ;;
+ *) die "EAPI=${EAPI} is not supported" ;;
+esac
+
+HOMEPAGE="http://en.opensuse.org/openSUSE:OSC"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+RDEPEND="dev-util/osc"
+
+[[ -n ${OBS_SERVICE_NAME} ]] || OBS_SERVICE_NAME=${PN/obs-service-/}
+[[ -n ${OPENSUSE_RELEASE} ]] || OBS_PROJECT="openSUSE:Tools"
+
+DESCRIPTION="Open Build Service client module - ${OBS_SERVICE_NAME} service"
+OBS_PACKAGE="obs-service-${OBS_SERVICE_NAME}"
+
+inherit obs-download
+
+SRC_URI="${OBS_URI}/${OBS_SERVICE_NAME}"
+SRC_URI+=" ${OBS_URI}/${OBS_SERVICE_NAME}.service"
+
+for i in ${ADDITIONAL_FILES}; do
+ SRC_URI+=" ${OBS_URI}/${i}"
+done
+
+S="${WORKDIR}"
+
+# @FUNCTION: obs-service_src_configure
+# @DESCRIPTION:
+# Does nothing. Files are not compressed.
+obs-service_src_unpack() {
+ debug-print-function ${FUNCNAME} "$@"
+}
+
+# @FUNCTION: obs-service_src_install
+# @DESCRIPTION:
+# Does the installation of the downloaded files.
+obs-service_src_install() {
+ debug-print-function ${FUNCNAME} "$@"
+ debug-print "Installing service \"${OBS_SERVICE_NAME}\""
+ exeinto /usr/lib/obs/service
+ doexe "${DISTDIR}"/${OBS_SERVICE_NAME}
+ insinto /usr/lib/obs/service
+ doins "${DISTDIR}"/${OBS_SERVICE_NAME}.service
+ if [[ -n ${ADDITIONAL_FILES} ]]; then
+ debug-print "Installing following additional files:"
+ debug-print " ${ADDITIONAL_FILES}"
+ exeinto /usr/lib/obs/service/${OBS_SERVICE_NAME}.files
+ for i in ${ADDITIONAL_FILES}; do
+ doexe "${DISTDIR}"/${i}
+ done
+ fi
+}
+
+EXPORT_FUNCTIONS src_install src_unpack