Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 323219 - golly-2.1 (New Package)
Summary: golly-2.1 (New Package)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Michael Weber (RETIRED)
URL: http://golly.sourceforge.net/
Whiteboard:
Keywords: EBUILD
Depends on:
Blocks:
 
Reported: 2010-06-08 17:13 UTC by Maks Verver
Modified: 2010-10-27 07:51 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
The ebuild itself. (golly-2.1.ebuild,1.33 KB, text/plain)
2010-06-08 17:14 UTC, Maks Verver
Details
files/perl-ldopts.patch (perl-ldopts.patch,601 bytes, patch)
2010-06-08 17:14 UTC, Maks Verver
Details | Diff
files/python-amd64.patch (python-amd64.patch,440 bytes, patch)
2010-06-08 17:15 UTC, Maks Verver
Details | Diff
files/separate-data-directory.patch (separate-data-directory.patch,2.32 KB, text/plain)
2010-06-08 17:17 UTC, Maks Verver
Details
patch to compile against Perl with ithread/multiplicity support (golly-2.1-perl-without-multiplicity-1.patch,10.25 KB, patch)
2010-09-23 02:07 UTC, Maks Verver
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Maks Verver 2010-06-08 17:13:57 UTC
Attached is an ebuild for the latest version of Golly (http://golly.sf.net/), a simulator for Conway's Game of Life and some other cellular automata. It includes a graphical application and a command-line (batch execution) tool.

Because it requires building against specific versions of Perl and Python for scripting to work, it's nice to use an ebuild, so portage can manage the dependencies. (The official binary package did not run on my Gentoo box because of incompatible library versions.)

I have no clue which category this should go in. It's not quite a game, not quite a scientific application (though there are scientific publications about some of the implemented algorithms) and not quite an emulator. I've put it into app-misc locally.
Comment 1 Maks Verver 2010-06-08 17:14:33 UTC
Created attachment 234553 [details]
The ebuild itself.
Comment 2 Maks Verver 2010-06-08 17:14:54 UTC
Created attachment 234555 [details, diff]
files/perl-ldopts.patch
Comment 3 Maks Verver 2010-06-08 17:15:55 UTC
Created attachment 234557 [details, diff]
files/python-amd64.patch

This fixes an error in the source code that would prevent loading Python scripts on AMD64 because of symbol naming differences.
Comment 4 Maks Verver 2010-06-08 17:17:10 UTC
Created attachment 234559 [details]
files/separate-data-directory.patch

The default distribution assumes binaries and data files (help files, patterns, rules, scripts, et cetera) are installed in the same directory, but I want to install binaries into /usr/bin and data files into /usr/share/golly. This patch hardcodes the data directory.
Comment 5 Maks Verver 2010-06-08 17:18:33 UTC
For reference: I've tested compiling, running, saving/loading, Perl scripting and Python scripting on AMD64. Everything seems to work correctly.
Comment 6 Michael Weber (RETIRED) gentoo-dev 2010-06-08 17:36:21 UTC
Hello Maks,

would be nice to review it in #gentoo-sunrise on irc.freenode.net.

Thanks,
On behalf of the Gentoo Sunrise Team,
Michael "not a sunrise member yet" Weber.

[1]: http://www.gentoo.org/proj/en/sunrise/
[2]: http://overlays.gentoo.org/proj/sunrise/wiki/SunriseFaq
Comment 7 Maks Verver 2010-06-30 21:59:25 UTC
It's now in the Sunrise overlay:
https://overlays.gentoo.org/proj/sunrise/browser/reviewed/app-misc/golly
Comment 8 Michael Weber (RETIRED) gentoo-dev 2010-09-16 14:21:19 UTC
Hi Maks,

are You shure that perl[ithreads] is needed? Is there a problem without itdreads and how can i reproduce the error? I've just installed it on dev-lang/perl-5.8.8-r8 w/o ithreads and it runs. *wondering*

Michael
Comment 9 Michael Weber (RETIRED) gentoo-dev 2010-09-16 15:52:10 UTC
+*golly-2.1 (16 Sep 2010)
+
+  16 Sep 2010; Michael Weber <xmw@gentoo.org> +golly-2.1.ebuild,
+  +files/golly-2.1-as-needed.patch, +files/golly-2.1-perl-ldopts.patch,
+  +files/golly-2.1-python-amd64.patch,
+  +files/golly-separate-data-directory.patch, +metadata.xml:
+  Initial import from sunrise overlay. Thanks to Maks Verver
+  <maksverver@geocities.com> on bug #323219 for the ebuild and patches,
+  great work.
+
Comment 10 Maks Verver 2010-09-20 21:27:08 UTC
(In reply to comment #8)
> Are you sure that perl[ithreads] is needed? [..] I've just installed it on
> dev-lang/perl-5.8.8-r8 w/o ithreads and it runs.

I only tested with perl 5.10 and 5.12 myself, but the source code doesn't compile with a non-threaded interpreter, because wxPerl.cpp depends on the type perl_key being defined, which is the return type for Perl_Gthr_key_ptr(). Take a look at perlvars.h to see this isn't defined without interpreter threads.

It may well true that Golly runs fine without it, though. A lot of the functions in the Perl bindings are declared but not actually used, and since they are loaded dynamically, as long as the functions aren't actually called nothing breaks (which is probably why all the conditional declarations work). What I don't understand is why these functions are declared at all then. Since I don't fully understand the Perl bindings yet, I'll go ask the original author about it, because I don't fully understand how the Perl bindings work myself.

In the mean time, if you want to discuss this in a more interactive manner, you can probably catch me on #gentoo-sunrise. :-)
Comment 11 Maks Verver 2010-09-23 02:05:47 UTC
It turned out to be slightly more complicated than I'd anticipated, but I managed to update wxperl.cpp to allow compiling against a Perl library without ithreads/multiplicity support. The patch is attached, and is also added to CVS, so if there are no strange side-effects it will be incorporated in the next release.

In the meantime, I'd suggest either adding the patch to the ebuild or adding the perl[ithreads] dependency back in.
Comment 12 Maks Verver 2010-09-23 02:07:30 UTC
Created attachment 248405 [details, diff]
patch to compile against Perl with ithread/multiplicity support
Comment 13 Maks Verver 2010-09-23 02:12:02 UTC
(In reply to comment #12)
> Created an attachment (id=248405) [details]
> patch to compile against Perl with ithread/multiplicity support

Except in the above I mean WITHOUT ithread/multiplicity support of course. Gaah!
Comment 14 Michael Weber (RETIRED) gentoo-dev 2010-09-24 14:34:59 UTC
Ok, let's wait on the new golly release to make perl[ithreads] optional.