Subject: Re: [bug#35411] [PATCH] Add hedgewars

From: Ricardo Wurmus <[email-masked]>
Date: Wed, 24 Apr 2019 17:20:45 +0200

Hi Nicolas,

>> What is this Pascal to C translator?  Does this mean that we’re using
>> generated C files here?
>
> It is a Haskell program, named pas2c, bundled with hedgewars. See
> <https://hg.hedgewars.org/hedgewars/file/tip/tools/pas2c>. AFAIU, it
> turns ".pas" files into ".c", and the build process compiles those. IOW,
> it looks good enough.

Oh neat, this is great!

Let me go through the rest of the patch:

> +(define-public hedgewars
> +  (package
> +    (name "hedgewars")
> +    (version "0.9.25")
> +    (source (origin
> +              (method hg-fetch)
> +              (uri (hg-reference
> +                    (url "https://hg.hedgewars.org/hedgewars/")
> +                    (changeset (string-append version "-release"))))

Is there no release tarball?

[…]

> +         (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?

> +         (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?

> +    (inputs
> +     `(("clang" ,clang)

Is this not actually a native input?

> +       ("ffmpeg" ,ffmpeg)
> +       ("freeglut" ,freeglut)
> +       ("ghc" ,ghc)

I think this also might be a native input.

> +    (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.

> +     "Each player controls a team of several hedgehogs.  During the course of
> +the game, players take turns with one of their hedgehogs.  They then use
> +whatever tools and weapons are available to attack and kill the opponents'
> +hedgehogs, thereby winning the game.
> +
> +Hedgehogs may move around the terrain in a variety of ways, normally by
> +walking and jumping but also by using particular tools such as the ``Rope'' or
> +``Parachute'', to move to otherwise inaccessible areas.  Each turn is
> +time-limited to ensure that players do not hold up the game with excessive
> +thinking or moving.  A large variety of tools and weapons are available for
> +players during the game: Grenade, Cluster Bomb, Bazooka, UFO, Homing Bee,
> +Shotgun, Desert Eagle, Fire Punch, Baseball Bat, Dynamite, Mine, Rope,
> +Pneumatic pick, Parachute.  Most weapons, when used, cause explosions that
> +deform the terrain, removing circular chunks.
> +
> +The landscape is an island floating on a body of water, or a restricted cave
> +with water at the bottom.  A hedgehog dies when it enters the water (either by
> +falling off the island, or through a hole in the bottom of it), it is thrown
> +off either side of the arena or when its health is reduced, typically from
> +contact with explosions, to zero (the damage dealt to the attacked hedgehog or
> +hedgehogs after a player's or CPU turn is shown only when all movement on the
> +battlefield has ceased).")

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?

Thanks for packaging it!

--
Ricardo