aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorEric Bavier <bavier@member.fsf.org>2016-01-31 23:22:38 -0600
committerEric Bavier <bavier@member.fsf.org>2016-01-31 23:46:30 -0600
commite3f755f44c257093c26eab1e7f839808edd57973 (patch)
treef33aa3f3b7bc17f0e80b33c66a9a69993ee0d391 /gnu/packages
parent917708c276b0583a60b34084e1bb23219b1272bf (diff)
downloadguix-e3f755f44c257093c26eab1e7f839808edd57973.tar
guix-e3f755f44c257093c26eab1e7f839808edd57973.tar.gz
gnu: Add pinball.
* gnu/packages/games.scm (pinball): New variable. * 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: New patches. * gnu-system.am (dist_patch_DATA): Add them.
Diffstat (limited to 'gnu/packages')
-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
6 files changed, 231 insertions, 1 deletions
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)