public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download: 
* [gentoo-dev] Review for initial systemd.eclass
@ 2011-04-29  5:58 99% Michał Górny
  0 siblings, 0 replies; 1+ results
From: Michał Górny @ 2011-04-29  5:58 UTC (permalink / raw
  To: gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 1194 bytes --]

Hello,

I'd like to submit an initial version of systemd.eclass, providing
helper functions for packages installing systemd unit files. Such
an eclass would be pushed to gx86 before first systemd packages
to control the packages installing upstream systemd units.

The eclass currently provides four functions:
- systemd_get_unitdir() which simply outputs the unitdir (for insinto),
- systemd_dounit() which installs the specified units into unitdir,
- systemd_enable_service() which symlinks service ${2} into target ${1},
  creating that target if necessary,
- systemd_with_unitdir() which outputs
  the '--with-systemdsystemunitdir' option as expected
  by systemd-capable configure scripts.

The eclass currently assumes the following:
- systemd units are installed into /$(get_libdir)/systemd/system,
- systemd units are installed unconditionally.

Though it should be possible to change that behaviour within the eclass
without modifying the ebuild files.

I'm attaching the eclass file. It is also available in my devoverlay
[1].

[1] http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=blob;f=eclass/systemd.eclass

-- 
Best regards,
Michał Górny

[-- Attachment #1.2: systemd.eclass --]
[-- Type: application/octet-stream, Size: 1532 bytes --]

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# @ECLASS: systemd.eclass
# @MAINTAINER:
# mgorny@gentoo.org
# @BLURB: helper functions to install systemd units
# @DESCRIPTION:
# This eclass provides a set of functions to install unit files for
# sys-apps/systemd within ebuilds.

inherit multilib

case ${EAPI:-0} in
	0|1|2|3|4) ;;
	*) die "EAPI ${EAPI} unsupported."
esac

# @FUNCTION: systemd_get_unitdir
# @DESCRIPTION:
# Output the path for the systemd unit directory (not including ${D}).
systemd_get_unitdir() {
	debug-print-function ${FUNCNAME} "${@}"

	echo /$(get_libdir)/systemd/system
}

# @FUNCTION: systemd_dounit
# @USAGE: unit1 [...]
# @DESCRIPTION:
# Install systemd unit(s).
systemd_dounit() {
	debug-print-function ${FUNCNAME} "${@}"

	(
		insinto "$(systemd_get_unitdir)"
		doins "${@}"
	)
}

# @FUNCTION: systemd_enable_service
# @USAGE: target service
# @DESCRIPTION:
# Enable service in desired target, e.g. install a symlink for it.
systemd_enable_service() {
	debug-print-function ${FUNCNAME} "${@}"

	local target=${1}
	local service=${2}
	local ud=$(systemd_get_unitdir)

	dodir "${ud}"/"${target}".wants && \
	dosym ../"${service}" "${ud}"/"${target}".wants
}

# @FUNCTION: systemd_with_unitdir
# @DESCRIPTION:
# Output '--with-systemdsystemunitdir' as expected by systemd-aware configure
# scripts.
systemd_with_unitdir() {
	debug-print-function ${FUNCNAME} "${@}"

	echo -n --with-systemdsystemunitdir="$(systemd_get_unitdir)"
}

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[relevance 99%]

Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2011-04-29  5:58 99% [gentoo-dev] Review for initial systemd.eclass Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox