Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libmirage for openSUSE:Factory checked in at 2024-10-12 13:30:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libmirage (Old) and /work/SRC/openSUSE:Factory/.libmirage.new.19354 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libmirage" Sat Oct 12 13:30:29 2024 rev:28 rq:1207350 version:3.2.9 Changes: -------- --- /work/SRC/openSUSE:Factory/libmirage/libmirage.changes 2024-08-18 18:20:37.687811629 +0200 +++ /work/SRC/openSUSE:Factory/.libmirage.new.19354/libmirage.changes 2024-10-12 13:36:10.090261522 +0200 @@ -1,0 +2,6 @@ +Fri Oct 11 21:53:04 UTC 2024 - Jan Engelhardt <jeng...@inai.de> + +- Update to release 3.2.9 + * Determine session type when parsing cuesheets + +------------------------------------------------------------------- Old: ---- libmirage-3.2.8.tar.xz New: ---- _scmsync.obsinfo libmirage-3.2.9.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libmirage.spec ++++++ --- /var/tmp/diff_new_pack.MIkvU8/_old 2024-10-12 13:36:10.518279295 +0200 +++ /var/tmp/diff_new_pack.MIkvU8/_new 2024-10-12 13:36:10.522279461 +0200 @@ -22,7 +22,7 @@ Summary: A CD-ROM image access library License: GPL-2.0-or-later Group: Development/Libraries/C and C++ -Version: 3.2.8 +Version: 3.2.9 Release: 0 URL: https://cdemu.sourceforge.io/about/libmirage/ #Git-Clone: https://github.com/cdemu/cdemu.git ++++++ _scmsync.obsinfo ++++++ mtime: 1728684732 commit: 7e2959318bc6220797c8095411db91c55bdbf308651834030891d13a187ab81b url: https://src.opensuse.org/jengelh/libmirage revision: master ++++++ libmirage-3.2.8.tar.xz -> libmirage-3.2.9.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmirage-3.2.8/CMakeLists.txt new/libmirage-3.2.9/CMakeLists.txt --- old/libmirage-3.2.8/CMakeLists.txt 2024-07-08 20:43:55.000000000 +0200 +++ new/libmirage-3.2.9/CMakeLists.txt 2024-09-17 11:48:31.000000000 +0200 @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project(libmirage VERSION 3.2.8 LANGUAGES C) +project(libmirage VERSION 3.2.9 LANGUAGES C) # Semantic versioning 2.0.0 (semver.org): # MAJOR is increased when backwards-incompatible changes are made to diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmirage-3.2.8/README new/libmirage-3.2.9/README --- old/libmirage-3.2.8/README 2024-07-08 20:43:55.000000000 +0200 +++ new/libmirage-3.2.9/README 2024-09-17 11:48:31.000000000 +0200 @@ -1,5 +1,5 @@ libMirage -3.2.8 +3.2.9 ~~~~~ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmirage-3.2.8/debian/changelog new/libmirage-3.2.9/debian/changelog --- old/libmirage-3.2.8/debian/changelog 2024-07-08 20:43:55.000000000 +0200 +++ new/libmirage-3.2.9/debian/changelog 2024-09-17 11:48:31.000000000 +0200 @@ -1,3 +1,3 @@ -libmirage (3.2.8-1) debian; urgency=low +libmirage (3.2.9-1) debian; urgency=low * Initial Release. Closes: #705409 -- Henrik Stokseth <hstok...@users.sourceforge.net> Sat, 05 Apr 2014 12:00:00 +0100 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmirage-3.2.8/images/image-cue/parser.c new/libmirage-3.2.9/images/image-cue/parser.c --- old/libmirage-3.2.8/images/image-cue/parser.c 2024-07-08 20:43:55.000000000 +0200 +++ new/libmirage-3.2.9/images/image-cue/parser.c 2024-09-17 11:48:31.000000000 +0200 @@ -120,6 +120,56 @@ return succeeded; } +static gboolean mirage_parser_cue_finish_last_session (MirageParserCue *self, GError **error) +{ + gboolean has_audio = FALSE; + gboolean has_mode1 = FALSE; + gboolean has_mode2 = FALSE; + + MIRAGE_DEBUG(self, MIRAGE_DEBUG_PARSER, "%s: finishing last session\n", __debug__); + + /* Current session needs to be set at this point */ + if (!self->priv->cur_session) { + MIRAGE_DEBUG(self, MIRAGE_DEBUG_WARNING, "%s: current session is not set!\n", __debug__); + g_set_error(error, MIRAGE_ERROR, MIRAGE_ERROR_PARSER_ERROR, Q_("Current session is not set!")); + return FALSE; + } + + gint num_tracks = mirage_session_get_number_of_tracks(self->priv->cur_session); + for (gint i = 0; i < num_tracks; i++) { + MirageTrack *track = mirage_session_get_track_by_index(self->priv->cur_session, i, NULL); + gint sector_type = mirage_track_get_sector_type(track); + + switch (sector_type) { + case MIRAGE_SECTOR_AUDIO: { + has_audio = TRUE; + break; + } + case MIRAGE_SECTOR_MODE1: { + has_mode1 = TRUE; + break; + } + case MIRAGE_SECTOR_MODE2: + case MIRAGE_SECTOR_MODE2_FORM1: + case MIRAGE_SECTOR_MODE2_FORM2: + case MIRAGE_SECTOR_MODE2_MIXED: { + has_mode2 = TRUE; + break; + } + } + } + + /* this is how cdrdao's cue2toc determine's session type */ + if (has_audio && !has_mode1 && !has_mode2) { + mirage_session_set_session_type(self->priv->cur_session, MIRAGE_SESSION_CDDA); + } else if ((has_audio && has_mode1 && !has_mode2) || (!has_audio && has_mode1 && !has_mode2)) { + mirage_session_set_session_type(self->priv->cur_session, MIRAGE_SESSION_CDROM); + } else if ((has_audio && !has_mode1 && has_mode2) || (!has_audio && !has_mode1 && has_mode2)) { + mirage_session_set_session_type(self->priv->cur_session, MIRAGE_SESSION_CDROM_XA); + } + return TRUE; +} + static gboolean mirage_parser_cue_set_new_file (MirageParserCue *self, const gchar *filename_string, const gchar *file_type, GError **error) { MIRAGE_DEBUG(self, MIRAGE_DEBUG_PARSER, "%s: new file: %s\n", __debug__, filename_string); @@ -473,6 +523,10 @@ MIRAGE_DEBUG(self, MIRAGE_DEBUG_WARNING, "%s: failed to finish last track for session previous to #%i: %s\n!", __debug__, number, local_error->message); g_error_free(local_error); } + if (!mirage_parser_cue_finish_last_session(self, &local_error)) { + MIRAGE_DEBUG(self, MIRAGE_DEBUG_WARNING, "%s: failed to finish session previous to #%i: %s\n!", __debug__, number, local_error->message); + g_error_free(local_error); + } /* Add new session, store the pointer but release the reference */ self->priv->cur_session = g_object_new(MIRAGE_TYPE_SESSION, NULL); @@ -1061,6 +1115,14 @@ succeeded = FALSE; goto end; } + + /* Finish last session */ + MIRAGE_DEBUG(self, MIRAGE_DEBUG_PARSER, "\n"); + MIRAGE_DEBUG(self, MIRAGE_DEBUG_PARSER, "%s: finishing last session in the layout\n", __debug__); + if (!mirage_parser_cue_finish_last_session(self, error)) { + succeeded = FALSE; + goto end; + } MIRAGE_DEBUG(self, MIRAGE_DEBUG_PARSER, "\n"); MIRAGE_DEBUG(self, MIRAGE_DEBUG_PARSER, "%s: finishing the layout\n", __debug__);