Hello community,

here is the log from the commit of package cdemu-daemon for openSUSE:Factory 
checked in at 2013-12-02 09:38:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cdemu-daemon (Old)
 and      /work/SRC/openSUSE:Factory/.cdemu-daemon.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cdemu-daemon"

Changes:
--------
--- /work/SRC/openSUSE:Factory/cdemu-daemon/cdemu-daemon.changes        
2013-06-11 09:25:59.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cdemu-daemon.new/cdemu-daemon.changes   
2013-12-02 09:38:32.000000000 +0100
@@ -1,0 +2,10 @@
+Sun Nov 24 11:23:28 UTC 2013 - [email protected]
+
+- Update to new upstream release 2.1.1
+* allow bad sector verification to be turned off (which is now
+  default) in order to increase device throughput
+* DPM emulation is now turned off by default as well
+* make sure that EDC and subchannel verification is never performed
+  for generated data
+
+-------------------------------------------------------------------

Old:
----
  cdemu-daemon-2.1.0.tar.bz2

New:
----
  cdemu-daemon-2.1.1.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cdemu-daemon.spec ++++++
--- /var/tmp/diff_new_pack.Z3uYT9/_old  2013-12-02 09:38:32.000000000 +0100
+++ /var/tmp/diff_new_pack.Z3uYT9/_new  2013-12-02 09:38:32.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           cdemu-daemon
-Version:        2.1.0
+Version:        2.1.1
 Release:        0
 Summary:        Device daemon for cdemu, a virtual CD-ROM device emulator
 License:        GPL-2.0+
@@ -39,7 +39,7 @@
 BuildRequires:  pkgconfig(gmodule-2.0) >= 2.28
 BuildRequires:  pkgconfig(gobject-2.0) >= 2.28
 BuildRequires:  pkgconfig(gthread-2.0) >= 2.28
-BuildRequires:  pkgconfig(libmirage) >= 2.1.0
+BuildRequires:  pkgconfig(libmirage) >= 2.1.1
 
 %description
 cdemu-daemon receives SCSI commands from kernel module thorugh the
@@ -57,11 +57,9 @@
 %patch -P 1 -p1
 
 %build
-# cdemu-daemon still uses deprecated g_thread_init, so use
-# G_DISABLE_DEPRECATED.
 cmake . -DCMAKE_INSTALL_PREFIX:PATH="%_prefix" \
        -DCMAKE_INSTALL_LIBEXECDIR:PATH="%_libexecdir" \
-       -DCMAKE_C_FLAGS:STRING="%optflags -UG_DISABLE_DEPRECATED";
+       -DCMAKE_C_FLAGS:STRING="%optflags";
 make %{?_smp_mflags};
 
 %install

++++++ cdemu-daemon-2.1.0.tar.bz2 -> cdemu-daemon-2.1.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/CMakeLists.txt 
new/cdemu-daemon-2.1.1/CMakeLists.txt
--- old/cdemu-daemon-2.1.0/CMakeLists.txt       2013-06-07 21:33:53.000000000 
+0200
+++ new/cdemu-daemon-2.1.1/CMakeLists.txt       2013-09-19 00:09:40.000000000 
+0200
@@ -4,19 +4,12 @@
 project (cdemu-daemon C)
 
 # Versioning
-set (CDEMU_DAEMON_VERSION 2.1.0)
-set (CDEMU_DAEMON_INTERFACE_VERSION 5)
+set (CDEMU_DAEMON_VERSION 2.1.1)
+set (CDEMU_DAEMON_INTERFACE_VERSION 6)
 
-# Additional CMake modules.
-list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
-
-include (CheckCSourceCompiles)
-include (CheckCCompilerFlag)
+# CMake modules
 include (GNUInstallDirs)
 
-include (Utilities)
-include (FileList)
-
 # Options
 option (SYSTEM_BUS_SERVICE "Install CDEmu daemon as D-Bus system bus service" 
off)
 option (SESSION_BUS_SERVICE "Install CDEmu daemon as D-Bus session bus 
service" on)
@@ -48,34 +41,47 @@
 )
 
 # Global definitions
-add_definitions (-std=gnu99) #NOTE: Compilation bugs out on using signals and 
-std=c99
-add_definitions (-DHAVE_CONFIG_H -DG_DISABLE_DEPRECATED)
+add_definitions (-std=c99) # We're compiling using C99
+add_definitions (-D_POSIX_C_SOURCE) # Enable POSIX extensions, which we need 
for signal handling
+add_definitions (-DHAVE_CONFIG_H)
 
 if (CMAKE_COMPILER_IS_GNUCC)
     add_definitions (-Wall -Wextra -Wshadow -Wmissing-declarations 
-Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align)
 endif ()
 
-
 # Include directories
 include_directories (${PROJECT_BINARY_DIR})
-include_directories (SYSTEM ${LIBMIRAGE_INCLUDE_DIRS})
 
-# *** cdemu-daemon ***
-add_executable (cdemu-daemon ${cdemu-daemon_SOURCES})
-target_link_libraries (cdemu-daemon ${LIBMIRAGE_LIBRARIES} ${GLIB_LIBRARIES} 
${AO_LIBRARIES})
+include_directories (SYSTEM ${LIBMIRAGE_INCLUDE_DIRS})
+include_directories (SYSTEM ${GLIB_INCLUDE_DIRS})
+include_directories (SYSTEM ${AO_INCLUDE_DIRS})
 
-list (APPEND cdemu_daemon_CFLAGS ${LIBMIRAGE_CFLAGS} ${GLIB_CFLAGS} 
${AO_CFLAGS})
-list (APPEND cdemu_daemon_LDFLAGS ${LIBMIRAGE_LDFLAGS} ${GLIB_LDFLAGS} 
${AO_LDFLAGS})
+# Link directories
+link_directories (SYSTEM ${LIBMIRAGE_LIBRARY_DIRS})
+link_directories (SYSTEM ${GLIB_LIBRARY_DIRS})
+link_directories (SYSTEM ${AO_LIBRARY_DIRS})
 
-to_list_spaces (cdemu_daemon_CFLAGS cdemu_daemon_CFLAGS_STR)
-to_list_spaces (cdemu_daemon_LDFLAGS cdemu_daemon_LDFLAGS_STR)
 
-set_target_properties (cdemu-daemon PROPERTIES
-    COMPILE_FLAGS "${cdemu_daemon_CFLAGS_STR}"
-    COMPILE_DEFINITIONS "${cdemu_daemon_DEFS}"
-    LINK_FLAGS "${cdemu_daemon_LDFLAGS_STR}"
+# *** cdemu-daemon ***
+set (cdemu-daemon_SOURCES
+    src/cdemu-audio.c
+    src/cdemu-daemon.c
+    src/cdemu-daemon-dbus.c
+    src/cdemu-device.c
+    src/cdemu-device-commands.c
+    src/cdemu-device-delay.c
+    src/cdemu-device-features.c
+    src/cdemu-device-kernel-io.c
+    src/cdemu-device-load.c
+    src/cdemu-device-mapping.c
+    src/cdemu-device-mode-pages.c
+    src/cdemu-error.c
+    src/main.c
 )
 
+add_executable (cdemu-daemon ${cdemu-daemon_SOURCES})
+target_link_libraries (cdemu-daemon ${LIBMIRAGE_LIBRARIES} ${GLIB_LIBRARIES} 
${AO_LIBRARIES})
+
 # Installation
 install (
     TARGETS cdemu-daemon
@@ -113,3 +119,17 @@
     )
 endif ()
 
+# *** Configuration summary ***
+message(STATUS "")
+message(STATUS "*** CDEmu daemon v.${CDEMU_DAEMON_VERSION} configuration 
summary ***")
+message(STATUS "Compiler and build info:")
+message(STATUS " C compiler: " ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1})
+message(STATUS " C flags (Release): " ${CMAKE_C_FLAGS} 
${CMAKE_C_FLAGS_RELEASE})
+message(STATUS " C flags (Debug): " ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG})
+message(STATUS " build type: " ${CMAKE_BUILD_TYPE})
+message(STATUS "Installation:")
+message(STATUS " install prefix: " ${CMAKE_INSTALL_PREFIX})
+message(STATUS "Options:")
+message(STATUS " system bus service: " ${SYSTEM_BUS_SERVICE})
+message(STATUS " session bus service: " ${SESSION_BUS_SERVICE})
+message(STATUS "")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/README 
new/cdemu-daemon-2.1.1/README
--- old/cdemu-daemon-2.1.0/README       2013-06-07 21:33:53.000000000 +0200
+++ new/cdemu-daemon-2.1.1/README       2013-09-19 00:09:40.000000000 +0200
@@ -1,5 +1,5 @@
 CDEmu Daemon
-2.1.0
+2.1.1
 ~~~~~
 
 
@@ -7,7 +7,7 @@
 ~~~~~~~~~~~~~~~~~~
 
 1. Introduction
-2. Userspace-cdemu suite overview
+2. CDEmu suite overview
 3. Requirements
 4. Installation and set-up
 5. Troubleshooting
@@ -25,19 +25,19 @@
 1. Introduction
 ~~~~~~~~~~~~~~~
 
-This is CDEmu daemon, the userspace daemon part of the userspace-cdemu suite, a
-free, GPL CD/DVD-ROM device emulator for linux.
+This is CDEmu daemon, the daemon part of the cdemu suite, a free, 
+GPL CD/DVD-ROM device emulator for linux.
 
-This document describes both the userspace-cdemu suit in general, and the
+This document describes both the cdemu suite in general, and the
 specifics of CDEmu daemon, such as installation quirks, troubleshooting, and
 daemon's D-BUS interface.
 
 
-2. Userspace-cdemu suite overview
+2. CDEmu suite overview
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-The whole userspace-cdemu suite is intended as a rewrite of cdemu kernel module
-and userspace utility that has been written by Robert Penz. But instead of
+The whole cdemu suite is intended as a rewrite of the cdemu kernel module
+and userspace utility that was once written by Robert Penz. But instead of
 providing only block device and linux uniform CD-ROM driver interface, CDEmu
 daemon tries to implement packet command set as specified by MMC-3 and 
INF-8090,
 thus fully emulating an optical storage device.
@@ -48,20 +48,20 @@
      block devices, but as full SCSI devices. Aside from mounting the device,
      you can use dd on it, use it with CD-player, or even copy the loaded image
      using one of linux's CD-ROM burning utilities.
- - multiple image format support: userspace-cdemu is based libMirage, an image
+ - multiple image format support: cdemu utilizes libMirage, an image
      access library, which attempts to provide unified access to various CD-ROM
      image formats (including B6T, CCD, CDI, CUE, ISO, MDS, NRG and TOC)
- - linux HAL support: userspace-cdemu devices are properly detected by HAL, 
thus
+ - linux HAL support: cdemu devices are properly detected by HAL, thus
      giving you the same benefits as with the real devices; most notable are
      automount and detection in WINE
  - debugging: both CDEmu daemon and underlying libMirage library have debugging
      code that supports changing verbosity of debug messages while daemon is
      running, making it easier to discover and fix problems.
 
-The whole userspace-cdemu suite consists of three major components:
+The whole cdemu suite consists of three major components:
  - kernel module
- - userspace daemon
- - userspace clients
+ - daemon
+ - clients
 
 2.1. Kernel module
 ~~~~~~~~~~~~~~~~~~
@@ -78,7 +78,7 @@
 The whole process is very similar to accessing real device, except that 
requests
 are passed to userspace daemon instead to hardware.
 
-Early, experimental versions of userspace-cdemu used a module that was called
+Early, experimental versions of cdemu used a module that was called
 cdemu-module. This release is based on vhba module, which was written by Chia-I
 Wu. Contrary to cdemu-module, which implemented all the interfaces (i.e. block
 device, uniform CD-ROM driver, etc.) manually, vhba implements virtual SCSI 
host
@@ -94,7 +94,7 @@
 
 Daemon implements the actual virtual device; one instance per each device
 registered by kernel module. It uses libMirage, an image access library that is
-part of userspace-cdemu suite, for the image access (e.g. sector reading).
+part of the cdemu suite, for the image access (e.g. sector reading).
 
 Daemon is controlled through methods that are exposed via D-BUS. It is written
 in C and based on GLib (and thus GObjects), but being controlled over D-BUS, it
@@ -109,7 +109,7 @@
 
 A client can be written in any language, as long as it has D-BUS bindings; it 
can
 be either a CLI or a GUI application. For illustration, two clients are 
included
-as part of userspace-cdemu:
+as part of cdemu:
  - cdemu-client: a simple CLI client
  - gcdemu: a Gtk+ based GUI
 For more information about these particular clients, consult their 
documentation.
@@ -135,19 +135,18 @@
 Please read the INSTALL file. Note however that there are some quirks one 
should
 be aware of.
 
-
-Make sure you have installed all the required libraries; GLib, D-BUS and libao
-should be provided by most of the modern distributions and should as such be
-detected properly by configure script.
-
-libMirage, which is also part of userspace-cdemu suite, is also required. If 
you
+libMirage, which is part of the cdemu suite, is also required. If you
 are building and installing it yourself, make sure that its .pc file is visible
 to pkg-config utility; if you are using /usr prefix, you should be fine, but in
 case /usr/local or something else is used and you haven't set up pkg-config to
 look there, you might need to force it to do so.
 
-For example, if libMirage was installed to /usr/local, configure would have to
-be run as "PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure".
+For example, if libMirage was installed to /usr/local, CMake would have to
+be run as this way:
+
+export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
+mkdir build && cd build
+ccmake ..
 
 VHBA module is not a build-time dependency, but it might be a good idea to have
 it installed at this point.
@@ -428,6 +427,15 @@
    - Transfer rate emulation flag. Determines whether transfer rate emulation 
is
      performed
 
+* bad-sector-emulation
+   + arguments: enabled (boolean - "b")
+   
+   - Bad sector emulation flag. Determines whether bad sector emulation is
+     performed. This involves reading sector's data, computing error detection
+     code (EDC) over it, and comparing it to stored EDC; if the two do not
+     match, sector is proclaimed as a bad one. Some copy-protection schemes
+     rely on this behavior.
+
 * device-id
    + arguments: vendor_id, product_id, revision, vendor_specific  (tuple of 
strings:  - "(ssss)"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/cmake/FileList.cmake 
new/cdemu-daemon-2.1.1/cmake/FileList.cmake
--- old/cdemu-daemon-2.1.0/cmake/FileList.cmake 2013-06-07 21:33:53.000000000 
+0200
+++ new/cdemu-daemon-2.1.1/cmake/FileList.cmake 1970-01-01 01:00:00.000000000 
+0100
@@ -1,16 +0,0 @@
-set (cdemu-daemon_SOURCES
-    src/cdemu-audio.c
-    src/cdemu-daemon.c
-    src/cdemu-daemon-dbus.c
-    src/cdemu-device.c
-    src/cdemu-device-commands.c
-    src/cdemu-device-delay.c
-    src/cdemu-device-features.c
-    src/cdemu-device-kernel-io.c
-    src/cdemu-device-load.c
-    src/cdemu-device-mapping.c
-    src/cdemu-device-mode-pages.c
-    src/cdemu-error.c
-    src/main.c
-)
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/cmake/Utilities.cmake 
new/cdemu-daemon-2.1.1/cmake/Utilities.cmake
--- old/cdemu-daemon-2.1.0/cmake/Utilities.cmake        2013-06-07 
21:33:53.000000000 +0200
+++ new/cdemu-daemon-2.1.1/cmake/Utilities.cmake        1970-01-01 
01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-# Converts a CMake list to a string containing elements separated by spaces
-function (TO_LIST_SPACES LIST_NAME OUTPUT_VAR)
-    set (NEW_LIST_SPACE)
-    foreach (ITEM ${${LIST_NAME}})
-        set (NEW_LIST_SPACE "${NEW_LIST_SPACE} ${ITEM}")
-    endforeach ()
-    string (STRIP "${NEW_LIST_SPACE}" NEW_LIST_SPACE)
-    set (${OUTPUT_VAR} "${NEW_LIST_SPACE}" PARENT_SCOPE)
-endfunction ()
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/debian/changelog 
new/cdemu-daemon-2.1.1/debian/changelog
--- old/cdemu-daemon-2.1.0/debian/changelog     2013-06-07 21:33:53.000000000 
+0200
+++ new/cdemu-daemon-2.1.1/debian/changelog     2013-09-19 00:09:40.000000000 
+0200
@@ -1,6 +1,6 @@
-cdemu-daemon (2.1.0-1ubuntu0~raring1~ppa1) raring; urgency=low
+cdemu-daemon (2.1.1-1ubuntu0~raring1~ppa1) raring; urgency=low
 
   * 01-dbus-config.diff: Patch D-BUS configuration.
   * Initial Release. Closes: (LP: #105452, LP: #184649)
 
- -- Henrik Stokseth <[email protected]>  Fri, 31 May 2013 12:00:00 +0100
+ -- Henrik Stokseth <[email protected]>  Wed, 18 Sep 2013 12:00:00 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/debian/control 
new/cdemu-daemon-2.1.1/debian/control
--- old/cdemu-daemon-2.1.0/debian/control       2013-06-07 21:33:53.000000000 
+0200
+++ new/cdemu-daemon-2.1.1/debian/control       2013-09-19 00:09:40.000000000 
+0200
@@ -4,14 +4,14 @@
 Homepage: http://cdemu.sourceforge.net/
 Maintainer: Henrik Stokseth <[email protected]>
 Build-Depends: libglib2.0-dev (>= 2.28), libao-dev (>= 0.8.0), 
- libmirage8-dev (>= 2.1.0), debhelper (>= 9), dh-apport, cmake (>= 2.8.5)
+ libmirage9-dev (>= 2.1.0), debhelper (>= 9), dh-apport, cmake (>= 2.8.5)
 Standards-Version: 3.9.4
 
 
 Package: cdemu-daemon
 Section: misc
 Architecture: any
-Depends: vhba-dkms (>= 20120422), ${shlibs:Depends}, ${misc:Depends}
+Depends: vhba-dkms (>= 20130607), ${shlibs:Depends}, ${misc:Depends}
 Description: CDEmu daemon
  This is CDEmu daemon, the daemon part of the CDEmu suite,
  a free, GPL CD/DVD-ROM device emulator for Linux.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/src/cdemu-audio.c 
new/cdemu-daemon-2.1.1/src/cdemu-audio.c
--- old/cdemu-daemon-2.1.0/src/cdemu-audio.c    2013-06-07 21:33:53.000000000 
+0200
+++ new/cdemu-daemon-2.1.1/src/cdemu-audio.c    2013-09-19 00:09:40.000000000 
+0200
@@ -151,7 +151,11 @@
 
     /* Start the playback thread; thread must be joinable, so we can wait for 
it
        to end */
+#if !GLIB_CHECK_VERSION(2, 32, 0)
     self->priv->playback_thread = 
g_thread_create((GThreadFunc)cdemu_audio_playback_thread, self, TRUE, NULL);
+#else
+    self->priv->playback_thread = g_thread_new("CDEmu Device Audio Play 
thread", (GThreadFunc)cdemu_audio_playback_thread, self);
+#endif
 }
 
 static void cdemu_audio_stop_playing (CdemuAudio *self, gint status)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/src/cdemu-audio.h 
new/cdemu-daemon-2.1.1/src/cdemu-audio.h
--- old/cdemu-daemon-2.1.0/src/cdemu-audio.h    2013-06-07 21:33:53.000000000 
+0200
+++ new/cdemu-daemon-2.1.1/src/cdemu-audio.h    2013-09-19 00:09:40.000000000 
+0200
@@ -29,7 +29,6 @@
 #define CDEMU_IS_AUDIO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), 
CDEMU_TYPE_AUDIO))
 #define CDEMU_AUDIO_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), 
CDEMU_TYPE_AUDIO, CdemuAudioClass))
 
-typedef struct _CdemuAudio        CdemuAudio;
 typedef struct _CdemuAudioClass   CdemuAudioClass;
 typedef struct _CdemuAudioPrivate CdemuAudioPrivate;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/src/cdemu-daemon.h 
new/cdemu-daemon-2.1.1/src/cdemu-daemon.h
--- old/cdemu-daemon-2.1.0/src/cdemu-daemon.h   2013-06-07 21:33:53.000000000 
+0200
+++ new/cdemu-daemon-2.1.1/src/cdemu-daemon.h   2013-09-19 00:09:40.000000000 
+0200
@@ -20,10 +20,6 @@
 #ifndef __CDEMU_DAEMON_H__
 #define __CDEMU_DAEMON_H__
 
-/* Forward declarations */
-typedef struct _CdemuDevice CdemuDevice;
-
-
 G_BEGIN_DECLS
 
 /**********************************************************************\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/src/cdemu-device-commands.c 
new/cdemu-daemon-2.1.1/src/cdemu-device-commands.c
--- old/cdemu-daemon-2.1.0/src/cdemu-device-commands.c  2013-06-07 
21:33:53.000000000 +0200
+++ new/cdemu-daemon-2.1.1/src/cdemu-device-commands.c  2013-09-19 
00:09:40.000000000 +0200
@@ -677,7 +677,7 @@
            Mode Page 1 is not enabled, we report the read error. However, my
            tests indicate this should be done only for Mode 1 or Mode 2 Form 1
            sectors */
-        if (!p_0x01->dcr) {
+        if (self->priv->bad_sector_emulation && !p_0x01->dcr) {
             gint sector_type = mirage_sector_get_sector_type(sector);
 
             if ((sector_type == MIRAGE_MODE_MODE1 || sector_type == 
MIRAGE_MODE_MODE2_FORM1)
@@ -889,7 +889,7 @@
            Mode Page 1 is not enabled, we report the read error. However, my
            tests indicate this should be done only for Mode 1 or Mode 2 Form 1
            sectors */
-        if (!p_0x01->dcr) {
+        if (self->priv->bad_sector_emulation && !p_0x01->dcr) {
             if ((sector_type == MIRAGE_MODE_MODE1 || sector_type == 
MIRAGE_MODE_MODE2_FORM1)
                 && !mirage_sector_verify_lec(sector)) {
                 CDEMU_DEBUG(self, DAEMON_DEBUG_MMC, "%s: bad sector detected, 
triggering read error!\n", __debug__);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/src/cdemu-device-private.h 
new/cdemu-daemon-2.1.1/src/cdemu-device-private.h
--- old/cdemu-daemon-2.1.0/src/cdemu-device-private.h   2013-06-07 
21:33:53.000000000 +0200
+++ new/cdemu-daemon-2.1.1/src/cdemu-device-private.h   2013-09-19 
00:09:40.000000000 +0200
@@ -22,8 +22,6 @@
 
 #define CDEMU_DEVICE_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), 
CDEMU_TYPE_DEVICE, CdemuDevicePrivate))
 
-typedef struct _CdemuCommand CdemuCommand;
-
 struct _CdemuCommand
 {
     guint8 cdb[12];
@@ -92,6 +90,7 @@
 
     gboolean dpm_emulation;
     gboolean tr_emulation;
+    gboolean bad_sector_emulation;
 
     /* Device ID */
     gchar *id_vendor_id;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/src/cdemu-device.c 
new/cdemu-daemon-2.1.1/src/cdemu-device.c
--- old/cdemu-daemon-2.1.0/src/cdemu-device.c   2013-06-07 21:33:53.000000000 
+0200
+++ new/cdemu-daemon-2.1.1/src/cdemu-device.c   2013-09-19 00:09:40.000000000 
+0200
@@ -58,7 +58,12 @@
     self->priv->device_name = g_strdup_printf("cdemu%i", number);
 
     /* Init device mutex */
+#if !GLIB_CHECK_VERSION(2, 32, 0)
     self->priv->device_mutex = g_mutex_new();
+#else
+    self->priv->device_mutex = g_new(GMutex, 1);
+    g_mutex_init(self->priv->device_mutex);
+#endif
 
     /* Create GLib main context and main loop for events */
     self->priv->main_context = g_main_context_new();
@@ -114,8 +119,9 @@
     cdemu_device_set_profile(self, PROFILE_NONE);
 
     /* Enable DPM and disable transfer rate emulation by default */
-    self->priv->dpm_emulation = TRUE;
+    self->priv->dpm_emulation = FALSE;
     self->priv->tr_emulation = FALSE;
+    self->priv->bad_sector_emulation = FALSE;
 
     return TRUE;
 }
@@ -175,6 +181,9 @@
     } else if (!g_strcmp0(option_name, "tr-emulation")) {
         /* *** tr-emulation *** */
         option_value = g_variant_new("b", self->priv->tr_emulation);
+    } else if (!g_strcmp0(option_name, "bad-sector-emulation")) {
+        /* *** bad-sector-emulation *** */
+        option_value = g_variant_new("b", self->priv->bad_sector_emulation);
     } else if (!g_strcmp0(option_name, "device-id")) {
         /* *** device-id *** */
         option_value = g_variant_new("(ssss)", self->priv->id_vendor_id, 
self->priv->id_product_id, self->priv->id_revision, 
self->priv->id_vendor_specific);
@@ -226,6 +235,14 @@
         } else {
             g_variant_get(option_value, "b", &self->priv->tr_emulation);
         }
+    } else if (!g_strcmp0(option_name, "bad-sector-emulation")) {
+        /* *** bad-sector-emulation *** */
+        if (!g_variant_is_of_type(option_value, G_VARIANT_TYPE("b"))) {
+            g_set_error(error, CDEMU_ERROR, CDEMU_ERROR_INVALID_ARGUMENT, 
"Invalid argument type for option '%s'!", option_name);
+            succeeded = FALSE;
+        } else {
+            g_variant_get(option_value, "b", 
&self->priv->bad_sector_emulation);
+        }
     } else if (!g_strcmp0(option_name, "device-id")) {
         /* *** device-id *** */
         if (!g_variant_is_of_type(option_value, G_VARIANT_TYPE("(ssss)"))) {
@@ -391,7 +408,12 @@
     g_free(self->priv->id_vendor_specific);
 
     /* Free mutex */
+#if !GLIB_CHECK_VERSION(2, 32, 0)
     g_mutex_free(self->priv->device_mutex);
+#else
+    g_mutex_clear(self->priv->device_mutex);
+    g_free(self->priv->device_mutex);
+#endif
 
     /* Chain up to the parent class */
     return G_OBJECT_CLASS(cdemu_device_parent_class)->finalize(gobject);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/src/cdemu-device.h 
new/cdemu-daemon-2.1.1/src/cdemu-device.h
--- old/cdemu-daemon-2.1.0/src/cdemu-device.h   2013-06-07 21:33:53.000000000 
+0200
+++ new/cdemu-daemon-2.1.1/src/cdemu-device.h   2013-09-19 00:09:40.000000000 
+0200
@@ -20,10 +20,6 @@
 #ifndef __CDEMU_DEVICE_H__
 #define __CDEMU_DEVICE_H__
 
-/* Forward declarations */
-typedef struct _CdemuAudio CdemuAudio;
-typedef struct _CdemuCommand CdemuCommand;
-
 
 G_BEGIN_DECLS
 
@@ -37,7 +33,6 @@
 #define CDEMU_IS_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), 
CDEMU_TYPE_DEVICE))
 #define CDEMU_DEVICE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), 
CDEMU_TYPE_DEVICE, CdemuDeviceClass))
 
-typedef struct _CdemuDevice           CdemuDevice;
 typedef struct _CdemuDeviceClass      CdemuDeviceClass;
 typedef struct _CdemuDevicePrivate    CdemuDevicePrivate;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/src/cdemu-types.h 
new/cdemu-daemon-2.1.1/src/cdemu-types.h
--- old/cdemu-daemon-2.1.0/src/cdemu-types.h    1970-01-01 01:00:00.000000000 
+0100
+++ new/cdemu-daemon-2.1.1/src/cdemu-types.h    2013-09-19 00:09:40.000000000 
+0200
@@ -0,0 +1,34 @@
+/*
+ *  CDEmu daemon: Type definitions
+ *  Copyright (C) 2013 Rok Mandeljc
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef __CDEMU_TYPES_H__
+#define __CDEMU_TYPES_H__
+
+/* For now, only definitions that are shared among several headers are
+   listed here, and the rest are kept in their corresponding headers. */
+
+G_BEGIN_DECLS
+
+typedef struct _CdemuAudio CdemuAudio;
+typedef struct _CdemuDevice CdemuDevice;
+typedef struct _CdemuCommand CdemuCommand;
+
+G_END_DECLS
+
+#endif /* __CDEMU_TYPES_H__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/src/cdemu.h 
new/cdemu-daemon-2.1.1/src/cdemu.h
--- old/cdemu-daemon-2.1.0/src/cdemu.h  2013-06-07 21:33:53.000000000 +0200
+++ new/cdemu-daemon-2.1.1/src/cdemu.h  2013-09-19 00:09:40.000000000 +0200
@@ -42,6 +42,7 @@
 
 #include <mirage.h>
 
+#include "cdemu-types.h"
 
 #include "cdemu-audio.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdemu-daemon-2.1.0/src/main.c 
new/cdemu-daemon-2.1.1/src/main.c
--- old/cdemu-daemon-2.1.0/src/main.c   2013-06-07 21:33:53.000000000 +0200
+++ new/cdemu-daemon-2.1.1/src/main.c   2013-09-19 00:09:40.000000000 +0200
@@ -76,7 +76,6 @@
     action.sa_handler = __unix_signal_handler;
     sigemptyset(&action.sa_mask);
     action.sa_flags = 0;
-    action.sa_flags |= SA_RESTART;
 
     if (sigaction(SIGTERM, &action, 0) > 0) {
         g_warning("Failed to setup unix signal sigaction for SIGTERM!");
@@ -98,9 +97,14 @@
 
\******************************************************************************/
 int main (int argc, char **argv)
 {
-    /* Glib and threading initialization */
+    /* Glib type system and threading system initialization; needed 
+       only in older glib versions */
+#if !GLIB_CHECK_VERSION(2, 36, 0)
     g_type_init();
+#endif
+#if !GLIB_CHECK_VERSION(2, 32, 0)
     g_thread_init(NULL);
+#endif
 
     /* Default log handler is local */
     g_log_set_default_handler(log_handler_stdout, NULL);

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to