You are not logged in.
Offline
I have tried making a PKGBUILD, but didn't get very far... it's probably outside of my ability.
But I'll have another go this weekend if someone else hasn't already.
Offline
Hi!
Unfortunately, I ran into a roadblock: the source is too large to download (for me, anyway).
I'll post the largely incomplete PKGBUILD, which is modified from the chromium PKGBUILD from abs; note that it needs some serious work, and there may be a better method than what I tried (building the back end separately?).
I'd be interested if a solution could be found!
PKGBUILD:
# $Id: PKGBUILD 224126 2014-10-08 21:11:21Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=chromium-wayland
pkgver=38.0.2125.101
pkgrel=1
pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser - Wayland backend"
arch=('x86_64')
#TODO: Change to ozone-wayland's page?
url="http://www.chromium.org/"
license=('BSD')
#TODO: Check (add wayland/weston?)
depends=('gtk2' 'nss' 'alsa-lib' 'xdg-utils' 'bzip2' 'libevent' 'libxss' 'icu'
'libexif' 'libgcrypt' 'ttf-font' 'systemd' 'dbus' 'flac' 'snappy'
'speech-dispatcher' 'pciutils' 'libpulse' 'harfbuzz'
'desktop-file-utils' 'hicolor-icon-theme')
#TODO: update?
makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring'
'elfutils' 'subversion' 'ninja' 'clang')
[[ $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'
source=('chromium.desktop'
'chromium.default'
'chromium.sh')
sha256sums=('09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322'
'478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232'
'4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9')
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
_google_default_client_id=413772536636.apps.googleusercontent.com
_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4
prepare() {
cd "${srcdir}"
# Download depot-tools
# This could be improved... as a git url in the sources list?
URL="https://chromium.googlesource.com/chromium/tools/depot_tools.git"
if [ -d "${srcdir}/depot_tools" ]; then
cd "${srcdir}/depot_tools"
git pull
cd ..
else
git clone "${URL}"
fi
# Add depot_tools to the path
export PATH="${srcdir}/depot_tools:${PATH}"
# There are still a lot of relative calls which need a workaround
mkdir "$srcdir/python2-path"
ln -s /usr/bin/python2 "$srcdir/python2-path/python"
# Add python2 to path as python
export PATH="$srcdir/python2-path:$PATH"
# Sync for ozone support
gclient config ssh://git@github.com/01org/ozone-wayland.git --name=src/ozone \
--deps-file ".DEPS.git"
export GYP_DEFINES='use_ash=1 use_aura=1 chromeos=0 use_ozone=1'
# Actual download
gclient sync
cd "${srcdir}/src"
# Remove bundled ICU; its header files appear to get picked up instead of
# the system ones, leading to errors during the final link stage
# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/BNGvJc08B6Q
find third_party/icu -type f \! -regex '.*\.\(gyp\|gypi\|isolate\)' -delete
# Use Python 2
find . -type f -exec sed -i -r \
-e 's|/usr/bin/python$|&2|g' \
-e 's|(/usr/bin/python2)\.4$|\1|g' \
{} +
# Download NaCL toolchains
python2 build/download_nacl_toolchains.py \
--packages nacl_x86_newlib,pnacl_newlib,pnacl_translator
# Add the wayland-specific patches
src/ozone/patches/patch-chromium.sh
}
build() {
cd "$srcdir/$pkgname-*"
# CFLAGS are passed through release_extra_cflags below
export -n CFLAGS CXXFLAGS
# Build with clang as a temporary solution to startup crash with GCC 4.9
# https://code.google.com/p/chromium/issues/detail?id=412967
export CC=clang
export CXX=clang++
local _chromium_conf=(
-Dgoogle_api_key=$_google_api_key
-Dgoogle_default_client_id=$_google_default_client_id
-Dgoogle_default_client_secret=$_google_default_client_secret
-Dwerror=
-Dclang=1
-Dclang_use_chrome_plugins=0
-Dpython_ver=2.7
-Dlinux_link_gsettings=1
-Dlinux_link_libpci=1
-Dlinux_link_libspeechd=1
-Dlinux_link_pulseaudio=1
-Dlinux_strip_binary=1
-Dlinux_use_bundled_binutils=0
-Dlinux_use_bundled_gold=0
-Dlinux_use_gold_flags=0
-Dicu_use_data_file_flag=0
-Dlogging_like_official_build=1
-Drelease_extra_cflags="$CFLAGS"
-Dlibspeechd_h_prefix=speech-dispatcher/
-Dffmpeg_branding=Chrome
-Dproprietary_codecs=1
-Duse_system_bzip2=1
-Duse_system_flac=1
-Duse_system_ffmpeg=0
-Duse_system_harfbuzz=1
-Duse_system_icu=1
-Duse_system_libevent=1
-Duse_system_libjpeg=1
-Duse_system_libpng=1
-Duse_system_libxml=0
-Duse_system_snappy=1
-Duse_system_ssl=0
-Duse_system_xdg_utils=1
-Duse_system_yasm=1
-Duse_system_zlib=0
-Dusb_ids_path=/usr/share/hwdata/usb.ids
-Duse_mojo=0
-Duse_gconf=0
-Ddisable_fatal_linker_warnings=1
-Ddisable_glibc=1)
# I suspect this might cause issues...
build/linux/unbundle/replace_gyp_files.py "${_chromium_conf[@]}"
build/gyp_chromium --depth=. "${_chromium_conf[@]}"
ninja -C out/Release chrome # chrome_sandbox chromedriver
}
package() {
cd "$srcdir/$pkgname-$pkgver"
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/nacl_irt_*.nexe \
out/Release/libpdf.so \
"$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/libpdf.so"
# Allow users to override command-line options
install -Dm644 "$srcdir/chromium.default" "$pkgdir/etc/chromium/default"
cp -a out/Release/locales "$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:
pypi
Offline
Thanks anyway. Someone might improve on your work.
Offline
I found it easier just to use the percompiled binaries.
https://01.org/ozone-wayland/downloads
Just untar launch in terminal it will complain about a missing .so first probably. libgcrypt15 and libudev.so.0. I installed gcrypt from AUR and just created the symlink for the second dependency. Worked.
Offline
@blackout23: As it says on the page, they are "FOR DEVELOPERS ONLY".
More importantly, they are old - 9 months old for the most recent one - which means all security issues discovered since then in chromium (and there are quite a few) are not patched.
Since I want to use it on an everyday basis, they are unsuitable.
However, for testing purposes, it is probably fine! So thanks for the instructions, even if they are not useful for me.
Offline
A precompiled bin would also be nice to have on AUR but yeah. Git would be better.
Offline
Anyone tried to compile it? I donnot even have enough diskspace to compile it
Offline
Anyone tried to compile it? I donnot even have enough diskspace to compile it
I didn't. I want something that will work.
How big is the code???
Offline
I believe the full Git repo (required for ozone-wayland) is around 25GB, although the download is probably a bit smaller (compressed?).
295.8M for the latest source tarball, though. But I don't think there are any source tarballs for Chromium with ozone-wayland. If anyone found some...
Offline
25G ??? Are we trying to compile Skynet or something
Offline
I'm working on it on a Ubuntu machine. Since the working instructions are for 12.04, I'm missing some packages.
Does anyone know a IRC channel where we can find some of the devs?
Offline
Project Specifics
Ozone-Wayland is distributed under the BSD license and is written in the C++ programming language. Find more information on the Chromium site or chat with us directly on the Ozone -Wyland IRC channel: freenode.net, #ozone-wayland channel.
from the site.
Last edited by 89c51 (2014-12-18 12:48:22)
Offline
I have a working PKGBUILD. pkg will successfully compile and build based on chromium-PKGBUILD. You will need the chromium-* files from abs.
gpu-sandboxing will not work. Run it in weston like this:
chromium --disable-gpu-sandbox
What doesn't work on my computer:
running it in mutter (gnome)
dragging tabs, or the window
tooltips show at 0,0 and don't vanish properly
# $Id: PKGBUILD 227394 2014-12-10 12:36:46Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=chromium
pkgver=39.0.2171.95
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' 'icu'
'libexif' 'libgcrypt' 'ttf-font' 'systemd' 'dbus' 'flac' 'snappy'
'speech-dispatcher' 'pciutils' 'libpulse' 'harfbuzz'
'desktop-file-utils' 'hicolor-icon-theme')
makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring'
'elfutils' 'subversion' 'ninja' 'clang')
[[ $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
source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
https://github.com/01org/ozone-wayland/archive/39.0.2171.10.tar.gz
chromium.desktop
chromium.default
chromium.sh)
sha256sums=('66cb6902afbd8a0f990cb9e70ff1df843a7461f66077ffe7f41d730278a2a868'
'381a14f0abe815745e82eeefeb48181189890439bf6fcfdc79963e77e6cc6101'
'09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322'
'478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232'
'4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9')
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
_google_default_client_id=413772536636.apps.googleusercontent.com
_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4
# We can't build (P)NaCL on i686 because the toolchain is x86_64 only and the
# instructions to build the toolchain from source don't work that well (at least
# from within the Chromium 39 source tree).
# https://sites.google.com/a/chromium.org/dev/nativeclient/pnacl/building-pnacl-components-for-distribution-packagers
_build_nacl=1
if [[ $CARCH == i686 ]]; then
_build_nacl=0
fi
prepare() {
cd "$srcdir/$pkgname-$pkgver"
# Remove bundled ICU; its header files appear to get picked up instead of
# the system ones, leading to errors during the final link stage
# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/BNGvJc08B6Q
find third_party/icu -type f \! -regex '.*\.\(gyp\|gypi\|isolate\)' -delete
# Use Python 2
find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} +
# There are still a lot of relative calls which need a workaround
mkdir "$srcdir/python2-path"
ln -s /usr/bin/python2 "$srcdir/python2-path/python"
# Download the PNaCL toolchain on x86_64; i686 toolchain is no longer provided
if (( $_build_nacl )); then
python2 build/download_nacl_toolchains.py \
--packages nacl_x86_newlib,pnacl_newlib,pnacl_translator
fi
# Ozone-Wayland
mv ../ozone-wayland-39.0.2171.10 ozone
for patchfile in ozone/patches/000*
do patch -p1 <$patchfile
done
}
build() {
cd "$srcdir/$pkgname-$pkgver"
export PATH="$srcdir/python2-path:$PATH"
# CFLAGS are passed through release_extra_cflags below
export -n CFLAGS CXXFLAGS
local _chromium_conf=(
-Dgoogle_api_key=$_google_api_key
-Dgoogle_default_client_id=$_google_default_client_id
-Dgoogle_default_client_secret=$_google_default_client_secret
-Dwerror=
-Dclang=0
-Dpython_ver=2.7
-Dlinux_link_gsettings=1
-Dlinux_link_libpci=1
-Dlinux_link_libspeechd=1
-Dlinux_link_pulseaudio=1
-Dlinux_strip_binary=1
-Dlinux_use_bundled_binutils=0
-Dlinux_use_bundled_gold=0
-Dlinux_use_gold_flags=0
-Dicu_use_data_file_flag=0
-Dlogging_like_official_build=1
-Drelease_extra_cflags="$CFLAGS"
-Dlibspeechd_h_prefix=speech-dispatcher/
-Dffmpeg_branding=Chrome
-Dproprietary_codecs=1
-Duse_system_bzip2=1
-Duse_system_flac=1
-Duse_system_ffmpeg=0
-Duse_system_harfbuzz=1
-Duse_system_icu=1
-Duse_system_libevent=1
-Duse_system_libjpeg=1
-Duse_system_libpng=1
-Duse_system_libxml=0
-Duse_system_snappy=1
-Duse_system_ssl=0
-Duse_system_xdg_utils=1
-Duse_system_yasm=1
-Duse_system_zlib=0
-Dusb_ids_path=/usr/share/hwdata/usb.ids
-Duse_mojo=0
-Duse_gconf=0
-Ddisable_fatal_linker_warnings=1
-Ddisable_glibc=1
-Duse_ash=1
-Duse_aura=1
-Dchromeos=0
-Duse_ozone=1
-Duse_xkbcommon=1)
if (( ! $_build_nacl )); then
_chromium_conf+=(
-Ddisable_nacl=1
-Ddisable_pnacl=1
)
fi
build/linux/unbundle/replace_gyp_files.py "${_chromium_conf[@]}"
build/gyp_chromium --depth=. "${_chromium_conf[@]}"
ninja -C out/Release chrome chrome_sandbox chromedriver
}
package() {
cd "$srcdir/$pkgname-$pkgver"
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,libpdf.so} "$pkgdir/usr/lib/chromium/"
if (( $_build_nacl )); then
cp out/Release/nacl_helper{,_bootstrap} out/Release/nacl_irt_*.nexe \
"$pkgdir/usr/lib/chromium/"
fi
# 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"
strip $STRIP_SHARED "$pkgdir/usr/lib/chromium/libffmpegsumo.so" \
"$pkgdir/usr/lib/chromium/libpdf.so"
if (( $_build_nacl )); then
strip $STRIP_BINARIES "$pkgdir/usr/lib/chromium/"nacl_helper{,_bootstrap}
fi
# Allow users to override command-line options
install -Dm644 "$srcdir/chromium.default" "$pkgdir/etc/chromium/default"
cp -a out/Release/locales "$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:
It's only 255 mb of downloads, and takes ~30 minutes to compile
Offline
Thanks!
That looks good; you found out how to use the release archives!
Could you point me to the documentation for the method you used to build with the archives - as I understand the README, their method only works for chromium-git?
I'll give building it a go later today.
pypi
Offline
@themax Thanks a lot
Word of warning. In case you have a sloooooow machine don't bother. 7+ hours here and still going.
Offline
After 20+ (don't actually know i was outside) hours of compiling i get:
sudo pacman -U chromium-39.0.2171.95.tar.xz
loading packages...
error: missing package metadata in chromium-39.0.2171.95.tar.xz
error: 'chromium-39.0.2171.95.tar.xz': invalid or corrupted package
Any ideas.
Offline
After 20+ (don't actually know i was outside) hours of compiling i get:
sudo pacman -U chromium-39.0.2171.95.tar.xz loading packages... error: missing package metadata in chromium-39.0.2171.95.tar.xz error: 'chromium-39.0.2171.95.tar.xz': invalid or corrupted package
Any ideas.
You need coffee. You're trying to install the upstream source package.
aur S & M :: forum rules :: Community Ethos
Resources for Women, POC, LGBT*, and allies
Offline
hmmm. But i build the thing with the PKDBUILD themax provided. I am in the directory the package exists.
Offline
Look in the directory the PKGBUILD is in for a file ending with .pkg.tar.xz.
aur S & M :: forum rules :: Community Ethos
Resources for Women, POC, LGBT*, and allies
Offline
Something went wrong probably.
$ ls
39.0.2171.10.tar.gz PKGBUILD chromium-39.0.2171.95.tar.xz chromium.default chromium.desktop chromium.install chromium.sh pkg src
Will rebuild.
Offline
Something went wrong probably.
$ ls 39.0.2171.10.tar.gz PKGBUILD chromium-39.0.2171.95.tar.xz chromium.default chromium.desktop chromium.install chromium.sh pkg src
Will rebuild.
You can try makepkg -R to repackage.
"Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it."—Linus Torvalds
s/ftp/git/
https://iandouglasscott.com | https://github.org/ids1024 | https://keybase.io/ids1024
Offline
89c51 wrote:Something went wrong probably.
$ ls 39.0.2171.10.tar.gz PKGBUILD chromium-39.0.2171.95.tar.xz chromium.default chromium.desktop chromium.install chromium.sh pkg src
Will rebuild.
You can try makepkg -R to repackage.
Fuck. I didn't know that and deleted everything.
Offline
After 22 hours it fails with:
obj/extensions/libextensions_renderer.a: error adding symbols: Memory exhausted
collect2: error: ld returned 1 exit status
ninja:build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
Aborting...
now what?
Just in case it matters it is a 32bit atom with 2GB of RAM.
Offline
@89c51: Have you set up any swap? Maybe not enough? EDIT: It built on my machine which has 3GB of RAM and no swap, so 2GB of swap should be plenty, depending on what else you are running. I was going to offer to try to post my finished package somewhere if that would help, but my machines are 64bit...
@themax: Well, I did manage to build a (slightly modified) package. Thanks again!
I had to build it on the Core 2 laptop - it took about half a day. The other machine, ironically, failed to build it (not enough free disk space...), but could run it (intel graphics), while the original machine couldn't (nouveau drivers).
To continue a trend;
What doesn't work on my computer:
- Drag and drop support (a known issue)
- Bookmarks bar menus appear and then instantly vanish
- Other menus appear, but appear to 'get stuck' after opening a submenu.
- Tooltips show at 0,0 and don't vanish properly
I note that the newest release has sandboxing support; I might give that a try at some point.
Offline