summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2023-05-30 20:53:31 +0100
committerArun Isaac2023-05-30 21:16:48 +0100
commit94dc69122acf0c3342293b88d24a7f15d9749a78 (patch)
treed5a62a01e986483f756bdf93b70aa8208270dff4
parent708d646fccdf5f860c1b3ddd6b0eec324093d34a (diff)
downloadtissue-94dc69122acf0c3342293b88d24a7f15d9749a78.tar.gz
tissue-94dc69122acf0c3342293b88d24a7f15d9749a78.tar.lz
tissue-94dc69122acf0c3342293b88d24a7f15d9749a78.zip
guix.scm: Work around libgit2 repository ownership validation bug.
* guix.scm: Import guile-git from (gnu packages guile) and libgit2-1.3
from (gnu packages version-control) with the guix: prefix.
(libgit2, guile-git): New variables.
(tissue)[inputs]: Use guile-git.
-rw-r--r--guix.scm34
1 files changed, 33 insertions, 1 deletions
diff --git a/guix.scm b/guix.scm
index 953eb3c..08847da 100644
--- a/guix.scm
+++ b/guix.scm
@@ -17,18 +17,50 @@
 ;;; along with tissue.  If not, see <https://www.gnu.org/licenses/>.
 
 (use-modules ((gnu packages fonts) #:select (font-ibm-plex))
+             ((gnu packages guile) #:select (guile-git) #:prefix guix:)
+             ((gnu packages version-control) #:select (libgit2-1.3) #:prefix guix:)
              ((gnu packages web) #:select (tissue) #:prefix guix:)
              (guix gexp)
              (guix git-download)
-             (guix packages))
+             (guix packages)
+             (guix utils))
 
 (define %source-dir (dirname (current-filename)))
 
+;; Run this version of libgit2 for guile-git until guile-git is
+;; updated upstream and https://github.com/libgit2/libgit2/issues/6536
+;; is fixed.
+(define-public libgit2
+  (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
+            ;; Disable ownership validation until
+            ;; https://github.com/libgit2/libgit2/issues/6536 is fixed.
+            (add-after 'unpack 'disable-ownership-validation
+              (lambda _
+                (substitute* "src/repository.c"
+                  (("git_repository__validate_ownership = true")
+                   "git_repository__validate_ownership = false"))))))))))
+
+(define-public guile-git
+  (package
+    (inherit guix:guile-git)
+    (inputs
+     (modify-inputs (package-inputs guix:guile-git)
+       (replace "libgit2" libgit2)))))
+
 (package
   (inherit guix:tissue)
   (source (local-file %source-dir
                       #:recursive? #t
                       #:select? (git-predicate %source-dir)))
+  (inputs
+   (modify-inputs (package-inputs guix:tissue)
+     (replace "guile-git" guile-git)))
   (native-inputs
    (modify-inputs (package-native-inputs guix:tissue)
      (prepend font-ibm-plex))))