-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for statically linking e2fsprogs #5
Conversation
This is not quite ready yet. TODOs:
|
Ugh, NDK 27 is broken with CMake's builtin Android support ( |
Thanks to Debian for detailing the license per file: https://android.googlesource.com/platform/external/e2fsprogs/+/refs/heads/main/debian/copyright I wasn't thorough enough when looking into the licenses. It turns out not all of I think there are only two ways forward:
|
clang-sys is fine. That's only used during the build and no code is linked into the final executable. winx is also fine because Apache2 with LLVM exception is explicitly meant for GPLv2 compatibility. |
Looks like I'll be relicensing to GPLv2 then. afsr's own code will be GPLv2+, but any compiled binary will effectively be GPLv2 due to the inclusion of e2fsprogs' GPLv2 code. |
It turns out libext2fs is not fully LGPLv2. Some of its code is licensed under GPLv2. This commit relicenses afsr so that the licenses do not conflict, allowing us to distribute binaries. All code here, including code copied from my other projects, is authored by me. Thus, no permission from other people is needed for relicensing. Signed-off-by: Andrew Gunnerson <[email protected]>
This makes it possible to easily build the project on Windows and macOS, where e2fsprogs isn't easily installable. When building with the new `static` feature, mke2fs will be embedded into afsr as a hidden subcommand to avoid any external runtime dependencies. Signed-off-by: Andrew Gunnerson <[email protected]>
Signed-off-by: Andrew Gunnerson <[email protected]>
I'm going to move avbroot's changelog tools ( |
So this would be an additional dependency on all of your projects? Or will they be automatically cloned during build time such that executables contain them all? |
It won't be needed at build time nor runtime. It's purely for me managing releases. For example, in avbroot, I previously had |
Got it |
This makes it possible to easily build the project on Windows and macOS, where e2fsprogs isn't easily installable. When building with the new
static
feature, mke2fs will be embedded into afsr as a hidden subcommand to avoid any external runtime dependencies.This PR also relicenses afsr to GPLv2+ (effectively GPLv2) to resolve license conflicts that previously prevented distribution of binaries.
Issue: #2