Hi,

Following-up on a discussion on #exherbo, about expressing build-time
dependencies for cross-compiled packages (and Gentoo's new BDEPEND),
and where we ended at:
 ciaranm | eh, implementing it should be easy


Previously there was some ML discussion on this subject (and more) [1]
and the multiarch-TODO [2] contains suggestions, so I'm adding the
previous protagonists in explicit CC.


As far as I understand it, the following consensus by the end:

- Introduce `build-time@native` and `build-time@target` labels
  in the dependencies string.

  - build-time@native is for packages that are only needed on the native
    system (CBUILD in GNU/autotools parlance) to build a package or its
    documentation, for example {cmake, *-config, yacc/bison, protoc,
    tex}

  - build-time@target is for packages that are only needed on the target
    system (CHOST) to build a package, for example package
    providing headers and static libraries.

  The terminology is that in the multiarch-TODO.

- Consider that the current `build` label means, in the context of
  cross-compilation, the union of `build-time@native` and `build-time@target`.

  This means that too many packages (all for native and target) would
  get built, but at least there is no chance of a build failing.


  Conversely what happens when not cross-compiling for packages having
  these finer-grained specs: it seems obvious that both `build-time@native`
  and `build-time@target` shall be installed.


After reviewing additional materials I realize that we did not talk about:

- `build-cross` mentioned in the multiarch-TODO whose use case is 
  “cross compiling python needs a native python of the same SLOT,
  icu needs native icu, etc“.

  IMO this could be expressed by build-time@native: ${P_or_less_strict},
  with the requirement that a dependency on self be ignored when not
  cross-compiling.

  We could also consider that a simple `build` adds
   build-time@native: ${P}
  so packagers that are not familiar with cross-compilation make working
  -- albeit slower-to-build -- packages.


We did not talk about run-time dependencies, which are out of scope.


Next steps would be gathering feedback and greater consensus prior to
the “easy” implementation, which, if not done by core paludis developers,
would require some guidance/pointers.


Regards,

-- 
cJ

[1] http://lists.exherbo.org/pipermail/exherbo-dev/2016-February/thread.html
[2] https://exherbo.org/docs/multiarch-TODO.html#labels

_______________________________________________
Exherbo-dev mailing list
[email protected]
http://lists.exherbo.org/mailman/listinfo/exherbo-dev

Reply via email to