feat: bump flake.lock
nix-bundle-logos-module-install
A Nix bundler that packages a module derivation into an .lgx file and installs it via lgpm. Combines nix-bundle-lgx (LGX packaging) and lgpm (installation) into a single step.
Bundlers
#default / #dev
Bundles the derivation's lib/ directory into a dev-variant .lgx package (libraries resolve from /nix/store at runtime), then installs it via lgpm. Suitable for development environments where the Nix store is available.
nix bundle --bundler github:logos-co/nix-bundle-logos-module-install#dev github:logos-co/logos-accounts-module#lib
#portable
First passes the derivation through nix-bundle-dir to create a self-contained directory with relocated rpaths, bundles it into a portable-variant .lgx package, then installs it via lgpm. Suitable for distribution without Nix store dependency.
nix bundle --bundler github:logos-co/nix-bundle-logos-module-install#portable github:logos-co/logos-accounts-module#lib
Output
The bundler produces an installed module directory structure in $out/:
$out/
modules/ # Core modules (type: "core")
my_module/
libmy_module_plugin.dylib
manifest.json
variant
plugins/ # UI plugins (type: "ui", "ui_qml")
my_ui_plugin/
libmy_ui_plugin.dylib
manifest.json
variant
Module type is determined from metadata.json — core modules are installed to modules/, UI plugins to plugins/.
Expected derivation layout
Same as nix-bundle-lgx — the input derivation must expose a lib/ subdirectory containing the shared library:
$out/
lib/
libfoo.dylib # or libfoo.so
metadata.json # optional
Programmatic use
The bundlers can be used as functions in other flakes:
{
inputs.nix-bundle-logos-module-install.url = "github:logos-co/nix-bundle-logos-module-install";
outputs = { nix-bundle-logos-module-install, ... }:
let
installDev = nix-bundle-logos-module-install.bundlers.${system}.dev;
installPortable = nix-bundle-logos-module-install.bundlers.${system}.portable;
# Each returns a derivation with modules/ and/or plugins/ subdirectories
myModuleInstalled = installDev myModuleLib;
myModuleInstalledPortable = installPortable myModuleLib;
in { ... };
}
Modules built with logos-module-builder
Modules built with logos-module-builder automatically get #install and #install-portable package outputs that use this bundler:
nix build github:logos-co/logos-accounts-module#install
nix build github:logos-co/logos-accounts-module#install-portable