about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2023-04-12 16:06:45 +0100
committerArun Isaac2023-04-12 16:06:45 +0100
commit91a3433f72321bb093bf773a1558578a8a160e39 (patch)
treedfe05f9c6e446fcb958edc32800773dccc52eea1
parentaa7bdb78104812f811929d5a1770d5cfb227bc35 (diff)
downloadgn-machines-91a3433f72321bb093bf773a1558578a8a160e39.tar.gz
Disable libgit2 repository ownership validation.
* genenetwork-development.scm: Import guile-git from (gnu packages
guile), libgit2-1.3 from (gnu packages version-control), and (guix
utils). Prefix tissue import from (gnu packages web) with guix:.
(libgit2-1.3, guile-git-for-tissue, tissue): New variables.
(operating-system)[services]: Use local variant of tissue package.
-rw-r--r--genenetwork-development.scm38
1 files changed, 36 insertions, 2 deletions
diff --git a/genenetwork-development.scm b/genenetwork-development.scm
index 70b6044..7b01ce3 100644
--- a/genenetwork-development.scm
+++ b/genenetwork-development.scm
@@ -34,7 +34,7 @@
              ((gnu packages databases) #:select (virtuoso-ose))
              ((gnu packages gnupg) #:select (guile-gcrypt))
              ((gnu packages graphviz) #:select (graphviz))
-             ((gnu packages guile) #:select (guile-3.0 guile-zlib))
+             ((gnu packages guile) #:select (guile-3.0 guile-git guile-zlib))
              ((gnu packages guile-xyz) #:select (guile-dbd-mysql guile-dbi guile-hashing guile-lib guile-libyaml))
              ((gnu packages guile-xyz) #:select (guile-sparql) #:prefix guix:)
              ((gnu packages haskell-apps) #:select (shellcheck))
@@ -43,7 +43,8 @@
              ((gnu packages rdf) #:select (raptor2))
              ((gnu packages tls) #:select (openssl))
              ((gnu packages version-control) #:select (git-minimal))
-             ((gnu packages web) #:select (tissue))
+             ((gnu packages version-control) #:select (libgit2-1.3) #:prefix guix:)
+             ((gnu packages web) #:select (tissue) #:prefix guix:)
              (gnu services ci)
              (gnu services databases)
              (gnu services mcron)
@@ -60,6 +61,7 @@
              (guix profiles)
              (guix records)
              (guix store)
+             (guix utils)
              (forge forge)
              (forge laminar)
              (forge socket)
@@ -686,6 +688,37 @@ described by CONFIG, a <genenetwork-configuration> object."
 ;;; gn-gemtext-threads
 ;;;
 
+;; Use a patched libgit2 for tissue until there is a way to disable
+;; repository ownership validation using the API. See
+;; https://issues.guix.gnu.org/55399
+(define libgit2-1.3
+  (package
+    (inherit guix:libgit2-1.3)
+    (name "libgit2")
+    (arguments
+     (substitute-keyword-arguments (package-arguments guix:libgit2-1.3)
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases #$phases
+            (add-after 'unpack 'disable-ownership-validation
+              (lambda _
+                (substitute* "src/repository.c"
+                  (("git_repository__validate_ownership = true")
+                   "git_repository__validate_ownership = false"))))))))))
+
+(define guile-git-for-tissue
+  (package
+    (inherit guile-git)
+    (inputs
+     (modify-inputs (package-inputs guile-git)
+       (replace "libgit2" libgit2-1.3)))))
+
+(define tissue
+  (package
+    (inherit guix:tissue)
+    (inputs
+     (modify-inputs (package-inputs guix:tissue)
+       (replace "guile-git" guile-git-for-tissue)))))
+
 (define gn-gemtext-threads-project
   (forge-project
    (name "gn-gemtext-threads")
@@ -970,6 +1003,7 @@ reverse proxy tissue."
                                                                        #:directories? #t))))))
                    (service tissue-service-type
                             (tissue-configuration
+                             (package tissue)
                              (hosts
                               (list (tissue-host
                                      (name "issues.genenetwork.org")