gnu: Add ri-li.

* gnu/packages/games.scm (ri-li): New variable.
* gnu/packages/patches/ri-li-modernize_cpp.patch: New file.
* gnu/local.mk (dist_patch_DATA): Reference patch.
This commit is contained in:
Nicolas Goaziou 2019-06-02 01:03:08 +02:00
parent 47f2168b6f
commit 3745909dc9
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D
3 changed files with 462 additions and 0 deletions

View file

@ -1239,6 +1239,7 @@ dist_patch_DATA = \
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
%D%/packages/patches/red-eclipse-remove-gamma-name-hack.patch \
%D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \
%D%/packages/patches/ri-li-modernize_cpp.patch \
%D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.patch \

View file

@ -7385,3 +7385,73 @@ (define-public gnurobots
the game is to stay alive and collect prizes. The robot program conveniently
may be written in a plain text file in the Scheme programming language.")
(license license:gpl3+)))
(define-public ri-li
(package
(name "ri-li")
(version "2.0.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/ri-li/"
"Ri-li%20Linux_Unix/Ri-li%20V" version "/"
"Ri-li-" version ".tar.bz2"))
(sha256
(base32
"1gcdsgnnbbn1mb1hkpwniv3fhkaj1nn8gq33v5c16q3wqchcq77p"))
;; Taken from
;; <https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/rili/moderinze_cpp.patch>.
;; It doesn't build otherwise.
(patches (search-patches "ri-li-modernize_cpp.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; Remove "gentoo" subdirectory from Makefile, as it is
;; missing a make file and generates a build failure.
(add-after 'configure 'fix-build
(lambda _
(substitute* "Makefile"
((" gentoo") ""))
#t))
(add-after 'install 'install-desktop-file
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(apps (string-append out "/share/applications"))
(pixmaps (string-append out "/share/pixmaps")))
(for-each (lambda (f) (install-file f pixmaps))
(find-files "data" "\\.(png|ico)$"))
(mkdir-p apps)
(with-output-to-file (string-append apps "/ri-li.desktop")
(lambda _
(format #t
"[Desktop Entry]~@
Name=Ri-li~@
Exec=~a/bin/Ri_li~@
Icon=~a/Ri-li-icon-32x32.png~@
Categories=Game;ArcadeGame;~@
Keywords=toy;train;wooden;snake-like;engine;~@
Comment=a toy simulator game~@
Comment[de]=Ein Spiel mit einem kleinen Zug~@
Comment[fr]=un jeu de petit train~@
Comment[ro_RO]=un joc cu un tren de jucărie~@
Terminal=false~@
Type=Application~%"
out pixmaps))))
#t))
(add-after 'install-desktop-file 'remove-spurious-files
;; Delete redundant files already installed somewhere else.
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(for-each delete-file
(find-files (string-append out "/share/Ri-li")
"\\.(png|ico)|COPYING"))
#t))))))
(inputs
`(("sdl" ,(sdl-union (list sdl sdl-mixer)))))
(home-page "http://www.ri-li.org")
(synopsis "Toy train simulation game")
(description "Ri-li is a game in which you drive a wooden toy
steam locomotive across many levels and collect all the coaches to
win.")
;; The project is dual-licensed GPL2+ and GPL3+.
(license (list license:gpl2+ license:gpl3+))))

View file

@ -0,0 +1,391 @@
diff -r -u Ri-li-2.0.1.orig/src/audio.cc Ri-li-2.0.1/src/audio.cc
--- Ri-li-2.0.1.orig/src/audio.cc 2012-01-22 00:40:56.928609371 -0800
+++ Ri-li-2.0.1/src/audio.cc 2012-01-22 00:28:33.360636539 -0800
@@ -22,8 +22,8 @@
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#include <stdlib.h>
-#include <iostream.h>
-#include <string.h>
+#include <iostream>
+#include <string>
#include "audio.h"
#include "utils.h"
@@ -57,7 +57,7 @@
char PathFile[512];
if(Mix_OpenAudio(22050,AUDIO_S16,1,1024)) {
- cerr <<"Enable to init Sound card ! "<<SDL_GetError()<<endl;
+ std::cerr <<"Enable to init Sound card ! "<<SDL_GetError()<<std::endl;
return false;
}
diff -r -u Ri-li-2.0.1.orig/src/ecran.cc Ri-li-2.0.1/src/ecran.cc
--- Ri-li-2.0.1.orig/src/ecran.cc 2007-11-02 04:48:16.000000000 -0700
+++ Ri-li-2.0.1/src/ecran.cc 2012-01-22 00:13:54.422798653 -0800
@@ -21,7 +21,7 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
diff -r -u Ri-li-2.0.1.orig/src/editeur.cc Ri-li-2.0.1/src/editeur.cc
--- Ri-li-2.0.1.orig/src/editeur.cc 2007-11-02 04:48:17.000000000 -0700
+++ Ri-li-2.0.1/src/editeur.cc 2012-01-22 00:28:59.632635579 -0800
@@ -25,10 +25,10 @@
#include <windows.h>
#endif
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#include <math.h>
#include <SDL/SDL.h>
@@ -374,7 +374,7 @@
// Sauve le niveau
if(Niveau.Save()==false) {
- cerr <<"ERREUR Saving levels!"<<endl;
+ std::cerr <<"ERREUR Saving levels!"<<std::endl;
exit(-1);
}
diff -r -u Ri-li-2.0.1.orig/src/jeux.cc Ri-li-2.0.1/src/jeux.cc
--- Ri-li-2.0.1.orig/src/jeux.cc 2007-11-02 04:48:17.000000000 -0700
+++ Ri-li-2.0.1/src/jeux.cc 2012-01-22 00:14:08.422798143 -0800
@@ -25,10 +25,10 @@
#include <windows.h>
#endif
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#include <math.h>
#include <SDL/SDL.h>
diff -r -u Ri-li-2.0.1.orig/src/loco.cc Ri-li-2.0.1/src/loco.cc
--- Ri-li-2.0.1.orig/src/loco.cc 2007-11-02 04:48:18.000000000 -0700
+++ Ri-li-2.0.1/src/loco.cc 2012-01-22 00:14:17.878797797 -0800
@@ -21,10 +21,10 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#include <math.h>
#include "preference.h"
#include "loco.h"
diff -r -u Ri-li-2.0.1.orig/src/main.cc Ri-li-2.0.1/src/main.cc
--- Ri-li-2.0.1.orig/src/main.cc 2007-11-02 04:48:19.000000000 -0700
+++ Ri-li-2.0.1/src/main.cc 2012-01-22 00:29:40.080634136 -0800
@@ -23,8 +23,8 @@
#include <stdio.h>
#include <stdlib.h>
-#include <iostream.h>
-#include <string.h>
+#include <iostream>
+#include <string>
#include <SDL/SDL.h>
#include <SDL/SDL_mixer.h>
@@ -115,7 +115,7 @@
// Initilise SDL
if( SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_AUDIO|SDL_INIT_NOPARACHUTE) < 0 ) {
- cerr <<"Impossible d'initialiser SDL:"<<SDL_GetError()<<endl;
+ std::cerr <<"Impossible d'initialiser SDL:"<<SDL_GetError()<<std::endl;
exit(-1);
}
// Ferme le programme correctement quant quit
@@ -125,7 +125,7 @@
sdlVideoInfo=(SDL_VideoInfo*)SDL_GetVideoInfo();
if(sdlVideoInfo->vfmt->BitsPerPixel==8) {
- cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<endl;
+ std::cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<std::endl;
exit(-1);
}
@@ -145,7 +145,7 @@
sdlVideo=SDL_SetVideoMode(800,600,sdlVideoInfo->vfmt->BitsPerPixel,vOption);
if(sdlVideo==NULL) {
- cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<endl;
+ std::cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<std::endl;
exit(-1);
}
// Change le nom de la fenetre
diff -r -u Ri-li-2.0.1.orig/src/menu.cc Ri-li-2.0.1/src/menu.cc
--- Ri-li-2.0.1.orig/src/menu.cc 2007-11-02 04:48:19.000000000 -0700
+++ Ri-li-2.0.1/src/menu.cc 2012-01-22 00:30:04.752633198 -0800
@@ -21,10 +21,10 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#include "preference.h"
#include "menu.h"
#include "sprite.h"
@@ -92,7 +92,7 @@
// Teste la resolution video
sdlVideoInfo=(SDL_VideoInfo*)SDL_GetVideoInfo();
if(sdlVideoInfo->vfmt->BitsPerPixel==8) {
- cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<endl;
+ std::cerr <<"Impossible d'utiliser 8bits pour la vidéo !"<<std::endl;
exit(-1);
}
@@ -112,7 +112,7 @@
if(Pref.FullScreen) vOption|=SDL_FULLSCREEN;
sdlVideo=SDL_SetVideoMode(800,600,sdlVideoInfo->vfmt->BitsPerPixel,vOption);
if(sdlVideo==NULL) {
- cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<endl;
+ std::cerr <<"Impossible de passer dans le mode vidéo 800x600 !"<<std::endl;
exit(-1);
}
diff -r -u Ri-li-2.0.1.orig/src/mouse.cc Ri-li-2.0.1/src/mouse.cc
--- Ri-li-2.0.1.orig/src/mouse.cc 2007-11-02 04:48:20.000000000 -0700
+++ Ri-li-2.0.1/src/mouse.cc 2012-01-22 00:14:36.438797120 -0800
@@ -21,7 +21,7 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include "mouse.h"
#include "preference.h"
diff -r -u Ri-li-2.0.1.orig/src/sprite.cc Ri-li-2.0.1/src/sprite.cc
--- Ri-li-2.0.1.orig/src/sprite.cc 2007-11-02 04:48:20.000000000 -0700
+++ Ri-li-2.0.1/src/sprite.cc 2012-01-22 00:30:43.640631779 -0800
@@ -21,10 +21,10 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#include <math.h>
#include "sprite.h"
#include "preference.h"
@@ -84,7 +84,7 @@
strcpy(PathFile,Langue[Pref.Langue]);
GetPath(PathFile);
if(FileExiste(PathFile)==false) {
- cerr <<"Impossible de trouver "<<Langue[Pref.Langue]<<endl;
+ std::cerr <<"Impossible de trouver "<<Langue[Pref.Langue]<<std::endl;
return false;
}
L=ChargeFichier(PathFile,Buf);
@@ -128,7 +128,7 @@
// *** Charge le fichier des langues ***
// *************************************
if(FileExiste(PathFile)==false) {
- cerr <<"Impossible de trouver 'language.dat'"<<endl;
+ std::cerr <<"Impossible de trouver 'language.dat'"<<std::endl;
return false;
}
L=ChargeFichier(PathFile,Buf);
@@ -163,7 +163,7 @@
strcpy(PathFile,"sprites.dat");
GetPath(PathFile);
if(FileExiste(PathFile)==false) {
- cerr <<"Impossible de trouver 'sprites.dat'"<<endl;
+ std::cerr <<"Impossible de trouver 'sprites.dat'"<<std::endl;
return false;
}
L=ChargeFichier(PathFile,Buf);
@@ -352,7 +352,7 @@
Image[i]=SDL_CreateRGBSurface((Dim[i].bpp-3)*SDL_SRCALPHA,Dim[i].L,Dim[i].H,Dim[i].bpp*8,
0xff,0xff00,0xff0000,0xff000000*(Dim[i].bpp-3));
if(Image[i]<=NULL) {
- cerr <<"Impossible de créer une Surface SDL!"<<endl;
+ std::cerr <<"Impossible de créer une Surface SDL!"<<std::endl;
return false;
}
@@ -486,7 +486,7 @@
Image[0]=SDL_CreateRGBSurface((Dim[0].bpp-3)*SDL_SRCALPHA,Dim[0].L,Dim[0].H,Dim[0].bpp*8,
0xff,0xff00,0xff0000,0xff000000*(Dim[0].bpp-3));
if(Image[0]<=NULL) {
- cerr <<"Impossible de créer une Surface SDL!"<<endl;
+ std::cerr <<"Impossible de créer une Surface SDL!"<<std::endl;
return false;
}
return true;
diff -r -u Ri-li-2.0.1.orig/src/tableau.cc Ri-li-2.0.1/src/tableau.cc
--- Ri-li-2.0.1.orig/src/tableau.cc 2007-11-02 04:48:21.000000000 -0700
+++ Ri-li-2.0.1/src/tableau.cc 2012-01-22 00:14:50.710796598 -0800
@@ -21,7 +21,7 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include "preference.h"
diff -r -u Ri-li-2.0.1.orig/src/utils.cc Ri-li-2.0.1/src/utils.cc
--- Ri-li-2.0.1.orig/src/utils.cc 2007-11-02 04:48:22.000000000 -0700
+++ Ri-li-2.0.1/src/utils.cc 2012-01-22 00:31:30.944630051 -0800
@@ -21,10 +21,10 @@
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#include <iostream.h>
+#include <iostream>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <string>
#ifdef WINDOWS
#include <windows.h>
@@ -77,7 +77,7 @@
file=fopen(Path,"r");
if(!file) {
- cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<std::endl;
perror("fopen");
return -1;
}
@@ -93,7 +93,7 @@
Buf=new unsigned char [L+1];
if(Buf==NULL) {
- cerr <<"ERREUR: Memoire insuffisante!"<<endl;
+ std::cerr <<"ERREUR: Memoire insuffisante!"<<std::endl;
fclose(file);
return -1;
}
@@ -104,7 +104,7 @@
while(Compt>1024) {
AfficheChargeur();
if( fread(Po,1,1024,file) != 1024 ) {
- cerr <<"ERREUR de lecture du fichier '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR de lecture du fichier '"<<Path<<"'"<<std::endl;
perror("fread");
fclose(file);
delete [] Buf;
@@ -131,13 +131,13 @@
file=_lopen(Path,OF_READ);
if(file==-1) {
- cerr <<"Impossible d'ouvrir "<<Path<<endl;
+ std::cerr <<"Impossible d'ouvrir "<<Path<<std::endl;
exit(-1);
}
long L=(long)_llseek(file,0,SEEK_END);
if(L==-1) {
- cerr <<"Impossible de trouver la longueur du fichier"<<endl;
+ std::cerr <<"Impossible de trouver la longueur du fichier"<<std::endl;
perror("lseek");
_lclose(file);
return -1;
@@ -146,7 +146,7 @@
Buf=new unsigned char [L+1];
if(Buf==NULL) {
- cerr <<"ERREUR: Memoire insuffisante!"<<endl;
+ std::cerr <<"ERREUR: Memoire insuffisante!"<<std::endl;
_lclose(file);
return -1;
}
@@ -169,14 +169,14 @@
file=fopen(Path,"w");
if(!file) {
- cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR: Impossible d'ouvrir '"<<Path<<"'"<<std::endl;
perror("fopen");
return false;
}
while(L>512) {
if( fwrite(Buf,1,512,file) != 512 ) {
- cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<std::endl;
perror("fwrite");
fclose(file);
return false;
@@ -187,7 +187,7 @@
if(L>0) {
if( fwrite(Buf,1,(size_t)L,file) != (size_t)L ) {
- cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR d'ecriture du fichier '"<<Path<<"'"<<std::endl;
perror("fwrite");
fclose(file);
return false;
@@ -208,7 +208,7 @@
file=_lcreat(Path,0);
if(!file) {
- cerr <<"ERREUR: Impossible de créer le fichier '"<<Path<<"'"<<endl;
+ std::cerr <<"ERREUR: Impossible de créer le fichier '"<<Path<<"'"<<std::endl;
return false;
}
@@ -216,7 +216,7 @@
_lclose(file);
if(Lec!=L) {
- cerr <<"Problème d'ecriture du fichier '"<<Path<<"' ecris="<<Lec<<" au lieux de ="<<L<<endl;
+ std::cerr <<"Problème d'ecriture du fichier '"<<Path<<"' ecris="<<Lec<<" au lieux de ="<<L<<std::endl;
return false;
}
@@ -250,7 +250,7 @@
sprintf(Path,"/usr/share/games/Ri-li/%s",Provi);
if(FileExiste(Path)) return;
- cerr <<"Impossible de trouver le fichier '"<<Provi<<endl;
+ std::cerr <<"Impossible de trouver le fichier '"<<Provi<<std::endl;
exit(-1);
}
#endif
@@ -266,7 +266,7 @@
sprintf(Path,"PROGDIR:%s",Provi);
if(FileExiste(Path)) return;
- cerr <<"Impossible de trouver le fichier '"<<Path<<endl;
+ std::cerr <<"Impossible de trouver le fichier '"<<Path<<std::endl;
exit(-1);
}
#endif
@@ -282,7 +282,7 @@
sprintf(Path,"Ri-li.app/Contents/Resources/%s",Provi);
if(FileExiste(Path)) return;
- cerr <<"Impossible de trouver le fichier '"<<Path<<endl;
+ std::cerr <<"Impossible de trouver le fichier '"<<Path<<std::endl;
exit(-1);
}
#endif