From 4fa4a958acfdb330086ddfe30955a20768389c41 Mon Sep 17 00:00:00 2001 From: Martchus Date: Fri, 5 Apr 2024 01:49:08 +0200 Subject: [PATCH] Add back patch for crashes in rasterization code The setjmp-based code still breaks on i686. --- .../layouts/mingw-w64-qt6-base.sh.ep | 2 +- ...s-in-rasterization-code-using-setjmp.patch | 1 + qt6-base/android-aarch64/PKGBUILD | 38 +-- ...s-in-rasterization-code-using-setjmp.patch | 1 + qt6-base/mingw-w64-static/PKGBUILD | 40 +-- ...Make-s-default-import-library-suffix.patch | 2 +- .../mingw-w64/0002-Fix-finding-D-Bus.patch | 2 +- ...03-Fix-using-static-PCRE2-and-DBus-1.patch | 2 +- ...ive-dependencies-of-static-libraries.patch | 2 +- ...orkaround-for-conflict-with-rpcndr.h.patch | 2 +- ...inding-static-MariaDB-client-library.patch | 2 +- ...-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch | 2 +- ...via-pkg-config-for-correct-handling-.patch | 2 +- ...-dependency-of-xcb-image-on-xcb-util.patch | 2 +- ...erties-of-PkgConfig-targets-for-glib.patch | 2 +- ...erties-of-PkgConfig-targets-for-Wayl.patch | 2 +- ...-preference-for-shared-libzstd-libra.patch | 2 +- ...o-disabled-exceptions-with-cpp_winrt.patch | 2 +- ...ng-exception-flags-of-plugin-targets.patch | 2 +- ...rectly-against-runtimeobject-when-co.patch | 2 +- ...r-error-about-missing-symbol-__sync_.patch | 2 +- ...Fix-wrong-cpp-conditional-in-qspan.h.patch | 2 +- ...s-in-rasterization-code-using-setjmp.patch | 252 ++++++++++++++++++ qt6-base/mingw-w64/PKGBUILD | 40 +-- ...s-in-rasterization-code-using-setjmp.patch | 1 + qt6-base/static-compat/PKGBUILD | 38 +-- 26 files changed, 355 insertions(+), 92 deletions(-) create mode 120000 qt6-base/android-aarch64/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch create mode 120000 qt6-base/mingw-w64-static/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch create mode 100644 qt6-base/mingw-w64/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch create mode 120000 qt6-base/static-compat/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch diff --git a/devel/generator/templates/layouts/mingw-w64-qt6-base.sh.ep b/devel/generator/templates/layouts/mingw-w64-qt6-base.sh.ep index caf1d33e..c7d08699 100644 --- a/devel/generator/templates/layouts/mingw-w64-qt6-base.sh.ep +++ b/devel/generator/templates/layouts/mingw-w64-qt6-base.sh.ep @@ -16,7 +16,7 @@ pkgname=<%= $package_name %> _qtver=6.7.0 pkgver=${_qtver/-/} -pkgrel=1 +pkgrel=2 arch=(any) url='https://www.qt.io' license=(GPL3 LGPL3 FDL custom) diff --git a/qt6-base/android-aarch64/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch b/qt6-base/android-aarch64/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch new file mode 120000 index 00000000..bd7e82e5 --- /dev/null +++ b/qt6-base/android-aarch64/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch @@ -0,0 +1 @@ +../mingw-w64/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch \ No newline at end of file diff --git a/qt6-base/android-aarch64/PKGBUILD b/qt6-base/android-aarch64/PKGBUILD index 58783d1b..1d598c58 100644 --- a/qt6-base/android-aarch64/PKGBUILD +++ b/qt6-base/android-aarch64/PKGBUILD @@ -44,25 +44,27 @@ source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/subm '0014-Fix-setting-exception-flags-of-plugin-targets.patch' '0015-Link-corelib-correctly-against-runtimeobject-when-co.patch' '0016-Workaround-linker-error-about-missing-symbol-__sync_.patch' - '0017-Fix-wrong-cpp-conditional-in-qspan.h.patch') + '0017-Fix-wrong-cpp-conditional-in-qspan.h.patch' + '0018-Fix-crashes-in-rasterization-code-using-setjmp.patch') sha256sums=('11b2e29e2e52fb0e3b453ea13bbe51a10fdff36e1c192d8868c5a40233b8b254' - 'e25f83ddf9e3f9eefcb833751cff8957f32cb2f13f5a1f033679b45d2c9e544e' - 'ae4a20f41df34eefc960ed5cb2cf54afb421573f08545d5492882edd18e00a3c' - '5d329d722365c07a28b85a9d1ba9c6c53ad19124662aa1825cdd78ece82c47f3' - '86dd06b2a1bd7b050763346d2bd16a63c914c516782df64a3c6c78268ea33e06' - '4390d712d64d50e2cd8d0cea3a53317cda4e7a21bd99a346f1bd82d18514b6f5' - '73c2780b8efe19f32ea433d2254e0ceeb503f77004812048e3fcef5da363fd31' - '272db976e1a219063d87b8ef21537fbe8959c87acbb34de4cbe5b995bc2eb46a' - '43c5a589616a200ded1a2c81b2d4c09919dc96b7ed0df50dea97148f373db147' - '1fbc2aecb48912ef1f4563f5eb4a1d3f5fad0767052a763cebe72d631cdf1e77' - 'e7f591f23724529b6f45182352f0a4274d4c09f0a2686d7f6588857c3d81df08' - '313ae6611f91ce7c12366035f0271a1bd1fa787f68a652de95f2fd55a71b4e1f' - '7de102a3e66bf6aafeb3c0cd0ae49b344e166b902d4d29fd33366883b11f1d5d' - '5e9b7c818bd972c694075a0a01d0f44a9d6d6aaf9e3b36174702b8839f30b76b' - 'b707bf9d69cf866dd776e5c07235161186747607dc24264320784e1222272fcc' - '04811ea7c29e15a9d5c63c6f483804ec2538e8e826c3c06019b78a98435b56b2' - 'ce7dc86c30f160e6d565c579a84e0b0f799b1afa751ebe0748a0e80f8408cb7f' - '55959f673e409ea952661cbddfb8b046bec7cda3d8b05686bed82ace4246e273') + '2bcfcdfe0fabdb7e7600eb6e1b85d9cda8f86af558a8c09658bc1867cc273ca0' + 'a053880e1bd15d1eb4ee8fb27a2f1345af88235fb7cf1515461c3525f0be4daf' + '779093bfe4fafebf278d39de4f4f3f9b7dc6dd6871c3e86de7af51639290fe69' + '4e694cc40009b1a0cb62aa03b6d3d2b692ddca156e776c52f9babdc6e0cb2c32' + '3953be3b3cb029f47994779824c7b7875aa7b5c1c21156dbf76bccce68244d28' + 'b359923aae5cddb7f52d9fc803ed2945a5644d0ae637728a401899ccc09c73af' + 'ed14103ac853bd72e203ce93c13586dc40bb4d1194e390e5cc631afa29eb920f' + '76d49fe063b197b68f9a5c3e09047e4aad581639682c985762341d16e08c95bb' + 'cbd5f1777ecb380fe6444eb3eb04b8abdc5988c3f97ae1f58da422d214448bd1' + '40e287b41d3e09b7fa09804ce1feca87eea1b0a4d662cfb5d7e938c6a43bf155' + '818f0a500a37ff2b5a1fe0502ce2321468482423714f4ca4d9ee02a1c8a85120' + '7de9a5e4adf4afa4d4a4ba6a90c58df810748d97631e8ee2d7051cb64d312069' + 'a29667637bbd0949200d6dbb18f8b9b75e55164c6e8dd049296f7dcbe4910a21' + '167921dd76e072857413538fbdbd56b4fab19cb53c739a70fe8aa613ca8c5651' + '9177a5c59465953777faca9f0651106f0b6e98e6f825e276f81f2dd9e4ce5426' + 'b5eeae582ddba1b96c600f1cb2b73083cf8ae619af7ade2b45dfc17214497b5e' + '80b2cc652b087ac950a398b554842ce66d1b0703d890d52bfffb2af0ea6ab1a7' + 'bfca3b0894ce1b6764217905835db50b9251ad19084c7f89967f37bfb1366cf4') prepare () { cd $_pkgfqn diff --git a/qt6-base/mingw-w64-static/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch b/qt6-base/mingw-w64-static/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch new file mode 120000 index 00000000..bd7e82e5 --- /dev/null +++ b/qt6-base/mingw-w64-static/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch @@ -0,0 +1 @@ +../mingw-w64/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch \ No newline at end of file diff --git a/qt6-base/mingw-w64-static/PKGBUILD b/qt6-base/mingw-w64-static/PKGBUILD index 3830f00b..1f5a9527 100644 --- a/qt6-base/mingw-w64-static/PKGBUILD +++ b/qt6-base/mingw-w64-static/PKGBUILD @@ -13,7 +13,7 @@ pkgname=mingw-w64-qt6-base-static _qtver=6.7.0 pkgver=${_qtver/-/} -pkgrel=1 +pkgrel=2 arch=(any) url='https://www.qt.io' license=(GPL3 LGPL3 FDL custom) @@ -47,25 +47,27 @@ source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/subm '0014-Fix-setting-exception-flags-of-plugin-targets.patch' '0015-Link-corelib-correctly-against-runtimeobject-when-co.patch' '0016-Workaround-linker-error-about-missing-symbol-__sync_.patch' - '0017-Fix-wrong-cpp-conditional-in-qspan.h.patch') + '0017-Fix-wrong-cpp-conditional-in-qspan.h.patch' + '0018-Fix-crashes-in-rasterization-code-using-setjmp.patch') sha256sums=('11b2e29e2e52fb0e3b453ea13bbe51a10fdff36e1c192d8868c5a40233b8b254' - 'e25f83ddf9e3f9eefcb833751cff8957f32cb2f13f5a1f033679b45d2c9e544e' - 'ae4a20f41df34eefc960ed5cb2cf54afb421573f08545d5492882edd18e00a3c' - '5d329d722365c07a28b85a9d1ba9c6c53ad19124662aa1825cdd78ece82c47f3' - '86dd06b2a1bd7b050763346d2bd16a63c914c516782df64a3c6c78268ea33e06' - '4390d712d64d50e2cd8d0cea3a53317cda4e7a21bd99a346f1bd82d18514b6f5' - '73c2780b8efe19f32ea433d2254e0ceeb503f77004812048e3fcef5da363fd31' - '272db976e1a219063d87b8ef21537fbe8959c87acbb34de4cbe5b995bc2eb46a' - '43c5a589616a200ded1a2c81b2d4c09919dc96b7ed0df50dea97148f373db147' - '1fbc2aecb48912ef1f4563f5eb4a1d3f5fad0767052a763cebe72d631cdf1e77' - 'e7f591f23724529b6f45182352f0a4274d4c09f0a2686d7f6588857c3d81df08' - '313ae6611f91ce7c12366035f0271a1bd1fa787f68a652de95f2fd55a71b4e1f' - '7de102a3e66bf6aafeb3c0cd0ae49b344e166b902d4d29fd33366883b11f1d5d' - '5e9b7c818bd972c694075a0a01d0f44a9d6d6aaf9e3b36174702b8839f30b76b' - 'b707bf9d69cf866dd776e5c07235161186747607dc24264320784e1222272fcc' - '04811ea7c29e15a9d5c63c6f483804ec2538e8e826c3c06019b78a98435b56b2' - 'ce7dc86c30f160e6d565c579a84e0b0f799b1afa751ebe0748a0e80f8408cb7f' - '55959f673e409ea952661cbddfb8b046bec7cda3d8b05686bed82ace4246e273') + '2bcfcdfe0fabdb7e7600eb6e1b85d9cda8f86af558a8c09658bc1867cc273ca0' + 'a053880e1bd15d1eb4ee8fb27a2f1345af88235fb7cf1515461c3525f0be4daf' + '779093bfe4fafebf278d39de4f4f3f9b7dc6dd6871c3e86de7af51639290fe69' + '4e694cc40009b1a0cb62aa03b6d3d2b692ddca156e776c52f9babdc6e0cb2c32' + '3953be3b3cb029f47994779824c7b7875aa7b5c1c21156dbf76bccce68244d28' + 'b359923aae5cddb7f52d9fc803ed2945a5644d0ae637728a401899ccc09c73af' + 'ed14103ac853bd72e203ce93c13586dc40bb4d1194e390e5cc631afa29eb920f' + '76d49fe063b197b68f9a5c3e09047e4aad581639682c985762341d16e08c95bb' + 'cbd5f1777ecb380fe6444eb3eb04b8abdc5988c3f97ae1f58da422d214448bd1' + '40e287b41d3e09b7fa09804ce1feca87eea1b0a4d662cfb5d7e938c6a43bf155' + '818f0a500a37ff2b5a1fe0502ce2321468482423714f4ca4d9ee02a1c8a85120' + '7de9a5e4adf4afa4d4a4ba6a90c58df810748d97631e8ee2d7051cb64d312069' + 'a29667637bbd0949200d6dbb18f8b9b75e55164c6e8dd049296f7dcbe4910a21' + '167921dd76e072857413538fbdbd56b4fab19cb53c739a70fe8aa613ca8c5651' + '9177a5c59465953777faca9f0651106f0b6e98e6f825e276f81f2dd9e4ce5426' + 'b5eeae582ddba1b96c600f1cb2b73083cf8ae619af7ade2b45dfc17214497b5e' + '80b2cc652b087ac950a398b554842ce66d1b0703d890d52bfffb2af0ea6ab1a7' + 'bfca3b0894ce1b6764217905835db50b9251ad19084c7f89967f37bfb1366cf4') _architectures='i686-w64-mingw32 x86_64-w64-mingw32' diff --git a/qt6-base/mingw-w64/0001-Use-CMake-s-default-import-library-suffix.patch b/qt6-base/mingw-w64/0001-Use-CMake-s-default-import-library-suffix.patch index 3cf2db08..cd5f6092 100644 --- a/qt6-base/mingw-w64/0001-Use-CMake-s-default-import-library-suffix.patch +++ b/qt6-base/mingw-w64/0001-Use-CMake-s-default-import-library-suffix.patch @@ -1,7 +1,7 @@ From 5ab173c6ee597e09eecf53411ec3726c19a40ce5 Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 5 Nov 2020 22:08:10 +0100 -Subject: [PATCH 01/17] Use CMake's default import library suffix +Subject: [PATCH 01/18] Use CMake's default import library suffix Change-Id: I3dbedaec74683e5bfd008f7f2fd1e046dfb921b2 --- diff --git a/qt6-base/mingw-w64/0002-Fix-finding-D-Bus.patch b/qt6-base/mingw-w64/0002-Fix-finding-D-Bus.patch index 99c69292..b425d7de 100644 --- a/qt6-base/mingw-w64/0002-Fix-finding-D-Bus.patch +++ b/qt6-base/mingw-w64/0002-Fix-finding-D-Bus.patch @@ -1,7 +1,7 @@ From f6576a2efd85e14323eacb15725f48351e7c6a40 Mon Sep 17 00:00:00 2001 From: Martchus Date: Wed, 7 Oct 2020 12:13:37 +0200 -Subject: [PATCH 02/17] Fix finding D-Bus +Subject: [PATCH 02/18] Fix finding D-Bus Change-Id: Ie21eb9cbc6b1b5d9c8b34eea46f54718e5926986 --- diff --git a/qt6-base/mingw-w64/0003-Fix-using-static-PCRE2-and-DBus-1.patch b/qt6-base/mingw-w64/0003-Fix-using-static-PCRE2-and-DBus-1.patch index d15fe6a7..20762c30 100644 --- a/qt6-base/mingw-w64/0003-Fix-using-static-PCRE2-and-DBus-1.patch +++ b/qt6-base/mingw-w64/0003-Fix-using-static-PCRE2-and-DBus-1.patch @@ -1,7 +1,7 @@ From 7e76f866f256a65e49dab374c90366f98bcb2415 Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 5 Nov 2020 21:13:19 +0100 -Subject: [PATCH 03/17] Fix using static PCRE2 and DBus-1 +Subject: [PATCH 03/18] Fix using static PCRE2 and DBus-1 When making a static build of Qt we're using the static version of these libraries and must define the corresponding macros. diff --git a/qt6-base/mingw-w64/0004-Fix-transitive-dependencies-of-static-libraries.patch b/qt6-base/mingw-w64/0004-Fix-transitive-dependencies-of-static-libraries.patch index f78f4d66..c2ee26fa 100644 --- a/qt6-base/mingw-w64/0004-Fix-transitive-dependencies-of-static-libraries.patch +++ b/qt6-base/mingw-w64/0004-Fix-transitive-dependencies-of-static-libraries.patch @@ -1,7 +1,7 @@ From 1818236acb18356b2fbdd3bca4e7e36f55347c47 Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 5 Nov 2020 21:59:33 +0100 -Subject: [PATCH 04/17] Fix transitive dependencies (of static libraries) +Subject: [PATCH 04/18] Fix transitive dependencies (of static libraries) The dependencies of these libraries are not reliably picked up by their corresponding find modules. This change allows adding the required diff --git a/qt6-base/mingw-w64/0005-Fix-libjpeg-workaround-for-conflict-with-rpcndr.h.patch b/qt6-base/mingw-w64/0005-Fix-libjpeg-workaround-for-conflict-with-rpcndr.h.patch index 1e7e5d74..16d878f6 100644 --- a/qt6-base/mingw-w64/0005-Fix-libjpeg-workaround-for-conflict-with-rpcndr.h.patch +++ b/qt6-base/mingw-w64/0005-Fix-libjpeg-workaround-for-conflict-with-rpcndr.h.patch @@ -1,7 +1,7 @@ From 4819b1a1a2216cb11ebc847e1aec4f7b2587386b Mon Sep 17 00:00:00 2001 From: Martchus Date: Mon, 2 Nov 2020 13:47:45 +0100 -Subject: [PATCH 05/17] Fix libjpeg workaround for conflict with rpcndr.h +Subject: [PATCH 05/18] Fix libjpeg workaround for conflict with rpcndr.h Otherwise it won't compile against mingw-w64-libjpeg-turbo. This version of libjpeg seems to take care of the conflict already as long as jconfig.h is diff --git a/qt6-base/mingw-w64/0006-Support-finding-static-MariaDB-client-library.patch b/qt6-base/mingw-w64/0006-Support-finding-static-MariaDB-client-library.patch index 534bf590..1e4a1538 100644 --- a/qt6-base/mingw-w64/0006-Support-finding-static-MariaDB-client-library.patch +++ b/qt6-base/mingw-w64/0006-Support-finding-static-MariaDB-client-library.patch @@ -1,7 +1,7 @@ From 31e89a3cc37e127d89a7d004a433be806912e09e Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 8 Nov 2020 00:33:12 +0100 -Subject: [PATCH 06/17] Support finding static MariaDB client library +Subject: [PATCH 06/18] Support finding static MariaDB client library We need to reverse the order to look for mariadb first (and only then for mysql) because otherwise it would pick up the static library diff --git a/qt6-base/mingw-w64/0007-Allow-overriding-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch b/qt6-base/mingw-w64/0007-Allow-overriding-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch index 535a3f6b..47e8ad42 100644 --- a/qt6-base/mingw-w64/0007-Allow-overriding-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch +++ b/qt6-base/mingw-w64/0007-Allow-overriding-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch @@ -1,7 +1,7 @@ From 2ea39a8625fa2a8bd61c91fd479b4299b4181f3f Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 8 Nov 2020 00:34:09 +0100 -Subject: [PATCH 07/17] Allow overriding CMAKE_FIND_LIBRARY_SUFFIXES to prefer +Subject: [PATCH 07/18] Allow overriding CMAKE_FIND_LIBRARY_SUFFIXES to prefer static libraries Change-Id: Ibb688ac503ecdf1dd3bd838890efdfc01bf706aa diff --git a/qt6-base/mingw-w64/0008-Find-fontconfig-via-pkg-config-for-correct-handling-.patch b/qt6-base/mingw-w64/0008-Find-fontconfig-via-pkg-config-for-correct-handling-.patch index 268b8e21..fe2e66b5 100644 --- a/qt6-base/mingw-w64/0008-Find-fontconfig-via-pkg-config-for-correct-handling-.patch +++ b/qt6-base/mingw-w64/0008-Find-fontconfig-via-pkg-config-for-correct-handling-.patch @@ -1,7 +1,7 @@ From 5a4ab8c0fb624472ae7e4ad56c2d74b9cc67d57a Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 24 Apr 2022 23:00:27 +0200 -Subject: [PATCH 08/17] Find fontconfig via pkg-config for correct handling of +Subject: [PATCH 08/18] Find fontconfig via pkg-config for correct handling of its dependencies CMake's own find module unforunately does not consider fontconfig's deps so diff --git a/qt6-base/mingw-w64/0009-Fix-dependency-of-xcb-image-on-xcb-util.patch b/qt6-base/mingw-w64/0009-Fix-dependency-of-xcb-image-on-xcb-util.patch index 3fcb4139..380cb588 100644 --- a/qt6-base/mingw-w64/0009-Fix-dependency-of-xcb-image-on-xcb-util.patch +++ b/qt6-base/mingw-w64/0009-Fix-dependency-of-xcb-image-on-xcb-util.patch @@ -1,7 +1,7 @@ From 0dbe526b2008f4ceadf5d64f5727c56f186dee20 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 24 Apr 2022 23:49:36 +0200 -Subject: [PATCH 09/17] Fix dependency of xcb-image on xcb-util +Subject: [PATCH 09/18] Fix dependency of xcb-image on xcb-util Considering this linker error, xcb-image apparently depends on xcb-util: ``` diff --git a/qt6-base/mingw-w64/0010-Allow-using-properties-of-PkgConfig-targets-for-glib.patch b/qt6-base/mingw-w64/0010-Allow-using-properties-of-PkgConfig-targets-for-glib.patch index 894c7ab3..a9929dc2 100644 --- a/qt6-base/mingw-w64/0010-Allow-using-properties-of-PkgConfig-targets-for-glib.patch +++ b/qt6-base/mingw-w64/0010-Allow-using-properties-of-PkgConfig-targets-for-glib.patch @@ -1,7 +1,7 @@ From d4755a76385f7168f2571be3e10604579c51e505 Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 26 Apr 2022 20:16:31 +0200 -Subject: [PATCH 10/17] Allow using properties of PkgConfig targets for glib2 +Subject: [PATCH 10/18] Allow using properties of PkgConfig targets for glib2 to handle deps of static glib2 Change-Id: I37d20256d17ae9cc0775e32aa479f1e433ece908 diff --git a/qt6-base/mingw-w64/0011-Allow-using-properties-of-PkgConfig-targets-for-Wayl.patch b/qt6-base/mingw-w64/0011-Allow-using-properties-of-PkgConfig-targets-for-Wayl.patch index 56b52abc..ee3a7252 100644 --- a/qt6-base/mingw-w64/0011-Allow-using-properties-of-PkgConfig-targets-for-Wayl.patch +++ b/qt6-base/mingw-w64/0011-Allow-using-properties-of-PkgConfig-targets-for-Wayl.patch @@ -1,7 +1,7 @@ From ffc4949b3ef9aba745c39fe137d04ebeb7218e27 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sun, 1 May 2022 23:28:26 +0200 -Subject: [PATCH 11/17] Allow using properties of PkgConfig targets for Wayland +Subject: [PATCH 11/18] Allow using properties of PkgConfig targets for Wayland to handle deps of static libs Change-Id: I2a4acf0acaf5a363d551384bb4c33c48a3792f27 diff --git a/qt6-base/mingw-w64/0012-Allow-overriding-preference-for-shared-libzstd-libra.patch b/qt6-base/mingw-w64/0012-Allow-overriding-preference-for-shared-libzstd-libra.patch index 3023aa82..750c35e7 100644 --- a/qt6-base/mingw-w64/0012-Allow-overriding-preference-for-shared-libzstd-libra.patch +++ b/qt6-base/mingw-w64/0012-Allow-overriding-preference-for-shared-libzstd-libra.patch @@ -1,7 +1,7 @@ From 76d4c957cc1bc010b95a1fd755edd8d5a9b0b5ca Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 7 Nov 2023 23:58:54 +0100 -Subject: [PATCH 12/17] Allow overriding preference for shared libzstd library +Subject: [PATCH 12/18] Allow overriding preference for shared libzstd library As of 3f45905953d57e0174059d7d9d6bc75c3c1c406c Qt prefers the shared zstd library. This breaks static builds. With this change the static library is diff --git a/qt6-base/mingw-w64/0013-Fix-errors-due-to-disabled-exceptions-with-cpp_winrt.patch b/qt6-base/mingw-w64/0013-Fix-errors-due-to-disabled-exceptions-with-cpp_winrt.patch index 42bde496..b3824e31 100644 --- a/qt6-base/mingw-w64/0013-Fix-errors-due-to-disabled-exceptions-with-cpp_winrt.patch +++ b/qt6-base/mingw-w64/0013-Fix-errors-due-to-disabled-exceptions-with-cpp_winrt.patch @@ -1,7 +1,7 @@ From 4c0319dc229bec434f0ac6df9eff6826d3d06f91 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sat, 17 Feb 2024 20:31:12 +0100 -Subject: [PATCH 13/17] Fix errors due to disabled exceptions with cpp_winrt +Subject: [PATCH 13/18] Fix errors due to disabled exceptions with cpp_winrt support The winrt headers use exceptions so code using them must be compiled diff --git a/qt6-base/mingw-w64/0014-Fix-setting-exception-flags-of-plugin-targets.patch b/qt6-base/mingw-w64/0014-Fix-setting-exception-flags-of-plugin-targets.patch index 8a859386..698ecfc6 100644 --- a/qt6-base/mingw-w64/0014-Fix-setting-exception-flags-of-plugin-targets.patch +++ b/qt6-base/mingw-w64/0014-Fix-setting-exception-flags-of-plugin-targets.patch @@ -1,7 +1,7 @@ From 5c025309750ea1093f46b2227d76348de5c0d4aa Mon Sep 17 00:00:00 2001 From: Martchus Date: Sat, 17 Feb 2024 20:48:21 +0100 -Subject: [PATCH 14/17] Fix setting exception flags of plugin targets +Subject: [PATCH 14/18] Fix setting exception flags of plugin targets Change-Id: I93b1b5fa55f3e35e13351d9c981409f1593bf8a8 --- diff --git a/qt6-base/mingw-w64/0015-Link-corelib-correctly-against-runtimeobject-when-co.patch b/qt6-base/mingw-w64/0015-Link-corelib-correctly-against-runtimeobject-when-co.patch index 2e0dba67..93a9da92 100644 --- a/qt6-base/mingw-w64/0015-Link-corelib-correctly-against-runtimeobject-when-co.patch +++ b/qt6-base/mingw-w64/0015-Link-corelib-correctly-against-runtimeobject-when-co.patch @@ -1,7 +1,7 @@ From 7ac1996bcf302e058b3537c1fa09b443523fe4e3 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sat, 17 Feb 2024 21:39:39 +0100 -Subject: [PATCH 15/17] Link corelib correctly against runtimeobject when +Subject: [PATCH 15/18] Link corelib correctly against runtimeobject when compiling for Windows This library is included by mingw-w64 and also needs to be linked against diff --git a/qt6-base/mingw-w64/0016-Workaround-linker-error-about-missing-symbol-__sync_.patch b/qt6-base/mingw-w64/0016-Workaround-linker-error-about-missing-symbol-__sync_.patch index 9ff13a8d..02ff6b02 100644 --- a/qt6-base/mingw-w64/0016-Workaround-linker-error-about-missing-symbol-__sync_.patch +++ b/qt6-base/mingw-w64/0016-Workaround-linker-error-about-missing-symbol-__sync_.patch @@ -1,7 +1,7 @@ From 3176558331d11327354603618f6bb6a26705c50c Mon Sep 17 00:00:00 2001 From: Martchus Date: Sat, 17 Feb 2024 23:11:18 +0100 -Subject: [PATCH 16/17] Workaround linker error about missing symbol +Subject: [PATCH 16/18] Workaround linker error about missing symbol `__sync_bool_compare_and_swap_16` This error only happens when compiling for the x86_64-w64-mingw32 target diff --git a/qt6-base/mingw-w64/0017-Fix-wrong-cpp-conditional-in-qspan.h.patch b/qt6-base/mingw-w64/0017-Fix-wrong-cpp-conditional-in-qspan.h.patch index 97fd63d7..2a9735ad 100644 --- a/qt6-base/mingw-w64/0017-Fix-wrong-cpp-conditional-in-qspan.h.patch +++ b/qt6-base/mingw-w64/0017-Fix-wrong-cpp-conditional-in-qspan.h.patch @@ -1,7 +1,7 @@ From 97da3cf6be021886a367ce894425f842059fbdcf Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 2 Apr 2024 23:29:07 +0200 -Subject: [PATCH 17/17] Fix wrong cpp conditional in qspan.h +Subject: [PATCH 17/18] Fix wrong cpp conditional in qspan.h Picked from https://gitlab.archlinux.org/archlinux/packaging/packages/qt6-base/-/blob/main/fix-wrong-cpp-if.patch diff --git a/qt6-base/mingw-w64/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch b/qt6-base/mingw-w64/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch new file mode 100644 index 00000000..4d9fbc78 --- /dev/null +++ b/qt6-base/mingw-w64/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch @@ -0,0 +1,252 @@ +From b27cb80b88f9da8fc5b964ba6c40e6ad816bdc23 Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sat, 26 Jun 2021 22:24:12 +0200 +Subject: [PATCH 18/18] Fix crashes in rasterization code using setjmp +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* Use C++ exceptions instead of setjmp to workaround crashes +* The setjmp/longjmp code crashes when compiling for x86_64-w64-mingw32 + with GCC 11 and optimizations enabled¹. It crashes when jumping back + to handle the case of insufficient memory. This change uses C++ + exceptions instead (turning the compile unit into a C++ unit instead + of just using C) which should behave identical but don't seem to + crash. +* Fix rendering certain SVGs and possibly other graphics + +Change-Id: I01937d13569dd01ab4cb1f608020544c93bc343c + +--- + +¹ See https://bugreports.qt.io/browse/QTBUG-94692 for details. +--- + src/gui/CMakeLists.txt | 7 +++- + .../{qgrayraster.c => qgrayraster.cpp} | 41 ++++++++----------- + src/gui/painting/qt_attribution.json | 2 +- + 3 files changed, 24 insertions(+), 26 deletions(-) + rename src/gui/painting/{qgrayraster.c => qgrayraster.cpp} (98%) + +diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt +index b0cbee37bbb..8a161584843 100644 +--- a/src/gui/CMakeLists.txt ++++ b/src/gui/CMakeLists.txt +@@ -175,7 +175,7 @@ qt_internal_add_module(Gui + painting/qdrawingprimitive_sse2_p.h + painting/qemulationpaintengine.cpp painting/qemulationpaintengine_p.h + painting/qfixed_p.h +- painting/qgrayraster.c painting/qgrayraster_p.h ++ painting/qgrayraster.cpp painting/qgrayraster_p.h + painting/qicc.cpp painting/qicc_p.h + painting/qimagescale.cpp painting/qimagescale_p.h + painting/qmath_p.h +@@ -285,6 +285,11 @@ qt_internal_add_module(Gui + "(^|/)qrhi\\.h$|(^|/)qrhi_platform\\.h$|(^|/)qshader\\.h$|(^|/)qshaderdescription\\.h$" + ) + ++# enable exceptions for painting/qgrayraster.cpp ++set_source_files_properties("painting/qgrayraster.cpp" ++ PROPERTIES COMPILE_FLAGS "-fexceptions" DISABLE_PRECOMPILE_HEADERS ON SKIP_PRECOMPILE_HEADERS ON ++) ++ + # Resources: + if(QT_FEATURE_pdf) + set_source_files_properties("../3rdparty/icc/sRGB2014.icc" +diff --git a/src/gui/painting/qgrayraster.c b/src/gui/painting/qgrayraster.cpp +similarity index 98% +rename from src/gui/painting/qgrayraster.c +rename to src/gui/painting/qgrayraster.cpp +index 3c222c49e16..813cfc08dcf 100644 +--- a/src/gui/painting/qgrayraster.c ++++ b/src/gui/painting/qgrayraster.cpp +@@ -3,7 +3,7 @@ + + /***************************************************************************/ + /* */ +-/* qgrayraster.c, derived from ftgrays.c */ ++/* qgrayraster.cpp, derived from ftgrays.c */ + /* */ + /* A new `perfect' anti-aliasing renderer (body). */ + /* */ +@@ -121,17 +121,12 @@ + # include /* needed for setjmp.h */ + #endif + #include /* for qt_ft_memcpy() */ +-#include + #include + + #define QT_FT_UINT_MAX UINT_MAX + + #define qt_ft_memset memset + +-#define qt_ft_setjmp setjmp +-#define qt_ft_longjmp longjmp +-#define qt_ft_jmp_buf jmp_buf +- + #include + typedef ptrdiff_t QT_FT_PtrDist; + +@@ -141,6 +136,8 @@ typedef ptrdiff_t QT_FT_PtrDist; + #define ErrRaster_Memory_Overflow -4 + #define ErrRaster_OutOfMemory -6 + ++struct RasterMemoryOverflow {}; ++ + #define QT_FT_BEGIN_HEADER + #define QT_FT_END_HEADER + +@@ -274,8 +271,6 @@ QT_FT_END_STMNT + int band_size; + int band_shoot; + +- qt_ft_jmp_buf jump_buffer; +- + void* buffer; + long buffer_size; + +@@ -297,12 +292,14 @@ QT_FT_END_STMNT + + } TRaster, *PRaster; + ++ extern "C" { + int q_gray_rendered_spans(TRaster *raster) + { + if ( raster && raster->worker ) + return raster->worker->skip_spans > 0 ? 0 : -raster->worker->skip_spans; + return 0; + } ++ } + + /*************************************************************************/ + /* */ +@@ -368,7 +365,6 @@ QT_FT_END_STMNT + ras.max_ey = ( ras.max_ey + 63 ) >> 6; + } + +- + /*************************************************************************/ + /* */ + /* Record the current cell in the table. */ +@@ -397,7 +393,7 @@ QT_FT_END_STMNT + } + + if ( ras.num_cells >= ras.max_cells ) +- qt_ft_longjmp( ras.jump_buffer, 1 ); ++ throw RasterMemoryOverflow(); + + cell = ras.cells + ras.num_cells++; + cell->x = x; +@@ -1470,7 +1466,7 @@ QT_FT_END_STMNT + + QT_FT_TRACE5(( " move to (%.2f, %.2f)\n", + v_start.x / 64.0, v_start.y / 64.0 )); +- error = gray_move_to( &v_start, user ); ++ error = gray_move_to( &v_start, static_cast(user) ); + if ( error ) + goto Exit; + +@@ -1492,7 +1488,7 @@ QT_FT_END_STMNT + + QT_FT_TRACE5(( " line to (%.2f, %.2f)\n", + vec.x / 64.0, vec.y / 64.0 )); +- gray_render_line(user, UPSCALE(vec.x), UPSCALE(vec.y)); ++ gray_render_line(static_cast(user), UPSCALE(vec.x), UPSCALE(vec.y)); + continue; + } + +@@ -1521,7 +1517,7 @@ QT_FT_END_STMNT + " with control (%.2f, %.2f)\n", + vec.x / 64.0, vec.y / 64.0, + v_control.x / 64.0, v_control.y / 64.0 )); +- gray_render_conic(user, &v_control, &vec); ++ gray_render_conic(static_cast(user), &v_control, &vec); + continue; + } + +@@ -1535,7 +1531,7 @@ QT_FT_END_STMNT + " with control (%.2f, %.2f)\n", + v_middle.x / 64.0, v_middle.y / 64.0, + v_control.x / 64.0, v_control.y / 64.0 )); +- gray_render_conic(user, &v_control, &v_middle); ++ gray_render_conic(static_cast(user), &v_control, &v_middle); + + v_control = vec; + goto Do_Conic; +@@ -1545,7 +1541,7 @@ QT_FT_END_STMNT + " with control (%.2f, %.2f)\n", + v_start.x / 64.0, v_start.y / 64.0, + v_control.x / 64.0, v_control.y / 64.0 )); +- gray_render_conic(user, &v_control, &v_start); ++ gray_render_conic(static_cast(user), &v_control, &v_start); + goto Close; + } + +@@ -1580,7 +1576,7 @@ QT_FT_END_STMNT + vec.x / 64.0, vec.y / 64.0, + vec1.x / 64.0, vec1.y / 64.0, + vec2.x / 64.0, vec2.y / 64.0 )); +- gray_render_cubic(user, &vec1, &vec2, &vec); ++ gray_render_cubic(static_cast(user), &vec1, &vec2, &vec); + continue; + } + +@@ -1589,7 +1585,7 @@ QT_FT_END_STMNT + v_start.x / 64.0, v_start.y / 64.0, + vec1.x / 64.0, vec1.y / 64.0, + vec2.x / 64.0, vec2.y / 64.0 )); +- gray_render_cubic(user, &vec1, &vec2, &v_start); ++ gray_render_cubic(static_cast(user), &vec1, &vec2, &v_start); + goto Close; + } + } +@@ -1598,7 +1594,7 @@ QT_FT_END_STMNT + /* close the contour with a line segment */ + QT_FT_TRACE5(( " line to (%.2f, %.2f)\n", + v_start.x / 64.0, v_start.y / 64.0 )); +- gray_render_line(user, UPSCALE(v_start.x), UPSCALE(v_start.y)); ++ gray_render_line(static_cast(user), UPSCALE(v_start.x), UPSCALE(v_start.y)); + + Close: + first = last + 1; +@@ -1626,14 +1622,11 @@ QT_FT_END_STMNT + { + volatile int error = 0; + +- if ( qt_ft_setjmp( ras.jump_buffer ) == 0 ) +- { ++ try { + error = QT_FT_Outline_Decompose( &ras.outline, &ras ); + if ( !ras.invalid ) + gray_record_cell( RAS_VAR ); +- } +- else +- { ++ } catch (const RasterMemoryOverflow &) { + error = ErrRaster_Memory_Overflow; + } + +@@ -1898,7 +1891,7 @@ QT_FT_END_STMNT + static int + gray_raster_new( QT_FT_Raster* araster ) + { +- *araster = malloc(sizeof(TRaster)); ++ *araster = static_cast(malloc(sizeof(TRaster))); + if (!*araster) { + *araster = 0; + return ErrRaster_Memory_Overflow; +diff --git a/src/gui/painting/qt_attribution.json b/src/gui/painting/qt_attribution.json +index 33ed2fd5c7b..658547ce4a8 100644 +--- a/src/gui/painting/qt_attribution.json ++++ b/src/gui/painting/qt_attribution.json +@@ -4,7 +4,7 @@ + "Name": "Anti-aliasing rasterizer from FreeType 2", + "QDocModule": "qtgui", + "QtUsage": "Used in Qt GUI.", +- "Files": "qgrayraster.c", ++ "Files": "qgrayraster.cpp", + + "Description": "FreeType is a freely available software library to render fonts.", + "Homepage": "http://www.freetype.org", +-- +2.44.0 + diff --git a/qt6-base/mingw-w64/PKGBUILD b/qt6-base/mingw-w64/PKGBUILD index 7ff6b2d1..ad97eb42 100644 --- a/qt6-base/mingw-w64/PKGBUILD +++ b/qt6-base/mingw-w64/PKGBUILD @@ -13,7 +13,7 @@ pkgname=mingw-w64-qt6-base _qtver=6.7.0 pkgver=${_qtver/-/} -pkgrel=1 +pkgrel=2 arch=(any) url='https://www.qt.io' license=(GPL3 LGPL3 FDL custom) @@ -47,25 +47,27 @@ source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/subm '0014-Fix-setting-exception-flags-of-plugin-targets.patch' '0015-Link-corelib-correctly-against-runtimeobject-when-co.patch' '0016-Workaround-linker-error-about-missing-symbol-__sync_.patch' - '0017-Fix-wrong-cpp-conditional-in-qspan.h.patch') + '0017-Fix-wrong-cpp-conditional-in-qspan.h.patch' + '0018-Fix-crashes-in-rasterization-code-using-setjmp.patch') sha256sums=('11b2e29e2e52fb0e3b453ea13bbe51a10fdff36e1c192d8868c5a40233b8b254' - 'e25f83ddf9e3f9eefcb833751cff8957f32cb2f13f5a1f033679b45d2c9e544e' - 'ae4a20f41df34eefc960ed5cb2cf54afb421573f08545d5492882edd18e00a3c' - '5d329d722365c07a28b85a9d1ba9c6c53ad19124662aa1825cdd78ece82c47f3' - '86dd06b2a1bd7b050763346d2bd16a63c914c516782df64a3c6c78268ea33e06' - '4390d712d64d50e2cd8d0cea3a53317cda4e7a21bd99a346f1bd82d18514b6f5' - '73c2780b8efe19f32ea433d2254e0ceeb503f77004812048e3fcef5da363fd31' - '272db976e1a219063d87b8ef21537fbe8959c87acbb34de4cbe5b995bc2eb46a' - '43c5a589616a200ded1a2c81b2d4c09919dc96b7ed0df50dea97148f373db147' - '1fbc2aecb48912ef1f4563f5eb4a1d3f5fad0767052a763cebe72d631cdf1e77' - 'e7f591f23724529b6f45182352f0a4274d4c09f0a2686d7f6588857c3d81df08' - '313ae6611f91ce7c12366035f0271a1bd1fa787f68a652de95f2fd55a71b4e1f' - '7de102a3e66bf6aafeb3c0cd0ae49b344e166b902d4d29fd33366883b11f1d5d' - '5e9b7c818bd972c694075a0a01d0f44a9d6d6aaf9e3b36174702b8839f30b76b' - 'b707bf9d69cf866dd776e5c07235161186747607dc24264320784e1222272fcc' - '04811ea7c29e15a9d5c63c6f483804ec2538e8e826c3c06019b78a98435b56b2' - 'ce7dc86c30f160e6d565c579a84e0b0f799b1afa751ebe0748a0e80f8408cb7f' - '55959f673e409ea952661cbddfb8b046bec7cda3d8b05686bed82ace4246e273') + '2bcfcdfe0fabdb7e7600eb6e1b85d9cda8f86af558a8c09658bc1867cc273ca0' + 'a053880e1bd15d1eb4ee8fb27a2f1345af88235fb7cf1515461c3525f0be4daf' + '779093bfe4fafebf278d39de4f4f3f9b7dc6dd6871c3e86de7af51639290fe69' + '4e694cc40009b1a0cb62aa03b6d3d2b692ddca156e776c52f9babdc6e0cb2c32' + '3953be3b3cb029f47994779824c7b7875aa7b5c1c21156dbf76bccce68244d28' + 'b359923aae5cddb7f52d9fc803ed2945a5644d0ae637728a401899ccc09c73af' + 'ed14103ac853bd72e203ce93c13586dc40bb4d1194e390e5cc631afa29eb920f' + '76d49fe063b197b68f9a5c3e09047e4aad581639682c985762341d16e08c95bb' + 'cbd5f1777ecb380fe6444eb3eb04b8abdc5988c3f97ae1f58da422d214448bd1' + '40e287b41d3e09b7fa09804ce1feca87eea1b0a4d662cfb5d7e938c6a43bf155' + '818f0a500a37ff2b5a1fe0502ce2321468482423714f4ca4d9ee02a1c8a85120' + '7de9a5e4adf4afa4d4a4ba6a90c58df810748d97631e8ee2d7051cb64d312069' + 'a29667637bbd0949200d6dbb18f8b9b75e55164c6e8dd049296f7dcbe4910a21' + '167921dd76e072857413538fbdbd56b4fab19cb53c739a70fe8aa613ca8c5651' + '9177a5c59465953777faca9f0651106f0b6e98e6f825e276f81f2dd9e4ce5426' + 'b5eeae582ddba1b96c600f1cb2b73083cf8ae619af7ade2b45dfc17214497b5e' + '80b2cc652b087ac950a398b554842ce66d1b0703d890d52bfffb2af0ea6ab1a7' + 'bfca3b0894ce1b6764217905835db50b9251ad19084c7f89967f37bfb1366cf4') _architectures='i686-w64-mingw32 x86_64-w64-mingw32' diff --git a/qt6-base/static-compat/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch b/qt6-base/static-compat/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch new file mode 120000 index 00000000..bd7e82e5 --- /dev/null +++ b/qt6-base/static-compat/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch @@ -0,0 +1 @@ +../mingw-w64/0018-Fix-crashes-in-rasterization-code-using-setjmp.patch \ No newline at end of file diff --git a/qt6-base/static-compat/PKGBUILD b/qt6-base/static-compat/PKGBUILD index 1b657729..fb83a7e8 100644 --- a/qt6-base/static-compat/PKGBUILD +++ b/qt6-base/static-compat/PKGBUILD @@ -46,25 +46,27 @@ source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/subm '0014-Fix-setting-exception-flags-of-plugin-targets.patch' '0015-Link-corelib-correctly-against-runtimeobject-when-co.patch' '0016-Workaround-linker-error-about-missing-symbol-__sync_.patch' - '0017-Fix-wrong-cpp-conditional-in-qspan.h.patch') + '0017-Fix-wrong-cpp-conditional-in-qspan.h.patch' + '0018-Fix-crashes-in-rasterization-code-using-setjmp.patch') sha256sums=('11b2e29e2e52fb0e3b453ea13bbe51a10fdff36e1c192d8868c5a40233b8b254' - 'e25f83ddf9e3f9eefcb833751cff8957f32cb2f13f5a1f033679b45d2c9e544e' - 'ae4a20f41df34eefc960ed5cb2cf54afb421573f08545d5492882edd18e00a3c' - '5d329d722365c07a28b85a9d1ba9c6c53ad19124662aa1825cdd78ece82c47f3' - '86dd06b2a1bd7b050763346d2bd16a63c914c516782df64a3c6c78268ea33e06' - '4390d712d64d50e2cd8d0cea3a53317cda4e7a21bd99a346f1bd82d18514b6f5' - '73c2780b8efe19f32ea433d2254e0ceeb503f77004812048e3fcef5da363fd31' - '272db976e1a219063d87b8ef21537fbe8959c87acbb34de4cbe5b995bc2eb46a' - '43c5a589616a200ded1a2c81b2d4c09919dc96b7ed0df50dea97148f373db147' - '1fbc2aecb48912ef1f4563f5eb4a1d3f5fad0767052a763cebe72d631cdf1e77' - 'e7f591f23724529b6f45182352f0a4274d4c09f0a2686d7f6588857c3d81df08' - '313ae6611f91ce7c12366035f0271a1bd1fa787f68a652de95f2fd55a71b4e1f' - '7de102a3e66bf6aafeb3c0cd0ae49b344e166b902d4d29fd33366883b11f1d5d' - '5e9b7c818bd972c694075a0a01d0f44a9d6d6aaf9e3b36174702b8839f30b76b' - 'b707bf9d69cf866dd776e5c07235161186747607dc24264320784e1222272fcc' - '04811ea7c29e15a9d5c63c6f483804ec2538e8e826c3c06019b78a98435b56b2' - 'ce7dc86c30f160e6d565c579a84e0b0f799b1afa751ebe0748a0e80f8408cb7f' - '55959f673e409ea952661cbddfb8b046bec7cda3d8b05686bed82ace4246e273') + '2bcfcdfe0fabdb7e7600eb6e1b85d9cda8f86af558a8c09658bc1867cc273ca0' + 'a053880e1bd15d1eb4ee8fb27a2f1345af88235fb7cf1515461c3525f0be4daf' + '779093bfe4fafebf278d39de4f4f3f9b7dc6dd6871c3e86de7af51639290fe69' + '4e694cc40009b1a0cb62aa03b6d3d2b692ddca156e776c52f9babdc6e0cb2c32' + '3953be3b3cb029f47994779824c7b7875aa7b5c1c21156dbf76bccce68244d28' + 'b359923aae5cddb7f52d9fc803ed2945a5644d0ae637728a401899ccc09c73af' + 'ed14103ac853bd72e203ce93c13586dc40bb4d1194e390e5cc631afa29eb920f' + '76d49fe063b197b68f9a5c3e09047e4aad581639682c985762341d16e08c95bb' + 'cbd5f1777ecb380fe6444eb3eb04b8abdc5988c3f97ae1f58da422d214448bd1' + '40e287b41d3e09b7fa09804ce1feca87eea1b0a4d662cfb5d7e938c6a43bf155' + '818f0a500a37ff2b5a1fe0502ce2321468482423714f4ca4d9ee02a1c8a85120' + '7de9a5e4adf4afa4d4a4ba6a90c58df810748d97631e8ee2d7051cb64d312069' + 'a29667637bbd0949200d6dbb18f8b9b75e55164c6e8dd049296f7dcbe4910a21' + '167921dd76e072857413538fbdbd56b4fab19cb53c739a70fe8aa613ca8c5651' + '9177a5c59465953777faca9f0651106f0b6e98e6f825e276f81f2dd9e4ce5426' + 'b5eeae582ddba1b96c600f1cb2b73083cf8ae619af7ade2b45dfc17214497b5e' + '80b2cc652b087ac950a398b554842ce66d1b0703d890d52bfffb2af0ea6ab1a7' + 'bfca3b0894ce1b6764217905835db50b9251ad19084c7f89967f37bfb1366cf4') prepare () { cd $_pkgfqn