diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2017-04-12 11:28:01 +0200 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2017-04-13 13:08:26 +0200 |
commit | bd71525b7ad1bb4f6896793ca7f6283e178b3a06 (patch) | |
tree | 4e1d62800f1f2573fbe33cf5dd33abb6061d91fe /gnu/packages/patches | |
parent | 0da0f434c61d35739ab7f3741a34daf1e82133e7 (diff) | |
download | guix-bd71525b7ad1bb4f6896793ca7f6283e178b3a06.tar.gz |
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.
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r-- | gnu/packages/patches/kiki-level-selection-crash.patch | 19 | ||||
-rw-r--r-- | gnu/packages/patches/kiki-makefile.patch | 57 | ||||
-rw-r--r-- | gnu/packages/patches/kiki-missing-includes.patch | 55 | ||||
-rw-r--r-- | gnu/packages/patches/kiki-portability-64bit.patch | 328 |
4 files changed, 459 insertions, 0 deletions
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 <vector> ++#include <limits.h> + + #define DEBUG_PICKING false + +--- a/kodilib/src/tools/KIntrospection.h ++++ b/kodilib/src/tools/KIntrospection.h +@@ -11,6 +11,7 @@ + #endif + + #include <string> ++#include <string.h> + + // -------------------------------------------------------------------------------------------------------- + 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 <sys/types.h> // INT_MAX ++#include <limits.h> // INT_MAX + #include <stdio.h> + + // -------------------------------------------------------------------------------------------------------- +--- a/kodilib/src/tools/KStringTools.h ++++ b/kodilib/src/tools/KStringTools.h +@@ -9,6 +9,7 @@ + #include <string> + #include <vector> + #include <stdarg.h> ++#include <string.h> + + // -------------------------------------------------------------------------------------------------------- + +--- a/kodilib/src/tools/KXMLTools.cpp ++++ b/kodilib/src/tools/KXMLTools.cpp +@@ -7,6 +7,7 @@ + #include "KConsole.h" + #include "KSeparatedMatrix.h" + #include <stdio.h> ++#include <stdlib.h> + + // -------------------------------------------------------------------------------------------------------- + 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<std::string> 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<std::string> & tags ) + { + std::string open("<"); +- unsigned int minLoc = std::string::npos; ++ std::string::size_type minLoc = std::string::npos; + std::vector<std::string>::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<std::string> matchingEntries; + std::vector<std::string>::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) + { |