pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/48371: sysutils/k3b skips ripping the first track if it is not alphabetically the first track



>Number:         48371
>Category:       pkg
>Synopsis:       sysutils/k3b skips ripping the first track if it is not 
>alphabetically the first track
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Nov 08 00:45:00 +0000 2013
>Originator:     Nat Sloss
>Release:        pkgsrc-2013Q2
>Organization:
>Environment:
NetBSD beast 6.1.1_PATCH NetBSD 6.1.1_PATCH (PCIPAE) #13: Sat Nov  2 18:07:05 
EST 2013  build@test:/usr/src/sys/arch/i386/compile/obj/PCIPAE i386
>Description:
There is a problem where by k3b wont rip the first track is it is not 
alphabetically the first track to be ripped.

Refer to:
https://bugs.kde.org/show_bug.cgi?id=258074

This happens with audio cds where the fist track starts at sector zero.
>How-To-Repeat:
Rip audio from a cd with multiple tracks selected where track 1 starts at 
sector zero and is not alphabetically the first track, so it is not the first 
one to be ripped.

You'll find that the resultant file for track 1 is less than one KiB and has a 
length in seconds of zero.
>Fix:
Apply this patch:

--- /dev/null   2013-11-08 11:19:57.000000000 +1100
+++ pkgsrc/sysutils/k3b/patches/patch-libk3b_tools_k3bcdparanoialib.cpp 
2013-11-08 01:14:14.000000000 +1100
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- libk3b/tools/k3bcdparanoialib.cpp.orig     2011-01-15 20:47:29.000000000 
+0000
++++ libk3b/tools/k3bcdparanoialib.cpp
+@@ -736,7 +736,7 @@ char* K3b::CdparanoiaLib::read( int* sta
+ 
+     if( d->currentSector != d->data->sector() ) {
+         kDebug() << "(K3b::CdparanoiaLib) need to seek before read. Looks as 
if we are reusing the paranoia instance.";
+-        if( !d->data->paranoiaSeek( d->currentSector, SEEK_SET ) )
++        if( d->data->paranoiaSeek( d->currentSector, SEEK_SET ) == -1 )
+             return 0;
+     }
+ 

As the original function was written it would return early when sector 0 is 
returned instead of error -1.

Regards,

Nat.



Home | Main Index | Thread Index | Old Index