Skip to content

Commit

Permalink
Merge pull request #252 from mariux64/update-chromium
Browse files Browse the repository at this point in the history
Update chromium
  • Loading branch information
david authored Sep 14, 2023
2 parents b784ed3 + 2f785b4 commit 9541806
Showing 1 changed file with 177 additions and 0 deletions.
177 changes: 177 additions & 0 deletions chromium-116.0.5845.179-0.build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
#! /bin/bash -x
set -xe

#COOKIE=$(mcookie|cut -c-8); grep -v V_GREP_ME $0 > /dev/shm/runme-$COOKIE.sh ; sleep 0.3; exec bash /dev/shm/runme-$COOKIE.sh

PKG=chromium
VERSION=116.0.5845.179
BUILD=0

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

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

NPROC=$(( $(nproc) * 4 / 5 + 1 ))
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
#geht nur ohne COOKIE
. ${dirname}/google_api_zeug
elif [[ $0 == "/dev/shm/runme-"*".sh" ]]; then
#muss ich mir nich was besseres ueberlegen
. /home/schrader/git_zeug/pkg-scripts/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 -e ${PKG}-${VERSION}.tar.xz || wget https://beehive.molgen.mpg.de/d5544ac618ff3e423d1f5427d2c8f210/chromium-116.0.5845.179.tar.xz
test -d ${PKG}-${VERSION} || tar xf ${PKG}-${VERSION}.tar.xz

PATCHURL+=("https://beehive.molgen.mpg.de/b1aeb5cb6cfeb1d7ecf3e522a85a1f26/chromium_gcc10.patch https://beehive.molgen.mpg.de/5cf30ddf868a329c6c88c78dfdc9eea8/chromium_ffmpeg_prop.patch")
test -e *.patch || wget $PATCHURL

# make sure to use python3
source /pkg/python-3.10.12-0/profile

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-18.16.0-0/bin/node third_party/node/linux/node-linux-x64/bin/
fi

# Add essential proprietary codecs to the "chrome" branding of ffmpeg:
cat ${BUILDDIR}/chromium_ffmpeg_prop.patch | patch -p1

# Be compatible with gcc 10
cat ${BUILDDIR}/chromium_gcc10.patch |patch -p1

# Allow building against system libraries in official builds:
sed -e 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
-i tools/generate_shim_headers/generate_shim_headers.py

# 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

# trouble with bootstrap rust trigger download manual
python3 tools/rust/update_rust.py

python3 tools/clang/scripts/update.py

#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}

# Generate the ninja build files:

python3 tools/gn/bootstrap/bootstrap.py

_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'
)

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

ninja -C out/Release pdf chrome chromedriver chrome_sandbox

install -D out/Release/chrome ${PREFIX}/bin/chrome2
install -m755 out/Release/chromedriver ${PREFIX}/bin/
install -m755 out/Release/chrome_sandbox ${PREFIX}/bin/
install -m755 out/Release/chrome_crashpad_handler ${PREFIX}/bin/


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/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

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

0 comments on commit 9541806

Please sign in to comment.