diff --git a/testing/nss/build b/testing/nss/build new file mode 100755 index 00000000..fe0266fa --- /dev/null +++ b/testing/nss/build @@ -0,0 +1,41 @@ +#!/bin/sh -e + +export NSS_USE_SYSTEM_SQLITE=1 +export NSS_ENABLE_WERROR=0 +export USE_64=1 +export BUILD_OPT=1 + +make -j1 -C nss nss_build_all + +# TODO: Maybe install the NSS binaries. They're uneeded +# right now as we handle certs differently. +# +# TODO: Maybe install nss-config. Nothing uses it yet +# and this build system is terrible so shhh. +install -Dt "$1/usr/include/nss" -m644 dist/public/nss/*.h +install -Dt "$1/usr/lib" dist/Linux*/lib/*.so +install -Dt "$1/usr/lib" -m644 dist/Linux*/lib/*.chk + +# Install the NSPR files. This is a joint package as I'd +# rather not juggle which version of NSPR works best with NSS. +install -Dt "$1/usr/include/nspr" -m644 nspr/pr/include/*.h +install -Dt "$1/usr/include/nspr" -m644 nspr/lib/*/*.h + +# Disgusting. Disgusting. Disgusting. Disgusting. Disgusting. +find nspr/Linux* -name \*.so \ + -exec install -Dt "$1/usr/lib" {} \; + +# This is disgusting and I hate this package with a passion. +sed nss/pkg/pkg-config/nss.pc.in \ + -e "s,%libdir%,/usr/lib,g" \ + -e "s,%prefix%,/usr,g" \ + -e "s,%exec_prefix%,/usr/bin,g" \ + -e "s,%includedir%,/usr/include/nss,g" \ + -e "s,%NSPR_VERSION%,4.20,g" \ + -e "s,%NSS_VERSION%,3.49.1,g" | +install -Dm644 /dev/stdin "$1/usr/lib/pkgconfig/nss.pc" + +# This is disgusting and I hate this package with a passion. +sed nspr/Linux*/config/nspr.pc \ + -e "s,/usr/local,/usr,g" | +install -Dm644 /dev/stdin "$1/usr/lib/pkgconfig/nspr.pc" diff --git a/testing/nss/checksums b/testing/nss/checksums new file mode 100644 index 00000000..350a2176 --- /dev/null +++ b/testing/nss/checksums @@ -0,0 +1 @@ +c4bb99762b3edaea1cb69329a698b8bbf06ee1647e0e4a51aa2469ee1a3ae36c nss-3.49.1-with-nspr-4.24.tar.gz diff --git a/testing/nss/depends b/testing/nss/depends new file mode 100644 index 00000000..6be6f079 --- /dev/null +++ b/testing/nss/depends @@ -0,0 +1,2 @@ +sqlite +zlib diff --git a/testing/nss/sources b/testing/nss/sources new file mode 100644 index 00000000..8d8a39dc --- /dev/null +++ b/testing/nss/sources @@ -0,0 +1 @@ +https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_49_1_RTM/src/nss-3.49.1-with-nspr-4.24.tar.gz diff --git a/testing/nss/version b/testing/nss/version new file mode 100644 index 00000000..84145139 --- /dev/null +++ b/testing/nss/version @@ -0,0 +1 @@ +3.49.1-r0 1 diff --git a/testing/qt5-declarative/build b/testing/qt5-declarative/build new file mode 100755 index 00000000..1a2db760 --- /dev/null +++ b/testing/qt5-declarative/build @@ -0,0 +1,6 @@ +#!/bin/sh -e + +qmake + +make +make install INSTALL_ROOT="$1" diff --git a/testing/qt5-declarative/checksums b/testing/qt5-declarative/checksums new file mode 100644 index 00000000..e438b92f --- /dev/null +++ b/testing/qt5-declarative/checksums @@ -0,0 +1 @@ +bbf11ee33d6f0d6bd6c4dc641d4f2aafbc7c6cd3b421a658955302d441dc9d8e qtdeclarative-everywhere-src-5.14.0.tar.xz diff --git a/testing/qt5-declarative/depends b/testing/qt5-declarative/depends new file mode 100644 index 00000000..bc00c87a --- /dev/null +++ b/testing/qt5-declarative/depends @@ -0,0 +1,17 @@ +bzip2 +expat +freetype-harfbuzz +glib +libX11 +libXau +libXdamage +libXext +libXfixes +libXxf86vm +libdrm +libpng +libxcb +libxshmfence +mesa +qt5 +zlib diff --git a/testing/qt5-declarative/sources b/testing/qt5-declarative/sources new file mode 100644 index 00000000..696123ea --- /dev/null +++ b/testing/qt5-declarative/sources @@ -0,0 +1 @@ +https://download.qt.io/official_releases/qt/5.14/5.14.0/submodules/qtdeclarative-everywhere-src-5.14.0.tar.xz diff --git a/testing/qt5-declarative/version b/testing/qt5-declarative/version new file mode 100644 index 00000000..de0fd9f1 --- /dev/null +++ b/testing/qt5-declarative/version @@ -0,0 +1 @@ +5.14.0 1 diff --git a/testing/qt5-qtwebengine/build b/testing/qt5-qtwebengine/build new file mode 100755 index 00000000..085aa8ce --- /dev/null +++ b/testing/qt5-qtwebengine/build @@ -0,0 +1,29 @@ +#!/bin/sh -e + +for patch in *.patch; do + patch -p1 < "$patch" +done + +sed -i 's/dbus//g' \ + src/buildtools/config/support.pri + +sed -i 's/use_dbus.*/use_dbus=false/' \ + src/3rdparty/chromium/build/config/features.gni + +qmake -- \ + -feature-webengine-system-icu \ + -feature-webengine-system-ninja \ + -feature-webengine-system-zlib \ + -feature-webengine-system-harfbuzz \ + -feature-webengine-system-png \ + -feature-webengine-system-libevent \ + -feature-webengine-system-libvpx \ + -feature-webengine-system-opus \ + -feature-webengine-system-libwebp \ + -feature-webengine-system-ffmpeg \ + -no-feature-webengine-system-glib \ + -no-feature-webengine-webrtc \ + -no-feature-webengine-proprietary-codecs \ + +make +make install INSTALL_ROOT="$1" diff --git a/testing/qt5-qtwebengine/checksums b/testing/qt5-qtwebengine/checksums new file mode 100644 index 00000000..b636ec6a --- /dev/null +++ b/testing/qt5-qtwebengine/checksums @@ -0,0 +1,5 @@ +74f8c11cc318612c8d9dc87cf791badb1efe7080c10d8b3ed5843b249a942d32 qtwebengine-everywhere-src-5.14.0.tar.xz +1be1f8e2851f6420f0676fb4f1562368125f93da8bff977be741f85bb453a9fe 0004-mkspecs-Allow-builds-with-libc-glibc.patch +a58627c95fef502a1a9eeaa29f77bd60d17ab39dd51c994dcc7073fe7590232e 0021-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch +fe8057b83f02f19e169faa9e4e6ebd11a4e3ba33453ea46df6672293edf9dd09 0022-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch +bd58ef5468799716187e0783c9c0a595eeb17ac619104c35b456c58350cf9b3e 0023-chromium-musl-pread-pwrite.patch diff --git a/testing/qt5-qtwebengine/depends b/testing/qt5-qtwebengine/depends new file mode 100644 index 00000000..bd66b6f6 --- /dev/null +++ b/testing/qt5-qtwebengine/depends @@ -0,0 +1,20 @@ +bison make +flex make +gperf make +ffmpeg +fontconfig +freetype-harfbuzz +libXcomposite +libXcursor +libXi +libxml2 +libXslt +libXtst +libdrm +samurai make +python2 make +qt5 +qt5-declarative +icu +zlib +libevent diff --git a/testing/qt5-qtwebengine/patches/0004-mkspecs-Allow-builds-with-libc-glibc.patch b/testing/qt5-qtwebengine/patches/0004-mkspecs-Allow-builds-with-libc-glibc.patch new file mode 100644 index 00000000..5c3eafb5 --- /dev/null +++ b/testing/qt5-qtwebengine/patches/0004-mkspecs-Allow-builds-with-libc-glibc.patch @@ -0,0 +1,26 @@ +From 71d55292cdd72dcf1ed5eb4ba7299433a35a4bb0 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 12 Nov 2019 19:53:59 -0800 +Subject: [PATCH] mkspecs: Allow builds with libc != glibc + +Signed-off-by: Khem Raj +--- + src/buildtools/config/support.pri | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/src/buildtools/config/support.pri b/src/buildtools/config/support.pri +index 5bdd808d..19540787 100644 +--- a/src/buildtools/config/support.pri ++++ b/src/buildtools/config/support.pri +@@ -89,11 +89,6 @@ defineTest(qtwebengine_checkErrorForLinux) { + return(false) + } + +- !qtConfig(webengine-system-glibc) { +- qtwebengine_skipBuild("A suitable version >= 2.27 of libc required to build QtWebEngine could not be found.") +- return(false) +- } +- + !qtConfig(webengine-system-khr) { + qtwebengine_skipBuild("Khronos development headers required to build QtWebEngine are missing (see mesa/libegl1-mesa-dev)") + return(false) diff --git a/testing/qt5-qtwebengine/patches/0021-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch b/testing/qt5-qtwebengine/patches/0021-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch new file mode 100644 index 00000000..f0af0fd3 --- /dev/null +++ b/testing/qt5-qtwebengine/patches/0021-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch @@ -0,0 +1,63 @@ +From 1f839bf6ac48d81a8acbf3def4f57a555a05fa18 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 25 Sep 2018 12:35:07 -0700 +Subject: [PATCH] chromium: musl: Use _fpstate instead of _libc_fpstate on + linux + +glibc defines both. musl libc only the former. + +Signed-off-by: Khem Raj +--- + .../src/client/linux/dump_writer_common/ucontext_reader.cc | 4 ++-- + .../src/client/linux/dump_writer_common/ucontext_reader.h | 2 +- + .../src/client/linux/minidump_writer/minidump_writer.h | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc +index 6ee6cc1e4cd..a8f9ccc72ac 100644 +--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc ++++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc +@@ -49,7 +49,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + } + + void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, +- const struct _libc_fpstate* fp) { ++ const struct _fpstate* fp) { + const greg_t* regs = uc->uc_mcontext.gregs; + + out->context_flags = MD_CONTEXT_X86_FULL | +@@ -97,7 +97,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { + } + + void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, +- const struct _libc_fpstate* fpregs) { ++ const struct _fpstate* fpregs) { + const greg_t* regs = uc->uc_mcontext.gregs; + + out->context_flags = MD_CONTEXT_AMD64_FULL; +diff --git a/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h +index f830618f240..f3dde1f4dff 100644 +--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h ++++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h +@@ -50,7 +50,7 @@ struct UContextReader { + // info: the collection of register structures. + #if defined(__i386__) || defined(__x86_64) + static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, +- const struct _libc_fpstate* fp); ++ const struct _fpstate* fp); + #elif defined(__aarch64__) + static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const struct fpsimd_context* fpregs); +diff --git a/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h b/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h +index d1dc331215a..d1cc5624cd4 100644 +--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h ++++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h +@@ -48,7 +48,7 @@ class ExceptionHandler; + #if defined(__aarch64__) + typedef struct fpsimd_context fpstate_t; + #elif !defined(__ARM_EABI__) && !defined(__mips__) +-typedef struct _libc_fpstate fpstate_t; ++typedef struct _fpstate fpstate_t; + #endif + + // These entries store a list of memory regions that the client wants included diff --git a/testing/qt5-qtwebengine/patches/0022-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch b/testing/qt5-qtwebengine/patches/0022-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch new file mode 100644 index 00000000..465f28eb --- /dev/null +++ b/testing/qt5-qtwebengine/patches/0022-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch @@ -0,0 +1,56 @@ +From 8f16cec0583c9de1ceb2c34a3bea527096f34075 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 25 Sep 2018 12:59:05 -0700 +Subject: [PATCH] chromium: musl: elf_reader.cc: include to get + __WORDSIZE on musl libc + +Signed-off-by: Khem Raj +Signed-off-by: Martin Jansa +--- + chromium/third_party/breakpad/breakpad/configure.ac | 2 +- + .../breakpad/breakpad/src/common/dwarf/elf_reader.cc | 3 ++- + .../breakpad/breakpad/src/common/linux/elf_core_dump.h | 1 + + 3 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/3rdparty/chromium/third_party/breakpad/breakpad/configure.ac b/src/3rdparty/chromium/third_party/breakpad/breakpad/configure.ac +index 492d09038f9..a6403ed8c3c 100644 +--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/configure.ac ++++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/configure.ac +@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32, + AC_HEADER_STDC + AC_SYS_LARGEFILE + AX_PTHREAD +-AC_CHECK_HEADERS([a.out.h sys/random.h]) ++AC_CHECK_HEADERS([a.out.h sys/random.h sys/reg.h]) + AC_CHECK_FUNCS([arc4random getrandom]) + + AX_CXX_COMPILE_STDCXX(11, noext, mandatory) +diff --git a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc +index 4135a51a980..be92b792d3c 100644 +--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc ++++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/dwarf/elf_reader.cc +@@ -29,10 +29,11 @@ + #ifndef _GNU_SOURCE + #define _GNU_SOURCE // needed for pread() + #endif +- ++#include + #include + #include + #include ++#include + #include + #include + #include +diff --git a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h +index d03c7a88d38..28b55ab6300 100644 +--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h ++++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h +@@ -33,6 +33,7 @@ + #ifndef COMMON_LINUX_ELF_CORE_DUMP_H_ + #define COMMON_LINUX_ELF_CORE_DUMP_H_ + ++#include + #include + #include + #include diff --git a/testing/qt5-qtwebengine/patches/0023-chromium-musl-pread-pwrite.patch b/testing/qt5-qtwebengine/patches/0023-chromium-musl-pread-pwrite.patch new file mode 100644 index 00000000..70fd8749 --- /dev/null +++ b/testing/qt5-qtwebengine/patches/0023-chromium-musl-pread-pwrite.patch @@ -0,0 +1,31 @@ +From 725941687b118b90904fbc7e6b25a288b9d3c52b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 23 Dec 2018 16:58:04 -0800 +Subject: [PATCH] chromium: musl: pread pwrite + +Redefine pread/pwrite in terms of 64bit variants on musl +since 32bit variants don't exist and aliases are not defined in +libc either + +Upstream-Status: Submitted [https://codereview.chromium.org/1743093002/] +Signed-off-by: Khem Raj +--- + chromium/third_party/lss/linux_syscall_support.h | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/chromium/third_party/lss/linux_syscall_support.h b/chromium/third_party/lss/linux_syscall_support.h +index 622cc1fbf7e..cd561b80c05 100644 +--- a/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h ++++ b/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h +@@ -1239,6 +1239,11 @@ struct kernel_statfs { + #ifndef __NR_fallocate + #define __NR_fallocate 285 + #endif ++#undef __NR_pread ++#define __NR_pread __NR_pread64 ++#undef __NR_pwrite ++#define __NR_pwrite __NR_pwrite64 ++ + /* End of x86-64 definitions */ + #elif defined(__mips__) + #if _MIPS_SIM == _MIPS_SIM_ABI32 diff --git a/testing/qt5-qtwebengine/sources b/testing/qt5-qtwebengine/sources new file mode 100644 index 00000000..cf13742b --- /dev/null +++ b/testing/qt5-qtwebengine/sources @@ -0,0 +1,5 @@ +http://download.qt-project.org/official_releases/qt/5.14/5.14.0/submodules/qtwebengine-everywhere-src-5.14.0.tar.xz +patches/0004-mkspecs-Allow-builds-with-libc-glibc.patch +patches/0021-chromium-musl-Use-_fpstate-instead-of-_libc_fpstate-.patch +patches/0022-chromium-musl-elf_reader.cc-include-sys-reg.h-to-get.patch +patches/0023-chromium-musl-pread-pwrite.patch diff --git a/testing/qt5-qtwebengine/version b/testing/qt5-qtwebengine/version new file mode 100644 index 00000000..054bf3a4 --- /dev/null +++ b/testing/qt5-qtwebengine/version @@ -0,0 +1 @@ +5.14.10 1