me
/
guix
Archived
1
0
Fork 0

gnu: kodi: Update to 19.5.

* gnu/packages/kodi.scm (kodi): Update to 19.5.
[source]: Remove obsolete patches; delete bundled jars.
[arguments]: Update configure flags; adjust build phase 'patch-stuff to use
Groovy from Guix; adjust file names; remove obsolete substitutions; disable
TestCPUInfo.GetCPUFrequency test; remove trailing #T from build phases.
[native-inputs]: Drop input labels; add googletest, groovy, openjdk9, and
java-commons-lang; remove icedtea.
[inputs]: Add spdlog-for-kodi; replace fmt-7 with fmt-6 (for spdlog).
(kodi/wayland)[arguments]: Adjust configure flags.
[inputs]: Use modify-inputs.
* gnu/local.mk (dist_patch_DATA): Remove obsolete patches.
* gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch: Adjust.
* gnu/packages/patches/kodi-increase-test-timeout.patch: Remove file.
* gnu/packages/patches/kodi-skip-test-449.patch: Remove file.
master
Ricardo Wurmus 2022-12-31 00:55:43 +01:00
parent 01a2b3cce6
commit dbd9305a56
No known key found for this signature in database
GPG Key ID: 197A5888235FACAC
5 changed files with 129 additions and 188 deletions

View File

@ -1398,9 +1398,7 @@ dist_patch_DATA = \
%D%/packages/patches/kobodeluxe-manpage-minus-not-hyphen.patch \ %D%/packages/patches/kobodeluxe-manpage-minus-not-hyphen.patch \
%D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch \ %D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch \
%D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \ %D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \
%D%/packages/patches/kodi-increase-test-timeout.patch \
%D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch \ %D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch \
%D%/packages/patches/kodi-skip-test-449.patch \
%D%/packages/patches/kwayland-skip-flaky-test.patch \ %D%/packages/patches/kwayland-skip-flaky-test.patch \
%D%/packages/patches/laby-make-install.patch \ %D%/packages/patches/laby-make-install.patch \
%D%/packages/patches/ldns-drill-examples.patch \ %D%/packages/patches/ldns-drill-examples.patch \

View File

@ -6,6 +6,7 @@
;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com> ;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -39,6 +40,7 @@
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages cdrom) #:use-module (gnu packages cdrom)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake) #:use-module (gnu packages cmake)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
@ -55,12 +57,14 @@
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gperf) #:use-module (gnu packages gperf)
#:use-module (gnu packages groff) #:use-module (gnu packages groff)
#:use-module (gnu packages groovy)
#:use-module (gnu packages gnunet) #:use-module (gnu packages gnunet)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages java) #:use-module (gnu packages java)
#:use-module (gnu packages libusb) #:use-module (gnu packages libusb)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages logging)
#:use-module (gnu packages mp3) #:use-module (gnu packages mp3)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
@ -270,43 +274,40 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
(define-public kodi (define-public kodi
(package (package
(name "kodi") (name "kodi")
(version "18.8") (version "19.5")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/xbmc/xbmc") (url "https://github.com/xbmc/xbmc")
(commit (string-append version "-Leia")))) (commit (string-append version "-Matrix"))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0qpkpz43s207msvv3qkiy6vzqwcgmydxv3py7vc29mv6h30chrva")) "1pfd1ajivr865h0fkpbv778626c4czrvq8650bzqv9aqzh8f36my"))
(patches (search-patches "kodi-skip-test-449.patch" (patches (search-patches "kodi-set-libcurl-ssl-parameters.patch"))
"kodi-increase-test-timeout.patch" (modules '((guix build utils)))
"kodi-set-libcurl-ssl-parameters.patch"))
(snippet (snippet
'(begin '(begin
(use-modules (guix build utils)) (use-modules (guix build utils))
(for-each delete-file-recursively (for-each delete-file-recursively
'("project/BuildDependencies/" '("project/BuildDependencies/"
;; TODO: Purge these jars. "tools/codegenerator/groovy/commons-lang-2.6.jar"
;;"tools/codegenerator/groovy" "tools/codegenerator/groovy/groovy-all-2.4.4.jar"
;; And these sources: ;; Purge these sources:
;; "tools/depend/native/JsonSchemaBuilder" ;; "tools/depend/native/JsonSchemaBuilder"
;; "tools/depend/native/TexturePacker" ;; "tools/depend/native/TexturePacker"
;; "lib/gtest"
;; "lib/cpluff"
;; "lib/libUPnP" ;; "lib/libUPnP"
"lib/libUPnP/Neptune/ThirdParty" "lib/libUPnP/Neptune/ThirdParty"
"project/Win32BuildSetup/tools/7z")) "project/Win32BuildSetup/tools/7z"))))))
#t))
(modules '((guix build utils)))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:modules ((srfi srfi-1) '(#:modules ((srfi srfi-1)
(guix build cmake-build-system) (guix build cmake-build-system)
(guix build utils)) (guix build utils))
#:configure-flags #:configure-flags
(list "-DENABLE_INTERNAL_FFMPEG=OFF" (list "-DCORE_PLATFORM_NAME=x11"
"-DAPP_RENDER_SYSTEM=gl"
"-DENABLE_INTERNAL_FFMPEG=OFF"
"-DENABLE_INTERNAL_CROSSGUID=OFF" "-DENABLE_INTERNAL_CROSSGUID=OFF"
(string-append "-Dlibdvdread_URL=" (string-append "-Dlibdvdread_URL="
(assoc-ref %build-inputs "libdvdread-bootstrapped")) (assoc-ref %build-inputs "libdvdread-bootstrapped"))
@ -324,28 +325,36 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
;; bootstrap it on our own instead. ;; bootstrap it on our own instead.
(add-after 'unpack 'bootstrap-bundled-software (add-after 'unpack 'bootstrap-bundled-software
(lambda _ (lambda _
(let ((dirs '("tools/depends/native/JsonSchemaBuilder/src" (let ((dirs '("tools/depends/native/JsonSchemaBuilder/src")))
"lib/cpluff")))
(every (lambda (third-party) (every (lambda (third-party)
(with-directory-excursion third-party (with-directory-excursion third-party
(invoke "autoreconf" "-vif"))) (invoke "autoreconf" "-vif")))
dirs)))) dirs))))
(add-after 'bootstrap-bundled-software 'patch-stuff (add-after 'bootstrap-bundled-software 'patch-stuff
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Run groovy executable directly.
(substitute* "xbmc/interfaces/swig/CMakeLists.txt"
(("COMMAND \\$\\{Java_JAVA_EXECUTABLE\\}")
"COMMAND groovy")
(("ARGS \\$\\{JAVA_OPEN_OPTS\\} -cp \"\\$\\{classpath\\}\" groovy.ui.GroovyMain")
"ARGS -cp \"${classpath}\" ")
(("classpath \\$\\{GROOVY_DIR\\}/groovy-all-\\$\\{GROOVY_VER\\}.jar")
"classpath ")
(("\\$\\{GROOVY_DIR\\}/commons-lang-\\$\\{COMMONS_VER\\}.jar")
(search-input-file inputs "/share/java/commons-lang-2.6.jar"))
(("^set\\(GROOVY_VER.*")
(string-append "set(GROOVY_VER 3.0.5)\n")))
;; Prevent the build scripts from calling autoreconf in the ;; Prevent the build scripts from calling autoreconf in the
;; build stage. Otherwise, it would undo the bootstrapping ;; build stage. Otherwise, it would undo the bootstrapping
;; and shebang patching that we worked so hard for. ;; and shebang patching that we worked so hard for.
(substitute* "cmake/modules/FindCpluff.cmake"
(("autoreconf -vif") "true"))
(substitute* "lib/cpluff/po/Makefile.in.in"
(("/bin/sh") (which "sh")))
(substitute* "cmake/modules/FindLibDvd.cmake" (substitute* "cmake/modules/FindLibDvd.cmake"
;; The libdvd* sources that we bootstrapped separately are ;; The libdvd* sources that we bootstrapped separately are
;; unpacked in the build phase. This is our best opportunity ;; unpacked in the build phase. This is our best opportunity
;; to make them writable before the build process starts. ;; to make them writable before the build process starts.
(("autoreconf -vif") "chmod -R u+w .")) (("autoreconf -vif") "chmod -R u+w ."))
(substitute* "xbmc/platform/linux/LinuxTimezone.cpp" (substitute* "xbmc/platform/posix/PosixTimezone.cpp"
(("/usr/share/zoneinfo") (("/usr/share/zoneinfo")
(search-input-directory inputs "share/zoneinfo"))) (search-input-directory inputs "share/zoneinfo")))
@ -357,20 +366,21 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
;; Let's disable some tests that are known not to work here. ;; Let's disable some tests that are known not to work here.
;; Doing this later while in the cmake "../build" directory ;; Doing this later while in the cmake "../build" directory
;; is trickier. ;; is trickier.
(substitute* '("xbmc/utils/test/TestSystemInfo.cpp") (substitute* "xbmc/utils/test/TestSystemInfo.cpp"
(("TEST_F\\(TestSystemInfo, GetOsPrettyNameWithVersion\\)") (("TEST_F\\(TestSystemInfo, GetOsPrettyNameWithVersion\\)")
"TEST_F(TestSystemInfo, DISABLED_GetOsPrettyNameWithVersion)") "TEST_F(TestSystemInfo, DISABLED_GetOsPrettyNameWithVersion)")
(("TEST_F\\(TestSystemInfo, GetOsName\\)") (("TEST_F\\(TestSystemInfo, GetOsName\\)")
"TEST_F(TestSystemInfo, DISABLED_GetOsName)") "TEST_F(TestSystemInfo, DISABLED_GetOsName)")
(("TEST_F\\(TestSystemInfo, GetOsVersion\\)") (("TEST_F\\(TestSystemInfo, GetOsVersion\\)")
"TEST_F(TestSystemInfo, DISABLED_GetOsVersion)")) "TEST_F(TestSystemInfo, DISABLED_GetOsVersion)"))
#t)) (substitute* "xbmc/utils/test/TestCPUInfo.cpp"
(("TEST_F\\(TestCPUInfo, GetCPUFrequency\\)")
"TEST_F(TestCPUInfo, DISABLED_GetCPUFrequency)"))))
(add-before 'build 'set-build-environment (add-before 'build 'set-build-environment
(lambda _ (lambda _
;; Some bundled build scripts fall back to /bin/sh ;; Some bundled build scripts fall back to /bin/sh
;; if this is not set. ;; if this is not set.
(setenv "CONFIG_SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh"))))
#t))
(add-before 'check 'build-kodi-test (add-before 'check 'build-kodi-test
(lambda _ (lambda _
(invoke "make" "kodi-test")))))) (invoke "make" "kodi-test"))))))
@ -379,77 +389,81 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
;; - plist ;; - plist
;; - shairplay ;; - shairplay
(native-inputs (native-inputs
`(("autoconf" ,autoconf) (list autoconf
("automake" ,automake) automake
("gettext" ,gettext-minimal) gettext-minimal
("icedtea" ,icedtea) ; needed at build-time only, mandatory googletest
("libdvdcss-bootstrapped" ,libdvdcss/kodi) groovy
("libdvdnav-bootstrapped" ,libdvdnav/kodi) openjdk9 ;like groovy
("libdvdread-bootstrapped" ,libdvdread/kodi) java-commons-lang
("libtool" ,libtool) libdvdcss/kodi
("pkg-config" ,pkg-config) libdvdnav/kodi
("swig" ,swig) libdvdread/kodi
("yasm" ,yasm))) libtool
pkg-config
swig
yasm))
(inputs (inputs
`(("alsa-lib" ,alsa-lib) (list alsa-lib
("avahi" ,avahi) avahi
("bluez" ,bluez) bluez
("crossguid" ,crossguid) crossguid
("curl" ,curl) curl
("dcadec" ,dcadec) dcadec
("dbus" ,dbus) dbus
("eudev" ,eudev) eudev
("ffmpeg" ,ffmpeg-4) ffmpeg-4
("flac" ,flac) flac
("flatbuffers" ,flatbuffers) flatbuffers
("fmt" ,fmt-7) fmt-6
("fontconfig" ,fontconfig) fontconfig
("freetype" ,freetype) freetype
("fribidi" ,fribidi) fribidi
("fstrcmp" ,fstrcmp) fstrcmp
("giflib" ,giflib) giflib
("glew" ,glew) glew
("gnutls" ,gnutls) gnutls
("lame" ,lame) lame
("lcms" ,lcms) lcms
("libass" ,libass) libass
("libbluray" ,libbluray) libbluray
("libcap" ,libcap) libcap
("libcdio" ,libcdio) libcdio
("libdrm" ,libdrm) libdrm
("libgcrypt" ,libgcrypt) libgcrypt
("libjpeg" ,libjpeg-turbo) libjpeg-turbo
("libltdl" ,libltdl) libltdl
("libmad" ,libmad) libmad
("libmicrohttpd" ,libmicrohttpd) libmicrohttpd
("libmpeg2" ,libmpeg2) libmpeg2
("libnfs" ,libnfs) libnfs
("libogg" ,libogg) libogg
("libpng" ,libpng) libpng
("libssh" ,libssh) libssh
("libtiff" ,libtiff) libtiff
("libva" ,libva) libva
("libvorbis" ,libvorbis) libvorbis
("libxml2" ,libxml2) libxml2
("libxrandr" ,libxrandr) libxrandr
("libxrender" ,libxrender) libxrender
("libxslt" ,libxslt) libxslt
("lzo" ,lzo) lzo
("mariadb-dev" ,mariadb "lib") (list mariadb "lib")
("mariadb-dev" ,mariadb "dev") (list mariadb "dev")
("openssl" ,openssl) openssl
("pcre" ,pcre) pcre
("pulseaudio" ,pulseaudio) pulseaudio
("python" ,python-2) python
("rapidjson" ,rapidjson) rapidjson
("samba" ,samba) samba
("sqlite" ,sqlite) spdlog-for-kodi
("taglib" ,taglib) sqlite
("tinyxml" ,tinyxml) taglib
("tzdata" ,tzdata) tinyxml
("util-linux" ,util-linux) tzdata
("zip" ,zip) util-linux
("zlib" ,zlib))) zip
zlib))
(synopsis "Media center for home theater computers") (synopsis "Media center for home theater computers")
(description "Kodi is a media center application for playing videos, (description "Kodi is a media center application for playing videos,
music, games, etc. Kodi is highly customizable and features a theme and music, games, etc. Kodi is highly customizable and features a theme and
@ -458,11 +472,11 @@ plug-in system.")
;; XBMC is largely GPL2+, with some library components as LGPL2.1+, but ;; XBMC is largely GPL2+, with some library components as LGPL2.1+, but
;; there are some other licenses spread throughout. ;; there are some other licenses spread throughout.
(license (list license:gpl2+ license:lgpl2.1+ (license (list license:gpl2+ license:lgpl2.1+
license:gpl3+ ;WiiRemote client license:gpl3+ ;WiiRemote client
license:expat ;cpluff, dbwrappers license:expat ;cpluff, dbwrappers
license:public-domain ;cpluff/examples license:public-domain ;cpluff/examples
license:bsd-3 ;misc, gtest license:bsd-3 ;misc
license:bsd-2)))) ;xbmc/freebsd license:bsd-2)))) ;xbmc/freebsd
(define-public kodi/wayland (define-public kodi/wayland
(package/inherit kodi (package/inherit kodi
@ -470,15 +484,14 @@ plug-in system.")
(arguments (arguments
(substitute-keyword-arguments (package-arguments kodi) (substitute-keyword-arguments (package-arguments kodi)
((#:configure-flags flags) ((#:configure-flags flags)
`(append '("-DCORE_PLATFORM_NAME=wayland" `(cons "-DCORE_PLATFORM_NAME=wayland"
"-DWAYLAND_RENDER_SYSTEM=gl") (delete "-DCORE_PLATFORM_NAME=x11" ,flags)))))
,flags))))
(inputs (inputs
`(("libinput" ,libinput) (modify-inputs (package-input kodi)
("libxkbcommon" ,libxkbcommon) (prepend (list libinput
("waylandpp" ,waylandpp) libxkbcommon
("waylandp-protocols" ,wayland-protocols) waylandpp
,@(package-inputs kodi))) wayland-protocols))))
(synopsis "Kodi with Wayland rendering backend"))) (synopsis "Kodi with Wayland rendering backend")))
(define-public kodi-cli (define-public kodi-cli

View File

@ -1,18 +0,0 @@
Increase thread timeout to reduce flakiness.
Taken from upstream:
https://github.com/xbmc/xbmc/commit/574b0182d8b641fd24029f372ebdcccc897123e2
diff --git a/xbmc/threads/test/TestEvent.cpp b/xbmc/threads/test/TestEvent.cpp
index 42fb8c2fc609..40e644c0ed3c 100644
--- a/xbmc/threads/test/TestEvent.cpp
+++ b/xbmc/threads/test/TestEvent.cpp
@@ -484,7 +484,7 @@ TEST(TestEvent, GroupTimedWait)
EXPECT_TRUE(w3.result == NULL);
// this should end given the wait is for only 50 millis
- EXPECT_TRUE(waitThread3.timed_join(MILLIS(100)));
+ EXPECT_TRUE(waitThread3.timed_join(MILLIS(200)));
EXPECT_TRUE(!w3.waiting);
EXPECT_TRUE(w3.result == NULL);

View File

@ -3,15 +3,16 @@ connections work we can set them based on SSL_CERT_DIR and SSL_CERT_FILE.
--- a/xbmc/filesystem/CurlFile.cpp --- a/xbmc/filesystem/CurlFile.cpp
+++ b/xbmc/filesystem/CurlFile.cpp +++ b/xbmc/filesystem/CurlFile.cpp
@@ -626,5 +626,9 @@ @@ -626,8 +626,12 @@
if (!m_cipherlist.empty()) if (!m_cipherlist.empty())
g_curlInterface.easy_setopt(h, CURLOPT_SSL_CIPHER_LIST, m_cipherlist.c_str()); g_curlInterface.easy_setopt(h, CURLOPT_SSL_CIPHER_LIST, m_cipherlist.c_str());
+ // Load certificate data from environment paths + // Load certificate data from environment paths
+ g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_CAPATH, getenv("SSL_CERT_DIR")); + g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_CAPATH, getenv("SSL_CERT_DIR"));
+ g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_CAINFO, getenv("SSL_CERT_FILE")); + g_curlInterface.easy_setopt(m_state->m_easyHandle, CURLOPT_CAINFO, getenv("SSL_CERT_FILE"));
+ +
// enable HTTP2 support. default: CURL_HTTP_VERSION_1_1. Curl >= 7.62.0 defaults to CURL_HTTP_VERSION_2TLS if (CServiceBroker::GetSettingsComponent()->GetAdvancedSettings()->m_curlDisableHTTP2)
g_curlInterface.easy_setopt(h, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0); g_curlInterface.easy_setopt(h, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
- else
} // enable HTTP2 support. default: CURL_HTTP_VERSION_1_1. Curl >= 7.62.0 defaults to CURL_HTTP_VERSION_2TLS
g_curlInterface.easy_setopt(h, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS);

View File

@ -1,53 +0,0 @@
This test fails regularly between 18.0rc3 and 18.0rc5.2
449/520 Test #449: TestWebServer.CanHeadFile................................................***Failed 0.90 sec
Note: Google Test filter = TestWebServer.CanHeadFile
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from TestWebServer
[ RUN ] TestWebServer.CanHeadFile
/tmp/guix-build-kodi-18.0rc5.2.drv-0/kodi-18.0rc5.2-checkout/xbmc/network/test/TestWebServer.cpp:156: Failure
Expected: "4"
To be equal to: httpHeader.GetValue("Content-Length").c_str()
Which is: "0"
[ FAILED ] TestWebServer.CanHeadFile (6 ms)
[----------] 1 test from TestWebServer (6 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (635 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] TestWebServer.CanHeadFile
---
xbmc/network/test/TestWebServer.cpp | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/xbmc/network/test/TestWebServer.cpp b/xbmc/network/test/TestWebServer.cpp
index a87d9f4..b2240f4 100644
--- a/xbmc/network/test/TestWebServer.cpp
+++ b/xbmc/network/test/TestWebServer.cpp
@@ -520,13 +520,13 @@ TEST_F(TestWebServer, CanNotHeadNonExistingFile)
ASSERT_FALSE(curl.Exists(CURL(GetUrlOfTestFile("file_does_not_exist"))));
}
-TEST_F(TestWebServer, CanHeadFile)
-{
- CCurlFile curl;
- ASSERT_TRUE(curl.Exists(CURL(GetUrlOfTestFile(TEST_FILES_HTML))));
-
- CheckHtmlTestFileResponse(curl);
-}
+//TEST_F(TestWebServer, CanHeadFile)
+//{
+// CCurlFile curl;
+// ASSERT_TRUE(curl.Exists(CURL(GetUrlOfTestFile(TEST_FILES_HTML))));
+//
+// CheckHtmlTestFileResponse(curl);
+//}
TEST_F(TestWebServer, CanNotGetNonExistingFile)
{
--
2.20.1