Sophie

Sophie

distrib > Mageia > 8 > x86_64 > by-pkgid > 5b9639f38e74fcb65c80e039b7155581 > files > 3

cryfs-0.10.2-3.mga8.src.rpm

From b78c249ce3e048d481d11347c98a86e6669ff5bb Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <asturm@gentoo.org>
Date: Sun, 16 Jun 2019 10:59:46 +0200
Subject: [PATCH 1/3] Add USE_SYSTEM_LIBS option to build without bundled libs

headers: s/vendor_cryptopp/cryptopp/

Only gtest and crypto++ are being unbundled. In release/0.10 branch,
bundled spdlog version is too old for Gentoo to satisfy with system-lib.
---
 CMakeLists.txt                                    | 15 ++++++++++++++-
 .../compressing/compressors/Gzip.cpp              |  2 +-
 src/cpp-utils/CMakeLists.txt                      |  6 +++++-
 src/cpp-utils/crypto/cryptopp_byte.h              |  2 +-
 src/cpp-utils/crypto/hash/Hash.cpp                |  2 +-
 src/cpp-utils/crypto/kdf/Scrypt.cpp               |  2 +-
 src/cpp-utils/crypto/symmetric/CFB_Cipher.h       |  2 +-
 src/cpp-utils/crypto/symmetric/GCM_Cipher.h       |  2 +-
 src/cpp-utils/crypto/symmetric/ciphers.h          | 10 +++++-----
 src/cpp-utils/data/Data.cpp                       |  2 +-
 src/cpp-utils/data/FixedSizeData.h                |  2 +-
 src/cpp-utils/random/OSRandomGenerator.h          |  2 +-
 src/cpp-utils/random/RandomGeneratorThread.h      |  2 +-
 src/cryfs/localstate/BasedirMetadata.cpp          |  2 +-
 test/blobstore/CMakeLists.txt                     |  2 +-
 test/blockstore/CMakeLists.txt                    |  2 +-
 test/cpp-utils/CMakeLists.txt                     |  2 +-
 test/cryfs-cli/CMakeLists.txt                     |  2 +-
 test/cryfs/CMakeLists.txt                         |  2 +-
 test/cryfs/config/CompatibilityTest.cpp           |  2 +-
 test/fspp/CMakeLists.txt                          |  2 +-
 test/gitversion/CMakeLists.txt                    |  2 +-
 test/my-gtest-main/CMakeLists.txt                 |  2 +-
 test/parallelaccessstore/CMakeLists.txt           |  2 +-
 24 files changed, 45 insertions(+), 28 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fdbff715..9797d1ee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,6 +17,7 @@ require_clang_version(4.0)
 option(BUILD_TESTING "build test cases" OFF)
 option(CRYFS_UPDATE_CHECKS "let cryfs check for updates and security vulnerabilities" ON)
 option(DISABLE_OPENMP "allow building without OpenMP libraries. This will cause performance degradations." OFF)
+option(USE_SYSTEM_LIBS "build with system libs instead of bundled libs" OFF)
 
 # The following options are helpful for development and/or CI
 option(USE_WERROR "build with -Werror flag")
@@ -48,7 +49,19 @@ if(MSVC)
   add_definitions(/bigobj)
 endif()
 
-add_subdirectory(vendor EXCLUDE_FROM_ALL)
+if(USE_SYSTEM_LIBS)
+    include(FindPkgConfig)
+    pkg_check_modules(CRYPTOPP REQUIRED cryptopp>=8.2)
+    add_subdirectory(vendor/spdlog EXCLUDE_FROM_ALL)
+    if(BUILD_TESTING)
+        find_package(GTest CONFIG REQUIRED)
+        set(GOOGLETEST_LIBS GTest::gtest GTest::gmock)
+    endif()
+else()
+    add_subdirectory(vendor EXCLUDE_FROM_ALL)
+    set(GOOGLETEST_LIBS googletest)
+endif()
+
 add_subdirectory(src)
 add_subdirectory(doc)
 add_subdirectory(test)
diff --git a/src/blockstore/implementations/compressing/compressors/Gzip.cpp b/src/blockstore/implementations/compressing/compressors/Gzip.cpp
index 67b7f49a..64f13e97 100644
--- a/src/blockstore/implementations/compressing/compressors/Gzip.cpp
+++ b/src/blockstore/implementations/compressing/compressors/Gzip.cpp
@@ -1,6 +1,6 @@
 #include "cpp-utils/crypto/cryptopp_byte.h"
 #include "Gzip.h"
-#include <vendor_cryptopp/gzip.h>
+#include <cryptopp/gzip.h>
 
 using cpputils::Data;
 
diff --git a/src/cpp-utils/CMakeLists.txt b/src/cpp-utils/CMakeLists.txt
index f66f99f8..b57e02ba 100644
--- a/src/cpp-utils/CMakeLists.txt
+++ b/src/cpp-utils/CMakeLists.txt
@@ -89,7 +89,11 @@ target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_THREAD_LIBS_INIT})
 
 target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_DL_LIBS})
 
-target_link_libraries(${PROJECT_NAME} PUBLIC spdlog cryptopp)
+if(USE_SYSTEM_LIBS)
+    target_link_libraries(${PROJECT_NAME} PUBLIC spdlog ${CRYPTOPP_LIBRARIES})
+else()
+    target_link_libraries(${PROJECT_NAME} PUBLIC spdlog cryptopp)
+endif()
 
 target_add_boost(${PROJECT_NAME} filesystem system thread chrono)
 target_enable_style_warnings(${PROJECT_NAME})
diff --git a/src/cpp-utils/crypto/cryptopp_byte.h b/src/cpp-utils/crypto/cryptopp_byte.h
index e00cf7cf..363990e9 100644
--- a/src/cpp-utils/crypto/cryptopp_byte.h
+++ b/src/cpp-utils/crypto/cryptopp_byte.h
@@ -2,7 +2,7 @@
 #ifndef _CPPUTILS_CRYPTO_CRYPTOPP_BYTE_H
 #define _CPPUTILS_CRYPTO_CRYPTOPP_BYTE_H
 
-#include <vendor_cryptopp/cryptlib.h>
+#include <cryptopp/cryptlib.h>
 
 // If we're running an older CryptoPP version, CryptoPP::byte isn't defined yet.
 // Define it. Refer to "byte" type in the global namespace (placed by CryptoPP).
diff --git a/src/cpp-utils/crypto/hash/Hash.cpp b/src/cpp-utils/crypto/hash/Hash.cpp
index 696cdeaf..e07d28da 100644
--- a/src/cpp-utils/crypto/hash/Hash.cpp
+++ b/src/cpp-utils/crypto/hash/Hash.cpp
@@ -1,6 +1,6 @@
 #include "Hash.h"
 #include <cpp-utils/random/Random.h>
-#include <vendor_cryptopp/sha.h>
+#include <cryptopp/sha.h>
 
 using cpputils::Random;
 using CryptoPP::SHA512;
diff --git a/src/cpp-utils/crypto/kdf/Scrypt.cpp b/src/cpp-utils/crypto/kdf/Scrypt.cpp
index f97d6940..e26db8db 100644
--- a/src/cpp-utils/crypto/kdf/Scrypt.cpp
+++ b/src/cpp-utils/crypto/kdf/Scrypt.cpp
@@ -1,5 +1,5 @@
 #include "Scrypt.h"
-#include <vendor_cryptopp/scrypt.h>
+#include <cryptopp/scrypt.h>
 
 using std::string;
 
diff --git a/src/cpp-utils/crypto/symmetric/CFB_Cipher.h b/src/cpp-utils/crypto/symmetric/CFB_Cipher.h
index 217111d9..0ea6355c 100644
--- a/src/cpp-utils/crypto/symmetric/CFB_Cipher.h
+++ b/src/cpp-utils/crypto/symmetric/CFB_Cipher.h
@@ -7,7 +7,7 @@
 #include "../../data/Data.h"
 #include "../../random/Random.h"
 #include <boost/optional.hpp>
-#include <vendor_cryptopp/modes.h>
+#include <cryptopp/modes.h>
 #include "Cipher.h"
 #include "EncryptionKey.h"
 
diff --git a/src/cpp-utils/crypto/symmetric/GCM_Cipher.h b/src/cpp-utils/crypto/symmetric/GCM_Cipher.h
index 87404c8f..385f399f 100644
--- a/src/cpp-utils/crypto/symmetric/GCM_Cipher.h
+++ b/src/cpp-utils/crypto/symmetric/GCM_Cipher.h
@@ -6,7 +6,7 @@
 #include "../../data/FixedSizeData.h"
 #include "../../data/Data.h"
 #include "../../random/Random.h"
-#include <vendor_cryptopp/gcm.h>
+#include <cryptopp/gcm.h>
 #include "Cipher.h"
 #include "EncryptionKey.h"
 
diff --git a/src/cpp-utils/crypto/symmetric/ciphers.h b/src/cpp-utils/crypto/symmetric/ciphers.h
index 7a8f8d45..61a6a25a 100644
--- a/src/cpp-utils/crypto/symmetric/ciphers.h
+++ b/src/cpp-utils/crypto/symmetric/ciphers.h
@@ -2,11 +2,11 @@
 #ifndef MESSMER_CPPUTILS_CRYPTO_SYMMETRIC_CIPHERS_H_
 #define MESSMER_CPPUTILS_CRYPTO_SYMMETRIC_CIPHERS_H_
 
-#include <vendor_cryptopp/aes.h>
-#include <vendor_cryptopp/twofish.h>
-#include <vendor_cryptopp/serpent.h>
-#include <vendor_cryptopp/cast.h>
-#include <vendor_cryptopp/mars.h>
+#include <cryptopp/aes.h>
+#include <cryptopp/twofish.h>
+#include <cryptopp/serpent.h>
+#include <cryptopp/cast.h>
+#include <cryptopp/mars.h>
 #include "GCM_Cipher.h"
 #include "CFB_Cipher.h"
 
diff --git a/src/cpp-utils/data/Data.cpp b/src/cpp-utils/data/Data.cpp
index c8a3a25b..3a6d41eb 100644
--- a/src/cpp-utils/data/Data.cpp
+++ b/src/cpp-utils/data/Data.cpp
@@ -1,6 +1,6 @@
 #include "Data.h"
 #include <stdexcept>
-#include <vendor_cryptopp/hex.h>
+#include <cryptopp/hex.h>
 #include <cpp-utils/crypto/cryptopp_byte.h>
 
 using std::istream;
diff --git a/src/cpp-utils/data/FixedSizeData.h b/src/cpp-utils/data/FixedSizeData.h
index 832a96ee..e45127a4 100644
--- a/src/cpp-utils/data/FixedSizeData.h
+++ b/src/cpp-utils/data/FixedSizeData.h
@@ -2,7 +2,7 @@
 #ifndef MESSMER_CPPUTILS_DATA_FIXEDSIZEDATA_H_
 #define MESSMER_CPPUTILS_DATA_FIXEDSIZEDATA_H_
 
-#include <vendor_cryptopp/hex.h>
+#include <cryptopp/hex.h>
 #include <string>
 #include <cstring>
 #include "../assert/assert.h"
diff --git a/src/cpp-utils/random/OSRandomGenerator.h b/src/cpp-utils/random/OSRandomGenerator.h
index 18a8002d..8c8dc6f5 100644
--- a/src/cpp-utils/random/OSRandomGenerator.h
+++ b/src/cpp-utils/random/OSRandomGenerator.h
@@ -4,7 +4,7 @@
 
 #include "cpp-utils/crypto/cryptopp_byte.h"
 #include "RandomGenerator.h"
-#include <vendor_cryptopp/osrng.h>
+#include <cryptopp/osrng.h>
 
 namespace cpputils {
     class OSRandomGenerator final : public RandomGenerator {
diff --git a/src/cpp-utils/random/RandomGeneratorThread.h b/src/cpp-utils/random/RandomGeneratorThread.h
index 593750ed..103c00d7 100644
--- a/src/cpp-utils/random/RandomGeneratorThread.h
+++ b/src/cpp-utils/random/RandomGeneratorThread.h
@@ -4,7 +4,7 @@
 
 #include "../thread/LoopThread.h"
 #include "ThreadsafeRandomDataBuffer.h"
-#include <vendor_cryptopp/osrng.h>
+#include <cryptopp/osrng.h>
 
 namespace cpputils {
     //TODO Test
diff --git a/src/cryfs/localstate/BasedirMetadata.cpp b/src/cryfs/localstate/BasedirMetadata.cpp
index d32ced93..3de2d3ad 100644
--- a/src/cryfs/localstate/BasedirMetadata.cpp
+++ b/src/cryfs/localstate/BasedirMetadata.cpp
@@ -1,7 +1,7 @@
 #include "BasedirMetadata.h"
 #include <boost/property_tree/ptree.hpp>
 #include <boost/property_tree/json_parser.hpp>
-#include <vendor_cryptopp/sha.h>
+#include <cryptopp/sha.h>
 #include <boost/filesystem/operations.hpp>
 #include "LocalStateDir.h"
 #include <cpp-utils/logging/logging.h>
diff --git a/test/blobstore/CMakeLists.txt b/test/blobstore/CMakeLists.txt
index 05e98b8d..342d5626 100644
--- a/test/blobstore/CMakeLists.txt
+++ b/test/blobstore/CMakeLists.txt
@@ -27,7 +27,7 @@ set(SOURCES
 )
 
 add_executable(${PROJECT_NAME} ${SOURCES})
-target_link_libraries(${PROJECT_NAME} my-gtest-main googletest blobstore)
+target_link_libraries(${PROJECT_NAME} my-gtest-main ${GOOGLETEST_LIBS} blobstore)
 add_test(${PROJECT_NAME} ${PROJECT_NAME})
 
 target_enable_style_warnings(${PROJECT_NAME})
diff --git a/test/blockstore/CMakeLists.txt b/test/blockstore/CMakeLists.txt
index ca63acce..6dc5f505 100644
--- a/test/blockstore/CMakeLists.txt
+++ b/test/blockstore/CMakeLists.txt
@@ -42,7 +42,7 @@ set(SOURCES
 )
 
 add_executable(${PROJECT_NAME} ${SOURCES})
-target_link_libraries(${PROJECT_NAME} my-gtest-main googletest blockstore)
+target_link_libraries(${PROJECT_NAME} my-gtest-main ${GOOGLETEST_LIBS} blockstore)
 add_test(${PROJECT_NAME} ${PROJECT_NAME})
 
 target_enable_style_warnings(${PROJECT_NAME})
diff --git a/test/cpp-utils/CMakeLists.txt b/test/cpp-utils/CMakeLists.txt
index 02cc9d5d..55f367eb 100644
--- a/test/cpp-utils/CMakeLists.txt
+++ b/test/cpp-utils/CMakeLists.txt
@@ -70,7 +70,7 @@ target_activate_cpp14(${PROJECT_NAME}_exit_signal)
 target_link_libraries(${PROJECT_NAME}_exit_signal cpp-utils)
 
 add_executable(${PROJECT_NAME} ${SOURCES})
-target_link_libraries(${PROJECT_NAME} my-gtest-main googletest cpp-utils)
+target_link_libraries(${PROJECT_NAME} my-gtest-main ${GOOGLETEST_LIBS} cpp-utils)
 add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_exit_status ${PROJECT_NAME}_exit_signal)
 add_test(${PROJECT_NAME} ${PROJECT_NAME})
 
diff --git a/test/cryfs-cli/CMakeLists.txt b/test/cryfs-cli/CMakeLists.txt
index 2d0b38c5..76fd75bc 100644
--- a/test/cryfs-cli/CMakeLists.txt
+++ b/test/cryfs-cli/CMakeLists.txt
@@ -16,7 +16,7 @@ set(SOURCES
 )
 
 add_executable(${PROJECT_NAME} ${SOURCES})
-target_link_libraries(${PROJECT_NAME} my-gtest-main googletest cryfs-cli cryfs-unmount fspp-fuse)
+target_link_libraries(${PROJECT_NAME} my-gtest-main ${GOOGLETEST_LIBS} cryfs-cli cryfs-unmount fspp-fuse)
 add_test(${PROJECT_NAME} ${PROJECT_NAME})
 
 target_enable_style_warnings(${PROJECT_NAME})
diff --git a/test/cryfs/CMakeLists.txt b/test/cryfs/CMakeLists.txt
index 77a025f4..71c74310 100644
--- a/test/cryfs/CMakeLists.txt
+++ b/test/cryfs/CMakeLists.txt
@@ -24,7 +24,7 @@ set(SOURCES
 )
 
 add_executable(${PROJECT_NAME} ${SOURCES})
-target_link_libraries(${PROJECT_NAME} my-gtest-main googletest cryfs)
+target_link_libraries(${PROJECT_NAME} my-gtest-main ${GOOGLETEST_LIBS} cryfs)
 add_test(${PROJECT_NAME} ${PROJECT_NAME})
 
 target_enable_style_warnings(${PROJECT_NAME})
diff --git a/test/cryfs/config/CompatibilityTest.cpp b/test/cryfs/config/CompatibilityTest.cpp
index 36c1871c..a1d5f22b 100644
--- a/test/cryfs/config/CompatibilityTest.cpp
+++ b/test/cryfs/config/CompatibilityTest.cpp
@@ -3,7 +3,7 @@
 #include <vector>
 #include <boost/filesystem.hpp>
 #include <cpp-utils/data/Data.h>
-#include <vendor_cryptopp/hex.h>
+#include <cryptopp/hex.h>
 #include <cpp-utils/crypto/symmetric/ciphers.h>
 #include <cpp-utils/tempfile/TempFile.h>
 #include <cryfs/config/CryConfigFile.h>
diff --git a/test/fspp/CMakeLists.txt b/test/fspp/CMakeLists.txt
index dabff1f1..c3949206 100644
--- a/test/fspp/CMakeLists.txt
+++ b/test/fspp/CMakeLists.txt
@@ -102,7 +102,7 @@ set(SOURCES
         testutils/OpenFileHandle.cpp testutils/OpenFileHandle.h)
 
 add_executable(${PROJECT_NAME} ${SOURCES})
-target_link_libraries(${PROJECT_NAME} my-gtest-main googletest fspp-interface fspp-fuse)
+target_link_libraries(${PROJECT_NAME} my-gtest-main ${GOOGLETEST_LIBS} fspp-interface fspp-fuse)
 add_test(${PROJECT_NAME} ${PROJECT_NAME})
 
 target_enable_style_warnings(${PROJECT_NAME})
diff --git a/test/gitversion/CMakeLists.txt b/test/gitversion/CMakeLists.txt
index 51a5ccc1..396289fa 100644
--- a/test/gitversion/CMakeLists.txt
+++ b/test/gitversion/CMakeLists.txt
@@ -6,7 +6,7 @@ set(SOURCES
 )
 
 add_executable(${PROJECT_NAME} ${SOURCES})
-target_link_libraries(${PROJECT_NAME} my-gtest-main googletest gitversion)
+target_link_libraries(${PROJECT_NAME} my-gtest-main ${GOOGLETEST_LIBS} gitversion)
 add_test(${PROJECT_NAME} ${PROJECT_NAME})
 
 target_enable_style_warnings(${PROJECT_NAME})
diff --git a/test/my-gtest-main/CMakeLists.txt b/test/my-gtest-main/CMakeLists.txt
index 1d1e7e08..de4fd107 100644
--- a/test/my-gtest-main/CMakeLists.txt
+++ b/test/my-gtest-main/CMakeLists.txt
@@ -5,7 +5,7 @@ set(SOURCES
 )
 
 add_library(${PROJECT_NAME} STATIC ${SOURCES})
-target_link_libraries(${PROJECT_NAME} PUBLIC googletest cpp-utils)
+target_link_libraries(${PROJECT_NAME} PUBLIC ${GOOGLETEST_LIBS} cpp-utils)
 target_add_boost(${PROJECT_NAME} filesystem system)
 target_include_directories(${PROJECT_NAME} PUBLIC .)
 
diff --git a/test/parallelaccessstore/CMakeLists.txt b/test/parallelaccessstore/CMakeLists.txt
index 16170d17..97379304 100644
--- a/test/parallelaccessstore/CMakeLists.txt
+++ b/test/parallelaccessstore/CMakeLists.txt
@@ -6,7 +6,7 @@ set(SOURCES
 )
 
 add_executable(${PROJECT_NAME} ${SOURCES})
-target_link_libraries(${PROJECT_NAME} my-gtest-main googletest parallelaccessstore)
+target_link_libraries(${PROJECT_NAME} my-gtest-main ${GOOGLETEST_LIBS} parallelaccessstore)
 add_test(${PROJECT_NAME} ${PROJECT_NAME})
 
 target_enable_style_warnings(${PROJECT_NAME})
-- 
2.22.0


From 6d5b1dd6f040dbdf3e330962a174c91281b19472 Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <asturm@gentoo.org>
Date: Sun, 16 Jun 2019 15:17:16 +0200
Subject: [PATCH 2/3] Use FeatureSummary

---
 CMakeLists.txt | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9797d1ee..9e37b2e6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,6 +9,7 @@ project(cryfs)
 
 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake-utils)
 include(utils)
+include(FeatureSummary)
 
 require_gcc_version(5.0)
 require_clang_version(4.0)
@@ -66,3 +67,5 @@ add_subdirectory(src)
 add_subdirectory(doc)
 add_subdirectory(test)
 add_subdirectory(cpack)
+
+feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
-- 
2.22.0