Subject: [bug#74310] [PATCH] gnu: Add potato-make.

From: Evgeny Pisemsky <[email-masked]>
Date: Tue, 12 Nov 2024 23:00:30 +0300

Hi!

Thanks for review.

Here is the updated patch.

>From b7084374dac32a3f39f7991fbdede65bb9ea0202 Mon Sep 17 00:00:00 2001
Message-ID: <[email-masked]>
From: Evgeny Pisemsky <[email-masked]>
Date: Tue, 12 Nov 2024 22:55:22 +0300
Subject: [PATCH] gnu: Add potato-make.

* gnu/packages/build-tools.scm (potato-make): New variable.

Change-Id: I86843b4001298ee984e6d1c35b59dc3b2e51d97f
---
 gnu/packages/build-tools.scm | 47 ++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 21df25e4f5..c32dacac59 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2021 qblade <[email-masked]>
 ;;; Copyright © 2021, 2023, 2024 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2022, 2023 Juliana Sims <[email-masked]>
+;;; Copyright © 2024 Evgeny Pisemsky <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,6 +42,7 @@ (define-module (gnu packages build-tools)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system copy)
+  #:use-module (guix build-system guile)
   #:use-module (guix modules)
   #:use-module (gnu packages)
   #:use-module (gnu packages adns)
@@ -54,6 +56,7 @@ (define-module (gnu packages build-tools)
   #:use-module (gnu packages cppi)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages guile)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages logging)
@@ -1042,3 +1045,47 @@ (define-public pdpmake
     ;; pdpmake is distributed under the public domain, but the sources include
     ;; tests under the GPL license version 2.
     (license (list license:gpl2 license:public-domain))))
+
+(define-public potato-make
+  ;; No releases.
+  (let ((commit "e8c09ce1f6a33c013b27961b0a07f991db33e6fb")
+        (revision "0"))
+    (package
+      (name "potato-make")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/spk121/potato-make")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0axgrkqdfip5f2bp7d2dprd74g58lyc0c7lgg2m93k5jqn1lpbmj"))
+         ;; Delete files of the seemingly unfinished pmake program.
+         (snippet '(begin
+                     (delete-file "pmake")
+                     (delete-file "documents/pmake.org")
+                     (delete-file "make/main.scm")
+                     (rmdir "documents")
+                     (rmdir "make")))))
+      (build-system guile-build-system)
+      (arguments
+       (list
+        #:phases #~(modify-phases %standard-phases
+                     (add-after 'build 'check
+                       (lambda _
+                         ;; Delete test referencing nonexistent file.
+                         (delete-file "tests/parse.sh")
+                         (for-each (lambda (f)
+                                     (invoke "guile" "-L" "." "-s" f))
+                                   (find-files "tests")))))))
+      (native-inputs (list guile-3.0))
+      (home-page "https://github.com/spk121/potato-make")
+      (synopsis "Library to write makefiles in Guile Scheme")
+      (description
+       "Potato Make is a scheme library that aims to simplify the task of
+maintaining, updating, and regenerating programs.  It is inspired by
+the POSIX make utility and allows to write a build script in Guile
+Scheme.")
+      (license license:expat))))

base-commit: b10ce47d8be5b6c15987f4e1d93b3bd71b1eb220
-- 
2.46.0