[gnome-music/wip/mschraal/3-30-flatpak-lua: 3/4] flatpak: Add lua support for grilo-plugins
- From: Marinus Schraal <mschraal src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/mschraal/3-30-flatpak-lua: 3/4] flatpak: Add lua support for grilo-plugins
- Date: Tue, 2 Oct 2018 16:08:38 +0000 (UTC)
commit 561768b2c490a35659710167cc7e789b58c2bc7f
Author: Jean Felder <jfelder src gnome org>
Date: Mon Sep 24 22:34:30 2018 +0200
flatpak: Add lua support for grilo-plugins
Some Grilo plugins used by Music are written in lua (for example,
theaudiodb-coverart one). Flatpak default runtime does not provide lua
support, so these plugins are disabled.
Add Flathub shared modules as a git submodule. Add lua manifest file from
this repository to enable lua support in flatpak builds.
Enable lua support in grilo-plugins compilation.
Closes: #226
.gitmodules | 3 +
org.gnome.Music.json | 4 +-
subprojects/shared-modules/README.md | 22 +
subprojects/shared-modules/SDL/SDL-1.2.15.json | 36 ++
.../SDL/SDL_Pango-0.1.2-API-adds.patch | 118 +++++
.../shared-modules/SDL/SDL_image-1.2.12.json | 19 +
.../shared-modules/SDL/SDL_mixer-1.2.12.json | 22 +
subprojects/shared-modules/SDL/SDL_net-1.2.8.json | 19 +
.../shared-modules/SDL/SDL_pango-0.1.2.json | 23 +
subprojects/shared-modules/SDL/SDL_ttf-2.0.11.json | 19 +
.../shared-modules/SDL/sdl-libx11-build.patch | 59 +++
subprojects/shared-modules/cld2/CMakeLists.txt | 155 +++++++
subprojects/shared-modules/cld2/cld2.json | 24 +
subprojects/shared-modules/glew/glew.json | 26 ++
subprojects/shared-modules/glu/glu-9.0.0.json | 11 +
.../gtk2/gtk2-use-adwaita-theme.patch | 80 ++++
subprojects/shared-modules/gtk2/gtk2.json | 69 +++
subprojects/shared-modules/lame/lame-3.99.5.json | 32 ++
.../lame/lame-ansi2knr2devnull.patch | 43 ++
.../lame/lame-gtk1-ac-directives.patch | 205 ++++++++
subprojects/shared-modules/lame/lame-msse.patch | 17 +
.../libappindicator/libappindicator-ftbfs.patch | 20 +
.../libappindicator-gtk2-12.10.json | 122 +++++
.../libappindicator-gtk3-12.10.json | 122 +++++
.../libappindicator-gtk3-introspection-12.10.json | 122 +++++
.../libappindicator/libappindicator.json.in | 122 +++++
.../lua5.3/lua-5.3.0-autotoolize.patch | 192 ++++++++
.../lua5.3/lua-5.3.0-configure-compat-module.patch | 35 ++
.../shared-modules/lua5.3/lua-5.3.0-idsize.patch | 12 +
subprojects/shared-modules/lua5.3/lua-5.3.2.json | 34 ++
.../shared-modules/pygame/audiofile-gcc6.patch | 21 +
.../pygame/fluidsynth-no-rawmidi.patch | 69 +++
.../shared-modules/pygame/portmidi-no-java.patch | 105 +++++
.../shared-modules/pygame/pygame-1.9.3.json | 94 ++++
.../pygame/pygame-add-search-dirs.patch | 27 ++
.../shared-modules/python2.7/python-2.7.15.json | 46 ++
.../shared-modules/qt4/qt4-4.8.7-minimal.json | 86 ++++
subprojects/shared-modules/qt4/qt4-aarch64.patch | 514 +++++++++++++++++++++
subprojects/shared-modules/smpeg/smpeg-0.4.5.json | 39 ++
.../shared-modules/smpeg/smpeg-am-prog-as.patch | 12 +
.../smpeg/smpeg-export-mpegaudio-class.patch | 17 +
subprojects/shared-modules/smpeg/smpeg-gcc6.patch | 40 ++
.../shared-modules/smpeg/smpeg-no-gtk.patch | 37 ++
subprojects/shared-modules/udev/udev-175.json | 43 ++
44 files changed, 2936 insertions(+), 1 deletion(-)
---
diff --git a/.gitmodules b/.gitmodules
index fa136361..b2aeb1fe 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "subprojects/libgd"]
path = subprojects/libgd
url = https://gitlab.gnome.org/GNOME/libgd.git
+[submodule "subprojects/shared-modules"]
+ path = subprojects/shared-modules
+ url = https://github.com/flathub/shared-modules.git
diff --git a/org.gnome.Music.json b/org.gnome.Music.json
index 180d3d40..3da71bbe 100644
--- a/org.gnome.Music.json
+++ b/org.gnome.Music.json
@@ -17,6 +17,7 @@
"--own-name=org.mpris.MediaPlayer2.GnomeMusic",
"--talk-name=org.gnome.SettingsDaemon.MediaKeys",
"--talk-name=com.intel.dleyna-server",
+ "--talk-name=org.gtk.vfs.mountpoint_http",
"--socket=pulseaudio",
"--filesystem=xdg-music",
"--filesystem=xdg-cache/media-art"
@@ -41,6 +42,7 @@
"*.a"
],
"modules": [
+ "subprojects/shared-modules/lua5.3/lua-5.3.2.json",
{
"name": "libmediaart",
"sources": [
@@ -124,7 +126,7 @@
"-Denable-filesystem=no",
"-Denable-freebox=no",
"-Denable-local-metadata=no",
- "-Denable-lua-factory=no",
+ "-Denable-lua-factory=yes",
"-Denable-metadata-store=no",
"-Denable-opensubtitles=no",
"-Denable-optical-media=no",
diff --git a/subprojects/shared-modules/README.md b/subprojects/shared-modules/README.md
new file mode 100644
index 00000000..756fc7f4
--- /dev/null
+++ b/subprojects/shared-modules/README.md
@@ -0,0 +1,22 @@
+This repository contains commonly shared modules and is intended to be used as a git submodule.
+
+To use shared modules for packaging an application, add the submodule:
+
+```
+git submodule add https://github.com/flathub/shared-modules.git
+```
+
+Then modules from this repository can be specified in a manifest JSON file like this:
+
+```json
+"modules": [
+ "shared-modules/SDL/SDL-1.2.15.json",
+ {
+ "name": "foo"
+ }
+]
+```
+
+[See the description in the Flathub
wiki](https://github.com/flathub/flathub/wiki/App-Requirements#shared-modules) for more information.
+
+Please do not request adding modules unless they have many users in the Flathub repository.
diff --git a/subprojects/shared-modules/SDL/SDL-1.2.15.json b/subprojects/shared-modules/SDL/SDL-1.2.15.json
new file mode 100644
index 00000000..975f8b80
--- /dev/null
+++ b/subprojects/shared-modules/SDL/SDL-1.2.15.json
@@ -0,0 +1,36 @@
+{
+ "name": "SDL1",
+ "rm-configure": true,
+ "config-opts": ["--disable-static"],
+ "cleanup": [
+ "/bin",
+ "/share/man",
+ "/share/aclocal",
+ "/include",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/lib/*.a"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://www.libsdl.org/release/SDL-1.2.15.tar.gz",
+ "sha256": "d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00"
+ },
+ {
+ "type": "patch",
+ "path": "sdl-libx11-build.patch"
+ },
+ {
+ "type": "script",
+ "dest-filename": "autogen.sh",
+ "commands": [
+ "sed -i -e 's/.*AM_PATH_ESD.*//' configure.in",
+ "cp -p /usr/share/automake-*/config.{sub,guess} build-scripts",
+ "aclocal",
+ "libtoolize",
+ "autoconf"
+ ]
+ }
+ ]
+}
diff --git a/subprojects/shared-modules/SDL/SDL_Pango-0.1.2-API-adds.patch
b/subprojects/shared-modules/SDL/SDL_Pango-0.1.2-API-adds.patch
new file mode 100644
index 00000000..6b1f2d05
--- /dev/null
+++ b/subprojects/shared-modules/SDL/SDL_Pango-0.1.2-API-adds.patch
@@ -0,0 +1,118 @@
+diff -Naupr SDL_Pango-0.1.2.orig/src/SDL_Pango.c SDL_Pango-0.1.2/src/SDL_Pango.c
+--- SDL_Pango-0.1.2.orig/src/SDL_Pango.c 2004-12-10 10:06:33.000000000 +0100
++++ SDL_Pango-0.1.2/src/SDL_Pango.c 2006-09-29 17:42:09.000000000 +0200
+@@ -723,13 +723,8 @@ SDLPango_CopyFTBitmapToSurface(
+ SDL_UnlockSurface(surface);
+ }
+
+-/*!
+- Create a context which contains Pango objects.
+-
+- @return A pointer to the context as a SDLPango_Context*.
+-*/
+ SDLPango_Context*
+-SDLPango_CreateContext()
++SDLPango_CreateContext_GivenFontDesc(const char* font_desc)
+ {
+ SDLPango_Context *context = g_malloc(sizeof(SDLPango_Context));
+ G_CONST_RETURN char *charset;
+@@ -743,8 +738,7 @@ SDLPango_CreateContext()
+ pango_context_set_language (context->context, pango_language_from_string (charset));
+ pango_context_set_base_dir (context->context, PANGO_DIRECTION_LTR);
+
+- context->font_desc = pango_font_description_from_string(
+- MAKE_FONT_NAME (DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE));
++ context->font_desc = pango_font_description_from_string(font_desc);
+
+ context->layout = pango_layout_new (context->context);
+
+@@ -762,6 +756,17 @@ SDLPango_CreateContext()
+ }
+
+ /*!
++ Create a context which contains Pango objects.
++
++ @return A pointer to the context as a SDLPango_Context*.
++*/
++SDLPango_Context*
++SDLPango_CreateContext()
++{
++ SDLPango_CreateContext_GivenFontDesc(MAKE_FONT_NAME(DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE));
++}
++
++/*!
+ Free a context.
+
+ @param *context [i/o] Context to be free
+@@ -1053,6 +1058,20 @@ SDLPango_SetMarkup(
+ pango_layout_set_font_description (context->layout, context->font_desc);
+ }
+
++void
++SDLPango_SetText_GivenAlignment(
++ SDLPango_Context *context,
++ const char *text,
++ int length,
++ SDLPango_Alignment alignment)
++{
++ pango_layout_set_attributes(context->layout, NULL);
++ pango_layout_set_text (context->layout, text, length);
++ pango_layout_set_auto_dir (context->layout, TRUE);
++ pango_layout_set_alignment (context->layout, alignment);
++ pango_layout_set_font_description (context->layout, context->font_desc);
++}
++
+ /*!
+ Set plain text to context.
+ Text must be utf-8.
+@@ -1067,11 +1086,7 @@ SDLPango_SetText(
+ const char *text,
+ int length)
+ {
+- pango_layout_set_attributes(context->layout, NULL);
+- pango_layout_set_text (context->layout, text, length);
+- pango_layout_set_auto_dir (context->layout, TRUE);
+- pango_layout_set_alignment (context->layout, PANGO_ALIGN_LEFT);
+- pango_layout_set_font_description (context->layout, context->font_desc);
++ SDLPango_SetText_GivenAlignment(context, text, length, SDLPANGO_ALIGN_LEFT);
+ }
+
+ /*!
+diff -Naupr SDL_Pango-0.1.2.orig/src/SDL_Pango.h SDL_Pango-0.1.2/src/SDL_Pango.h
+--- SDL_Pango-0.1.2.orig/src/SDL_Pango.h 2004-12-10 10:06:33.000000000 +0100
++++ SDL_Pango-0.1.2/src/SDL_Pango.h 2006-09-29 17:42:09.000000000 +0200
+@@ -109,12 +109,20 @@ typedef enum {
+ SDLPANGO_DIRECTION_NEUTRAL /*! Neutral */
+ } SDLPango_Direction;
+
+-
++/*!
++ Specifies alignment of text. See Pango reference for detail
++*/
++typedef enum {
++ SDLPANGO_ALIGN_LEFT,
++ SDLPANGO_ALIGN_CENTER,
++ SDLPANGO_ALIGN_RIGHT
++} SDLPango_Alignment;
+
+ extern DECLSPEC int SDLCALL SDLPango_Init();
+
+ extern DECLSPEC int SDLCALL SDLPango_WasInit();
+
++extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext_GivenFontDesc(const char* font_desc);
+ extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext();
+
+ extern DECLSPEC void SDLCALL SDLPango_FreeContext(
+@@ -157,6 +165,12 @@ extern DECLSPEC void SDLCALL SDLPango_Se
+ const char *markup,
+ int length);
+
++extern DECLSPEC void SDLCALL SDLPango_SetText_GivenAlignment(
++ SDLPango_Context *context,
++ const char *text,
++ int length,
++ SDLPango_Alignment alignment);
++
+ extern DECLSPEC void SDLCALL SDLPango_SetText(
+ SDLPango_Context *context,
+ const char *markup,
diff --git a/subprojects/shared-modules/SDL/SDL_image-1.2.12.json
b/subprojects/shared-modules/SDL/SDL_image-1.2.12.json
new file mode 100644
index 00000000..5e1692b6
--- /dev/null
+++ b/subprojects/shared-modules/SDL/SDL_image-1.2.12.json
@@ -0,0 +1,19 @@
+{
+ "name": "SDL_image",
+ "config-opts": ["--disable-static"],
+ "rm-configure": true,
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz",
+ "sha256": "0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699"
+ },
+ {
+ "type": "script",
+ "dest-filename": "autogen.sh",
+ "commands": [
+ "AUTOMAKE=\"automake --foreign\" autoreconf -vfi"
+ ]
+ }
+ ]
+}
diff --git a/subprojects/shared-modules/SDL/SDL_mixer-1.2.12.json
b/subprojects/shared-modules/SDL/SDL_mixer-1.2.12.json
new file mode 100644
index 00000000..ba5a6276
--- /dev/null
+++ b/subprojects/shared-modules/SDL/SDL_mixer-1.2.12.json
@@ -0,0 +1,22 @@
+{
+ "name": "SDL_mixer",
+ "config-opts": ["--disable-static"],
+ "rm-configure": true,
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.12.tar.gz",
+ "sha256": "1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a"
+ },
+ {
+ "type": "script",
+ "dest-filename": "autogen.sh",
+ "commands": [
+ "rm acinclude/libtool.m4",
+ "rm acinclude/lt*",
+ "AUTOMAKE=\"automake --foreign\" autoreconf -vfi -I acinclude",
+ "cp -p /usr/share/automake-*/config.{sub,guess} build-scripts"
+ ]
+ }
+ ]
+}
diff --git a/subprojects/shared-modules/SDL/SDL_net-1.2.8.json
b/subprojects/shared-modules/SDL/SDL_net-1.2.8.json
new file mode 100644
index 00000000..9d3e896c
--- /dev/null
+++ b/subprojects/shared-modules/SDL/SDL_net-1.2.8.json
@@ -0,0 +1,19 @@
+{
+ "name": "SDL_net",
+ "config-opts": ["--disable-static"],
+ "rm-configure": true,
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://www.libsdl.org/projects/SDL_net/release/SDL_net-1.2.8.tar.gz",
+ "sha256": "5f4a7a8bb884f793c278ac3f3713be41980c5eedccecff0260411347714facb4"
+ },
+ {
+ "type": "script",
+ "dest-filename": "autogen.sh",
+ "commands": [
+ "AUTOMAKE=\"automake --foreign\" autoreconf -vfi"
+ ]
+ }
+ ]
+}
diff --git a/subprojects/shared-modules/SDL/SDL_pango-0.1.2.json
b/subprojects/shared-modules/SDL/SDL_pango-0.1.2.json
new file mode 100644
index 00000000..fdbef4d1
--- /dev/null
+++ b/subprojects/shared-modules/SDL/SDL_pango-0.1.2.json
@@ -0,0 +1,23 @@
+{
+ "name": "SDL_pango",
+ "config-opts": ["--disable-static"],
+ "rm-configure": true,
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"https://downloads.sourceforge.net/project/sdlpango/SDL_Pango/0.1.2/SDL_Pango-0.1.2.tar.gz",
+ "sha256": "7f75d3b97acf707c696ea126424906204ebfa07660162de925173cdd0257eba4"
+ },
+ {
+ "type": "patch",
+ "path": "SDL_Pango-0.1.2-API-adds.patch"
+ },
+ {
+ "type": "script",
+ "dest-filename": "autogen.sh",
+ "commands": [
+ "autoreconf -vfi"
+ ]
+ }
+ ]
+}
diff --git a/subprojects/shared-modules/SDL/SDL_ttf-2.0.11.json
b/subprojects/shared-modules/SDL/SDL_ttf-2.0.11.json
new file mode 100644
index 00000000..5e928e46
--- /dev/null
+++ b/subprojects/shared-modules/SDL/SDL_ttf-2.0.11.json
@@ -0,0 +1,19 @@
+{
+ "name": "SDL_ttf",
+ "config-opts": ["--disable-static"],
+ "rm-configure": true,
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.11.tar.gz",
+ "sha256": "724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7"
+ },
+ {
+ "type": "script",
+ "dest-filename": "autogen.sh",
+ "commands": [
+ "AUTOMAKE=\"automake --foreign\" autoreconf -vfi"
+ ]
+ }
+ ]
+}
diff --git a/subprojects/shared-modules/SDL/sdl-libx11-build.patch
b/subprojects/shared-modules/SDL/sdl-libx11-build.patch
new file mode 100644
index 00000000..5bb14d4b
--- /dev/null
+++ b/subprojects/shared-modules/SDL/sdl-libx11-build.patch
@@ -0,0 +1,59 @@
+
+# HG changeset patch
+# User Azamat H. Hackimov <azamat hackimov gmail com>
+# Date 1370184533 -21600
+# Node ID 91ad7b43317a6387e115ecdf63a49137f47e42c8
+# Parent f7fd5c3951b9ed922fdf696f7182e71b58a13268
+Fix compilation with libX11 >= 1.5.99.902.
+
+These changes fixes bug #1769 for SDL 1.2
+(http://bugzilla.libsdl.org/show_bug.cgi?id=1769).
+
+diff -r f7fd5c3951b9 -r 91ad7b43317a configure.in
+--- a/configure.in Wed Apr 17 00:56:53 2013 -0700
++++ b/configure.in Sun Jun 02 20:48:53 2013 +0600
+@@ -1169,6 +1169,17 @@
+ if test x$definitely_enable_video_x11_xrandr = xyes; then
+ AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR)
+ fi
++ AC_MSG_CHECKING(for const parameter to _XData32)
++ have_const_param_xdata32=no
++ AC_TRY_COMPILE([
++ #include <X11/Xlibint.h>
++ extern int _XData32(Display *dpy,register _Xconst long *data,unsigned len);
++ ],[
++ ],[
++ have_const_param_xdata32=yes
++ AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32)
++ ])
++ AC_MSG_RESULT($have_const_param_xdata32)
+ fi
+ fi
+ }
+diff -r f7fd5c3951b9 -r 91ad7b43317a include/SDL_config.h.in
+--- a/include/SDL_config.h.in Wed Apr 17 00:56:53 2013 -0700
++++ b/include/SDL_config.h.in Sun Jun 02 20:48:53 2013 +0600
+@@ -283,6 +283,7 @@
+ #undef SDL_VIDEO_DRIVER_WINDIB
+ #undef SDL_VIDEO_DRIVER_WSCONS
+ #undef SDL_VIDEO_DRIVER_X11
++#undef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
+ #undef SDL_VIDEO_DRIVER_X11_DGAMOUSE
+ #undef SDL_VIDEO_DRIVER_X11_DYNAMIC
+ #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
+diff -r f7fd5c3951b9 -r 91ad7b43317a src/video/x11/SDL_x11sym.h
+--- a/src/video/x11/SDL_x11sym.h Wed Apr 17 00:56:53 2013 -0700
++++ b/src/video/x11/SDL_x11sym.h Sun Jun 02 20:48:53 2013 +0600
+@@ -165,7 +165,11 @@
+ */
+ #ifdef LONG64
+ SDL_X11_MODULE(IO_32BIT)
++#if SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32
++SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return)
++#else
+ SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
++#endif
+ SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
+ #endif
+
+
diff --git a/subprojects/shared-modules/cld2/CMakeLists.txt b/subprojects/shared-modules/cld2/CMakeLists.txt
new file mode 100644
index 00000000..d25f857f
--- /dev/null
+++ b/subprojects/shared-modules/cld2/CMakeLists.txt
@@ -0,0 +1,155 @@
+cmake_minimum_required(VERSION 2.8)
+project (cld2)
+enable_language(CXX)
+
+set (VERSION "0.0.197")
+set (common_SOURCE_FILES
+ internal/cldutil.cc
+ internal/cldutil_shared.cc
+ internal/compact_lang_det.cc
+ internal/compact_lang_det_hint_code.cc
+ internal/compact_lang_det_impl.cc
+ internal/debug.cc
+ internal/fixunicodevalue.cc
+ internal/generated_entities.cc
+ internal/generated_language.cc
+ internal/generated_ulscript.cc
+ internal/getonescriptspan.cc
+ internal/lang_script.cc
+ internal/offsetmap.cc
+ internal/scoreonescriptspan.cc
+ internal/tote.cc
+ internal/utf8statetable.cc
+ )
+
+set (cld2_SOURCE_FILES
+ internal/generated_distinct_bi_0.cc
+ internal/cld_generated_cjk_uni_prop_80.cc
+ internal/cld2_generated_cjk_compatible.cc
+ internal/cld_generated_cjk_delta_bi_4.cc
+ internal/cld2_generated_quadchrome_2.cc
+ internal/cld2_generated_deltaoctachrome.cc
+ internal/cld2_generated_distinctoctachrome.cc
+ internal/cld_generated_score_quad_octa_2.cc
+ )
+
+set (cld2_full_SOURCE_FILES
+ internal/generated_distinct_bi_0.cc
+ internal/cld_generated_cjk_uni_prop_80.cc
+ internal/cld2_generated_cjk_compatible.cc
+ internal/cld_generated_cjk_delta_bi_32.cc
+ internal/cld2_generated_quad0122.cc
+ internal/cld2_generated_deltaocta0122.cc
+ internal/cld2_generated_distinctocta0122.cc
+ internal/cld_generated_score_quad_octa_0122.cc
+ )
+
+set (cld2_dynamic_SOURCE_FILES
+ internal/cld2_dynamic_data.cc
+ internal/cld2_dynamic_data_loader.cc
+ )
+
+add_library(cld2 SHARED ${common_SOURCE_FILES} ${cld2_SOURCE_FILES})
+set_target_properties(cld2 PROPERTIES
+ ENABLE_EXPORTS On
+ OUTPUT_NAME cld2
+ VERSION ${VERSION}
+ SOVERSION 0
+ )
+add_library(cld2_full SHARED ${cld2_full_SOURCE_FILES})
+set_target_properties(cld2_full PROPERTIES
+ ENABLE_EXPORTS On
+ OUTPUT_NAME cld2_full
+ VERSION ${VERSION}
+ SOVERSION 0
+ )
+
+add_library(cld2_dynamic SHARED ${cld2_dynamic_SOURCE_FILES})
+set_target_properties(cld2_dynamic PROPERTIES
+ ENABLE_EXPORTS On
+ OUTPUT_NAME cld2_dynamic
+ VERSION ${VERSION}
+ SOVERSION 0
+ COMPILE_FLAGS "-DCLD2_DYNAMIC_MODE"
+ )
+install(TARGETS cld2 DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE})
+install(TARGETS cld2_full DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE})
+install(TARGETS cld2_dynamic DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE})
+
+set (cld2_internal_HEADERS
+ internal/cld2_dynamic_compat.h
+ internal/cld2_dynamic_data_extractor.h
+ internal/cld2_dynamic_data.h
+ internal/cld2_dynamic_data_loader.h
+ internal/cld2tablesummary.h
+ internal/cldutil.h
+ internal/cldutil_offline.h
+ internal/cldutil_shared.h
+ internal/compact_lang_det_hint_code.h
+ internal/compact_lang_det_impl.h
+ internal/debug.h
+ internal/fixunicodevalue.h
+ internal/generated_language.h
+ internal/generated_ulscript.h
+ internal/getonescriptspan.h
+ internal/integral_types.h
+ internal/lang_script.h
+ internal/langspan.h
+ internal/offsetmap.h
+ internal/port.h
+ internal/scoreonescriptspan.h
+ internal/stringpiece.h
+ internal/tote.h
+ internal/unittest_data.h
+ internal/utf8acceptinterchange.h
+ internal/utf8prop_lettermarkscriptnum.h
+ internal/utf8repl_lettermarklower.h
+ internal/utf8scannot_lettermarkspecial.h
+ internal/utf8statetable.h
+ )
+
+install(FILES ${cld2_internal_HEADERS} DESTINATION include/cld2/internal)
+set (cld2_public_HEADERS
+ public/compact_lang_det.h
+ public/encodings.h
+ )
+install(FILES ${cld2_public_HEADERS} DESTINATION include/cld2/public)
+
+set (full_SOURCE_FILES
+ internal/cld_generated_cjk_uni_prop_80.cc
+ internal/cld2_generated_cjk_compatible.cc
+ internal/cld_generated_cjk_delta_bi_32.cc
+ internal/generated_distinct_bi_0.cc
+ internal/cld2_generated_quad0122.cc
+ internal/cld2_generated_deltaocta0122.cc
+ internal/cld2_generated_distinctocta0122.cc
+ internal/cld_generated_score_quad_octa_0122.cc
+ )
+
+add_executable(compact_lang_det_test_full ${full_SOURCE_FILES} internal/compact_lang_det_test.cc)
+add_executable(cld2_unittest_full ${full_SOURCE_FILES} internal/cld2_unittest_full.cc)
+add_executable(cld2_unittest_full_avoid ${full_SOURCE_FILES} internal/cld2_unittest_full.cc)
+set_target_properties(cld2_unittest_full_avoid PROPERTIES COMPILE_FLAGS "-Davoid_utf8_string_constants")
+
+add_executable(cld2_dynamic_data_tool internal/cld2_dynamic_data_extractor.cc
internal/cld2_dynamic_data_tool.cc)
+add_executable(compact_lang_det_dynamic_test_chrome ${common_SOURCE_FILES}
internal/cld2_dynamic_data_extractor.cc internal/compact_lang_det_test.cc)
+add_executable(cld2_dynamic_unittest ${common_SOURCE_FILES} internal/cld2_unittest.cc)
+set_target_properties(compact_lang_det_dynamic_test_chrome PROPERTIES COMPILE_FLAGS "-DCLD2_DYNAMIC_MODE")
+set_target_properties(cld2_dynamic_unittest PROPERTIES COMPILE_FLAGS "-DCLD2_DYNAMIC_MODE")
+
+add_executable(compact_lang_det_test_chrome_2 internal/compact_lang_det_test.cc)
+add_executable(compact_lang_det_test_chrome_16 internal/compact_lang_det_test.cc)
+add_executable(cld2_unittest_chrome_2 internal/cld2_unittest.cc)
+add_executable(cld2_unittest_avoid_chrome_2 internal/cld2_unittest.cc)
+set_target_properties(cld2_unittest_avoid_chrome_2 PROPERTIES COMPILE_FLAGS "-Davoid_utf8_string_constants")
+
+target_link_libraries(compact_lang_det_test_full cld2)
+target_link_libraries(cld2_unittest_full cld2)
+target_link_libraries(cld2_unittest_full_avoid cld2)
+target_link_libraries(cld2_dynamic_data_tool cld2 cld2_dynamic)
+target_link_libraries(compact_lang_det_dynamic_test_chrome cld2_dynamic)
+target_link_libraries(cld2_dynamic_unittest cld2_dynamic)
+target_link_libraries(compact_lang_det_test_chrome_2 cld2)
+target_link_libraries(compact_lang_det_test_chrome_16 cld2)
+target_link_libraries(cld2_unittest_chrome_2 cld2)
+target_link_libraries(cld2_unittest_avoid_chrome_2 cld2)
diff --git a/subprojects/shared-modules/cld2/cld2.json b/subprojects/shared-modules/cld2/cld2.json
new file mode 100644
index 00000000..8487e31e
--- /dev/null
+++ b/subprojects/shared-modules/cld2/cld2.json
@@ -0,0 +1,24 @@
+{
+ "name": "cld2",
+ "buildsystem": "simple",
+ "build-options": {
+ "cxxflags": "-std=c++98"
+ },
+ "build-commands": [
+ "cp CMakeLists.txt ./cld2",
+ "cd cld2 && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=/app
-DCMAKE_BUILD_TYPE=Release",
+ "cd cld2/build && make && make install"
+ ],
+ "sources":[
+ {
+ "type": "git",
+ "url": "https://github.com/CLD2Owners/cld2.git",
+ "commit": "84b58a5d7690ebf05a91406f371ce00c3daf31c0",
+ "dest": "cld2"
+ },
+ {
+ "type": "file",
+ "path": "CMakeLists.txt"
+ }
+ ]
+}
diff --git a/subprojects/shared-modules/glew/glew.json b/subprojects/shared-modules/glew/glew.json
new file mode 100644
index 00000000..6ec15bf7
--- /dev/null
+++ b/subprojects/shared-modules/glew/glew.json
@@ -0,0 +1,26 @@
+{
+ "name": "glew",
+ "no-autogen": true,
+ "make-args": [
+ "GLEW_PREFIX=/app",
+ "GLEW_DEST=/app",
+ "LIBDIR=/app/lib"
+ ],
+ "make-install-args": [
+ "GLEW_PREFIX=/app",
+ "GLEW_DEST=/app",
+ "LIBDIR=/app/lib"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://downloads.sourceforge.net/project/glew/glew/2.1.0/glew-2.1.0.tgz",
+ "sha256": "04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a993c95"
+ }
+ ],
+ "cleanup": [
+ "/include",
+ "/lib/pkgconfig",
+ "/lib/*.a"
+ ]
+}
diff --git a/subprojects/shared-modules/glu/glu-9.0.0.json b/subprojects/shared-modules/glu/glu-9.0.0.json
new file mode 100644
index 00000000..c4fd4179
--- /dev/null
+++ b/subprojects/shared-modules/glu/glu-9.0.0.json
@@ -0,0 +1,11 @@
+{
+ "name": "glu",
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://mesa.freedesktop.org/archive/glu/glu-9.0.0.tar.bz2",
+ "sha256": "1f7ad0d379a722fcbd303aa5650c6d7d5544fde83196b42a73d1193568a4df12"
+ }
+ ],
+ "cleanup": [ "/include", "/lib/*.a", "/lib/*.la", "/lib/pkgconfig" ]
+}
diff --git a/subprojects/shared-modules/gtk2/gtk2-use-adwaita-theme.patch
b/subprojects/shared-modules/gtk2/gtk2-use-adwaita-theme.patch
new file mode 100644
index 00000000..916b3491
--- /dev/null
+++ b/subprojects/shared-modules/gtk2/gtk2-use-adwaita-theme.patch
@@ -0,0 +1,80 @@
+diff --git a/gdk/x11/gdkevents-x11.c b/gdk/x11/gdkevents-x11.c
+index 186a8f5cb2..f5c39b5afe 100644
+--- a/gdk/x11/gdkevents-x11.c
++++ b/gdk/x11/gdkevents-x11.c
+@@ -3000,6 +3000,50 @@ check_transform (const gchar *xsettings_name,
+ return TRUE;
+ }
+
++static gchar *
++gtk_rc_get_theme_dir (void)
++{
++ const gchar *var;
++ gchar *path;
++
++ var = g_getenv ("GTK_DATA_PREFIX");
++
++ if (var)
++ path = g_build_filename (var, "share", "themes", NULL);
++ else
++ path = g_build_filename ("/usr", "share", "themes", NULL);
++
++ return path;
++}
++
++static gboolean
++theme_name_valid (XSettingsSetting *setting)
++{
++ gboolean res = FALSE;
++
++ if (setting->type == XSETTINGS_TYPE_STRING)
++ {
++ char *theme_name = setting->data.v_string;
++ gchar *theme_dir = gtk_rc_get_theme_dir ();
++ gchar *path = g_build_filename (theme_dir, theme_name, "gtk-2.0", "gtkrc", NULL);
++
++ if (g_file_test (path, G_FILE_TEST_EXISTS))
++ res = TRUE;
++ else if (g_str_has_suffix (theme_name, "-Dark") ||
++ g_str_has_suffix (theme_name, "-dark"))
++ {
++ setting->data.v_string = g_strdup ("Adwaita-dark");
++ g_free (theme_name);
++ res = TRUE;
++ }
++
++ g_free (theme_dir);
++ g_free (path);
++ }
++
++ return res;
++}
++
+ /**
+ * gdk_screen_get_setting:
+ * @screen: the #GdkScreen where the setting is located
+@@ -3050,6 +3094,11 @@ gdk_screen_get_setting (GdkScreen *screen,
+ if (result != XSETTINGS_SUCCESS)
+ goto out;
+
++ if (strcmp (name, "gtk-theme-name") == 0 &&
++ (setting->type != XSETTINGS_TYPE_STRING ||
++ !theme_name_valid (setting)))
++ goto out;
++
+ switch (setting->type)
+ {
+ case XSETTINGS_TYPE_INT:
+diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
+index 3fbbf00548..5c0a4b33d2 100644
+--- a/gtk/gtksettings.c
++++ b/gtk/gtksettings.c
+@@ -312,7 +312,7 @@ gtk_settings_class_init (GtkSettingsClass *class)
+ #ifdef G_OS_WIN32
+ "MS-Windows",
+ #else
+- "Raleigh",
++ "Adwaita",
+ #endif
+ GTK_PARAM_READWRITE),
+ NULL);
diff --git a/subprojects/shared-modules/gtk2/gtk2.json b/subprojects/shared-modules/gtk2/gtk2.json
new file mode 100644
index 00000000..ff85007b
--- /dev/null
+++ b/subprojects/shared-modules/gtk2/gtk2.json
@@ -0,0 +1,69 @@
+{
+ "name": "gnome-themes-extra",
+ "rm-configure": true,
+ "config-opts": [
+ "--disable-dependency-tracking",
+ "--disable-gtk3-engine"
+ ],
+ "cleanup": [
+ "/share/themes/Adwaita/gtk-3.0",
+ "/share/themes/Adwaita-dark/gtk-3.0",
+ "/share/themes/HighContrast/gtk-3.0",
+ "*.la"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://download.gnome.org/sources/gnome-themes-extra/3.28/gnome-themes-extra-3.28.tar.xz",
+ "sha256": "7c4ba0bff001f06d8983cfc105adaac42df1d1267a2591798a780bac557a5819"
+ },
+ {
+ "type": "shell",
+ "//": "We want to avoid generating icons as its 99% of the build time and gnome runtime has it",
+ "commands": [
+ "sed -i 's/icons//' themes/HighContrast/Makefile.am"
+ ]
+ },
+ {
+ "type": "script",
+ "commands": [
+ "autoreconf -fsi"
+ ]
+ }
+ ],
+ "modules": [
+ {
+ "name": "gtk2",
+ "cleanup": [
+ "/bin",
+ "/share/gtk-2.0",
+ "/share/aclocal",
+ "/share/gtk-doc",
+ "/lib/pkgconfig",
+ "/lib/gtk-2.0/include",
+ "/include",
+ "*.la"
+ ],
+ "x-cpe": {
+ "product": "gtk+"
+ },
+ "config-opts": [
+ "--disable-dependency-tracking",
+ "--disable-gtk-doc-html",
+ "--disable-introspection",
+ "--with-xinput=xfree"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://download.gnome.org/sources/gtk+/2.24/gtk+-2.24.32.tar.xz",
+ "sha256": "b6c8a93ddda5eabe3bfee1eb39636c9a03d2a56c7b62828b359bf197943c582e"
+ },
+ {
+ "type": "patch",
+ "path": "gtk2-use-adwaita-theme.patch"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/subprojects/shared-modules/lame/lame-3.99.5.json
b/subprojects/shared-modules/lame/lame-3.99.5.json
new file mode 100644
index 00000000..f6cf5184
--- /dev/null
+++ b/subprojects/shared-modules/lame/lame-3.99.5.json
@@ -0,0 +1,32 @@
+{
+ "name": "lame",
+ "rm-configure": true,
+ "config-opts": ["--disable-static"],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://downloads.sourceforge.net/lame/lame-3.99.5.tar.gz",
+ "sha256": "24346b4158e4af3bd9f2e194bb23eb473c75fb7377011523353196b19b9a23ff"
+ },
+ {
+ "type": "patch",
+ "path": "lame-msse.patch"
+ },
+ {
+ "type": "patch",
+ "path": "lame-gtk1-ac-directives.patch"
+ },
+ {
+ "type": "patch",
+ "path": "lame-ansi2knr2devnull.patch"
+ },
+ {
+ "type": "script",
+ "dest-filename": "autogen.sh",
+ "commands": [
+ "autoreconf -vfi"
+ ]
+ }
+ ],
+ "cleanup": ["/bin", "/include", "/share/doc", "/share/man", "*.la"]
+}
diff --git a/subprojects/shared-modules/lame/lame-ansi2knr2devnull.patch
b/subprojects/shared-modules/lame/lame-ansi2knr2devnull.patch
new file mode 100644
index 00000000..c427345e
--- /dev/null
+++ b/subprojects/shared-modules/lame/lame-ansi2knr2devnull.patch
@@ -0,0 +1,43 @@
+Description: Patch out remaining ansi2knr.
+Author: Dimitri John Ledkov <xnox ubuntu com>
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755111
+--- a/configure.in
++++ b/configure.in
+@@ -78,7 +78,6 @@
+ fi
+
+ dnl more automake stuff
+-AM_C_PROTOTYPES
+
+ AC_CHECK_HEADER(dmalloc.h)
+ if test "${ac_cv_header_dmalloc_h}" = "yes"; then
+--- a/doc/man/Makefile.am
++++ b/doc/man/Makefile.am
+@@ -1,6 +1,6 @@
+ ## $Id: Makefile.am,v 1.1 2000/10/22 11:39:44 aleidinger Exp $
+
+-AUTOMAKE_OPTIONS = foreign ansi2knr
++AUTOMAKE_OPTIONS = foreign
+
+ man_MANS = lame.1
+ EXTRA_DIST = ${man_MANS}
+--- a/libmp3lame/i386/Makefile.am
++++ b/libmp3lame/i386/Makefile.am
+@@ -1,6 +1,6 @@
+ ## $Id: Makefile.am,v 1.26 2011/04/04 09:42:34 aleidinger Exp $
+
+-AUTOMAKE_OPTIONS = foreign $(top_srcdir)/ansi2knr
++AUTOMAKE_OPTIONS = foreign
+
+ DEFS = @DEFS@ @CONFIG_DEFS@
+
+--- a/doc/html/Makefile.am
++++ b/doc/html/Makefile.am
+@@ -1,6 +1,6 @@
+ ## $Id: Makefile.am,v 1.7 2010/09/30 20:58:40 jaz001 Exp $
+
+-AUTOMAKE_OPTIONS = foreign ansi2knr
++AUTOMAKE_OPTIONS = foreign
+
+ docdir = $(datadir)/doc
+ pkgdocdir = $(docdir)/$(PACKAGE)
diff --git a/subprojects/shared-modules/lame/lame-gtk1-ac-directives.patch
b/subprojects/shared-modules/lame/lame-gtk1-ac-directives.patch
new file mode 100644
index 00000000..7e0d3fe4
--- /dev/null
+++ b/subprojects/shared-modules/lame/lame-gtk1-ac-directives.patch
@@ -0,0 +1,205 @@
+Description: Include GTK-1 autoconf directives in build system.
+Origin: http://anonscm.debian.org/gitweb/?p=pkg-multimedia/lame.git;a=tree;f=debian/patches
+Forwarded: yes
+Applied-Upstream: http://lame.cvs.sf.net/viewvc/lame/lame/acinclude.m4?revision=1.6
+
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -85,4 +85,197 @@
+ [AC_MSG_WARN(can't check for IEEE854 compliant 80 bit floats)]
+ )])]) # alex_IEEE854_FLOAT80
+
++# Configure paths for GTK+
++# Owen Taylor 97-11-3
+
++dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
++dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
++dnl
++AC_DEFUN([AM_PATH_GTK],
++[dnl
++dnl Get the cflags and libraries from the gtk-config script
++dnl
++AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
++ gtk_config_prefix="$withval", gtk_config_prefix="")
++AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
++ gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
++AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
++ , enable_gtktest=yes)
++
++ for module in . $4
++ do
++ case "$module" in
++ gthread)
++ gtk_config_args="$gtk_config_args gthread"
++ ;;
++ esac
++ done
++
++ if test x$gtk_config_exec_prefix != x ; then
++ gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
++ if test x${GTK_CONFIG+set} != xset ; then
++ GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
++ fi
++ fi
++ if test x$gtk_config_prefix != x ; then
++ gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
++ if test x${GTK_CONFIG+set} != xset ; then
++ GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
++ fi
++ fi
++
++ AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
++ min_gtk_version=ifelse([$1], ,0.99.7,$1)
++ AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
++ no_gtk=""
++ if test "$GTK_CONFIG" = "no" ; then
++ no_gtk=yes
++ else
++ GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
++ GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
++ gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
++ gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
++ gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
++ if test "x$enable_gtktest" = "xyes" ; then
++ ac_save_CFLAGS="$CFLAGS"
++ ac_save_LIBS="$LIBS"
++ CFLAGS="$CFLAGS $GTK_CFLAGS"
++ LIBS="$GTK_LIBS $LIBS"
++dnl
++dnl Now check if the installed GTK is sufficiently new. (Also sanity
++dnl checks the results of gtk-config to some extent
++dnl
++ rm -f conf.gtktest
++ AC_TRY_RUN([
++#include <gtk/gtk.h>
++#include <stdio.h>
++#include <stdlib.h>
++
++int
++main ()
++{
++ int major, minor, micro;
++ char *tmp_version;
++
++ system ("touch conf.gtktest");
++
++ /* HP/UX 9 (%@#!) writes to sscanf strings */
++ tmp_version = g_strdup("$min_gtk_version");
++ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
++ printf("%s, bad version string\n", "$min_gtk_version");
++ exit(1);
++ }
++
++ if ((gtk_major_version != $gtk_config_major_version) ||
++ (gtk_minor_version != $gtk_config_minor_version) ||
++ (gtk_micro_version != $gtk_config_micro_version))
++ {
++ printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
++ $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
++ gtk_major_version, gtk_minor_version, gtk_micro_version);
++ printf ("*** was found! If gtk-config was correct, then it is best\n");
++ printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
++ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
++ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
++ printf("*** required on your system.\n");
++ printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
++ printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
++ printf("*** before re-running configure\n");
++ }
++#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
++ else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
++ (gtk_minor_version != GTK_MINOR_VERSION) ||
++ (gtk_micro_version != GTK_MICRO_VERSION))
++ {
++ printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
++ GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
++ printf("*** library (version %d.%d.%d)\n",
++ gtk_major_version, gtk_minor_version, gtk_micro_version);
++ }
++#endif /* defined (GTK_MAJOR_VERSION) ... */
++ else
++ {
++ if ((gtk_major_version > major) ||
++ ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
++ ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
++ {
++ return 0;
++ }
++ else
++ {
++ printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
++ gtk_major_version, gtk_minor_version, gtk_micro_version);
++ printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
++ major, minor, micro);
++ printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
++ printf("***\n");
++ printf("*** If you have already installed a sufficiently new version, this error\n");
++ printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
++ printf("*** being found. The easiest way to fix this is to remove the old version\n");
++ printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
++ printf("*** correct copy of gtk-config. (In this case, you will have to\n");
++ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
++ printf("*** so that the correct libraries are found at run-time))\n");
++ }
++ }
++ return 1;
++}
++],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
++ CFLAGS="$ac_save_CFLAGS"
++ LIBS="$ac_save_LIBS"
++ fi
++ fi
++ if test "x$no_gtk" = x ; then
++ AC_MSG_RESULT(yes)
++ ifelse([$2], , :, [$2])
++ else
++ AC_MSG_RESULT(no)
++ if test "$GTK_CONFIG" = "no" ; then
++ echo "*** The gtk-config script installed by GTK could not be found"
++ echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
++ echo "*** your path, or set the GTK_CONFIG environment variable to the"
++ echo "*** full path to gtk-config."
++ else
++ if test -f conf.gtktest ; then
++ :
++ else
++ echo "*** Could not run GTK test program, checking why..."
++ CFLAGS="$CFLAGS $GTK_CFLAGS"
++ LIBS="$LIBS $GTK_LIBS"
++ AC_TRY_LINK([
++#include <gtk/gtk.h>
++#include <stdio.h>
++], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
++ [ echo "*** The test program compiled, but did not run. This usually means"
++ echo "*** that the run-time linker is not finding GTK or finding the wrong"
++ echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
++ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
++ echo "*** to the installed location Also, make sure you have run ldconfig if that"
++ echo "*** is required on your system"
++ echo "***"
++ echo "*** If you have an old version installed, it is best to remove it, although"
++ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
++ echo "***"
++ echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
++ echo "*** came with the system with the command"
++ echo "***"
++ echo "*** rpm --erase --nodeps gtk gtk-devel" ],
++ [ echo "*** The test program failed to compile or link. See the file config.log for the"
++ echo "*** exact error that occured. This usually means GTK was incorrectly installed"
++ echo "*** or that you have moved GTK since it was installed. In the latter case, you"
++ echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
++ CFLAGS="$ac_save_CFLAGS"
++ LIBS="$ac_save_LIBS"
++ fi
++ fi
++ GTK_CFLAGS=""
++ GTK_LIBS=""
++ ifelse([$3], , :, [$3])
++ fi
++ AC_SUBST(GTK_CFLAGS)
++ AC_SUBST(GTK_LIBS)
++ rm -f conf.gtktest
++])
diff --git a/subprojects/shared-modules/lame/lame-msse.patch b/subprojects/shared-modules/lame/lame-msse.patch
new file mode 100644
index 00000000..4b71a2ed
--- /dev/null
+++ b/subprojects/shared-modules/lame/lame-msse.patch
@@ -0,0 +1,17 @@
+Description: Build xmm_quantize_sub.c with -msse
+Author: Sebastian Ramacher <sramacher debian org>
+Bug: http://sourceforge.net/p/lame/bugs/443/
+Bug-Debian: https://bugs.debian.org/760047
+Forwarded: http://sourceforge.net/p/lame/bugs/443/
+Last-Update: 2014-08-31
+
+--- lame-3.99.5+repack1.orig/libmp3lame/vector/Makefile.am
++++ lame-3.99.5+repack1/libmp3lame/vector/Makefile.am
+@@ -20,6 +20,7 @@ xmm_sources = xmm_quantize_sub.c
+
+ if WITH_XMM
+ liblamevectorroutines_la_SOURCES = $(xmm_sources)
++liblamevectorroutines_la_CFLAGS = -msse
+ endif
+
+ noinst_HEADERS = lame_intrin.h
diff --git a/subprojects/shared-modules/libappindicator/libappindicator-ftbfs.patch
b/subprojects/shared-modules/libappindicator/libappindicator-ftbfs.patch
new file mode 100644
index 00000000..93d31af6
--- /dev/null
+++ b/subprojects/shared-modules/libappindicator/libappindicator-ftbfs.patch
@@ -0,0 +1,20 @@
+From: Olivier Tilloy <olivier tilloy canonical com>
+Date: Tue 2018-03-20 12:47:56 +0000
+Subject: [PATCH] libappindicator FTBFS on bionic
+
+Fix build failures on bionic,
+and update Vcs-* fields in debian/control. (LP: #1757121)
+
+Approved by: Marco Trevisan (Treviño)
+---
+--- libappindicator-12.10.0/src/app-indicator.c 2017-02-15 14:10:41 +0000
++++ libappindicator-12.10.0/src/app-indicator.c 2018-03-20 12:38:59 +0000
+@@ -2196,7 +2196,7 @@ app_indicator_set_secondary_activate_tar
+
+ g_return_if_fail (GTK_IS_WIDGET (menuitem));
+
+- priv->sec_activate_target = g_object_ref(G_OBJECT(menuitem));
++ priv->sec_activate_target = g_object_ref(menuitem);
+ priv->sec_activate_enabled = widget_is_menu_child(self, menuitem);
+ g_signal_connect(menuitem, "parent-set", G_CALLBACK(sec_activate_target_parent_changed), self);
+ }
diff --git a/subprojects/shared-modules/libappindicator/libappindicator-gtk2-12.10.json
b/subprojects/shared-modules/libappindicator/libappindicator-gtk2-12.10.json
new file mode 100644
index 00000000..f43a4211
--- /dev/null
+++ b/subprojects/shared-modules/libappindicator/libappindicator-gtk2-12.10.json
@@ -0,0 +1,122 @@
+{
+ "name": "libappindicator",
+ "build-options": {
+ "cflags": "-Wno-error=deprecated-declarations"
+ },
+ "rm-configure": true,
+ "config-opts": [
+ "--disable-static",
+ "--disable-gtk-doc",
+ "--disable-tests",
+ "--disable-mono-tests",
+ "--enable-introspection=no",
+ "--with-gtk=2"
+ ],
+ "cleanup": [
+ "/include",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz",
+ "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f"
+ },
+ {
+ "type": "patch",
+ "path": "libappindicator-ftbfs.patch"
+ },
+ {
+ "type": "shell",
+ "commands": [
+ "# Disable python bindings",
+ "sed -e '/APPINDICATOR_PYTHON/,/\\$PYGTK_CODEGEN/ d' -i configure.ac",
+ "sed -e '/bindings/ d' -e '/example/ d' -i Makefile.am"
+ ]
+ },
+ {
+ "type": "script",
+ "commands": ["autoreconf -sfi"],
+ "dest-filename": "autogen.sh"
+ }
+ ],
+ "modules": [
+ {
+ "name": "libdbusmenu",
+ "build-options": {
+ "env": {
+ "HAVE_VALGRIND_FALSE": "#",
+ "HAVE_VALGRIND_TRUE": ""
+ }
+ },
+ "cleanup": [
+ "/include",
+ "/libexec",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/doc",
+ "/share/libdbusmenu",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "config-opts": [
+ "--disable-static",
+ "--disable-gtk-doc",
+ "--enable-introspection=no",
+ "--disable-vala",
+ "--disable-dumper",
+ "--disable-tests",
+ "--with-gtk=2"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz",
+ "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a"
+ }
+ ]
+ },
+ {
+ "name": "libindicator",
+ "build-options": {
+ "cflags": "-Wno-error=deprecated-declarations"
+ },
+ "cleanup": [
+ "/include",
+ "/libexec",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/libindicator",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "config-opts": [
+ "--disable-static",
+ "--disable-tests",
+ "--with-gtk=2"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz",
+ "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f"
+ },
+ {
+ "type": "shell",
+ "commands": [
+ "# FTBFS fix",
+ "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac"
+ ]
+ },
+ {
+ "type": "script",
+ "commands": ["autoreconf -sfi"],
+ "dest-filename": "autogen.sh"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/subprojects/shared-modules/libappindicator/libappindicator-gtk3-12.10.json
b/subprojects/shared-modules/libappindicator/libappindicator-gtk3-12.10.json
new file mode 100644
index 00000000..8756506c
--- /dev/null
+++ b/subprojects/shared-modules/libappindicator/libappindicator-gtk3-12.10.json
@@ -0,0 +1,122 @@
+{
+ "name": "libappindicator",
+ "build-options": {
+ "cflags": "-Wno-error=deprecated-declarations"
+ },
+ "rm-configure": true,
+ "config-opts": [
+ "--disable-static",
+ "--disable-gtk-doc",
+ "--disable-tests",
+ "--disable-mono-tests",
+ "--enable-introspection=no",
+ "--with-gtk=3"
+ ],
+ "cleanup": [
+ "/include",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz",
+ "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f"
+ },
+ {
+ "type": "patch",
+ "path": "libappindicator-ftbfs.patch"
+ },
+ {
+ "type": "shell",
+ "commands": [
+ "# Disable python bindings",
+ "sed -e '/APPINDICATOR_PYTHON/,/\\$PYGTK_CODEGEN/ d' -i configure.ac",
+ "sed -e '/bindings/ d' -e '/example/ d' -i Makefile.am"
+ ]
+ },
+ {
+ "type": "script",
+ "commands": ["autoreconf -sfi"],
+ "dest-filename": "autogen.sh"
+ }
+ ],
+ "modules": [
+ {
+ "name": "libdbusmenu",
+ "build-options": {
+ "env": {
+ "HAVE_VALGRIND_FALSE": "#",
+ "HAVE_VALGRIND_TRUE": ""
+ }
+ },
+ "cleanup": [
+ "/include",
+ "/libexec",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/doc",
+ "/share/libdbusmenu",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "config-opts": [
+ "--disable-static",
+ "--disable-gtk-doc",
+ "--enable-introspection=no",
+ "--disable-vala",
+ "--disable-dumper",
+ "--disable-tests",
+ "--with-gtk=3"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz",
+ "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a"
+ }
+ ]
+ },
+ {
+ "name": "libindicator",
+ "build-options": {
+ "cflags": "-Wno-error=deprecated-declarations"
+ },
+ "cleanup": [
+ "/include",
+ "/libexec",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/libindicator",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "config-opts": [
+ "--disable-static",
+ "--disable-tests",
+ "--with-gtk=3"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz",
+ "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f"
+ },
+ {
+ "type": "shell",
+ "commands": [
+ "# FTBFS fix",
+ "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac"
+ ]
+ },
+ {
+ "type": "script",
+ "commands": ["autoreconf -sfi"],
+ "dest-filename": "autogen.sh"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/subprojects/shared-modules/libappindicator/libappindicator-gtk3-introspection-12.10.json
b/subprojects/shared-modules/libappindicator/libappindicator-gtk3-introspection-12.10.json
new file mode 100644
index 00000000..d7b1f490
--- /dev/null
+++ b/subprojects/shared-modules/libappindicator/libappindicator-gtk3-introspection-12.10.json
@@ -0,0 +1,122 @@
+{
+ "name": "libappindicator",
+ "build-options": {
+ "cflags": "-Wno-error=deprecated-declarations"
+ },
+ "rm-configure": true,
+ "config-opts": [
+ "--disable-static",
+ "--disable-gtk-doc",
+ "--disable-tests",
+ "--disable-mono-tests",
+ "--enable-introspection=yes",
+ "--with-gtk=3"
+ ],
+ "cleanup": [
+ "/include",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz",
+ "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f"
+ },
+ {
+ "type": "patch",
+ "path": "libappindicator-ftbfs.patch"
+ },
+ {
+ "type": "shell",
+ "commands": [
+ "# Disable python bindings",
+ "sed -e '/APPINDICATOR_PYTHON/,/\\$PYGTK_CODEGEN/ d' -i configure.ac",
+ "sed -e '/bindings/ d' -e '/example/ d' -i Makefile.am"
+ ]
+ },
+ {
+ "type": "script",
+ "commands": ["autoreconf -sfi"],
+ "dest-filename": "autogen.sh"
+ }
+ ],
+ "modules": [
+ {
+ "name": "libdbusmenu",
+ "build-options": {
+ "env": {
+ "HAVE_VALGRIND_FALSE": "#",
+ "HAVE_VALGRIND_TRUE": ""
+ }
+ },
+ "cleanup": [
+ "/include",
+ "/libexec",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/doc",
+ "/share/libdbusmenu",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "config-opts": [
+ "--disable-static",
+ "--disable-gtk-doc",
+ "--enable-introspection=yes",
+ "--disable-vala",
+ "--disable-dumper",
+ "--disable-tests",
+ "--with-gtk=3"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz",
+ "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a"
+ }
+ ]
+ },
+ {
+ "name": "libindicator",
+ "build-options": {
+ "cflags": "-Wno-error=deprecated-declarations"
+ },
+ "cleanup": [
+ "/include",
+ "/libexec",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/libindicator",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "config-opts": [
+ "--disable-static",
+ "--disable-tests",
+ "--with-gtk=3"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz",
+ "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f"
+ },
+ {
+ "type": "shell",
+ "commands": [
+ "# FTBFS fix",
+ "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac"
+ ]
+ },
+ {
+ "type": "script",
+ "commands": ["autoreconf -sfi"],
+ "dest-filename": "autogen.sh"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/subprojects/shared-modules/libappindicator/libappindicator.json.in
b/subprojects/shared-modules/libappindicator/libappindicator.json.in
new file mode 100644
index 00000000..93f49b02
--- /dev/null
+++ b/subprojects/shared-modules/libappindicator/libappindicator.json.in
@@ -0,0 +1,122 @@
+{
+ "name": "libappindicator",
+ "build-options": {
+ "cflags": "-Wno-error=deprecated-declarations"
+ },
+ "rm-configure": true,
+ "config-opts": [
+ "--disable-static",
+ "--disable-gtk-doc",
+ "--disable-tests",
+ "--disable-mono-tests",
+ "--enable-introspection=@INTROSPECTION@",
+ "--with-gtk=@GTK_VER@"
+ ],
+ "cleanup": [
+ "/include",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz",
+ "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f"
+ },
+ {
+ "type": "patch",
+ "path": "libappindicator-ftbfs.patch"
+ },
+ {
+ "type": "shell",
+ "commands": [
+ "# Disable python bindings",
+ "sed -e '/APPINDICATOR_PYTHON/,/\\$PYGTK_CODEGEN/ d' -i configure.ac",
+ "sed -e '/bindings/ d' -e '/example/ d' -i Makefile.am"
+ ]
+ },
+ {
+ "type": "script",
+ "commands": ["autoreconf -sfi"],
+ "dest-filename": "autogen.sh"
+ }
+ ],
+ "modules": [
+ {
+ "name": "libdbusmenu",
+ "build-options": {
+ "env": {
+ "HAVE_VALGRIND_FALSE": "#",
+ "HAVE_VALGRIND_TRUE": ""
+ }
+ },
+ "cleanup": [
+ "/include",
+ "/libexec",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/doc",
+ "/share/libdbusmenu",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "config-opts": [
+ "--disable-static",
+ "--disable-gtk-doc",
+ "--enable-introspection=@INTROSPECTION@",
+ "--disable-vala",
+ "--disable-dumper",
+ "--disable-tests",
+ "--with-gtk=@GTK_VER@"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz",
+ "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a"
+ }
+ ]
+ },
+ {
+ "name": "libindicator",
+ "build-options": {
+ "cflags": "-Wno-error=deprecated-declarations"
+ },
+ "cleanup": [
+ "/include",
+ "/libexec",
+ "/lib/pkgconfig",
+ "/lib/*.la",
+ "/share/libindicator",
+ "/share/gtk-doc",
+ "/share/gir-1.0"
+ ],
+ "config-opts": [
+ "--disable-static",
+ "--disable-tests",
+ "--with-gtk=@GTK_VER@"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz",
+ "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f"
+ },
+ {
+ "type": "shell",
+ "commands": [
+ "# FTBFS fix",
+ "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac"
+ ]
+ },
+ {
+ "type": "script",
+ "commands": ["autoreconf -sfi"],
+ "dest-filename": "autogen.sh"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/subprojects/shared-modules/lua5.3/lua-5.3.0-autotoolize.patch
b/subprojects/shared-modules/lua5.3/lua-5.3.0-autotoolize.patch
new file mode 100644
index 00000000..3e4723a5
--- /dev/null
+++ b/subprojects/shared-modules/lua5.3/lua-5.3.0-autotoolize.patch
@@ -0,0 +1,192 @@
+diff -up lua-5.3.0/configure.ac.autoxxx lua-5.3.0/configure.ac
+--- lua-5.3.0/configure.ac.autoxxx 2015-01-15 10:20:03.826889574 -0500
++++ lua-5.3.0/configure.ac 2015-01-15 10:20:03.826889574 -0500
+@@ -0,0 +1,69 @@
++AC_PREREQ(2.59)
++AC_INIT([lua], [5.3.0], [https://bugzilla.redhat.com/], [lua-at], [http://www.lua.org])
++AC_SUBST([MAJOR_VERSION], [5.3])
++
++AC_CONFIG_HEADERS([config.h])
++AC_CONFIG_SRCDIR([src/lapi.c])
++
++AM_INIT_AUTOMAKE([1.9 foreign])
++
++AC_PROG_CC
++AC_PROG_LIBTOOL
++
++AC_ARG_WITH(
++ [readline],
++ [AC_HELP_STRING([--with-readline], [Use readline for interpreter input [default=yes]])],
++ [use_readline=$withval],
++ [use_readline=yes]
++)
++
++LUA_LIBS="-lm"
++
++# Check for readline
++READLINE_DEFS="#undef LUA_USE_READLINE"
++if test "x$use_readline" == "xyes"; then
++ AC_CHECK_LIB([readline], [readline], [:], [use_readline=no], [-lncurses])
++ AC_CHECK_HEADERS([readline/readline.h readline/history.h], [], [use_readline=no])
++ if test "x$use_readline" == "xno"; then
++ AC_MSG_WARN([readline headers could not be found, disabling readline support])
++ else
++ READLINE_DEFS="#define LUA_USE_READLINE"
++ READLINE_LIBS="-lreadline -lncurses"
++ fi
++fi
++AC_SUBST(READLINE_DEFS)
++AC_SUBST(READLINE_LIBS)
++
++case "$host" in
++ *-mingw*) use_os=win32 ;;
++ *-darwin*) use_os=macosx ;;
++ *) use_os=posix ;;
++esac
++
++POSIX_DEFS="#undef LUA_USE_POSIX"
++LUA_DL_DEFS="#undef LUA_USE_DLOPEN"
++LUA_BUILD_AS_DLL_DEFS="#undef LUA_BUILD_AS_DLL"
++
++if test "x$use_os" == "xwin32"; then
++ LUA_BUILD_AS_DLL_DEFS="#define LUA_BUILD_AS_DLL"
++elif test "x$use_os" == "xmacosx"; then
++ POSIX_DEFS="#define LUA_USE_POSIX"
++ LUA_DL_DEFS="#define LUA_DL_DYLD"
++elif test "x$use_os" == "xposix"; then
++ POSIX_DEFS="#define LUA_USE_POSIX"
++ LUA_DL_DEFS="#define LUA_DL_DLOPEN"
++ LUA_LIBS="$LUA_LIBS -ldl"
++fi
++AC_SUBST(POSIX_DEFS)
++AC_SUBST(LUA_DL_DEFS)
++AC_SUBST(LUA_BUILD_AS_DLL_DEFS)
++
++AC_SUBST(LUA_LIBS)
++
++AC_CONFIG_FILES([Makefile
++ src/Makefile
++ src/lua.pc
++ src/luaconf.h.template
++ doc/Makefile
++])
++AC_OUTPUT
+diff -up lua-5.3.0/doc/Makefile.am.autoxxx lua-5.3.0/doc/Makefile.am
+--- lua-5.3.0/doc/Makefile.am.autoxxx 2015-01-15 10:20:03.826889574 -0500
++++ lua-5.3.0/doc/Makefile.am 2015-01-15 10:20:03.826889574 -0500
+@@ -0,0 +1,4 @@
++man1_MANS = lua.1 luac.1
++
++EXTRA_DIST = \
++ contents.html logo.gif lua.1 luac.1 lua.css manual.css manual.html osi-certified-72x60.png readme.html
+diff -up lua-5.3.0/Makefile.am.autoxxx lua-5.3.0/Makefile.am
+--- lua-5.3.0/Makefile.am.autoxxx 2015-01-15 10:20:03.826889574 -0500
++++ lua-5.3.0/Makefile.am 2015-01-15 10:20:03.826889574 -0500
+@@ -0,0 +1,3 @@
++SUBDIRS = src doc
++
++EXTRA_DIST = README
+diff -up lua-5.3.0/src/.gitignore.autoxxx lua-5.3.0/src/.gitignore
+--- lua-5.3.0/src/.gitignore.autoxxx 2015-01-15 10:20:03.826889574 -0500
++++ lua-5.3.0/src/.gitignore 2015-01-15 10:20:03.826889574 -0500
+@@ -0,0 +1,5 @@
++lua
++lua.pc
++luac
++luaconf.h
++luaconf.h.template
+diff -up lua-5.3.0/src/luaconf.h.template.in.autoxxx lua-5.3.0/src/luaconf.h.template.in
+--- lua-5.3.0/src/luaconf.h.template.in.autoxxx 2015-01-15 10:20:03.828889562 -0500
++++ lua-5.3.0/src/luaconf.h.template.in 2015-01-15 10:22:37.420027778 -0500
+@@ -11,6 +11,11 @@
+ #include <limits.h>
+ #include <stddef.h>
+
++@POSIX_DEFS@
++@LUA_DL_DEFS@
++@LUA_BUILD_AS_DLL_DEFS@
++@READLINE_DEFS@
++
+
+ /*
+ ** ===================================================================
+@@ -175,9 +180,9 @@
+
+ #else /* }{ */
+
+-#define LUA_ROOT "/usr/local/"
+-#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/"
+-#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/"
++#define LUA_ROOT "@prefix@/"
++#define LUA_LDIR "@pkgdatadir@/lua/" LUA_VDIR "/"
++#define LUA_CDIR "@libdir@/lua/" LUA_VDIR "/"
+ #define LUA_PATH_DEFAULT \
+ LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \
+ LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \
+diff -up lua-5.3.0/src/lua.pc.in.autoxxx lua-5.3.0/src/lua.pc.in
+--- lua-5.3.0/src/lua.pc.in.autoxxx 2015-01-15 10:20:03.827889568 -0500
++++ lua-5.3.0/src/lua.pc.in 2015-01-15 10:20:03.827889568 -0500
+@@ -0,0 +1,13 @@
++V= @MAJOR_VERSION@
++R= @VERSION@
++prefix= @prefix@
++exec_prefix=${prefix}
++libdir= @libdir@
++includedir=${prefix}/include
++
++Name: Lua
++Description: An Extensible Extension Language
++Version: ${R}
++Requires:
++Libs: -llua @LUA_LIBS@
++Cflags: -I${includedir}
+diff -up lua-5.3.0/src/Makefile.am.autoxxx lua-5.3.0/src/Makefile.am
+--- lua-5.3.0/src/Makefile.am.autoxxx 2015-01-15 10:20:03.826889574 -0500
++++ lua-5.3.0/src/Makefile.am 2015-01-15 10:20:03.826889574 -0500
+@@ -0,0 +1,46 @@
++AM_CFLAGS = -Wall
++
++include_HEADERS = lua.h lualib.h lauxlib.h lua.hpp
++
++nodist_include_HEADERS = luaconf.h
++
++lib_LTLIBRARIES = liblua.la
++liblua_la_LDFLAGS = -release @MAJOR_VERSION@
++liblua_la_SOURCES = \
++ lapi.c lauxlib.c lbaselib.c lbitlib.c lcode.c lcorolib.c lctype.c ldblib.c \
++ ldebug.c ldo.c ldump.c lfunc.c lgc.c linit.c liolib.c llex.c lmathlib.c lmem.c \
++ loadlib.c lobject.c lopcodes.c loslib.c lparser.c lstate.c lstring.c lstrlib.c \
++ ltable.c ltablib.c ltm.c lundump.c lutf8lib.c lvm.c lzio.c \
++ lapi.h lcode.h lctype.h ldebug.h ldo.h lfunc.h lgc.h llex.h llimits.h \
++ lmem.h lobject.h lopcodes.h lparser.h lstate.h lstring.h ltable.h ltm.h \
++ lundump.h lvm.h lzio.h
++
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = lua.pc
++
++bin_PROGRAMS = lua luac
++
++lua_SOURCES = lua.c
++lua_LDADD = liblua.la @LUA_LIBS@ @READLINE_LIBS@
++lua_DEPENDENCIES = liblua.la
++
++luac_SOURCES = luac.c
++# Statically link liblua against luac since luac uses symbols not exported in liblua
++luac_LDADD = .libs/liblua.a @LUA_LIBS@
++luac_DEPENDENCIES = liblua.la
++
++EXTRA_DIST = luaconf.h.template
++BUILT_SOURCES = luaconf.h
++CLEANFILES = luaconf.h luaconf.h.template
++
++readline_defs = @READLINE_DEFS@
++
++edit = sed \
++ -e 's,%prefix%,$(prefix),g' \
++ -e 's,%lua_datadir%,$(datadir),g' \
++ -e 's,%lua_libdir%,$(libdir),g'
++
++luaconf.h : luaconf.h.template
++ rm -f $@ $@.tmp
++ $(edit) $< >$@.tmp
++ mv $@.tmp $@
diff --git a/subprojects/shared-modules/lua5.3/lua-5.3.0-configure-compat-module.patch
b/subprojects/shared-modules/lua5.3/lua-5.3.0-configure-compat-module.patch
new file mode 100644
index 00000000..bd5d41d4
--- /dev/null
+++ b/subprojects/shared-modules/lua5.3/lua-5.3.0-configure-compat-module.patch
@@ -0,0 +1,35 @@
+diff -up lua-5.2.2/configure.ac.compat-module lua-5.2.2/configure.ac
+--- lua-5.2.2/configure.ac.compat-module 2013-05-10 10:16:05.344137597 -0400
++++ lua-5.2.2/configure.ac 2013-05-10 10:16:05.357137596 -0400
+@@ -11,6 +11,20 @@ AC_PROG_CC
+ AC_PROG_LIBTOOL
+
+ AC_ARG_WITH(
++ [compat-module],
++ [AC_HELP_STRING([--with-compat-module], [Enable LUA_COMPAT_MODULE functions [default=no]])],
++ [use_compat_module=$withval],
++ [use_compat_module=no]
++)
++
++COMPAT_DEFS="#undef LUA_COMPAT_ALL"
++if test "x$use_compat_module" == "xyes"; then
++ COMPAT_DEFS="#define LUA_COMPAT_5_1
++#define LUA_COMPAT_5_2"
++fi
++AC_SUBST(COMPAT_DEFS)
++
++AC_ARG_WITH(
+ [readline],
+ [AC_HELP_STRING([--with-readline], [Use readline for interpreter input [default=yes]])],
+ [use_readline=$withval],
+diff -up lua-5.2.2/src/luaconf.h.template.in.compat-module lua-5.2.2/src/luaconf.h.template.in
+--- lua-5.2.2/src/luaconf.h.template.in.compat-module 2013-05-10 10:25:42.586116963 -0400
++++ lua-5.2.2/src/luaconf.h.template.in 2013-05-10 10:26:29.957115269 -0400
+@@ -15,6 +15,7 @@
+ @LUA_DL_DEFS@
+ @LUA_BUILD_AS_DLL_DEFS@
+ @READLINE_DEFS@
++@COMPAT_DEFS@
+
+
+ /*
diff --git a/subprojects/shared-modules/lua5.3/lua-5.3.0-idsize.patch
b/subprojects/shared-modules/lua5.3/lua-5.3.0-idsize.patch
new file mode 100644
index 00000000..16107fe2
--- /dev/null
+++ b/subprojects/shared-modules/lua5.3/lua-5.3.0-idsize.patch
@@ -0,0 +1,12 @@
+diff -up lua-5.3.0/src/luaconf.h.template.in.idsize lua-5.3.0/src/luaconf.h.template.in
+--- lua-5.3.0/src/luaconf.h.template.in.idsize 2015-01-15 10:23:20.515801344 -0500
++++ lua-5.3.0/src/luaconf.h.template.in 2015-01-15 10:23:48.955651916 -0500
+@@ -693,7 +693,7 @@
+ @@ of a function in debug information.
+ ** CHANGE it if you want a different size.
+ */
+-#define LUA_IDSIZE 60
++#define LUA_IDSIZE 512
+
+
+ /*
diff --git a/subprojects/shared-modules/lua5.3/lua-5.3.2.json
b/subprojects/shared-modules/lua5.3/lua-5.3.2.json
new file mode 100644
index 00000000..464ded5d
--- /dev/null
+++ b/subprojects/shared-modules/lua5.3/lua-5.3.2.json
@@ -0,0 +1,34 @@
+{
+ "name": "lua-5.3",
+ "config-opts": [
+ "--with-compat-module"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://www.lua.org/ftp/lua-5.3.4.tar.gz",
+ "sha256": "f681aa518233bc407e23acf0f5887c884f17436f000d453b2491a9f11a52400c"
+ },
+ {
+ "type": "shell",
+ "commands": [ "mv src/luaconf.h src/luaconf.h.template.in" ]
+ },
+ {
+ "type": "patch",
+ "path": "lua-5.3.0-autotoolize.patch"
+ },
+ {
+ "type": "patch",
+ "path": "lua-5.3.0-idsize.patch"
+ },
+ {
+ "type": "patch",
+ "path": "lua-5.3.0-configure-compat-module.patch"
+ },
+ {
+ "type": "shell",
+ "commands": [ "autoreconf -i" ]
+ }
+ ],
+ "cleanup": [ "/bin" ]
+}
diff --git a/subprojects/shared-modules/pygame/audiofile-gcc6.patch
b/subprojects/shared-modules/pygame/audiofile-gcc6.patch
new file mode 100644
index 00000000..89afb6d8
--- /dev/null
+++ b/subprojects/shared-modules/pygame/audiofile-gcc6.patch
@@ -0,0 +1,21 @@
+From b62c902dd258125cac86cd2df21fc898035a43d3 Mon Sep 17 00:00:00 2001
+From: Michael Pruett <michael 68k org>
+Date: Mon, 29 Aug 2016 23:08:26 -0500
+Subject: [PATCH] Fix undefined behavior in sign conversion.
+Origin: https://github.com/mpruett/audiofile/commit/b62c902dd258125cac86cd2df21fc898035a43d3
+
+---
+diff --git a/libaudiofile/modules/SimpleModule.h b/libaudiofile/modules/SimpleModule.h
+index 03c6c69..bad85ad 100644
+--- a/libaudiofile/modules/SimpleModule.h
++++ b/libaudiofile/modules/SimpleModule.h
+@@ -123,7 +123,8 @@ struct signConverter
+ typedef typename IntTypes<Format>::UnsignedType UnsignedType;
+
+ static const int kScaleBits = (Format + 1) * CHAR_BIT - 1;
+- static const int kMinSignedValue = -1 << kScaleBits;
++ static const int kMaxSignedValue = (((1 << (kScaleBits - 1)) - 1) << 1) + 1;
++ static const int kMinSignedValue = -kMaxSignedValue - 1;
+
+ struct signedToUnsigned : public std::unary_function<SignedType, UnsignedType>
+ {
diff --git a/subprojects/shared-modules/pygame/fluidsynth-no-rawmidi.patch
b/subprojects/shared-modules/pygame/fluidsynth-no-rawmidi.patch
new file mode 100644
index 00000000..88a89742
--- /dev/null
+++ b/subprojects/shared-modules/pygame/fluidsynth-no-rawmidi.patch
@@ -0,0 +1,69 @@
+diff -rupN fluidsynth-1.1.6.orig/src/drivers/fluid_alsa.c fluidsynth-1.1.6/src/drivers/fluid_alsa.c
+--- fluidsynth-1.1.6.orig/src/drivers/fluid_alsa.c 2012-08-16 05:01:13.000000000 +0100
++++ fluidsynth-1.1.6/src/drivers/fluid_alsa.c 2017-02-28 21:26:57.033244239 +0000
+@@ -96,7 +96,7 @@ struct fluid_alsa_formats_t fluid_alsa_f
+ };
+
+
+-
++#if 0
+ /*
+ * fluid_alsa_rawmidi_driver_t
+ *
+@@ -119,7 +119,7 @@ fluid_midi_driver_t* new_fluid_alsa_rawm
+
+ int delete_fluid_alsa_rawmidi_driver(fluid_midi_driver_t* p);
+ static void fluid_alsa_midi_run(void* d);
+-
++#endif
+
+ /*
+ * fluid_alsa_seq_driver_t
+@@ -535,7 +535,7 @@ static void fluid_alsa_audio_run_s16 (vo
+ *
+ */
+
+-
++#if 0
+ void fluid_alsa_rawmidi_driver_settings(fluid_settings_t* settings)
+ {
+ fluid_settings_register_str(settings, "midi.alsa.device", "default", 0, NULL, NULL);
+@@ -698,7 +698,7 @@ fluid_alsa_midi_run(void* d)
+ }
+ }
+ }
+-
++#endif
+ /**************************************************************
+ *
+ * Alsa sequencer
+diff -rupN fluidsynth-1.1.6.orig/src/drivers/fluid_mdriver.c fluidsynth-1.1.6/src/drivers/fluid_mdriver.c
+--- fluidsynth-1.1.6.orig/src/drivers/fluid_mdriver.c 2012-08-16 05:01:13.000000000 +0100
++++ fluidsynth-1.1.6/src/drivers/fluid_mdriver.c 2017-02-28 21:24:43.887833321 +0000
+@@ -24,11 +24,13 @@
+
+ /* ALSA */
+ #if ALSA_SUPPORT
++#if 0
+ fluid_midi_driver_t* new_fluid_alsa_rawmidi_driver(fluid_settings_t* settings,
+ handle_midi_event_func_t handler,
+ void* event_handler_data);
+ int delete_fluid_alsa_rawmidi_driver(fluid_midi_driver_t* p);
+ void fluid_alsa_rawmidi_driver_settings(fluid_settings_t* settings);
++#endif
+
+ fluid_midi_driver_t* new_fluid_alsa_seq_driver(fluid_settings_t* settings,
+ handle_midi_event_func_t handler,
+@@ -109,10 +111,12 @@ struct fluid_mdriver_definition_t fluid_
+ fluid_oss_midi_driver_settings },
+ #endif
+ #if ALSA_SUPPORT
++#if 0
+ { "alsa_raw",
+ new_fluid_alsa_rawmidi_driver,
+ delete_fluid_alsa_rawmidi_driver,
+ fluid_alsa_rawmidi_driver_settings },
++#endif
+ { "alsa_seq",
+ new_fluid_alsa_seq_driver,
+ delete_fluid_alsa_seq_driver,
diff --git a/subprojects/shared-modules/pygame/portmidi-no-java.patch
b/subprojects/shared-modules/pygame/portmidi-no-java.patch
new file mode 100644
index 00000000..00ef8eaa
--- /dev/null
+++ b/subprojects/shared-modules/pygame/portmidi-no-java.patch
@@ -0,0 +1,105 @@
+diff -rupN portmidi.orig/CMakeLists.txt portmidi/CMakeLists.txt
+--- portmidi.orig/CMakeLists.txt 2010-09-20 15:57:48.000000000 +0100
++++ portmidi/CMakeLists.txt 2017-03-03 13:50:58.494561245 +0000
+@@ -71,7 +71,3 @@ add_subdirectory(pm_common)
+ add_subdirectory(pm_test)
+
+ add_subdirectory(pm_dylib)
+-
+-# Cannot figure out how to make an xcode Java application with CMake
+-add_subdirectory(pm_java)
+-
+diff -rupN portmidi.orig/pm_common/CMakeLists.txt portmidi/pm_common/CMakeLists.txt
+--- portmidi.orig/pm_common/CMakeLists.txt 2010-09-20 15:57:48.000000000 +0100
++++ portmidi/pm_common/CMakeLists.txt 2017-03-03 14:02:32.851938051 +0000
+@@ -67,14 +67,6 @@ if(UNIX)
+ message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
+ else(APPLE)
+ # LINUX settings...
+- include(FindJNI)
+- message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
+- message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
+- message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2})
+- message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY})
+- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
+- # libjvm.so is found relative to JAVA_INCLUDE_PATH:
+- set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so)
+
+ set(LINUXSRC pmlinuxalsa pmlinux finddefault)
+ prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
+@@ -99,7 +91,6 @@ else(UNIX)
+ set(PM_NEEDED_LIBS winmm.lib)
+ endif(WIN32)
+ endif(UNIX)
+-set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY})
+
+ # this completes the list of library sources by adding shared code
+ list(APPEND LIBSRC pmutil portmidi)
+@@ -109,19 +100,11 @@ add_library(portmidi-static ${LIBSRC})
+ set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s")
+ target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
+
+-# define the jni library
+-include_directories(${JAVA_INCLUDE_PATHS})
+-
+-set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
+-add_library(pmjni SHARED ${JNISRC})
+-target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
+-set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
+-
+ # install the libraries (Linux and Mac OS X command line)
+ if(UNIX)
+- INSTALL(TARGETS portmidi-static pmjni
+- LIBRARY DESTINATION /usr/local/lib
+- ARCHIVE DESTINATION /usr/local/lib)
++ INSTALL(TARGETS portmidi-static
++ LIBRARY DESTINATION /app/lib
++ ARCHIVE DESTINATION /app/lib)
+ # .h files installed by pm_dylib/CMakeLists.txt, so don't need them here
+ # INSTALL(FILES portmidi.h ../porttime/porttime.h
+ # DESTINATION /usr/local/include)
+diff -rupN portmidi.orig/pm_dylib/CMakeLists.txt portmidi/pm_dylib/CMakeLists.txt
+--- portmidi.orig/pm_dylib/CMakeLists.txt 2009-11-20 00:41:10.000000000 +0000
++++ portmidi/pm_dylib/CMakeLists.txt 2017-03-03 14:03:56.807104521 +0000
+@@ -63,7 +63,6 @@ if(UNIX)
+ message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
+ else(APPLE)
+ # LINUX settings...
+- include(FindJNI)
+ # message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
+ # message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
+ # note: should use JAVA_JVM_LIB_PATH, but it is not set properly
+@@ -75,12 +74,7 @@ if(UNIX)
+ # JAVA_INCLUDE_PATH2; if no, then we need to make both JAVA_INCLUDE_PATH
+ # and JAVA_INCLUDE_PATH2 set by user (will need clear documentation
+ # because JAVA_INCLUDE_PATH2 is pretty obscure)
+- set(JAVA_INCLUDE_PATH ${JAVA_INCLUDE_PATH-UNKNOWN}
+- CACHE STRING "where to find Java SDK include directory")
+- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH}/linux)
+- # libjvm.so is found relative to JAVA_INCLUDE_PATH:
+- set(JAVAVM_LIB ${JAVA_INCLUDE_PATH}/../jre/lib/i386/client/libjvm.so)
+-
++
+ set(LINUXSRC pmlinuxalsa pmlinux finddefault)
+ prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
+ list(APPEND LIBSRC ../porttime/ptlinux)
+@@ -106,7 +100,6 @@ else(UNIX)
+ # message(STATUS "JAVAVM_LIB: " ${JAVAVM_LIB})
+ endif(WIN32)
+ endif(UNIX)
+-set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVAVM_LIB})
+
+ # this completes the list of library sources by adding shared code
+ set(SHARED_FILES pmutil portmidi)
+@@ -120,8 +113,8 @@ target_link_libraries(portmidi-dynamic $
+ # install the libraries (Linux and Mac OS X command line)
+ if(UNIX)
+ INSTALL(TARGETS portmidi-dynamic
+- LIBRARY DESTINATION /usr/local/lib
+- ARCHIVE DESTINATION /usr/local/lib)
++ LIBRARY DESTINATION /app/lib
++ ARCHIVE DESTINATION /app/lib)
+ INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h
+- DESTINATION /usr/local/include)
++ DESTINATION /app/include)
+ endif(UNIX)
diff --git a/subprojects/shared-modules/pygame/pygame-1.9.3.json
b/subprojects/shared-modules/pygame/pygame-1.9.3.json
new file mode 100644
index 00000000..2e0854f6
--- /dev/null
+++ b/subprojects/shared-modules/pygame/pygame-1.9.3.json
@@ -0,0 +1,94 @@
+{
+ "name": "pygame",
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"https://pypi.python.org/packages/61/06/3c25051549c252cc6fde01c8aeae90b96831370884504fe428a623316def/pygame-1.9.3.tar.gz",
+ "sha256": "751021819bdc0cbe5cbd51904abb6ff9e9aee5b0e8955af02284d0e77d6c9ec2"
+ },
+ {
+ "type": "patch",
+ "path": "pygame-add-search-dirs.patch"
+ }
+ ],
+ "buildsystem": "simple",
+ "build-commands": [
+ "pip3 install --ignore-installed --no-deps --prefix=/app ."
+ ],
+ "build-options": {
+ "env": {
+ "PORTMIDI_INC_PORTTIME": "1",
+ "LOCALBASE": "/app"
+ }
+ },
+ "modules": [
+ "../SDL/SDL-1.2.15.json",
+ "../SDL/SDL_image-1.2.12.json",
+ "../SDL/SDL_ttf-2.0.11.json",
+ "../smpeg/smpeg-0.4.5.json",
+ "../SDL/SDL_mixer-1.2.12.json",
+ {
+ "name": "audiofile",
+ "sources": [
+ {
+ "type": "archive",
+ "url": "http://audiofile.68k.org/audiofile-0.3.6.tar.gz",
+ "sha256": "cdc60df19ab08bfe55344395739bb08f50fc15c92da3962fac334d3bff116965"
+ },
+ {
+ "type": "patch",
+ "path": "audiofile-gcc6.patch"
+ }
+ ]
+ },
+ {
+ "name": "libmikmod",
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"https://sourceforge.net/projects/mikmod/files/libmikmod/3.3.11.1/libmikmod-3.3.11.1.tar.gz",
+ "sha256": "ad9d64dfc8f83684876419ea7cd4ff4a41d8bcd8c23ef37ecb3a200a16b46d19"
+ }
+ ]
+ },
+ {
+ "name": "fluidsynth",
+ "buildsystem": "cmake-ninja",
+ "config-opts": [
+ "-DCMAKE_BUILD_TYPE=Release"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"https://downloads.sourceforge.net/project/fluidsynth/fluidsynth-1.1.6/fluidsynth-1.1.6.tar.bz2",
+ "sha256": "d28b47dfbf7f8e426902ae7fa2981d821fbf84f41da9e1b85be933d2d748f601"
+ },
+ {
+ "type": "patch",
+ "path": "fluidsynth-no-rawmidi.patch"
+ }
+ ]
+ },
+ {
+ "name": "portmidi",
+ "buildsystem": "cmake-ninja",
+ "config-opts": [
+ "-DCMAKE_BUILD_TYPE=Release",
+ "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:STRING=/app/lib",
+ "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:STRING=/app/lib",
+ "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:STRING=/app/bin"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url":
"http://downloads.sourceforge.net/project/portmedia/portmidi/217/portmidi-src-217.zip",
+ "sha256": "08e9a892bd80bdb1115213fb72dc29a7bf2ff108b378180586aa65f3cfd42e0f"
+ },
+ {
+ "type": "patch",
+ "path": "portmidi-no-java.patch"
+ }
+ ]
+ }
+ ]
+}
diff --git a/subprojects/shared-modules/pygame/pygame-add-search-dirs.patch
b/subprojects/shared-modules/pygame/pygame-add-search-dirs.patch
new file mode 100644
index 00000000..13366c2e
--- /dev/null
+++ b/subprojects/shared-modules/pygame/pygame-add-search-dirs.patch
@@ -0,0 +1,27 @@
+diff -r 407caa445ee0 config_unix.py
+--- a/config_unix.py Mon Jan 16 21:12:10 2017 +0000
++++ b/config_unix.py Fri Mar 03 15:10:07 2017 +0000
+@@ -110,6 +110,12 @@
+ self.found = 1
+ else:
+ print (self.name + ' '[len(self.name):] + ': not found')
++ print('incname', incname)
++ print('incdirs', incdirs)
++ print('self.inc_dir', self.inc_dir)
++ print('libnames', libnames)
++ print('libdirs', libdirs)
++ print('self.lib_dir', self.lib_dir)
+
+
+ class DependencyPython:
+@@ -195,8 +201,8 @@
+ incdirs += ["/usr/local"+d for d in origincdirs]
+ libdirs += ["/usr/local"+d for d in origlibdirs]
+ if localbase:
+- incdirs = [localbase+d for d in origincdirs]
+- libdirs = [localbase+d for d in origlibdirs]
++ incdirs += [localbase+d for d in origincdirs]
++ libdirs += [localbase+d for d in origlibdirs]
+
+ for arg in DEPS[0].cflags.split():
+ if arg[:2] == '-I':
diff --git a/subprojects/shared-modules/python2.7/python-2.7.15.json
b/subprojects/shared-modules/python2.7/python-2.7.15.json
new file mode 100644
index 00000000..9e7da87e
--- /dev/null
+++ b/subprojects/shared-modules/python2.7/python-2.7.15.json
@@ -0,0 +1,46 @@
+{
+ "name": "python-2.7",
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz",
+ "sha256": "18617d1f15a380a919d517630a9cd85ce17ea602f9bbdc58ddc672df4b0239db"
+ }
+ ],
+ "config-opts": [
+ "--enable-shared",
+ "--with-ensurepip=yes",
+ "--with-system-expat",
+ "--with-system-ffi",
+ "--enable-loadable-sqlite-extensions",
+ "--with-dbmliborder=gdbm",
+ "--enable-unicode=ucs4"
+ ],
+ "post-install": [
+ /* Theres seem to be a permissions missmatch that causes the debug stripping to fail */
+ "chmod 644 /app/lib/libpython2.7.so.1.0"
+ ],
+ "cleanup": [
+ "/bin/2to3*",
+ "/bin/easy_install*",
+ "/bin/idle*",
+ "/bin/pyvenv*",
+ "/bin/pydoc*",
+ "/include",
+ "/share",
+
+ /* Test scripts */
+ "/lib/python*/test",
+ "/lib/python*/*/test",
+ "/lib/python*/*/tests",
+ "/lib/python*/lib-tk/test",
+ "/lib/python*/lib-dynload/_*_test.*.so",
+ "/lib/python*/lib-dynload/_test*.*.so",
+
+ /* Unused modules */
+ "/lib/python*/idlelib",
+ "/lib/python*/tkinter*",
+ "/lib/python*/turtle*",
+ "/lib/python*/lib2to3*"
+ ]
+}
diff --git a/subprojects/shared-modules/qt4/qt4-4.8.7-minimal.json
b/subprojects/shared-modules/qt4/qt4-4.8.7-minimal.json
new file mode 100644
index 00000000..16affa72
--- /dev/null
+++ b/subprojects/shared-modules/qt4/qt4-4.8.7-minimal.json
@@ -0,0 +1,86 @@
+{
+ "name": "qt4",
+ "config-opts": [
+ "-verbose",
+ "-confirm-license",
+ "-opensource",
+ "-release",
+ "-shared",
+ "-no-static",
+ "-fast",
+ "-datadir", "/app/lib/qt4",
+ "-importdir", "/app/lib/qt4/imports",
+ "-plugindir", "/app/lib/qt4/plugins",
+ "-translationdir", "/app/share/qt4/translations",
+ "-accessibility",
+ "-exceptions",
+ "-fontconfig",
+ "-glib",
+ "-dbus-linked",
+ "-openssl-linked",
+ "-optimized-qmake",
+ "-system-libjpeg",
+ "-system-libpng",
+ "-system-libtiff",
+ "-system-proxies",
+ "-system-zlib",
+ "-no-cups",
+ "-no-declarative",
+ "-no-gtkstyle",
+ "-no-javascript-jit",
+ "-no-libmng",
+ "-no-multimedia",
+ "-no-nis",
+ "-no-opengl",
+ "-no-phonon",
+ "-no-phonon-backend",
+ "-no-qt3support",
+ "-no-rpath",
+ "-no-script",
+ "-no-scripttools",
+ "-no-sql-db2",
+ "-no-sql-ibase",
+ "-no-sql-mysql",
+ "-no-sql-oci",
+ "-no-sql-odbc",
+ "-no-sql-psql",
+ "-no-sql-sqlite",
+ "-no-sql-sqlite2",
+ "-no-sql-sqlite_symbian",
+ "-no-sql-symsql",
+ "-no-sql-tds",
+ "-no-svg",
+ "-no-webkit",
+ "-no-xmlpatterns",
+ "-nomake", "demos",
+ "-nomake", "docs",
+ "-nomake", "examples"
+ ],
+ "build-options": {
+ "env": {
+ "CXXFLAGS": "-std=gnu++98",
+ "LD_LIBRARY_PATH": "/run/build/qt4/lib/"
+ }
+ },
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz",
+ "sha256": "e2882295097e47fe089f8ac741a95fef47e0a73a3f3cdf21b56990638f626ea0"
+ },
+ {
+ "type": "patch",
+ "path": "qt4-aarch64.patch"
+ }
+ ],
+ "cleanup": [
+ "/bin",
+ "/include",
+ "/lib/*.a",
+ "/lib/*.la",
+ "/lib/*.prl",
+ "/lib/pkgconfig",
+ "/lib/qt4/mkspecs",
+ "/lib/qt4/q3porting.xml"
+ ]
+}
diff --git a/subprojects/shared-modules/qt4/qt4-aarch64.patch
b/subprojects/shared-modules/qt4/qt4-aarch64.patch
new file mode 100644
index 00000000..cbe815de
--- /dev/null
+++ b/subprojects/shared-modules/qt4/qt4-aarch64.patch
@@ -0,0 +1,514 @@
+diff -up qt-everywhere-opensource-src-4.8.7/include/QtCore/headers.pri.aarch64
qt-everywhere-opensource-src-4.8.7/include/QtCore/headers.pri
+--- qt-everywhere-opensource-src-4.8.7/include/QtCore/headers.pri.aarch64 2015-05-08 21:48:32.714057739
-0500
++++ qt-everywhere-opensource-src-4.8.7/include/QtCore/headers.pri 2015-05-08 21:53:21.088761971 -0500
+@@ -1,3 +1,3 @@
+-SYNCQT.HEADER_FILES = ../corelib/kernel/qabstracteventdispatcher.h ../corelib/kernel/qabstractitemmodel.h
../corelib/kernel/qbasictimer.h ../corelib/kernel/qcoreapplication.h ../corelib/kernel/qcoreevent.h
../corelib/kernel/qeventloop.h ../corelib/kernel/qfunctions_nacl.h ../corelib/kernel/qfunctions_vxworks.h
../corelib/kernel/qfunctions_wince.h ../corelib/kernel/qmath.h ../corelib/kernel/qmetaobject.h
../corelib/kernel/qmetatype.h ../corelib/kernel/qmimedata.h ../corelib/kernel/qobject.h
../corelib/kernel/qobjectcleanuphandler.h ../corelib/kernel/qobjectdefs.h ../corelib/kernel/qpointer.h
../corelib/kernel/qsharedmemory.h ../corelib/kernel/qsignalmapper.h ../corelib/kernel/qsocketnotifier.h
../corelib/kernel/qsystemsemaphore.h ../corelib/kernel/qtimer.h ../corelib/kernel/qtranslator.h
../corelib/kernel/qvariant.h ../corelib/animation/qabstractanimation.h ../corelib/animation/qanimationgroup.h
../corelib/animation/qparallelanimationgroup.h ../corelib/animation/qpauseanimat
ion.h ..
/corelib/animation/qpropertyanimation.h ../corelib/animation/qsequentialanimationgroup.h
../corelib/animation/qvariantanimation.h ../corelib/arch/qatomic_alpha.h ../corelib/arch/qatomic_arch.h
../corelib/arch/qatomic_arm.h ../corelib/arch/qatomic_armv5.h ../corelib/arch/qatomic_armv6.h
../corelib/arch/qatomic_armv7.h ../corelib/arch/qatomic_avr32.h ../corelib/arch/qatomic_bfin.h
../corelib/arch/qatomic_bootstrap.h ../corelib/arch/qatomic_generic.h ../corelib/arch/qatomic_i386.h
../corelib/arch/qatomic_ia64.h ../corelib/arch/qatomic_integrity.h ../corelib/arch/qatomic_m68k.h
../corelib/arch/qatomic_macosx.h ../corelib/arch/qatomic_mips.h ../corelib/arch/qatomic_parisc.h
../corelib/arch/qatomic_powerpc.h ../corelib/arch/qatomic_s390.h ../corelib/arch/qatomic_sh.h
../corelib/arch/qatomic_sh4a.h ../corelib/arch/qatomic_sparc.h ../corelib/arch/qatomic_symbian.h
../corelib/arch/qatomic_vxworks.h ../corelib/arch/qatomic_windows.h ../corelib/arch/qatomic_windowsce.h
../corelib/arch/
qatomic_
x86_64.h ../corelib/tools/qalgorithms.h ../corelib/tools/qbitarray.h ../corelib/tools/qbytearray.h
../corelib/tools/qbytearraymatcher.h ../corelib/tools/qcache.h ../corelib/tools/qchar.h
../corelib/tools/qcontainerfwd.h ../corelib/tools/qcontiguouscache.h ../corelib/tools/qcryptographichash.h
../corelib/tools/qdatetime.h ../corelib/tools/qeasingcurve.h ../corelib/tools/qelapsedtimer.h
../corelib/tools/qhash.h ../corelib/tools/qiterator.h ../corelib/tools/qline.h ../corelib/tools/qlinkedlist.h
../corelib/tools/qlist.h ../corelib/tools/qlocale.h ../corelib/tools/qlocale_blackberry.h
../corelib/tools/qmap.h ../corelib/tools/qmargins.h ../corelib/tools/qpair.h ../corelib/tools/qpoint.h
../corelib/tools/qqueue.h ../corelib/tools/qrect.h ../corelib/tools/qregexp.h
../corelib/tools/qscopedpointer.h ../corelib/tools/qscopedvaluerollback.h ../corelib/tools/qset.h
../corelib/tools/qshareddata.h ../corelib/tools/qsharedpointer.h ../corelib/tools/qsharedpointer_impl.h
../corelib/tools/q
size.h .
./corelib/tools/qstack.h ../corelib/tools/qstring.h ../corelib/tools/qstringbuilder.h
../corelib/tools/qstringlist.h ../corelib/tools/qstringmatcher.h ../corelib/tools/qtextboundaryfinder.h
../corelib/tools/qtimeline.h ../corelib/tools/qvarlengtharray.h ../corelib/tools/qvector.h
../corelib/plugin/qfactoryinterface.h ../corelib/plugin/qlibrary.h ../corelib/plugin/qplugin.h
../corelib/plugin/qpluginloader.h ../corelib/plugin/quuid.h ../corelib/xml/qxmlstream.h
../corelib/thread/qatomic.h ../corelib/thread/qbasicatomic.h ../corelib/thread/qmutex.h
../corelib/thread/qreadwritelock.h ../corelib/thread/qsemaphore.h ../corelib/thread/qthread.h
../corelib/thread/qthreadstorage.h ../corelib/thread/qwaitcondition.h
../corelib/statemachine/qabstractstate.h ../corelib/statemachine/qabstracttransition.h
../corelib/statemachine/qeventtransition.h ../corelib/statemachine/qfinalstate.h
../corelib/statemachine/qhistorystate.h ../corelib/statemachine/qsignaltransition.h ../corelib/statemachi
ne/qstat
e.h ../corelib/statemachine/qstatemachine.h ../corelib/concurrent/qfuture.h
../corelib/concurrent/qfutureinterface.h ../corelib/concurrent/qfuturesynchronizer.h
../corelib/concurrent/qfuturewatcher.h ../corelib/concurrent/qrunnable.h
../corelib/concurrent/qtconcurrentcompilertest.h ../corelib/concurrent/qtconcurrentexception.h
../corelib/concurrent/qtconcurrentfilter.h ../corelib/concurrent/qtconcurrentfilterkernel.h
../corelib/concurrent/qtconcurrentfunctionwrappers.h ../corelib/concurrent/qtconcurrentiteratekernel.h
../corelib/concurrent/qtconcurrentmap.h ../corelib/concurrent/qtconcurrentmapkernel.h
../corelib/concurrent/qtconcurrentmedian.h ../corelib/concurrent/qtconcurrentreducekernel.h
../corelib/concurrent/qtconcurrentresultstore.h ../corelib/concurrent/qtconcurrentrun.h
../corelib/concurrent/qtconcurrentrunbase.h ../corelib/concurrent/qtconcurrentstoredfunctioncall.h
../corelib/concurrent/qtconcurrentthreadengine.h ../corelib/concurrent/qthreadpool.h ../corelib/io/q
abstract
fileengine.h ../corelib/io/qbuffer.h ../corelib/io/qdatastream.h ../corelib/io/qdebug.h ../corelib/io/qdir.h
../corelib/io/qdiriterator.h ../corelib/io/qfile.h ../corelib/io/qfileinfo.h
../corelib/io/qfilesystemwatcher.h ../corelib/io/qfsfileengine.h ../corelib/io/qiodevice.h
../corelib/io/qprocess.h ../corelib/io/qresource.h ../corelib/io/qsettings.h ../corelib/io/qtemporaryfile.h
../corelib/io/qtextstream.h ../corelib/io/qurl.h ../corelib/global/qconfig-dist.h
../corelib/global/qconfig-large.h ../corelib/global/qconfig-medium.h ../corelib/global/qconfig-minimal.h
../corelib/global/qconfig-nacl.h ../corelib/global/qconfig-small.h ../corelib/global/qendian.h
../corelib/global/qfeatures.h ../corelib/global/qglobal.h ../corelib/global/qlibraryinfo.h
../corelib/global/qnamespace.h ../corelib/global/qnumeric.h ../corelib/global/qt_windows.h
../corelib/global/qconfig.h ../corelib/codecs/qtextcodec.h ../corelib/codecs/qtextcodecplugin.h
../../include/QtCore/QtCore
++SYNCQT.HEADER_FILES = ../corelib/kernel/qabstracteventdispatcher.h ../corelib/kernel/qabstractitemmodel.h
../corelib/kernel/qbasictimer.h ../corelib/kernel/qcoreapplication.h ../corelib/kernel/qcoreevent.h
../corelib/kernel/qeventloop.h ../corelib/kernel/qfunctions_nacl.h ../corelib/kernel/qfunctions_vxworks.h
../corelib/kernel/qfunctions_wince.h ../corelib/kernel/qmath.h ../corelib/kernel/qmetaobject.h
../corelib/kernel/qmetatype.h ../corelib/kernel/qmimedata.h ../corelib/kernel/qobject.h
../corelib/kernel/qobjectcleanuphandler.h ../corelib/kernel/qobjectdefs.h ../corelib/kernel/qpointer.h
../corelib/kernel/qsharedmemory.h ../corelib/kernel/qsignalmapper.h ../corelib/kernel/qsocketnotifier.h
../corelib/kernel/qsystemsemaphore.h ../corelib/kernel/qtimer.h ../corelib/kernel/qtranslator.h
../corelib/kernel/qvariant.h ../corelib/animation/qabstractanimation.h ../corelib/animation/qanimationgroup.h
../corelib/animation/qparallelanimationgroup.h ../corelib/animation/qpauseanimat
ion.h ..
/corelib/animation/qpropertyanimation.h ../corelib/animation/qsequentialanimationgroup.h
../corelib/animation/qvariantanimation.h ../corelib/arch/qatomic_aarch64.h ../corelib/arch/qatomic_alpha.h
../corelib/arch/qatomic_arch.h ../corelib/arch/qatomic_arm.h ../corelib/arch/qatomic_armv5.h
../corelib/arch/qatomic_armv6.h ../corelib/arch/qatomic_armv7.h ../corelib/arch/qatomic_avr32.h
../corelib/arch/qatomic_bfin.h ../corelib/arch/qatomic_bootstrap.h ../corelib/arch/qatomic_generic.h
../corelib/arch/qatomic_i386.h ../corelib/arch/qatomic_ia64.h ../corelib/arch/qatomic_integrity.h
../corelib/arch/qatomic_m68k.h ../corelib/arch/qatomic_macosx.h ../corelib/arch/qatomic_mips.h
../corelib/arch/qatomic_parisc.h ../corelib/arch/qatomic_powerpc.h ../corelib/arch/qatomic_s390.h
../corelib/arch/qatomic_sh.h ../corelib/arch/qatomic_sh4a.h ../corelib/arch/qatomic_sparc.h
../corelib/arch/qatomic_symbian.h ../corelib/arch/qatomic_vxworks.h ../corelib/arch/qatomic_windows.h
../corelib/arch/qa
tomic_wi
ndowsce.h ../corelib/arch/qatomic_x86_64.h ../corelib/tools/qalgorithms.h ../corelib/tools/qbitarray.h
../corelib/tools/qbytearray.h ../corelib/tools/qbytearraymatcher.h ../corelib/tools/qcache.h
../corelib/tools/qchar.h ../corelib/tools/qcontainerfwd.h ../corelib/tools/qcontiguouscache.h
../corelib/tools/qcryptographichash.h ../corelib/tools/qdatetime.h ../corelib/tools/qeasingcurve.h
../corelib/tools/qelapsedtimer.h ../corelib/tools/qhash.h ../corelib/tools/qiterator.h
../corelib/tools/qline.h ../corelib/tools/qlinkedlist.h ../corelib/tools/qlist.h ../corelib/tools/qlocale.h
../corelib/tools/qlocale_blackberry.h ../corelib/tools/qmap.h ../corelib/tools/qmargins.h
../corelib/tools/qpair.h ../corelib/tools/qpoint.h ../corelib/tools/qqueue.h ../corelib/tools/qrect.h
../corelib/tools/qregexp.h ../corelib/tools/qscopedpointer.h ../corelib/tools/qscopedvaluerollback.h
../corelib/tools/qset.h ../corelib/tools/qshareddata.h ../corelib/tools/qsharedpointer.h
../corelib/tools/qshare
dpointer
_impl.h ../corelib/tools/qsize.h ../corelib/tools/qstack.h ../corelib/tools/qstring.h
../corelib/tools/qstringbuilder.h ../corelib/tools/qstringlist.h ../corelib/tools/qstringmatcher.h
../corelib/tools/qtextboundaryfinder.h ../corelib/tools/qtimeline.h ../corelib/tools/qvarlengtharray.h
../corelib/tools/qvector.h ../corelib/plugin/qfactoryinterface.h ../corelib/plugin/qlibrary.h
../corelib/plugin/qplugin.h ../corelib/plugin/qpluginloader.h ../corelib/plugin/quuid.h
../corelib/xml/qxmlstream.h ../corelib/thread/qatomic.h ../corelib/thread/qbasicatomic.h
../corelib/thread/qmutex.h ../corelib/thread/qreadwritelock.h ../corelib/thread/qsemaphore.h
../corelib/thread/qthread.h ../corelib/thread/qthreadstorage.h ../corelib/thread/qwaitcondition.h
../corelib/statemachine/qabstractstate.h ../corelib/statemachine/qabstracttransition.h
../corelib/statemachine/qeventtransition.h ../corelib/statemachine/qfinalstate.h
../corelib/statemachine/qhistorystate.h ../corelib/statemachine/qsignal
transiti
on.h ../corelib/statemachine/qstate.h ../corelib/statemachine/qstatemachine.h
../corelib/concurrent/qfuture.h ../corelib/concurrent/qfutureinterface.h
../corelib/concurrent/qfuturesynchronizer.h ../corelib/concurrent/qfuturewatcher.h
../corelib/concurrent/qrunnable.h ../corelib/concurrent/qtconcurrentcompilertest.h
../corelib/concurrent/qtconcurrentexception.h ../corelib/concurrent/qtconcurrentfilter.h
../corelib/concurrent/qtconcurrentfilterkernel.h ../corelib/concurrent/qtconcurrentfunctionwrappers.h
../corelib/concurrent/qtconcurrentiteratekernel.h ../corelib/concurrent/qtconcurrentmap.h
../corelib/concurrent/qtconcurrentmapkernel.h ../corelib/concurrent/qtconcurrentmedian.h
../corelib/concurrent/qtconcurrentreducekernel.h ../corelib/concurrent/qtconcurrentresultstore.h
../corelib/concurrent/qtconcurrentrun.h ../corelib/concurrent/qtconcurrentrunbase.h
../corelib/concurrent/qtconcurrentstoredfunctioncall.h ../corelib/concurrent/qtconcurrentthreadengine.h
../corelib/concur
rent/qth
readpool.h ../corelib/io/qabstractfileengine.h ../corelib/io/qbuffer.h ../corelib/io/qdatastream.h
../corelib/io/qdebug.h ../corelib/io/qdir.h ../corelib/io/qdiriterator.h ../corelib/io/qfile.h
../corelib/io/qfileinfo.h ../corelib/io/qfilesystemwatcher.h ../corelib/io/qfsfileengine.h
../corelib/io/qiodevice.h ../corelib/io/qprocess.h ../corelib/io/qresource.h ../corelib/io/qsettings.h
../corelib/io/qtemporaryfile.h ../corelib/io/qtextstream.h ../corelib/io/qurl.h
../corelib/global/qconfig-dist.h ../corelib/global/qconfig-large.h ../corelib/global/qconfig-medium.h
../corelib/global/qconfig-minimal.h ../corelib/global/qconfig-nacl.h ../corelib/global/qconfig-small.h
../corelib/global/qendian.h ../corelib/global/qfeatures.h ../corelib/global/qglobal.h
../corelib/global/qlibraryinfo.h ../corelib/global/qnamespace.h ../corelib/global/qnumeric.h
../corelib/global/qt_windows.h ../corelib/global/qconfig.h ../corelib/codecs/qtextcodec.h
../corelib/codecs/qtextcodecplugin.h ../../incl
ude/QtCo
re/QtCore
+ SYNCQT.HEADER_CLASSES = ../../include/QtCore/QAbstractEventDispatcher ../../include/QtCore/QModelIndex
../../include/QtCore/QPersistentModelIndex ../../include/QtCore/QModelIndexList
../../include/QtCore/QAbstractItemModel ../../include/QtCore/QAbstractTableModel
../../include/QtCore/QAbstractListModel ../../include/QtCore/QBasicTimer
../../include/QtCore/QCoreApplication ../../include/QtCore/QtCleanUpFunction ../../include/QtCore/QEvent
../../include/QtCore/QTimerEvent ../../include/QtCore/QChildEvent ../../include/QtCore/QCustomEvent
../../include/QtCore/QDynamicPropertyChangeEvent ../../include/QtCore/QEventLoop
../../include/QtCore/QMetaMethod ../../include/QtCore/QMetaEnum ../../include/QtCore/QMetaProperty
../../include/QtCore/QMetaClassInfo ../../include/QtCore/QMetaType ../../include/QtCore/QMetaTypeId
../../include/QtCore/QMetaTypeId2 ../../include/QtCore/QMimeData ../../include/QtCore/QObjectList
../../include/QtCore/QObjectData ../../include/QtCore/QObject ../../
include/
QtCore/QObjectUserData ../../include/QtCore/QObjectCleanupHandler ../../include/QtCore/QGenericArgument
../../include/QtCore/QGenericReturnArgument ../../include/QtCore/QArgument
../../include/QtCore/QReturnArgument ../../include/QtCore/QMetaObject
../../include/QtCore/QMetaObjectAccessor ../../include/QtCore/QMetaObjectExtraData
../../include/QtCore/QPointer ../../include/QtCore/QSharedMemory ../../include/QtCore/QSignalMapper
../../include/QtCore/QSocketNotifier ../../include/QtCore/QSystemSemaphore ../../include/QtCore/QTimer
../../include/QtCore/QTranslator ../../include/QtCore/QVariant ../../include/QtCore/QVariantList
../../include/QtCore/QVariantMap ../../include/QtCore/QVariantHash
../../include/QtCore/QVariantComparisonHelper ../../include/QtCore/QAbstractAnimation
../../include/QtCore/QAnimationDriver ../../include/QtCore/QAnimationGroup
../../include/QtCore/QParallelAnimationGroup ../../include/QtCore/QPauseAnimation
../../include/QtCore/QPropertyAnimation ../../i
nclude/Q
tCore/QSequentialAnimationGroup ../../include/QtCore/QVariantAnimation ../../include/QtCore/QtAlgorithms
../../include/QtCore/QBitArray ../../include/QtCore/QBitRef ../../include/QtCore/QByteArray
../../include/QtCore/QByteRef ../../include/QtCore/QByteArrayMatcher ../../include/QtCore/QCache
../../include/QtCore/QLatin1Char ../../include/QtCore/QChar ../../include/QtCore/QtContainerFwd
../../include/QtCore/QContiguousCacheData ../../include/QtCore/QContiguousCacheTypedData
../../include/QtCore/QContiguousCache ../../include/QtCore/QCryptographicHash ../../include/QtCore/QDate
../../include/QtCore/QTime ../../include/QtCore/QDateTime ../../include/QtCore/QEasingCurve
../../include/QtCore/QElapsedTimer ../../include/QtCore/QHashData ../../include/QtCore/QHashDummyValue
../../include/QtCore/QHashDummyNode ../../include/QtCore/QHashNode ../../include/QtCore/QHash
../../include/QtCore/QMultiHash ../../include/QtCore/QHashIterator ../../include/QtCore/QMutableHashIterator
../../i
nclude/Q
tCore/QLine ../../include/QtCore/QLineF ../../include/QtCore/QLinkedListData
../../include/QtCore/QLinkedListNode ../../include/QtCore/QLinkedList
../../include/QtCore/QLinkedListIterator ../../include/QtCore/QMutableLinkedListIterator
../../include/QtCore/QListData ../../include/QtCore/QList ../../include/QtCore/QListIterator
../../include/QtCore/QMutableListIterator ../../include/QtCore/QSystemLocale ../../include/QtCore/QLocale
../../include/QtCore/QBBSystemLocaleData ../../include/QtCore/QMapData ../../include/QtCore/QMapNode
../../include/QtCore/QMapPayloadNode ../../include/QtCore/QMap ../../include/QtCore/QMultiMap
../../include/QtCore/QMapIterator ../../include/QtCore/QMutableMapIterator ../../include/QtCore/QMargins
../../include/QtCore/QPair ../../include/QtCore/QPoint ../../include/QtCore/QPointF
../../include/QtCore/QQueue ../../include/QtCore/QRect ../../include/QtCore/QRectF
../../include/QtCore/QRegExp ../../include/QtCore/QScopedPointerDeleter ../../include/Q
tCore/QS
copedPointerArrayDeleter ../../include/QtCore/QScopedPointerPodDeleter ../../include/QtCore/QScopedPointer
../../include/QtCore/QScopedArrayPointer ../../include/QtCore/QScopedValueRollback ../../include/QtCore/QSet
../../include/QtCore/QSetIterator ../../include/QtCore/QMutableSetIterator ../../include/QtCore/QSharedData
../../include/QtCore/QSharedDataPointer ../../include/QtCore/QExplicitlySharedDataPointer
../../include/QtCore/QSharedPointer ../../include/QtCore/QWeakPointer ../../include/QtCore/QSize
../../include/QtCore/QSizeF ../../include/QtCore/QStack ../../include/QtCore/QStdWString
../../include/QtCore/QString ../../include/QtCore/QLatin1String ../../include/QtCore/QCharRef
../../include/QtCore/QConstString ../../include/QtCore/QStringRef ../../include/QtCore/QLatin1Literal
../../include/QtCore/QAbstractConcatenable ../../include/QtCore/QConcatenable
../../include/QtCore/QStringBuilder ../../include/QtCore/QStringListIterator
../../include/QtCore/QMutableStringLis
tIterato
r ../../include/QtCore/QStringList ../../include/QtCore/QStringMatcher
../../include/QtCore/QTextBoundaryFinder ../../include/QtCore/QTimeLine ../../include/QtCore/QVarLengthArray
../../include/QtCore/QVectorData ../../include/QtCore/QVectorTypedData ../../include/QtCore/QVector
../../include/QtCore/QVectorIterator ../../include/QtCore/QMutableVectorIterator
../../include/QtCore/QFactoryInterface ../../include/QtCore/QLibrary ../../include/QtCore/QtPlugin
../../include/QtCore/QtPluginInstanceFunction ../../include/QtCore/QPluginLoader ../../include/QtCore/QUuid
../../include/QtCore/QXmlStreamStringRef ../../include/QtCore/QXmlStreamAttribute
../../include/QtCore/QXmlStreamAttributes ../../include/QtCore/QXmlStreamNamespaceDeclaration
../../include/QtCore/QXmlStreamNamespaceDeclarations ../../include/QtCore/QXmlStreamNotationDeclaration
../../include/QtCore/QXmlStreamNotationDeclarations ../../include/QtCore/QXmlStreamEntityDeclaration
../../include/QtCore/QXmlStreamEntityDec
laration
s ../../include/QtCore/QXmlStreamEntityResolver ../../include/QtCore/QXmlStreamReader
../../include/QtCore/QXmlStreamWriter ../../include/QtCore/QAtomicInt ../../include/QtCore/QAtomicPointer
../../include/QtCore/QBasicAtomicInt ../../include/QtCore/QBasicAtomicPointer ../../include/QtCore/QMutex
../../include/QtCore/QMutexLocker ../../include/QtCore/QMutexData ../../include/QtCore/QReadWriteLock
../../include/QtCore/QReadLocker ../../include/QtCore/QWriteLocker ../../include/QtCore/QSemaphore
../../include/QtCore/QThread ../../include/QtCore/QThreadStorageData ../../include/QtCore/QThreadStorage
../../include/QtCore/QWaitCondition ../../include/QtCore/QAbstractState
../../include/QtCore/QAbstractTransition ../../include/QtCore/QEventTransition
../../include/QtCore/QFinalState ../../include/QtCore/QHistoryState ../../include/QtCore/QSignalTransition
../../include/QtCore/QState ../../include/QtCore/QStateMachine ../../include/QtCore/QFuture
../../include/QtCore/QFutureIterato
r ../../
include/QtCore/QMutableFutureIterator ../../include/QtCore/QFutureInterfaceBase
../../include/QtCore/QFutureInterface ../../include/QtCore/QFutureSynchronizer
../../include/QtCore/QFutureWatcherBase ../../include/QtCore/QFutureWatcher ../../include/QtCore/QRunnable
../../include/QtCore/QtConcurrentFilter ../../include/QtCore/QtConcurrentMap
../../include/QtCore/QtConcurrentRun ../../include/QtCore/QThreadPool
../../include/QtCore/QAbstractFileEngine ../../include/QtCore/QAbstractFileEngineHandler
../../include/QtCore/QAbstractFileEngineIterator ../../include/QtCore/QBuffer
../../include/QtCore/QDataStream ../../include/QtCore/QtDebug ../../include/QtCore/QDebug
../../include/QtCore/QNoDebug ../../include/QtCore/QDir ../../include/QtCore/QDirIterator
../../include/QtCore/QFile ../../include/QtCore/QFileInfo ../../include/QtCore/QFileInfoList
../../include/QtCore/QFileInfoListIterator ../../include/QtCore/QFileSystemWatcher
../../include/QtCore/QFSFileEngine ../../include/QtCo
re/QIODe
vice ../../include/QtCore/Q_PID ../../include/QtCore/QProcessEnvironment ../../include/QtCore/QProcess
../../include/QtCore/QResource ../../include/QtCore/QSettings ../../include/QtCore/QTemporaryFile
../../include/QtCore/QTextStream ../../include/QtCore/QTextStreamFunction
../../include/QtCore/QTextStreamManipulator ../../include/QtCore/QTS ../../include/QtCore/QTextIStream
../../include/QtCore/QTextOStream ../../include/QtCore/QUrl ../../include/QtCore/QtEndian
../../include/QtCore/QtGlobal ../../include/QtCore/QIntegerForSize ../../include/QtCore/QNoImplicitBoolCast
../../include/QtCore/Q_INT8 ../../include/QtCore/Q_UINT8 ../../include/QtCore/Q_INT16
../../include/QtCore/Q_UINT16 ../../include/QtCore/Q_INT32 ../../include/QtCore/Q_UINT32
../../include/QtCore/Q_INT64 ../../include/QtCore/Q_UINT64 ../../include/QtCore/Q_LLONG
../../include/QtCore/Q_ULLONG ../../include/QtCore/Q_LONG ../../include/QtCore/Q_ULONG
../../include/QtCore/QSysInfo ../../include/QtCore/QtMsgHandler
../../i
nclude/QtCore/QGlobalStatic ../../include/QtCore/QGlobalStaticDeleter ../../include/QtCore/QBool
../../include/QtCore/QTypeInfo ../../include/QtCore/QFlag ../../include/QtCore/QIncompatibleFlag
../../include/QtCore/QFlags ../../include/QtCore/QForeachContainer ../../include/QtCore/QForeachContainerBase
../../include/QtCore/QLibraryInfo ../../include/QtCore/Qt ../../include/QtCore/QInternal
../../include/QtCore/QCOORD ../../include/QtCore/QtConfig ../../include/QtCore/QTextCodec
../../include/QtCore/QTextEncoder ../../include/QtCore/QTextDecoder
../../include/QtCore/QTextCodecFactoryInterface ../../include/QtCore/QTextCodecPlugin
+ SYNCQT.PRIVATE_HEADER_FILES = ../corelib/kernel/qabstracteventdispatcher_p.h
../corelib/kernel/qabstractitemmodel_p.h ../corelib/kernel/qcore_mac_p.h ../corelib/kernel/qcore_symbian_p.h
../corelib/kernel/qcore_unix_p.h ../corelib/kernel/qcoreapplication_p.h
../corelib/kernel/qcorecmdlineargs_p.h ../corelib/kernel/qcoreglobaldata_p.h
../corelib/kernel/qcrashhandler_p.h ../corelib/kernel/qeventdispatcher_blackberry_p.h
../corelib/kernel/qeventdispatcher_glib_p.h ../corelib/kernel/qeventdispatcher_symbian_p.h
../corelib/kernel/qeventdispatcher_unix_p.h ../corelib/kernel/qeventdispatcher_win_p.h
../corelib/kernel/qfunctions_p.h ../corelib/kernel/qmetaobject_p.h ../corelib/kernel/qobject_p.h
../corelib/kernel/qsharedmemory_p.h ../corelib/kernel/qsystemerror_p.h ../corelib/kernel/qsystemsemaphore_p.h
../corelib/kernel/qtranslator_p.h ../corelib/kernel/qvariant_p.h ../corelib/kernel/qwineventnotifier_p.h
../corelib/animation/qabstractanimation_p.h ../corelib/animation/qanimationgr
oup_p.h
../corelib/animation/qparallelanimationgroup_p.h ../corelib/animation/qpropertyanimation_p.h
../corelib/animation/qsequentialanimationgroup_p.h ../corelib/animation/qvariantanimation_p.h
../corelib/tools/qbytedata_p.h ../corelib/tools/qdatetime_p.h ../corelib/tools/qharfbuzz_p.h
../corelib/tools/qlocale_data_p.h ../corelib/tools/qlocale_p.h ../corelib/tools/qlocale_tools_p.h
../corelib/tools/qpodlist_p.h ../corelib/tools/qringbuffer_p.h ../corelib/tools/qscopedpointer_p.h
../corelib/tools/qsimd_p.h ../corelib/tools/qtools_p.h ../corelib/tools/qunicodetables_p.h
../corelib/plugin/qelfparser_p.h ../corelib/plugin/qfactoryloader_p.h ../corelib/plugin/qlibrary_p.h
../corelib/plugin/qsystemlibrary_p.h ../corelib/xml/qxmlstream_p.h ../corelib/xml/qxmlutils_p.h
../corelib/thread/qmutex_p.h ../corelib/thread/qmutexpool_p.h ../corelib/thread/qorderedmutexlocker_p.h
../corelib/thread/qreadwritelock_p.h ../corelib/thread/qthread_p.h ../corelib/statemachine/qabstractstate_p.h
../corelib
/statema
chine/qabstracttransition_p.h ../corelib/statemachine/qeventtransition_p.h
../corelib/statemachine/qhistorystate_p.h ../corelib/statemachine/qsignaleventgenerator_p.h
../corelib/statemachine/qsignaltransition_p.h ../corelib/statemachine/qstate_p.h
../corelib/statemachine/qstatemachine_p.h ../corelib/concurrent/qfutureinterface_p.h
../corelib/concurrent/qfuturewatcher_p.h ../corelib/concurrent/qthreadpool_p.h
../corelib/io/qabstractfileengine_p.h ../corelib/io/qdatastream_p.h ../corelib/io/qdataurl_p.h
../corelib/io/qdir_p.h ../corelib/io/qfile_p.h ../corelib/io/qfileinfo_p.h
../corelib/io/qfilesystemengine_p.h ../corelib/io/qfilesystementry_p.h ../corelib/io/qfilesystemiterator_p.h
../corelib/io/qfilesystemmetadata_p.h ../corelib/io/qfilesystemwatcher_dnotify_p.h
../corelib/io/qfilesystemwatcher_fsevents_p.h ../corelib/io/qfilesystemwatcher_inotify_p.h
../corelib/io/qfilesystemwatcher_kqueue_p.h ../corelib/io/qfilesystemwatcher_p.h
../corelib/io/qfilesystemwatcher_symbian_p.
h ../cor
elib/io/qfilesystemwatcher_win_p.h ../corelib/io/qfsfileengine_iterator_p.h ../corelib/io/qfsfileengine_p.h
../corelib/io/qiodevice_p.h ../corelib/io/qnoncontiguousbytedevice_p.h ../corelib/io/qprocess_p.h
../corelib/io/qresource_iterator_p.h ../corelib/io/qresource_p.h ../corelib/io/qsettings_p.h
../corelib/io/qtldurl_p.h ../corelib/io/qurltlds_p.h ../corelib/io/qwindowspipewriter_p.h
../corelib/global/qnumeric_p.h ../corelib/global/qt_pch.h ../corelib/codecs/qfontlaocodec_p.h
../corelib/codecs/qiconvcodec_p.h ../corelib/codecs/qisciicodec_p.h ../corelib/codecs/qlatincodec_p.h
../corelib/codecs/qsimplecodec_p.h ../corelib/codecs/qtextcodec_p.h ../corelib/codecs/qtsciicodec_p.h
../corelib/codecs/qutfcodec_p.h
+diff -up qt-everywhere-opensource-src-4.8.7/include/QtCore/qatomic_aarch64.h.aarch64
qt-everywhere-opensource-src-4.8.7/include/QtCore/qatomic_aarch64.h
+--- qt-everywhere-opensource-src-4.8.7/include/QtCore/qatomic_aarch64.h.aarch64 2015-05-08
21:48:32.715057744 -0500
++++ qt-everywhere-opensource-src-4.8.7/include/QtCore/qatomic_aarch64.h 2015-05-08 21:48:32.715057744
-0500
+@@ -0,0 +1 @@
++#include "../../src/corelib/arch/qatomic_aarch64.h"
+diff -up
qt-everywhere-opensource-src-4.8.7/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri.aarch64
qt-everywhere-opensource-src-4.8.7/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
+--- qt-everywhere-opensource-src-4.8.7/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri.aarch64
2015-05-07 09:14:47.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.7/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
2015-05-08 21:48:33.268061013 -0500
+@@ -66,6 +66,12 @@ contains(JAVASCRIPTCORE_JIT,no) {
+ }
+ }
+
++# Hack around AARCH64 fail wrt JSValue.h
++equals(QT_ARCH, aarch64) {
++ message("JavaScriptCore aarch64 hack: -fpermissive")
++ QMAKE_CXXFLAGS += -fpermissive
++}
++
+ wince* {
+ INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty/ce-compat
+ SOURCES += $$QT_SOURCE_TREE/src/3rdparty/ce-compat/ce_time.c
+diff -up
qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/JavaScriptCore.pri.aarch64
qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/JavaScriptCore.pri
+--- qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/JavaScriptCore.pri.aarch64
2015-05-07 09:14:45.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/JavaScriptCore.pri
2015-05-08 21:48:33.268061013 -0500
+@@ -63,6 +63,12 @@ contains (CONFIG, text_breaking_with_icu
+ DEFINES += WTF_USE_QT_ICU_TEXT_BREAKING=1
+ }
+
++# Hack around AARCH64 fail wrt JSValue.h
++equals(QT_ARCH, aarch64) {
++ message("JavaScriptCore aarch64 hack: -fpermissive")
++ QMAKE_CXXFLAGS += -fpermissive
++}
++
+ wince* {
+ INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty/ce-compat
+ INCLUDEPATH += $$PWD/../JavaScriptCore/os-win32
+diff -up qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h.aarch64
qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h
+--- qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h.aarch64
2015-05-07 09:14:45.000000000 -0500
++++ qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h
2015-05-08 21:48:33.269061019 -0500
+@@ -369,7 +369,16 @@
+
+ #endif /* ARM */
+
+-#if CPU(ARM) || CPU(MIPS) || CPU(SH4)
++/* CPU(AARCH64) - AArch64 */
++#if defined(__aarch64__)
++#define WTF_CPU_AARCH64 1
++#if defined(__AARCH64EB__)
++#define WTF_CPU_BIG_ENDIAN 1
++#endif
++#endif
++
++/* Not sure about this one, qt5-qtwebkit doesn't include it -- rex */
++#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(AARCH64)
+ #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1
+ #endif
+
+@@ -1003,7 +1012,7 @@
+ || CPU(SPARC64) \
+ || CPU(S390X) \
+ || CPU(PPC64) \
+- || CPU(MIPS64)
++ || CPU(MIPS64) || CPU(AARCH64)
+ #define WTF_USE_JSVALUE64 1
+ #else
+ #define WTF_USE_JSVALUE32_64 1
+diff -up qt-everywhere-opensource-src-4.8.7/src/corelib/arch/aarch64/qatomic_aarch64.cpp.aarch64
qt-everywhere-opensource-src-4.8.7/src/corelib/arch/aarch64/qatomic_aarch64.cpp
+--- qt-everywhere-opensource-src-4.8.7/src/corelib/arch/aarch64/qatomic_aarch64.cpp.aarch64 2015-05-08
21:48:33.269061019 -0500
++++ qt-everywhere-opensource-src-4.8.7/src/corelib/arch/aarch64/qatomic_aarch64.cpp 2015-05-08
21:48:33.269061019 -0500
+@@ -0,0 +1,70 @@
++/****************************************************************************
++**
++** Copyright (C) 2012, 2013 Digia Plc and/or its subsidiary(-ies).
++** Contact: http://www.qt-project.org/legal
++**
++** This file is part of the QtCore module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** Commercial License Usage
++** Licensees holding valid commercial Qt licenses may use this file in
++** accordance with the commercial license agreement provided with the
++** Software or, alternatively, in accordance with the terms contained in
++** a written agreement between you and Digia. For licensing terms and
++** conditions see http://qt.digia.com/licensing. For further information
++** use the contact form at http://qt.digia.com/contact-us.
++**
++** GNU Lesser General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU Lesser
++** General Public License version 2.1 as published by the Free Software
++** Foundation and appearing in the file LICENSE.LGPL included in the
++** packaging of this file. Please review the following information to
++** ensure the GNU Lesser General Public License version 2.1 requirements
++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
++**
++** In addition, as a special exception, Digia gives you certain additional
++** rights. These rights are described in the Digia Qt LGPL Exception
++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU
++** General Public License version 3.0 as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL included in the
++** packaging of this file. Please review the following information to
++** ensure the GNU General Public License version 3.0 requirements will be
++** met: http://www.gnu.org/copyleft/gpl.html.
++**
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++#include <QtCore/qglobal.h>
++
++#include <unistd.h>
++#ifdef _POSIX_PRIORITY_SCHEDULING
++# include <sched.h>
++#endif
++#include <time.h>
++
++QT_BEGIN_NAMESPACE
++
++QT_USE_NAMESPACE
++
++Q_CORE_EXPORT void qt_atomic_yield(int *count)
++{
++#ifdef _POSIX_PRIORITY_SCHEDULING
++ if((*count)++ < 50) {
++ sched_yield();
++ } else
++#endif
++ {
++ struct timespec tm;
++ tm.tv_sec = 0;
++ tm.tv_nsec = 2000001;
++ nanosleep(&tm, NULL);
++ *count = 0;
++ }
++}
++
++QT_END_NAMESPACE
+diff -up qt-everywhere-opensource-src-4.8.7/src/corelib/arch/arch.pri.aarch64
qt-everywhere-opensource-src-4.8.7/src/corelib/arch/arch.pri
+--- qt-everywhere-opensource-src-4.8.7/src/corelib/arch/arch.pri.aarch64 2015-05-07 09:14:48.000000000
-0500
++++ qt-everywhere-opensource-src-4.8.7/src/corelib/arch/arch.pri 2015-05-08 21:48:33.270061025 -0500
+@@ -31,7 +31,9 @@ integrity:HEADERS += arch/qatomic_integr
+ arch/qatomic_s390.h \
+ arch/qatomic_x86_64.h \
+ arch/qatomic_sh.h \
+- arch/qatomic_sh4a.h
++ arch/qatomic_sh4a.h \
++ arch/qatomic_aarch64.h \
++
+
+ QT_ARCH_CPP = $$QT_SOURCE_TREE/src/corelib/arch/$$QT_ARCH
+ DEPENDPATH += $$QT_ARCH_CPP
+diff -up qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_aarch64.h.aarch64
qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_aarch64.h
+--- qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_aarch64.h.aarch64 2015-05-08
21:48:33.270061025 -0500
++++ qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_aarch64.h 2015-05-08 21:48:33.270061025
-0500
+@@ -0,0 +1,335 @@
++/****************************************************************************
++**
++** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
++** Contact: http://www.qt-project.org/legal
++**
++** This file is part of the QtCore module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** Commercial License Usage
++** Licensees holding valid commercial Qt licenses may use this file in
++** accordance with the commercial license agreement provided with the
++** Software or, alternatively, in accordance with the terms contained in
++** a written agreement between you and Digia. For licensing terms and
++** conditions see http://qt.digia.com/licensing. For further information
++** use the contact form at http://qt.digia.com/contact-us.
++**
++** GNU Lesser General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU Lesser
++** General Public License version 2.1 as published by the Free Software
++** Foundation and appearing in the file LICENSE.LGPL included in the
++** packaging of this file. Please review the following information to
++** ensure the GNU Lesser General Public License version 2.1 requirements
++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
++**
++** In addition, as a special exception, Digia gives you certain additional
++** rights. These rights are described in the Digia Qt LGPL Exception
++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU
++** General Public License version 3.0 as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL included in the
++** packaging of this file. Please review the following information to
++** ensure the GNU General Public License version 3.0 requirements will be
++** met: http://www.gnu.org/copyleft/gpl.html.
++**
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++#ifndef QATOMIC_AARCH64_H
++#define QATOMIC_AARCH64_H
++
++QT_BEGIN_HEADER
++
++QT_BEGIN_NAMESPACE
++
++#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE
++
++inline bool QBasicAtomicInt::isReferenceCountingNative()
++{ return true; }
++inline bool QBasicAtomicInt::isReferenceCountingWaitFree()
++{ return false; }
++
++#define Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE
++
++inline bool QBasicAtomicInt::isTestAndSetNative()
++{ return true; }
++inline bool QBasicAtomicInt::isTestAndSetWaitFree()
++{ return false; }
++
++#define Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE
++
++inline bool QBasicAtomicInt::isFetchAndStoreNative()
++{ return true; }
++inline bool QBasicAtomicInt::isFetchAndStoreWaitFree()
++{ return false; }
++
++#define Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE
++
++inline bool QBasicAtomicInt::isFetchAndAddNative()
++{ return true; }
++inline bool QBasicAtomicInt::isFetchAndAddWaitFree()
++{ return false; }
++
++#define Q_ATOMIC_POINTER_TEST_AND_SET_IS_ALWAYS_NATIVE
++
++template <typename T>
++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isTestAndSetNative()
++{ return true; }
++template <typename T>
++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isTestAndSetWaitFree()
++{ return false; }
++
++#define Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_ALWAYS_NATIVE
++
++template <typename T>
++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndStoreNative()
++{ return true; }
++template <typename T>
++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndStoreWaitFree()
++{ return false; }
++
++#define Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_ALWAYS_NATIVE
++
++template <typename T>
++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddNative()
++{ return true; }
++template <typename T>
++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddWaitFree()
++{ return false; }
++
++#ifndef Q_DATA_MEMORY_BARRIER
++# define Q_DATA_MEMORY_BARRIER asm volatile("dmb sy\n":::"memory")
++#endif
++#ifndef Q_COMPILER_MEMORY_BARRIER
++# define Q_COMPILER_MEMORY_BARRIER asm volatile("":::"memory")
++#endif
++
++inline bool QBasicAtomicInt::ref()
++{
++ int newValue;
++
++ Q_COMPILER_MEMORY_BARRIER;
++ newValue = __atomic_add_fetch(&_q_value, 1, __ATOMIC_ACQ_REL);
++ Q_COMPILER_MEMORY_BARRIER;
++
++ return newValue != 0;
++}
++
++inline bool QBasicAtomicInt::deref()
++{
++ int newValue;
++
++ Q_COMPILER_MEMORY_BARRIER;
++ newValue = __atomic_sub_fetch(&_q_value, 1, __ATOMIC_ACQ_REL);
++ Q_COMPILER_MEMORY_BARRIER;
++
++ return newValue != 0;
++}
++
++inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
++{
++ bool val;
++
++ Q_COMPILER_MEMORY_BARRIER;
++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue,
++ false, __ATOMIC_RELAXED, __ATOMIC_RELAXED);
++ Q_COMPILER_MEMORY_BARRIER;
++ return val;
++}
++
++inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
++{
++ int val;
++ Q_COMPILER_MEMORY_BARRIER;
++ val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED);
++ Q_COMPILER_MEMORY_BARRIER;
++ return val;
++}
++
++inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
++{
++ int val;
++ Q_COMPILER_MEMORY_BARRIER;
++ val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED);
++ Q_COMPILER_MEMORY_BARRIER;
++ return val;
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
++{
++ bool val;
++ Q_COMPILER_MEMORY_BARRIER;
++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue,
++ false, __ATOMIC_RELAXED, __ATOMIC_RELAXED);
++ Q_COMPILER_MEMORY_BARRIER;
++ return val;
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
++{
++ T *val;
++ Q_COMPILER_MEMORY_BARRIER;
++ val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED);
++ Q_COMPILER_MEMORY_BARRIER;
++ return val;
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
++{
++ T *val;
++ Q_COMPILER_MEMORY_BARRIER;
++ val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED);
++ Q_COMPILER_MEMORY_BARRIER;
++ return val;
++}
++
++inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
++{
++ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
++ Q_DATA_MEMORY_BARRIER;
++ return returnValue;
++}
++
++inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue)
++{
++ Q_DATA_MEMORY_BARRIER;
++ return testAndSetRelaxed(expectedValue, newValue);
++}
++
++inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue)
++{
++ Q_DATA_MEMORY_BARRIER;
++ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
++ Q_COMPILER_MEMORY_BARRIER;
++ return returnValue;
++}
++
++inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
++{
++ int returnValue = fetchAndStoreRelaxed(newValue);
++ Q_DATA_MEMORY_BARRIER;
++ return returnValue;
++}
++
++inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue)
++{
++ Q_DATA_MEMORY_BARRIER;
++ return fetchAndStoreRelaxed(newValue);
++}
++
++inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue)
++{
++ Q_DATA_MEMORY_BARRIER;
++ int returnValue = fetchAndStoreRelaxed(newValue);
++ Q_COMPILER_MEMORY_BARRIER;
++ return returnValue;
++}
++
++inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd)
++{
++ int returnValue = fetchAndAddRelaxed(valueToAdd);
++ Q_DATA_MEMORY_BARRIER;
++ return returnValue;
++}
++
++inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd)
++{
++ Q_DATA_MEMORY_BARRIER;
++ return fetchAndAddRelaxed(valueToAdd);
++}
++
++inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd)
++{
++ Q_DATA_MEMORY_BARRIER;
++ int returnValue = fetchAndAddRelaxed(valueToAdd);
++ Q_COMPILER_MEMORY_BARRIER;
++ return returnValue;
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue)
++{
++ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
++ Q_DATA_MEMORY_BARRIER;
++ return returnValue;
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue)
++{
++ Q_DATA_MEMORY_BARRIER;
++ return testAndSetRelaxed(expectedValue, newValue);
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetOrdered(T *expectedValue, T *newValue)
++{
++ Q_DATA_MEMORY_BARRIER;
++ bool returnValue = testAndSetAcquire(expectedValue, newValue);
++ Q_COMPILER_MEMORY_BARRIER;
++ return returnValue;
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
++{
++ T *returnValue = fetchAndStoreRelaxed(newValue);
++ Q_DATA_MEMORY_BARRIER;
++ return returnValue;
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
++{
++ Q_DATA_MEMORY_BARRIER;
++ return fetchAndStoreRelaxed(newValue);
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreOrdered(T *newValue)
++{
++ Q_DATA_MEMORY_BARRIER;
++ T *returnValue = fetchAndStoreRelaxed(newValue);
++ Q_COMPILER_MEMORY_BARRIER;
++ return returnValue;
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd)
++{
++ T *returnValue = fetchAndAddRelaxed(valueToAdd);
++ Q_DATA_MEMORY_BARRIER;
++ return returnValue;
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd)
++{
++ Q_DATA_MEMORY_BARRIER;
++ return fetchAndAddRelaxed(valueToAdd);
++}
++
++template <typename T>
++Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd)
++{
++ Q_DATA_MEMORY_BARRIER;
++ T *returnValue = fetchAndAddRelaxed(valueToAdd);
++ Q_COMPILER_MEMORY_BARRIER;
++ return returnValue;
++}
++
++#undef Q_DATA_MEMORY_BARRIER
++#undef Q_COMPILER_MEMORY_BARRIER
++
++QT_END_NAMESPACE
++
++QT_END_HEADER
++
++#endif // QATOMIC_AARCH64_H
+diff -up qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_arch.h.aarch64
qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_arch.h
+--- qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_arch.h.aarch64 2015-05-07 09:14:48.000000000
-0500
++++ qt-everywhere-opensource-src-4.8.7/src/corelib/arch/qatomic_arch.h 2015-05-08 21:48:33.271061031 -0500
+@@ -94,6 +94,8 @@ QT_BEGIN_HEADER
+ # include "QtCore/qatomic_sh4a.h"
+ #elif defined(QT_ARCH_NACL)
+ # include "QtCore/qatomic_generic.h"
++#elif defined(QT_ARCH_AARCH64)
++# include "QtCore/qatomic_aarch64.h"
+ #else
+ # error "Qt has not been ported to this architecture"
+ #endif
diff --git a/subprojects/shared-modules/smpeg/smpeg-0.4.5.json
b/subprojects/shared-modules/smpeg/smpeg-0.4.5.json
new file mode 100644
index 00000000..a4d82aab
--- /dev/null
+++ b/subprojects/shared-modules/smpeg/smpeg-0.4.5.json
@@ -0,0 +1,39 @@
+{
+ "name": "smpeg",
+ "config-opts": ["--disable-static"],
+ "cleanup": [
+ "/bin",
+ "/man"
+ ],
+ "rm-configure": true,
+ "sources": [
+ {
+ "type": "archive",
+ "url": "http://http.debian.net/debian/pool/main/s/smpeg/smpeg_0.4.5+cvs20030824.orig.tar.gz",
+ "sha256": "1276ea797dd9fde8a12dd3f33f180153922544c28ca9fc7b477c018876be1916"
+ },
+ {
+ "type": "script",
+ "dest-filename": "autogen.sh",
+ "commands": [
+ "AUTOMAKE=\"automake --foreign --add-missing --force-missing\" autoreconf -vfi"
+ ]
+ },
+ {
+ "type": "patch",
+ "path": "smpeg-am-prog-as.patch"
+ },
+ {
+ "type": "patch",
+ "path": "smpeg-export-mpegaudio-class.patch"
+ },
+ {
+ "type": "patch",
+ "path": "smpeg-no-gtk.patch"
+ },
+ {
+ "type": "patch",
+ "path": "smpeg-gcc6.patch"
+ }
+ ]
+}
diff --git a/subprojects/shared-modules/smpeg/smpeg-am-prog-as.patch
b/subprojects/shared-modules/smpeg/smpeg-am-prog-as.patch
new file mode 100644
index 00000000..36197d71
--- /dev/null
+++ b/subprojects/shared-modules/smpeg/smpeg-am-prog-as.patch
@@ -0,0 +1,12 @@
+Index: smpeg-0.4.5+cvs20030824/configure.in
+===================================================================
+--- smpeg-0.4.5+cvs20030824.orig/configure.in
++++ smpeg-0.4.5+cvs20030824/configure.in
+@@ -57,6 +57,7 @@
+ AC_LIBTOOL_WIN32_DLL
+ AM_PROG_LIBTOOL
+ AC_PROG_INSTALL
++AM_PROG_AS
+
+ dnl Ugh.
+ AS="$CC"
diff --git a/subprojects/shared-modules/smpeg/smpeg-export-mpegaudio-class.patch
b/subprojects/shared-modules/smpeg/smpeg-export-mpegaudio-class.patch
new file mode 100644
index 00000000..9ecb9b58
--- /dev/null
+++ b/subprojects/shared-modules/smpeg/smpeg-export-mpegaudio-class.patch
@@ -0,0 +1,17 @@
+--- smpeg-0.4.5+cvs20030824.orig/MPEGaudio.h
++++ smpeg-0.4.5+cvs20030824/MPEGaudio.h
+@@ -149,6 +149,14 @@
+ };
+
+ /* The actual MPEG audio class */
++
++class MPEGaudio;
++void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len);
++int Play_MPEGaudio(MPEGaudio *audio, Uint8 *stream, int len);
++#ifdef THREADED_AUDIO
++int Decode_MPEGaudio(void *udata);
++#endif
++
+ class MPEGaudio : public MPEGerror, public MPEGaudioaction {
+
+ friend void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len);
diff --git a/subprojects/shared-modules/smpeg/smpeg-gcc6.patch
b/subprojects/shared-modules/smpeg/smpeg-gcc6.patch
new file mode 100644
index 00000000..21b30da5
--- /dev/null
+++ b/subprojects/shared-modules/smpeg/smpeg-gcc6.patch
@@ -0,0 +1,40 @@
+Description: Fix compiling with GCC 6.
+Author: Johannes Brandstätter <jbrandst 2ds eu>
+Bug-Debian: https://bugs.debian.org/811742
+Last-Update: <2016-09-24>
+
+Index: smpeg-0.4.5+cvs20030824/audio/huffmantable.cpp
+===================================================================
+--- smpeg-0.4.5+cvs20030824.orig/audio/huffmantable.cpp
++++ smpeg-0.4.5+cvs20030824/audio/huffmantable.cpp
+@@ -9,6 +9,7 @@
+ #include "config.h"
+ #endif
+
++#include <climits>
+ #include "MPEGaudio.h"
+
+ static const unsigned int
+@@ -550,11 +551,11 @@ htd33[ 31][2]={{ 16, 1},{ 8, 1},{ 4,
+
+ const HUFFMANCODETABLE MPEGaudio::ht[HTN]=
+ {
+- { 0, 0-1, 0-1, 0, 0, htd33},
++ { 0, UINT_MAX, UINT_MAX, 0, 0, htd33},
+ { 1, 2-1, 2-1, 0, 7,htd01},
+ { 2, 3-1, 3-1, 0, 17,htd02},
+ { 3, 3-1, 3-1, 0, 17,htd03},
+- { 4, 0-1, 0-1, 0, 0, htd33},
++ { 4, UINT_MAX, UINT_MAX, 0, 0, htd33},
+ { 5, 4-1, 4-1, 0, 31,htd05},
+ { 6, 4-1, 4-1, 0, 31,htd06},
+ { 7, 6-1, 6-1, 0, 71,htd07},
+@@ -564,7 +565,7 @@ const HUFFMANCODETABLE MPEGaudio::ht[HTN
+ {11, 8-1, 8-1, 0,127,htd11},
+ {12, 8-1, 8-1, 0,127,htd12},
+ {13,16-1,16-1, 0,511,htd13},
+- {14, 0-1, 0-1, 0, 0, htd33},
++ {14, UINT_MAX, UINT_MAX, 0, 0, htd33},
+ {15,16-1,16-1, 0,511,htd15},
+ {16,16-1,16-1, 1,511,htd16},
+ {17,16-1,16-1, 2,511,htd16},
diff --git a/subprojects/shared-modules/smpeg/smpeg-no-gtk.patch
b/subprojects/shared-modules/smpeg/smpeg-no-gtk.patch
new file mode 100644
index 00000000..792596cf
--- /dev/null
+++ b/subprojects/shared-modules/smpeg/smpeg-no-gtk.patch
@@ -0,0 +1,37 @@
+From 62cda978596a323cd7042722f906df906007e5b5 Mon Sep 17 00:00:00 2001
+From: Cosimo Cecchi <cosimoc gnome org>
+Date: Sat, 15 Apr 2017 13:24:39 -0700
+Subject: [PATCH] Comment out GTK detection
+
+---
+ configure.in | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 20b1355..2cb4753 100644
+--- a/configure.in
++++ b/configure.in
+@@ -208,13 +208,13 @@ AC_ARG_ENABLE(gtk_player,
+ [ --enable-gtk-player build a GTk sample SMPEG player [default=yes]],
+ , enable_gtk_player=yes)
+ have_gtk=no
+-if test x$enable_gtk_player = xyes; then
+- AM_PATH_GTK(1.2.1, have_gtk=yes)
+- if test x$have_gtk = xyes; then
+- CFLAGS="$CFLAGS $GTK_CFLAGS"
+- fi
+- AC_SUBST(GTK_LIBS)
+-fi
++dnl if test x$enable_gtk_player = xyes; then
++dnl AM_PATH_GTK(1.2.1, have_gtk=yes)
++dnl if test x$have_gtk = xyes; then
++dnl CFLAGS="$CFLAGS $GTK_CFLAGS"
++dnl fi
++dnl AC_SUBST(GTK_LIBS)
++dnl fi
+ AM_CONDITIONAL(HAVE_GTK, test x$have_gtk = xyes)
+
+ dnl See if we can build the Mesa player
+--
+2.12.2
+
diff --git a/subprojects/shared-modules/udev/udev-175.json b/subprojects/shared-modules/udev/udev-175.json
new file mode 100644
index 00000000..a456dea8
--- /dev/null
+++ b/subprojects/shared-modules/udev/udev-175.json
@@ -0,0 +1,43 @@
+{
+ "name": "udev",
+ "rm-configure": true,
+ "config-opts": [
+ "--disable-hwdb",
+ "--disable-logging",
+ "--disable-introspection",
+ "--disable-keymap",
+ "--disable-mtd_probe"
+ ],
+ "cleanup": [
+ "/include",
+ "/etc",
+ "/libexec",
+ "/sbin",
+ "/lib/pkgconfig",
+ "/man",
+ "/share/aclocal",
+ "/share/doc",
+ "/share/gtk-doc",
+ "/share/man",
+ "/share/pkgconfig",
+ "*.la",
+ "*.a"
+ ],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "http://kernel.org/pub/linux/utils/kernel/hotplug/udev-175.tar.bz2",
+ "sha256": "4c7937fe5a1521316ea571188745b9a00a9fdf314228cffc53a7ba9e5968b7ab"
+ },
+ {
+ "type": "script",
+ "dest-filename": "autogen.sh",
+ "commands": [
+ "autoreconf -vfi"
+ ]
+ }
+ ],
+ "post-install": [
+ "sed -i 's|${exec_prefix}|/app|g' /app/share/pkgconfig/udev.pc"
+ ]
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]