commit:     2e25da30bafda0031bea4e6ea884e8f50ac9ff67
Author:     Rick Farina <zerochaos <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 19 16:38:42 2023 +0000
Commit:     Rick Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Sat Aug 19 16:52:22 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2e25da30

net-wireless/wireless-regdb: make crda optional

Linux has now supported loading regulatory information without CRDA
since kernel 4.15.  After significant discussion negril, sam, and I have
agreed upon a set of checks to ensure users are getting working regulatory
information with or without crda, and have made crda optional.  All packages
that can cause radio emission must depend directly on wireless-regdb.

Primary discussion location
https://github.com/gentoo/gentoo/pull/31514

Signed-off-by: Rick Farina <zerochaos <AT> gentoo.org>

 .../wireless-regdb-20230503-r1.ebuild              | 36 ++++++++++++----------
 1 file changed, 20 insertions(+), 16 deletions(-)

diff --git a/net-wireless/wireless-regdb/wireless-regdb-20230503-r1.ebuild 
b/net-wireless/wireless-regdb/wireless-regdb-20230503-r1.ebuild
index 48c69e75e76d..cf490e5d7dd3 100644
--- a/net-wireless/wireless-regdb/wireless-regdb-20230503-r1.ebuild
+++ b/net-wireless/wireless-regdb/wireless-regdb-20230503-r1.ebuild
@@ -22,22 +22,25 @@ REQUIRED_USE="kernel_linux"
 
 pkg_pretend() {
        if kernel_is -ge 4 15; then
-               if linux_config_exists && linux_chkconfig_builtin CFG80211 &&
-                       [[ $(linux_chkconfig_string EXTRA_FIRMWARE) != 
*regulatory.db* ]]
-               then
-                       ewarn "REGULATORY DOMAIN PROBLEM:"
-                       ewarn "  With CONFIG_CFG80211=y (built-in), the driver 
won't be able to load regulatory.db from"
-                       ewarn "  /lib/firmware, resulting in broken regulatory 
domain support. Please set CONFIG_CFG80211=m"
-                       ewarn "  or add regulatory.db and regulatory.db.p7s to 
CONFIG_EXTRA_FIRMWARE."
-               fi
-               if linux_config_exists && ! linux_chkconfig_present CFG80211; 
then
-                       ewarn "REGULARTORY DOMAIN PROBLEM:"
-                       ewarn "  With CONFIG_CFG80211 unset the wireless 
dirvers won't be able to load the regulatory.db"
-                       ewarn "  which this ebuild installs.  Please set 
CONFIG_CFG80211=m."
+               if linux_config_exists; then
+                       if linux_chkconfig_builtin CFG80211 &&
+                               [[ $(linux_chkconfig_string EXTRA_FIRMWARE) != 
*regulatory.db* ]]; then
+                               ewarn "REGULATORY DOMAIN PROBLEM:"
+                               ewarn "  With CONFIG_CFG80211=y (built-in), the 
driver(s) won't be able to load regulatory.db from"
+                               ewarn "  /lib/firmware, resulting in broken 
regulatory domain support. Please set CONFIG_CFG80211=m"
+                               ewarn "  or add regulatory.db and 
regulatory.db.p7s to CONFIG_EXTRA_FIRMWARE."
+                       fi
+                       if ! linux_chkconfig_present CFG80211; then
+                               ewarn "REGULARTORY DOMAIN PROBLEM:"
+                               ewarn "  With CONFIG_CFG80211 unset, the 
driver(s) won't be able to load the regulatory.db from"
+                               ewarn "  /lib/firmware, resulting in broken 
regulatory domain support. Please set CONFIG_CFG80211=m."
+                       fi
                fi
 
-               has_version net-wireless/crda && \
+               if has_version net-wireless/crda || use crda; then
                        ewarn "Starting from kernel version 4.15 
net-wireless/crda is no longer needed."
+                       ewarn "The crda USE flag will be removed on or after 
Feb 01, 2024"
+               fi
 
                CONFIG_CHECK="EXPERT ~!CFG80211_CRDA_SUPPORT"
                WARNING_CFG80211_CRDA_SUPPORT="You can safely disable 
CFG80211_CRDA_SUPPORT"
@@ -51,7 +54,8 @@ please enable CFG80211_CRDA_SUPPORT for proper regulatory 
domain support"
 }
 
 src_compile() {
-       einfo "Recompiling regulatory.bin from db.txt would break CRDA verify. 
Installing unmodified binary version."
+       einfo "Recompiling regulatory database(s) from db.txt would break 
signature verification."
+       einfo "Installing unmodified binary version."
 }
 
 src_install() {
@@ -63,13 +67,13 @@ src_install() {
 
                insinto /etc/wireless-regdb/pubkeys
                doins sforshee.key.pub.pem
-               doman -i18n= regulatory.bin.5
        fi
        # install the files the kernel needs unconditionally,
        # they are small and kernels get upgraded
        insinto /lib/firmware
        doins regulatory.db regulatory.db.p7s
 
-       doman -i18n= regulatory.db.5
+       # regulatory.db.5 is a reference to regulatory.bin.5 so you need both 
unconditionally
+       doman -i18n= regulatory.db.5 regulatory.bin.5
        dodoc README db.txt
 }

Reply via email to