From 3e7f46af24523face2f0c11922fc563022f362cc Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 12 Apr 2016 20:11:13 +0100 Subject: new lightdm depends at runtime on libbsd, gentoo folks forgot to add it --- x11-misc/lightdm/files/README.gentoo | 11 +++ x11-misc/lightdm/files/Xsession | 74 ++++++++++++++++++ x11-misc/lightdm/files/lightdm | 8 ++ x11-misc/lightdm/files/lightdm-autologin | 6 ++ x11-misc/lightdm/files/lightdm.service | 14 ++++ x11-misc/lightdm/lightdm-1.16.7.ebuild | 130 +++++++++++++++++++++++++++++++ x11-misc/lightdm/metadata.xml | 17 ++++ 7 files changed, 260 insertions(+) create mode 100644 x11-misc/lightdm/files/README.gentoo create mode 100644 x11-misc/lightdm/files/Xsession create mode 100644 x11-misc/lightdm/files/lightdm create mode 100644 x11-misc/lightdm/files/lightdm-autologin create mode 100644 x11-misc/lightdm/files/lightdm.service create mode 100644 x11-misc/lightdm/lightdm-1.16.7.ebuild create mode 100644 x11-misc/lightdm/metadata.xml diff --git a/x11-misc/lightdm/files/README.gentoo b/x11-misc/lightdm/files/README.gentoo new file mode 100644 index 00000000..182f5308 --- /dev/null +++ b/x11-misc/lightdm/files/README.gentoo @@ -0,0 +1,11 @@ + + * Even though the default /etc/lightdm/lightdm.conf will work for + * most users, make sure you configure it to suit your needs + * before using lightdm for the first time. + * You can test the configuration file using the following + * command: lightdm --test-mode -c /etc/lightdm/lightdm.conf. This + * requires xorg-server to be built with the 'kdrive' useflag. + * + * You can also set your own default values for LIGHTDM_GREETER, + * LIGHTDM_SESSION, and LIGHTDM_USER in /etc/portage/make.conf + diff --git a/x11-misc/lightdm/files/Xsession b/x11-misc/lightdm/files/Xsession new file mode 100644 index 00000000..50ce80fd --- /dev/null +++ b/x11-misc/lightdm/files/Xsession @@ -0,0 +1,74 @@ +#!/bin/sh +# +# LightDM wrapper to run around X sessions. + +echo "Running X session wrapper" + +# Load profile +for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do + if [ -f "$file" ]; then + echo "Loading profile from $file"; + . "$file" + fi +done + +# Load resources +for file in "/etc/X11/Xresources" "$HOME/.Xresources"; do + if [ -f "$file" ]; then + echo "Loading resource: $file" + xrdb -nocpp -merge "$file" + fi +done + +# Load keymaps +for file in "/etc/X11/Xkbmap" "$HOME/.Xkbmap"; do + if [ -f "$file" ]; then + echo "Loading keymap: $file" + setxkbmap `cat "$file"` + XKB_IN_USE=yes + fi +done + +# Load xmodmap if not using XKB +if [ -z "$XKB_IN_USE" ]; then + for file in "/etc/X11/Xmodmap" "$HOME/.Xmodmap"; do + if [ -f "$file" ]; then + echo "Loading modmap: $file" + xmodmap "$file" + fi + done +fi + +unset XKB_IN_USE + +# /etc/X11/xinit/xinitrc.d/80-dbus expects $command to be +# set to the Xsession arguments. So make it happy. See +# https://bugs.gentoo.org/show_bug.cgi?id=533456 +command="$@" + +# Run all system xinitrc shell scripts. +xinitdir="/etc/X11/xinit/xinitrc.d" +if [ -d "$xinitdir" ]; then + for script in $xinitdir/*; do + echo "Loading xinit script $script" + if [ -x "$script" -a ! -d "$script" ]; then + . "$script" + fi + done +fi + +# Load Xsession scripts +xsessionddir="/etc/X11/Xsession.d" +if [ -d "$xsessionddir" ]; then + for i in `ls $xsessionddir`; do + script="$xsessionddir/$i" + echo "Loading X session script $script" + if [ -r "$script" -a -f "$script" ] && expr "$i" : '^[[:alnum:]_-]\+$' > /dev/null; then + . "$script" + fi + done +fi + +echo "X session wrapper complete, running session $@" + +exec $command diff --git a/x11-misc/lightdm/files/lightdm b/x11-misc/lightdm/files/lightdm new file mode 100644 index 00000000..6286d6ab --- /dev/null +++ b/x11-misc/lightdm/files/lightdm @@ -0,0 +1,8 @@ +#%PAM-1.0 +auth optional pam_env.so +auth include system-login +auth required pam_nologin.so +account include system-login +password include system-login +session optional pam_loginuid.so +session include system-auth diff --git a/x11-misc/lightdm/files/lightdm-autologin b/x11-misc/lightdm/files/lightdm-autologin new file mode 100644 index 00000000..decfba34 --- /dev/null +++ b/x11-misc/lightdm/files/lightdm-autologin @@ -0,0 +1,6 @@ +auth optional pam_env.so +auth required pam_nologin.so +auth required pam_permit.so + +account include system-local-login +session include system-local-login diff --git a/x11-misc/lightdm/files/lightdm.service b/x11-misc/lightdm/files/lightdm.service new file mode 100644 index 00000000..7eb46ceb --- /dev/null +++ b/x11-misc/lightdm/files/lightdm.service @@ -0,0 +1,14 @@ +[Unit] +Description=Light Display Manager +Documentation=man:lightdm(1) +After=systemd-user-sessions.service + +[Service] +ExecStart=/usr/sbin/lightdm +StandardOutput=syslog +Restart=always +IgnoreSIGPIPE=no +BusName=org.freedesktop.DisplayManager + +[Install] +Alias=display-manager.service diff --git a/x11-misc/lightdm/lightdm-1.16.7.ebuild b/x11-misc/lightdm/lightdm-1.16.7.ebuild new file mode 100644 index 00000000..c611a5e4 --- /dev/null +++ b/x11-misc/lightdm/lightdm-1.16.7.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit autotools eutils pam readme.gentoo systemd versionator + +TRUNK_VERSION="$(get_version_component_range 1-2)" +DESCRIPTION="A lightweight display manager" +HOMEPAGE="http://www.freedesktop.org/wiki/Software/LightDM" +SRC_URI="https://launchpad.net/${PN}/${TRUNK_VERSION}/${PV}/+download/${P}.tar.xz + mirror://gentoo/introspection-20110205.m4.tar.bz2" + +LICENSE="GPL-3 LGPL-3" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~ppc ~x86" +IUSE="audit +gtk +introspection kde qt4 qt5 +gnome" +REQUIRED_USE="|| ( gtk kde )" + +COMMON_DEPEND="audit? ( sys-process/audit ) + >=dev-libs/glib-2.32.3:2 + dev-libs/libxml2 + dev-libs/libbsd + gnome? ( sys-apps/accountsservice ) + virtual/pam + x11-libs/libX11 + >=x11-libs/libxklavier-5 + introspection? ( >=dev-libs/gobject-introspection-1 ) + qt4? ( + dev-qt/qtcore:4 + dev-qt/qtdbus:4 + dev-qt/qtgui:4 + ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + )" +RDEPEND="${COMMON_DEPEND} + >=sys-auth/pambase-20101024-r2" +DEPEND="${COMMON_DEPEND} + dev-util/gtk-doc-am + dev-util/intltool + gnome? ( gnome-base/gnome-common ) + sys-devel/gettext + virtual/pkgconfig" +PDEPEND="gtk? ( x11-misc/lightdm-gtk-greeter ) + kde? ( x11-misc/lightdm-kde )" + +DOCS=( NEWS ) +RESTRICT="test" + +src_prepare() { + sed -i -e 's:getgroups:lightdm_&:' tests/src/libsystem.c || die #412369 + sed -i -e '/minimum-uid/s:500:1000:' data/users.conf || die + + einfo "Fixing the session-wrapper variable in lightdm.conf" + sed -i -e \ + "/session-wrapper/s@^.*@session-wrapper=/etc/${PN}/Xsession@" \ + data/lightdm.conf || die "Failed to fix lightdm.conf" + + epatch_user + + # Remove bogus Makefile statement. This needs to go upstream + sed -i /"@YELP_HELP_RULES@"/d help/Makefile.am || die + if has_version dev-libs/gobject-introspection; then + eautoreconf + else + AT_M4DIR=${WORKDIR} eautoreconf + fi +} + +src_configure() { + # Set default values if global vars unset + local _greeter _session _user + _greeter=${LIGHTDM_GREETER:=lightdm-gtk-greeter} + _session=${LIGHTDM_SESSION:=gnome} + _user=${LIGHTDM_USER:=root} + # Let user know how lightdm is configured + einfo "Gentoo configuration" + einfo "Default greeter: ${_greeter}" + einfo "Default session: ${_session}" + einfo "Greeter user: ${_user}" + + # also disable tests because libsystem.c does not build. Tests are + # restricted so it does not matter anyway. + econf \ + --localstatedir=/var \ + --disable-static \ + --disable-tests \ + $(use_enable audit libaudit) \ + $(use_enable introspection) \ + $(use_enable qt4 liblightdm-qt) \ + $(use_enable qt5 liblightdm-qt5) \ + --with-user-session=${_session} \ + --with-greeter-session=${_greeter} \ + --with-greeter-user=${_user} \ + --with-html-dir="${EPREFIX}"/usr/share/doc/${PF}/html +} + +src_install() { + default + + # Delete apparmor profiles because they only work with Ubuntu's + # apparmor package. Bug #494426 + if [[ -d ${D}/etc/apparmor.d ]]; then + rm -r "${D}/etc/apparmor.d" || die \ + "Failed to remove apparmor profiles" + fi + + insinto /etc/${PN} + doins data/{${PN},keys}.conf + doins "${FILESDIR}"/Xsession + fperms +x /etc/${PN}/Xsession + # /var/lib/lightdm-data could be useful. Bug #522228 + dodir /var/lib/lightdm-data + + prune_libtool_files --all + rm -rf "${ED}"/etc/init + + # Remove existing pam file. We will build a new one. Bug #524792 + rm -rf "${ED}"/etc/pam.d/${PN}{,-greeter} + pamd_mimic system-local-login ${PN} auth account password session #372229 + pamd_mimic system-local-login ${PN}-greeter auth account password session #372229 + dopamd "${FILESDIR}"/${PN}-autologin #390863, #423163 + + readme.gentoo_create_doc + + systemd_dounit "${FILESDIR}/${PN}.service" +} diff --git a/x11-misc/lightdm/metadata.xml b/x11-misc/lightdm/metadata.xml new file mode 100644 index 00000000..89f62bd5 --- /dev/null +++ b/x11-misc/lightdm/metadata.xml @@ -0,0 +1,17 @@ + + + + + hwoarang@gentoo.org + Markos Chandras + + + Pull in the gtk+ greeter + Pull in the kde greeter + + + + + lightdm + + -- cgit v1.2.3