mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: Add torcs.
* gnu/packages/games.scm (torcs): New variable. Change-Id: I1e55fc65ff303c309fed50f2071de0eaf4266d57
This commit is contained in:
parent
f0c27b2fa8
commit
40625c213a
5 changed files with 180 additions and 0 deletions
|
@ -2236,6 +2236,9 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/tla2tools-build-xml.patch \
|
%D%/packages/patches/tla2tools-build-xml.patch \
|
||||||
%D%/packages/patches/tlf-support-hamlib-4.2+.patch \
|
%D%/packages/patches/tlf-support-hamlib-4.2+.patch \
|
||||||
%D%/packages/patches/tofi-32bit-compat.patch \
|
%D%/packages/patches/tofi-32bit-compat.patch \
|
||||||
|
%D%/packages/patches/torcs-glibc-default-source.patch \
|
||||||
|
%D%/packages/patches/torcs-isnan.patch \
|
||||||
|
%D%/packages/patches/torcs-nullptr.patch \
|
||||||
%D%/packages/patches/tpetra-remove-duplicate-using.patch \
|
%D%/packages/patches/tpetra-remove-duplicate-using.patch \
|
||||||
%D%/packages/patches/transcode-ffmpeg.patch \
|
%D%/packages/patches/transcode-ffmpeg.patch \
|
||||||
%D%/packages/patches/transmission-4.0.6-fix-build.patch \
|
%D%/packages/patches/transmission-4.0.6-fix-build.patch \
|
||||||
|
|
|
@ -7797,6 +7797,129 @@ challenging battles, and developing characters with your own tailored mix of
|
||||||
abilities and powers.")
|
abilities and powers.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public torcs
|
||||||
|
(package
|
||||||
|
(name "torcs")
|
||||||
|
(version "1.3.7")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://sourceforge.net/projects/" name
|
||||||
|
"/files/all-in-one/" version "/"
|
||||||
|
name "-" version ".tar.bz2/download"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0kdq0sc7dsfzlr0ggbxggcbkivc6yp30nqwjwcaxg9295s3b06wa"))
|
||||||
|
(patches (search-patches "torcs-isnan.patch"
|
||||||
|
"torcs-nullptr.patch"
|
||||||
|
"torcs-glibc-default-source.patch"))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
(use-modules (guix build utils)
|
||||||
|
(ice-9 ftw)
|
||||||
|
(ice-9 regex)
|
||||||
|
(srfi srfi-26))
|
||||||
|
;; Delete Windows-specific sources and pre-built binaries.
|
||||||
|
(delete-file-recursively "src/windows")
|
||||||
|
;; The license of the kw-* and pw-* car models includes a
|
||||||
|
;; non-commercial clause, hence does not comply with the GNU FSDG.
|
||||||
|
(with-directory-excursion "data/cars/models"
|
||||||
|
(for-each delete-file-recursively
|
||||||
|
(scandir "." (cut string-match "^(kc|pw)-" <>))))
|
||||||
|
;; Delete extraneous CVS directories.
|
||||||
|
(for-each delete-file-recursively
|
||||||
|
(find-files "." (lambda (file stat)
|
||||||
|
(and (eq? 'directory (stat:type stat))
|
||||||
|
(string=? "CVS" (basename file))))
|
||||||
|
#:directories? #t))))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
;; Building in parallel fails due to a race where include files have not
|
||||||
|
;; yet been generated, with errors such as "controlconfig.cpp:30:10:
|
||||||
|
;; fatal error: tgfclient.h: No such file or directory". The issue was
|
||||||
|
;; reported to the 'torcs-devel' mailing list (see:
|
||||||
|
;; https://sourceforge.net/p/torcs/mailman/torcs-devel/).
|
||||||
|
(list #:modules `(,@%default-gnu-modules (srfi srfi-26))
|
||||||
|
#:parallel-build? #f
|
||||||
|
#:tests? #f ;no test suite
|
||||||
|
;; Ensure the binaries find libraries provided by this very package
|
||||||
|
;; (see: https://issues.guix.gnu.org/73979).
|
||||||
|
#:configure-flags
|
||||||
|
#~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output
|
||||||
|
"/lib/torcs/lib"))
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'patch-commands
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(substitute* "src/linux/torcs.in"
|
||||||
|
(("/bin/bash")
|
||||||
|
(search-input-file inputs "bin/bash")))))
|
||||||
|
(add-after 'install 'install-data
|
||||||
|
(lambda _
|
||||||
|
(invoke "make" "datainstall")))
|
||||||
|
(add-after 'install-data 'install-doc
|
||||||
|
(lambda _
|
||||||
|
(let ((docdir (string-append #$output "/share/doc/torcs/"))
|
||||||
|
(man6 (string-append #$output "/share/man/man6")))
|
||||||
|
(for-each (cut install-file <> man6)
|
||||||
|
(find-files "doc/man" "\\.6$"))
|
||||||
|
(install-file "doc/userman/how_to_drive.html" docdir)
|
||||||
|
(install-file "doc/faq/faq.html" docdir)
|
||||||
|
(copy-recursively "doc/userman/images"
|
||||||
|
(string-append docdir "/images")))))
|
||||||
|
(add-after 'install 'install-freedesktop-entry
|
||||||
|
(lambda _
|
||||||
|
(let ((iconsdir (string-append #$output "/share/icons/hicolor/"
|
||||||
|
"48x48/apps")))
|
||||||
|
(mkdir-p iconsdir)
|
||||||
|
(copy-file "Ticon.png" (string-append iconsdir "/torcs.png")))
|
||||||
|
(install-file "torcs.desktop"
|
||||||
|
(string-append #$output
|
||||||
|
"/share/applications/"))))
|
||||||
|
(add-after 'install 'fix-permissions
|
||||||
|
;; XXX: Otherwise, the guix daemon reports: "suspicious
|
||||||
|
;; ownership or permission on /gnu/store/xxx-torcs-1.3.7',
|
||||||
|
;; rejecting this build output".
|
||||||
|
(lambda _
|
||||||
|
(chmod #$output #o744))))))
|
||||||
|
(inputs
|
||||||
|
(list bash-minimal
|
||||||
|
freealut
|
||||||
|
freeglut
|
||||||
|
libice
|
||||||
|
libpng
|
||||||
|
libsm
|
||||||
|
libvorbis
|
||||||
|
libxi
|
||||||
|
libxmu
|
||||||
|
libxrandr
|
||||||
|
libxrender
|
||||||
|
libxt
|
||||||
|
mesa
|
||||||
|
openal
|
||||||
|
plib
|
||||||
|
zlib))
|
||||||
|
(home-page "https://sourceforge.net/projects/torcs/")
|
||||||
|
(synopsis "Car racing simulator")
|
||||||
|
(description "TORCS stands for The Open Racing Car Simulator. It can be
|
||||||
|
used as an ordinary car racing game, as an artificial intelligence (AI) racing
|
||||||
|
game, or as a research platform. The game has features such as:
|
||||||
|
@itemize
|
||||||
|
@item Input support for a driving wheel, joystick, keyboard or mouse
|
||||||
|
@item More than 30 car models
|
||||||
|
@item 30 tracks
|
||||||
|
@item 50 opponents to race against
|
||||||
|
@item Lighting, smoke, skidmarks and glowing brake disks graphics
|
||||||
|
@item Simple damage model and collisions
|
||||||
|
@item Tire and wheel properties (springs, dampers, stiffness, etc.)
|
||||||
|
@item Aerodynamics (ground effect, spoilers, etc.)
|
||||||
|
@end itemize
|
||||||
|
The difficulty level can be configured, impacting how much damage is caused by
|
||||||
|
collisions and the level of traction the car has on the track, which makes the
|
||||||
|
game fun for both novice and experts.")
|
||||||
|
(license (list license:gpl2+ ;source and most assets
|
||||||
|
license:fdl1.2+)))) ;how_to_drive.html, faq.html
|
||||||
|
|
||||||
(define-public quakespasm
|
(define-public quakespasm
|
||||||
(package
|
(package
|
||||||
(name "quakespasm")
|
(name "quakespasm")
|
||||||
|
|
25
gnu/packages/patches/torcs-glibc-default-source.patch
Normal file
25
gnu/packages/patches/torcs-glibc-default-source.patch
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
From: Aurelien Jarno <aurelien@aurel32.net>
|
||||||
|
Date: Mon, 1 May 2017 15:58:31 +0200
|
||||||
|
Subject: glibc default source
|
||||||
|
|
||||||
|
_SVID_SOURCE and _BSD_SOURCE are deprecated, using _DEFAULT_SOURCE
|
||||||
|
instead.
|
||||||
|
|
||||||
|
Forwarded: https://sourceforge.net/p/torcs/mailman/message/35831161/
|
||||||
|
---
|
||||||
|
Make-config.in | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Make-config.in b/Make-config.in
|
||||||
|
index f0e0a12..8041327 100644
|
||||||
|
--- a/Make-config.in
|
||||||
|
+++ b/Make-config.in
|
||||||
|
@@ -48,7 +48,7 @@ INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
|
||||||
|
-CFLAGSD = -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -DHAVE_CONFIG_H
|
||||||
|
+CFLAGSD = -D_DEFAULT_SOURCE -DSHM -DHAVE_CONFIG_H
|
||||||
|
CXXFLAGS = @CXXFLAGS@ @CPPFLAGS@ ${CFLAGSD}
|
||||||
|
CFLAGS = @CFLAGS@ ${CFLAGSD}
|
||||||
|
|
15
gnu/packages/patches/torcs-isnan.patch
Normal file
15
gnu/packages/patches/torcs-isnan.patch
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
Source: https://src.fedoraproject.org/rpms/torcs/raw/rawhide/f/torcs-1.3.7-isnan.patch
|
||||||
|
Upstream-status: https://sourceforge.net/p/torcs/mailman/torcs-devel/thread/0bd466b7-e158-471b-13ad-504167587d01%40embecosm.com/#msg35836767
|
||||||
|
|
||||||
|
diff -up torcs-1.3.7/src/drivers/olethros/geometry.cpp.orig torcs-1.3.7/src/drivers/olethros/geometry.cpp
|
||||||
|
--- torcs-1.3.7/src/drivers/olethros/geometry.cpp.orig 2016-06-07 19:49:11.347896827 +0100
|
||||||
|
+++ torcs-1.3.7/src/drivers/olethros/geometry.cpp 2016-06-07 19:49:46.532894257 +0100
|
||||||
|
@@ -27,6 +27,8 @@
|
||||||
|
#ifdef WIN32
|
||||||
|
#include <float.h>
|
||||||
|
#define isnan _isnan
|
||||||
|
+#else
|
||||||
|
+#define isnan std::isnan
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
14
gnu/packages/patches/torcs-nullptr.patch
Normal file
14
gnu/packages/patches/torcs-nullptr.patch
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Source: https://src.fedoraproject.org/rpms/torcs/raw/rawhide/f/torcs-1.3.7-nullptr.patch
|
||||||
|
Upstream-status: https://sourceforge.net/p/torcs/mailman/message/36490328/
|
||||||
|
|
||||||
|
--- torcs-1.3.7/src/libs/musicplayer/OpenALMusicPlayer.cpp.orig 2014-02-05 10:54:43.000000000 +0100
|
||||||
|
+++ torcs-1.3.7/src/libs/musicplayer/OpenALMusicPlayer.cpp 2018-07-09 20:56:42.521607205 +0100
|
||||||
|
@@ -161,7 +161,7 @@
|
||||||
|
{
|
||||||
|
char pcm[BUFFERSIZE];
|
||||||
|
int size = 0;
|
||||||
|
- const char* error = '\0';
|
||||||
|
+ const char* error = nullptr;
|
||||||
|
|
||||||
|
if (!stream->read(pcm, BUFFERSIZE, &size, &error)) {
|
||||||
|
GfError("OpenALMusicPlayer: Stream read error: %s\n", error);
|
Loading…
Add table
Add a link
Reference in a new issue