aboutsummaryrefslogtreecommitdiff
path: root/system/slim/patches
diff options
context:
space:
mode:
authorMatteo Bernardini <ponce@slackbuilds.org>2021-09-22 19:47:24 +0200
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2021-10-02 16:50:34 +0700
commit4e168a9f4dce52b835780927792adc6b69fa76d4 (patch)
tree68fc3d23b0307fd3b817ee769f5cf62470cd39ac /system/slim/patches
parentb5b7a79881d0e022ba802f180208db01e13ae5d1 (diff)
system/slim: Add PAM support, fix for gcc >= 11.x, cleanups.
Thanks gentoo and archlinux for most of the stuff Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'system/slim/patches')
-rw-r--r--system/slim/patches/slim-1.3.6-config.diff60
-rw-r--r--system/slim/patches/slim-1.3.6-envcpy-bad-pointer-arithmetic.patch15
-rw-r--r--system/slim/patches/slim-1.3.6-gcc11.patch12
-rw-r--r--system/slim/patches/slim-1.3.6-honour-cflags.patch14
-rw-r--r--system/slim/patches/slim-1.3.6-libslim-cmake-fixes.patch33
-rw-r--r--system/slim/patches/slim-1.3.6-session-chooser.patch115
-rw-r--r--system/slim/patches/slim-1.3.6_freetype-2.5.1.diff22
7 files changed, 271 insertions, 0 deletions
diff --git a/system/slim/patches/slim-1.3.6-config.diff b/system/slim/patches/slim-1.3.6-config.diff
new file mode 100644
index 0000000000000..466590ccdcd9b
--- /dev/null
+++ b/system/slim/patches/slim-1.3.6-config.diff
@@ -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
diff --git a/system/slim/patches/slim-1.3.6-envcpy-bad-pointer-arithmetic.patch b/system/slim/patches/slim-1.3.6-envcpy-bad-pointer-arithmetic.patch
new file mode 100644
index 0000000000000..b3787dd58459c
--- /dev/null
+++ b/system/slim/patches/slim-1.3.6-envcpy-bad-pointer-arithmetic.patch
@@ -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 */
diff --git a/system/slim/patches/slim-1.3.6-gcc11.patch b/system/slim/patches/slim-1.3.6-gcc11.patch
new file mode 100644
index 0000000000000..a6b07c637780a
--- /dev/null
+++ b/system/slim/patches/slim-1.3.6-gcc11.patch
@@ -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);
diff --git a/system/slim/patches/slim-1.3.6-honour-cflags.patch b/system/slim/patches/slim-1.3.6-honour-cflags.patch
new file mode 100644
index 0000000000000..2a43be75fb025
--- /dev/null
+++ b/system/slim/patches/slim-1.3.6-honour-cflags.patch
@@ -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
diff --git a/system/slim/patches/slim-1.3.6-libslim-cmake-fixes.patch b/system/slim/patches/slim-1.3.6-libslim-cmake-fixes.patch
new file mode 100644
index 0000000000000..ecd40390c821a
--- /dev/null
+++ b/system/slim/patches/slim-1.3.6-libslim-cmake-fixes.patch
@@ -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)
+
diff --git a/system/slim/patches/slim-1.3.6-session-chooser.patch b/system/slim/patches/slim-1.3.6-session-chooser.patch
new file mode 100644
index 0000000000000..b43c9a3076056
--- /dev/null
+++ b/system/slim/patches/slim-1.3.6-session-chooser.patch
@@ -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;
diff --git a/system/slim/patches/slim-1.3.6_freetype-2.5.1.diff b/system/slim/patches/slim-1.3.6_freetype-2.5.1.diff
new file mode 100644
index 0000000000000..7f4f48a9f9cda
--- /dev/null
+++ b/system/slim/patches/slim-1.3.6_freetype-2.5.1.diff
@@ -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}