chromebrew / chromebrew

Package manager for Chrome OS
https://chromebrew.github.io
GNU General Public License v3.0
2.29k stars 375 forks source link

🐞 Bug Mpv is not working #9268

Closed lavilao closed 6 months ago

lavilao commented 6 months ago

Describe the bug mpv fails to start due to missing library (libspirv.so.14) To Reproduce Steps to reproduce the behavior:

  1. I executed this command:

      mpv

    Output:

      # output of your command](mpv: error while loading shared libraries: libSPIRV.so.14: cannot open shared object file: No such file or directory)

Expected behavior mpv should open normally

Screenshots If applicable, add screenshots to help explain your problem.

**Environment: Paste the output of crew sysinfo -v between the two *** below**


Expand - Architecture: `x86_64` (`x86_64`) - Processor vendor: `GenuineIntel` - User space: `64-bit` - Chromebrew Kernel version: `5.15` - Chromebrew Running in Container: `false` - Chromebrew version: `1.42.7` - Chromebrew prefix: `/usr/local` - Chromebrew libdir: `/usr/local/lib64` - Last update in local repository: 45fb71cf1 `Add arpscan package (#9266) (4 hours ago)` - OS variant: `Chrome OS` - OS version: `octopus-release/R120-15662.88.0` - OS channel: `stable-channel`

Crew is exiting.


Additional context Add any other context about the problem here.

What I think needs to be done:

  - [ ] step one
  - [ ] step two
lavilao commented 6 months ago

also could you update mpv to version 0.37 and add vapoursynth support? the second would be a nice to have but the first brings many performance improvements (gpu-next)

satmandu commented 6 months ago

Let me see if I can get vapoursynth built...

satmandu commented 6 months ago

Will try this:

# Adapted from Arch Linux vapoursynth PKGBUILD at:
# https://github.com/archlinux/svntogit-community/raw/packages/vapoursynth/trunk/PKGBUILD

require 'buildsystems/autotools'

class Vapoursynth < Autotools
  description 'A video processing framework with the future in mind'
  homepage 'http://www.vapoursynth.com/'
  version 'R65'
  license ' LGPL-2.1'
  compatibility 'x86_64 aarch64 armv7l'
  source_url 'https://github.com/vapoursynth/vapoursynth.git'
  git_hashtag version
  binary_compression 'tar.zst'

  binary_sha256({
    aarch64: '568a8c6a29d77173b9b12e83658589cc828829f9d55d27f313832fd5a99ce55a',
     armv7l: '568a8c6a29d77173b9b12e83658589cc828829f9d55d27f313832fd5a99ce55a',
     x86_64: '51bf407bc0ec1e0a731fce3f3ade991ec6fb4a13fe00f7b15afda0838dd42a03'
  })

  depends_on 'ffmpeg' => :build
  depends_on 'gcc_lib' # R
  depends_on 'glibc' # R
  depends_on 'graphicsmagick' => :build
  depends_on 'libass' => :build
  depends_on 'py3_cython' => :build
  depends_on 'python3' # R
  depends_on 'tesseract' => :build
  depends_on 'zimg' => :build

  configure_options '--disable-static'
end
satmandu commented 6 months ago

I added a vapoursynth package, but looks like mpv needs some more packages added to get it to build now...

satmandu commented 6 months ago

It looks like we also need libplacebo, but trying to build this:

# Adapted from Arch Linux libplacebo PKGBUILD at:
# https://github.com/archlinux/svntogit-packages/raw/packages/libplacebo/trunk/PKGBUILD

require 'buildsystems/meson'

class Libplacebo < Meson
  description 'Reusable library for GPU-accelerated video/image rendering primitives'
  homepage 'https://github.com/haasn/libplacebo'
  version '5.229.2'
  license 'LGPL2.1'
  compatibility 'all'
  source_url 'https://code.videolan.org/videolan/libplacebo/-/archive/v5.229.2/libplacebo-v5.229.2.tar.gz'
  source_sha256 'a42035c69e4a6373cb9856cc0c5736f24af4485006f3b29605ddffba377264db'

  binary_sha256({
    aarch64: '000',
     armv7l: '000',
       i686: '111',
     x86_64: '222'
  })

  depends_on 'vulkan_icd_loader'
  depends_on 'glslang'
  depends_on 'lcms'
  depends_on 'shaderc'

  meson_options "-Dtests=false \
    -Dvulkan=enabled \
    -Dglslang=enabled \
    -Dshaderc=enabled \
    -Dlcms=enabled \
    -Dd3d11=disabled \
    -Ddemos=false"
end

But I see this...

The Meson build system
Version: 1.3.1
Source dir: /usr/local/tmp/crew/libplacebo.20240207004943.dir/libplacebo-v5.229.2
Build dir: /usr/local/tmp/crew/libplacebo.20240207004943.dir/libplacebo-v5.229.2/builddir
Build type: native build
Project name: libplacebo
Project version: 5.229.2
C compiler for the host machine: cc (gcc 13.2.0 "cc (GCC) 13.2.0")
C linker for the host machine: cc ld.mold 2.4.0
C++ compiler for the host machine: c++ (gcc 13.2.0 "c++ (GCC) 13.2.0")
C++ linker for the host machine: c++ ld.mold 2.4.0
Host machine cpu family: arm
Host machine cpu: armv8l
Compiler for C supports arguments -Wincompatible-pointer-types: YES
Compiler for C supports link arguments -Wl,--exclude-libs=ALL: YES
Library m found: YES
Program python3 found: YES (/usr/local/bin/python3)
Run-time dependency threads found: YES
Header "pthread.h" has symbol "pthread_condattr_setclock" with dependency threads: YES
Found pkg-config: YES (/usr/local/bin/pkg-config) 0.29.2
Run-time dependency libunwind found: YES 1.5.0
Library execinfo found: NO
Checking for function "backtrace_symbols" with dependency -lexecinfo: YES
Library dl found: YES
Run-time dependency shaderc found: YES 2023.8.1
Library glslang found: YES
Library MachineIndependent found: NO

src/glsl/meson.build:22:8: ERROR: C++ shared or static library 'OSDependent' not found
lavilao commented 6 months ago

I managed to build libplacebo myself, try building it without glslang installed. On my case it builded just fine because it said shaderc was found. The dependency where I spend the most work was glad, I had to do a git submodule update --init to get it

lavilao commented 6 months ago

I also did not use any -D option exept -Ddemos=false.