Skip to content

Commit 3096e6f

Browse files
committed
Updated karchive to 6.21.0
Based on KArchive commit 9db52cdf92c50349b958bdd7e1f7651b13234917. This update does mean the RpMap plugin is now only enabled for builds against Qt >= 6.8, which is the minimum supported Qt version still supported by KArchive. Closes #4294
1 parent a3aad14 commit 3096e6f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+4272
-2985
lines changed

dist/win/installer.qbs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ WindowsInstallerPackage {
5555
if (pythonHome && File.exists(pythonHome))
5656
defs.push("Python");
5757

58-
var rpMapEnabled = !qbs.toolchain.contains("msvc")
58+
var rpMapEnabled = !qbs.toolchain.contains("msvc") &&
59+
Utilities.versionCompare(Qt.core.version, "6.8") >= 0;
5960
if (rpMapEnabled)
6061
defs.push("RpMap");
6162

src/karchive/.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ Makefile
1616
avail
1717
random_seed
1818
/build*/
19+
/.vscode/
1920
CMakeLists.txt.user*
2021
*.unc-backup*
2122
.cmake/
23+
/.clang-format
24+
/compile_commands.json
25+
.clangd
26+
.idea
27+
/cmake-build*
28+
.cache

src/karchive/AUTHORS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ Many other contributors, see git log.
66

77
For questions about this package, email [email protected].
88

9-
For bug reports, please use http://bugs.kde.org
9+
For bug reports, please use https://bugs.kde.org
1010

src/karchive/CMakeLists.txt

Lines changed: 93 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,160 @@
1-
cmake_minimum_required(VERSION 3.5)
1+
cmake_minimum_required(VERSION 3.16)
22

3-
set(KF5_VERSION "5.76.0") # handled by release scripts
4-
project(KArchive VERSION ${KF5_VERSION})
3+
set(KF_VERSION "6.21.0") # handled by release scripts
4+
project(KArchive VERSION ${KF_VERSION})
55

66
include(FeatureSummary)
7-
find_package(ECM 5.75.0 NO_MODULE)
7+
find_package(ECM 6.20.0 NO_MODULE)
88
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules")
99
feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
1010

11+
option(WITH_BZIP2 "Make bzip2 required" ON)
12+
option(WITH_LIBLZMA "Make liblzma required" ON)
13+
option(WITH_OPENSSL "Make openssl required" ON)
14+
option(WITH_LIBZSTD "Make libzstd required" ON)
15+
16+
option(BUILD_FUZZERS "Build KArchive fuzzers" OFF)
17+
18+
set(PKGCONFIG_REQUIRED_TYPE "")
19+
20+
if(WITH_BZIP2)
21+
set(BZIP2_PACKAGE_TYPE "REQUIRED")
22+
else()
23+
set(BZIP2_PACKAGE_TYPE "RECOMMENDED")
24+
endif()
25+
26+
if(WITH_LIBLZMA)
27+
set(LIBLZMA_PACKAGE_TYPE "REQUIRED")
28+
else()
29+
set(LIBLZMA_PACKAGE_TYPE "RECOMMENDED")
30+
endif()
31+
32+
if(WITH_OPENSSL)
33+
set(OPENSSL_PACKAGE_TYPE "REQUIRED")
34+
else()
35+
set(OPENSSL_PACKAGE_TYPE "RECOMMENDED")
36+
endif()
37+
38+
if(WITH_LIBZSTD)
39+
set(PKGCONFIG_REQUIRED_TYPE "REQUIRED")
40+
set(LIBZSTD_REQUIRED_TYPE "REQUIRED")
41+
else()
42+
set(LIBZSTD_REQUIRED_TYPE "")
43+
endif()
1144

1245
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
1346

1447
include(KDEInstallDirs)
1548
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
1649
include(KDECMakeSettings)
50+
include(KDEGitCommitHooks)
51+
include(ECMGenerateQDoc)
1752

1853
include(ECMGenerateExportHeader)
1954

20-
set(REQUIRED_QT_VERSION 5.12.0)
21-
find_package(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
55+
set(REQUIRED_QT_VERSION 6.8.0)
56+
find_package(Qt6Core ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
2257

2358
find_package(ZLIB)
2459
set_package_properties(ZLIB PROPERTIES
25-
URL "http://www.zlib.net"
60+
URL "https://www.zlib.net"
2661
DESCRIPTION "Support for gzip compressed files and data streams"
2762
TYPE REQUIRED
28-
PURPOSE "Required by the core KDE libraries and some critical kioslaves"
63+
PURPOSE "Support for gzip compressed files and data streams"
2964
)
3065

3166
find_package(BZip2)
3267
set_package_properties(BZip2 PROPERTIES
3368
URL "https://sourceware.org/bzip2/"
3469
DESCRIPTION "Support for BZip2 compressed files and data streams"
35-
TYPE RECOMMENDED
70+
TYPE ${BZIP2_PACKAGE_TYPE}
3671
PURPOSE "Support for BZip2 compressed files and data streams"
3772
)
3873

3974
find_package(LibLZMA)
4075
set_package_properties(LibLZMA PROPERTIES
41-
URL "http://tukaani.org/xz/"
76+
URL "https://tukaani.org/xz/"
4277
DESCRIPTION "Support for xz compressed files and data streams"
78+
TYPE ${LIBLZMA_PACKAGE_TYPE}
4379
PURPOSE "Support for xz compressed files and data streams"
4480
)
45-
include_directories(
46-
${ZLIB_INCLUDE_DIR}
81+
82+
find_package(OpenSSL)
83+
set_package_properties(OpenSSL PROPERTIES
84+
URL "https://www.openssl.org/"
85+
DESCRIPTION "Support for encrypted archives"
86+
TYPE ${OPENSSL_PACKAGE_TYPE}
87+
PURPOSE "Support for encrypted archives"
88+
)
89+
90+
91+
find_package(PkgConfig ${PKGCONFIG_REQUIRED_TYPE})
92+
if (PkgConfig_FOUND)
93+
pkg_check_modules(LibZstd ${LIBZSTD_REQUIRED_TYPE} IMPORTED_TARGET "libzstd")
94+
endif()
95+
add_feature_info(LibZstd LibZstd_FOUND
96+
"Support for zstd compressed files and data streams"
4797
)
4898

4999
include(ECMSetupVersion)
50100
include(ECMGenerateHeaders)
51101
include(ECMQtDeclareLoggingCategory)
52-
include(ECMAddQch)
102+
include(ECMDeprecationSettings)
103+
include(ECMPoQmTools)
53104

54105
set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].")
55106

56-
option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
57-
add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")
58-
107+
set(karchive_version_header "${CMAKE_CURRENT_BINARY_DIR}/src/karchive_version.h")
59108
ecm_setup_version(PROJECT
60109
VARIABLE_PREFIX KARCHIVE
61-
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/karchive_version.h"
62-
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ArchiveConfigVersion.cmake"
63-
SOVERSION 5)
64-
add_definitions(-DQT_NO_FOREACH)
65-
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050d00)
110+
VERSION_HEADER "${karchive_version_header}"
111+
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfigVersion.cmake"
112+
SOVERSION 6)
113+
114+
ecm_set_disabled_deprecation_versions(
115+
QT 6.10
116+
)
117+
66118

67119
add_subdirectory(src)
68120
if (BUILD_TESTING)
69121
add_subdirectory(autotests)
70122
add_subdirectory(tests)
71123
endif()
72124

73-
# create a Config.cmake and a ConfigVersion.cmake file and install them
74-
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Archive")
75-
76-
if (BUILD_QCH)
77-
ecm_install_qch_export(
78-
TARGETS KF5Archive_QCH
79-
FILE KF5ArchiveQchTargets.cmake
80-
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
81-
COMPONENT Devel
82-
)
83-
set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5ArchiveQchTargets.cmake\")")
125+
if (BUILD_FUZZERS)
126+
add_subdirectory(autotests/ossfuzz)
84127
endif()
85128

129+
ecm_install_po_files_as_qm(poqm)
130+
131+
# create a Config.cmake and a ConfigVersion.cmake file and install them
132+
set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6Archive")
133+
86134
include(CMakePackageConfigHelpers)
87135

88136
configure_package_config_file(
89-
"${CMAKE_CURRENT_SOURCE_DIR}/KF5ArchiveConfig.cmake.in"
90-
"${CMAKE_CURRENT_BINARY_DIR}/KF5ArchiveConfig.cmake"
137+
"${CMAKE_CURRENT_SOURCE_DIR}/KF6ArchiveConfig.cmake.in"
138+
"${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfig.cmake"
91139
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
92140
)
93141

94-
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/karchive_version.h
95-
DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}
142+
install(FILES ${karchive_version_header}
143+
DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KArchive
96144
COMPONENT Devel)
97145

98146
install(FILES
99-
"${CMAKE_CURRENT_BINARY_DIR}/KF5ArchiveConfig.cmake"
100-
"${CMAKE_CURRENT_BINARY_DIR}/KF5ArchiveConfigVersion.cmake"
147+
"${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfig.cmake"
148+
"${CMAKE_CURRENT_BINARY_DIR}/KF6ArchiveConfigVersion.cmake"
101149
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
102150
COMPONENT Devel)
103151

104-
install(EXPORT KF5ArchiveTargets
152+
install(EXPORT KF6ArchiveTargets
105153
DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
106-
FILE KF5ArchiveTargets.cmake
107-
NAMESPACE KF5::)
154+
FILE KF6ArchiveTargets.cmake
155+
NAMESPACE KF6::)
156+
157+
include(ECMFeatureSummary)
158+
ecm_feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
108159

109-
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
160+
kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)

src/karchive/KF5ArchiveConfig.cmake.in

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
@PACKAGE_INIT@
2+
3+
include(CMakeFindDependencyMacro)
4+
find_dependency(Qt6Core @REQUIRED_QT_VERSION@)
5+
6+
7+
set(KArchive_HAVE_ZLIB "@ZLIB_FOUND@")
8+
set(KArchive_HAVE_BZIP2 "@BZIP2_FOUND@")
9+
set(KArchive_HAVE_LZMA "@LIBLZMA_FOUND@")
10+
set(KArchive_HAVE_OPENSSL "@OpenSSL_FOUND@")
11+
set(KArchive_HAVE_ZSTD "@LibZstd_FOUND@")
12+
13+
if (NOT @BUILD_SHARED_LIBS@)
14+
if (@ZLIB_FOUND@)
15+
find_dependency(ZLIB)
16+
endif()
17+
18+
if (@BZIP2_FOUND@)
19+
find_dependency(BZip2)
20+
endif()
21+
22+
if (@LIBLZMA_FOUND@)
23+
find_dependency(LibLZMA)
24+
endif()
25+
26+
if (@OpenSSL_FOUND@)
27+
find_dependency(OpenSSL)
28+
endif()
29+
30+
if (@LibZstd_FOUND@)
31+
find_package(PkgConfig)
32+
pkg_check_modules(LibZstd IMPORTED_TARGET "libzstd")
33+
endif()
34+
endif()
35+
36+
include("${CMAKE_CURRENT_LIST_DIR}/KF6ArchiveTargets.cmake")

0 commit comments

Comments
 (0)