* [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