https://bugs.kde.org/show_bug.cgi?id=460898

            Bug ID: 460898
           Summary: Single-File-Plugin takes priority over LibArchive when
                    handling a MIME subtype of a compressed tar archive.
    Classification: Applications
           Product: ark
           Version: 22.08.1
          Platform: Manjaro
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: elvis.angelac...@kde.org
          Reporter: o.ha...@gmail.com
                CC: aa...@kde.org, rthoms...@gmail.com
  Target Milestone: ---

SUMMARY

My general situation is the same as described in
https://invent.kde.org/utilities/ark/-/merge_requests/22#note_176062 although
the issue is different.

I am trying to open an ALPM package (file extension `*.pkg.tar.zst`) using a
custom MIME type `application/x-zstd-compressed-alpm-package` that inherits
from `application/x-zstd-compressed-tar` (see below). But Ark is treating the
file like a `application/zstd` single-file-archive, instead of a
`application/x-zstd-compressed-tar` compressed `tar` archive.

This is the relevant excerpt from my
`~/.local/share/mime/packages/Override.xml`:

  <mime-type type="application/x-zstd-compressed-alpm-package">
    <comment>ALPM package (Zstandard-compressed)</comment>
    <generic-icon name="package-x-generic" />
    <sub-class-of type="application/x-zstd-compressed-tar" />
    <glob pattern="*.pkg.tar.zst" weight="55" />
    <glob pattern="*.pkg.tzst" weight="55" />
  </mime-type>

STEPS TO REPRODUCE
1. Define a MIME type `application/x-zstd-compressed-alpm-package` like above.
2. Update the MIME database.
3. Create a `.tar.zst` file named `mypackage.pkg.tar.zst`.
4. Open that file with Ark.

You can confirm that Ark deduced the correct MIME type under `Archive >
Properties`.

OBSERVED RESULT
Ark displays only one entry named `mypackage.pkg.tar`. When double-clicking
this entry, Ark opens a new window displaying the contents of the archive.

EXPECTED RESULT
Ark extracts the archive in one step and displays the contents immediately,
like it does for any `application/x-zstd-compressed-tar` file.

SOFTWARE/OS VERSIONS
Operating System: Manjaro Linux
KDE Plasma Version: 5.25.5
KDE Frameworks Version: 5.98.0
Qt Version: 5.15.6

ADDITIONAL INFORMATION
The issue seems to be that the Zstd-module is taking priority over the
LibArchive module, when opening a file that belongs to a subtype of
`application/x-zstd-compressed-tar`. That means the file is opened like a
`application/zstd` file instead of a `application/x-zstd-compressed-tar` file.

The semantically correct thing would be to have the handlers follow the class
hierarchy (`application/x-zstd-compressed-alpm-package` extends
`application/x-zstd-compressed-tar` extends `application/zstd`), so the handler
for `application/x-zstd-compressed-tar` takes priority over the handler for
`application/zstd`.

I have tested this both by disabling the Zstd-module, and by lowering the value
of `X-KDE-Priority` in
`plugins/libsinglefileplugin/kerfuffle_libzstd.json.cmake` prior to
compilation. The issue does indeed go away when doing this, although both
methods have obvious drawbacks.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to