summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2017-04-12 11:28:01 +0200
committerRicardo Wurmus <rekado@elephly.net>2017-04-13 13:08:26 +0200
commitbd71525b7ad1bb4f6896793ca7f6283e178b3a06 (patch)
tree4e1d62800f1f2573fbe33cf5dd33abb6061d91fe /gnu/packages/patches
parent0da0f434c61d35739ab7f3741a34daf1e82133e7 (diff)
downloadguix-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.patch19
-rw-r--r--gnu/packages/patches/kiki-makefile.patch57
-rw-r--r--gnu/packages/patches/kiki-missing-includes.patch55
-rw-r--r--gnu/packages/patches/kiki-portability-64bit.patch328
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)

+     {