From: James Smith <jsubuntuxp@disroot.org>
To: Tobias Geerinckx-Rice <me@tobias.gr>
Cc: 44039@debbugs.gnu.org, jsubuntuxp@disroot.org
Subject: [bug#44039] [PATCH] gnu: Add slade.
Date: Sat, 17 Oct 2020 00:41:50 +0000 (UTC) [thread overview]
Message-ID: <0f10b54f-81a1-4de4-af81-7cb06ac0c865@disroot.org> (raw)
In-Reply-To: <87zh4lanh9.fsf@nckx>
[-- Attachment #1: Type: text/plain, Size: 3032 bytes --]
Tobias,
On Fri, 16 Oct 2020 14:07:46 -0700,
Tobias Geerinckx-Rice wrote:
>
>> +(define-public slade
>>
> Let's keep modules vaguely alphabetical. Could you move this above
>
> ‘tiled’?
>
Sure thing, I didn't see anything in the manual about sorting alphabetically and
other definitions weren't in order either.
>
>> + (add-after 'install 'patch-gdk-backend
>>
> Nitpick: it's not patching anything.
>
Now that you point that out, patch wasn't the word I was looking for.
>
>> + `("GDK_BACKEND" "" = (,"x11")))
>>
> This works but the "" and , are redundant.
>
Thanks for pointing that out, I didn't see any existing examples doing it that
way.
> All in all, the phase can be rewritten as:
>
> (add-after 'install 'wrap-with-x11-gdk-backend
>
> ;; Set GDK_BACKEND to x11 to prevent crash on Wayland.
>
> See
>
> ;; https://github.com/sirjuddington/SLADE/issues/1097
>
> for details.
>
> (lambda* (#:key outputs #:allow-other-keys)
>
> (wrap-program
>
> (string-append (assoc-ref outputs "out")
>
> "/bin/slade")
>
> '("GDK_BACKEND" = ("x11")))
>
> #t)))
>
Done.
>
>> + #:tests? #f))
>>
> Are there no tests at all? If so, note in a comment:
>
> #:tests? #f)) ; no test suite
>
Yeah, no tests.
> There's one more problem:
>
> set(ZIP_COMMAND "${ZIPTOOL_ZIP_EXECUTABLE}" -X -UN=UTF8 -9 -r \
>
> "${CMAKE_BINARY_DIR}/slade.pk3" .)
>
> Even zip -X won't create an identical archive on every run. There
>
> doesn't seem to be an option to do so. The result:
>
> --- /gnu/store/aaa-slade-3.1.12a/share/slade3/slade.pk3
>
> +++ /gnu/store/bbb-slade-3.1.12a/share/slade3/slade.pk3
>
> Zip file size: 3624588 bytes, number of entries: 768
>
> -drwxr-xr-x 3.0 unx 0 b- stor 20-Oct-16 19:17 html/
>
> -drwxr-xr-x 3.0 unx 0 b- stor 20-Oct-16 19:17 config/
>
> -drwxr-xr-x 3.0 unx 0 b- stor 20-Oct-16 19:17 config/colours/
>
> +drwxr-xr-x 3.0 unx 0 b- stor 20-Oct-16 19:31 html/
>
> +drwxr-xr-x 3.0 unx 0 b- stor 20-Oct-16 19:31 config/
>
> +drwxr-xr-x 3.0 unx 0 b- stor 20-Oct-16 19:31 config/colours/
>
> This is not ideal: Guix aims for reproducible builds.
>
I didn't think to check zip-compressed files.
> The following made multiple builds on one machine identical, but was
>
> not consistent between file systems, probably due to readdir order:
>
> + (add-before 'build 'reset-slade.pk3-timestamps
>
> + ;; This appears sufficient to make slade.pk3 reproducible.
>
> + (lambda _
>
> + (invoke "find" "../source/dist/res" "-exec" "touch"
>
> + "--no-dereference" "-t" "197001010000.00" "{}" "+")))
>
> I suppose I could try using find to sort the files before invoking
>
> zip, or something. Thoughts?
>
Unless there's a better way, let's do that.
Thanks for your help,
James Smith
[-- Attachment #2: v2-0001-gnu-Add-slade.patch --]
[-- Type: text/plain, Size: 4167 bytes --]
From 5035bc25a050ce6f81538000b59df05fb02b7e65 Mon Sep 17 00:00:00 2001
From: James Smith <jsubuntuxp@disroot.org>
Date: Fri, 16 Oct 2020 11:24:14 -0700
Subject: [PATCH v2] gnu: Add slade.
* gnu/packages/game-development.scm (slade): New variable.
---
gnu/packages/game-development.scm | 63 ++++++++++++++++++++++++++++++-
1 file changed, 62 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 96ed2f9da4..807b37b4e6 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2020 James Smith <jsubuntuxp@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,7 +38,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages game-development)
- #:use-module (srfi srfi-1)
+ #:use-module ((srfi srfi-1) #:hide (zip))
#:use-module (ice-9 match)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@@ -94,6 +95,7 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
+ #:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
@@ -441,6 +443,65 @@ GUI toolkit, lighting and physics frameworks and @code{Tiled} TMX format
support.")
(license license:gpl3+)))
+(define-public slade
+ (package
+ (name "slade")
+ (version "3.1.12a")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sirjuddington/SLADE")
+ (commit version)))
+ (sha256 (base32 "1q37pqibnrbdd7zjx7h2kfi0q9nc63cc96q9ya4x3fvsrf64n6yd"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:configure-flags
+ (list "-DWX_GTK3=ON" "-DNO_WEBVIEW=ON"
+ (string-append "-DWITH_WXPATH="
+ (assoc-ref %build-inputs "wxwidgets") "/bin")
+ (string-append "-DwxWidgets_LIBRARIES="
+ (assoc-ref %build-inputs "wxwidgets") "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'reset-slade.pk3-timestamps
+ ;; This appears sufficient to make slade.pk3 reproducible.
+ (lambda _
+ (invoke "find" "../source/dist/res" "-exec" "touch"
+ "--no-dereference" "-t" "197001010000.00" "{}"
+ "+")))
+ (add-after 'install 'wrap-with-x11-gdk-backend
+ ;; Set GDK_BACKEND to x11 to prevent crash on Wayland.
+ ;; See https://github.com/sirjuddington/SLADE/issues/1097 for details.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (wrap-program
+ (string-append (assoc-ref outputs "out")
+ "/bin/slade")
+ '("GDK_BACKEND" = ("x11")))
+ #t)))
+ #:tests? #f)) ;; No test suite.
+ (inputs
+ `(("curl" ,curl)
+ ("fluidsynth" ,fluidsynth)
+ ("freeimage" ,freeimage)
+ ("ftgl" ,ftgl)
+ ("glew" ,glew)
+ ("gtk+" ,gtk+)
+ ("sfml" ,sfml)
+ ("wxwidgets" ,wxwidgets-3.1)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)
+ ("zip" ,zip)))
+ (home-page "https://slade.mancubus.net")
+ (synopsis "Doom game data editor")
+ (description "SLADE3 is a modern editor for Doom-engine based games and
+source ports. It has the ability to view, modify, and write many different game-
+specific formats, and even convert between some of them, or from/to other generic
+formats such as PNG.")
+ (license license:gpl2)))
+
(define-public tiled
(package
(name "tiled")
--
2.28.0
next prev parent reply other threads:[~2020-10-17 0:43 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-16 18:43 [bug#44039] [PATCH] gnu: Add slade James Smith
2020-10-16 21:07 ` Tobias Geerinckx-Rice via Guix-patches via
2020-10-16 21:14 ` Tobias Geerinckx-Rice via Guix-patches via
2020-10-17 0:41 ` James Smith [this message]
2020-10-28 14:54 ` Ludovic Courtès
2020-10-29 2:49 ` James Smith
2020-10-29 23:39 ` Ludovic Courtès
2020-10-30 9:38 ` Tobias Geerinckx-Rice via Guix-patches via
2020-10-31 10:01 ` Ludovic Courtès
2021-05-15 20:52 ` James Smith
2021-09-18 17:47 ` [bug#44039] [PATCH v3] " James Smith via Guix-patches via
2021-09-22 14:21 ` bug#44039: [PATCH] " Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0f10b54f-81a1-4de4-af81-7cb06ac0c865@disroot.org \
--to=jsubuntuxp@disroot.org \
--cc=44039@debbugs.gnu.org \
--cc=me@tobias.gr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).