summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2022-12-31 00:55:43 +0100
committerRicardo Wurmus <rekado@elephly.net>2022-12-31 00:55:43 +0100
commitdbd9305a5682b1c5cd0b2a516b09f1f3af47209d (patch)
tree45522c2fb73d2eb6a940d65d6076bb52be61f00e
parent01a2b3cce618b3b3ecb8431bba54747fe2b3377f (diff)
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.
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/kodi.scm231
-rw-r--r--gnu/packages/patches/kodi-increase-test-timeout.patch18
-rw-r--r--gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch13
-rw-r--r--gnu/packages/patches/kodi-skip-test-449.patch53
5 files changed, 129 insertions, 188 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 7c7b5c12bd..f0b1b3fd15 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1398,9 +1398,7 @@ dist_patch_DATA = \
%D%/packages/patches/kobodeluxe-manpage-minus-not-hyphen.patch \
%D%/packages/patches/kobodeluxe-midicon-segmentation-fault.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-skip-test-449.patch \
%D%/packages/patches/kwayland-skip-flaky-test.patch \
%D%/packages/patches/laby-make-install.patch \
%D%/packages/patches/ldns-drill-examples.patch \
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 18791359f2..c43f812ece 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -39,6 +40,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages cdrom)
+ #:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
@@ -55,12 +57,14 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gperf)
#:use-module (gnu packages groff)
+ #:use-module (gnu packages groovy)
#:use-module (gnu packages gnunet)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages logging)
#:use-module (gnu packages mp3)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
@@ -270,43 +274,40 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
(define-public kodi
(package
(name "kodi")
- (version "18.8")
+ (version "19.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xbmc/xbmc")
- (commit (string-append version "-Leia"))))
+ (commit (string-append version "-Matrix"))))
(file-name (git-file-name name version))
(sha256
(base32
- "0qpkpz43s207msvv3qkiy6vzqwcgmydxv3py7vc29mv6h30chrva"))
- (patches (search-patches "kodi-skip-test-449.patch"
- "kodi-increase-test-timeout.patch"
- "kodi-set-libcurl-ssl-parameters.patch"))
+ "1pfd1ajivr865h0fkpbv778626c4czrvq8650bzqv9aqzh8f36my"))
+ (patches (search-patches "kodi-set-libcurl-ssl-parameters.patch"))
+ (modules '((guix build utils)))
(snippet
'(begin
(use-modules (guix build utils))
(for-each delete-file-recursively
'("project/BuildDependencies/"
- ;; TODO: Purge these jars.
- ;;"tools/codegenerator/groovy"
- ;; And these sources:
+ "tools/codegenerator/groovy/commons-lang-2.6.jar"
+ "tools/codegenerator/groovy/groovy-all-2.4.4.jar"
+ ;; Purge these sources:
;; "tools/depend/native/JsonSchemaBuilder"
;; "tools/depend/native/TexturePacker"
- ;; "lib/gtest"
- ;; "lib/cpluff"
;; "lib/libUPnP"
"lib/libUPnP/Neptune/ThirdParty"
- "project/Win32BuildSetup/tools/7z"))
- #t))
- (modules '((guix build utils)))))
+ "project/Win32BuildSetup/tools/7z"))))))
(build-system cmake-build-system)
(arguments
'(#:modules ((srfi srfi-1)
(guix build cmake-build-system)
(guix build utils))
#:configure-flags
- (list "-DENABLE_INTERNAL_FFMPEG=OFF"
+ (list "-DCORE_PLATFORM_NAME=x11"
+ "-DAPP_RENDER_SYSTEM=gl"
+ "-DENABLE_INTERNAL_FFMPEG=OFF"
"-DENABLE_INTERNAL_CROSSGUID=OFF"
(string-append "-Dlibdvdread_URL="
(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.
(add-after 'unpack 'bootstrap-bundled-software
(lambda _
- (let ((dirs '("tools/depends/native/JsonSchemaBuilder/src"
- "lib/cpluff")))
+ (let ((dirs '("tools/depends/native/JsonSchemaBuilder/src")))
(every (lambda (third-party)
(with-directory-excursion third-party
(invoke "autoreconf" "-vif")))
dirs))))
(add-after 'bootstrap-bundled-software 'patch-stuff
(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
;; build stage. Otherwise, it would undo the bootstrapping
;; 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"
;; The libdvd* sources that we bootstrapped separately are
;; unpacked in the build phase. This is our best opportunity
;; to make them writable before the build process starts.
(("autoreconf -vif") "chmod -R u+w ."))
- (substitute* "xbmc/platform/linux/LinuxTimezone.cpp"
+ (substitute* "xbmc/platform/posix/PosixTimezone.cpp"
(("/usr/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.
;; Doing this later while in the cmake "../build" directory
;; is trickier.
- (substitute* '("xbmc/utils/test/TestSystemInfo.cpp")
+ (substitute* "xbmc/utils/test/TestSystemInfo.cpp"
(("TEST_F\\(TestSystemInfo, GetOsPrettyNameWithVersion\\)")
"TEST_F(TestSystemInfo, DISABLED_GetOsPrettyNameWithVersion)")
(("TEST_F\\(TestSystemInfo, GetOsName\\)")
"TEST_F(TestSystemInfo, DISABLED_GetOsName)")
(("TEST_F\\(TestSystemInfo, 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
(lambda _
;; Some bundled build scripts fall back to /bin/sh
;; if this is not set.
- (setenv "CONFIG_SHELL" (which "sh"))
- #t))
+ (setenv "CONFIG_SHELL" (which "sh"))))
(add-before 'check 'build-kodi-test
(lambda _
(invoke "make" "kodi-test"))))))
@@ -379,77 +389,81 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
;; - plist
;; - shairplay
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("gettext" ,gettext-minimal)
- ("icedtea" ,icedtea) ; needed at build-time only, mandatory
- ("libdvdcss-bootstrapped" ,libdvdcss/kodi)
- ("libdvdnav-bootstrapped" ,libdvdnav/kodi)
- ("libdvdread-bootstrapped" ,libdvdread/kodi)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)
- ("swig" ,swig)
- ("yasm" ,yasm)))
+ (list autoconf
+ automake
+ gettext-minimal
+ googletest
+ groovy
+ openjdk9 ;like groovy
+ java-commons-lang
+ libdvdcss/kodi
+ libdvdnav/kodi
+ libdvdread/kodi
+ libtool
+ pkg-config
+ swig
+ yasm))
(inputs
- `(("alsa-lib" ,alsa-lib)
- ("avahi" ,avahi)
- ("bluez" ,bluez)
- ("crossguid" ,crossguid)
- ("curl" ,curl)
- ("dcadec" ,dcadec)
- ("dbus" ,dbus)
- ("eudev" ,eudev)
- ("ffmpeg" ,ffmpeg-4)
- ("flac" ,flac)
- ("flatbuffers" ,flatbuffers)
- ("fmt" ,fmt-7)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("fribidi" ,fribidi)
- ("fstrcmp" ,fstrcmp)
- ("giflib" ,giflib)
- ("glew" ,glew)
- ("gnutls" ,gnutls)
- ("lame" ,lame)
- ("lcms" ,lcms)
- ("libass" ,libass)
- ("libbluray" ,libbluray)
- ("libcap" ,libcap)
- ("libcdio" ,libcdio)
- ("libdrm" ,libdrm)
- ("libgcrypt" ,libgcrypt)
- ("libjpeg" ,libjpeg-turbo)
- ("libltdl" ,libltdl)
- ("libmad" ,libmad)
- ("libmicrohttpd" ,libmicrohttpd)
- ("libmpeg2" ,libmpeg2)
- ("libnfs" ,libnfs)
- ("libogg" ,libogg)
- ("libpng" ,libpng)
- ("libssh" ,libssh)
- ("libtiff" ,libtiff)
- ("libva" ,libva)
- ("libvorbis" ,libvorbis)
- ("libxml2" ,libxml2)
- ("libxrandr" ,libxrandr)
- ("libxrender" ,libxrender)
- ("libxslt" ,libxslt)
- ("lzo" ,lzo)
- ("mariadb-dev" ,mariadb "lib")
- ("mariadb-dev" ,mariadb "dev")
- ("openssl" ,openssl)
- ("pcre" ,pcre)
- ("pulseaudio" ,pulseaudio)
- ("python" ,python-2)
- ("rapidjson" ,rapidjson)
- ("samba" ,samba)
- ("sqlite" ,sqlite)
- ("taglib" ,taglib)
- ("tinyxml" ,tinyxml)
- ("tzdata" ,tzdata)
- ("util-linux" ,util-linux)
- ("zip" ,zip)
- ("zlib" ,zlib)))
+ (list alsa-lib
+ avahi
+ bluez
+ crossguid
+ curl
+ dcadec
+ dbus
+ eudev
+ ffmpeg-4
+ flac
+ flatbuffers
+ fmt-6
+ fontconfig
+ freetype
+ fribidi
+ fstrcmp
+ giflib
+ glew
+ gnutls
+ lame
+ lcms
+ libass
+ libbluray
+ libcap
+ libcdio
+ libdrm
+ libgcrypt
+ libjpeg-turbo
+ libltdl
+ libmad
+ libmicrohttpd
+ libmpeg2
+ libnfs
+ libogg
+ libpng
+ libssh
+ libtiff
+ libva
+ libvorbis
+ libxml2
+ libxrandr
+ libxrender
+ libxslt
+ lzo
+ (list mariadb "lib")
+ (list mariadb "dev")
+ openssl
+ pcre
+ pulseaudio
+ python
+ rapidjson
+ samba
+ spdlog-for-kodi
+ sqlite
+ taglib
+ tinyxml
+ tzdata
+ util-linux
+ zip
+ zlib))
(synopsis "Media center for home theater computers")
(description "Kodi is a media center application for playing videos,
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
;; there are some other licenses spread throughout.
(license (list license:gpl2+ license:lgpl2.1+
- license:gpl3+ ;WiiRemote client
- license:expat ;cpluff, dbwrappers
- license:public-domain ;cpluff/examples
- license:bsd-3 ;misc, gtest
- license:bsd-2)))) ;xbmc/freebsd
+ license:gpl3+ ;WiiRemote client
+ license:expat ;cpluff, dbwrappers
+ license:public-domain ;cpluff/examples
+ license:bsd-3 ;misc
+ license:bsd-2)))) ;xbmc/freebsd
(define-public kodi/wayland
(package/inherit kodi
@@ -470,15 +484,14 @@ plug-in system.")
(arguments
(substitute-keyword-arguments (package-arguments kodi)
((#:configure-flags flags)
- `(append '("-DCORE_PLATFORM_NAME=wayland"
- "-DWAYLAND_RENDER_SYSTEM=gl")
- ,flags))))
+ `(cons "-DCORE_PLATFORM_NAME=wayland"
+ (delete "-DCORE_PLATFORM_NAME=x11" ,flags)))))
(inputs
- `(("libinput" ,libinput)
- ("libxkbcommon" ,libxkbcommon)
- ("waylandpp" ,waylandpp)
- ("waylandp-protocols" ,wayland-protocols)
- ,@(package-inputs kodi)))
+ (modify-inputs (package-input kodi)
+ (prepend (list libinput
+ libxkbcommon
+ waylandpp
+ wayland-protocols))))
(synopsis "Kodi with Wayland rendering backend")))
(define-public kodi-cli
diff --git a/gnu/packages/patches/kodi-increase-test-timeout.patch b/gnu/packages/patches/kodi-increase-test-timeout.patch
deleted file mode 100644
index 8fb149ff9d..0000000000
--- a/gnu/packages/patches/kodi-increase-test-timeout.patch
+++ /dev/null
@@ -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);
diff --git a/gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch b/gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch
index 2f60737e30..99d8a45de6 100644
--- a/gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch
+++ b/gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch
@@ -3,15 +3,16 @@ connections work we can set them based on SSL_CERT_DIR and SSL_CERT_FILE.
--- a/xbmc/filesystem/CurlFile.cpp
+++ b/xbmc/filesystem/CurlFile.cpp
-@@ -626,5 +626,9 @@
+@@ -626,8 +626,12 @@
if (!m_cipherlist.empty())
g_curlInterface.easy_setopt(h, CURLOPT_SSL_CIPHER_LIST, m_cipherlist.c_str());
-
+
+ // 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_CAINFO, getenv("SSL_CERT_FILE"));
+
- // 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_2_0);
--
- }
+ if (CServiceBroker::GetSettingsComponent()->GetAdvancedSettings()->m_curlDisableHTTP2)
+ 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);
diff --git a/gnu/packages/patches/kodi-skip-test-449.patch b/gnu/packages/patches/kodi-skip-test-449.patch
deleted file mode 100644
index a418239a7c..0000000000
--- a/gnu/packages/patches/kodi-skip-test-449.patch
+++ /dev/null
@@ -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
-