GNU bug report logs -
#50451
[PATCH] Fix two issues in the minetest importer
Previous Next
Reported by: Maxime Devos <maximedevos <at> telenet.be>
Date: Tue, 7 Sep 2021 11:38:01 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 50451 in the body.
You can then email your comments to 50451 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
vivien <at> planete-kraus.eu, guix-patches <at> gnu.org
:
bug#50451
; Package
guix-patches
.
(Tue, 07 Sep 2021 11:38:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Maxime Devos <maximedevos <at> telenet.be>
:
New bug report received and forwarded. Copy sent to
vivien <at> planete-kraus.eu, guix-patches <at> gnu.org
.
(Tue, 07 Sep 2021 11:38:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
X-Debbugs-CC: Vivien Kraus <vivien <at> planete-kraus.eu>
Hi guix,
These patches fix a few issues noted at <https://issues.guix.gnu.org/50425#4>
and add corresponding tests.
Greetings,
Maxime.
[0001-tests-minetest-Fix-test-package-indenting.patch (text/x-patch, inline)]
From 2c376bc8fcdc690a8d3b71e818085fa25f547d59 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos <at> telenet.be>
Date: Tue, 7 Sep 2021 13:03:12 +0200
Subject: [PATCH 1/3] tests/minetest: Fix 'test-package*' indenting.
* tests/minetest.scm (Local Variables)[test-package*]: Set
scheme-indent-function property to 1.
---
tests/minetest.scm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tests/minetest.scm b/tests/minetest.scm
index 6ae476fe5f..c6e872e918 100644
--- a/tests/minetest.scm
+++ b/tests/minetest.scm
@@ -353,3 +353,7 @@ during a dynamic extent where that package is available on ContentDB."
(sort-packages (list x y z))))
(test-end "minetest")
+
+;;; Local Variables:
+;;; eval: (put 'test-package* 'scheme-indent-function 1)
+;;; End:
--
2.33.0
[0002-import-minetest-Delete-duplicate-dependencies.patch (text/x-patch, inline)]
From 2855ab8880b9200ec0eb18a9dfb802a516828312 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos <at> telenet.be>
Date: Tue, 7 Sep 2021 13:05:56 +0200
Subject: [PATCH 2/3] import/minetest: Delete duplicate dependencies.
This fixes one of the issues noted in <https://issues.guix.gnu.org/50425#4>.
* guix/import/minetest.scm
(import-dependencies): Call 'delete-duplicates' on the resulting list.
* tests/minetest.scm
("minetest->guix-package, multiple dependencies implemented by one mod"):
New test.
---
guix/import/minetest.scm | 6 +++++-
tests/minetest.scm | 10 ++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/guix/import/minetest.scm b/guix/import/minetest.scm
index e1f8487b75..c8209aba79 100644
--- a/guix/import/minetest.scm
+++ b/guix/import/minetest.scm
@@ -371,7 +371,11 @@ official Minetest forum and the Git repository (if any)."
DEPENDENCIES as a list of AUTHOR/NAME strings."
(define dependency-list
(assoc-ref dependencies author/name))
- (filter-map
+ ;; A mod can have multiple dependencies implemented by the same mod,
+ ;; so remove duplicate mod names.
+ (define (filter-deduplicate-map f list)
+ (delete-duplicates (filter-map f list)))
+ (filter-deduplicate-map
(lambda (dependency)
(and (not (dependency-optional? dependency))
(not (builtin-mod? (dependency-name dependency)))
diff --git a/tests/minetest.scm b/tests/minetest.scm
index c6e872e918..80e2697a3d 100644
--- a/tests/minetest.scm
+++ b/tests/minetest.scm
@@ -331,6 +331,16 @@ during a dynamic extent where that package is available on ContentDB."
"some-modpack/containing-mese")))
#:inputs '())
+;; See e.g. 'orwell/basic_trains'
+(test-package* "minetest->guix-package, multiple dependencies implemented by one mod"
+ (list #:name "frobnicate"
+ #:guix-name "minetest-frobnicate"
+ #:upstream-name "Author/frobnicate"
+ #:requirements '(("frob" #f ("Author/frob"))
+ ("frob_x" #f ("Author/frob")))
+ #:inputs '("minetest-frob"))
+ (list #:author "Author" #:name "frob"))
+
;; License
(test-package "minetest->guix-package, identical licenses"
--
2.33.0
[0003-import-minetest-Strip-v-prefixes-from-the-version-nu.patch (text/x-patch, inline)]
From 91cbb7e68f3df8601fd91a2247ca971f7e011406 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos <at> telenet.be>
Date: Tue, 7 Sep 2021 13:24:24 +0200
Subject: [PATCH 3/3] import/minetest: Strip "v" prefixes from the version
number.
This fixes one of the issues noted at <https://issues.guix.gnu.org/50425#4>.
* guix/import/minetest.scm
(release-version): New procedure.
(%minetest->guix-package): Call new procedure instead of release-title.
* tests/minetest.scm
(make-package-sexp): Allow overriding the version number.
(make-releases-json): Allow overriding the release title.
("conventional version number")
("v-prefixed version number")
("dates as version number"): New tests.
---
guix/import/minetest.scm | 10 +++++++++-
tests/minetest.scm | 23 ++++++++++++++++++-----
2 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/guix/import/minetest.scm b/guix/import/minetest.scm
index c8209aba79..29bf12d123 100644
--- a/guix/import/minetest.scm
+++ b/guix/import/minetest.scm
@@ -337,6 +337,14 @@ official Minetest forum and the Git repository (if any)."
(and=> (package-forums package) topic->url-sexp)
(package-repository package)))
+(define (release-version release)
+ "Guess the version of RELEASE from the release title."
+ (define title (release-title release))
+ (if (string-prefix? "v" title)
+ ;; Remove "v" prefix from release titles like ‘v1.0.1’.
+ (substring title 1)
+ title))
+
;; If the default sort key is changed, make sure to modify 'show-help'
;; in (guix scripts import minetest) appropriately as well.
(define %default-sort-key "score")
@@ -436,7 +444,7 @@ list of AUTHOR/NAME strings."
(define important-upstream-dependencies
(important-dependencies dependencies author/name #:sort sort))
(values (make-minetest-sexp author/name
- (release-title release) ; version
+ (release-version release)
(package-repository package)
(release-commit release)
important-upstream-dependencies
diff --git a/tests/minetest.scm b/tests/minetest.scm
index 80e2697a3d..6998c9a70b 100644
--- a/tests/minetest.scm
+++ b/tests/minetest.scm
@@ -33,6 +33,10 @@
(define* (make-package-sexp #:key
(guix-name "minetest-foo")
+ ;; This is not a proper version number but
+ ;; ContentDB often does not include version
+ ;; numbers.
+ (version "2021-07-25")
(home-page "https://example.org/foo")
(repo "https://example.org/foo.git")
(synopsis "synopsis")
@@ -44,9 +48,7 @@
#:allow-other-keys)
`(package
(name ,guix-name)
- ;; This is not a proper version number but ContentDB does not include
- ;; version numbers.
- (version "2021-07-25")
+ (version ,version)
(source
(origin
(method git-fetch)
@@ -106,14 +108,14 @@
author "/" name "/download/"))
("website" . ,website)))
-(define* (make-releases-json #:key (commit #f) (title "") #:allow-other-keys)
+(define* (make-releases-json #:key (commit #f) (title "2021-07-25") #:allow-other-keys)
`#((("commit" . ,commit)
("downloads" . 469)
("id" . 8614)
("max_minetest_version" . null)
("min_minetest_version" . null)
("release_date" . "2021-07-25T01:10:23.207584")
- ("title" . "2021-07-25"))))
+ ("title" . ,title))))
(define* (make-dependencies-json #:key (author "Author")
(name "foo")
@@ -292,6 +294,17 @@ during a dynamic extent where that package is available on ContentDB."
#:website 'null
#:repo 'null)
+
+;; Determining the version number
+
+(test-package "conventional version number" #:version "1.2.3" #:title "1.2.3")
+;; See e.g. orwell/basic_trains
+(test-package "v-prefixed version number" #:version "1.2.3" #:title "v1.2.3")
+;; Many mods on ContentDB use dates as release titles. In that case, the date
+;; will have to do.
+(test-package "dates as version number"
+ #:version "2021-01-01" #:title "2021-01-01")
+
;; Dependencies
--
2.33.0
[signature.asc (application/pgp-signature, inline)]
Reply sent
to
Ludovic Courtès <ludo <at> gnu.org>
:
You have taken responsibility.
(Sat, 18 Sep 2021 17:43:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Maxime Devos <maximedevos <at> telenet.be>
:
bug acknowledged by developer.
(Sat, 18 Sep 2021 17:43:01 GMT)
Full text and
rfc822 format available.
Message #10 received at 50451-done <at> debbugs.gnu.org (full text, mbox):
Hi,
Maxime Devos <maximedevos <at> telenet.be> skribis:
> From 2c376bc8fcdc690a8d3b71e818085fa25f547d59 Mon Sep 17 00:00:00 2001
> From: Maxime Devos <maximedevos <at> telenet.be>
> Date: Tue, 7 Sep 2021 13:03:12 +0200
> Subject: [PATCH 1/3] tests/minetest: Fix 'test-package*' indenting.
>
> * tests/minetest.scm (Local Variables)[test-package*]: Set
> scheme-indent-function property to 1.
[...]
> From 2855ab8880b9200ec0eb18a9dfb802a516828312 Mon Sep 17 00:00:00 2001
> From: Maxime Devos <maximedevos <at> telenet.be>
> Date: Tue, 7 Sep 2021 13:05:56 +0200
> Subject: [PATCH 2/3] import/minetest: Delete duplicate dependencies.
>
> This fixes one of the issues noted in <https://issues.guix.gnu.org/50425#4>.
>
> * guix/import/minetest.scm
> (import-dependencies): Call 'delete-duplicates' on the resulting list.
> * tests/minetest.scm
> ("minetest->guix-package, multiple dependencies implemented by one mod"):
> New test.
[...]
> From 91cbb7e68f3df8601fd91a2247ca971f7e011406 Mon Sep 17 00:00:00 2001
> From: Maxime Devos <maximedevos <at> telenet.be>
> Date: Tue, 7 Sep 2021 13:24:24 +0200
> Subject: [PATCH 3/3] import/minetest: Strip "v" prefixes from the version
> number.
>
> This fixes one of the issues noted at <https://issues.guix.gnu.org/50425#4>.
>
> * guix/import/minetest.scm
> (release-version): New procedure.
> (%minetest->guix-package): Call new procedure instead of release-title.
> * tests/minetest.scm
> (make-package-sexp): Allow overriding the version number.
> (make-releases-json): Allow overriding the release title.
> ("conventional version number")
> ("v-prefixed version number")
> ("dates as version number"): New tests.
Applied, thanks!
Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 17 Oct 2021 11:24:05 GMT)
Full text and
rfc822 format available.
This bug report was last modified 2 years and 192 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.