guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#72925] [PATCH] adding jpm package


From: Omar Bassam
Subject: [bug#72925] [PATCH] adding jpm package
Date: Thu, 5 Sep 2024 17:50:02 +0300

Change-Id: I730ef2f5c874c5142a580a42af76180e95d93ccd
---
 gnu/packages/lisp.scm | 52 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 5d4399f145..96698d375d 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -29,6 +29,7 @@
 ;;; Copyright © 2024 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2024 bigbug <bigbookofbug@proton.me>
 ;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se>
+;;; Copyright © 2024 Omar Bassam <omar.bassam88@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -917,6 +918,57 @@ (define-public janet
 assembler, PEG) is less than 1MB.")
     (license license:expat)))
 
+(define-public jpm
+  (package
+    (name "jpm")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/janet-lang/jpm.git";)
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256 (base32 
"05rdxigmiy7vf93s16a8n2029lq33073jccz1rjl4iisxj6piw4l"))))
+    (build-system trivial-build-system)
+    (arguments
+     (list
+      #:modules `((guix build utils))
+      #:builder #~(begin
+                    (use-modules (guix build utils))
+                    (mkdir %output)
+                    (for-each (lambda (dir) (mkdir (string-append %output "/" 
dir)))
+                              '("bin" "lib" "share" "share/man" "lib/janet"
+                                "lib/janet/jpm" "share/man/man1"))
+                    (copy-recursively (assoc-ref %build-inputs "source") 
"source")
+                    (chdir "source")
+                    (substitute* "configs/linux_config.janet"
+                      (("auto-shebang true") "auto-shebang false"))
+                    (substitute* "configs/linux_config.janet"
+                      (("/usr/local") %output))
+                    (substitute* "jpm/shutil.janet"
+                      (("cp") (string-append #$coreutils "/bin/cp")))
+                    (substitute* "jpm/declare.janet"
+                      (("chmod") (string-append #$coreutils "/bin/chmod")))
+                    (setenv "PREFIX" %output)
+                    (setenv "JANET_PREFIX" %output)
+                    (setenv "JANET_LIBPATH" (string-append %output 
"/lib/janet"))
+                    (setenv "JANET_MODPATH" (string-append %output 
"/lib/janet"))
+                    (system* (string-append #$janet "/bin/janet")
+                             "bootstrap.janet" "configs/linux_config.janet")
+                    (substitute* (string-append %output "/bin/jpm")
+                      (("/usr/bin/env janet")
+                       (string-append #$janet "/bin/janet")))
+                    (copy-recursively (string-append #$janet "/include/janet")
+                                      (string-append %output "/include/janet"))
+                    (copy-recursively (string-append #$janet "/lib")
+                                      (string-append %output "/lib")))))
+    (inputs (list janet coreutils))
+    (home-page "https://janet-lang.org/";)
+    (synopsis "Janet Project Manager for the Janet programming language")
+    (description "JPM is the Janet Project Manager tool.  It is for automating
+builds and downloading dependencies of Janet projects.")
+    (license license:expat)))
+
 (define-public lisp-repl-core-dumper
   (package
     (name "lisp-repl-core-dumper")

base-commit: e05f0e9832326703fa90a02559f1a4b44e4401ad
-- 
2.45.2






reply via email to

[Prev in Thread] Current Thread [Next in Thread]