From d6e73842b339f6756330b6365601de26b13c3ded Mon Sep 17 00:00:00 2001 From: Gleb Popov <6yearold@gmail.com> Date: Sun, 12 Apr 2026 15:19:16 +0300 Subject: [PATCH 1/2] Cleanup CMakeLists.txt --- src/plugin/CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/plugin/CMakeLists.txt b/src/plugin/CMakeLists.txt index 9617b2bd..073eb07d 100644 --- a/src/plugin/CMakeLists.txt +++ b/src/plugin/CMakeLists.txt @@ -16,7 +16,4 @@ add_library(linuxdeploy_plugin STATIC ) target_link_libraries(linuxdeploy_plugin PUBLIC linuxdeploy_core linuxdeploy_subprocess) -unset(headers) -unset(headers_dir) - install(TARGETS linuxdeploy_plugin) From 26681d8b75d8ac2f07d34c8fe523833d83d69e95 Mon Sep 17 00:00:00 2001 From: Gleb Popov <6yearold@gmail.com> Date: Sun, 12 Apr 2026 15:20:30 +0300 Subject: [PATCH 2/2] Compile fixes for FreeBSD --- src/plugin/plugin.cpp | 4 ++++ src/subprocess/process.cpp | 2 +- src/subprocess/util.cpp | 7 +++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/plugin/plugin.cpp b/src/plugin/plugin.cpp index 2285279b..d774069f 100644 --- a/src/plugin/plugin.cpp +++ b/src/plugin/plugin.cpp @@ -48,7 +48,11 @@ namespace linuxdeploy { // also, look for plugins in current working directory // could be useful in a "use linuxdeploy centrally, but download plugins into project directory" scenario +#ifdef _GNU_SOURCE std::shared_ptr cwd(get_current_dir_name(), free); +#else + std::shared_ptr cwd(getcwd(nullptr, 0), free); +#endif paths.emplace_back(cwd.get()); for (const auto& dir : paths) { diff --git a/src/subprocess/process.cpp b/src/subprocess/process.cpp index 72f05bc3..01ba67b8 100644 --- a/src/subprocess/process.cpp +++ b/src/subprocess/process.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include // local headers diff --git a/src/subprocess/util.cpp b/src/subprocess/util.cpp index d3619c99..d254f8cd 100644 --- a/src/subprocess/util.cpp +++ b/src/subprocess/util.cpp @@ -5,6 +5,13 @@ #include "linuxdeploy/subprocess/util.h" #include "linuxdeploy/util/misc.h" +#ifdef __FreeBSD__ +// On FreeBSD environ has to be declared in the consumer code +extern "C" { + extern char** environ; +} +#endif + namespace linuxdeploy::subprocess { subprocess_env_map_t get_environment() { subprocess_env_map_t result;