[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: CaveExpress, CavePacker and more updates



2016-07-04 19:23 GMT+02:00 Markus Koschany <apo@debian.org>:
> Hi all,
>
> I have packaged CaveExpress and CavePacker for Debian. Both are
> available in unstable now. [1]
>
> CaveExpress is a remake of the Amiga classic Ugh! [2] from the early
> 80ies whereas CavePacker is a Sokoban-like game. Both games share the
> same engine. There is even a third game in the pipeline for this engine,
> miniracer, but it is not finished yet. An interesting aspect of
> CaveExpress is that it is one of two games in the archive which use the
> Box2D physics engine. (numptyphysics being the other one)

Hi Markus,

Nice work!

I had looked at packaging CaveExpress and CavePacker for Mageia at
some time, but back then upstream used a dev version of SDL 2.0.4 (yet
unreleased) so I gave up. Later I tried again and had some issues with
the buildsystem that I did not feel like fighting.
Now, since you have done all the packaging work for Debian, I started
looking into it again.

I've pushed a couple patches upstream:
- https://github.com/mgerhardy/caveexpress/pull/93 (obsoletes your
man-page-spelling.patch)
- https://github.com/mgerhardy/caveexpress/pull/94 (fixes detecting
the system-wide glm)
- https://github.com/mgerhardy/caveexpress/pull/95 (fixes the CMake
issue you addressed in build.patch)

I think that some of your patches could benefit from being integrated
directly upstream:
- dataDir.patch: As I understand it allows to define
`PKGDATADIR=/usr/share/games` for all 2 (or 3) games without having to
recompile the whole engine to use
`PKGDATADIR=/usr/share/games/$gamename` for all of them. I guess
upstream might accept doing the necessary changes for us based on your
patch (probably not by merging the patch directly, as it would break
his current intended design, but adding a conditional behaviour should
be trivial).
- desktop-file.patch: Had a look at implementing this properly for a
pull request, but it's not that trivial. The systems tries to be too
clever IMO. As it currently fills the `Description` tag of the desktop
file with a 3 lines long description from ABOUT.en (e.g. [3]), it's a
bit broken by design anyway. It would be good to open an issue
upstream and start discussing this to find the best alternative.

I haven't finished my own package yet due to underlinking issues [4]
so I can't confirm it directly, but it looks to me that your patches
to use system-wide libraries are likely uneeded, as upstream provides
a (once again, IMO a bit too industrious) mechanism to detect system
libraries before reverting to embedded ones when not found. The main
issue with this system is that it relies on the CMakeLists.txt in the
various `src/libs/*`, and upstream seems to be wanting to move even
more detection stuff there, so `src/libs` can't be just `rm -rf`-ed.
That's also a topic that would be worth discussing with upstream
directly.

Hope this helps :)

Cheers,

Rémi Verschelde / Akien

> [1] https://tracker.debian.org/pkg/caveexpress
> [2] https://en.wikipedia.org/wiki/Ugh!

[3] https://github.com/mgerhardy/caveexpress/blob/master/docs/caveexpress/ABOUT.en
[4] https://github.com/mgerhardy/caveexpress/issues/96


Reply to: