guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/04: gnu: slim: Update to 1.4.0.


From: guix-commits
Subject: 02/04: gnu: slim: Update to 1.4.0.
Date: Sat, 23 Dec 2023 05:19:06 -0500 (EST)

civodul pushed a commit to branch master
in repository guix.

commit 2c8cdb05502cacaf603da231796ccafa59671117
Author: Feng Shu <tumashu@163.com>
AuthorDate: Thu Dec 14 09:28:44 2023 +0800

    gnu: slim: Update to 1.4.0.
    
    * gnu/packages/display-managers.scm (slim)[version]: Update to 1.4.0.
    [inputs]: Remove input label.
    [arguments]: Use gexp and remove fix-0-pointer-comparison.
    [home-pages]: Update to slim-fork's url.
    
    * gnu/packages/patches/slim-config.patch: Port to slim-1.4.0.
    * gnu/packages/patches/slim-display.patch: Port to slim-1.4.0.
    * gnu/packages/patches/slim-reset.patch: Deleted, no ablilty to port this
    patch for big change in v1.4.0.
    * gnu/packages/patches/slim-session.patch: Deleted. seem to work without 
this
    patch, further observation is needed.
    * gnu/packages/patches/slim-sigusr1.patch: Deleted, fixed in upstream.
    
    * gnu/local.mk: Remove slim-reset.patch, slim-session.patch, 
slim-sigur1.patch.
    
    Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/local.mk                            |  3 --
 gnu/packages/display-managers.scm       | 89 ++++++++++++++-------------------
 gnu/packages/patches/slim-config.patch  | 43 +++++++++-------
 gnu/packages/patches/slim-display.patch | 74 +++++++++++++++++----------
 gnu/packages/patches/slim-reset.patch   | 33 ------------
 gnu/packages/patches/slim-session.patch | 17 -------
 gnu/packages/patches/slim-sigusr1.patch | 33 ------------
 7 files changed, 111 insertions(+), 181 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index eca52cd39f..a472c62acb 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2004,10 +2004,7 @@ dist_patch_DATA =                                        
        \
   %D%/packages/patches/serf-python3.patch                      \
   %D%/packages/patches/shakespeare-spl-fix-grammar.patch               \
   %D%/packages/patches/sharutils-CVE-2018-1000097.patch                \
-  %D%/packages/patches/slim-session.patch                      \
   %D%/packages/patches/slim-config.patch                       \
-  %D%/packages/patches/slim-sigusr1.patch                      \
-  %D%/packages/patches/slim-reset.patch                                \
   %D%/packages/patches/slim-login.patch                                \
   %D%/packages/patches/slim-display.patch                      \
   %D%/packages/patches/stex-copy-from-immutable-store.patch    \
diff --git a/gnu/packages/display-managers.scm 
b/gnu/packages/display-managers.scm
index 935563c94c..7120c2ad75 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -486,59 +486,46 @@ GTK+, lets you select a desktop session and log in to 
it.")
 (define-public slim
   (package
     (name "slim")
-    (version "1.3.6")
-    (source (origin
-            (method url-fetch)
-             ;; Used to be available from download.berlios.de.
-            (uri (string-append
-                   "mirror://sourceforge/slim.berlios/slim-"
-                   version ".tar.gz"))
-            (sha256
-             (base32 "1pqhk22jb4aja4hkrm7rjgbgzjyh7i4zswdgf5nw862l2znzxpi1"))
-             (patches (search-patches "slim-config.patch"
-                                      "slim-reset.patch"
-                                      "slim-login.patch"
-                                      "slim-session.patch"
-                                      "slim-sigusr1.patch"
-                                      "slim-display.patch"))))
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/slim-fork/slim-" version
+                           ".tar.gz"))
+       (sha256
+        (base32 "011jfmksy0kgw4z0y70mc80bm5kmz5i1sgm6krrfj0h00zak22rm"))
+       (patches (search-patches "slim-config.patch"
+                                "slim-login.patch"
+                                "slim-display.patch"))))
     (build-system cmake-build-system)
-    (inputs `(("linux-pam" ,linux-pam)
-             ("libpng" ,libpng)
-             ("libjpeg" ,libjpeg-turbo)
-             ("freeglut" ,freeglut)
-             ("libxrandr" ,libxrandr)
-             ("libxrender" ,libxrender)
-             ("freetype" ,freetype)
-             ("fontconfig" ,fontconfig)
-              ("libx11" ,libx11)
-             ("libxft" ,libxft)
-             ("libxmu" ,libxmu)
-             ("xauth" ,xauth)))
-    (native-inputs
-     (list pkg-config))
+    (inputs (list fontconfig
+                  freeglut
+                  freetype
+                  libjpeg-turbo
+                  libpng
+                  libx11
+                  libxft
+                  libxmu
+                  libxrandr
+                  libxrender
+                  linux-pam
+                  xauth))
+    (native-inputs (list pkg-config))
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'set-new-etc-location
-           (lambda _
-             (substitute* "CMakeLists.txt"
-               (("/etc")
-                (string-append (assoc-ref %outputs "out") "/etc"))
-               (("install.*systemd.*")
-               ;; The build system's logic here is: if "Linux", then
-                ;; "systemd".  Strip that.
-                ""))
-             #t))
-         (add-before 'configure 'fix-0-pointer-comparison
-           (lambda _
-             (substitute* "panel.cpp"
-               (("WinGC < 0") "WinGC == NULL")))))
-       #:configure-flags '("-DUSE_PAM=yes"
-                           "-DUSE_CONSOLEKIT=no")
-       #:tests? #f))
-
-    ;; This used to be at <http://slim.berlios.de/>.
-    (home-page "https://github.com/iwamatsu/slim";)
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'configure 'set-new-etc-location
+            (lambda _
+              (substitute* "CMakeLists.txt"
+                (("/etc")
+                 (string-append #$output "/etc"))))))
+      #:configure-flags
+      #~(list "-DUSE_PAM=yes" "-DUSE_CONSOLEKIT=no")
+      #:tests? #f))
+    ;; The original project (https://github.com/iwamatsu/slim) has not been
+    ;; maintained since 2013, so we use slim-fork instead.
+    (home-page "https://slim-fork.sourceforge.io/";)
     (synopsis "Desktop-independent graphical login manager for X11")
     (description
      "SLiM is a Desktop-independent graphical login manager for X11, derived
diff --git a/gnu/packages/patches/slim-config.patch 
b/gnu/packages/patches/slim-config.patch
index 5e6135d75c..91eeb5f56c 100644
--- a/gnu/packages/patches/slim-config.patch
+++ b/gnu/packages/patches/slim-config.patch
@@ -1,27 +1,36 @@
 Allow the configuration file and theme directory to be specified at run time.
+
 Patch by Eelco Dolstra, from Nixpkgs.
+---
+ app.cpp | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
 
---- slim-1.3.6/app.cpp 2013-10-02 00:38:05.000000000 +0200
-+++ slim-1.3.6/app.cpp 2013-10-15 11:02:55.629263422 +0200
-@@ -200,7 +200,9 @@
- 
-       /* Read configuration and theme */
-       cfg = new Cfg;
--      cfg->readConf(CFGFILE);
-+      char *cfgfile = getenv("SLIM_CFGFILE");
-+      if (!cfgfile) cfgfile = CFGFILE;
-+      cfg->readConf(cfgfile);
+diff --git a/app.cpp b/app.cpp
+index 237477d..735df9c 100644
+--- a/app.cpp
++++ b/app.cpp
+@@ -285,7 +285,9 @@ void App::Run()
+       if ( cfg == 0 )
+       {
+               cfg = new Cfg;
+-              cfg->readConf(CFGFILE);
++              const char* cfgfile = getenv("SLIM_CFGFILE");
++              if (!cfgfile) cfgfile = CFGFILE;
++              cfg->readConf(cfgfile);
+       }
        string themebase = "";
        string themefile = "";
-       string themedir = "";
-@@ -208,7 +210,9 @@
-       if (testing) {
-               themeName = testtheme;
-       } else {
+@@ -297,7 +299,9 @@ void App::Run()
+       }
+       else
+       {
 -              themebase = string(THEMESDIR) + "/";
-+              char *themesdir = getenv("SLIM_THEMESDIR");
++              const char* themesdir = getenv("SLIM_THEMESDIR");
 +              if (!themesdir) themesdir = THEMESDIR;
 +              themebase = string(themesdir) + "/";
                themeName = cfg->getOption("current_theme");
                string::size_type pos;
-               if ((pos = themeName.find(",")) != string::npos) {
+               if ((pos = themeName.find(",")) != string::npos)
+-- 
+2.39.2
+
diff --git a/gnu/packages/patches/slim-display.patch 
b/gnu/packages/patches/slim-display.patch
index f68604a94b..b59e20c25c 100644
--- a/gnu/packages/patches/slim-display.patch
+++ b/gnu/packages/patches/slim-display.patch
@@ -1,39 +1,52 @@
-Add "display_name" configuration option and use its value instead of
-the hard coded one.
+Add "display_name" configuration option and use its value instead of the hard
+coded one.
 
 Patch by Diego N. Barbato
+---
+ app.cpp        | 23 ++++++++++-------------
+ cfg.cpp        |  1 +
+ switchuser.cpp |  2 +-
+ 3 files changed, 12 insertions(+), 14 deletions(-)
 
---- a/app.cpp  1970-01-01 01:00:00.000000000 +0100
-+++ b/app.cpp  2019-04-27 13:48:23.479133531 +0200
-@@ -190,7 +190,13 @@
- }
+diff --git a/app.cpp b/app.cpp
+index b840e60..4f72da0 100644
+--- a/app.cpp
++++ b/app.cpp
+@@ -270,7 +270,16 @@ App::App(int argc, char** argv)
  
- void App::Run() {
+ void App::Run()
+ {
 -      DisplayName = DISPLAY;
 +      /* Read configuration */
-+      cfg = new Cfg;
-+      char *cfgfile = getenv("SLIM_CFGFILE");
-+      if (!cfgfile) cfgfile = CFGFILE;
-+      cfg->readConf(cfgfile);
++      if ( cfg == 0 )
++      {
++              cfg = new Cfg;
++              const char *cfgfile = getenv("SLIM_CFGFILE");
++              if (!cfgfile) cfgfile = CFGFILE;
++              cfg->readConf(cfgfile);
 +
-+      DisplayName = cfg->getOption("display_name").c_str();
++              DisplayName = cfg->getOption("display_name").c_str();
++      }
  
  #ifdef XNEST_DEBUG
        char* p = getenv("DISPLAY");
-@@ -200,11 +206,7 @@
+@@ -281,14 +287,7 @@ void App::Run()
        }
  #endif
  
 -      /* Read configuration and theme */
--      cfg = new Cfg;
--      char *cfgfile = getenv("SLIM_CFGFILE");
--      if (!cfgfile) cfgfile = CFGFILE;
--      cfg->readConf(cfgfile);
-+      /* Read theme */
+-      if ( cfg == 0 )
+-      {
+-              cfg = new Cfg;
+-              const char* cfgfile = getenv("SLIM_CFGFILE");
+-              if (!cfgfile) cfgfile = CFGFILE;
+-              cfg->readConf(cfgfile);
+-      }
++        /* Read theme */
        string themebase = "";
        string themefile = "";
        string themedir = "";
-@@ -911,9 +913,7 @@
+@@ -1115,9 +1114,7 @@ int App::StartServer()
        static const int MAX_XSERVER_ARGS = 256;
        static char* server[MAX_XSERVER_ARGS+2] = { NULL };
        server[0] = (char *)cfg->getOption("default_xserver").c_str();
@@ -44,7 +57,7 @@ Patch by Diego N. Barbato
        char* args = new char[argOption.length()+2]; /* NULL plus vt */
        strcpy(args, argOption.c_str());
  
-@@ -1233,7 +1233,7 @@
+@@ -1424,7 +1421,7 @@ void App::CreateServerAuth()
        authfile = cfg->getOption("authfile");
        remove(authfile.c_str());
        putenv(StrConcat("XAUTHORITY=", authfile.c_str()));
@@ -53,9 +66,11 @@ Patch by Diego N. Barbato
          authfile);
  }
  
---- a/cfg.cpp  1970-01-01 01:00:00.000000000 +0100
-+++ b/cfg.cpp  2019-04-27 13:49:40.511773743 +0200
-@@ -31,6 +31,7 @@
+diff --git a/cfg.cpp b/cfg.cpp
+index 37fb10d..a0c9bf1 100644
+--- a/cfg.cpp
++++ b/cfg.cpp
+@@ -40,6 +40,7 @@ Cfg::Cfg()
        /* Configuration options */
        options.insert(option("default_path","/bin:/usr/bin:/usr/local/bin"));
        options.insert(option("default_xserver","/usr/bin/X"));
@@ -63,13 +78,18 @@ Patch by Diego N. Barbato
        options.insert(option("xserver_arguments",""));
        options.insert(option("numlock",""));
        options.insert(option("daemon",""));
---- a/switchuser.cpp   1970-01-01 01:00:00.000000000 +0100
-+++ b/switchuser.cpp   2019-04-27 13:50:19.380096651 +0200
-@@ -54,6 +54,6 @@
+diff --git a/switchuser.cpp b/switchuser.cpp
+index ca936ae..255f5d9 100644
+--- a/switchuser.cpp
++++ b/switchuser.cpp
+@@ -69,6 +69,6 @@ void SwitchUser::SetClientAuth(const char* mcookie)
        string home = string(Pw->pw_dir);
        string authfile = home + "/.Xauthority";
        remove(authfile.c_str());
 -      Util::add_mcookie(mcookie, ":0", cfg->getOption("xauth_path"),
-+      Util::add_mcookie(mcookie, displayName.c_str(), 
cfg->getOption("xauth_path"),
++      Util::add_mcookie(mcookie, cfg->getOption("display_name").c_str(), 
cfg->getOption("xauth_path"),
          authfile);
  }
+-- 
+2.39.2
+
diff --git a/gnu/packages/patches/slim-reset.patch 
b/gnu/packages/patches/slim-reset.patch
deleted file mode 100644
index eebee6b7b5..0000000000
--- a/gnu/packages/patches/slim-reset.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Do not reset chosen session and maintain the session-choser dialog after a
-failed login attempt.
-
-Patch by E. Bavier
-
---- slim-1.3.6/panel.cpp.orig  1969-12-31 18:00:00.000000000 -0600
-+++ slim-1.3.6/panel.cpp       2016-10-17 17:00:07.259649063 -0500
-@@ -260,13 +260,12 @@
- }
- 
- void Panel::ClearPanel() {
--      session_name = "";
--    session_exec = "";
-       Reset();
-       XClearWindow(Dpy, Root);
-       XClearWindow(Dpy, Win);
-       Cursor(SHOW);
-       ShowText();
-+      ShowSession();
-       XFlush(Dpy);
- }
- 
-@@ -760,9 +760,7 @@
-         pair<string,string> ses = cfg->nextSession();
-         session_name = ses.first;
-         session_exec = ses.second;
--        if (session_name.size() > 0) {
--                ShowSession();
--        }
-+        ShowSession();
-  }
- 
- /* Display session type on the screen */
diff --git a/gnu/packages/patches/slim-session.patch 
b/gnu/packages/patches/slim-session.patch
deleted file mode 100644
index b85d3f7dd0..0000000000
--- a/gnu/packages/patches/slim-session.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Exit after the user's session has finished.  This works around slim's broken
-PAM session handling (see
-http://developer.berlios.de/bugs/?func=detailbug&bug_id=19102&group_id=2663).
-
-Patch by Eelco Dolstra, from Nixpkgs.
-
---- slim-1.3.6/app.cpp 2013-10-15 11:02:55.629263422 +0200
-+++ slim-1.3.6/app.cpp 2013-10-15 13:00:10.141210784 +0200
-@@ -816,7 +822,7 @@
-       StopServer();
-       RemoveLock();
-       while (waitpid(-1, NULL, WNOHANG) > 0); /* Collects all dead childrens 
*/
--      Run();
-+      exit(OK_EXIT);
- }
- 
- void App::KillAllClients(Bool top) {
diff --git a/gnu/packages/patches/slim-sigusr1.patch 
b/gnu/packages/patches/slim-sigusr1.patch
deleted file mode 100644
index 344b02933e..0000000000
--- a/gnu/packages/patches/slim-sigusr1.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-This patch fixes SLiM so it really waits for the X server to be ready
-before attempting to connect to it.  Indeed, the X server notices that
-its parent process has a handler for SIGUSR1, and consequently sends it
-SIGUSR1 when it's ready to accept connections.
-
-The problem was that SLiM doesn't pay attention to SIGUSR1.  So in practice,
-if X starts slowly, then SLiM gets ECONNREFUSED a couple of time on
-/tmp/.X11-unix/X0, then goes on trying to connect to localhost:6000,
-where nobody answers; eventually, it times out and tries again on
-/tmp/.X11-unix/X0, and finally it shows up on the screen.
-
-Patch by L. Courtès.
-
---- slim-1.3.6/app.cpp 2014-02-05 15:27:20.000000000 +0100
-+++ slim-1.3.6/app.cpp 2014-02-09 22:42:04.000000000 +0100
-@@ -119,7 +119,9 @@ void CatchSignal(int sig) {
-       exit(ERR_EXIT);
- }
- 
-+static volatile int got_sigusr1 = 0;
- void User1Signal(int sig) {
-+      got_sigusr1 = 1;
-       signal(sig, User1Signal);
- }
- 
-@@ -884,6 +886,7 @@ int App::WaitForServer() {
-       int     ncycles  = 120;
-       int     cycles;
- 
-+      while (!got_sigusr1);
-       for(cycles = 0; cycles < ncycles; cycles++) {
-               if((Dpy = XOpenDisplay(DisplayName))) {
-                       XSetIOErrorHandler(xioerror);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]