unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
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


  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).