Initial commit
This commit is contained in:
10
slim/README
Normal file
10
slim/README
Normal file
@@ -0,0 +1,10 @@
|
||||
SLiM is a lightweight login manager based on GNUstep's Login.app. It
|
||||
makes a great replacement for XDM for those who want something that
|
||||
looks good, but still do not want Gnome or KDE.
|
||||
|
||||
Included is a custom Slackware theme that goes nicely with the lilo boot
|
||||
theme. Regardless of whether you would like to use the custom theme, you
|
||||
should see README.SLACKWARE for configuration hints (this file is also
|
||||
installed into the package's documentation directory).
|
||||
|
||||
When at the login screen, select the login session cycling with F1.
|
||||
16
slim/README.SLACKWARE
Normal file
16
slim/README.SLACKWARE
Normal file
@@ -0,0 +1,16 @@
|
||||
README.SLACKWARE for SLiM
|
||||
|
||||
If you would like to use SLiM as the login manager in runlevel 4, add the
|
||||
following lines to /etc/rc.d/rc.4 just above the section that tries to
|
||||
start gdm:
|
||||
|
||||
# Try to use SLiM login manager. This comes first, because if SLiM is
|
||||
# installed, then the user probably wants to use it by default:
|
||||
if [ -x /usr/bin/slim ]; then
|
||||
exec /usr/bin/slim
|
||||
fi
|
||||
|
||||
Frank Caraballo took the time to create a custom Slackware theme which goes
|
||||
nicely with the lilo boot theme. If you would like to use Frank's theme, you
|
||||
will need to edit /etc/slim.conf and change the 'current_theme' directive from
|
||||
'default' to 'slackware-black'.
|
||||
16
slim/doinst.sh
Normal file
16
slim/doinst.sh
Normal file
@@ -0,0 +1,16 @@
|
||||
config() {
|
||||
NEW="$1"
|
||||
OLD="$(dirname $NEW)/$(basename $NEW .new)"
|
||||
# If there's no config file by that name, mv it over:
|
||||
if [ ! -r $OLD ]; then
|
||||
mv $NEW $OLD
|
||||
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
|
||||
# toss the redundant copy
|
||||
rm $NEW
|
||||
fi
|
||||
# Otherwise, we leave the .new copy for the admin to consider...
|
||||
}
|
||||
|
||||
config etc/slim.conf.new
|
||||
config etc/logrotate.d/slim.new
|
||||
|
||||
158
slim/files/Xsession
Normal file
158
slim/files/Xsession
Normal file
@@ -0,0 +1,158 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Slim login manager Xsession script
|
||||
#
|
||||
|
||||
command="$@"
|
||||
|
||||
# this will go into slim.log along with all other echo's
|
||||
# good for debugging where things go wrong
|
||||
echo "$0: Beginning session setup..."
|
||||
|
||||
# First read /etc/profile and .profile
|
||||
test -f /etc/profile && . /etc/profile
|
||||
test -f "$HOME/.profile" && . "$HOME/.profile"
|
||||
# Second read /etc/xprofile and .xprofile for X specific setup
|
||||
test -f /etc/xprofile && . /etc/xprofile
|
||||
test -f "$HOME/.xprofile" && . "$HOME/.xprofile"
|
||||
|
||||
# wrap possible arguments to determine whether to treat special or not
|
||||
if [ "x$command" = "xcustom" ] || [ "x$command" = "xCustom" ] || [ "x$command" = "xdefault" ] || [ "x$command" = "xDefault" ]; then
|
||||
command="Xsession"
|
||||
fi
|
||||
if [ "x$command" = "x" ]; then
|
||||
# no default specified, check if Xsession will complete
|
||||
# and if not then assign XSESSION to command
|
||||
if [ -x "$HOME/.xsession" ] || [ -x "$HOME/.Xclients" ] || [ -x /etc/X11/xinit/Xclients ] || [ -x /etc/X11/Xclients ]; then
|
||||
command="Xsession"
|
||||
else
|
||||
command=$XSESSION
|
||||
fi
|
||||
fi
|
||||
|
||||
# most of this is from /etc/X11/chooser.sh
|
||||
sessionscript=""
|
||||
if [ -n "${command}" ]; then
|
||||
# find a match for $command in /etc/X11/Sessions
|
||||
for x in /etc/X11/Sessions/* ; do
|
||||
if [ "`echo ${x##*/} | awk '{ print toupper($1) }'`" = "`echo ${command} | awk '{ print toupper($1) }'`" ]; then
|
||||
sessionscript=${x}
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ -n "${sessionscript}" ]; then
|
||||
if [ -x "${sessionscript}" ]; then
|
||||
command="${sessionscript}"
|
||||
else
|
||||
command="/bin/sh ${sessionscript}"
|
||||
fi
|
||||
else
|
||||
|
||||
# find an executable for $command
|
||||
x=""
|
||||
y=""
|
||||
|
||||
for x in "${command}" "`echo ${command} | awk '{ print toupper($1) }'`" "`echo ${command} | awk '{ print tolower($1) }'`"
|
||||
do
|
||||
# Fall through ...
|
||||
if [ -x "`which ${x} 2>/dev/null`" ]; then
|
||||
y="`which ${x} 2>/dev/null`"
|
||||
break
|
||||
fi
|
||||
done
|
||||
# note , if the command could not be found then $command will be empty
|
||||
command="$y"
|
||||
unset x
|
||||
unset y
|
||||
fi
|
||||
fi
|
||||
|
||||
# call xrdb and xmodmap and such, since $command is not a session script
|
||||
if [ -z "${sessionscript}" ]; then
|
||||
userresources="$HOME/.Xresources"
|
||||
usermodmap="$HOME/.Xmodmap"
|
||||
userxkbmap="$HOME/.Xkbmap"
|
||||
|
||||
sysresources=/etc/X11/Xresources
|
||||
sysmodmap=/etc/X11/Xmodmap
|
||||
sysxkbmap=/etc/X11/Xkbmap
|
||||
|
||||
rh6sysresources=/etc/X11/xinit/Xresources
|
||||
rh6sysmodmap=/etc/X11/xinit/Xmodmap
|
||||
|
||||
# merge in defaults
|
||||
if [ -f "$rh6sysresources" ]; then
|
||||
xrdb -merge "$rh6sysresources"
|
||||
fi
|
||||
|
||||
if [ -f "$sysresources" ]; then
|
||||
xrdb -merge "$sysresources"
|
||||
fi
|
||||
|
||||
if [ -f "$userresources" ]; then
|
||||
xrdb -merge "$userresources"
|
||||
fi
|
||||
|
||||
# merge in keymaps
|
||||
if [ -f "$sysxkbmap" ]; then
|
||||
setxkbmap `cat "$sysxkbmap"`
|
||||
XKB_IN_USE=yes
|
||||
fi
|
||||
|
||||
if [ -f "$userxkbmap" ]; then
|
||||
setxkbmap `cat "$userxkbmap"`
|
||||
XKB_IN_USE=yes
|
||||
fi
|
||||
|
||||
#
|
||||
# Eeek, this seems like too much magic here
|
||||
#
|
||||
if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
|
||||
if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then
|
||||
xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
|
||||
if [ -n "$xkbsymbols" ]; then
|
||||
setxkbmap -symbols "$xkbsymbols"
|
||||
XKB_IN_USE=yes
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# xkb and xmodmap don't play nice together
|
||||
if [ -z "$XKB_IN_USE" ]; then
|
||||
if [ -f "$rh6sysmodmap" ]; then
|
||||
xmodmap "$rh6sysmodmap"
|
||||
fi
|
||||
|
||||
if [ -f "$sysmodmap" ]; then
|
||||
xmodmap "$sysmodmap"
|
||||
fi
|
||||
|
||||
if [ -f "$usermodmap" ]; then
|
||||
xmodmap "$usermodmap"
|
||||
fi
|
||||
fi
|
||||
|
||||
unset XKB_IN_USE
|
||||
fi
|
||||
unset sessionscript
|
||||
|
||||
# start failsafe session
|
||||
if [ -z "${command}" ]; then
|
||||
echo "$0: Failed to find a command to start the session, so starting a failsafe xterm."
|
||||
exec xterm -geometry 80x24+0+0
|
||||
fi
|
||||
|
||||
# run all system xinitrc shell scripts which will update command
|
||||
if [ -d /etc/X11/xinit/xinitrc.d ]; then
|
||||
for i in /etc/X11/xinit/xinitrc.d/* ; do
|
||||
if [ -x "$i" ]; then
|
||||
. "$i"
|
||||
fi
|
||||
done
|
||||
unset i
|
||||
fi
|
||||
|
||||
echo "$0: Setup done, will execute: $command"
|
||||
exec $command
|
||||
|
||||
# vim:ts=4
|
||||
9
slim/files/slim.logrotate
Normal file
9
slim/files/slim.logrotate
Normal file
@@ -0,0 +1,9 @@
|
||||
/var/log/slim.log {
|
||||
compress
|
||||
rotate 4
|
||||
size=1M
|
||||
notifempty
|
||||
missingok
|
||||
copytruncate
|
||||
noolddir
|
||||
}
|
||||
7
slim/files/slim.pam
Normal file
7
slim/files/slim.pam
Normal file
@@ -0,0 +1,7 @@
|
||||
#%PAM-1.0
|
||||
|
||||
auth include system-local-login
|
||||
-auth optional pam_gnome_keyring.so
|
||||
account include system-local-login
|
||||
session include system-local-login
|
||||
-session optional pam_gnome_keyring.so auto_start
|
||||
3
slim/files/slimlock.pam
Normal file
3
slim/files/slimlock.pam
Normal file
@@ -0,0 +1,3 @@
|
||||
#%PAM-1.0
|
||||
|
||||
auth include system-local-login
|
||||
60
slim/patches/slim-1.3.6-config.diff
Normal file
60
slim/patches/slim-1.3.6-config.diff
Normal file
@@ -0,0 +1,60 @@
|
||||
diff -Naur slim-1.3.6.orig/slim.conf slim-1.3.6/slim.conf
|
||||
--- slim-1.3.6.orig/slim.conf 2013-10-02 00:38:05.000000000 +0200
|
||||
+++ slim-1.3.6/slim.conf 2021-09-22 19:23:30.484086604 +0200
|
||||
@@ -9,6 +9,8 @@
|
||||
reboot_cmd /sbin/shutdown -r now
|
||||
console_cmd /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"
|
||||
#suspend_cmd /usr/sbin/suspend
|
||||
+## slackware suspend command
|
||||
+suspend_cmd /usr/sbin/pm-suspend
|
||||
|
||||
# Full path to the xauth binary
|
||||
xauth_path /usr/bin/xauth
|
||||
@@ -33,7 +35,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
|
||||
@@ -41,17 +44,25 @@
|
||||
#
|
||||
# sessionstart_cmd some command
|
||||
# sessionstop_cmd some command
|
||||
+sessionstart_cmd /usr/bin/sessreg -a -l :0.0 %user
|
||||
+sessionstop_cmd /usr/bin/sessreg -d -l :0.0 %user
|
||||
|
||||
# Start in daemon mode. Valid values: yes | no
|
||||
# Note that this can be overriden by the command line
|
||||
# options "-d" and "-nodaemon"
|
||||
# daemon yes
|
||||
|
||||
-# Available sessions (first one is the default).
|
||||
-# The current chosen session name is replaced in the login_cmd
|
||||
+# Available sessions:
|
||||
+# The current chosen session name replaces %session in the login_cmd
|
||||
# above, so your login command can handle different sessions.
|
||||
+# If no session is chosen (via F1), %session will be an empty string.
|
||||
# see the xinitrc.sample file shipped with slim sources
|
||||
-sessions xfce4,icewm-session,wmaker,blackbox
|
||||
+#sessions xfce4,icewm-session,wmaker,blackbox
|
||||
+# Alternatively, read available sessions from a directory of scripts:
|
||||
+#sessiondir /etc/X11/Sessions
|
||||
+# Or, read available sessions from the xsessions desktop files --
|
||||
+# note that this may provide a full path to the session executable!
|
||||
+sessiondir /usr/share/xsessions
|
||||
|
||||
# Executed when pressing F11 (requires imagemagick)
|
||||
screenshot_cmd import -window root /slim.png
|
||||
@@ -84,7 +95,7 @@
|
||||
current_theme default
|
||||
|
||||
# Lock file
|
||||
-lockfile /var/run/slim.lock
|
||||
+lockfile /run/slim.lock
|
||||
|
||||
# Log file
|
||||
logfile /var/log/slim.log
|
||||
15
slim/patches/slim-1.3.6-envcpy-bad-pointer-arithmetic.patch
Normal file
15
slim/patches/slim-1.3.6-envcpy-bad-pointer-arithmetic.patch
Normal file
@@ -0,0 +1,15 @@
|
||||
--- a/app.cpp 2015-09-14 12:00:00.460481656 -0400
|
||||
+++ b/app.cpp 2015-09-14 14:41:10.970536588 -0400
|
||||
@@ -606,9 +606,9 @@
|
||||
|
||||
n++;
|
||||
|
||||
- child_env = static_cast<char**>(malloc(sizeof(char*)*n));
|
||||
- memcpy(child_env, old_env, sizeof(char*)*n+1);
|
||||
- child_env[n - 1] = StrConcat("XDG_SESSION_COOKIE=", ck.get_xdg_session_cookie());
|
||||
+ child_env = static_cast<char**>(malloc(sizeof(char*)*(n+1)));
|
||||
+ memcpy(child_env, old_env, sizeof(char*)*n);
|
||||
+ child_env[n-1] = StrConcat("XDG_SESSION_COOKIE=", ck.get_xdg_session_cookie());
|
||||
child_env[n] = NULL;
|
||||
}
|
||||
# endif /* USE_CONSOLEKIT */
|
||||
12
slim/patches/slim-1.3.6-gcc11.patch
Normal file
12
slim/patches/slim-1.3.6-gcc11.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
https://bugs.gentoo.org/786498
|
||||
--- a/panel.cpp
|
||||
+++ b/panel.cpp
|
||||
@@ -48,7 +48,7 @@
|
||||
gcm = GCGraphicsExposures;
|
||||
gcv.graphics_exposures = False;
|
||||
WinGC = XCreateGC(Dpy, Win, gcm, &gcv);
|
||||
- if (WinGC < 0) {
|
||||
+ if (WinGC == 0) {
|
||||
cerr << APPNAME
|
||||
<< ": failed to create pixmap\n.";
|
||||
exit(ERR_EXIT);
|
||||
14
slim/patches/slim-1.3.6-honour-cflags.patch
Normal file
14
slim/patches/slim-1.3.6-honour-cflags.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
--- a/CMakeLists.txt 2013-10-01 18:38:05.000000000 -0400
|
||||
+++ b/CMakeLists.txt.new 2013-10-15 11:33:18.975741094 -0400
|
||||
@@ -42,11 +42,6 @@
|
||||
set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPKGDATADIR=\"${PKGDATADIR}\"")
|
||||
set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"${SYSCONFDIR}\"")
|
||||
|
||||
-# Flags
|
||||
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g -O2")
|
||||
-set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -Wall -g -O2")
|
||||
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g -O2")
|
||||
-
|
||||
# source
|
||||
set(slim_srcs
|
||||
main.cpp
|
||||
33
slim/patches/slim-1.3.6-libslim-cmake-fixes.patch
Normal file
33
slim/patches/slim-1.3.6-libslim-cmake-fixes.patch
Normal file
@@ -0,0 +1,33 @@
|
||||
--- a/CMakeLists.txt 2013-10-15 11:35:16.688739802 -0400
|
||||
+++ b/CMakeLists.txt 2013-10-15 11:53:46.185727620 -0400
|
||||
@@ -115,6 +115,7 @@
|
||||
message("\tPAM Found")
|
||||
set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DUSE_PAM")
|
||||
target_link_libraries(${PROJECT_NAME} ${PAM_LIBRARY})
|
||||
+ target_link_libraries(libslim ${PAM_LIBRARY})
|
||||
target_link_libraries(slimlock ${PAM_LIBRARY})
|
||||
include_directories(${PAM_INCLUDE_DIR})
|
||||
else(PAM_FOUND)
|
||||
@@ -173,7 +174,10 @@
|
||||
)
|
||||
|
||||
target_link_libraries(libslim
|
||||
- ${JPEG_LIBRARIES}
|
||||
+ ${RT_LIB}
|
||||
+ ${X11_Xft_LIB}
|
||||
+ ${X11_Xrandr_LIB}
|
||||
+ ${JPEG_LIBRARIES}
|
||||
${PNG_LIBRARIES}
|
||||
)
|
||||
|
||||
@@ -228,8 +228,8 @@
|
||||
SOVERSION ${SLIM_VERSION})
|
||||
|
||||
install(TARGETS libslim
|
||||
- LIBRARY DESTINATION lib
|
||||
- ARCHIVE DESTINATION lib
|
||||
+ LIBRARY DESTINATION lib${LIB_SUFFIX}
|
||||
+ ARCHIVE DESTINATION lib${LIB_SUFFIX}
|
||||
)
|
||||
endif (BUILD_SHARED_LIBS)
|
||||
|
||||
115
slim/patches/slim-1.3.6-session-chooser.patch
Normal file
115
slim/patches/slim-1.3.6-session-chooser.patch
Normal file
@@ -0,0 +1,115 @@
|
||||
--- a/cfg.cpp 2013-10-01 18:38:05.000000000 -0400
|
||||
+++ b/cfg.cpp 2013-10-24 12:12:20.584103253 -0400
|
||||
@@ -274,14 +274,14 @@
|
||||
while (true) {
|
||||
string::const_iterator begin = s;
|
||||
while (*s != c && s != str.end()) { ++s; }
|
||||
- tmp = string(begin, s);
|
||||
- if (useEmpty || tmp.size() > 0)
|
||||
+ tmp = string(begin, s);
|
||||
+ if (useEmpty || tmp.size() > 0)
|
||||
v.push_back(tmp);
|
||||
if (s == str.end()) {
|
||||
break;
|
||||
}
|
||||
if (++s == str.end()) {
|
||||
- if (useEmpty)
|
||||
+ if (useEmpty)
|
||||
v.push_back("");
|
||||
break;
|
||||
}
|
||||
@@ -289,6 +289,7 @@
|
||||
}
|
||||
|
||||
void Cfg::fillSessionList(){
|
||||
+ string strSessionList = getOption("sessions");
|
||||
string strSessionDir = getOption("sessiondir");
|
||||
|
||||
sessions.clear();
|
||||
@@ -307,29 +308,29 @@
|
||||
struct stat oFileStat;
|
||||
|
||||
if (stat(strFile.c_str(), &oFileStat) == 0) {
|
||||
- if (S_ISREG(oFileStat.st_mode) &&
|
||||
- access(strFile.c_str(), R_OK) == 0){
|
||||
- ifstream desktop_file( strFile.c_str() );
|
||||
- if (desktop_file){
|
||||
- string line, session_name = "", session_exec = "";
|
||||
- while (getline( desktop_file, line )) {
|
||||
- if (line.substr(0, 5) == "Name=") {
|
||||
- session_name = line.substr(5);
|
||||
- if (!session_exec.empty())
|
||||
- break;
|
||||
- } else
|
||||
- if (line.substr(0, 5) == "Exec=") {
|
||||
- session_exec = line.substr(5);
|
||||
- if (!session_name.empty())
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
- desktop_file.close();
|
||||
- pair<string,string> session(session_name,session_exec);
|
||||
- sessions.push_back(session);
|
||||
- cout << session_exec << " - " << session_name << endl;
|
||||
- }
|
||||
-
|
||||
+ if (S_ISREG(oFileStat.st_mode) &&
|
||||
+ access(strFile.c_str(), R_OK) == 0){
|
||||
+ ifstream desktop_file( strFile.c_str() );
|
||||
+ if (desktop_file){
|
||||
+ string line, session_name = "", session_exec = "";
|
||||
+ while (getline( desktop_file, line )) {
|
||||
+ if (line.substr(0, 5) == "Name=") {
|
||||
+ session_name = line.substr(5);
|
||||
+ if (!session_exec.empty()) break;
|
||||
+ } else if (line.substr(0, 5) == "Exec=") {
|
||||
+ session_exec = line.substr(5);
|
||||
+ if (!session_name.empty()) break;
|
||||
+ }
|
||||
+ }
|
||||
+ desktop_file.close();
|
||||
+ if (!session_name.empty() && !session_exec.empty()) {
|
||||
+ pair<string,string> session(session_name,session_exec);
|
||||
+ sessions.push_back(session);
|
||||
+ } else if (access(strFile.c_str(), X_OK) == 0) {
|
||||
+ pair<string,string> session(string(pDirent->d_name),strFile);
|
||||
+ sessions.push_back(session);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -338,8 +339,18 @@
|
||||
}
|
||||
|
||||
if (sessions.empty()){
|
||||
- pair<string,string> session("","");
|
||||
- sessions.push_back(session);
|
||||
+ if (strSessionList.empty()) {
|
||||
+ pair<string,string> session("","");
|
||||
+ sessions.push_back(session);
|
||||
+ } else {
|
||||
+ // iterate through the split of the session list
|
||||
+ vector<string> sessit;
|
||||
+ split(sessit,strSessionList,',',false);
|
||||
+ for (vector<string>::iterator it = sessit.begin(); it != sessit.end(); ++it) {
|
||||
+ pair<string,string> session(*it,*it);
|
||||
+ sessions.push_back(session);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
--- a/app.cpp 2013-10-24 12:16:59.870111072 -0400
|
||||
+++ b/app.cpp 2013-10-24 12:29:59.899132910 -0400
|
||||
@@ -377,10 +377,6 @@
|
||||
LoginPanel->SetName(cfg->getOption("default_user") );
|
||||
}
|
||||
|
||||
- if (firstloop) {
|
||||
- LoginPanel->SwitchSession();
|
||||
- }
|
||||
-
|
||||
if (!AuthenticateUser(focuspass && firstloop)){
|
||||
panelclosed = 0;
|
||||
firstloop = false;
|
||||
22
slim/patches/slim-1.3.6_freetype-2.5.1.diff
Normal file
22
slim/patches/slim-1.3.6_freetype-2.5.1.diff
Normal file
@@ -0,0 +1,22 @@
|
||||
From 98822d549689f09bd454b1cf462aae231931f64d Mon Sep 17 00:00:00 2001
|
||||
From: mancha <mancha1 AT zoho DOT com>
|
||||
Date: Sat, 14 Feb 2015
|
||||
Subject: Fix compile with FreeType 2.5.1+
|
||||
|
||||
FREETYPE_INCLUDE_DIR_freetype2 & FREETYPE_INCLUDE_DIR_ft2build
|
||||
might differ. Include both.
|
||||
|
||||
---
|
||||
CMakeLists.txt | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -171,6 +171,7 @@ include_directories(
|
||||
${X11_Xrender_INCLUDE_PATH}
|
||||
${X11_Xrandr_INCLUDE_PATH}
|
||||
${FREETYPE_INCLUDE_DIR_freetype2}
|
||||
+ ${FREETYPE_INCLUDE_DIR_ft2build}
|
||||
${X11_Xmu_INCLUDE_PATH}
|
||||
${ZLIB_INCLUDE_DIR}
|
||||
${JPEG_INCLUDE_DIR}
|
||||
19
slim/slack-desc
Normal file
19
slim/slack-desc
Normal file
@@ -0,0 +1,19 @@
|
||||
# HOW TO EDIT THIS FILE:
|
||||
# The "handy ruler" below makes it easier to edit a package description.
|
||||
# Line up the first '|' above the ':' following the base package name, and
|
||||
# the '|' on the right side marks the last column you can put a character in.
|
||||
# You must make exactly 11 lines for the formatting to be correct. It's also
|
||||
# customary to leave one space after the ':' except on otherwise blank lines.
|
||||
|
||||
|-----handy-ruler------------------------------------------------------|
|
||||
slim: slim (graphical login manager similar to xdm/kdm/gdm)
|
||||
slim:
|
||||
slim: SLiM is a lightweight login manager based on GNUstep's Login.app. It
|
||||
slim: makes a great replacement for XDM for those who want something that
|
||||
slim: looks good, but still do not want Gnome or KDE.
|
||||
slim:
|
||||
slim: Homepage: https://sourceforge.net/projects/slim.berlios/
|
||||
slim:
|
||||
slim:
|
||||
slim:
|
||||
slim:
|
||||
156
slim/slim.SlackBuild
Executable file
156
slim/slim.SlackBuild
Executable file
@@ -0,0 +1,156 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Slackware build script for SLiM
|
||||
|
||||
# Copyright 2006 Martin Lefebvre <dadexter@gmail.com>
|
||||
# Copyright 2007-2009 Frank Caraballo <fecaraballo{at}gmail{dot}com>
|
||||
# Copyright 2010,2013 Niels Horn, Rio de Janeiro, Brazil
|
||||
# Copyright 2014 Ryan P.C. McQuen | Everett, WA | ryanpcmcquen@member.fsf.org
|
||||
# Copyright 2023 Sergei Fedosoff <eleksir@gmail.com>
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# Maintained by David Spencer <baildon.research@googlemail.com>
|
||||
|
||||
cd $(dirname $0) ; CWD=$(pwd)
|
||||
|
||||
PRGNAM=slim
|
||||
VERSION=${VERSION:-1.3.6}
|
||||
BUILD=${BUILD:-3}
|
||||
TAG=${TAG:-_EXs}
|
||||
PKGTYPE=${PKGTYPE:-tgz}
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
case "$( uname -m )" in
|
||||
i?86) ARCH=i586 ;;
|
||||
arm*) ARCH=arm ;;
|
||||
*) ARCH=$( uname -m ) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||
# the name of the created package would be, and then exit. This information
|
||||
# could be useful to other scripts.
|
||||
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
TMP=${TMP:-/tmp/EXs}
|
||||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
if [ "$ARCH" = "i586" ]; then
|
||||
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||
LIBDIRSUFFIX=""
|
||||
elif [ "$ARCH" = "i686" ]; then
|
||||
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||
LIBDIRSUFFIX=""
|
||||
elif [ "$ARCH" = "x86_64" ]; then
|
||||
SLKCFLAGS="-O2 -fPIC"
|
||||
LIBDIRSUFFIX="64"
|
||||
else
|
||||
SLKCFLAGS="-O2"
|
||||
LIBDIRSUFFIX=""
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
rm -rf $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf $PRGNAM-$VERSION
|
||||
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
|
||||
cd $PRGNAM-$VERSION
|
||||
chown -R root:root .
|
||||
find -L . \
|
||||
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
|
||||
-o -perm 511 \) -exec chmod 755 {} \+ -o \
|
||||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
|
||||
|
||||
# Correct the path used for suspend and a few things about sessions
|
||||
patch -p1 < $CWD/patches/slim-1.3.6-config.diff
|
||||
# Fix for freetype-2.5.5 headers
|
||||
patch -p1 < $CWD/patches/slim-1.3.6_freetype-2.5.1.diff
|
||||
# Fixes for slim libraries
|
||||
patch -p1 < $CWD/patches/slim-1.3.6-libslim-cmake-fixes.patch
|
||||
# Honour our FLAGS
|
||||
patch -p1 < $CWD/patches/slim-1.3.6-honour-cflags.patch
|
||||
# Fix for the latest gcc
|
||||
patch -p1 < $CWD/patches/slim-1.3.6-gcc11.patch
|
||||
# Fix a bug
|
||||
patch -p1 < $CWD/patches/slim-1.3.6-envcpy-bad-pointer-arithmetic.patch
|
||||
|
||||
# Fix location of man-pages
|
||||
sed "s/share\/man/man/" -i CMakeLists.txt
|
||||
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake \
|
||||
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
|
||||
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DLIB_SUFFIX=$LIBDIRSUFFIX \
|
||||
-DUSE_PAM=yes \
|
||||
-DUSE_CONSOLEKIT=no \
|
||||
-DCMAKE_BUILD_TYPE=Release ..
|
||||
make -j$(nproc)
|
||||
make install DESTDIR=$PKG
|
||||
cd ..
|
||||
|
||||
# Don't overwrite existing config file:
|
||||
mv $PKG/etc/slim.conf $PKG/etc/slim.conf.new
|
||||
|
||||
# Add the slackware-black theme to the package:
|
||||
tar xvf $CWD/slackware-black.tar.bz2 -C $PKG/usr/share/slim/themes
|
||||
|
||||
# Add a logrotate file
|
||||
mkdir -p $PKG/etc/logrotate.d
|
||||
cat $CWD/files/slim.logrotate > $PKG/etc/logrotate.d/slim.new
|
||||
|
||||
# Kill the incorrectly-placed (and useless anyway) systemd stuff
|
||||
rm -rf $PKG/usr/usr
|
||||
|
||||
# Kill systemd stuff
|
||||
rm -rf $PKG/lib
|
||||
|
||||
install -m 0644 -D $CWD/files/Xsession $PKG/usr/share/slim/Xsession
|
||||
install -m 0644 -D $CWD/files/slim.pam $PKG/etc/pam.d/slim/slim.pam
|
||||
install -m 0644 -D $CWD/files/slimlock.pam $PKG/etc/pam.d/slimlock/slimlock.pam
|
||||
install -m 0644 -D slimlock.conf $PKG/etc/slimlock.conf
|
||||
|
||||
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
|
||||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||
|
||||
find $PKG/usr/man -type f -exec gzip -9 {} \+
|
||||
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
|
||||
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a ChangeLog COPYING INSTALL README THEMES TODO xinitrc.sample $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||
|
||||
cd $PKG
|
||||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|
||||
10
slim/slim.info
Normal file
10
slim/slim.info
Normal file
@@ -0,0 +1,10 @@
|
||||
PRGNAM="slim"
|
||||
VERSION="1.3.6"
|
||||
HOMEPAGE="https://sourceforge.net/projects/slim.berlios/"
|
||||
DOWNLOAD="https://sourceforge.net/projects/slim.berlios/files/slim-1.3.6.tar.gz"
|
||||
MD5SUM="d40d256394f9ef34cef34d2aa9cb52e6"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES=""
|
||||
MAINTAINER="Sergei Fedosoff"
|
||||
EMAIL="eleksir@gmail.com"
|
||||
Reference in New Issue
Block a user