From 7d4d49345f2b0164a8d55b40405c9a6e04ef15dc Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 4 Dec 2022 21:43:02 +0000 Subject: gui-libs/display-manager-init : version bump --- .../display-manager-init-1.1.1-r1.ebuild | 36 ----- .../display-manager-init-1.1.2-r1.ebuild | 36 +++++ .../files/display-manager-setup.initd | 2 +- .../files/display-manager.initd | 161 ++++++++------------- gui-libs/display-manager-init/files/startDM | 4 +- 5 files changed, 103 insertions(+), 136 deletions(-) delete mode 100644 gui-libs/display-manager-init/display-manager-init-1.1.1-r1.ebuild create mode 100644 gui-libs/display-manager-init/display-manager-init-1.1.2-r1.ebuild (limited to 'gui-libs') diff --git a/gui-libs/display-manager-init/display-manager-init-1.1.1-r1.ebuild b/gui-libs/display-manager-init/display-manager-init-1.1.1-r1.ebuild deleted file mode 100644 index 6560d93e..00000000 --- a/gui-libs/display-manager-init/display-manager-init-1.1.1-r1.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="RC init files for starting display and login managers" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:X11" - -LICENSE="GPL-2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" -SLOT="0" - -S="${FILESDIR}" - -RDEPEND=" - sys-apps/gentoo-functions - !<=sys-apps/sysvinit-2.98 - !<=x11-apps/xinit-1.4.1 - !<=x11-base/xorg-server-1.20.10-r10 -" - -src_install() { - newinitd "${FILESDIR}"/display-manager-setup.initd display-manager-setup - newinitd "${FILESDIR}"/display-manager.initd display-manager - newconfd "${FILESDIR}"/display-manager.confd display-manager - exeinto /usr/bin - doexe "${FILESDIR}"/startDM - # backwards compatibility - dosym "${ESYSROOT}"/usr/bin/startDM /etc/X11/startDM.sh -} - -pkg_postinst() { - # Redcore Linux tweak : automatically migrate all users - "${ROOT}"/sbin/rc-update del xdm default > /dev/null 2>&1 - "${ROOT}"/sbin/rc-update add display-manager default > /dev/null 2>&1 -} diff --git a/gui-libs/display-manager-init/display-manager-init-1.1.2-r1.ebuild b/gui-libs/display-manager-init/display-manager-init-1.1.2-r1.ebuild new file mode 100644 index 00000000..6560d93e --- /dev/null +++ b/gui-libs/display-manager-init/display-manager-init-1.1.2-r1.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="RC init files for starting display and login managers" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:X11" + +LICENSE="GPL-2" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +SLOT="0" + +S="${FILESDIR}" + +RDEPEND=" + sys-apps/gentoo-functions + !<=sys-apps/sysvinit-2.98 + !<=x11-apps/xinit-1.4.1 + !<=x11-base/xorg-server-1.20.10-r10 +" + +src_install() { + newinitd "${FILESDIR}"/display-manager-setup.initd display-manager-setup + newinitd "${FILESDIR}"/display-manager.initd display-manager + newconfd "${FILESDIR}"/display-manager.confd display-manager + exeinto /usr/bin + doexe "${FILESDIR}"/startDM + # backwards compatibility + dosym "${ESYSROOT}"/usr/bin/startDM /etc/X11/startDM.sh +} + +pkg_postinst() { + # Redcore Linux tweak : automatically migrate all users + "${ROOT}"/sbin/rc-update del xdm default > /dev/null 2>&1 + "${ROOT}"/sbin/rc-update add display-manager default > /dev/null 2>&1 +} diff --git a/gui-libs/display-manager-init/files/display-manager-setup.initd b/gui-libs/display-manager-init/files/display-manager-setup.initd index 05feeee8..a897bf99 100644 --- a/gui-libs/display-manager-init/files/display-manager-setup.initd +++ b/gui-libs/display-manager-init/files/display-manager-setup.initd @@ -7,7 +7,7 @@ depend() { } start() { - if get_bootparam "nogui" ; then + if get_bootparam "nogui" || get_bootparam "nox"; then touch /run/.nogui fi } diff --git a/gui-libs/display-manager-init/files/display-manager.initd b/gui-libs/display-manager-init/files/display-manager.initd index e650df96..3fff478e 100644 --- a/gui-libs/display-manager-init/files/display-manager.initd +++ b/gui-libs/display-manager-init/files/display-manager.initd @@ -1,7 +1,9 @@ #!/sbin/openrc-run -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License, v2 +retry="TERM/5/TERM/5" + # This is here to serve as a note to myself, and future developers. # # Any Display manager (gdm,kdm,xdm) has the following problem: if @@ -46,9 +48,12 @@ depend() { # (#291269) Start after quota, since some dm need readable home # (#390609) gdm-3 will fail when dbus is not running # (#366753) starting keymaps after X causes problems + # (#768834) race condition with elogind after bootmisc consolefont modules netmount after readahead-list ypbind autofs openvpn gpm lircmd after quota keymaps + after elogind + after sssd before alsasound # Start before GUI @@ -59,83 +64,77 @@ setup_dm() { local MY_XDM MY_XDM=$(echo "${DISPLAYMANAGER}" | tr '[:upper:]' '[:lower:]') - - NAME= case "${MY_XDM}" in kdm|kde) - # Load our root path from profile.env - # Needed for kdm - PATH=${PATH}:$(. /etc/profile.env; echo "${ROOTPATH}") - EXE=/usr/bin/kdm - PIDFILE=/run/kdm.pid + command=/usr/bin/kdm + pidfile=/run/kdm.pid ;; entrance*) - EXE=/usr/sbin/entrance - PIDFILE=/run/entrance.pid + command=/usr/sbin/entrance + pidfile=/run/entrance.pid ;; gdm|gnome) # gdm-3 and above has different paths if [ -f /usr/sbin/gdm ]; then - EXE=/usr/sbin/gdm - PIDFILE=/run/gdm/gdm.pid - START_STOP_ARGS="--background" - AUTOCLEAN_CGROUP="yes" + command=/usr/sbin/gdm + pidfile=/run/gdm/gdm.pid + start_stop_daemon_args="--background" else - EXE=/usr/bin/gdm - PIDFILE=/run/gdm.pid + command=/usr/bin/gdm + pidfile=/run/gdm.pid fi - [ "${RC_UNAME}" != "Linux" ] && NAME=gdm-binary + [ "${RC_UNAME}" != "Linux" ] && name=gdm-binary ;; greetd) - EXE=/usr/bin/greetd - PIDFILE=/run/greetd.pid - START_STOP_ARGS="-m --background" + command=/usr/bin/greetd + command_background=yes + pidfile=/run/greetd.pid ;; wdm) - EXE=/usr/bin/wdm - PIDFILE= + command=/usr/bin/wdm ;; gpe) - EXE=/usr/bin/gpe-dm - PIDFILE=/run/gpe-dm.pid + command=/usr/bin/gpe-dm + pidfile=/run/gpe-dm.pid ;; lxdm) - EXE=/usr/sbin/lxdm-binary - PIDFILE=/run/lxdm.pid - START_STOP_ARGS="--background" + command=/usr/sbin/lxdm-binary + pidfile=/run/lxdm.pid + start_stop_daemon_args="--background" ;; lightdm) - EXE=/usr/sbin/lightdm - PIDFILE=/run/lightdm.pid - START_STOP_ARGS="--background" + command=/usr/sbin/lightdm + pidfile=/run/lightdm.pid + start_stop_daemon_args="--background" ;; sddm) - EXE="/usr/bin/sddm" - START_STOP_ARGS="-m --background" - PIDFILE=/run/sddm.pid + command="/usr/bin/sddm" + command_background=yes + pidfile=/run/sddm.pid ;; *) # first find out if there is such executable - EXE="$(command -v ${MY_XDM} 2>/dev/null)" - PIDFILE="/run/${MY_XDM}.pid" + command="$(command -v ${MY_XDM} 2>/dev/null)" + pidfile="/run/${MY_XDM}.pid" # warn user that they are doing sick things if the exe was not found - if [ -z "${EXE}" ]; then - echo "ERROR: Your XDM value is invalid." - echo " No ${MY_XDM} executable could be found on your system." + if [ -z "${command}" ]; then + eerror "ERROR: Your XDM value is invalid." + eerror " No ${MY_XDM} executable could be found on your system." fi ;; esac - if ! [ -x "${EXE}" ]; then - EXE=/usr/bin/xdm - PIDFILE=/run/xdm.pid + if ! [ -x "${command}" ]; then + command=/usr/bin/xdm + pidfile=/run/xdm.pid if ! [ -x "/usr/bin/xdm" ]; then - echo "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/xdm," - echo " or install x11-apps/xdm package" - eend 255 + eerror "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/display-manager," + eerror " or install the x11-apps/xdm package" + return 1 fi fi + return 0 } # Check to see if something is defined on our VT @@ -147,50 +146,34 @@ vtstatic() { else return 1 fi + return } -start() { - local EXE NAME PIDFILE AUTOCLEAN_CGROUP - setup_dm +start_pre() { + setup_dm || return if [ -f /run/.nogui ]; then - einfo "Skipping ${EXE##*/}, /run/.nogui found or 'nogui' bootparam passed." + einfo "Skipping ${command##*/}, /run/.nogui found or 'nogui' bootparam passed." rm /run/.nogui - return 0 + return 1 fi - ebegin "Setting up ${EXE##*/}" - - # save the prefered DM - save_options "service" "${EXE}" - save_options "name" "${NAME}" - save_options "pidfile" "${PIDFILE}" - save_options "start_stop_args" "${START_STOP_ARGS}" - save_options "autoclean_cgroup" "${AUTOCLEAN_CGROUP:-no}" - - if [ -n "${CHECKVT-y}" ] ; then - if vtstatic "${CHECKVT:-7}" ; then - if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ]; then - ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later" - telinit a >/dev/null 2>&1 - return 0 - else - eerror "Something is already defined on VT ${CHECKVT:-7}, not starting" - return 1 - fi + if vtstatic "${CHECKVT:-7}" ; then + if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ]; then + ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later" + telinit a >/dev/null 2>&1 + return 0 + else + eerror "Something is already defined on VT ${CHECKVT:-7}, not starting" + return 1 fi fi - - /usr/bin/startDM - eend 0 + return 0 } -stop() { - local curvt retval - - retval=0 +stop_pre() { if [ -t 0 ]; then - if type fgconsole >/dev/null 2>&1; then + if command -v fgconsole >/dev/null 2>&1; then curvt=$(fgconsole 2>/dev/null) else curvt=$(tty) @@ -200,35 +183,19 @@ stop() { esac fi fi - local myexe myname mypidfile myservice - myexe=$(get_options "service") - myname=$(get_options "name") - mypidfile=$(get_options "pidfile") - myservice=${myexe##*/} - yesno "${rc_cgroup_cleanup:-no}" || rc_cgroup_cleanup=$(get_options "autoclean_cgroup") - - [ -z "${myexe}" ] && return 0 - - ebegin "Stopping ${myservice}" - - if start-stop-daemon --quiet --test --stop --exec "${myexe}" 2>/dev/null; then - start-stop-daemon --stop --exec "${myexe}" --retry TERM/5/TERM/5 \ - "${mypidfile:+--pidfile}" "${mypidfile}" \ - "${myname:+--name}" "${myname}" - retval=${?} - fi + return +} +stop_post() { # switch back to original vt if [ -n "${curvt}" ]; then - if type chvt >/dev/null 2>&1; then + if command -v chvt >/dev/null 2>&1; then chvt "${curvt}" else vidcontrol -s "$((curvt + 1))" fi fi - - eend ${retval} "Error stopping ${myservice}" - return ${retval} + return } # vim: set ts=4 : diff --git a/gui-libs/display-manager-init/files/startDM b/gui-libs/display-manager-init/files/startDM index 976d1dd2..b23344bb 100644 --- a/gui-libs/display-manager-init/files/startDM +++ b/gui-libs/display-manager-init/files/startDM @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License, v2 # We need to source /etc/profile.env for stuff like $LANG to work @@ -23,7 +23,7 @@ PIDFILE="$(get_options pidfile)" START_STOP_ARGS="$(get_options start_stop_args)" start-stop-daemon --start --exec "${EXEC}" \ -"${NAME:+--name}" "${NAME}" "${PIDFILE:+--pidfile}" "${PIDFILE}" ${START_STOP_ARGS} || \ +${NAME:+--name} ${NAME} ${PIDFILE:+--pidfile} ${PIDFILE} ${START_STOP_ARGS} || \ eerror "ERROR: could not start the Display Manager" # vim:ts=4 -- cgit v1.2.3