diff options
author | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2021-10-07 17:41:22 +0200 |
---|---|---|
committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2021-10-11 18:29:34 +0200 |
commit | 057fdf14231c803fa61ade5889722d08a15709a3 (patch) | |
tree | c5409795bd899a40fa456539b7ac2c6ddaeaa3cf | |
parent | 446f396449485f8f114d37def7e0e1b20a3637d7 (diff) | |
download | kernel_replicant_linux-057fdf14231c803fa61ade5889722d08a15709a3.tar.gz kernel_replicant_linux-057fdf14231c803fa61ade5889722d08a15709a3.tar.bz2 kernel_replicant_linux-057fdf14231c803fa61ade5889722d08a15709a3.zip |
Don't reject nonfree firmwares
Replicant does not want to ship nonfree firmwares because
the firmwares are nonfree and Replicant is a fully free
software Android distribution.
In addition, Replicant follows the GNU Free System
Distributions Guidelines (FSDG)[1].
And it is also directly supported by the FSF in various
ways[2] (they help with fundraising, we have a virtual
machine in the FSF infrastructure, etc).
So willingly shipping nonfree software (including firmwares)
is completely out of the question.
Instead we try to find nonfree software (including
firmwares) in the Replicant source code or images and when
we find some, we remove them.
Since the Replicant 11 kernel is now based on Linux, we can
leverage linux-libre to remove the various nonfree firmwares
found in Linux.
However even if we do our best not to ship any nonfree
firmwares, the Replicant steering commitee and the other
people present in the Replicant Contributors Meeting 2019 in
Paris (me included) decided againt blocking the usage of
nonfree firmwares.
Blocking nonfree firmwares is not required by the GNU Free
System Distribution Guidelines (FSDG).
The internal WiFi interface (and also some less important
hardware components) don't work without nonfree firmwares.
On some devices supported by Replicant, like the Galaxy SIII
(GT-I9300) and the Galaxy SIII 4G (GT-I9305), external WiFi
dongles compatible with the ath9k_htc driver do work fine
with a free firmware in Replicant 6.
And Replicant strongly advises its users to use such
WiFi dongles to get WiFi working.
But despite that, many users, by themselves, without any
guidance or instructions from Replicant, still do install
nonfree firmwares to get the internal WiFi working (and
potentially other hardware components too), probably because
external WiFi dongles are not very convenient to use and
consume a lot of battery.
So until we manage to replace the nonfree firmwares with
free firmwares we still need to not block users who still
install nonfree firmwares on their own, knowing that the
firmwares are nonfree and that they don't come from
Replicant at all.
In addition, if a decision to block nonfree firmwares is
taken, we would need to consult people about it and also to
have the Replicant steering have the final word on the
decision as it could potentially have a major impact on
users.
References:
-----------
[1]https://www.gnu.org/distros/free-system-distribution-guidelines.html
[2]https://redmine.replicant.us/projects/replicant/wiki/SteeringCommittee
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
-rwxr-xr-x | deblob/deblob-5.10 | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/deblob/deblob-5.10 b/deblob/deblob-5.10 index 48dc99acf62b..91b77345e44b 100755 --- a/deblob/deblob-5.10 +++ b/deblob/deblob-5.10 @@ -181,27 +181,15 @@ clean_sed () { } reject_firmware () { - #$1 = file $2 = pre sed pattern - filetest $1 || return 0 - clean_sed "$2"' -s,\(^\|[^>.0-9a-zA-Z_$]\)\(request\(_ihex\|_partial\)\?_firmware\|firmware_request_platform\)\(_nowait\|_direct\|_into_buf\)\?\($\|[^-.0-9a-zA-Z_$),; ]\),\1reject_firmware\4\5,g -' "$1" 'disabled non-Free firmware-loading machinery' + return 0 } reject_firmware_nowarn () { - #$1 = file $2 = pre sed pattern - filetest $1 || return 0 - clean_sed "$2"' -s,\(^\|[^>.0-9a-zA-Z_$]\)firmware_request_nowarn\($\|[^-.0-9a-zA-Z_$),; ]\),\1firmware_reject_nowarn\2,g -' "$1" 'disabled silent non-Free firmware-loading machinery' + return 0 } maybe_reject_firmware () { - #$1 = file $2 = pre sed pattern - filetest $1 || return 0 - clean_sed "$2"' -s,\(^\|[^>.0-9a-zA-Z_$]\)request_\(ihex_\|partial_\)\?firmware\(_nowait\|_direct\|_into_buf\)\?\($\|[^-.0-9a-zA-Z_$),; ]\),\1maybe_reject_\2firmware\3\4,g -' "$1" 'retain Free firmware-loading machinery, disabling non-Free one' + return 0 } undefine_macro () { @@ -219,11 +207,7 @@ s,$macro,$repl,g; } undefault_firmware () { - #$1 - pattern such that $1_DEFAULT_FIRMWARE is #defined to non-Free firmware - #$@ other than $1 - file names - macro="$1"_DEFAULT_FIRMWARE; shift - undefine_macro "$macro" "\"/*(DEBLOBBED)*/\"" \ - "disabled non-Free firmware" "$@" + return 0 } # First, check that files that contain firmwares and their @@ -605,11 +589,6 @@ maybe_reject_ihex_firmware(const struct firmware **fw,\ #endif /* _LINUX_LIBRE_IHEX_H */\ ' include/linux/ihex.h 'added non-Free ihex firmware notification support' -clean_sed ' -s,\(timeout = \)\(firmware_loading_timeout()\),\1is_nonfree_firmware(name) ? 1 : \2, -' drivers/base/firmware_loader/fallback.c 'shorten non-Free firmware fail-to-load timeout' - - ######## # Arch # ######## |