Skip to content

Commit

Permalink
x11-misc/slim: Added ebuilds for the resurrected upstream project
Browse files Browse the repository at this point in the history
Fixed issues from pkgcheck
List myself as a proxy maintainer

Correct several issues pointed out in review by ceamac and added a -9999 ebuild
in light of discussion

Closes: https://bugs.gentoo.org/832562
Closes: https://bugs.gentoo.org/727544
Closes: https://bugs.gentoo.org/832303
Closes: https://bugs.gentoo.org/580458
Closes: https://bugs.gentoo.org/803476
Closes: https://bugs.gentoo.org/732430
Closes: https://bugs.gentoo.org/756181

Signed-off-by: Rob Pearce <gentoo@flitspace.org.uk>
  • Loading branch information
RobPearce committed Mar 14, 2023
1 parent 378e5fa commit f3aabf9
Show file tree
Hide file tree
Showing 9 changed files with 474 additions and 2 deletions.
2 changes: 2 additions & 0 deletions x11-misc/slim/Manifest
@@ -1 +1,3 @@
DIST slim-1.3.6.tar.gz 232547 BLAKE2B 3df58fa128cdf2b2ab005e8f41fccc076cfcf8adf7767075539f2b8edf51a92660b031837b3cdaccb261f1c1eb24104100317fd4e68ad0298242502d4e6bb506 SHA512 345b1dee5d6f0c3716dfa7c5c16274adbf18586bdaaa6af4f310e24c5a61f79a297ffac921a5ba545523317e9fe120916df226c36b9c9b49c2ac9c1ca21dee0c
DIST slim-1.3.9.tar.gz 239609 BLAKE2B 41eec388b0d63bc720cb51f93707f69c4765800f4e69654fe5ebdcb280eb25775c7ed951163943b6f58884b0a9fb628e049d68a2faa7516b1f884adb080953c6 SHA512 607366a402479381858f8193db9b4da0a40eda15f4868cad9e7313b4a084390cf3cee80958f58a56d3e4383cf2fa9069960d1b20861068f921bd9ba89da7aec1
DIST slim-1.4.0.tar.gz 530318 BLAKE2B 507f22d09a3449b870bb5fd5a5f0ab1002ceee5372c82f702582809a5fc442088c17d79fedff6712e198cee672696388479604a194e5729c7bc12139770c833d SHA512 2ef38d39e2d5186f9342161d99740b0c8cd87f234deaf550ca1528c9a61c052d26123c7da26f4a0a5e658d01cb200b115cf7879d349ed51a6e8c729ee3fdf77f
49 changes: 49 additions & 0 deletions x11-misc/slim/files/slim-1.3.9-config.diff
@@ -0,0 +1,49 @@
Customize the configuration file to suit Gentoo practice
===================================================================
--- a/slim.conf
+++ b/slim.conf
@@ -21,7 +21,7 @@

# Activate numlock when slim starts. Valid values: on|off
# Default is to not change it
-# numlock on
+numlock on

# Hide the mouse cursor (note: does not work with some WMs).
# Valid values: true|false
@@ -36,7 +36,8 @@
# to adjust the command according to your preferred shell,
# i.e. for freebsd use:
# login_cmd exec /bin/sh - ~/.xinitrc %session
-login_cmd exec /bin/bash -login ~/.xinitrc %session
+# login_cmd exec /bin/bash -login ~/.xinitrc %session
+login_cmd exec /bin/bash -login /usr/share/slim/Xsession %session

# Commands executed when starting and exiting a session.
# They can be used for registering a X11 session with
@@ -66,12 +67,12 @@
# %session is the Exec= value -- note that this may provide a full
# path to the session executable!
-#sessiondir /usr/share/xsessions
+sessiondir /usr/share/xsessions


-# Executed when pressing F11 (requires imagemagick)
+# Executed when pressing F11 (requires media-gfx/imagemagick for import)
screenshot_cmd import -window root /slim.png
-# Alternative using scrot.
+# Alternative is media-gfx/scrot. See Gentoo bug 252241 for more info.
#screenshot_cmd scrot /root/slim.png

# welcome message. Available variables: %host, %domain
welcome_msg Welcome to %host
@@ -111,8 +111,8 @@
# randomly choose from
current_theme default

-# Lock file
+# Lock file, /etc/init.d/xdm expects slim.pid
lockfile /run/slim.pid

# Log file
logfile /var/log/slim.log
12 changes: 12 additions & 0 deletions x11-misc/slim/files/slim-1.3.9-greeter-session.diff
@@ -0,0 +1,12 @@
Fix bug #727544 by telling elogind that we're a greeter
===================================================================
--- a/app.cpp
+++ b/app.cpp
@@ -290,6 +290,7 @@
pam.start("slim");
pam.set_item(PAM::Authenticator::TTY, DisplayName);
pam.set_item(PAM::Authenticator::Requestor, "root");
+ pam.setenv("XDG_SESSION_CLASS", "greeter");
}
catch(PAM::Exception& e){
logStream << APPNAME << ": " << e << endl;
48 changes: 48 additions & 0 deletions x11-misc/slim/files/slim-1.4.0-config.diff
@@ -0,0 +1,48 @@
Index: slim-fork-code/slim.conf
Customize the configuration file to suit Gentoo practice
===================================================================
--- a/slim.conf (revision 54)
+++ b/slim.conf (working copy)
@@ -21,7 +21,7 @@

# Activate numlock when slim starts. Valid values: on|off
# Default is to not change it
-#numlock on
+numlock on

# Hide the mouse cursor (note: does not work with some WMs).
# Valid values: true|false
@@ -35,7 +35,8 @@
# NOTE: if your system does not have bash you need to adjust the command
# according to your preferred shell, e.g. for freebsd use:
# login_cmd exec /bin/sh - ~/.xinitrc %session
-login_cmd exec /bin/bash -login ~/.xinitrc %session
+#login_cmd exec /bin/bash -login ~/.xinitrc %session
+login_cmd exec /bin/bash -login /usr/share/slim/Xsession %session

# Commands executed when starting and exiting a session.
# They can be used for registering a X11 session with
@@ -65,11 +66,12 @@
# %session is the Exec= value -- note that this may provide a full
# path to the session executable!
#sessiondir /usr/share/xsessions
+sessiondir /etc/X11/Sessions


-# Executed when pressing F11 (requires imagemagick)
+# Executed when pressing F11 (requires media-gfx/imagemagick for import)
screenshot_cmd import -window root /slim.png
-# Alternative using scrot.
+# Alternative is media-gfx/scrot. See Gentoo bug 252241 for more info.
#screenshot_cmd scrot /root/slim.png

# Delay after failed authentication before allowing another attempt
@@ -102,7 +104,7 @@
# randomly choose from
current_theme default

-# Lock file
+# Lock file, /etc/init.d/xdm expects slim.pid
lockfile /run/slim.pid

# Log file - full path for a file, or just stderr (or /dev/stderr) to send
48 changes: 48 additions & 0 deletions x11-misc/slim/files/slim-9999-config.diff
@@ -0,0 +1,48 @@
Index: slim-fork-code/slim.conf
Customize the configuration file to suit Gentoo practice
===================================================================
--- a/slim.conf (revision 54)
+++ b/slim.conf (working copy)
@@ -21,7 +21,7 @@

# Activate numlock when slim starts. Valid values: on|off
# Default is to not change it
-#numlock on
+numlock on

# Hide the mouse cursor (note: does not work with some WMs).
# Valid values: true|false
@@ -35,7 +35,8 @@
# NOTE: if your system does not have bash you need to adjust the command
# according to your preferred shell, e.g. for freebsd use:
# login_cmd exec /bin/sh - ~/.xinitrc %session
-login_cmd exec /bin/bash -login ~/.xinitrc %session
+#login_cmd exec /bin/bash -login ~/.xinitrc %session
+login_cmd exec /bin/bash -login /usr/share/slim/Xsession %session

# Commands executed when starting and exiting a session.
# They can be used for registering a X11 session with
@@ -65,11 +66,12 @@
# %session is the Exec= value -- note that this may provide a full
# path to the session executable!
#sessiondir /usr/share/xsessions
+sessiondir /etc/X11/Sessions


-# Executed when pressing F11 (requires imagemagick)
+# Executed when pressing F11 (requires media-gfx/imagemagick for import)
screenshot_cmd import -window root /slim.png
-# Alternative using scrot.
+# Alternative is media-gfx/scrot. See Gentoo bug 252241 for more info.
#screenshot_cmd scrot /root/slim.png

# Delay after failed authentication before allowing another attempt
@@ -102,7 +104,7 @@
# randomly choose from
current_theme default

-# Lock file
+# Lock file, /etc/init.d/xdm expects slim.pid
lockfile /run/slim.pid

# Log file - full path for a file, or just stderr (or /dev/stderr) to send
11 changes: 9 additions & 2 deletions x11-misc/slim/metadata.xml
@@ -1,8 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<maintainer type="person" proxied="yes">
<email>bugs.gentoo@flitspace.org.uk</email>
<name>Robert Pearce</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<upstream>
<remote-id type="sourceforge">slim.berlios</remote-id>
<remote-id type="sourceforge">slim-fork</remote-id>
</upstream>
</pkgmetadata>
98 changes: 98 additions & 0 deletions x11-misc/slim/slim-1.3.9.ebuild
@@ -0,0 +1,98 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit cmake pam readme.gentoo-r1 systemd

DESCRIPTION="Simple Login Manager resurrected"
HOMEPAGE="https://slim-fork.sourceforge.io/"
SRC_URI="mirror://sourceforge/project/${PN}-fork/${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~sparc ~x86"

LICENSE="GPL-2"
SLOT="0"
IUSE="branding pam"

RDEPEND="media-libs/libjpeg-turbo:=
media-libs/libpng:0=
x11-apps/sessreg
x11-libs/libX11
x11-libs/libXft
x11-libs/libXmu
x11-libs/libXpm
x11-libs/libXrandr
pam? (
sys-libs/pam
x11-libs/libXext
)"
DEPEND="${RDEPEND}
x11-base/xorg-proto"
BDEPEND="virtual/pkgconfig"
PDEPEND="branding? ( >=x11-themes/slim-themes-1.2.3a-r3 )"

PATCHES=(
# Our Gentoo-specific config changes
"${FILESDIR}"/${P}-config.diff
"${FILESDIR}"/${P}-greeter-session.diff
)

DISABLE_AUTOFORMATTING=1
DOC_CONTENTS="
The configuration file is located at /etc/slim.conf.
If you wish ${PN} to start automatically, set DISPLAYMANAGER=\"${PN}\"
in /etc/conf.d/display-manager and run
# rc-update add display-manager default.
See also https://wiki.gentoo.org/wiki/SLiM
"

src_prepare() {
cmake_src_prepare

if use branding; then
sed -i -e '/current_theme/s/default/slim-gentoo-simple/' slim.conf || die
fi
}

src_configure() {
local mycmakeargs=(
-DUSE_PAM=$(usex pam)
-DUSE_CONSOLEKIT=OFF
)

cmake_src_configure
}

src_install() {
cmake_src_install

if use pam ; then
pamd_mimic system-local-login slim auth account session
pamd_mimic system-local-login slimlock auth
fi

systemd_dounit slim.service

insinto /usr/share/slim
newins "${FILESDIR}/Xsession-r3" Xsession

insinto /etc/logrotate.d
newins "${FILESDIR}/slim.logrotate" slim

dodoc xinitrc.sample ChangeLog README TODO THEMES
readme.gentoo_create_doc
}

pkg_postinst() {
readme.gentoo_print_elog

if ! use pam; then
elog "You have merged ${PN} without USE=\"pam\", this will cause ${PN} to fall back to"
elog "the console when restarting your window manager. If this is not desired, then"
elog "please remerge ${PN} with USE=\"pam\""
elog
fi
}
104 changes: 104 additions & 0 deletions x11-misc/slim/slim-1.4.0.ebuild
@@ -0,0 +1,104 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit cmake pam readme.gentoo-r1 systemd

if [[ ${PV} == "9999" ]] ; then
ESVN_REPO_URI="https://svn.code.sf.net/p/slim-fork/code/trunk"
inherit subversion
else
SRC_URI="mirror://sourceforge/project/${PN}-fork/${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~sparc ~x86"
fi

DESCRIPTION="Simple Login Manager resurrected"
HOMEPAGE="https://slim-fork.sourceforge.io/"

LICENSE="GPL-2"
SLOT="0"
IUSE="branding pam"

RDEPEND="media-libs/libjpeg-turbo:=
media-libs/libpng:0=
x11-apps/sessreg
x11-libs/libX11
x11-libs/libXft
x11-libs/libXmu
x11-libs/libXpm
x11-libs/libXrandr
pam? (
sys-libs/pam
x11-libs/libXext
)"
DEPEND="${RDEPEND}
x11-base/xorg-proto"
BDEPEND="virtual/pkgconfig"
PDEPEND="branding? ( >=x11-themes/slim-themes-1.2.3a-r3 )"

PATCHES=(
# Our Gentoo-specific config changes
"${FILESDIR}"/${P}-config.diff
)

DISABLE_AUTOFORMATTING=1
DOC_CONTENTS="
The configuration file is located at /etc/slim.conf.
If you wish ${PN} to start automatically, set DISPLAYMANAGER=\"${PN}\"
in /etc/conf.d/display-manager and run
# rc-update add display-manager default.
See also https://wiki.gentoo.org/wiki/SLiM
"

src_prepare() {
cmake_src_prepare

if use branding; then
sed -i -e '/current_theme/s/default/slim-gentoo-simple/' slim.conf || die
fi
}

src_configure() {
local mycmakeargs=(
-DUSE_PAM=$(usex pam)
-DUSE_CONSOLEKIT=OFF
-DBUILD_SLIMLOCK=$(usex pam)
)

cmake_src_configure
}

src_install() {
cmake_src_install

if use pam ; then
pamd_mimic system-local-login slim auth account session
pamd_mimic system-local-login slimlock auth
fi

systemd_dounit slim.service

insinto /usr/share/slim
newins "${FILESDIR}/Xsession-r3" Xsession

insinto /etc/logrotate.d
newins "${FILESDIR}/slim.logrotate" slim

dodoc xinitrc.sample ChangeLog README TODO THEMES
readme.gentoo_create_doc
}

pkg_postinst() {
readme.gentoo_print_elog

if ! use pam; then
elog "You have merged ${PN} without USE=\"pam\", this will cause ${PN} to fall back to"
elog "the console when restarting your window manager. If this is not desired, then"
elog "please remerge ${PN} with USE=\"pam\""
elog
fi
}

0 comments on commit f3aabf9

Please sign in to comment.