From ecc39b3f55be18f9c9d9b71b2d12f037299433f2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 7 Apr 2017 16:03:18 +0300 Subject: gnu: gnubik: Update to 2.4.3. * gnu/packages/games.scm (gnubik): Update to 2.4.3. --- gnu/packages/games.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 0e0e68afcc..a09ea3e117 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -21,7 +21,7 @@ ;;; Copyright © 2016 Albin Söderqvist ;;; Copyright © 2016, 2017 Kei Kebreau ;;; Copyright © 2016 Alex Griffin -;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Steve Webber ;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira @@ -225,7 +225,7 @@ representation of the playing board.") (define-public gnubik (package (name "gnubik") - (version "2.4.2") + (version "2.4.3") (source (origin (method url-fetch) @@ -233,7 +233,7 @@ representation of the playing board.") version ".tar.gz")) (sha256 (base32 - "0mhpfnxzbns0wfrsjv5vafqr34770rbvkmdzxk0x0aq67hb3zyl5")))) + "1vlf924mq8hg93bsjj0rzvs0crc6psmlxyc6zn0fr7msnmpx6gib")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+-2) ("mesa" ,mesa) -- cgit 1.4.1 From 6bb9c854241193c0a0ab8099fd6588d635ab234a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 9 Apr 2017 13:33:08 +0200 Subject: gnu: Add freegish. * gnu/packages/games.scm (freegish): New variable. --- gnu/packages/games.scm | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index a09ea3e117..ed04239c69 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3458,3 +3458,60 @@ starting a decryption sequence to reveal the original plaintext characters.") game, where you control the armies of one of seven different factions: Tech, Magic, Egypt, Indians, Norsemen, Persian or Romans.") (license license:gpl2+))) + +(define-public freegish + (let ((commit "8795cd7adc95957883f2d3465eb9036a774667a7") + (revision "1")) + (package + (name "freegish") + (version (string-append "0-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/freegish/freegish.git") + (commit commit))) + (sha256 + (base32 + "1p1zf5qqagmcpi1db2bs02cnalpy3qiymp6yzan7k1bhmv859gsx")) + (modules '((guix build utils))) + ;; The audio files in the "music" directory are licensed under + ;; CC-BY-NC, so we delete them. + (snippet + '(begin + (delete-file-recursively "music") + #t)))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; no tests included + #:configure-flags + (list "-DCMAKE_INSTALL_FHS=ON") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-DATAPATH + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("^option\\(INSTALL_FHS" line) + (string-append "add_definitions(-DDATAPATH=\"" + (assoc-ref outputs "out") "/share/freegish\")\n" + line))) + #t))))) + (inputs + `(("sdl-union" ,(sdl-union (list sdl sdl-mixer))) + ("openal" ,openal) + ("libvorbis" ,libvorbis) + ("libogg" ,libogg) + ("mesa" ,mesa) + ("libpng" ,libpng) + ("zlib" ,zlib))) + (home-page "https://github.com/freegish/freegish") + (synopsis "Side-scrolling physics platformer with a ball of tar") + (description "In FreeGish you control Gish, a ball of tar who lives +happily with his girlfriend Brea, until one day a mysterious dark creature +emerges from a sewer hole and pulls her below ground.") + ;; The textures are available under the Expat license. All other assets + ;; (including levels) are covered under CC-BY-SA or public domain. The + ;; source code is under GPLv2+. + (license (list license:gpl2+ + license:expat + license:public-domain + license:cc-by-sa3.0))))) -- cgit 1.4.1 From f0f7bf95aebbe30d2a8bae31cff1cb86884f458b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 10 Apr 2017 21:38:49 +0200 Subject: gnu: Add cdogs-sdl. * gnu/packages/games.scm (cdogs-sdl): New variable. --- gnu/packages/games.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index ed04239c69..71f35e2fef 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3515,3 +3515,40 @@ emerges from a sewer hole and pulls her below ground.") license:expat license:public-domain license:cc-by-sa3.0))))) + +(define-public cdogs-sdl + (package + (name "cdogs-sdl") + (version "0.6.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/cxong/cdogs-sdl/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "08c3y8ijimx6mp0gm90abz4lsnbflqka519q2v0id0096vsc2pxn")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list (string-append "-DCDOGS_DATA_DIR=" + (assoc-ref %outputs "out") + "/share/cdogs-sdl/")))) + (inputs + `(("sdl2" ,sdl2) + ("sdl2-image" ,sdl2-image) + ("sdl2-mixer" ,sdl2-mixer))) + (home-page "http://cxong.github.io/cdogs-sdl/") + (synopsis "Classic overhead run-and-gun game") + (description "C-Dogs SDL is a classic overhead run-and-gun game, +supporting up to 4 players in co-op and deathmatch modes. Customize your +player, choose from many weapons, and blast, slide and slash your way through +over 100 user-created campaigns.") + ;; GPLv2+ for code (includes files under BSD-2 and BSD-3), + ;; CC0/CC-BY/CC-BY-SA for assets. + (license (list license:gpl2+ + license:bsd-2 + license:bsd-3 + license:cc0 + license:cc-by3.0 + license:cc-by-sa3.0)))) -- cgit 1.4.1 From bd71525b7ad1bb4f6896793ca7f6283e178b3a06 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 12 Apr 2017 11:28:01 +0200 Subject: gnu: Add kiki. * gnu/packages/games.scm (kiki): New variable. * gnu/packages/patches/kiki-level-selection-crash.patch, gnu/packages/patches/kiki-makefile.patch, gnu/packages/patches/kiki-missing-includes.patch, gnu/packages/patches/kiki-portability-64bit.patch: New patches. * gnu/local.mk (dist_patch_DATA): Add them. --- gnu/local.mk | 4 + gnu/packages/games.scm | 97 ++++++ .../patches/kiki-level-selection-crash.patch | 19 ++ gnu/packages/patches/kiki-makefile.patch | 57 ++++ gnu/packages/patches/kiki-missing-includes.patch | 55 ++++ gnu/packages/patches/kiki-portability-64bit.patch | 328 +++++++++++++++++++++ 6 files changed, 560 insertions(+) create mode 100644 gnu/packages/patches/kiki-level-selection-crash.patch create mode 100644 gnu/packages/patches/kiki-makefile.patch create mode 100644 gnu/packages/patches/kiki-missing-includes.patch create mode 100644 gnu/packages/patches/kiki-portability-64bit.patch (limited to 'gnu/packages/games.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 0f3b4bd7a8..9385b3df94 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -666,6 +666,10 @@ dist_patch_DATA = \ %D%/packages/patches/jq-CVE-2015-8863.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/khmer-use-libraries.patch \ + %D%/packages/patches/kiki-level-selection-crash.patch \ + %D%/packages/patches/kiki-makefile.patch \ + %D%/packages/patches/kiki-missing-includes.patch \ + %D%/packages/patches/kiki-portability-64bit.patch \ %D%/packages/patches/kmod-module-directory.patch \ %D%/packages/patches/kobodeluxe-paths.patch \ %D%/packages/patches/kobodeluxe-enemies-pipe-decl.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 71f35e2fef..710b2746c9 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -89,6 +89,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages databases) #:use-module (gnu packages sdl) + #:use-module (gnu packages swig) #:use-module (gnu packages texinfo) #:use-module (gnu packages check) #:use-module (gnu packages fonts) @@ -3552,3 +3553,99 @@ over 100 user-created campaigns.") license:cc0 license:cc-by3.0 license:cc-by-sa3.0)))) + +(define-public kiki + (package + (name "kiki") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/kiki/kiki-src/" + version "/kiki-" version "-src.tgz")) + (sha256 + (base32 + "0ihjdsxbn8z3cz0gpcprafiipcqaiskgdnh1rhmw4qff8dszalbn")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file (find-files "." "\\.dll$")) + #t)) + (patches + (search-patches "kiki-level-selection-crash.patch" + "kiki-makefile.patch" + "kiki-missing-includes.patch" + "kiki-portability-64bit.patch")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; there are no tests + #:make-flags '("CXX=g++") + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "CPLUS_INCLUDE_PATH" + (string-append (assoc-ref inputs "sdl-union") + "/include/SDL:" + (assoc-ref inputs "python") + "/include/python2.7:" + (getenv "CPLUS_INCLUDE_PATH"))) + (substitute* "src/main/main.cpp" + (("#include " line) + (string-append line " +#define K_INCLUDE_GLUT +#include \"KIncludeTools.h\"")) + (("// initialize SDL" line) + (string-append "glutInit(&argc,argv);\n" line))) + (substitute* "src/main/KikiController.cpp" + (("getenv\\(\"KIKI_HOME\"\\)") + (string-append "\"" (assoc-ref outputs "out") "/share/kiki/\""))) + (substitute* "linux/Makefile" + (("CXXOPTS =" line) + (string-append line " -fpermissive")) + (("PYTHON_VERSION=.*") "PYTHON_VERSION=2.7") + (("PYTHONHOME =.*") + (string-append "PYTHONHOME = " + (assoc-ref inputs "python") + "/lib/python2.7/")) + (("\\$\\(GLLIBS\\)" line) + (string-append line " -lm -lpython2.7"))) + (substitute* "src/main/KikiPythonWidget.h" + (("#define __KikiPythonWidget" line) + (string-append line "\n#include \"KikiPython.h\""))) + #t)) + (add-before 'build 'build-kodilib + (lambda* (#:key make-flags #:allow-other-keys) + (with-directory-excursion "kodilib/linux" + (zero? (apply system* "make" make-flags))))) + (add-after 'build-kodilib 'chdir + (lambda _ (chdir "linux") #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (share (string-append out "/share/kiki"))) + (mkdir-p bin) + (mkdir-p share) + (install-file "kiki" bin) + (copy-recursively "../py" (string-append share "/py")) + (copy-recursively "../sound" (string-append share "/sound")) + #t)))))) + (inputs + `(("glu" ,glu) + ;; Kiki builds fine with freeglut 3.0.0 but segfaults on start. + ("freeglut" ,freeglut-2.8) + ("sdl-union" ,(sdl-union (list sdl + sdl-mixer + sdl-image))) + ("python" ,python-2))) + (native-inputs + `(("swig" ,swig))) + (home-page "http://kiki.sourceforge.net/") + (synopsis "3D puzzle game") + (description "Kiki the nano bot is a 3D puzzle game. It is basically a +mixture of the games Sokoban and Kula-World. Your task is to help Kiki, a +small robot living in the nano world, repair its maker.") + ;; See + ;; for a statement from the author. + (license license:public-domain))) diff --git a/gnu/packages/patches/kiki-level-selection-crash.patch b/gnu/packages/patches/kiki-level-selection-crash.patch new file mode 100644 index 0000000000..8cc6478509 --- /dev/null +++ b/gnu/packages/patches/kiki-level-selection-crash.patch @@ -0,0 +1,19 @@ +Downloaded from https://anonscm.debian.org/viewvc/pkg-games/packages/trunk/kiki-the-nano-bot/debian/patches/level-selection-with-no-levels-solved.patch?revision=8291&view=co + +Kiki crashes if the user tries to use the level selection menu before +finishing any level. + +Peter De Wachter (pdewacht@gmail.com) +placed in the public domain + +--- a/py/levelselection.py ++++ b/py/levelselection.py +@@ -25,6 +25,8 @@ + # ............................................................................................................ + + last_level = highscore.getLastAvailableLevel() ++ if last_level < 0: ++ last_level = 0 + current_level = (level_index >= 0) and level_index or last_level + + world.max_level_index = last_level diff --git a/gnu/packages/patches/kiki-makefile.patch b/gnu/packages/patches/kiki-makefile.patch new file mode 100644 index 0000000000..7329301f2c --- /dev/null +++ b/gnu/packages/patches/kiki-makefile.patch @@ -0,0 +1,57 @@ +Downloaded from https://anonscm.debian.org/viewvc/pkg-games/packages/trunk/kiki-the-nano-bot/debian/patches/Makefile.patch?revision=15681&view=co + +Makefile fixes: + - Make CXXFLAGS, CPPFLAGS, LDFLAGS available for user-specified flags. + - run SWIG before compiling + +Peter De Wachter (pdewacht@gmail.com) +placed in the public domain + +--- a/kodilib/linux/Makefile ++++ b/kodilib/linux/Makefile +@@ -21,7 +21,7 @@ + + INCLUDES = $(KODI_INCLUDES) $(X11_INCLUDES) $(SDL_INCLUDES) + +-CXXFLAGS = $(INCLUDES) $(SDL_CFLAGS) ++CXXOPTS = -Wall $(INCLUDES) $(SDL_CFLAGS) $(CPPFLAGS) $(CXXFLAGS) + + src = \ + $(KODISRCDIR)/handler/KEventHandler.cpp \ +@@ -95,4 +95,4 @@ + $(RM) -f $(obj) libkodi.a + + %.o: %.cpp +- $(CXX) -c $(CXXFLAGS) -o $@ $< ++ $(CXX) -c $(CXXOPTS) -o $@ $< +--- a/linux/Makefile ++++ b/linux/Makefile +@@ -46,7 +46,7 @@ + + INCLUDES = $(KIKI_INCLUDES) $(X11_INCLUDES) $(PYTHON_INCLUDES) + +-CXXFLAGS = $(INCLUDES) $(SDLCFLAGS) ++CXXOPTS = -Wall $(INCLUDES) $(SDLCFLAGS) $(CPPFLAGS) $(CXXFLAGS) + + src = \ + $(KIKISRC)/base/KikiAction.cpp \ +@@ -105,8 +105,10 @@ + obj = $(src:.cpp=.o) + + kiki: $(KIKISRC)/../SWIG/KikiPy_wrap.cpp $(obj) +- -(cd ../SWIG; swig -c++ -python -globals kiki -o KikiPy_wrap.cpp KikiPy.i; cp kiki.py ../py) +- $(CXX) $(obj) $(KODILIB) -o kiki $(GLLIBS) $(SDLLIBS) $(PYTHONLIBS) ++ $(CXX) $(LDFLAGS) $(obj) $(KODILIB) -o kiki $(GLLIBS) $(SDLLIBS) $(PYTHONLIBS) ++ ++$(KIKISRC)/../SWIG/KikiPy_wrap.cpp: $(wildcard ../SWIG/*.i) ++ (cd ../SWIG && swig -c++ -python -globals kiki -DSWIG_PYTHON_LEGACY_BOOL -o KikiPy_wrap.cpp KikiPy.i && cp kiki.py ../py) + + obj-clean: + $(RM) -f $(obj) +@@ -115,5 +117,5 @@ + $(RM) -f $(obj) kiki + + %.o: %.cpp +- $(CXX) -c $(CXXFLAGS) -o $@ $< ++ $(CXX) -c $(CXXOPTS) -o $@ $< + diff --git a/gnu/packages/patches/kiki-missing-includes.patch b/gnu/packages/patches/kiki-missing-includes.patch new file mode 100644 index 0000000000..e5ee74f3ee --- /dev/null +++ b/gnu/packages/patches/kiki-missing-includes.patch @@ -0,0 +1,55 @@ +Downloaded from https://anonscm.debian.org/viewvc/pkg-games/packages/trunk/kiki-the-nano-bot/debian/patches/missing-includes.patch?revision=7984&view=co + +Status: in upstream CVS + +--- a/kodilib/src/handler/KPickable.h ++++ b/kodilib/src/handler/KPickable.h +@@ -8,6 +8,7 @@ + + #include "KIntrospection.h" + #include ++#include + + #define DEBUG_PICKING false + +--- a/kodilib/src/tools/KIntrospection.h ++++ b/kodilib/src/tools/KIntrospection.h +@@ -11,6 +11,7 @@ + #endif + + #include ++#include + + // -------------------------------------------------------------------------------------------------------- + class KClassInfo +--- a/kodilib/src/tools/KStringTools.cpp ++++ b/kodilib/src/tools/KStringTools.cpp +@@ -6,7 +6,7 @@ + #include "KStringTools.h" + #include "KVector.h" + +-#include // INT_MAX ++#include // INT_MAX + #include + + // -------------------------------------------------------------------------------------------------------- +--- a/kodilib/src/tools/KStringTools.h ++++ b/kodilib/src/tools/KStringTools.h +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + + // -------------------------------------------------------------------------------------------------------- + +--- a/kodilib/src/tools/KXMLTools.cpp ++++ b/kodilib/src/tools/KXMLTools.cpp +@@ -7,6 +7,7 @@ + #include "KConsole.h" + #include "KSeparatedMatrix.h" + #include ++#include + + // -------------------------------------------------------------------------------------------------------- + std::string kXMLTag ( const std::string & name, const std::string & attributes, int depth ) diff --git a/gnu/packages/patches/kiki-portability-64bit.patch b/gnu/packages/patches/kiki-portability-64bit.patch new file mode 100644 index 0000000000..456c008915 --- /dev/null +++ b/gnu/packages/patches/kiki-portability-64bit.patch @@ -0,0 +1,328 @@ +This patch was downloaded from Debian: +https://anonscm.debian.org/viewvc/pkg-games/packages/trunk/kiki-the-nano-bot/debian/patches/portability-64bit.patch?revision=7984&view=co + +Make 64-bit clean (string positions don't fit in an int on 64-bit machines) + +Peter De Wachter (pdewacht@gmail.com) +placed in the public domain + +Status: in upstream CVS + +--- a/kodilib/src/tools/KFileTools.cpp ++++ b/kodilib/src/tools/KFileTools.cpp +@@ -214,8 +214,8 @@ + // -------------------------------------------------------------------------------------------------------- + string kFileSuffix ( const string & path ) + { +- unsigned int lastDotPos = path.rfind("."); +- unsigned int lastSlashPos = path.rfind(kPathSep); ++ std::string::size_type lastDotPos = path.rfind("."); ++ std::string::size_type lastSlashPos = path.rfind(kPathSep); + + if (lastDotPos < path.size() - 1 && (lastDotPos > lastSlashPos || lastSlashPos == string::npos)) + { +@@ -228,7 +228,7 @@ + string kFileDirName ( const string & path ) + { + string native = kFileNativePath(path); +- unsigned int lastSlashPos = native.rfind(kPathSep); ++ std::string::size_type lastSlashPos = native.rfind(kPathSep); + if (lastSlashPos < native.size()) + { + return native.substr(0, lastSlashPos+1); +@@ -241,7 +241,7 @@ + { + string native = kFileNativePath(path); + string baseName = native; +- unsigned int lastSlashPos = native.rfind(kPathSep); ++ std::string::size_type lastSlashPos = native.rfind(kPathSep); + if (lastSlashPos < native.size() - 1) + { + baseName = native.substr(lastSlashPos+1); +--- a/kodilib/src/tools/KKeyTools.cpp ++++ b/kodilib/src/tools/KKeyTools.cpp +@@ -170,7 +170,7 @@ + // -------------------------------------------------------------------------------------------------------- + int kKeyGetDisplayWidthForKey ( const std::string & keyName ) + { +- unsigned int keyPos = keyName.find('_', 0); ++ std::string::size_type keyPos = keyName.find('_', 0); + if (keyPos == std::string::npos) + { + return kKeyGetDisplayWidthForPureKey(keyName) + KDL_MOD_KEY_SPACING; +@@ -313,7 +313,7 @@ + int kKeyDisplayKey ( const std::string & keyName, const KPosition & pos ) + { + KPosition start = pos; +- unsigned int keyPos = keyName.find('_', 0); ++ std::string::size_type keyPos = keyName.find('_', 0); + if (keyPos == std::string::npos) + { + return start.x + kKeyDisplayPureKey(keyName, start) + KDL_MOD_KEY_SPACING; +@@ -380,7 +380,7 @@ + // -------------------------------------------------------------------------------------------------------- + SDL_keysym kKeyGetKeysymForKeyName ( const std::string & keyName ) + { +- unsigned int pos = keyName.find('_'); ++ std::string::size_type pos = keyName.find('_'); + + std::string modString; + std::string symString = keyName; +--- a/kodilib/src/tools/KStringTools.cpp ++++ b/kodilib/src/tools/KStringTools.cpp +@@ -13,7 +13,7 @@ + void kStringInsertStringBehindTags ( std::string & str, const std::string & insertString, + const std::string & tag ) + { +- unsigned int oldPos = 0; ++ std::string::size_type oldPos = 0; + while ((oldPos = str.find(tag, oldPos)) != std::string::npos) + { + oldPos += tag.size(); +@@ -34,8 +34,8 @@ + { + std::vector components; + +- unsigned int dividerLength = divider.size(); +- unsigned int oldpos = 0, pos; ++ std::string::size_type dividerLength = divider.size(); ++ std::string::size_type oldpos = 0, pos; + + while ((pos = str.find(divider, oldpos)) != std::string::npos) + { +@@ -50,7 +50,7 @@ + // -------------------------------------------------------------------------------------------------------- + void kStringReplace ( std::string & str, const std::string & toReplace, const std::string & replacement ) + { +- unsigned int pos = 0, chars = toReplace.size(); ++ std::string::size_type pos = 0, chars = toReplace.size(); + while ((pos = str.find(toReplace, pos)) != std::string::npos) + { + str.replace(pos, chars, replacement); +@@ -60,11 +60,11 @@ + // -------------------------------------------------------------------------------------------------------- + void kStringReplaceTabs ( std::string & str, unsigned int tabWidth ) + { +- unsigned int tabPos; ++ std::string::size_type tabPos; + while ((tabPos = str.find('\t')) != std::string::npos) + { +- unsigned int lastNewlinePos = str.rfind('\n', tabPos-1); +- unsigned int relPos = (lastNewlinePos == std::string::npos) ? tabPos : tabPos - lastNewlinePos; ++ std::string::size_type lastNewlinePos = str.rfind('\n', tabPos-1); ++ std::string::size_type relPos = (lastNewlinePos == std::string::npos) ? tabPos : tabPos - lastNewlinePos; + str.replace(tabPos, 1, std::string(tabWidth-(relPos % tabWidth), ' ')); + } + } +@@ -114,7 +114,7 @@ + // -------------------------------------------------------------------------------------------------------- + unsigned int kStringNthCharPos ( const std::string & str, unsigned int n, char c ) + { +- unsigned int loc = n, oloc = 0; ++ std::string::size_type loc = n, oloc = 0; + while (n > 0 && (loc = str.find(c, oloc)) != std::string::npos) + { + n--; +@@ -138,7 +138,7 @@ + // -------------------------------------------------------------------------------------------------------- + void kStringCropCols ( std::string & str, unsigned int columns ) + { +- unsigned int oloc = 0, nloc = 0; ++ std::string::size_type oloc = 0, nloc = 0; + while ((nloc = str.find('\n', oloc)) != std::string::npos) + { + if ((nloc - oloc) > columns) +@@ -160,10 +160,10 @@ + unsigned int kStringCols ( const std::string & str ) + { + if (str.size() == 0) return 0; +- int oloc = 0, nloc; ++ long oloc = 0, nloc; + std::string substring; + int maxlength = 0, length; +- while ((nloc = str.find('\n', oloc)) != (int)std::string::npos) ++ while ((nloc = str.find('\n', oloc)) != (long)std::string::npos) + { + substring = str.substr(oloc, nloc - oloc); + length = substring.size(); +@@ -181,7 +181,7 @@ + unsigned int kStringRows ( const std::string & str ) + { + if (str.size() == 0) return 1; +- unsigned int loc = 0, lines = 0; ++ std::string::size_type loc = 0, lines = 0; + while ((loc = str.find('\n', loc)) != std::string::npos) { lines++; loc++; } + if (str[str.size()-1] == '\n') return lines; + return lines+1; +@@ -204,8 +204,8 @@ + { + static char str[256]; + std::string format(fmt), subformat, text; +- unsigned int oloc = 0; +- unsigned int nloc = 0; ++ std::string::size_type oloc = 0; ++ std::string::size_type nloc = 0; + + kStringReplaceTabs(format); + +@@ -260,7 +260,7 @@ + // -------------------------------------------------------------------------------------------------------- + bool kStringHasSuffix ( const std::string & str, const std::string & suffix ) + { +- unsigned int result = str.rfind(suffix); ++ std::string::size_type result = str.rfind(suffix); + if (result == std::string::npos) return false; + return (result == str.size()-suffix.size()); + } +--- a/kodilib/src/tools/KXMLTools.cpp ++++ b/kodilib/src/tools/KXMLTools.cpp +@@ -58,11 +58,11 @@ + std::string kXMLParseToTagsInVector ( std::string & xml, const std::vector & tags ) + { + std::string open("<"); +- unsigned int minLoc = std::string::npos; ++ std::string::size_type minLoc = std::string::npos; + std::vector::const_iterator iter = tags.begin(); + while (iter != tags.end()) + { +- unsigned int loc = xml.find(open+(*iter)); ++ std::string::size_type loc = xml.find(open+(*iter)); + if (loc < minLoc) minLoc = loc; + iter++; + } +@@ -77,7 +77,7 @@ + std::string value; + std::string nameStr(name); + nameStr += "='"; +- unsigned int loc = xml.find(nameStr); ++ std::string::size_type loc = xml.find(nameStr); + if (loc != std::string::npos) + { + loc += nameStr.size(); +@@ -90,7 +90,7 @@ + // -------------------------------------------------------------------------------------------------------- + bool kXMLParseNamedCloseTag ( std::string & xml, const std::string & name, bool printError ) + { +- unsigned int loc = xml.find('<'); ++ std::string::size_type loc = xml.find('<'); + if (loc == std::string::npos) + { + if (printError) KConsole::printError(kStringPrintf("invalid XML:\nmissing close tag '%s'", +@@ -117,7 +117,7 @@ + // -------------------------------------------------------------------------------------------------------- + bool kXMLReadNamedOpenTag ( const std::string & xml, const std::string & name, std::string * attributes ) + { +- unsigned int loc = xml.find('<'), endloc; ++ std::string::size_type loc = xml.find('<'), endloc; + + if (loc == std::string::npos || xml[loc+1] == '/') return false; + +@@ -140,7 +140,7 @@ + // -------------------------------------------------------------------------------------------------------- + std::string kXMLParseNamedOpenTag ( std::string & xml, const std::string & name, std::string * attributes, bool printError ) + { +- unsigned int loc = xml.find('<'); ++ std::string::size_type loc = xml.find('<'); + if (loc == std::string::npos || xml[loc+1] == '/') + { + if (printError) KConsole::printError(kStringPrintf("invalid XML:\nmissing tag '%s'", name.c_str())); +@@ -191,7 +191,7 @@ + // -------------------------------------------------------------------------------------------------------- + bool kXMLParseOpenTag ( std::string & xml, std::string & name, std::string * attributes, bool printError ) + { +- unsigned int loc = xml.find('<'); ++ std::string::size_type loc = xml.find('<'); + if (loc == std::string::npos || xml[loc+1] == '/') + { + if (printError) KConsole::printError("invalid XML:\nmissing open tag"); +@@ -295,7 +295,7 @@ + // -------------------------------------------------------------------------------------------------------- + bool kXMLParseValue( std::string & xml, const std::string & name, int type, void * value, bool printError ) + { +- unsigned int loc = xml.find('<'); ++ std::string::size_type loc = xml.find('<'); + if (loc == std::string::npos || xml[loc+1] == '/') + { + if (printError) KConsole::printError(kStringPrintf("invalid XML:\nmissing value '%s'", name.c_str())); +@@ -379,8 +379,8 @@ + } + else if (typeString == "string") + { +- unsigned int first = substring.find("\"")+1; +- unsigned int last = substring.rfind("\"", std::string::npos); ++ std::string::size_type first = substring.find("\"")+1; ++ std::string::size_type last = substring.rfind("\"", std::string::npos); + *((std::string*)value) = substring.substr(first, last-first); + } + +--- a/kodilib/src/types/KKey.cpp ++++ b/kodilib/src/types/KKey.cpp +@@ -31,7 +31,7 @@ + // -------------------------------------------------------------------------------------------------------- + std::string KKey::getUnmodifiedName () const + { +- unsigned int keyPos = name.find('_', 0); ++ std::string::size_type keyPos = name.find('_', 0); + if (keyPos == std::string::npos) + { + return name; +@@ -42,7 +42,7 @@ + // -------------------------------------------------------------------------------------------------------- + std::string KKey::getModifierName () const + { +- unsigned int keyPos = name.find('_', 0); ++ std::string::size_type keyPos = name.find('_', 0); + if (keyPos == std::string::npos) + { + return ""; +--- a/kodilib/src/widgets/KFileNameField.cpp ++++ b/kodilib/src/widgets/KFileNameField.cpp +@@ -41,7 +41,7 @@ + std::string restPath; // path behind cursor + + // map cropped path to current directory and rest path to file prefix +- unsigned int lastSlashPos = croppedPath.rfind("/"); ++ std::string::size_type lastSlashPos = croppedPath.rfind("/"); + if (lastSlashPos < croppedPath.size()-1) + { + restPath = croppedPath.substr(lastSlashPos+1); +@@ -88,7 +88,7 @@ + } + + // ............................collect list of entries in searchDir that match prefix restPath +- unsigned int restLength = restPath.size(); ++ std::string::size_type restLength = restPath.size(); + std::vector matchingEntries; + std::vector::iterator iter = dir_entries.begin(); + while (iter != dir_entries.end()) +@@ -223,7 +223,7 @@ + // -------------------------------------------------------------------------------------------------------- + void KFileNameField::selectLastPathComponent () + { +- unsigned int lastSlashPos = text.rfind("/"); ++ std::string::size_type lastSlashPos = text.rfind("/"); + if (lastSlashPos == text.size()-1) lastSlashPos = text.rfind("/", lastSlashPos-1); + if (lastSlashPos < text.size()) cursor_pos = lastSlashPos+1; + else cursor_pos = 0; +--- a/src/gui/KikiMenu.cpp ++++ b/src/gui/KikiMenu.cpp +@@ -54,7 +54,7 @@ + { + std::string item_text (itemText); + std::string event_name (itemText); +- unsigned int pos; ++ std::string::size_type pos; + float scale_factor = 1.0; + + KikiMenuItem * menu_item = new KikiMenuItem (); +--- a/src/gui/KikiTextLine.cpp ++++ b/src/gui/KikiTextLine.cpp +@@ -46,7 +46,7 @@ + void KikiTextLine::setText ( const std::string & str ) + { + text = str; +- unsigned int pos; ++ std::string::size_type pos; + + if ((pos = text.find ("$scale(")) != std::string::npos) + { -- cgit 1.4.1 From b77e3a1c4eabbd6010083a6cb9aad7cf5a9a4d45 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 12 Apr 2017 22:27:16 +0200 Subject: gnu: Add teeworlds. * gnu/packages/games.scm (teeworlds): New variable. * gnu/packages/patches/teeworlds-use-latest-wavpack.patch: New file. * gnu/local.mk (dist_patch_DATA): Add patch. --- gnu/local.mk | 1 + gnu/packages/games.scm | 89 ++++++++++++++++++++++ .../patches/teeworlds-use-latest-wavpack.patch | 84 ++++++++++++++++++++ 3 files changed, 174 insertions(+) create mode 100644 gnu/packages/patches/teeworlds-use-latest-wavpack.patch (limited to 'gnu/packages/games.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 779cb0dfd5..45df0eba8a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -957,6 +957,7 @@ dist_patch_DATA = \ %D%/packages/patches/tcsh-fix-autotest.patch \ %D%/packages/patches/tcsh-fix-out-of-bounds-read.patch \ %D%/packages/patches/teensy-loader-cli-help.patch \ + %D%/packages/patches/teeworlds-use-latest-wavpack.patch \ %D%/packages/patches/texlive-texmf-CVE-2016-10243.patch \ %D%/packages/patches/texi2html-document-encoding.patch \ %D%/packages/patches/texi2html-i18n.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 710b2746c9..a956f0ca44 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -56,6 +56,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) + #:use-module (gnu packages build-tools) #:use-module (gnu packages admin) #:use-module (gnu packages audio) #:use-module (gnu packages avahi) @@ -3649,3 +3650,91 @@ small robot living in the nano world, repair its maker.") ;; kiki-the-nano-bot/kiki-the-nano-bot_1.0.2+dfsg1-4_copyright> ;; for a statement from the author. (license license:public-domain))) + +(define-public teeworlds + (package + (name "teeworlds") + (version "0.6.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/teeworlds/teeworlds/" + "archive/" version "-release.tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1mqhp6xjl75l49050cid36wxyjn1qr0vjx1c709dfg1lkvmgs6l3")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file-recursively + '("src/engine/external/wavpack/" + "src/engine/external/zlib/")) + #t)) + (patches + (search-patches "teeworlds-use-latest-wavpack.patch")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests included + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + ;; Embed path to assets. + (substitute* "src/engine/shared/storage.cpp" + (("#define DATA_DIR.*") + (string-append "#define DATA_DIR \"" + (assoc-ref outputs "out") + "/share/teeworlds/data" + "\""))) + + ;; Bam expects all files to have a recent time stamp. + (for-each (lambda (file) + (utime file 1 1)) + (find-files ".")) + + ;; Do not use bundled libraries. + (substitute* "bam.lua" + (("if config.zlib.value == 1 then") + "if true then") + (("wavpack = .*") + "wavpack = {} +settings.link.libs:Add(\"wavpack\")\n")) + (substitute* "src/engine/client/sound.cpp" + (("#include ") + "#include ")) + #t)) + (replace 'build + (lambda _ + (zero? (system* "bam" "-a" "-v" "release")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (data (string-append out "/share/teeworlds/data"))) + (mkdir-p bin) + (mkdir-p data) + (for-each (lambda (file) + (install-file file bin)) + '("teeworlds" "teeworlds_srv")) + (copy-recursively "data" data) + #t)))))) + ;; FIXME: teeworlds bundles the sources of "pnglite", a two-file PNG + ;; library without a build system. + (inputs + `(("freetype" ,freetype) + ("glu" ,glu) + ("mesa" ,mesa) + ("sdl-union" ,(sdl-union (list sdl + sdl-mixer + sdl-image))) + ("wavpack" ,wavpack) + ("zlib" ,zlib))) + (native-inputs + `(("bam" ,bam) + ("python" ,python-2))) + (home-page "https://www.teeworlds.com") + (synopsis "2D retro multiplayer shooter game") + (description "Teeworlds is an online multiplayer game. Battle with up to +16 players in a variety of game modes, including Team Deathmatch and Capture +The Flag. You can even design your own maps!") + (license license:bsd-3))) diff --git a/gnu/packages/patches/teeworlds-use-latest-wavpack.patch b/gnu/packages/patches/teeworlds-use-latest-wavpack.patch new file mode 100644 index 0000000000..e9fd991087 --- /dev/null +++ b/gnu/packages/patches/teeworlds-use-latest-wavpack.patch @@ -0,0 +1,84 @@ +Downloaded from https://anonscm.debian.org/cgit/pkg-games/teeworlds.git/plain/debian/patches/new-wavpack.patch. + +This patch lets us build teeworlds with wavpack 5.1.0. + +--- a/src/engine/client/sound.cpp ++++ b/src/engine/client/sound.cpp +@@ -328,17 +328,14 @@ void CSound::RateConvert(int SampleID) + pSample->m_NumFrames = NumFrames; + } + +-int CSound::ReadData(void *pBuffer, int Size) +-{ +- return io_read(ms_File, pBuffer, Size); +-} +- + int CSound::LoadWV(const char *pFilename) + { + CSample *pSample; + int SampleID = -1; + char aError[100]; + WavpackContext *pContext; ++ char aWholePath[1024]; ++ IOHANDLE File; + + // don't waste memory on sound when we are stress testing + if(g_Config.m_DbgStress) +@@ -351,19 +348,23 @@ int CSound::LoadWV(const char *pFilename + if(!m_pStorage) + return -1; + +- ms_File = m_pStorage->OpenFile(pFilename, IOFLAG_READ, IStorage::TYPE_ALL); +- if(!ms_File) ++ File = m_pStorage->OpenFile(pFilename, IOFLAG_READ, IStorage::TYPE_ALL, aWholePath, sizeof(aWholePath)); ++ if(!File) + { + dbg_msg("sound/wv", "failed to open file. filename='%s'", pFilename); + return -1; + } ++ else ++ { ++ io_close(File); ++ } + + SampleID = AllocID(); + if(SampleID < 0) + return -1; + pSample = &m_aSamples[SampleID]; + +- pContext = WavpackOpenFileInput(ReadData, aError); ++ pContext = WavpackOpenFileInput(aWholePath, aError, OPEN_2CH_MAX, 0); + if (pContext) + { + int m_aSamples = WavpackGetNumSamples(pContext); +@@ -419,9 +420,6 @@ int CSound::LoadWV(const char *pFilename + dbg_msg("sound/wv", "failed to open %s: %s", pFilename, aError); + } + +- io_close(ms_File); +- ms_File = NULL; +- + if(g_Config.m_Debug) + dbg_msg("sound/wv", "loaded %s", pFilename); + +@@ -527,7 +525,5 @@ void CSound::StopAll() + lock_unlock(m_SoundLock); + } + +-IOHANDLE CSound::ms_File = 0; +- + IEngineSound *CreateEngineSound() { return new CSound; } + +--- a/src/engine/client/sound.h ++++ b/src/engine/client/sound.h +@@ -21,10 +21,6 @@ public: + + static void RateConvert(int SampleID); + +- // TODO: Refactor: clean this mess up +- static IOHANDLE ms_File; +- static int ReadData(void *pBuffer, int Size); +- + virtual bool IsSoundEnabled() { return m_SoundEnabled != 0; } + + virtual int LoadWV(const char *pFilename); -- cgit 1.4.1 From e02f16636461985199b729f975ca6d57ac3cdd53 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 13 Apr 2017 09:10:57 +0200 Subject: gnu: Add fillets-ng. * gnu/packages/games.scm (fillets-ng): New variable. --- gnu/packages/games.scm | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index a956f0ca44..c712785091 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3738,3 +3738,72 @@ settings.link.libs:Add(\"wavpack\")\n")) 16 players in a variety of game modes, including Team Deathmatch and Capture The Flag. You can even design your own maps!") (license license:bsd-3))) + +(define-public fillets-ng + (package + (name "fillets-ng") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/fillets/" + "Fish%20Fillets%20-%20Next%20Generation/" + version "/fillets-ng-" version ".tar.gz")) + (sha256 + (base32 + "1nljp75aqqb35qq3x7abhs2kp69vjcj0h1vxcpdyn2yn2nalv6ij")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-lua=" + (assoc-ref %build-inputs "lua"))) + #:make-flags + (list (string-append "CFLAGS=-I" + (assoc-ref %build-inputs "sdl-union") + "/include/SDL") + (string-append "CXXFLAGS=-I" + (assoc-ref %build-inputs "sdl-union") + "/include/SDL")) + #:phases + (modify-phases %standard-phases + ;; Lua 5.1 does not provide it. + (add-after 'unpack 'do-not-link-with-lualib + (lambda _ + (substitute* "configure" + (("-llualib") "")) + #t)) + (add-after 'install 'install-data + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((data (string-append (assoc-ref outputs "out") + "/share/games/fillets-ng"))) + (mkdir-p data) + (zero? (system* "tar" "-xvf" + (assoc-ref inputs "fillets-ng-data") + "--strip-components=1" + "-C" data)))))))) + (inputs + `(("sdl-union" ,(sdl-union (list sdl + sdl-mixer + sdl-image + sdl-ttf))) + ("fribidi" ,fribidi) + ("libx11" ,libx11) + ("lua" ,lua-5.1))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("fillets-ng-data" + ,(origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/fillets/" + "Fish%20Fillets%20-%20Next%20Generation/" + version "/fillets-ng-data-" version ".tar.gz")) + (sha256 + (base32 + "169p0yqh2gxvhdilvjc2ld8aap7lv2nhkhkg4i1hlmgc6pxpkjgh")))))) + (home-page "http://fillets.sourceforge.net/") + (synopsis "Puzzle game") + (description "Fish Fillets NG is strictly a puzzle game. The goal in +every of the seventy levels is always the same: find a safe way out. The fish +utter witty remarks about their surroundings, the various inhabitants of their +underwater realm quarrel among themselves or comment on the efforts of your +fish. The whole game is accompanied by quiet, comforting music.") + (license license:gpl2+))) -- cgit 1.4.1 From 9505dafb9940686302835f03c22e4e24100e0798 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 17 Apr 2017 22:34:36 +0800 Subject: retroarch: Update to 1.5.0. * gnu/packages/games.scm (retroarch): Update to 1.5.0. --- gnu/packages/games.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index c712785091..b492c72494 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -433,7 +433,7 @@ that beneath its ruins lay buried an ancient evil.") (lambda _ (substitute* "acinclude.m4" (("ncursesw5-config") "ncursesw6-config")) - (zero? (system* "sh" "autogen.sh"))))))) + (zero? (system* "sh" "autogen.sh"))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) @@ -1084,7 +1084,7 @@ either by Infocom or created using the Inform compiler.") (define-public retroarch (package (name "retroarch") - (version "1.3.6") + (version "1.5.0") (source (origin (method url-fetch) @@ -1092,7 +1092,7 @@ either by Infocom or created using the Inform compiler.") version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "1xar0wagcz50clwwkvjg4zq9m1sjqw47vw3xx44pisdj94g21m5y")))) + (base32 "1rbdax3i33myg1v938pxy28117ihff2lml1ky6g70c8099fkirjx")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests -- cgit 1.4.1 From 67ba411ce301e509b652ba9c83a5c63332109e88 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Mon, 17 Apr 2017 12:16:05 -0400 Subject: gnu: freedink-data: Update to 1.08.20170401. * gnu/packages/games.scm (freedink-data): Update to 1.08.20170401. --- gnu/packages/games.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index b492c72494..31ba037af0 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -598,14 +598,14 @@ To that extent, it also includes a front-end for managing all of your D-Mods.") (define freedink-data (package (name "freedink-data") - (version "1.08.20140901") + (version "1.08.20170401") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/freedink/freedink-data-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "04f1aa8gfz30qkgv7chjz5n1s8v5hbqs01h2113cq1ylm3isd5sp")))) + "1zx7qywibhznj7bnz217404scr8dfh0xj24xjihnda5iapzz7lz8")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit 1.4.1 From 7252964244cd81dbe24af418ae52a2a20bc054c7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 20 Apr 2017 19:30:00 +0200 Subject: gnu: tuxpaint: Disable parallel build. * gnu/packages/games.scm (tuxpaint)[arguments]<#:parallel-build?>: New parameter. --- gnu/packages/games.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 31ba037af0..8ff5958d19 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2849,6 +2849,7 @@ safety of the Chromium vessel.") ,(string-append "PREFIX=" %output) "GNOME_PREFIX=$(PREFIX)" "COMPLETIONDIR=$(PREFIX)/etc/bash_completion.d") + #:parallel-build? #f ;fails on some systems #:tests? #f ;No tests #:phases (modify-phases %standard-phases (delete 'configure) ;no configure phase -- cgit 1.4.1 From dd37a545f6d611bce8177f94aca100c158f14e6a Mon Sep 17 00:00:00 2001 From: nee Date: Thu, 13 Apr 2017 22:45:18 +0200 Subject: gnu: Add crawl. * gnu/packages/games.scm (crawl): New variable. Signed-off-by: Arun Isaac --- gnu/packages/games.scm | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 8ff5958d19..f6b4e3f0bf 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -27,6 +27,7 @@ ;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017 nee ;;; ;;; This file is part of GNU Guix. ;;; @@ -116,6 +117,8 @@ #:use-module (gnu packages messaging) #:use-module (gnu packages upnp) #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages bison) + #:use-module (gnu packages flex) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) #:use-module (guix build-system python) @@ -3808,3 +3811,73 @@ utter witty remarks about their surroundings, the various inhabitants of their underwater realm quarrel among themselves or comment on the efforts of your fish. The whole game is accompanied by quiet, comforting music.") (license license:gpl2+))) + +(define-public crawl + (package + (name "crawl") + (version "0.19.5") + (source + (origin + (method url-fetch) + (uri (list + ;; Older releases get moved into a versioned directory + (string-append "http://crawl.develz.org/release/" + (version-major+minor version) "/stone_soup-" + version "-nodeps.tar.xz") + ;; Only the latest release is in this directory + (string-append "http://crawl.develz.org/release/stone_soup-" + version "-nodeps.tar.xz"))) + (sha256 + (base32 + "00yl2lb2shglxlxzpyk99zvglfx4amjybqwnzdcasvbiggb4cj18")))) + (build-system gnu-build-system) + (inputs + `(("lua51" ,lua-5.1) + ("ncurses" ,ncurses) + ("sqlite" ,sqlite) + ("zlib" ,zlib))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("perl" ,perl) + ("pkg-config" ,pkg-config))) + (arguments + '(#:make-flags + (let* ((sqlite (assoc-ref %build-inputs "sqlite")) + (out (assoc-ref %outputs "out"))) + (list (string-append "SQLITE_INCLUDE_DIR=" sqlite "/include") + (string-append "prefix=" out) + "SAVEDIR=~/.crawl" + ;; TODO: build graphical client + "TILES=" + ;; don't build any bundled dependencies + "BUILD_LUA=" + "BUILD_SQLITE=" + "BUILD_ZLIB=" + "-Csource")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + ;; Test cases require the source to be rebuild with the -DDEBUG define. + ;; Do 'check before 'build to avoid a 3rd build on make install. + (add-before 'build 'check + (lambda* (#:key inputs outputs make-flags #:allow-other-keys) + (setenv "HOME" (getcwd)) + ;; Fake a terminal for the test cases. + (setenv "TERM" "xterm-256color") + (zero? (apply system* "make" "debug" "test" + (format #f "-j~d" (parallel-job-count)) + make-flags))))))) + (synopsis "Roguelike dungeon crawler game") + (description "Dungeon Crawl Stone Soup is a roguelike adventure through +dungeons filled with dangerous monsters in a quest to find the mystifyingly +fabulous Orb of Zot.") + (home-page "https://crawl.develz.org") + (license (list license:gpl2+ + license:bsd-2 + license:bsd-3 + license:cc0 + license:expat + license:zlib + license:asl2.0)))) -- cgit 1.4.1 From a7086b154f3a85e0ee75a582d58bc1e0a0fccc9a Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Sat, 22 Apr 2017 13:57:55 -0400 Subject: gnu: hyperrogue: Update to 9.4g. * gnu/packages/games.scm (hyperrogue): Update to 9.4g. --- gnu/packages/games.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index f6b4e3f0bf..18ea6148c8 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3173,7 +3173,7 @@ throwing people around in pseudo-randomly generated buildings.") (define-public hyperrogue (package (name "hyperrogue") - (version "9.4c") + (version "9.4g") ;; When updating this package, be sure to update the "hyperrogue-data" ;; origin in native-inputs. (source (origin @@ -3184,7 +3184,7 @@ throwing people around in pseudo-randomly generated buildings.") "-src.tgz")) (sha256 (base32 - "1ri5fllnhqjm3dlnl1xbb9mlv79iigc940vbvcnk0v5k6p58pavq")))) + "09j9gnx701x28zfkrv3rjqlr56p89hyxk78gkpmmdfjgcq076pc2")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target @@ -3239,14 +3239,14 @@ throwing people around in pseudo-randomly generated buildings.") (string-append "hyperrogue" (string-join (string-split ,version #\.) "") - "-win/sounds/credits.txt") "-d" sounds)) + "/sounds/credits.txt") "-d" sounds)) ;; Extract sounds and music into sounds directory. (zero? (system* "unzip" "-j" data (string-append "hyperrogue" (string-join (string-split ,version #\.) "") - "-win/*.ogg") "-d" sounds))))))))) + "/*.ogg") "-d" sounds))))))))) (native-inputs `(("hyperrogue-data" ,(origin @@ -3258,7 +3258,7 @@ throwing people around in pseudo-randomly generated buildings.") "-win.zip")) (sha256 (base32 - "1cyyrsnrixygg3zyz97hpsm6jzwbhydiwk3kl0lm7qjnw2nzkhhh")))) + "1r57db4hm7fjcd27p8b6cdsnq2cgkym2kp9lrw7ha2asdf8w6gkb")))) ("unzip" ,unzip))) (inputs `(("font-dejavu" ,font-dejavu) -- cgit 1.4.1 From 162a4a03230985bbee2ee53f287459b32d1691c7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 27 Apr 2017 10:42:21 +0200 Subject: gnu: Add enigma. * gnu/packages/games.scm (enigma): New variable. --- gnu/packages/games.scm | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 18ea6148c8..b31bb93db9 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -84,6 +84,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages ncurses) #:use-module (gnu packages netpbm) + #:use-module (gnu packages networking) #:use-module (gnu packages ocaml) #:use-module (gnu packages python) #:use-module (gnu packages readline) @@ -3743,6 +3744,65 @@ settings.link.libs:Add(\"wavpack\")\n")) The Flag. You can even design your own maps!") (license license:bsd-3))) +(define-public enigma + (package + (name "enigma") + (version "1.21") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/enigma-game/" + "Release%20" version "/enigma-" + version ".tar.gz")) + (sha256 + (base32 + "00ffh9pypj1948pg3q9sjp1nmiabh52p5c8wpg9n1dcfgl3cywnq")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--with-system-enet") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'find-sdl + (lambda _ + (substitute* "configure" + (("SDL_ttf.h") "SDL/SDL_ttf.h")) + (substitute* '("tools/ttf2bmf.cc" + "lib-src/enigma-core/ecl_font.cc" + "lib-src/enigma-core/ecl_video.cc" + "lib-src/enigma-core/ecl_buffer.hh" + "src/SoundEngine.cc" + "src/SoundEngine.hh" + "src/MusicManager.cc" + "src/MusicManager.hh" + "src/d_models.cc" + "src/main.cc" + "src/network.cc") + (("#include \"SDL_(image|ttf|mixer|types|syswm|mutex).h\"" line header) + (string-append "#include \"SDL/SDL_" header ".h\""))) + (substitute* "src/main.cc" + (("#include " line header) + (string-append "#include \"SDL/SDL_" header ".h\""))) + #t))))) + (inputs + `(("xerces-c" ,xerces-c) + ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-ttf))) + ("curl" ,curl) + ("enet" ,enet))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("imagemagick" ,imagemagick))) + (home-page "http://www.nongnu.org/enigma") + (synopsis "Puzzle game with a dexterity component") + (description "Enigma is a puzzle game with 550 unique levels. The object +of the game is to find and uncover pairs of identically colored ‘Oxyd’ stones. +Simple? Yes. Easy? Certainly not! Hidden traps, vast mazes, laser beams, +and most of all, countless hairy puzzles usually block your direct way to the +Oxyd stones. Enigma’s game objects (and there are hundreds of them, lest you +get bored) interact in many unexpected ways, and since many of them follow the +laws of physics (Enigma’s special laws of physics, that is), controlling them +with the mouse isn’t always trivial.") + (license license:gpl2+))) + (define-public fillets-ng (package (name "fillets-ng") -- cgit 1.4.1 From cae491ab02e6e666f7108c1c851d845f7711bfa8 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 21 Apr 2017 21:30:03 +0200 Subject: gnu: Add lugaru. * gnu/packages/games.scm (lugaru): New variable. --- gnu/packages/games.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index b31bb93db9..9d554af418 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3941,3 +3941,43 @@ fabulous Orb of Zot.") license:expat license:zlib license:asl2.0)))) + +(define-public lugaru + (package + (name "lugaru") + (version "1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/osslugaru/lugaru/downloads/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "15zgcshy22q51rm72zi6y9z7qlgnz5iw3gczjdlir4bqmxy4gspk")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DSYSTEM_INSTALL=ON") + ;; no test target + #:tests? #f)) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("sdl2" ,sdl2) + ("glu" ,glu) + ("libjpeg" ,libjpeg-turbo) + ("libpng" ,libpng) + ("openal" ,openal) + ("vorbis" ,libvorbis) + ("zlib" ,zlib))) + (home-page "https://osslugaru.gitlab.io") + (synopsis "Cross-platform third-person action game") + (description "Lugaru is a third-person action game. The main character, +Turner, is an anthropomorphic rebel bunny rabbit with impressive combat skills. +In his quest to find those responsible for slaughtering his village, he uncovers +a far-reaching conspiracy involving the corrupt leaders of the rabbit republic +and the starving wolves from a nearby den. Turner takes it upon himself to +fight against their plot and save his fellow rabbits from slavery.") + (license (list license:gpl2+ ; code + ;; assets: + license:cc-by-sa3.0 + license:cc-by-sa4.0)))) -- cgit 1.4.1 From bff33e6cca4ffb8e721d7259ce5b9430aa93f21a Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Fri, 14 Apr 2017 00:37:40 +0200 Subject: gnu: Add 0ad. * gnu/packages/games.scm (0ad, 0ad-data): New variables. Co-authored-by: ng0 --- gnu/packages/games.scm | 187 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 9d554af418..b47a661935 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -28,6 +28,7 @@ ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 nee +;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,6 +53,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix svn-download) + #:use-module (guix gexp) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) @@ -120,6 +122,10 @@ #:use-module (gnu packages wxwidgets) #:use-module (gnu packages bison) #:use-module (gnu packages flex) + #:use-module (gnu packages cmake) + #:use-module (gnu packages gnuzilla) + #:use-module (gnu packages icu4c) + #:use-module (gnu packages networking) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) #:use-module (guix build-system python) @@ -3981,3 +3987,184 @@ fight against their plot and save his fellow rabbits from slavery.") ;; assets: license:cc-by-sa3.0 license:cc-by-sa4.0)))) + +(define-public 0ad-data + (package + (name "0ad-data") + (version "0.0.21-alpha") + (source + (origin + (method url-fetch) + (uri (string-append "http://releases.wildfiregames.com/0ad-" + version "-unix-data.tar.xz")) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "15xadyrpvq27lm9p1ny7bcmmv56m16h3xadbkdx69gfkzxc3razk")) + (modules '((guix build utils))) + (snippet + #~(begin + (for-each + (lambda (name) + (let* ((dir (string-append "binaries/data/mods/" name)) + (file (string-append dir "/" name ".zip")) + (unzip #$(file-append unzip "/bin/unzip"))) + (system* unzip "-d" dir file) + (delete-file file))) + '("mod" "public")) + #t)))) + (build-system trivial-build-system) + (native-inputs `(("tar" ,tar) + ("xz" ,xz))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((out (assoc-ref %outputs "out")) + (source (assoc-ref %build-inputs "source")) + (tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar")) + (xz-path (string-append (assoc-ref %build-inputs "xz") "/bin"))) + (setenv "PATH" xz-path) + (mkdir out) + (zero? (system* tar "xvf" source "-C" out "--strip=3")))))) + (synopsis "Data files for 0ad") + (description "0ad-data provides the data files required by the game 0ad.") + (home-page "https://play0ad.com") + (license (list (license:fsdg-compatible + "http://tavmjong.free.fr/FONTS/ArevCopyright.txt" + (license:license-comment + (package-license font-bitstream-vera))) + (package-license font-bitstream-vera) + license:cc-by-sa3.0 + license:expat + license:gfl1.0 + license:gpl2+ + license:gpl3+)))) + +(define-public 0ad + (package + (name "0ad") + (version "0.0.21-alpha") + (source + (origin + (method url-fetch) + (uri (string-append "http://releases.wildfiregames.com/0ad-" + version "-unix-build.tar.xz")) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "1kw3hqnr737ipx4f03khz3hvsh3ha7r8iy9njppk2faa53j27gln")) + ;; A snippet here would cause a build failure because of timestamps + ;; reset. See https://bugs.gnu.org/26734. + )) + (inputs + `(("0ad-data" ,0ad-data) + ("curl" ,curl) + ("enet" ,enet) + ("gloox" ,gloox) + ("icu4c" ,icu4c) + ("libpng" ,libpng) + ("libvorbis" ,libvorbis) + ("libxcursor" ,libxcursor) + ("libxml2" ,libxml2) + ("miniupnpc" ,miniupnpc) + ("mozjs-38" ,mozjs-38) + ("openal" ,openal) + ("sdl2" ,sdl2) + ("wxwidgets" ,wxwidgets) + ("zlib" ,zlib))) + (native-inputs + `(("boost" ,boost) + ("cmake" ,cmake) + ("mesa" ,mesa) + ("pkg-config" ,pkg-config) + ("python-2" ,python-2))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-bundles + (lambda _ + (delete-file-recursively "libraries/source/spidermonkey") + #t)) + (add-after 'unpack 'fix-x11-includes + (lambda _ + (substitute* "source/lib/sysdep/os/unix/x/x.cpp" + (("") "")) + (substitute* "source/lib/sysdep/os/unix/x/x.cpp" + (("") "")) + (substitute* "source/lib/sysdep/os/unix/x/x.cpp" + (("") "")) + #t)) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((jobs (number->string (parallel-job-count))) + (out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (data (string-append out "/share/0ad"))) + (setenv "JOBS" (string-append "-j" jobs)) + (setenv "CC" "gcc") + (with-directory-excursion "build/workspaces" + (zero? (system* "./update-workspaces.sh" + (string-append "--libdir=" lib) + (string-append "--datadir=" data) + "--minimal-flags" + ;; TODO: "--with-system-nvtt" + "--with-system-mozjs38")))))) + (add-before 'build 'chdir + (lambda _ + (chdir "build/workspaces/gcc") + #t)) + (delete 'check) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (chdir "../../../binaries") + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib")) + (data (string-append out "/share/0ad")) + (applications (string-append out "/share/applications")) + (pixmaps (string-append out "/share/pixmaps")) + (0ad-data (assoc-ref inputs "0ad-data"))) + ;; data + (copy-recursively "data" data) + (for-each (lambda (file) + (symlink (string-append 0ad-data "/" file) + (string-append data "/" file))) + '("config" "mods/mod" "mods/public" "tools")) + ;; libraries + (for-each (lambda (file) + (install-file file lib)) + (find-files "system" "\\.so$")) + ;; binaries + (install-file "system/pyrogenesis" bin) + (with-directory-excursion bin + (symlink "pyrogenesis" "0ad")) + ;; resources + (with-directory-excursion "../build/resources" + (install-file "0ad.desktop" applications) + (install-file "0ad.png" pixmaps)) + #t))) + (add-after 'install 'check + (lambda _ + (with-directory-excursion "system" + (zero? (system* "./test")))))))) + (home-page "https://play0ad.com") + (synopsis "3D real-time strategy game of ancient warfare") + (description "0 A.D. is a real-time strategy (RTS) game of ancient +warfare. It's a historically-based war/economy game that allows players to +relive or rewrite the history of twelve ancient civilizations, each depicted +at their peak of economic growth and military prowess. + +0ad needs a window manager that supports 'Extended Window Manager Hints'.") + (license (list license:bsd-2 + license:bsd-3 + license:expat + license:gpl2+ + license:ibmpl1.0 + license:isc + license:lgpl2.1 + license:lgpl3 + license:mpl2.0 + license:zlib)))) -- cgit 1.4.1 From ffed9eabcc1dd368d28f89728b2b901a180f5e19 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 24 Apr 2017 00:41:49 +0200 Subject: gnu: Add lierolibre. * gnu/packages/patches/lierolibre-check-unaligned-access.patch, gnu/packages/patches/lierolibre-is-free-software.patch, gnu/packages/patches/lierolibre-remove-arch-warning.patch, gnu/packages/patches/lierolibre-try-building-other-arch.patch, gnu/packages/patches/lierolibre-newer-libconfig.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/games.scm (lierolibre): New variable. --- gnu/local.mk | 5 + gnu/packages/games.scm | 65 +++++++ .../lierolibre-check-unaligned-access.patch | 30 ++++ .../patches/lierolibre-is-free-software.patch | 38 +++++ .../patches/lierolibre-newer-libconfig.patch | 190 +++++++++++++++++++++ .../patches/lierolibre-remove-arch-warning.patch | 30 ++++ .../lierolibre-try-building-other-arch.patch | 56 ++++++ 7 files changed, 414 insertions(+) create mode 100644 gnu/packages/patches/lierolibre-check-unaligned-access.patch create mode 100644 gnu/packages/patches/lierolibre-is-free-software.patch create mode 100644 gnu/packages/patches/lierolibre-newer-libconfig.patch create mode 100644 gnu/packages/patches/lierolibre-remove-arch-warning.patch create mode 100644 gnu/packages/patches/lierolibre-try-building-other-arch.patch (limited to 'gnu/packages/games.scm') diff --git a/gnu/local.mk b/gnu/local.mk index b7800a4205..8599e6d3a0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -776,6 +776,11 @@ dist_patch_DATA = \ %D%/packages/patches/libxslt-generated-ids.patch \ %D%/packages/patches/libxslt-CVE-2016-4738.patch \ %D%/packages/patches/libxt-guix-search-paths.patch \ + %D%/packages/patches/lierolibre-check-unaligned-access.patch \ + %D%/packages/patches/lierolibre-is-free-software.patch \ + %D%/packages/patches/lierolibre-newer-libconfig.patch \ + %D%/packages/patches/lierolibre-remove-arch-warning.patch \ + %D%/packages/patches/lierolibre-try-building-other-arch.patch \ %D%/packages/patches/linux-pam-no-setfsuid.patch \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index b47a661935..3517f06acf 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 nee ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,6 +91,7 @@ #:use-module (gnu packages ocaml) #:use-module (gnu packages python) #:use-module (gnu packages readline) + #:use-module (gnu packages textutils) #:use-module (gnu packages xorg) #:use-module (gnu packages pkg-config) #:use-module (gnu packages databases) @@ -2693,6 +2695,69 @@ your way through an underground cave system in search of the Grue. Can you capture it and get out alive?") (license license:agpl3+))) +(define-public lierolibre + (package + (name "lierolibre") + (version "0.5") + (source (origin + (method url-fetch) + (uri (string-append "https://launchpad.net/lierolibre/trunk/" + version "/+download/lierolibre-" + version ".tar.xz")) + (sha256 + (base32 + "1cf1gvsn4qq190lrf9k5bpjnqwlcfw7pajvdnh7z5r4jqw0rsbl9")) + (patches + (search-patches "lierolibre-check-unaligned-access.patch" + "lierolibre-try-building-other-arch.patch" + "lierolibre-remove-arch-warning.patch" + "lierolibre-newer-libconfig.patch" + "lierolibre-is-free-software.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete pre-compiled files. + (delete-file "data/LIERO.CHR") + (delete-file "data/LIERO.SND") + #t)))) + (build-system gnu-build-system) + (native-inputs + `(("imagemagick" ,imagemagick) + ("pkg-config" ,pkg-config) + ("util-linux" ,util-linux) + ("sox" ,sox))) + (inputs + `(("boost" ,boost) + ("libconfig" ,libconfig) + ("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer))) + ("zlib" ,zlib))) + (home-page "https://gitlab.com/lierolibre/lierolibre") + (synopsis "Old-school earthworm action game") + (description + "lierolibre is an earthworm action game where you fight another player +(or the computer) underground using a wide array of weapons. + +Features: +@itemize +@item 2 worms, 40 weapons, great playability, two game modes: Kill'em All +and Game of Tag, plus AI-players without true intelligence! +@item Dat nostalgia. +@item Extensions via a hidden F1 menu: +@itemize +@item Replays +@item Game controller support +@item Powerlevel palettes +@end itemize +@item Ability to write game variables to plain text files. +@item Ability to load game variables from both EXE and plain text files. +@item Scripts to extract and repack graphics, sounds and levels. +@end itemize + +To switch between different window sizes, use F6, F7 and F8, to switch to +fullscreen, use F5 or Alt+Enter.") + ;; Code mainly BSD-2, some parts under Boost 1.0. All assets are WTFPL2. + (license (list license:bsd-2 license:boost1.0 license:wtfpl2)))) + (define-public warzone2100 (package (name "warzone2100") diff --git a/gnu/packages/patches/lierolibre-check-unaligned-access.patch b/gnu/packages/patches/lierolibre-check-unaligned-access.patch new file mode 100644 index 0000000000..b720c9eb3b --- /dev/null +++ b/gnu/packages/patches/lierolibre-check-unaligned-access.patch @@ -0,0 +1,30 @@ +Patch copied from Debian: + +https://anonscm.debian.org/cgit/pkg-games/lierolibre.git/tree/debian/patches/0001-Use-unaligned-access-define-over-checking-arch.patch?id=82910748906855f6e6bfe30b3f077e8c793ae424 + +From 396f19b6b7743d394307f70f0c0108419824437b Mon Sep 17 00:00:00 2001 +From: Martin Erik Werner +Date: Sun, 28 Jun 2015 16:31:34 +0200 +Subject: [PATCH 1/3] Use unaligned access define over checking arch + +This todo item seems like it done, and just needed implementing... +--- + io/encoding.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gvl/io/encoding.hpp b/src/gvl/io/encoding.hpp +index c491677..89bb612 100644 +--- a/src/gvl/io/encoding.hpp ++++ b/src/gvl/io/encoding.hpp +@@ -374,7 +374,7 @@ struct octet_stream_writer + // inlining of the common case + if(std::size_t(end_ - cur_) >= len) + { +-#if GVL_X86 || GVL_X86_64 // TODO: A define that says whether unaligned access is allowed ++#if GVL_UNALIGNED_ACCESS + if(len < 64) // TODO: Tweak this limit + { + while(len > 4) +-- +2.4.6 + diff --git a/gnu/packages/patches/lierolibre-is-free-software.patch b/gnu/packages/patches/lierolibre-is-free-software.patch new file mode 100644 index 0000000000..626a24dd8c --- /dev/null +++ b/gnu/packages/patches/lierolibre-is-free-software.patch @@ -0,0 +1,38 @@ +Remove outdated license text. See COPYING and the description +at http://liero.be/ for more information. + +--- a/data/LIEROENG.TXT ++++ b/data/LIEROENG.TXT +@@ -11,14 +11,6 @@ + ----------------------------------------------------------------------------- + + GENERAL STUFF +- +- Liero is freeware. What that means is that you don't have to pay +- for it and using it has not been restricted in any way. You may +- distribute it to anyone and anyhow WITHOUT ANY CHANGES MADE TO IT'S +- CONTAINMENTS. +- +- The source code of this game is not distributed freely (neither +- commercially). So if you thought that maybe you could... forget it. + + Liero is a wormgame with weapons for 2 players. The object of the + game is definately what you think it is. Liero is excellent for +--- a/data/LIERO.TXT ++++ b/data/LIERO.TXT +@@ -12,15 +12,6 @@ + + YLEISTŽ + +- Liero on freeware, mik„ tarkoittaa ett„ sen k„yt”st„ ei tarvitse +- maksaa mit„„n eik„ k„ytt”„ ole rajoitettu mitenk„„n. Lieroa saa +- kopioida kelle tahansa ja miten tahansa SISŽLT™Ž MITENKŽŽN +- MUUTTAMATTA. +- +- Todettakoon t„ss„ ett„ Lieron l„hdekoodi ei ole vapaassa (sen +- enenp„„ kuin kaupallisessakaan) jakelussa. Joten jos ajattelit +- ett„... niin j„t„ ajatukset sikseen. +- + Liero on kahden pelattava aseellinen matosimulaatiopeli. Pelin + p„„m„„r„n„ on ep„ilem„tt„ se mit„ luuletkin. Liero sopii + erinomaisen hyvin aggressioiden purkuun ja kaverin rokitt„miseen diff --git a/gnu/packages/patches/lierolibre-newer-libconfig.patch b/gnu/packages/patches/lierolibre-newer-libconfig.patch new file mode 100644 index 0000000000..662d0f90fa --- /dev/null +++ b/gnu/packages/patches/lierolibre-newer-libconfig.patch @@ -0,0 +1,190 @@ +Fix compatibility with newer libconfig. + +Patch copied from upstream source repository: + +https://gitlab.com/lierolibre/lierolibre/commit/b27e3604aa6bfbfcc50db1000b394d06c87ae2f2 + +diff --git a/src/common.cpp b/src/common.cpp +index 2d6ada5..4942b05 100644 +--- a/src/common.cpp ++++ b/src/common.cpp +@@ -162,7 +162,7 @@ void Texts::loadFromCFG(std::string cfgFilePath) + const libconfig::Setting &sgmodes = texts["gameModes"]; + for(int i = 0; i < 4; ++i) + { +- gameModes[i] = (char const*)sgmodes["gameModes" + to_string(i)]; ++ gameModes[i] = (char const*)sgmodes[("gameModes" + to_string(i)).c_str()]; + } + + const libconfig::Setting &sgmspec = texts["gameModeSpec"]; +@@ -181,13 +181,13 @@ void Texts::loadFromCFG(std::string cfgFilePath) + const libconfig::Setting &swstates = texts["weapStates"]; + for(int i = 0; i < 3; ++i) + { +- weapStates[i] = (char const*)swstates["weapStates" + to_string(i)]; ++ weapStates[i] = (char const*)swstates[("weapStates" + to_string(i)).c_str()]; + } + + const libconfig::Setting &sknames = texts["keyNames"]; + for(int i = 1; i < 177; ++i) // First key starts at 1 + { +- keyNames[i] = (char const*)sknames["keyNames" + to_string(i)]; ++ keyNames[i] = (char const*)sknames[("keyNames" + to_string(i)).c_str()]; + } + + selWeap = (char const*)texts["selWeap"]; +@@ -315,8 +315,8 @@ void Common::loadPaletteFromCFG(std::string cfgFilePath) + const libconfig::Setting &scanim = palette["colorAnim"]; + for(int i = 0; i < 4; ++i) + { +- colorAnim[i].from = (int)scanim["colorAnim" + to_string(i) + "from"]; +- colorAnim[i].to = (int)scanim["colorAnim" + to_string(i) + "to"]; ++ colorAnim[i].from = (int)scanim[("colorAnim" + to_string(i) + "from").c_str()]; ++ colorAnim[i].to = (int)scanim[("colorAnim" + to_string(i) + "to").c_str()]; + } + } + +@@ -383,7 +383,7 @@ void Common::loadMaterialsFromCFG(std::string cfgFilePath) + + for(int i = 0; i < 256; ++i) + { +- const libconfig::Setting &smflags = smaterials["flags" + to_string(i)]; ++ const libconfig::Setting &smflags = smaterials[("flags" + to_string(i)).c_str()]; + materials[i].flags = smflags; + } + } +diff --git a/src/configCompat.cpp b/src/configCompat.cpp +index 1aeb262..a72c40f 100644 +--- a/src/configCompat.cpp ++++ b/src/configCompat.cpp +@@ -160,19 +160,19 @@ void Common::loadConstantsFromCFGVer0(string cfgFilePath) + const Setting &vconstants = constants["Values"]; + for(int i = 0; i < MaxC; ++i) + { +- C[i] = (int)vconstants[valueConstantsNamesCFGVer0[i]]; ++ C[i] = (int)vconstants[valueConstantsNamesCFGVer0[i].c_str()]; + } + + const Setting &sconstants = constants["Strings"]; + for(int i = 0; i < MaxS; ++i) + { +- S[i]= (char const*)sconstants[stringConstantsNamesCFGVer0[i]]; ++ S[i]= (char const*)sconstants[stringConstantsNamesCFGVer0[i].c_str()]; + } + + const Setting &hconstants = constants["Hacks"]; + for(int i = 0; i < MaxH; ++i) + { +- H[i] = (bool)hconstants[hackConstantsNamesVer0[i]]; ++ H[i] = (bool)hconstants[hackConstantsNamesVer0[i].c_str()]; + } + } + +diff --git a/src/configHelper.cpp b/src/configHelper.cpp +index fcd1f3f..a63bddc 100644 +--- a/src/configHelper.cpp ++++ b/src/configHelper.cpp +@@ -54,15 +54,11 @@ template Uint8 ConfigHelper::getValue(const Setting & + + template Uint8 ConfigHelper::getValue(const Setting &node, char const* index); + +-template Uint8 ConfigHelper::getValue(const Setting &node, string index); +- + // Non-const + template Uint8 ConfigHelper::getValue(Setting &node, int index); + + template Uint8 ConfigHelper::getValue(Setting &node, char const* index); + +-template Uint8 ConfigHelper::getValue(Setting &node, string index); +- + + // Since we still need specialisation per value type (Setting::Type), + // no need to templateify these +@@ -72,7 +68,7 @@ void ConfigHelper::put(Setting &node, string variable, string value) + { + node.add(variable, Setting::TypeString) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -83,7 +79,7 @@ void ConfigHelper::put(Setting &node, string variable, int value) + { + node.add(variable, Setting::TypeInt) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -94,7 +90,7 @@ void ConfigHelper::put(Setting &node, string variable, Uint8 value) + { + node.add(variable, Setting::TypeInt) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -105,7 +101,7 @@ void ConfigHelper::put(Setting &node, string variable, bool value) + { + node.add(variable, Setting::TypeBoolean) = value; + } else { +- Setting &var = node[variable]; ++ Setting &var = node[variable.c_str()]; + var = value; + } + } +@@ -135,6 +131,6 @@ Setting& ConfigHelper::getSubgroup(Setting &node, string groupName) + { + node.add(groupName, Setting::TypeGroup); + } +- return node[groupName]; ++ return node[groupName.c_str()]; + } + +diff --git a/src/constants.cpp b/src/constants.cpp +index 7fced6a..cf7bbfc 100644 +--- a/src/constants.cpp ++++ b/src/constants.cpp +@@ -523,19 +523,19 @@ void Common::loadConstantsFromCFG(std::string cfgFilePath) + const libconfig::Setting &vconstants = constants["Values"]; + for(int i = 0; i < MaxC; ++i) + { +- C[i] = (int)vconstants[valueConstantsNames[i]]; ++ C[i] = (int)vconstants[valueConstantsNames[i].c_str()]; + } + + const libconfig::Setting &sconstants = constants["Strings"]; + for(int i = 0; i < MaxS; ++i) + { +- S[i]= (char const*)sconstants[stringConstantsNames[i]]; ++ S[i]= (char const*)sconstants[stringConstantsNames[i].c_str()]; + } + + const libconfig::Setting &hconstants = constants["Hacks"]; + for(int i = 0; i < MaxH; ++i) + { +- H[i] = (bool)hconstants[hackConstantsNames[i]]; ++ H[i] = (bool)hconstants[hackConstantsNames[i].c_str()]; + } + } + +diff --git a/src/gfx/palette.cpp b/src/gfx/palette.cpp +index 3fd08c4..3d3bf22 100644 +--- a/src/gfx/palette.cpp ++++ b/src/gfx/palette.cpp +@@ -124,9 +124,9 @@ void Palette::readFromCFG(std::string cfgFilePath) + + for(int i = 0; i < 256; ++i) + { +- entries[i].r = cfgHelp.getValue(spentries, "entries" + to_string(i) + "r"); +- entries[i].g = cfgHelp.getValue(spentries, "entries" + to_string(i) + "g"); +- entries[i].b = cfgHelp.getValue(spentries, "entries" + to_string(i) + "b"); ++ entries[i].r = cfgHelp.getValue(spentries, ("entries" + to_string(i) + "r").c_str()); ++ entries[i].g = cfgHelp.getValue(spentries, ("entries" + to_string(i) + "g").c_str()); ++ entries[i].b = cfgHelp.getValue(spentries, ("entries" + to_string(i) + "b").c_str()); + } + } + diff --git a/gnu/packages/patches/lierolibre-remove-arch-warning.patch b/gnu/packages/patches/lierolibre-remove-arch-warning.patch new file mode 100644 index 0000000000..ca92b72546 --- /dev/null +++ b/gnu/packages/patches/lierolibre-remove-arch-warning.patch @@ -0,0 +1,30 @@ +Copied from Debian: + +https://anonscm.debian.org/cgit/pkg-games/lierolibre.git/tree/debian/patches/0003-Remove-unknown-arch-warning.patch?id=82910748906855f6e6bfe30b3f077e8c793ae424 + +From a9592533eeabed075b13d11c64f63f503dc13343 Mon Sep 17 00:00:00 2001 +From: Martin Erik Werner +Date: Sun, 28 Jun 2015 19:31:30 +0200 +Subject: [PATCH 3/3] Remove unknown arch warning + +The warning was just excessivley spammy, remove it. +--- + support/platform.h | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/gvl/support/platform.h b/src/gvl/support/platform.h +index 1857b7c..ff6a7d2 100644 +--- a/src/gvl/support/platform.h ++++ b/src/gvl/support/platform.h +@@ -87,8 +87,6 @@ + # define GVL_X86_64 1 + # elif defined(__i386__) || defined(_M_IX86) || defined(i386) || defined(i486) || defined(intel) || defined(x86) || defined(i86pc) + # define GVL_X86 1 +-# else +-# warning "Unknown architecture, please add it" + # endif + #endif + +-- +2.4.6 + diff --git a/gnu/packages/patches/lierolibre-try-building-other-arch.patch b/gnu/packages/patches/lierolibre-try-building-other-arch.patch new file mode 100644 index 0000000000..a40dfe6110 --- /dev/null +++ b/gnu/packages/patches/lierolibre-try-building-other-arch.patch @@ -0,0 +1,56 @@ +Copied from Debian: + +https://anonscm.debian.org/cgit/pkg-games/lierolibre.git/tree/debian/patches/0001-Use-unaligned-access-define-over-checking-arch.patch?id=82910748906855f6e6bfe30b3f077e8c793ae424 + +From a70691fb003cae1a33f06d682269285f9baa2dd9 Mon Sep 17 00:00:00 2001 +From: Martin Erik Werner +Date: Sun, 28 Jun 2015 19:00:23 +0200 +Subject: [PATCH 2/3] At least try building for other archs than x86* + +Allow attempting to build for other architectures than x86 and x86_64, +whether or not the build will succeed or produce sane output is another +question... It emits plenty of warnings about it now though... + +Configuration of the FPU controller is disabled on all but x86*, and the +uninformed hope and prayer is that defaults will be fine without messing +with them. +--- + math/ieee.cpp | 2 ++ + support/platform.h | 4 ++-- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/gvl/math/ieee.cpp b/src/gvl/math/ieee.cpp +index 8b740d4..e0803d2 100644 +--- a/src/gvl/math/ieee.cpp ++++ b/src/gvl/math/ieee.cpp +@@ -54,6 +54,8 @@ void gvl_init_ieee() + { + #if GVL_MSVCPP + // Nothing needs to be done, TODO: we should however check that the x87 state is right ++#elif !GVL_X86 && !GVL_X86_64 ++// No idea what to do, but run with defaults and pray it doesn't mess things up + #elif GVL_GCC && GVL_WIN32 + unsigned int const flags = _RC_NEAR | _PC_53 | _EM_INVALID | _EM_DENORMAL | _EM_ZERODIVIDE | _EM_OVERFLOW | _EM_UNDERFLOW | _EM_INEXACT; + _control87(flags, _MCW_EM | _MCW_PC | _MCW_RC); +diff --git a/src/gvl/support/platform.h b/src/gvl/support/platform.h +index 86dcaa6..1857b7c 100644 +--- a/src/gvl/support/platform.h ++++ b/src/gvl/support/platform.h +@@ -88,12 +88,12 @@ + # elif defined(__i386__) || defined(_M_IX86) || defined(i386) || defined(i486) || defined(intel) || defined(x86) || defined(i86pc) + # define GVL_X86 1 + # else +-# error "Unknown architecture, please add it" ++# warning "Unknown architecture, please add it" + # endif + #endif + + #if !GVL_LITTLE_ENDIAN && !GVL_BIG_ENDIAN +-# if GVL_X86 || GVL_X86_64 ++# if GVL_X86 || GVL_X86_64 || __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN + # define GVL_LITTLE_ENDIAN 1 + # else + # define GVL_BIG_ENDIAN 1 +-- +2.4.6 + -- cgit 1.4.1 From ec84c7870e47d7965397c413d6c81ab5f8e19ac0 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 17 May 2017 11:09:58 -0400 Subject: gnu: gnubg: Update to 1.05. * gnu/packages/games.scm (gnubg): Update to 1.05. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 3517f06acf..1da096b590 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -207,7 +207,7 @@ effects and music to make a completely free game.") (define-public gnubg (package (name "gnubg") - (version "1.02") + (version "1.05") (source (origin (method url-fetch) @@ -215,7 +215,7 @@ effects and music to make a completely free game.") version ".000-sources." "tar.gz")) (sha256 (base32 - "015mvjk2iw1cg1kxwxfnvp2rxb9cylf6yc39i30fdy414k07zkky")))) + "1nydliwfpljbys4941irixflqqwpv889mx5lcjz50ygih85q2wm8")))) (build-system gnu-build-system) (inputs `(("glib" ,glib) ("readline" ,readline) -- cgit 1.4.1 From 32199e9aa6a9904f9dc6ce235fb70638626095d8 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 17 May 2017 17:28:54 -0400 Subject: gnu: fizmo: Update to 0.8.4. * gnu/packages/games.scm (fizmo): Update to 0.8.4. [inputs]: Add freetype; change sdl to sdl2. --- gnu/packages/games.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 1da096b590..bd73df119f 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1059,14 +1059,14 @@ reference interpreter, using the Glk API.") (define-public fizmo (package (name "fizmo") - (version "0.7.9") + (version "0.8.4") (source (origin (method url-fetch) (uri (string-append "https://christoph-ender.de/fizmo/source/" name "-" version ".tar.gz")) (sha256 (base32 - "1w7cgyjrhgkadjrazijzhq7zh0pl5bfc6wl7mdpgh020y4kp46d7")))) + "1sd988db2302r7cbfcfghbmg8ck43c6hvnlnlpb0rqxb7pm9cwyy")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1079,12 +1079,13 @@ reference interpreter, using the Glk API.") (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("libjpeg" ,libjpeg) + `(("freetype" ,freetype) + ("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libsndfile" ,libsndfile) ("libxml2" ,libxml2) ("ncurses" ,ncurses) - ("sdl" ,sdl))) + ("sdl2" ,sdl2))) (home-page "https://christoph-ender.de/fizmo/") (synopsis "Z-machine interpreter") (description -- cgit 1.4.1 From e28cb7a5f5ad7107ce9d987670b7e5996a6e5eb9 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 17 May 2017 19:17:58 -0400 Subject: gnu: gamine: Update to 1.5. * gnu/packages/games.scm (gamine): Update to 1.5. --- gnu/packages/games.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index bd73df119f..ca4cdc9ddf 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -207,7 +207,7 @@ effects and music to make a completely free game.") (define-public gnubg (package (name "gnubg") - (version "1.05") + (version "1.02") (source (origin (method url-fetch) @@ -215,7 +215,7 @@ effects and music to make a completely free game.") version ".000-sources." "tar.gz")) (sha256 (base32 - "1nydliwfpljbys4941irixflqqwpv889mx5lcjz50ygih85q2wm8")))) + "015mvjk2iw1cg1kxwxfnvp2rxb9cylf6yc39i30fdy414k07zkky")))) (build-system gnu-build-system) (inputs `(("glib" ,glib) ("readline" ,readline) @@ -1411,14 +1411,14 @@ older games.") (define-public gamine (package (name "gamine") - (version "1.4") + (version "1.5") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gamine-game/" "gamine-" version ".tar.gz")) (sha256 (base32 - "1iny959i1kl2ab6z5xi4s66mrvrwcarxyvjfp2k1sx532s8knk8h")))) + "08wnk7w84c2413hwny89j2cn89cvfdf67bfc6wl0bf475if0mf4h")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit 1.4.1 From 6aa095f10c53588e3ac67a25539e53655256bbc0 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 17 May 2017 20:46:05 -0400 Subject: gnu: manaplus: Update to 1.7.5.14. * gnu/packages/games.scm (manaplus): Update to 1.7.5.14. [inputs]: Remove physfs. --- gnu/packages/games.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index ca4cdc9ddf..02da94d4ff 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1491,7 +1491,7 @@ is programmed in Haskell.") (define-public manaplus (package (name "manaplus") - (version "1.7.3.4") + (version "1.7.5.14") (source (origin (method url-fetch) (uri (string-append @@ -1499,7 +1499,7 @@ is programmed in Haskell.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "0mbxzsgjg16pqa3jnxkd7wwvw1lrx455r7fvwjfhzp0yv7acrn10")))) + "1b5q79jkdrck5lq8lvhnpq2mly257r8lylp7b8sp8xn4365f86ch")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1513,7 +1513,6 @@ is programmed in Haskell.") ("curl" ,curl) ("libxml2" ,libxml2) ("mesa" ,mesa) - ("physfs" ,physfs) ("sdl-union" ,(sdl-union)))) (home-page "http://manaplus.org") (synopsis "Client for 'The Mana World' and similar games") -- cgit 1.4.1 From b81b8943cff98b4fbaf30697a338befa4a730c4f Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 17 May 2017 21:52:27 -0400 Subject: gnu: openttd: Update to 1.7.0. * gnu/packages/games.scm (openttd): Update to 1.7.0. --- gnu/packages/games.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 02da94d4ff..fc1e3dcf37 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2160,14 +2160,14 @@ and a game metadata scraper.") (define openttd-engine (package (name "openttd-engine") - (version "1.6.1") + (version "1.7.0") (source (origin (method url-fetch) (uri (string-append "http://binaries.openttd.org/releases/" version "/openttd-" version "-source.tar.xz")) (sha256 (base32 - "1ak32fj5xkk2fvmm3g8i7wzmk4bh2ijsp8fzvvw5wj6365p9j24v")) + "1q4r5860dpkkw4fpfz3f8mvdd8xjpnwwzr9zybgmgb255bs0g4yz")) (modules '((guix build utils))) (snippet ;; The DOS port contains proprietary software. @@ -2207,8 +2207,8 @@ and a game metadata scraper.") passengers by land, water and air. It is a re-implementation of Transport Tycoon Deluxe with many enhancements including multiplayer mode, internationalization support, conditional orders and the ability to clone, -autoreplace and autoupdate vehicles. This package only includes the game engine. When you start -it you will be prompted to download a graphics set.") +autoreplace and autoupdate vehicles. This package only includes the game +engine. When you start it you will be prompted to download a graphics set.") (home-page "http://openttd.org/") ;; This package is GPLv2, except for a few files located in ;; "src/3rdparty/" which are under the 3-clause BSD, LGPLv2.1+ and Zlib -- cgit 1.4.1 From ae548434337cddf9677a4cd52b9370810b2cc9b6 Mon Sep 17 00:00:00 2001 From: nee Date: Mon, 22 May 2017 23:34:22 +0200 Subject: gnu: Add crawl-tiles. * gnu/packages/games.scm (crawl-tiles): New variable. Signed-off-by: Arun Isaac --- gnu/packages/games.scm | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) (limited to 'gnu/packages/games.scm') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index fc1e3dcf37..4c297005dc 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3979,8 +3979,6 @@ fish. The whole game is accompanied by quiet, comforting music.") (list (string-append "SQLITE_INCLUDE_DIR=" sqlite "/include") (string-append "prefix=" out) "SAVEDIR=~/.crawl" - ;; TODO: build graphical client - "TILES=" ;; don't build any bundled dependencies "BUILD_LUA=" "BUILD_SQLITE=" @@ -3999,7 +3997,8 @@ fish. The whole game is accompanied by quiet, comforting music.") (setenv "TERM" "xterm-256color") (zero? (apply system* "make" "debug" "test" (format #f "-j~d" (parallel-job-count)) - make-flags))))))) + ;; Force command line build for test cases. + (append make-flags '("GAME=crawl" "TILES="))))))))) (synopsis "Roguelike dungeon crawler game") (description "Dungeon Crawl Stone Soup is a roguelike adventure through dungeons filled with dangerous monsters in a quest to find the mystifyingly @@ -4013,6 +4012,39 @@ fabulous Orb of Zot.") license:zlib license:asl2.0)))) +(define-public crawl-tiles + (package + (inherit crawl) + (name "crawl-tiles") + (arguments + (substitute-keyword-arguments + (package-arguments crawl) + ((#:make-flags flags) + `(let ((dejavu (assoc-ref %build-inputs "font-dejavu"))) + (cons* + (string-append "PROPORTIONAL_FONT=" dejavu + "/share/fonts/truetype/DejaVuSans.ttf") + (string-append "MONOSPACED_FONT=" dejavu + "/share/fonts/truetype/DejaVuSansMono.ttf") + "TILES=y" + ;; Rename the executable to allow parallel installation with crawl. + "GAME=crawl-tiles" + ,flags))))) + (inputs + `(,@(package-inputs crawl) + ("font-dejavu" ,font-dejavu) + ("freetype6" ,freetype) + ("glu" ,glu) + ("libpng" ,libpng) + ("sdl2" ,sdl2) + ("sdl2-image" ,sdl2-image) + ("sdl2-mixer" ,sdl2-mixer))) + (native-inputs + `(,@(package-native-inputs crawl) + ;; TODO: Add advpng or pngcrush for additional PNG optimization. + ("which" ,which))) + (synopsis "Graphical roguelike dungeon crawler game"))) + (define-public lugaru (package (name "lugaru") -- cgit 1.4.1