1. 25 Sep, 2020 1 commit
  2. 30 Aug, 2020 1 commit
  3. 24 Aug, 2020 1 commit
  4. 23 Aug, 2020 1 commit
  5. 18 Aug, 2020 2 commits
  6. 17 Aug, 2020 1 commit
  7. 15 Aug, 2020 1 commit
  8. 14 Aug, 2020 1 commit
  9. 12 Apr, 2020 1 commit
  10. 18 Sep, 2019 1 commit
  11. 02 Jun, 2019 1 commit
    • Elvis Angelaccio's avatar
      Simplify kill logic · 3dbdac81
      Elvis Angelaccio authored
      Evolution of b1a251eb. We no longer want to distinguish between
      libarchive and libzip. If there are crashes in libarchive because of
      this new kill logic, we need to fix them.
      3dbdac81
  12. 01 Jun, 2019 1 commit
  13. 16 Feb, 2019 1 commit
  14. 13 Jan, 2019 1 commit
  15. 31 Oct, 2018 1 commit
    • Alexander Volkov's avatar
      libzipplugin: Simplify registration of progress callbacks · 43ae86b0
      Alexander Volkov authored
      Summary:
      Use zip_register_progress_callback_with_state() that was
      introduced in libzip 1.3 (we already require this version).
      
      Pass 0.001 as precision because this value is used for
      old zip_register_progress_callback() inside libzip.
      Also pass nullptr as a free function, because 'this' doesn't
      need to be freed.
      
      Reviewers: #ark, elvisangelaccio
      
      Reviewed By: #ark, elvisangelaccio
      
      Subscribers: elvisangelaccio, kde-utils-devel, #ark
      
      Tags: #ark
      
      Differential Revision: https://phabricator.kde.org/D16276
      43ae86b0
  16. 20 Sep, 2018 1 commit
  17. 22 Jul, 2018 1 commit
    • Elvis Angelaccio's avatar
      libzip: use ZIP_FL_ENC_RAW for comments · cfee2c44
      Elvis Angelaccio authored
      `zip_get_archive_comment` returns garbled text with some zip archives if
      we pass the `ZIP_FL_ENC_GUESS` flag.
      
      Reported upstream at https://github.com/nih-at/libzip/issues/57
      
      Using `ZIP_FL_ENC_RAW` fixes the issue and doesn't seem to break other
      zip comments I have around. Since this flag doesn't seem to guarantee
      UTF-8 encoding of the comment, we switch from `QString::fromUtf8()` to
      `QString::fromLocal8Bit()` to play safe.
      cfee2c44
  18. 17 Jun, 2018 1 commit
    • Elvis Angelaccio's avatar
      libzip: fix extraction of folders without zip entry · 9a349f68
      Elvis Angelaccio authored
      Some zip archives may not have a zip entry for a folder, but only the
      entries for the files within that folder.
      
      The Part generates a fake `Archive::Entry` in such cases, which gets
      added the to list of entries passed to the `ExtractJob`.
      
      This is properly handled by unzip (which prints a "caution: filename not
      matched" warning for the virtual entry) and 7z. However, the libzip
      plugin would abort the whole extraction when it couldn't stat the
      missing entry.
      
      This patch just prints a warning when it detects a folder that cannot be
      stat'd (due to the NOENT error), but the extraction will continue as normal.
      
      BUG: 394542
      FIXED-IN: 18.04.3
      9a349f68
  19. 21 Apr, 2018 1 commit
  20. 25 Feb, 2018 5 commits
    • Elvis Angelaccio's avatar
      Rework kill logic · b1a251eb
      Elvis Angelaccio authored
      The libzip plugin sometimes cannot react to `QThread::requestInterruption()`
      because there is a blocking `zip_close()` which writes to disk (e.g. with AddJobs).
      
      This means we have to manually abort the thread (by passing a timeout to
      `QThread::wait()` in `Job::doKill()`. We cannot do this uconditionally
      because we would end up with crashes in libarchive. Since the libarchive
      plugin is not affected by this problem, we rework the logic in
      `Job::doKill()` by assuming that the interface will tell us whether it
      needs to be brutally killed. This way we can distinguish between the
      libarchive and the libzip plugins (the ones that use a worker thread).
      
      The mutex in this patch is needed because in theory `m_operationMode` could be
      read and written by different threads at the same time, even though that's unlikely.
      
      BUG: 389290
      FIXED-IN: 18.03.80
      Task: T7824
      b1a251eb
    • Elvis Angelaccio's avatar
      libzip: implement killing TestJob · 0fba00d0
      Elvis Angelaccio authored
      Depends on fa3865693c, otherwise we would get two messageboxes after
      stopping the TestJob from the Plasma systray.
      0fba00d0
    • Elvis Angelaccio's avatar
      Mark canceled extractions as killed jobs · 92fe1c13
      Elvis Angelaccio authored
      If the user canceled an OverwriteQuery dialog, we should not claim the
      extraction finished. By emitting the canceled() signal, the extraction
      jobs will set the KilledJobError error and the plasma applet will not
      show the "Finished" string in the notification.
      
      BUG: 382601
      FIXED-IN: 17.12.3
      
      Task: T6707
      92fe1c13
    • Elvis Angelaccio's avatar
      Fix valgrind uninitialised warnings · d36f3880
      Elvis Angelaccio authored
      d36f3880
    • Elvis Angelaccio's avatar
      Fix mismatched new[] / delete[] valgrind warning · 910d2872
      Elvis Angelaccio authored
      QScopedPointer by default uses `delete`, even if we used `new []`.
      We would have to use the following verbose syntax:
      
          QScopedPointer<uchar, QScopedPointerArrayDeleter<uchar>> buf(new uchar[...]);
      
      But `std::unique_ptr` can do the right thing by just looking at the template
      parameter, so let's use that.
      910d2872
  21. 08 Nov, 2017 1 commit
  22. 22 Oct, 2017 2 commits
  23. 21 Oct, 2017 4 commits
  24. 16 Oct, 2017 2 commits
  25. 27 Jun, 2017 1 commit
    • Elvis Angelaccio's avatar
      libzip: preserve permissions when extracting files · d3a7d7bb
      Elvis Angelaccio authored
      Summary:
      The zip format reserves the 2 leftmost bytes of the extended file
      attribute field (32 bits) for the UNIX permissions.
      If the zip archive was crated with such metadata, we can just use the
      libzip api to retrieve the extended file attribute and extract the
      mode_t value from it.
      
      BUG: 381499
      FIXED-IN: 17.07.80
      
      Test Plan: This fixes the 2 failing libzip test cases in ExtractTest::testPreservePermissions().
      
      Reviewers: #ark, rthomsen
      
      Subscribers: kde-utils-devel
      
      Tags: #ark
      
      Differential Revision: https://phabricator.kde.org/D6408
      d3a7d7bb
  26. 19 Mar, 2017 2 commits
  27. 16 Mar, 2017 1 commit
    • Ragnar Thomsen's avatar
      Add libzip plugin · ee74c157
      Ragnar Thomsen authored
      A new plugin for libzip was added. The plugin is only built if libzip
      1.20 or higher is installed, but is the preferred plugin for zip
      archives.
      
      FEATURE:
      Differential Revision: D5039
      ee74c157