commit: a7fd251f8eafa839003beb12940ad8586150f7ac Author: Martin Dummer <martin.dummer <AT> gmx <DOT> net> AuthorDate: Sun Jul 25 06:48:42 2021 +0000 Commit: Conrad Kostecki <conikost <AT> gentoo <DOT> org> CommitDate: Sat Dec 11 20:00:16 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a7fd251f
acct-user/vdr: add user package This user package for vdr tries to keep backward compatibility with existing installations and adds some comfort for users of some packages that need extra group membership Bug: https://bugs.gentoo.org/781344 Closes: https://bugs.gentoo.org/699846 Closes: https://github.com/gentoo/gentoo/pull/21776 Signed-off-by: Martin Dummer <martin.dummer <AT> gmx.net> Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org> acct-user/vdr/metadata.xml | 23 +++++++++++++++++ acct-user/vdr/vdr-0.ebuild | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) diff --git a/acct-user/vdr/metadata.xml b/acct-user/vdr/metadata.xml new file mode 100644 index 000000000000..b0a6246a09bb --- /dev/null +++ b/acct-user/vdr/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>[email protected]</email> + <name>Martin Dummer</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>[email protected]</email> + <name>Proxy Maintainers</name> + </maintainer> + <maintainer type="project"> + <email>[email protected]</email> + <name>Gentoo VDR Project</name> + </maintainer> + <use> + <flag name="graphlcd">Prepare group membership for <pkg>media-plugins/vdr-graphlcd</pkg>.</flag> + <flag name="legacy-homedir">Keep old home directory /var/vdr of an existing installation. When + this useflag is cleared, the home directory is switched to FHS conformant /var/lib/vdr</flag> + <flag name="remote">Prepare group membership for <pkg>media-plugins/vdr-remote</pkg>.</flag> + <flag name="serial">Prepare group membership for <pkg>media-plugins/vdr-serial</pkg>.</flag> + </use> +</pkgmetadata> diff --git a/acct-user/vdr/vdr-0.ebuild b/acct-user/vdr/vdr-0.ebuild new file mode 100644 index 000000000000..55986b2ff78d --- /dev/null +++ b/acct-user/vdr/vdr-0.ebuild @@ -0,0 +1,62 @@ +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit acct-user user-info + +ACCT_USER_ID=452 +ACCT_USER_HOME=/var/lib/vdr +ACCT_USER_GROUPS=( vdr audio cdrom video ) + +DESCRIPTION="VDR (VideoDiskRecorder) service user" +IUSE="graphlcd legacy-homedir remote serial systemd" + +acct-user_add_deps + +pkg_setup() { + # if user wants to preserve his existing vdr installation, + # he can set USE=legacy-homedir + use legacy-homedir && ACCT_USER_HOME=/var/vdr + + # media-plugins/vdr-graphlcd + use graphlcd && ACCT_USER_GROUPS+=( lp usb ) + + # media-plugins/vdr-remote, _only_ when systemd is installed + if use remote; then + if use systemd; then + ACCT_USER_GROUPS+=( input ) + else + einfo "use-flag remote has no effect on systemd systems" + fi + fi + + # media-plugins/vdr-serial: add group to access /dev/ttyS* + # on systemd systems: add "dialout" + # non-systemd systems: add "uucp" + if use serial; then + if use systemd; then + ACCT_USER_GROUPS+=( dialout ) + else + ACCT_USER_GROUPS+=( uucp ) + fi + fi +} + +pkg_preinst() { + # if useflag legacy-homedir is _not_ set, check if user vdr exists and what his homedir is + if ! use legacy-homedir; then + local EXISTING_HOME=$(egethome vdr) + if [[ "${EXISTING_HOME}" = "/var/vdr" ]]; then + ewarn "The user \"vdr\" exists on this system, his current home directory is \"/var/vdr\"" + ewarn "The new default home directory for user vdr is \"/var/lib/vdr\"" + ewarn "You have three options to continue:" + ewarn " - set USE=legacy-homedir for ${CATEGORY}/${PN} to continue to use /var/vdr" + ewarn " - move /var/vdr to /var/lib/vdr manually and repeat to install ${CATEGORY}/${PN}" + ewarn " - move /var/vdr to /var/vdr.old or anywhere else (to keep it as your backup), repeat to" + ewarn " install ${CATEGORY}/${PN} and let the installation create a fresh /var/lib/vdr" + ewarn "the emerge will stop here." + die "user action required" + fi + fi +}
