Bug#893749: stretch-pu: package easytag/2.4.3-1+deb9u1
Control: tags -1 + confirmed On Tue, 2018-09-25 at 10:11 +0100, James Cowgill wrote: > Control: tags -1 - moreinfo > > Hi, > > Sorry for the delay. I completely forgot about this bug! > > I've attached v2 of the patch to fix #855251. After submitting the > original stretch-pu bug, I discovered (after someone mentioned this > on > the upstream bug report) the root cause and reverted the relevant > upstream commit. This fix has been in unstable since 2.4.3-4 (about 7 > months) without any issues. I've done some brief testing of in a > stretch > build and it seems to work fine there as well. > Please go ahead. Regards, Adam
Bug#893749: stretch-pu: package easytag/2.4.3-1+deb9u1
Control: tags -1 - moreinfo Hi, Sorry for the delay. I completely forgot about this bug! I've attached v2 of the patch to fix #855251. After submitting the original stretch-pu bug, I discovered (after someone mentioned this on the upstream bug report) the root cause and reverted the relevant upstream commit. This fix has been in unstable since 2.4.3-4 (about 7 months) without any issues. I've done some brief testing of in a stretch build and it seems to work fine there as well. Thanks, James diff -Nru easytag-2.4.3/debian/changelog easytag-2.4.3/debian/changelog --- easytag-2.4.3/debian/changelog 2016-12-05 23:46:24.0 + +++ easytag-2.4.3/debian/changelog 2018-09-24 18:31:35.0 +0100 @@ -1,3 +1,11 @@ +easytag (2.4.3-1+deb9u1) stretch; urgency=medium + + * debian/patches: +- Add patch to revert upstream commit which causes OGG corruption. + (Closes: #855251) + + -- James Cowgill Mon, 24 Sep 2018 18:31:35 +0100 + easytag (2.4.3-1) unstable; urgency=medium * New upstream release. diff -Nru easytag-2.4.3/debian/gbp.conf easytag-2.4.3/debian/gbp.conf --- easytag-2.4.3/debian/gbp.conf 2016-12-05 20:47:35.0 + +++ easytag-2.4.3/debian/gbp.conf 2018-09-24 18:31:35.0 +0100 @@ -1,3 +1,4 @@ [DEFAULT] pristine-tar = True compression = xz +debian-branch = debian/stretch diff -Nru easytag-2.4.3/debian/patches/02_fix-ogg-corruption.patch easytag-2.4.3/debian/patches/02_fix-ogg-corruption.patch --- easytag-2.4.3/debian/patches/02_fix-ogg-corruption.patch1970-01-01 01:00:00.0 +0100 +++ easytag-2.4.3/debian/patches/02_fix-ogg-corruption.patch2018-09-24 18:31:35.0 +0100 @@ -0,0 +1,241 @@ +Description: Revert upstream commit which causes OGG file corruption + Revert "Do not maintain an open handle on Ogg files" + This reverts commit e5c640ca3f259f1b74e716723345521987a7bd68. +Author: James Cowgill +Author: David King +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=776110 +Bug-Debian: https://bugs.debian.org/855251 +Bug-Debian: https://bugs.debian.org/886272 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/src/tags/vcedit.c b/src/tags/vcedit.c +@@ -35,6 +35,7 @@ + struct _EtOggState + { + /*< private >*/ ++GFileInputStream *in; + #ifdef ENABLE_SPEEX + SpeexHeader *si; + #endif +@@ -125,6 +126,11 @@ vcedit_clear_internals (EtOggState *stat + } + #endif /* ENABLE_OPUS */ + ++if (state->in) ++{ ++g_object_unref (state->in); ++} ++ + memset (state, 0, sizeof (*state)); + } + +@@ -239,7 +245,6 @@ _blocksize (EtOggState *s, + + static gboolean + _fetch_next_packet (EtOggState *s, +-GInputStream *istream, + ogg_packet *p, + ogg_page *page, + GError **error) +@@ -269,8 +274,8 @@ _fetch_next_packet (EtOggState *s, + while (ogg_sync_pageout (s->oy, page) <= 0) + { + buffer = ogg_sync_buffer (s->oy, CHUNKSIZE); +-bytes = g_input_stream_read (istream, buffer, CHUNKSIZE, NULL, +- error); ++bytes = g_input_stream_read (G_INPUT_STREAM (s->in), buffer, ++ CHUNKSIZE, NULL, error); + ogg_sync_wrote (s->oy, bytes); + + if(bytes == 0) +@@ -303,7 +308,7 @@ _fetch_next_packet (EtOggState *s, + + g_assert (error == NULL || *error == NULL); + ogg_stream_pagein (s->os, page); +-return _fetch_next_packet (s, istream, p, page, error); ++return _fetch_next_packet (s, p, page, error); + } + } + +@@ -402,13 +407,14 @@ vcedit_open (EtOggState *state, + return FALSE; + } + ++state->in = istream; + state->oy = g_slice_new (ogg_sync_state); + ogg_sync_init (state->oy); + + while(1) + { + buffer = ogg_sync_buffer (state->oy, CHUNKSIZE); +-bytes = g_input_stream_read (G_INPUT_STREAM (istream), buffer, ++bytes = g_input_stream_read (G_INPUT_STREAM (state->in), buffer, + CHUNKSIZE, NULL, error); + if (bytes == -1) + { +@@ -648,7 +654,7 @@ vcedit_open (EtOggState *state, + } + + buffer = ogg_sync_buffer (state->oy, CHUNKSIZE); +-bytes = g_input_stream_read (G_INPUT_STREAM (istream), buffer, ++bytes = g_input_stream_read (G_INPUT_STREAM (state->in), buffer, + CHUNKSIZE, NULL, error); + + if (bytes == -1) +@@ -670,14 +676,11 @@ vcedit_open (EtOggState *state, + + /* Headers are done! */ + g_assert (error == NULL || *error == NULL); +-/* TODO: Handle error during stream close. */ +-g_object_unref (istream); + + return TRUE; + + err: + g_assert (error == NULL || *error != NULL); +-g_object_unref (istream); + vcedit_clear_internals (state); + return FALSE; + } +@@ -699,7 +702,6 @@
Bug#893749: stretch-pu: package easytag/2.4.3-1+deb9u1
Control: tags -1 moreinfo Hi, On 22/03/18 00:05, James Cowgill wrote: > Package: release.debian.org > Severity: normal > Tags: stretch > User: release.debian@packages.debian.org > Usertags: pu > > Hi, > > The purpose of this update to easytag is to fix #855251 where easytag > will sometimes corrupt ogg (and related) files it tags. The corruption > causes some of the music data to be overwritten near the start of the > file. This causes an audible click and various tools print errors about > trying to play a corrupt file. The upstream bug has now been open since > late 2016, is apparently very difficult to fix (lots of code to be > written) and there is no fix in progress which I can see. A potential workaround for this has appeared which could mean we don't have to disable OGG. Please ignore this bug until I've looked into it a bit more. Thanks, James signature.asc Description: OpenPGP digital signature
Bug#893749: stretch-pu: package easytag/2.4.3-1+deb9u1
Package: release.debian.org Severity: normal Tags: stretch User: release.debian@packages.debian.org Usertags: pu Hi, The purpose of this update to easytag is to fix #855251 where easytag will sometimes corrupt ogg (and related) files it tags. The corruption causes some of the music data to be overwritten near the start of the file. This causes an audible click and various tools print errors about trying to play a corrupt file. The upstream bug has now been open since late 2016, is apparently very difficult to fix (lots of code to be written) and there is no fix in progress which I can see. Due to this, I have completely disabled ogg support in unstable and I think doing the same in stable is the best cause of action to prevent people from corrupting their music collection. Debdiff attached. It also contains a related change to the control file. I thought about adding a NEWS entry but I wasn't sure (I did not add one for unstable). Thanks, James -- System Information: Debian Release: buster/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental-debug'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386, mipsel Kernel: Linux 4.15.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled diff -Nru easytag-2.4.3/debian/changelog easytag-2.4.3/debian/changelog --- easytag-2.4.3/debian/changelog 2016-12-05 23:46:24.0 + +++ easytag-2.4.3/debian/changelog 2018-03-08 22:20:29.0 + @@ -1,3 +1,13 @@ +easytag (2.4.3-1+deb9u1) stretch; urgency=medium + + [ James Cowgill ] + * Disable OGG, OPUS and Speex. (Closes: #855251) + + [ Bruno Kleinert ] + * Do not mention OGG support in package description. (Closes: #886369) + + -- James CowgillThu, 08 Mar 2018 22:20:29 + + easytag (2.4.3-1) unstable; urgency=medium * New upstream release. diff -Nru easytag-2.4.3/debian/control easytag-2.4.3/debian/control --- easytag-2.4.3/debian/control2016-12-05 20:47:35.0 + +++ easytag-2.4.3/debian/control2018-03-08 22:18:48.0 + @@ -50,9 +50,8 @@ . Currently EasyTAG supports the following: - View, edit, write tags of MP3, MP2 files (ID3 tag), FLAC files (FLAC Vorbis -tag), Ogg Opus, Ogg Speex and Ogg Vorbis files (Ogg Vorbis tag), -MP4/M4A/AAC files (MPEG-4 Part 10 tag), and MusePack, Monkey's Audio files -(APE tag); +tag), MP4/M4A/AAC files (MPEG-4 Part 10 tag), and MusePack, Monkey's Audio +files (APE tag); - Auto tagging: parse file and directory names using masks to automatically fill in tag fields; - Cover art support for all formats; @@ -72,6 +71,10 @@ - A playlist generator window; - A file searching window; - Simple and explicit interface. + . + OGG support is currently disabled in this package because of a data corruption + bug. To edit tags in OGG files you may consider one of these packages: exfalso, + puddletag, kid3-qt, entagged. Package: easytag-nautilus Architecture: any diff -Nru easytag-2.4.3/debian/gbp.conf easytag-2.4.3/debian/gbp.conf --- easytag-2.4.3/debian/gbp.conf 2016-12-05 20:47:35.0 + +++ easytag-2.4.3/debian/gbp.conf 2018-03-08 22:17:33.0 + @@ -1,3 +1,4 @@ [DEFAULT] pristine-tar = True compression = xz +debian-branch = debian/stretch diff -Nru easytag-2.4.3/debian/rules easytag-2.4.3/debian/rules --- easytag-2.4.3/debian/rules 2016-12-05 20:47:35.0 + +++ easytag-2.4.3/debian/rules 2018-03-08 22:18:29.0 + @@ -10,7 +10,9 @@ dh_autoreconf --as-needed override_dh_auto_configure: - dh_auto_configure -- --disable-silent-rules --disable-Werror + # OGG, OPUS and Speex disabled due to #855251 + dh_auto_configure -- --disable-silent-rules --disable-Werror \ + --disable-ogg --disable-opus --disable-speex override_dh_installdocs: dh_installdocs --link-doc=easytag signature.asc Description: OpenPGP digital signature