Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libmirage for openSUSE:Factory checked in at 2026-09-17 15:20:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libmirage (Old) and /work/SRC/openSUSE:Factory/.libmirage.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libmirage" Thu Sep 17 15:20:57 2026 rev:33 rq:1378368 version:3.3.3 Changes: -------- --- /work/SRC/openSUSE:Factory/libmirage/libmirage.changes 2026-08-15 22:41:46.766022149 +0200 +++ /work/SRC/openSUSE:Factory/.libmirage.new.383539/libmirage.changes 2026-09-17 15:22:52.493673962 +0200 @@ -1,0 +2,6 @@ +Fri Sep 4 21:48:59 UTC 2026 - Jan Engelhardt <[email protected]> + +- Update to release 3.3.3 + * libMirage: ISO image: handle High Sierra format (HSF) images + +------------------------------------------------------------------- Old: ---- libmirage-3.3.2.tar.xz New: ---- libmirage-3.3.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libmirage.spec ++++++ --- /var/tmp/diff_new_pack.YkDz1f/_old 2026-09-17 15:22:53.400711964 +0200 +++ /var/tmp/diff_new_pack.YkDz1f/_new 2026-09-17 15:22:53.404712131 +0200 @@ -19,8 +19,8 @@ Name: libmirage %define lname libmirage12 %define pname 3_3 -%define typlibver 3_2 -Version: 3.3.2 +%define typlibver 3_2 %{dnl uses its own counting, unrelated to pname} +Version: 3.3.3 Release: 0 Summary: A CD-ROM image access library License: GPL-2.0-or-later ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.YkDz1f/_old 2026-09-17 15:22:53.494715902 +0200 +++ /var/tmp/diff_new_pack.YkDz1f/_new 2026-09-17 15:22:53.501716196 +0200 @@ -1,5 +1,5 @@ -mtime: 1786774528 -commit: ba7b142563cc4a221d9d37851b1803e8b81aa4a105c073c806a6bc51c71fb1c7 +mtime: 1789564598 +commit: a4a6ef2663545992b128ddf299bc7f08704991a8ca5169a14fe7e77a6a8a1df9 url: https://src.opensuse.org/jengelh/libmirage revision: master ++++++ libmirage-3.3.2.tar.xz -> libmirage-3.3.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmirage-3.3.2/CMakeLists.txt new/libmirage-3.3.3/CMakeLists.txt --- old/libmirage-3.3.2/CMakeLists.txt 2026-06-07 18:55:04.000000000 +0200 +++ new/libmirage-3.3.3/CMakeLists.txt 2026-09-03 14:30:47.000000000 +0200 @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.16) -project(libmirage VERSION 3.3.2 LANGUAGES C) +project(libmirage VERSION 3.3.3 LANGUAGES C) # Semantic versioning 2.0.0 (semver.org): # MAJOR is increased when backwards-incompatible changes are made to @@ -212,6 +212,7 @@ CFLAGS -I${PROJECT_SOURCE_DIR} -I${PROJECT_BINARY_DIR} SYMBOL_PREFIXES mirage IDENTIFIER_PREFIXES Mirage + EXPORT_PACKAGES libmirage SOURCES ${libmirage_SOURCES} ${libmirage_HEADERS} ) endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmirage-3.3.2/README new/libmirage-3.3.3/README --- old/libmirage-3.3.2/README 2026-06-07 18:55:04.000000000 +0200 +++ new/libmirage-3.3.3/README 2026-09-03 14:30:47.000000000 +0200 @@ -1,5 +1,5 @@ libMirage -3.3.2 +3.3.3 ~~~~~ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmirage-3.3.2/cmake/GObjectIntrospection.cmake new/libmirage-3.3.3/cmake/GObjectIntrospection.cmake --- old/libmirage-3.3.2/cmake/GObjectIntrospection.cmake 2026-06-07 18:55:04.000000000 +0200 +++ new/libmirage-3.3.3/cmake/GObjectIntrospection.cmake 2026-09-03 14:30:47.000000000 +0200 @@ -67,6 +67,7 @@ COMPILER_ARGS HEADERS IDENTIFIER_PREFIXES + EXPORT_PACKAGES INCLUDES PACKAGES SCANNER_ARGS @@ -154,6 +155,10 @@ _gir_list_prefix(GIR_REAL_IDENTIFIER_PREFIXES GIR_IDENTIFIER_PREFIXES "--identifier-prefix=") endif(GIR_IDENTIFIER_PREFIXES) + if(GIR_EXPORT_PACKAGES) + _gir_list_prefix(GIR_REAL_EXPORT_PACKAGES GIR_EXPORT_PACKAGES "--pkg-export=") + endif(GIR_EXPORT_PACKAGES) + # if the user specified SYMBOL_PREFIXES we need to prefix each with --symbol-prefix= if(GIR_SYMBOL_PREFIXES) _gir_list_prefix(GIR_REAL_SYMBOL_PREFIXES GIR_SYMBOL_PREFIXES "--symbol-prefix=") @@ -195,6 +200,7 @@ ${GIR_PROGRAM} ${GIR_PROGRAM_ARGS} ${GIR_QUIET} ${GIR_VERBOSE} ${GIR_REAL_IDENTIFIER_PREFIXES} + ${GIR_REAL_EXPORT_PACKAGES} ${GIR_REAL_SYMBOL_PREFIXES} ${GIR_REAL_INCLUDES} ${GIR_REAL_PACKAGES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmirage-3.3.2/debian/appstream/net.sf.cdemu.libmirage.metainfo.xml new/libmirage-3.3.3/debian/appstream/net.sf.cdemu.libmirage.metainfo.xml --- old/libmirage-3.3.2/debian/appstream/net.sf.cdemu.libmirage.metainfo.xml 2026-06-07 18:55:04.000000000 +0200 +++ new/libmirage-3.3.3/debian/appstream/net.sf.cdemu.libmirage.metainfo.xml 2026-09-03 14:30:47.000000000 +0200 @@ -15,6 +15,9 @@ <library>libmirage.so.12</library> </provides> <releases> + <release version="3.3.3" date="2026-09-03" type="stable"> + <url>https://sourceforge.net/projects/cdemu/files/libmirage/libmirage-3.3.3.tar.xz/download</url> + </release> <release version="3.3.2" date="2026-06-07" type="stable"> <url>https://sourceforge.net/projects/cdemu/files/libmirage/libmirage-3.3.2.tar.xz/download</url> </release> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmirage-3.3.2/debian/changelog new/libmirage-3.3.3/debian/changelog --- old/libmirage-3.3.2/debian/changelog 2026-06-07 18:55:04.000000000 +0200 +++ new/libmirage-3.3.3/debian/changelog 2026-09-03 14:30:47.000000000 +0200 @@ -1,3 +1,9 @@ +libmirage (3.3.3-1) unstable; urgency=medium + + * New upstream version. + + -- Matteo Bini <[email protected]> Thu, 03 Sep 2026 14:30:00 +0200 + libmirage (3.3.2-1) unstable; urgency=medium * New upstream version. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmirage-3.3.2/debian/libmirage12.symbols new/libmirage-3.3.3/debian/libmirage12.symbols --- old/libmirage-3.3.2/debian/libmirage12.symbols 2026-06-07 18:55:04.000000000 +0200 +++ new/libmirage-3.3.3/debian/libmirage12.symbols 2026-09-03 14:30:47.000000000 +0200 @@ -115,7 +115,7 @@ mirage_fragment_read_main_data@Base 1.0.0 mirage_fragment_read_main_data_fast@Base 3.3.2 mirage_fragment_read_subchannel_data@Base 1.0.0 - mirage_fragment_read_subchannel_data_fast@Base 3.32 + mirage_fragment_read_subchannel_data_fast@Base 3.3.2 mirage_fragment_set_address@Base 1.0.0 mirage_fragment_set_length@Base 1.0.0 mirage_fragment_subchannel_data_get_filename@Base 2.0.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libmirage-3.3.2/images/image-iso/parser.c new/libmirage-3.3.3/images/image-iso/parser.c --- old/libmirage-3.3.2/images/image-iso/parser.c 2026-06-07 18:55:04.000000000 +0200 +++ new/libmirage-3.3.3/images/image-iso/parser.c 2026-09-03 14:30:47.000000000 +0200 @@ -33,6 +33,10 @@ MirageStream *stream; }; +/* High Sierra Format (HSF) patterns */ +static const guint8 pattern_hsf_lbn[8] = {0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10}; /* Value 16 encoded as 32-bit integer in both endian formats */ +static const guint8 pattern_hsf_cdrom[5] = {'C', 'D', 'R', 'O', 'M'}; + /* Nintendo ISO image patterns */ static const guint8 pattern_nintendo_gamecube_iso[4] = {0xC2, 0x33, 0x9F, 0x3D}; static const guint8 pattern_nintendo_wii_iso[4] = {0x5D, 0x1C, 0x9E, 0xA3}; @@ -146,16 +150,17 @@ continue; } - MIRAGE_DEBUG(self, MIRAGE_DEBUG_IMAGE_ID, "%s: file size check passed; looking for CD001/BEA01 pattern at sector 16...", __debug__); + MIRAGE_DEBUG(self, MIRAGE_DEBUG_IMAGE_ID, "%s: file size check passed; looking for standard patterns at sector 16...", __debug__); - /* Check for CD001 or BEA01 at sector 16 */ - guint8 buf[8]; + /* Read first 16 bytes of data for sector 16 */ + guint8 buf[16]; goffset offset = 16*full_sector_size + valid_sector_sizes[j].data_offset; - if (!mirage_parser_iso_read_data_from_offset(self, stream, offset, buf, 8, error)) { + if (!mirage_parser_iso_read_data_from_offset(self, stream, offset, buf, 16, error)) { return FALSE; } + /* Check for CD001/BEA01 pattern of ISO9660/UDF Volume Descriptor */ if (!memcmp(buf, mirage_pattern_cd001, sizeof(mirage_pattern_cd001)) || !memcmp(buf, mirage_pattern_bea01, sizeof(mirage_pattern_bea01))) { file_info->main_data_size = valid_sector_sizes[j].sector_size; @@ -164,9 +169,34 @@ MIRAGE_DEBUG(self, MIRAGE_DEBUG_IMAGE_ID, "%s: image is an ISO9660/UDF image, with %d-byte sector data and %d-byte subchannel data", __debug__, file_info->main_data_size, file_info->subchannel_data_size); return TRUE; - } else { - MIRAGE_DEBUG(self, MIRAGE_DEBUG_IMAGE_ID, "%s: CD001/BEA01 pattern not found!", __debug__); } + + /* Check for High Sierra Volume Descriptor: + * - first eight bytes are Volume Descriptor Logical Block Number (LBN), + * i.e., the 32-bit sector address (= 16), encoded in both endian formats + * (Section 10.3.3 in High Sierra spec); + * - ninth byte is Volume Descriptor Type; + * - tenth to fourteenth byte: Volume Structure Standard Identifier, + * which must be CDROM; + * - fifteenth byte: Volume Structure Standard Version, which is + * most likely always 1. + * For details, see resources at http://fileformats.archiveteam.org/wiki/High_Sierra + * + * Although we could probably assume the complete sequence of the first fifteen + * bytes (i.e., Standard File Structure Volume Descriptor with type byte set to 1, + * and standard version being 1), we check only the LBN part and the standard + * identifier part. */ + if (!memcmp(buf, pattern_hsf_lbn, sizeof(pattern_hsf_lbn)) + && !memcmp(buf + 9, pattern_hsf_cdrom, sizeof(pattern_hsf_cdrom))) { + file_info->main_data_size = valid_sector_sizes[j].sector_size; + file_info->subchannel_data_size = valid_subchannel_sizes[i]; + file_info->main_data_format = MIRAGE_MAIN_DATA_FORMAT_DATA; + + MIRAGE_DEBUG(self, MIRAGE_DEBUG_IMAGE_ID, "%s: image is a High Sierra image, with %d-byte sector data and %d-byte subchannel data", __debug__, file_info->main_data_size, file_info->subchannel_data_size); + return TRUE; + } + + MIRAGE_DEBUG(self, MIRAGE_DEBUG_IMAGE_ID, "%s: no standard patterns found!", __debug__); } }
