summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/game-development.scm4
-rw-r--r--gnu/packages/patches/grfcodec-gcc-compat.patch31
2 files changed, 33 insertions, 2 deletions
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 19d5e71506..d7502dbc29 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -213,6 +213,7 @@ DeuTex has functions such as merging wads, etc.")
        (uri (string-append "https://binaries.openttd.org/extra/"
                            name "/" version "/" name "-" version
                            "-source.tar.xz"))
+       (patches (search-patches "grfcodec-gcc-compat.patch"))
        (sha256
         (base32 "08admgnpqcsifpicbm56apgv360fxapqpbbsp10qyk8i22w1ivsk"))))
     (build-system gnu-build-system)
@@ -238,8 +239,7 @@ DeuTex has functions such as merging wads, etc.")
                              "readme" "readme.rpn"))
                  (for-each (lambda (file)
                              (install-file file man))
-                           (find-files "." "\\.1"))))
-             #t)))))
+                           (find-files "." "\\.1")))))))))
     (inputs
      (list boost libpng zlib))
     (synopsis "GRF development tools")
diff --git a/gnu/packages/patches/grfcodec-gcc-compat.patch b/gnu/packages/patches/grfcodec-gcc-compat.patch
new file mode 100644
index 0000000000..02685d46fd
--- /dev/null
+++ b/gnu/packages/patches/grfcodec-gcc-compat.patch
@@ -0,0 +1,31 @@
+Fix type comparison issue that is a hard error in GCC 10.
+
+Taken from upstream:
+
+  https://github.com/OpenTTD/grfcodec/commit/bb692b2c723c5e87cc8f89f445928e97594d5b8f
+
+diff --git a/src/command.cpp b/src/command.cpp
+index 9aa0e14..1f32cf1 100644
+--- a/src/command.cpp
++++ b/src/command.cpp
+@@ -300,8 +300,9 @@ bool parse_comment(const string&line){
+ 		break;
+ 	case BEAUTIFY:{
+ 		commandstream>>command_part;
+-		uint val=find_command(command_part,beaut),togglebit;
+-		if(val!=(uint)-1&&val!=OFF)_commandState.beautifier=true;
++		int val=find_command(command_part,beaut);
++		uint togglebit;
++		if(val!=-1&&val!=OFF)_commandState.beautifier=true;
+ 		switch(val){
+ 		case -1:
+ 			IssueMessage(0,COMMAND_INVALID_ARG,gen[BEAUTIFY].name);
+@@ -372,7 +373,7 @@ bool parse_comment(const string&line){
+ dotoggle:
+ 			commandstream>>command_part;
+ 			val=find_command(command_part,beaut);
+-			if(!commandstream||val==(uint)-1){
++			if(!commandstream||val==-1){
+ 				IssueMessage(0,COMMAND_INVALID_ARG,gen[BEAUTIFY].name);
+ 				return true;
+ 			}