Instead of explicitly depending on libelf, use
kernel.moduleBuildDependencies which was introduced in 1e77d0b975
("kernel 4.14 require libelf to compile modules.").
Fixes this:
$ nix-build -A linuxPackages.lttng-modules
[...]
/nix/store/...-linux-4.14.48-dev/lib/modules/4.14.48/source/Makefile:948: \
*** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfu
(Linux 4.16+ has other issues, so mark as broken.)
Uses the HTTPS url for cases where the existing URL has a permanent
redirect. For each domain, at least one fixed derivation URL was
downloaded to test the domain is properly serving downloads.
Also fixes jbake source URL, which was broken.
There is no maintainer for this package, probably not many users.
It requires effort to fix all third-party modules for this old kernel
versions. It might contain unpatched security holes.
For Pixel chromebooks, we have the samus-kernel.
Apart from that https://github.com/GalliumOS/linux might be a good choice.
On linux 3.14, we get errors like
error: 'struct snd_soc_codec' has no member named 'name'
__string( name, codec->CODEC_NAME_FIELD )
indicating that the module is incompatible with the linux API
in this kernel version.
See https://hydra.nixos.org/build/33102405/nixlog/1/raw
All hydra builds against grsec kernels fail; seemingly because
the PaX hardening plugins are incompatible with lttng-modules
(the code writes to locations marked as read-only).
The following parameters are now available:
* hardeningDisable
To disable specific hardening flags
* hardeningEnable
To enable specific hardening flags
Only the cc-wrapper supports this right now, but these may be reused by
other wrappers, builders or setup hooks.
cc-wrapper supports the following flags:
* fortify
* stackprotector
* pie (disabled by default)
* pic
* strictoverflow
* format
* relro
* bindnow
- This unbreaks lttng linux kernel modules[1]
- lttng-tools has grown a dependency on libxml2
[1]: Build tested (for default NixOS Linux kernel) and run tested with
lttng-sessiond (it successfully loads kernel modules).
(And update liburcu to 0.8.4 according to release notes for lttng 2.4.x.)
In addition to new features and bug fixes, version 2.4.x is needed to build
against Linux 3.12 (our new stable kernel).
In most cases, this just meant changing kernelDev (now removed from
linuxPackagesFor) to kernel.dev. Some packages needed more work (though
whether that was because of my changes or because they were already
broken, I'm not sure). Specifics:
* psmouse-alps builds on 3.4 but not 3.10, as noted in the comments that
were already there
* blcr builds on 3.4 but not 3.10, as noted in comments that were
already there
* open-iscsi, ati-drivers, wis-go7007, and openafsClient don't build on
3.4 or 3.10 on this branch or on master, so they're marked broken
* A version-specific kernelHeaders package was added
The following packages were removed:
* atheros/madwifi is superceded by official ath*k modules
* aufs is no longer used by any of our kernels
* broadcom-sta v6 (which was already packaged) replaces broadcom-sta
* exmap has not been updated since 2011 and doesn't build
* iscis-target has not been updated since 2010 and doesn't build
* iwlwifi is part of mainline now and doesn't build
* nivida-x11-legacy-96 hasn't been updated since 2008 and doesn't build
Everything not specifically mentioned above builds successfully on 3.10.
I haven't yet tested on 3.4, but will before opening a pull request.
Signed-off-by: Shea Levy <shea@shealevy.com>
Hydra has these evaluation errors:
at `nixpkgs.linuxPackages.lttngModules.i686-linux' [nixosSrc = ..., nixpkgs = ..., officialRelease = false]:
value is an attribute set while a string was expected
because licenses.mit is an attribute set and not a string.
TODO: Licenses in pkgs/lib/licenses.nix are a mix of attr sets and
strings, this needs to be standardized.
Add linux kernel modules needed to do kernel tracing with LTTng.
To make them available to lttng in NixOS, add this to configuration.nix:
boot.extraModulePackages = [ pkgs.linuxPackages.lttngModules ];