[Pkg-opt-media-team] [dvdisaster] 07/09: Improve support for Hurd and kFreeBSD systems

Carlos Maddela maddela-guest at moszumanska.debian.org
Sun Aug 6 09:15:30 UTC 2017


This is an automated email from the git hooks/post-receive script.

maddela-guest pushed a commit to branch experimental/master
in repository dvdisaster.

commit a614f5d1f7b2c1890c40eefce88cb51b726bb110
Author: Carlos Maddela <e7appew at gmail.com>
Date:   Sun Aug 6 17:14:14 2017 +1000

    Improve support for Hurd and kFreeBSD systems
    
    Improve support for Hurd and kFreeBSD systems,
    although Hurd still builds without SCSI.
---
 debian/changelog                                   |   2 +
 debian/control                                     |   2 +
 .../31-improve-hurd-and-kfreebsd-support.patch     | 322 +++++++++++++++++++++
 debian/patches/series                              |   1 +
 debian/tests/control                               |   2 +
 debian/tests/unknown-system                        |   6 +
 6 files changed, 335 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 9d70d5d..6d112c7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,8 @@ dvdisaster (0.79.5-2) UNRELEASED; urgency=medium
   * Fix more typos in error messages and docs.
   * Fix FTBFS on Hurd and kFreeBSD.
   * Remove incorrect use of 'Origin: vendor' from DEP-3 patch headers.
+  * Improve support for Hurd and kFreeBSD systems, although Hurd still
+    builds without SCSI.
 
  -- Carlos Maddela <e7appew at gmail.com>  Sat, 05 Aug 2017 20:03:21 +1000
 
diff --git a/debian/control b/debian/control
index 7fbe1ba..09b88bb 100644
--- a/debian/control
+++ b/debian/control
@@ -9,6 +9,7 @@ Build-Depends: debhelper (>= 10),
                dpkg-dev (>= 1.16.1.1),
                gettext,
                libbz2-dev,
+               libcam-dev [kfreebsd-any],
                libgtk2.0-dev,
                libpng-dev,
                pkg-config
@@ -19,6 +20,7 @@ Standards-Version: 4.0.0
 Vcs-Browser: https://anonscm.debian.org/git/pkg-opt-media/dvdisaster.git
 Vcs-Git: https://anonscm.debian.org/git/pkg-opt-media/dvdisaster.git
 Homepage: http://dvdisaster.net/
+Testsuite: autopkgtest
 
 Package: dvdisaster
 Architecture: any
diff --git a/debian/patches/31-improve-hurd-and-kfreebsd-support.patch b/debian/patches/31-improve-hurd-and-kfreebsd-support.patch
new file mode 100644
index 0000000..6b1b24d
--- /dev/null
+++ b/debian/patches/31-improve-hurd-and-kfreebsd-support.patch
@@ -0,0 +1,322 @@
+From: Carlos Maddela <e7appew at gmail.com>
+Date: Sun, 6 Aug 2017 10:37:18 +1000
+Subject: Add better support for HURD and kFreeBSD systems.
+
+Description: Add better support for HURD and kFreeBSD systems.
+ Hurd still compiles without SCSI layer, however.
+Author: Carlos Maddela <e7appew at gmail.com>
+Last-Update: 2017-08-06
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+---
+ cacheprobe.c                 | 16 +++++++++-------
+ closure.c                    |  6 ++++--
+ rs03-create.c                |  2 +-
+ scripts/bash-based-configure | 18 ++++++++++++++++++
+ scsi-freebsd.c               |  4 ++--
+ scsi-layer.c                 | 10 ++++++----
+ scsi-layer.h                 | 17 +++++++++--------
+ scsi-unknown.c               |  4 ++--
+ show-html.c                  | 15 ++++++++++-----
+ 9 files changed, 61 insertions(+), 31 deletions(-)
+
+diff --git a/cacheprobe.c b/cacheprobe.c
+index 60c55f9..f30f5d3 100644
+--- a/cacheprobe.c
++++ b/cacheprobe.c
+@@ -22,7 +22,8 @@
+ 
+ #include "dvdisaster.h"
+ 
+-#ifdef SYS_LINUX
++#if defined(SYS_LINUX)
++
+ int ProbeCacheLineSize()
+ {  int cl_size = 0;
+ 
+@@ -36,9 +37,9 @@ int ProbeCacheLineSize()
+ 
+    return cl_size;
+ }
+-#endif
+ 
+-#ifdef SYS_FREEBSD
++#elif defined(SYS_FREEBSD) || defined(SYS_KFREEBSD)
++
+ #include <sys/param.h>
+ 
+ int ProbeCacheLineSize()
+@@ -52,9 +53,9 @@ int ProbeCacheLineSize()
+ 
+    return cl_size;
+ }
+-#endif
+ 
+-#ifdef SYS_NETBSD
++#elif defined(SYS_NETBSD)
++
+ #include <sys/param.h>
+ 
+ int ProbeCacheLineSize()
+@@ -68,13 +69,14 @@ int ProbeCacheLineSize()
+ 
+    return cl_size;
+ }
+-#endif
+ 
+-#ifdef SYS_UNKNOWN
++#else /* SYS_UNKNOWN and others. */
++
+ int ProbeCacheLineSize()
+ {
+   return 64;
+ }
++
+ #endif
+ 
+ 
+diff --git a/closure.c b/closure.c
+index 632c103..7c8b3bd 100644
+--- a/closure.c
++++ b/closure.c
+@@ -50,7 +50,8 @@ static void get_base_dirs()
+    /*** Otherwise try the installation directory. 
+ 	On Unices this is a hardcoded directory. */
+ 
+-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD) || defined(SYS_UNKNOWN)
++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
++    defined(SYS_NETBSD) || defined(SYS_HURD) || defined(SYS_UNKNOWN)
+    if(DirStat(BINDIR))
+      Closure->binDir = g_strdup(BINDIR);
+ 
+@@ -425,7 +426,8 @@ void InitClosure()
+ 
+    /* Generate a more comprehensive version string */
+ 
+-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
++    defined(SYS_NETBSD) || defined(SYS_HURD)
+   #ifdef HAVE_64BIT
+     #define BITNESS_STRING " 64bit"
+   #else
+diff --git a/rs03-create.c b/rs03-create.c
+index b14e326..7a22bae 100644
+--- a/rs03-create.c
++++ b/rs03-create.c
+@@ -43,7 +43,7 @@
+ 
+   #define MMAP_FLAGS (MAP_SHARED | MAP_POPULATE | MAP_NORESERVE)
+ 
+-#elif defined(SYS_FREEBSD)
++#elif defined(SYS_FREEBSD) || defined(SYS_KFREEBSD)
+ 
+   #define MMAP_FLAGS (MAP_SHARED | MAP_PREFAULT_READ)
+ 
+diff --git a/scripts/bash-based-configure b/scripts/bash-based-configure
+index d62f5d7..9abcf96 100644
+--- a/scripts/bash-based-configure
++++ b/scripts/bash-based-configure
+@@ -136,6 +136,15 @@ case "$cfg_uname" in
+ 	}
+ 	;;
+ 
++  GNU/kFreeBSD*) cfg_system=kfreebsd
++	CFG_SYS_OPTIONS="-DSYS_KFREEBSD"
++	CFG_SYS_NAME="-DSYS_NAME=\\\"GNU/kFreeBSD\\\""
++	CFG_EXE_SUFFIX=""
++	function add_linker_flags()
++	{  lflags_return="-L$1 -Wl,-rpath,$1 $2"
++	}
++	;;
++
+   NetBSD*) cfg_system=netbsd
+         CFG_SYS_OPTIONS="-DSYS_NETBSD"
+ 	CFG_SYS_NAME="-DSYS_NAME=\\\"NetBSD\\\""
+@@ -146,6 +155,15 @@ case "$cfg_uname" in
+ 	}
+ 	;;
+ 
++  GNU*) cfg_system=hurd
++	CFG_SYS_OPTIONS="-DSYS_HURD"
++	CFG_SYS_NAME="-DSYS_NAME=\\\"GNU/Hurd\\\""
++	CFG_EXE_SUFFIX=""
++	function add_linker_flags()
++	{  lflags_return="-L$1 -Wl,-rpath,$1 $2"
++	}
++	;;
++
+   *) cfg_system=unknown-system
+         CFG_SYS_OPTIONS="-DSYS_UNKNOWN"
+ 	CFG_SYS_NAME="-DSYS_NAME=\\\"Unknown\\\""
+diff --git a/scsi-freebsd.c b/scsi-freebsd.c
+index 78d0be4..793f206 100644
+--- a/scsi-freebsd.c
++++ b/scsi-freebsd.c
+@@ -25,7 +25,7 @@
+ #include "scsi-layer.h"
+ #include "udf.h"
+ 
+-#ifdef SYS_FREEBSD
++#if defined(SYS_FREEBSD) || defined(SYS_KFREEBSD)
+ 
+ /* SCSI wrappers for FreeBSD are still work in progress. */
+ 
+@@ -241,4 +241,4 @@ int SendPacket(DeviceHandle *dh, unsigned char *cmd, int cdb_size, unsigned char
+    return -1;
+ }
+ 
+-#endif /* SYS_FREEBSD */
++#endif /* defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) */
+diff --git a/scsi-layer.c b/scsi-layer.c
+index 515cc93..609cb73 100644
+--- a/scsi-layer.c
++++ b/scsi-layer.c
+@@ -2005,12 +2005,13 @@ static gint64 query_size(Image *image)
+  */
+ 
+ gint64 CurrentMediumSize(int get_blank_size)
+-{  Image *image;
++{
++#if defined(SYS_UNKNOWN) || defined(SYS_HURD)
++   return 0;
++#else
++   Image *image;
+    gint64 size;
+ 
+-#ifdef SYS_UNKNOWN
+-   return 0;
+-#endif
+ 
+    image = OpenImageFromDevice(Closure->device);
+    if(!image) return 0;
+@@ -2051,6 +2052,7 @@ gint64 CurrentMediumSize(int get_blank_size)
+    CloseImage(image);
+ 
+    return size;
++#endif
+ }
+ 
+ /***
+diff --git a/scsi-layer.h b/scsi-layer.h
+index cc7d9fc..0706a22 100644
+--- a/scsi-layer.h
++++ b/scsi-layer.h
+@@ -28,7 +28,7 @@
+ #include <linux/cdrom.h>
+ #endif
+ 
+-#ifdef SYS_FREEBSD
++#if defined(SYS_FREEBSD) || defined(SYS_KFREEBSD)
+ #include <camlib.h>
+ #endif
+ 
+@@ -49,19 +49,21 @@
+  * Linux already has one 
+  */
+ 
+-#ifdef SYS_LINUX
++#if defined(SYS_LINUX)
++
+ #define MAX_CDB_SIZE CDROM_PACKET_SIZE
+ 
+ /* Now globally defined for all OSes here */
+ //typedef struct request_sense Sense;
+-#endif
+ 
+-#ifdef SYS_FREEBSD
++#elif defined(SYS_FREEBSD) || defined(SYS_KFREEBSD)
++
+ #define MAX_CDB_SIZE SCSI_MAX_CDBLEN
+-#endif
+ 
+-#if defined(SYS_UNKNOWN) || defined(SYS_NETBSD)
++#else /* SYS_UNKNOWN and others. */
++
+ #define MAX_CDB_SIZE 16   /* longest possible SCSI command */
++
+ #endif
+ 
+ /* 
+@@ -101,8 +103,7 @@ typedef struct _DeviceHandle
+     */
+ #if defined(SYS_LINUX) || defined(SYS_NETBSD)
+    int fd;                    /* device file descriptor */
+-#endif
+-#ifdef SYS_FREEBSD
++#elif defined(SYS_FREEBSD) || defined(SYS_KFREEBSD)
+    struct cam_device *camdev; /* camlib device handle */
+    union ccb *ccb;
+ #endif
+diff --git a/scsi-unknown.c b/scsi-unknown.c
+index e9183f6..ef54552 100644
+--- a/scsi-unknown.c
++++ b/scsi-unknown.c
+@@ -25,7 +25,7 @@
+ #include "scsi-layer.h"
+ #include "udf.h"
+ 
+-#ifdef SYS_UNKNOWN
++#if defined(SYS_UNKNOWN) || defined(SYS_HURD)
+ 
+ /* Dummy routines so that we can compile on unknown architectures
+    for which we don't have SCSI support yet. */
+@@ -51,4 +51,4 @@ int SendPacket(DeviceHandle *dh, unsigned char *cmd, int cdb_size, unsigned char
+    return -1;
+ }
+ 
+-#endif /* SYS_UNKNOWN */
++#endif /* defined(SYS_UNKNOWN) || defined(SYS_HURD) */
+diff --git a/show-html.c b/show-html.c
+index 608e8ec..20715f4 100644
+--- a/show-html.c
++++ b/show-html.c
+@@ -21,7 +21,8 @@
+ 
+ #include "dvdisaster.h"
+ 
+-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
++    defined(SYS_NETBSD) || defined(SYS_HURD)
+ #include <sys/wait.h>
+ #endif
+ 
+@@ -34,7 +35,8 @@
+  *** Ask user to specify his browser
+  ***/
+ 
+-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
++    defined(SYS_NETBSD) || defined(SYS_HURD)
+ 
+ #define SEARCH_BUTTON 1
+ 
+@@ -173,7 +175,8 @@ static void msg_destroy_cb(GtkWidget *widget, gpointer data)
+    bi->msg = NULL; 
+ }
+ 
+-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) ||  defined(SYS_NETBSD)
++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
++    defined(SYS_NETBSD) || defined(SYS_HURD)
+ 
+ /* 
+  * The following list of browsers and html wrappers
+@@ -273,7 +276,8 @@ static gboolean browser_timeout_func(gpointer data)
+  * Invoke the browser
+  */
+ 
+-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
++    defined(SYS_NETBSD) || defined(SYS_HURD)
+ static void try_browser(browser_info *bi)
+ {  pid_t pid;
+ 
+@@ -393,7 +397,8 @@ void ShowHTML(char *target)
+    g_timeout_add(1000, browser_timeout_func, (gpointer)bi);
+ #endif
+ 
+-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
++#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
++    defined(SYS_NETBSD) || defined(SYS_HURD)
+    /* Try the first browser */
+ 
+    browser_index = 0;
diff --git a/debian/patches/series b/debian/patches/series
index 89700d5..f387f93 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -22,3 +22,4 @@
 28-fudge-pdf-doc-ids.patch
 29-fix-more-typos.patch
 30-hurd-kfreebsd-ftbfs.patch
+31-improve-hurd-and-kfreebsd-support.patch
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 0000000..e4a3ae0
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1,2 @@
+Tests: unknown-system
+Depends: dvdisaster
diff --git a/debian/tests/unknown-system b/debian/tests/unknown-system
new file mode 100755
index 0000000..470dcda
--- /dev/null
+++ b/debian/tests/unknown-system
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+set -e
+
+# Make sure we haven't built for an unknown system.
+! (dvdisaster --version | grep -qiw unknown)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-opt-media/dvdisaster.git



More information about the Pkg-opt-media-team mailing list