~ruther/guix-local

e3f755f44c257093c26eab1e7f839808edd57973 — Eric Bavier 10 years ago 917708c
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.
M gnu-system.am => gnu-system.am +5 -0
@@ 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		\

M gnu/packages/games.scm => gnu/packages/games.scm +39 -1
@@ 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)))

A gnu/packages/patches/pinball-const-fix.patch => gnu/packages/patches/pinball-const-fix.patch +11 -0
@@ 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 

A gnu/packages/patches/pinball-cstddef.patch => gnu/packages/patches/pinball-cstddef.patch +38 -0
@@ 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() {

A gnu/packages/patches/pinball-missing-separators.patch => gnu/packages/patches/pinball-missing-separators.patch +101 -0
@@ 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:

A gnu/packages/patches/pinball-src-deps.patch => gnu/packages/patches/pinball-src-deps.patch +24 -0
@@ 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@

A gnu/packages/patches/pinball-system-ltdl.patch => gnu/packages/patches/pinball-system-ltdl.patch +18 -0
@@ 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)