public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Review for initial systemd.eclass
@ 2011-04-29  5:58 Michał Górny
  2011-04-30 21:17 ` Michał Górny
  0 siblings, 1 reply; 5+ messages in thread
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	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-05-04 16:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-29  5:58 [gentoo-dev] Review for initial systemd.eclass Michał Górny
2011-04-30 21:17 ` Michał Górny
2011-05-04 10:54   ` Michał Górny
2011-05-04 13:56     ` Henry Gebhardt
2011-05-04 16:15       ` 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