kodi: apply pipwire upstream patch
Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
This commit is contained in:
@@ -263,6 +263,15 @@ stdenv.mkDerivation (
|
|||||||
url = "https://github.com/xbmc/xbmc/commit/269053ebbfd3cc4a3156a511f54ab7f08a09a730.patch";
|
url = "https://github.com/xbmc/xbmc/commit/269053ebbfd3cc4a3156a511f54ab7f08a09a730.patch";
|
||||||
hash = "sha256-JzzrMJvAufrxTxtWnzknUS9JLJEed+qdtVnIYYe9LCw=";
|
hash = "sha256-JzzrMJvAufrxTxtWnzknUS9JLJEed+qdtVnIYYe9LCw=";
|
||||||
})
|
})
|
||||||
|
# Mire fixes for Pipwire. See https://github.com/xbmc/xbmc/pull/26441
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/xbmc/xbmc/commit/821901f30469c56f3fff0604c7a8796b77d11fc1.patch";
|
||||||
|
hash = "sha256-XfAipqmYF8GCgEJNMjvQbaH0GWib/YE3jTMAMat4Xg8=";
|
||||||
|
})
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/xbmc/xbmc/commit/7d369dd07acae535d57aec412359406646d5fb86.patch";
|
||||||
|
hash = "sha256-5NnGwHf1FlKjDdbkCo4yTgl/aBbz+7+6FIJWVq+sF9E=";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
# make derivations declared in the let binding available here, so
|
# make derivations declared in the let binding available here, so
|
||||||
@@ -276,186 +285,187 @@ stdenv.mkDerivation (
|
|||||||
apache_commons_text
|
apache_commons_text
|
||||||
;
|
;
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs =
|
||||||
gnutls
|
[
|
||||||
libidn2
|
gnutls
|
||||||
libtasn1
|
libidn2
|
||||||
nasm
|
libtasn1
|
||||||
p11-kit
|
nasm
|
||||||
libxml2
|
p11-kit
|
||||||
python3Packages.python
|
libxml2
|
||||||
boost
|
python3Packages.python
|
||||||
libmicrohttpd
|
boost
|
||||||
gettext
|
libmicrohttpd
|
||||||
pcre-cpp
|
gettext
|
||||||
yajl
|
pcre-cpp
|
||||||
fribidi
|
yajl
|
||||||
libva
|
fribidi
|
||||||
libdrm
|
libva
|
||||||
openssl
|
libdrm
|
||||||
gperf
|
openssl
|
||||||
tinyxml2
|
gperf
|
||||||
tinyxml-2
|
tinyxml2
|
||||||
taglib
|
tinyxml-2
|
||||||
libssh
|
taglib
|
||||||
gtest
|
libssh
|
||||||
ncurses
|
gtest
|
||||||
spdlog
|
ncurses
|
||||||
alsa-lib
|
spdlog
|
||||||
libGL
|
alsa-lib
|
||||||
libGLU
|
libGL
|
||||||
fontconfig
|
libGLU
|
||||||
freetype
|
fontconfig
|
||||||
ftgl
|
freetype
|
||||||
libjpeg
|
ftgl
|
||||||
libpng
|
libjpeg
|
||||||
libtiff
|
libpng
|
||||||
libmpeg2
|
libtiff
|
||||||
libsamplerate
|
libmpeg2
|
||||||
libmad
|
libsamplerate
|
||||||
libogg
|
libmad
|
||||||
libvorbis
|
libogg
|
||||||
flac
|
libvorbis
|
||||||
libxslt
|
flac
|
||||||
systemd
|
libxslt
|
||||||
lzo
|
systemd
|
||||||
libcdio
|
lzo
|
||||||
libmodplug
|
libcdio
|
||||||
libass
|
libmodplug
|
||||||
libbluray
|
libass
|
||||||
libudfread
|
libbluray
|
||||||
sqlite
|
libudfread
|
||||||
libmysqlclient
|
sqlite
|
||||||
avahi
|
libmysqlclient
|
||||||
lame
|
avahi
|
||||||
curl
|
lame
|
||||||
bzip2
|
curl
|
||||||
zip
|
bzip2
|
||||||
unzip
|
zip
|
||||||
mesa-demos
|
unzip
|
||||||
libcec
|
mesa-demos
|
||||||
libcec_platform
|
libcec
|
||||||
dcadec
|
libcec_platform
|
||||||
libuuid
|
dcadec
|
||||||
libxcrypt
|
libuuid
|
||||||
libgcrypt
|
libxcrypt
|
||||||
libgpg-error
|
libgcrypt
|
||||||
libunistring
|
libgpg-error
|
||||||
libcrossguid
|
libunistring
|
||||||
libplist
|
libcrossguid
|
||||||
bluez
|
libplist
|
||||||
glib
|
bluez
|
||||||
harfbuzz
|
glib
|
||||||
lcms2
|
harfbuzz
|
||||||
libpthreadstubs
|
lcms2
|
||||||
ffmpeg
|
libpthreadstubs
|
||||||
flatbuffers
|
ffmpeg
|
||||||
fstrcmp
|
flatbuffers
|
||||||
rapidjson
|
fstrcmp
|
||||||
lirc
|
rapidjson
|
||||||
mesa-gl-headers
|
lirc
|
||||||
|
mesa-gl-headers
|
||||||
|
|
||||||
# Deps needed by TexturePacker, which is built and installed in normal
|
# Deps needed by TexturePacker, which is built and installed in normal
|
||||||
# kodi build, however the one used during the build is not this one
|
# kodi build, however the one used during the build is not this one
|
||||||
# in order to support cross-compilation.
|
# in order to support cross-compilation.
|
||||||
giflib
|
giflib
|
||||||
zlib
|
zlib
|
||||||
]
|
]
|
||||||
++ lib.optionals x11Support [
|
++ lib.optionals x11Support [
|
||||||
libX11
|
libX11
|
||||||
xorgproto
|
xorgproto
|
||||||
libXt
|
libXt
|
||||||
libXmu
|
libXmu
|
||||||
libXext.dev
|
libXext.dev
|
||||||
libXdmcp
|
libXdmcp
|
||||||
libXinerama
|
libXinerama
|
||||||
libXrandr.dev
|
libXrandr.dev
|
||||||
libXtst
|
libXtst
|
||||||
libXfixes
|
libXfixes
|
||||||
]
|
]
|
||||||
++ lib.optional dbusSupport dbus
|
++ lib.optional dbusSupport dbus
|
||||||
++ lib.optional joystickSupport cwiid
|
++ lib.optional joystickSupport cwiid
|
||||||
++ lib.optional nfsSupport libnfs
|
++ lib.optional nfsSupport libnfs
|
||||||
++ lib.optional pulseSupport libpulseaudio
|
++ lib.optional pulseSupport libpulseaudio
|
||||||
++ lib.optional pipewireSupport pipewire
|
++ lib.optional pipewireSupport pipewire
|
||||||
++ lib.optional rtmpSupport rtmpdump
|
++ lib.optional rtmpSupport rtmpdump
|
||||||
++ lib.optional sambaSupport samba
|
++ lib.optional sambaSupport samba
|
||||||
++ lib.optional udevSupport udev
|
++ lib.optional udevSupport udev
|
||||||
++ lib.optional usbSupport libusb-compat-0_1
|
++ lib.optional usbSupport libusb-compat-0_1
|
||||||
++ lib.optional vdpauSupport libvdpau
|
++ lib.optional vdpauSupport libvdpau
|
||||||
++ lib.optionals waylandSupport [
|
++ lib.optionals waylandSupport [
|
||||||
wayland
|
wayland
|
||||||
waylandpp.dev
|
waylandpp.dev
|
||||||
wayland-protocols
|
wayland-protocols
|
||||||
# Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
|
# Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
|
||||||
libxkbcommon.dev
|
libxkbcommon.dev
|
||||||
]
|
]
|
||||||
++ lib.optionals gbmSupport [
|
++ lib.optionals gbmSupport [
|
||||||
libxkbcommon.dev
|
libxkbcommon.dev
|
||||||
libgbm
|
libgbm
|
||||||
libinput.dev
|
libinput.dev
|
||||||
libdisplay-info
|
libdisplay-info
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs =
|
||||||
cmake
|
[
|
||||||
doxygen
|
cmake
|
||||||
makeWrapper
|
doxygen
|
||||||
which
|
makeWrapper
|
||||||
pkg-config
|
which
|
||||||
autoconf
|
pkg-config
|
||||||
automake
|
autoconf
|
||||||
libtool # still needed for some components. Check if that is the case with 19.0
|
automake
|
||||||
jre_headless
|
libtool # still needed for some components. Check if that is the case with 19.0
|
||||||
yasm
|
jre_headless
|
||||||
gettext
|
yasm
|
||||||
python3Packages.python
|
gettext
|
||||||
flatbuffers
|
python3Packages.python
|
||||||
]
|
flatbuffers
|
||||||
++ lib.optionals waylandSupport [
|
]
|
||||||
wayland-protocols
|
++ lib.optionals waylandSupport [
|
||||||
waylandpp.bin
|
wayland-protocols
|
||||||
];
|
waylandpp.bin
|
||||||
|
];
|
||||||
|
|
||||||
depsBuildBuild = [
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
buildPackages.stdenv.cc
|
|
||||||
];
|
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags =
|
||||||
"-DAPP_RENDER_SYSTEM=${if gbmSupport then "gles" else "gl"}"
|
[
|
||||||
"-Dlibdvdcss_URL=${finalAttrs.libdvdcss}"
|
"-DAPP_RENDER_SYSTEM=${if gbmSupport then "gles" else "gl"}"
|
||||||
"-Dlibdvdnav_URL=${finalAttrs.libdvdnav}"
|
"-Dlibdvdcss_URL=${finalAttrs.libdvdcss}"
|
||||||
"-Dlibdvdread_URL=${finalAttrs.libdvdread}"
|
"-Dlibdvdnav_URL=${finalAttrs.libdvdnav}"
|
||||||
"-Dgroovy_SOURCE_DIR=${finalAttrs.groovy}"
|
"-Dlibdvdread_URL=${finalAttrs.libdvdread}"
|
||||||
"-Dapache-commons-lang_SOURCE_DIR=${finalAttrs.apache_commons_lang}"
|
"-Dgroovy_SOURCE_DIR=${finalAttrs.groovy}"
|
||||||
"-Dapache-commons-text_SOURCE_DIR=${finalAttrs.apache_commons_text}"
|
"-Dapache-commons-lang_SOURCE_DIR=${finalAttrs.apache_commons_lang}"
|
||||||
# Upstream derives this from the git HEADs hash and date.
|
"-Dapache-commons-text_SOURCE_DIR=${finalAttrs.apache_commons_text}"
|
||||||
# LibreElec (minimal distro for kodi) uses the equivalent to this.
|
# Upstream derives this from the git HEADs hash and date.
|
||||||
"-DGIT_VERSION=${finalAttrs.version}-${finalAttrs.kodiReleaseName}"
|
# LibreElec (minimal distro for kodi) uses the equivalent to this.
|
||||||
"-DENABLE_EVENTCLIENTS=ON"
|
"-DGIT_VERSION=${finalAttrs.version}-${finalAttrs.kodiReleaseName}"
|
||||||
"-DENABLE_INTERNAL_CROSSGUID=OFF"
|
"-DENABLE_EVENTCLIENTS=ON"
|
||||||
"-DENABLE_INTERNAL_RapidJSON=OFF"
|
"-DENABLE_INTERNAL_CROSSGUID=OFF"
|
||||||
"-DENABLE_OPTICAL=${if opticalSupport then "ON" else "OFF"}"
|
"-DENABLE_INTERNAL_RapidJSON=OFF"
|
||||||
"-DENABLE_VDPAU=${if vdpauSupport then "ON" else "OFF"}"
|
"-DENABLE_OPTICAL=${if opticalSupport then "ON" else "OFF"}"
|
||||||
"-DLIRC_DEVICE=/run/lirc/lircd"
|
"-DENABLE_VDPAU=${if vdpauSupport then "ON" else "OFF"}"
|
||||||
"-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
|
"-DLIRC_DEVICE=/run/lirc/lircd"
|
||||||
"-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
|
"-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
|
||||||
"-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python"
|
"-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
|
||||||
"-DPYTHON_LIB_PATH=${python3Packages.python.sitePackages}"
|
"-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python"
|
||||||
"-DWITH_JSONSCHEMABUILDER=${lib.getExe jsonSchemaBuilder}"
|
"-DPYTHON_LIB_PATH=${python3Packages.python.sitePackages}"
|
||||||
# When wrapped KODI_HOME will likely contain symlinks to static assets
|
"-DWITH_JSONSCHEMABUILDER=${lib.getExe jsonSchemaBuilder}"
|
||||||
# that Kodi's built in webserver will cautiously refuse to serve up
|
# When wrapped KODI_HOME will likely contain symlinks to static assets
|
||||||
# (because their realpaths are outside of KODI_HOME and the other
|
# that Kodi's built in webserver will cautiously refuse to serve up
|
||||||
# whitelisted directories). This adds the entire nix store to the Kodi
|
# (because their realpaths are outside of KODI_HOME and the other
|
||||||
# webserver whitelist to avoid this problem.
|
# whitelisted directories). This adds the entire nix store to the Kodi
|
||||||
"-DKODI_WEBSERVER_EXTRA_WHITELIST=${builtins.storeDir}"
|
# webserver whitelist to avoid this problem.
|
||||||
]
|
"-DKODI_WEBSERVER_EXTRA_WHITELIST=${builtins.storeDir}"
|
||||||
++ lib.optionals waylandSupport [
|
]
|
||||||
"-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
|
++ lib.optionals waylandSupport [
|
||||||
]
|
"-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
|
||||||
++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
]
|
||||||
"-DWITH_TEXTUREPACKER=${lib.getExe texturePacker}"
|
++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||||
];
|
"-DWITH_TEXTUREPACKER=${lib.getExe texturePacker}"
|
||||||
|
];
|
||||||
|
|
||||||
# 14 tests fail but the biggest issue is that every test takes 30 seconds -
|
# 14 tests fail but the biggest issue is that every test takes 30 seconds -
|
||||||
# I'm guessing there is a thing waiting to time out
|
# I'm guessing there is a thing waiting to time out
|
||||||
|
|||||||
Reference in New Issue
Block a user