summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am5
-rw-r--r--gnu/packages/games.scm40
-rw-r--r--gnu/packages/patches/pinball-const-fix.patch11
-rw-r--r--gnu/packages/patches/pinball-cstddef.patch38
-rw-r--r--gnu/packages/patches/pinball-missing-separators.patch101
-rw-r--r--gnu/packages/patches/pinball-src-deps.patch24
-rw-r--r--gnu/packages/patches/pinball-system-ltdl.patch18
7 files changed, 236 insertions, 1 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 5916d81668..f91e66f0d5 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -655,6 +655,11 @@ dist_patch_DATA =						\
   gnu/packages/patches/perl-module-pluggable-search.patch	\
   gnu/packages/patches/perl-source-date-epoch.patch		\
   gnu/packages/patches/pidgin-add-search-path.patch		\
+  gnu/packages/patches/pinball-const-fix.patch			\
+  gnu/packages/patches/pinball-cstddef.patch			\
+  gnu/packages/patches/pinball-missing-separators.patch		\
+  gnu/packages/patches/pinball-src-deps.patch			\
+  gnu/packages/patches/pinball-system-ltdl.patch		\
   gnu/packages/patches/pingus-sdl-libs-config.patch		\
   gnu/packages/patches/plink-1.07-unclobber-i.patch		\
   gnu/packages/patches/plotutils-libpng-jmpbuf.patch		\
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3fcda40ba4..7eb0e7a630 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu>
-;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
 ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
@@ -1853,3 +1853,41 @@ usable with any game controller that has at least 4 buttons, theming support,
 and a game metadata scraper.")
     (home-page "http://www.emulationstation.org")
     (license license:expat)))
+
+(define-public pinball
+  (package
+    (name "pinball")
+    (version "0.3.1")
+    (source
+     (origin (method url-fetch)
+             (uri (string-append "mirror://sourceforge/pinball/pinball/"
+                                 "pinball-" version "/"
+                                 "pinball-" version ".tar.gz"))
+             (sha256
+              (base32
+               "1f2whlrfidwfh8lvr8cspcyirc6840r5d1ajm7x99qmngygrhixs"))
+             (patches (map search-patch
+                           '("pinball-const-fix.patch"
+                             "pinball-cstddef.patch"
+                             "pinball-missing-separators.patch"
+                             "pinball-src-deps.patch"
+                             "pinball-system-ltdl.patch")))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("glu" ,glu)
+       ("mesa" ,mesa)
+       ("sdl" ,sdl)
+       ("sdl-image" ,sdl-image)
+       ("sdl-mixer" ,sdl-mixer)))
+    (arguments
+     '(#:configure-flags
+       (list (string-append "CPPFLAGS=-I"
+                            (assoc-ref %build-inputs "sdl-image")
+                            "/include/SDL -I"
+                            (assoc-ref %build-inputs "sdl-mixer")
+                            "/include/SDL"))))
+    (home-page "http://pinball.sourceforge.net")
+    (synopsis "Pinball simulator")
+    (description "The Emilia Pinball Project is a pinball simulator.  There
+are only two levels to play with, but they are very addictive.")
+    (license license:gpl2)))
diff --git a/gnu/packages/patches/pinball-const-fix.patch b/gnu/packages/patches/pinball-const-fix.patch
new file mode 100644
index 0000000000..6d7b75dd48
--- /dev/null
+++ b/gnu/packages/patches/pinball-const-fix.patch
@@ -0,0 +1,11 @@
+--- pinball-0.3.1/base/Config.cpp	2009-10-13 18:33:38.000000000 +0200
++++ pinball-0.3.1/base/Config.cpp	2009-10-13 18:37:12.000000000 +0200
+@@ -416,7 +416,7 @@
+   m_sDataDir = string(EM_DATADIR) + "/";
+   m_sExeDir = "./";
+   if ( *( m_sDataDir.c_str() ) != '/' ) {
+-    char* ptr=0; 
++    const char* ptr=0;
+     char* ptrw = 0;
+     //cout<<"relative to exe file"<<endl;
+     ptr = (strrchr(argv0,'/')); // unix /cygwin / check win32 
diff --git a/gnu/packages/patches/pinball-cstddef.patch b/gnu/packages/patches/pinball-cstddef.patch
new file mode 100644
index 0000000000..e43a132d84
--- /dev/null
+++ b/gnu/packages/patches/pinball-cstddef.patch
@@ -0,0 +1,38 @@
+Description: Add missing inlcudes of cstddef, fixing FTBFS13.1
+Author: Regis Boudin <regis@debian.org>
+Bug-Debian: http://bugs.debian.org/624953
+Bug-Debian: http://bugs.debian.org/640726
+
+--- pinball-0.3.1/base/Behavior.cpp
++++ pinball-0.3.1/base/Behavior.cpp
+@@ -10,6 +10,8 @@
+ #include "Behavior.h"
+ #include "Group.h"
+ 
++#include <cstddef>
++
+ Behavior::Behavior() {
+ 	//EM_COUT("Behavior::Behavior", 1);
+ 	p_Light = NULL;
+--- pinball-0.3.1/base/SignalSender.cpp
++++ pinball-0.3.1/base/SignalSender.cpp
+@@ -12,6 +12,8 @@
+ #include "Group.h"
+ #include "Behavior.h"
+ 
++#include <cstddef>
++
+ SignalSender * SignalSender::p_SignalSender = NULL;
+ 
+ SignalSender::SignalSender() {
+--- pinball-0.3.1/base/BehaviorVisitor.cpp
++++ pinball-0.3.1/base/BehaviorVisitor.cpp
+@@ -10,6 +10,8 @@
+ #include "Behavior.h"
+ #include "Group.h"
+ 
++#include <cstddef>
++
+ BehaviorVisitor * BehaviorVisitor::p_BehaviorVisitor = NULL;
+ 
+ BehaviorVisitor::BehaviorVisitor() {
diff --git a/gnu/packages/patches/pinball-missing-separators.patch b/gnu/packages/patches/pinball-missing-separators.patch
new file mode 100644
index 0000000000..eb00314a3d
--- /dev/null
+++ b/gnu/packages/patches/pinball-missing-separators.patch
@@ -0,0 +1,101 @@
+From: Markus Koschany <apo@gambaru.de>
+Date: Sun, 3 Aug 2014 22:50:46 +0200
+Subject: missing separators
+
+Bug: https://bugs.debian.org/750082
+
+---
+ src/Makefile.am  | 14 +++++++-------
+ src/Makefile.in  | 14 +++++++-------
+ test/Makefile.am |  2 +-
+ test/Makefile.in |  2 +-
+ 4 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index fbd7e8f..96768d3 100755
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -29,7 +29,7 @@ Script.cpp \
+ StateBehavior.cpp \
+ Table.cpp
+ 
+-dnl libemilia_pin_la_SOURCES = $(libemilia_pin_a_SOURCES)
++# libemilia_pin_la_SOURCES = $(libemilia_pin_a_SOURCES)
+ 
+ pininclude_HEADERS = \
+ ArmBehavior.h \
+@@ -56,10 +56,10 @@ Table.h
+ # libemilia_pin.a libemilia_addon.a  libemilia_base.a libltdlc.a
+ wpinball.exe:  ${pinball_OBJECTS} ${pinball_DEPENDENCIES}
+ 	${GCCLOCALDIR}g++ -g -W -Wall -O2 -o$@ $^ \
+- -lSDL_mixer -lvorbisfile -lvorbis -logg -lsmpeg \
+- -lSDL_image -lSDLmain -lSDL \
+- -lglu32 -lopengl32 -ljpeg -lpng  \
+- -lwinmm -luser32 -lgdi32 -ldxguid   \
+- -lmingw32 -lSDLmain -lSDL  -mwindows \
+- -L${GCCLOCALDIR}../lib
++	-lSDL_mixer -lvorbisfile -lvorbis -logg -lsmpeg \
++	-lSDL_image -lSDLmain -lSDL \
++	-lglu32 -lopengl32 -ljpeg -lpng \
++	-lwinmm -luser32 -lgdi32 -ldxguid \
++	-lmingw32 -lSDLmain -lSDL  -mwindows \
++	-L${GCCLOCALDIR}../lib
+ # !-rzr : # have to solve it later # -lstdc++
+diff --git a/src/Makefile.in b/src/Makefile.in
+index ea7651b..8e95cd6 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -505,7 +505,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
+ 	uninstall-pinincludeHEADERS uninstall-pinlibLIBRARIES
+ 
+ 
+-dnl libemilia_pin_la_SOURCES = $(libemilia_pin_a_SOURCES)
++	dnl libemilia_pin_la_SOURCES = $(libemilia_pin_a_SOURCES)
+ 
+ # !+rzr : This trick workaround a bad generated rule (under Linux mingw32)
+ # src/ litool returns:  -L/usr/local//lib /usr/lib/libjpeg.so
+@@ -514,12 +514,12 @@ dnl libemilia_pin_la_SOURCES = $(libemilia_pin_a_SOURCES)
+ # libemilia_pin.a libemilia_addon.a  libemilia_base.a libltdlc.a
+ wpinball.exe:  ${pinball_OBJECTS} ${pinball_DEPENDENCIES}
+ 	${GCCLOCALDIR}g++ -g -W -Wall -O2 -o$@ $^ \
+- -lSDL_mixer -lvorbisfile -lvorbis -logg -lsmpeg \
+- -lSDL_image -lSDLmain -lSDL \
+- -lglu32 -lopengl32 -ljpeg -lpng  \
+- -lwinmm -luser32 -lgdi32 -ldxguid   \
+- -lmingw32 -lSDLmain -lSDL  -mwindows \
+- -L${GCCLOCALDIR}../lib
++	-lSDL_mixer -lvorbisfile -lvorbis -logg -lsmpeg \
++	-lSDL_image -lSDLmain -lSDL \
++	-lglu32 -lopengl32 -ljpeg -lpng \
++	-lwinmm -luser32 -lgdi32 -ldxguid \
++	-lmingw32 -lSDLmain -lSDL  -mwindows \
++	-L${GCCLOCALDIR}../lib
+ # !-rzr : # have to solve it later # -lstdc++
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+diff --git a/test/Makefile.am b/test/Makefile.am
+index d87cf34..ea3ffc9 100755
+--- a/test/Makefile.am
++++ b/test/Makefile.am
+@@ -4,7 +4,7 @@ testlibdir = $(EM_LIBDIR)
+ testdatadir = $(pkgdatadir)
+ 
+ noinst_PROGRAMS = scale simple light texture load explode collision signal billboard font thread menu joy sound trans math misc varray unittest
+-dnl noinst_PROGRAMS = unittest
++# noinst_PROGRAMS = unittest
+ 
+ INCLUDES = -I../base -I../addon -I../src @INCLTDL@
+ LDADD = ../src/libemilia_pin.a ../addon/libemilia_addon.a ../base/libemilia_base.a @LIBLTDL@
+diff --git a/test/Makefile.in b/test/Makefile.in
+index 6ba2646..47654dc 100644
+--- a/test/Makefile.in
++++ b/test/Makefile.in
+@@ -621,7 +621,7 @@ uninstall-am: uninstall-info-am uninstall-testlibLTLIBRARIES
+ 	mostlyclean-generic mostlyclean-libtool tags uninstall \
+ 	uninstall-am uninstall-info-am uninstall-testlibLTLIBRARIES
+ 
+-dnl noinst_PROGRAMS = unittest
++# noinst_PROGRAMS = unittest
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff --git a/gnu/packages/patches/pinball-src-deps.patch b/gnu/packages/patches/pinball-src-deps.patch
new file mode 100644
index 0000000000..3ab806bae9
--- /dev/null
+++ b/gnu/packages/patches/pinball-src-deps.patch
@@ -0,0 +1,24 @@
+Fixes error during make:
+
+"No rule to make target '../src/libemilia_pin.a', needed by 'pinball'.  Stop."
+
+--- pinball-0.3.1/src/Makefile.in	2003-12-10 05:34:47.000000000 -0600
++++ pinball-0.3.1/src/Makefile.in	2016-01-31 22:29:13.134519889 -0600
+@@ -116,7 +116,7 @@
+ 
+ INCLUDES = -I../base -I../addon @INCLTDL@
+ 
+-pinball_LDADD = ../src/libemilia_pin.a ../addon/libemilia_addon.a ../base/libemilia_base.a @LIBLTDL@
++pinball_LDADD = libemilia_pin.a ../addon/libemilia_addon.a ../base/libemilia_base.a @LIBLTDL@
+ pinball_LDFLAGS = -export-dynamic
+ 
+ pinball_SOURCES = Pinball.cpp
+@@ -174,7 +174,7 @@
+ 
+ am_pinball_OBJECTS = Pinball.$(OBJEXT)
+ pinball_OBJECTS = $(am_pinball_OBJECTS)
+-pinball_DEPENDENCIES = ../src/libemilia_pin.a ../addon/libemilia_addon.a \
++pinball_DEPENDENCIES = libemilia_pin.a ../addon/libemilia_addon.a \
+ 	../base/libemilia_base.a
+ 
+ DEFS = @DEFS@
diff --git a/gnu/packages/patches/pinball-system-ltdl.patch b/gnu/packages/patches/pinball-system-ltdl.patch
new file mode 100644
index 0000000000..0495880940
--- /dev/null
+++ b/gnu/packages/patches/pinball-system-ltdl.patch
@@ -0,0 +1,18 @@
+--- pinball-0.3.1/configure.ac	2010-01-14 17:26:25.000000000 +0100
++++ pinball-0.3.1/configure.ac	2010-01-14 17:26:25.000000000 +0100
+@@ -22,14 +22,12 @@
+ [  --with-cxxflags=CXXFLAGS        use CXXFLAGS as compile time arguments.],
+     [CXXFLAGS=$with_cxxflags; export CXXFLAGS])
+ 
+-AC_CONFIG_SUBDIRS(libltdl)
+-
+ dnl Checks for programs.
+ AC_PROG_CC
+ AC_PROG_CXX
+ AC_PROG_INSTALL
+ AC_LIBTOOL_DLOPEN
+-AC_LIBLTDL_CONVENIENCE
++LTDL_INIT
+ AC_PROG_LIBTOOL
+ 
+ AC_SUBST(INCLTDL)