From patchwork Fri Dec 15 00:33:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Feng Shu X-Patchwork-Id: 57607 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 1522C27BBE9; Fri, 15 Dec 2023 00:35:24 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI,SPF_HELO_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id E382627BBE2 for ; Fri, 15 Dec 2023 00:35:20 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rDwAT-0005D5-Qn; Thu, 14 Dec 2023 19:35:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rDwAQ-0005Ci-Up for guix-patches@gnu.org; Thu, 14 Dec 2023 19:35:02 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rDwAQ-0000Ud-LL for guix-patches@gnu.org; Thu, 14 Dec 2023 19:35:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rDwAQ-0004KJ-5W for guix-patches@gnu.org; Thu, 14 Dec 2023 19:35:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#67818] [PATCH v2] gnu: slim: Update to 1.4.0. References: <87r0jp7bga.fsf@163.com> In-Reply-To: <87r0jp7bga.fsf@163.com> Resent-From: Feng Shu Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 15 Dec 2023 00:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 67818 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 67818@debbugs.gnu.org Received: via spool by 67818-submit@debbugs.gnu.org id=B67818.170260044516545 (code B ref 67818); Fri, 15 Dec 2023 00:35:02 +0000 Received: (at 67818) by debbugs.gnu.org; 15 Dec 2023 00:34:05 +0000 Received: from localhost ([127.0.0.1]:51225 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDw9U-0004Im-OO for submit@debbugs.gnu.org; Thu, 14 Dec 2023 19:34:05 -0500 Received: from m12.mail.163.com ([220.181.12.199]:52316) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDw9Q-0004IC-Ka for 67818@debbugs.gnu.org; Thu, 14 Dec 2023 19:34:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-ID:MIME-Version: Content-Type; bh=LtTFBwS1FCXDWuOYT/UIlEHu6P9WacOf3d3+pbClc2U=; b=l89wvbfuPL3AVI0s1p5GQmOSydBU/ffddSCUm8irEIfdUbWtHA9lp0UcFTWq6O mTy2bWWmRGFAHVnytBB3yaXoyA+JMgRdZ7kX6IlY4GTXFK4gIvm5fwcveJf2JGNX W3pzco7B0K4S6bIwb1im1hZ1cS+/E14PjCzAR8W9JqtMY= Received: from Tumashu (unknown [218.92.14.78]) by zwqz-smtp-mta-g5-0 (Coremail) with SMTP id _____wD3f1vtnntlKGVWBw--.32538S2; Fri, 15 Dec 2023 08:33:50 +0800 (CST) From: Feng Shu Date: Fri, 15 Dec 2023 08:33:49 +0800 Message-ID: <87ttoks3rm.fsf@163.com> MIME-Version: 1.0 Content-Disposition: inline; filename=v2-0001-gnu-slim-Update-to-1.4.0.patch Content-Description: [PATCH v2] gnu: slim: Update to 1.4.0. X-CM-TRANSID: _____wD3f1vtnntlKGVWBw--.32538S2 X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73 VFW2AGmfu7bjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxUz5r4UUUUU X-Originating-IP: [218.92.14.78] X-CM-SenderInfo: 5wxpt2lkx6il2tof0z/1tbiEQxG1F7++C4dRAACsi X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches From 158553a6e263817fd6afd18ad26b31d40c55aa0c Mon Sep 17 00:00:00 2001 From: Feng Shu Date: Thu, 14 Dec 2023 09:28:44 +0800 Subject: [PATCH v2] 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. --- 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(-) delete mode 100644 gnu/packages/patches/slim-reset.patch delete mode 100644 gnu/packages/patches/slim-session.patch delete mode 100644 gnu/packages/patches/slim-sigusr1.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8b4e525206..5632c28b2d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1996,10 +1996,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 @@ (define-public lightdm-gtk-greeter (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 . - (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 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); -- 2.39.2