commit cdemu-daemon for openSUSE:Factory
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 - jengelh@inai.de + +- 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 <henrik@hshq.net> Fri, 31 May 2013 12:00:00 +0100 + -- Henrik Stokseth <henrik@hshq.net> 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 <henrik@hshq.net> 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: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de