Skip to contentSkip to conversation

supertuxkart: new package

PATCH New Ezequiel Garcia 2 participants 7 messages Apr 12, 2016 – May 13, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 supertuxkart: new package

---
 package/Config.in                      |  1 +
 package/supertuxkart/Config.in         | 29 +++++++++++++++++++++++++++++
 package/supertuxkart/supertuxkart.hash |  2 ++
 package/supertuxkart/supertuxkart.mk   | 24 ++++++++++++++++++++++++
 4 files changed, 56 insertions(+)
 create mode 100644 package/supertuxkart/Config.in
 create mode 100644 package/supertuxkart/supertuxkart.hash
 create mode 100644 package/supertuxkart/supertuxkart.mk
package/Config.in +1 -0
index 64822bf5f6fa..8438bca33195 100644
@@ -232,6 +232,7 @@ menu "Games"
 	source "package/prboom/Config.in"
 	source "package/rubix/Config.in"
 	source "package/sl/Config.in"
+	source "package/supertuxkart/Config.in"
 endmenu
 
 menu "Graphic libraries and applications (graphic/text)"
package/supertuxkart/Config.in new file +29 -0
new file mode 100644
index 000000000000..4e9f5bb09ac6
@@ -0,0 +1,29 @@
+config BR2_PACKAGE_SUPERTUXKART
+	bool "supertuxkart"
+	depends on BR2_USE_MMU # fork()
+	depends on BR2_PACKAGE_HAS_LIBGL
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_BLUEZ5_UTILS
+	select BR2_PACKAGE_JPEG
+	select BR2_PACKAGE_LIBCURL
+	select BR2_PACKAGE_LIBFRIBIDI
+	select BR2_PACKAGE_LIBGLU
+	select BR2_PACKAGE_LIBOGG
+	select BR2_PACKAGE_LIBPNG
+	select BR2_PACKAGE_LIBVORBIS
+	select BR2_PACKAGE_OPENAL
+	select BR2_PACKAGE_XLIB_LIBXRANDR
+	select BR2_PACKAGE_ZLIB
+	help
+	  Karts. Nitro. Action! SuperTuxKart is a free 3D arcade kart
+	  racer with multiple karts, tracks and modes you can play.
+	  Beat the evil Nolok by any means necessary, and make the
+	  mascot kingdom safe once again!
+
+	  http://supertuxkart.sourceforge.net/Main_Page
+
+comment "supertuxkart needs a toolchain w/ threads, C++"
+	depends on !(BR2_INSTALL_LIBSTDCPP || BR2_TOOLCHAIN_HAS_THREADS)
+
+comment "supertuxkart needs an OpenGL backend"
+	depends on !BR2_PACKAGE_HAS_LIBGL
package/supertuxkart/supertuxkart.hash new file +2 -0
new file mode 100644
index 000000000000..d8e7ac30f6d1
@@ -0,0 +1,2 @@
+# Locally computed
+sha256	c50f00a71df165fb613d20e86bea2d9d5e51ed3e27e1d436fbac3b07cf2ea149	supertuxkart-0.9.1-src.tar.xz
package/supertuxkart/supertuxkart.mk new file +24 -0
new file mode 100644
index 000000000000..e1c67b4e14f4
@@ -0,0 +1,24 @@
+################################################################################
+#
+# supertuxkart
+#
+################################################################################
+
+SUPERTUXKART_VERSION = 0.9.1
+SUPERTUXKART_SOURCE = supertuxkart-$(SUPERTUXKART_VERSION)-src.tar.xz
+SUPERTUXKART_SITE = http://downloads.sourceforge.net/project/supertuxkart/SuperTuxKart/$(SUPERTUXKART_VERSION)
+SUPERTUXKART_LICENSE = GPLv3
+SUPERTUXKART_LICENSE_FILES = COPYING
+
+SUPERTUXKART_DEPENDENCIES += bluez5_utils jpeg libcurl libfribidi libgl libglu libpng \
+			     libogg libvorbis openal xlib_libXrandr zlib
+
+# Since supertuxkart is not installing libstkirrlicht.so,
+# and given we don't really need that library to be shared
+# we turn off shared libs here.
+SUPERTUXKART_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF
+
+# Disable Wiimote support
+SUPERTUXKART_CONF_OPTS += -DUSE_WIIUSE=OFF
+
+$(eval $(cmake-package))
Signature · 1 line
2.7.0
#1 lore raw

PATCH 1/1 supertuxkart: new package

Quoted 29 lines · Ezequiel Garcia
---
  package/Config.in                      |  1 +
  package/supertuxkart/Config.in         | 29 +++++++++++++++++++++++++++++
  package/supertuxkart/supertuxkart.hash |  2 ++
  package/supertuxkart/supertuxkart.mk   | 24 ++++++++++++++++++++++++
  4 files changed, 56 insertions(+)

create mode 100644 package/supertuxkart/Config.in create mode 100644 package/supertuxkart/supertuxkart.hash create mode 100644 package/supertuxkart/supertuxkart.mk

package/Config.in +1 -0
index 64822bf5f6fa..8438bca33195 100644
@@ -232,6 +232,7 @@ menu "Games"
  	source "package/prboom/Config.in"
  	source "package/rubix/Config.in"
  	source "package/sl/Config.in"
+	source "package/supertuxkart/Config.in"
  endmenu
 
  menu "Graphic libraries and applications (graphic/text)"
package/supertuxkart/Config.in new file +0 -0
new file mode 100644
index 000000000000..4e9f5bb09ac6

package/supertuxkart/Config.in line 6

Quoted 6 lines
package/supertuxkart/Config.in new file +6 -0
@@ -0,0 +1,29 @@
+config BR2_PACKAGE_SUPERTUXKART
+	bool "supertuxkart"
+	depends on BR2_USE_MMU # fork()
+	depends on BR2_PACKAGE_HAS_LIBGL
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_BLUEZ5_UTILS

Needs:

depends on BR2_USE_WCHAR # libglib2
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2 depends on !BR2_STATIC_LIBS # uses dlfcn
depends on !BR2_PACKAGE_BLUEZ_UTILS # conflicts with 4.x version depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
# wordexp support not in our uClibc configuration depends on !BR2_TOOLCHAIN_USES_UCLIBC
depends on BR2_TOOLCHAIN_HAS_SYNC_4

(though wchar and threads are already covered by Xorg)

Unless of course it can also work with bluez4. In that case the dependencies
get pretty complicated...

package/supertuxkart/Config.in line 14

Quoted 8 lines
package/supertuxkart/Config.in new file +8 -0
+	select BR2_PACKAGE_JPEG
+	select BR2_PACKAGE_LIBCURL
+	select BR2_PACKAGE_LIBFRIBIDI
+	select BR2_PACKAGE_LIBGLU
+	select BR2_PACKAGE_LIBOGG
+	select BR2_PACKAGE_LIBPNG
+	select BR2_PACKAGE_LIBVORBIS
+	select BR2_PACKAGE_OPENAL

Needs:

depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS

package/supertuxkart/Config.in line 26

Quoted 12 lines
package/supertuxkart/Config.in new file +12 -0
+	select BR2_PACKAGE_XLIB_LIBXRANDR
+	select BR2_PACKAGE_ZLIB
+	help
+	  Karts. Nitro. Action! SuperTuxKart is a free 3D arcade kart
+	  racer with multiple karts, tracks and modes you can play.
+	  Beat the evil Nolok by any means necessary, and make the
+	  mascot kingdom safe once again!
+
+	  http://supertuxkart.sourceforge.net/Main_Page
+
+comment "supertuxkart needs a toolchain w/ threads, C++"
+	depends on !(BR2_INSTALL_LIBSTDCPP || BR2_TOOLCHAIN_HAS_THREADS)

This needs to be updated with all the dependencies above.

Quoted 21 lines
package/supertuxkart/Config.in new file +3 -0
+
+comment "supertuxkart needs an OpenGL backend"
+	depends on !BR2_PACKAGE_HAS_LIBGL
package/supertuxkart/supertuxkart.hash new file +2 -0
new file mode 100644
index 000000000000..d8e7ac30f6d1
@@ -0,0 +1,2 @@
+# Locally computed
+sha256	c50f00a71df165fb613d20e86bea2d9d5e51ed3e27e1d436fbac3b07cf2ea149	supertuxkart-0.9.1-src.tar.xz
package/supertuxkart/supertuxkart.mk new file +4 -0
new file mode 100644
index 000000000000..e1c67b4e14f4
@@ -0,0 +1,24 @@
+################################################################################
+#
+# supertuxkart
+#

package/supertuxkart/supertuxkart.mk line 14

Quoted 10 lines
package/supertuxkart/supertuxkart.mk new file +10 -0
+################################################################################
+
+SUPERTUXKART_VERSION = 0.9.1
+SUPERTUXKART_SOURCE = supertuxkart-$(SUPERTUXKART_VERSION)-src.tar.xz
+SUPERTUXKART_SITE = http://downloads.sourceforge.net/project/supertuxkart/SuperTuxKart/$(SUPERTUXKART_VERSION)
+SUPERTUXKART_LICENSE = GPLv3
+SUPERTUXKART_LICENSE_FILES = COPYING
+
+SUPERTUXKART_DEPENDENCIES += bluez5_utils jpeg libcurl libfribidi libgl libglu libpng \
+			     libogg libvorbis openal xlib_libXrandr zlib

From the CMakeLists, it looks like fribidi and Xrandr are optional (controlled
by USE_FRIBIDI and USE_XRANDR).

I don't see why libglu is needed.

I also see a dependency on freetype.

package/supertuxkart/supertuxkart.mk line 21

Quoted 7 lines
package/supertuxkart/supertuxkart.mk new file +7 -0
+
+# Since supertuxkart is not installing libstkirrlicht.so,
+# and given we don't really need that library to be shared
+# we turn off shared libs here.
+SUPERTUXKART_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF
+
+# Disable Wiimote support

Why?

Actually, it looks like bluez is only needed for wiimote support, so you could
probably enable this conditionally depending on BR2_PACKAGE_BLUEZ5_UTILS and avoid the complicated dependencies in Config.in.

package/supertuxkart/supertuxkart.mk line 24

Quoted 4 lines
package/supertuxkart/supertuxkart.mk new file +3 -0
+SUPERTUXKART_CONF_OPTS += -DUSE_WIIUSE=OFF
+
+$(eval $(cmake-package))

It looks like irrlicht adds -I/usr/X11R6/include - this will have to be
patched away.

It would also be nice if CMakeLists could be updated to use the system glew
instead of the bundled one.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#2 lore raw

PATCH 1/1 supertuxkart: new package

Arnout,

Thanks a lot for your feedback, and sorry for the delay. I did this during vacations... and then vacations was over :/

Quoted 43 lines · Arnout Vandecappelle
Quoted 32 lines · Ezequiel Garcia
---
  package/Config.in                      |  1 +
  package/supertuxkart/Config.in         | 29
+++++++++++++++++++++++++++++
  package/supertuxkart/supertuxkart.hash |  2 ++
  package/supertuxkart/supertuxkart.mk   | 24 ++++++++++++++++++++++++
  4 files changed, 56 insertions(+)

create mode 100644 package/supertuxkart/Config.in create mode 100644 package/supertuxkart/supertuxkart.hash create mode 100644 package/supertuxkart/supertuxkart.mk

package/Config.in +1 -0
index 64822bf5f6fa..8438bca33195 100644
@@ -232,6 +232,7 @@ menu "Games"
        source "package/prboom/Config.in"
        source "package/rubix/Config.in"
        source "package/sl/Config.in"
+       source "package/supertuxkart/Config.in"
  endmenu
 
  menu "Graphic libraries and applications (graphic/text)"
package/supertuxkart/Config.in new file +0 -0
new file mode 100644
index 000000000000..4e9f5bb09ac6

package/supertuxkart/Config.in line 6

Quoted 6 lines
package/supertuxkart/Config.in new file +6 -0
@@ -0,0 +1,29 @@
+config BR2_PACKAGE_SUPERTUXKART
+       bool "supertuxkart"
+       depends on BR2_USE_MMU # fork()
+       depends on BR2_PACKAGE_HAS_LIBGL
+       depends on BR2_PACKAGE_XORG7
+       select BR2_PACKAGE_BLUEZ5_UTILS

Needs:

Quoted 1 line

depends on BR2_USE_WCHAR # libglib2

Don't see the libglib2 dependency. Where is it?

Is it because of fribidi? In that case, should we really depend on it?

Quoted 1 line

depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2

Ditto: dbus?

Quoted 3 lines

depends on !BR2_STATIC_LIBS # uses dlfcn
depends on !BR2_PACKAGE_BLUEZ_UTILS # conflicts with 4.x version depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4

Why 3.4 ?

Quoted 1 line
        # wordexp support not in our uClibc configuration

wordexp?

Quoted 67 lines

depends on !BR2_TOOLCHAIN_USES_UCLIBC
depends on BR2_TOOLCHAIN_HAS_SYNC_4

(though wchar and threads are already covered by Xorg)

Unless of course it can also work with bluez4. In that case the
dependencies get pretty complicated...

package/supertuxkart/Config.in line 14

Quoted 8 lines
package/supertuxkart/Config.in new file +8 -0
+       select BR2_PACKAGE_JPEG
+       select BR2_PACKAGE_LIBCURL
+       select BR2_PACKAGE_LIBFRIBIDI
+       select BR2_PACKAGE_LIBGLU
+       select BR2_PACKAGE_LIBOGG
+       select BR2_PACKAGE_LIBPNG
+       select BR2_PACKAGE_LIBVORBIS
+       select BR2_PACKAGE_OPENAL

Needs:

depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS

package/supertuxkart/Config.in line 26

Quoted 12 lines
package/supertuxkart/Config.in new file +12 -0
+       select BR2_PACKAGE_XLIB_LIBXRANDR
+       select BR2_PACKAGE_ZLIB
+       help
+         Karts. Nitro. Action! SuperTuxKart is a free 3D arcade kart
+         racer with multiple karts, tracks and modes you can play.
+         Beat the evil Nolok by any means necessary, and make the
+         mascot kingdom safe once again!
+
+         http://supertuxkart.sourceforge.net/Main_Page
+
+comment "supertuxkart needs a toolchain w/ threads, C++"
+       depends on !(BR2_INSTALL_LIBSTDCPP || BR2_TOOLCHAIN_HAS_THREADS)

This needs to be updated with all the dependencies above.

Quoted 26 lines
package/supertuxkart/Config.in new file +3 -0
+
+comment "supertuxkart needs an OpenGL backend"
+       depends on !BR2_PACKAGE_HAS_LIBGL
package/supertuxkart/supertuxkart.hash new file +2 -0
new file mode 100644
index 000000000000..d8e7ac30f6d1
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 c50f00a71df165fb613d20e86bea2d9d5e51ed3e27e1d436fbac3b07cf2ea149

supertuxkart-0.9.1-src.tar.xz

package/supertuxkart/supertuxkart.mk new file +4 -0
new file mode 100644
index 000000000000..e1c67b4e14f4
@@ -0,0 +1,24 @@
 
+################################################################################
+#
+# supertuxkart
+#
Quoted 17 lines
Quoted 10 lines
package/supertuxkart/supertuxkart.mk new file +5 -0
+################################################################################
+
+SUPERTUXKART_VERSION = 0.9.1
+SUPERTUXKART_SOURCE = supertuxkart-$(SUPERTUXKART_VERSION)-src.tar.xz
+SUPERTUXKART_SITE =

http://downloads.sourceforge.net/project/supertuxkart/SuperTuxKart/$(SUPERTUXKART_VERSION)

package/supertuxkart/supertuxkart.mk new file +4 -0
+SUPERTUXKART_LICENSE = GPLv3
+SUPERTUXKART_LICENSE_FILES = COPYING
+
+SUPERTUXKART_DEPENDENCIES += bluez5_utils jpeg libcurl libfribidi libgl
Quoted 2 lines

libglu libpng \
+ libogg libvorbis openal xlib_libXrandr zlib

From the CMakeLists, it looks like fribidi and Xrandr are optional
(controlled by USE_FRIBIDI and USE_XRANDR).

OK.

Quoted 2 lines

I don't see why libglu is needed.

I don't know much about glu, I just saw this stuff:

$ grep -r glu .
./lib/glew/include/GL/glew.h:/* <glu.h> */
./lib/glew/include/GL/glew.h:#    include <OpenGL/glu.h>
./lib/glew/include/GL/glew.h:#    include <GL/glu.h>
./lib/glew/CMakeFiles/glew.dir/C.includecache:OpenGL/glu.h
./lib/glew/CMakeFiles/glew.dir/C.includecache:GL/glu.h
[..]
./INSTALL.md:libgl1-mesa-dev libglu1-mesa-dev libcurl4-openssl-dev
libfribidi-dev libbluetooth-dev libxrandr-dev
Quoted 2 lines

I also see a dependency on freetype.

Where?

Quoted 12 lines

package/supertuxkart/supertuxkart.mk line 21

Quoted 8 lines
package/supertuxkart/supertuxkart.mk new file +7 -0
+
+# Since supertuxkart is not installing libstkirrlicht.so,
+# and given we don't really need that library to be shared
+# we turn off shared libs here.
+SUPERTUXKART_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF
+
+# Disable Wiimote support

Why?

No reason.

Quoted 5 lines

Actually, it looks like bluez is only needed for wiimote support, so you
could probably enable this conditionally depending on BR2_PACKAGE_BLUEZ5_UTILS and avoid the complicated dependencies in Config.in.

OK.

Quoted 9 lines

package/supertuxkart/supertuxkart.mk line 24

Quoted 5 lines
package/supertuxkart/supertuxkart.mk new file +3 -0
+SUPERTUXKART_CONF_OPTS += -DUSE_WIIUSE=OFF
+
+$(eval $(cmake-package))

It looks like irrlicht adds -I/usr/X11R6/include - this will have to be
patched away.

Hm, I see.

Quoted 3 lines

It would also be nice if CMakeLists could be updated to use the system glew
instead of the bundled one.

Why? If the package bundles a glew, why not using it?

Signature · 2 lines
Ezequiel Garc?a, VanguardiaSur
www.vanguardiasur.com.ar
#3 lore raw

PATCH 1/1 supertuxkart: new package

Quoted 7 lines · Ezequiel Garcia

Arnout,

Thanks a lot for your feedback, and sorry for the delay. I did this during vacations... and then vacations was over :/

Quoted 1 line · Arnout Vandecappelle

On 04/12/16 07:33, Ezequiel Garcia wrote:

[snip]

Quoted 8 lines
Quoted 6 lines
Quoted 1 line

+ select BR2_PACKAGE_BLUEZ5_UTILS

Needs:

depends on BR2_USE_WCHAR # libglib2

Don't see the libglib2 dependency. Where is it?

bluez5_utils selects libglib2 and dbus. I should have written:

depends on BR2_USE_WCHAR # bluez5_utils <- libglib2

but I just copied the lines from bluez5_utils...

Quoted 5 lines

Is it because of fribidi? In that case, should we really depend on it?

Quoted 1 line

depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2

Quoted 7 lines

Ditto: dbus?

Quoted 3 lines

depends on !BR2_STATIC_LIBS # uses dlfcn
depends on !BR2_PACKAGE_BLUEZ_UTILS # conflicts with 4.x version depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4

Why 3.4 ?

All inherited from bluez5_utils.

Quoted 28 lines
Quoted 2 lines
        # wordexp support not in our uClibc configuration

wordexp?

Quoted 23 lines

depends on !BR2_TOOLCHAIN_USES_UCLIBC
depends on BR2_TOOLCHAIN_HAS_SYNC_4

(though wchar and threads are already covered by Xorg)

Unless of course it can also work with bluez4. In that case the
dependencies get pretty complicated...

package/supertuxkart/Config.in line 14

Quoted 8 lines
package/supertuxkart/Config.in new file +8 -0
+       select BR2_PACKAGE_JPEG
+       select BR2_PACKAGE_LIBCURL
+       select BR2_PACKAGE_LIBFRIBIDI
+       select BR2_PACKAGE_LIBGLU
+       select BR2_PACKAGE_LIBOGG
+       select BR2_PACKAGE_LIBPNG
+       select BR2_PACKAGE_LIBVORBIS
+       select BR2_PACKAGE_OPENAL

Needs:

depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS

Same story here: these lines should have a '# openal' after them.

Quoted 17 lines
Quoted 17 lines

package/supertuxkart/Config.in line 26

Quoted 13 lines
package/supertuxkart/Config.in new file +12 -0
+       select BR2_PACKAGE_XLIB_LIBXRANDR
+       select BR2_PACKAGE_ZLIB
+       help
+         Karts. Nitro. Action! SuperTuxKart is a free 3D arcade kart
+         racer with multiple karts, tracks and modes you can play.
+         Beat the evil Nolok by any means necessary, and make the
+         mascot kingdom safe once again!
+
+         http://supertuxkart.sourceforge.net/Main_Page
+
+comment "supertuxkart needs a toolchain w/ threads, C++"
+       depends on !(BR2_INSTALL_LIBSTDCPP || BR2_TOOLCHAIN_HAS_THREADS)

This needs to be updated with all the dependencies above.

[snip]

Quoted 32 lines
Quoted 9 lines
Quoted 9 lines
package/supertuxkart/supertuxkart.mk new file +4 -0
@@ -0,0 +1,24 @@
 
+################################################################################
+#
+# supertuxkart
+#
Quoted 17 lines
Quoted 10 lines
package/supertuxkart/supertuxkart.mk new file +5 -0
+################################################################################
+
+SUPERTUXKART_VERSION = 0.9.1
+SUPERTUXKART_SOURCE = supertuxkart-$(SUPERTUXKART_VERSION)-src.tar.xz
+SUPERTUXKART_SITE =

http://downloads.sourceforge.net/project/supertuxkart/SuperTuxKart/$(SUPERTUXKART_VERSION)

package/supertuxkart/supertuxkart.mk new file +4 -0
+SUPERTUXKART_LICENSE = GPLv3
+SUPERTUXKART_LICENSE_FILES = COPYING
+
+SUPERTUXKART_DEPENDENCIES += bluez5_utils jpeg libcurl libfribidi libgl
Quoted 2 lines

libglu libpng \
+ libogg libvorbis openal xlib_libXrandr zlib

From the CMakeLists, it looks like fribidi and Xrandr are optional
(controlled by USE_FRIBIDI and USE_XRANDR).

OK.

Quoted 2 lines

I don't see why libglu is needed.

Quoted 8 lines

I don't know much about glu, I just saw this stuff:

$ grep -r glu .
./lib/glew/include/GL/glew.h:/* <glu.h> */
./lib/glew/include/GL/glew.h:#    include <OpenGL/glu.h>
./lib/glew/include/GL/glew.h:#    include <GL/glu.h>
./lib/glew/CMakeFiles/glew.dir/C.includecache:OpenGL/glu.h
./lib/glew/CMakeFiles/glew.dir/C.includecache:GL/glu.h

OK.

Quoted 8 lines

[..]
./INSTALL.md:libgl1-mesa-dev libglu1-mesa-dev libcurl4-openssl-dev libfribidi-dev libbluetooth-dev libxrandr-dev

Quoted 2 lines

I also see a dependency on freetype.

Where?

I should have written: an _optional_ dependency on freetype. CMakeLists.txt
contains find_package(Freetype)

Quoted 34 lines
Quoted 13 lines

package/supertuxkart/supertuxkart.mk line 21

Quoted 9 lines
package/supertuxkart/supertuxkart.mk new file +7 -0
+
+# Since supertuxkart is not installing libstkirrlicht.so,
+# and given we don't really need that library to be shared
+# we turn off shared libs here.
+SUPERTUXKART_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF
+
+# Disable Wiimote support

Why?

No reason.

Quoted 5 lines

Actually, it looks like bluez is only needed for wiimote support, so you
could probably enable this conditionally depending on BR2_PACKAGE_BLUEZ5_UTILS and avoid the complicated dependencies in Config.in.

OK.

Quoted 9 lines

package/supertuxkart/supertuxkart.mk line 24

Quoted 5 lines
package/supertuxkart/supertuxkart.mk new file +3 -0
+SUPERTUXKART_CONF_OPTS += -DUSE_WIIUSE=OFF
+
+$(eval $(cmake-package))

It looks like irrlicht adds -I/usr/X11R6/include - this will have to be
patched away.

Quoted 7 lines

Hm, I see.

Quoted 3 lines

It would also be nice if CMakeLists could be updated to use the system glew
instead of the bundled one.

Why? If the package bundles a glew, why not using it?

We avoid bundled libraries for several reasons:

- size: if libglew is selected for another reason, we will have it twice;

- security: if a (security) bug is fixed in libglew and supertuxkart doesn't update their libglew, it remains unfixed.

- build consistency: if we need to patch libglew to make it build e.g. for some arch or libc, we have to produce the same patch again for supertuxkart.

See e.g. [1] for extensive explanation why bundling is bad.

However, it's possible that supertuxkart has made project-specific
modifications to libglew, in this case unbundling is difficult. I see that at least it is an older version than what we have.

Regards,
Arnout

[1] https://fedoraproject.org/wiki/Bundled_Libraries?rd=Packaging:Bundled_Libraries

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#4 lore raw

PATCH 1/1 supertuxkart: new package

On 9 May 2016 at 20:16, Arnout Vandecappelle <[email protected]> wrote:
[..]

Quoted 3 lines
Quoted 1 line

Why? If the package bundles a glew, why not using it?

As a matter of fact, they bunde jpeglib, libpng, zlib and a few more as well.

Quoted 2 lines

We avoid bundled libraries for several reasons:

Sure, I understand why bundling is a shitty idea. My point is:
it was not OUR idea, but something that comes from upstream.

I haven't checked, but given they bundle their own Irrlicht engine (and even they modified it enough to call it Antarctica now), it seems they know what they are doing.

Or another possible explanation is that they are lazy, and wanted to bundle to make installation easier (in some non-Linux OS?).

Whatever the reasons, I don't want to spend time modifying a package in a way that won't be accepted upstream.

[..]

Quoted 5 lines

However, it's possible that supertuxkart has made project-specific
modifications to libglew, in this case unbundling is difficult. I see that at least it is an older version than what we have.

Exactly my point. And even if they haven't made modifications to some of the bundled packages, I really don't want to spend time doing a change that is not in the upstream roadmap.

Signature · 2 lines
Ezequiel Garc?a, VanguardiaSur
www.vanguardiasur.com.ar
#5 lore raw

PATCH 1/1 supertuxkart: new package

Quoted 7 lines · Ezequiel Garcia

On 9 May 2016 at 20:16, Arnout Vandecappelle <[email protected]> wrote:
[..]

Quoted 3 lines
Quoted 1 line

Why? If the package bundles a glew, why not using it?

As a matter of fact, they bunde jpeglib, libpng, zlib and a few more as well.

jpeglib, libpng and zlib are AFAICS only used on Windows and Mac. For us, it's
using the installed ones. You even added those dependencies :-)

Quoted 19 lines
Quoted 3 lines

We avoid bundled libraries for several reasons:

Sure, I understand why bundling is a shitty idea. My point is:
it was not OUR idea, but something that comes from upstream.

I haven't checked, but given they bundle their own Irrlicht engine (and even they modified it enough to call it Antarctica now), it seems they know what they are doing.

Or another possible explanation is that they are lazy, and wanted to bundle to make installation easier (in some non-Linux OS?).

Whatever the reasons, I don't want to spend time modifying a package in a way that won't be accepted upstream.

[..]

Quoted 1 line
Quoted 8 lines
Quoted 4 lines

However, it's possible that supertuxkart has made project-specific
modifications to libglew, in this case unbundling is difficult. I see that at least it is an older version than what we have.

Exactly my point. And even if they haven't made modifications to some of the bundled packages, I really don't want to spend time doing a change that is not in the upstream roadmap.

Fair enough, the bundling is probably not bad enough to block this package.

Perhaps then add a comment in the .mk file, near the dependencies list, that
it has bundled modified versions of libglew and irrlicht. Actually we don't have irrlicht (yet) so for that it doesn't matter much :-)

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#6 lore raw

PATCH 1/1 supertuxkart: new package

In reply to Arnout Vandecappelle

Arnout,

Quoted 116 lines · Arnout Vandecappelle
Quoted 32 lines · Ezequiel Garcia
---
  package/Config.in                      |  1 +
  package/supertuxkart/Config.in         | 29
+++++++++++++++++++++++++++++
  package/supertuxkart/supertuxkart.hash |  2 ++
  package/supertuxkart/supertuxkart.mk   | 24 ++++++++++++++++++++++++
  4 files changed, 56 insertions(+)

create mode 100644 package/supertuxkart/Config.in create mode 100644 package/supertuxkart/supertuxkart.hash create mode 100644 package/supertuxkart/supertuxkart.mk

package/Config.in +1 -0
index 64822bf5f6fa..8438bca33195 100644
@@ -232,6 +232,7 @@ menu "Games"
        source "package/prboom/Config.in"
        source "package/rubix/Config.in"
        source "package/sl/Config.in"
+       source "package/supertuxkart/Config.in"
  endmenu
 
  menu "Graphic libraries and applications (graphic/text)"
package/supertuxkart/Config.in new file +0 -0
new file mode 100644
index 000000000000..4e9f5bb09ac6

package/supertuxkart/Config.in line 6

Quoted 6 lines
package/supertuxkart/Config.in new file +6 -0
@@ -0,0 +1,29 @@
+config BR2_PACKAGE_SUPERTUXKART
+       bool "supertuxkart"
+       depends on BR2_USE_MMU # fork()
+       depends on BR2_PACKAGE_HAS_LIBGL
+       depends on BR2_PACKAGE_XORG7
+       select BR2_PACKAGE_BLUEZ5_UTILS

Needs:

depends on BR2_USE_WCHAR # libglib2
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2 depends on !BR2_STATIC_LIBS # uses dlfcn
depends on !BR2_PACKAGE_BLUEZ_UTILS # conflicts with 4.x version depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
# wordexp support not in our uClibc configuration depends on !BR2_TOOLCHAIN_USES_UCLIBC
depends on BR2_TOOLCHAIN_HAS_SYNC_4

(though wchar and threads are already covered by Xorg)

Unless of course it can also work with bluez4. In that case the
dependencies get pretty complicated...

package/supertuxkart/Config.in line 14

Quoted 8 lines
package/supertuxkart/Config.in new file +8 -0
+       select BR2_PACKAGE_JPEG
+       select BR2_PACKAGE_LIBCURL
+       select BR2_PACKAGE_LIBFRIBIDI
+       select BR2_PACKAGE_LIBGLU
+       select BR2_PACKAGE_LIBOGG
+       select BR2_PACKAGE_LIBPNG
+       select BR2_PACKAGE_LIBVORBIS
+       select BR2_PACKAGE_OPENAL

Needs:

depends on BR2_INSTALL_LIBSTDCPP depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS

package/supertuxkart/Config.in line 26

Quoted 12 lines
package/supertuxkart/Config.in new file +12 -0
+       select BR2_PACKAGE_XLIB_LIBXRANDR
+       select BR2_PACKAGE_ZLIB
+       help
+         Karts. Nitro. Action! SuperTuxKart is a free 3D arcade kart
+         racer with multiple karts, tracks and modes you can play.
+         Beat the evil Nolok by any means necessary, and make the
+         mascot kingdom safe once again!
+
+         http://supertuxkart.sourceforge.net/Main_Page
+
+comment "supertuxkart needs a toolchain w/ threads, C++"
+       depends on !(BR2_INSTALL_LIBSTDCPP || BR2_TOOLCHAIN_HAS_THREADS)

This needs to be updated with all the dependencies above.

Quoted 26 lines
package/supertuxkart/Config.in new file +3 -0
+
+comment "supertuxkart needs an OpenGL backend"
+       depends on !BR2_PACKAGE_HAS_LIBGL
package/supertuxkart/supertuxkart.hash new file +2 -0
new file mode 100644
index 000000000000..d8e7ac30f6d1
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 c50f00a71df165fb613d20e86bea2d9d5e51ed3e27e1d436fbac3b07cf2ea149

supertuxkart-0.9.1-src.tar.xz

package/supertuxkart/supertuxkart.mk new file +4 -0
new file mode 100644
index 000000000000..e1c67b4e14f4
@@ -0,0 +1,24 @@
 
+################################################################################
+#
+# supertuxkart
+#
Quoted 17 lines
Quoted 10 lines
package/supertuxkart/supertuxkart.mk new file +5 -0
+################################################################################
+
+SUPERTUXKART_VERSION = 0.9.1
+SUPERTUXKART_SOURCE = supertuxkart-$(SUPERTUXKART_VERSION)-src.tar.xz
+SUPERTUXKART_SITE =

http://downloads.sourceforge.net/project/supertuxkart/SuperTuxKart/$(SUPERTUXKART_VERSION)

package/supertuxkart/supertuxkart.mk new file +4 -0
+SUPERTUXKART_LICENSE = GPLv3
+SUPERTUXKART_LICENSE_FILES = COPYING
+
+SUPERTUXKART_DEPENDENCIES += bluez5_utils jpeg libcurl libfribidi libgl
Quoted 2 lines

libglu libpng \
+ libogg libvorbis openal xlib_libXrandr zlib

From the CMakeLists, it looks like fribidi and Xrandr are optional
(controlled by USE_FRIBIDI and USE_XRANDR).

I made fribidi optional, but kept libXrandr. The reason for keeping it, is that it requires either libXrandr, or libXxf86vm.

    if(USE_XRANDR)
        find_package(Xrandr REQUIRED)
        if(NOT XRANDR_FOUND)
            message(FATAL_ERROR "XRANDR not found.")
        endif()
    else()
        find_library(IRRLICHT_XF86VM_LIBRARY Xxf86vm)
        mark_as_advanced(IRRLICHT_XF86VM_LIBRARY)
    endif()

I figured given it's messy to have a conditional select, and since the default is libXrandr, I thought we could just stick with it.

Quoted 3 lines

I also see a dependency on freetype.

Added as optional dependency.

Quoted 12 lines

package/supertuxkart/supertuxkart.mk line 21

Quoted 8 lines
package/supertuxkart/supertuxkart.mk new file +7 -0
+
+# Since supertuxkart is not installing libstkirrlicht.so,
+# and given we don't really need that library to be shared
+# we turn off shared libs here.
+SUPERTUXKART_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF
+
+# Disable Wiimote support

Why?

Quoted 5 lines

Actually, it looks like bluez is only needed for wiimote support, so you
could probably enable this conditionally depending on BR2_PACKAGE_BLUEZ5_UTILS and avoid the complicated dependencies in Config.in.

Right, so I made bluez5_utils optional and simplified the above dependencies.

Quoted 9 lines

package/supertuxkart/supertuxkart.mk line 24

Quoted 5 lines
package/supertuxkart/supertuxkart.mk new file +3 -0
+SUPERTUXKART_CONF_OPTS += -DUSE_WIIUSE=OFF
+
+$(eval $(cmake-package))

It looks like irrlicht adds -I/usr/X11R6/include - this will have to be
patched away.

Hm.. yes, it can go away. I have no idea if this is supposed to go upstream or not.

Signature · 2 lines
Ezequiel Garc?a, VanguardiaSur
www.vanguardiasur.com.ar