Dpdk build will default to static linking of its libraries if
`default_library` option is not specified. When shared is expected, we
should explicitely set the `default_library` option to `shared`.
This saves 586MB on the derivation output size:
```
95M /nix/store/qydxxmcnh1w8yz58n36345kg3siimqip-dpdk-22.11.1
681M /nix/store/pxvc5r3jvba1i96cma36akr7cnvnac3w-dpdk-22.11.1
```
Make it easier optimize DPDK for a CPU family. The conservative default
remains (e.g. nehalem for x86_64), but a user may override it for better
utilization of recent CPU models, e.g. `{ machine = "x86-64-v4"; }` for
AVX512 support.
This allows for static building against DPDK. I would rather have all
nixpkgs users link properly against the shared libraries, but fixing
odp-dpdk looks like it will require patching their autoconf scripts.
DPDK defaults to reading machine info from /sys unless specific platform
info is provided at configure time. Tell it to build a generic version
instead of trying to optimize based on the build host.
Closure size 941M -> 825M by getting rid of an unneeded dependency on
python3-docutils. This was dragged in by Sphinx cache files being
installed in the derivation output.
rdma-core contains libmlx4/libmlx5 which are required for DPDK to be
able to run using Mellanox NIC devices.
This has a non-trivial closure size impact (730M -> 941M) but the size
increase is almost entirely driven by adding systemd to the transitive
closure, which we should expect is present anyway on most NixOS systems.
So, in practice, this is expected to be close to no-op in size increase.
continuation of #109595
pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.
python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
* treewide: http -> https sources
This updates the source urls of all top-level packages from http to
https where possible.
* buildtorrent: fix url and tab -> spaces
DPDK kernel modules are optional and its libraries do not reference them.
This allows to move the packages that depend on DPDK out of linuxPackages,
since they do not depend on kernel version.