diff --git a/ci/docker/Dockerfile b/ci/docker/Dockerfile index b647a7af..7a603dc0 100644 --- a/ci/docker/Dockerfile +++ b/ci/docker/Dockerfile @@ -33,7 +33,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ git \ autoconf \ automake \ - libfuse2 \ cimg-dev \ cmake \ googletest \ diff --git a/include/linuxdeploy/util/misc.h b/include/linuxdeploy/util/misc.h index f954ce7f..7ac7d948 100644 --- a/include/linuxdeploy/util/misc.h +++ b/include/linuxdeploy/util/misc.h @@ -135,7 +135,17 @@ namespace linuxdeploy { } return {}; - }; + } + + // returns a string vector splitted from envVar + static std::vector splitEnv(const char *envVar, char delimiter) { + std::vector result; + const auto ret = getenv(envVar); + if (ret) { + result = split(ret, delimiter); + } + return result; + } } } } diff --git a/src/core/appdir.cpp b/src/core/appdir.cpp index 4a77b3ca..6f918e51 100644 --- a/src/core/appdir.cpp +++ b/src/core/appdir.cpp @@ -123,9 +123,11 @@ namespace linuxdeploy { bool disableCopyrightFilesDeployment = false; public: - PrivateData() : copyOperationsStorage(), stripOperations(), setElfRPathOperations(), visitedFiles(), appDirPath(), excludeLibraryPatterns() { + PrivateData() : copyOperationsStorage(), stripOperations(), setElfRPathOperations(), visitedFiles(), appDirPath() { copyrightFilesManager = copyright::ICopyrightFilesManager::getInstance(); - }; + + excludeLibraryPatterns = util::misc::splitEnv("LINUXDEPLOY_EXCLUDED_LIBRARIES", ';'); + } public: // calculate library directory name for given ELF file, taking system architecture into account @@ -656,7 +658,7 @@ namespace linuxdeploy { AppDir::AppDir(const std::string& path) : AppDir(fs::path(path)) {} void AppDir::setExcludeLibraryPatterns(const std::vector &excludeLibraryPatterns) { - d->excludeLibraryPatterns = excludeLibraryPatterns; + d->excludeLibraryPatterns.insert(d->excludeLibraryPatterns.end(), excludeLibraryPatterns.begin(), excludeLibraryPatterns.end()); } bool AppDir::createBasicStructure() const {