summary refs log tree commit diff
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2021-06-22 19:22:15 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2021-06-23 02:51:29 +0200
commit3b5297d975efd07e7819f671c14856fd0778870e (patch)
tree388b64068f55b2b996fe567bb4cabb6dd9074d88
parent8d9a2dee1f213a35ce2e74d657806819b5df3126 (diff)
downloadguix-3b5297d975efd07e7819f671c14856fd0778870e.tar.gz
gnu: cups-minimal: Never cupsAdminGetServerSettings.
* gnu/packages/cups.scm (cups-minimal)[arguments]: Add a new
'never-cupsAdminGetServerSettings phase.
-rw-r--r--gnu/packages/cups.scm12
1 files changed, 12 insertions, 0 deletions
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 1a071a161e..959caa70f6 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -275,6 +275,18 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'never-cupsAdminGetServerSettings
+           ;; Instead of querying the daemon directly, this part of CUPS assumes
+           ;; that (1) it has access to a cupsd.conf under CUPS_SERVERROOT, and
+           ;; (2) the file's contents apply to the running daemon.  (1) is false
+           ;; at least on Guix Systems resulting in extremely long delays when
+           ;; loading the Web interface's /admin page.  (2) isn't valid anywhere
+           ;; because it ignores, e.g., -c FILE.
+           ;; Upstream considers this code on ‘life support’ so just neuter it.
+	   (lambda _
+	     (substitute* "cgi-bin/admin.c"
+	       (("!cupsAdminGetServerSettings" match)
+		(string-append "0 && " match)))))
          (add-before 'configure 'patch-makedefs
            (lambda _
              (substitute* "Makedefs.in"