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/tlf-support-hamlib-4.2+.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/transcode-ffmpeg.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.")
|
||||
(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
|
||||
(package
|
||||
(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