Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package taglib for openSUSE:Factory checked 
in at 2026-01-15 16:43:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/taglib (Old)
 and      /work/SRC/openSUSE:Factory/.taglib.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "taglib"

Thu Jan 15 16:43:47 2026 rev:69 rq:1327233 version:2.1.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/taglib/taglib.changes    2025-09-26 
22:24:44.090547917 +0200
+++ /work/SRC/openSUSE:Factory/.taglib.new.1928/taglib.changes  2026-01-15 
16:44:06.594928784 +0100
@@ -1,0 +2,12 @@
+Tue Jan 13 01:17:21 UTC 2026 - Stefan BrĂ¼ns <[email protected]>
+
+- Fix writing of Vorbis comment for FLAC in Ogg, add patches:
+  * 0001-Do-not-warn-when-seeing-FLAC-picture-block-in-Ogg-fi.patch
+  * 0002-Set-last-header-flag-in-FLAC-Metadata-block-type-fie.patch
+  * 0003-Avoid-corrupting-an-invalid-FLAC-Ogg-file-without-Vo.patch
+  * 0004-Fix-reading-of-last-page-in-ogg-stream.patch
+- Remove obsolete library dependency, obsolete with SOVERSION bump.
+- Remove long obsolete susehelp fragments, drop corresponding
+  taglib.desktop file, remove deprecated update-desktop-file.
+
+-------------------------------------------------------------------

Old:
----
  taglib.desktop

New:
----
  0001-Do-not-warn-when-seeing-FLAC-picture-block-in-Ogg-fi.patch
  0002-Set-last-header-flag-in-FLAC-Metadata-block-type-fie.patch
  0003-Avoid-corrupting-an-invalid-FLAC-Ogg-file-without-Vo.patch
  0004-Fix-reading-of-last-page-in-ogg-stream.patch

----------(New B)----------
  New:- Fix writing of Vorbis comment for FLAC in Ogg, add patches:
  * 0001-Do-not-warn-when-seeing-FLAC-picture-block-in-Ogg-fi.patch
  * 0002-Set-last-header-flag-in-FLAC-Metadata-block-type-fie.patch
  New:  * 0001-Do-not-warn-when-seeing-FLAC-picture-block-in-Ogg-fi.patch
  * 0002-Set-last-header-flag-in-FLAC-Metadata-block-type-fie.patch
  * 0003-Avoid-corrupting-an-invalid-FLAC-Ogg-file-without-Vo.patch
  New:  * 0002-Set-last-header-flag-in-FLAC-Metadata-block-type-fie.patch
  * 0003-Avoid-corrupting-an-invalid-FLAC-Ogg-file-without-Vo.patch
  * 0004-Fix-reading-of-last-page-in-ogg-stream.patch
  New:  * 0003-Avoid-corrupting-an-invalid-FLAC-Ogg-file-without-Vo.patch
  * 0004-Fix-reading-of-last-page-in-ogg-stream.patch
- Remove obsolete library dependency, obsolete with SOVERSION bump.
----------(New E)----------

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

Other differences:
------------------
++++++ taglib.spec ++++++
--- /var/tmp/diff_new_pack.FWLvAL/_old  2026-01-15 16:44:07.686974261 +0100
+++ /var/tmp/diff_new_pack.FWLvAL/_new  2026-01-15 16:44:07.686974261 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package taglib
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -34,26 +34,23 @@
 Group:          Productivity/Multimedia/Other
 URL:            https://taglib.github.io/
 Source0:        https://taglib.github.io/releases/taglib-%{version}.tar.gz
-Source1:        %{sname}.desktop
 Source100:      baselibs.conf
 Patch1:         taglib-utf8cpp-include.patch
-BuildRequires:  cmake >= 2.8
+Patch2:         0001-Do-not-warn-when-seeing-FLAC-picture-block-in-Ogg-fi.patch
+Patch3:         0002-Set-last-header-flag-in-FLAC-Metadata-block-type-fie.patch
+Patch4:         0003-Avoid-corrupting-an-invalid-FLAC-Ogg-file-without-Vo.patch
+Patch5:         0004-Fix-reading-of-last-page-in-ogg-stream.patch
+BuildRequires:  cmake >= 3.5
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
 BuildRequires:  pkgconfig
 BuildRequires:  cmake(utf8cpp)
 BuildRequires:  pkgconfig(zlib)
-# NOTE: The tagreader and writer executables give different results when built 
with
-# an earlier taglib-1.8-ds-rusxmms patch. See bnc#814814
-Requires:       libtag2 >= %{version}-%{release}
-Requires:       libtag_c2 >= %{version}-%{release}
 %if %{with tests}
 BuildRequires:  doxygen
 BuildRequires:  ghostscript-fonts-std
 BuildRequires:  graphviz-gd
 BuildRequires:  libcppunit-devel
-BuildRequires:  pkgconfig
-BuildRequires:  update-desktop-files
 %endif
 
 %description
@@ -61,7 +58,8 @@
 audio formats. Currently it supports both ID3v1 and ID3v2 for MP3 files, Ogg
 Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC, Speex, WavPack
 TrueAudio, WAV, AIFF, MP4 and ASF files.
-This package contains built examples which manipulate tags from the
+
+This package contains built examples to read and write tags from the
 command line.
 
 %package -n libtag2
@@ -93,8 +91,8 @@
 License:        LGPL-2.1-or-later
 Group:          Development/Libraries/C and C++
 Requires:       libstdc++-devel
-Requires:       libtag2 >= %{version}-%{release}
-Requires:       libtag_c2 >= %{version}-%{release}
+Requires:       libtag2 = %{version}-%{release}
+Requires:       libtag_c2 = %{version}-%{release}
 Requires:       zlib-devel
 # taglib-devel was last used in openSUSE 11.4 (taglib-devel-1.6.2)
 # The last taglib-devel used was version 1.6.3 from multimedia:libs.
@@ -137,12 +135,6 @@
 
 %install
 %if %{with tests}
-# install susehelp file
-mkdir -p %{buildroot}%{_datadir}/susehelp/meta/Development/Libraries/
-install -pm 0644 %{SOURCE1} 
%{buildroot}%{_datadir}/susehelp/meta/Development/Libraries/
-
-%suse_update_desktop_file 
%{buildroot}%{_datadir}/susehelp/meta/Development/Libraries/%{sname}.desktop
-
 # Documentation
 mkdir -p %{buildroot}%{_defaultdocdir}/libtag-doc
 # Copy manually, otherwise fdupes does not work
@@ -161,14 +153,16 @@
 %endif
 
 %if !%{with tests}
-%post -n libtag2 -p /sbin/ldconfig
-%postun -n libtag2 -p /sbin/ldconfig
-%post -n libtag_c2 -p /sbin/ldconfig
-%postun -n libtag_c2 -p /sbin/ldconfig
+%ldconfig_scriptlets -n libtag2
+%ldconfig_scriptlets -n libtag_c2
 
 %files
 %license COPYING.LGPL COPYING.MPL
-%{_bindir}/*
+%{_bindir}/framelist
+%{_bindir}/strip-id3v1
+%{_bindir}/tagreader
+%{_bindir}/tagreader_c
+%{_bindir}/tagwriter
 %exclude %{_bindir}/taglib-config
 
 %files -n libtag2
@@ -188,11 +182,11 @@
 %{_libdir}/pkgconfig/*.pc
 %dir %{_libdir}/cmake/taglib
 %{_libdir}/cmake/taglib/*.cmake
+
 %else
 
 %files -n libtag-doc
 %doc AUTHORS CHANGELOG.md examples
 %{_docdir}/libtag-doc/html
-%{_datadir}/susehelp/
 %endif
 

++++++ 0001-Do-not-warn-when-seeing-FLAC-picture-block-in-Ogg-fi.patch ++++++
>From d832128bc77258300c81c71f7ddca378422138da Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <[email protected]>
Date: Tue, 13 Jan 2026 00:15:21 +0100
Subject: [PATCH 1/4] Do not warn when seeing FLAC picture block in Ogg files

---
 taglib/ogg/flac/oggflacfile.cpp | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/taglib/ogg/flac/oggflacfile.cpp b/taglib/ogg/flac/oggflacfile.cpp
index c283eddf..92fc4fd5 100644
--- a/taglib/ogg/flac/oggflacfile.cpp
+++ b/taglib/ogg/flac/oggflacfile.cpp
@@ -290,13 +290,28 @@ void Ogg::FLAC::File::scan()
     if(blockType == 1) {
       // debug("Ogg::FLAC::File::scan() -- Padding found");
     }
+    else if(blockType == 2) {
+      // debug("Ogg::FLAC::File::scan() -- Application block found");
+    }
+    else if(blockType == 3) {
+      // debug("Ogg::FLAC::File::scan() -- Seek table found");
+    }
     else if(blockType == 4) {
       // debug("Ogg::FLAC::File::scan() -- Vorbis-comments found");
       d->xiphCommentData = metadataHeader.mid(4, length);
       d->hasXiphComment = true;
       d->commentPacket = ipacket;
     }
-    else if(blockType > 5) {
+    else if(blockType == 5) {
+      // debug("Ogg::FLAC::File::scan() -- Cuesheet found");
+    }
+    else if(blockType == 6) {
+      // debug("Ogg::FLAC::File::scan() -- Picture found");
+    }
+    else if(blockType == 127) {
+      debug("Ogg::FLAC::File::scan() -- Forbidden block type found");
+    }
+    else if(blockType > 6) {
       debug("Ogg::FLAC::File::scan() -- Unknown metadata block");
     }
   }
-- 
2.52.0


++++++ 0002-Set-last-header-flag-in-FLAC-Metadata-block-type-fie.patch ++++++
>From 8d693ba57e887df8502b4b09f5a51853a0d45e3a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <[email protected]>
Date: Tue, 13 Jan 2026 00:31:45 +0100
Subject: [PATCH 2/4] Set last header flag in FLAC Metadata block type field

In case the Vorbis comment block is the last one the last block flag
has to be set.

As the other metadata blocks are kept as is, and in original order,
and no other metadata blocks are added/inserted, these can be kept
as is.

Also warn if the header scan loop detects a frame sync sequence (which
is the head of the first non-header packet). Previously, this was
detected as the last header packet, but streamStart and streamLength
are unused, and all packets but the vorbis comment packet are just copied
in order.

See taglib#1297
---
 taglib/ogg/flac/oggflacfile.cpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/taglib/ogg/flac/oggflacfile.cpp b/taglib/ogg/flac/oggflacfile.cpp
index 92fc4fd5..a64e7470 100644
--- a/taglib/ogg/flac/oggflacfile.cpp
+++ b/taglib/ogg/flac/oggflacfile.cpp
@@ -46,6 +46,7 @@ public:
 
   bool hasXiphComment { false };
   int commentPacket { 0 };
+  int lastHeaderPacket { 0 };
 };
 
 
////////////////////////////////////////////////////////////////////////////////
@@ -129,6 +130,12 @@ bool Ogg::FLAC::File::save()
 
   v[0] = 4;
 
+  // If the comment block is the last one, set the corresponding bit
+
+  if (d->commentPacket == d->lastHeaderPacket) {
+    v[0] = 0x84;
+  }
+
   // Append the comment-data after the 32 bit header
 
   v.append(d->xiphCommentData);
@@ -282,6 +289,12 @@ void Ogg::FLAC::File::scan()
       return;
     }
 
+    if(((header[0] & 0xff) == 0xff) && ((header[1] & 0xff) == 0xf8)) {
+      ipacket--;
+      debug("Ogg::FLAC::File::scan() -- Found frame sync marker, possibly 
missing last block marker");
+      break;
+    }
+
     blockType = header[0] & 0x7f;
     lastBlock = (header[0] & 0x80) != 0;
     length = header.toUInt(1, 3, true);
@@ -315,6 +328,7 @@ void Ogg::FLAC::File::scan()
       debug("Ogg::FLAC::File::scan() -- Unknown metadata block");
     }
   }
+  d->lastHeaderPacket = ipacket;
 
   // End of metadata, now comes the datastream
   d->streamStart = overhead;
-- 
2.52.0


++++++ 0003-Avoid-corrupting-an-invalid-FLAC-Ogg-file-without-Vo.patch ++++++
>From 360de943f3d0990f44257c1ab83ad7855121b996 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <[email protected]>
Date: Tue, 13 Jan 2026 00:35:15 +0100
Subject: [PATCH 3/4] Avoid corrupting an (invalid) FLAC Ogg file without
 Vorbis comment

FLAC in Ogg must have a Vorbis comment Metadata block, but in case
the file still has none avoid overwriting the first packet, i.e.
the Streaminfo Metadata block.
---
 taglib/ogg/flac/oggflacfile.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/taglib/ogg/flac/oggflacfile.cpp b/taglib/ogg/flac/oggflacfile.cpp
index a64e7470..f0b485b1 100644
--- a/taglib/ogg/flac/oggflacfile.cpp
+++ b/taglib/ogg/flac/oggflacfile.cpp
@@ -107,6 +107,11 @@ Properties *Ogg::FLAC::File::audioProperties() const
 
 bool Ogg::FLAC::File::save()
 {
+  if (d->commentPacket == 0) {
+    debug("Ogg::FLAC::File::save() -- Invalid, file has no Vorbis comment 
metadata block.");
+    return false;
+  }
+
   d->xiphCommentData = d->comment->render(false);
 
   // Create FLAC metadata-block:
-- 
2.52.0


++++++ 0004-Fix-reading-of-last-page-in-ogg-stream.patch ++++++
>From 5187aeb7f727216771089e5eb0d44c40f6e15f4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <[email protected]>
Date: Tue, 13 Jan 2026 02:15:22 +0100
Subject: [PATCH 4/4] Fix reading of last page in ogg stream

When trying to read a packet from the last page the readPages() method
would return false for all packets on the last page.

Move the lastPage check just before trying to create the next page, and
after the packetIndex check of the last fetched page.
---
 taglib/ogg/oggfile.cpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/taglib/ogg/oggfile.cpp b/taglib/ogg/oggfile.cpp
index 29f1803a..c08ffde8 100644
--- a/taglib/ogg/oggfile.cpp
+++ b/taglib/ogg/oggfile.cpp
@@ -191,12 +191,15 @@ bool Ogg::File::readPages(unsigned int i)
       const Page *page = d->pages.back();
       packetIndex = nextPacketIndex(page);
       offset = page->fileOffset() + page->size();
-    }
-
-    // Enough pages have been fetched.
 
-    if(packetIndex > i)
-      return true;
+      // Enough pages have been fetched.
+      if(packetIndex > i) {
+        return true;
+      }
+      else if(page->header()->lastPageOfStream()) {
+        return false;
+      }
+    }
 
     // Read the next page and add it to the page list.
 
@@ -208,9 +211,6 @@ bool Ogg::File::readPages(unsigned int i)
 
     nextPage->setFirstPacketIndex(packetIndex);
     d->pages.append(nextPage);
-
-    if(nextPage->header()->lastPageOfStream())
-      return false;
   }
 }
 
-- 
2.52.0

Reply via email to