Merge pull request #119 from lrusak/chromium

Thanks :)
This commit is contained in:
Christian Hewitt 2016-04-13 17:11:21 +04:00
commit 9f493ac858
43 changed files with 2864 additions and 0 deletions

View File

@ -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"
}

View File

@ -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 <glib/gi18n-lib.h>
#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 <string.h>
@@ -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 <glib/gi18n-lib.h>
#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 <atk/atk.h> can be included directly.\"\n#endif\n\n#ifndef __ATK_ENUM_TYPES_H__\n#define __ATK_ENUM_TYPES_H__\n\n#include <atk/atkversion.h>\n#include <glib-object.h>\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 <atk.h>" \
- --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

View File

@ -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

View File

@ -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"

View File

@ -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 <gdk-pixbuf/gdk-pixbuf.h>\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

View File

@ -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"
}

View File

@ -0,0 +1,64 @@
From fca2ac06da064b133101f215efd5fbd738fb3ef9 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
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

View File

@ -0,0 +1,34 @@
From 3cb23c7b05be36e130bd1930dad3382ce8c08c51 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
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

View File

@ -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"

View File

@ -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 <http://www.gnu.org/licenses/>.
################################################################################
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"

View File

@ -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"

View File

@ -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 <http://www.gnu.org/licenses/>.
################################################################################
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"

View File

@ -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 <http://www.gnu.org/licenses/>.
################################################################################
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"

View File

@ -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 <http://www.gnu.org/licenses/>.
################################################################################
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
}

View File

@ -0,0 +1,29 @@
>From fda3706eb74ba5ad874853969f3df3e372739c8d Mon Sep 17 00:00:00 2001
From: "Xiang, Haihao" <haihao.xiang@intel.com>
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 <haihao.xiang@intel.com>
---
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

View File

@ -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 <GL/gl.h>
+ 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

View File

@ -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
);

View File

@ -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 <http://www.gnu.org/licenses/>.
################################################################################
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/
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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)

View File

@ -0,0 +1,241 @@
Submitted By: Armin K. <krejzi at email dot com>
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 <<EOF
+Usage: nss-config [OPTIONS] [LIBRARIES]
+Options:
+ [--prefix[=DIR]]
+ [--exec-prefix[=DIR]]
+ [--includedir[=DIR]]
+ [--libdir[=DIR]]
+ [--version]
+ [--libs]
+ [--cflags]
+Dynamic Libraries:
+ nss
+ nssutil
+ smime
+ ssl
+ softokn
+EOF
+ exit $1
+}
+
+if test $# -eq 0; then
+ usage 1 1>&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

View File

@ -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:*

View File

@ -0,0 +1,6 @@
[Pango]
ModuleFiles = /etc/pango/pango.modules
ModulesPath = /usr/lib/pango/1.8.0/modules
[PangoX]
AliasFiles = /etc/pango/pangox.aliases

View File

@ -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"

View File

@ -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

View File

@ -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 <fontconfig/fcfreetype.h>
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 <string.h>
#include "pango-layout-private.h"
+#include "pango-enum-types.h"
typedef struct _Extents Extents;

View File

@ -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 <http://www.gnu.org/licenses/>.
################################################################################
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"

View File

@ -0,0 +1,2 @@
7.0.100
- initial LibreELEC release

View File

@ -0,0 +1 @@
Xft.dpi: 96

View File

@ -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:*

View File

@ -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

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -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
}

View File

@ -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<c
#if defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS) && \
!defined(WIDEVINE_CDM_IS_COMPONENT)
static bool skip_widevine_cdm_file_check = false;
- if (PathService::Get(chrome::FILE_WIDEVINE_CDM_ADAPTER, &path)) {
+ bool widevine_cdm_present =
+ skip_widevine_cdm_file_check ||
+ (PathService::Get(chrome::FILE_WIDEVINE_CDM, &path) &&
+ base::PathExists(path));
+ if (widevine_cdm_present &&
+ PathService::Get(chrome::FILE_WIDEVINE_CDM_ADAPTER, &path)) {
if (skip_widevine_cdm_file_check || base::PathExists(path)) {
content::PepperPluginInfo widevine_cdm;
widevine_cdm.is_out_of_process = true;
diff -upr chromium-48.0.2564.82.orig/chrome/common/chrome_paths.cc chromium-48.0.2564.82/chrome/common/chrome_paths.cc
--- chromium-48.0.2564.82.orig/chrome/common/chrome_paths.cc 2016-01-20 22:01:20.000000000 +0200
+++ chromium-48.0.2564.82/chrome/common/chrome_paths.cc 2016-01-21 19:18:51.287978456 +0200
@@ -375,6 +375,11 @@ bool PathProvider(int key, base::FilePat
return false;
cur = cur.AppendASCII(kWidevineCdmAdapterFileName);
break;
+ case chrome::FILE_WIDEVINE_CDM:
+ if (!GetInternalPluginsDirectory(&cur))
+ return false;
+ cur = cur.AppendASCII(kWidevineCdmFileName);
+ break;
#endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS)
case chrome::FILE_RESOURCES_PACK:
#if defined(OS_MACOSX) && !defined(OS_IOS)
diff -upr chromium-48.0.2564.82.orig/chrome/common/chrome_paths.h chromium-48.0.2564.82/chrome/common/chrome_paths.h
--- chromium-48.0.2564.82.orig/chrome/common/chrome_paths.h 2016-01-14 03:49:22.000000000 +0200
+++ chromium-48.0.2564.82/chrome/common/chrome_paths.h 2016-01-21 19:18:51.287978456 +0200
@@ -99,6 +99,7 @@ enum {
DIR_COMPONENT_WIDEVINE_CDM, // Directory that contains component-updated
// Widevine CDM files.
FILE_WIDEVINE_CDM_ADAPTER, // Full path to the Widevine CDM adapter file.
+ FILE_WIDEVINE_CDM, // Full path to the Widevine CDM file.
FILE_RESOURCES_PACK, // Full path to the .pak file containing
// binary data (e.g., html files and images
// used by internal pages).
diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h
--- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-14 01:05:17.000000000 +0200
+++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-21 19:18:51.287978456 +0200
@@ -12,4 +12,6 @@
#define WIDEVINE_CDM_AVAILABLE
+#define WIDEVINE_CDM_VERSION_STRING "Pinkie Pie"
+
#endif // WIDEVINE_CDM_VERSION_H_

View File

@ -0,0 +1,10 @@
--- a/chrome/browser/ui/aura/chrome_browser_main_extra_parts_aura.cc 2015-12-15 12:05:07.000000000 -0800
+++ b/chrome/browser/ui/aura/chrome_browser_main_extra_parts_aura.cc 2016-01-12 16:08:45.701976368 -0800
@@ -140,7 +140,6 @@
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
// Now that we have some minimal ui initialized, check to see if we're
// running as root and bail if we are.
- DetectRunningAsRoot();
#endif
}

View File

@ -0,0 +1,10 @@
--- a/sandbox/linux/suid/client/setuid_sandbox_client.cc 2015-11-13 03:04:19.000000000 -0800
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.cc 2016-01-12 22:06:26.291831672 -0800
@@ -123,7 +123,6 @@
// We now consider ourselves "fully sandboxed" as far as the
// setuid sandbox is concerned.
- CHECK(IsFileSystemAccessDenied());
sandboxed_ = true;
return true;
}

View File

@ -0,0 +1,490 @@
Description: Enables using VA-API hardware acceleration in Linux. The patch for bpf_gpu_policy_linux.cc initially came from https://codereview.chromium.org/15955009/diff/92001/content/common/sandbox_linux/bpf_gpu_policy_linux.cc.
Index: dev.wily/content/common/gpu/media/gpu_video_decode_accelerator.cc
===================================================================
--- dev.wily.orig/content/common/gpu/media/gpu_video_decode_accelerator.cc
+++ dev.wily/content/common/gpu/media/gpu_video_decode_accelerator.cc
@@ -34,7 +34,7 @@
#include "content/common/gpu/media/dxva_video_decode_accelerator_win.h"
#elif defined(OS_MACOSX)
#include "content/common/gpu/media/vt_video_decode_accelerator_mac.h"
-#elif defined(OS_CHROMEOS)
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(USE_V4L2_CODEC)
#include "content/common/gpu/media/v4l2_device.h"
#include "content/common/gpu/media/v4l2_slice_video_decode_accelerator.h"
@@ -164,7 +164,7 @@
#if defined(OS_WIN)
capabilities.supported_profiles =
DXVAVideoDecodeAccelerator::GetSupportedProfiles();
-#elif defined(OS_CHROMEOS)
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
media::VideoDecodeAccelerator::SupportedProfiles vda_profiles;
#if defined(USE_V4L2_CODEC)
vda_profiles = V4L2VideoDecodeAccelerator::GetSupportedProfiles();
@@ -251,6 +251,8 @@ void GpuVideoDecodeAccelerator::Initiali
}
#endif
+ VLOG(1) << "Initializing GPU video decode accelerator.";
+
// Array of Create..VDA() function pointers, maybe applicable to the current
// platform. This list is ordered by priority of use and it should be the
// same as the order of querying supported profiles of VDAs.
@@ -361,11 +361,14 @@
&GpuVideoDecodeAccelerator::CreateAndroidVDA};
for (const auto& create_vda_function : create_vda_fps) {
+ VLOG(1) << "Testing create_vda_function.";
video_decode_accelerator_ = (this->*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<media::VideoDecodeAccelerator>
GpuVideoDecodeAccelerator::CreateVaapiVDA() {
scoped_ptr<media::VideoDecodeAccelerator> 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> 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<VAConfigAttrib>& 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<VASurfaceAttrib> attrib_list(
- base::checked_cast<size_t>(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<media::VideoDecodeAccelerator>
CommandBufferProxyImpl::CreateVideoDecoder() {
+ TRACE_EVENT0("gpu", "CommandBufferProxyImpl::CreateVideoDecoder");
if (!channel_)
return scoped_ptr<media::VideoDecodeAccelerator>();
+ VLOG(1) << "About to create GpuVideoDecodeAcceleratorHost.";
return scoped_ptr<media::VideoDecodeAccelerator>(
new GpuVideoDecodeAcceleratorHost(channel_, this));
}

View File

@ -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 <http://www.gnu.org/licenses/>.
################################################################################
# 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 $@

View File

@ -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()

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
<string id="1000">General</string>
<string id="1001">Actions</string>
<string id="1020">Chromium Configuration</string>
<string id="1021">Stop Kodi Player and Suspend AudioEngine</string>
<string id="1022">HW Acceleration Mode</string>
<string id="1023">Rasterization Mode</string>
<string id="1024">Window Mode</string>
<string id="1025">Default Homepage</string>
<string id="1026">Use Custom Audio Device</string>
<string id="1027">Audio Device</string>
<string id="1030">Chromium Actions</string>
<string id="1031">Install libwidevinecdm.so (Netflix Support)</string>
<string id="1032">Install libpepflashplayer.so (Flash Player Support)</string>
</strings>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings>
<category label="1000">
<setting label="1020" type="lsep"/>
<setting type="sep" />
<setting id="PAUSE_XBMC" type="bool" label="1021" default="true" />
<setting id="VAAPI_MODE" type="labelenum" label="1022" values="off|intel|amd|nvidia" default="off"/>
<setting id="RASTER_MODE" type="labelenum" label="1023" values="default|off|force" default="default" subsetting="true" enable="gt(-1,0)"/>
<setting id="WINDOW_MODE" type="labelenum" label="1024" values="maximized|kiosk|none" default="maximized" />
<setting id="HOMEPAGE" type="text" label="1025" default="https://libreelec.tv" />
<setting id="USE_CUST_AUDIODEVICE" type="bool" label="1026" default="false" />
<setting id="CUST_AUDIODEVICE_STR" type="text" label="1027" visible="eq(-1,true)" subsetting="true" default="" />
</category>
<category label="1001">
<setting label="1030" type="lsep"/>
<setting type="sep" />
<setting label="1031" type="action" action="RunScript(browser.chromium, widevine)"/>
<setting label="1032" type="action" action="RunScript(browser.chromium, flash)"/>
</category>
</settings>