--- /dev/null
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/obs-download.eclass,v 1.1 2011/09/16 15:49:19 miska Exp $
+
+# @ECLASS: obs-download.eclass
+# @MAINTAINER:
+# miska@gentoo.org
+# @BLURB: Simplifies downloading from openSUSE Build Service.
+# @DESCRIPTION:
+# This eclass constructs OBS_URI based on provided project in openSUSE Build
+# Service and package name. It can be used by packages/eclasses to download
+# actual files.
+#
+# All you need to do in order to use it is set OBS_PROJECT and OBS_PACKAGE and
+# inherit this eclass. It will provide OBS_URI in return which you will prepend
+# to your files and use it in SRC_URI. Alternatively you can just set
+# OPENSUSE_RELEASE and OBS_PACKAGE and it will give you back OBS_URI for
+# downloading files from obs project corresponding to the specified openSUSE
+# release.
+
+# @ECLASS-VARIABLE: OPENSUSE_RELEASE
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# From which stable openSUSE realease to take files.
+
+# @ECLASS-VARIABLE: OBS_PROJECT
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# In which obs project pakage is. This variable don't have to be set, if
+# OPENSUSE_RELEASE is provided.
+
+# @ECLASS-VARIABLE: OBS_PACKAGE
+# @REQUIRED
+# @DESCRIPTION:
+# Name of the package we want to take files from.
+
+[[ -z ${OPENSUSE_RELEASE} ]] || OBS_PROJECT="openSUSE:${OPENSUSE_RELEASE}"
+[[ -n ${OBS_PROJECT} ]] || die "OBS_PROJECT not set!"
+[[ -n ${OBS_PACKAGE} ]] || die "OBS_PACKAGE not set!"
+
+OBS_URI="https://api.opensuse.org/public/source/${OBS_PROJECT}/${OBS_PACKAGE}"
--- /dev/null
+# 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