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 ;;; Copyright © 2014, 2015 David Thompson -;;; Copyright © 2014, 2015 Eric Bavier +;;; Copyright © 2014, 2015, 2016 Eric Bavier ;;; Copyright © 2014 Cyrill Schenkel ;;; Copyright © 2014 Sylvain Beucler ;;; Copyright © 2014, 2015 Ludovic Courtès @@ -1853,3 +1853,41 @@ (define-public emulation-station 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"< +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 ++ + 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 ++ + 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 ++ + 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 +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)