[Buildroot] [PATCH 01/38] package/libdvdcss: add Kodi-specific patches

Bernd Kuhls bernd.kuhls at t-online.de
Thu Feb 2 07:27:19 UTC 2017


The Kodi build system needs .a files to create
usr/lib/kodi/system/players/VideoPlayer/libdvdcss-i486-linux.so

Signed-off-by: Bernd Kuhls <bernd.kuhls at t-online.de>
---
 ...css-better-handle-partial-read-in-libc_re.patch | 49 ++++++++++++++++++++++
 ...opy-value-psz_cache-to-dvdcss-psz_cachefi.patch | 33 +++++++++++++++
 package/libdvdcss/libdvdcss.mk                     |  5 +++
 3 files changed, 87 insertions(+)
 create mode 100644 package/libdvdcss/0001-xbmc-libdvdcss-better-handle-partial-read-in-libc_re.patch
 create mode 100644 package/libdvdcss/0002-libdvdcss-Copy-value-psz_cache-to-dvdcss-psz_cachefi.patch

diff --git a/package/libdvdcss/0001-xbmc-libdvdcss-better-handle-partial-read-in-libc_re.patch b/package/libdvdcss/0001-xbmc-libdvdcss-better-handle-partial-read-in-libc_re.patch
new file mode 100644
index 000000000..4d9820642
--- /dev/null
+++ b/package/libdvdcss/0001-xbmc-libdvdcss-better-handle-partial-read-in-libc_re.patch
@@ -0,0 +1,49 @@
+From d113ac14b45961f958f4aa927c66b3c367f4637c Mon Sep 17 00:00:00 2001
+From: Voyager1 <voyager at xbmc.org>
+Date: Sat, 13 Feb 2016 20:44:21 +0100
+Subject: [PATCH 1/2] [xbmc] [libdvdcss] better handle partial read in
+ libc_read
+
+Downloaded from
+https://github.com/xbmc/libdvdcss/commit/d113ac14b45961f958f4aa927c66b3c367f4637c
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls at t-online.de>
+---
+ src/device.c | 20 ++++++++++++++------
+ 1 file changed, 14 insertions(+), 6 deletions(-)
+
+diff --git a/src/device.c b/src/device.c
+index af735e0..1936b44 100644
+--- a/src/device.c
++++ b/src/device.c
+@@ -608,13 +608,21 @@ static int libc_read ( dvdcss_t dvdcss, void *p_buffer, int i_blocks )
+     off_t i_size, i_ret, i_ret_blocks;
+ 
+     i_size = (off_t)i_blocks * (off_t)DVDCSS_BLOCK_SIZE;
+-    i_ret = read( dvdcss->i_fd, p_buffer, i_size );
+-
+-    if( i_ret < 0 )
+-    {
+-        print_error( dvdcss, "read error" );
++    i_ret = 0;
++    while (i_ret < i_size)
++    {
++      off_t i_r;
++      i_r = read(dvdcss->i_fd, ((char*)p_buffer) + i_ret, i_size - i_ret);
++      if (i_r < 0)
++      {
++        print_error(dvdcss, "read error");
+         dvdcss->i_pos = -1;
+-        return i_ret;
++        return i_r;
++      }
++      if (i_r == 0)
++        break;
++
++      i_ret += i_r;
+     }
+ 
+     i_ret_blocks = i_ret / DVDCSS_BLOCK_SIZE;
+-- 
+2.8.1
+
diff --git a/package/libdvdcss/0002-libdvdcss-Copy-value-psz_cache-to-dvdcss-psz_cachefi.patch b/package/libdvdcss/0002-libdvdcss-Copy-value-psz_cache-to-dvdcss-psz_cachefi.patch
new file mode 100644
index 000000000..4251eaf46
--- /dev/null
+++ b/package/libdvdcss/0002-libdvdcss-Copy-value-psz_cache-to-dvdcss-psz_cachefi.patch
@@ -0,0 +1,33 @@
+From 2f12236bc1c92f73c21e973363f79eb300de603f Mon Sep 17 00:00:00 2001
+From: Anton Fedchin <anightik at gmail.com>
+Date: Mon, 15 Feb 2016 16:09:35 +0300
+Subject: [PATCH 2/2] [libdvdcss] Copy value psz_cache to dvdcss->psz_cachefile
+ if it exists.
+
+Downloaded from
+https://github.com/xbmc/libdvdcss/commit/2f12236bc1c92f73c21e973363f79eb300de603f
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls at t-online.de>
+---
+ src/libdvdcss.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/libdvdcss.c b/src/libdvdcss.c
+index 2f78b78..d09d2b3 100644
+--- a/src/libdvdcss.c
++++ b/src/libdvdcss.c
+@@ -274,6 +274,11 @@ static int set_cache_directory( dvdcss_t dvdcss )
+         }
+ #endif /* ! defined( _WIN32 ) */
+     }
++    else
++    {
++      snprintf( dvdcss->psz_cachefile, PATH_MAX, "%s", psz_cache );
++      dvdcss->psz_cachefile[PATH_MAX - 1] = '\0';
++    }
+ 
+     /* Check that there is enough space for the cache directory path and the
+      * block filename. The +1s are path separators. */
+-- 
+2.8.1
+
diff --git a/package/libdvdcss/libdvdcss.mk b/package/libdvdcss/libdvdcss.mk
index 8e1c92995..6b13f3f58 100644
--- a/package/libdvdcss/libdvdcss.mk
+++ b/package/libdvdcss/libdvdcss.mk
@@ -11,4 +11,9 @@ LIBDVDCSS_INSTALL_STAGING = YES
 LIBDVDCSS_LICENSE = GPLv2+
 LIBDVDCSS_LICENSE_FILES = COPYING
 
+ifeq ($(BR2_PACKAGE_KODI),y)
+LIBDVDCSS_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -fPIC"
+LIBDVDCSS_CONF_OPTS = --enable-static
+endif
+
 $(eval $(autotools-package))
-- 
2.11.0



More information about the buildroot mailing list