-
-
Notifications
You must be signed in to change notification settings - Fork 14.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
remove unfree HDCP blob from arm-trusted-firmware, closes #148890 #158310
Conversation
This patch comes from https://gitlab.com/vicencb/kevinboot/-/blob/master/atf.patch I have been running firmware with this patch on my daily driver rk3399 laptop for the past four months.
It isn't a philosophical change; it corrects an oversight to bring licensing in line with longstanding policy. I was very surprised to find CPU binaries without source code in a nixpkgs package whose license claimed |
Note: I included the patch in the commit, rather than hash-referencing https://gitlab.com/vicencb/kevinboot/-/blob/master/atf.patch because minor changes to the ATF Makefile result in the original patch not applying correctly. If you prefer I could find a way to minimize the committed patch so it only affects the Makfiles, and hash-reference vinceb's gitlab repo for the The RK3399 firmware is extremely stable; Rockchip is focused on their newer chips at this point. Any future merge conflicts should involve only the Makefiles (which ARM does seem to fiddle with now and then), and should be very straightforward to resolve. |
…se and blob-removal patch This change implements @lukegb's idea: https://github.gitop.top/NixOS/nixpkgs/issues/148890#issuecomment-1032002903 Specifically, it introduces a new parameter unfreeIncludeHDCPBlob (defaults to true): * If unfreeIncludeHDCPBlob==true then the license is changed to unfreeRedistributable, which will alert the user to the fact that the blob is being included (unless they set NIXPKGS_ALLOW_UNFREE=1). * If unfreeIncludeHDCPBlob==false then the license is kept as bsd3, but a patch is applied to remove the HDCP blob from the build.
On an amd64 host with:
|
Style feedback (even nitpicks) is welcome -- I have quite a number of patches that I'll be submitting over the next few weeks. I managed to get mips64el to bootstrap (all the way up to building nix out of nixpkgs) and have a bunch of other patches to make the systemd dependency of many packages optional on non-darwin kernels. |
Also let me know if you would prefer that I squash all three commits into a single commit. |
ping |
Sorry for the delay, was hoping the listed maintainer would hop in with a review. |
Sorry, I forgot about this PR. I wasn't aware of this blob and I think this is a good solution. cc @samueldr in case you're interested in this. |
Shouldn't this affect only RK3399 builds? Currently this affects all arm-trusted-firmware flavours, even if the blob is not in use. Furthermore, I don't know if it really makes it unfree, given the binary is in the repository and assumedly must be released on the same terms as the project is. Though IANAL, so I do not know if there's some magic property of this particular license that means it can't apply to binaries. |
This was discussed already. For software, the Note that this is independent of, and orthogonal to, the question of whether or not the nixpkgs expression actually uses said source code to produce its outputs. That question is resolved by RFC 089.
It only affects RK3399 builds. No other platform uses that file. Perhaps you were asking if the patch should be applied only when building for rk3399? My understanding is that, in general, nixpkgs prefers that if a patch is to be applied and can be applied to all builds then it should be applied to all builds, so everything is building from the same source. It is also very possible that Rockchip will release some future chip that has the same HDCP 2.0 decoder core, and some future release of One possibility would be to set the default value of Another possibility would be for |
No other platforms use that files, but the license change affect other platforms. Currently this means that any non-RK3399 arm-trusted-firmware build is being marked as unfree by this change. |
That is why I wrote:
The current |
Please see #148890 for an explanation of the problem.
I am submitting TWO PRs to close this issue; you may merge either one of them (it is not necessary to merge both)
This patch comes from https://gitlab.com/vicencb/kevinboot/-/blob/master/atf.patch
I have been running firmware with this patch on my daily driver rk3399
laptop for the past four months.
Motivation for this change
Please see #148890 for an explanation of the problem.
Things done
sandbox = true
set innix.conf
? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)nixos/doc/manual/md-to-db.sh
to update generated release notes