WebKit Bugzilla
Attachment 371743 Details for
Bug 191196
: [WPE][GTK] Remove either the jhbuild or the flatpak environment
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-191196-20190610095622.patch (text/plain), 95.56 KB, created by
Michael Catanzaro
on 2019-06-10 07:56:23 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Michael Catanzaro
Created:
2019-06-10 07:56:23 PDT
Size:
95.56 KB
patch
obsolete
>Subversion Revision: 246218 >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index e7796e197e0b351c296f4cacd9086c4310cf097a..4a580bcfb3c394a7e8176b57d514132ca308b33f 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,62 @@ >+2019-06-10 Michael Catanzaro <mcatanzaro@igalia.com> >+ >+ [WPE][GTK] Remove the flatpak environment development environment >+ https://bugs.webkit.org/show_bug.cgi?id=191196 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ The transition from jhbuild to flatpak has been stalled for a very long time. It doesn't >+ make sense to support two different developement environments. Having two environments >+ increases maintenance burden, and it's frustrating to see unfinished transitional code >+ linger in WebKit for excessive periods of time. The point of the transition to flatpak was >+ to remove the jhbuild environment, but, at least for the time being, this has clearly >+ failed. So remove it for now. When we are ready to retake this project and really complete >+ the transition, then we can reland this code. >+ >+ * Scripts/build-webkit: >+ * Scripts/generate-jsc-bundle: >+ (main): >+ * Scripts/run-gtk-tests: >+ * Scripts/run-minibrowser: >+ * Scripts/run-qt-wpe-minibrowser: >+ * Scripts/run-webdriver-tests: >+ * Scripts/run-webkit-tests: >+ * Scripts/run-wpe-tests: >+ * Scripts/update-webkitgtk-flatpak: Removed. >+ * Scripts/update-webkitwpe-flatpak: Removed. >+ * Scripts/webkit-flatpak: Removed. >+ * Scripts/webkitdirs.pm: >+ (launcherPath): >+ (getFlatpakPath): Deleted. >+ (inFlatpakSandbox): Deleted. >+ (runInFlatpak): Deleted. >+ (runInFlatpakIfAvailable): Deleted. >+ (shouldUseFlatpak): Deleted. >+ * Scripts/webkitpy/port/base.py: >+ (Port._is_arch_based): >+ (Port._apache_config_file_name_for_platform): >+ (Port._should_run_as_pixel_test): >+ (Port._should_use_jhbuild): >+ (Port._is_flatpak): Deleted. >+ (Port._should_use_flatpak): Deleted. >+ (Port._in_flatpak_sandbox): Deleted. >+ * Scripts/webkitpy/port/gtk.py: >+ (GtkPort.setup_environ_for_server): >+ * Scripts/webkitpy/w3c/wpt_runner.py: >+ (main): >+ * flatpak/files/default.xkm: Removed. >+ * flatpak/files/httpd-autogen.sh: Removed. >+ * flatpak/flatpakutils.py: Removed. >+ * flatpak/org.webkit.CommonModules.yaml: Removed. >+ * flatpak/org.webkit.GTK.yaml: Removed. >+ * flatpak/org.webkit.WPE.yaml: Removed. >+ * flatpak/org.webkit.WPEModules.yaml: Removed. >+ * flatpak/org.webkit.WPEQT.yaml: Removed. >+ * flatpak/org.webkit.WebKit.yaml: Removed. >+ * flatpak/patches/httpd-0001-configure-use-pkg-config-for-PCRE-detection.patch: Removed. >+ * flatpak/patches/libgcrypt-0001-Use-pkg-config-to-detect-gpg-error.patch: Removed. >+ * flatpak/patches/xvfb-0001-HACK-Avoid-compiling-a-kbm-file.patch: Removed. >+ > 2019-06-07 Wenson Hsieh <wenson_hsieh@apple.com> > > [iOS] At least 6 API tests are failing due to an exception when writing NSAttributedString to the pasteboard >diff --git a/Tools/Scripts/build-webkit b/Tools/Scripts/build-webkit >index e3e00ada84f934103766d6ebcac24a6608cfa435..b9abe229b7fb64955d2504278693b7402e2be0cc 100755 >--- a/Tools/Scripts/build-webkit >+++ b/Tools/Scripts/build-webkit >@@ -50,12 +50,6 @@ sub writeCongrats(); > checkRequiredSystemConfig(); > setConfiguration(); > >-if (shouldUseFlatpak()) { >- print "Building flatpak based environment\n"; >- >- runInFlatpak("/app/webkit/Tools/Scripts/build-webkit"); >-} >- > my $originalWorkingDirectory = getcwd(); > chdirWebKit(); > >diff --git a/Tools/Scripts/generate-jsc-bundle b/Tools/Scripts/generate-jsc-bundle >index 9c0e8428ab37db3dca2674b90839094696712698..954c446e5c933761462abcb2ddf30b873ab8bf70 100755 >--- a/Tools/Scripts/generate-jsc-bundle >+++ b/Tools/Scripts/generate-jsc-bundle >@@ -35,10 +35,8 @@ import tempfile > import zipfile > > top_level_directory = os.path.normpath(os.path.join(os.path.dirname(__file__), '..', '..')) >-sys.path.insert(0, os.path.join(top_level_directory, 'Tools', 'flatpak')) > sys.path.insert(0, os.path.join(top_level_directory, 'Tools', 'jhbuild')) > import jhbuildutils >-import flatpakutils > > > # Ideally we should use something like lddtree or create our own version of that >@@ -231,9 +229,7 @@ def main(): > platform = options.platform.lower() > configuration = options.configuration.lower() > if platform == 'gtk': >- flatpakutils.run_in_sandbox_if_available(sys.argv) >- if not flatpakutils.is_sandboxed(): >- jhbuildutils.enter_jhbuild_environment_if_available("gtk") >+ jhbuildutils.enter_jhbuild_environment_if_available("gtk") > else: > raise NotImplementedError('Unsupported platform') > >diff --git a/Tools/Scripts/run-gtk-tests b/Tools/Scripts/run-gtk-tests >index 41b05e2df4b1e6d8fe38ea3c549b533584a4297e..a73925447e2435dd3b05a0010d1e5dff3764c0d4 100755 >--- a/Tools/Scripts/run-gtk-tests >+++ b/Tools/Scripts/run-gtk-tests >@@ -25,12 +25,10 @@ import optparse > from gi.repository import Gio, GLib > > top_level_directory = os.path.normpath(os.path.join(os.path.dirname(__file__), "..", "..")) >-sys.path.insert(0, os.path.join(top_level_directory, "Tools", "flatpak")) > sys.path.insert(0, os.path.join(top_level_directory, "Tools", "jhbuild")) > sys.path.insert(0, os.path.join(top_level_directory, "Tools", "glib")) > import common > import jhbuildutils >-import flatpakutils > from api_test_runner import TestRunner, add_options > > class GtkTestRunner(TestRunner): >@@ -129,11 +127,10 @@ class GtkTestRunner(TestRunner): > return False > > if __name__ == "__main__": >- flatpakutils.run_in_sandbox_if_available(sys.argv) >- if not flatpakutils.is_sandboxed() and not jhbuildutils.enter_jhbuild_environment_if_available("gtk"): >+ if not jhbuildutils.enter_jhbuild_environment_if_available("gtk"): > print '***' >- print '*** Warning: jhbuild environment not present and not running in flatpak.' >- print '*** Run update-webkitgtk-libs or update-webkitgtk-flatpak before build-webkit to ensure proper testing..' >+ print '*** Warning: jhbuild environment not present' >+ print '*** Run update-webkitgtk-libs before build-webkit to ensure proper testing' > print '***' > > option_parser = optparse.OptionParser(usage='usage: %prog [options] [test...]') >diff --git a/Tools/Scripts/run-minibrowser b/Tools/Scripts/run-minibrowser >index 4cf6be4047bfd76d68109ab29aa68a90dc0866e1..495440531aeccc084ecdc3855e2399e3f3520841 100755 >--- a/Tools/Scripts/run-minibrowser >+++ b/Tools/Scripts/run-minibrowser >@@ -45,8 +45,6 @@ prohibitUnknownPort(); > setConfiguration(); > > if (isGtk() || isWPE()) { >- runInFlatpakIfAvailable("/app/webkit/Tools/Scripts/run-minibrowser"); >- > # Check to see that all the frameworks are built. > checkFrameworks(); > >diff --git a/Tools/Scripts/run-qt-wpe-minibrowser b/Tools/Scripts/run-qt-wpe-minibrowser >index aeacb483c2fd10aaa5fdd00dc6d4c0c9f6173245..a23b6a5f3eac6908512166653b6dc18e25dde2b6 100755 >--- a/Tools/Scripts/run-qt-wpe-minibrowser >+++ b/Tools/Scripts/run-qt-wpe-minibrowser >@@ -27,10 +27,6 @@ use webkitdirs; > > setConfiguration(); > >-if (!inFlatpakSandbox()) { >- push @ARGV, "--wpe"; >-} >- > my $launcherName; > my $libPath; > my $launcherPath; >@@ -40,15 +36,12 @@ my $productDir = productDir(); > > $libPath = "/app/webkit/WebKitBuild/$configuration/lib/qml" if $configuration; > $ENV{"QML2_IMPORT_PATH"} = "$libPath" if $libPath; >-runInFlatpakIfAvailable("/app/webkit/Tools/Scripts/run-qt-wpe-minibrowser"); > > # Check to see that all the frameworks are built. > checkFrameworks(); > >-if (!inFlatpakSandbox()) { >- $libPath = "$productDir/lib/qml" if $productDir; >- $ENV{"QML2_IMPORT_PATH"} = "$libPath" if $libPath; >-} >+$libPath = "$productDir/lib/qml" if $productDir; >+$ENV{"QML2_IMPORT_PATH"} = "$libPath" if $libPath; > > $launcherPath = catdir($productDir, "bin", "qt-wpe-mini-browser"); > die "Can't find $launcherPath" unless -x $launcherPath; >diff --git a/Tools/Scripts/run-webdriver-tests b/Tools/Scripts/run-webdriver-tests >index acc35f72483f2832f09c8efb1895d181d4d67929..af87509b836231c08c987333a432254a01c663a5 100755 >--- a/Tools/Scripts/run-webdriver-tests >+++ b/Tools/Scripts/run-webdriver-tests >@@ -68,18 +68,14 @@ if port.name() in ['gtk', 'wpe']: > import os > > top_level_directory = os.path.normpath(os.path.join(os.path.dirname(__file__), '..', '..')) >- sys.path.insert(0, os.path.join(top_level_directory, 'Tools', 'flatpak')) >- import flatpakutils >- flatpakutils.run_in_sandbox_if_available(sys.argv) >- if not flatpakutils.is_sandboxed(): >- sys.path.insert(0, os.path.join(top_level_directory, 'Tools', 'jhbuild')) >- import jhbuildutils >+ sys.path.insert(0, os.path.join(top_level_directory, 'Tools', 'jhbuild')) >+ import jhbuildutils > >- if not jhbuildutils.enter_jhbuild_environment_if_available(port.name()): >- print '***' >- print '*** Warning: jhbuild environment not present and not running in flatpak.' >- print '*** Run update-webkitgtk-libs or update-webkitgtk-flatpak before build-webkit to ensure proper testing..' >- print '***' >+ if not jhbuildutils.enter_jhbuild_environment_if_available(port.name()): >+ print '***' >+ print '*** Warning: jhbuild environment not present' >+ print '*** Run update-webkitgtk-libs before build-webkit to ensure proper testing' >+ print '***' > > port._display_server = options.display_server > runner = WebDriverTestRunner(port) >diff --git a/Tools/Scripts/run-webkit-tests b/Tools/Scripts/run-webkit-tests >index fd87e870df6edffb7b7310ed15d19352389e041a..d8c57f4e88401adb3ded705888a6c5d1cbb35787 100755 >--- a/Tools/Scripts/run-webkit-tests >+++ b/Tools/Scripts/run-webkit-tests >@@ -34,8 +34,5 @@ import sys > from webkitpy.common import multiprocessing_bootstrap > > top_level_directory = os.path.normpath(os.path.join(os.path.dirname(__file__), '..', '..')) >-sys.path.insert(0, os.path.join(top_level_directory, 'Tools', 'flatpak')) >-import flatpakutils >-flatpakutils.run_in_sandbox_if_available(sys.argv) > >-multiprocessing_bootstrap.run('webkitpy', 'layout_tests', 'run_webkit_tests.py') >\ No newline at end of file >+multiprocessing_bootstrap.run('webkitpy', 'layout_tests', 'run_webkit_tests.py') >diff --git a/Tools/Scripts/run-wpe-tests b/Tools/Scripts/run-wpe-tests >index 8f7749eb6ad6d1f19913a17699dcb7677f4862d1..f37692e000f48f46548237828deb256948adfa60 100755 >--- a/Tools/Scripts/run-wpe-tests >+++ b/Tools/Scripts/run-wpe-tests >@@ -24,11 +24,9 @@ import optparse > > top_level_directory = os.path.normpath(os.path.join(os.path.dirname(__file__), "..", "..")) > sys.path.insert(0, os.path.join(top_level_directory, "Tools", "jhbuild")) >-sys.path.insert(0, os.path.join(top_level_directory, "Tools", "flatpak")) > sys.path.insert(0, os.path.join(top_level_directory, "Tools", "glib")) > import common > import jhbuildutils >-import flatpakutils > from api_test_runner import TestRunner, add_options > > class WPETestRunner(TestRunner): >@@ -47,11 +45,10 @@ class WPETestRunner(TestRunner): > return os.path.basename(os.path.dirname(test_program)) == "WPEQt" > > if __name__ == "__main__": >- flatpakutils.run_in_sandbox_if_available([sys.argv[0], "--wpe"] + sys.argv[1:]) >- if not flatpakutils.is_sandboxed() and not jhbuildutils.enter_jhbuild_environment_if_available("wpe"): >+ if not jhbuildutils.enter_jhbuild_environment_if_available("wpe"): > print '***' >- print '*** Warning: jhbuild environment not present and not running in flatpak.' >- print '*** Run update-webkitgtk-libs or update-webkitgtk-flatpak before build-webkit to ensure proper testing..' >+ print '*** Warning: jhbuild environment not present' >+ print '*** Run update-webkitwpe-libs before build-webkit to ensure proper testing' > print '***' > > option_parser = optparse.OptionParser(usage='usage: %prog [options] [test...]') >@@ -60,8 +57,6 @@ if __name__ == "__main__": > help='"headless": Use headless view backend. "wayland": Use the current wayland session.'), > > args = sys.argv[1:] >- if flatpakutils.is_sandboxed(): >- args = [ arg for arg in args if arg != "--wpe" ] > options, args = option_parser.parse_args(args) > > logging.basicConfig(level=logging.INFO, format="%(message)s") >diff --git a/Tools/Scripts/update-webkitgtk-flatpak b/Tools/Scripts/update-webkitgtk-flatpak >deleted file mode 100755 >index 0956f1f2e1485d24862ef7f6d74a2f3f98cf92f8..0000000000000000000000000000000000000000 >--- a/Tools/Scripts/update-webkitgtk-flatpak >+++ /dev/null >@@ -1,28 +0,0 @@ >-#!/usr/bin/env python >-# Copyright (C) 2018 Igalia S.L. >-# Copyright (c) 2018, Thibault Saunier <tsaunier@igalia.com> >-# >-# This program is free software; you can redistribute it and/or >-# modify it under the terms of the GNU Lesser General Public >-# License as published by the Free Software Foundation; either >-# version 2.1 of the License, 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 >-# Lesser General Public License for more details. >-# >-# You should have received a copy of the GNU Lesser General Public >-# License along with this program; if not, write to the >-# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, >-# Boston, MA 02110-1301, USA. >-# pylint: disable=missing-docstring,invalid-name >-import os >-import sys >- >-top_level_directory = os.path.normpath(os.path.join(os.path.dirname(__file__), "..", "..")) >-sys.path.insert(0, os.path.join(top_level_directory, "Tools", "flatpak")) >-from flatpakutils import WebkitFlatpak >- >-if __name__ == "__main__": >- WebkitFlatpak.load_from_args(["--gtk", "--update"] + sys.argv[1:]).run() >diff --git a/Tools/Scripts/update-webkitwpe-flatpak b/Tools/Scripts/update-webkitwpe-flatpak >deleted file mode 100755 >index 564e876521118e2fc0fd68b8c866aa9001cb8122..0000000000000000000000000000000000000000 >--- a/Tools/Scripts/update-webkitwpe-flatpak >+++ /dev/null >@@ -1,28 +0,0 @@ >-#!/usr/bin/env python >-# Copyright (C) 2018 Igalia S.L. >-# Copyright (c) 2018, Thibault Saunier <tsaunier@igalia.com> >-# >-# This program is free software; you can redistribute it and/or >-# modify it under the terms of the GNU Lesser General Public >-# License as published by the Free Software Foundation; either >-# version 2.1 of the License, 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 >-# Lesser General Public License for more details. >-# >-# You should have received a copy of the GNU Lesser General Public >-# License along with this program; if not, write to the >-# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, >-# Boston, MA 02110-1301, USA. >-# pylint: disable=missing-docstring,invalid-name >-import os >-import sys >- >-top_level_directory = os.path.normpath(os.path.join(os.path.dirname(__file__), "..", "..")) >-sys.path.insert(0, os.path.join(top_level_directory, "Tools", "flatpak")) >-from flatpakutils import WebkitFlatpak >- >-if __name__ == "__main__": >- WebkitFlatpak.load_from_args(["--wpe", "--update"] + sys.argv[1:]).run() >diff --git a/Tools/Scripts/webkit-flatpak b/Tools/Scripts/webkit-flatpak >deleted file mode 100755 >index 12ae53968fd7621e2bf1e4ce7fc98eaa7173a822..0000000000000000000000000000000000000000 >--- a/Tools/Scripts/webkit-flatpak >+++ /dev/null >@@ -1,28 +0,0 @@ >-#!/usr/bin/env python >-# Copyright (C) 2018 Igalia S.L. >-# Copyright (c) 2018, Thibault Saunier <tsaunier@igalia.com> >-# >-# This program is free software; you can redistribute it and/or >-# modify it under the terms of the GNU Lesser General Public >-# License as published by the Free Software Foundation; either >-# version 2.1 of the License, 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 >-# Lesser General Public License for more details. >-# >-# You should have received a copy of the GNU Lesser General Public >-# License along with this program; if not, write to the >-# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, >-# Boston, MA 02110-1301, USA. >-# pylint: disable=missing-docstring,invalid-name >-import os >-import sys >- >-top_level_directory = os.path.normpath(os.path.join(os.path.dirname(__file__), "..", "..")) >-sys.path.insert(0, os.path.join(top_level_directory, "Tools", "flatpak")) >-from flatpakutils import WebkitFlatpak >- >-if __name__ == "__main__": >- sys.exit(WebkitFlatpak.load_from_args().run()) >\ No newline at end of file >diff --git a/Tools/Scripts/webkitdirs.pm b/Tools/Scripts/webkitdirs.pm >index 67cc17a6b116c6001d3099302b85009a0c49ef3c..811496fe715bd594cb66dde4a36da8d0f8975970 100755 >--- a/Tools/Scripts/webkitdirs.pm >+++ b/Tools/Scripts/webkitdirs.pm >@@ -1655,9 +1655,6 @@ sub launcherPath() > { > my $relativeScriptsPath = relativeScriptsDir(); > if (isGtk() || isWPE()) { >- if (inFlatpakSandbox()) { >- return "Tools/Scripts/run-minibrowser"; >- } > return "$relativeScriptsPath/run-minibrowser"; > } elsif (isAppleWebKit()) { > return "$relativeScriptsPath/run-safari"; >@@ -1951,22 +1948,6 @@ sub getJhbuildPath() > return File::Spec->catdir(@jhbuildPath); > } > >-sub getFlatpakPath() >-{ >- my @flatpakBuildPath = File::Spec->splitdir(baseProductDir()); >- if (isGtk()) { >- push(@flatpakBuildPath, "GTK"); >- } elsif (isWPE()) { >- push(@flatpakBuildPath, "WPE"); >- } else { >- die "Cannot get Flatpak path for platform that isn't GTK+ or WPE.\n"; >- } >- my @configuration = configuration(); >- push(@flatpakBuildPath, "FlatpakTree$configuration"); >- >- return File::Spec->catdir(@flatpakBuildPath); >-} >- > sub isCachedArgumentfileOutOfDate($@) > { > my ($filename, $currentContents) = @_; >@@ -1989,40 +1970,6 @@ sub isCachedArgumentfileOutOfDate($@) > return 0; > } > >-sub inFlatpakSandbox() >-{ >- if (-f "/.flatpak-info") { >- return 1; >- } >- >- return 0; >-} >- >-sub runInFlatpak(@) >-{ >- my @arg = @_; >- my @command = (File::Spec->catfile(sourceDir(), "Tools", "Scripts", "webkit-flatpak")); >- exec @command, argumentsForConfiguration(), "--command", @_, argumentsForConfiguration(), @ARGV or die; >-} >- >-sub runInFlatpakIfAvailable(@) >-{ >- if (inFlatpakSandbox()) { >- return 0; >- } >- >- my @command = (File::Spec->catfile(sourceDir(), "Tools", "Scripts", "webkit-flatpak")); >- if (system(@command, "--available") != 0) { >- return 0; >- } >- >- if (! -e getFlatpakPath()) { >- return 0; >- } >- >- runInFlatpak(@_) >-} >- > sub wrapperPrefixIfNeeded() > { > >@@ -2052,11 +1999,6 @@ sub shouldUseJhbuild() > return ((isGtk() or isWPE()) and -e getJhbuildPath()); > } > >-sub shouldUseFlatpak() >-{ >- return ((isGtk() or isWPE()) and ! inFlatpakSandbox() and -e getFlatpakPath()); >-} >- > sub cmakeCachePath() > { > return File::Spec->catdir(baseProductDir(), configuration(), "CMakeCache.txt"); >diff --git a/Tools/Scripts/webkitpy/port/base.py b/Tools/Scripts/webkitpy/port/base.py >index c4d3285ea7e27920bdd1ba031f4fd75e8fa6d3b0..394fcf8a907f5962d897a9149d618aee58c89a0a 100644 >--- a/Tools/Scripts/webkitpy/port/base.py >+++ b/Tools/Scripts/webkitpy/port/base.py >@@ -1270,9 +1270,6 @@ class Port(object): > def _is_arch_based(self): > return self._filesystem.exists('/etc/arch-release') > >- def _is_flatpak(self): >- return self._filesystem.exists('/usr/manifest.json') >- > def _apache_version(self): > config = self._executive.run_command([self._path_to_apache(), '-v']) > return re.sub(r'(?:.|\n)*Server version: Apache/(\d+\.\d+)(?:.|\n)*', r'\1', config) >@@ -1310,8 +1307,6 @@ class Port(object): > return 'debian-httpd-' + self._apache_version() + self._debian_php_version() + '.conf' > if self._is_arch_based(): > return 'archlinux-httpd.conf' >- if self._is_flatpak(): >- return 'flatpak-httpd.conf' > # All platforms use apache2 except for CYGWIN (and Mac OS X Tiger and prior, which we no longer support). > return 'apache' + self._apache_version() + '-httpd.conf' > >@@ -1458,19 +1453,7 @@ class Port(object): > # --pixel-test-directory is not specified. > return True > >- def _should_use_flatpak(self): >- suffix = "" >- if self.port_name: >- suffix = self.port_name.upper() >- return self._filesystem.exists(self.path_from_webkit_base('WebKitBuild', suffix, "FlatpakTree")) >- >- def _in_flatpak_sandbox(self): >- return os.path.exists("/usr/manifest.json") >- > def _should_use_jhbuild(self): >- if self._in_flatpak_sandbox(): >- return False >- > suffix = "" > if self.port_name: > suffix = self.port_name.upper() >diff --git a/Tools/Scripts/webkitpy/port/gtk.py b/Tools/Scripts/webkitpy/port/gtk.py >index a9dc52595c88ac0de4ccd10f1409761611035c34..54b616b8b7f3aca6246b0072748653a86bd669a4 100644 >--- a/Tools/Scripts/webkitpy/port/gtk.py >+++ b/Tools/Scripts/webkitpy/port/gtk.py >@@ -130,12 +130,9 @@ class GtkPort(Port): > self._copy_value_from_environ_if_set(environment, 'GST_DEBUG_NO_COLOR') > > # Configure the software libgl renderer if jhbuild ready and we test inside a virtualized window system >- if self._driver_class() in [XvfbDriver, WestonDriver] and (self._should_use_jhbuild() or self._is_flatpak()): >- if self._should_use_jhbuild(): >- llvmpipe_libgl_path = self.host.executive.run_command(self._jhbuild_wrapper + ['printenv', 'LLVMPIPE_LIBGL_PATH'], >- ignore_errors=True).strip() >- else: # in flatpak >- llvmpipe_libgl_path = "/app/softGL/lib" >+ if self._driver_class() in [XvfbDriver, WestonDriver] and self._should_use_jhbuild(): >+ llvmpipe_libgl_path = self.host.executive.run_command(self._jhbuild_wrapper + ['printenv', 'LLVMPIPE_LIBGL_PATH'], >+ ignore_errors=True).strip() > > dri_libgl_path = os.path.join(llvmpipe_libgl_path, "dri") > if os.path.exists(os.path.join(llvmpipe_libgl_path, "libGL.so")) and os.path.exists(os.path.join(dri_libgl_path, "swrast_dri.so")): >@@ -148,7 +145,7 @@ class GtkPort(Port): > if os.environ.get('LD_LIBRARY_PATH'): > environment['LD_LIBRARY_PATH'] += ':%s' % os.environ.get('LD_LIBRARY_PATH') > else: >- _log.warning("Can't find Gallium llvmpipe driver. Try to run update-webkitgtk-libs or update-webkitgtk-flatpak") >+ _log.warning("Can't find Gallium llvmpipe driver. Try to run update-webkitgtk-libs") > if self.get_option("leaks"): > # Turn off GLib memory optimisations https://wiki.gnome.org/Valgrind. > environment['G_SLICE'] = 'always-malloc' >diff --git a/Tools/Scripts/webkitpy/w3c/wpt_runner.py b/Tools/Scripts/webkitpy/w3c/wpt_runner.py >index 4909959e0eecaf98cdb5ab305cf8215090dff982..b7e5625738ab8a01f8914c2086f5a4a096c0b3c6 100644 >--- a/Tools/Scripts/webkitpy/w3c/wpt_runner.py >+++ b/Tools/Scripts/webkitpy/w3c/wpt_runner.py >@@ -51,30 +51,15 @@ def main(script_name, argv): > sys.exit(-1) > > runner = WPTRunner(port, port.host, script_name, options) >- # If necessary, inject the jhbuild wrapper or re-run in flatpak sandbox. >+ # If necessary, inject the jhbuild wrapper. > if port.name() in ['gtk', 'wpe']: > filesystem = host.filesystem > > top_level_directory = filesystem.normpath(filesystem.join(filesystem.dirname(__file__), '..', '..', '..', '..')) >- sys.path.insert(0, filesystem.join(top_level_directory, 'Tools', 'flatpak')) >- import flatpakutils >- if not flatpakutils.is_sandboxed() and flatpakutils.check_flatpak(verbose=False): >- flatpak_runner = flatpakutils.WebkitFlatpak.load_from_args(sys.argv) >- if flatpak_runner.clean_args() and flatpak_runner.has_environment(): >- if not runner.prepare_wpt_checkout(): >- sys.exit(1) >- >- hostfilename = os.path.join(flatpak_runner.build_path, "wpt_etc_hosts") >- with open(hostfilename, "w") as stdout: >- flatpak_runner.run_in_sandbox(os.path.join(options.wpt_checkout, "wpt"), "make-hosts-file", stdout=stdout) >- >- sys.exit(flatpak_runner.run_in_sandbox(*sys.argv, >- extra_flatpak_args=['--bind-mount=/etc/hosts=%s' % hostfilename])) >- > sys.path.insert(0, filesystem.join(top_level_directory, 'Tools', 'jhbuild')) > import jhbuildutils > >- if not flatpakutils.is_sandboxed() and not jhbuildutils.enter_jhbuild_environment_if_available(port.name()): >+ if not jhbuildutils.enter_jhbuild_environment_if_available(port.name()): > _log.warning('jhbuild environment not present. Run update-webkitgtk-libs before build-webkit to ensure proper testing.') > > # Create the Port-specific driver. >diff --git a/Tools/flatpak/files/default.xkm b/Tools/flatpak/files/default.xkm >deleted file mode 100644 >index 016f6b08f6d808580968ba02256d9075d48a47d0..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 12032 >zcmcgyYj7Lab-ue;5FkiVl3%fFcS^rx*$NY2L4siGrUC(wpzt&Rl9H2%rASz$MUgZ} >zN>-f4N~V(^owUg`Nz-@ytDU~>RCUwNRDGqX`>)gKYdW4z`f?m6aod@+ovNL%-*@j> >z>~amIs%O&W9De(qd(OS*KK9<bi+lLug=g=I@5i23N)0GWeM}XU100V2DKy|iuSPB4 >zpU2jY+Q8R`9=|67Y*-IH9A$cZ_n7CW)c$wHRBi8KWozXEydx^Nu?tM7O6O8%qrKMc >zbR1RDN=G#{##J-FwYl5f+E6O4D!u!JYOO%I!K?<2|IGTOj*2qR*)C$Nc6OH)cx!LF >z(*>5U5WU#%RGmw!ol7T{H`bSTIy=Xox!mdQUU^i-_wPqUN)=mql`AGw5Eqh$j6)_M >z8OS6g3z^ClQ%MNyQtouQ)oACYRjvTP0{jZ_E5NS+zXJRU@GHQt0KWqK3h*nW+-AF3 >ztK{32TpoUT_~qf3hhH9kdHChwmxo^-etG!iQ>k{PP^`?fN+`3En}**s{HEbI4Zmsl >zO~Y>*e$()qhTn85*=)B;<wkYBlB={^jeIemYqVy{$rQweq#@&w2}lMq3CTjHX3D8# >zty(F!@|AMAF{#RpEMyAOnlCrTffJAnBv&XmQa~4yh9n_{N@byvW}8-8vu)&s@=}O3 >zl`7}jxzb!SS1Q)ZrE+_=I$tWDYUHcsMzPjJd%$<0(QM_Lh__OkDU|Bf;(SA?#_W8f >zQk-cwXG`s3t)L3^#ad&wP@Ai@6k4S?mvWQU`F3%kUKxX&Xw(;*$ny#4GmYGQ3z&sW >zm1?t<(y9Cc`Yv5roU1h<`Fgd{YS$aN+1y;CS#QkO3iX+0t(~to&eRcCBiCxr%+(6{ >z`L-$*D~-9-_#_1RjZe*`CX$d8#D%0G<B$nR1_HYY*iFDL1G^0DGO)|QE(5y^>@u*+ >zz%B#34D2RhHwn8**iFK25_XfYn}ppY>?UD13A-%pvarj-E(^OX?6R=S!Y&KDEbOwd >zn@XbX(a$OLa|->OLO-X_&nfhC3jORN-9`Vn7!NM&-0^CmwTR|d)nYr>nr}2qXBy2p >zH<^V@&AF*0Bn5FHX~;Na0+NADLSUDIoeMh`b}sB(*txKCVduimg&q3Cbzzr=T^e?2 >z*rj2YhFuzVY1pM<mxf&$cH^)chut{r#$h)OyK&f!!w&u7qCZ^phl~Dj(H}1Q!$p6% >z=nr>dLO(P4l*_)Z7Hji-mP${yXE_Ec)pm~Kph-l<bCua9$4a?@M;p&|WqJ1rpbK0C >zrh!G^IIszv0Maf4JOi8r&I7Z+Ip7qq&SxLk!1K)fazN(S0y4h>konC3ncpms`IUgo >z?-Y>vm4VDpKmWid@tiZC(?I5v2Qr@pAoH09GM^fd`Bc66JFZr?E^cphb~{Sl#|PCi >zGN|gc;!>r!P^@sS-n>G!EdrZC)n2Six}&BskLvk$ZT+cT6@i^iTiDSjp>mZ*DK}kg >z&*eQ^N9C8dcbIPZwkUi+m5XOEmw0vqTr<vfx)w6j<>TL=YL(_@+9x<RJv-=F_6aT= >zC%rgNDs@;j@=F-J#ij|?MLj$pZ+&n)dq=6Gw9nUT?Pk5=d3g3Q)mws4!ILH)byD3% >zpUOce&nLKUDSK3WMvYJNW<LJ9$Hvk1R<=6Ca!~1TT;5u$?6}y*)rgMCH}>N3)>vg9 >z5!)limIGcg_HE5N9E}brhbuk$(?;t>EJrzLw7AN*n-$#+df1?8d+6nXHr8Vz&b4{e >zj1%drQT7$`*zIoUZd0+iqYlTBNd)=G*kO5g#FQDaSuXl7hOrif3}9aZ#X!tau_$D~ >zLH||i`CMhGIEMwo)F;^AI+g*mXGjm5*hcjZ1gjLrBx2!s)iIBf4T-HL2<_+rAEUJx >zpTw-=Mf(h?cBxtPo}dF`?m!Gy+_7S)^MSSnWpks|t(fIlLn>ICx8`-Twzbr06;r22 >zO%JeMr`hJZ7lu5&?gcbC;y5I6aJ+f_%r<BHquF&#Q4B{fu9)pu0};o%D;OUJX!u$G >z-^RfIEzYQQUpzDxL+!<VUK9;FfSq5=!cG*I4NU|!u+UF7>J(v}P?sn+tOKY=4E1m@ >z7eyoRv*8zkUj%+O{3227-UD^i^WxIX+yXkdo-cFYhb|1?16P<INDPp$U6^~OxB7hj >zzqT#M&8@brjjll3+GyKj2in#jKj!hhc{7LGCd|FIdb{}TX=BG4k?|XR&U)<@c+T|L >zlsUi~qu+6$ty;zEoZnvIdZIh<9Q)VJ__w2;7UpF<Vh856gqo?(%Q}3kWkxu^OFqH& >z^5&&G19=9fp0~{TH=83({$@T2=I`~#J;D6Hb#v>sW*gsX-7E+54C=;4(tjAhdi}t> >z#Wfc5m3l|8{Oa84VqwW_kOJj+d!(DyG3pGMzCdI)^TotB9L)E$AM?%f2(Ht?Hq(1O >z<jZ*3W?U;CP_1GEJLq<CiLaSUxmsaK@7RJJg!sc_6RNkg9rliVr<XO$tjk&h+X&Zu >z>;n$0oyase$KMgGXQMLTk_r1(`w06b{lS8L)f<QCt={^GzOvCzM}y@^4|!$u>mOaO >zQQ6xfKYl|A?!}+OuFU=>>hgp8Xj9fusn_;VXL}#pBg3Bu-$#A1q`?pf`~8n#QKL1+ >zl_T7y0eDonwg>-;_Q%LW8}fQ1#J{Y0qL==9h<{b{p<epeLj3ER5BJjF4DmZOkLj_= >z@{j8Hu!lwbtio-=89({$!WlpLhv@&|K~#-Q>Tm5ItUvgH`h$D*A7Fm)k2=ObE}Y-2 >zcqMuq1>qVdhd;*wuaO=%_AfCWYu}2geFUM@Plx#DdK}J3|A`R)b)R!OP(Kyo*LocJ >z<NC1>f4Rp^1%5olf3wH;aVhob5dVCSqaL{bOo;!M&n>3^WQhNUaBksw{Y;4esPKei >z#_z9%_$Pg?r-ok)@lW|&cj2#u_%92O%gpjiA^xK9L78}dHpG9`<EA^+XG8oig?sV; >zmCtpKe=VH-&-VG79#^`(UKQ@O&)@daVU04s)Z<{_ugm!I?7!l39pM{3*X4iJ=em8~ >z>~T}!fA+cd{}-QYgMan8_Wy?PLDQY;-+Zq9|J~=>|37@L{r^+=Vfr6Y>PC={D)nE& >zF~jKm{@dqh38l7!_9vBkCcx>?4RE&CPLLy_-5|#^yBFkW)Js8*_$~+es8Y`cI3M{d >z0nR@8K!CFW{zCXL?s@6?)tirCpy$^B*Ym4z=C9}10N3-YaF(a%*8tb^t8j#`^!ys& >ze`m%MTGzC%_09MZ&QFK%a>>i?aov4bKfH9^eONy{ZYI2FkDCQ!pvUndjw{yVctOV% >z?{PDN2YcL%s6>w^wEa+z4{1K!<EBL)7XHyjceZ<OM?K{8#r4e{^?=7uEL68vJL*A? >zj~TAl7ik~1fL>p~53DcXtUc5JN!l;Mk1%rC4%2<UkM-DFKVd>UEm(#1?;%Ik_R5L9 >zofGSuo!#U5X9xbyfZtG5ar6Af`p(+u@%h%HCUf@Ey(kl}p(+K{{mcya{AP7h?)fqO >zLAf6XJ|y=Oz=!2N13WADlfYwgp9MZ9_fx>*a-Re;1eP@hT$20m1)h-mIO3wvW)L`v >zv5tEy_-*eQ*gj$G59lvLx7bJDfv(s`--WK(N6+7j+I{r=HhHFxeh<3&KKga&=KAQj >zpsV-MZ$sBGdi7r5b8`QF;1599Z->w(7WTmZVA|+F{g+{rGd>6O`249_ee|o)75eC( >zf^Mdd{ycQEee`S4mHOzPhVE1!J%5+uw~TPV;**%F7`^%);CIXYBftmb{`-L+f^e$g >zyu)$wKJX7h!ufpwx+nYSpM?&uB5$!@fiB-ie+jyUKKgUeP504nLRagfzX%;Zi0hc& >z34C1c-vxY++`k+6eGt~~?@>Q~p9_Bf<X$Bx_has{VZk+k^E}7MsP?z@yb|`m4x6BG >zt`6J$E^LCr`8#a$d$0)#=k&16@53f2oae(fe*l}HaPAM={2^?D!u23*^99%hg=<9E >z=8s?#6s{X#n=is9C|pazHh&D8pm2S$tRw1q=-K{!-{839zL$Gp-gA%3eJ}61pXDAm >zoG<s8LE*YWd+xuvC+9u)y4?Trp8Ia@#l!h<KN=LSSG4DQ0^c2Y&vyd8C-9#8f4&p& >zo_kg9UwQvoAor@4bydIfVOZfS5$9t6`wGV}$1b10pM!*Bc?JGK;o2Lv`4iX#h3hf0 >z(rtN6myb0^@Ik>x1Rnr;wm+<Oj`~MnxD37n1ZC8;i532>V;OdLLhwvk!QY;^r+OX2 >z{!Iur1e=2Mf=>vx1Q!L{f(wExg8M+P4!7-dEa4qh@OHt+1b;_-UV;Pq$m;hy((SOh >zAa<wV$G&7gn!d!EFKOdIQ|?K{J)mWs)O$ace_m|X1)mb!-jC||I>Mh3z9{is5WFb3 >zCU&QVKP|i?{5ydr2BqFDx)Xx$7kn;Y^FyM`2~G>XOYlj-F~MEI=LPQ(ObVt2j|n~k >z^x}CZ?%8%k3ftu!qPqi_65U;*yA$Zy-6v`95!?iN`F>b*cMI+aE{Kh1_pIoz2y!3A >z7`TTbu8H338!z9Y=w}3H1xtc+K(CC?iS8E!Ule?)XLD75|6n`t;yT0ihS!(%{Yib# >z@nd8B@cO#+G24i7dhL`KUJxt`{=6XTPkYbrGvLgRIzE@){l`V`aj#E*MEvg+ToQa- >z@T_14==pl%J0fYepeuMr&=DLEj0$pWGQO_hCj>7GzE|**f}axnG*DOQCjXcxFAu%* >zP9xCm<F#i{@ptV}{n606%3qev73c5RMy>3t-WMx{-wDlGCP~7(g`=*D4}WjIxV^=n >z*7^CacR8xOyt$0Iw5Q>HYopWI#&2H!6~p<bo$byh_mc>%cj0{09)IsQqs6G9Ti?M( >zYp`d<GONq$*!-EdGn0Tl&)RbL{QBm3#_nI<Z>FsH@KyPshUA!<?QZRDkMbSn&{f*= >zD;x8yZtd-KM$4TmJ0qji=uZTwhdDPki1()B+bgN$#G~qcx5Z<aQc<_Vh$*IDuqM>l >zV`FQbjZ2-~^_AtZi=EZ=y^CYrvCXaS#pR7LB;p_t{+qw`ovmzkVrndfm{&VHE8X?& >z-SsW*2Zz*bXS35?Ul~PF;8AsMV|nEQ@bcO^8fieC?{==ZNrS0ml)STvC^V*%@NrbF >z-oysd#)5%GSY5-P4ZH)jd;x#>4vf=be)<P3KYh(&I!=yZ<L&w19Y}X{I!~>9t8|_s >z!}m{o3?7iqx*Oy4ZmVm#igFE6Uejre$w82gb=I0ulot@^3p!r*5q<DGI6m9^<(&$| >zlhN_;^qHT2BT(PhbbWc+%uoMD!2e6yzgjN@>N^rhzoGqGF!23f3*`T2CLJf({Pd?C >zzdaY67w`=6^qHUD4dj1Tm(SB`e)=`Ek>6iuQU6M@fco>J9Uu2M?N^W|bh!6)F4{4! >zX7)B$%s_foT~{w3x(*8rRa^=DaU$VaLUf6ZvvjFf;0|=biD|)c!3m5<>NCP81+#)v >zCOwrjJe3mE`SGkAhM2{3derl*8<A%sx7U`{Is3ZG480t|^B48v8^I0FKhX~78FhX@ >zogYxg2h{NaC&W(22d?7->iB?DCf&rxbCJSzetZJ(oewRUz%Lsp7iT3C_>O{eQN|AE >zs<b`MRSBAMajr_ZDHrFegqw14uF7yJ7w0O4>-_j+V6@vG#h5>YayhaSDr)2Wl(ED4 >zD{YVSSAwQooWBxo%EkFB;ig=izcO6P#kov!KB>e41{BNVlaj!R0-k@=_BgL8Xv)QT >zE#anIoYxX=%Efst;ig=i=QP}u%O@?NVzwROctm+PJBd4+=h+f!(B^qhBF}tcOj<nV >zL(X$<M4o}uT>A~$F;!e$-__GQ#!Pa!U~|k2I>;LRmB4d=Zzniwi5P62$t3bjCXs#1 >zbe_W`=lM*NUO-vOF2I5h2hVYmGiKWJJf}{_SxzF)b`o(GtaD|1dG(zA;)oq#9Esl8 >zWk5WaN;{qvHCRPm$Xgm25AAqv6?%(jR}D@H<_ZZltj7l9;CWV)J|URV$i6iBq(slB >zpZTQ)i->zz*M|!}XP<-`LV7`u1)KrvtTvW6J6KC?^{V=9JOB|64qU-~frGjCYa=80 >zrO{l$y@X?Tt=A6wY2kf?6X{xS9P!hKy|dPp<#Q}I;@nVQK)GL3t2%RCZo>Sw`F7XR >zLwc{nJWL^x=nZxKFzRHPGEDrYkhfdL;lNpMsfvmW+)$s#<oYow$7>6zj(WRgac;o8 >Mkksd~bIIiY083K02><{9 > >diff --git a/Tools/flatpak/files/httpd-autogen.sh b/Tools/flatpak/files/httpd-autogen.sh >deleted file mode 100755 >index 1c0c483051fbdf8604b944a63511c4e121eaef4d..0000000000000000000000000000000000000000 >--- a/Tools/flatpak/files/httpd-autogen.sh >+++ /dev/null >@@ -1,2 +0,0 @@ >-automake --add-missing >-autoreconf --install >diff --git a/Tools/flatpak/flatpakutils.py b/Tools/flatpak/flatpakutils.py >deleted file mode 100644 >index d52131803544b9de3c9e804f3fd88a3ae1f21a6f..0000000000000000000000000000000000000000 >--- a/Tools/flatpak/flatpakutils.py >+++ /dev/null >@@ -1,977 +0,0 @@ >-# Copyright (C) 2017 Igalia S.L. >-# >-# This program is free software; you can redistribute it and/or >-# modify it under the terms of the GNU Lesser General Public >-# License as published by the Free Software Foundation; either >-# version 2.1 of the License, 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 >-# Lesser General Public License for more details. >-# >-# You should have received a copy of the GNU Lesser General Public >-# License along with this program; if not, write to the >-# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, >-# Boston, MA 02110-1301, USA. >-import argparse >-import logging >-try: >- import configparser >-except ImportError: >- import ConfigParser as configparser >-from contextlib import contextmanager >-import errno >-import json >-import multiprocessing >-import os >-import shlex >-import shutil >-import signal >-import subprocess >-import sys >-import tempfile >-import re >- >-from webkitpy.common.system.systemhost import SystemHost >-from webkitpy.port.factory import PortFactory >-from webkitpy.common.system.logutils import configure_logging >- >-try: >- from urllib.parse import urlparse # pylint: disable=E0611 >-except ImportError: >- from urlparse import urlparse >- >-try: >- from urllib.request import urlopen # pylint: disable=E0611 >-except ImportError: >- from urllib2 import urlopen >- >-FLATPAK_REQ = [ >- ("flatpak", "0.10.0"), >- ("flatpak-builder", "0.10.0"), >-] >- >-FLATPAK_VERSION = {} >- >-WPE_MANIFEST_MAP = { >- "qt": "org.webkit.WPEQT.yaml", >-} >- >-scriptdir = os.path.abspath(os.path.dirname(__file__)) >-_log = logging.getLogger(__name__) >- >- >-class Colors: >- HEADER = "\033[95m" >- OKBLUE = "\033[94m" >- OKGREEN = "\033[92m" >- WARNING = "\033[93m" >- FAIL = "\033[91m" >- ENDC = "\033[0m" >- >- >-class Console: >- >- quiet = False >- >- @classmethod >- def message(cls, str_format, *args): >- if cls.quiet: >- return >- >- if args: >- print(str_format % args) >- else: >- print(str_format) >- >- # Flush so that messages are printed at the right time >- # as we use many subprocesses. >- sys.stdout.flush() >- >- >-def check_flatpak(verbose=True): >- # Flatpak is only supported on Linux. >- if not sys.platform.startswith("linux"): >- return False >- >- for app, required_version in FLATPAK_REQ: >- try: >- output = subprocess.check_output([app, "--version"]) >- except (subprocess.CalledProcessError, OSError): >- if verbose: >- Console.message("\n%sYou need to install %s >= %s" >- " to be able to use the '%s' script.\n\n" >- "You can find some informations about" >- " how to install it for your distribution at:\n" >- " * http://flatpak.org/%s\n", Colors.FAIL, >- app, required_version, sys.argv[0], Colors.ENDC) >- return False >- >- def comparable_version(version): >- return tuple(map(int, (version.split(".")))) >- >- version = output.decode("utf-8").split(" ")[1].strip("\n") >- current = comparable_version(version) >- FLATPAK_VERSION[app] = current >- if current < comparable_version(required_version): >- Console.message("\n%s%s %s required but %s found." >- " Please update and try again%s\n", Colors.FAIL, >- app, required_version, version, Colors.ENDC) >- return False >- >- return True >- >- >-def remove_extension_points(array): >- result_args = [] >- for arg in array: >- if(not arg.startswith('--extension')): >- result_args.append(arg) >- return result_args >- >- >-def remove_comments(string): >- pattern = r"(\".*?\"|\'.*?\')|(/\*.*?\*/|//[^\r\n]*$)" >- # first group captures quoted strings (double or single) >- # second group captures comments (//single-line or /* multi-line */) >- regex = re.compile(pattern, re.MULTILINE | re.DOTALL) >- >- def _replacer(match): >- # if the 2nd group (capturing comments) is not None, >- # it means we have captured a non-quoted (real) comment string. >- if match.group(2) is not None: >- return "" # so we will return empty to remove the comment >- else: # otherwise, we will return the 1st group >- return match.group(1) # captured quoted-string >- return regex.sub(_replacer, string) >- >- >-def load_manifest(manifest_path, port_name=None, command=None): >- is_yaml = manifest_path.endswith('.yaml') >- with open(manifest_path, "r") as mr: >- contents = mr.read() >- >- contents = contents % {"COMMAND": command, "PORTNAME": port_name} >- if is_yaml: >- import yaml >- yaml_load = getattr(yaml, "safe_load", yaml.load) >- manifest = yaml_load(contents) >- else: >- contents = remove_comments(contents) >- manifest = json.loads(contents) >- >- return manifest >- >- >-def expand_submodules_recurse(modules, manifest_path, port_name, command): >- all_modules = [] >- if type(modules) is str: >- submanifest_path = os.path.join(os.path.dirname(manifest_path), modules) >- submanifest = load_manifest(submanifest_path, port_name=port_name, command=command) >- all_modules.extend(expand_submodules_recurse(submanifest, submanifest_path, port_name, command)) >- return all_modules >- >- # The last recurse manifest expand iteration might lead to a single module. >- if not isinstance(modules, list): >- all_modules.append(modules) >- return all_modules >- >- for module in modules: >- if type(module) is str: >- submanifest_path = os.path.join(os.path.dirname(manifest_path), module) >- submanifest = load_manifest(submanifest_path, port_name=port_name, command=command) >- all_modules.extend(expand_submodules_recurse(submanifest, submanifest_path, port_name, command)) >- else: >- all_modules.append(module) >- >- return all_modules >- >-def expand_manifest(manifest_path, outfile, port_name, source_root, command): >- """Creates the manifest file.""" >- try: >- os.remove(outfile) >- except OSError: >- pass >- >- manifest = load_manifest(manifest_path, port_name=port_name, command=command) >- if not manifest: >- return False >- >- if "sdk-hash" in manifest: >- del manifest["sdk-hash"] >- if "runtime-hash" in manifest: >- del manifest["runtime-hash"] >- >- all_modules = [] >- >- overriden_modules = [] >- if "WEBKIT_EXTRA_MODULESETS" in os.environ: >- overriden_modules = load_manifest(os.environ["WEBKIT_EXTRA_MODULESETS"]) >- if not overriden_modules: >- overriden_modules = [] >- for modules in manifest["modules"]: >- modules = expand_submodules_recurse(modules, manifest_path, port_name, command) >- >- if not isinstance(modules, list): >- modules = [modules] >- >- for module in modules: >- for overriden_module in overriden_modules: >- if module['name'] == overriden_module['name']: >- module = overriden_module >- overriden_modules.remove(module) >- break >- >- all_modules.append(module) >- >- # And add overriden modules right before the webkit port build def. >- for overriden_module in overriden_modules: >- all_modules.insert(-1, overriden_module) >- >- manifest["modules"] = all_modules >- for module in manifest["modules"]: >- if not module.get("sources"): >- continue >- >- if module["sources"][0]["type"] == "git": >- if port_name == module["name"]: >- repo = "file://" + source_root >- module["sources"][0]["url"] = repo >- >- for source in module["sources"]: >- if source["type"] == "patch" or (source["type"] == "file" and source.get('path')): >- source["path"] = os.path.join(os.path.dirname(manifest_path), source["path"]) >- >- with open(outfile, "w") as of: >- of.write(json.dumps(manifest, indent=4)) >- >- return True >- >- >-class FlatpakObject: >- >- def __init__(self, user): >- self.user = user >- >- def flatpak(self, command, *args, **kwargs): >- show_output = kwargs.pop("show_output", False) >- comment = kwargs.pop("comment", None) >- if comment: >- Console.message(comment) >- >- command = ["flatpak", command] >- if self.user: >- res = subprocess.check_output(command + ["--help"]).decode("utf-8") >- if "--user" in res: >- command.append("--user") >- command.extend(args) >- >- if not show_output: >- return subprocess.check_output(command).decode("utf-8") >- >- return subprocess.check_call(command) >- >- >-class FlatpakPackages(FlatpakObject): >- >- def __init__(self, repos, user=True): >- FlatpakObject.__init__(self, user=user) >- >- self.repos = repos >- >- self.runtimes = self.__detect_runtimes() >- self.apps = self.__detect_apps() >- self.packages = self.runtimes + self.apps >- >- >- def __detect_packages(self, *args): >- packs = [] >- if FLATPAK_VERSION["flatpak"] < (1, 1, 2): >- out = self.flatpak("list", "-d", *args) >- package_defs = [line for line in out.split("\n") if line] >- for package_def in package_defs: >- splited_packaged_def = package_def.split() >- name, arch, branch = splited_packaged_def[0].split("/") >- >- # If installed from a file, the package is in no repo >- repo_name = splited_packaged_def[1] >- repo = self.repos.repos.get(repo_name) >- >- packs.append(FlatpakPackage(name, branch, repo, arch)) >- else: >- out = self.flatpak("list", "--columns=application,arch,branch,origin", *args) >- package_defs = [line for line in out.split("\n") if line] >- for package_def in package_defs: >- name, arch, branch, origin = package_def.split("\t") >- >- # If installed from a file, the package is in no repo >- repo = self.repos.repos.get(origin) >- >- packs.append(FlatpakPackage(name, branch, repo, arch)) >- >- return packs >- >- >- def __detect_runtimes(self): >- return self.__detect_packages("--runtime") >- >- def __detect_apps(self): >- return self.__detect_packages() >- >- def __iter__(self): >- for package in self.packages: >- yield package >- >- >-class FlatpakRepos(FlatpakObject): >- >- def __init__(self, user=True): >- FlatpakObject.__init__(self, user=user) >- self.repos = {} >- self.update() >- >- def update(self): >- self.repos = {} >- if FLATPAK_VERSION["flatpak"] < (1, 1, 2): >- out = self.flatpak("remote-list", "-d") >- remotes = [line for line in out.split("\n") if line] >- for repo in remotes: >- for components in [repo.split(" "), repo.split("\t")]: >- if len(components) == 1: >- components = repo.split("\t") >- name = components[0] >- desc = "" >- url = None >- for elem in components[1:]: >- if not elem: >- continue >- parsed_url = urlparse(elem) >- if parsed_url.scheme: >- url = elem >- break >- >- if desc: >- desc += " " >- desc += elem >- >- if url: >- break >- >- if not url: >- Console.message("No valid URI found for: %s", repo) >- continue >- >- self.repos[name] = FlatpakRepo(name, url, desc, repos=self) >- else: >- out = self.flatpak("remote-list", "--columns=name,title,url") >- remotes = [line for line in out.split("\n") if line] >- for remote in remotes: >- name, title, url = remote.split("\t") >- parsed_url = urlparse(url) >- if not parsed_url.scheme: >- Console.message("No valid URI found for: %s", remote) >- continue >- >- self.repos[name] = FlatpakRepo(name, url, title, repos=self) >- >- self.packages = FlatpakPackages(self) >- >- def add(self, repo, override=True): >- same_name = None >- for name, tmprepo in self.repos.items(): >- if repo.url == tmprepo.url: >- return tmprepo >- elif repo.name == name: >- same_name = tmprepo >- >- if same_name: >- if override: >- self.flatpak("remote-modify", repo.name, "--url=" + repo.url, >- comment="Setting repo %s URL from %s to %s" >- % (repo.name, same_name.url, repo.url)) >- same_name.url = repo.url >- >- return same_name >- else: >- return None >- else: >- self.flatpak("remote-add", repo.name, "--from", repo.repo_file.name, >- "--if-not-exists", >- comment="Adding repo %s" % repo.name) >- >- repo.repos = self >- return repo >- >- >-class FlatpakRepo(FlatpakObject): >- >- def __init__(self, name, desc=None, url=None, >- repo_file=None, user=True, repos=None): >- FlatpakObject.__init__(self, user=user) >- >- self.name = name >- self.url = url >- self.desc = desc >- self.repo_file_name = repo_file >- self._repo_file = None >- self.repos = repos >- assert name >- if repo_file and not url: >- repo = configparser.ConfigParser() >- repo.read(self.repo_file.name) >- self.url = repo["Flatpak Repo"]["Url"] >- else: >- assert url >- >- @property >- def repo_file(self): >- if self._repo_file: >- return self._repo_file >- >- assert self.repo_file_name >- self._repo_file = tempfile.NamedTemporaryFile(mode="wb") >- self._repo_file.write(urlopen(self.repo_file_name).read()) >- self._repo_file.flush() >- >- return self._repo_file >- >- >-class FlatpakPackage(FlatpakObject): >- """A flatpak app.""" >- >- def __init__(self, name, branch, repo, arch, user=True, hash=None): >- FlatpakObject.__init__(self, user=user) >- >- self.name = name >- self.branch = str(branch) >- self.repo = repo >- self.arch = arch >- self.hash = hash >- >- def __str__(self): >- return "%s/%s/%s %s" % (self.name, self.arch, self.branch, self.repo.name) >- >- def is_installed(self, branch): >- if not self.repo: >- # Bundle installed from file >- return True >- >- self.repo.repos.update() >- for package in self.repo.repos.packages: >- if package.name == self.name and \ >- package.branch == branch and \ >- package.arch == self.arch: >- return True >- >- return False >- >- def install(self): >- if not self.repo: >- return False >- >- args = ["install", self.repo.name, self.name, "--reinstall", self.branch, "--assumeyes"] >- comment = "Installing from " + self.repo.name + " " + self.name + " " + self.arch + " " + self.branch >- self.flatpak(*args, show_output=True, comment=comment) >- if self.hash: >- args = ["update", "--commit", self.hash, self.name] >- comment = "Updating to %s" % self.hash >- self.flatpak(*args, show_output=True, comment=comment) >- >- def update(self): >- if not self.is_installed(self.branch): >- return self.install() >- >- extra_args = [] >- comment = "Updating %s" % self.name >- if self.hash: >- extra_args = ["--commit", self.hash] >- comment += " to %s" % self.hash >- >- extra_args.append("--assumeyes") >- >- self.flatpak("update", self.name, self.branch, show_output=True, >- *extra_args, comment=comment) >- >- >-@contextmanager >-def disable_signals(signals=[signal.SIGINT]): >- old_signal_handlers = [] >- >- for disabled_signal in signals: >- old_signal_handlers.append((disabled_signal, signal.getsignal(disabled_signal))) >- signal.signal(disabled_signal, signal.SIG_IGN) >- >- yield >- >- for disabled_signal, previous_handler in old_signal_handlers: >- signal.signal(disabled_signal, previous_handler) >- >- >-class WebkitFlatpak: >- >- @staticmethod >- def load_from_args(args=None, add_help=True): >- self = WebkitFlatpak() >- >- parser = argparse.ArgumentParser(prog="webkit-flatpak", add_help=add_help) >- general = parser.add_argument_group("General") >- general.add_argument('--verbose', action='store_true', >- help='Show debug message') >- general.add_argument("--debug", >- help="Compile with Debug configuration, also installs Sdk debug symboles.", >- action="store_true") >- general.add_argument("--release", help="Compile with Release configuration.", action="store_true") >- general.add_argument('--platform', action='store', help='Platform to use (e.g., "mac-lion")'), >- general.add_argument('--gtk', action='store_const', dest='platform', const='gtk', >- help='Alias for --platform=gtk') >- general.add_argument('--wpe', action='store_const', dest='platform', const='wpe', >- help=('Alias for --platform=wpe')) >- general.add_argument("-nf", "--no-flatpak-update", dest="no_flatpak_update", >- action="store_true", >- help="Do not update flaptak runtime/sdk") >- general.add_argument("-u", "--update", dest="update", >- action="store_true", >- help="Update the runtime/sdk/app and rebuild the development environment if needed") >- general.add_argument("-b", "--build-webkit", dest="build_webkit", >- action="store_true", >- help="Force rebuilding the app.") >- general.add_argument("-ba", "--build-all", dest="build_all", >- action="store_true", >- help="Force rebuilding the app and its dependencies.") >- general.add_argument("-q", "--quiet", dest="quiet", >- action="store_true", >- help="Do not print anything") >- general.add_argument("-t", "--tests", dest="run_tests", >- nargs=argparse.REMAINDER, >- help="Run LayoutTests") >- general.add_argument("-c", "--command", >- nargs=argparse.REMAINDER, >- help="The command to run in the sandbox", >- dest="user_command") >- general.add_argument('--available', action='store_true', dest="check_available", help='Check if required dependencies are available.'), >- general.add_argument("--use-icecream", help="Use the distributed icecream (icecc) compiler.", action="store_true") >- general.add_argument("--wpe-extension", action="store", dest="wpe_extension", help="WPE Extension to enable") >- >- debugoptions = parser.add_argument_group("Debugging") >- debugoptions.add_argument("--gdb", nargs="?", help="Activate gdb, passing extra args to it if wanted.") >- debugoptions.add_argument("-m", "--coredumpctl-matches", default="", help='Arguments to pass to gdb.') >- >- buildoptions = parser.add_argument_group("Extra build arguments") >- buildoptions.add_argument("--makeargs", help="Optional Makefile flags") >- buildoptions.add_argument("--cmakeargs", >- help="One or more optional CMake flags (e.g. --cmakeargs=\"-DFOO=bar -DCMAKE_PREFIX_PATH=/usr/local\")") >- >- general.add_argument("--clean", dest="clean", action="store_true", >- help="Clean previous builds and restart from scratch") >- >- _, self.args = parser.parse_known_args(args=args, namespace=self) >- >- return self >- >- def __init__(self): >- self.sdk_repo = None >- self.runtime = None >- self.locale = None >- self.sdk = None >- self.sdk_debug = None >- self.app = None >- >- self.verbose = False >- self.quiet = False >- self.packs = [] >- self.update = False >- self.args = [] >- self.finish_args = None >- >- self.no_flatpak_update = False >- self.release = False >- self.debug = False >- self.clean = False >- self.run_tests = None >- self.source_root = os.path.normpath(os.path.abspath(os.path.join(scriptdir, '../../'))) >- # Where the source folder is mounted inside the sandbox. >- self.sandbox_source_root = "/app/webkit" >- >- self.build_webkit = False >- self.build_all = False >- >- self.sdk_branch = None >- self.platform = "gtk" >- self.build_type = "Release" >- self.manifest_path = None >- self.name = None >- self.build_name = None >- self.flatpak_root_path = None >- self.cache_path = None >- self.app_module = None >- self.flatpak_default_args = [] >- self.check_available = False >- self.wpe_extension = None >- >- # Default application to run in the sandbox >- self.command = None >- self.user_command = [] >- >- # debug options >- self.gdb = None >- self.coredumpctl_matches = "" >- >- # Extra build options >- self.cmakeargs = "" >- self.makeargs = "" >- >- self.use_icecream = False >- self.icc_version = None >- >- def clean_args(self): >- os.environ["FLATPAK_USER_DIR"] = os.environ.get("WEBKIT_FLATPAK_USER_DIR", os.path.realpath(os.path.join(scriptdir, "../../WebKitBuild", "UserFlatpak"))) >- try: >- os.makedirs(os.environ["FLATPAK_USER_DIR"]) >- except OSError as e: >- pass >- >- configure_logging(logging.DEBUG if self.verbose else logging.INFO) >- _log.debug("Using flatpak user dir: %s" % os.environ["FLATPAK_USER_DIR"]) >- >- if not self.debug and not self.release: >- factory = PortFactory(SystemHost()) >- port = factory.get(self.platform) >- self.debug = port.default_configuration() == "Debug" >- self.build_type = "Debug" if self.debug else "Release" >- >- self.platform = self.platform.upper() >- >- if self.gdb is None and '--gdb' in sys.argv: >- self.gdb = "" >- >- self.command = "%s %s %s" % (os.path.join(self.sandbox_source_root, >- "Tools/Scripts/run-minibrowser"), >- "--" + self.platform.lower(), >- " --debug" if self.debug else " --release") >- >- self.name = "org.webkit.%s" % self.platform >- >- if self.wpe_extension: >- manifest_filename = WPE_MANIFEST_MAP[self.wpe_extension] >- else: >- manifest_filename = "org.webkit.WebKit.yaml" >- self.manifest_path = os.path.abspath(os.path.join(scriptdir, '../flatpak/') + manifest_filename) >- >- self.build_name = self.name + "-generated" >- >- build_root = os.path.join(self.source_root, 'WebKitBuild') >- self.flatpak_build_path = os.path.join(build_root, self.platform, "FlatpakTree" + self.build_type) >- self.cache_path = os.path.join(build_root, "FlatpakCache") >- self.build_path = os.path.join(build_root, self.platform, self.build_type) >- try: >- os.makedirs(self.build_path) >- except OSError as e: >- if e.errno != errno.EEXIST: >- raise e >- self.config_file = os.path.join(self.build_path, 'webkit_flatpak_config.json') >- >- Console.quiet = self.quiet >- if not check_flatpak(): >- return False >- >- repos = FlatpakRepos() >- self.sdk_repo = repos.add( >- FlatpakRepo("flathub", >- url="https://dl.flathub.org/repo/", >- repo_file="https://dl.flathub.org/repo/flathub.flatpakrepo")) >- >- manifest = load_manifest(self.manifest_path, port_name=self.name) >- if not manifest: >- return False >- >- self.app = manifest['app-id'] >- >- self.sdk_branch = manifest["runtime-version"] >- self.finish_args = manifest.get("finish-args", []) >- self.finish_args = remove_extension_points(self.finish_args) >- self.runtime = FlatpakPackage(manifest['runtime'], self.sdk_branch, >- self.sdk_repo, "x86_64", >- hash=manifest.get("runtime-hash")) >- self.locale = FlatpakPackage(manifest['runtime'] + '.Locale', >- self.sdk_branch, self.sdk_repo, "x86_64") >- self.sdk = FlatpakPackage(manifest['sdk'], self.sdk_branch, >- self.sdk_repo, "x86_64", >- hash=manifest.get("sdk-hash")) >- self.packs = [self.runtime, self.locale, self.sdk] >- >- if self.debug: >- self.sdk_debug = FlatpakPackage(manifest['sdk'] + '.Debug', self.sdk_branch, >- self.sdk_repo, "x86_64") >- self.packs.append(self.sdk_debug) >- self.manifest_generated_path = os.path.join(self.cache_path, >- self.build_name + ".json") >- try: >- with open(self.config_file) as config: >- json_config = json.load(config) >- self.icc_version = json_config['icecc_version'] >- except IOError as e: >- pass >- >- return True >- >- def run_in_sandbox(self, *args, **kwargs): >- cwd = kwargs.pop("cwd", None) >- extra_env_vars = kwargs.pop("env", {}) >- stdout = kwargs.pop("stdout", sys.stdout) >- extra_flatpak_args = kwargs.pop("extra_flatpak_args", []) >- >- if not isinstance(args, list): >- args = list(args) >- if args: >- if os.path.exists(args[0]): >- command = os.path.normpath(os.path.abspath(args[0])) >- # Take into account the fact that the webkit source dir is remounted inside the sandbox. >- args[0] = command.replace(self.source_root, self.sandbox_source_root) >- if args[0].endswith("build-webkit"): >- args.append("--prefix=/app") >- >- sandbox_build_path = os.path.join(self.sandbox_source_root, "WebKitBuild", self.build_type) >- with tempfile.NamedTemporaryFile(mode="w") as tmpscript: >- flatpak_command = ["flatpak", "build", "--die-with-parent", >- "--bind-mount=/run/shm=/dev/shm", >- # Workaround for https://webkit.org/b/187384 to have our own perl modules usable inside the sandbox >- # as setting the PERL5LIB envvar won't work inside apache (and for scripts using `perl -T``). >- "--bind-mount=/etc/perl=%s" % os.path.join(self.flatpak_build_path, "files/lib/perl"), >- "--bind-mount=/run/host/%s=%s" % (tempfile.gettempdir(), tempfile.gettempdir()), >- "--bind-mount=%s=%s" % (self.sandbox_source_root, self.source_root), >- "--talk-name=org.a11y.Bus", >- "--talk-name=org.gtk.vfs", >- "--talk-name=org.gtk.vfs.*", >- # We mount WebKitBuild/PORTNAME/BuildType to /app/webkit/WebKitBuild/BuildType >- # so we can build WPE and GTK in a same source tree. >- "--bind-mount=%s=%s" % (sandbox_build_path, self.build_path)] >- >- forwarded = { >- "WEBKIT_TOP_LEVEL": "/app/", >- "TEST_RUNNER_INJECTED_BUNDLE_FILENAME": "/app/webkit/lib/libTestRunnerInjectedBundle.so", >- "ICECC_VERSION": self.icc_version, >- } >- >- env_var_prefixes_to_keep = [ >- "GST", >- "GTK", >- "G", >- "JSC", >- "WEBKIT", >- "WEBKIT2", >- "WPE", >- "GIGACAGE", >- ] >- >- env_vars_to_keep = [ >- "JavaScriptCoreUseJIT", >- "Malloc", >- "WAYLAND_DISPLAY", >- "WAYLAND_SOCKET", >- "DISPLAY", >- "LANG", >- "NUMBER_OF_PROCESSORS", >- "CCACHE_PREFIX", >- "QML2_IMPORT_PATH", >- ] >- >- if self.use_icecream: >- _log.debug('Enabling the icecream compiler') >- forwarded["CCACHE_PREFIX"] = "icecc" >- if not os.environ.get('NUMBER_OF_PROCESSORS'): >- n_cores = multiprocessing.cpu_count() * 3 >- _log.debug('Follow icecream recommendation for the number of cores to use: %d' % n_cores) >- forwarded["NUMBER_OF_PROCESSORS"] = n_cores >- >- env_vars = os.environ >- env_vars.update(extra_env_vars) >- for envvar, value in env_vars.items(): >- if envvar.split("_")[0] in env_var_prefixes_to_keep or envvar in env_vars_to_keep: >- forwarded[envvar] = value >- >- for envvar, value in forwarded.items(): >- flatpak_command.append("--env=%s=%s" % (envvar, value)) >- >- flatpak_command += self.finish_args + extra_flatpak_args + [self.flatpak_build_path] >- >- shell_string = "" >- if args: >- if cwd: >- shell_string = 'cd "%s" && "%s"' % (cwd, '" "'.join(args)) >- else: >- shell_string = '"%s"' % ('" "'.join(args)) >- else: >- shell_string = self.command >- if self.args: >- shell_string += ' "%s"' % '" "'.join(self.args) >- >- tmpscript.write(shell_string) >- tmpscript.flush() >- >- _log.debug('Running in sandbox: "%s" %s\n' % ('" "'.join(flatpak_command), shell_string)) >- flatpak_command.extend(['sh', "/run/host/" + tmpscript.name]) >- >- try: >- subprocess.check_call(flatpak_command, stdout=stdout) >- except subprocess.CalledProcessError as e: >- sys.stderr.write(str(e) + "\n") >- return e.returncode >- except KeyboardInterrupt: >- return 0 >- >- return 0 >- >- def run(self): >- if self.check_available: >- return 0 >- >- if not self.clean_args(): >- return 1 >- >- if self.clean: >- if os.path.exists(self.flatpak_build_path): >- shutil.rmtree(self.flatpak_build_path) >- if os.path.exists(self.build_path): >- shutil.rmtree(self.build_path) >- >- if self.update: >- Console.message("Updating Flatpak environment for %s (%s)" % ( >- self.platform, self.build_type)) >- if not self.no_flatpak_update: >- self.update_all() >- >- return self.setup_dev_env() >- >- def has_environment(self): >- return os.path.exists(os.path.join(self.build_path, self.flatpak_build_path)) >- >- def save_config(self): >- with open(self.config_file, 'w') as config: >- json_config = {'icecc_version': self.icc_version} >- json.dump(json_config, config) >- >- def setup_ccache(self): >- for compiler in ["c++", "cc", "clang", "clang++", "g++", "gcc"]: >- self.run_in_sandbox("ln", "-s", "../../usr/bin/ccache", compiler, cwd="/app/bin") >- >- def setup_icecc(self): >- with tempfile.NamedTemporaryFile() as tmpfile: >- self.run_in_sandbox('icecc', '--build-native', stdout=tmpfile, cwd=self.build_path) >- tmpfile.flush() >- tmpfile.seek(0) >- icc_version_filename, = re.findall(r'.*creating (.*)', tmpfile.read()) >- self.icc_version = os.path.join(self.build_path, icc_version_filename) >- >- def setup_dev_env(self): >- if not os.path.exists(os.path.join(self.build_path, self.flatpak_build_path)) \ >- or self.update or self.build_all: >- self.install_all() >- Console.message("Building %s and dependencies in %s", >- self.name, self.flatpak_build_path) >- >- # Create environment dirs if necessary >- try: >- os.makedirs(os.path.dirname(self.manifest_generated_path)) >- except OSError as e: >- if e.errno != errno.EEXIST: >- raise e >- if not expand_manifest(self.manifest_path, self.manifest_generated_path, >- self.name, self.sandbox_source_root, self.command): >- return 1 >- >- builder_args = ["flatpak-builder", "--disable-rofiles-fuse", "--state-dir", >- self.cache_path, "--ccache", self.flatpak_build_path, "--force-clean", >- self.manifest_generated_path] >- builder_args.append("--build-only") >- builder_args.append("--stop-at=%s" % self.app) >- >- subprocess.check_call(builder_args) >- self.setup_ccache() >- self.setup_icecc() >- self.save_config() >- >- build_type = "--debug" if self.debug else "--release" >- if self.build_webkit: >- builder = [os.path.join(self.sandbox_source_root, 'Tools/Scripts/build-webkit'), >- build_type, '--' + self.platform.lower()] >- if self.makeargs: >- builder.append("--makeargs=%s" % self.makeargs) >- if self.cmakeargs: >- builder.append("--cmakeargs=%s" % self.cmakeargs) >- Console.message("Building webkit") >- res = self.run_in_sandbox(*builder) >- >- if res: >- return res >- else: >- Console.message("Using %s prefix in %s", self.name, self.flatpak_build_path) >- >- if self.run_tests is not None: >- test_launcher = [os.path.join(self.sandbox_source_root, 'Tools/Scripts/run-webkit-tests'), >- build_type, '--' + self.platform.lower()] + self.run_tests >- return self.run_in_sandbox(*test_launcher) >- elif self.gdb is not None: >- return self.run_gdb() >- elif self.user_command: >- return self.run_in_sandbox(*self.user_command) >- elif not self.update and not self.build_webkit: >- return self.run_in_sandbox() >- >- return 0 >- >- def install_all(self): >- for package in self.packs: >- if not package.is_installed(self.sdk_branch): >- package.install() >- >- def run_gdb(self): >- with disable_signals(): >- try: >- subprocess.check_output(['which', 'coredumpctl']) >- except subprocess.CalledProcessError as e: >- sys.stderr.write("'coredumpctl' not present on the system, can't run. (%s)\n" % e) >- return e.returncode >- >- # We need access to the host from the sandbox to run. >- with tempfile.NamedTemporaryFile() as coredump: >- with tempfile.NamedTemporaryFile() as stderr: >- subprocess.check_call(["coredumpctl", "dump"] + shlex.split(self.coredumpctl_matches), >- stdout=coredump, stderr=stderr) >- >- with open(stderr.name, 'r') as stderrf: >- stderr = stderrf.read() >- executable, = re.findall(".*Executable: (.*)", stderr) >- if not executable.startswith("/newroot"): >- sys.stderr.write("Executable %s doesn't seem to be a flatpaked application.\n" % executable) >- >- executable = executable.replace("/newroot", "") >- args = ["gdb", executable, "/run/host/%s" % coredump.name] + shlex.split(self.gdb) >- >- return self.run_in_sandbox(*args) >- >- def update_all(self): >- for m in [self.runtime, self.sdk, self.sdk_debug]: >- if m: >- m.update() >- >- >-def is_sandboxed(): >- return os.path.exists("/usr/manifest.json") >- >- >-def run_in_sandbox_if_available(args): >- if is_sandboxed(): >- return None >- >- if not check_flatpak(verbose=False): >- return None >- >- flatpak_runner = WebkitFlatpak.load_from_args(args, add_help=False) >- if not flatpak_runner.clean_args(): >- return None >- >- if not flatpak_runner.has_environment(): >- return None >- >- sys.exit(flatpak_runner.run_in_sandbox(*args)) >diff --git a/Tools/flatpak/org.webkit.CommonModules.yaml b/Tools/flatpak/org.webkit.CommonModules.yaml >deleted file mode 100644 >index d1c991b9e6b0f92cca2e6d5841a745b185693b96..0000000000000000000000000000000000000000 >--- a/Tools/flatpak/org.webkit.CommonModules.yaml >+++ /dev/null >@@ -1,324 +0,0 @@ >-# http and dependencies. >-- name: apr >- sources: >- - type: archive >- url: https://www.apache.org/dist/apr/apr-1.6.5.tar.bz2 >- sha256: a67ca9fcf9c4ff59bce7f428a323c8b5e18667fdea7b0ebad47d194371b0a105 >-- name: apr-util >- sources: >- - type: archive >- url: https://www.apache.org/dist/apr/apr-util-1.6.1.tar.bz2 >- sha512: "40eff8a37c0634f7fdddd6ca5e596b38de15fd10767a34c30bbe49c632816e8f3e1e230678034f578dd5816a94f246fb5dfdf48d644829af13bf28de3225205d" >- config-opts: >- - --with-apr=/app/bin/apr-1-config >-- name: httpd >- sources: >- - type: git >- url: https://github.com/apache/httpd.git >- branch: 2.4.37 >- - type : file >- path : files/httpd-autogen.sh >- dest-filename : autogen.sh >- # The version embedded in the sandbox doesn't have a working pcre-config >- - type: patch >- path: patches/httpd-0001-configure-use-pkg-config-for-PCRE-detection.patch >- config-opts: >- - --enable-mpms-shared=all >- - --enable-modules=all >- - --with-apr=/app/bin/apr-1-config >- - --with-apr-util=/app/bin/apu-1-config >- - --with-pcre=/app >- - --enable-authnz-fcgi >- - --enable-cgi >- - --enable-cgid >-- name: php >- sources: >- - type: archive >- url: https://php.net/distributions/php-7.2.6.tar.xz >- sha512: da86b1ff2df3b9e2d46e59a80296b940d81132975b621bdec9602f8b4c8d91a3fdcd4ffd7cb982d63d3ec974b3a12a7854e42a73b7f2cc8eefade14335aa7c71 >- config-opts: >- - --disable-xml >- - --disable-dom >- - --disable-libxml >- - --disable-simplexml >- - --disable-xmlreader >- - --disable-xmlwriter >- - --without-pear >- - --with-apxs2 >- - --with-zlib >- - --with-libzip >- - --enable-sockets=shared >-- name: libevent >- sources: >- - type: git >- url: https://github.com/libevent/libevent.git >- branch: e7ff4ef # 2.1.8 >- config-opts: >- - --disable-libevent-regress >- >-# Requirement for flatpkutils >-- name: python3-pyaml >- buildsystem: simple >- build-commands: >- - pip3 install --no-index --find-links="file://${PWD}" --prefix=${FLATPAK_DEST} pyaml >- sources: >- - type: file >- url: https://files.pythonhosted.org/packages/4a/85/db5a2df477072b2902b0eb892feb37d88ac635d36245a72a6a69b23b383a/PyYAML-3.12.tar.gz >- sha256: 592766c6303207a20efc445587778322d7f73b161bd994f227adaa341ba212ab >- - type: file >- url: https://files.pythonhosted.org/packages/9e/17/1d4ed6e1a4c0918a0357dfa2fdbe26bf63f6e616013c04a14bce9fd33e40/pyaml-17.12.1.tar.gz >- sha256: 66623c52f34d83a2c0fc963e08e8b9d0c13d88404e3b43b1852ef71eda19afa3 >- >-- name: python2-pyaml >- buildsystem: simple >- build-commands: >- - pip2 install --no-index --find-links="file://${PWD}" --target=/app/lib/python2.7/site-packages/ pyaml >- sources: >- - type: file >- url: https://files.pythonhosted.org/packages/4a/85/db5a2df477072b2902b0eb892feb37d88ac635d36245a72a6a69b23b383a/PyYAML-3.12.tar.gz >- sha256: 592766c6303207a20efc445587778322d7f73b161bd994f227adaa341ba212ab >- - type: file >- url: https://files.pythonhosted.org/packages/9e/17/1d4ed6e1a4c0918a0357dfa2fdbe26bf63f6e616013c04a14bce9fd33e40/pyaml-17.12.1.tar.gz >- sha256: 66623c52f34d83a2c0fc963e08e8b9d0c13d88404e3b43b1852ef71eda19afa3 >- >-- name: python2-subprocess32 >- buildsystem: simple >- build-commands: >- - pip2 install --target=/app/lib/python2.7/site-packages/ . >- sources: >- - type: archive >- url: https://files.pythonhosted.org/packages/be/2b/beeba583e9877e64db10b52a96915afc0feabf7144dcbf2a0d0ea68bf73d/subprocess32-3.5.3.tar.gz >- sha256: 6bc82992316eef3ccff319b5033809801c0c3372709c5f6985299c88ac7225c3 >- >-# GStreamer modules >-- name: libvpx >- no-autogen: true >- sources: >- - type: git >- url: https://chromium.googlesource.com/webm/libvpx >- branch: v1.7.0 >- config-opts: >- - --enable-pic >- - --as=nasm >- - --disable-unit-tests >- - --size-limit=16384x16384 >- - --enable-postproc >- - --enable-multi-res-encoding >- - --enable-temporal-denoising >- - --enable-vp9-temporal-denoising >- - --enable-vp9-postproc >- - --enable-shared >-- name: aom >- sources: >- - type: git >- url: https://aomedia.googlesource.com/aom >- branch: cdb083e84a71d6d31163a4f64f18dc1328fd782c >- buildsystem: cmake-ninja >- builddir: true >- config-opts: >- - -DBUILD_SHARED_LIBS=1 >-- name: libunwind >- sources: >- - type: git >- url: https://github.com/libunwind/libunwind.git >- commit: v1.2.1 >-- name: libopenh264 >- buildsystem: meson >- sources: >- - type: git >- url: https://github.com/cisco/openh264.git >- branch: a1b3f07c5271f312997fcc3451237031444c4475 # 1.8.0 + fix for gcc 8 >-- name: gstreamer >- buildsystem: meson >- sources: >- - type: git >- url: https://gitlab.freedesktop.org/gstreamer/gstreamer.git >- branch: 1.16.0 >- config-opts: >- - -Dgtk_doc=disabled >- - -Dintrospection=disabled >- - -Dexamples=disabled >- - -Dtests=disabled >-- name: gst-plugins-base >- buildsystem: meson >- sources: >- - type: git >- url: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.git >- branch: 1.16.0 >- config-opts: >- - -Dgtk_doc=disabled >- - -Dintrospection=disabled >- - -Dexamples=disabled >- - -Dtests=disabled >-- name: gst-plugins-good >- buildsystem: meson >- sources: >- - type: git >- url: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good.git >- branch: 1.16.0 >- - type: patch >- path: ../gstreamer/patches/gst-plugins-good-scaletempo-Advertise-interleaved-layout-in-caps-temp.patch >- config-opts: >- - -Dgtk_doc=disabled >- - -Dintrospection=disabled >- - -Dexamples=disabled >- - -Dgtk3=disabled >-- name: x264 >- config-opts: >- - "--enable-shared" >- - "--enable-static" >- - "--enable-pic" >- - "--disable-lavf" >- - "--disable-asm" >- sources: >- - type: archive >- url: http://download.videolan.org/pub/x264/snapshots/x264-snapshot-20140212-2245-stable.tar.bz2 >- sha256: 5d98e9e4faf6dd55e7193ed379aff477b8acbda6777758956ef7e5f05067be18 >-- name: gst-plugins-ugly >- buildsystem: meson >- sources: >- - type: git >- url: https://anongit.freedesktop.org/git/gstreamer/gst-plugins-ugly >- branch: 1.16.0 >- config-opts: >- - -Dgtk_doc=disabled >-- name: gst-plugins-bad >- buildsystem: meson >- sources: >- - type: git >- url: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad.git >- branch: 1.16.0 >- config-opts: >- - -Dgtk_doc=disabled >- - -Dintrospection=disabled >- - -Dexamples=disabled >-- name: ffmpeg >- sources: >- - type: archive >- url: https://ffmpeg.org/releases/ffmpeg-4.0.4.tar.gz >- sha256: 80bb685abfcdda7c9b6c9c5caf1d8dbb927858050d7377c2b8f3488c7e8a9b7f >- config-opts: >- - --enable-static >- - --enable-pic >- - --disable-avdevice >- - --disable-postproc >- - --disable-swscale >- - --disable-programs >- - --disable-ffplay >- - --disable-ffprobe >- - --disable-ffmpeg >- - --disable-encoder=flac >- - --disable-protocols >- - --disable-devices >- - --disable-network >- - --disable-hwaccels >- - --disable-dxva2 >- - --disable-vdpau >- - --disable-filters >- - --enable-filter=yadif >- - --disable-doc >- - --disable-d3d11va >- - --disable-dxva2 >- - --disable-audiotoolbox >- - --disable-videotoolbox >- - --disable-vaapi >- - --disable-crystalhd >- - --disable-mediacodec >- - --disable-nvenc >- - --disable-mmal >- - --disable-omx >- - --disable-omx-rpi >- - --disable-cuda >- - --disable-cuvid >- - --disable-libmfx >- - --disable-libnpp >- - --disable-iconv >- - --disable-jni >- - --disable-v4l2_m2m >- - --enable-optimizations >-- name: gst-libav >- buildsystem: meson >- builddir: true >- sources: >- - type: archive >- url: https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.16.0.tar.xz >- sha256: dfac119043a9cfdcacd7acde77f674ab172cf2537b5812be52f49e9cddc53d9a >- config-opts: >- - -Dgtk_doc=disabled >- >-- name: libgcrypt # Speedup libgcrypt >- sources: >- - type: git >- url: https://dev.gnupg.org/source/libgcrypt.git >- branch: libgcrypt-1.8.4 >- - type: patch >- path: patches/libgcrypt-0001-Use-pkg-config-to-detect-gpg-error.patch >- - type: patch >- path: ../gtk/patches/libgcrypt-use-only-dev-urandom-for-testing.patch >- config-opts: >- - --disable-doc >- >-- name: perl-cgi-pm >- buildsystem: simple >- build-commands: >- - perl Makefile.PL PREFIX=/app LIB=/app/lib/perl/ >- - make install >- sources: >- - type: archive >- url: https://cpan.metacpan.org/authors/id/L/LE/LEEJO/CGI-4.38.tar.gz >- sha256: 8c58f4a529bb92a914b22b7e64c5e31185c9854a4070a6dfad44fe5cc248e7d4 >- >-- name: python2-virtualenv >- buildsystem: simple >- build-commands: >- - pip2 install --no-index --find-links="file://${PWD}" --target=/app/lib/python2.7/site-packages/ virtualenv >- - ln -s /app/lib/python2.7/site-packages/virtualenv.py /app/bin/virtualenv >- - chmod +x /app/bin/virtualenv >- sources: >- - type: file >- url: https://files.pythonhosted.org/packages/33/bc/fa0b5347139cd9564f0d44ebd2b147ac97c36b2403943dbee8a25fd74012/virtualenv-16.0.0.tar.gz >- sha256: ca07b4c0b54e14a91af9f34d0919790b016923d157afda5efdde55c96718f752 >- >-- name: libcap-ng >- sources: >- - type: git >- url: https://github.com/stevegrubb/libcap-ng >- branch: v0.7.9 >- config-opts: >- - --with-python=no >- - --with-python3=no >- >-- name: lzo2 >- sources: >- - type: archive >- url: http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz >- sha1: 4924676a9bae5db58ef129dc1cebce3baa3c4b5d >- >-- name: icecc >- sources: >- - type: git >- url: https://github.com/icecc/icecream >- branch: "1.1" >- config-opts: >- - --without-man >- >-- name: brotli >- sources: >- - type: archive >- url: https://github.com/google/brotli/archive/v1.0.5.tar.gz >- sha256: 3d5bedd48edb909fe3b87cb99f7d139b987ef6f1616b7e22d74e928270a2fd20 >- buildsystem: cmake-ninja >- >-- name: woff2 >- sources: >- - type: archive >- url: https://github.com/google/woff2/archive/v1.0.2.tar.gz >- sha256: add272bb09e6384a4833ffca4896350fdb16e0ca22df68c0384773c67a175594 >- buildsystem: cmake-ninja >- >-- name: openjpeg >- sources: >- - type: archive >- url: http://github.com/uclouvain/openjpeg/archive/v2.3.0.tar.gz >- sha256: 3dc787c1bb6023ba846c2a0d9b1f6e179f1cd255172bde9eb75b01f1e6c7d71a >- buildsystem: cmake-ninja >diff --git a/Tools/flatpak/org.webkit.GTK.yaml b/Tools/flatpak/org.webkit.GTK.yaml >deleted file mode 100644 >index 49eccfd16308f4b411adb785df7bfc8e0df55d21..0000000000000000000000000000000000000000 >--- a/Tools/flatpak/org.webkit.GTK.yaml >+++ /dev/null >@@ -1,138 +0,0 @@ >-- name: mesa >- sources: >- - type: archive >- url: https://mesa.freedesktop.org/archive/mesa-18.0.3.tar.xz >- sha256: 099d9667327a76a61741a533f95067d76ea71a656e66b91507b3c0caf1d49e30 >- config-opts: >- - --prefix=/app/softGL >- - --disable-dri3 >- - --enable-dri >- - --enable-glx >- - --enable-egl >- - --with-egl-platforms=x11,wayland >- - --with-dri-drivers=swrast >- - --with-gallium-drivers=swrast >- >-- name: webkitgtk-test-fonts >- no-autogen: true >- sources: >- - type: git >- url: https://github.com/WebKitGTK/webkitgtk-test-fonts.git >- buildsystem: simple >- build-commands: >- # FIXME: Make ActivateFontWPE smarter. >- - make install DESTDIR=/app/WebKitBuild/DependenciesGTK/Root >- >-- name: xorg-util-macros >- sources: >- - type: git >- url: https://anongit.freedesktop.org/git/xorg/util/macros.git >- branch: util-macros-1.19.2 >- >-- name: xorg-font-util >- sources: >- - type: git >- url: https://anongit.freedesktop.org/git/xorg/font/util.git >- branch: font-util-1.3.1 >- >-- name: xkbfile >- sources: >- - type: git >- branch: libxkbfile-1.0.9 >- url: https://anongit.freedesktop.org/git/xorg/lib/libxkbfile.git >- >-- name: fontenc >- sources: >- - type: git >- branch: libfontenc-1.1.3 >- url: https://anongit.freedesktop.org/git/xorg/lib/libfontenc.git >- >-- name: xfont >- sources: >- - type: git >- branch: libXfont2-2.0.3 >- url: https://anongit.freedesktop.org/git/xorg/lib/libXfont.git >- >-- name: xvfb >- sources: >- - type: git >- url: https://anongit.freedesktop.org/git/xorg/xserver.git >- branch: xorg-server-1.19.6 >- - type: patch >- path: patches/xvfb-0001-HACK-Avoid-compiling-a-kbm-file.patch >- - type: patch >- path: ../gtk/patches/xserver-remove-bogus-dependencies.patch >- - type: patch >- path: ../gtk/patches/xserver-search-for-DRI-drivers-at-LIBGL_DRIVERS_PATH-environ.patch >- config-opts: >- - --enable-xvfb >- - --disable-xwayland >- - --enable-xvfb >- - --disable-xwayland >- - --disable-xinerama >- - --enable-glx >- - --enable-composite >- - --disable-xorg >- - --disable-dmx >- - --disable-xnest >- - --disable-xquartz >- - --disable-xwin >- - --disable-xephyr >- - --disable-xfake >- - --disable-xfbdev >- - --disable-install-setuid >- - --disable-unit-tests >- - --disable-present >- - --enable-unix-transport >- - --enable-tcp-transport >- - --disable-local-transport >- - --without-dtrace >- >-# Required for the GTK2 plugin process >-- name: gtk2 >- sources: >- - type: archive >- url: https://download.gnome.org/sources/gtk+/2.24/gtk+-2.24.32.tar.xz >- sha256: b6c8a93ddda5eabe3bfee1eb39636c9a03d2a56c7b62828b359bf197943c582e >- - type: script >- commands: >- - "sed -i '1s/python$/&2/' gtk/gtk-builder-convert" >- - "sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool" >- config-opts: >- - --disable-gtk-doc >- - --disable-cups >- - --disable-papi >- - --enable-introspection=no >- - --with-gdktarget=x11 >- >-# Required for run-gtk-tests >-- name: pycairo >- buildsystem: simple >- build-commands: >- - python2 setup.py install --prefix=/app >- sources: >- - type: archive >- url: https://pypi.python.org/packages/ef/97/b33dc533ea6076d4ea9cbd2fe049a2b4a3df5c5b6fba9a182616f6f8d310/pycairo-1.15.4.tar.gz >- sha256: ee4c3068c048230e5ce74bb8994a024711129bde1af1d76e3276c7acd81c4357 >- cleanup: >- - "/include" >- - "/lib/pkgconfig" >- >-- name: pygobject-python2 >- build-options: >- env: >- PYTHON: "/usr/bin/python2" >- sources: >- - type: archive >- url: https://download.gnome.org/sources/pygobject/3.28/pygobject-3.28.1.tar.xz >- sha256: 42312b4a5015571fa0a4f2d201005da46b71c251ea2625bc95702d071c4ff895 >- cleanup: >- - "/include" >- - "/lib/pkgconfig" >- - "/lib/python2.7/site-packages/gi/*.la" >- >-- name: org.webkit.GTK >- buildsystem: simple >- build-commands: >- - /app/webkit/Tools/Scripts/build-webkit --gtk --prefix=/app >- >diff --git a/Tools/flatpak/org.webkit.WPE.yaml b/Tools/flatpak/org.webkit.WPE.yaml >deleted file mode 100644 >index 4cbabbaa0cb8e158ad4441f98b4d053a8cb3ba76..0000000000000000000000000000000000000000 >--- a/Tools/flatpak/org.webkit.WPE.yaml >+++ /dev/null >@@ -1,14 +0,0 @@ >-- org.webkit.WPEModules.yaml >-- name: webkitgtk-test-fonts >- no-autogen: true >- sources: >- - type: git >- url: https://github.com/WebKitGTK/webkitgtk-test-fonts.git >- buildsystem: simple >- build-commands: >- # FIXME: Make ActivateFontWPE smarter. >- - make install DESTDIR=/app/WebKitBuild/DependenciesWPE/Root >-- name: org.webkit.WPE >- buildsystem: simple >- build-commands: >- - /app/webkit/Tools/Scripts/build-webkit --wpe --prefix=/app >diff --git a/Tools/flatpak/org.webkit.WPEModules.yaml b/Tools/flatpak/org.webkit.WPEModules.yaml >deleted file mode 100644 >index 970348f2d14945d2db34a471e21a603de438bd48..0000000000000000000000000000000000000000 >--- a/Tools/flatpak/org.webkit.WPEModules.yaml >+++ /dev/null >@@ -1,12 +0,0 @@ >-- name: libwpe >- buildsystem: cmake-ninja >- sources: >- - type: archive >- url: https://wpewebkit.org/releases/libwpe-1.3.0.tar.xz >- sha256: 68986647af2433e74f830a06a497ed536dbc8721b04026ed82611a584be71148 >-- name: wpebackend-fdo >- buildsystem: cmake-ninja >- sources: >- - type: archive >- url: https://wpewebkit.org/releases/wpebackend-fdo-1.3.0.tar.xz >- sha256: fed9ab29f5d53cf465188da80d014f3aa067c77704f8508c6bd17971fded359d >diff --git a/Tools/flatpak/org.webkit.WPEQT.yaml b/Tools/flatpak/org.webkit.WPEQT.yaml >deleted file mode 100644 >index de36957a461bc3479a38effde6d958bd0072678e..0000000000000000000000000000000000000000 >--- a/Tools/flatpak/org.webkit.WPEQT.yaml >+++ /dev/null >@@ -1,39 +0,0 @@ >-app-id: org.webkit.WPEQT >-runtime: org.kde.Platform >-runtime-version: "5.12" >-# Control the exact version of the Sdk/Runtime that is being used. >-sdk-hash: d6efa24e27c1c878ad4fde76b73c96a11be32b598ae87aefbe339ee4bb19a8be >-runtime-hash: 101871e091000616ad2b635e06c414eb0e1c4e1c34292a205c5239935ee5ea44 >-sdk: org.kde.Sdk >-command: %(COMMAND)s >-finish-args: >- # Basically no sandboxing, the goal here is to make it flexible >- # for developers, not really to isolate (openning all devices >- # to allow acces video cameras until we have a portal at least). >- - --share=ipc >- - --socket=x11 >- - --socket=wayland >- - --device=all >- - --share=network >- - --socket=pulseaudio >- - --system-talk-name=org.freedesktop.GeoClue2 >- - --system-talk-name=org.a11y.Bus >- - --filesystem=host >- - --socket=system-bus >- - --talk-name=org.freedesktop.Flatpak >- - --env=GST_PRESET_PATH=/app/share/gstreamer-1.0/presets/ >-build-options: >- cflags: -O2 -g >- cxxflags: -O2 -g >- strip: false >- no-debuginfo: true >-modules: >- - org.webkit.CommonModules.yaml >- - org.webkit.WPEModules.yaml >- >- # This module is not actually built. >- - name: org.webkit.WPEQT >- buildsystem: cmake >- sources: >- - type: dir >- path: /app/webkit/Source/WebKit/UIProcess/API/wpe/qt >diff --git a/Tools/flatpak/org.webkit.WebKit.yaml b/Tools/flatpak/org.webkit.WebKit.yaml >deleted file mode 100644 >index b6d612660d8a2045da312fdb091b78e58a807e69..0000000000000000000000000000000000000000 >--- a/Tools/flatpak/org.webkit.WebKit.yaml >+++ /dev/null >@@ -1,33 +0,0 @@ >-app-id: %(PORTNAME)s >-runtime: org.gnome.Platform >-runtime-version: "3.32" >-# Control the exact version of the Sdk/Runtime that is being used. >-sdk-hash: b3b9b1d1b19ea2bb72019428ca75c7a78455e986a0f91dddf6a29c92990cc5a7 >-runtime-hash: 7c9d5592d805d0b7c212190fd8118e4c78cb8ed8f81e687858972670daccff76 >-sdk: org.gnome.Sdk >-command: %(COMMAND)s >-finish-args: >- # Basically no sandboxing, the goal here is to make it flexible >- # for developers, not really to isolate (openning all devices >- # to allow acces video cameras until we have a portal at least). >- - --share=ipc >- - --socket=x11 >- - --socket=wayland >- - --device=all >- - --share=network >- - --socket=pulseaudio >- - --system-talk-name=org.freedesktop.GeoClue2 >- - --system-talk-name=org.a11y.Bus >- - --filesystem=host >- - --socket=system-bus >- - --talk-name=org.freedesktop.Flatpak >- - --env=GST_PRESET_PATH=/app/share/gstreamer-1.0/presets/ >-build-options: >- cflags: -O2 -g >- cxxflags: -O2 -g >- strip: false >- no-debuginfo: true >-modules: >- - org.webkit.CommonModules.yaml >- # Port specific components. >- - %(PORTNAME)s.yaml >diff --git a/Tools/flatpak/patches/httpd-0001-configure-use-pkg-config-for-PCRE-detection.patch b/Tools/flatpak/patches/httpd-0001-configure-use-pkg-config-for-PCRE-detection.patch >deleted file mode 100644 >index d36a694f2923d351db6f3f1332760283da78f9de..0000000000000000000000000000000000000000 >--- a/Tools/flatpak/patches/httpd-0001-configure-use-pkg-config-for-PCRE-detection.patch >+++ /dev/null >@@ -1,50 +0,0 @@ >-From b5ebe404f1388ddda3603e53277f87e0b96ba695 Mon Sep 17 00:00:00 2001 >-From: Thibault Saunier <tsaunier@igalia.com> >-Date: Mon, 11 Jun 2018 16:14:38 -0400 >-Subject: [PATCH] configure: use pkg-config for PCRE detection >- >---- >- configure.in | 27 +++++---------------------- >- 1 file changed, 5 insertions(+), 22 deletions(-) >- >-diff --git a/configure.in b/configure.in >-index 761e836..b155d4b 100644 >---- a/configure.in >-+++ b/configure.in >-@@ -215,28 +215,11 @@ fi >- AC_ARG_WITH(pcre, >- APACHE_HELP_STRING(--with-pcre=PATH,Use external PCRE library)) >- >--AC_PATH_PROG(PCRE_CONFIG, pcre-config, false) >--if test -d "$with_pcre" && test -x "$with_pcre/bin/pcre-config"; then >-- PCRE_CONFIG=$with_pcre/bin/pcre-config >--elif test -x "$with_pcre"; then >-- PCRE_CONFIG=$with_pcre >--fi >-- >--if test "$PCRE_CONFIG" != "false"; then >-- if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else >-- AC_MSG_ERROR([Did not find pcre-config script at $PCRE_CONFIG]) >-- fi >-- case `$PCRE_CONFIG --version` in >-- [[1-5].*]) >-- AC_MSG_ERROR([Need at least pcre version 6.0]) >-- ;; >-- esac >-- AC_MSG_NOTICE([Using external PCRE library from $PCRE_CONFIG]) >-- APR_ADDTO(PCRE_INCLUDES, [`$PCRE_CONFIG --cflags`]) >-- APR_ADDTO(PCRE_LIBS, [`$PCRE_CONFIG --libs`]) >--else >-- AC_MSG_ERROR([pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/]) >--fi >-+PKG_CHECK_MODULES([PCRE], [libpcre], [ >-+ AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library]) >-+], [ >-+ AC_MSG_ERROR([$PCRE_PKG_ERRORS]) >-+]) >- APACHE_SUBST(PCRE_LIBS) >- >- AC_MSG_NOTICE([]) >--- >-2.17.1 >- >diff --git a/Tools/flatpak/patches/libgcrypt-0001-Use-pkg-config-to-detect-gpg-error.patch b/Tools/flatpak/patches/libgcrypt-0001-Use-pkg-config-to-detect-gpg-error.patch >deleted file mode 100644 >index c57727fbb8b08b9195a5c097d6c61b908c69179a..0000000000000000000000000000000000000000 >--- a/Tools/flatpak/patches/libgcrypt-0001-Use-pkg-config-to-detect-gpg-error.patch >+++ /dev/null >@@ -1,110 +0,0 @@ >-From 9aff3f1b344fc8666b14c57629162c2b9007cad8 Mon Sep 17 00:00:00 2001 >-From: Thibault Saunier <tsaunier@igalia.com> >-Date: Fri, 29 Jun 2018 09:05:52 -0400 >-Subject: [PATCH] Use pkg-config to detect gpg-error >- >---- >- m4/gpg-error.m4 | 88 +++++++------------------------------------------ >- 1 file changed, 12 insertions(+), 76 deletions(-) >- >-diff --git a/m4/gpg-error.m4 b/m4/gpg-error.m4 >-index 1661204c..5f9f33c2 100644 >---- a/m4/gpg-error.m4 >-+++ b/m4/gpg-error.m4 >-@@ -41,81 +41,17 @@ AC_DEFUN([AM_PATH_GPG_ERROR], >- AC_ARG_WITH(gpg-error-prefix,, >- [gpg_error_config_prefix="$withval"]) >- >-- if test x"${GPG_ERROR_CONFIG}" = x ; then >-- if test x"${gpg_error_config_prefix}" != x ; then >-- GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config" >-- else >-- case "${SYSROOT}" in >-- /*) >-- if test -x "${SYSROOT}/bin/gpg-error-config" ; then >-- GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config" >-- fi >-- ;; >-- '') >-- ;; >-- *) >-- AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.]) >-- ;; >-- esac >-- fi >-- fi >-+ PKG_CHECK_MODULES([GPG_ERROR], [gpg-error], [ >-+ AC_DEFINE([HAVE_GPG_ERROR], [1], [Define if you have gpg-error library]) >- >-- AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no) >-- min_gpg_error_version=ifelse([$1], ,0.0,$1) >-- AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version) >-- ok=no >-- if test "$GPG_ERROR_CONFIG" != "no" \ >-- && test -f "$GPG_ERROR_CONFIG" ; then >-- req_major=`echo $min_gpg_error_version | \ >-- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` >-- req_minor=`echo $min_gpg_error_version | \ >-- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` >-- gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version` >-- major=`echo $gpg_error_config_version | \ >-- sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` >-- minor=`echo $gpg_error_config_version | \ >-- sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` >-- if test "$major" -gt "$req_major"; then >-- ok=yes >-- else >-- if test "$major" -eq "$req_major"; then >-- if test "$minor" -ge "$req_minor"; then >-- ok=yes >-- fi >-- fi >-- fi >-- fi >-- if test $ok = yes; then >-- GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags` >-- GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs` >-- GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null` >-- GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null` >-- AC_MSG_RESULT([yes ($gpg_error_config_version)]) >-- ifelse([$2], , :, [$2]) >-- gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none` >-- if test x"$gpg_error_config_host" != xnone ; then >-- if test x"$gpg_error_config_host" != x"$host" ; then >-- AC_MSG_WARN([[ >--*** >--*** The config script $GPG_ERROR_CONFIG was >--*** built for $gpg_error_config_host and thus may not match the >--*** used host $host. >--*** You may want to use the configure option --with-gpg-error-prefix >--*** to specify a matching config script or use \$SYSROOT. >--***]]) >-- gpg_config_script_warn="$gpg_config_script_warn libgpg-error" >-- fi >-- fi >-- else >-- GPG_ERROR_CFLAGS="" >-- GPG_ERROR_LIBS="" >-- GPG_ERROR_MT_CFLAGS="" >-- GPG_ERROR_MT_LIBS="" >-- AC_MSG_RESULT(no) >-- ifelse([$3], , :, [$3]) >-- fi >-- AC_SUBST(GPG_ERROR_CFLAGS) >-- AC_SUBST(GPG_ERROR_LIBS) >-- AC_SUBST(GPG_ERROR_MT_CFLAGS) >-- AC_SUBST(GPG_ERROR_MT_LIBS) >-+ GPG_ERROR_MT_CFLAGS="$GPG_ERROR_CFLAGS" >-+ GPG_ERROR_MT_LIBS="-lpthread $GPG_ERROR_LIBS" >-+ >-+ AC_SUBST(GPG_ERROR_CFLAGS) >-+ AC_SUBST(GPG_ERROR_LIBS) >-+ AC_SUBST(GPG_ERROR_MT_CFLAGS) >-+ AC_SUBST(GPG_ERROR_MT_LIBS) >-+ ], [ >-+ AC_MSG_ERROR([$GPG_ERROR_ERRORS]) >-+ ]) >- ]) >--- >-2.18.0 >- >diff --git a/Tools/flatpak/patches/xvfb-0001-HACK-Avoid-compiling-a-kbm-file.patch b/Tools/flatpak/patches/xvfb-0001-HACK-Avoid-compiling-a-kbm-file.patch >deleted file mode 100644 >index 898842b381d25140fbc08f54a97230a6dbe4a450..0000000000000000000000000000000000000000 >--- a/Tools/flatpak/patches/xvfb-0001-HACK-Avoid-compiling-a-kbm-file.patch >+++ /dev/null >@@ -1,50 +0,0 @@ >-From aed1b6e8de41375c1b8b1dfc48a350e0a9b9cbba Mon Sep 17 00:00:00 2001 >-From: Thibault Saunier <tsaunier@igalia.com> >-Date: Mon, 11 Jun 2018 10:55:43 -0400 >-Subject: [PATCH xserver] HACK: Avoid compiling a kbm file >- >-This would need to be in /usr/share/X11/ as this is where >-resource files are in the sandbox but it is read only in there. >- >-Hack around that. >---- >- xkb/ddxLoad.c | 9 +-------- >- xkb/xkbInit.c | 2 +- >- 2 files changed, 2 insertions(+), 9 deletions(-) >- >-diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c >-index bbe3952..a4a03a1 100644 >---- a/xkb/ddxLoad.c >-+++ b/xkb/ddxLoad.c >-@@ -148,14 +148,7 @@ RunXkbComp(xkbcomp_buffer_callback callback, void *userdata) >- } >- } >- >-- if (asprintf(&buf, >-- "\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" " >-- "-em1 %s -emp %s -eml %s \"%s%s.xkm\"", >-- xkbbindir, xkbbindirsep, >-- ((xkbDebugFlags < 2) ? 1 : >-- ((xkbDebugFlags > 10) ? 10 : (int) xkbDebugFlags)), >-- xkbbasedirflag ? xkbbasedirflag : "", xkmfile, >-- PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1, >-+ if (asprintf(&buf, "cp /app/webkit/Tools/flatpak/files/default.xkm \"%s%s.xkm\"", >- xkm_output_dir, keymap) == -1) >- buf = NULL; >- >-diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c >-index 9c772f5..4e0b774 100644 >---- a/xkb/xkbInit.c >-+++ b/xkb/xkbInit.c >-@@ -87,7 +87,7 @@ typedef struct _SrvXkmInfo { >- #define XKB_DFLT_RULES_PROP TRUE >- #endif >- >--const char *XkbBaseDirectory = XKB_BASE_DIRECTORY; >-+const char *XkbBaseDirectory = "/usr/share/X11/xkb/"; >- const char *XkbBinDirectory = XKB_BIN_DIRECTORY; >- static int XkbWantAccessX = 0; >- >--- >-2.17.1 >-
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
pnormand
:
review-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 191196
: 371743