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 @@ full of enemies that can hurt it, obstacles and food to be eaten. The goal of
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