summary refs log tree commit diff
path: root/gnu/packages/kodi.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/kodi.scm')
-rw-r--r--gnu/packages/kodi.scm59
1 files changed, 56 insertions, 3 deletions
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 4a9cebde01..5710e1fd48 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -21,6 +21,7 @@
   #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages audio)
@@ -68,18 +69,67 @@
   #:use-module (gnu packages yasm)
   #:use-module (gnu packages zip))
 
+(define-public crossguid
+  (let ((commit "8f399e8bd4252be9952f3dfa8199924cc8487ca4"))
+    (package
+      (name "crossguid")
+      (version (string-append "0.0-1." (string-take commit 7)))
+      ;; There's no official release.  Just a Git repository.
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/graeme-hill/crossguid.git")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "1i29y207qqddvaxbn39pk2fbh3gx8zvdprfp35wasj9rw2wjk3s9"))))
+      (build-system gnu-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; no configure script
+           ;; There's no build system here, so we have to do it ourselves.
+           (replace 'build
+             (lambda _
+               (and (zero? (system* "g++" "-c" "guid.cpp" "-o" "guid.o"
+                                    "-std=c++11" "-DGUID_LIBUUID"))
+                    (zero? (system* "ar" "rvs" "libcrossguid.a" "guid.o")))))
+           (replace 'check
+             (lambda _
+               (and (zero? (system* "g++" "-c" "test.cpp" "-o" "test.o"
+                                    "-std=c++11"))
+                    (zero? (system* "g++" "-c" "testmain.cpp" "-o" "testmain.o"
+                                    "-std=c++11"))
+                    (zero? (system* "g++" "test.o" "guid.o" "testmain.o"
+                                    "-o" "test" "-luuid"))
+                    (zero? (system* (string-append (getcwd) "/test"))))))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (install-file "guid.h" (string-append out "/include"))
+                 (install-file "libcrossguid.a"
+                               (string-append out "/lib"))
+                 #t))))))
+      (inputs
+       `(("util-linux" ,util-linux)))
+      (synopsis "Lightweight universal identifier library")
+      (description "CrossGuid is a minimal @acronym{GUID}/@acronym{UUID}
+generator library for C++.")
+      (home-page "https://github.com/graeme-hill/crossguid")
+      (license license:expat))))
+
 (define-public kodi
   (package
     (name "kodi")
-    (version "15.2")
+    (version "16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://mirrors.kodi.tv/releases/source/"
-                                  version "-Isengard.tar.gz"))
+                                  version "-Jarvis.tar.gz"))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "043i0f1crx9glwxil4xm45z5kxpkrx316gi4ir4d3rbd5safp2nx"))
+                "0iirspvv7czf785l2lqf232dvdaj87srbn9ni97ngvnd6w9yl884"))
               (snippet
                ;; Delete bundled ffmpeg.
                ;; TODO: Delete every other bundled library.
@@ -161,7 +211,9 @@
        ("bluez" ,bluez)
        ("boost" ,boost)
        ("bzip2" ,bzip2)
+       ("crossguid" ,crossguid)
        ("curl" ,curl)
+       ("dcadec" ,dcadec)
        ("dbus" ,dbus)
        ("enca" ,enca)
        ("eudev" ,eudev)
@@ -213,6 +265,7 @@
        ("taglib" ,taglib)
        ("tinyxml" ,tinyxml)
        ("unzip" ,unzip)
+       ("util-linux" ,util-linux)
        ("zip" ,zip)
        ("zlib" ,zlib)))
     (synopsis "Media center for home theater computers")