nixpkgs/pkgs/development/libraries/gobject-introspection
Artturin 277a2669d2 gobject-introspection: Conditionalize depsTargetTargetPropagated
Fixes ↓

```
nix-repl> pkgsCross.x86_64-freebsd.pkgsBuildHost.gobject-introspection
error: Don't know how to run x86_64-unknown-freebsd executables.
```

The unwrapped already doesn't error

```
nix-repl> pkgsCross.x86_64-freebsd.pkgsBuildHost.gobject-introspection-unwrapped
«derivation /nix/store/xq4q4vigy2glmfng2h6bbr4sysyk8ipz-gobject-introspection-1.82.0.drv»
```

7b1cffdd2e/pkgs/development/libraries/gobject-introspection/default.nix (L114)

It's caused by `depsTargetTargetPropagated = [ overridenTargetUnwrappedGir ];` in the wrapper

In `graphene` there is
`PATH=${python3.withPackages (pp: [ pp.pygobject3 pp.tappy ])}/bin:$PATH patchShebangs tests/introspection.py`

Which causes the `Don't know` error in `pkgsCross.x86_64-freebsd.pkgsBuildHost.graphene`

because `python3` and `pygobject3` will be from `pkgsHostTarget`

and then `pygobject3` has `gobject-introspection` from `pkgsHostTarget`

and then that `gobject-introspection` will have `pkgsCross.x86_64-freebsd.pkgsCross.x86_64-freebsd.buildPackages.pkgsTargetTarget.gobject-introspection.gobject-introspection` in `depsTargetTargetPropagated`

To test that importing the python library `gi` works without `depsTargetTargetPropagated`

```nix
let
  pkgs =
    (import ./. {
      crossSystem = (import ./lib).systems.examples.aarch64-multiplatform;
      # On `master` uncomment this and comment `propagatedBuildInputs` below and you'll get
      # error: Don't know how to run x86_64-unknown-freebsd executables.
      #crossSystem = (import ./lib).systems.examples.x86_64-freebsd;
      overlays = [
        (_: prev: {
          pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
            (_: pprev: {
              pygobject3-test = pprev.pygobject3.overrideAttrs {
                propagatedBuildInputs = [
                  pprev.pycairo
                  (prev.gobject-introspection.overrideAttrs { depsTargetTargetPropagated = [ ]; })
                ];
              };
            })
          ];
        })
      ];
    }).pkgs;
  pyr = pkgs.pkgsBuildHost.python3Packages.python.withPackages (pp: [ pp.pygobject3-test ]);
in
pkgs.pkgsBuildBuild.runCommand "test" { } ''
  "${pyr.interpreter}" -c "import gi" && touch "$out"
''
```
2024-11-07 23:44:23 +02:00
..
wrappers
absolute_gir_path.patch
absolute_shlib_path.patch
default.nix gobject-introspection-unwrapped: drop conflicting patch 2024-10-15 21:02:24 +01:00
setup-hook.sh
wrapper.nix gobject-introspection: Conditionalize depsTargetTargetPropagated 2024-11-07 23:44:23 +02:00