Skip to content

Instantly share code, notes, and snippets.

@jashank
Last active December 31, 2015 14:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jashank/8003580 to your computer and use it in GitHub Desktop.
Save jashank/8003580 to your computer and use it in GitHub Desktop.
The Chrominator
#!/bin/sh
# Apply FreeBSD patches to the Chromium source tree.
#PATCH_DIRECTORY=/usr/ports/www/chromium/files
PATCH_DIRECTORY=$T/port/files
for i in ${PATCH_DIRECTORY}/patch-*
do
case $i in
*.orig|*.rej|*~|*,v)
echo "===> Ignoring patchfile $i"
;;
*)
echo "===> Applying FreeBSD patch $i"
if patch -d src --forward --quiet -E -p0 -V simple --suffix .orig < $i
then
PATCHES_APPLIED="$PATCHES_APPLIED $i"
else
echo `echo "=> Patch $i failed to apply cleanly." | /usr/bin/sed "s|${PATCH_DIRECTORY}/||"`
if [ x"$PATCHES_APPLIED" != x"" -a PATCH_SILENT=yes != "yes" ]
then
echo `echo "=> Patch(es) $PATCHES_APPLIED applied cleanly." | /usr/bin/sed "s|${PATCH_DIRECTORY}/||g"`
fi
false
fi
;;
esac
done
sed -i.bak -e "s|/usr/local|/usr/local|" \
src/crypto/crypto.gyp \
src/v8/tools/gyp/v8.gyp \
src/v8/build/toolchain.gypi \
src/chrome/common/chrome_paths.cc
sed -i.bak -e "s|/usr/bin/gcc|cc|" \
src/third_party/WebKit/Source/build/scripts/preprocessor.pm \
src/third_party/WebKit/Source/build/scripts/scripts.gypi
script -c 'zsh chrominator.sh' typescript-`date +%Y-%m-%d`.log
(cd packages && for i in `cat ../src/chrome/VERSION | sed -e "s/.*=//" | xargs | awk '{ print $3 "." $4 }'` ; do mkdir -p ${i} ; mv ../chromium-trunk-dbg-??.0.${i}*.pkg.tar.xz ${i}; mv ../chromium-trunk-??.0.${i}*.pkg.tar.xz ${i}; unlink latest/chromium-trunk-dbg-latest-x86_64.pkg.tar.xz; unlink latest/chromium-trunk-latest-x86_64.pkg.tar.xz; (cd latest; ln -s ../${i}/chromium-trunk-dbg-??.0.${i}*.pkg.tar.xz chromium-trunk-dbg-latest-x86_64.pkg.tar.xz; ln -s ../${i}/chromium-trunk-??.0.${i}*.pkg.tar.xz chromium-trunk-latest-x86_64.pkg.tar.xz ) ; done ) && cd crplug && for pkg in chromium-libpdf chromium-pepper-flash ; do echo ${pkg}@`date +%Y%m%d`.tar.gz | read pkgfile ; ( wget -O SRC/${pkgfile} https://aur.archlinux.org/packages/`echo ${pkg} | cut -c1,2`/${pkg}/${pkg}.tar.gz && tar -C BUILD -xf SRC/${pkgfile} && cd BUILD/${pkg} && makepkg -c --sig && mv ${pkg}-*.pkg.tar.xz{,.sig} ../../PKG/ && cd ../../PKG/ && repo-add --sign -d jaur.db.tar.gz ${pkg}-*.pkg.tar.xz ); done
#!/bin/zsh
export T=/home/jashank/Software/chromium
PATH=$T/tools/bin:$T/depot_tools:$PATH
export NINJA_STATUS="[%u>%r>%f (%t); %o edges/s in %e s] "-
export GYP_GENERATORS=ninja
export GYP_DEFINES=clang=1
export CC="ccache clang -Qunused-arguments"
export CXX="ccache clang++ -Qunused-arguments"
#export CCACHE_CPP2=yes
#export CCACHE_SLOPPINESS=time_macros
echo "============================"
echo "=== the Chrominator v8c ==="
echo "== <jashank.rulingia.com> =="
echo "============================"
_SYNC_JOBS=4
if [ X$SYNC_JOBS = X ]; then
true
else
_SYNC_JOBS=$SYNC_JOBS
fi
_GCL_FILE="--gclientfile=.gclient.trunk"
if [ X$GCL_FILE = X ]; then
true
else
_GCL_FILE=$GCL_FILE
fi
_GCLIENT=./depot_tools/gclient
_GCLIENT_KNOBS="-j ${_SYNC_JOBS} ${_GCL_FILE}"
if [ X$SYNC = Xno ]; then
_SYNC_CMD='echo "Not synchronising source tree."'
elif [ X$SYNC = Xrunhooks ]; then
_SYNC_CMD="${_GCLIENT} runhooks ${_GCLIENT_KNOBS}"
else
_SYNC_CMD="${_GCLIENT} sync ${_GCLIENT_KNOBS}"
fi
_LOAD=`ninja --help 2>&1 | grep -- '-j' | sed -e "s/.*default=//;s/, .*//"`
if [ X$JOBS = X ]; then
true
else
_LOAD=$JOBS
fi
_JOBS=`echo $_LOAD | awk '{ print int($1 * 1.5) }'`
#HDIDIR=/Volumes/Chromium
#CODESIGN_ID="Jashank\ Jeremy"
TERM=dumb
set -x
eval $_SYNC_CMD && \
(cd src && \
nice -n 20 env PATH=$T/tools/bin:$T/depot_tools:$T/src/third_party/llvm-build/Release+Asserts/bin:/bin:/usr/bin ninja -C out/Release -j $_JOBS -l $_LOAD chrome chrome_sandbox chromedriver &&
nice -n 20 env PATH=$T/tools/bin:$T/depot_tools:$T/src/third_party/llvm-build/Release+Asserts/bin:/bin:/usr/bin ninja -C out/Debug -j $_JOBS -l $_LOAD chrome chrome_sandbox chromedriver base_unittests crypto_unittests cacheinvalidation_unittests gpu_unittests sync_unit_tests printing_unittests sql_unittests content_unittests cc_unittests ui_unittests url_unittests compositor_unittests ipc_tests dbus_unittests net_unittests media_unittests &&
cd .. && \
true )
### OS X packaging
# (rm -rf Chromium.app && \
# hdiutil attach -noverify src/out/Release/Chromium.dmg && \
# egrep ">[0-9]{6}<" $HDIDIR/Chromium.app/Contents/Info.plist | sed -e 's@</*[a-z]*>@@g' | awk '{ print $1 }' > .gcr && \
# cp -rp $HDIDIR/Chromium.app ./Chromium-`cat .gcr`.app && \
# codesign -s $CODESIGN_ID Chromium-`cat .gcr`.app && \
# hdiutil unmount $HDIDIR)
# Default settings for chromium. This file is sourced by /usr/bin/chromium
# Options to pass to chromium
CHROMIUM_FLAGS=""
[Desktop Entry]
Version=1.0
Name=Chromium
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
GenericName=Web Browser
GenericName[ar]=متصفح الشبكة
GenericName[bg]=Уеб браузър
GenericName[ca]=Navegador web
GenericName[cs]=WWW prohlížeč
GenericName[da]=Browser
GenericName[de]=Web-Browser
GenericName[el]=Περιηγητής ιστού
GenericName[en_GB]=Web Browser
GenericName[es]=Navegador web
GenericName[et]=Veebibrauser
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[gu]=વેબ બ્રાઉઝર
GenericName[he]=דפדפן אינטרנט
GenericName[hi]=वेब ब्राउज़र
GenericName[hu]=Webböngésző
GenericName[it]=Browser Web
GenericName[ja]=ウェブブラウザ
GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
GenericName[ko]=웹 브라우저
GenericName[lt]=Žiniatinklio naršyklė
GenericName[lv]=Tīmekļa pārlūks
GenericName[ml]=വെബ് ബ്രൌസര്‍
GenericName[mr]=वेब ब्राऊजर
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador da Internet
GenericName[ro]=Navigator de Internet
GenericName[ru]=Веб-браузер
GenericName[sl]=Spletni brskalnik
GenericName[sv]=Webbläsare
GenericName[ta]=இணைய உலாவி
GenericName[th]=เว็บเบราว์เซอร์
GenericName[tr]=Web Tarayıcı
GenericName[uk]=Навігатор Тенет
GenericName[zh_CN]=网页浏览器
GenericName[zh_HK]=網頁瀏覽器
GenericName[zh_TW]=網頁瀏覽器
# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
GenericName[bn]=ওয়েব ব্রাউজার
GenericName[fil]=Web Browser
GenericName[hr]=Web preglednik
GenericName[id]=Browser Web
GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
GenericName[sk]=WWW prehliadač
GenericName[sr]=Интернет прегледник
GenericName[te]=మహాతల అన్వేషి
GenericName[vi]=Bộ duyệt Web
# Gnome and KDE 3 uses Comment.
Comment=Access the Internet
Comment[ar]=الدخول إلى الإنترنت
Comment[bg]=Достъп до интернет
Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
Comment[ca]=Accedeix a Internet
Comment[cs]=Přístup k internetu
Comment[da]=Få adgang til internettet
Comment[de]=Internetzugriff
Comment[el]=Πρόσβαση στο Διαδίκτυο
Comment[en_GB]=Access the Internet
Comment[es]=Accede a Internet.
Comment[et]=Pääs Internetti
Comment[fi]=Käytä internetiä
Comment[fil]=I-access ang Internet
Comment[fr]=Accéder à Internet
Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
Comment[he]=גישה אל האינטרנט
Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
Comment[hr]=Pristup Internetu
Comment[hu]=Internetelérés
Comment[id]=Akses Internet
Comment[it]=Accesso a Internet
Comment[ja]=インターネットにアクセス
Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
Comment[ko]=인터넷 연결
Comment[lt]=Interneto prieiga
Comment[lv]=Piekļūt internetam
Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക
Comment[mr]=इंटरनेटमध्ये प्रवेश करा
Comment[nb]=Gå til Internett
Comment[nl]=Verbinding maken met internet
Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
Comment[pl]=Skorzystaj z internetu
Comment[pt]=Aceder à Internet
Comment[pt_BR]=Acessar a internet
Comment[ro]=Accesaţi Internetul
Comment[ru]=Доступ в Интернет
Comment[sk]=Prístup do siete Internet
Comment[sl]=Dostop do interneta
Comment[sr]=Приступите Интернету
Comment[sv]=Gå ut på Internet
Comment[ta]=இணையத்தை அணுகுதல்
Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి
Comment[th]=เข้าถึงอินเทอร์เน็ต
Comment[tr]=İnternet'e erişin
Comment[uk]=Доступ до Інтернету
Comment[vi]=Truy cập Internet
Comment[zh_CN]=访问互联网
Comment[zh_HK]=連線到網際網路
Comment[zh_TW]=連線到網際網路
Exec=chromium %U
Terminal=false
Icon=chromium
Type=Application
Categories=GTK;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
post_install() {
xdg-icon-resource forceupdate --theme hicolor &>/dev/null
update-desktop-database -q
}
post_upgrade() {
post_install
}
post_remove() {
post_install
}
#!/bin/bash
# Allow users to override command-line options
# Based on Gentoo's chromium package (and by extension, Debian's)
if [[ -f /etc/chromium/default ]]; then
. /etc/chromium/default
fi
# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
# default CHROMIUM_FLAGS (from /etc/chromium/default)
CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-$CHROMIUM_FLAGS}
export CHROME_WRAPPER=$(readlink -f "$0")
export CHROME_DESKTOP=chromium.desktop
exec /usr/lib/chromium/chromium $CHROMIUM_FLAGS "$@"
# $Id$
pkgname=chromium-trunk-dbg
provides=('chromium')
pkgver=38.0.2105.0.r285495
pkgrel=1
pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser"
arch=('i686' 'x86_64')
url="http://www.chromium.org/"
license=('BSD')
depends=('gtk2' 'nss' 'alsa-lib' 'xdg-utils' 'bzip2' 'libevent' 'libxss'
'libgcrypt' 'ttf-font' 'systemd' 'dbus' 'flac' 'opus' 'snappy'
'speech-dispatcher' 'pciutils' 'libpulse' 'harfbuzz' 'harfbuzz-icu'
'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring'
'elfutils' 'subversion')
[[ $CARCH = x86_64 ]] && makedepends+=('lib32-gcc-libs' 'lib32-zlib')
optdepends=('kdebase-kdialog: needed for file dialogs in KDE'
'gnome-keyring: for storing passwords in GNOME keyring'
'libgnome-keyring: for storing passwords in GNOME keyring'
'kdeutils-kwalletmanager: for storing passwords in KWallet')
backup=('etc/chromium/default')
options=('!strip')
install=chromium.install
pkgver() {
(cat chrome/VERSION | sed -e 's/^[A-Z]*=//'; svn info chrome/VERSION | grep Revision | awk '{ print "r" $2 }') | xargs | sed -e "s/ /./g"
}
package() {
#set -x
install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
install -Dm4755 -o root -g root out/Release/chrome_sandbox \
"$pkgdir/usr/lib/chromium/chrome-sandbox"
install -D out/Release/chromedriver "$pkgdir/usr/lib/chromium/chromedriver"
cp out/Release/{*.pak,libffmpegsumo.so,nacl_helper{,_bootstrap}} \
out/Release/{libppGoogleNaClPluginChrome.so,nacl_irt_*.nexe} \
"$pkgdir/usr/lib/chromium/"
# Manually strip binaries so that 'nacl_irt_*.nexe' is left intact
strip $STRIP_BINARIES "$pkgdir/usr/lib/chromium/"{chromium,chrome-sandbox} \
"$pkgdir/usr/lib/chromium/chromedriver" \
"$pkgdir/usr/lib/chromium/"nacl_helper{,_bootstrap}
strip $STRIP_SHARED "$pkgdir/usr/lib/chromium/libffmpegsumo.so" \
"$pkgdir/usr/lib/chromium/libppGoogleNaClPluginChrome.so"
# Allow users to override command-line options
install -Dm644 "$srcdir/../chromium.default" "$pkgdir/etc/chromium/default"
cp -a out/Release/locales out/Release/icudtl.dat "$pkgdir/usr/lib/chromium/"
install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1"
install -Dm644 "$srcdir/../chromium.desktop" \
"$pkgdir/usr/share/applications/chromium.desktop"
for size in 22 24 48 64 128 256; do
install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
for size in 16 32; do
install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
install -D "$srcdir/../chromium.sh" "$pkgdir/usr/bin/chromium"
ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
}
# vim:set ts=2 sw=2 et:
# $Id$
pkgname=chromium-trunk
provides=('chromium')
pkgver=38.0.2105.0.r285495
pkgrel=1
pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser"
arch=('i686' 'x86_64')
url="http://www.chromium.org/"
license=('BSD')
depends=('gtk2' 'nss' 'alsa-lib' 'xdg-utils' 'bzip2' 'libevent' 'libxss'
'libgcrypt' 'ttf-font' 'systemd' 'dbus' 'flac' 'opus' 'snappy'
'speech-dispatcher' 'pciutils' 'libpulse' 'harfbuzz' 'harfbuzz-icu'
'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring'
'elfutils' 'subversion')
[[ $CARCH = x86_64 ]] && makedepends+=('lib32-gcc-libs' 'lib32-zlib')
optdepends=('kdebase-kdialog: needed for file dialogs in KDE'
'gnome-keyring: for storing passwords in GNOME keyring'
'libgnome-keyring: for storing passwords in GNOME keyring'
'kdeutils-kwalletmanager: for storing passwords in KWallet')
backup=('etc/chromium/default')
options=('!strip')
install=chromium.install
pkgver() {
(cat chrome/VERSION | sed -e 's/^[A-Z]*=//'; svn info chrome/VERSION | grep Revision | awk '{ print "r" $2 }') | xargs | sed -e "s/ /./g"
}
package() {
#set -x
install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"
install -Dm4755 -o root -g root out/Release/chrome_sandbox \
"$pkgdir/usr/lib/chromium/chrome-sandbox"
install -D out/Release/chromedriver "$pkgdir/usr/lib/chromium/chromedriver"
cp out/Release/{*.pak,libffmpegsumo.so,nacl_helper{,_bootstrap}} \
out/Release/{libppGoogleNaClPluginChrome.so,nacl_irt_*.nexe} \
"$pkgdir/usr/lib/chromium/"
# Manually strip binaries so that 'nacl_irt_*.nexe' is left intact
strip $STRIP_BINARIES "$pkgdir/usr/lib/chromium/"{chromium,chrome-sandbox} \
"$pkgdir/usr/lib/chromium/chromedriver" \
"$pkgdir/usr/lib/chromium/"nacl_helper{,_bootstrap}
strip $STRIP_SHARED "$pkgdir/usr/lib/chromium/libffmpegsumo.so" \
"$pkgdir/usr/lib/chromium/libppGoogleNaClPluginChrome.so"
# Allow users to override command-line options
install -Dm644 "$srcdir/../chromium.default" "$pkgdir/etc/chromium/default"
cp -a out/Release/locales out/Release/icudtl.dat "$pkgdir/usr/lib/chromium/"
install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1"
install -Dm644 "$srcdir/../chromium.desktop" \
"$pkgdir/usr/share/applications/chromium.desktop"
for size in 22 24 48 64 128 256; do
install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
for size in 16 32; do
install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
done
install -D "$srcdir/../chromium.sh" "$pkgdir/usr/bin/chromium"
ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE"
}
# vim:set ts=2 sw=2 et:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment