Skip to content

Chromium 100.0.4896.60 #186

Merged
merged 2 commits into from
Apr 8, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 163 additions & 0 deletions chromium-100.0.4896.60-0.build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
#! /bin/bash -x

PKG=chromium
VERSION=100.0.4896.60
BUILD=0

PREFIX=/pkg/$PKG-$VERSION-$BUILD
if [ -n "$TESTING" ]; then PREFIX=/scratch/local2/$PKG-$VERSION-$BUILD ; fi

set -xe
umask 022

BUILD_TMPDIR=/scratch/local2/$PKG-$VERSION-$BUILD.build.tmp
test -d $BUILD_TMPDIR && rm -rf $BUILD_TMPDIR
mkdir -p $BUILD_TMPDIR/home
export TMPDIR=$BUILD_TMPDIR
export HOME=$BUILD_TMPDIR/home

exec </dev/null

mkdir -p $PREFIX
cat >$PREFIX/profile <<-EOF
PATH=$PREFIX/bin:\$PATH
if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} ; fi
EOF
. $PREFIX/profile

export MAKEFLAGS="-j $(nproc)"

BUILDDIR=$PREFIX/build

#source google API Zeug; wird benoetigt damit browser sync funktioniert
dirname="$(dirname $0)"
if [ -f ${dirname}/google_api_zeug ]; then
. ${dirname}/google_api_zeug
else
echo "google_default_client_id, google_api_key und google_default_client_secret wird benoetigt, damit Browser Sync funktioniert(siehe HelmutSchmidtSeite)."
exit 1
# uncomment if you want it with out api key
fi

mkdir -p $BUILDDIR
cd $BUILDDIR

# clean for rebuild
if [ -d ${PKG}-${VERSION} ];then
rm -rf ${PKG}-${VERSION}
fi

test -e ${PKG}-${VERSION}.tar.xz || wget https://commondatastorage.googleapis.com/${PKG}-browser-official/${PKG}-${VERSION}.tar.xz
test -d ${PKG}-${VERSION} || tar xvf ${PKG}-${VERSION}.tar.xz

cd ${PKG}-${VERSION}

#Create Directories for Build and Install
test -d $PREFIX/bin || mkdir $PREFIX/bin
test -d out || mkdir out

mkdir -p third_party/node/linux/node-linux-x64/bin
if [ ! -e third_party/node/linux/node-linux-x64/bin/node ]; then
ln -s /pkg/node-14.17.1-0/bin/node third_party/node/linux/node-linux-x64/bin/
fi

# Add essential proprietary codecs to the "chrome" branding of ffmpeg:
cat /src/mariux/patches/chromium_ffmpeg_prop.patch | patch -p1

# Do not make the build fail, see Chromium issue #386097:
python3 third_party/libaddressinput/chromium/tools/update-strings.py

# Fix for: ERROR at //build/config/sysroot.gni:57:5: Assertion failed
python3 build/linux/sysroot_scripts/install-sysroot.py --arch=amd64

# Generate the ninja build files:
python3 tools/gn/bootstrap/bootstrap.py

if [ -d $BUILDDIR/llvm-build ]; then
rm -r third_party/llvm-build
ln -sf $BUILDDIR/llvm-build third_party/llvm-build
else
python3 tools/clang/scripts/build.py \
--skip-checkout \
--use-system-cmake \
--without-android \
--without-fuchsia
cp -avr third_party/llvm-build $BUILDDIR
fi

#Ensure that only this clang version is used
export PATH=${BUILDDIR}/${PKG}-${VERSION}/third_party/llvm-build/Release+Asserts/bin:$PATH

#ffmpeg and HEVC want to play together now :)
cd third_party/ffmpeg
FFMPEG_BRANDING=Chrome
echo " +- Adding HEVC support..."
FFMPEG_CUSTOM_ARGS="--enable-decoder=hevc --enable-demuxer=hevc --enable-parser=hevc"
python3 chromium/scripts/build_ffmpeg.py linux x64 \
--branding ${FFMPEG_BRANDING} -- ${FFMPEG_CUSTOM_ARGS}
chromium/scripts/copy_config.sh
python3 chromium/scripts/generate_gn.py

cd ${BUILDDIR}/${PKG}-${VERSION}

_chromium_conf=(
'blink_enable_generated_code_formatting=false'
'blink_symbol_level=0'
'is_debug=false'
#'remove_webcore_debug_symbols=true'
'use_gnome_keyring=true'
'treat_warnings_as_errors=false'
'enable_nacl=false'
'use_sysroot=true'
'is_official_build=true'
'fatal_linker_warnings=false'
'enable_platform_hevc=true'
'proprietary_codecs=true'
'enable_platform_ac3_eac3_audio=true'
'enable_platform_mpeg_h_audio=true'
"ffmpeg_branding=\"${FFMPEG_BRANDING}\""
'enable_precompiled_headers=false'
"google_api_key=\"$google_api_key\""
"google_default_client_id=\"$google_default_client_id\""
"google_default_client_secret=\"$google_default_client_secret\""
'enable_js_type_check=false'
'enable_vulkan=true'
)

# make sure to use python2
source /pkg/python-3.9.7-0/profile

out/Release/gn gen out/Release --args="${_chromium_conf[*]}"

#ninja -C out/Release pdf chrome chromedriver chrome_sandbox
ninja -C out/Release chrome

install -D out/Release/chrome ${PREFIX}/bin/chrome2

cp -a out/Release/*.pak ${PREFIX}/bin/
cp -a out/Release/*.so ${PREFIX}/bin/
cp -a out/Release/libvulkan.so.1 ${PREFIX}/bin/
cp -a out/Release/icudtl.dat ${PREFIX}/bin/
cp -a out/Release/locales ${PREFIX}/bin/
cp -a out/Release/{swiftshader,angledata} ${PREFIX}/bin/
install -m755 out/Release/vk_swiftshader_icd.json ${PREFIX}/bin/

for i in out/Release/{natives_blob.bin,snapshot_blob.bin,v8_context_snapshot.bin}; do
if [ -f $i ]; then
cp -a $i ${PREFIX}/bin/
fi
done

strip --strip-unneeded ${PREFIX}/bin/*.so
strip --strip-unneeded ${PREFIX}/bin/chrome2
strip --strip-unneeded ${PREFIX}/bin/swiftshader/*.so

cat >$PREFIX/bin/chromium <<-EOF
#!/usr/bin/bash
$PREFIX/bin/chrome2 --password-store=basic \${@}
EOF
chmod a+x $PREFIX/bin/chromium
cd $PREFIX/bin
ln -s chromium chrome

exit