diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ca43671 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/wpewebkit-2.21.2.tar.xz diff --git a/fedora-crypto-policy.patch b/fedora-crypto-policy.patch new file mode 100644 index 0000000..90e1d67 --- /dev/null +++ b/fedora-crypto-policy.patch @@ -0,0 +1,24 @@ +diff -up wpewebkit-2.20.1/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp +--- wpewebkit-2.20.1/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy 2017-09-05 13:39:59.294426661 +0200 ++++ wpewebkit-2.20.1/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp 2017-09-05 13:40:09.144389997 +0200 +@@ -43,7 +43,7 @@ int main(int argc, char** argv) + // overwrite this priority string if it's already set by the user. + // https://bugzilla.gnome.org/show_bug.cgi?id=738633 + // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. +- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); ++ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); + + #if USE(GCRYPT) + PAL::GCrypt::initialize(); +diff -up wpewebkit-2.20.1/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp +--- wpewebkit-2.20.1/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy 2017-09-05 13:40:28.558317735 +0200 ++++ wpewebkit-2.20.1/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp 2017-09-05 13:40:56.057215378 +0200 +@@ -43,7 +43,7 @@ int main(int argc, char** argv) + // overwrite this priority string if it's already set by the user. + // https://bugzilla.gnome.org/show_bug.cgi?id=738633 + // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. +- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); ++ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); + + #if USE(GCRYPT) + PAL::GCrypt::initialize(); diff --git a/python2.patch b/python2.patch new file mode 100644 index 0000000..a27f508 --- /dev/null +++ b/python2.patch @@ -0,0 +1,20 @@ +From 494e4abb7a5130376d3cdb41a5e3963650b8659f Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Mon, 16 Jul 2018 06:34:53 +0200 +Subject: [PATCH] Fix the broken build due to python2 + + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl b/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl +index 4bb7037d..3071b45f 100755 +--- a/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl ++++ b/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl +@@ -155,7 +155,7 @@ my $inspectorLicense = <<'EOF'; + EOF + + my $perl = $^X; +-my $python = ($OSNAME =~ /cygwin/) ? "/usr/bin/python" : "python"; ++my $python = ($OSNAME =~ /cygwin/) ? "/usr/bin/python2" : "python2"; + my $derivedSourcesDir = $ENV{'DERIVED_SOURCES_DIR'}; + my $scriptsRoot = File::Spec->catdir($ENV{'SRCROOT'}, 'Scripts'); + my $sharedScriptsRoot = File::Spec->catdir($ENV{'JAVASCRIPTCORE_PRIVATE_HEADERS_DIR'}); diff --git a/sources b/sources new file mode 100644 index 0000000..e4d0b5d --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (wpewebkit-2.21.2.tar.xz) = 656c9a1db0225bf28493271c07d0a0449a4715da5dfc592f8cef9234bdb04eb211332f2c07a14f6b424e40154ba2b19e64b3182c479fe198cbe5f7b7e2b1cb4f diff --git a/wpewebkit-rawhide.spec b/wpewebkit-rawhide.spec new file mode 100644 index 0000000..df76342 --- /dev/null +++ b/wpewebkit-rawhide.spec @@ -0,0 +1,166 @@ +## NOTE: Lots of files in various subdirectories have the same name (such as +## "LICENSE") so this short macro allows us to distinguish them by using their +## directory names (from the source tree) as prefixes for the files. +%global add_to_license_files() \ + mkdir -p _license_files ; \ +cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') + +Name: wpewebkit +Version: 2.21.2 +Release: 1%{?dist} +Summary: A WebKit port optimized for low-end devices + +License: LGPLv2 and BSD +URL: http://www.%{name}.org/ +Source0: http://wpewebkit.org/releases/%{name}-%{version}.tar.xz + +# https://bugs.webkit.org/show_bug.cgi?id=158785 +Patch0: fedora-crypto-policy.patch +# Explicitly specify python2 over python to avoid build fails +Patch1: python2.patch + + +BuildRequires: bison +BuildRequires: cairo-devel +BuildRequires: cmake +BuildRequires: wpebackend-devel +BuildRequires: flex +BuildRequires: gcc-c++ +BuildRequires: gnutls-devel +BuildRequires: gperf +BuildRequires: gstreamer1-devel +BuildRequires: gstreamer1-plugins-base-devel +BuildRequires: gstreamer1-plugins-bad-free-devel +BuildRequires: harfbuzz-devel +BuildRequires: libicu-devel +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +BuildRequires: libsoup-devel +BuildRequires: libwebp-devel +BuildRequires: libxslt-devel +BuildRequires: libwayland-client-devel +BuildRequires: libwayland-egl-devel +BuildRequires: libwayland-server-devel +BuildRequires: mesa-libEGL-devel +BuildRequires: perl-File-Copy-Recursive +BuildRequires: perl-JSON-PP +BuildRequires: perl-Switch +BuildRequires: python2 +BuildRequires: ruby +BuildRequires: rubygems +BuildRequires: sqlite-devel +BuildRequires: woff2-devel +BuildRequires: libepoxy-devel + +%description +WPE allows embedders to create simple and performant systems based on +Web platform technologies. It is designed with hardware acceleration in +mind, leveraging common 3D graphics APIs for best performance. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries, build data, and header +files for developing applications that use %{name} + +%prep +%autosetup -p1 -n wpewebkit-%{version} + +%build +# Increase the DIE limit so our debuginfo packages could be size optimized. +# Decreases the size for x86_64 from ~5G to ~1.1G. +# https://bugzilla.redhat.com/show_bug.cgi?id=1456261 +%global _dwz_max_die_limit 250000000 + +# The _dwz_max_die_limit is being overridden by the arch specific ones from the +# redhat-rpm-config so we need to set the arch specific ones as well - now it +# is only needed for x86_64. +%global _dwz_max_die_limit_x86_64 250000000 + +%ifarch s390 aarch64 +# Use linker flags to reduce memory consumption - on other arches the ld.gold is +# used and also it doesn't have the --reduce-memory-overheads option +%global optflags %{optflags} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads +%endif + +# Decrease debuginfo even on ix86 because of: +# https://bugs.webkit.org/show_bug.cgi?id=140176 +%ifarch s390 s390x %{arm} %{ix86} ppc %{power64} %{mips} +# Decrease debuginfo verbosity to reduce memory consumption even more +%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') +%endif + +%ifarch ppc +# Use linker flag -relax to get WebKit build under ppc(32) with JIT disabled +%global optflags %{optflags} -Wl,-relax +%endif + +# Disable ld.gold on s390 as it does not have it. +# Also for aarch64 as the support is in upstream, but not packaged in Fedora. +# FIXME: Ideally the CMAKE_EXE_LINKER_FLAGS would not be necessary, but builds seem to be failing otherwise. +mkdir -p %{_target_platform} +pushd %{_target_platform} +%cmake \ + -DPORT=WPE \ + -DCMAKE_BUILD_TYPE=Release \ + -DENABLE_MINIBROWSER=ON \ + -DCMAKE_EXE_LINKER_FLAGS="${CMAKE_EXE_LINKER_FLAGS} -lrt" \ +%ifarch s390 aarch64 + -DUSE_LD_GOLD=OFF \ +%endif +%ifarch s390 s390x ppc %{power64} + -DENABLE_JIT=OFF \ + -DUSE_SYSTEM_MALLOC=ON \ +%endif +.. +popd + +%make_build -C %{_target_platform} + +%install +%make_install -C %{_target_platform} + +# Finally, copy over and rename various files for %license inclusion +%add_to_license_files Source/JavaScriptCore/COPYING.LIB +%add_to_license_files Source/JavaScriptCore/icu/LICENSE +%add_to_license_files Source/ThirdParty/ANGLE/LICENSE +%add_to_license_files Source/ThirdParty/ANGLE/src/common/third_party/smhasher/LICENSE +%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/compiler/LICENSE +%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/libXNVCtrl/LICENSE +%add_to_license_files Source/WebCore/icu/LICENSE +%add_to_license_files Source/WebCore/LICENSE-APPLE +%add_to_license_files Source/WebCore/LICENSE-LGPL-2 +%add_to_license_files Source/WebCore/LICENSE-LGPL-2.1 +%add_to_license_files Source/WebInspectorUI/UserInterface/External/CodeMirror/LICENSE +%add_to_license_files Source/WebInspectorUI/UserInterface/External/ESLint/LICENSE +%add_to_license_files Source/WebInspectorUI/UserInterface/External/Esprima/LICENSE +%add_to_license_files Source/WebInspectorUI/UserInterface/External/three.js/LICENSE +%add_to_license_files Source/WTF/icu/LICENSE +%add_to_license_files Source/WTF/wtf/dtoa/COPYING +%add_to_license_files Source/WTF/wtf/dtoa/LICENSE + +%files +%{_bindir}/WPEWebDriver +%{_libdir}/libWPEWebKit-0.1.so.2 +%{_libdir}/libWPEWebKit-0.1.so.2.* +%{_libexecdir}/wpe-webkit-0.1 +%{_libdir}/wpe-webkit-0.1 +%doc NEWS +%license _license_files/*ThirdParty* +%license _license_files/*WebCore* +%license _license_files/*WebInspectorUI* +%license _license_files/*WTF* +%license _license_files/*JavaScriptCore* + +%files devel +%{_includedir}/wpe-webkit-0.1 +%{_libdir}/libWPEWebKit-0.1.so +%{_libdir}/pkgconfig/*.pc + + +%changelog + +* Tue Jul 17 2018 Chris King - 2.21.2-1 +- Initial RPM package.