guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 3dc723b83ea6991b0bebb216e4525851e1638072
Author: Nicolas Graves <ngra...@ngraves.fr>
AuthorDate: Sun Jun 15 00:35:26 2025 +0200

    gnu: btanks: Switch to scons-python.
    
    * gnu/packages/patches/btanks-scons-python.patch: Add file.
    * gnu/packages/patches/btanks-sl08-python.patch: Add file.
    * gnu/local.mk: Record patches
    * gnu/packages/games.scm (btanks):
      [source]{patches}: Record them.
      [arguments]{scons}: Remove keyword.
      {phases}: Refresh phase 'replace-removed-scons-syntax.
      [inputs]: Add python-wrapper.
    
    Change-Id: Id1e60938a22bf907288871187c0f481ba174e33e
    Signed-off-by: Sharlatan Hellseher <sharlata...@gmail.com>
---
 gnu/local.mk                                   |   2 +
 gnu/packages/games.scm                         |  18 ++--
 gnu/packages/patches/btanks-scons-python.patch | 112 +++++++++++++++++++++++++
 gnu/packages/patches/btanks-sl08-python.patch  |  98 ++++++++++++++++++++++
 4 files changed, 222 insertions(+), 8 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 957eb4d8da..2d6cbb7aaf 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1070,6 +1070,8 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch      \
   %D%/packages/patches/boolector-find-googletest.patch \
   %D%/packages/patches/boost-fix-duplicate-definitions-bug.patch       \
+  %D%/packages/patches/btanks-scons-python.patch               \
+  %D%/packages/patches/btanks-sl08-python.patch                        \
   %D%/packages/patches/byobu-writable-status.patch             \
   %D%/packages/patches/bubblewrap-fix-locale-in-tests.patch    \
   %D%/packages/patches/busybox-add-missing-sha-NI-guard.patch  \
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 28f324d6c9..cbbfa969a7 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -10266,12 +10266,14 @@ download and unpack them separately.")
        (uri (string-append "mirror://sourceforge/btanks/btanks-source/"
                            "btanks-" version ".tar.bz2"))
        (sha256
-        (base32 "0ha35kxc8xlbg74wsrbapfgxvcrwy6psjkqi7c6adxs55dmcxliz"))))
+        (base32 "0ha35kxc8xlbg74wsrbapfgxvcrwy6psjkqi7c6adxs55dmcxliz"))
+       (patches
+        (search-patches "btanks-scons-python.patch"
+                        "btanks-sl08-python.patch"))))
     (build-system scons-build-system)
     (arguments
      (list
       #:tests? #f ;there are none
-      #:scons scons-python2
       #:scons-flags
       #~(list (string-append "prefix=" #$output))
       #:phases
@@ -10279,12 +10281,11 @@ download and unpack them separately.")
           (add-after 'unpack 'replace-removed-scons-syntax
             (lambda _
               (substitute* "SConstruct"
-                (("Options")
-                 "Variables")
-                (("opts.Add\\(BoolOption.*")
-                 "opts.Add('gcc_visibility', 'gcc visibility', 'true')")
-                (("opts.Add\\(EnumOption.*")
-                 "opts.Add('mode', 'build mode', 'release')"))))
+                ;; XXX: Shorten CheckLibWithHeader.
+                (("\"xmmintrin\\.h\"")
+                 "'xmmintrin.h'")
+                (("(conf\\.CheckLibWithHeader\\(.*), \".*\\)" all check)
+                 (string-append check ")")))))
           (add-after 'set-paths 'set-sdl-paths
             (lambda* (#:key inputs #:allow-other-keys)
               (setenv "CPATH"
@@ -10326,6 +10327,7 @@ download and unpack them separately.")
                   libsmpeg-with-sdl1
                   libvorbis
                   lua-5.1
+                  python-wrapper
                   (sdl-union (list sdl sdl-mixer sdl-image sdl-ttf))
                   zlib))
     (native-inputs (list pkg-config zip))
diff --git a/gnu/packages/patches/btanks-scons-python.patch 
b/gnu/packages/patches/btanks-scons-python.patch
new file mode 100644
index 0000000000..6de2b04cce
--- /dev/null
+++ b/gnu/packages/patches/btanks-scons-python.patch
@@ -0,0 +1,112 @@
+Author: Reiner Herrmann <rei...@reiner-h.de>
+Description: Fix build with recent scons version
+Bug-Debian: https://bugs.debian.org/947555
+
+--- a/SConstruct
++++ b/SConstruct
+@@ -16,7 +16,7 @@
+ env['BUILDERS']['StaticLibrary'] = picLibBuilder
+ env['BUILDERS']['Library'] = picLibBuilder
+ 
+-opts = Options(['options.cache'])
++opts = Variables(['options.cache'])
+ #opts.Add('CC', 'C compiler')
+ #opts.Add('CXX', 'C++ compiler')
+ opts.Add('CCFLAGS', 'General options that are passed to the C compiler')
+@@ -33,9 +33,9 @@
+       opts.Add('lib_dir', 'resources directory (default: prefix/lib)', '')
+       opts.Add('plugins_dir', 'plugins directory (default: 
prefix/lib/btanks)', '')
+       opts.Add('resources_dir', 'resources directory (default: 
prefix/share/btanks)', '')
+-      opts.Add(BoolOption('gcc_visibility', 'gcc visibility', 'true'))
++      opts.Add(BoolVariable('gcc_visibility', 'gcc visibility', 'true'))
+ 
+-opts.Add(EnumOption('mode', 'build mode', 'release', 
allowed_values=('debug','release')))
++opts.Add(EnumVariable('mode', 'build mode', 'release', 
allowed_values=('debug','release')))
+ 
+ opts.Update(env)
+ opts.Save('options.cache', env.Clone())
+@@ -47,15 +47,15 @@
+ Export('debug')
+ 
+ import SCons.Util
+-if os.environ.has_key('CC'):
++if 'CC' in os.environ:
+       env['CC'] = os.environ['CC']
+-if os.environ.has_key('CFLAGS'):
++if 'CFLAGS' in os.environ:
+       env['CCFLAGS'] += SCons.Util.CLVar(os.environ['CFLAGS'])
+-if os.environ.has_key('CXX'):
++if 'CXX' in os.environ:
+       env['CXX'] = os.environ['CXX']
+-if os.environ.has_key('CXXFLAGS'):
++if 'CXXFLAGS' in os.environ:
+       env['CXXFLAGS'] += SCons.Util.CLVar(os.environ['CXXFLAGS'])
+-if os.environ.has_key('LDFLAGS'):
++if 'LDFLAGS' in os.environ:
+       env['LINKFLAGS'] += SCons.Util.CLVar(os.environ['LDFLAGS'])
+ 
+ if (sys.platform != "win32" and env['gcc_visibility']): 
+@@ -174,7 +174,7 @@
+ lib_dir = '.'
+ plugins_dir = ''
+ try : 
+-      version_file = file('.svnversion', 'r')
++      version_file = open('.svnversion', 'r')
+       try : 
+               version = version_file.readline().strip()
+               prefix = env['prefix']
+@@ -202,7 +202,7 @@
+ 
+       except: 
+               info = sys.exc_info()
+-              print "%s %s %s" %(info[0], info[1], info[2])
++              print("%s %s %s" %(info[0], info[1], info[2]))
+ except : 
+       svnversion = os.popen('svnversion -n .', 'r')
+       version = svnversion.readline().strip()
+@@ -243,29 +243,29 @@
+ Export('plugins_dir')
+ 
+ version = '0.9.%s' %version
+-print "version: %s" %version
++print("version: %s" %version)
+ 
+ bt_sublibs = ['mrt', 'sdlx', 'objects', 'clunk']
+ env.Append(CPPPATH=['#'])
+ 
+ if (os.path.exists('private')):
+       dir = 'private'
+-      BuildDir('#/build/' + buildmode + '/' + dir, dir, 0)
++      VariantDir('#/build/' + buildmode + '/' + dir, dir, 0)
+       SConscript('#/build/' + buildmode + '/' + dir + '/SConscript')  
+ 
+ for dir in bt_sublibs:
+-      BuildDir('#/build/' + buildmode + '/' + dir, dir, 0)
++      VariantDir('#/build/' + buildmode + '/' + dir, dir, 0)
+       SConscript('#/build/' + buildmode + '/' + dir + '/SConscript')
+ 
+ for dir in bt_sublibs:
+       env.Append(LIBPATH=['#/build/' + buildmode + '/' + dir])
+ 
+-env.BuildDir('#/build/' + buildmode + '/editor', 'editor', 0)
++env.VariantDir('#/build/' + buildmode + '/editor', 'editor', 0)
+ SConscript('#/build/' + buildmode + '/editor/SConscript')
+ 
+ env.Append(LIBPATH=['#/build/' + buildmode + '/engine'])
+ 
+-env.BuildDir('#/build/' + buildmode + '/engine', 'engine', 0)
++env.VariantDir('#/build/' + buildmode + '/engine', 'engine', 0)
+ SConscript('#/build/' + buildmode + '/engine/' + 'SConscript')
+ 
+ if len(install_targets) > 0:
+--- a/mrt/SConscript
++++ b/mrt/SConscript
+@@ -20,7 +20,7 @@
+       'net_exception.cpp', 'dict_serializator.cpp', 
+       ], LIBS=libs)
+ 
+-if sys.platform != 'win32' and env.has_key('prefix') and len(env['prefix']) > 
0:
++if sys.platform != 'win32' and 'prefix' in env and len(env['prefix']) > 0:
+       Import('install_targets')
+       Import('lib_dir')
+       install_targets.append(Install(lib_dir, mrt))
diff --git a/gnu/packages/patches/btanks-sl08-python.patch 
b/gnu/packages/patches/btanks-sl08-python.patch
new file mode 100644
index 0000000000..3e6eeefd61
--- /dev/null
+++ b/gnu/packages/patches/btanks-sl08-python.patch
@@ -0,0 +1,98 @@
+Description: Convert sl08.py to Python 3
+Author: Moritz Muehlenhoff <j...@debian.org>
+Bug-Debian: https://bugs.debian.org/936245
+
+--- btanks-0.9.8083.orig/engine/sl08/sl08.py
++++ btanks-0.9.8083/engine/sl08/sl08.py
+@@ -26,7 +26,7 @@ class Generator(object):
+               
+       def prototype(self, proto):     
+               r = '('
+-              for i in xrange(0, self.__n): 
++              for i in range(0, self.__n): 
+                       if proto: 
+                               r = r + "arg%d_type " %(i + 1)
+                       r = r + "a%d" %(i + 1)
+@@ -41,14 +41,14 @@ class Generator(object):
+                       r = '<typename return_type'
+               
+               if cname == 'base-signal': 
+-                      for i in xrange(0, self.__n): 
++                      for i in range(0, self.__n): 
+                               if not void or i > 0:
+                                       r = r + ", "
+                               r = r + "typename arg%d_type" %(i + 1)
+                       r = r + ">"
+                       return r
+               elif cname == 'signal': 
+-                      for i in xrange(0, self.__n): 
++                      for i in range(0, self.__n): 
+                               if not void or i > 0:
+                                       r = r + ", "
+                               r = r + "typename arg%d_type" %(i + 1)
+@@ -61,7 +61,7 @@ class Generator(object):
+                               r = r + "class validator_type = 
default_validator<return_type> >"
+                       return r
+               elif cname == 'slot': 
+-                      for i in xrange(0, self.__n): 
++                      for i in range(0, self.__n): 
+                               if not void or i > 0:
+                                       r = r + ", "
+                               r = r + "typename arg%d_type" %(i + 1)
+@@ -70,7 +70,7 @@ class Generator(object):
+                       r = r + "class object_type>"
+                       return r
+               elif cname == 'base-slot': 
+-                      for i in xrange(0, self.__n): 
++                      for i in range(0, self.__n): 
+                               if not void or i > 0:
+                                       r = r + ", "
+                               r = r + "typename arg%d_type" %(i + 1)
+@@ -86,22 +86,22 @@ class Generator(object):
+                       r = '<return_type'
+               
+               if cname == 'base-signal': 
+-                      for i in xrange(0, self.__n): 
++                      for i in range(0, self.__n): 
+                               r = r + ", arg%d_type" %(i + 1)
+                       r = r + ">"
+                       return r
+               elif cname == 'signal': 
+-                      for i in xrange(0, self.__n): 
++                      for i in range(0, self.__n): 
+                               r = r + ", arg%d_type" %(i + 1)
+                       r = r + ", validator_type>"
+                       return r
+               elif cname == 'slot': 
+-                      for i in xrange(0, self.__n): 
++                      for i in range(0, self.__n): 
+                               r = r + ", arg%d_type" %(i + 1)
+                       r = r + ", object_type>"
+                       return r
+               elif cname == 'base-slot': 
+-                      for i in xrange(0, self.__n): 
++                      for i in range(0, self.__n): 
+                               r = r + ", arg%d_type" %(i + 1)
+                       r = r + ">"
+                       return r
+@@ -329,11 +329,11 @@ class Generator(object):
+               
+ 
+ text = ''
+-for i in xrange(0, 6):
++for i in range(0, 6):
+       g = Generator(i)
+       text = text + "\n" + g.generate(); 
+ 
+-print """#ifndef BTANKS_SL08_SLOTSANDSIGNALS_H__
++print("""#ifndef BTANKS_SL08_SLOTSANDSIGNALS_H__
+ #define BTANKS_SL08_SLOTSANDSIGNALS_H__
+ 
+ /* sl08 - small slot/signals library
+@@ -387,5 +387,5 @@ namespace sl08 {
+ }
+ 
+ #endif
+-""" %(text);
++""" %(text));
+ 

Reply via email to