shithub: libdvdcss

Download patch

ref: 586bb8003decf6c5e1526b0959bb8a8a08083a10
parent: fe317f76941a21757aa416c8d5fa6e67c0b00cd5
author: Diego Biurrun <diego@biurrun.de>
date: Mon Oct 20 15:11:21 EDT 2014

Remove HP-UX support.

HP-UX is a legacy proprietary Unix with no real-world usage.

--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,7 @@
   * Drop support for Windows 98 and Windows NT 4.0.
     Windows 98 SE with IE 5.0 and Windows NT 4.0 SP4 with IE 5.0 are required.
   * Support for Android
+  * Drop support for HP-UX.
 
 
 Changes between 1.2.12 and 1.2.13:
--- a/configure.ac
+++ b/configure.ac
@@ -181,14 +181,6 @@
     AC_DEFINE(SOLARIS_USCSI, 1, Have userspace SCSI headers.)
   ])
   dnl
-  dnl HP-UX: sys/scsi.h
-  dnl
-  AC_CHECK_HEADER(sys/scsi.h,[
-    AC_EGREP_HEADER(sctl_io,sys/scsi.h,[
-      AC_DEFINE(HPUX_SCTL_IO, 1, Define if <sys/scsi.h> defines sctl_io.)
-    ])
-  ])
-  dnl
   dnl Darwin
   dnl
   AC_CHECK_HEADER(IOKit/storage/IODVDMediaBSDClient.h,[
--- a/libdvdcss.spec.in
+++ b/libdvdcss.spec.in
@@ -32,8 +32,8 @@
 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, HP-UX, OS/2, Windows 98 SE
-   (with IE 5.0) or later, and Windows NT 4.0 (with IE 5.0) or later.
+   OpenBSD, BeOS, Mac OS X, Solaris, OS/2, Windows 98 SE (with IE 5.0) or
+   later, and Windows NT 4.0 (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
    even in the case of a region mismatch.
@@ -49,8 +49,8 @@
 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, HP-UX, OS/2, Windows 98 SE
-   (with IE 5.0) or later, and Windows NT 4.0 (with IE 5.0) or later.
+   OpenBSD, BeOS, Mac OS X, Solaris, OS/2, Windows 98 SE (with IE 5.0) or
+   later, and Windows NT 4.0 (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
    even in the case of a region mismatch.
--- a/msvc/config.h
+++ b/msvc/config.h
@@ -27,7 +27,6 @@
 #define HAVE_WINDOWS_H 1
 #define HAVE_WINIOCTL_H 1
 /* #undef HAVE__SYS_DEV_SCSI_SCSI_IOCTL_H */
-/* #undef HPUX_SCTL_IO */
 #define PACKAGE "libdvdcss"
 #define PACKAGE_BUGREPORT ""
 #define PACKAGE_NAME "libdvdcss"
--- a/src/ioctl.c
+++ b/src/ioctl.c
@@ -68,9 +68,6 @@
 #   include <malloc.h>
 #   include <scsi.h>
 #endif
-#ifdef HPUX_SCTL_IO
-#   include <sys/scsi.h>
-#endif
 #ifdef SOLARIS_USCSI
 #   include <dlfcn.h>
 #   include <unistd.h>
@@ -98,13 +95,6 @@
 #endif
 
 /*****************************************************************************
- * Local prototypes, HP-UX specific
- *****************************************************************************/
-#if defined( HPUX_SCTL_IO )
-static void HPUXInitSCTL ( struct sctl_io *sctl_io, int i_type );
-#endif
-
-/*****************************************************************************
  * Local prototypes, Solaris specific
  *****************************************************************************/
 #if defined( SOLARIS_USCSI )
@@ -172,16 +162,6 @@
 
     *pi_copyright = p_buffer[ 4 ];
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_READ_DVD_STRUCTURE, 8 );
-
-    sctl_io.cdb[ 6 ] = i_layer;
-    sctl_io.cdb[ 7 ] = DVD_STRUCT_COPYRIGHT;
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
-    *pi_copyright = p_buffer[ 4 ];
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_READ_DVD_STRUCTURE, 8 );
 
@@ -322,21 +302,6 @@
 
     memcpy( p_key, p_buffer + 4, DVD_DISCKEY_SIZE );
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_READ_DVD_STRUCTURE, DVD_DISCKEY_SIZE + 4 );
-
-    sctl_io.cdb[ 7 ]  = DVD_STRUCT_DISCKEY;
-    sctl_io.cdb[ 10 ] = *pi_agid << 6;
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
-    if( i_ret < 0 )
-    {
-        return i_ret;
-    }
-
-    memcpy( p_key, p_buffer + 4, DVD_DISCKEY_SIZE );
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_READ_DVD_STRUCTURE, DVD_DISCKEY_SIZE + 4 );
 
@@ -479,19 +444,6 @@
 
     memcpy( p_key, p_buffer + 5, DVD_KEY_SIZE );
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_REPORT_KEY, 12 );
-
-    sctl_io.cdb[ 2 ] = ( i_pos >> 24 ) & 0xff;
-    sctl_io.cdb[ 3 ] = ( i_pos >> 16 ) & 0xff;
-    sctl_io.cdb[ 4 ] = ( i_pos >>  8 ) & 0xff;
-    sctl_io.cdb[ 5 ] = ( i_pos       ) & 0xff;
-    sctl_io.cdb[ 10 ] = DVD_REPORT_TITLE_KEY | (*pi_agid << 6);
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
-    memcpy( p_key, p_buffer + 5, DVD_KEY_SIZE );
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_REPORT_KEY, 12 );
 
@@ -635,15 +587,6 @@
 
     *pi_agid = p_buffer[ 7 ] >> 6;
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_REPORT_KEY, 8 );
-
-    sctl_io.cdb[ 10 ] = DVD_REPORT_AGID | (*pi_agid << 6);
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
-    *pi_agid = p_buffer[ 7 ] >> 6;
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_REPORT_KEY, 8 );
 
@@ -755,15 +698,6 @@
 
     memcpy( p_challenge, p_buffer + 4, DVD_CHALLENGE_SIZE );
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_REPORT_KEY, 16 );
-
-    sctl_io.cdb[ 10 ] = DVD_REPORT_CHALLENGE | (*pi_agid << 6);
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
-    memcpy( p_challenge, p_buffer + 4, DVD_CHALLENGE_SIZE );
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_REPORT_KEY, 16 );
 
@@ -885,15 +819,6 @@
 
     *pi_asf = p_buffer[ 7 ] & 1;
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_REPORT_KEY, 8 );
-
-    sctl_io.cdb[ 10 ] = DVD_REPORT_ASF;
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
-    *pi_asf = p_buffer[ 7 ] & 1;
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_REPORT_KEY, 8 );
 
@@ -1017,15 +942,6 @@
 
     memcpy( p_key, p_buffer + 4, DVD_KEY_SIZE );
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_REPORT_KEY, 12 );
-
-    sctl_io.cdb[ 10 ] = DVD_REPORT_KEY1 | (*pi_agid << 6);
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
-    memcpy( p_key, p_buffer + 4, DVD_KEY_SIZE );
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_REPORT_KEY, 12 );
 
@@ -1136,13 +1052,6 @@
 
     i_ret = ioctl( i_fd, B_RAW_DEVICE_COMMAND, &rdc, sizeof(rdc) );
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_REPORT_KEY, 0 );
-
-    sctl_io.cdb[ 10 ] = DVDCSS_INVALIDATE_AGID | (*pi_agid << 6);
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_REPORT_KEY, 0 );
 
@@ -1252,16 +1161,6 @@
 
     i_ret = ioctl( i_fd, B_RAW_DEVICE_COMMAND, &rdc, sizeof(rdc) );
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_SEND_KEY, 16 );
-
-    sctl_io.cdb[ 10 ] = DVD_SEND_CHALLENGE | (*pi_agid << 6);
-
-    p_buffer[ 1 ] = 0xe;
-    memcpy( p_buffer + 4, p_challenge, DVD_CHALLENGE_SIZE );
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_SEND_KEY, 16 );
 
@@ -1385,16 +1284,6 @@
 
     i_ret = ioctl( i_fd, B_RAW_DEVICE_COMMAND, &rdc, sizeof(rdc) );
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_SEND_KEY, 12 );
-
-    sctl_io.cdb[ 10 ] = DVD_SEND_KEY2 | (*pi_agid << 6);
-
-    p_buffer[ 1 ] = 0xa;
-    memcpy( p_buffer + 4, p_key, DVD_KEY_SIZE );
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_SEND_KEY, 12 );
 
@@ -1525,17 +1414,6 @@
     *p_mask = p_buffer[ 5 ];
     *p_scheme = p_buffer[ 6 ];
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_REPORT_KEY, 8 );
-
-    sctl_io.cdb[ 10 ] = DVD_REPORT_RPC;
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
-    *p_type = p_buffer[ 4 ] >> 6;
-    *p_mask = p_buffer[ 5 ];
-    *p_scheme = p_buffer[ 6 ];
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_REPORT_KEY, 8 );
 
@@ -1666,39 +1544,6 @@
     p_rdc->sense_data_length = 0;
 
     p_rdc->timeout           = 1000000;
-}
-#endif
-
-#if defined( HPUX_SCTL_IO )
-/*****************************************************************************
- * HPUXInitSCTL: initialize a sctl_io structure for the HP-UX kernel
- *****************************************************************************
- * This function initializes a HP-UX command structure for future
- * use, either a read command or a write command.
- *****************************************************************************/
-static void HPUXInitSCTL( struct sctl_io *sctl_io, int i_type )
-{
-    memset( sctl_io->data, 0, sctl_io->data_length );
-
-    switch( i_type )
-    {
-        case GPCMD_SEND_KEY:
-            /* leave the flags to 0 */
-            break;
-
-        case GPCMD_READ_DVD_STRUCTURE:
-        case GPCMD_REPORT_KEY:
-            sctl_io->flags = SCTL_READ;
-            break;
-    }
-
-    sctl_io->cdb[ 0 ]        = i_type;
-
-    sctl_io->cdb[ 8 ]        = (sctl_io->data_length >> 8) & 0xff;
-    sctl_io->cdb[ 9 ]        =  sctl_io->data_length       & 0xff;
-    sctl_io->cdb_length      = 12;
-
-    sctl_io->max_msecs       = 1000000;
 }
 #endif
 
--- a/src/ioctl.h
+++ b/src/ioctl.h
@@ -54,18 +54,6 @@
 #endif
 
 /*****************************************************************************
- * Common macro, HP-UX specific
- *****************************************************************************/
-#if defined( HPUX_SCTL_IO )
-#define INIT_SCTL_IO( TYPE, SIZE ) \
-    struct sctl_io sctl_io = { 0 }; \
-    uint8_t p_buffer[ (SIZE)+1 ]; \
-    sctl_io.data = (void *)p_buffer; \
-    sctl_io.data_length = (SIZE); \
-    HPUXInitSCTL( &sctl_io, (TYPE) );
-#endif
-
-/*****************************************************************************
  * Common macro, Solaris specific
  *****************************************************************************/
 #if defined( SOLARIS_USCSI )
--- 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, HP-UX, OS/2, Windows 98 SE
+ *     NetBSD, OpenBSD, BeOS, Mac OS X, Solaris, OS/2, Windows 98 SE
  *     (with IE 5.0) or later, and Windows NT 4.0 (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
@@ -65,16 +65,6 @@
 
     i_ret = ioctl( i_fd, B_RAW_DEVICE_COMMAND, &rdc, sizeof(rdc) );
 
-#elif defined( HPUX_SCTL_IO )
-    INIT_SCTL_IO( GPCMD_SEND_KEY, 8 );
-
-    sctl_io.cdb[ 10 ] = DVD_SEND_RPC;
-
-    p_buffer[ 1 ] = 6;
-    p_buffer[ 4 ] = i_pdrc;
-
-    i_ret = ioctl( i_fd, SIOC_IO, &sctl_io );
-
 #elif defined( SOLARIS_USCSI )
     INIT_USCSI( GPCMD_SEND_KEY, 8 );