2015-11-02 23:03 GMT-03:00 Aleix Pol <aleix...@kde.org>: > On Tue, Nov 3, 2015 at 3:00 AM, Luiz Romário Santana Rios > <luizroma...@gmail.com> wrote: >> 2015-11-02 22:41 GMT-03:00 Aleix Pol <aleix...@kde.org>: >>> On Mon, Nov 2, 2015 at 6:53 PM, Luiz Romário Santana Rios >>> <luizroma...@gmail.com> wrote: >>>> Hello, >>>> >>>> I'm trying to decompress a XZ archive downloaded using >>>> QNetworkAccessManager, so, according to the documents, I have to pass >>>> the QNetworkReply pointer to a KCompressionDevice and, then, use it as >>>> Ktar's device like this: >>>> >>>> https://gist.github.com/anonymous/b8fb686367f518a7dbb5 >>>> >>>> The problem is that KTar::open() fails and returns false. The file I'm >>>> trying to extract has the following structure more or less: >>>> /root >>>> /root/dir >>>> /root/dir/file1 >>>> /root/dir/file2 >>>> ... >>>> >>>> So, as far as I've seen, the code runs normally when entering /root >>>> and /root/dir, but, pretty high in the stack, at >>>> KXzFilter::uncompress(), the call to lzma_code returns >>>> LZMA_FORMAT_ERROR while trying to uncompress file1 (or file2, I'm not >>>> sure). Here's the call stack: >>>> >>>> https://gist.github.com/anonymous/9ea380cfe48daadb5971 >>>> >>>> Is this a bug? If it's a bug, how can I proceed to fix it? >>>> >>>> Thanks for the attention. >>> >>> Hi, >>> A good first step would be coming up with a unit test like the ones >>> you can find in karchive/autotests. If we have a reproducible test >>> case it will be much faster to fix (for you and for us). >>> >>> Regards, >>> Aleix >> >> I'll do that, but how do I host a local file so that it can be >> "downloaded" from QNAM? >> >> -- >> Luiz Romário Santana Rios > > Using file:/// url scheme you can asynchronously read local files. > > Aleix
I created a pretty simple archive: /root /root/dir /root/dir/file1: contents of file1 /root/dir/file2: contents of file2 /root/dir/file3: contents of file3 And then set up a simple test case: Header: https://paste.kde.org/p8jkzlcgg/u5oiqj Implementation: https://paste.kde.org/pt1yeawj1/t8sg8j Then this happens: [...] QWARN : KCompressionDeviceTest::testXzNetworkReplyDevice() QIODevice::seek: Cannot call seek on a sequential device QWARN : KCompressionDeviceTest::testXzNetworkReplyDevice() QIODevice::seek: Cannot call seek on a sequential device QWARN : KCompressionDeviceTest::testXzNetworkReplyDevice() QIODevice::seek: Cannot call seek on a sequential device QWARN : KCompressionDeviceTest::testXzNetworkReplyDevice() QIODevice::seek: Cannot call seek on a sequential device QWARN : KCompressionDeviceTest::testXzNetworkReplyDevice() QIODevice::seek: Cannot call seek on a sequential device QSYSTEM: KCompressionDeviceTest::testXzNetworkReplyDevice() Maximum amount of warnings exceeded. Use -maxwarnings to override. Then the test freezes. I have to interrupt it so that it finishes. What's wrong? -- Luiz Romário Santana Rios
kcompressiondevice_test.tar.xz
Description: application/xz
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel