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 163 lines (130 sloc) 4.74 KB
#! /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