diff options
Diffstat (limited to 'subprojects')
118 files changed, 7461 insertions, 0 deletions
diff --git a/subprojects/.gitignore b/subprojects/.gitignore new file mode 100644 index 00000000..355164c1 --- /dev/null +++ b/subprojects/.gitignore @@ -0,0 +1 @@ +*/ diff --git a/subprojects/grilo-plugins.wrap b/subprojects/grilo-plugins.wrap new file mode 100644 index 00000000..88ab98a6 --- /dev/null +++ b/subprojects/grilo-plugins.wrap @@ -0,0 +1,4 @@ +[wrap-git] +directory = grilo-plugins +url = https://gitlab.gnome.org/GNOME/grilo-plugins.git +revision = head diff --git a/subprojects/grilo.wrap b/subprojects/grilo.wrap new file mode 100644 index 00000000..ca4e8905 --- /dev/null +++ b/subprojects/grilo.wrap @@ -0,0 +1,4 @@ +[wrap-git] +directory = grilo +url = https://gitlab.gnome.org/GNOME/grilo.git +revision = head diff --git a/subprojects/shared-modules/CODEOWNERS b/subprojects/shared-modules/CODEOWNERS new file mode 100644 index 00000000..864e266c --- /dev/null +++ b/subprojects/shared-modules/CODEOWNERS @@ -0,0 +1,21 @@ +# Fallback on Flathub admins for unowned shared modules +* @flathub/reviewers + +/dbus-glib/ @TingPing +/clutter/ @A6GibKm +/gtk2/ @TingPing +/gudev/ @Erick555 +/intltool/ @TingPing +/libappindicator/ @TingPing +/libcanberra/ @hadess +/libsecret/ @Lctrs +/libusb/ @A6GibKm +/openjpeg/ @mbridon +/physfs/ @Mailaender +/python2.7/ @bilelmoussaoui +/linux-audio/ @hfiguiere +/lua5.1/ @Unrud +/mac/ @enzo1982 @Eonfge +/pygtk/ @Eonfge +/gzdoom/ @Eonfge +/vorbisgain/ @Eonfge diff --git a/subprojects/shared-modules/README.md b/subprojects/shared-modules/README.md new file mode 100644 index 00000000..cde47075 --- /dev/null +++ b/subprojects/shared-modules/README.md @@ -0,0 +1,38 @@ +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" + } +] +``` + +To update the submodule: + +``` +git submodule update --remote --merge +``` + +To remove the submodule: + +``` +git submodule deinit -f -- shared-modules +rm -rf .git/modules/shared-modules +git rm -f shared-modules +rm .gitmodules +``` + + +[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..4d00288b --- /dev/null +++ b/subprojects/shared-modules/SDL/SDL-1.2.15.json @@ -0,0 +1,40 @@ +{ + "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": "patch", + "path": "sdl-check-for-SDL_VIDEO_X11_BACKINGSTORE.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..c5a04d51 --- /dev/null +++ b/subprojects/shared-modules/SDL/SDL_ttf-2.0.11.json @@ -0,0 +1,22 @@ +{ + "name": "SDL_ttf", + "config-opts": ["--disable-static"], + "rm-configure": true, + "config-opts": [ + "ac_cv_path_FREETYPE_CONFIG=pkg-config freetype2" + ], + "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-check-for-SDL_VIDEO_X11_BACKINGSTORE.patch b/subprojects/shared-modules/SDL/sdl-check-for-SDL_VIDEO_X11_BACKINGSTORE.patch new file mode 100644 index 00000000..c29811d7 --- /dev/null +++ b/subprojects/shared-modules/SDL/sdl-check-for-SDL_VIDEO_X11_BACKINGSTORE.patch @@ -0,0 +1,24 @@ +Description: Do not harness backing store by default + xorg-server 1.15 enables backing store if composite extension is enabled + (default settings). Harnessing backing store through compositor leads to + tearing effect. + This patch reverts default harnessing backing store to conditional use if + SDL_VIDEO_X11_BACKINGSTORE environment variable exists. +Origin: https://bugs.launchpad.net/ubuntu/+source/libsdl1.2/+bug/1280665/comments/1 +Bug: https://bugzilla.libsdl.org/show_bug.cgi?id=2383 +Bug-Debian: https://bugs.debian.org/747168 + +--- a/src/video/x11/SDL_x11video.c ++++ b/src/video/x11/SDL_x11video.c +@@ -1088,10 +1088,8 @@ + } + } + +-#if 0 /* This is an experiment - are the graphics faster now? - nope. */ + if ( SDL_getenv("SDL_VIDEO_X11_BACKINGSTORE") ) +-#endif +- /* Cache the window in the server, when possible */ ++ /* Cache the window in the server when possible, on request */ + { + Screen *xscreen; + XSetWindowAttributes a; 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/SDL/sdl12-compat.json b/subprojects/shared-modules/SDL/sdl12-compat.json new file mode 100644 index 00000000..c0227763 --- /dev/null +++ b/subprojects/shared-modules/SDL/sdl12-compat.json @@ -0,0 +1,14 @@ +{ + "name": "sdl12-compat", + "buildsystem": "cmake-ninja", + "cleanup": [ + "bin/sdl-config" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/libsdl-org/sdl12-compat/archive/refs/tags/release-1.2.52.tar.gz", + "sha256": "5bd7942703575554670a8767ae030f7921a0ac3c5e2fd173a537b7c7a8599014" + } + ] +} 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/clutter/clutter.json b/subprojects/shared-modules/clutter/clutter.json new file mode 100644 index 00000000..a47b207d --- /dev/null +++ b/subprojects/shared-modules/clutter/clutter.json @@ -0,0 +1,69 @@ +{ + "name": "clutter-gtk", + "cleanup": [ + "/share/gtk-doc" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/clutter-gtk/1.8/clutter-gtk-1.8.4.tar.xz", + "sha256": "521493ec038973c77edcb8bc5eac23eed41645117894aaee7300b2487cb42b06" + } + ], + "modules": [ + { + "name": "cogl", + "config-opts": [ + "--disable-cogl-gst", + "--disable-gtk-doc", + "--enable-xlib-egl-platform", + "--enable-wayland-egl-platform" + ], + "cleanup": [ + "/share/gtk-doc", + "/share/cogl/examples-data" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/cogl/1.22/cogl-1.22.8.tar.xz", + "sha256": "a805b2b019184710ff53d0496f9f0ce6dcca420c141a0f4f6fcc02131581d759" + } + ] + }, + { + "name": "clutter", + "config-opts": [ + "--disable-gtk-doc", + "--enable-egl-backend", + "--enable-wayland-backend" + ], + "cleanup": [ + "/share/gtk-doc" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/clutter/1.26/clutter-1.26.4.tar.xz", + "sha256": "8b48fac159843f556d0a6be3dbfc6b083fc6d9c58a20a49a6b4919ab4263c4e6" + } + ] + }, + { + "name": "clutter-gst", + "config-opts": [ + "--disable-gtk-doc" + ], + "cleanup": [ + "/share/gtk-doc" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/clutter-gst/3.0/clutter-gst-3.0.27.tar.xz", + "sha256": "fe69bd6c659d24ab30da3f091eb91cd1970026d431179b0724f13791e8ad9f9d" + } + ] + } + ] +} diff --git a/subprojects/shared-modules/dbus-glib/dbus-glib.json b/subprojects/shared-modules/dbus-glib/dbus-glib.json new file mode 100644 index 00000000..f8b90905 --- /dev/null +++ b/subprojects/shared-modules/dbus-glib/dbus-glib.json @@ -0,0 +1,23 @@ +{ + "name": "dbus-glib", + "cleanup": [ + "*.la", + "/bin", + "/etc", + "/include", + "/libexec", + "/share/gtk-doc", + "/share/man" + ], + "config-opts": [ + "--disable-static", + "--disable-gtk-doc" + ], + "sources": [ + { + "type": "archive", + "url": "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.112.tar.gz", + "sha256": "7d550dccdfcd286e33895501829ed971eeb65c614e73aadb4a08aeef719b143a" + } + ] +} diff --git a/subprojects/shared-modules/glew/glew.json b/subprojects/shared-modules/glew/glew.json new file mode 100644 index 00000000..ae326a23 --- /dev/null +++ b/subprojects/shared-modules/glew/glew.json @@ -0,0 +1,30 @@ +{ + "name": "glew", + "no-autogen": true, + "make-args": [ + "GLEW_PREFIX=${FLATPAK_DEST}", + "GLEW_DEST=${FLATPAK_DEST}", + "LIBDIR=${FLATPAK_DEST}/lib", + "CFLAGS.EXTRA:=${CFLAGS} -fPIC", + "LDFLAGS.EXTRA=${LDFLAGS}" + ], + "make-install-args": [ + "GLEW_PREFIX=${FLATPAK_DEST}", + "GLEW_DEST=${FLATPAK_DEST}", + "LIBDIR=${FLATPAK_DEST}/lib", + "CFLAGS.EXTRA:=${CFLAGS} -fPIC", + "LDFLAGS.EXTRA=${LDFLAGS}" + ], + "sources": [ + { + "type": "archive", + "url": "https://downloads.sourceforge.net/project/glew/glew/2.2.0/glew-2.2.0.tgz", + "sha256": "d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1" + } + ], + "cleanup": [ + "/include", + "/lib/pkgconfig", + "/lib/*.a" + ] +} diff --git a/subprojects/shared-modules/glu/glu-9.json b/subprojects/shared-modules/glu/glu-9.json new file mode 100644 index 00000000..2dfb70b4 --- /dev/null +++ b/subprojects/shared-modules/glu/glu-9.json @@ -0,0 +1,12 @@ +{ + "name": "glu", + "config-opts": ["--disable-static"], + "sources": [ + { + "type": "archive", + "url": "https://mesa.freedesktop.org/archive/glu/glu-9.0.2.tar.xz", + "sha256": "6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4" + } + ], + "cleanup": [ "/include", "/lib/*.a", "/lib/*.la", "/lib/pkgconfig" ] +} diff --git a/subprojects/shared-modules/gtk2/arc-gtk2-theme-Replace-Inkscape-dependency-with-rsvg-convert.patch b/subprojects/shared-modules/gtk2/arc-gtk2-theme-Replace-Inkscape-dependency-with-rsvg-convert.patch new file mode 100644 index 00000000..90e09509 --- /dev/null +++ b/subprojects/shared-modules/gtk2/arc-gtk2-theme-Replace-Inkscape-dependency-with-rsvg-convert.patch @@ -0,0 +1,180 @@ +From d5e0034183564df5fec8e4dde1705116c7b38021 Mon Sep 17 00:00:00 2001 +From: Patrick Griffis <tingping@tingping.se> +Date: Sat, 16 May 2020 18:00:36 -0700 +Subject: [PATCH] Replace Inkscape dependency with rsvg-convert + +rsvg-convert is a *much* smaller dependency that all systems with +a functioning GTK installation should have easy access to. +--- + common/gtk-2.0/Makefile.am | 6 +----- + common/gtk-2.0/render-asset.sh | 16 ++++++++-------- + common/gtk-3.0/common.am | 12 ++---------- + common/xfwm4/Makefile.am | 6 +----- + common/xfwm4/render-asset.sh | 16 ++++++++-------- + configure.ac | 8 ++------ + 6 files changed, 22 insertions(+), 42 deletions(-) + +diff --git a/common/gtk-2.0/Makefile.am b/common/gtk-2.0/Makefile.am +index 010823a..873013a 100644 +--- a/common/gtk-2.0/Makefile.am ++++ b/common/gtk-2.0/Makefile.am +@@ -35,11 +35,7 @@ $(light): $(srcdir)/light/assets.svg | light/assets + $(dark): $(srcdir)/dark/assets.svg | dark/assets + + $(light) $(dark): +-if INKSCAPE_1_0_OR_NEWER +- $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null +-else !INKSCAPE_1_0_OR_NEWER +- $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null +-endif ++ $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(basename $(notdir $@))" --dpi-x=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) --dpi-y=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null + $(OPTIPNG) -o7 --quiet "$@" + + menubar-toolbar/%-dark.png: dark/assets/%.png | menubar-toolbar +diff --git a/common/gtk-2.0/render-asset.sh b/common/gtk-2.0/render-asset.sh +index 6685414..f6198af 100755 +--- a/common/gtk-2.0/render-asset.sh ++++ b/common/gtk-2.0/render-asset.sh +@@ -1,7 +1,7 @@ + #!/bin/bash + set -ueo pipefail + +-INKSCAPE="$(which inkscape)" ++RSVG_CONVERT="$(which rsvg-convert)" + OPTIPNG="$(which optipng)" + + ASSETS_DIR="$1" +@@ -14,9 +14,9 @@ if [[ -f "${result_file}" ]] ; then + echo "${result_file} already exists." + else + echo "Rendering '${result_file}'" +- "$INKSCAPE" --export-id="$i" \ +- --export-id-only \ +- --export-png="${result_file}" "$SRC_FILE" >/dev/null \ ++ "$RSVG_CONVERT" --export-id="$i" \ ++ --format=png ++ --output="${result_file}" "$SRC_FILE" >/dev/null \ + && "$OPTIPNG" -o7 --quiet "${result_file}" + fi + +@@ -26,10 +26,10 @@ if [[ "$OPTION_GTK2_HIDPI" == "true" ]]; then + echo "${result_file_hidpi} already exists." + else + echo "Rendering '${result_file_hidpi}'" +- "$INKSCAPE" --export-id="$i" \ +- --export-id-only \ +- --export-dpi=192 \ +- --export-png="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ ++ "$RSVG_CONVERT" --export-id="$i" \ ++ --dpi-x=192 --dpi-y=192 \ ++ --format=png ++ --output="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ + && "$OPTIPNG" -o7 --quiet "${result_file_hidpi}" + fi + fi +diff --git a/common/gtk-3.0/common.am b/common/gtk-3.0/common.am +index a93d01d..9e4b102 100644 +--- a/common/gtk-3.0/common.am ++++ b/common/gtk-3.0/common.am +@@ -14,19 +14,11 @@ clean: + rm -rf assets/ light/ dark/ darker/ lighter/ + + $(normal): $(srcdir)/assets.svg | assets +-if INKSCAPE_1_0_OR_NEWER +- $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(basename $(notdir $@))" --export-dpi=96 "$<" >/dev/null +-else !INKSCAPE_1_0_OR_NEWER +- $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=96 "$<" >/dev/null +-endif ++ $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(basename $(notdir $@))" --dpi-y=96 --dpi-x=96 "$<" >/dev/null + $(OPTIPNG) -o7 --quiet "$@" + + $(hidpi): $(srcdir)/assets.svg | assets +-if INKSCAPE_1_0_OR_NEWER +- $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(patsubst %@2,%,$(basename $(notdir $@)))" --export-dpi=192 "$<" >/dev/null +-else !INKSCAPE_1_0_OR_NEWER +- $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(patsubst %@2,%,$(basename $(notdir $@)))" --export-dpi=192 "$<" >/dev/null +-endif ++ $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(patsubst %@2,%,$(basename $(notdir $@)))" --dpi-y=192 --dpi-x=192 "$<" >/dev/null + $(OPTIPNG) -o7 --quiet "$@" + + .PHONY: normal hidpi clean +diff --git a/common/xfwm4/Makefile.am b/common/xfwm4/Makefile.am +index e5fbdc5..1f21183 100644 +--- a/common/xfwm4/Makefile.am ++++ b/common/xfwm4/Makefile.am +@@ -17,11 +17,7 @@ $(light): $(srcdir)/light/assets.svg | light/assets + $(dark): $(srcdir)/dark/assets.svg | dark/assets + + $(light) $(dark): +-if INKSCAPE_1_0_OR_NEWER +- $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null +-else !INKSCAPE_1_0_OR_NEWER +- $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null +-endif ++ $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(basename $(notdir $@))" --dpi-y=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) --dpi-x=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null + $(OPTIPNG) -o7 --quiet "$@" + + .PHONY: light dark clean +diff --git a/common/xfwm4/render-asset.sh b/common/xfwm4/render-asset.sh +index 6685414..f6198af 100755 +--- a/common/xfwm4/render-asset.sh ++++ b/common/xfwm4/render-asset.sh +@@ -1,7 +1,7 @@ + #!/bin/bash + set -ueo pipefail + +-INKSCAPE="$(which inkscape)" ++RSVG_CONVERT="$(which rsvg-convert)" + OPTIPNG="$(which optipng)" + + ASSETS_DIR="$1" +@@ -14,9 +14,9 @@ if [[ -f "${result_file}" ]] ; then + echo "${result_file} already exists." + else + echo "Rendering '${result_file}'" +- "$INKSCAPE" --export-id="$i" \ +- --export-id-only \ +- --export-png="${result_file}" "$SRC_FILE" >/dev/null \ ++ "$RSVG_CONVERT" --export-id="$i" \ ++ --format=png ++ --output="${result_file}" "$SRC_FILE" >/dev/null \ + && "$OPTIPNG" -o7 --quiet "${result_file}" + fi + +@@ -26,10 +26,10 @@ if [[ "$OPTION_GTK2_HIDPI" == "true" ]]; then + echo "${result_file_hidpi} already exists." + else + echo "Rendering '${result_file_hidpi}'" +- "$INKSCAPE" --export-id="$i" \ +- --export-id-only \ +- --export-dpi=192 \ +- --export-png="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ ++ "$RSVG_CONVERT" --export-id="$i" \ ++ --dpi-x=192 --dpi-y=192 \ ++ --format=png ++ --output="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ + && "$OPTIPNG" -o7 --quiet "${result_file_hidpi}" + fi + fi +diff --git a/configure.ac b/configure.ac +index f0725f1..1a52cc7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -48,12 +48,8 @@ AM_CONDITIONAL([GNOME_SHELL_3_32_OR_NEWER], [test "0$GNOME_SHELL_VERSMNR" -ge 31 + AS_IF([test "x$ENABLE_CINNAMON" != xno], [ARC_CINNAMON]) + + AS_IF([test "x$ENABLE_GTK2" != xno -o "x$ENABLE_GTK3" != xno -o "x$ENABLE_XFWM" != xno], [ +- AC_PATH_PROG([INKSCAPE], [inkscape]) +- AS_IF([test "x$ac_cv_path_INKSCAPE" = x], [AC_MSG_ERROR([inkscape not found])]) +- AS_IF([test "x$ac_cv_path_INKSCAPE" != x], +- [INKSCAPE_VERSMJR=`inkscape --version 2> /dev/null | cut -d' ' -f2 | cut -d'.' -f1`] +- AM_CONDITIONAL([INKSCAPE_1_0_OR_NEWER], [test "x$INKSCAPE_VERSMJR" = x1]) +- ) ++ AC_PATH_PROG([RSVG_CONVERT], [rsvg-convert]) ++ AS_IF([test "x$ac_cv_path_RSVG_CONVERT" = x], [AC_MSG_ERROR([rsvg-convert not found])]) + AC_PATH_PROG([OPTIPNG], [optipng]) + AS_IF([test "x$ac_cv_path_OPTIPNG" = x], [AC_MSG_ERROR([optipng not found])]) + ]) +-- +2.26.0 + diff --git a/subprojects/shared-modules/gtk2/gtk2-common-themes.json b/subprojects/shared-modules/gtk2/gtk2-common-themes.json new file mode 100644 index 00000000..5f4f791d --- /dev/null +++ b/subprojects/shared-modules/gtk2/gtk2-common-themes.json @@ -0,0 +1,250 @@ +{ + "name": "gtk2-common-themes", + "buildsystem": "simple", + "build-commands": [], + "modules": [ + { + "name": "sassc", + "// NOTE": "This is used by Yaru, Greybird, and Materia", + "cleanup": ["*"], + "sources": [ + { + "type": "archive", + "url": "https://github.com/sass/sassc/archive/3.5.0.tar.gz", + "sha256": "26f54e31924b83dd706bc77df5f8f5553a84d51365f0e3c566df8de027918042" + }, + { + "type": "script", + "commands": ["autoreconf -si"] + } + ], + "modules": [ + { + "name": "libsass", + "cleanup": ["*"], + "sources": [ + { + "type": "archive", + "url": "https://github.com/sass/libsass/archive/3.5.4.tar.gz", + "sha256": "5f61cbcddaf8e6ef7a725fcfa5d05297becd7843960f245197ebb655ff868770" + }, + { + "type": "script", + "commands": ["autoreconf -si"] + } + ] + } + ] + }, + { + "name": "gtk2-murrine-engine", + "rm-configure": true, + "// NOTE": "Used by Arc and CrosAdapta", + "cleanup": [ + "*.la" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/murrine/0.98/murrine-0.98.2.tar.xz", + "sha256": "e9c68ae001b9130d0f9d1b311e8121a94e5c134b82553ba03971088e57d12c89" + }, + { + "type": "patch", + "path": "murrine-engine-fix-crash.patch" + }, + { + "type": "script", + "commands": [ + "rm config.guess", + "autoreconf -si" + ] + } + ] + }, + { + "name": "cros-adapta-gtk2-theme", + "// NOTE": "This is used by Chrome OS", + "buildsystem": "simple", + "build-commands": [ + "install -Dm644 index.theme ${FLATPAK_DEST}/share/themes/CrosAdapta/index.theme", + "cp -r gtk-2.0 ${FLATPAK_DEST}/share/themes/CrosAdapta" + ], + "sources": [ + { + "type": "git", + "url": "https://chromium.googlesource.com/chromiumos/third_party/cros-adapta", + "commit": "eb6d8c1832b9181926df107faf41a80887fd982c" + } + ] + }, + { + "name": "arc-gtk2-theme", + "// NOTE": "This is used by Solus and is popular", + "// FIXME": "This has a dependency on inkscape and my patch isn't quite good enough sadly", + "disabled": true, + "config-opts": [ + "--disable-gnome-shell", + "--disable-cinnamon", + "--disable-gtk3", + "--disable-metacity", + "--disable-xfwm", + "--disable-plank", + "--disable-openbox", + "--disable-unity" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/jnsh/arc-theme/releases/download/20200513/arc-theme-20200513.tar.xz", + "sha256": "cd268b878d6ad7c81b7acc0f89b66e26ee9a9a92eafb03b792318d51707f1962" + }, + { + "type": "patch", + "path": "arc-gtk2-theme-Replace-Inkscape-dependency-with-rsvg-convert.patch" + }, + { + "type": "shell", + "commands": ["sed -i 's|\"$srcdir/configure\" $@||' autogen.sh"] + } + ], + "modules": [ + { + "name": "optipng", + "cleanup": ["*"], + "sources": [ + { + "type": "archive", + "url": "https://prdownloads.sourceforge.net/optipng/optipng-0.7.7.tar.gz", + "sha256": "4f32f233cef870b3f95d3ad6428bfe4224ef34908f1b42b0badf858216654452" + } + ] + } + ] + }, + { + "name": "breeze-gtk2-theme", + "// NOTE": "This is used by some KDE distros", + "// FIXME": "This is disabled because breeze depends on KDecoration/Qt5...", + "disabled": true, + "buildsystem": "cmake-ninja", + "sources": [ + { + "type": "archive", + "url": "https://github.com/KDE/breeze-gtk/archive/v5.18.90.tar.gz", + "sha256": "73ff1fee8afb2fc498075d1693a664f6a749b763606d4548f74e225983107730" + } + ], + "modules": [ + { + "name": "extra-cmake-modules", + "buildsystem": "cmake-ninja", + "cleanup": ["*"], + "sources": [ + { + "type": "archive", + "url": "https://github.com/KDE/extra-cmake-modules/archive/v5.70.0.tar.gz", + "sha256": "0e6d0694b2372cbdbc9e64abcaaac21196a15355b360e02e2e833885ae0c62f2" + } + ] + }, + { + "name": "breeze", + "buildsystem": "cmake-ninja", + "cleanup": ["*"], + "sources": [ + { + "type": "archive", + "url": "https://github.com/KDE/breeze/archive/v5.18.90.tar.gz", + "sha256": "55e42656601dd79db1bc40589764606ec203c7f99c84340deed6e3847a4fdaf6" + } + ] + } + ] + }, + { + "name": "elementary-gtk2-theme", + "// NOTE": "This is used by Elementary OS", + "buildsystem": "meson", + "cleanup": [ + "/share/themes/elementary/gtk-3.0", + "/share/themes/elementary/plank", + "/share/plank" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/elementary/stylesheet/archive/5.4.2.tar.gz", + "sha256": "3bc37723daf4ce0b7c9ce4c125ef0055affe8d6654981388ec87d4a23a1ae0ec" + } + ] + }, + { + "name": "yaru-gtk2-theme", + "// NOTE": "This is used by Ubuntu", + "buildsystem": "meson", + "config-opts": [ + "-Dicons=false", + "-Dsounds=false", + "-Dgnome-shell=false", + "-Dsessions=false" + ], + "cleanup": [ + "/share/themes/Yaru*/gtk-3.0", + "/share/themes/Yaru*/gtk-3.20", + "/share/themes/Yaru*/unity" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/ubuntu/yaru/archive/20.10.1.tar.gz", + "sha256": "9da2605088674edf2694a8215b7344fb5209b308dd8220ea21667a914dc8c55d" + } + ] + }, + { + "name": "greybird-gtk2-theme", + "// NOTE": "This is used by many XFCE distros", + "buildsystem": "meson", + "cleanup": [ + "/share/themes/Greybird*/xfwm4", + "/share/themes/Greybird*/gnome-shell", + "/share/themes/Greybird*/gtk-3.0", + "/share/themes/Greybird*/metacity-1", + "/share/themes/Greybird*/xfce-notify-4.0", + "/share/themes/Greybird*/plank", + "/share/themes/Greybird*/unity", + "/share/themes/Greybird*/*.emerald" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/shimmerproject/Greybird/archive/v3.22.12.tar.gz", + "sha256": "410804cd5daca33cbc5c7c4a179f3a334ced87f408e515fc5d9c083a04bec4bc" + } + ] + }, + { + "name": "materia-gtk2-theme", + "// NOTE": "This is used by Ubuntu Studio", + "buildsystem": "meson", + "cleanup": [ + "/share/themes/Materia*/xfwm4", + "/share/themes/Materia*/gnome-shell", + "/share/themes/Materia*/gtk-3.0", + "/share/themes/Materia*/metacity-1", + "/share/themes/Materia*/cinnamon", + "/share/themes/Materia*/chrome", + "/share/themes/Materia*/plank", + "/share/themes/Materia*/unity" + ], + "sources": [ + { + "type": "git", + "url": "https://github.com/nana-4/materia-theme.git", + "commit": "b36b379c9256b67e5f63a60c6faf6912f1845b66" + } + ] + } + ] +} diff --git a/subprojects/shared-modules/gtk2/gtk2-fix-crash-in-show-uri.patch b/subprojects/shared-modules/gtk2/gtk2-fix-crash-in-show-uri.patch new file mode 100644 index 00000000..27b27300 --- /dev/null +++ b/subprojects/shared-modules/gtk2/gtk2-fix-crash-in-show-uri.patch @@ -0,0 +1,30 @@ +From 536da7a15c1737bc63c8ecba5ccac40cc2170860 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen <mclasen@redhat.com> +Date: Mon, 19 Apr 2021 16:39:53 -0400 +Subject: [PATCH] Fix a possible crash in gtk_show_uri + +g_file_get_basename can return NULL. +Deal with it somehow. + +Fixes: #3883 +--- + gdk/x11/gdkapplaunchcontext-x11.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/gdk/x11/gdkapplaunchcontext-x11.c b/gdk/x11/gdkapplaunchcontext-x11.c +index 8051229ba5..2341bb2e1f 100644 +--- a/gdk/x11/gdkapplaunchcontext-x11.c ++++ b/gdk/x11/gdkapplaunchcontext-x11.c +@@ -45,6 +45,9 @@ get_display_name (GFile *file, + if (name == NULL) + { + name = g_file_get_basename (file); ++ if (name == NULL) ++ name = g_file_get_uri (file); ++ + if (!g_utf8_validate (name, -1, NULL)) + { + tmp = name; +-- +GitLab + 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..e0350545 --- /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 ("/app", "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..bfca223a --- /dev/null +++ b/subprojects/shared-modules/gtk2/gtk2.json @@ -0,0 +1,112 @@ +{ + "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": [ + "../intltool/intltool-0.51.json", + { + "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.33.tar.xz", + "sha256": "ac2ac757f5942d318a311a54b0c80b5ef295f299c2a73c632f6bfb1ff49cc6da" + }, + { + "type": "patch", + "path": "gtk2-use-adwaita-theme.patch" + }, + { + "type": "patch", + "path": "gtk2-fix-crash-in-show-uri.patch" + } + ] + }, + { + "name": "ibus-gtk2", + "config-opts": [ + "--disable-xim", + "--disable-dconf", + "--disable-gconf", + "--disable-memconf", + "--disable-schemas-compile", + "--disable-schemas-install", + "--disable-gtk3", + "--disable-setup", + "--disable-ui", + "--disable-engine", + "--disable-python-library", + "--disable-libnotify", + "--disable-emoji-dict", + "--disable-appindicator", + "--disable-glibtest", + "--disable-tests", + "--disable-unicode-dict", + "--disable-introspection", + "--disable-python2" + ], + "make-install-args": [ + "-C", "client/gtk2" + ], + "post-install": [ + "gtk-query-immodules-2.0 > immodules.cache", + "install immodules.cache -t $(pkg-config --variable=libdir gtk+-2.0)/gtk-2.0/2.10.0/" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/ibus/ibus/releases/download/1.5.23/ibus-1.5.23.tar.gz", + "sha256": "b7e8d5bdb7d71a5ba4ee43cdf374675f77121a71c1679c9b9e7e02875bd0e150" + } + ] + } + ] +} diff --git a/subprojects/shared-modules/gtk2/murrine-engine-fix-crash.patch b/subprojects/shared-modules/gtk2/murrine-engine-fix-crash.patch new file mode 100644 index 00000000..6200e771 --- /dev/null +++ b/subprojects/shared-modules/gtk2/murrine-engine-fix-crash.patch @@ -0,0 +1,12 @@ +Index: gtk2-engines-murrine-0.98.2/src/murrine_style.c +=================================================================== +--- gtk2-engines-murrine-0.98.2.orig/src/murrine_style.c ++++ gtk2-engines-murrine-0.98.2/src/murrine_style.c +@@ -2171,6 +2171,7 @@ murrine_style_draw_layout (GtkStyle + cairo_t *cr; + cr = murrine_begin_paint (window, area); + cairo_translate (cr, x+xos, y+yos); ++ pango_cairo_update_layout (cr, layout); + pango_cairo_layout_path (cr, layout); + murrine_set_color_rgba (cr, &temp, 0.5); + cairo_stroke (cr); diff --git a/subprojects/shared-modules/gudev/gudev.json b/subprojects/shared-modules/gudev/gudev.json new file mode 100644 index 00000000..50d9c6b9 --- /dev/null +++ b/subprojects/shared-modules/gudev/gudev.json @@ -0,0 +1,33 @@ +{ + "name": "gudev", + "buildsystem": "meson", + "config-opts": [ + "-Dtests=disabled", + "-Dvapi=disabled", + "-Dintrospection=disabled", + "-Dgtk_doc=false" + ], + "cleanup": [ + "/include", + "/etc", + "/libexec", + "/sbin", + "/lib/pkgconfig", + "/lib/systemd", + "/man", + "/share/aclocal", + "/share/doc", + "/share/gtk-doc", + "/share/man", + "/share/pkgconfig", + "*.la", + "*.a" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/libgudev/237/libgudev-237.tar.xz", + "sha256": "0d06b21170d20c93e4f0534dbb9b0a8b4f1119ffb00b4031aaeb5b9148b686aa" + } + ] +} diff --git a/subprojects/shared-modules/gzdoom/description.patch b/subprojects/shared-modules/gzdoom/description.patch new file mode 100644 index 00000000..5f760cca --- /dev/null +++ b/subprojects/shared-modules/gzdoom/description.patch @@ -0,0 +1,18 @@ +diff --git a/src/d_iwad.cpp b/src/d_iwad.cpp +index b421b1b35..9f0b16948 100644 +--- a/src/d_iwad.cpp ++++ b/src/d_iwad.cpp +@@ -683,9 +683,10 @@ int FIWadManager::IdentifyVersion (TArray<FString> &wadfiles, const char *iwad, + "2. Edit your ~/Library/Preferences/" GAMENAMELOWERCASE ".ini and add the directories\n" + "of your iwads to the list beneath [IWADSearch.Directories]"); + #else +- "1. Place one or more of these wads in ~/.config/" GAMENAMELOWERCASE "/.\n" +- "2. Edit your ~/.config/" GAMENAMELOWERCASE "/" GAMENAMELOWERCASE ".ini and add the directories of your\n" +- "iwads to the list beneath [IWADSearch.Directories]"); ++ "1. Place one or more of these wads in ~/.var/app/org.zdoom.GZDoom/.config/" GAMENAMELOWERCASE "/\n" ++ "2. Edit your ~/.var/app/org.zdoom.GZDoom/.config/" GAMENAMELOWERCASE "/" GAMENAMELOWERCASE ".ini and\n" ++ " add the directories of your iwads to the list beneath [IWADSearch.Directories]\n" ++ "3. Validate your Flatpak permissions, so that Flatpak has access to your directories with wads"); + #endif + } + int pick = 0; diff --git a/subprojects/shared-modules/gzdoom/gzdoom.json b/subprojects/shared-modules/gzdoom/gzdoom.json new file mode 100644 index 00000000..1ab16bdc --- /dev/null +++ b/subprojects/shared-modules/gzdoom/gzdoom.json @@ -0,0 +1,50 @@ +{ + "name": "gzdoom", + "buildsystem": "cmake-ninja", + "config-opts": [ + "-DCMAKE_BUILD_TYPE=RelWithDebInfo" + ], + "cleanup": [ + "/lib/*.a", + "/lib/*.la", + "/lib/pkgconfig", + "/include" + ], + "sources": [ + { + "type": "git", + "url": "https://github.com/coelckers/gzdoom.git", + "tag": "g4.7.1", + "commit": "107ff702423686414680d6458fea63a2647692c4" + }, + { + "type": "file", + "url": "https://github.com/coelckers/gzdoom/raw/g4.7.1/soundfont/gzdoom.sf2", + "sha256": "fca3e514b635a21789d4224e84865d2954a2a914d46b64aa8219ddb565c44869" + }, + /* I've discussed these patches upstream and a special -DFLATPAK_BUNDLE has been approved */ + { + "type": "patch", + "path": "description.patch" + } + ], + "post-install": [ + "install -Dm 644 gzdoom.sf2 /app/share/sounds/sf2/gzdoom.sf2" + ], + "modules": [ + { + "name": "zmusic", + "buildsystem": "cmake-ninja", + "config-opts": [ + "-DCMAKE_BUILD_TYPE=RelWithDebInfo" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/coelckers/ZMusic/archive/1.1.8.tar.gz", + "sha256": "73082f661b7b0bb33348d1d186c132deec9132a1613480348a00172b49c9fd68" + } + ] + } + ] +} diff --git a/subprojects/shared-modules/intltool/intltool-0.51.json b/subprojects/shared-modules/intltool/intltool-0.51.json new file mode 100644 index 00000000..c1f7d269 --- /dev/null +++ b/subprojects/shared-modules/intltool/intltool-0.51.json @@ -0,0 +1,15 @@ +{ + "name": "intltool", + "cleanup": [ "*" ], + "sources": [ + { + "type": "archive", + "url": "https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz", + "sha256": "67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd" + }, + { + "type": "patch", + "path": "intltool-perl5.26-regex-fixes.patch" + } + ] +} diff --git a/subprojects/shared-modules/intltool/intltool-perl5.26-regex-fixes.patch b/subprojects/shared-modules/intltool/intltool-perl5.26-regex-fixes.patch new file mode 100644 index 00000000..234b82bd --- /dev/null +++ b/subprojects/shared-modules/intltool/intltool-perl5.26-regex-fixes.patch @@ -0,0 +1,59 @@ +Description: Escape "{", to prevent complaints from perl 5.22 and 5.26 +Author: Roderich Schupp <roderich.schupp@gmail.com> +Author: gregor herrmann <gregoa@debian.org> +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788705 +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=826471 +Bug-Upstream: https://bugs.launchpad.net/intltool/+bug/1490906 + +Index: intltool-0.51.0/intltool-update.in +=================================================================== +--- intltool-0.51.0.orig/intltool-update.in 2017-07-23 17:24:35.113169465 +0200 ++++ intltool-0.51.0/intltool-update.in 2017-07-23 17:24:35.109169052 +0200 +@@ -1062,13 +1062,13 @@ + } + } + +- if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/) ++ if ($str =~ /^(.*)\$\{?([A-Z_]+)}?(.*)$/) + { + my $rest = $3; + my $untouched = $1; + my $sub = ""; + # Ignore recursive definitions of variables +- $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/; ++ $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\$\{?$2}?/; + + return SubstituteVariable ("$untouched$sub$rest"); + } +@@ -1190,10 +1190,10 @@ + $name =~ s/\(+$//g; + $version =~ s/\(+$//g; + +- $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); +- $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); +- $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); +- $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); ++ $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/); ++ $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/); ++ $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/); ++ $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/); + } + + if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)[,]?([^,\)]+)?/m) +@@ -1219,11 +1219,11 @@ + $version =~ s/\(+$//g; + $bugurl =~ s/\(+$//g if (defined $bugurl); + +- $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); +- $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); +- $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); +- $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); +- $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\${?\w+}?/); ++ $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/); ++ $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/); ++ $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/); ++ $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/); ++ $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\$\{?\w+}?/); + } + + # \s makes this not work, why? 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..3b431dca --- /dev/null +++ b/subprojects/shared-modules/lame/lame-3.99.5.json @@ -0,0 +1,37 @@ +{ + "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": "patch", + "path": "lame-tinfo.patch", + "strip-components": 0 + }, + { + "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/lame/lame-tinfo.patch b/subprojects/shared-modules/lame/lame-tinfo.patch new file mode 100644 index 00000000..cb570e78 --- /dev/null +++ b/subprojects/shared-modules/lame/lame-tinfo.patch @@ -0,0 +1,23 @@ +initscr is not used anywhere in lame sourcetree, check for used tgetent instead +check for separate tinfo library optionally built out from libncurses source tree, +like used in debian and gentoo +- ssuominen@g.o + +http://bugs.gentoo.org/454322 + +--- configure.in ++++ configure.in +@@ -372,9 +372,10 @@ + + AC_CHECK_HEADERS(termcap.h) + AC_CHECK_HEADERS(ncurses/termcap.h) +-AC_CHECK_LIB(termcap, initscr, HAVE_TERMCAP="termcap") +-AC_CHECK_LIB(curses, initscr, HAVE_TERMCAP="curses") +-AC_CHECK_LIB(ncurses, initscr, HAVE_TERMCAP="ncurses") ++AC_CHECK_LIB(termcap, tgetent, HAVE_TERMCAP="termcap") ++AC_CHECK_LIB(curses, tgetent, HAVE_TERMCAP="curses") ++AC_CHECK_LIB(ncurses, tgetent, HAVE_TERMCAP="ncurses") ++AC_CHECK_LIB(tinfo, tgetent, HAVE_TERMCAP="tinfo") + + AM_ICONV + diff --git a/subprojects/shared-modules/libappindicator/Makefile b/subprojects/shared-modules/libappindicator/Makefile new file mode 100644 index 00000000..58192455 --- /dev/null +++ b/subprojects/shared-modules/libappindicator/Makefile @@ -0,0 +1,10 @@ +all: libappindicator-gtk3-introspection-12.10.json libappindicator-gtk3-12.10.json libappindicator-gtk2-12.10.json + +libappindicator-gtk3-introspection-12.10.json: libappindicator.json.in + sed -e 's/@GTK_VER@/3/g' -e 's/@INTROSPECTION@/yes/g' $< > $@ + +libappindicator-gtk3-12.10.json: libappindicator.json.in + sed -e 's/@GTK_VER@/3/g' -e 's/@INTROSPECTION@/no/g' $< > $@ + +libappindicator-gtk2-12.10.json: libappindicator.json.in + sed -e 's/@GTK_VER@/2/g' -e 's/@INTROSPECTION@/no/g' $< > $@
\ No newline at end of file diff --git a/subprojects/shared-modules/libappindicator/libappindicator-fix-crash-from-incorrect-signal-emission.patch b/subprojects/shared-modules/libappindicator/libappindicator-fix-crash-from-incorrect-signal-emission.patch new file mode 100644 index 00000000..28927a37 --- /dev/null +++ b/subprojects/shared-modules/libappindicator/libappindicator-fix-crash-from-incorrect-signal-emission.patch @@ -0,0 +1,74 @@ +--- libappindicator-12.10.0/src/app-indicator.c 2012-07-11 13:28:34.415113869 -0400 ++++ wrk/src/app-indicator.c 2020-03-19 12:14:47.813191652 -0400 +@@ -443,7 +443,7 @@ + G_STRUCT_OFFSET (AppIndicatorClass, new_icon), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, +- G_TYPE_NONE, 0, G_TYPE_NONE); ++ G_TYPE_NONE, 0); + + /** + * AppIndicator::new-attention-icon: +@@ -457,7 +457,7 @@ + G_STRUCT_OFFSET (AppIndicatorClass, new_attention_icon), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, +- G_TYPE_NONE, 0, G_TYPE_NONE); ++ G_TYPE_NONE, 0); + + /** + * AppIndicator::new-status: +@@ -505,7 +505,7 @@ + G_STRUCT_OFFSET (AppIndicatorClass, connection_changed), + NULL, NULL, + g_cclosure_marshal_VOID__BOOLEAN, +- G_TYPE_NONE, 1, G_TYPE_BOOLEAN, G_TYPE_NONE); ++ G_TYPE_NONE, 1, G_TYPE_BOOLEAN); + + /** + * AppIndicator::new-icon-theme-path: +@@ -1175,7 +1175,7 @@ + gchar * guide = priv->label_guide != NULL ? priv->label_guide : ""; + + g_signal_emit(G_OBJECT(self), signals[NEW_LABEL], 0, +- label, guide, TRUE); ++ label, guide); + if (priv->dbus_registration != 0 && priv->connection != NULL) { + GError * error = NULL; + +@@ -1490,7 +1490,7 @@ + static void + theme_changed_cb (GtkIconTheme * theme, gpointer user_data) + { +- g_signal_emit (user_data, signals[NEW_ICON], 0, TRUE); ++ g_signal_emit (user_data, signals[NEW_ICON], 0); + + AppIndicator * self = (AppIndicator *)user_data; + AppIndicatorPrivate *priv = self->priv; +@@ -1904,7 +1904,7 @@ + } + + if (changed) { +- g_signal_emit (self, signals[NEW_ATTENTION_ICON], 0, TRUE); ++ g_signal_emit (self, signals[NEW_ATTENTION_ICON], 0); + + if (self->priv->dbus_registration != 0 && self->priv->connection != NULL) { + GError * error = NULL; +@@ -1982,7 +1982,7 @@ + } + + if (changed) { +- g_signal_emit (self, signals[NEW_ICON], 0, TRUE); ++ g_signal_emit (self, signals[NEW_ICON], 0); + + if (self->priv->dbus_registration != 0 && self->priv->connection != NULL) { + GError * error = NULL; +@@ -2048,7 +2048,7 @@ + + self->priv->icon_theme_path = g_strdup(icon_theme_path); + +- g_signal_emit (self, signals[NEW_ICON_THEME_PATH], 0, self->priv->icon_theme_path, TRUE); ++ g_signal_emit (self, signals[NEW_ICON_THEME_PATH], 0, self->priv->icon_theme_path); + + if (self->priv->dbus_registration != 0 && self->priv->connection != NULL) { + GError * error = NULL; diff --git a/subprojects/shared-modules/libappindicator/libappindicator-fix-crash-iterating-icon-themes.patch b/subprojects/shared-modules/libappindicator/libappindicator-fix-crash-iterating-icon-themes.patch new file mode 100644 index 00000000..44f6fe48 --- /dev/null +++ b/subprojects/shared-modules/libappindicator/libappindicator-fix-crash-iterating-icon-themes.patch @@ -0,0 +1,11 @@ +--- libappindicator-12.10.0/src/app-indicator.c ++++ libappindicator-12.10.0/src/app-indicator.c +@@ -1606,7 +1606,7 @@ status_icon_changes (AppIndicator * self, gpointer data) + gint n_elements, i; + gboolean found=FALSE; + gtk_icon_theme_get_search_path(icon_theme, &path, &n_elements); +- for (i=0; i< n_elements || path[i] == NULL; i++) { ++ for (i=0; i< n_elements; i++) { + if(g_strcmp0(path[i], self->priv->icon_theme_path) == 0) { + found=TRUE; + break; 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..4e1d38fa --- /dev/null +++ b/subprojects/shared-modules/libappindicator/libappindicator-gtk2-12.10.json @@ -0,0 +1,130 @@ +{ + "name": "libappindicator", + "build-options": { + "cflags": "-Wno-error", + "make-args": [ "-j1" ] + }, + "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": "patch", + "path": "libappindicator-no-python.patch" + }, + { + "type": "patch", + "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" + }, + { + "type": "patch", + "path": "libappindicator-fix-crash-iterating-icon-themes.patch" + }, + { + "type": "script", + "commands": ["autoreconf -sfi"], + "dest-filename": "autogen.sh" + } + ], + "modules": [ + "../intltool/intltool-0.51.json", + "../dbus-glib/dbus-glib.json", + { + "name": "libdbusmenu", + "build-options": { + "cflags": "-Wno-error", + "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" + }, + "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" + } + ] + } + ] +} 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..c613f8fb --- /dev/null +++ b/subprojects/shared-modules/libappindicator/libappindicator-gtk3-12.10.json @@ -0,0 +1,130 @@ +{ + "name": "libappindicator", + "build-options": { + "cflags": "-Wno-error", + "make-args": [ "-j1" ] + }, + "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": "patch", + "path": "libappindicator-no-python.patch" + }, + { + "type": "patch", + "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" + }, + { + "type": "patch", + "path": "libappindicator-fix-crash-iterating-icon-themes.patch" + }, + { + "type": "script", + "commands": ["autoreconf -sfi"], + "dest-filename": "autogen.sh" + } + ], + "modules": [ + "../intltool/intltool-0.51.json", + "../dbus-glib/dbus-glib.json", + { + "name": "libdbusmenu", + "build-options": { + "cflags": "-Wno-error", + "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" + }, + "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" + } + ] + } + ] +} 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..c49742ed --- /dev/null +++ b/subprojects/shared-modules/libappindicator/libappindicator-gtk3-introspection-12.10.json @@ -0,0 +1,130 @@ +{ + "name": "libappindicator", + "build-options": { + "cflags": "-Wno-error", + "make-args": [ "-j1" ] + }, + "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": "patch", + "path": "libappindicator-no-python.patch" + }, + { + "type": "patch", + "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" + }, + { + "type": "patch", + "path": "libappindicator-fix-crash-iterating-icon-themes.patch" + }, + { + "type": "script", + "commands": ["autoreconf -sfi"], + "dest-filename": "autogen.sh" + } + ], + "modules": [ + "../intltool/intltool-0.51.json", + "../dbus-glib/dbus-glib.json", + { + "name": "libdbusmenu", + "build-options": { + "cflags": "-Wno-error", + "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" + }, + "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" + } + ] + } + ] +} diff --git a/subprojects/shared-modules/libappindicator/libappindicator-no-python.patch b/subprojects/shared-modules/libappindicator/libappindicator-no-python.patch new file mode 100644 index 00000000..587cddec --- /dev/null +++ b/subprojects/shared-modules/libappindicator/libappindicator-no-python.patch @@ -0,0 +1,888 @@ +diff --git a/bindings/Makefile.am b/bindings/Makefile.am +index d1f6d73..dccca6c 100644 +--- a/bindings/Makefile.am ++++ b/bindings/Makefile.am +@@ -3,7 +3,6 @@ SUBDIRS = \ + vala + else + SUBDIRS = \ +- python \ + vala + endif + +diff --git a/bindings/python/Makefile.am b/bindings/python/Makefile.am +deleted file mode 100644 +index fe95c02..0000000 +--- a/bindings/python/Makefile.am ++++ /dev/null +@@ -1,39 +0,0 @@ +-defsdir = $(datadir)/pygtk/2.0/defs +-defs_DATA = appindicator.defs +- +-#CFLAGS = -Wall -Werror +-INCLUDES = \ +- -I$(top_srcdir)/src \ +- -DG_LOG_DOMAIN=\"appindicator-python\" \ +- -DDATADIR=\"$(datadir)\" \ +- -DLIBDIR=\"$(libdir)\" \ +- $(APPINDICATOR_PYTHON_CFLAGS) \ +- $(PYTHON_INCLUDES) +- +-pkgpythondir = $(pyexecdir) +-pkgpyexecdir = $(pyexecdir) +- +-pkgappindicatordir = $(pkgpythondir)/appindicator +-pkgappindicator_PYTHON = __init__.py +- +-appindicatordir = $(pkgpyexecdir)/appindicator +-appindicator_LTLIBRARIES = _appindicator.la +- +-_appindicator_la_LDFLAGS = -module -avoid-version -export-symbols-regex init_appindicator +-_appindicator_la_LIBADD = $(APPINDICATOR_PYTHON_LIBS) -L$(top_builddir)/src/.libs -lappindicator +-_appindicator_la_SOURCES = appindicatormodule.c +-nodist__appindicator_la_SOURCES = appindicator.c +- +-CLEANFILES = appindicator.c +-EXTRA_DIST = appindicator.override.in appindicator-arg-types.py $(defs_DATA) +-appindicator.c: $(defs_DATA) appindicator.override +- +-%.c: %.defs +- ($(PYGTK_CODEGEN) \ +- --register $(PYGTK_DEFSDIR)/gtk-types.defs \ +- --register $(PYGTK_DEFSDIR)/gdk-types.defs \ +- --load-types $(srcdir)/appindicator-arg-types.py \ +- --override $*.override \ +- --prefix py$* $(srcdir)/$*.defs) > gen-$*.c \ +- && cp gen-$*.c $*.c \ +- && rm -f gen-$*.c +diff --git a/bindings/python/__init__.py b/bindings/python/__init__.py +deleted file mode 100644 +index 20e2140..0000000 +--- a/bindings/python/__init__.py ++++ /dev/null +@@ -1,27 +0,0 @@ +-# Python bindings for libappindicator. +-# +-# Copyright 2009 Canonical Ltd. +-# +-# Authors: +-# Eitan Isaacson <eitan@ascender.com> +-# Neil Jagdish Patel <neil.patel@canonical.com> +-# +-# This program is free software: you can redistribute it and/or modify it +-# under the terms of either or both of the following licenses: +-# +-# 1) the GNU Lesser General Public License version 3, as published by the +-# Free Software Foundation; and/or +-# 2) the GNU Lesser General Public License version 2.1, as published by +-# the Free Software Foundation. +-# +-# This program is distributed in the hope that it will be useful, but +-# WITHOUT ANY WARRANTY; without even the implied warranties of +-# MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR +-# PURPOSE. See the applicable version of the GNU Lesser General Public +-# License for more details. +-# +-# You should have received a copy of both the GNU Lesser General Public +-# License version 3 and version 2.1 along with this program. If not, see +-# <http://www.gnu.org/licenses/> +- +-from _appindicator import * +diff --git a/bindings/python/appindicator-arg-types.py b/bindings/python/appindicator-arg-types.py +deleted file mode 100644 +index 9d74aa0..0000000 +--- a/bindings/python/appindicator-arg-types.py ++++ /dev/null +@@ -1,27 +0,0 @@ +-# Python bindings for libappindicator. +-# +-# Copyright 2009 Canonical Ltd. +-# +-# Authors: +-# Eitan Isaacson <eitan@ascender.com> +-# +-# This program is free software: you can redistribute it and/or modify it +-# under the terms of either or both of the following licenses: +-# +-# 1) the GNU Lesser General Public License version 3, as published by the +-# Free Software Foundation; and/or +-# 2) the GNU Lesser General Public License version 2.1, as published by +-# the Free Software Foundation. +-# +-# This program is distributed in the hope that it will be useful, but +-# WITHOUT ANY WARRANTY; without even the implied warranties of +-# MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR +-# PURPOSE. See the applicable version of the GNU Lesser General Public +-# License for more details. +-# +-# You should have received a copy of both the GNU Lesser General Public +-# License version 3 and version 2.1 along with this program. If not, see +-# <http://www.gnu.org/licenses/> +- +-import argtypes +- +diff --git a/bindings/python/appindicator.defs b/bindings/python/appindicator.defs +deleted file mode 100644 +index 4fcc2d5..0000000 +--- a/bindings/python/appindicator.defs ++++ /dev/null +@@ -1,200 +0,0 @@ +-;; -*- scheme -*- +-; object definitions ... +-(define-object Indicator +- (in-module "App") +- (parent "GObject") +- (c-name "AppIndicator") +- (gtype-id "APP_TYPE_INDICATOR") +-) +- +-;; Enumerations and flags ... +- +-(define-enum IndicatorCategory +- (in-module "App") +- (c-name "AppIndicatorCategory") +- (gtype-id "APP_INDICATOR_TYPE_INDICATOR_CATEGORY") +- (values +- '("ApplicationStatus" "APP_INDICATOR_CATEGORY_APPLICATION_STATUS") +- '("Communications" "APP_INDICATOR_CATEGORY_COMMUNICATIONS") +- '("SystemServices" "APP_INDICATOR_CATEGORY_SYSTEM_SERVICES") +- '("Hardware" "APP_INDICATOR_CATEGORY_HARDWARE") +- '("Other" "APP_INDICATOR_CATEGORY_OTHER") +- ) +-) +- +-(define-enum IndicatorStatus +- (in-module "App") +- (c-name "AppIndicatorStatus") +- (gtype-id "APP_INDICATOR_TYPE_INDICATOR_STATUS") +- (values +- '("Passive" "APP_INDICATOR_STATUS_PASSIVE") +- '("Active" "APP_INDICATOR_STATUS_ACTIVE") +- '("NeedsAttention" "APP_INDICATOR_STATUS_ATTENTION") +- ) +-) +- +-;; From app-indicator.h +- +-(define-function app_indicator_get_type +- (c-name "app_indicator_get_type") +- (return-type "GType") +-) +- +-(define-function app_indicator_new_with_path +- (c-name "app_indicator_new_with_path") +- (is-constructor-of "AppIndicator") +- (return-type "AppIndicator*") +- (parameters +- '("const-gchar*" "id") +- '("const-gchar*" "icon_name") +- '("AppIndicatorCategory" "category") +- '("const-gchar*" "icon_theme_path" (null-ok) (default "NULL")) +- ) +-) +- +-(define-method set_status +- (of-object "AppIndicator") +- (c-name "app_indicator_set_status") +- (return-type "none") +- (parameters +- '("AppIndicatorStatus" "status") +- ) +-) +- +-(define-method set_attention_icon +- (of-object "AppIndicator") +- (c-name "app_indicator_set_attention_icon_full") +- (return-type "none") +- (parameters +- '("const-gchar*" "icon_name") +- '("const-gchar*" "icon_desc" (null-ok) (default "NULL")) +- ) +-) +- +-(define-method set_menu +- (of-object "AppIndicator") +- (c-name "app_indicator_set_menu") +- (return-type "none") +- (parameters +- '("GtkMenu*" "menu") +- ) +-) +- +-(define-method set_icon +- (of-object "AppIndicator") +- (c-name "app_indicator_set_icon_full") +- (return-type "none") +- (parameters +- '("const-gchar*" "icon_name") +- '("const-gchar*" "icon_desc" (null-ok) (default "NULL")) +- ) +-) +- +-(define-method set_label +- (of-object "AppIndicator") +- (c-name "app_indicator_set_label") +- (return-type "none") +- (parameters +- '("const-gchar*" "label" (null-ok)) +- '("const-gchar*" "guide" (null-ok) (default "NULL")) +- ) +-) +- +-(define-method set_ordering_index +- (of-object "AppIndicator") +- (c-name "app_indicator_set_ordering_index") +- (parameters +- '("guint32" "ordering_index") +- ) +-) +- +-(define-method set_icon_theme_path +- (of-object "AppIndicator") +- (c-name "app_indicator_set_icon_theme_path") +- (return-type "none") +- (parameters +- '("const-gchar*" "icon_theme_path" (null-ok)) +- ) +-) +- +-(define-method get_id +- (of-object "AppIndicator") +- (c-name "app_indicator_get_id") +- (return-type "const-gchar*") +-) +- +-(define-method get_category +- (of-object "AppIndicator") +- (c-name "app_indicator_get_category") +- (return-type "AppIndicatorCategory") +-) +- +-(define-method get_status +- (of-object "AppIndicator") +- (c-name "app_indicator_get_status") +- (return-type "AppIndicatorStatus") +-) +- +-(define-method get_icon +- (of-object "AppIndicator") +- (c-name "app_indicator_get_icon") +- (return-type "const-gchar*") +-) +- +-(define-method get_icon_desc +- (of-object "AppIndicator") +- (c-name "app_indicator_get_icon_desc") +- (return-type "const-gchar*") +-) +- +-(define-method get_icon_theme_path +- (of-object "AppIndicator") +- (c-name "app_indicator_get_icon_theme_path") +- (return-type "const-gchar*") +-) +- +-(define-method get_attention_icon +- (of-object "AppIndicator") +- (c-name "app_indicator_get_attention_icon") +- (return-type "const-gchar*") +-) +- +-(define-method get_attention_icon_desc +- (of-object "AppIndicator") +- (c-name "app_indicator_get_attention_icon_desc") +- (return-type "const-gchar*") +-) +- +-(define-method get_menu +- (of-object "AppIndicator") +- (c-name "app_indicator_get_menu") +- (return-type "GtkMenu*") +-) +- +-(define-method get_label +- (of-object "AppIndicator") +- (c-name "app_indicator_get_label") +- (return-type "const-gchar*") +-) +- +-(define-method get_label_guide +- (of-object "AppIndicator") +- (c-name "app_indicator_get_label_guide") +- (return-type "const-gchar*") +-) +- +-(define-method get_ordering_index +- (of-object "AppIndicator") +- (c-name "app_indicator_get_ordering_index") +- (return-type "guint32") +-) +- +-(define-method build_menu_from_desktop +- (of-object "AppIndicator") +- (c-name "app_indicator_build_menu_from_desktop") +- (return-type "none") +- (parameters +- '("const-gchar*" "desktop_file") +- '("const-gchar*" "desktop_profile") +- ) +-) +diff --git a/bindings/python/appindicator.override.in b/bindings/python/appindicator.override.in +deleted file mode 100644 +index 84d3159..0000000 +--- a/bindings/python/appindicator.override.in ++++ /dev/null +@@ -1,65 +0,0 @@ +-/* +-Python bindings for libappindicator. +- +-Copyright 2009 Canonical Ltd. +- +-Authors: +- Eitan Isaacson <eitan@ascender.com> (original) +- Neil Jagdish Patel <neil.patel@canonical.com> +- +-This program is free software: you can redistribute it and/or modify it +-under the terms of either or both of the following licenses: +- +-1) the GNU Lesser General Public License version 3, as published by the +-Free Software Foundation; and/or +-2) the GNU Lesser General Public License version 2.1, as published by +-the Free Software Foundation. +- +-This program is distributed in the hope that it will be useful, but +-WITHOUT ANY WARRANTY; without even the implied warranties of +-MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR +-PURPOSE. See the applicable version of the GNU Lesser General Public +-License for more details. +- +-You should have received a copy of both the GNU Lesser General Public +-License version 3 and version 2.1 along with this program. If not, see +-<http://www.gnu.org/licenses/> +-*/ +-%% +-headers +-#include <Python.h> +-#include "@top_srcdir@/src/app-indicator.h" +-#include "@top_builddir@/src/app-indicator-enum-types.h" +-#include <glib.h> +-#include "pygobject.h" +-#include "pyglib.h" +-#include <pygtk/pygtk.h> +- +-typedef PyObject* (*to_pyobject_func) (gpointer data); +- +-#define APP_TYPE_INDICATOR APP_INDICATOR_TYPE +- +-void +-_appindicator_add_constants(PyObject *module, const gchar *strip_prefix) +-{ +-#ifdef VERSION +- PyModule_AddStringConstant(module, "__version__", VERSION); +-#endif +- pyg_enum_add(module, +- "IndicatorCategory", +- strip_prefix, +- APP_INDICATOR_TYPE_INDICATOR_CATEGORY); +- +- pyg_enum_add(module, +- "IndicatorStatus", +- strip_prefix, +- APP_INDICATOR_TYPE_INDICATOR_STATUS); +- +- if (PyErr_Occurred()) +- PyErr_Print(); +-} +-%% +-modulename appindicator +-%% +-import gobject.GObject as PyGObject_Type +-import gtk.Menu as PyGtkMenu_Type +diff --git a/bindings/python/appindicatormodule.c b/bindings/python/appindicatormodule.c +deleted file mode 100644 +index b66639c..0000000 +--- a/bindings/python/appindicatormodule.c ++++ /dev/null +@@ -1,49 +0,0 @@ +-/* +-Python bindings for libappindicator. +- +-Copyright 2009 Canonical Ltd. +- +-Authors: +- Eitan Isaacson <eitan@ascender.com> +- Neil Jagdish Patel <neil.patel@canonical.com> +- +-This program is free software: you can redistribute it and/or modify it +-under the terms of either or both of the following licenses: +- +-1) the GNU Lesser General Public License version 3, as published by the +-Free Software Foundation; and/or +-2) the GNU Lesser General Public License version 2.1, as published by +-the Free Software Foundation. +- +-This program is distributed in the hope that it will be useful, but +-WITHOUT ANY WARRANTY; without even the implied warranties of +-MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR +-PURPOSE. See the applicable version of the GNU Lesser General Public +-License for more details. +- +-You should have received a copy of both the GNU Lesser General Public +-License version 3 and version 2.1 along with this program. If not, see +-<http://www.gnu.org/licenses/> +-*/ +-#include <pygobject.h> +- +-void pyappindicator_register_classes (PyObject *d); +-extern PyMethodDef pyappindicator_functions[]; +- +-DL_EXPORT(void) +-init_appindicator(void) +-{ +- PyObject *m, *d; +- +- init_pygobject (); +- +- m = Py_InitModule ("_appindicator", pyappindicator_functions); +- d = PyModule_GetDict (m); +- +- pyappindicator_register_classes (d); +- +- _appindicator_add_constants (m, "APP_INDICATOR_"); +- if (PyErr_Occurred ()) { +- Py_FatalError ("can't initialise module appindicator"); +- } +-} +diff --git a/configure b/configure +index 5174b3f..8ff732c 100755 +--- a/configure ++++ b/configure +@@ -13703,363 +13703,6 @@ else + fi + + +-########################### +-# Python +-########################### +- +-PYGTK_REQUIRED=2.14.0 +-PYGOBJECT_REQUIRED=0.22 +- +- +- +- +- +- if test -n "$PYTHON"; then +- # If the user set $PYTHON, use it and don't search something else. +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version >= 2.3.5" >&5 +-$as_echo_n "checking whether $PYTHON version >= 2.3.5... " >&6; } +- prog="import sys, string +-# split strings by '.' and convert to numeric. Append some zeros +-# because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.3.5', '.')) + [0, 0, 0] +-minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] +-sys.exit(sys.hexversion < minverhex)" +- if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 +- ($PYTHON -c "$prog") >&5 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; then : +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +-else +- as_fn_error $? "too old" "$LINENO" 5 +-fi +- am_display_PYTHON=$PYTHON +- else +- # Otherwise, try each interpreter until we find one that satisfies +- # VERSION. +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.3.5" >&5 +-$as_echo_n "checking for a Python interpreter with version >= 2.3.5... " >&6; } +-if ${am_cv_pathless_PYTHON+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- +- for am_cv_pathless_PYTHON in python python2 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 none; do +- test "$am_cv_pathless_PYTHON" = none && break +- prog="import sys, string +-# split strings by '.' and convert to numeric. Append some zeros +-# because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.3.5', '.')) + [0, 0, 0] +-minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] +-sys.exit(sys.hexversion < minverhex)" +- if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5 +- ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; then : +- break +-fi +- done +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5 +-$as_echo "$am_cv_pathless_PYTHON" >&6; } +- # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. +- if test "$am_cv_pathless_PYTHON" = none; then +- PYTHON=: +- else +- # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args. +-set dummy $am_cv_pathless_PYTHON; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if ${ac_cv_path_PYTHON+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- case $PYTHON in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- ;; +-esac +-fi +-PYTHON=$ac_cv_path_PYTHON +-if test -n "$PYTHON"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 +-$as_echo "$PYTHON" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- fi +- am_display_PYTHON=$am_cv_pathless_PYTHON +- fi +- +- +- if test "$PYTHON" = :; then +- as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 +- else +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5 +-$as_echo_n "checking for $am_display_PYTHON version... " >&6; } +-if ${am_cv_python_version+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"` +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 +-$as_echo "$am_cv_python_version" >&6; } +- PYTHON_VERSION=$am_cv_python_version +- +- +- +- PYTHON_PREFIX='${prefix}' +- +- PYTHON_EXEC_PREFIX='${exec_prefix}' +- +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5 +-$as_echo_n "checking for $am_display_PYTHON platform... " >&6; } +-if ${am_cv_python_platform+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"` +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 +-$as_echo "$am_cv_python_platform" >&6; } +- PYTHON_PLATFORM=$am_cv_python_platform +- +- +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5 +-$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } +-if ${am_cv_python_pythondir+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null || +- echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5 +-$as_echo "$am_cv_python_pythondir" >&6; } +- pythondir=$am_cv_python_pythondir +- +- +- +- pkgpythondir=\${pythondir}/$PACKAGE +- +- +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5 +-$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } +-if ${am_cv_python_pyexecdir+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null || +- echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"` +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5 +-$as_echo "$am_cv_python_pyexecdir" >&6; } +- pyexecdir=$am_cv_python_pyexecdir +- +- +- +- pkgpyexecdir=\${pyexecdir}/$PACKAGE +- +- +- +- fi +- +- +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for headers required to compile python extensions" >&5 +-$as_echo_n "checking for headers required to compile python extensions... " >&6; } +-py_prefix=`$PYTHON -c "import sys; print sys.prefix"` +-py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` +-PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" +-if test "$py_prefix" != "$py_exec_prefix"; then +- PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" +-fi +- +-save_CPPFLAGS="$CPPFLAGS" +-CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include <Python.h> +-_ACEOF +-if ac_fn_c_try_cpp "$LINENO"; then : +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 +-$as_echo "found" >&6; } +- +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +-$as_echo "not found" >&6; } +-as_fn_error $? "could not find Python headers" "$LINENO" 5 +-fi +-rm -f conftest.err conftest.i conftest.$ac_ext +-CPPFLAGS="$save_CPPFLAGS" +- +- +- +-pkg_failed=no +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for APPINDICATOR_PYTHON" >&5 +-$as_echo_n "checking for APPINDICATOR_PYTHON... " >&6; } +- +-if test -n "$APPINDICATOR_PYTHON_CFLAGS"; then +- pkg_cv_APPINDICATOR_PYTHON_CFLAGS="$APPINDICATOR_PYTHON_CFLAGS" +- elif test -n "$PKG_CONFIG"; then +- if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" +- pygtk-2.0 >= \$PYGTK_REQUIRED +- gtk+-2.0 >= \$GTK_REQUIRED_VERSION +- pygobject-2.0 >= \$PYGOBJECT_REQUIRED +- \""; } >&5 +- ($PKG_CONFIG --exists --print-errors " +- pygtk-2.0 >= $PYGTK_REQUIRED +- gtk+-2.0 >= $GTK_REQUIRED_VERSION +- pygobject-2.0 >= $PYGOBJECT_REQUIRED +- ") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- pkg_cv_APPINDICATOR_PYTHON_CFLAGS=`$PKG_CONFIG --cflags " +- pygtk-2.0 >= $PYGTK_REQUIRED +- gtk+-2.0 >= $GTK_REQUIRED_VERSION +- pygobject-2.0 >= $PYGOBJECT_REQUIRED +- " 2>/dev/null` +- test "x$?" != "x0" && pkg_failed=yes +-else +- pkg_failed=yes +-fi +- else +- pkg_failed=untried +-fi +-if test -n "$APPINDICATOR_PYTHON_LIBS"; then +- pkg_cv_APPINDICATOR_PYTHON_LIBS="$APPINDICATOR_PYTHON_LIBS" +- elif test -n "$PKG_CONFIG"; then +- if test -n "$PKG_CONFIG" && \ +- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" +- pygtk-2.0 >= \$PYGTK_REQUIRED +- gtk+-2.0 >= \$GTK_REQUIRED_VERSION +- pygobject-2.0 >= \$PYGOBJECT_REQUIRED +- \""; } >&5 +- ($PKG_CONFIG --exists --print-errors " +- pygtk-2.0 >= $PYGTK_REQUIRED +- gtk+-2.0 >= $GTK_REQUIRED_VERSION +- pygobject-2.0 >= $PYGOBJECT_REQUIRED +- ") 2>&5 +- ac_status=$? +- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 +- test $ac_status = 0; }; then +- pkg_cv_APPINDICATOR_PYTHON_LIBS=`$PKG_CONFIG --libs " +- pygtk-2.0 >= $PYGTK_REQUIRED +- gtk+-2.0 >= $GTK_REQUIRED_VERSION +- pygobject-2.0 >= $PYGOBJECT_REQUIRED +- " 2>/dev/null` +- test "x$?" != "x0" && pkg_failed=yes +-else +- pkg_failed=yes +-fi +- else +- pkg_failed=untried +-fi +- +- +- +-if test $pkg_failed = yes; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- +-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then +- _pkg_short_errors_supported=yes +-else +- _pkg_short_errors_supported=no +-fi +- if test $_pkg_short_errors_supported = yes; then +- APPINDICATOR_PYTHON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " +- pygtk-2.0 >= $PYGTK_REQUIRED +- gtk+-2.0 >= $GTK_REQUIRED_VERSION +- pygobject-2.0 >= $PYGOBJECT_REQUIRED +- " 2>&1` +- else +- APPINDICATOR_PYTHON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " +- pygtk-2.0 >= $PYGTK_REQUIRED +- gtk+-2.0 >= $GTK_REQUIRED_VERSION +- pygobject-2.0 >= $PYGOBJECT_REQUIRED +- " 2>&1` +- fi +- # Put the nasty error message in config.log where it belongs +- echo "$APPINDICATOR_PYTHON_PKG_ERRORS" >&5 +- +- as_fn_error $? "Package requirements ( +- pygtk-2.0 >= $PYGTK_REQUIRED +- gtk+-2.0 >= $GTK_REQUIRED_VERSION +- pygobject-2.0 >= $PYGOBJECT_REQUIRED +- ) were not met: +- +-$APPINDICATOR_PYTHON_PKG_ERRORS +- +-Consider adjusting the PKG_CONFIG_PATH environment variable if you +-installed software in a non-standard prefix. +- +-Alternatively, you may set the environment variables APPINDICATOR_PYTHON_CFLAGS +-and APPINDICATOR_PYTHON_LIBS to avoid the need to call pkg-config. +-See the pkg-config man page for more details." "$LINENO" 5 +-elif test $pkg_failed = untried; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +-is in your PATH or set the PKG_CONFIG environment variable to the full +-path to pkg-config. +- +-Alternatively, you may set the environment variables APPINDICATOR_PYTHON_CFLAGS +-and APPINDICATOR_PYTHON_LIBS to avoid the need to call pkg-config. +-See the pkg-config man page for more details. +- +-To get pkg-config, see <http://pkg-config.freedesktop.org/>. +-See \`config.log' for more details" "$LINENO" 5; } +-else +- APPINDICATOR_PYTHON_CFLAGS=$pkg_cv_APPINDICATOR_PYTHON_CFLAGS +- APPINDICATOR_PYTHON_LIBS=$pkg_cv_APPINDICATOR_PYTHON_LIBS +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +- +-fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pygtk defs" >&5 +-$as_echo_n "checking for pygtk defs... " >&6; } +-PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0` +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYGTK_DEFSDIR" >&5 +-$as_echo "$PYGTK_DEFSDIR" >&6; } +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pygtk codegen" >&5 +-$as_echo_n "checking for pygtk codegen... " >&6; } +-PYGTK_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py" +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYGTK_CODEGEN" >&5 +-$as_echo "$PYGTK_CODEGEN" >&6; } + + ######################### + # Check if build tests +@@ -14358,7 +14001,7 @@ fi + # Files + ########################### + +-ac_config_files="$ac_config_files Makefile src/Makefile src/appindicator-0.1.pc src/appindicator3-0.1.pc bindings/Makefile bindings/python/Makefile bindings/python/appindicator.override bindings/vala/Makefile bindings/vala/examples/Makefile tests/Makefile example/Makefile docs/Makefile docs/reference/Makefile docs/reference/version.xml docs/reference/libappindicator-docs.sgml" ++ac_config_files="$ac_config_files Makefile src/Makefile src/appindicator-0.1.pc src/appindicator3-0.1.pc bindings/Makefile bindings/vala/Makefile bindings/vala/examples/Makefile tests/Makefile example/Makefile docs/Makefile docs/reference/Makefile docs/reference/version.xml docs/reference/libappindicator-docs.sgml" + + + if test "x$has_mono" = "xtrue" ; then +@@ -15437,8 +15080,6 @@ do + "src/appindicator-0.1.pc") CONFIG_FILES="$CONFIG_FILES src/appindicator-0.1.pc" ;; + "src/appindicator3-0.1.pc") CONFIG_FILES="$CONFIG_FILES src/appindicator3-0.1.pc" ;; + "bindings/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/Makefile" ;; +- "bindings/python/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/python/Makefile" ;; +- "bindings/python/appindicator.override") CONFIG_FILES="$CONFIG_FILES bindings/python/appindicator.override" ;; + "bindings/vala/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/vala/Makefile" ;; + "bindings/vala/examples/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/vala/examples/Makefile" ;; + "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; +diff --git a/configure.ac b/configure.ac +index ee03390..4713b22 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -181,33 +181,6 @@ AM_CONDITIONAL(BUILD_MONO_TEST, test x${have_nunit} = xyes) + with_localinstall="no" + AC_ARG_ENABLE(localinstall, AS_HELP_STRING([--enable-localinstall], [install all of the files localy instead of system directories (for distcheck)]), with_localinstall=$enableval, with_localinstall=no) + +-########################### +-# Python +-########################### +- +-PYGTK_REQUIRED=2.14.0 +-PYGOBJECT_REQUIRED=0.22 +- +-AM_PATH_PYTHON(2.3.5) +-AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)]) +- +-PKG_CHECK_MODULES(APPINDICATOR_PYTHON, +- [ +- pygtk-2.0 >= $PYGTK_REQUIRED +- gtk+-2.0 >= $GTK_REQUIRED_VERSION +- pygobject-2.0 >= $PYGOBJECT_REQUIRED +- ]) +- +-AC_MSG_CHECKING(for pygtk defs) +-PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0` +-AC_SUBST(PYGTK_DEFSDIR) +-AC_MSG_RESULT($PYGTK_DEFSDIR) +- +-AC_MSG_CHECKING(for pygtk codegen) +-PYGTK_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py" +-AC_SUBST(PYGTK_CODEGEN) +-AC_MSG_RESULT($PYGTK_CODEGEN) +- + ######################### + # Check if build tests + ######################### +@@ -239,8 +212,6 @@ src/Makefile + src/appindicator-0.1.pc + src/appindicator3-0.1.pc + bindings/Makefile +-bindings/python/Makefile +-bindings/python/appindicator.override + bindings/vala/Makefile + bindings/vala/examples/Makefile + tests/Makefile
\ 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..3e53a81a --- /dev/null +++ b/subprojects/shared-modules/libappindicator/libappindicator.json.in @@ -0,0 +1,130 @@ +{ + "name": "libappindicator", + "build-options": { + "cflags": "-Wno-error", + "make-args": [ "-j1" ] + }, + "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": "patch", + "path": "libappindicator-no-python.patch" + }, + { + "type": "patch", + "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" + }, + { + "type": "patch", + "path": "libappindicator-fix-crash-iterating-icon-themes.patch" + }, + { + "type": "script", + "commands": ["autoreconf -sfi"], + "dest-filename": "autogen.sh" + } + ], + "modules": [ + "../intltool/intltool-0.51.json", + "../dbus-glib/dbus-glib.json", + { + "name": "libdbusmenu", + "build-options": { + "cflags": "-Wno-error", + "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" + }, + "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" + } + ] + } + ] +} diff --git a/subprojects/shared-modules/libcanberra/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch b/subprojects/shared-modules/libcanberra/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch new file mode 100644 index 00000000..763c3a99 --- /dev/null +++ b/subprojects/shared-modules/libcanberra/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch @@ -0,0 +1,123 @@ +From d6dd5cdf45c1aac6c0519c8a4f5f89321770fb53 Mon Sep 17 00:00:00 2001 +From: Michael Meeks <michael.meeks@suse.com> +Date: Fri, 9 Nov 2012 16:16:40 +0000 +Subject: [PATCH] gtk: Don't assume all GdkDisplays are GdkX11Displays: + broadway/wayland + +Co-Authored-By: Bastien Nocera <hadess@hadess.net> +--- + src/canberra-gtk-module.c | 15 +++++++++++++++ + src/canberra-gtk.c | 28 ++++++++++++++++++++++------ + 2 files changed, 37 insertions(+), 6 deletions(-) + +diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c +index 67791f0..c1532ab 100644 +--- a/src/canberra-gtk-module.c ++++ b/src/canberra-gtk-module.c +@@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) { + guchar *data = NULL; + gint ret = -1; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return 0; ++#endif ++ + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), + gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), + 0, G_MAXLONG, False, XA_CARDINAL, &type_return, +@@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDisplay *d) { + guchar *data = NULL; + gint ret = -1; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return 0; ++#endif ++ + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)), + gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"), + 0, G_MAXLONG, False, XA_CARDINAL, &type_return, +@@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisplay *d, GdkWindow *w) { + gboolean ret = FALSE; + Atom xembed; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return FALSE; ++#endif ++ + /* Gnome Panel applets are XEMBED windows. We need to make sure we + * ignore them */ + +diff --git a/src/canberra-gtk.c b/src/canberra-gtk.c +index 34446f5..47285f8 100644 +--- a/src/canberra-gtk.c ++++ b/src/canberra-gtk.c +@@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) { + guchar *data = NULL; + gint ret = -1; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return 0; ++#endif ++ + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), + gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), + 0, G_MAXLONG, False, XA_CARDINAL, &type_return, +@@ -254,18 +259,28 @@ int ca_gtk_proplist_set_for_widget(ca_proplist *p, GtkWidget *widget) { + + if (gtk_widget_get_realized(GTK_WIDGET(w))) { + GdkWindow *dw = NULL; ++#ifdef GDK_IS_X11_DISPLAY + GdkScreen *screen = NULL; ++#endif + GdkDisplay *display = NULL; + gint x = -1, y = -1, width = -1, height = -1, screen_width = -1, screen_height = -1; + +- if ((dw = gtk_widget_get_window(GTK_WIDGET(w)))) +- if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_XID, "%lu", (unsigned long) GDK_WINDOW_XID(dw))) < 0) +- return ret; ++ if ((dw = gtk_widget_get_window(GTK_WIDGET(w)))) { ++#ifdef GDK_IS_X11_DISPLAY ++ if (GDK_IS_X11_DISPLAY(display)) { ++ if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_XID, "%lu", (unsigned long) GDK_WINDOW_XID(dw))) < 0) ++ return ret; ++ } ++#endif ++ } + + if ((display = gtk_widget_get_display(GTK_WIDGET(w)))) { +- if ((t = gdk_display_get_name(display))) ++#ifdef GDK_IS_X11_DISPLAY ++ if (GDK_IS_X11_DISPLAY(display) && (t = gdk_display_get_name(display))) { + if ((ret = ca_proplist_sets(p, CA_PROP_WINDOW_X11_DISPLAY, t)) < 0) + return ret; ++ } ++#endif + + if (dw) { + gint desktop = window_get_desktop(display, dw); +@@ -276,7 +291,8 @@ int ca_gtk_proplist_set_for_widget(ca_proplist *p, GtkWidget *widget) { + } + } + +- if ((screen = gtk_widget_get_screen(GTK_WIDGET(w)))) { ++#ifdef GDK_IS_X11_DISPLAY ++ if (GDK_IS_X11_DISPLAY(display) && (screen = gtk_widget_get_screen(GTK_WIDGET(w)))) { + + if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_SCREEN, "%i", gdk_screen_get_number(screen))) < 0) + return ret; +@@ -285,7 +301,7 @@ int ca_gtk_proplist_set_for_widget(ca_proplist *p, GtkWidget *widget) { + if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_MONITOR, "%i", gdk_screen_get_monitor_at_window(screen, dw))) < 0) + return ret; + } +- ++#endif + /* FIXME, this might cause a round trip */ + + if (dw) { +-- +2.34.1 + diff --git a/subprojects/shared-modules/libcanberra/libcanberra.json b/subprojects/shared-modules/libcanberra/libcanberra.json new file mode 100644 index 00000000..ac441941 --- /dev/null +++ b/subprojects/shared-modules/libcanberra/libcanberra.json @@ -0,0 +1,35 @@ +{ + "name": "libcanberra", + "cleanup": [ + "*.la", + "/bin", + "/etc", + "/include", + "/libexec", + "/share/gtk-doc", + "/share/man" + ], + "config-opts": [ + "--disable-static", + "--disable-gtk-doc", + "--disable-oss", + "--enable-pulse", + "--disable-udev", + "--disable-gtk", + "--enable-gtk3", + "--disable-lynx" + ], + "sources": [ + { + "type": "archive", + "url": "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz", + "sha256": "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72", + "git-init" : true + }, + { + "type": "patch", + "path": "0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch", + "use-git-am": true + } + ] +} diff --git a/subprojects/shared-modules/libmad/Provide-Thumb-2-alternative-code-for-MAD_F_MLN.diff b/subprojects/shared-modules/libmad/Provide-Thumb-2-alternative-code-for-MAD_F_MLN.diff new file mode 100644 index 00000000..46415107 --- /dev/null +++ b/subprojects/shared-modules/libmad/Provide-Thumb-2-alternative-code-for-MAD_F_MLN.diff @@ -0,0 +1,34 @@ +From: Dave Martin +Subject: "rsc" doesnt exist anymore in thumb2 + +diff --git a/fixed.h b/fixed.h +index 4b58abf..ba4bc26 100644 +--- a/fixed.h ++++ b/fixed.h +@@ -275,12 +275,25 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t x, mad_fixed_t y) + : "+r" (lo), "+r" (hi) \ + : "%r" (x), "r" (y)) + ++#ifdef __thumb__ ++/* In Thumb-2, the RSB-immediate instruction is only allowed with a zero ++ operand. If needed this code can also support Thumb-1 ++ (simply append "s" to the end of the second two instructions). */ ++# define MAD_F_MLN(hi, lo) \ ++ asm ("rsbs %0, %0, #0\n\t" \ ++ "sbc %1, %1, %1\n\t" \ ++ "sub %1, %1, %2" \ ++ : "+&r" (lo), "=&r" (hi) \ ++ : "r" (hi) \ ++ : "cc") ++#else /* ! __thumb__ */ + # define MAD_F_MLN(hi, lo) \ + asm ("rsbs %0, %2, #0\n\t" \ + "rsc %1, %3, #0" \ +- : "=r" (lo), "=r" (hi) \ ++ : "=&r" (lo), "=r" (hi) \ + : "0" (lo), "1" (hi) \ + : "cc") ++#endif /* __thumb__ */ + + # define mad_f_scale64(hi, lo) \ + ({ mad_fixed_t __result; \ diff --git a/subprojects/shared-modules/libmad/libmad-0.15.1b-cflags-O2.patch b/subprojects/shared-modules/libmad/libmad-0.15.1b-cflags-O2.patch new file mode 100644 index 00000000..61b4b13b --- /dev/null +++ b/subprojects/shared-modules/libmad/libmad-0.15.1b-cflags-O2.patch @@ -0,0 +1,12 @@ +diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b-orig/configure.ac 2007-07-01 12:58:13.000000000 -0600 ++++ libmad-0.15.1b/configure.ac 2007-07-01 12:59:13.000000000 -0600 +@@ -105,7 +105,7 @@ + shift + ;; + -O2) +- optimize="-O" ++ optimize="-O2" + shift + ;; + -fomit-frame-pointer) diff --git a/subprojects/shared-modules/libmad/libmad-0.15.1b-cflags.patch b/subprojects/shared-modules/libmad/libmad-0.15.1b-cflags.patch new file mode 100644 index 00000000..2ec44e34 --- /dev/null +++ b/subprojects/shared-modules/libmad/libmad-0.15.1b-cflags.patch @@ -0,0 +1,146 @@ +diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b-orig/configure.ac 2007-06-30 20:22:31.000000000 -0600 ++++ libmad-0.15.1b/configure.ac 2007-06-30 20:25:31.000000000 -0600 +@@ -122,74 +122,74 @@ + esac + done + +-if test "$GCC" = yes +-then +- if test -z "$arch" +- then +- case "$host" in +- i386-*) ;; +- i?86-*) arch="-march=i486" ;; +- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; +- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; +- powerpc-*) ;; +- mips*-agenda-*) arch="-mcpu=vr4100" ;; +- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; +- esac +- fi +- +- case "$optimize" in +- -O|"-O "*) +- optimize="-O" +- optimize="$optimize -fforce-mem" +- optimize="$optimize -fforce-addr" +- : #x optimize="$optimize -finline-functions" +- : #- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -fthread-jumps" +- optimize="$optimize -fcse-follow-jumps" +- optimize="$optimize -fcse-skip-blocks" +- : #x optimize="$optimize -frerun-cse-after-loop" +- : #x optimize="$optimize -frerun-loop-opt" +- : #x optimize="$optimize -fgcse" +- optimize="$optimize -fexpensive-optimizations" +- optimize="$optimize -fregmove" +- : #* optimize="$optimize -fdelayed-branch" +- : #x optimize="$optimize -fschedule-insns" +- optimize="$optimize -fschedule-insns2" +- : #? optimize="$optimize -ffunction-sections" +- : #? optimize="$optimize -fcaller-saves" +- : #> optimize="$optimize -funroll-loops" +- : #> optimize="$optimize -funroll-all-loops" +- : #x optimize="$optimize -fmove-all-movables" +- : #x optimize="$optimize -freduce-all-givs" +- : #? optimize="$optimize -fstrict-aliasing" +- : #* optimize="$optimize -fstructure-noalias" +- +- case "$host" in +- arm*-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- mips*-*) +- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -finline-functions" +- ;; +- i?86-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- powerpc-apple-*) +- # this triggers an internal compiler error with gcc2 +- : #optimize="$optimize -fstrength-reduce" +- +- # this is really only beneficial with gcc3 +- : #optimize="$optimize -finline-functions" +- ;; +- *) +- # this sometimes provokes bugs in gcc 2.95.2 +- : #optimize="$optimize -fstrength-reduce" +- ;; +- esac +- ;; +- esac +-fi ++#if test "$GCC" = yes ++#then ++# if test -z "$arch" ++# then ++# case "$host" in ++# i386-*) ;; ++# i?86-*) arch="-march=i486" ;; ++# arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; ++# armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; ++# powerpc-*) ;; ++# mips*-agenda-*) arch="-mcpu=vr4100" ;; ++# mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; ++# esac ++# fi ++# ++# case "$optimize" in ++# -O|"-O "*) ++# optimize="-O" ++# optimize="$optimize -fforce-mem" ++# optimize="$optimize -fforce-addr" ++# : #x optimize="$optimize -finline-functions" ++# : #- optimize="$optimize -fstrength-reduce" ++# optimize="$optimize -fthread-jumps" ++# optimize="$optimize -fcse-follow-jumps" ++# optimize="$optimize -fcse-skip-blocks" ++# : #x optimize="$optimize -frerun-cse-after-loop" ++# : #x optimize="$optimize -frerun-loop-opt" ++# : #x optimize="$optimize -fgcse" ++# optimize="$optimize -fexpensive-optimizations" ++# optimize="$optimize -fregmove" ++# : #* optimize="$optimize -fdelayed-branch" ++# : #x optimize="$optimize -fschedule-insns" ++# optimize="$optimize -fschedule-insns2" ++# : #? optimize="$optimize -ffunction-sections" ++# : #? optimize="$optimize -fcaller-saves" ++# : #> optimize="$optimize -funroll-loops" ++# : #> optimize="$optimize -funroll-all-loops" ++# : #x optimize="$optimize -fmove-all-movables" ++# : #x optimize="$optimize -freduce-all-givs" ++# : #? optimize="$optimize -fstrict-aliasing" ++# : #* optimize="$optimize -fstructure-noalias" ++# ++# case "$host" in ++# arm*-*) ++# optimize="$optimize -fstrength-reduce" ++# ;; ++# mips*-*) ++# optimize="$optimize -fstrength-reduce" ++# optimize="$optimize -finline-functions" ++# ;; ++# i?86-*) ++# optimize="$optimize -fstrength-reduce" ++# ;; ++# powerpc-apple-*) ++# # this triggers an internal compiler error with gcc2 ++# : #optimize="$optimize -fstrength-reduce" ++# ++# # this is really only beneficial with gcc3 ++# : #optimize="$optimize -finline-functions" ++# ;; ++# *) ++# # this sometimes provokes bugs in gcc 2.95.2 ++# : #optimize="$optimize -fstrength-reduce" ++# ;; ++# esac ++# ;; ++# esac ++#fi + + case "$host" in + mips*-agenda-*) diff --git a/subprojects/shared-modules/libmad/libmad-0.15.1b-multiarch.patch b/subprojects/shared-modules/libmad/libmad-0.15.1b-multiarch.patch new file mode 100644 index 00000000..51bf663b --- /dev/null +++ b/subprojects/shared-modules/libmad/libmad-0.15.1b-multiarch.patch @@ -0,0 +1,37 @@ +diff -up libmad-0.15.1b/Makefile.am.orig libmad-0.15.1b/Makefile.am +--- libmad-0.15.1b/Makefile.am.orig 2009-01-25 14:35:56.000000000 +0200 ++++ libmad-0.15.1b/Makefile.am 2009-01-25 18:35:07.000000000 +0200 +@@ -110,15 +110,28 @@ mad.h: config.status config.h Makefile.a + echo "# ifdef __cplusplus"; \ + echo 'extern "C" {'; \ + echo "# endif"; echo; \ +- if [ ".$(FPM)" != "." ]; then \ +- echo ".$(FPM)" | sed -e 's|^\.-D|# define |'; echo; \ +- fi; \ ++ echo "# ifdef __i386__"; \ ++ echo "# define FPM_INTEL"; \ ++ echo "# define SIZEOF_LONG 4"; \ ++ echo "# endif"; \ ++ echo "#ifdef __x86_64__";\ ++ echo "# define FPM_64BIT"; \ ++ echo "# define SIZEOF_LONG 8"; \ ++ echo "# endif"; \ ++ echo "#ifdef __powerpc__"; \ ++ echo "#define FPM_PPC"; \ ++ echo "#define SIZEOF_LONG 4"; \ ++ echo "#endif"; \ ++ echo "#ifdef __powerpc64__"; \ ++ echo "#define FPM_PPC"; \ ++ echo "#define SIZEOF_LONG 8"; \ ++ echo "#endif"; echo; \ + sed -ne 's/^# *define *\(HAVE_.*_ASM\).*/# define \1/p' \ + config.h; echo; \ + sed -ne 's/^# *define *OPT_\(SPEED\|ACCURACY\).*/# define OPT_\1/p' \ + config.h; echo; \ +- sed -ne 's/^# *define *\(SIZEOF_.*\)/# define \1/p' \ +- config.h; echo; \ ++ echo "# define SIZEOF_INT 4"; \ ++ echo "# define SIZEOF_LONG_LONG 8"; echo; \ + for header in $(exported_headers); do \ + echo; \ + sed -n -f $(srcdir)/mad.h.sed $(srcdir)/$$header; \ diff --git a/subprojects/shared-modules/libmad/libmad-0.15.1b-ppc.patch b/subprojects/shared-modules/libmad/libmad-0.15.1b-ppc.patch new file mode 100644 index 00000000..fa6ee383 --- /dev/null +++ b/subprojects/shared-modules/libmad/libmad-0.15.1b-ppc.patch @@ -0,0 +1,13 @@ +--- libmad-0.15.1b/fixed.h~ 2004-02-17 02:02:03.000000000 +0000 ++++ libmad-0.15.1b/fixed.h 2009-07-19 13:03:08.000000000 +0100 +@@ -379,8 +379,8 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t + asm ("addc %0,%2,%3\n\t" \ + "adde %1,%4,%5" \ + : "=r" (lo), "=r" (hi) \ +- : "%r" (lo), "r" (__lo), \ +- "%r" (hi), "r" (__hi) \ ++ : "0" (lo), "r" (__lo), \ ++ "1" (hi), "r" (__hi) \ + : "xer"); \ + }) + # endif diff --git a/subprojects/shared-modules/libmad/libmad.json b/subprojects/shared-modules/libmad/libmad.json new file mode 100644 index 00000000..cfebd20e --- /dev/null +++ b/subprojects/shared-modules/libmad/libmad.json @@ -0,0 +1,49 @@ +{ + "name" : "libmad", + "post-install": [ + "install -d $FLATPAK_DEST/lib/pkgconfig", + "install -Dm644 -t $FLATPAK_DEST/lib/pkgconfig mad.pc" + ], + "sources" : [ + { + "type" : "archive", + "url" : "https://downloads.sourceforge.net/project/mad/libmad/0.15.1b/libmad-0.15.1b.tar.gz", + "sha256" : "bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690" + }, + { + "type": "patch", + "path": "libmad-0.15.1b-multiarch.patch" + }, + { + "type": "patch", + "path": "libmad-0.15.1b-ppc.patch" + }, + { + "type": "patch", + "path": "Provide-Thumb-2-alternative-code-for-MAD_F_MLN.diff" + }, + { + "type": "patch", + "path": "libmad.thumb.diff" + }, + { + "type": "patch", + "path": "libmad-0.15.1b-cflags.patch" + }, + { + "type": "patch", + "path": "libmad-0.15.1b-cflags-O2.patch" + }, + { + "type": "file", + "path": "mad.pc" + }, + { + "type": "shell", + "commands": [ + "cp /usr/share/gnu-config/config.sub .", + "cp /usr/share/gnu-config/config.guess ." + ] + } + ] +} diff --git a/subprojects/shared-modules/libmad/libmad.thumb.diff b/subprojects/shared-modules/libmad/libmad.thumb.diff new file mode 100644 index 00000000..13edde21 --- /dev/null +++ b/subprojects/shared-modules/libmad/libmad.thumb.diff @@ -0,0 +1,12 @@ +--- ./imdct_l_arm.S.orig 2010-02-25 13:25:23.000000000 +0100 ++++ ./imdct_l_arm.S 2010-02-25 13:27:26.000000000 +0100 +@@ -468,7 +468,7 @@ + + @---- + +- add r2, pc, #(imdct36_long_karray-.-8) @ r2 = base address of Knn array (PIC safe ?) ++ adr r2, imdct36_long_karray + + + loop: + diff --git a/subprojects/shared-modules/libmad/mad.pc b/subprojects/shared-modules/libmad/mad.pc new file mode 100644 index 00000000..15d85311 --- /dev/null +++ b/subprojects/shared-modules/libmad/mad.pc @@ -0,0 +1,11 @@ +prefix=/app +exec_prefix=/app +libdir=/app/lib +includedir=/app/include + +Name: mad +Description: MPEG Audio Decoder +Requires: +Version: 0.15.1b +Libs: -L/app/lib} -lmad -lm +Cflags: -I/app/include
\ No newline at end of file diff --git a/subprojects/shared-modules/libsecret/libsecret.json b/subprojects/shared-modules/libsecret/libsecret.json new file mode 100644 index 00000000..ae347bba --- /dev/null +++ b/subprojects/shared-modules/libsecret/libsecret.json @@ -0,0 +1,23 @@ +{ + "name": "libsecret", + "buildsystem": "meson", + "config-opts": [ + "-Dmanpage=false", + "-Dvapi=false", + "-Dgtk_doc=false", + "-Dintrospection=false" + ], + "cleanup": [ + "/bin", + "/include", + "/lib/pkgconfig", + "/share/man" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/libsecret/0.20/libsecret-0.20.5.tar.xz", + "sha256": "3fb3ce340fcd7db54d87c893e69bfc2b1f6e4d4b279065ffe66dac9f0fd12b4d" + } + ] +} diff --git a/subprojects/shared-modules/libusb/libusb.json b/subprojects/shared-modules/libusb/libusb.json new file mode 100644 index 00000000..21dddf80 --- /dev/null +++ b/subprojects/shared-modules/libusb/libusb.json @@ -0,0 +1,19 @@ +{ + "name": "libusb", + "config-opts": [ "--disable-static" ], + "cleanup": [ + "/lib/*.la", + "/lib/pkgconfig", + "/include" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/libusb/libusb/releases/download/v1.0.26/libusb-1.0.26.tar.bz2", + "sha256": "12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5" + } + ], + "post-install": [ + "install -Dm644 COPYING /app/share/licenses/libusb/COPYING" + ] +} diff --git a/subprojects/shared-modules/linux-audio/dssi.json b/subprojects/shared-modules/linux-audio/dssi.json new file mode 100644 index 00000000..ec33fd37 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/dssi.json @@ -0,0 +1,29 @@ +{ + "name": "dssi", + "rm-configure": true, + "config-opts": [ + "--disable-static" + ], + "cleanup": [ + "/bin", + "/include", + "/lib/dssi", + "/lib/pkgconfig", + "/share/man", + "*.la" + ], + "sources": [ + { + "type": "archive", + "url": "http://download.sf.net/sourceforge/dssi/dssi-1.1.1.tar.gz", + "sha256": "f2c82b073a947c8255284249097667f9b14e660bf86186f3fcd3b3b3e087814e" + }, + { + "type": "script", + "commands": [ + "autoreconf -fiv" + ], + "dest-filename": "autogen.sh" + } + ] +} diff --git a/subprojects/shared-modules/linux-audio/fftw3f-static.json b/subprojects/shared-modules/linux-audio/fftw3f-static.json new file mode 100644 index 00000000..66757499 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/fftw3f-static.json @@ -0,0 +1,44 @@ +{ + "name": "fftw3f", + "config-opts": [ + "--enable-threads", + "--enable-static", + "--disable-shared", + "--enable-float" + ], + "build-options": { + "cflags": "-fPIC", + "arch": { + "x86_64": { + "config-opts": [ + "--enable-sse2", + "--enable-avx", + "--enable-avx-128-fma" + ] + }, + "aarch64": { + "config-opts": [ + "--enable-neon" + ] + } + } + }, + "sources": [ + { + "type": "archive", + "url": "https://www.fftw.org/fftw-3.3.10.tar.gz", + "sha256": "56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467" + } + ], + "cleanup": [ + "/bin", + "/include", + "/lib/cmake", + "/lib/pkgconfig", + "/share/info", + "/share/man", + "*.a", + "*.la", + "*.so" + ] +} diff --git a/subprojects/shared-modules/linux-audio/fftw3f.json b/subprojects/shared-modules/linux-audio/fftw3f.json new file mode 100644 index 00000000..ee10c757 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/fftw3f.json @@ -0,0 +1,41 @@ +{ + "name": "fftw3f", + "config-opts": [ + "--enable-threads", + "--enable-shared", + "--disable-static", + "--enable-float" + ], + "build-options": { + "arch": { + "x86_64": { + "config-opts": [ + "--enable-sse2", + "--enable-avx", + "--enable-avx-128-fma" + ] + }, + "aarch64": { + "config-opts": [ + "--enable-neon" + ] + } + } + }, + "sources": [ + { + "type": "archive", + "url": "https://www.fftw.org/fftw-3.3.10.tar.gz", + "sha256": "56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467" + } + ], + "cleanup": [ + "/bin", + "/include", + "/lib/cmake", + "/lib/pkgconfig", + "/share/man", + "*.la", + "*.so" + ] +} diff --git a/subprojects/shared-modules/linux-audio/fluidsynth2-static.json b/subprojects/shared-modules/linux-audio/fluidsynth2-static.json new file mode 100644 index 00000000..67cea185 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/fluidsynth2-static.json @@ -0,0 +1,27 @@ +{ + "name": "fluidsynth", + "buildsystem": "cmake-ninja", + "build-options": { + "cflags": "-fPIC", + "cxxflags": "-fPIC" + }, + "config-opts": [ + "-DLIB_SUFFIX=", + "-DBUILD_SHARED_LIBS=OFF" + ], + "cleanup": [ + "/bin", + "/include", + "/lib/pkgconfig", + "/share/man", + "*.so", + "*.a" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/FluidSynth/fluidsynth/archive/v2.2.8.tar.gz", + "sha256": "7c29a5cb7a2755c8012d941d1335da7bda957bbb0a86b7c59215d26773bb51fe" + } + ] +} diff --git a/subprojects/shared-modules/linux-audio/fluidsynth2.json b/subprojects/shared-modules/linux-audio/fluidsynth2.json new file mode 100644 index 00000000..a22a060b --- /dev/null +++ b/subprojects/shared-modules/linux-audio/fluidsynth2.json @@ -0,0 +1,21 @@ +{ + "name": "fluidsynth", + "buildsystem": "cmake-ninja", + "config-opts": [ + "-DLIB_SUFFIX=" + ], + "cleanup": [ + "/bin", + "/include", + "/lib/pkgconfig", + "/share/man", + "*.so" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/FluidSynth/fluidsynth/archive/v2.2.8.tar.gz", + "sha256": "7c29a5cb7a2755c8012d941d1335da7bda957bbb0a86b7c59215d26773bb51fe" + } + ] +} diff --git a/subprojects/shared-modules/linux-audio/jack2.json b/subprojects/shared-modules/linux-audio/jack2.json new file mode 100644 index 00000000..9077fea3 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/jack2.json @@ -0,0 +1,23 @@ +{ + "name": "jack2", + "buildsystem": "simple", + "build-commands": [ + "./waf configure --prefix=$FLATPAK_DEST --htmldir=$FLATPAK_DEST/share/doc/jack/ --classic", + "./waf build -j $FLATPAK_BUILDER_N_JOBS", + "./waf install" + ], + "cleanup": [ + "/include", + "/lib/jack", + "/lib/libjack*", + "/lib/pkgconfig", + "/share/man" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/jackaudio/jack2/archive/v1.9.17.tar.gz", + "sha256": "38f674bbc57852a8eb3d9faa1f96a0912d26f7d5df14c11005ad499c8ae352f2" + } + ] +} diff --git a/subprojects/shared-modules/linux-audio/ladspa.json b/subprojects/shared-modules/linux-audio/ladspa.json new file mode 100644 index 00000000..d3637fff --- /dev/null +++ b/subprojects/shared-modules/linux-audio/ladspa.json @@ -0,0 +1,17 @@ +{ + "name": "ladspa", + "no-autogen": true, + "subdir": "src", + "make-install-args": [ + "INSTALL_PLUGINS_DIR=/app/lib/ladspa", + "INSTALL_INCLUDE_DIR=/app/include", + "INSTALL_BINARY_DIR=/app/bin" + ], + "sources": [ + { + "type": "archive", + "url": "http://www.ladspa.org/download/ladspa_sdk_1.17.tgz", + "sha256": "27d24f279e4b81bd17ecbdcc38e4c42991bb388826c0b200067ce0eb59d3da5b" + } + ] +} diff --git a/subprojects/shared-modules/linux-audio/lash.json b/subprojects/shared-modules/linux-audio/lash.json new file mode 100644 index 00000000..4d0ccb28 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/lash.json @@ -0,0 +1,41 @@ +{ + "name": "lash", + "rm-configure": true, + "config-opts": [ + "--disable-static", + "--disable-serv-inst", + "CFLAGS=-D_GNU_SOURCE" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.savannah.gnu.org/releases/lash/lash-0.5.4.tar.gz", + "sha256": "105a7da84415c4725c6bcad28e70f23aeb4534f94fc80ca262b6a2cef2226c16" + }, + { + "type": "patch", + "strip-components": 0, + "path": "patches/lash-0.5.3-no-static-lib.patch" + }, + { + "type": "patch", + "path": "patches/lash-gcc47.patch" + }, + { + "type": "patch", + "path": "patches/lash-linking.patch" + }, + { + "type": "patch", + "strip-components": 0, + "path": "patches/lash-configure.patch" + }, + { + "type": "script", + "commands": [ + "autoreconf -fiv" + ], + "dest-filename": "autogen.sh" + } + ] +} diff --git a/subprojects/shared-modules/linux-audio/libinstpatch.json b/subprojects/shared-modules/linux-audio/libinstpatch.json new file mode 100644 index 00000000..fb00c206 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/libinstpatch.json @@ -0,0 +1,17 @@ +{ + "name": "libinstpatch", + "buildsystem": "cmake-ninja", + "config-opts": [ + "-DLIB_SUFFIX=" + ], + "cleanup": [ + "/share/doc" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/swami/libinstpatch/archive/v1.1.6.tar.gz", + "sha256": "8e9861b04ede275d712242664dab6ffa9166c7940fea3b017638681d25e10299" + } + ] +} diff --git a/subprojects/shared-modules/linux-audio/liblo-static.json b/subprojects/shared-modules/linux-audio/liblo-static.json new file mode 100644 index 00000000..4ca2eb77 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/liblo-static.json @@ -0,0 +1,25 @@ +{ + "name": "liblo", + "cleanup": [ + "/bin", + "/include", + "/lib/pkgconfig", + "*.la", + "*.a", + "*.so" + ], + "build-options": { + "cflags": "-fPIC" + }, + "config-opts": [ + "--enable-static", + "--disable-shared" + ], + "sources": [ + { + "type": "archive", + "url": "http://download.sf.net/sourceforge/liblo/liblo-0.31.tar.gz", + "sha256": "2b4f446e1220dcd624ecd8405248b08b7601e9a0d87a0b94730c2907dbccc750" + } + ] +} diff --git a/subprojects/shared-modules/linux-audio/liblo.json b/subprojects/shared-modules/linux-audio/liblo.json new file mode 100644 index 00000000..17de750e --- /dev/null +++ b/subprojects/shared-modules/linux-audio/liblo.json @@ -0,0 +1,17 @@ +{ + "name": "liblo", + "cleanup": [ + "/bin", + "/include", + "/lib/pkgconfig", + "*.la", + "*.so" + ], + "sources": [ + { + "type": "archive", + "url": "http://download.sf.net/sourceforge/liblo/liblo-0.31.tar.gz", + "sha256": "2b4f446e1220dcd624ecd8405248b08b7601e9a0d87a0b94730c2907dbccc750" + } + ] +} diff --git a/subprojects/shared-modules/linux-audio/lilv.json b/subprojects/shared-modules/linux-audio/lilv.json new file mode 100644 index 00000000..2c080535 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/lilv.json @@ -0,0 +1,100 @@ +{ + "name": "lilv", + "buildsystem": "simple", + "build-commands": [ + "python3 ./waf configure --prefix=$FLATPAK_DEST", + "python3 ./waf build -j $FLATPAK_BUILDER_N_JOBS", + "python3 ./waf install" + ], + "modules": [ + { + "name": "serd", + "buildsystem": "simple", + "build-commands": [ + "python3 ./waf configure --prefix=$FLATPAK_DEST", + "python3 ./waf build -j $FLATPAK_BUILDER_N_JOBS", + "python3 ./waf install" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.drobilla.net/serd-0.30.10.tar.bz2", + "sha256": "affa80deec78921f86335e6fc3f18b80aefecf424f6a5755e9f2fa0eb0710edf" + } + ], + "post-install": [ + "install -Dm644 -t /app/share/licenses/serd COPYING" + ], + "cleanup": [ + "/bin", + "/include", + "/lib/pkgconfig", + "/share/man" + ] + }, + { + "name": "sord", + "buildsystem": "simple", + "build-commands": [ + "python3 ./waf configure --prefix=$FLATPAK_DEST", + "python3 ./waf build -j $FLATPAK_BUILDER_N_JOBS", + "python3 ./waf install" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.drobilla.net/sord-0.16.8.tar.bz2", + "sha256": "7c289d2eaabf82fa6ac219107ce632d704672dcfb966e1a7ff0bbc4ce93f5e14" + } + ], + "post-install": [ + "install -Dm644 -t /app/share/licenses/sord COPYING" + ], + "cleanup": [ + "/bin", + "/include", + "/lib/pkgconfig", + "/share/man" + ] + }, + { + "name": "sratom", + "buildsystem": "simple", + "build-commands": [ + "python3 ./waf configure --prefix=$FLATPAK_DEST", + "python3 ./waf build -j $FLATPAK_BUILDER_N_JOBS", + "python3 ./waf install" + ], + "cleanup": [ + "/include", + "/lib/pkgconfig" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.drobilla.net/sratom-0.6.8.tar.bz2", + "sha256": "3acb32b1adc5a2b7facdade2e0818bcd6c71f23f84a1ebc17815bb7a0d2d02df" + } + ], + "post-install": [ + "install -Dm644 -t /app/share/licenses/sratom COPYING" + ] + } + ], + "sources": [ + { + "type": "archive", + "url": "https://download.drobilla.net/lilv-0.24.12.tar.bz2", + "sha256": "26a37790890c9c1f838203b47f5b2320334fe92c02a4d26ebbe2669dbd769061" + } + ], + "post-install": [ + "install -Dm644 -t /app/share/licenses/lilv COPYING" + ], + "cleanup": [ + "/bin", + "/etc", + "/lib/pkgconfig", + "/share/man" + ] +} diff --git a/subprojects/shared-modules/linux-audio/lrdf.json b/subprojects/shared-modules/linux-audio/lrdf.json new file mode 100644 index 00000000..29d19dd5 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/lrdf.json @@ -0,0 +1,50 @@ +{ + "name": "lrdf", + "rm-configure": true, + "cleanup": [ + "/include", + "/lib/pkgconfig", + "*.so" + ], + "config-opts": [ + "--disable-static" + ], + "modules": [ + "ladspa.json", + { + "name": "raptor2", + "cleanup": [ + "/include", + "/lib/pkgconfig", + "/share/gtk-doc", + "*.so" + ], + "config-opts": [ + "--disable-documentation", + "--disable-static" + ], + "sources": [ + { + "type": "archive", + "url": "http://download.librdf.org/source/raptor2-2.0.15.tar.gz", + "sha256": "ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed" + } + ] + } + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/swh/LRDF/tarball/0.5.0", + "dest-filename": "swh-LRDF-0.5.0-0-g7ebc032.tar.gz", + "sha256": "013002b91ef209827fe99552b8c7f0b569cddb3d6f1439bedbd8bafe1956a93c" + }, + { + "type": "script", + "commands": [ + "autoreconf -fiv" + ], + "dest-filename": "autogen.sh" + } + ] +} diff --git a/subprojects/shared-modules/linux-audio/lv2.json b/subprojects/shared-modules/linux-audio/lv2.json new file mode 100644 index 00000000..5cf5a67c --- /dev/null +++ b/subprojects/shared-modules/linux-audio/lv2.json @@ -0,0 +1,26 @@ +{ + "name": "lv2", + "buildsystem": "simple", + "build-commands": [ + "python3 ./waf configure --prefix=$FLATPAK_DEST --lv2dir=$FLATPAK_DEST/lib/lv2 --copy-headers", + "python3 ./waf build -j $FLATPAK_BUILDER_N_JOBS", + "python3 ./waf install" + ], + "cleanup": [ + "/bin", + "/include", + "/lib/pkgconfig", + "/share" + ], + "sources": [ + { + "type": "archive", + "url": "https://lv2plug.in/spec/lv2-1.18.2.tar.bz2", + "sha256": "4e891fbc744c05855beb5dfa82e822b14917dd66e98f82b8230dbd1c7ab2e05e" + } + ], + "post-install": [ + "install -Dm644 -t $FLATPAK_DEST/share/licenses/lv2 COPYING", + "ln -sf lv2.pc $FLATPAK_DEST/lib/pkgconfig/lv2core.pc" + ] +} diff --git a/subprojects/shared-modules/linux-audio/patches/lash-0.5.3-no-static-lib.patch b/subprojects/shared-modules/linux-audio/patches/lash-0.5.3-no-static-lib.patch new file mode 100644 index 00000000..54d1cd7b --- /dev/null +++ b/subprojects/shared-modules/linux-audio/patches/lash-0.5.3-no-static-lib.patch @@ -0,0 +1,10 @@ +--- lash-1.0.pc.in~ 2007-10-07 06:33:27.000000000 -0700 ++++ lash-1.0.pc.in 2007-10-07 06:35:00.000000000 -0700 +@@ -7,6 +7,5 @@ + Description: Audio session management + Requires: @PC_REQUIRES@ + Version: @PACKAGE_VERSION@ +-Libs: -llash +-Libs.static: -lpthread -luuid ++Libs: -llash -lpthread -luuid + Cflags: -I${includedir}/lash-1.0 diff --git a/subprojects/shared-modules/linux-audio/patches/lash-configure.patch b/subprojects/shared-modules/linux-audio/patches/lash-configure.patch new file mode 100644 index 00000000..ba9bb8ba --- /dev/null +++ b/subprojects/shared-modules/linux-audio/patches/lash-configure.patch @@ -0,0 +1,11 @@ +--- configure.ac 2007-11-14 16:58:51.000000000 -0500 ++++ configure.ac.new 2019-01-24 13:48:46.284377086 -0500 +@@ -2,7 +2,7 @@ + AC_CONFIG_SRCDIR([lash/types.h]) + AC_CONFIG_HEADER([config.h]) + AM_INIT_AUTOMAKE +-AM_ACLOCAL_INCLUDE([m4]) ++dnl AM_ACLOCAL_INCLUDE([m4]) + + ### Check for programs ### + AC_LANG([C]) diff --git a/subprojects/shared-modules/linux-audio/patches/lash-gcc47.patch b/subprojects/shared-modules/linux-audio/patches/lash-gcc47.patch new file mode 100644 index 00000000..41710ca5 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/patches/lash-gcc47.patch @@ -0,0 +1,11 @@ +diff -rupN lash-0.5.4.old/liblash/lash.c lash-0.5.4/liblash/lash.c +--- lash-0.5.4.old/liblash/lash.c 2007-03-09 10:34:40.000000000 -0500 ++++ lash-0.5.4/liblash/lash.c 2012-07-22 18:17:46.003963521 -0400 +@@ -22,6 +22,7 @@ + #include <string.h> + #include <strings.h> + #include <pthread.h> ++#include <sys/resource.h> + #include <sys/types.h> + #include <sys/wait.h> + #include <sys/socket.h> diff --git a/subprojects/shared-modules/linux-audio/patches/lash-linking.patch b/subprojects/shared-modules/linux-audio/patches/lash-linking.patch new file mode 100644 index 00000000..e46d1647 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/patches/lash-linking.patch @@ -0,0 +1,90 @@ +diff -rupN lash-0.5.4.old/clients/control/Makefile.am lash-0.5.4/clients/control/Makefile.am +--- lash-0.5.4.old/clients/control/Makefile.am 2007-01-13 13:20:03.000000000 -0500 ++++ lash-0.5.4/clients/control/Makefile.am 2010-02-10 03:08:04.000000000 -0500 +@@ -18,6 +18,6 @@ lash_control_CFLAGS = $(LASH_CFLAGS) + + lash_control_LDADD = \ + $(top_builddir)/liblash/liblash.la \ +- $(LASH_LIBS) @READLINE_LIBS@ ++ $(LASH_LIBS) @READLINE_LIBS@ -luuid + + endif +diff -rupN lash-0.5.4.old/clients/control/Makefile.in lash-0.5.4/clients/control/Makefile.in +--- lash-0.5.4.old/clients/control/Makefile.in 2007-11-14 17:00:09.000000000 -0500 ++++ lash-0.5.4/clients/control/Makefile.in 2010-02-10 03:09:26.000000000 -0500 +@@ -236,7 +236,7 @@ AM_CPPFLAGS = -I$(top_srcdir) + @HAVE_READLINE_TRUE@lash_control_CFLAGS = $(LASH_CFLAGS) + @HAVE_READLINE_TRUE@lash_control_LDADD = \ + @HAVE_READLINE_TRUE@ $(top_builddir)/liblash/liblash.la \ +-@HAVE_READLINE_TRUE@ $(LASH_LIBS) @READLINE_LIBS@ ++@HAVE_READLINE_TRUE@ $(LASH_LIBS) @READLINE_LIBS@ -luuid + + all: all-am + +diff -rupN lash-0.5.4.old/clients/panel/Makefile.am lash-0.5.4/clients/panel/Makefile.am +--- lash-0.5.4.old/clients/panel/Makefile.am 2005-09-13 01:22:59.000000000 -0400 ++++ lash-0.5.4/clients/panel/Makefile.am 2010-02-10 03:17:10.000000000 -0500 +@@ -13,7 +13,7 @@ lash_panel_CFLAGS = \ + + lash_panel_LDADD = \ + $(top_builddir)/liblash/liblash.la \ +- $(GTK2_LIBS) ++ $(GTK2_LIBS) -luuid + + if HAVE_GTK2 + bin_PROGRAMS = lash_panel +diff -rupN lash-0.5.4.old/clients/panel/Makefile.in lash-0.5.4/clients/panel/Makefile.in +--- lash-0.5.4.old/clients/panel/Makefile.in 2007-11-14 17:00:09.000000000 -0500 ++++ lash-0.5.4/clients/panel/Makefile.in 2010-02-10 03:17:23.000000000 -0500 +@@ -230,7 +230,7 @@ lash_panel_CFLAGS = \ + + lash_panel_LDADD = \ + $(top_builddir)/liblash/liblash.la \ +- $(GTK2_LIBS) ++ $(GTK2_LIBS) -luuid + + all: all-am + +diff -rupN lash-0.5.4.old/clients/synth/Makefile.am lash-0.5.4/clients/synth/Makefile.am +--- lash-0.5.4.old/clients/synth/Makefile.am 2005-09-13 01:22:59.000000000 -0400 ++++ lash-0.5.4/clients/synth/Makefile.am 2010-02-10 03:22:39.000000000 -0500 +@@ -20,4 +20,4 @@ lash_synth_LDADD = \ + $(JACK_LIBS) \ + $(ALSA_LIBS) \ + $(GTK2_LIBS) \ +- -lpthread ++ -lpthread -lm +diff -rupN lash-0.5.4.old/clients/synth/Makefile.in lash-0.5.4/clients/synth/Makefile.in +--- lash-0.5.4.old/clients/synth/Makefile.in 2007-11-14 17:00:10.000000000 -0500 ++++ lash-0.5.4/clients/synth/Makefile.in 2010-02-10 03:22:51.000000000 -0500 +@@ -238,7 +238,7 @@ lash_synth_LDADD = \ + $(JACK_LIBS) \ + $(ALSA_LIBS) \ + $(GTK2_LIBS) \ +- -lpthread ++ -lpthread -lm + + all: all-am + +diff -rupN lash-0.5.4.old/lashd/Makefile.am lash-0.5.4/lashd/Makefile.am +--- lash-0.5.4.old/lashd/Makefile.am 2006-09-16 16:27:46.000000000 -0400 ++++ lash-0.5.4/lashd/Makefile.am 2010-07-23 15:13:59.000000000 -0400 +@@ -32,6 +32,7 @@ lashd_LDADD = \ + $(ALSA_LIBS) \ + $(XML2_LIBS) \ + $(UUID_LIBS) \ ++ -lpthread \ + $(top_builddir)/liblash/liblash.la + + lashd_CFLAGS = \ +diff -rupN lash-0.5.4.old/lashd/Makefile.in lash-0.5.4/lashd/Makefile.in +--- lash-0.5.4.old/lashd/Makefile.in 2007-11-14 17:00:10.000000000 -0500 ++++ lash-0.5.4/lashd/Makefile.in 2010-07-23 15:14:29.000000000 -0400 +@@ -262,6 +262,7 @@ lashd_LDADD = \ + $(ALSA_LIBS) \ + $(XML2_LIBS) \ + $(UUID_LIBS) \ ++ -lpthread \ + $(top_builddir)/liblash/liblash.la + + lashd_CFLAGS = \ diff --git a/subprojects/shared-modules/linux-audio/patches/stk-install.sh b/subprojects/shared-modules/linux-audio/patches/stk-install.sh new file mode 100644 index 00000000..e2d9c9b7 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/patches/stk-install.sh @@ -0,0 +1,54 @@ + +INCLUDE_DIR=/app/include +DATA_DIR=/app/share +LIB_DIR=/app/lib +BIN_DIR=/app/bin + + + + +install -Dm644 -t $INCLUDE_DIR/stk include/* +install -Dm644 -t $LIB_DIR src/libstk.* +install -Dm644 -t $DATA_DIR/stk/rawwaves rawwaves/*.raw + +#cp -pr projects/demo/tcl $DATA_DIR/stk/demo +#cp -pr projects/demo/scores $DATA_DIR/stk/demo +#cp -p projects/demo/demo $BIN_DIR/stk-demo +#cp -p projects/demo/Md2Skini $BIN_DIR/Md2Skini +#for f in Banded Drums Modal Physical Shakers StkDemo Voice ; do +# chmod +x projects/demo/$f +# sed -e 's,\./demo,$BIN_DIR/stk-demo,' -e '1i#! /bin/sh' \ +# -i projects/demo/$f +# cp -p projects/demo/$f $DATA_DIR/stk/demo +#done + +#cp -pr projects/examples/midifiles $DATA_DIR/stk/examples +#cp -pr projects/examples/rawwaves $DATA_DIR/stk/examples +#cp -pr projects/examples/scores $DATA_DIR/stk/examples +#for f in sine sineosc foursine audioprobe midiprobe duplex play \ +# record inetIn inetOut rtsine crtsine bethree controlbee \ +# threebees playsmf grains ; do +# cp -p projects/examples/$f $BIN_DIR/stk-$f +# # absolute links, will be shortened later +# ln -s $BIN_DIR/stk-$f $DATA_DIR/stk/examples/$f +#done + +install -Dm644 -t $DATA_DIR/stk/effects projects/effects/tcl +install -Dm644 -t $BIN_DIR/stk-effects projects/effects/effects +sed -e 's,\./effects,$BIN_DIR/stk-effects,' -e '1i#! /bin/sh' \ + -i projects/effects/StkEffects +install -Dm644 -t $DATA_DIR/stk/effects projects/effects/StkEffects + +install -Dm644 -t $DATA_DIR/stk/ragamatic projects/ragamatic/tcl +install -Dm644 -t $DATA_DIR/stk/ragamatic projects/ragamatic/rawwaves +install -Dm644 -t $BIN_DIR/stk-ragamat projects/ragamatic/ragamat +sed -e 's,\./ragamat,$BIN_DIR/stk-ragamat,' -e '1i#! /bin/sh' \ + -i projects/ragamatic/Raga +install -Dm644 -t $DATA_DIR/stk/ragamatic projects/ragamatic/Raga + +install -Dm644 -t $DATA_DIR/stk/eguitar projects/eguitar/tcl +install -Dm644 -t $DATA_DIR/stk/eguitar projects/eguitar/scores +install -Dm644 -t $BIN_DIR/stk-eguitar projects/eguitar/eguitar +sed -e 's,\./eguitar,$BIN_DIR/stk-eguitar,' -e '1i#! /bin/sh' \ + -i projects/eguitar/ElectricGuitar +install -Dm644 -t $DATA_DIR/stk/eguitar projects/eguitar/ElectricGuitar diff --git a/subprojects/shared-modules/linux-audio/stk.json b/subprojects/shared-modules/linux-audio/stk.json new file mode 100644 index 00000000..cf4d8f93 --- /dev/null +++ b/subprojects/shared-modules/linux-audio/stk.json @@ -0,0 +1,28 @@ +{ + "name": "stk", + "build-commands": [ + "make -j $FLATPAK_BUILDER_N_JOBS -C src", + "make -j $FLATPAK_BUILDER_N_JOBS -C projects/effects libeffects", + "make -j $FLATPAK_BUILDER_N_JOBS -C projects/ragamatic libragamat", + "make -j $FLATPAK_BUILDER_N_JOBS -C projects/eguitar libeguitar" + ], + "post-install": [ + "sh ./stk-install.sh" + ], + "cleanup": [ + "/bin/*", + "/include", + "*.a" + ], + "sources": [ + { + "type": "archive", + "url": "http://ccrma.stanford.edu/software/stk/release/stk-4.6.1.tar.gz", + "sha256": "e77ba3c80cdd93ca02c34098b9b7f918df3d648c87f1ed5d94fe854debd6d101" + }, + { + "type": "file", + "path": "patches/stk-install.sh" + } + ] +} diff --git a/subprojects/shared-modules/lua5.1/lua-5.1.5-so.patch b/subprojects/shared-modules/lua5.1/lua-5.1.5-so.patch new file mode 100644 index 00000000..5fc61a08 --- /dev/null +++ b/subprojects/shared-modules/lua5.1/lua-5.1.5-so.patch @@ -0,0 +1,43 @@ +diff -ur lua-5.1.4/src/Makefile lua-5.1.4-new/src/Makefile +--- lua-5.1.4/src/Makefile 2008-01-19 20:37:58.000000000 +0100 ++++ lua-5.1.4-new/src/Makefile 2012-02-23 18:26:43.000000000 +0100 +@@ -23,6 +23,7 @@ + PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris + + LUA_A= liblua.a ++LUA_SO= liblua.so + CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \ + lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \ + lundump.o lvm.o lzio.o +@@ -36,7 +37,7 @@ + LUAC_O= luac.o print.o + + ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T) + ALL_A= $(LUA_A) + + default: $(PLAT) +@@ -51,6 +52,11 @@ + $(AR) $@ $? + $(RANLIB) $@ + ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO) ++ + $(LUA_T): $(LUA_O) $(LUA_A) + $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) + +--- lua-5.1.4/Makefile 2008-08-12 02:40:48.000000000 +0200 ++++ lua-5.1.4-new/Makefile 2012-02-23 19:06:32.000000000 +0100 +@@ -53,7 +53,7 @@ + all: $(PLAT) + + $(PLATS) clean: +- cd src && $(MAKE) $@ ++ cd src && $(MAKE) $@ V=$(V) R=$(R) + + test: dummy + src/lua test/hello.lua diff --git a/subprojects/shared-modules/lua5.1/lua-5.1.5.json b/subprojects/shared-modules/lua5.1/lua-5.1.5.json new file mode 100644 index 00000000..896cadb9 --- /dev/null +++ b/subprojects/shared-modules/lua5.1/lua-5.1.5.json @@ -0,0 +1,38 @@ +{ + "name": "lua-5.1", + "buildsystem": "simple", + "build-commands": [ + "make -j $FLATPAK_BUILDER_N_JOBS CFLAGS=\"$CFLAGS -fPIC -DLUA_USE_LINUX\" linux", + "make INSTALL_TOP=$FLATPAK_DEST TO_LIB='liblua.a liblua.so.5.1.5' install", + "ln -sf liblua.so.5.1.5 $FLATPAK_DEST/lib/liblua.so", + "ln -sf liblua.so.5.1.5 $FLATPAK_DEST/lib/liblua.so.5.1", + "install -Dm0644 etc/lua.pc $FLATPAK_DEST/lib/pkgconfig/lua.pc", + "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua51.pc", + "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua5.1.pc", + "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua-5.1.pc" + ], + "sources": [ + { + "type": "archive", + "url": "https://www.lua.org/ftp/lua-5.1.5.tar.gz", + "sha256": "2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333" + }, + { + "type": "patch", + "path": "lua-5.1.5-so.patch" + }, + { + "type": "shell", + "commands": [ + "sed -i \"s|/usr/local|$FLATPAK_DEST|\" etc/lua.pc src/luaconf.h" + ] + } + ], + "cleanup": [ + "*.a", + "/bin", + "/include", + "/lib/pkgconfig", + "/man" + ] +} diff --git a/subprojects/shared-modules/lua5.3/lua-5.3.5.json b/subprojects/shared-modules/lua5.3/lua-5.3.5.json new file mode 100644 index 00000000..c789fd65 --- /dev/null +++ b/subprojects/shared-modules/lua5.3/lua-5.3.5.json @@ -0,0 +1,46 @@ +{ + "name": "lua-5.3", + "buildsystem": "simple", + "build-commands": [ + "make -j $FLATPAK_BUILDER_N_JOBS CFLAGS=\"$CFLAGS -fPIC -DLUA_USE_LINUX\" linux", + "make TO_LIB=liblua.so.5.3.5 INSTALL_TOP=$FLATPAK_DEST install", + "ln -sf liblua.so.5.3.5 $FLATPAK_DEST/lib/liblua.so", + "ln -sf liblua.so.5.3.5 $FLATPAK_DEST/lib/liblua.so.5.3", + "make INSTALL_TOP=${FLATPAK_DEST} pc > lua.pc", + "cat lua.pc.in >> lua.pc", + "install -Dm644 lua.pc $FLATPAK_DEST/lib/pkgconfig/lua.pc", + "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua53.pc", + "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua5.3.pc", + "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua-5.3.pc" + ], + "sources": [ + { + "type": "archive", + "url": "https://www.lua.org/ftp/lua-5.3.5.tar.gz", + "sha256": "0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac" + }, + { + "type": "patch", + "path": "makefile-add-liblua.so-rule.patch" + }, + { + "type": "file", + "path": "lua.pc.in" + }, + { + "type": "shell", + "commands": [ + "sed -i \"s|/usr/local/|$FLATPAK_DEST/|;s|LUA_IDSIZE 60|LUA_IDSIZE 512|\" src/luaconf.h", + "# Lua 5.3.5 has wrong release version in its Makefile. Fix it.", + "sed 's/^R= \$V.4/R= \$V.5/' -i Makefile", + "sed -i '12 a\\\\n#define LUA_COMPAT_5_1\\n#define LUA_COMPAT_5_2' src/luaconf.h" + ] + } + ], + "cleanup": [ + "/bin", + "/include", + "/lib/pkgconfig", + "/share/man" + ] +} diff --git a/subprojects/shared-modules/lua5.3/lua.pc.in b/subprojects/shared-modules/lua5.3/lua.pc.in new file mode 100644 index 00000000..6698f8bc --- /dev/null +++ b/subprojects/shared-modules/lua5.3/lua.pc.in @@ -0,0 +1,8 @@ +exec_prefix=${prefix} + +Name: Lua +Description: An Extensible Extension Language +Version: ${version} +Requires: +Libs: -L${libdir} -llua -lm +Cflags: -I${includedir}
\ No newline at end of file diff --git a/subprojects/shared-modules/lua5.3/makefile-add-liblua.so-rule.patch b/subprojects/shared-modules/lua5.3/makefile-add-liblua.so-rule.patch new file mode 100644 index 00000000..f675d4d4 --- /dev/null +++ b/subprojects/shared-modules/lua5.3/makefile-add-liblua.so-rule.patch @@ -0,0 +1,47 @@ +diff --git a/Makefile b/Makefile +index 7fa91c8..dccf485 100644 +--- a/Makefile ++++ b/Makefile +@@ -52,7 +52,7 @@ R= $V.0 + all: $(PLAT) + + $(PLATS) clean: +- cd src && $(MAKE) $@ ++ cd src && $(MAKE) $@ V=$(V) R=$(R) + + test: dummy + src/lua -v +diff --git a/src/Makefile b/src/Makefile +index 2e7a412..fa5769f 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -29,6 +29,7 @@ MYOBJS= + PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris + + LUA_A= liblua.a ++LUA_SO= liblua.so + CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ + lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ + ltm.o lundump.o lvm.o lzio.o +@@ -43,7 +44,7 @@ LUAC_T= luac + LUAC_O= luac.o + + ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) + ALL_A= $(LUA_A) + + # Targets start here. +@@ -59,6 +60,12 @@ $(LUA_A): $(BASE_O) + $(AR) $@ $(BASE_O) + $(RANLIB) $@ + ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO) ++ ++ + $(LUA_T): $(LUA_O) $(LUA_A) + $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) +
\ No newline at end of file diff --git a/subprojects/shared-modules/lua5.4/lua-5.4.json b/subprojects/shared-modules/lua5.4/lua-5.4.json new file mode 100644 index 00000000..a164fb83 --- /dev/null +++ b/subprojects/shared-modules/lua5.4/lua-5.4.json @@ -0,0 +1,44 @@ +{ + "name": "lua-5.4", + "buildsystem": "simple", + "build-commands": [ + "make -j $FLATPAK_BUILDER_N_JOBS CFLAGS=\"$CFLAGS -fPIC -DLUA_USE_LINUX\" linux", + "make TO_LIB=liblua.so.5.4.4 INSTALL_TOP=$FLATPAK_DEST install", + "ln -sf liblua.so.5.4.4 $FLATPAK_DEST/lib/liblua.so", + "ln -sf liblua.so.5.4.4 $FLATPAK_DEST/lib/liblua.so.5.4", + "make INSTALL_TOP=${FLATPAK_DEST} pc > lua.pc", + "cat lua.pc.in >> lua.pc", + "install -Dm644 lua.pc $FLATPAK_DEST/lib/pkgconfig/lua.pc", + "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua54.pc", + "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua5.4.pc", + "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua-5.4.pc" + ], + "sources": [ + { + "type": "archive", + "url": "https://www.lua.org/ftp/lua-5.4.4.tar.gz", + "sha256": "164c7849653b80ae67bec4b7473b884bf5cc8d2dca05653475ec2ed27b9ebf61" + }, + { + "type": "patch", + "path": "makefile-add-liblua.so-rule.patch" + }, + { + "type": "file", + "path": "lua.pc.in" + }, + { + "type": "shell", + "commands": [ + "sed -i \"s|/usr/local/|$FLATPAK_DEST/|;s|LUA_IDSIZE 60|LUA_IDSIZE 512|\" src/luaconf.h", + "sed -i '12 a\\\\n#define LUA_COMPAT_5_1\\n#define LUA_COMPAT_5_2' src/luaconf.h" + ] + } + ], + "cleanup": [ + "/bin", + "/include", + "/lib/pkgconfig", + "/share/man" + ] +} diff --git a/subprojects/shared-modules/lua5.4/lua.pc.in b/subprojects/shared-modules/lua5.4/lua.pc.in new file mode 100644 index 00000000..6698f8bc --- /dev/null +++ b/subprojects/shared-modules/lua5.4/lua.pc.in @@ -0,0 +1,8 @@ +exec_prefix=${prefix} + +Name: Lua +Description: An Extensible Extension Language +Version: ${version} +Requires: +Libs: -L${libdir} -llua -lm +Cflags: -I${includedir}
\ No newline at end of file diff --git a/subprojects/shared-modules/lua5.4/makefile-add-liblua.so-rule.patch b/subprojects/shared-modules/lua5.4/makefile-add-liblua.so-rule.patch new file mode 100644 index 00000000..7452f106 --- /dev/null +++ b/subprojects/shared-modules/lua5.4/makefile-add-liblua.so-rule.patch @@ -0,0 +1,42 @@ +--- a/Makefile 2021-12-24 10:55:05.836294155 -0500 ++++ b/Makefile 2021-03-02 15:04:35.000000000 -0500 +@@ -52,7 +52,7 @@ + all: $(PLAT) + + $(PLATS) help test clean: +- @cd src && $(MAKE) $@ ++ @cd src && $(MAKE) $@ V=$(V) R=$(R) + + install: dummy + cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) +--- a/src/Makefile 2021-12-24 10:56:23.279935521 -0500 ++++ b/src/Makefile 2021-02-09 13:47:17.000000000 -0500 +@@ -32,6 +32,7 @@ + PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris + + LUA_A= liblua.a ++LUA_SO= liblua.so + CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o + LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o + BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) +@@ -44,7 +44,7 @@ + LUAC_O= luac.o + + ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) + ALL_A= $(LUA_A) + + # Targets start here. +@@ -60,6 +60,11 @@ + $(AR) $@ $(BASE_O) + $(RANLIB) $@ + ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO) ++ + $(LUA_T): $(LUA_O) $(LUA_A) + $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) + diff --git a/subprojects/shared-modules/mac/mac.json b/subprojects/shared-modules/mac/mac.json new file mode 100644 index 00000000..101b3dc2 --- /dev/null +++ b/subprojects/shared-modules/mac/mac.json @@ -0,0 +1,19 @@ +{ + "name": "libmac", + "subdir": "Source/Projects/NonWindows", + "no-autogen": true, + "make-install-args": [ + "prefix=/app" + ], + "cleanup": [ + "/include/MAC" + ], + "sources": [ + { + "type": "archive", + "url": "https://freac.org/patches/MAC_SDK_723.zip", + "sha256": "1d17d469dd2b4652e19cb91aa7cf76786fec999871a8f5729cd24064f989e9ae", + "strip-components": 0 + } + ] +} diff --git a/subprojects/shared-modules/physfs/physfs.json b/subprojects/shared-modules/physfs/physfs.json new file mode 100644 index 00000000..5cc06271 --- /dev/null +++ b/subprojects/shared-modules/physfs/physfs.json @@ -0,0 +1,18 @@ +{ + "name": "PhysicsFS", + "buildsystem": "cmake-ninja", + "config-opts": [ "-DPHYSFS_BUILD_TEST=OFF", "-DPHYSFS_BUILD_STATIC=OFF" ], + "cleanup": [ + "/include", + "/lib/pkgconfig", + "/bin" + ], + "sources": [ + { + "type": "archive", + "url": "https://icculus.org/physfs/downloads/physfs-3.0.2.tar.bz2", + "sha256": "304df76206d633df5360e738b138c94e82ccf086e50ba84f456d3f8432f9f863", + "size": 194888 + } + ] +} 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.6.json b/subprojects/shared-modules/pygame/pygame-1.9.6.json new file mode 100644 index 00000000..d3c84c77 --- /dev/null +++ b/subprojects/shared-modules/pygame/pygame-1.9.6.json @@ -0,0 +1,112 @@ +{ + "name": "pygame", + "sources": [ + { + "type": "archive", + "url": "https://files.pythonhosted.org/packages/0f/9c/78626be04e193c0624842090fe5555b3805c050dfaa81c8094d6441db2be/pygame-1.9.6.tar.gz", + "sha256": "301c6428c0880ecd4a9e3951b80e539c33863b6ff356a443db1758de4f297957" + } + ], + "buildsystem": "simple", + "build-commands": [ + "pip3 install --ignore-installed --no-deps --prefix=/app ." + ], + "build-options": { + "env": { + "PORTMIDI_INC_PORTTIME": "1", + "PYGAME_EXTRA_BASE": "/app" + }, + "arch": { + "aarch64": { + "env": { + "ORIGLIBDIRS": "/lib:/lib64:/lib/aarch64-linux-gnu" + } + }, + "arm": { + "env": { + "ORIGLIBDIRS": "/lib:/lib/arm-linux-gnueabihf" + } + }, + "i386": { + "env": { + "ORIGLIBDIRS": "/lib:/lib/i386-linux-gnu" + } + }, + "x86_64": { + "env": { + "ORIGLIBDIRS": "/lib:/lib64:/lib/x86_64-linux-gnu" + } + } + } + }, + "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://github.com/FluidSynth/fluidsynth/archive/refs/tags/v1.1.11.tar.gz", + "sha256": "da8878ff374d12392eecf87e96bad8711b8e76a154c25a571dd8614d1af80de8" + }, + { + "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/pygtk/pygtk.json b/subprojects/shared-modules/pygtk/pygtk.json new file mode 100644 index 00000000..5319e4b3 --- /dev/null +++ b/subprojects/shared-modules/pygtk/pygtk.json @@ -0,0 +1,107 @@ +{ + "name": "pygtk", + "config-opts": [ + "--disable-docs" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/pygtk/2.24/pygtk-2.24.0.tar.gz", + "sha256": "6e3e54fa6e65a69ac60bd58cb2e60a57f3346ac52efe995f3d10b6c38c972fd8" + }, + { + "type": "patch", + "path": "pygtk.patch" + }, + { + "type": "shell", + "commands": [ + "cp -p /usr/share/automake-*/config.{sub,guess} ." + ] + } + ], + "cleanup": [ + "/bin", + "/include/pygtk-2.0", + "*.la", + "/lib/pkgconfig", + "/lib/pygtk", + "/share/gtk-doc", + "/share/pygtk" + ], + "modules": [ + { + "name": "python2-pycairo", + "buildsystem": "meson", + "config-opts": [ + "-Dpython=python2" + ], + "cleanup": [ + "/include/pycairo", + "/lib/pkgconfig", + "/lib/python2.7/site-packages/cairo/include" + ], + "sources": [ + { + "type": "archive", + "url": "https://github.com/pygobject/pycairo/releases/download/v1.18.2/pycairo-1.18.2.tar.gz", + "sha256": "dcb853fd020729516e8828ad364084e752327d4cff8505d20b13504b32b16531" + } + ] + }, + { + "name": "pygobject", + "config-opts": [ + "--disable-glibtest" + ], + "cleanup": [ + "/bin", + "/include/pygtk-2.0", + "*.la", + "/lib/pkgconfig", + "/share/gtk-doc", + "/share/pygobject" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/pygobject/2.28/pygobject-2.28.7.tar.xz", + "sha256": "bb9d25a3442ca7511385a7c01b057492095c263784ef31231ffe589d83a96a5a" + } + ] + }, + { + "name": "libglade", + "rm-configure": true, + "cleanup": [ + "/bin", + "/include/libglade-2.0", + "*.a", + "*.la", + "/lib/pkgconfig", + "/share/gtk-doc", + "/share/xml/libglade" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/libglade/2.6/libglade-2.6.4.tar.gz", + "sha256": "c41d189b68457976069073e48d6c14c183075d8b1d8077cb6dfb8b7c5097add3" + }, + { + "type": "shell", + "commands": [ + "rm -f config.guess" + ] + }, + { + "type": "script", + "commands": [ + "autoreconf -fiv" + ], + "dest-filename": "autogen.sh" + } + ] + } + ] +} diff --git a/subprojects/shared-modules/pygtk/pygtk.patch b/subprojects/shared-modules/pygtk/pygtk.patch new file mode 100644 index 00000000..ba4141e3 --- /dev/null +++ b/subprojects/shared-modules/pygtk/pygtk.patch @@ -0,0 +1,39 @@ +From 877164b6b70780468a31d8211f29421b6f34b0c8 Mon Sep 17 00:00:00 2001 +From: Mathieu Bridon <bochecha@daitauha.fr> +Date: Thu, 24 Oct 2019 22:58:36 +0200 +Subject: [PATCH] Drop the PangoFont find_shaper virtual method + +This API has been removed from Pango 1.44.6, because it was completely +unused by anything. + +However, PyGTK tries to bind everything, even unused API. + +Removing this from PyGTK means we can build it against the latest Pango +again. +--- + pango.defs | 9 --------- + 1 file changed, 9 deletions(-) + +diff --git a/pango.defs b/pango.defs +index 2a79ecc..862667a 100644 +--- a/pango.defs ++++ b/pango.defs +@@ -1391,15 +1391,6 @@ + ) + ) + +-(define-virtual find_shaper +- (of-object "PangoFont") +- (return-type "PangoEngineShape*") +- (parameters +- '("PangoLanguage*" "lang") +- '("guint32" "ch") +- ) +-) +- + (define-virtual get_glyph_extents + (of-object "PangoFont") + (return-type "none") +-- +2.21.0 + diff --git a/subprojects/shared-modules/python2.7/python-2.7.json b/subprojects/shared-modules/python2.7/python-2.7.json new file mode 100644 index 00000000..afdef902 --- /dev/null +++ b/subprojects/shared-modules/python2.7/python-2.7.json @@ -0,0 +1,52 @@ +{ + "name": "python-2.7", + "sources": [ + { + "type": "archive", + "url": "https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz", + "sha256": "b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43" + } + ], + "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 $FLATPAK_DEST/lib/libpython2.7.so.1.0" + ], + "cleanup": [ + "/bin/2to3*", + "/bin/easy_install*", + "/bin/idle*", + "/bin/pydoc*", + "/bin/python*-config", + "/bin/pyvenv*", + "/include", + "/lib/pkgconfig", + "/lib/python*/config", + "/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*", + + /* Static library */ + "/lib/python2.7/config/libpython2.7.a" + ] +} diff --git a/subprojects/shared-modules/qt4/disable-sslv3.patch b/subprojects/shared-modules/qt4/disable-sslv3.patch new file mode 100644 index 00000000..5ebd9741 --- /dev/null +++ b/subprojects/shared-modules/qt4/disable-sslv3.patch @@ -0,0 +1,54 @@ +diff -u -r qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl.cpp +--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp 2015-05-07 16:14:44.000000000 +0200 ++++ qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl.cpp 2016-03-04 11:29:17.119300898 +0100 +@@ -267,7 +267,11 @@ + #endif + break; + case QSsl::SslV3: ++#ifndef OPENSSL_NO_SSL3 + ctx = q_SSL_CTX_new(client ? q_SSLv3_client_method() : q_SSLv3_server_method()); ++#else ++ ctx = 0; // SSL 3 not supported by the system, but chosen deliberately -> error ++#endif + break; + case QSsl::SecureProtocols: // SslV2 will be disabled below + case QSsl::TlsV1SslV3: // SslV2 will be disabled below +diff -u -r qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl_symbols.cpp +--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2015-05-07 16:14:44.000000000 +0200 ++++ qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl_symbols.cpp 2016-03-04 11:28:52.806050135 +0100 +@@ -228,13 +228,17 @@ + #ifndef OPENSSL_NO_SSL2 + DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return) + #endif ++#ifndef OPENSSL_NO_SSL3 + DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return) ++#endif + DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return) + DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return) + #ifndef OPENSSL_NO_SSL2 + DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return) + #endif ++#ifndef OPENSSL_NO_SSL3 + DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return) ++#endif + DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return) + DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return) + #else +@@ -822,13 +826,17 @@ + #ifndef OPENSSL_NO_SSL2 + RESOLVEFUNC(SSLv2_client_method) + #endif ++#ifndef OPENSSL_NO_SSL3 + RESOLVEFUNC(SSLv3_client_method) ++#endif + RESOLVEFUNC(SSLv23_client_method) + RESOLVEFUNC(TLSv1_client_method) + #ifndef OPENSSL_NO_SSL2 + RESOLVEFUNC(SSLv2_server_method) + #endif ++#ifndef OPENSSL_NO_SSL3 + RESOLVEFUNC(SSLv3_server_method) ++#endif + RESOLVEFUNC(SSLv23_server_method) + RESOLVEFUNC(TLSv1_server_method) + RESOLVEFUNC(X509_NAME_entry_count) diff --git a/subprojects/shared-modules/qt4/fixgcc11.patch b/subprojects/shared-modules/qt4/fixgcc11.patch new file mode 100644 index 00000000..b0fd3d1b --- /dev/null +++ b/subprojects/shared-modules/qt4/fixgcc11.patch @@ -0,0 +1,11 @@ +--- a/tools/linguist/linguist/messagemodel.cpp 2021-06-07 12:18:43.713434493 +0200 ++++ b/tools/linguist/linguist/messagemodel.cpp 2021-06-07 12:24:24.828016548 +0200 +@@ -183,7 +183,7 @@ + if (ContextItem *c = one->findContext(oc->context())) { + for (int j = 0; j < oc->messageCount(); ++j) { + MessageItem *m = oc->messageItem(j); +- if (c->findMessage(m->text(), m->comment()) >= 0) ++ if (c->findMessage(m->text(), m->comment())) + ++inBoth; + } + } diff --git a/subprojects/shared-modules/qt4/fixgcc9.patch b/subprojects/shared-modules/qt4/fixgcc9.patch new file mode 100644 index 00000000..6501a83c --- /dev/null +++ b/subprojects/shared-modules/qt4/fixgcc9.patch @@ -0,0 +1,31 @@ +--- qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h 2015-05-07 16:14:48.000000000 +0200 ++++ qt-everywhere-opensource-src-4.8.7-gcc9/src/corelib/global/qglobal.h 2020-05-28 16:24:45.160340385 +0200 +@@ -2482,22 +2482,22 @@ + + #endif /* Q_NO_TYPESAFE_FLAGS */ + +-#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && !defined(Q_CC_RVCT) ++#if (defined(Q_CC_GNU) && !defined(Q_CC_RVCT)) + /* make use of typeof-extension */ + template <typename T> + class QForeachContainer { + public: +- inline QForeachContainer(const T& t) : c(t), brk(0), i(c.begin()), e(c.end()) { } ++ inline QForeachContainer(const T& t) : c(t), i(c.begin()), e(c.end()), control(1) { } + const T c; +- int brk; + typename T::const_iterator i, e; ++ int control; + }; + + #define Q_FOREACH(variable, container) \ + for (QForeachContainer<__typeof__(container)> _container_(container); \ +- !_container_.brk && _container_.i != _container_.e; \ +- __extension__ ({ ++_container_.brk; ++_container_.i; })) \ +- for (variable = *_container_.i;; __extension__ ({--_container_.brk; break;})) ++ _container_.control && _container_.i != _container_.e; \ ++ ++_container_.i, _container_.control ^= 1) \ ++ for (variable = *_container_.i; _container_.control; _container_.control = 0) + + #else + 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..00cc5706 --- /dev/null +++ b/subprojects/shared-modules/qt4/qt4-4.8.7-minimal.json @@ -0,0 +1,118 @@ +{ + "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 -O2", + "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" + }, + { + "type": "patch", + "path": "disable-sslv3.patch" + }, + { + "type": "patch", + "path": "fixgcc9.patch" + }, + { + "type": "patch", + "path": "fixgcc11.patch" + }, + { + "type": "shell", + "commands": [ + "sed -i \"s|-O2|${CXXFLAGS}|\" mkspecs/common/{g++,gcc}-base.conf", + "sed -i \"/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g\" mkspecs/common/gcc-base-unix.conf", + "sed -i \"/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS}|g\" mkspecs/common/gcc-base.conf" + ] + }, + { + "type": "file", + "path": "qt4-openssl-1.1.patch" + }, + { + "type": "shell", + "commands": [ + "echo -e '#include<openssl/opensslv.h>\nint main(){return OPENSSL_VERSION_NUMBER>=0x010100000L?0:1;}' >has_openssl_1_1.c", + "gcc ${CFLAGS} has_openssl_1_1.c -o has_openssl_1_1", + "if ./has_openssl_1_1; then patch -p1 -i qt4-openssl-1.1.patch; fi" + ] + } + ], + "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/qpauseanimation.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/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/qsignaltransition.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/concurrent/qthreadpool.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 ../../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/qpauseanimation.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/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/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/qsignaltransition.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/concurrent/qthreadpool.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 ../../include/QtCore/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 ../../include/QtCore/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 ../../include/QtCore/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/QtCore/QScopedPointerArrayDeleter ../../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/QMutableStringListIterator ../../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/QXmlStreamEntityDeclarations ../../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/QFutureIterator ../../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/QtCore/QIODevice ../../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 ../../include/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/qanimationgroup_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/statemachine/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 ../corelib/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/qt4/qt4-openssl-1.1.patch b/subprojects/shared-modules/qt4/qt4-openssl-1.1.patch new file mode 100644 index 00000000..87baef87 --- /dev/null +++ b/subprojects/shared-modules/qt4/qt4-openssl-1.1.patch @@ -0,0 +1,409 @@ +Description: Compile with openssl-1.1.0 + * Most changes are related to openssl structures are now opaque. + * The network/ssl threading setup has been disabled because the + old openssl threading model has been removed and is apparently + no longer needed. + * A number of new functions had to be imported (see changes to + src/network/ssl/qsslsocket_openssl_symbols.cpp) +Author: Gert Wollny <gw.fossdev@gmail.com> +Last-Update: 2016-06-28 +Bug-Debian: http://bugs.debian.org/828522 + +--- a/src/network/ssl/qsslcertificate.cpp ++++ b/src/network/ssl/qsslcertificate.cpp +@@ -259,10 +259,10 @@ + QByteArray QSslCertificate::version() const + { + QMutexLocker lock(QMutexPool::globalInstanceGet(d.data())); +- if (d->versionString.isEmpty() && d->x509) ++ if (d->versionString.isEmpty() && d->x509) { + d->versionString = +- QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1); +- ++ QByteArray::number(qlonglong(q_X509_get_version(d->x509)) + 1); ++ } + return d->versionString; + } + +@@ -276,7 +276,7 @@ + { + QMutexLocker lock(QMutexPool::globalInstanceGet(d.data())); + if (d->serialNumberString.isEmpty() && d->x509) { +- ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber; ++ ASN1_INTEGER *serialNumber = q_X509_get_serialNumber(d->x509); + // if we cannot convert to a long, just output the hexadecimal number + if (serialNumber->length > 4) { + QByteArray hexString; +@@ -489,24 +489,33 @@ + QSslKey key; + + key.d->type = QSsl::PublicKey; ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + X509_PUBKEY *xkey = d->x509->cert_info->key; ++#else ++ X509_PUBKEY *xkey = q_X509_get_X509_PUBKEY(d->x509); ++#endif + EVP_PKEY *pkey = q_X509_PUBKEY_get(xkey); + Q_ASSERT(pkey); + +- if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) { ++ int key_id; ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ key_id = q_EVP_PKEY_type(pkey->type); ++#else ++ key_id = q_EVP_PKEY_base_id(pkey); ++#endif ++ if (key_id == EVP_PKEY_RSA) { + key.d->rsa = q_EVP_PKEY_get1_RSA(pkey); + key.d->algorithm = QSsl::Rsa; + key.d->isNull = false; +- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) { ++ } else if (key_id == EVP_PKEY_DSA) { + key.d->dsa = q_EVP_PKEY_get1_DSA(pkey); + key.d->algorithm = QSsl::Dsa; + key.d->isNull = false; +- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) { ++ } else if (key_id == EVP_PKEY_DH) { + // DH unsupported + } else { + // error? + } +- + q_EVP_PKEY_free(pkey); + return key; + } +--- a/src/network/ssl/qsslkey.cpp ++++ b/src/network/ssl/qsslkey.cpp +@@ -321,8 +321,19 @@ + { + if (d->isNull) + return -1; ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + return (d->algorithm == QSsl::Rsa) + ? q_BN_num_bits(d->rsa->n) : q_BN_num_bits(d->dsa->p); ++#else ++ if (d->algorithm == QSsl::Rsa) { ++ return q_RSA_bits(d->rsa); ++ }else{ ++ BIGNUM *p = NULL; ++ q_DSA_get0_pqg(d->dsa, &p, NULL, NULL); ++ return q_BN_num_bits(p); ++ } ++#endif ++ + } + + /*! +--- a/src/network/ssl/qsslsocket_openssl.cpp ++++ b/src/network/ssl/qsslsocket_openssl.cpp +@@ -93,6 +93,7 @@ + bool QSslSocketPrivate::s_loadedCiphersAndCerts = false; + bool QSslSocketPrivate::s_loadRootCertsOnDemand = false; + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + /* \internal + + From OpenSSL's thread(3) manual page: +@@ -174,6 +175,8 @@ + } + } // extern "C" + ++#endif //OPENSSL_VERSION_NUMBER >= 0x10100000L ++ + QSslSocketBackendPrivate::QSslSocketBackendPrivate() + : ssl(0), + ctx(0), +@@ -222,9 +225,12 @@ + ciph.d->encryptionMethod = descriptionList.at(4).mid(4); + ciph.d->exportable = (descriptionList.size() > 6 && descriptionList.at(6) == QLatin1String("export")); + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + ciph.d->bits = cipher->strength_bits; + ciph.d->supportedBits = cipher->alg_bits; +- ++#else ++ ciph.d->bits = q_SSL_CIPHER_get_bits(cipher, &ciph.d->supportedBits); ++#endif + } + return ciph; + } +@@ -367,7 +373,7 @@ + // + // See also: QSslContext::fromConfiguration() + if (caCertificate.expiryDate() >= QDateTime::currentDateTime()) { +- q_X509_STORE_add_cert(ctx->cert_store, (X509 *)caCertificate.handle()); ++ q_X509_STORE_add_cert(q_SSL_CTX_get_cert_store(ctx), (X509 *)caCertificate.handle()); + } + } + +@@ -504,8 +510,10 @@ + */ + void QSslSocketPrivate::deinitialize() + { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + q_CRYPTO_set_id_callback(0); + q_CRYPTO_set_locking_callback(0); ++#endif + } + + /*! +@@ -526,13 +534,17 @@ + return false; + + // Check if the library itself needs to be initialized. ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + QMutexLocker locker(openssl_locks()->initLock()); ++#endif + if (!s_libraryLoaded) { + s_libraryLoaded = true; + + // Initialize OpenSSL. ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + q_CRYPTO_set_id_callback(id_function); + q_CRYPTO_set_locking_callback(locking_function); ++#endif + if (q_SSL_library_init() != 1) + return false; + q_SSL_load_error_strings(); +@@ -571,7 +583,9 @@ + + void QSslSocketPrivate::ensureCiphersAndCertsLoaded() + { +- QMutexLocker locker(openssl_locks()->initLock()); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ QMutexLocker locker(openssl_locks()->initLock()); ++#endif + if (s_loadedCiphersAndCerts) + return; + s_loadedCiphersAndCerts = true; +@@ -663,13 +677,18 @@ + STACK_OF(SSL_CIPHER) *supportedCiphers = q_SSL_get_ciphers(mySsl); + for (int i = 0; i < q_sk_SSL_CIPHER_num(supportedCiphers); ++i) { + if (SSL_CIPHER *cipher = q_sk_SSL_CIPHER_value(supportedCiphers, i)) { +- if (cipher->valid) { ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ if (cipher->valid) { ++#endif + QSslCipher ciph = QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(cipher); + if (!ciph.isNull()) { + if (!ciph.name().toLower().startsWith(QLatin1String("adh"))) + ciphers << ciph; + } ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + } ++#endif + } + } + +--- a/src/network/ssl/qsslsocket_openssl_symbols_p.h ++++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h +@@ -399,7 +399,25 @@ + PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\ + bp,(char *)x,enc,kstr,klen,cb,u) + #endif ++ ++X509_STORE * q_SSL_CTX_get_cert_store(const SSL_CTX *ctx); ++ASN1_INTEGER * q_X509_get_serialNumber(X509 *x); ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + #define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL) ++#define q_X509_get_version(x) X509_get_version(x) ++#else ++int q_EVP_PKEY_id(const EVP_PKEY *pkey); ++int q_EVP_PKEY_base_id(const EVP_PKEY *pkey); ++int q_SSL_CIPHER_get_bits(const SSL_CIPHER *cipher, int *alg_bits); ++long q_SSL_CTX_set_options(SSL_CTX *ctx, long options); ++long q_X509_get_version(X509 *x); ++X509_PUBKEY * q_X509_get_X509_PUBKEY(X509 *x); ++int q_RSA_bits(const RSA *rsa); ++int q_DSA_security_bits(const DSA *dsa); ++void q_DSA_get0_pqg(const DSA *d, BIGNUM **p, BIGNUM **q, BIGNUM **g); ++#endif ++ + #define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st) + #define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i) + #define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num(GENERAL_NAME, (st)) +@@ -410,8 +428,15 @@ + #define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i)) + #define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \ + q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509) ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + #define q_X509_get_notAfter(x) X509_get_notAfter(x) + #define q_X509_get_notBefore(x) X509_get_notBefore(x) ++#else ++ASN1_TIME *q_X509_get_notAfter(X509 *x); ++ASN1_TIME *q_X509_get_notBefore(X509 *x); ++#endif ++ + #define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\ + (char *)(rsa)) + #define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ +--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp ++++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp +@@ -290,6 +290,22 @@ + DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG) + DEFINEFUNC3(int, SSL_CTX_load_verify_locations, SSL_CTX *ctx, ctx, const char *CAfile, CAfile, const char *CApath, CApath, return 0, return) + DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return) ++DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *ctx, ctx, return 0, return) ++ ++DEFINEFUNC(ASN1_INTEGER *, X509_get_serialNumber, X509 *x, x, return 0, return) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++DEFINEFUNC(int, EVP_PKEY_id, const EVP_PKEY *pkey, pkey, return 0, return) ++DEFINEFUNC(int, EVP_PKEY_base_id, const EVP_PKEY *pkey, pkey, return 0, return) ++DEFINEFUNC2(int, SSL_CIPHER_get_bits, const SSL_CIPHER *cipher, cipher, int *alg_bits, alg_bits, return 0, return) ++DEFINEFUNC2(long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, long options, options, return 0, return) ++DEFINEFUNC(long, X509_get_version, X509 *x, x, return 0, return) ++DEFINEFUNC(X509_PUBKEY *, X509_get_X509_PUBKEY, X509 *x, x, return 0, return) ++DEFINEFUNC(int, RSA_bits, const RSA *rsa, rsa, return 0, return) ++DEFINEFUNC(int, DSA_security_bits, const DSA *dsa, dsa, return 0, return) ++DEFINEFUNC(ASN1_TIME *, X509_get_notAfter, X509 *x, x, return 0, return) ++DEFINEFUNC(ASN1_TIME *, X509_get_notBefore, X509 *x, x, return 0, return) ++DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, BIGNUM **p, p, BIGNUM **q, q, BIGNUM **g, g, return, return) ++#endif + + #ifdef Q_OS_SYMBIAN + #define RESOLVEFUNC(func, ordinal, lib) \ +@@ -801,6 +817,7 @@ + RESOLVEFUNC(SSL_CTX_use_PrivateKey) + RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey) + RESOLVEFUNC(SSL_CTX_use_PrivateKey_file) ++ RESOLVEFUNC(SSL_CTX_get_cert_store) + RESOLVEFUNC(SSL_accept) + RESOLVEFUNC(SSL_clear) + RESOLVEFUNC(SSL_connect) +@@ -823,6 +840,23 @@ + RESOLVEFUNC(SSL_set_connect_state) + RESOLVEFUNC(SSL_shutdown) + RESOLVEFUNC(SSL_write) ++ ++ RESOLVEFUNC(X509_get_serialNumber) ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++ RESOLVEFUNC(SSL_CTX_ctrl) ++ RESOLVEFUNC(EVP_PKEY_id) ++ RESOLVEFUNC(EVP_PKEY_base_id) ++ RESOLVEFUNC(SSL_CIPHER_get_bits) ++ RESOLVEFUNC(SSL_CTX_set_options) ++ RESOLVEFUNC(X509_get_version) ++ RESOLVEFUNC(X509_get_X509_PUBKEY) ++ RESOLVEFUNC(RSA_bits) ++ RESOLVEFUNC(DSA_security_bits) ++ RESOLVEFUNC(DSA_get0_pqg) ++ RESOLVEFUNC(X509_get_notAfter) ++ RESOLVEFUNC(X509_get_notBefore) ++#endif ++ + #ifndef OPENSSL_NO_SSL2 + RESOLVEFUNC(SSLv2_client_method) + #endif +--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp.0131~ 2017-03-15 02:22:37.053244125 +0100 ++++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp 2017-03-15 02:22:37.055244057 +0100 +@@ -328,7 +328,7 @@ int QSslKey::length() const + if (d->algorithm == QSsl::Rsa) { + return q_RSA_bits(d->rsa); + }else{ +- BIGNUM *p = NULL; ++ const BIGNUM *p = NULL; + q_DSA_get0_pqg(d->dsa, &p, NULL, NULL); + return q_BN_num_bits(p); + } +--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp.0131~ 2017-03-15 02:22:37.054244091 +0100 ++++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2017-03-15 02:29:41.155236836 +0100 +@@ -111,16 +111,16 @@ DEFINEFUNC(int, ASN1_STRING_length, ASN1 + DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return); + DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return) + DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return) +-DEFINEFUNC(BIO *, BIO_new, BIO_METHOD *a, a, return 0, return) ++DEFINEFUNC(BIO *, BIO_new, const BIO_METHOD *a, a, return 0, return) + DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return 0, return) + DEFINEFUNC3(int, BIO_read, BIO *a, a, void *b, b, int c, c, return -1, return) +-DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return) ++DEFINEFUNC(const BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return) + DEFINEFUNC3(int, BIO_write, BIO *a, a, const void *b, b, int c, c, return -1, return) + DEFINEFUNC(int, BN_num_bits, const BIGNUM *a, a, return 0, return) + DEFINEFUNC(int, CRYPTO_num_locks, DUMMYARG, DUMMYARG, return 0, return) + DEFINEFUNC(void, CRYPTO_set_locking_callback, void (*a)(int, int, const char *, int), a, return, DUMMYARG) + DEFINEFUNC(void, CRYPTO_set_id_callback, unsigned long (*a)(), a, return, DUMMYARG) +-DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG) ++DEFINEFUNC(void, OPENSSL_free, void *a, a, return, DUMMYARG) + DEFINEFUNC(void, DSA_free, DSA *a, a, return, DUMMYARG) + #if OPENSSL_VERSION_NUMBER < 0x00908000L + DEFINEFUNC3(X509 *, d2i_X509, X509 **a, a, unsigned char **b, b, long c, c, return 0, return) +@@ -300,7 +300,7 @@ DEFINEFUNC(int, RSA_bits, const RSA *rs + DEFINEFUNC(int, DSA_security_bits, const DSA *dsa, dsa, return 0, return) + DEFINEFUNC(ASN1_TIME *, X509_get_notAfter, X509 *x, x, return 0, return) + DEFINEFUNC(ASN1_TIME *, X509_get_notBefore, X509 *x, x, return 0, return) +-DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, BIGNUM **p, p, BIGNUM **q, q, BIGNUM **g, g, return, return) ++DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, const BIGNUM **p, p, const BIGNUM **q, q, const BIGNUM **g, g, return, return) + #endif + + #ifdef Q_OS_SYMBIAN +--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h.0131~ 2017-03-15 02:22:37.054244091 +0100 ++++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h 2017-03-15 02:29:50.192986268 +0100 +@@ -59,6 +59,9 @@ + QT_BEGIN_NAMESPACE + + #define DUMMYARG ++#ifndef OPENSSL_NO_SSL2 ++#define OPENSSL_NO_SSL2 1 ++#endif + + #if !defined QT_LINKED_OPENSSL + // **************** Shared declarations ****************** +@@ -207,16 +210,16 @@ int q_ASN1_STRING_length(ASN1_STRING *a) + int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b); + long q_BIO_ctrl(BIO *a, int b, long c, void *d); + int q_BIO_free(BIO *a); +-BIO *q_BIO_new(BIO_METHOD *a); ++BIO *q_BIO_new(const BIO_METHOD *a); + BIO *q_BIO_new_mem_buf(void *a, int b); + int q_BIO_read(BIO *a, void *b, int c); +-BIO_METHOD *q_BIO_s_mem(); ++const BIO_METHOD *q_BIO_s_mem(); + int q_BIO_write(BIO *a, const void *b, int c); + int q_BN_num_bits(const BIGNUM *a); + int q_CRYPTO_num_locks(); + void q_CRYPTO_set_locking_callback(void (*a)(int, int, const char *, int)); + void q_CRYPTO_set_id_callback(unsigned long (*a)()); +-void q_CRYPTO_free(void *a); ++void q_OPENSSL_free(void *a); + void q_DSA_free(DSA *a); + #if OPENSSL_VERSION_NUMBER >= 0x00908000L + // 0.9.8 broke SC and BC by changing this function's signature. +@@ -326,7 +329,6 @@ void q_SSL_set_accept_state(SSL *a); + void q_SSL_set_connect_state(SSL *a); + int q_SSL_shutdown(SSL *a); + #if OPENSSL_VERSION_NUMBER >= 0x10000000L +-const SSL_METHOD *q_SSLv2_client_method(); + const SSL_METHOD *q_SSLv3_client_method(); + const SSL_METHOD *q_SSLv23_client_method(); + const SSL_METHOD *q_TLSv1_client_method(); +@@ -335,7 +337,6 @@ const SSL_METHOD *q_SSLv3_server_method( + const SSL_METHOD *q_SSLv23_server_method(); + const SSL_METHOD *q_TLSv1_server_method(); + #else +-SSL_METHOD *q_SSLv2_client_method(); + SSL_METHOD *q_SSLv3_client_method(); + SSL_METHOD *q_SSLv23_client_method(); + SSL_METHOD *q_TLSv1_client_method(); +@@ -415,7 +416,7 @@ long q_X509_get_version(X509 *x); + X509_PUBKEY * q_X509_get_X509_PUBKEY(X509 *x); + int q_RSA_bits(const RSA *rsa); + int q_DSA_security_bits(const DSA *dsa); +-void q_DSA_get0_pqg(const DSA *d, BIGNUM **p, BIGNUM **q, BIGNUM **g); ++void q_DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); + #endif + + #define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st) +--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp.omv~ 2017-03-15 02:27:18.143322736 +0100 ++++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp 2017-03-15 02:29:56.215819741 +0100 +@@ -696,7 +696,7 @@ + unsigned char *data = 0; + int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e)); + info[QString::fromUtf8(obj)] = QString::fromUtf8((char*)data, size); +- q_CRYPTO_free(data); ++ q_OPENSSL_free(data); + } + return info; + } 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..a931bac9 --- /dev/null +++ b/subprojects/shared-modules/smpeg/smpeg-0.4.5.json @@ -0,0 +1,45 @@ +{ + "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": "shell", + "commands": [ + "sed -i '/^## libtool.m4/,/^#####/d' acinclude.m4" + ] + }, + { + "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/vorbisgain/0001-temp_files.patch b/subprojects/shared-modules/vorbisgain/0001-temp_files.patch new file mode 100644 index 00000000..4e6d6706 --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/0001-temp_files.patch @@ -0,0 +1,75 @@ +Description: Apply patch to use temp files, which are dependent + on the file which is beeing processed, instead always using the same + filename, which can result to data loss in scenarios where two or more + vorbis processes are running parallel. +Author: Pavel N. Krivitsky <pavel@krivitsky.name> +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505164 +Forwarded: no +--- + vorbis.c | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +--- a/vorbis.c ++++ b/vorbis.c +@@ -56,7 +56,7 @@ + #define PROGRESS_FORMAT_SIZE 8 + #define MIN_FILENAME_SIZE 5 + #define MIN_MIDDLE_TRUNCATE_SIZE 20 +-#define TEMP_NAME "vorbisgain.tmpXXXXXX" ++#define TEMP_EXT ".vgain.tmpXXXXXX" + + + /** +@@ -684,11 +684,10 @@ + } + } + +- /* Make sure temp is in same folder as file. And yes, the malloc is larger +- * than necessary (and not always needed). Lets keep it simple though (at +- * the expense of a few bytes)... ++ /* Construct a temporary file name by appending TEMP_EXT to ++ * the name of the file being modified. + */ +- temp_name = malloc(strlen(filename) + sizeof(TEMP_NAME)); ++ temp_name = malloc(strlen(filename)*sizeof(char) + sizeof(TEMP_EXT)); + + if (temp_name == NULL) + { +@@ -697,7 +696,7 @@ + } + + strcpy(temp_name, filename); +- strcpy((char *) last_path(temp_name), TEMP_NAME); ++ strcat(temp_name, TEMP_EXT); + + #ifdef WIN32 + temp_name = _mktemp(temp_name); +@@ -779,6 +778,7 @@ + file_error(_("Note: Couldn't set mode for file '%s': "), filename); + } + ++#if 0 /* Disable for Debian, this surprises people and is not useful --liw */ + utime_buf.actime = stat_buf.st_atime; + utime_buf.modtime = stat_buf.st_mtime; + +@@ -786,6 +786,7 @@ + { + file_error(_("Note: Couldn't set time for file '%s': "), filename); + } ++#endif + + result = 0; + +@@ -817,10 +818,10 @@ + + if (delete_temp) + { +- if (remove(TEMP_NAME) != 0) ++ if (remove(temp_name) != 0) + { + file_error(_("Note: Couldn't remove temporary file '%s': "), +- TEMP_NAME); ++ temp_name); + } + } + diff --git a/subprojects/shared-modules/vorbisgain/0002-errno.patch b/subprojects/shared-modules/vorbisgain/0002-errno.patch new file mode 100644 index 00000000..b01f2ad8 --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/0002-errno.patch @@ -0,0 +1,33 @@ +Description: Zero errno before readdir call. +From: http://bugs.debian.org/375110 +Forwarded: no +--- + recurse.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/recurse.c ++++ b/recurse.c +@@ -408,6 +408,7 @@ + */ + static int read_dir(DIRECTORY *directory) + { ++ errno = 0; + directory->entry = readdir(directory->dir); + + if (directory->entry != NULL) +@@ -622,6 +623,7 @@ + /* Check for wildcards */ + settings->pattern = last_path(my_path); + ++#if 0 /* Disable for Debian, as it suprises people. --liw */ + if (contains_pattern(settings->pattern)) + { + /* Strip last part of path */ +@@ -637,6 +639,7 @@ + } + } + else ++#endif + { + settings->pattern = NULL; + } diff --git a/subprojects/shared-modules/vorbisgain/0003-manpage.patch b/subprojects/shared-modules/vorbisgain/0003-manpage.patch new file mode 100644 index 00000000..8aaeaf1c --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/0003-manpage.patch @@ -0,0 +1,248 @@ +Description: Man page says --silent, should be --skip +From: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=355783 +Forwarded: no +--- + vorbisgain.1 | 60 ++++++++++++----------------------------------------------- + 1 file changed, 13 insertions(+), 47 deletions(-) + +--- a/vorbisgain.1 ++++ b/vorbisgain.1 +@@ -2,10 +2,8 @@ + .\" groff -man -Tascii vorbisgain.1 + .\" + .TH vorbisgain 1 "2004 Jan 3" "" "VorbisGain" +- + .SH NAME + vorbisgain \- calculate the replay gain for Ogg Vorbis files +- + .SH SYNOPSIS + .B vorbisgain + [ +@@ -16,7 +14,6 @@ + .I album gain + ] + .I input_files \fR... +- + .SH DESCRIPTION + .B vorbisgain + calculates the ReplayGain values for the named Ogg Vorbis input files and +@@ -27,7 +24,6 @@ + uses a default target level of 89 dB, rather than the 83 dB recommended by the + ReplayGain standard, when calculating the gain to apply. (Some players include + a pre-amplification setting with which the target level can be changed.) +- + .PP + .B vorbisgain + input files must be Ogg Vorbis I files with 1 or 2 channels and a sample rate +@@ -35,21 +31,16 @@ + kHz. If an input file contains multiple streams (i.e., it is chained), the + streams must all have the same format, in terms of sampling frequency and + number of channels. +- + .PP + All streams in a chained file are processed, but the ReplayGain tags are + only written to (or removed from) the first stream. +- + .SH OPTIONS +- + .IP "-h, --help" + Show command help. +- + .IP "-a, --album" + Activates album mode, in which the album gain (sometimes called the audiophile + gain) is calculated in addition to the track gain (sometimes called the radio + gain). +- + .IP "-g n, --album-gain=n" + Sets the album gain value to use. Default is to calculate it, if + .I -a +@@ -59,38 +50,31 @@ + dB, specifying the + .B change + in volume that should be applied. +- + .IP "-c, --clean" + Remove any ReplayGain tags from the specified files. If a file does not + contain any ReplayGain tags, the file is not modified. +- + .IP "-C, --convert" + Convert old format ReplayGain tags to a new format (see section TAG FORMAT + below for details). If a file does not contain all ReplayGain tags that are + needed for a conversion, the file is not modified. The album peak tag is + only created if + .I -a +-is specified, and the album gain value is then checked for concistency. ++is specified, and the album gain value is then checked for consistency. + Otherwise any album gain is converted without any checks. +- + .IP "-d, --display-only" + Display the result only; do not write anything to disk. This applies to all + options. +- + .IP "-f, --fast" + Only calculate the gain for files that do not contain all replay gain tags + needed (the album gain and peak tags are only considered if + .I -a + has been specified). +- + .IP "-n, --no-progress" + Only display results, but don't show progress in percentages and times. This + can be useful if the output is piped into other programs. +- + .IP "-q, --quiet" + Do not display any output while processing. Only error and warning messages will + be printed. +- + .IP "-r, --recursive" + Enter directories (recursively) and search for files, if directories or file + patterns are specified. +@@ -98,65 +82,51 @@ + Only available if + .B vorbisgain + was configured with --enable-recursive. +- +-.IP "-s, --silent" +-Sliently skip any non-Vorbis files found. Vorbis files that can't be processed ++.IP "-s, --skip" ++Silently skip any non-Vorbis files found. Vorbis files that can't be processed + for some reason are skipped as well, though not silently. Default is to stop + when such files are encountered. +- + .IP "-v, --version" + Display the version of the program. +- + .SH EXAMPLES +- + Simplest version. Calculate the track gain and peak only. + .PP + .RS + vorbisgain somefile.ogg + .RE +- + .PP + Note that the following examples are only possible if + .B vorbisgain + was configured with --enable-recursive. +- + .PP + Calculate the album gain and peak, in addition to the track gain and peak, for + all .ogg files in the directory "music" (and all subdirectories). All files in + one directory are treated as belonging to the same album. Files that already + have ReplayGain tags are not re-calculated. Note the quotes, as they cause the + shell to not do any filename globbing: +- + .PP + .RS + vorbisgain -a -f -r "music/*.ogg" + .RE +- + .PP + Calculate the album gain. The files specified before the directory "album" + are treated as one album, the files in the directory "album" as another + album and the remaining files as a third album: +- + .PP + .RS + vorbisgain -a -r a.ogg b.ogg c.ogg album d.ogg e.ogg f.ogg + .RE +- + .PP + Remove all replaygain tags from a collection of oggs: +- + .PP + .RS + vorbisgain -c -r "music/*.ogg" + .RE +- + .SH TAG FORMAT +- + .B vorbisgain + creates tags like these (when in + .I -a + mode): +- + .PP + .RS + REPLAYGAIN_TRACK_GAIN=-7.03 dB +@@ -170,18 +140,15 @@ + .RS + REPLAYGAIN_ALBUM_PEAK=1.21822226 + .RE +- + .PP + Gain specifies how much the volume should be changed before playback, in dB. + Peak is the maximum sample value of the file before any gain has been + applied, where 1.0 means "full sample value" (32,767 when decoding to signed + 16 bit samples). +- + .PP + Earlier versions of + .B vorbisgain + (before 0.30) created the following tags: +- + .PP + .RS + RG_RADIO +@@ -192,7 +159,6 @@ + .RS + RG_AUDIOPHILE + .RE +- + .PP + When + .I -c +@@ -200,44 +166,44 @@ + REPLAYGAIN_TRACK_PEAK, RG_AUDIOPHILE to REPLAYGAIN_ALBUM_GAIN and + REPLAYGAIN_ALBUM_PEAK is calculated as the maximum of all RG_PEAK tags in + the album. +- + .SH AUTHORS +- + .TP + Program Code: + .br + Gian-Carlo Pascutto <gcp@sjeng.org> + .br + Magnus Holmgren <lear@algonet.se> +- + .TP + ReplayGain Analysis Code: + .br + Glen Sawyer <glensawyer@hotmail.com> + .br + Frank Klemm (http://www.uni-jena.de/~pfk/) +- + .TP + Man Page: + .br + Magnus Holmgren <lear@algonet.se> +- + .SH BUGS +- + None known. +- + .SH SEE ALSO +- + .TP + http://sjeng.org/vorbisgain.html + Home page for VorbisGain. The latest version, and a Windows executable, + can be found here. +- + .TP + http://www.replaygain.org/ + Contains detailed information about ReplayGain and how it is calculated. +- + .TP + http://www.hydrogenaudio.org/ + Discussion forum for audio compression and related issues, including Ogg + Vorbis and VorbisGain. ++.SH NOTE ++The version of vorbisgain packaged for Debian differs in two ways from ++the upstream version. First, it does not retain the modification time ++of the input file: if tags are changed in a file, the mtime will change. ++Second, it does not try to process wildcards in filenames. This makes ++it impossible to say "process all foo*.ogg in all subdirectories", but ++also avoids problems with filenames that actually contain wildcards. ++Without this change, "vorbisgain *.ogg" in a directory with a file that ++contains a question mark would result in that file being treated as ++being in a different album. diff --git a/subprojects/shared-modules/vorbisgain/0004-vorbisgain_mtime.patch b/subprojects/shared-modules/vorbisgain/0004-vorbisgain_mtime.patch new file mode 100644 index 00000000..0abd7ce1 --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/0004-vorbisgain_mtime.patch @@ -0,0 +1,183 @@ +Description: When a file's metadata is updated, the mtime is changed + to the current time. Whether this is correct or not is often a + religious issue (metadata-vs-data), but, generally, all other + tag-editing software choose to keep the timestamp. + . + Since the upstream fixed the issue, it is bad to ignore the fix + altogether. At the very least, there should be a command-line + option to follow the upstream and The Only Right(tm) behaviour. +Author: Adam Borowski <kilobyte@angband.pl> +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=445958 +--- + vorbis.c | 18 ++++++++++-------- + vorbis.h | 2 +- + vorbisgain.1 | 7 ++++++- + vorbisgain.c | 20 ++++++++++++++------ + vorbisgain.h | 1 + + 5 files changed, 32 insertions(+), 16 deletions(-) + +--- a/vorbis.c ++++ b/vorbis.c +@@ -557,7 +557,8 @@ + * message has been printed). + */ + int write_gains(const char *filename, float track_peak, float track_gain, +- float album_peak, float album_gain, int verbose, int remove_tags) ++ float album_peak, float album_gain, int verbose, int remove_tags, ++ SETTINGS* settings) + { + struct stat stat_buf; + struct utimbuf utime_buf; +@@ -778,15 +779,16 @@ + file_error(_("Note: Couldn't set mode for file '%s': "), filename); + } + +-#if 0 /* Disable for Debian, this surprises people and is not useful --liw */ +- utime_buf.actime = stat_buf.st_atime; +- utime_buf.modtime = stat_buf.st_mtime; +- +- if (utime(filename, &utime_buf) != 0) ++ if (!settings->trample_mtime) + { +- file_error(_("Note: Couldn't set time for file '%s': "), filename); ++ utime_buf.actime = stat_buf.st_atime; ++ utime_buf.modtime = stat_buf.st_mtime; ++ ++ if (utime(filename, &utime_buf) != 0) ++ { ++ file_error(_("Note: Couldn't set time for file '%s': "), filename); ++ } + } +-#endif + + result = 0; + +--- a/vorbisgain.1 ++++ b/vorbisgain.1 +@@ -72,6 +72,10 @@ + .IP "-n, --no-progress" + Only display results, but don't show progress in percentages and times. This + can be useful if the output is piped into other programs. ++.IP "-p, --preserve-mtime" ++Do not trample upon the timestamps of any files being worked on. This obeys ++the expected data-vs-metadata behaviour, but can confuse some naive ++archivers. + .IP "-q, --quiet" + Do not display any output while processing. Only error and warning messages will + be printed. +@@ -200,7 +204,8 @@ + .SH NOTE + The version of vorbisgain packaged for Debian differs in two ways from + the upstream version. First, it does not retain the modification time +-of the input file: if tags are changed in a file, the mtime will change. ++of the input file by default: if tags are changed in a file, the mtime will ++change; you can specify "-p" to get the normal behaviour. + Second, it does not try to process wildcards in filenames. This makes + it impossible to say "process all foo*.ogg in all subdirectories", but + also avoids problems with filenames that actually contain wildcards. +--- a/vorbisgain.c ++++ b/vorbisgain.c +@@ -235,7 +235,7 @@ + { + if (write_gains(file->filename, file->track_peak, + file->track_gain, album_peak, file->album_gain, +- !settings->quiet, 0) < 0) ++ !settings->quiet, 0, settings) < 0) + { + return -1; + } +@@ -288,7 +288,7 @@ + else + { + if (write_gains(file->filename, NO_PEAK, NO_GAIN, +- NO_PEAK, NO_GAIN, !settings->quiet, 1) < 0) ++ NO_PEAK, NO_GAIN, !settings->quiet, 1, settings) < 0) + { + return -1; + } +@@ -425,7 +425,8 @@ + if (!settings->album) + { + if (!settings->display_only && write_gains(file->filename, +- file->track_peak, file->track_gain, NO_PEAK, NO_GAIN, 0, 0) < 0) ++ file->track_peak, file->track_gain, NO_PEAK, NO_GAIN, 0, 0, ++ settings) < 0) + { + return -1; + } +@@ -466,7 +467,7 @@ + + if (write_gains(file->filename, file->track_peak, + file->track_gain, album_peak, album_gain, +- !settings->quiet, 0) < 0) ++ !settings->quiet, 0, settings) < 0) + { + return -1; + } +@@ -497,6 +498,7 @@ + fprintf(stderr, _(" -h, --help Print this help text\n")); + fprintf(stderr, _(" -n, --no-progress Don't show progress, just print results\n")); + fprintf(stderr, _(" -q, --quiet Don't print any output (except errors)\n")); ++ fprintf(stderr, _(" -p, --preserve-mtime Don't change the timestamps\n")); + #ifdef ENABLE_RECURSIVE + fprintf(stderr, _(" -r, --recursive Search for files recursivly, each folder as an album\n")); + #endif +@@ -522,6 +524,7 @@ + {"fast", 0, NULL, 'f'}, + {"help", 0, NULL, 'h'}, + {"no-progress", 0, NULL, 'n'}, ++ {"preserve-mtime",0,NULL, 'p'}, + {"quiet", 0, NULL, 'q'}, + #ifdef ENABLE_RECURSIVE + {"recursive", 0, NULL, 'r'}, +@@ -533,9 +536,9 @@ + + + #ifdef ENABLE_RECURSIVE +-#define ARG_STRING "acCdfg:hnqrst:v" ++#define ARG_STRING "acCdfg:hnpqrst:v" + #else +-#define ARG_STRING "acCdfg:hnqst:v" ++#define ARG_STRING "acCdfg:hnpqst:v" + #endif + + +@@ -549,6 +552,7 @@ + memset(&settings, 0, sizeof(settings)); + settings.first_file = 1; + settings.album_gain = NO_GAIN; ++ settings.trample_mtime = 1; + settings.show_progress = 1; + + #ifdef WIN32 +@@ -623,6 +627,10 @@ + settings.show_progress = 0; + break; + ++ case 'p': ++ settings.trample_mtime = 0; ++ break; ++ + case 'q': + settings.quiet = 1; + break; +--- a/vorbisgain.h ++++ b/vorbisgain.h +@@ -31,6 +31,7 @@ + int convert; /**< Convert old format tags to new format */ + int display_only; + int fast; /**< Skip files that already have all needed tags */ ++ int trample_mtime; + int quiet; + #ifdef ENABLE_RECURSIVE + int recursive; +--- a/vorbis.h ++++ b/vorbis.h +@@ -15,6 +15,6 @@ + SETTINGS *settings);
+ extern int write_gains(const char *filename, float track_peak,
+ float track_gain, float album_gain, float album_peak, int verbose,
+- int remove_tags);
++ int remove_tags, SETTINGS *settings);
+
+ #endif /* VG_VORBIS_H */
diff --git a/subprojects/shared-modules/vorbisgain/0005-double_fclose.patch b/subprojects/shared-modules/vorbisgain/0005-double_fclose.patch new file mode 100644 index 00000000..2a183292 --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/0005-double_fclose.patch @@ -0,0 +1,21 @@ +Description: Don't call fclose() twice. +Author: Jonathan Neuschäfer <j.neuschaefer@gmx.net> +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=632947 +--- + vorbis.c | 5 ----- + 1 file changed, 5 deletions(-) + +--- a/vorbis.c ++++ b/vorbis.c +@@ -813,11 +813,6 @@ + fclose(infile); + } + +- if (infile != NULL) +- { +- fclose(infile); +- } +- + if (delete_temp) + { + if (remove(temp_name) != 0) diff --git a/subprojects/shared-modules/vorbisgain/0006-manpage_hyphens.patch b/subprojects/shared-modules/vorbisgain/0006-manpage_hyphens.patch new file mode 100644 index 00000000..cb518e69 --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/0006-manpage_hyphens.patch @@ -0,0 +1,56 @@ +Description: Resolved hyphen-used-as-minus-sign lintian complaints. +Forwarded: no +--- a/vorbisgain.1 ++++ b/vorbisgain.1 +@@ -85,7 +85,7 @@ + .I Note: + Only available if + .B vorbisgain +-was configured with --enable-recursive. ++was configured with \-\-enable\-recursive. + .IP "-s, --skip" + Silently skip any non-Vorbis files found. Vorbis files that can't be processed + for some reason are skipped as well, though not silently. Default is to stop +@@ -101,7 +101,7 @@ + .PP + Note that the following examples are only possible if + .B vorbisgain +-was configured with --enable-recursive. ++was configured with \-\-enable\-recursive. + .PP + Calculate the album gain and peak, in addition to the track gain and peak, for + all .ogg files in the directory "music" (and all subdirectories). All files in +@@ -110,7 +110,7 @@ + shell to not do any filename globbing: + .PP + .RS +-vorbisgain -a -f -r "music/*.ogg" ++vorbisgain \-a \-f \-r "music/*.ogg" + .RE + .PP + Calculate the album gain. The files specified before the directory "album" +@@ -118,13 +118,13 @@ + album and the remaining files as a third album: + .PP + .RS +-vorbisgain -a -r a.ogg b.ogg c.ogg album d.ogg e.ogg f.ogg ++vorbisgain \-a \-r a.ogg b.ogg c.ogg album d.ogg e.ogg f.ogg + .RE + .PP + Remove all replaygain tags from a collection of oggs: + .PP + .RS +-vorbisgain -c -r "music/*.ogg" ++vorbisgain \-c \-r "music/*.ogg" + .RE + .SH TAG FORMAT + .B vorbisgain +@@ -205,7 +205,7 @@ + The version of vorbisgain packaged for Debian differs in two ways from + the upstream version. First, it does not retain the modification time + of the input file by default: if tags are changed in a file, the mtime will +-change; you can specify "-p" to get the normal behaviour. ++change; you can specify "\-p" to get the normal behaviour. + Second, it does not try to process wildcards in filenames. This makes + it impossible to say "process all foo*.ogg in all subdirectories", but + also avoids problems with filenames that actually contain wildcards. diff --git a/subprojects/shared-modules/vorbisgain/0007-recursively_spelling.patch b/subprojects/shared-modules/vorbisgain/0007-recursively_spelling.patch new file mode 100644 index 00000000..4a6fbf9c --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/0007-recursively_spelling.patch @@ -0,0 +1,14 @@ +Description: "recursivly" should be spelled "recursively". Thanks Adam. +From: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=661999 +Forwarded: no +--- a/vorbisgain.c ++++ b/vorbisgain.c +@@ -500,7 +500,7 @@ + fprintf(stderr, _(" -q, --quiet Don't print any output (except errors)\n")); + fprintf(stderr, _(" -p, --preserve-mtime Don't change the timestamps\n")); + #ifdef ENABLE_RECURSIVE +- fprintf(stderr, _(" -r, --recursive Search for files recursivly, each folder as an album\n")); ++ fprintf(stderr, _(" -r, --recursive Search for files recursively, each folder as an album\n")); + #endif + fprintf(stderr, _(" -s, --skip Skip non-Vorbis or faulty files\n")); + fprintf(stderr, _(" -v, --version Display version number and exit\n\n")); diff --git a/subprojects/shared-modules/vorbisgain/0008-manpage_recursion_mistake.patch b/subprojects/shared-modules/vorbisgain/0008-manpage_recursion_mistake.patch new file mode 100644 index 00000000..81792532 --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/0008-manpage_recursion_mistake.patch @@ -0,0 +1,23 @@ +Description: The manpage shows methods that don't work. They have been replaced. +From: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=447402 +Forwarded: no +--- a/vorbisgain.1 ++++ b/vorbisgain.1 +@@ -110,7 +110,7 @@ + shell to not do any filename globbing: + .PP + .RS +-vorbisgain \-a \-f \-r "music/*.ogg" ++vorbisgain \-a \-f \-r music/ + .RE + .PP + Calculate the album gain. The files specified before the directory "album" +@@ -124,7 +124,7 @@ + Remove all replaygain tags from a collection of oggs: + .PP + .RS +-vorbisgain \-c \-r "music/*.ogg" ++vorbisgain \-c \-r music/ + .RE + .SH TAG FORMAT + .B vorbisgain diff --git a/subprojects/shared-modules/vorbisgain/0009-hardening.patch b/subprojects/shared-modules/vorbisgain/0009-hardening.patch new file mode 100644 index 00000000..67f50a03 --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/0009-hardening.patch @@ -0,0 +1,13 @@ +Description: Allow build with dh compat level 9 (debian build flags) +Forwarded: no +--- a/misc.c ++++ b/misc.c +@@ -56,7 +56,7 @@ + vfprintf(stderr, message, args);
+ va_end(args);
+
+- fprintf(stderr, strerror(err_num));
++ fputs(strerror(err_num), stderr);
+ fprintf(stderr, "\n");
+ }
+
diff --git a/subprojects/shared-modules/vorbisgain/0010-fclose.patch b/subprojects/shared-modules/vorbisgain/0010-fclose.patch new file mode 100644 index 00000000..12378987 --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/0010-fclose.patch @@ -0,0 +1,13 @@ +Solve "too many open files" by closing those which are not compatible with vorbisgain. Thanks to Marcel Rehberg for the patch. +--- a/vorbis.c ++++ b/vorbis.c +@@ -357,7 +357,8 @@ + { + vorbis_error(result, _("Couldn't process '%s': "), filename); + } +- ++ // make sure file is closed, since ov_open failed we are still responsible ++ fclose(file); + return -1; + } + diff --git a/subprojects/shared-modules/vorbisgain/README.md b/subprojects/shared-modules/vorbisgain/README.md new file mode 100644 index 00000000..42d83947 --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/README.md @@ -0,0 +1,23 @@ +Vorbisgain comes in two version; +- The main source: https://sjeng.org/ftp/vorbis/ +- The Debian version: http://deb.debian.org/debian/pool/main/v/vorbisgain/ + +The catch is... Debian has 10 patches: +- 0001-temp_files.patch +- 0002-errno.patch +- 0003-manpage.patch +- 0004-vorbisgain_mtime.patch +- 0005-double_fclose.patch +- 0006-manpage_hyphens.patch +- 0007-recursively_spelling.patch +- 0008-manpage_recursion_mistake.patch +- 0009-hardening.patch +- 0010-fclose.patch + +Of particular concern are 0005, 0009 and 0010 which might have implications for memory-leaks and string inputs. + +## Other points of concern + +https://pkgs.org/download/vorbisgain + +Lots of distributions don't include these patches as well, but I prefer to stick with the tried and tested package from Debian. diff --git a/subprojects/shared-modules/vorbisgain/vorbisgain_0.37-2.json b/subprojects/shared-modules/vorbisgain/vorbisgain_0.37-2.json new file mode 100644 index 00000000..0a9a40da --- /dev/null +++ b/subprojects/shared-modules/vorbisgain/vorbisgain_0.37-2.json @@ -0,0 +1,29 @@ +{ + "name": "vorbisgain", + "buildsystem": "autotools", + "cleanup": [ + "/man" + ], + "sources": [ + { + "type": "archive", + "url": "http://deb.debian.org/debian/pool/main/v/vorbisgain/vorbisgain_0.37.orig.tar.gz", + "sha256": "dd6db051cad972bcac25d47b4a9e40e217bb548a1f16328eddbb4e66613530ec" + }, + { + "type": "patch", + "paths": [ + "0001-temp_files.patch", + "0002-errno.patch", + "0003-manpage.patch", + "0004-vorbisgain_mtime.patch", + "0005-double_fclose.patch", + "0006-manpage_hyphens.patch", + "0007-recursively_spelling.patch", + "0008-manpage_recursion_mistake.patch", + "0009-hardening.patch", + "0010-fclose.patch" + ] + } + ] +} |