Skip to content
Permalink
master
Switch branches/tags

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?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 164 lines (127 sloc) 4.87 KB
#! /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=104.0.5112.101
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
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 -d ${PKG}-${VERSION} || tar xf ${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-16.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 /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/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}
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'
)
# make sure to use python3
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
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