gnu: slim: Upgrade to 1.3.6; allow the choice of a config file at run time.
* gnu/packages/slim.scm (slim): Upgrade to 1.3.6. Add patches. Comment out systemd-related stuff from CMakeLists.txt. Add "-DBUILD_SHARED_LIBS=OFF" and "-DCMAKE_SKIP_BUILD_RPATH=ON" to #:configure-flags. Adjust 'home-page' field. * gnu/packages/patches/slim-config.patch, gnu/packages/patches/slim-session.patch: New files. * gnu-system.am (dist_patch_DATA): Add them.
This commit is contained in:
		
							parent
							
								
									1d07e9316a
								
							
						
					
					
						commit
						16686a9022
					
				
					 4 changed files with 70 additions and 7 deletions
				
			
		| 
						 | 
					@ -296,6 +296,8 @@ dist_patch_DATA =						\
 | 
				
			||||||
  gnu/packages/patches/readline-link-ncurses.patch		\
 | 
					  gnu/packages/patches/readline-link-ncurses.patch		\
 | 
				
			||||||
  gnu/packages/patches/ripperx-libm.patch			\
 | 
					  gnu/packages/patches/ripperx-libm.patch			\
 | 
				
			||||||
  gnu/packages/patches/scheme48-tests.patch			\
 | 
					  gnu/packages/patches/scheme48-tests.patch			\
 | 
				
			||||||
 | 
					  gnu/packages/patches/slim-session.patch			\
 | 
				
			||||||
 | 
					  gnu/packages/patches/slim-config.patch			\
 | 
				
			||||||
  gnu/packages/patches/tcsh-fix-autotest.patch			\
 | 
					  gnu/packages/patches/tcsh-fix-autotest.patch			\
 | 
				
			||||||
  gnu/packages/patches/teckit-cstdio.patch			\
 | 
					  gnu/packages/patches/teckit-cstdio.patch			\
 | 
				
			||||||
  gnu/packages/patches/valgrind-glibc.patch			\
 | 
					  gnu/packages/patches/valgrind-glibc.patch			\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										27
									
								
								gnu/packages/patches/slim-config.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								gnu/packages/patches/slim-config.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					Allow the configuration file and theme directory to be specified at run time.
 | 
				
			||||||
 | 
					Patch by Eelco Dolstra, from Nixpkgs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- 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);
 | 
				
			||||||
 | 
					 	string themebase = "";
 | 
				
			||||||
 | 
					 	string themefile = "";
 | 
				
			||||||
 | 
					 	string themedir = "";
 | 
				
			||||||
 | 
					@@ -208,7 +210,9 @@
 | 
				
			||||||
 | 
					 	if (testing) {
 | 
				
			||||||
 | 
					 		themeName = testtheme;
 | 
				
			||||||
 | 
					 	} else {
 | 
				
			||||||
 | 
					-		themebase = string(THEMESDIR) + "/";
 | 
				
			||||||
 | 
					+		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) {
 | 
				
			||||||
							
								
								
									
										17
									
								
								gnu/packages/patches/slim-session.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								gnu/packages/patches/slim-session.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					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) {
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2013 Guy Grant <gzg@riseup.net>
 | 
					;;; Copyright © 2013 Guy Grant <gzg@riseup.net>
 | 
				
			||||||
 | 
					;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -23,6 +24,7 @@
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix build-system cmake)
 | 
					  #:use-module (guix build-system cmake)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages gl)
 | 
					  #:use-module (gnu packages gl)
 | 
				
			||||||
  #:use-module (gnu packages xorg)
 | 
					  #:use-module (gnu packages xorg)
 | 
				
			||||||
  #:use-module (gnu packages libpng)
 | 
					  #:use-module (gnu packages libpng)
 | 
				
			||||||
| 
						 | 
					@ -34,13 +36,17 @@
 | 
				
			||||||
(define-public slim
 | 
					(define-public slim
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "slim")
 | 
					    (name "slim")
 | 
				
			||||||
    (version "1.3.3")
 | 
					    (version "1.3.6")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
	     (method url-fetch)
 | 
						     (method url-fetch)
 | 
				
			||||||
	     (uri (string-append "mirror://sourceforge/project/slim.berlios/slim-"
 | 
					             ;; Used to be available from
 | 
				
			||||||
 | 
					             ;; mirror://sourceforge/project/slim.berlios/.
 | 
				
			||||||
 | 
						     (uri (string-append "http://download.berlios.de/slim/slim-"
 | 
				
			||||||
				  version ".tar.gz"))
 | 
									  version ".tar.gz"))
 | 
				
			||||||
	     (sha256
 | 
						     (sha256
 | 
				
			||||||
	      (base32 "1fdvipj3658s8dm78djmfr8xhg6l8rr7kc4qcb34bjrnkkclhln1"))))
 | 
						      (base32 "1pqhk22jb4aja4hkrm7rjgbgzjyh7i4zswdgf5nw862l2znzxpi1"))
 | 
				
			||||||
 | 
					             (patches (map search-patch
 | 
				
			||||||
 | 
					                           (list "slim-config.patch" "slim-session.patch")))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (inputs `(("linux-pam" ,linux-pam)
 | 
					    (inputs `(("linux-pam" ,linux-pam)
 | 
				
			||||||
	      ("libpng" ,libpng)
 | 
						      ("libpng" ,libpng)
 | 
				
			||||||
| 
						 | 
					@ -62,12 +68,23 @@
 | 
				
			||||||
		 (lambda _
 | 
							 (lambda _
 | 
				
			||||||
		   (substitute* "CMakeLists.txt"
 | 
							   (substitute* "CMakeLists.txt"
 | 
				
			||||||
		     (("/etc")
 | 
							     (("/etc")
 | 
				
			||||||
		      (string-append
 | 
							      (string-append (assoc-ref %outputs "out") "/etc"))
 | 
				
			||||||
		       (assoc-ref %outputs "out") "/etc"))))
 | 
					                     (("install.*systemd.*")
 | 
				
			||||||
 | 
					                      ;; The build system's logic here is: if "Linux", then
 | 
				
			||||||
 | 
					                      ;; "systemd".  Strip that.
 | 
				
			||||||
 | 
					                      "")))
 | 
				
			||||||
		 %standard-phases)
 | 
							 %standard-phases)
 | 
				
			||||||
       #:configure-flags '("-DUSE_PAM=yes" "-DUSE_CONSOLEKIT=no")
 | 
					       #:configure-flags '("-DUSE_PAM=yes" "-DUSE_CONSOLEKIT=no"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                           ;; Don't build libslim.so, because then the build
 | 
				
			||||||
 | 
					                           ;; system is unable to set the right RUNPATH on the
 | 
				
			||||||
 | 
					                           ;; 'slim' binary.
 | 
				
			||||||
 | 
					                           "-DBUILD_SHARED_LIBS=OFF"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                           ;; Leave a valid RUNPATH upon install.
 | 
				
			||||||
 | 
					                           "-DCMAKE_SKIP_BUILD_RPATH=ON")
 | 
				
			||||||
       #:tests? #f))
 | 
					       #:tests? #f))
 | 
				
			||||||
    (home-page "http://www.slim.berlios.de/")
 | 
					    (home-page "http://slim.berlios.de/")
 | 
				
			||||||
    (synopsis "Desktop-independent graphcal login manager for X11")
 | 
					    (synopsis "Desktop-independent graphcal login manager for X11")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "SLiM is a Desktop-independent graphical login manager for X11, derived
 | 
					     "SLiM is a Desktop-independent graphical login manager for X11, derived
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue