mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-09 15:37:56 -05:00
Fix sommelier on M98 (#6812)
* add sommelier and updated libglvnd * xwayland test * test mesa build with glvnd * sommelier fixes via rebuilds of sommelier, mesa, xwayland
This commit is contained in:
@@ -3,23 +3,23 @@ require 'package'
|
||||
class Libglvnd < Package
|
||||
description 'The GL Vendor-Neutral Dispatch library'
|
||||
homepage 'https://gitlab.freedesktop.org/glvnd/libglvnd'
|
||||
version '1.3.2'
|
||||
version '1.4.0'
|
||||
license 'MIT'
|
||||
compatibility 'all'
|
||||
source_url 'https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v1.3.2/libglvnd-v1.3.2.tar.bz2'
|
||||
source_sha256 '8eb697a879245c6246ffabf2c1ed72a5ae335769f0772f55cbe4fee3e50223fe'
|
||||
source_url 'https://gitlab.freedesktop.org/glvnd/libglvnd.git'
|
||||
git_hashtag "v#{version}"
|
||||
|
||||
binary_url ({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libglvnd/1.3.2_armv7l/libglvnd-1.3.2-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libglvnd/1.3.2_armv7l/libglvnd-1.3.2-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libglvnd/1.3.2_i686/libglvnd-1.3.2-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libglvnd/1.3.2_x86_64/libglvnd-1.3.2-chromeos-x86_64.tar.xz',
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libglvnd/1.4.0_armv7l/libglvnd-1.4.0-chromeos-armv7l.tar.zst',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libglvnd/1.4.0_armv7l/libglvnd-1.4.0-chromeos-armv7l.tar.zst',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libglvnd/1.4.0_i686/libglvnd-1.4.0-chromeos-i686.tar.zst',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/libglvnd/1.4.0_x86_64/libglvnd-1.4.0-chromeos-x86_64.tar.zst'
|
||||
})
|
||||
binary_sha256 ({
|
||||
aarch64: '70735287c0e3ec8a7adc8a0b73ff3094f64fc05033f00a7c97b3b9f135f89b5e',
|
||||
armv7l: '70735287c0e3ec8a7adc8a0b73ff3094f64fc05033f00a7c97b3b9f135f89b5e',
|
||||
i686: '0539bb9968725480639004fae14c4ef2014d13290ad1353ed8532fb601b9a1db',
|
||||
x86_64: '24b0f3aa36dbe3832edc8d2ee787962416f5fb2cac13c1e31d71146adbe9660f',
|
||||
binary_sha256({
|
||||
aarch64: '9f38d8734bbcd7e2258edf3a8e872093d10e71a5bcae250b211798413d2c617b',
|
||||
armv7l: '9f38d8734bbcd7e2258edf3a8e872093d10e71a5bcae250b211798413d2c617b',
|
||||
i686: '5e293d8f35f240ea212d1df3ca0fc852f60ac0fc79eb18d38489da7231022ac0',
|
||||
x86_64: 'f17ee5a381d022cdc3ad36601ba4d2df0550b51a540e81c9c0486b61fca014bd'
|
||||
})
|
||||
|
||||
depends_on 'libxext'
|
||||
@@ -28,24 +28,13 @@ class Libglvnd < Package
|
||||
depends_on 'python3' => :build
|
||||
|
||||
def self.build
|
||||
system "env NOCONFIGURE=1 ./autogen.sh"
|
||||
system "./configure #{CREW_OPTIONS} \
|
||||
--enable-egl \
|
||||
--enable-x11 \
|
||||
--enable-glx \
|
||||
--enable-gles1 \
|
||||
--enable-gles2 \
|
||||
--enable-headers \
|
||||
--enable-asm \
|
||||
--enable-tls"
|
||||
system "make"
|
||||
system "meson #{CREW_MESON_OPTIONS} \
|
||||
builddir"
|
||||
system 'meson configure builddir'
|
||||
system 'ninja -C builddir'
|
||||
end
|
||||
|
||||
def self.install
|
||||
system "make", "DESTDIR=#{CREW_DEST_DIR}", "install"
|
||||
end
|
||||
|
||||
def self.check
|
||||
system "make", "check"
|
||||
system "DESTDIR=#{CREW_DEST_DIR} ninja -C builddir install"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,7 +3,7 @@ require 'package'
|
||||
class Mesa < Package
|
||||
description 'Open-source implementation of the OpenGL specification'
|
||||
homepage 'https://www.mesa3d.org'
|
||||
@_ver = '21.3.5'
|
||||
@_ver = '21.3.7'
|
||||
version @_ver
|
||||
license 'MIT'
|
||||
compatibility 'all'
|
||||
@@ -11,16 +11,16 @@ class Mesa < Package
|
||||
git_hashtag "mesa-#{@_ver}"
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/mesa/21.3.5_armv7l/mesa-21.3.5-chromeos-armv7l.tpxz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/mesa/21.3.5_armv7l/mesa-21.3.5-chromeos-armv7l.tpxz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/mesa/21.3.5_i686/mesa-21.3.5-chromeos-i686.tpxz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/mesa/21.3.5_x86_64/mesa-21.3.5-chromeos-x86_64.tpxz'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/mesa/21.3.7_armv7l/mesa-21.3.7-chromeos-armv7l.tar.zst',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/mesa/21.3.7_armv7l/mesa-21.3.7-chromeos-armv7l.tar.zst',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/mesa/21.3.7_i686/mesa-21.3.7-chromeos-i686.tar.zst',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/mesa/21.3.7_x86_64/mesa-21.3.7-chromeos-x86_64.tar.zst'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '21a732fc08bba3dc19bceffe5cc2d315de32ffd519cb8603fc338cf05946bdda',
|
||||
armv7l: '21a732fc08bba3dc19bceffe5cc2d315de32ffd519cb8603fc338cf05946bdda',
|
||||
i686: '598d0f51d38217f0846181aae988c13ca5b4f2869ea6de715210e14082b07bcd',
|
||||
x86_64: '4fd1bb2096ccdf3c6fb23edd1ced3933295af5096a75f27022f1aa3b31c64ea7'
|
||||
aarch64: '04d84c085f2be9415f95cf89d2601d6fb0f2cedade83933312082e669e4f1221',
|
||||
armv7l: '04d84c085f2be9415f95cf89d2601d6fb0f2cedade83933312082e669e4f1221',
|
||||
i686: '7ebbc2fd9a7af4712f634fb3ae9f9fa5c3d286fbe2632cacc5dc8dbbeb3ec03d',
|
||||
x86_64: '05d91f448f095fd5bb89a1ddfb1284845ac20b7e4ee32b0201f1572eccf1f24c'
|
||||
})
|
||||
|
||||
depends_on 'glslang' => :build
|
||||
@@ -126,6 +126,7 @@ class Mesa < Package
|
||||
-Dgallium-drivers=#{@galliumdrivers} \
|
||||
-Dprefer-crocus=true \
|
||||
-Dosmesa=#{@osmesa} \
|
||||
-Dglvnd=false \
|
||||
builddir"
|
||||
system 'meson configure builddir'
|
||||
system 'samu -C builddir'
|
||||
@@ -133,5 +134,15 @@ class Mesa < Package
|
||||
|
||||
def self.install
|
||||
system "DESTDIR=#{CREW_DEST_DIR} samu -C builddir install"
|
||||
# The following are hacks to keep sommelier from complaining.
|
||||
Dir.chdir("#{CREW_DEST_LIB_PREFIX}/dri") do
|
||||
FileUtils.ln_s '.', 'tls' unless File.exist?('tls')
|
||||
end
|
||||
if ARCH == 'x86_64'
|
||||
FileUtils.mkdir_p "#{CREW_DEST_LIB_PREFIX}/gbm/tls"
|
||||
Dir.chdir("#{CREW_DEST_LIB_PREFIX}/gbm/tls") do
|
||||
FileUtils.ln_s '../../libgbm.so', 'i915_gbm.so'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,23 +3,23 @@ require 'package'
|
||||
class Sommelier < Package
|
||||
description 'Sommelier works by redirecting X11 programs to the built-in ChromeOS Exo Wayland server.'
|
||||
homepage 'https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/vm_tools/sommelier/'
|
||||
version '20210109-5'
|
||||
version '20210109-6'
|
||||
license 'BSD-Google'
|
||||
compatibility 'all'
|
||||
source_url 'https://chromium.googlesource.com/chromiumos/platform2.git'
|
||||
git_hashtag 'f3b2e2b6a8327baa2e62ef61036658c258ab4a09'
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/sommelier/20210109-5_armv7l/sommelier-20210109-5-chromeos-armv7l.tar.xz',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/sommelier/20210109-5_armv7l/sommelier-20210109-5-chromeos-armv7l.tar.xz',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/sommelier/20210109-5_i686/sommelier-20210109-5-chromeos-i686.tar.xz',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/sommelier/20210109-5_x86_64/sommelier-20210109-5-chromeos-x86_64.tar.xz',
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/sommelier/20210109-6_armv7l/sommelier-20210109-6-chromeos-armv7l.tar.zst',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/sommelier/20210109-6_armv7l/sommelier-20210109-6-chromeos-armv7l.tar.zst',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/sommelier/20210109-6_i686/sommelier-20210109-6-chromeos-i686.tar.zst',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/sommelier/20210109-6_x86_64/sommelier-20210109-6-chromeos-x86_64.tar.zst'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: '2b270ec19410594ba6969f20e168cc91739f090315a8046a95e303cac71d723e',
|
||||
armv7l: '2b270ec19410594ba6969f20e168cc91739f090315a8046a95e303cac71d723e',
|
||||
i686: '0b8f8ee99968f1cd3c429c9a1a7ffb6577b8ec430b91c83d1f7fa1c3856e7a3b',
|
||||
x86_64: 'b652d65be2330108b4232dbf79991cc27c755a4fed958480b62696f4499b036d',
|
||||
aarch64: 'f3cc665556ebd157487b98ab2daefadf067fea0c43971e0c2dcc15628d9c8061',
|
||||
armv7l: 'f3cc665556ebd157487b98ab2daefadf067fea0c43971e0c2dcc15628d9c8061',
|
||||
i686: 'b370bc7c96b6018b3c348ee37262eee7981af0b32520649c3e6d2f8680d6e753',
|
||||
x86_64: '32ad19aba00b96889c936c8efec6e09c7eb739a5863742f4537d4bed91e306bc'
|
||||
})
|
||||
|
||||
depends_on 'libdrm'
|
||||
@@ -49,7 +49,12 @@ class Sommelier < Package
|
||||
end
|
||||
|
||||
def self.preflight
|
||||
@container_check = `/usr/bin/crossystem inside_vm` == '1' ? true : false
|
||||
case ARCH
|
||||
when 'armv7l', 'aarch64'
|
||||
@container_check = File.exist?('/.dockerenv')
|
||||
when 'i686', 'x86_64'
|
||||
@container_check = `/usr/bin/crossystem inside_vm` == '1'
|
||||
end
|
||||
unless File.socket?('/var/run/chrome/wayland-0') || @container_check
|
||||
abort 'This package is not compatible with your device :/'.lightred
|
||||
end
|
||||
@@ -117,7 +122,7 @@ class Sommelier < Package
|
||||
# This file via:
|
||||
# crostini: /opt/google/cros-containers/bin/sommelier
|
||||
# https://source.chromium.org/chromium/chromium/src/+/master:third_party/chromite/third_party/lddtree.py;drc=46da9a8dfce28c96765dc7d061f0c6d7a52e7352;l=146
|
||||
IO.write 'sommelier_sh', <<~EOF
|
||||
File.write 'sommelier_sh', <<~EOF
|
||||
#!/bin/bash
|
||||
function readlink(){
|
||||
coreutils --coreutils-prog=readlink "$@"
|
||||
@@ -145,7 +150,7 @@ class Sommelier < Package
|
||||
EOF
|
||||
|
||||
# sommelierd
|
||||
IO.write 'sommelierd', <<~EOF
|
||||
File.write 'sommelierd', <<~EOF
|
||||
#!/bin/bash -a
|
||||
|
||||
source ${CREW_PREFIX}/etc/env.d/sommelier.env &>/dev/null
|
||||
@@ -199,7 +204,7 @@ class Sommelier < Package
|
||||
EOF
|
||||
|
||||
# startsommelier
|
||||
IO.write 'startsommelier', <<~EOF
|
||||
File.write 'startsommelier', <<~EOF
|
||||
#!/bin/bash -a
|
||||
|
||||
source ~/.sommelier-default.env &>/dev/null
|
||||
@@ -245,7 +250,7 @@ class Sommelier < Package
|
||||
EOF
|
||||
|
||||
# stopsommelier
|
||||
IO.write 'stopsommelier', <<~EOF
|
||||
File.write 'stopsommelier', <<~EOF
|
||||
#!/bin/bash
|
||||
SOMM="$(pgrep -fc sommelier.elf 2> /dev/null)"
|
||||
if [[ "${SOMM}" -gt "0" ]]; then
|
||||
@@ -264,7 +269,7 @@ class Sommelier < Package
|
||||
EOF
|
||||
|
||||
# restartsommelier
|
||||
IO.write 'restartsommelier', <<~EOF
|
||||
File.write 'restartsommelier', <<~EOF
|
||||
#!/bin/bash
|
||||
stopsommelier && startsommelier
|
||||
EOF
|
||||
@@ -294,8 +299,8 @@ class Sommelier < Package
|
||||
end
|
||||
end
|
||||
|
||||
IO.write("#{CREW_DEST_PREFIX}/etc/bash.d/sommelier", @bashd_sommelier)
|
||||
IO.write("#{CREW_DEST_PREFIX}/etc/env.d/sommelier", @sommelierenv)
|
||||
File.write("#{CREW_DEST_PREFIX}/etc/bash.d/sommelier", @bashd_sommelier)
|
||||
File.write("#{CREW_DEST_PREFIX}/etc/env.d/sommelier", @sommelierenv)
|
||||
end
|
||||
|
||||
def self.postinstall
|
||||
|
||||
@@ -4,23 +4,23 @@ class Xwayland < Package
|
||||
description 'X server configured to work with weston or sommelier'
|
||||
homepage 'https://x.org'
|
||||
@_ver = '22.1.0'
|
||||
version @_ver
|
||||
version "#{@_ver}-1"
|
||||
license 'MIT-with-advertising, ISC, BSD-3, BSD and custom'
|
||||
compatibility 'all'
|
||||
source_url 'https://gitlab.freedesktop.org/xorg/xserver.git'
|
||||
git_hashtag "xwayland-#{@_ver}"
|
||||
|
||||
binary_url({
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/xwayland/22.1.0_armv7l/xwayland-22.1.0-chromeos-armv7l.tar.zst',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/xwayland/22.1.0_armv7l/xwayland-22.1.0-chromeos-armv7l.tar.zst',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/xwayland/22.1.0_i686/xwayland-22.1.0-chromeos-i686.tar.zst',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/xwayland/22.1.0_x86_64/xwayland-22.1.0-chromeos-x86_64.tar.zst'
|
||||
aarch64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/xwayland/22.1.0-1_armv7l/xwayland-22.1.0-1-chromeos-armv7l.tar.zst',
|
||||
armv7l: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/xwayland/22.1.0-1_armv7l/xwayland-22.1.0-1-chromeos-armv7l.tar.zst',
|
||||
i686: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/xwayland/22.1.0-1_i686/xwayland-22.1.0-1-chromeos-i686.tar.zst',
|
||||
x86_64: 'https://gitlab.com/api/v4/projects/26210301/packages/generic/xwayland/22.1.0-1_x86_64/xwayland-22.1.0-1-chromeos-x86_64.tar.zst'
|
||||
})
|
||||
binary_sha256({
|
||||
aarch64: 'aa65bcfdb34edc61b04db0c5970f579a11621b597788c801695fb32bcd2b1a6c',
|
||||
armv7l: 'aa65bcfdb34edc61b04db0c5970f579a11621b597788c801695fb32bcd2b1a6c',
|
||||
i686: '4cc31306f6cef4254394ed7cacbd5375880660b27976e347377a0b08342b7efc',
|
||||
x86_64: '80dc3f551c7c171f0b654c64437e298f84832cc4b170895c1bebfff376425157'
|
||||
aarch64: 'a8a49db5e9c13e9e29209af6be9f18cd5ac2925cefe6e06181686883194db3de',
|
||||
armv7l: 'a8a49db5e9c13e9e29209af6be9f18cd5ac2925cefe6e06181686883194db3de',
|
||||
i686: '69d6c3462f3a16f9a46a0ac87e55fa68edcf5fcd9bb85101ab58c6c6833a32f6',
|
||||
x86_64: 'cdb5e4540b3ab08fbb336561047d2b0b7b20eb32760f60fc703a403d1a296ee6'
|
||||
})
|
||||
|
||||
depends_on 'dbus'
|
||||
@@ -49,15 +49,6 @@ class Xwayland < Package
|
||||
depends_on 'xkbcomp'
|
||||
depends_on 'xorg_lib'
|
||||
|
||||
case ARCH
|
||||
when 'armv7l', 'aarch64'
|
||||
PEER_CMD_PREFIX = '/lib/ld-linux-armhf.so.3'.freeze
|
||||
when 'i686'
|
||||
PEER_CMD_PREFIX = '/lib/ld-linux.so.2'.freeze
|
||||
when 'x86_64'
|
||||
PEER_CMD_PREFIX = '/lib64/ld-linux-x86-64.so.2'.freeze
|
||||
end
|
||||
|
||||
def self.build
|
||||
system 'meson setup build'
|
||||
system "meson configure #{CREW_MESON_OPTIONS.sub("-Dcpp_args='-O2'", '')} \
|
||||
@@ -69,30 +60,10 @@ class Xwayland < Package
|
||||
build"
|
||||
system 'meson configure build'
|
||||
system 'ninja -C build'
|
||||
system "cat <<'EOF'> Xwayland_sh
|
||||
#!/bin/bash
|
||||
if base=$(readlink \"$0\" 2>/dev/null); then
|
||||
case $base in
|
||||
/*) base=$(readlink -f \"$0\" 2>/dev/null);; # if $0 is abspath symlink, make symlink fully resolved.
|
||||
*) base=$(dirname \"$0\")/\"${base}\";;
|
||||
esac
|
||||
else
|
||||
case $0 in
|
||||
/*) base=$0;;
|
||||
*) base=${PWD:-`pwd`}/$0;;
|
||||
esac
|
||||
fi
|
||||
basedir=${base%/*}
|
||||
# TODO(crbug/1003841): Remove LD_ARGV0 once
|
||||
# ld.so supports forwarding the binary name.
|
||||
LD_ARGV0=\"$0\" LD_ARGV0_REL=\"../bin/Xwayland.sh\" exec \"${basedir}/..#{PEER_CMD_PREFIX}\" --library-path \"${basedir}/../#{ARCH_LIB}\" --inhibit-rpath '' \"${base}.elf\" \"$@\"
|
||||
EOF"
|
||||
end
|
||||
|
||||
def self.install
|
||||
system "DESTDIR=#{CREW_DEST_DIR} ninja -C build install"
|
||||
FileUtils.mv "#{CREW_DEST_PREFIX}/bin/Xwayland", "#{CREW_DEST_PREFIX}/bin/Xwayland.elf"
|
||||
system "install -Dm755 Xwayland_sh #{CREW_DEST_PREFIX}/bin/Xwayland"
|
||||
# Get these from xorg_server package
|
||||
@deletefiles = %W[#{CREW_DEST_PREFIX}/bin/X #{CREW_DEST_MAN_PREFIX}/man1/Xserver.1]
|
||||
@deletefiles.each do |f|
|
||||
|
||||
Reference in New Issue
Block a user