shithub: libdvdcss

Download patch

ref: 50167f317a6c743cf3a2491835210b1fe2144837
parent: 001afc48ac34b343c4b7fee858856bf3df540cdf
author: Jerome Duval <jerome.duval@gmail.com>
date: Fri Oct 31 08:10:25 EDT 2014

Replace BeOS support by Haiku support.

Adapted from a Haiku ports packaging patch.

--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,7 @@
   * Support for Android
   * Drop support for HP-UX, Windows 9x, and Windows NT 4.0.
     Windows NT 4.0 SP4 with IE 5.0 is now required.
+  * Replace BeOS support by Haiku support.
 
 
 Changes between 1.2.12 and 1.2.13:
--- a/configure.ac
+++ b/configure.ac
@@ -138,7 +138,7 @@
   ])
 ])
 
-dnl  for Un*x and BeOS
+dnl for Unix
 AC_CHECK_HEADERS(sys/ioctl.h,[
   CAN_BUILD_LIBDVDCSS=1
   AC_CHECK_HEADERS(sys/cdio.h sys/dvdio.h linux/cdrom.h dvd.h)
--- a/libdvdcss.spec.in
+++ b/libdvdcss.spec.in
@@ -32,7 +32,7 @@
 libdvdcss is a simple library designed for accessing DVDs like a block device
 without having to bother about the decryption. The important features are:
  * Portability: Currently supported platforms are GNU/Linux, FreeBSD, NetBSD,
-   OpenBSD, BeOS, Mac OS X, Solaris, QNX, OS/2, and Windows NT 4.0 SP4 (with
+   OpenBSD, Haiku, Mac OS X, Solaris, QNX, OS/2, and Windows NT 4.0 SP4 (with
    IE 5.0) or later.
  * Adaptability: Unlike most similar projects, libdvdcss does not require the
    region of your drive to be set and will try its best to read from the disc
@@ -49,7 +49,7 @@
 libdvdcss is a simple library designed for accessing DVDs like a block device
 without having to bother about the decryption. The important features are:
  * Portability: Currently supported platforms are GNU/Linux, FreeBSD, NetBSD,
-   OpenBSD, BeOS, Mac OS X, Solaris, QNX, OS/2, and Windows NT 4.0 SP4 (with
+   OpenBSD, Haiku, Mac OS X, Solaris, QNX, OS/2, and Windows NT 4.0 SP4 (with
    IE 5.0) or later.
  * Adaptability: Unlike most similar projects, libdvdcss does not require the
    region of your drive to be set and will try its best to read from the disc
--- a/src/ioctl.c
+++ b/src/ioctl.c
@@ -64,7 +64,7 @@
 #ifdef DVD_STRUCT_IN_DVD_H
 #   include <dvd.h>
 #endif
-#ifdef __BEOS__
+#ifdef __HAIKU__
 #   include <malloc.h>
 #   include <scsi.h>
 #endif
@@ -90,7 +90,7 @@
 /*****************************************************************************
  * Local prototypes, BeOS specific
  *****************************************************************************/
-#if defined( __BEOS__ )
+#if defined( __HAIKU__ )
 static void BeInitRDC ( raw_device_command *, int );
 #endif
 
@@ -150,7 +150,7 @@
 
     *pi_copyright = dvd.cpst;
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_READ_DVD_STRUCTURE, 8 );
 
     rdc.command[ 6 ] = i_layer;
@@ -271,7 +271,7 @@
 
     memcpy( p_key, dvd.data, DVD_DISCKEY_SIZE );
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_READ_DVD_STRUCTURE, DVD_DISCKEY_SIZE + 4 );
 
     rdc.command[ 7 ]  = DVD_STRUCT_DISCKEY;
@@ -396,7 +396,7 @@
 
     memcpy( p_key, auth_info.keychal, DVD_KEY_SIZE );
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 12 );
 
     rdc.command[ 2 ] = ( i_pos >> 24 ) & 0xff;
@@ -526,7 +526,7 @@
 
     *pi_agid = auth_info.agid;
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 8 );
 
     rdc.command[ 10 ] = DVD_REPORT_AGID | (*pi_agid << 6);
@@ -624,7 +624,7 @@
 
     memcpy( p_challenge, auth_info.keychal, DVD_CHALLENGE_SIZE );
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 16 );
 
     rdc.command[ 10 ] = DVD_REPORT_CHALLENGE | (*pi_agid << 6);
@@ -732,7 +732,7 @@
 
     *pi_asf = auth_info.asf;
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 8 );
 
     rdc.command[ 10 ] = DVD_REPORT_ASF;
@@ -842,7 +842,7 @@
 
     memcpy( p_key, auth_info.keychal, DVD_KEY_SIZE );
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 12 );
 
     rdc.command[ 10 ] = DVD_REPORT_KEY1 | (*pi_agid << 6);
@@ -941,7 +941,7 @@
 
     i_ret = ioctl( i_fd, DVDIOCREPORTKEY, &auth_info );
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 0 );
 
     rdc.command[ 10 ] = DVDCSS_INVALIDATE_AGID | (*pi_agid << 6);
@@ -1028,7 +1028,7 @@
 
     i_ret = ioctl( i_fd, DVDIOCSENDKEY, &auth_info );
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_SEND_KEY, 16 );
 
     rdc.command[ 10 ] = DVD_SEND_CHALLENGE | (*pi_agid << 6);
@@ -1137,7 +1137,7 @@
 
     i_ret = ioctl( i_fd, DVDIOCSENDKEY, &auth_info );
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_SEND_KEY, 12 );
 
     rdc.command[ 10 ] = DVD_SEND_KEY2 | (*pi_agid << 6);
@@ -1252,7 +1252,7 @@
     *p_mask = auth_info.region; // ??
     *p_scheme = auth_info.rpc_scheme;
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_REPORT_KEY, 8 );
 
     rdc.command[ 10 ] = DVD_REPORT_RPC;
@@ -1348,11 +1348,11 @@
 
 /* Local prototypes */
 
-#if defined( __BEOS__ )
+#if defined( __HAIKU__ )
 /*****************************************************************************
- * BeInitRDC: initialize a RDC structure for the BeOS kernel
+ * BeInitRDC: initialize a RDC structure for the Haiku kernel
  *****************************************************************************
- * This function initializes a BeOS raw device command structure for future
+ * This function initializes a Haiku raw device command structure for future
  * use, either a read command or a write command.
  *****************************************************************************/
 static void BeInitRDC( raw_device_command *p_rdc, int i_type )
--- a/src/ioctl.h
+++ b/src/ioctl.h
@@ -44,7 +44,7 @@
 /*****************************************************************************
  * Common macro, BeOS specific
  *****************************************************************************/
-#if defined( __BEOS__ )
+#if defined( __HAIKU__ )
 #define INIT_RDC( TYPE, SIZE ) \
     raw_device_command rdc = { 0 }; \
     uint8_t p_buffer[ (SIZE)+1 ]; \
--- a/src/libdvdcss.c
+++ b/src/libdvdcss.c
@@ -30,7 +30,7 @@
  * device without having to bother about the decryption. The important features
  * are:
  * \li portability: Currently supported platforms are GNU/Linux, FreeBSD,
- *     NetBSD, OpenBSD, BeOS, Mac OS X, Solaris, QNX, OS/2, and Windows
+ *     NetBSD, OpenBSD, Haiku, Mac OS X, Solaris, QNX, OS/2, and Windows
  *     NT 4.0 SP4 (with IE 5.0) or later.
  * \li adaptability: Unlike most similar projects, libdvdcss does not require
  *     the region of your drive to be set and will try its best to read from
--- a/test/dvd_region.c
+++ b/test/dvd_region.c
@@ -59,7 +59,7 @@
 
     i_ret = ioctl( i_fd, DVDIOCSENDKEY, &auth_info );
 
-#elif defined( __BEOS__ )
+#elif defined( __HAIKU__ )
     INIT_RDC( GPCMD_SEND_KEY, 8 );
 
     rdc.command[ 10 ] = DVD_SEND_RPC;