diff --git a/packages/addons/addon-depends/atk/package.mk b/packages/addons/addon-depends/atk/package.mk new file mode 100644 index 0000000000..ed8bf1274c --- /dev/null +++ b/packages/addons/addon-depends/atk/package.mk @@ -0,0 +1,42 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="atk" +PKG_VERSION="2.20.0" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://library.gnome.org/devel/atk/" +PKG_URL="http://ftp.gnome.org/pub/gnome/sources/$PKG_NAME/2.20/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain glib" +PKG_PRIORITY="optional" +PKG_SECTION="accessibility" +PKG_SHORTDESC="ATK - Accessibility Toolkit" +PKG_LONGDESC="ATK provides the set of accessibility interfaces that are implemented by other toolkits and applications. Using the ATK interfaces, accessibility tools have full access to view and control running applications." +PKG_IS_ADDON="no" + +PKG_AUTORECONF="yes" + +PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared \ + --disable-rebuilds --disable-glibtest" + +pre_configure_target() { + export CFLAGS="$CFLAGS -fPIC" +} diff --git a/packages/addons/addon-depends/atk/patches/atk-meh.patch b/packages/addons/addon-depends/atk/patches/atk-meh.patch new file mode 100644 index 0000000000..1fa31a93d9 --- /dev/null +++ b/packages/addons/addon-depends/atk/patches/atk-meh.patch @@ -0,0 +1,347 @@ +diff -Naur atk-2.20.0/atk/atkobject.c atk-2.20.0.patch/atk/atkobject.c +--- atk-2.20.0/atk/atkobject.c 2016-02-15 12:29:12.000000000 +0100 ++++ atk-2.20.0.patch/atk/atkobject.c 2016-03-26 01:10:01.058238623 +0100 +@@ -26,7 +26,6 @@ + #include + + #include "atk.h" +-#include "atkmarshal.h" + #include "atkprivate.h" + + /** +@@ -610,27 +609,6 @@ + G_TYPE_POINTER); + + /** +- * AtkObject::state-change: +- * @atkobject: the object which received the signal. +- * @arg1: The name of the state which has changed +- * @arg2: A boolean which indicates whether the state has been set or unset. +- * +- * The "state-change" signal is emitted when an object's state +- * changes. The detail value identifies the state type which has +- * changed. +- */ +- atk_object_signals[STATE_CHANGE] = +- g_signal_new ("state_change", +- G_TYPE_FROM_CLASS (klass), +- G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, +- G_STRUCT_OFFSET (AtkObjectClass, state_change), +- (GSignalAccumulator) NULL, NULL, +- atk_marshal_VOID__STRING_BOOLEAN, +- G_TYPE_NONE, 2, +- G_TYPE_STRING, +- G_TYPE_BOOLEAN); +- +- /** + * AtkObject::visible-data-changed: + * @atkobject: the object which received the signal. + * +diff -Naur atk-2.20.0/atk/atktable.c atk-2.20.0.patch/atk/atktable.c +--- atk-2.20.0/atk/atktable.c 2016-02-15 12:29:12.000000000 +0100 ++++ atk-2.20.0.patch/atk/atktable.c 2016-03-26 01:11:35.242363570 +0100 +@@ -20,7 +20,6 @@ + #include "config.h" + + #include "atktable.h" +-#include "atkmarshal.h" + + /** + * SECTION:atktable +@@ -102,78 +101,6 @@ + if (!initialized) + { + /** +- * AtkTable::row-inserted: +- * @atktable: the object which received the signal. +- * @arg1: The index of the first row inserted. +- * @arg2: The number of rows inserted. +- * +- * The "row-inserted" signal is emitted by an object which +- * implements the AtkTable interface when a row is inserted. +- */ +- atk_table_signals[ROW_INSERTED] = +- g_signal_new ("row_inserted", +- ATK_TYPE_TABLE, +- G_SIGNAL_RUN_LAST, +- G_STRUCT_OFFSET (AtkTableIface, row_inserted), +- (GSignalAccumulator) NULL, NULL, +- atk_marshal_VOID__INT_INT, +- G_TYPE_NONE, +- 2, G_TYPE_INT, G_TYPE_INT); +- /** +- * AtkTable::column-inserted: +- * @atktable: the object which received the signal. +- * @arg1: The index of the column inserted. +- * @arg2: The number of colums inserted. +- * +- * The "column-inserted" signal is emitted by an object which +- * implements the AtkTable interface when a column is inserted. +- */ +- atk_table_signals[COLUMN_INSERTED] = +- g_signal_new ("column_inserted", +- ATK_TYPE_TABLE, +- G_SIGNAL_RUN_LAST, +- G_STRUCT_OFFSET (AtkTableIface, column_inserted), +- (GSignalAccumulator) NULL, NULL, +- atk_marshal_VOID__INT_INT, +- G_TYPE_NONE, +- 2, G_TYPE_INT, G_TYPE_INT); +- /** +- * AtkTable::row-deleted: +- * @atktable: the object which received the signal. +- * @arg1: The index of the first row deleted. +- * @arg2: The number of rows deleted. +- * +- * The "row-deleted" signal is emitted by an object which +- * implements the AtkTable interface when a row is deleted. +- */ +- atk_table_signals[ROW_DELETED] = +- g_signal_new ("row_deleted", +- ATK_TYPE_TABLE, +- G_SIGNAL_RUN_LAST, +- G_STRUCT_OFFSET (AtkTableIface, row_deleted), +- (GSignalAccumulator) NULL, NULL, +- atk_marshal_VOID__INT_INT, +- G_TYPE_NONE, +- 2, G_TYPE_INT, G_TYPE_INT); +- /** +- * AtkTable::column-deleted: +- * @atktable: the object which received the signal. +- * @arg1: The index of the first column deleted. +- * @arg2: The number of columns deleted. +- * +- * The "column-deleted" signal is emitted by an object which +- * implements the AtkTable interface when a column is deleted. +- */ +- atk_table_signals[COLUMN_DELETED] = +- g_signal_new ("column_deleted", +- ATK_TYPE_TABLE, +- G_SIGNAL_RUN_LAST, +- G_STRUCT_OFFSET (AtkTableIface, column_deleted), +- (GSignalAccumulator) NULL, NULL, +- atk_marshal_VOID__INT_INT, +- G_TYPE_NONE, +- 2, G_TYPE_INT, G_TYPE_INT); +- /** + * AtkTable::row-reordered: + * @atktable: the object which received the signal. + * +diff -Naur atk-2.20.0/atk/atktext.c atk-2.20.0.patch/atk/atktext.c +--- atk-2.20.0/atk/atktext.c 2016-02-15 12:29:12.000000000 +0100 ++++ atk-2.20.0.patch/atk/atktext.c 2016-03-26 01:12:57.099480029 +0100 +@@ -20,7 +20,6 @@ + #include "config.h" + + #include "atk.h" +-#include "atkmarshal.h" + + #include + +@@ -190,75 +189,6 @@ + class->get_bounded_ranges = atk_text_real_get_bounded_ranges; + + /** +- * AtkText::text-changed: +- * @atktext: the object which received the signal. +- * @arg1: The position (character offset) of the insertion or deletion. +- * @arg2: The length (in characters) of text inserted or deleted. +- * +- * The "text-changed" signal is emitted when the text of the +- * object which implements the AtkText interface changes, This +- * signal will have a detail which is either "insert" or +- * "delete" which identifies whether the text change was an +- * insertion or a deletion. +- * +- * Deprecated: 2.9.4: Use #AtkObject::text-insert or +- * #AtkObject::text-remove instead. +- */ +- atk_text_signals[TEXT_CHANGED] = +- g_signal_new ("text_changed", +- ATK_TYPE_TEXT, +- G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, +- G_STRUCT_OFFSET (AtkTextIface, text_changed), +- (GSignalAccumulator) NULL, NULL, +- atk_marshal_VOID__INT_INT, +- G_TYPE_NONE, +- 2, G_TYPE_INT, G_TYPE_INT); +- +- /** +- * AtkText::text-insert: +- * @atktext: the object which received the signal. +- * @arg1: The position (character offset) of the insertion. +- * @arg2: The length (in characters) of text inserted. +- * @arg3: The new text inserted +- * +- * The "text-insert" signal is emitted when a new text is +- * inserted. If the signal was not triggered by the user +- * (e.g. typing or pasting text), the "system" detail should be +- * included. +- */ +- atk_text_signals[TEXT_INSERT] = +- g_signal_new ("text_insert", +- ATK_TYPE_TEXT, +- G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, +- 0, +- (GSignalAccumulator) NULL, NULL, +- atk_marshal_VOID__INT_INT_STRING, +- G_TYPE_NONE, +- 3, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING); +- +- /** +- * AtkText::text-remove: +- * @atktext: the object which received the signal. +- * @arg1: The position (character offset) of the removal. +- * @arg2: The length (in characters) of text removed. +- * @arg3: The old text removed +- * +- * The "text-remove" signal is emitted when a new text is +- * removed. If the signal was not triggered by the user +- * (e.g. typing or pasting text), the "system" detail should be +- * included. +- */ +- atk_text_signals[TEXT_REMOVE] = +- g_signal_new ("text_remove", +- ATK_TYPE_TEXT, +- G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, +- 0, +- (GSignalAccumulator) NULL, NULL, +- atk_marshal_VOID__INT_INT_STRING, +- G_TYPE_NONE, +- 3, G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING); +- +- /** + * AtkText::text-caret-moved: + * @atktext: the object which received the signal. + * @arg1: The new position of the text caret. +diff -Naur atk-2.20.0/atk/atkutil.c atk-2.20.0.patch/atk/atkutil.c +--- atk-2.20.0/atk/atkutil.c 2016-02-15 12:29:12.000000000 +0100 ++++ atk-2.20.0.patch/atk/atkutil.c 2016-03-26 01:13:04.481490538 +0100 +@@ -20,7 +20,6 @@ + #include "config.h" + + #include "atkutil.h" +-#include "atkmarshal.c" + + /** + * SECTION:atkutil +diff -Naur atk-2.20.0/atk/atkvalue.c atk-2.20.0.patch/atk/atkvalue.c +--- atk-2.20.0/atk/atkvalue.c 2016-02-15 12:29:12.000000000 +0100 ++++ atk-2.20.0.patch/atk/atkvalue.c 2016-03-26 01:18:03.268897883 +0100 +@@ -23,7 +23,6 @@ + #include + + #include "atkvalue.h" +-#include "atkmarshal.h" + #include "atk-enum-types.h" + #include "atkprivate.h" + +@@ -322,42 +321,6 @@ + atk_value_base_init (AtkValueIface *class) + { + static gboolean initialized = FALSE; +- if (!initialized) +- { +- /** +- * AtkValue::value-changed: +- * @atkvalue: the object on which the signal was emitted. +- * @value: the new value in a numerical form. +- * @text: human readable text alternative (also called +- * description) of this object. NULL if not available. +- * +- * The 'value-changed' signal is emitted when the current value +- * that represent the object changes. @value is the numerical +- * representation of this new value. @text is the human +- * readable text alternative of @value, and can be NULL if it is +- * not available. Note that if there is a textual description +- * associated with the new numeric value, that description +- * should be included regardless of whether or not it has also +- * changed. +- * +- * Example: a password meter whose value changes as the user +- * types their new password. Appropiate value text would be +- * "weak", "acceptable" and "strong". +- * +- * Since: 2.12 +- */ +- atk_value_signals[VALUE_CHANGED] = +- g_signal_new ("value_changed", +- ATK_TYPE_VALUE, +- G_SIGNAL_RUN_LAST, +- 0, +- (GSignalAccumulator) NULL, NULL, +- atk_marshal_VOID__DOUBLE_STRING, +- G_TYPE_NONE, +- 2, G_TYPE_DOUBLE, G_TYPE_STRING); +- +- initialized = TRUE; +- } + } + + /** +diff -Naur atk-2.20.0/atk/atkwindow.c atk-2.20.0.patch/atk/atkwindow.c +--- atk-2.20.0/atk/atkwindow.c 2016-02-15 12:29:12.000000000 +0100 ++++ atk-2.20.0.patch/atk/atkwindow.c 2016-03-26 01:13:13.448503294 +0100 +@@ -20,7 +20,6 @@ + #include "config.h" + + #include "atkwindow.h" +-#include "atkmarshal.h" + + /** + * SECTION:atkwindow +diff -Naur atk-2.20.0/atk/Makefile.am atk-2.20.0.patch/atk/Makefile.am +--- atk-2.20.0/atk/Makefile.am 2016-02-15 12:29:12.000000000 +0100 ++++ atk-2.20.0.patch/atk/Makefile.am 2016-03-26 01:08:29.075118340 +0100 +@@ -115,50 +115,7 @@ + + # ---------- Handle built sources ---------- + +-BUILT_SOURCES = atkmarshal.h atkmarshal.c atk-enum-types.h atk-enum-types.c +- +-atkmarshal.h: stamp-atkmarshal.h +- @true +-stamp-atkmarshal.h: @REBUILD@ atkmarshal.list +- $(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=atk_marshal $(srcdir)/atkmarshal.list --header >> xgen-gmh \ +- && (cmp -s xgen-gmh atkmarshal.h || cp xgen-gmh atkmarshal.h) \ +- && rm -f xgen-gmh xgen-gmh~ \ +- && echo timestamp > $(@F) +- +-atkmarshal.c: stamp-atkmarshal.c +- @true +-stamp-atkmarshal.c: @REBUILD@ atkmarshal.list +- $(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=atk_marshal $(srcdir)/atkmarshal.list --body >> xgen-gmc \ +- && (cmp -s xgen-gmc atkmarshal.c || cp xgen-gmc atkmarshal.c) \ +- && rm -f xgen-gmc xgen-gmc~ \ +- && echo timestamp > $(@F) +- +-atk-enum-types.h: s-enum-types-h +- @true +-s-enum-types-h: @REBUILD@ $(atk_headers) Makefile +- $(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) \ +- --fhead "#if defined(ATK_DISABLE_SINGLE_INCLUDES) && !defined (__ATK_H_INSIDE__) && !defined (ATK_COMPILATION)\n#error \"Only can be included directly.\"\n#endif\n\n#ifndef __ATK_ENUM_TYPES_H__\n#define __ATK_ENUM_TYPES_H__\n\n#include \n#include \n\nG_BEGIN_DECLS\n" \ +- --fprod "/* enumerations from \"@filename@\" */\n" \ +- --vhead "ATK_AVAILABLE_IN_ALL\nGType @enum_name@_get_type (void);\n#define ATK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ +- --ftail "G_END_DECLS\n\n#endif /* __ATK_ENUM_TYPES_H__ */" \ +- $(atk_headers) ) > tmp-atk-enum-types.h \ +- && (cmp -s tmp-atk-enum-types.h atk-enum-types.h || cp tmp-atk-enum-types.h atk-enum-types.h ) \ +- && rm -f tmp-atk-enum-types.h \ +- && echo timestamp > $(@F) +- +-atk-enum-types.c: s-enum-types-c +- @true +-s-enum-types-c: @REBUILD@ $(atk_headers) Makefile +- $(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) \ +- --fhead "#include \"config.h\"\n\n#include " \ +- --fprod "\n/* enumerations from \"@filename@\" */" \ +- --vhead "GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {" \ +- --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ +- --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ +- $(atk_headers) ) > tmp-atk-enum-types.c \ +- && (cmp -s tmp-atk-enum-types.c atk-enum-types.c || cp tmp-atk-enum-types.c atk-enum-types.c ) \ +- && rm -f tmp-atk-enum-types.c \ +- && echo timestamp > $(@F) ++BUILT_SOURCES = atk-enum-types.h atk-enum-types.c + + + if HAVE_INTROSPECTION diff --git a/packages/addons/addon-depends/gdk-pixbuf/config/gdk-pixbuf.loaders b/packages/addons/addon-depends/gdk-pixbuf/config/gdk-pixbuf.loaders new file mode 100644 index 0000000000..87a9bb58a6 --- /dev/null +++ b/packages/addons/addon-depends/gdk-pixbuf/config/gdk-pixbuf.loaders @@ -0,0 +1,132 @@ +# GdkPixbuf Image Loader Modules file +# Automatically generated file, do not edit +# Created by gdk-pixbuf-query-loaders from gdk-pixbuf-2.21.5 +# +# LoaderDir = /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders +# +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ani.so" +"ani" 4 "gdk-pixbuf" "The ANI image format" "LGPL" +"application/x-navi-animation" "" +"ani" "" +"RIFF ACON" " xxxx " 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-bmp.so" +"bmp" 5 "gdk-pixbuf" "The BMP image format" "LGPL" +"image/bmp" "image/x-bmp" "image/x-MS-bmp" "" +"bmp" "" +"BM" "" 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-gif.so" +"gif" 4 "gdk-pixbuf" "The GIF image format" "LGPL" +"image/gif" "" +"gif" "" +"GIF8" "" 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-icns.so" +"icns" 4 "gdk-pixbuf" "The ICNS image format" "GPL" +"image/x-icns" "" +"icns" "" +"icns" "" 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ico.so" +"ico" 5 "gdk-pixbuf" "The ICO image format" "LGPL" +"image/x-icon" "image/x-ico" "image/x-win-bitmap" "" +"ico" "cur" "" +" \001 " "zz znz" 100 +" \002 " "zz znz" 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jasper.so" +"jpeg2000" 4 "gdk-pixbuf" "The JPEG 2000 image format" "LGPL" +"image/jp2" "image/jpeg2000" "image/jpx" "" +"jp2" "jpc" "jpx" "j2k" "jpf" "" +" jP" "!!!! " 100 +"\377O\377Q" "" 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jpeg.so" +"jpeg" 5 "gdk-pixbuf" "The JPEG image format" "LGPL" +"image/jpeg" "" +"jpeg" "jpe" "jpg" "" +"\377\330" "" 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-pcx.so" +"pcx" 4 "gdk-pixbuf" "The PCX image format" "LGPL" +"image/x-pcx" "" +"pcx" "" +"\n \001" "" 100 +"\n\002\001" "" 100 +"\n\003\001" "" 100 +"\n\004\001" "" 100 +"\n\005\001" "" 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so" +"png" 5 "gdk-pixbuf" "The PNG image format" "LGPL" +"image/png" "" +"png" "" +"\211PNG\r\n\032\n" "" 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-pnm.so" +"pnm" 4 "gdk-pixbuf" "The PNM/PBM/PGM/PPM image format family" "LGPL" +"image/x-portable-anymap" "image/x-portable-bitmap" "image/x-portable-graymap" "image/x-portable-pixmap" "" +"pnm" "pbm" "pgm" "ppm" "" +"P1" "" 100 +"P2" "" 100 +"P3" "" 100 +"P4" "" 100 +"P5" "" 100 +"P6" "" 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-qtif.so" +"qtif" 4 "gdk-pixbuf" "The QTIF image format" "LGPL" +"image/x-quicktime" "image/qtif" "" +"qtif" "qif" "" +"abcdidsc" "xxxx " 100 +"abcdidat" "xxxx " 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ras.so" +"ras" 4 "gdk-pixbuf" "The Sun raster image format" "LGPL" +"image/x-cmu-raster" "image/x-sun-raster" "" +"ras" "" +"Y\246j\225" "" 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tga.so" +"tga" 4 "gdk-pixbuf" "The Targa image format" "LGPL" +"image/x-tga" "" +"tga" "targa" "" +" \001\001" "x " 100 +" \001\t" "x " 100 +" \002" "xz " 99 +" \003" "xz " 100 +" \n" "xz " 100 +" \013" "xz " 100 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tiff.so" +"tiff" 1 "gdk-pixbuf" "The TIFF image format" "LGPL" +"image/tiff" "" +"tiff" "tif" "" +"MM *" " z " 100 +"II* " " z" 100 +"II* \020 CR\002 " " z zzz z" 0 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-wbmp.so" +"wbmp" 4 "gdk-pixbuf" "The WBMP image format" "LGPL" +"image/vnd.wap.wbmp" "" +"wbmp" "" +" " "zz" 1 +" `" "z " 1 +" @" "z " 1 +" " "z " 1 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xbm.so" +"xbm" 4 "gdk-pixbuf" "The XBM image format" "LGPL" +"image/x-xbitmap" "" +"xbm" "" +"#define " "" 100 +"/*" "" 50 + +"/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so" +"xpm" 4 "gdk-pixbuf" "The XPM image format" "LGPL" +"image/x-xpixmap" "" +"xpm" "" +"/* XPM */" "" 100 + + diff --git a/packages/addons/addon-depends/gdk-pixbuf/package.mk b/packages/addons/addon-depends/gdk-pixbuf/package.mk new file mode 100644 index 0000000000..29734284a3 --- /dev/null +++ b/packages/addons/addon-depends/gdk-pixbuf/package.mk @@ -0,0 +1,44 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="gdk-pixbuf" +PKG_VERSION="2.34.0" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="OSS" +PKG_SITE="http://www.gtk.org/" +PKG_URL="http://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/2.34/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain glib libjpeg-turbo libpng jasper tiff" +PKG_PRIORITY="optional" +PKG_SECTION="x11/toolkits" +PKG_SHORTDESC="gdk-pixbuf: a GNOME library for image loading and manipulation." +PKG_LONGDESC="gdk-pixbuf (GdkPixbuf) is a GNOME library for image loading and manipulation. The GdkPixbuf documentation contains both the programmer's guide and the API reference." +PKG_IS_ADDON="no" +PKG_AUTORECONF="yes" + +PKG_CONFIGURE_OPTS_TARGET="gio_can_sniff=yes \ + --disable-gtk-doc \ + --disable-gtk-doc-html \ + --disable-gtk-doc-pdf \ + --disable-man \ + --with-libpng \ + --with-libjpeg \ + --with-libtiff \ + --with-libjasper" diff --git a/packages/addons/addon-depends/gdk-pixbuf/patches/gdk-pixbuf-01_meh.patch b/packages/addons/addon-depends/gdk-pixbuf/patches/gdk-pixbuf-01_meh.patch new file mode 100644 index 0000000000..d43ca77418 --- /dev/null +++ b/packages/addons/addon-depends/gdk-pixbuf/patches/gdk-pixbuf-01_meh.patch @@ -0,0 +1,58 @@ +diff --git a/gdk-pixbuf/Makefile.am b/gdk-pixbuf/Makefile.am +index 8319b49..8f27c5c 100644 +--- a/gdk-pixbuf/Makefile.am ++++ b/gdk-pixbuf/Makefile.am +@@ -617,51 +617,21 @@ MAINTAINERCLEANFILES = \ + # + # gdk-pixbuf-enum-types.h + # +-gdk-pixbuf-enum-types.h: s-enum-types-h ++gdk-pixbuf-enum-types.h: + @true + +-s-enum-types-h: @REBUILD@ $(gdk_pixbuf_headers) gdk-pixbuf-enum-types.h.template +- $(AM_V_GEN)( cd $(srcdir) && $(GLIB_MKENUMS) --template gdk-pixbuf-enum-types.h.template \ +- $(gdk_pixbuf_headers) ) > tmp-gdk-pixbuf-enum-types.h \ +- && (cmp -s tmp-gdk-pixbuf-enum-types.h gdk-pixbuf-enum-types.h || cp tmp-gdk-pixbuf-enum-types.h gdk-pixbuf-enum-types.h ) \ +- && rm -f tmp-gdk-pixbuf-enum-types.h \ +- && echo timestamp > $(@F) +- + CLEANFILES += tmp-gdk-pixbuf-enum-types.h + MAINTAINERCLEANFILES += s-enum-types-h + + # +-# gdk-pixbuf-enum-types.c +-# +-gdk-pixbuf-enum-types.c: @REBUILD@ $(gdk_pixbuf_headers) gdk-pixbuf-enum-types.c.template +- $(AM_V_GEN)(cd $(srcdir) && $(GLIB_MKENUMS) --template gdk-pixbuf-enum-types.c.template \ +- $(gdk_pixbuf_headers)) > gdk-pixbuf-enum-types.c +- +-# + # gdk-pixbuf-marshal.h + # +-gdk-pixbuf-marshal.h: @REBUILD@ stamp-gdk-pixbuf-marshal.h ++gdk-pixbuf-marshal.h: + @true + +-stamp-gdk-pixbuf-marshal.h: @REBUILD@ $(srcdir)/gdk-pixbuf-marshal.list +- $(AM_V_GEN)echo "#if !defined(GDK_PIXBUF_DISABLE_DEPRECATED) || defined(GDK_PIXBUF_COMPILATION)" > xgen-gmh \ +- && $(GLIB_GENMARSHAL) --prefix=_gdk_pixbuf_marshal $(srcdir)/gdk-pixbuf-marshal.list --header >> xgen-gmh \ +- && echo "#endif /* !GDK_PIXBUF_DISABLE_DEPRECATED || GDK_PIXBUF_COMPILATION */" >> xgen-gmh \ +- && (cmp -s xgen-gmh gdk-pixbuf-marshal.h || cp xgen-gmh gdk-pixbuf-marshal.h) \ +- && rm -f xgen-gmh xgen-gmh~ \ +- && echo timestamp > $(@F) +- + CLEANFILES += xgen-gmh + MAINTAINERCLEANFILES += stamp-gdk-pixbuf-marshal.h + +-# +-# gdk-pixbuf-marshal.c +-# +-$(srcdir)/gdk-pixbuf-marshal.c: @REBUILD@ $(srcdir)/gdk-pixbuf-marshal.list +- $(AM_V_GEN)(echo -e "#include \n" | $(GLIB_GENMARSHAL) --prefix=_gdk_pixbuf_marshal $(srcdir)/gdk-pixbuf-marshal.list --body ) >> xgen-gmc \ +- && cp xgen-gmc gdk-pixbuf-marshal.c \ +- && rm -f xgen-gmc xgen-gmc~ +- + CLEANFILES += xgen-gmc + + # if srcdir!=builddir, clean out maintainer-clean files from builddir diff --git a/packages/addons/addon-depends/gtk+/package.mk b/packages/addons/addon-depends/gtk+/package.mk new file mode 100644 index 0000000000..195c2c4c2b --- /dev/null +++ b/packages/addons/addon-depends/gtk+/package.mk @@ -0,0 +1,57 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="gtk+" +PKG_VERSION="2.24.30" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="OSS" +PKG_SITE="http://www.gtk.org/" +PKG_URL="http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain atk libX11 libXrandr libXi glib pango cairo gdk-pixbuf" +PKG_PRIORITY="optional" +PKG_SECTION="x11/toolkits" +PKG_SHORTDESC="gtk+: The Gimp ToolKit (GTK)" +PKG_LONGDESC="This is GTK+. GTK+, which stands for the Gimp ToolKit, is a library for creating graphical user interfaces for the X Window System. It is designed to be small, efficient, and flexible. GTK+ is written in C with a very object-oriented approach." +PKG_IS_ADDON="no" + +PKG_AUTORECONF="yes" + +PKG_CONFIGURE_OPTS_TARGET="ac_cv_path_GLIB_GENMARSHAL=$ROOT/$TOOLCHAIN/bin/glib-genmarshal \ + --disable-glibtest \ + --enable-modules \ + --enable-explicit-deps=no \ + --disable-debug \ + --enable-shm \ + --disable-cups \ + --disable-papi \ + --enable-xkb \ + --disable-xinerama \ + --disable-gtk-doc-html \ + --with-xinput" + +make_target() { + make SRC_SUBDIRS="gdk gtk modules" + $MAKEINSTALL SRC_SUBDIRS="gdk gtk modules" +} + +makeinstall_target() { + make install DESTDIR=$INSTALL SRC_SUBDIRS="gdk gtk modules" +} diff --git a/packages/addons/addon-depends/gtk+/patches/gtk+-01_no-gtk-doc.patch b/packages/addons/addon-depends/gtk+/patches/gtk+-01_no-gtk-doc.patch new file mode 100644 index 0000000000..b264b45dbc --- /dev/null +++ b/packages/addons/addon-depends/gtk+/patches/gtk+-01_no-gtk-doc.patch @@ -0,0 +1,64 @@ +From fca2ac06da064b133101f215efd5fbd738fb3ef9 Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +Date: Thu, 27 Mar 2014 14:26:27 +0200 +Subject: [PATCH] no gtk-doc + +--- + Makefile.am | 3 +-- + configure.ac | 12 ------------ + 2 files changed, 1 insertions(+), 14 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 8e3a2f1..35e94d2 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -2,7 +2,7 @@ + include $(top_srcdir)/Makefile.decl + + SRC_SUBDIRS = gdk gtk modules demos tests perf +-SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build ++SUBDIRS = po po-properties $(SRC_SUBDIRS) m4macros build + + # require automake 1.4 + AUTOMAKE_OPTIONS = 1.7 +@@ -136,7 +136,6 @@ MAINTAINERCLEANFILES = \ + $(srcdir)/mkinstalldirs \ + $(srcdir)/omf.make \ + $(srcdir)/xmldocs.make \ +- $(srcdir)/gtk-doc.make \ + $(srcdir)/ChangeLog \ + `find "$(srcdir)" -type f -name Makefile.in -print` + +diff --git a/configure.ac b/configure.ac +index 245a87f..f6ede8a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1594,8 +1594,6 @@ GOBJECT_INTROSPECTION_CHECK([0.9.3]) + # Checks for gtk-doc and docbook-tools + ################################################## + +-GTK_DOC_CHECK([1.11]) +- + AC_CHECK_PROG(DB2HTML, db2html, true, false) + AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML) + +@@ -1727,16 +1725,6 @@ demos/Makefile + demos/gtk-demo/Makefile + demos/gtk-demo/geninclude.pl + tests/Makefile +-docs/Makefile +-docs/reference/Makefile +-docs/reference/gdk/Makefile +-docs/reference/gdk/version.xml +-docs/reference/gtk/Makefile +-docs/reference/gtk/version.xml +-docs/reference/libgail-util/Makefile +-docs/faq/Makefile +-docs/tools/Makefile +-docs/tutorial/Makefile + build/Makefile + build/win32/Makefile + build/win32/vs9/Makefile +-- +1.7.2.5 + diff --git a/packages/addons/addon-depends/gtk+/patches/gtk+-02_meh-glib.patch b/packages/addons/addon-depends/gtk+/patches/gtk+-02_meh-glib.patch new file mode 100644 index 0000000000..7ea8a7f0c4 --- /dev/null +++ b/packages/addons/addon-depends/gtk+/patches/gtk+-02_meh-glib.patch @@ -0,0 +1,34 @@ +From 3cb23c7b05be36e130bd1930dad3382ce8c08c51 Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +Date: Sun, 26 Oct 2014 00:26:09 +0300 +Subject: [PATCH] meh glib + +--- + gdk/Makefile.am | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gdk/Makefile.am b/gdk/Makefile.am +index c880f6e..7661530 100644 +--- a/gdk/Makefile.am ++++ b/gdk/Makefile.am +@@ -307,7 +307,7 @@ lib_LTLIBRARIES = $(gdktargetlib) + + EXTRA_LTLIBRARIES = libgdk-x11-2.0.la libgdk-win32-2.0.la libgdk-quartz-2.0.la libgdk-directfb-2.0.la + +-MAINTAINERCLEANFILES = $(gdk_built_sources) stamp-gdkenumtypes.h ++MAINTAINERCLEANFILES = $(gdk_built_sources) + EXTRA_DIST += $(gdk_built_sources) + EXTRA_HEADERS = + +@@ -333,7 +333,7 @@ BUILT_SOURCES = \ + $(gdk_built_sources) \ + gdkconfig.h + +-gdkenumtypes.h: stamp-gdkenumtypes.h ++gdkenumtypes.h: + @true + stamp-gdkenumtypes.h: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.h.template + ( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.h.template \ +-- +1.7.2.5 + diff --git a/packages/addons/addon-depends/harfbuzz/package.mk b/packages/addons/addon-depends/harfbuzz/package.mk new file mode 100644 index 0000000000..ebc2a48cdc --- /dev/null +++ b/packages/addons/addon-depends/harfbuzz/package.mk @@ -0,0 +1,38 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="harfbuzz" +PKG_VERSION="1.2.5" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://www.freedesktop.org/wiki/Software/HarfBuzz" +PKG_URL="http://www.freedesktop.org/software/harfbuzz/release/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS_TARGET="toolchain glib freetype cairo" +PKG_PRIORITY="optional" +PKG_SECTION="x11/toolkits" +PKG_SHORTDESC="harfbuzz: an OpenType text shaping engine." +PKG_LONGDESC="HarfBuzz is an OpenType text shaping engine." +PKG_IS_ADDON="no" +PKG_AUTORECONF="yes" + +PKG_MAINTAINER="none" + +PKG_CONFIGURE_OPTS_TARGET="--with-icu=no" diff --git a/packages/addons/addon-depends/libXScrnSaver/package.mk b/packages/addons/addon-depends/libXScrnSaver/package.mk new file mode 100644 index 0000000000..e7ed9de9d3 --- /dev/null +++ b/packages/addons/addon-depends/libXScrnSaver/package.mk @@ -0,0 +1,35 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# OpenELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC. If not, see . +################################################################################ + +PKG_NAME="libXScrnSaver" +PKG_VERSION="1.2.2" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://xorg.freedesktop.org/" +PKG_URL="http://xorg.freedesktop.org/releases/individual/lib/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS_TARGET="toolchain scrnsaverproto" +PKG_PRIORITY="optional" +PKG_SECTION="x11/lib" +PKG_SHORTDESC="" +PKG_LONGDESC="" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="yes" + +PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared --enable-malloc0returnsnull" diff --git a/packages/addons/addon-depends/libXcursor/package.mk b/packages/addons/addon-depends/libXcursor/package.mk new file mode 100644 index 0000000000..8509afd34e --- /dev/null +++ b/packages/addons/addon-depends/libXcursor/package.mk @@ -0,0 +1,37 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="libXcursor" +PKG_VERSION="1.1.14" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="OSS" +PKG_SITE="http://www.X.org" +PKG_URL="http://xorg.freedesktop.org/archive/individual/lib/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS_TARGET="toolchain libX11 libXfixes libXrender" +PKG_PRIORITY="optional" +PKG_SECTION="x11/lib" +PKG_SHORTDESC="libXcursor: X Cursor Library" +PKG_LONGDESC="X11 Cursor management library" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="yes" + +PKG_CONFIGURE_OPTS_TARGET="--disable-shared --enable-static" diff --git a/packages/addons/addon-depends/libXft/package.mk b/packages/addons/addon-depends/libXft/package.mk new file mode 100644 index 0000000000..52b06c58a3 --- /dev/null +++ b/packages/addons/addon-depends/libXft/package.mk @@ -0,0 +1,35 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# OpenELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC. If not, see . +################################################################################ + +PKG_NAME="libXft" +PKG_VERSION="2.3.2" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="OSS" +PKG_SITE="http://www.X.org" +PKG_URL="http://xorg.freedesktop.org/archive/individual/lib/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS_TARGET="toolchain util-macros xproto libXrender fontconfig freetype" +PKG_PRIORITY="optional" +PKG_SECTION="x11/lib" +PKG_SHORTDESC="libxft: X FreeType library" +PKG_LONGDESC="X FreeType library" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="yes" + +PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared" diff --git a/packages/addons/addon-depends/libexif/package.mk b/packages/addons/addon-depends/libexif/package.mk new file mode 100644 index 0000000000..9c0ef0e555 --- /dev/null +++ b/packages/addons/addon-depends/libexif/package.mk @@ -0,0 +1,33 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# OpenELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC. If not, see . +################################################################################ + +PKG_NAME="libexif" +PKG_VERSION="0.6.21" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="LGPL" +PKG_SITE="http://sourceforge.net/projects/libexif" +PKG_URL="http://downloads.sf.net/sourceforge/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="lib" +PKG_SHORTDESC="A library to parse an EXIF file and read the data from those tags" +PKG_LONGDESC="A library to parse an EXIF file and read the data from those tags" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="yes" diff --git a/packages/addons/addon-depends/libva-vdpau-driver/package.mk b/packages/addons/addon-depends/libva-vdpau-driver/package.mk new file mode 100644 index 0000000000..613285ee40 --- /dev/null +++ b/packages/addons/addon-depends/libva-vdpau-driver/package.mk @@ -0,0 +1,37 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# OpenELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC. If not, see . +################################################################################ + +PKG_NAME="libva-vdpau-driver" +PKG_VERSION="0.7.4" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://freedesktop.org/wiki/Software/vaapi" +PKG_URL="http://freedesktop.org/software/vaapi/releases/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS_TARGET="toolchain libva libvdpau mesa" +PKG_PRIORITY="optional" +PKG_SECTION="graphics" +PKG_SHORTDESC="VDPAU backend for VA API" +PKG_LONGDESC="VDPAU backend for VA API" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="yes" + +post_makeinstall_target() { + rm -rf $INSTALL/usr/lib/va/s3g_drv_video.so +} diff --git a/packages/addons/addon-depends/libva-vdpau-driver/patches/libva-vdpau-driver-0001_drop-formats.patch b/packages/addons/addon-depends/libva-vdpau-driver/patches/libva-vdpau-driver-0001_drop-formats.patch new file mode 100644 index 0000000000..74caee3483 --- /dev/null +++ b/packages/addons/addon-depends/libva-vdpau-driver/patches/libva-vdpau-driver-0001_drop-formats.patch @@ -0,0 +1,29 @@ +>From fda3706eb74ba5ad874853969f3df3e372739c8d Mon Sep 17 00:00:00 2001 +From: "Xiang, Haihao" +Date: Fri, 21 Jun 2013 12:55:30 +0800 +Subject: [PATCH] VAEncH264VUIBufferType and VAEncH264SEIBufferType are + dropped from VA API + +The driver doesn't use them indeed + +Signed-off-by: Xiang, Haihao +--- + src/vdpau_dump.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/vdpau_dump.c b/src/vdpau_dump.c +index 899888b..610e7cd 100644 +--- a/src/vdpau_dump.c ++++ b/src/vdpau_dump.c +@@ -59,8 +59,6 @@ const char *string_of_VABufferType(VABufferType type) + _(VAEncSequenceParameterBufferType); + _(VAEncPictureParameterBufferType); + _(VAEncSliceParameterBufferType); +- _(VAEncH264VUIBufferType); +- _(VAEncH264SEIBufferType); + #endif + #if VA_CHECK_VERSION(0,31,1) + _(VAQMatrixBufferType); +-- +1.7.9.5 + diff --git a/packages/addons/addon-depends/libva-vdpau-driver/patches/libva-vdpau-driver-0002_glext-missing-definition.patch b/packages/addons/addon-depends/libva-vdpau-driver/patches/libva-vdpau-driver-0002_glext-missing-definition.patch new file mode 100644 index 0000000000..b56d268343 --- /dev/null +++ b/packages/addons/addon-depends/libva-vdpau-driver/patches/libva-vdpau-driver-0002_glext-missing-definition.patch @@ -0,0 +1,16 @@ +--- a/src/utils_glx.h~ 2012-10-05 16:02:58.000000000 +0100 ++++ b/src/utils_glx.h 2012-10-19 08:44:12.469642440 +0100 +@@ -48,6 +48,13 @@ + typedef void (*PFNGLXRELEASETEXIMAGEEXTPROC)(Display *, GLXDrawable, int); + #endif + ++#if GL_GLEXT_VERSION >= 85 ++/* XXX: PFNGLMULTITEXCOORD2FPROC got out of the GL_VERSION_1_3_DEPRECATED ++ block and is not defined if GL_VERSION_1_3 is defined in ++ Redefine the type here as an interim solution */ ++typedef void (*PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); ++#endif ++ + #ifndef GL_FRAMEBUFFER_BINDING + #define GL_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING_EXT + #endif diff --git a/packages/addons/addon-depends/libva-vdpau-driver/patches/libva-vdpau-driver-0003_libvdpau-0.8.patch b/packages/addons/addon-depends/libva-vdpau-driver/patches/libva-vdpau-driver-0003_libvdpau-0.8.patch new file mode 100644 index 0000000000..ab3a479986 --- /dev/null +++ b/packages/addons/addon-depends/libva-vdpau-driver/patches/libva-vdpau-driver-0003_libvdpau-0.8.patch @@ -0,0 +1,11 @@ +--- a/src/vdpau_decode.c ++++ b/src/vdpau_decode.c +@@ -1289,7 +1289,7 @@ + driver_data, + obj_context->vdp_decoder, + obj_surface->vdp_surface, +- (VdpPictureInfo)&obj_context->vdp_picture_info, ++ (VdpPictureInfo *)&obj_context->vdp_picture_info, + obj_context->vdp_bitstream_buffers_count, + obj_context->vdp_bitstream_buffers + ); diff --git a/packages/addons/addon-depends/ninja/package.mk b/packages/addons/addon-depends/ninja/package.mk new file mode 100644 index 0000000000..e9d39d5e3f --- /dev/null +++ b/packages/addons/addon-depends/ninja/package.mk @@ -0,0 +1,44 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# OpenELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC. If not, see . +################################################################################ + +PKG_NAME="ninja" +PKG_VERSION="1.6.0" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="Apache" +PKG_SITE="http://martine.github.io/ninja/" +PKG_URL="https://github.com/ninja-build/ninja/archive/v$PKG_VERSION.tar.gz" +PKG_PRIORITY="optional" +PKG_SECTION="devel" +PKG_SHORTDESC="Small build system with a focus on speed" +PKG_LONGDESC="Small build system with a focus on speed" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +configure_host() { + : +} + +make_host() { + python2 configure.py --bootstrap +} + +makeinstall_host() { + cp ninja $ROOT/$TOOLCHAIN/bin/ +} diff --git a/packages/addons/addon-depends/nspr/package.mk b/packages/addons/addon-depends/nspr/package.mk new file mode 100644 index 0000000000..e5fbc50231 --- /dev/null +++ b/packages/addons/addon-depends/nspr/package.mk @@ -0,0 +1,48 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="nspr" +PKG_VERSION="4.12" +PKG_REV="2" +PKG_ARCH="any" +PKG_LICENSE="Mozilla Public License" +PKG_SITE="http://www.linuxfromscratch.org/blfs/view/svn/general/nspr.html" +PKG_DEPENDS_TARGET="toolchain nss:host" +PKG_PRIORITY="optional" +PKG_SECTION="security" +PKG_SHORTDESC="Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc like functions" +PKG_LONGDESC="Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc like functions" +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +MAKEFLAGS=-j1 + +if [ "$TARGET_ARCH" = "x86_64" ] ; then + TARGET_USE_64="--enable-64bit" +fi + +PKG_CONFIGURE_OPTS_TARGET="--with-pthreads $TARGET_USE_64" +PKG_MAKE_OPTS_TARGET="NSINSTALL=$ROOT/$TOOLCHAIN/bin/nsinstall" +PKG_MAKEINSTALL_OPTS_TARGET="NSINSTALL=$ROOT/$TOOLCHAIN/bin/nsinstall" + +configure_target() { + cd $(get_build_dir nss)/nspr + ./configure --with-pthreads $TARGET_USE_64 $TARGET_CONFIGURE_OPTS +} diff --git a/packages/addons/addon-depends/nss/package.mk b/packages/addons/addon-depends/nss/package.mk new file mode 100644 index 0000000000..cf876f5605 --- /dev/null +++ b/packages/addons/addon-depends/nss/package.mk @@ -0,0 +1,78 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="nss" +PKG_VERSION="3.22.3" +PKG_REV="2" +PKG_ARCH="any" +PKG_LICENSE="Mozilla Public License" +PKG_SITE="http://ftp.mozilla.org/" +PKG_URL="http://ftp.mozilla.org/pub/security/nss/releases/NSS_3_22_3_RTM/src/nss-3.22.3-with-nspr-4.12.tar.gz" +PKG_DEPENDS_TARGET="toolchain nss:host nspr" +PKG_PRIORITY="optional" +PKG_SECTION="security" +PKG_SHORTDESC="The Network Security Services (NSS) package is a set of libraries designed to support cross-platform development of security-enabled client and server applications" +PKG_LONGDESC="The Network Security Services (NSS) package is a set of libraries designed to support cross-platform development of security-enabled client and server applications" +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +MAKEFLAGS=-j1 + +make_host() { + cd $ROOT/$PKG_BUILD/nss + + [ "$TARGET_ARCH" = "x86_64" ] && export USE_64=1 + + make -C coreconf/nsinstall +} + +makeinstall_host() { + cp $ROOT/$PKG_BUILD/nss/coreconf/nsinstall/*/nsinstall $ROOT/$TOOLCHAIN/bin +} + +post_makeinstall_host() { + rm -rf $ROOT/$PKG_BUILD/nss/coreconf/nsinstall/Linux* +} + +make_target() { + cd $ROOT/$PKG_BUILD/nss + + [ "$TARGET_ARCH" = "x86_64" ] && TARGET_USE_64="USE_64=1" + + make BUILD_OPT=1 $TARGET_USE_64 \ + NSPR_INCLUDE_DIR=$SYSROOT_PREFIX/usr/include/nspr \ + USE_SYSTEM_ZLIB=1 ZLIB_LIBS=-lz \ + OS_TEST=$TARGET_ARCH \ + NSS_TESTS="dummy" \ + NSINSTALL=$ROOT/$TOOLCHAIN/bin/nsinstall \ + CPU_ARCH_TAG=$TARGET_ARCH \ + CC=$TARGET_CC LDFLAGS="$LDFLAGS -L$SYSROOT_PREFIX/usr/lib" \ + V=1 +} + +makeinstall_target() { + cd $ROOT/$PKG_BUILD + $STRIP dist/Linux*/lib/*.so + cp -L dist/Linux*/lib/*.so $SYSROOT_PREFIX/usr/lib + cp -L dist/Linux*/lib/libcrmf.a $SYSROOT_PREFIX/usr/lib + mkdir -p $SYSROOT_PREFIX/usr/include/nss + cp -RL dist/{public,private}/nss/* $SYSROOT_PREFIX/usr/include/nss + cp -L dist/Linux*/lib/pkgconfig/nss.pc $SYSROOT_PREFIX/usr/lib/pkgconfig +} diff --git a/packages/addons/addon-depends/nss/patches/nss-01_crosscompile.patch b/packages/addons/addon-depends/nss/patches/nss-01_crosscompile.patch new file mode 100644 index 0000000000..d8abfd5bdf --- /dev/null +++ b/packages/addons/addon-depends/nss/patches/nss-01_crosscompile.patch @@ -0,0 +1,27 @@ +diff --git a/nss/cmd/shlibsign/Makefile b/nss/cmd/shlibsign/Makefile +index 83f90fa..177feee 100644 +--- a/nss/cmd/shlibsign/Makefile ++++ b/nss/cmd/shlibsign/Makefile +@@ -95,5 +95,3 @@ else + endif + endif + +-libs install :: $(CHECKLOC) +- +diff --git a/nss/coreconf/Linux.mk b/nss/coreconf/Linux.mk +index a586e5e..e815b72 100644 +--- a/nss/coreconf/Linux.mk ++++ b/nss/coreconf/Linux.mk +@@ -16,12 +16,6 @@ ifeq ($(USE_PTHREADS),1) + IMPL_STRATEGY = _PTH + endif + +-CC = gcc +-CCC = g++ +-RANLIB = ranlib +- +-DEFAULT_COMPILER = gcc +- + ifeq ($(OS_TARGET),Android) + ifndef ANDROID_NDK + $(error Must set ANDROID_NDK to the path to the android NDK first) diff --git a/packages/addons/addon-depends/nss/patches/nss-02_3.15.5-standalone-1.patch b/packages/addons/addon-depends/nss/patches/nss-02_3.15.5-standalone-1.patch new file mode 100644 index 0000000000..815e634fa7 --- /dev/null +++ b/packages/addons/addon-depends/nss/patches/nss-02_3.15.5-standalone-1.patch @@ -0,0 +1,241 @@ +Submitted By: Armin K. +Date: 2013-07-02 +Initial Package Version: 3.15 +Upstream Status: Not applicable +Origin: Based on dj's original patch, rediffed and modified for 3.15 +Description: Adds auto-generated nss.pc and nss-config script, and allows + building without nspr in the source tree. + +--- a/nss/config/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ b/nss/config/Makefile 2013-07-02 14:53:56.684750636 +0200 +@@ -0,0 +1,40 @@ ++CORE_DEPTH = .. ++DEPTH = .. ++ ++include $(CORE_DEPTH)/coreconf/config.mk ++ ++NSS_MAJOR_VERSION = `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}'` ++NSS_MINOR_VERSION = `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}'` ++NSS_PATCH_VERSION = `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}'` ++PREFIX = /usr ++ ++all: export libs ++ ++export: ++ # Create the nss.pc file ++ mkdir -p $(DIST)/lib/pkgconfig ++ sed -e "s,@prefix@,$(PREFIX)," \ ++ -e "s,@exec_prefix@,\$${prefix}," \ ++ -e "s,@libdir@,\$${prefix}/lib," \ ++ -e "s,@includedir@,\$${prefix}/include/nss," \ ++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \ ++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ ++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ ++ nss.pc.in > nss.pc ++ chmod 0644 nss.pc ++ ln -sf ../../../../nss/config/nss.pc $(DIST)/lib/pkgconfig ++ ++ # Create the nss-config script ++ mkdir -p $(DIST)/bin ++ sed -e "s,@prefix@,$(PREFIX)," \ ++ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \ ++ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \ ++ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \ ++ nss-config.in > nss-config ++ chmod 0755 nss-config ++ ln -sf ../../../nss/config/nss-config $(DIST)/bin ++ ++libs: ++ ++dummy: all export libs ++ +--- a/nss/config/nss-config.in 1970-01-01 01:00:00.000000000 +0100 ++++ b/nss/config/nss-config.in 2013-07-02 14:52:58.328084334 +0200 +@@ -0,0 +1,153 @@ ++#!/bin/sh ++ ++prefix=@prefix@ ++ ++major_version=@NSS_MAJOR_VERSION@ ++minor_version=@NSS_MINOR_VERSION@ ++patch_version=@NSS_PATCH_VERSION@ ++ ++usage() ++{ ++ cat <&2 ++fi ++ ++lib_nss=yes ++lib_nssutil=yes ++lib_smime=yes ++lib_ssl=yes ++lib_softokn=yes ++ ++while test $# -gt 0; do ++ case "$1" in ++ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; ++ *) optarg= ;; ++ esac ++ ++ case $1 in ++ --prefix=*) ++ prefix=$optarg ++ ;; ++ --prefix) ++ echo_prefix=yes ++ ;; ++ --exec-prefix=*) ++ exec_prefix=$optarg ++ ;; ++ --exec-prefix) ++ echo_exec_prefix=yes ++ ;; ++ --includedir=*) ++ includedir=$optarg ++ ;; ++ --includedir) ++ echo_includedir=yes ++ ;; ++ --libdir=*) ++ libdir=$optarg ++ ;; ++ --libdir) ++ echo_libdir=yes ++ ;; ++ --version) ++ echo ${major_version}.${minor_version}.${patch_version} ++ ;; ++ --cflags) ++ echo_cflags=yes ++ ;; ++ --libs) ++ echo_libs=yes ++ ;; ++ nss) ++ lib_nss=yes ++ ;; ++ nssutil) ++ lib_nssutil=yes ++ ;; ++ smime) ++ lib_smime=yes ++ ;; ++ ssl) ++ lib_ssl=yes ++ ;; ++ softokn) ++ lib_softokn=yes ++ ;; ++ *) ++ usage 1 1>&2 ++ ;; ++ esac ++ shift ++done ++ ++# Set variables that may be dependent upon other variables ++if test -z "$exec_prefix"; then ++ exec_prefix=`pkg-config --variable=exec_prefix nss` ++fi ++if test -z "$includedir"; then ++ includedir=`pkg-config --variable=includedir nss` ++fi ++if test -z "$libdir"; then ++ libdir=`pkg-config --variable=libdir nss` ++fi ++ ++if test "$echo_prefix" = "yes"; then ++ echo $prefix ++fi ++ ++if test "$echo_exec_prefix" = "yes"; then ++ echo $exec_prefix ++fi ++ ++if test "$echo_includedir" = "yes"; then ++ echo $includedir ++fi ++ ++if test "$echo_libdir" = "yes"; then ++ echo $libdir ++fi ++ ++if test "$echo_cflags" = "yes"; then ++ echo -I$includedir ++fi ++ ++if test "$echo_libs" = "yes"; then ++ libdirs="-L$libdir" ++ if test -n "$lib_nss"; then ++ libdirs="$libdirs -lnss${major_version}" ++ fi ++ if test -n "$lib_nssutil"; then ++ libdirs="$libdirs -lnssutil${major_version}" ++ fi ++ if test -n "$lib_smime"; then ++ libdirs="$libdirs -lsmime${major_version}" ++ fi ++ if test -n "$lib_ssl"; then ++ libdirs="$libdirs -lssl${major_version}" ++ fi ++ if test -n "$lib_softokn"; then ++ libdirs="$libdirs -lsoftokn${major_version}" ++ fi ++ echo $libdirs ++fi ++ +--- a/nss/config/nss.pc.in 1970-01-01 01:00:00.000000000 +0100 ++++ b/nss/config/nss.pc.in 2013-07-02 14:52:58.328084334 +0200 +@@ -0,0 +1,12 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: NSS ++Description: Network Security Services ++Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@ ++Requires: nspr >= 4.8 ++Libs: -L@libdir@ -lnss@NSS_MAJOR_VERSION@ -lnssutil@NSS_MAJOR_VERSION@ -lsmime@NSS_MAJOR_VERSION@ -lssl@NSS_MAJOR_VERSION@ -lsoftokn@NSS_MAJOR_VERSION@ ++Cflags: -I${includedir} ++ +--- a/nss/Makefile 2013-05-28 23:43:24.000000000 +0200 ++++ b/nss/Makefile 2013-07-02 14:52:58.328084334 +0200 +@@ -44,7 +44,7 @@ + # (7) Execute "local" rules. (OPTIONAL). # + ####################################################################### + +-nss_build_all: build_nspr all ++nss_build_all: all + + nss_clean_all: clobber_nspr clobber + +--- a/nss/manifest.mn 2013-05-28 23:43:24.000000000 +0200 ++++ b/nss/manifest.mn 2013-07-02 14:52:58.331417666 +0200 +@@ -10,4 +10,4 @@ + + RELEASE = nss + +-DIRS = coreconf lib cmd external_tests ++DIRS = coreconf lib cmd config diff --git a/packages/addons/addon-depends/pango/config/pango.modules b/packages/addons/addon-depends/pango/config/pango.modules new file mode 100644 index 0000000000..2494e6cc12 --- /dev/null +++ b/packages/addons/addon-depends/pango/config/pango.modules @@ -0,0 +1,18 @@ +# Pango Modules file +# Automatically generated file, do not edit +# +# ModulesPath = /usr/lib/pango/1.8.0/modules +# +/usr/lib/pango/1.8.0/modules/pango-arabic-lang.so ArabicScriptEngineLang PangoEngineLang PangoRenderNone arabic:* +/usr/lib/pango/1.8.0/modules/pango-basic-fc.so BasicScriptEngineFc PangoEngineShape PangoRenderFc common: +/usr/lib/pango/1.8.0/modules/pango-indic-lang.so devaIndicScriptEngineLang PangoEngineLang PangoRenderNone devanagari:* +/usr/lib/pango/1.8.0/modules/pango-indic-lang.so bengIndicScriptEngineLang PangoEngineLang PangoRenderNone bengali:* +/usr/lib/pango/1.8.0/modules/pango-indic-lang.so guruIndicScriptEngineLang PangoEngineLang PangoRenderNone gurmukhi:* +/usr/lib/pango/1.8.0/modules/pango-indic-lang.so gujrIndicScriptEngineLang PangoEngineLang PangoRenderNone gujarati:* +/usr/lib/pango/1.8.0/modules/pango-indic-lang.so oryaIndicScriptEngineLang PangoEngineLang PangoRenderNone oriya:* +/usr/lib/pango/1.8.0/modules/pango-indic-lang.so tamlIndicScriptEngineLang PangoEngineLang PangoRenderNone tamil:* +/usr/lib/pango/1.8.0/modules/pango-indic-lang.so teluIndicScriptEngineLang PangoEngineLang PangoRenderNone telugu:* +/usr/lib/pango/1.8.0/modules/pango-indic-lang.so kndaIndicScriptEngineLang PangoEngineLang PangoRenderNone kannada:* +/usr/lib/pango/1.8.0/modules/pango-indic-lang.so mlymIndicScriptEngineLang PangoEngineLang PangoRenderNone malayalam:* +/usr/lib/pango/1.8.0/modules/pango-indic-lang.so sinhIndicScriptEngineLang PangoEngineLang PangoRenderNone sinhala:* + diff --git a/packages/addons/addon-depends/pango/config/pangorc b/packages/addons/addon-depends/pango/config/pangorc new file mode 100644 index 0000000000..d37ff990ad --- /dev/null +++ b/packages/addons/addon-depends/pango/config/pangorc @@ -0,0 +1,6 @@ +[Pango] +ModuleFiles = /etc/pango/pango.modules +ModulesPath = /usr/lib/pango/1.8.0/modules + +[PangoX] +AliasFiles = /etc/pango/pangox.aliases diff --git a/packages/addons/addon-depends/pango/package.mk b/packages/addons/addon-depends/pango/package.mk new file mode 100644 index 0000000000..69131c6c08 --- /dev/null +++ b/packages/addons/addon-depends/pango/package.mk @@ -0,0 +1,40 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="pango" +PKG_VERSION="1.40.0" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://www.pango.org/" +PKG_URL="http://ftp.gnome.org/pub/gnome/sources/pango/1.40/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain glib cairo freetype fontconfig libX11 libXft harfbuzz" +PKG_PRIORITY="optional" +PKG_SECTION="x11/toolkits" +PKG_SHORTDESC="pango: Library for layout and rendering of internationalized text" +PKG_LONGDESC="The goal of the Pango project is to provide an open-source framework for the layout and rendering of internationalized text. Pango is an offshoot of the GTK+ and GNOME projects, and the initial focus is operation in those environments, however there is nothing fundamentally GTK+ or GNOME specific about Pango. Pango uses Unicode for all of its encoding, and will eventually support output in all the worlds major languages." +PKG_IS_ADDON="no" +PKG_AUTORECONF="yes" + +PKG_CONFIGURE_OPTS_TARGET="--disable-doc-cross-references \ + --disable-gtk-doc \ + --disable-man \ + --enable-debug=no \ + --with-xft" diff --git a/packages/addons/addon-depends/pango/patches/pango-01_no-gtk-doc.patch b/packages/addons/addon-depends/pango/patches/pango-01_no-gtk-doc.patch new file mode 100644 index 0000000000..1a583b8406 --- /dev/null +++ b/packages/addons/addon-depends/pango/patches/pango-01_no-gtk-doc.patch @@ -0,0 +1,46 @@ +diff -Naur pango-1.38.1/configure.ac pango-1.38.1.patch/configure.ac +--- pango-1.38.1/configure.ac 2015-10-12 21:13:25.000000000 +0200 ++++ pango-1.38.1.patch/configure.ac 2015-11-14 23:14:05.714344868 +0100 +@@ -483,15 +483,6 @@ + dnl *** Checks for gtk-doc *** + dnl ************************** + +-if $have_cairo ; then : ; else +- if test x$enable_gtk_doc = xyes ; then +- AC_MSG_WARN([Cairo not present, disabling doc building]) +- enable_gtk_doc=no +- fi +-fi +- +-GTK_DOC_CHECK([1.15], [--flavour no-tmpl]) +- + AC_ARG_ENABLE(doc-cross-references, + AC_HELP_STRING([--disable-doc-cross-references], + [cross reference glib and cairo symbols @<:@default=yes@:>@]), +@@ -606,7 +597,6 @@ + pango/pangoxft.rc + pango-view/Makefile + examples/Makefile +-docs/Makefile + docs/version.xml + tools/Makefile + tests/Makefile +diff -Naur pango-1.38.1/Makefile.am pango-1.38.1.patch/Makefile.am +--- pango-1.38.1/Makefile.am 2015-04-15 19:37:43.000000000 +0200 ++++ pango-1.38.1.patch/Makefile.am 2015-11-14 23:05:52.738361176 +0100 +@@ -1,6 +1,6 @@ + ## Process this file with automake to create Makefile.in. + +-SUBDIRS= pango pango-view examples docs tools tests build ++SUBDIRS= pango pango-view examples tools tests build + + EXTRA_DIST = \ + autogen.sh \ +@@ -38,7 +38,6 @@ + $(srcdir)/INSTALL \ + $(srcdir)/omf.make \ + $(srcdir)/xmldocs.make \ +- $(srcdir)/gtk-doc.make \ + $(srcdir)/ChangeLog + + ### ChangeLog generation diff --git a/packages/addons/addon-depends/pango/patches/pango-02_meh.patch b/packages/addons/addon-depends/pango/patches/pango-02_meh.patch new file mode 100644 index 0000000000..dc7b25d4e5 --- /dev/null +++ b/packages/addons/addon-depends/pango/patches/pango-02_meh.patch @@ -0,0 +1,79 @@ +diff -Naur pango-1.38.1/Makefile.am pango-1.38.1.patch/Makefile.am +--- pango-1.38.1/Makefile.am 2015-11-14 23:05:52.000000000 +0100 ++++ pango-1.38.1.patch/Makefile.am 2015-11-14 23:19:07.548943525 +0100 +@@ -1,6 +1,6 @@ + ## Process this file with automake to create Makefile.in. + +-SUBDIRS= pango pango-view examples tools tests build ++SUBDIRS= pango build + + EXTRA_DIST = \ + autogen.sh \ +diff -Naur pango-1.38.1/pango/Makefile.am pango-1.38.1.patch/pango/Makefile.am +--- pango-1.38.1/pango/Makefile.am 2015-09-01 00:47:11.000000000 +0200 ++++ pango-1.38.1.patch/pango/Makefile.am 2015-11-14 23:21:14.081145117 +0100 +@@ -31,7 +31,7 @@ + $(LIBTHAI_CFLAGS) \ + $(X_CFLAGS) + +-BUILT_SOURCES = pango-enum-types.h pango-enum-types.c pango-features.h ++BUILT_SOURCES = pango-features.h + + pangoincludedir=$(includedir)/pango-1.0/pango + +@@ -127,22 +127,6 @@ + pango-features.h \ + pango-enum-types.h + +-pango-enum-types.h: s-enum-types-h +-s-enum-types-h: $(pango_headers) Makefile.am pango-enum-types.h.template +- $(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) \ +- --template pango-enum-types.h.template \ +- $(pango_headers) ) > pango-enum-types.h.tmp \ +- && mv pango-enum-types.h.tmp pango-enum-types.h \ +- && echo timestamp > $@ +- +-pango-enum-types.c: s-enum-types-c +-s-enum-types-c: $(pango_headers) Makefile.am pango-enum-types.c.template +- $(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) \ +- --template pango-enum-types.c.template \ +- $(pango_headers) ) > pango-enum-types.c.tmp \ +- && mv pango-enum-types.c.tmp pango-enum-types.c \ +- && echo timestamp > $@ +- + pango-features.h: + $(AM_V_GEN) cd $(top_builddir) && ./config.status pango/pango-features.h + +diff -Naur pango-1.38.1/pango/pango-context.c pango-1.38.1.patch/pango/pango-context.c +--- pango-1.38.1/pango/pango-context.c 2015-09-13 17:05:39.000000000 +0200 ++++ pango-1.38.1.patch/pango/pango-context.c 2015-11-14 23:22:57.512225981 +0100 +@@ -38,6 +38,7 @@ + + #include "pango-engine-private.h" + #include "pango-script-private.h" ++#include "pango-enum-types.h" + + /** + * PangoContext: +diff -Naur pango-1.38.1/pango/pangofc-font.c pango-1.38.1.patch/pango/pangofc-font.c +--- pango-1.38.1/pango/pangofc-font.c 2015-04-15 19:37:43.000000000 +0200 ++++ pango-1.38.1.patch/pango/pangofc-font.c 2015-11-14 23:23:49.840316980 +0100 +@@ -45,6 +45,7 @@ + #include "pango-engine.h" + #include "pango-layout.h" + #include "pango-impl-utils.h" ++#include "pango-enum-types.h" + + #include + +diff -Naur pango-1.38.1/pango/pango-layout.c pango-1.38.1.patch/pango/pango-layout.c +--- pango-1.38.1/pango/pango-layout.c 2015-09-01 18:20:54.000000000 +0200 ++++ pango-1.38.1.patch/pango/pango-layout.c 2015-11-14 23:23:19.280262638 +0100 +@@ -77,6 +77,7 @@ + #include + + #include "pango-layout-private.h" ++#include "pango-enum-types.h" + + + typedef struct _Extents Extents; diff --git a/packages/addons/addon-depends/scrnsaverproto/package.mk b/packages/addons/addon-depends/scrnsaverproto/package.mk new file mode 100644 index 0000000000..58b46ea142 --- /dev/null +++ b/packages/addons/addon-depends/scrnsaverproto/package.mk @@ -0,0 +1,33 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# OpenELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC. If not, see . +################################################################################ + +PKG_NAME="scrnsaverproto" +PKG_VERSION="1.2.2" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://xorg.freedesktop.org/" +PKG_URL="http://xorg.freedesktop.org/releases/individual/proto/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="x11/proto" +PKG_SHORTDESC="" +PKG_LONGDESC="" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="yes" diff --git a/packages/addons/browser/chromium/changelog.txt b/packages/addons/browser/chromium/changelog.txt new file mode 100644 index 0000000000..9b71490b4f --- /dev/null +++ b/packages/addons/browser/chromium/changelog.txt @@ -0,0 +1,2 @@ +7.0.100 +- initial LibreELEC release diff --git a/packages/addons/browser/chromium/config/Xdefaults b/packages/addons/browser/chromium/config/Xdefaults new file mode 100644 index 0000000000..95307ee3db --- /dev/null +++ b/packages/addons/browser/chromium/config/Xdefaults @@ -0,0 +1 @@ +Xft.dpi: 96 diff --git a/packages/addons/browser/chromium/config/pango.modules b/packages/addons/browser/chromium/config/pango.modules new file mode 100644 index 0000000000..3a7ae71db4 --- /dev/null +++ b/packages/addons/browser/chromium/config/pango.modules @@ -0,0 +1,13 @@ +/storage/.kodi/addons/browser.chromium/pango-modules/pango-arabic-lang.so ArabicScriptEngineLang PangoEngineLang PangoRenderNone arabic:* +/storage/.kodi/addons/browser.chromium/pango-modules/pango-basic-fc.so BasicScriptEngineFc PangoEngineShape PangoRenderFc common: +/storage/.kodi/addons/browser.chromium/pango-modules/pango-indic-lang.so devaIndicScriptEngineLang PangoEngineLang PangoRenderNone devanagari:* +/storage/.kodi/addons/browser.chromium/pango-modules/pango-indic-lang.so bengIndicScriptEngineLang PangoEngineLang PangoRenderNone bengali:* +/storage/.kodi/addons/browser.chromium/pango-modules/pango-indic-lang.so guruIndicScriptEngineLang PangoEngineLang PangoRenderNone gurmukhi:* +/storage/.kodi/addons/browser.chromium/pango-modules/pango-indic-lang.so gujrIndicScriptEngineLang PangoEngineLang PangoRenderNone gujarati:* +/storage/.kodi/addons/browser.chromium/pango-modules/pango-indic-lang.so oryaIndicScriptEngineLang PangoEngineLang PangoRenderNone oriya:* +/storage/.kodi/addons/browser.chromium/pango-modules/pango-indic-lang.so tamlIndicScriptEngineLang PangoEngineLang PangoRenderNone tamil:* +/storage/.kodi/addons/browser.chromium/pango-modules/pango-indic-lang.so teluIndicScriptEngineLang PangoEngineLang PangoRenderNone telugu:* +/storage/.kodi/addons/browser.chromium/pango-modules/pango-indic-lang.so kndaIndicScriptEngineLang PangoEngineLang PangoRenderNone kannada:* +/storage/.kodi/addons/browser.chromium/pango-modules/pango-indic-lang.so mlymIndicScriptEngineLang PangoEngineLang PangoRenderNone malayalam:* +/storage/.kodi/addons/browser.chromium/pango-modules/pango-indic-lang.so sinhIndicScriptEngineLang PangoEngineLang PangoRenderNone sinhala:* + diff --git a/packages/addons/browser/chromium/config/pangorc b/packages/addons/browser/chromium/config/pangorc new file mode 100644 index 0000000000..e7a942d712 --- /dev/null +++ b/packages/addons/browser/chromium/config/pangorc @@ -0,0 +1,10 @@ +# +# pangorc file for uninstalled operation. If pango-viewer is run with +# this file in the current directory it will set it as PANGO_RC_FILE +# + +[Pango] +ModuleFiles = /storage/.kodi/addons/browser.chromium/config/pango.modules + +[PangoX] +AliasFiles = /storage/.kodi/addons/browser.chromium/config/pangx.aliases diff --git a/packages/addons/browser/chromium/config/pixbuf.loaders.cache b/packages/addons/browser/chromium/config/pixbuf.loaders.cache new file mode 100644 index 0000000000..62ef3707da --- /dev/null +++ b/packages/addons/browser/chromium/config/pixbuf.loaders.cache @@ -0,0 +1,125 @@ +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-jpeg.so" +"jpeg" 5 "gdk-pixbuf" "The JPEG image format" "LGPL" +"image/jpeg" "" +"jpeg" "jpe" "jpg" "" +"\377\330" "" 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-ani.so" +"ani" 4 "gdk-pixbuf" "The ANI image format" "LGPL" +"application/x-navi-animation" "" +"ani" "" +"RIFF ACON" " xxxx " 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-ico.so" +"ico" 5 "gdk-pixbuf" "The ICO image format" "LGPL" +"image/x-icon" "image/x-ico" "image/x-win-bitmap" "" +"ico" "cur" "" +" \001 " "zz znz" 100 +" \002 " "zz znz" 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-ras.so" +"ras" 4 "gdk-pixbuf" "The Sun raster image format" "LGPL" +"image/x-cmu-raster" "image/x-sun-raster" "" +"ras" "" +"Y\246j\225" "" 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-jasper.so" +"jpeg2000" 4 "gdk-pixbuf" "The JPEG 2000 image format" "LGPL" +"image/jp2" "image/jpeg2000" "image/jpx" "" +"jp2" "jpc" "jpx" "j2k" "jpf" "" +" jP" "!!!! " 100 +"\377O\377Q" "" 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-wbmp.so" +"wbmp" 4 "gdk-pixbuf" "The WBMP image format" "LGPL" +"image/vnd.wap.wbmp" "" +"wbmp" "" +" " "zz" 1 +" `" "z " 1 +" @" "z " 1 +" " "z " 1 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-png.so" +"png" 5 "gdk-pixbuf" "The PNG image format" "LGPL" +"image/png" "" +"png" "" +"\211PNG\r\n\032\n" "" 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-pcx.so" +"pcx" 4 "gdk-pixbuf" "The PCX image format" "LGPL" +"image/x-pcx" "" +"pcx" "" +"\n \001" "" 100 +"\n\002\001" "" 100 +"\n\003\001" "" 100 +"\n\004\001" "" 100 +"\n\005\001" "" 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-qtif.so" +"qtif" 4 "gdk-pixbuf" "The QTIF image format" "LGPL" +"image/x-quicktime" "image/qtif" "" +"qtif" "qif" "" +"abcdidsc" "xxxx " 100 +"abcdidat" "xxxx " 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-tiff.so" +"tiff" 5 "gdk-pixbuf" "The TIFF image format" "LGPL" +"image/tiff" "" +"tiff" "tif" "" +"MM *" " z " 100 +"II* " " z" 100 +"II* \020 CR\002 " " z zzz z" 0 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-icns.so" +"icns" 4 "gdk-pixbuf" "The ICNS image format" "GPL" +"image/x-icns" "" +"icns" "" +"icns" "" 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-tga.so" +"tga" 4 "gdk-pixbuf" "The Targa image format" "LGPL" +"image/x-tga" "" +"tga" "targa" "" +" \001\001" "x " 100 +" \001\t" "x " 100 +" \002" "xz " 99 +" \003" "xz " 100 +" \n" "xz " 100 +" \v" "xz " 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-bmp.so" +"bmp" 5 "gdk-pixbuf" "The BMP image format" "LGPL" +"image/bmp" "image/x-bmp" "image/x-MS-bmp" "" +"bmp" "" +"BM" "" 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-xbm.so" +"xbm" 4 "gdk-pixbuf" "The XBM image format" "LGPL" +"image/x-xbitmap" "" +"xbm" "" +"#define " "" 100 +"/*" "" 50 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-xpm.so" +"xpm" 4 "gdk-pixbuf" "The XPM image format" "LGPL" +"image/x-xpixmap" "" +"xpm" "" +"/* XPM */" "" 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-pnm.so" +"pnm" 4 "gdk-pixbuf" "The PNM/PBM/PGM/PPM image format family" "LGPL" +"image/x-portable-anymap" "image/x-portable-bitmap" "image/x-portable-graymap" "image/x-portable-pixmap" "" +"pnm" "pbm" "pgm" "ppm" "" +"P1" "" 100 +"P2" "" 100 +"P3" "" 100 +"P4" "" 100 +"P5" "" 100 +"P6" "" 100 + +"/storage/.kodi/addons/browser.chromium/gdk-pixbuf-modules/libpixbufloader-gif.so" +"gif" 4 "gdk-pixbuf" "The GIF image format" "LGPL" +"image/gif" "" +"gif" "" +"GIF8" "" 100 + diff --git a/packages/addons/browser/chromium/icon/icon.png b/packages/addons/browser/chromium/icon/icon.png new file mode 100644 index 0000000000..033fb10f71 Binary files /dev/null and b/packages/addons/browser/chromium/icon/icon.png differ diff --git a/packages/addons/browser/chromium/package.mk b/packages/addons/browser/chromium/package.mk new file mode 100644 index 0000000000..0ca3a593d9 --- /dev/null +++ b/packages/addons/browser/chromium/package.mk @@ -0,0 +1,177 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="chromium" +PKG_VERSION="49.0.2623.87" +PKG_REV="100" +PKG_ARCH="x86_64" +PKG_LICENSE="Mixed" +PKG_SITE="http://www.chromium.org/Home" +PKG_URL="https://commondatastorage.googleapis.com/chromium-browser-official/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS_TARGET="toolchain pciutils dbus libXcomposite libXcursor libXtst alsa-lib bzip2 yasm nss libXScrnSaver libexif ninja:host libpng harfbuzz atk gtk+ libva-vdpau-driver" +PKG_PRIORITY="optional" +PKG_SECTION="browser" +PKG_SHORTDESC="Chromium Browser: the open-source web browser from Google" +PKG_LONGDESC="Chromium Browser: the open-source web browser from Google" +PKG_AUTORECONF="no" + +PKG_IS_ADDON="yes" +PKG_ADDON_NAME="Chromium" +PKG_ADDON_TYPE="xbmc.python.script" +PKG_ADDON_PROVIDES="executable" +PKG_ADDON_REPOVERSION="7.0" + +pre_make_target() { + export MAKEFLAGS="-j4" + + strip_lto + + # https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/9JX1N2nf4PU/discussion + touch chrome/test/data/webui/i18n_process_css_test.html +} + +make_target() { + # CFLAGS are passed through release_extra_cflags below + export -n CFLAGS CXXFLAGS + + export LDFLAGS="$LDFLAGS -ludev" + + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for OpenELEC use ONLY. For your own distribution, please + # get your own set of keys. + + _google_api_key=AIzaSyAQ6L9vt9cnN4nM0weaa6Y38K4eyPvtKgI + _google_default_client_id=740889307901-4bkm4e0udppnp1lradko85qsbnmkfq3b.apps.googleusercontent.com + _google_default_client_secret=9TJlhL661hvShQub4cWhANXa + + local _chromium_conf=( + -Dgoogle_api_key=$_google_api_key + -Dgoogle_default_client_id=$_google_default_client_id + -Dgoogle_default_client_secret=$_google_default_client_secret + -Dtarget_arch=x64 + -Dfastbuild=2 + -Dwerror= + -Dclang=0 + -Dpython_ver=2.7 + -Dlinux_link_gsettings=0 + -Dlinux_strip_binary=1 + -Dlinux_use_bundled_binutils=0 + -Dlinux_use_bundled_gold=0 + -Dlinux_use_gold_flags=0 + -Dicu_use_data_file_flag=0 + -Dlogging_like_official_build=1 + -Dtracing_like_official_build=1 + -Dfieldtrial_testing_like_official_build=1 + -Dremove_webcore_debug_symbols=1 + -Drelease_extra_cflags="$CFLAGS" + -Dlibspeechd_h_prefix=speech-dispatcher/ + -Dffmpeg_branding=Chrome + -Dproprietary_codecs=1 + -Duse_system_bzip2=1 + -Duse_system_flac=0 + -Duse_system_ffmpeg=0 + -Duse_system_harfbuzz=1 + -Duse_system_icu=0 + -Duse_system_libevent=0 + -Duse_system_libjpeg=1 + -Duse_system_libpng=1 + -Duse_system_libvpx=0 + -Duse_system_libxml=0 + -Duse_system_snappy=0 + -Duse_system_xdg_utils=0 + -Duse_system_yasm=1 + -Duse_system_zlib=0 + -Duse_mojo=0 + -Duse_gconf=0 + -Duse_gnome_keyring=0 + -Duse_pulseaudio=0 + -Duse_kerberos=0 + -Duse_cups=0 + -Denable_hangout_services_extension=1 + -Ddisable_fatal_linker_warnings=1 + -Dsysroot=$SYSROOT_PREFIX + -Ddisable_glibc=1 + -Denable_widevine=1 + -Ddisable_nacl=1 + -Ddisable_pnacl=1) + + ./build/linux/unbundle/replace_gyp_files.py "${_chromium_conf[@]}" + ./build/gyp_chromium --depth=. "${_chromium_conf[@]}" + + ninja -C out/Release chrome chrome_sandbox +} + +makeinstall_target() { + : +} + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $PKG_BUILD/out/Release/chrome $ADDON_BUILD/$PKG_ADDON_ID/bin/chromium.bin + cp -P $PKG_BUILD/out/Release/chrome_sandbox $ADDON_BUILD/$PKG_ADDON_ID/bin/chrome-sandbox + cp -P $PKG_BUILD/out/Release/{*.pak,*.bin,libwidevinecdmadapter.so} $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -PR $PKG_BUILD/out/Release/locales $ADDON_BUILD/$PKG_ADDON_ID/bin/ + + $STRIP $ADDON_BUILD/$PKG_ADDON_ID/bin/chromium.bin + $STRIP $ADDON_BUILD/$PKG_ADDON_ID/bin/chrome-sandbox + + # config + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config + cp -P $PKG_DIR/config/* $ADDON_BUILD/$PKG_ADDON_ID/config + + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib + + # pango + cp -PL $(get_build_dir pango)/.install_pkg/usr/lib/libpangocairo-1.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -PL $(get_build_dir pango)/.install_pkg/usr/lib/libpango-1.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -PL $(get_build_dir pango)/.install_pkg/usr/lib/libpangoft2-1.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib + + # cairo + cp -PL $(get_build_dir cairo)/.install_pkg/usr/lib/libcairo.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib + + # gtk + cp -PL $(get_build_dir gtk+)/.install_pkg/usr/lib/libgdk-x11-2.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -PL $(get_build_dir gtk+)/.install_pkg/usr/lib/libgtk-x11-2.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib + + # atk + # cp -PL $(get_build_dir atk)/.install_pkg/usr/lib/libatk-1.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib + + # harfbuzz + cp -PL $(get_build_dir harfbuzz)/.install_pkg/usr/lib/libharfbuzz.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib + + # gdk-pixbuf + cp -PL $(get_build_dir gdk-pixbuf)/.install_pkg/usr/lib/libgdk_pixbuf-2.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib + + # pixbuf loaders + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/gdk-pixbuf-modules + cp -PL $(get_build_dir gdk-pixbuf)/.install_pkg/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/* $ADDON_BUILD/$PKG_ADDON_ID/gdk-pixbuf-modules + + # nss + cp -PL $(get_build_dir nss)/dist/Linux*OPT.OBJ/lib/*.so $ADDON_BUILD/$PKG_ADDON_ID/lib + + # nspr + cp -PL $(get_build_dir nspr)/.install_pkg/usr/lib/*.so $ADDON_BUILD/$PKG_ADDON_ID/lib + + # libexif + cp -PL $(get_build_dir libexif)/.install_pkg/usr/lib/* $ADDON_BUILD/$PKG_ADDON_ID/lib + + # libva-vdpau-driver + cp -PL $(get_build_dir libva-vdpau-driver)/.install_pkg/usr/lib/va/*.so $ADDON_BUILD/$PKG_ADDON_ID/lib +} diff --git a/packages/addons/browser/chromium/patches/chromium-0001_widevine.patch b/packages/addons/browser/chromium/patches/chromium-0001_widevine.patch new file mode 100644 index 0000000000..eb06138905 --- /dev/null +++ b/packages/addons/browser/chromium/patches/chromium-0001_widevine.patch @@ -0,0 +1,53 @@ +diff -upr chromium-48.0.2564.82.orig/chrome/common/chrome_content_client.cc chromium-48.0.2564.82/chrome/common/chrome_content_client.cc +--- chromium-48.0.2564.82.orig/chrome/common/chrome_content_client.cc 2016-01-20 22:01:20.000000000 +0200 ++++ chromium-48.0.2564.82/chrome/common/chrome_content_client.cc 2016-01-21 20:02:02.788936626 +0200 +@@ -158,7 +158,12 @@ void ComputeBuiltInPlugins(std::vector*create_vda_function)(); + if (!video_decode_accelerator_ || + !video_decode_accelerator_->Initialize(config, this)) + continue; + ++ VLOG(1) << "Initialization successful."; ++ + if (video_decode_accelerator_->CanDecodeOnIOThread()) { + filter_ = new MessageFilter(this, host_route_id_); + stub_->channel()->AddFilter(filter_.get()); +@@ -346,7 +351,9 @@ void GpuVideoDecodeAccelerator::BindImag + scoped_ptr + GpuVideoDecodeAccelerator::CreateVaapiVDA() { + scoped_ptr decoder; +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++ VLOG(1) << "About to create new VAAPI video decode accelerator."; ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) ++ VLOG(1) << "Creating new VAAPI video decode accelerator."; + decoder.reset(new VaapiVideoDecodeAccelerator( + make_context_current_, base::Bind(&GpuVideoDecodeAccelerator::BindImage, + base::Unretained(this)))); +Index: dev.wily/content/content_common.gypi +=================================================================== +--- dev.wily.orig/content/content_common.gypi ++++ dev.wily/content/content_common.gypi +@@ -856,7 +856,7 @@ + }, + ], + }], +- ['chromeos==1', { ++ ['chromeos==1 or desktop_linux==1', { + 'sources': [ + 'common/gpu/media/accelerated_video_decoder.h', + 'common/gpu/media/h264_decoder.cc', +@@ -908,7 +908,7 @@ + 'common/gpu/media/tegra_v4l2_device.h', + ], + }], +- ['target_arch != "arm" and chromeos == 1', { ++ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', { + 'dependencies': [ + '../media/media.gyp:media', + '../third_party/libyuv/libyuv.gyp:libyuv', +Index: dev.wily/content/content_gpu.gypi +=================================================================== +--- dev.wily.orig/content/content_gpu.gypi ++++ dev.wily/content/content_gpu.gypi +@@ -36,7 +36,7 @@ + ], + }, + }], +- ['target_arch!="arm" and chromeos == 1', { ++ ['target_arch!="arm" and (chromeos == 1 or desktop_linux == 1)', { + 'include_dirs': [ + '<(DEPTH)/third_party/libva', + ], +Index: dev.wily/content/content_tests.gypi +=================================================================== +--- dev.wily.orig/content/content_tests.gypi ++++ dev.wily/content/content_tests.gypi +@@ -1719,7 +1719,7 @@ + }, + ] + }], +- ['chromeos==1 and target_arch != "arm"', { ++ ['(chromeos==1 or desktop_linux==1) and target_arch != "arm"', { + 'targets': [ + { + 'target_name': 'vaapi_jpeg_decoder_unittest', +Index: dev.wily/content/public/common/content_switches.cc +=================================================================== +--- dev.wily.orig/content/public/common/content_switches.cc ++++ dev.wily/content/public/common/content_switches.cc +@@ -926,7 +926,9 @@ const char kDisableWebAudio[] + #if defined(OS_CHROMEOS) + // Disables panel fitting (used for mirror mode). + const char kDisablePanelFitting[] = "disable-panel-fitting"; ++#endif + ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + // Disables VA-API accelerated video encode. + const char kDisableVaapiAcceleratedVideoEncode[] = + "disable-vaapi-accelerated-video-encode"; +Index: dev.wily/content/public/common/content_switches.h +=================================================================== +--- dev.wily.orig/content/public/common/content_switches.h ++++ dev.wily/content/public/common/content_switches.h +@@ -272,6 +272,8 @@ CONTENT_EXPORT extern const char kDisabl + + #if defined(OS_CHROMEOS) + CONTENT_EXPORT extern const char kDisablePanelFitting[]; ++#endif ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + CONTENT_EXPORT extern const char kDisableVaapiAcceleratedVideoEncode[]; + #endif + +Index: dev.wily/media/media.gyp +=================================================================== +--- dev.wily.orig/media/media.gyp ++++ dev.wily/media/media.gyp +@@ -756,7 +756,7 @@ + ], + }], + # For VaapiVideoEncodeAccelerator. +- ['target_arch != "arm" and chromeos == 1', { ++ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', { + 'sources': [ + 'filters/h264_bitstream_buffer.cc', + 'filters/h264_bitstream_buffer.h', +@@ -1359,7 +1359,7 @@ + 'player_android', + ], + }], +- ['target_arch != "arm" and chromeos == 1 and use_x11 == 1', { ++ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1) and use_x11 == 1', { + 'sources': [ + 'filters/h264_bitstream_buffer_unittest.cc', + ], +Index: dev.wily/gpu/config/software_rendering_list_json.cc +=================================================================== +--- dev.wily.orig/gpu/config/software_rendering_list_json.cc ++++ dev.wily/gpu/config/software_rendering_list_json.cc +@@ -481,17 +481,6 @@ const char kSoftwareRenderingListJson[] + ] + }, + { +- "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", +- "cr_bugs": [137247], +- "os": { +- "type": "linux" +- }, +- "features": [ +- "accelerated_video_decode" +- ] +- }, +- { + "id": 49, + "description": "NVidia GeForce GT 650M can cause the system to hang with flash 3D", + "cr_bugs": [140175], +@@ -1042,6 +1042,11 @@ + }, + { + "os": { ++ "type": "linux" ++ } ++ }, ++ { ++ "os": { + "type": "android" + }, + "gl_renderer": ".*Google.*" +Index: dev.wily/content/common/sandbox_linux/bpf_gpu_policy_linux.cc +=================================================================== +--- dev.wily.orig/content/common/sandbox_linux/bpf_gpu_policy_linux.cc ++++ dev.wily/content/common/sandbox_linux/bpf_gpu_policy_linux.cc +@@ -21,6 +21,8 @@ + #include "base/logging.h" + #include "base/memory/scoped_ptr.h" + #include "build/build_config.h" ++// Auto-generated for dlopen libva libraries ++#include "content/common/gpu/media/va_stubs.h" + #include "content/common/sandbox_linux/sandbox_bpf_base_policy_linux.h" + #include "content/common/sandbox_linux/sandbox_seccomp_bpf_linux.h" + #include "content/common/set_process_title.h" +@@ -31,6 +33,8 @@ + #include "sandbox/linux/syscall_broker/broker_file_permission.h" + #include "sandbox/linux/syscall_broker/broker_process.h" + #include "sandbox/linux/system_headers/linux_syscalls.h" ++#include "third_party/libva/va/va.h" ++#include "third_party/libva/va/va_x11.h" + + using sandbox::arch_seccomp_data; + using sandbox::bpf_dsl::Allow; +@@ -40,6 +44,11 @@ using sandbox::syscall_broker::BrokerFil + using sandbox::syscall_broker::BrokerProcess; + using sandbox::SyscallSets; + ++using content_common_gpu_media::kModuleVa; ++using content_common_gpu_media::kModuleVa_x11; ++using content_common_gpu_media::InitializeStubs; ++using content_common_gpu_media::StubPathMap; ++ + namespace content { + + namespace { +@@ -94,7 +103,7 @@ inline bool UseLibV4L2() { + + bool IsAcceleratedVaapiVideoEncodeEnabled() { + bool accelerated_encode_enabled = false; +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + const base::CommandLine& command_line = + *base::CommandLine::ForCurrentProcess(); + accelerated_encode_enabled = +@@ -299,27 +299,41 @@ + // inside the sandbox, so preload them now. + if (IsAcceleratedVaapiVideoEncodeEnabled() || + IsAcceleratedVideoDecodeEnabled()) { +- const char* I965DrvVideoPath = NULL; +- const char* I965HybridDrvVideoPath = NULL; ++ VLOG(1) << "Attempting to enable hardware video acceleration."; ++ StubPathMap paths; ++ paths[kModuleVa].push_back("libva.so.1"); ++ paths[kModuleVa_x11].push_back("libva-x11.so.1"); ++ if (!InitializeStubs(paths)) { ++ VLOG(1) << "Failed to initialize stubs"; ++ return false; ++ } + +- if (IsArchitectureX86_64()) { +- I965DrvVideoPath = "/usr/lib64/va/drivers/i965_drv_video.so"; +- I965HybridDrvVideoPath = "/usr/lib64/va/drivers/hybrid_drv_video.so"; +- } else if (IsArchitectureI386()) { +- I965DrvVideoPath = "/usr/lib/va/drivers/i965_drv_video.so"; ++ // libva drivers won't get loaded even above two libraries get dlopened. ++ // Thus, libva calls will fail after post sandbox stage. ++ // ++ // To get the va driver loaded before sandboxing, upstream simply dlopen ++ // the hard-coded va driver path because ChromeOS is the only platform ++ // that Google want to support libva. ++ // ++ // While generic linux distros ship va driver as anywhere they want. ++ // Fortunately, the va driver will be loadded when vaInitialize() get ++ // called. ++ // So the following code is to call vaInitialize() before sandboxing. ++ Display* x_display = XOpenDisplay(NULL); ++ VADisplay va_display = vaGetDisplay(x_display); ++ if (!vaDisplayIsValid(va_display)) { ++ VLOG(1) << "Failed to call vaGetDisplay()"; ++ return false; + } + +- dlopen(I965DrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); +- if (I965HybridDrvVideoPath) +- dlopen(I965HybridDrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); +- dlopen("libva.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); +-#if defined(USE_OZONE) +- dlopen("libva-drm.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); +-#elif defined(USE_X11) +- dlopen("libva-x11.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); +-#endif +- } +- } ++ int major_version, minor_version; ++ if (vaInitialize(va_display, &major_version, &minor_version) ++ != VA_STATUS_SUCCESS) { ++ VLOG(1) << "Failed to call vaInitialize()"; ++ return false; ++ } ++ } // end of IsAcceleratedVaapiVideoEncodeEnabled() || IsAcceleratedVideoDecodeEnabled() ++ } // end of IsArchitectureX86_64() || IsArchitectureI386() + + return true; + } +Index: dev.wily/chrome/browser/about_flags.cc +=================================================================== +--- dev.wily.orig/chrome/browser/about_flags.cc ++++ dev.wily/chrome/browser/about_flags.cc +@@ -937,7 +937,7 @@ + "disable-accelerated-video-decode", + IDS_FLAGS_ACCELERATED_VIDEO_DECODE_NAME, + IDS_FLAGS_ACCELERATED_VIDEO_DECODE_DESCRIPTION, +- kOsMac | kOsWin | kOsCrOS, ++ kOsAll, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), + }, + #if defined(USE_ASH) +Index: dev.wily/content/common/gpu/media/vaapi_wrapper.cc +=================================================================== +--- dev.wily.orig/content/common/gpu/media/vaapi_wrapper.cc ++++ dev.wily/content/common/gpu/media/vaapi_wrapper.cc +@@ -146,7 +146,7 @@ scoped_ptr VaapiWrapper::C + VAProfile va_profile, + const base::Closure& report_error_to_uma_cb) { + if (!profile_infos_.Get().IsProfileSupported(mode, va_profile)) { +- DVLOG(1) << "Unsupported va_profile: " << va_profile; ++ VLOG(1) << "Unsupported va_profile: " << va_profile; + return nullptr; + } + +@@ -305,15 +305,17 @@ VaapiWrapper::GetSupportedProfileInfosFo + bool VaapiWrapper::VaInitialize(const base::Closure& report_error_to_uma_cb) { + static bool vaapi_functions_initialized = PostSandboxInitialization(); + if (!vaapi_functions_initialized) { +- bool running_on_chromeos = false; +-#if defined(OS_CHROMEOS) ++ bool error_level_logging = false; ++#if defined(OS_LINUX) ++ error_level_logging = true; ++#elif defined(OS_CHROMEOS) + // When chrome runs on linux with chromeos=1, do not log error message + // without VAAPI libraries. +- running_on_chromeos = base::SysInfo::IsRunningOnChromeOS(); ++ error_level_logging = base::SysInfo::IsRunningOnChromeOS(); + #endif + static const char kErrorMsg[] = "Failed to initialize VAAPI libs"; +- if (running_on_chromeos) +- LOG(ERROR) << kErrorMsg; ++ if (error_level_logging) ++ VLOG(1) << kErrorMsg; + else + DVLOG(1) << kErrorMsg; + return false; +@@ -384,7 +386,7 @@ bool VaapiWrapper::IsEntrypointSupported + if (std::find(supported_entrypoints.begin(), + supported_entrypoints.end(), + entrypoint) == supported_entrypoints.end()) { +- DVLOG(1) << "Unsupported entrypoint"; ++ VLOG(1) << "Unsupported entrypoint"; + return false; + } + return true; +@@ -408,8 +410,8 @@ bool VaapiWrapper::AreAttribsSupported_L + if (attribs[i].type != required_attribs[i].type || + (attribs[i].value & required_attribs[i].value) != + required_attribs[i].value) { +- DVLOG(1) << "Unsupported value " << required_attribs[i].value +- << " for attribute type " << required_attribs[i].type; ++ VLOG(1) << "Unsupported value " << required_attribs[i].value ++ << " for attribute type " << required_attribs[i].type; + return false; + } + } +@@ -427,46 +427,7 @@ + VAEntrypoint entrypoint, + std::vector& required_attribs, + gfx::Size* resolution) { +- va_lock_->AssertAcquired(); +- VAConfigID va_config_id; +- VAStatus va_res = vaCreateConfig( +- va_display_, +- va_profile, +- entrypoint, +- &required_attribs[0], +- required_attribs.size(), +- &va_config_id); +- VA_SUCCESS_OR_RETURN(va_res, "vaCreateConfig failed", false); +- +- // Calls vaQuerySurfaceAttributes twice. The first time is to get the number +- // of attributes to prepare the space and the second time is to get all +- // attributes. +- unsigned int num_attribs; +- va_res = vaQuerySurfaceAttributes( +- va_display_, va_config_id, nullptr, &num_attribs); +- VA_SUCCESS_OR_RETURN(va_res, "vaQuerySurfaceAttributes failed", false); +- if (!num_attribs) +- return false; +- +- std::vector attrib_list( +- base::checked_cast(num_attribs)); +- +- va_res = vaQuerySurfaceAttributes( +- va_display_, va_config_id, &attrib_list[0], &num_attribs); +- VA_SUCCESS_OR_RETURN(va_res, "vaQuerySurfaceAttributes failed", false); +- +- resolution->SetSize(0, 0); +- for (const auto& attrib : attrib_list) { +- if (attrib.type == VASurfaceAttribMaxWidth) +- resolution->set_width(attrib.value.value.i); +- else if (attrib.type == VASurfaceAttribMaxHeight) +- resolution->set_height(attrib.value.value.i); +- } +- if (resolution->IsEmpty()) { +- LOG(ERROR) << "Codec resolution " << resolution->ToString() +- << " cannot be zero."; +- return false; +- } ++ resolution->SetSize(1920, 1088); + return true; + } + +Index: dev.wily/content/common/gpu/media/vaapi_video_decode_accelerator.cc +=================================================================== +--- dev.wily.orig/content/common/gpu/media/vaapi_video_decode_accelerator.cc ++++ dev.wily/content/common/gpu/media/vaapi_video_decode_accelerator.cc +@@ -269,17 +269,17 @@ bool VaapiVideoDecodeAccelerator::Initia + + base::AutoLock auto_lock(lock_); + DCHECK_EQ(state_, kUninitialized); +- DVLOG(2) << "Initializing VAVDA, profile: " << profile; ++ VLOG(1) << "Initializing VAVDA, profile: " << profile; + + #if defined(USE_X11) + if (gfx::GetGLImplementation() != gfx::kGLImplementationDesktopGL) { +- DVLOG(1) << "HW video decode acceleration not available without " ++ VLOG(1) << "HW video decode acceleration not available without " + "DesktopGL (GLX)."; + return false; + } + #elif defined(USE_OZONE) + if (gfx::GetGLImplementation() != gfx::kGLImplementationEGLGLES2) { +- DVLOG(1) << "HW video decode acceleration not available without " ++ VLOG(1) << "HW video decode acceleration not available without " + << "EGLGLES2."; + return false; + } +@@ -289,7 +289,7 @@ bool VaapiVideoDecodeAccelerator::Initia + VaapiWrapper::kDecode, profile, base::Bind(&ReportToUMA, VAAPI_ERROR)); + + if (!vaapi_wrapper_.get()) { +- DVLOG(1) << "Failed initializing VAAPI for profile " << profile; ++ VLOG(1) << "Failed initializing VAAPI for profile " << profile; + return false; + } + +@@ -302,7 +302,7 @@ bool VaapiVideoDecodeAccelerator::Initia + vp8_accelerator_.reset(new VaapiVP8Accelerator(this, vaapi_wrapper_.get())); + decoder_.reset(new VP8Decoder(vp8_accelerator_.get())); + } else { +- DLOG(ERROR) << "Unsupported profile " << profile; ++ VLOG(1) << "Unsupported profile " << profile; + return false; + } + +Index: dev.wily/content/gpu/gpu_main.cc +=================================================================== +--- dev.wily.orig/content/gpu/gpu_main.cc ++++ dev.wily/content/gpu/gpu_main.cc +@@ -66,7 +66,7 @@ + #include "content/common/sandbox_mac.h" + #endif + +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + #include "content/common/gpu/media/vaapi_wrapper.h" + #endif + +@@ -227,7 +227,7 @@ int GpuMain(const MainFunctionParams& pa + GetGpuInfoFromCommandLine(gpu_info, command_line); + gpu_info.in_process_gpu = false; + +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + VaapiWrapper::PreSandboxInitialization(); + #endif + +Index: dev.wily/content/common/gpu/client/command_buffer_proxy_impl.cc +=================================================================== +--- dev.wily.orig/content/common/gpu/client/command_buffer_proxy_impl.cc ++++ dev.wily/content/common/gpu/client/command_buffer_proxy_impl.cc +@@ -561,8 +561,10 @@ bool CommandBufferProxyImpl::ProduceFron + + scoped_ptr + CommandBufferProxyImpl::CreateVideoDecoder() { ++ TRACE_EVENT0("gpu", "CommandBufferProxyImpl::CreateVideoDecoder"); + if (!channel_) + return scoped_ptr(); ++ VLOG(1) << "About to create GpuVideoDecodeAcceleratorHost."; + return scoped_ptr( + new GpuVideoDecodeAcceleratorHost(channel_, this)); + } diff --git a/packages/addons/browser/chromium/source/bin/chromium b/packages/addons/browser/chromium/source/bin/chromium new file mode 100644 index 0000000000..07ee195662 --- /dev/null +++ b/packages/addons/browser/chromium/source/bin/chromium @@ -0,0 +1,33 @@ +#!/bin/sh +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# +# OpenELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# OpenELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC. If not, see . +################################################################################ + +# make sure we use "own" gtk/pango/nss/etc +export LD_LIBRARY_PATH=/storage/.kodi/addons/browser.chromium/lib + +# configure pango/pixbuf +export PANGO_RC_FILE=/storage/.kodi/addons/browser.chromium/config/pangorc +export GDK_PIXBUF_MODULE_FILE=/storage/.kodi/addons/browser.chromium/config/pixbuf.loaders.cache + +# font rendering in gtk widgets is brokeen with nvidia blob. use our Xdefaults +export XENVIRONMENT=/storage/.kodi/addons/browser.chromium/config/Xdefaults + +# start chromium +LD_PRELOAD=/usr/lib/libGL.so /storage/.kodi/addons/browser.chromium/bin/chromium.bin \ + --user-data-dir=/storage/.kodi/userdata/addon_data/browser.chromium/profile \ + --test-type $@ diff --git a/packages/addons/browser/chromium/source/default.py b/packages/addons/browser/chromium/source/default.py new file mode 100644 index 0000000000..b4e16086f6 --- /dev/null +++ b/packages/addons/browser/chromium/source/default.py @@ -0,0 +1,195 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +import os +import sys +import time +import xbmcaddon +import subprocess +from xml.dom.minidom import parse + +sys.path.append('/usr/share/kodi/addons/service.libreelec.settings') + +import oe + +__addon__ = xbmcaddon.Addon(); +__path__ = os.path.join(__addon__.getAddonInfo('path'), 'bin') + '/' + +pauseXBMC = __addon__.getSetting("PAUSE_XBMC") + +# widevine and flash stuff +__url__ = 'https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb' +__file__ = __url__.split('/')[-1] +__tar__ = 'data.tar.xz' +__tmp__ = '/tmp/widevine/' +__lib__ = 'opt/google/chrome/libwidevinecdm.so' +__flash__ = 'opt/google/chrome/PepperFlash/libpepflashplayer.so' + +def download(): + try: + if not os.path.isdir(__tmp__): + os.mkdir(__tmp__) + if not os.path.exists(__tmp__ + __file__): + oe.download_file(__url__, __tmp__ + __file__) + except Exception, e: + oe.notify('Chromium', 'Could not download file') + +def install_flash(): + try: + download() + oe.notify('Chromium', 'Extracting libpepflashplayer.so') + if not os.path.isdir(__tmp__ + __tar__): + oe.execute('cd ' + __tmp__ + ' && ar -x ' + __file__) + oe.execute('tar xf ' + __tmp__ + __tar__ + ' -C ' + __tmp__ + ' ./' + __flash__) + if not os.path.isdir(__path__ + 'PepperFlash'): + os.mkdir(__path__ + 'PepperFlash') + oe.copy_file(__tmp__ + __flash__, __path__ + 'PepperFlash/' + __flash__.split('/')[-1]) + oe.notify('Chromium', 'Installation of libpepflashplayer.so succeeded') + except Exception, e: + oe.notify('Chromium', 'Installation of libpepflashplayer.so failed') + +def install_widevine(): + try: + download() + oe.notify('Chromium', 'Extracting libwidevinecdm.so') + if not os.path.isdir(__tmp__ + __tar__): + oe.execute('cd ' + __tmp__ + ' && ar -x ' + __file__) + oe.execute('tar xf ' + __tmp__ + __tar__ + ' -C ' + __tmp__ + ' ./' + __lib__) + oe.copy_file(__tmp__ + __lib__, __path__ + __lib__.split('/')[-1]) + oe.notify('Chromium', 'Installation of libwidevinecdm.so succeeded') + except Exception, e: + oe.notify('Chromium', 'Installation of libwidevinecdm.so failed') + +def pauseXbmc(): + if pauseXBMC == "true": + xbmc.executebuiltin("PlayerControl(Stop)") + xbmc.audioSuspend() + xbmc.enableNavSounds(False) + +def resumeXbmc(): + if pauseXBMC == "true": + xbmc.audioResume() + xbmc.enableNavSounds(True) + +def startChromium(args): + oe.execute('chmod +x ' + __path__ + 'chromium') + oe.execute('chmod +x ' + __path__ + 'chromium.bin') + oe.execute('chmod 4755 ' + __path__ + 'chrome-sandbox') + + try: + window_mode = { + 'maximized': '--start-maximized', + 'kiosk': '--kiosk', + 'none': '', + } + + raster_mode = { + 'default': '', + 'off': '--disable-accelerated-2d-canvas --disable-gpu-compositing', + 'force': '--enable-gpu-rasterization --enable-accelerated-2d-canvas --ignore-gpu-blacklist', + } + + new_env = os.environ.copy() + vaapi_mode = __addon__.getSetting('VAAPI_MODE') + gpu_accel_mode = '' + if vaapi_mode == 'intel': + new_env['LIBVA_DRIVERS_PATH'] = '/usr/lib/va' + new_env['LIBVA_DRIVER_NAME'] = 'i965' + elif vaapi_mode == 'amd': + new_env['LIBVA_DRIVERS_PATH'] = os.path.join(__addon__.getAddonInfo('path'), 'lib') + new_env['LIBVA_DRIVER_NAME'] = 'vdpau' + elif vaapi_mode == 'nvidia': + new_env['LIBVA_DRIVERS_PATH'] = os.path.join(__addon__.getAddonInfo('path'), 'lib') + new_env['LIBVA_DRIVER_NAME'] = 'vdpau' + gpu_accel_mode = '--allow-no-sandbox-job --disable-gpu-sandbox' + else: + new_env['LIBGL_ALWAYS_SOFTWARE'] = '1' + + flash_plugin = '' + if os.path.exists(__path__ + 'PepperFlash/libpepflashplayer.so'): + flash_plugin = '--ppapi-flash-path=' + __path__ + 'PepperFlash/libpepflashplayer.so' + + if __addon__.getSetting('USE_CUST_AUDIODEVICE') == 'true': + alsa_device = __addon__.getSetting('CUST_AUDIODEVICE_STR') + else: + alsa_device = getAudioDevice() + alsa_param = '' + if not alsa_device == None and not alsa_device == '': + alsa_param = '--alsa-output-device=' + alsa_device + + chrome_params = window_mode.get(__addon__.getSetting('WINDOW_MODE')) + ' ' + \ + raster_mode.get(__addon__.getSetting('RASTER_MODE')) + ' ' + \ + flash_plugin + ' ' + \ + gpu_accel_mode + ' ' + \ + alsa_param + ' ' + \ + args + ' ' + \ + __addon__.getSetting('HOMEPAGE') + subprocess.call(__path__ + 'chromium ' + chrome_params, shell=True, env=new_env) + except Exception, e: + oe.dbg_log('chromium', unicode(e)) + +def isRuning(pname): + tmp = os.popen("ps -Af").read() + pcount = tmp.count(pname) + if pcount > 0: + return True + return False + +def getAudioDevice(): + try: + dom = parse("/storage/.kodi/userdata/guisettings.xml") + audiooutput=dom.getElementsByTagName('audiooutput') + for node in audiooutput: + dev = node.getElementsByTagName('audiodevice')[0].childNodes[0].nodeValue + if dev.startswith("ALSA:"): + dev = dev.split("ALSA:")[1] + if dev == "@": + return None + if dev.startswith("@:"): + dev = dev.split("@:")[1] + else: + # not ALSA + return None + except: + return None + if dev.startswith("CARD="): + dev = "plughw:" + dev + return dev + +if (not __addon__.getSetting("firstrun")): + __addon__.setSetting("firstrun", "1") + __addon__.openSettings() + +try: + args = ' '.join(sys.argv[1:]) +except: + args = "" + +if args == 'widevine': + install_widevine() +elif args == 'flash': + install_flash() +else: + if not isRuning('chromium.bin'): + pauseXbmc() + startChromium(args) + while isRuning('chromium.bin'): + time.sleep(1) + resumeXbmc() diff --git a/packages/addons/browser/chromium/source/resources/language/English/strings.xml b/packages/addons/browser/chromium/source/resources/language/English/strings.xml new file mode 100644 index 0000000000..8add108e03 --- /dev/null +++ b/packages/addons/browser/chromium/source/resources/language/English/strings.xml @@ -0,0 +1,16 @@ + + + General + Actions + Chromium Configuration + Stop Kodi Player and Suspend AudioEngine + HW Acceleration Mode + Rasterization Mode + Window Mode + Default Homepage + Use Custom Audio Device + Audio Device + Chromium Actions + Install libwidevinecdm.so (Netflix Support) + Install libpepflashplayer.so (Flash Player Support) + diff --git a/packages/addons/browser/chromium/source/resources/settings.xml b/packages/addons/browser/chromium/source/resources/settings.xml new file mode 100644 index 0000000000..65fc47d8cd --- /dev/null +++ b/packages/addons/browser/chromium/source/resources/settings.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + +