gnu: Add makem-minimal.

* gnu/packages/emacs-build.scm (makem-minimal): New variable.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
Nicolas Graves 2025-03-20 11:08:16 +01:00 committed by Liliana Marie Prikler
parent 0e6e32570a
commit 8606878a31
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87
3 changed files with 126 additions and 0 deletions

View file

@ -1838,6 +1838,7 @@ dist_patch_DATA = \
%D%/packages/patches/mailutils-variable-lookup.patch \ %D%/packages/patches/mailutils-variable-lookup.patch \
%D%/packages/patches/mandoc-support-zstd-compression.patch \ %D%/packages/patches/mandoc-support-zstd-compression.patch \
%D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/make-impure-dirs.patch \
%D%/packages/patches/makem-replace-git.patch \
%D%/packages/patches/mariadb-rocksdb-atomic-linking.patch \ %D%/packages/patches/mariadb-rocksdb-atomic-linking.patch \
%D%/packages/patches/marisa-fix-MARISA_WORD_SIZE.patch \ %D%/packages/patches/marisa-fix-MARISA_WORD_SIZE.patch \
%D%/packages/patches/mathjax-disable-webpack.patch \ %D%/packages/patches/mathjax-disable-webpack.patch \

View file

@ -522,3 +522,62 @@ Lisp.")
(description "This package provides a makefile to help checking Emacs (description "This package provides a makefile to help checking Emacs
packages.") packages.")
(license license:gpl3+)))) (license license:gpl3+))))
;; This is an alternative version patches for internal Guix tests.
;; The user-facing version is in emacs-xyz.scm
(define-public makem-minimal
(package
(name "makem")
(version "0.7.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alphapapa/makem.sh")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xqwfxkxgpcm3k2m2shwkwrm4asl59ik8867c3k1iwfj8xzfp089"))
(modules '((guix build utils)))
(snippet #~(begin
(delete-file-recursively "images")))))
(build-system emacs-build-system)
(arguments
(let ((patch (local-file
(car (search-patches "makem-replace-git.patch")))))
(list
#:tests? #f
#:modules
'((guix build emacs-build-system)
(guix build utils)
(guix build emacs-utils)
(srfi srfi-26))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-file
(lambda* (#:key inputs #:allow-other-keys)
(invoke (search-input-file inputs "bin/patch")
"--force" "--no-backup-if-mismatch"
"-p1" "--input" #$patch)))
(add-after 'install 'install-bin
(lambda _
(let ((bin (string-append #$output "/bin")))
(mkdir-p bin)
(install-file "makem.sh" bin))))
(add-after 'install-bin 'wrap-script
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program (string-append #$output "/bin/makem.sh")
`("PATH" ":" prefix
,(map dirname
(map (cut search-input-file inputs <>)
(list "bin/find"
"bin/grep"
"bin/sed")))))))))))
(native-inputs (list patch))
(inputs
(list coreutils-minimal grep sed util-linux)) ; for getopt
(home-page "https://github.com/alphapapa/makem.sh")
(synopsis "Makefile-like script to help checking Emacs packages")
(description "This package provides a Makefile-like script and a transient
menu for linting and testing Emacs packages.")
(license license:gpl3+)))

View file

@ -0,0 +1,66 @@
From 5396f4d6312b24eac79da2f70279df773443fd10 Mon Sep 17 00:00:00 2001
From: Nicolas Graves <ngraves@ngraves.fr>
Date: Wed, 19 Mar 2025 13:02:47 +0100
Subject: [PATCH] Replace git.
---
makem.sh | 34 +++++-----------------------------
1 file changed, 5 insertions(+), 29 deletions(-)
diff --git a/makem.sh b/makem.sh
index fd81e0f..4ec9577 100755
--- a/makem.sh
+++ b/makem.sh
@@ -385,34 +385,13 @@ function byte-compile-file {
# ** Files
-function submodules {
- # Echo a list of submodules's paths relative to the repo root.
- # TODO: Parse with bash regexp instead of cut.
- git submodule status | awk '{print $2}'
-}
-
-function project-root {
- # Echo the root of the project (or superproject, if running from
- # within a submodule).
- root_dir=$(git rev-parse --show-superproject-working-tree)
- [[ $root_dir ]] || root_dir=$(git rev-parse --show-toplevel)
- [[ $root_dir ]] || error "Can't find repo root."
-
- echo "$root_dir"
-}
-
function files-project {
# Echo a list of files in project; or with $1, files in it
- # matching that pattern with "git ls-files". Excludes submodules.
- [[ $1 ]] && pattern="/$1" || pattern="."
-
- local excludes
- for submodule in $(submodules)
- do
- excludes+=(":!:$submodule")
- done
-
- git ls-files -- "$pattern" "${excludes[@]}"
+ # matching that pattern with "find".
+ if [[ $1 ]]
+ then find . -type f -name "$1" | sed 's|^\./||'
+ else find . -type f | sed 's|^\./||'
+ fi
}
function dirs-project {
@@ -1223,9 +1202,6 @@ paths_temp+=("$package_initialize_file")
trap cleanup EXIT INT TERM
-# Change to project root directory first.
-cd "$(project-root)"
-
# Discover project files.
files_project_feature=($(files-project-feature))
files_project_test=($(files-project-test))
--
2.48.1