From b413a74418255ded1c8f4c6b45002d03372b0179 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Wed, 23 Aug 2017 14:53:36 -0400 Subject: [PATCH] Another player has entered the game: aarch64! --- ...ium-60.0.3112.101-fix-ffmpeg-aarch64.patch | 12 ++++++++ chromium.spec | 28 +++++++++++++++---- 2 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 chromium-60.0.3112.101-fix-ffmpeg-aarch64.patch diff --git a/chromium-60.0.3112.101-fix-ffmpeg-aarch64.patch b/chromium-60.0.3112.101-fix-ffmpeg-aarch64.patch new file mode 100644 index 00000000..a39e0448 --- /dev/null +++ b/chromium-60.0.3112.101-fix-ffmpeg-aarch64.patch @@ -0,0 +1,12 @@ +diff -up chromium-60.0.3112.101/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 chromium-60.0.3112.101/third_party/ffmpeg/ffmpeg_generated.gni +--- chromium-60.0.3112.101/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 2017-08-23 14:46:37.305832399 -0400 ++++ chromium-60.0.3112.101/third_party/ffmpeg/ffmpeg_generated.gni 2017-08-23 14:47:06.217148864 -0400 +@@ -539,7 +539,7 @@ if (is_linux && current_cpu == "arm64") + ] + } + +-if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) { ++if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium")) { + ffmpeg_c_sources += [ + "libavcodec/aarch64/mpegaudiodsp_init.c", + ] diff --git a/chromium.spec b/chromium.spec index 2c2e4664..b058c6d8 100644 --- a/chromium.spec +++ b/chromium.spec @@ -202,6 +202,8 @@ Patch46: chromium-60.0.3112.90-init-list-hack.patch Patch47: chromium-60.0.3112.90-vulkan-force-c99.patch # https://chromium.googlesource.com/chromium/src/+/9c77470ff34bac937ceb765a27cee1703f0f2426 Patch48: chromium-60.0.3112.101-camfix.patch +# Fix mp3 for aarch64 +Patch49: chromium-60.0.3112.101-fix-ffmpeg-aarch64.patch ### Chromium Tests Patches ### Patch100: chromium-46.0.2490.86-use_system_opus.patch @@ -411,7 +413,7 @@ Provides: chromium-libs = %{version}-%{release} Obsoletes: chromium-libs <= %{version}-%{release} %endif -ExclusiveArch: x86_64 i686 +ExclusiveArch: x86_64 i686 aarch64 # Bundled bits (I'm sure I've missed some) Provides: bundled(angle) = 2422 @@ -623,6 +625,7 @@ udev. # Do not apply mp3 change %else %patch34 -p1 -b .mp3 +%patch49 -p1 -b .aarch64 %endif %patch36 -p1 -b .revert %patch37 -p1 -b .ffmpeg-stdatomic @@ -751,7 +754,7 @@ popd # Core defines are flags that are true for both the browser and headless. CHROMIUM_CORE_GN_DEFINES="" CHROMIUM_CORE_GN_DEFINES+=' is_debug=false' -%ifarch x86_64 +%ifarch x86_64 aarch64 CHROMIUM_CORE_GN_DEFINES+=' system_libdir="lib64"' %endif CHROMIUM_CORE_GN_DEFINES+=' google_api_key="%{api_key}" google_default_client_id="%{default_client_id}" google_default_client_secret="%{default_client_secret}"' @@ -762,6 +765,9 @@ CHROMIUM_CORE_GN_DEFINES+=' ffmpeg_branding="ChromeOS" proprietary_codecs=true' CHROMIUM_CORE_GN_DEFINES+=' ffmpeg_branding="Chromium" proprietary_codecs=false' %endif CHROMIUM_CORE_GN_DEFINES+=' treat_warnings_as_errors=false' +%ifarch aarch64 +CHROMIUM_CORE_GN_DEFINES+=' target_cpu="arm64"' +%endif export CHROMIUM_CORE_GN_DEFINES CHROMIUM_BROWSER_GN_DEFINES="" @@ -1005,6 +1011,18 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \ yasm \ zlib +# fix arm gcc +sed -i 's|arm-linux-gnueabihf-|arm-linux-gnu-|g' build/toolchain/linux/BUILD.gn + +%ifarch aarch64 +# We don't need to cross compile while building on an aarch64 system. +sed -i 's|aarch64-linux-gnu-||g' build/toolchain/linux/BUILD.gn + +# Correct the ninja file to check for aarch64, not just x86. +sed -i '/${LONG_BIT}/ a \ aarch64)\' ../depot_tools/ninja +sed -i '/aarch64)/ a \ exec "/usr/bin/ninja-build" "$@";;\' ../depot_tools/ninja +%endif + tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}/gn gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target} @@ -1030,9 +1048,6 @@ sed '14i#define WIDEVINE_CDM_VERSION_STRING "Something fresh"' -i "third_party/w FILE=chrome/common/channel_info_posix.cc sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE -# fix arm gcc -sed -i 's|arm-linux-gnueabihf-|arm-linux-gnu-|g' build/toolchain/linux/BUILD.gn - %build %if %{?tests} @@ -1845,6 +1860,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Wed Aug 23 2017 Tom Callaway 60.0.3112.101-3 +- apply aarch64 fixes from Ryan Blakely + * Thu Aug 17 2017 Tom Callaway 60.0.3112.101-2 - fix dep issue with chrome-remote-desktop on el7