mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-20 05:51:18 +02:00
Merge pull request #742 from marineam/cleanup
Cleanup custom tmpfiles code
This commit is contained in:
commit
973f2c7bbc
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
EAPI=5
|
EAPI=5
|
||||||
PYTHON_COMPAT=( python2_7 )
|
PYTHON_COMPAT=( python2_7 )
|
||||||
inherit cros-tmpfiles python-any-r1 systemd
|
inherit python-any-r1 systemd
|
||||||
|
|
||||||
RTM_NAME="NSS_${PV//./_}_RTM"
|
RTM_NAME="NSS_${PV//./_}_RTM"
|
||||||
MY_PN="nss"
|
MY_PN="nss"
|
||||||
@ -21,7 +21,8 @@ KEYWORDS="amd64"
|
|||||||
IUSE=""
|
IUSE=""
|
||||||
|
|
||||||
RDEPEND="dev-libs/openssl
|
RDEPEND="dev-libs/openssl
|
||||||
sys-apps/findutils"
|
sys-apps/findutils
|
||||||
|
sys-apps/systemd"
|
||||||
DEPEND="${RDEPEND}
|
DEPEND="${RDEPEND}
|
||||||
${PYTHON_DEPS}"
|
${PYTHON_DEPS}"
|
||||||
|
|
||||||
@ -69,5 +70,5 @@ src_install() {
|
|||||||
|
|
||||||
# Setup initial links in /etc
|
# Setup initial links in /etc
|
||||||
dodir /etc/ssl/certs
|
dodir /etc/ssl/certs
|
||||||
tmpfiles_create
|
systemd-tmpfiles --root="${D}" --create
|
||||||
}
|
}
|
@ -1,93 +0,0 @@
|
|||||||
# Copyright 2014 The CoreOS Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
# @ECLASS: cros-tmpfiles
|
|
||||||
# @AUTHOR: marineam
|
|
||||||
# @BLURB: A basic systemd-tmpfiles --create implementation for ebuilds.
|
|
||||||
# @DESCRIPTION:
|
|
||||||
# Any location that is outside of /usr must be initialized during the build
|
|
||||||
# and (re)created during boot if it is missing. To avoid duplicating
|
|
||||||
# definitions of these directories/symlinks in ebuilds and tmpfiles configs
|
|
||||||
# packages can instead only install a tmpfiles config and use this eclass to
|
|
||||||
# create teh paths in an ebuild friendly way.
|
|
||||||
#
|
|
||||||
# Note: in the future if we add a --root option to systemd-tmpfiles we can
|
|
||||||
# switch to calling that instead of using this simplified implementation.
|
|
||||||
|
|
||||||
# Enforce use of recent EAPIs for the sake of consistancy/sanity
|
|
||||||
case "${EAPI:-0}" in
|
|
||||||
0|1|2|3)
|
|
||||||
die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}"
|
|
||||||
;;
|
|
||||||
4|5)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Since bash doesn't have a slick syntax for subsituting default values
|
|
||||||
# for anything other than blank vs. non-blank variables this helps.
|
|
||||||
# Usage: _tmpfiles_set_defaults mode uid gid age arg
|
|
||||||
_tmpfiles_do_file() {
|
|
||||||
[[ ${tmode} == - ]] && tmode=0644
|
|
||||||
if [[ "${ttype}" == F ]]; then
|
|
||||||
rm -rf "${ED}/${tpath}"
|
|
||||||
elif [[ -e "${ED}/${tpath}" ]]; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
if [[ "${targ}" != - ]]; then
|
|
||||||
echo "${targ}" > "${ED}/${tpath}" || return 1
|
|
||||||
else
|
|
||||||
echo -n > "${ED}/${tpath}" || return 1
|
|
||||||
fi
|
|
||||||
chmod "${tmode}" "${ED}/${tpath}" || return 1
|
|
||||||
chown "${tuid}:${tgid}" "${ED}/${tpath}" || return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
_tmpfiles_do_dir() {
|
|
||||||
[[ ${tmode} == - ]] && tmode=0755
|
|
||||||
if [[ "${ttype}" == d && -e "${ED}/${tpath}" ]]; then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
rm -rf "${ED}/${tpath}"
|
|
||||||
fi
|
|
||||||
mkdir -m "${tmode}" "${ED}/${tpath}" || return 1
|
|
||||||
chown "${tuid}:${tgid}" "${ED}/${tpath}" || return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
_tmpfiles_do_link() {
|
|
||||||
if [[ -e "${ED}/${tpath}" || -h "${ED}/${tpath}" ]]; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
ln -s "${targ}" "${ED}/${tpath}" || return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
_tmpfiles_do_create() {
|
|
||||||
local ttype tpath tmode tuid tgid tage targ trule
|
|
||||||
while read ttype tpath tmode tuid tgid tage targ; do
|
|
||||||
trule="$ttype $tpath $tmode $tuid $tgid $tage $targ"
|
|
||||||
[[ "${tuid}" == - ]] && tuid=root
|
|
||||||
[[ "${tgid}" == - ]] && tgid=root
|
|
||||||
case "${ttype}" in
|
|
||||||
f|F) _tmpfiles_do_file;;
|
|
||||||
d|D) _tmpfiles_do_dir;;
|
|
||||||
L) _tmpfiles_do_link;;
|
|
||||||
*) ewarn "Skipping tmpfiles rule: ${trule}";;
|
|
||||||
esac
|
|
||||||
if [[ $? -ne 0 ]]; then
|
|
||||||
eerror "Bad tmpfiles rule: ${trule}"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
tmpfiles_create() {
|
|
||||||
if [[ $# -eq 0 ]]; then
|
|
||||||
set -- "${ED}"/usr/lib*/tmpfiles.d/*.conf
|
|
||||||
fi
|
|
||||||
local conf
|
|
||||||
for conf in "$@"; do
|
|
||||||
_tmpfiles_do_create < "${conf}" || die "Bad tmpfiles config: ${conf}"
|
|
||||||
done
|
|
||||||
}
|
|
@ -13,7 +13,7 @@ else
|
|||||||
KEYWORDS="amd64 arm x86"
|
KEYWORDS="amd64 arm x86"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
inherit cros-workon cros-tmpfiles eutils multilib systemd
|
inherit cros-workon eutils multilib systemd
|
||||||
|
|
||||||
DESCRIPTION="Filesystem baselayout for CoreOS"
|
DESCRIPTION="Filesystem baselayout for CoreOS"
|
||||||
HOMEPAGE="http://www.coreos.com/"
|
HOMEPAGE="http://www.coreos.com/"
|
||||||
@ -24,7 +24,8 @@ SLOT="0"
|
|||||||
IUSE="cros_host symlink-usr"
|
IUSE="cros_host symlink-usr"
|
||||||
|
|
||||||
# This version of baselayout replaces coreos-base
|
# This version of baselayout replaces coreos-base
|
||||||
DEPEND="!coreos-base/coreos-base
|
DEPEND="sys-apps/systemd
|
||||||
|
!coreos-base/coreos-base
|
||||||
!<sys-libs/glibc-2.17-r1
|
!<sys-libs/glibc-2.17-r1
|
||||||
!<=sys-libs/nss-usrfiles-2.18.1_pre"
|
!<=sys-libs/nss-usrfiles-2.18.1_pre"
|
||||||
|
|
||||||
@ -106,19 +107,14 @@ src_install() {
|
|||||||
dosym "${LIB_SYMS[$sym]}" "${sym}"
|
dosym "${LIB_SYMS[$sym]}" "${sym}"
|
||||||
done
|
done
|
||||||
if use symlink-usr; then
|
if use symlink-usr; then
|
||||||
for sym in "${!USR_SYMS[@]}" ; do
|
systemd_dotmpfilesd "${T}/baselayout-usr.conf"
|
||||||
dosym "${USR_SYMS[$sym]}" "${sym}"
|
systemd-tmpfiles --root="${D}" --create
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
emake DESTDIR="${D}" install
|
emake DESTDIR="${D}" install
|
||||||
|
|
||||||
if use symlink-usr; then
|
|
||||||
systemd_dotmpfilesd "${T}/baselayout-usr.conf"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fill in all other paths defined in tmpfiles configs
|
# Fill in all other paths defined in tmpfiles configs
|
||||||
tmpfiles_create
|
systemd-tmpfiles --root="${D}" --create
|
||||||
|
|
||||||
doenvd "env.d/99coreos_ldpath"
|
doenvd "env.d/99coreos_ldpath"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user