From 1a6a85768e4652ee1bd44d3a913baa3285be238b Mon Sep 17 00:00:00 2001 From: Ashish SHUKLA Date: Tue, 17 Sep 2024 20:31:43 +0000 Subject: [PATCH] gnu: Add got. * gnu/packages/version-control.scm (got): New variable. Change-Id: I34d19d90ab36e8831fa88668676aa2399356b002 Signed-off-by: Andreas Enge --- gnu/packages/version-control.scm | 54 ++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index c1e9c7e5dd..87186985e9 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -57,6 +57,7 @@ ;;; Copyright © 2024 Suhail Singh ;;; Copyright © 2024 Simon Tournier ;;; Copyright © 2024 Javier Olaechea +;;; Copyright © 2024 Ashish SHUKLA ;;; ;;; This file is part of GNU Guix. ;;; @@ -103,6 +104,7 @@ (define-module (gnu packages version-control) #:use-module (gnu packages cook) #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-vcs) + #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages docbook) @@ -125,6 +127,8 @@ (define-module (gnu packages version-control) #:use-module (gnu packages guile-xyz) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) + #:use-module (gnu packages libbsd) + #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages mail) #:use-module (gnu packages man) @@ -964,6 +968,56 @@ (define-public git-tools @end itemize") (license license:gpl3+))) +(define-public got + (package + (name "got") + (version "0.103") + (source (origin + (method url-fetch) + (uri + (string-append + "https://gameoftrees.org/releases/portable/got-portable-" + version ".tar.gz")) + (sha256 + (base32 + "0y18961xrj4rja850i31gadiaps2qnkfb4jlramlz9akyf9mwh1j")))) + (inputs + (list libevent + `(,util-linux "lib") + zlib + libressl + libmd + libbsd + ncurses)) + (native-inputs + (list pkg-config perl)) + (arguments + `(;; disable runpath validation, courtesy: libbsd's special + ;; treatment of libmd, as it embeds path to libmd.so + #:validate-runpath? #f + ;; default values of GOT_*_PATH_* point to /usr/bin + #:make-flags + '("CFLAGS+=-DGOT_DIAL_PATH_SSH=\\\"ssh\\\"" + "CFLAGS+=-DGOT_TAG_PATH_SSH_KEYGEN=\\\"ssh-keygen\\\"" + "CFLAGS+=-DGOT_TAG_PATH_SIGNIFY=\\\"signify\\\"") + #:phases ,#~(modify-phases %standard-phases + (add-after 'unpack 'patch-execv-to-execvp + (lambda _ + ;; got sources has paths hardcoded to /usr/bin + (substitute* "lib/dial.c" + (("execv\\(GOT_DIAL_") "execvp(GOT_DIAL_") + (("execv %s\", GOT_DIAL") "execvp %s\", GOT_DIAL")) + (substitute* "lib/sigs.c" + (("execv\\(GOT_TAG") "execvp(GOT_TAG") + (("execv %s\", GOT_TAG") "execvp %s\", GOT_TAG"))))))) + (build-system gnu-build-system) + (synopsis "Distributed version control system") + (description + "Game of Trees (Got) is a version control system which prioritizes ease of use +and simplicity over flexibility.") + (license license:isc) + (home-page "https://gameoftrees.org/"))) + (define-public xdiff (let ((revision "0") (commit "a137bc7ee6c76618ed1737c257548eaa10ac0089"))