unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
To: Ricardo Wurmus <rekado@elephly.net>
Cc: 35411@debbugs.gnu.org
Subject: [bug#35411] [PATCH] Add hedgewars
Date: Wed, 24 Apr 2019 18:57:24 +0200	[thread overview]
Message-ID: <87o94vqr2j.fsf@nicolasgoaziou.fr> (raw)
In-Reply-To: <87k1fj5t0y.fsf@elephly.net> (Ricardo Wurmus's message of "Wed, 24 Apr 2019 17:20:45 +0200")

[-- Attachment #1: Type: text/plain, Size: 2648 bytes --]

Hello again,

Ricardo Wurmus <rekado@elephly.net> writes:

>> +    (source (origin
>> +              (method hg-fetch)
>> +              (uri (hg-reference
>> +                    (url "https://hg.hedgewars.org/hedgewars/")
>> +                    (changeset (string-append version "-release"))))
>
> Is there no release tarball?

Oops. There is! I missed it the first time I looked at the tarballs, and
thought they only provided binaries and pointed to distributions
packages. Well, anyway, here it is.

>> +         (add-after 'unpack 'remove-failing-test
>> +           ;; XXX: Remove single failing test.
>> +           (lambda _
>> +             (delete-file "tests/lua/staticmines.lua")
>> +             #t))
>
> Do you know why it fails?  Is this an upstream problem or likely
> something to do with Guix?

I tried to make the tests more verbose, but I didn't succeed. Note that
it is a test in a "non-critical" directory. I assume this failure is
expected, somehow.
>
>> +         (add-after 'unpack 'fix-compiler
>> +           ;; XXX: Flag BUILD_ENGINE_C, as set above, implies using Clang to
>> +           ;; compile files.  However, using `clang' globally leads to the
>> +           ;; following issue:
>> +           ;; "qtbase-5.11.3/include/qt5/QtCore/qglobal.h:45:12: fatal error:
>> +           ;; 'type_traits' file not found".
>
> Is it really necessary to compile with Clang at all?  What happens if
> you compile with GCC?

The configure script yells at me as Clang is missing. If I eschew the
check in the CMakeLists.txt file, compilation halts with an error. Long
story short, I don't think we can build it without both clang and gcc.
>
>> +    (inputs
>> +     `(("clang" ,clang)
>
> Is this not actually a native input?

Indeed.

>> +       ("ghc" ,ghc)
>
> I think this also might be a native input.

OK.

>> +    (synopsis "Funny turn-based artillery game, featuring fighting hedgehogs!")
>
> Please remove the final exclamation point and the comma.  Maybe remove
> “Funny” because that’s subjective, but feel free to ignore me.

OK. I simply copied the description from the FSF directory.

> The description is a bit long.  We don’t need a list of weapons or the
> rules of the game (“dies when it enters the water”).  Could you try to
> shorten it and make sure that the first sentence describes what this is
> all about?

OK. Here is an update, taken from FSF directory. I also fixed a typo in
a license. Let me know if it is better now.

> Thanks for packaging it!

Thank you for the review.

Regards,

-- 
Nicolas Goaziou

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Add hedgewars (take 2) --]
[-- Type: text/x-diff, Size: 4389 bytes --]

From 65c3d7de785821a1aaf4928fa9827cea0ce3d88d Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Wed, 24 Apr 2019 09:52:52 +0200
Subject: [PATCH] gnu: Add hedgewars.

* gnu/packages/games.scm (hedgewars): New variable.
---
 gnu/packages/games.scm | 86 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index da917e2870..435c440d7b 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -6998,3 +6998,89 @@ pursue their favorite interesting flight simulation idea, and last but
 certainly not least as a fun, realistic, and challenging desktop flight
 simulator.")
     (license license:gpl2+)))
+
+(define-public hedgewars
+  (package
+    (name "hedgewars")
+    (version "0.9.25")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.hedgewars.org/download/releases/"
+                                  "hedgewars-src-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "08x7fqpy0hpnbfq2k06g522xayi7s53bca819zfhalvqnqs76pdk"))))
+    (build-system cmake-build-system)
+    (arguments
+     ;; XXX: Engine is built as Pascal source code, requiring Free Pascal
+     ;; Compiler, which we haven't packaged yet.  With the flag below, we use
+     ;; a Pascal to C translator and Clang instead.
+     `(#:configure-flags (list "-DBUILD_ENGINE_C=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-failing-test
+           ;; XXX: Remove single failing test.  Note: it is marked
+           ;; a "non-critical" test.
+           (lambda _
+             (delete-file-recursively "tests/lua_noncritical")
+             #t))
+         (add-after 'unpack 'fix-compiler
+           ;; XXX: Flag BUILD_ENGINE_C, as set above, implies using Clang to
+           ;; compile files.  However, using `clang' globally leads to the
+           ;; error: qtbase-5.11.3/include/qt5/QtCore/qglobal.h:45:12: fatal
+           ;; error: 'type_traits' file not found.
+           ;;
+           ;; Therefore, we make sure to use `c++' everywhere but in the
+           ;; engine.
+           (lambda _
+             (substitute* "project_files/hwc/CMakeLists.txt"
+               (("find_package\\(SDL2_ttf 2 REQUIRED\\)" all)
+                (string-append all "\n"
+                               "set(CMAKE_C_COMPILER ${CLANG_EXECUTABLE})\n"
+                               "set(CMAKE_CXX_COMPILER ${CLANG_EXECUTABLE})")))
+             (substitute* "CMakeLists.txt"
+               (("set\\(CMAKE_C(XX)?_COMPILER" all) (string-append "#" all)))
+             #t))
+         (replace 'check
+           (lambda _
+             (invoke "ctest"))))))
+    (inputs
+     `(("ffmpeg" ,ffmpeg)
+       ("freeglut" ,freeglut)
+       ("ghc-entropy" ,ghc-entropy)
+       ("ghc-hslogger" ,ghc-hslogger)
+       ("ghc-network" ,ghc-network)
+       ("ghc-random" ,ghc-random)
+       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+       ("ghc-sandi" ,ghc-sandi)
+       ("ghc-sha" ,ghc-sha)
+       ("ghc-utf8-string" ,ghc-utf8-string)
+       ("ghc-vector" ,ghc-vector)
+       ("ghc-zlib" ,ghc-zlib)
+       ("glew" ,glew)
+       ("libpng" ,libpng)
+       ("lua" ,lua-5.1)
+       ("physfs" ,physfs)
+       ("qtbase" ,qtbase)
+       ("sdl" ,(sdl-union
+                (list sdl2 sdl2-mixer sdl2-net sdl2-ttf sdl2-image)))))
+    (native-inputs
+     `(("clang" ,clang)
+       ("ghc" ,ghc)
+       ("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)))
+    (home-page "https://hedgewars.org/")
+    (synopsis "Turn-based artillery game featuring fighting hedgehogs")
+    (description
+     "Hedgewars is a turn based strategy, artillery, action and comedy game,
+featuring the antics of pink hedgehogs with attitude as they battle from the
+depths of hell to the depths of space.
+
+As commander, it's your job to assemble your crack team of hedgehog soldiers
+and bring the war to your enemy.")
+    ;; Software as a whole is licensed under GPL-2 terms.  Artwork and
+    ;; scripts are distributed under various terms.
+    (license (list license:gpl2
+                   license:bsd-2 license:bsd-3 license:cc-by3.0 license:cc0
+                   license:expat license:fdl1.3+ license:public-domain
+                   license:zlib))))
-- 
2.21.0


  reply	other threads:[~2019-04-24 16:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24  7:59 [bug#35411] [PATCH] Add hedgewars Nicolas Goaziou
2019-04-24 10:42 ` Ricardo Wurmus
2019-04-24 11:49   ` Nicolas Goaziou
2019-04-24 15:20     ` Ricardo Wurmus
2019-04-24 16:57       ` Nicolas Goaziou [this message]
2019-04-29 12:45 ` bug#35411: " Nicolas Goaziou

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=87o94vqr2j.fsf@nicolasgoaziou.fr \
    --to=mail@nicolasgoaziou.fr \
    --cc=35411@debbugs.gnu.org \
    --cc=rekado@elephly.net \
    /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).