summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix/forge/klaus.scm27
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")))))))))