2021-08-09 02:47:07 +02:00
|
|
|
{ ... }:
|
|
|
|
|
|
|
|
self: super:
|
|
|
|
|
|
|
|
{
|
|
|
|
# Statically linked ECL with statically linked dependencies.
|
|
|
|
# Works quite well, but solving this properly in a nixpkgs
|
|
|
|
# context will require figuring out cross compilation (for
|
|
|
|
# pkgsStatic), so we're gonna use this override for now.
|
|
|
|
#
|
|
|
|
# Note that ecl-static does mean that we have things
|
|
|
|
# statically linked against GMP and ECL which are LGPL.
|
|
|
|
# I believe this should be alright: The way ppl are gonna
|
|
|
|
# interact with the distributed binaries (i. e. the binary
|
|
|
|
# cache) is Nix in the depot monorepo, so the separability
|
|
|
|
# requirement should be satisfied: Source code or overriding
|
|
|
|
# would be available as ways to swap out the used GMP in the
|
|
|
|
# program.
|
|
|
|
# See https://www.gnu.org/licenses/gpl-faq.en.html#LGPLStaticVsDynamic
|
|
|
|
ecl-static = (super.pkgsMusl.ecl.override {
|
|
|
|
inherit (self.pkgsStatic) gmp libffi boehmgc;
|
2022-01-27 12:42:23 +01:00
|
|
|
}).overrideAttrs (drv: rec {
|
|
|
|
# version must not be changed as it indicates where to find the bundled libs,
|
|
|
|
# using ecl HEAD is necessary for us since it includes multiple fixes to do
|
|
|
|
# with bytecode compilation and allows to concatenate fasc files again.
|
|
|
|
src = self.fetchFromGitLab {
|
|
|
|
owner = "embeddable-common-lisp";
|
|
|
|
repo = "ecl";
|
|
|
|
rev = "1c989247c1b0bf1d38a76aec30b9ca5e41afe1e3";
|
|
|
|
sha256 = "0bzjqw6m1kk5z5b81yizic347k931msp5lf78x65dcw3fqfwv3xn";
|
|
|
|
};
|
2021-08-09 02:47:07 +02:00
|
|
|
configureFlags = drv.configureFlags ++ [
|
|
|
|
"--disable-shared"
|
|
|
|
"--with-dffi=no" # will fail at runtime anyways if statically linked
|
|
|
|
];
|
|
|
|
});
|
|
|
|
}
|