* feat(windows): split host tools from target artifacts
Adds the x86_64-windows pseudo-system, and splits the two halves that
were previously keyed together:
lgpm -> BUILD system. It RUNS during the build to install the
.lgx, so on a cross target it must be a native binary.
nix-bundle-lgx -> TARGET. It decides the variant name and the library
extension from its own pkgs, so keying it by the build
system labelled a Windows package "linux-amd64" and
looked for a .so payload that was really a .dll.
Getting this backwards fails in a way that names neither cause: the .lgx
build died with "main file 'capability_module_plugin.so' not found",
pointing at the payload rather than at the extension having been derived
from the wrong platform.
The install step itself is file shuffling on the builder, so it uses
pkgsBuildBuild.
NOT yet sufficient to enable installedModules on Windows: lgpm then
fail-closes with "Package does not contain variant for platform:
linux-x86_64-dev (package provides: windows-x86_64-dev)" -- which is
CORRECT behaviour. Cross-installation needs a platform override on lgpm,
which does not exist yet.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* feat(windows): pass --platform when target differs from build
Completes the cross install path: lgpm runs on the builder, so it is told
which platform it is laying out. The flag is emitted ONLY when
hostPlatform != buildPlatform, so a normal build keeps the fail-closed
check that stops a package being installed for the wrong platform.
Nix doubles are <arch>-<os> and lgpm variants are <os>-<arch> with
different arch spellings, so the name is translated rather than passed
through -- x86_64-windows became "x86_64-windows-dev" and was rejected
against a package providing "windows-x86_64-dev". Unknown targets throw
rather than guess: a wrong variant name is rejected far from here.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* chore(deps): re-pin logos-nix, nix-bundle-lgx and logos-package-manager to their merged revs
L1 (logos-nix) and L3 (nix-bundle-lgx, logos-package-manager) are on their
default branches now, so the lock can name the merged revs instead of the
pre-merge branch tips it was resolving against while those PRs were open.
This is the level where the whole transitive tree lands on the merged logos-nix:
logos-package, nix-bundle-dir and logos-package-manager all move with it.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>