Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
pkg-scripts/chromium-116.0.5845.179-0.build.sh
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
executable file
177 lines (137 sloc)
5.56 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /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 |