diff --git a/README.packagers b/README.packagers index 212a9e17..08f6afa7 100644 --- a/README.packagers +++ b/README.packagers @@ -1,23 +1,24 @@ OPTIONAL RUNTIME DEPENDENCIES Ark has a plugin-based architecture in order to support many archive formats. The only required plugin is the libarchive plugin (which is why libarchive is a required build-time dependency of Ark). The other plugins are optional. They are built by default, but each of them requires one or more runtime dependencies, i.e. they won't work if they don't find the CLI executable(s) they rely on. The following is a list of these optional executables. Some of them are marked as RECOMMENDED, as Ark won't be able to (properly) handle popular formats without them. * unzip, zipinfo: to open and extract zip archives * zip: to create and edit zip archives * 7z: to open/extract/create/edit 7z and zip archives [RECOMMENDED, free] * unrar: to open and extract rar archives [RECOMMENDED, non-free] * rar: to create and edit rar archives * lsar, unar: to open and extract rar archives [RECOMMENDED, free] * lrzip: to open and extract lrzip archives +* lzop: to open and extract tar.lzo archives if libarchive >= 3.3 has been compiled without liblzo2 support. OPTIONAL BUILD-TIME DEPENDENCIES * zlib: for .gz files * bzip2: for .bz2 files * liblzma/xz: for .xz files diff --git a/plugins/libarchive/CMakeLists.txt b/plugins/libarchive/CMakeLists.txt index d476be60..fa2a13d6 100644 --- a/plugins/libarchive/CMakeLists.txt +++ b/plugins/libarchive/CMakeLists.txt @@ -1,77 +1,84 @@ include_directories(${LibArchive_INCLUDE_DIRS}) ########### next target ############### set(SUPPORTED_LIBARCHIVE_READWRITE_MIMETYPES "application/x-tar;application/x-compressed-tar;application/x-bzip-compressed-tar;application/x-tarz;application/x-xz-compressed-tar;") set(SUPPORTED_LIBARCHIVE_READWRITE_MIMETYPES "${SUPPORTED_LIBARCHIVE_READWRITE_MIMETYPES}application/x-lzma-compressed-tar;application/x-lzip-compressed-tar;application/x-tzo;application/x-lrzip-compressed-tar;application/x-lz4-compressed-tar;") set(SUPPORTED_LIBARCHIVE_READONLY_MIMETYPES "application/vnd.debian.binary-package;application/x-deb;application/x-cd-image;application/x-bcpio;application/x-cpio;application/x-cpio-compressed;application/x-sv4cpio;application/x-sv4crc;") set(SUPPORTED_LIBARCHIVE_READONLY_MIMETYPES "${SUPPORTED_LIBARCHIVE_READONLY_MIMETYPES}application/x-rpm;application/x-source-rpm;application/vnd.ms-cab-compressed;application/x-xar;application/x-iso9660-appimage;application/x-archive;") set(INSTALLED_LIBARCHIVE_PLUGINS "") set(kerfuffle_libarchive_readonly_SRCS libarchiveplugin.cpp readonlylibarchiveplugin.cpp ark_debug.cpp) set(kerfuffle_libarchive_readwrite_SRCS libarchiveplugin.cpp readwritelibarchiveplugin.cpp ark_debug.cpp) set(kerfuffle_libarchive_SRCS ${kerfuffle_libarchive_readonly_SRCS} readwritelibarchiveplugin.cpp) ecm_qt_declare_logging_category(kerfuffle_libarchive_SRCS HEADER ark_debug.h IDENTIFIER ARK CATEGORY_NAME ark.libarchive) # NOTE: the first double-quotes of the first mime and the last # double-quotes of the last mime must NOT be escaped. set(SUPPORTED_READONLY_MIMETYPES "application/x-deb\", \"application/x-cd-image\", \"application/x-bcpio\", \"application/x-cpio\", \"application/x-cpio-compressed\", \"application/x-sv4cpio\", \"application/x-sv4crc\", \"application/x-rpm\", \"application/x-source-rpm\", \"application/vnd.debian.binary-package\", \"application/vnd.ms-cab-compressed\", \"application/x-xar\", \"application/x-iso9660-appimage\", \"application/x-archive") # NOTE: the first double-quotes of the first mime and the last # double-quotes of the last mime must NOT be escaped. set(SUPPORTED_READWRITE_MIMETYPES "application/x-tar\", \"application/x-compressed-tar\", \"application/x-bzip-compressed-tar\", \"application/x-tarz\", \"application/x-xz-compressed-tar\", \"application/x-lzma-compressed-tar\", \"application/x-lzip-compressed-tar\", \"application/x-tzo\", \"application/x-lrzip-compressed-tar\", \"application/x-lz4-compressed-tar") configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/kerfuffle_libarchive_readonly.json.cmake ${CMAKE_CURRENT_BINARY_DIR}/kerfuffle_libarchive_readonly.json) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/kerfuffle_libarchive.json.cmake ${CMAKE_CURRENT_BINARY_DIR}/kerfuffle_libarchive.json) kerfuffle_add_plugin(kerfuffle_libarchive_readonly ${kerfuffle_libarchive_readonly_SRCS}) kerfuffle_add_plugin(kerfuffle_libarchive ${kerfuffle_libarchive_readwrite_SRCS}) target_link_libraries(kerfuffle_libarchive_readonly ${LibArchive_LIBRARIES}) target_link_libraries(kerfuffle_libarchive ${LibArchive_LIBRARIES}) set(INSTALLED_LIBARCHIVE_PLUGINS "${INSTALLED_LIBARCHIVE_PLUGINS}kerfuffle_libarchive_readonly;") set(INSTALLED_LIBARCHIVE_PLUGINS "${INSTALLED_LIBARCHIVE_PLUGINS}kerfuffle_libarchive;") set(SUPPORTED_ARK_MIMETYPES "${SUPPORTED_ARK_MIMETYPES}${SUPPORTED_LIBARCHIVE_READWRITE_MIMETYPES}${SUPPORTED_LIBARCHIVE_READONLY_MIMETYPES}" PARENT_SCOPE) set(INSTALLED_KERFUFFLE_PLUGINS "${INSTALLED_KERFUFFLE_PLUGINS}${INSTALLED_LIBARCHIVE_PLUGINS}" PARENT_SCOPE) find_program(LRZIP lrzip) if(LRZIP) message(STATUS "Found lrzip executable: ${LRZIP}") else() message(WARNING "Could not find the lrzip executable. Ark requires lrzip to handle the tar.lrz archive format.") endif() + +find_program(LZOP lzop) +if(LZOP) + message(STATUS "Found lzop executable: ${LZOP}") +else() + message(WARNING "Could not find the lzop executable. Ark requires lzop to handle the tar.lzo archive format if libarchive >= 3.3 has been compiled without liblzo2 support.") +endif()