From cbff2b6e44a54ab8e62c4f86d98cd0f262cb2858 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 25 Jul 2023 12:43:13 +0100 Subject: klaus: Add git-without-safe-directory-check. * guix/forge/klaus.scm: Import git-minimal from (gnu packages version-control), (guix gexp) and (guix utils). (git-without-safe-directory-check): New variable. --- guix/forge/klaus.scm | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'guix/forge/klaus.scm') diff --git a/guix/forge/klaus.scm b/guix/forge/klaus.scm index fcc63a5..099b42f 100644 --- a/guix/forge/klaus.scm +++ b/guix/forge/klaus.scm @@ -19,11 +19,14 @@ (define-module (forge klaus) #:use-module ((gnu packages check) #:select (python-nose)) + #:use-module ((gnu packages version-control) #:select (git-minimal)) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix download) + #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages)) + #:use-module (guix packages) + #:use-module (guix utils)) (define-public python-httpauth (package @@ -42,3 +45,25 @@ (description "@code{python-httpauth} is WSGI middleware that secures some/all routes using HTTP Digest Authentication.") (license license:bsd-2))) + +;; We use klaus to serve shared repositories. But, git's safe +;; directory check does not permit us to use shared +;; repositories. Disable it. The more long term solution is to rewrite +;; klaus to not use the git CLI at all. See +;; https://github.com/jonashaag/klaus/issues/322 +(define-public git-without-safe-directory-check + (package + (inherit git-minimal) + (name "git-without-safe-directory-check") + (arguments + (substitute-keyword-arguments (package-arguments git-minimal) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-after 'unpack 'disable-safe-directory-check + (lambda _ + ;; Disable the safe directory check. + (substitute* "setup.c" + (("return data\\.is_safe;") + "return 1;")) + ;; Disable tests broken by this change. + (setenv "GIT_SKIP_TESTS" "t0033 t9700"))))))))) -- cgit v1.2.3