Skip to content
  • Elvis Angelaccio's avatar
    Enable libarchive raw format to support "single-file" archives · 69453c83
    Elvis Angelaccio authored
    libarchive provides a "raw format" that returns a single fake entry
    called 'data' and the data for that entry is the whole input archive.
    
    We can use this raw format to handle the "single-file" archives for
    which we had the special KArchive-based singlefile plugins.
    The advantage is that libarchive supports more formats than KArchive. In
    particular with this commit we add support for the following new
    formats that KArchive cannot handle:
    
    - application/zlib
    - application/x-lz4
    - application/x-lzip
    - application/x-lrzip
    - application/x-lzop
    
    Note 1: This fake 'data' entry requires a bunch of small changes in different
    places, for which we use the recently 'displayName' property of
    Archive::Entry.
    
    Note 2: the documentation of archive_read_support_format_raw says that
    it should not be always enabled, so we only enable it if we have a
    "single-file" mimetype. For this purpose we generate in cmake a
    LIBARCHIVE_RAW_MIMETYPES define that will be automatically updated when
    adding new future mimetypes.
    
    BUG: 458908
    FIXED-IN: 22.12.0
    69453c83