Package: cdrskin Version: 1.5.0-1 Severity: important Tags: upstream Dear Release Team,
due to a hapless bug fix before upstream release of cdrkin-1.5.0 the program lost its ability to burn multiple tracks in one session. Multiple tracks are the most expectable situation with burning Audio CDs. Regrettably this is the version in current "stable". The offending upstream commit is very simple: https://dev.lovelyhq.com/libburnia/libburn/commit/84fad99ebaa8cb9e16a8939bb2449073038924c1 It was supposed to fix a rare bug, but created a common one. The symptoms are - If the first track is smaller than the fifo buffer (default 4 MiB), then the burn run hangs with waiting for the fifo to get full. - If the first track can fill the fifo completely, then it gets written very slowly. Burning hangs forever at the end of the first track. The affected medium is not blank any more. In case of CD-R it is used up afterwards. To reproduce the problem, i booted debian-live-10.0.0-amd64-xfce.iso and did # Install sudo apt-get update sudo apt-get install cdrskin # Create dummy input files (CD-DA sector size is 2352 bytes) dd if=/dev/zero bs=2352 count=5000 of=dummy_track1 dd if=/dev/zero bs=2352 count=6000 of=dummy_track2 dd if=/dev/zero bs=2352 count=7000 of=dummy_track3 # Let cdrskin misburn a CD-RW, "blank=as_needed" will erase it before burn cdrskin -v dev=/dev/sr0 blank=as_needed -eject -audio dummy_track[1-3] The cdrskin run has finally to be interrupted by Ctrl+C. After about 30 to 60 seconds, the drive is released and cdrskin ends. The older releases of Debian are not affected, because the bug was introduced after upstream version 1.4.6, which is in Debian 9. The freshly uploaded version 1.5.2 got a last-minute patch to fix the problem: https://salsa.debian.org/optical-media-team/libburn/raw/master/debian/patches/01-ban-o_direct-to-fix-cdrskin-multi-track.patch It reverts the bad change and forcefully disables the exotic configuration of using O_DIRECT in libburn, which that change was meant to fix. Meanwhile it migrated to testing. The O_DIRECT configuration of libburn does not happen in the production of Debian binary package libburn4. So my proposal for a patch in stable is even more sparse than in testing and avoids any change in libburn4, which is in use with Xfburn, Brasero, and xorriso. I created a patched cdrskin_1.5.0-2+deb10u1_amd64.deb (by debuild -S and debuild -b) and tested on Debian 10 Live by above procedure, plus sudo dpkg -i cdrskin_1.5.0-2+deb10u1_amd64.deb that it burns multiple tracks with the expectable speed and result. ========================================================================== $ debdiff libburn_1.5.0-1.dsc libburn_1.5.0-2+deb10u1.dsc diff -Nru libburn-1.5.0/debian/changelog libburn-1.5.0/debian/changelog --- libburn-1.5.0/debian/changelog 2018-09-24 10:48:38.000000000 +0200 +++ libburn-1.5.0/debian/changelog 2019-11-27 16:17:00.000000000 +0100 @@ -1,3 +1,14 @@ +libburn (1.5.0-2+deb10u1) UNRELEASED; urgency=low + * Patch taken from upstream development + + cdrskin multi-track burning was slow and stalled after track 1. + Regression introduced in version 1.5.0 by commit 84fad99, 2018.02.05, + which should fix a bug with O_DIRECT track reading. + Debian never enabled O_DIRECT, so 84fad99 was never desirable. + The patch reverts the upstream commit to bring the fifo code of cdrskin + back to the state in Debian 9 and Debian 8. + + -- Thomas Schmitt <scdbac...@gmx.net> Wed, 27 Nov 2019 16:17:00 +0100 + libburn (1.5.0-1) UNRELEASED; urgency=low * New upstream release diff -Nru libburn-1.5.0/debian/patches/01-fix-cdrskin-multi-track.patch libburn- 1.5.0/debian/patches/01-fix-cdrskin-multi-track.patch --- libburn-1.5.0/debian/patches/01-fix-cdrskin-multi-track.patch 1970-01- 01 01:00:00.000000000 +0100 +++ libburn-1.5.0/debian/patches/01-fix-cdrskin-multi-track.patch 2019-11- 27 16:17:00.000000000 +0100 @@ -0,0 +1,18 @@ +Description: Bug fix: cdrskin multi-track burning was slow and stalled + after track 1. + Regression introduced in version 1.5.0 by commit 84fad99, 2018.02.05, + which should fix a bug with O_DIRECT track reading. + This patch reverts the upstream commit to bring the fifo code of cdrskin back + to the state of cdrskin-1.4.6 in Debian 9 and cdrskin-1.3.2 in Debian 8. +Author: Thomas Schmitt <scdbac...@gmx.net> + +--- a/cdrskin/cdrfifo.c ++++ b/cdrskin/cdrfifo.c +@@ -28,7 +28,6 @@ + #ifndef Cdrfifo_standalonE + /* for burn_os_alloc_buffer() */ + #include "../libburn/libburn.h" +-#define Libburn_has_open_trac_srC 1 + #endif + + #include "cdrfifo.h" diff -Nru libburn-1.5.0/debian/patches/series libburn-1.5.0/debian/patches/series --- libburn-1.5.0/debian/patches/series 2018-04-03 19:59:27.000000000 +0200 +++ libburn-1.5.0/debian/patches/series 2019-11-27 16:17:00.000000000 +0100 @@ -0,0 +1,2 @@ +01-fix-cdrskin-multi-track.patch + ========================================================================== -- System Information: Debian Release: buster Architecture: amd64 (x86_64) (I write this on a Sid system. But as said, i tested on Debian 10 Live and the problem is in upstream code, where it is fixed similarly now.) Have a nice day :) Thomas