diff options
-rw-r--r-- | guix/forge/klaus.scm | 27 |
1 files changed, 26 insertions, 1 deletions
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"))))))))) |