Package: release.debian.org Severity: normal Tags: bullseye User: release.debian....@packages.debian.org Usertags: pu X-Debbugs-Cc: debian-kernel@lists.debian.org
[ Reason ] Provide current information about national radio regulations to the Linux Wi-Fi stack. [ Impact ] Users may accidentally configure Wi-Fi hardware to use channels or power levels that are not permitted, or may be unable to use channels that are permitted. [ Tests ] - The signatures on regulatory.db are now checked against the kernel trust list by an autopkgtest test case. - I installed the package on top of a fresh bullseye installation and verified that: - /lib/firmware/regulatory.db{,.p7s} are replaced with symlinks. - The kernel can load the regulatory database without errors. - The database itself is currently identical to the upstream version which is already used by other distributions. [ Risks ] The package is fairly trivial. The only risk I see is that the new database could conceivably differ from the actual regulations in a more serious way. [ Checklist ] [X] *all* changes are documented in the d/changelog [X] I reviewed all changes and I approve them [X] attach debdiff against the package in (old)stable [X] the issue is verified as fixed in unstable [ Changes ] Upstream changes: - Updated the regulatory database (db.txt) following various national radio regulatory changes. - Regenerated the binaries and signatures (regulatory.bin, regulatory.db, regulatory.db.p7s) and checksum (sha1sum.txt) from db.txt. - Changed gen-pubcert.sh script and associated rule to put a configurable name in the generated certificate. These aren't used in a package build. Debian changes: - Fixed bug #1012601, which would otherwise mean that the updated database isn't actually used. - Regenerated my signatures (debian/regulatory.bin.sig, debian/regulatory.db.p7s). - Added a Salsa CI configuration. - Added an autopkgtest test case. [ Other info ] N/A
diff -Nru wireless-regdb-2020.04.29/Makefile wireless-regdb-2022.04.08/Makefile --- wireless-regdb-2020.04.29/Makefile 2020-04-29 19:51:03.000000000 +0200 +++ wireless-regdb-2022.04.08/Makefile 2022-04-08 17:54:37.000000000 +0200 @@ -80,7 +80,7 @@ $(REGDB_PUBCERT): $(REGDB_PRIVKEY) @echo "Generating certificate for $(REGDB_AUTHOR)..." - ./gen-pubcert.sh $(REGDB_PRIVKEY) $(REGDB_PUBCERT) + ./gen-pubcert.sh $(REGDB_PRIVKEY) $(REGDB_PUBCERT) $(REGDB_AUTHOR) @echo $(REGDB_PUBKEY) > .custom diff -Nru wireless-regdb-2020.04.29/db.txt wireless-regdb-2022.04.08/db.txt --- wireless-regdb-2020.04.29/db.txt 2020-04-29 19:51:03.000000000 +0200 +++ wireless-regdb-2022.04.08/db.txt 2022-04-08 17:54:37.000000000 +0200 @@ -10,6 +10,9 @@ # This is the world regulatory domain country 00: + # There is no global intersection for 802.11ah, so just mark the entire + # possible band as NO-IR + (755 - 928 @ 2), (20), NO-IR (2402 - 2472 @ 40), (20) # Channel 12 - 13. (2457 - 2482 @ 20), (20), NO-IR, AUTO-BW @@ -118,7 +121,7 @@ (57000 - 66000 @ 2160), (40) # Source: -# https://www.legislation.gov.au/Details/F2016C00432 +# https://www.legislation.gov.au/Details/F2022C00281 # Both DFS-ETSI and DFS-FCC are acceptable per AS/NZS 4268 Appendix B. # The EIRP for DFS bands can be increased by 3dB if TPC is implemented. # In order to allow 80MHz operation between 5650-5730MHz the upper boundary @@ -130,6 +133,7 @@ (5470 - 5600 @ 80), (27), DFS (5650 - 5730 @ 80), (27), DFS (5730 - 5850 @ 80), (36) + (5925 - 6425 @ 160), (24), NO-OUTDOOR (57000 - 66000 @ 2160), (43), NO-OUTDOOR country AW: DFS-ETSI @@ -346,11 +350,13 @@ (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5735 - 5835 @ 80), (20) +# Source: +# https://wap.miit.gov.cn/cms_files/filemanager/1226211233/attach/20219/d125301b13454551b698ff5afa49ca28.pdf +# Note: The transmit power for 5150-5350MHz bands can be raised by 3dBm when TPC is implemented country CN: DFS-FCC - (2402 - 2482 @ 40), (20) - (5170 - 5250 @ 80), (23), AUTO-BW - (5250 - 5330 @ 80), (23), DFS, AUTO-BW - (5735 - 5835 @ 80), (30) + (2400 - 2483.5 @ 40), (20) + (5150 - 5350 @ 80), (20), DFS, AUTO-BW + (5725 - 5850 @ 80), (33) # 60 GHz band channels 1,4: 28dBm, channels 2,3: 44dBm # ref: http://www.miit.gov.cn/n11293472/n11505629/n11506593/n11960250/n11960606/n11960700/n12330791.files/n12330790.pdf (57240 - 59400 @ 2160), (28) @@ -374,9 +380,13 @@ # Source: # https://www.mincom.gob.cu/es/marco-legal # - Redes Informáticas -# Resolución 127- 2011 Reglamento de Banda de frecuencias de 2,4 GHz. +# Resolución 98- 2019 Reglamento de Redes Inalámbricas: +# https://www.mincom.gob.cu/sites/default/files/marcoregulatorio/r_98-19_reglamento_redes_inalambricas.pdf country CU: DFS-FCC (2400 - 2483.5 @ 40), (200 mW) + (5150 - 5350 @ 80), (200 mW), NO-IR, NO-OUTDOOR + (5470 - 5725 @ 80), (250 mW), NO-IR + (5725 - 5850 @ 80), (200 mW) country CX: DFS-FCC (2402 - 2482 @ 40), (20) @@ -444,6 +454,12 @@ # Bereich 57 GHz - 66 GHz für Funkanwendungen für weitbandige # Datenübertragungssysteme; „Multiple Gigabit WAS/RLAN Systems (MGWS)“). # https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Frequenzen/Allgemeinzuteilungen/2011_08_MGWS_pdf.pdf +# +# Allocation for the WiFi 6E Band (Allgemeinzuteilung von Frequenzen im +# Bereich 5945 MHz - 6425 MHz für drahtlose Zugangssysteme, +# einschließlich lokaler Funknetze WAS/WLAN („Wireless Access Systems +# including Wireless Local Area Networks“)) +# https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Frequenzen/Allgemeinzuteilungen/MobilfunkDectWlanCBFunk/vfg552021WLAN6GHz.pdf country DE: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI @@ -451,6 +467,8 @@ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) + # WiFi 6E + (5945 - 6425 @ 160), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) @@ -492,12 +510,14 @@ (5250.000 - 5330.000 @ 80.000), (23.00), DFS, AUTO-BW (5490.000 - 5670.000 @ 160.000), (23.00), DFS +# Source: +# https://www.arcotel.gob.ec/wp-content/uploads/2018/04/NORMA-ESPECTRO-DE-USO-LIBRE-Y-ESPECTRO-PARA-USO-DETERMINADO-EN-BANDAS-LIBRES.pdf country EC: DFS-FCC - (2402 - 2482 @ 40), (20) - (5170 - 5250 @ 20), (17) - (5250 - 5330 @ 20), (24), DFS - (5490 - 5730 @ 20), (24), DFS - (5735 - 5835 @ 20), (30) + (2400 - 2483.5 @ 40), (1000 mW) + (5150 - 5250 @ 80), (50 mW), AUTO-BW, DFS + (5250 - 5350 @ 80), (125 mW), AUTO-BW, DFS + (5470 - 5725 @ 160), (125 mW), DFS + (5725 - 5850 @ 80), (1000 mW) # EE as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) @@ -516,17 +536,18 @@ # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) +# https://www.tra.gov.eg/en/industry/importing-of-equipment/Pages/Regulations-for-use-of-Wireless-Networks-Devices.aspx country EG: DFS-ETSI - (2402 - 2482 @ 40), (20) - (5170 - 5250 @ 40), (20) - (5250 - 5330 @ 40), (20), DFS + (2402 - 2483.5 @ 40), (20) + (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI + (5250 - 5330 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI # ES as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf -# ES: https://avancedigital.gob.es/espectro/Paginas/cnaf.aspx +# ES: https://avancedigital.mineco.gob.es/espectro/Paginas/cnaf.aspx country ES: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI @@ -534,6 +555,8 @@ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) + # WiFi 6E + (5945 - 6425 @ 160), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) @@ -570,6 +593,7 @@ # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf +# FR: https://www.anfr.fr/fileadmin/mediatheque/documents/tnrbf/TNRBF_2021-12-14.pdf country FR: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI @@ -577,8 +601,10 @@ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) - # 60 GHz band channels 1-4 (ETSI EN 302 567) - (57000 - 66000 @ 2160), (40) + # WiFi 6E low power indoor + (5945 - 6425 @ 160), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI + # 60 GHz band channels 1-6 (ETSI EN 302 567 v2.2.1) + (57000 - 71000 @ 2160), (40) # GB as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) @@ -592,9 +618,9 @@ (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI - (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI + (5470 - 5730 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) - (5725 - 5875 @ 80), (25 mW) + (5725 - 5850 @ 80), (200 mW), NO-OUTDOOR # 60 GHz band channels 1-6 (57000 - 71000 @ 2160), (40) @@ -692,12 +718,15 @@ # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # HR: http://tablice.hakom.hr:8080/vis?lang=en +# 6E: https://www.hakom.hr/UserDocsImages/op%C4%87e%20dozvole%20prosinac%202009.g/Opca_dozvola_236.pdf (2400 - 2483.5 @ 40), (100 mW) - (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI - (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI + (5150 - 5250 @ 80), (200 mW), AUTO-BW, wmmrule=ETSI + (5250 - 5350 @ 80), (200 mW), DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) + # WiFi 6E + (5945 - 6425 @ 160), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) @@ -749,10 +778,19 @@ # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) +# IL: Wireless Telegraph Regulations (type approval) (2021) +# IL: published on 29 March 2021 in KOVETS HATAKANOT No. 9301. +# IL: https://www.gov.il/he/departments/legalInfo/telegraph_law +# IL: official document (pdf): https://rfa.justice.gov.il/SearchPredefinedApi/Documents/IdngyMn~ojdQSrkxuAqfZqiM8c1foi3TSZQhp7OMszo= +# IL: also available as unofficial word doc: https://www.nevo.co.il/Handlers/LawOpenDoc.ashx?id=199708 country IL: DFS-ETSI (2402 - 2482 @ 40), (20) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (200 mW), NO-OUTDOOR, DFS, AUTO-BW + # Table B List of conditions, row 63, indoor short range device without TPC (ETSI EN 301 893) + (5470 - 5725 @ 160), (500 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI + # Table B List of conditions, row 68, wireless device using 802.11a/n/ac protocol + (5725 - 5875 @ 80), (200 mW), AUTO-BW country IN: (2402 - 2482 @ 40), (20) @@ -847,15 +885,21 @@ (5490 - 5630 @ 20), (30), DFS (5735 - 5815 @ 20), (30) +# Source: +# https://www.law.go.kr/LSW//admRulLsInfoP.do?chrClsCd=&admRulSeq=2100000205195 +# https://www.law.go.kr/LSW//admRulLsInfoP.do?chrClsCd=&admRulSeq=2100000205187 +# https://www.law.go.kr/LSW//admRulLsInfoP.do?chrClsCd=&admRulSeq=2100000206568 country KR: DFS-JP - # ref: https://www.rra.go.kr (2400 - 2483.5 @ 40), (23) - (5150 - 5250 @ 80), (23), AUTO-BW + (5150 - 5230 @ 40), (23), AUTO-BW + # max. PSD 2.5 mW/MHz in 5230-5250 MHz frequency range + (5230 - 5250 @ 20), (17), AUTO-BW (5250 - 5350 @ 80), (20), DFS, AUTO-BW (5470 - 5725 @ 160), (20), DFS - (5725 - 5835 @ 80), (23) - # 60 GHz band channels 1-4, - # ref: http://www.law.go.kr/%ED%96%89%EC%A0%95%EA%B7%9C%EC%B9%99/%EB%AC%B4%EC%84%A0%EC%84%A4%EB%B9%84%EA%B7%9C%EC%B9%99 + (5725 - 5850 @ 80), (23) + # 6 GHz band + (5925 - 7125 @ 160), (15), NO-OUTDOOR + # 60 GHz band channels 1-4 (57000 - 66000 @ 2160), (43) country KW: DFS-ETSI @@ -871,13 +915,15 @@ (5735 - 5835 @ 80), (30) # Source: -# http://mic.gov.kz/sites/default/files/pages/pravila_prisvoeniya_polos_chastot_no34.pdf -# http://adilet.zan.kz/rus/docs/P000001379_ +# http://adilet.zan.kz/rus/docs/V1500010730 +# http://adilet.zan.kz/rus/docs/V1500010375 country KZ: DFS-ETSI - (2402 - 2482 @ 40), (20) - (5150 - 5250 @ 80), (20), NO-OUTDOOR, AUTO-BW + (2400 - 2483.5 @ 40), (20) + (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW - (5470 - 5725 @ 80), (20), NO-OUTDOOR, DFS + (5470 - 5725 @ 160), (20), NO-OUTDOOR, DFS + (5725 - 5850 @ 80), (20), NO-OUTDOOR + (57000 - 66000 @ 2160), (40) country LB: DFS-FCC (2402 - 2482 @ 40), (20) @@ -1158,6 +1204,10 @@ # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # NL: http://wetten.overheid.nl/BWBR0036378/2015-03-05 +# Updated 14 december 2021 to allow the lower part of the 6GHz spectrum for WiFi 6E +# mobile short distance equipment, broadband transmission equipment, license free, from day after publication +# NL announcement: https://zoek.officielebekendmakingen.nl/stcrt-2021-49492.pdf +# NL law: https://wetten.overheid.nl/BWBR0036378/2021-12-15 country NL: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI @@ -1165,6 +1215,8 @@ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) + # WiFi 6E + (5945 - 6425 @ 160), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) @@ -1183,8 +1235,10 @@ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) + # WiFi 6E + (5945 - 6425 @ 160), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) - (57000 - 66000 @ 2160), (40) + (57000 - 71000 @ 2160), (40) country NP: DFS-JP (2402 - 2482 @ 40), (20) @@ -1243,8 +1297,10 @@ (5735 - 5835 @ 80), (30) country PK: DFS-JP + # https://fab.gov.pk/type-approval/ + # https://pta.gov.pk/media/Pakistan_Table_of_Frequency_Allocations.pdf (2402 - 2482 @ 40), (20) - (5735 - 5835 @ 80), (30) + (5725 - 5875 @ 80), (30) # PL as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) @@ -1543,21 +1599,20 @@ (2402 - 2482 @ 40), (20) (5735 - 5835 @ 80), (30) -# Source: -# #914 / 06 Sep 2007: http://www.ucrf.gov.ua/uk/doc/nkrz/1196068874 -# #1174 / 23 Oct 2008: http://www.nkrz.gov.ua/uk/activities/ruling/1225269361 -# (appendix 8) -# Listed 5GHz range is a lowest common denominator for all related -# rules in the referenced laws. Such a range is used because of -# disputable definitions there. +# Source: https://zakon.rada.gov.ua/laws/show/z0201-15#n48 +# Although it is allowed to use up to 250 mW for some 5 GHz frequency ranges, +# all of them are limited to 100 mW for IEEE 802.11n and IEEE 802.11ac. +# 2.4 GHz band channels can be used outdoors when some requirements are met. +# 5 GHz band channels must be used only indoors in some cases. They are neither +# permitted nor denied outdoors in others. country UA: DFS-ETSI - (2400 - 2483.5 @ 40), (20), NO-OUTDOOR - (5150 - 5250 @ 80), (20), NO-OUTDOOR, AUTO-BW - (5250 - 5350 @ 80), (20), DFS, NO-OUTDOOR, AUTO-BW - (5490 - 5670 @ 160), (20), DFS - (5735 - 5835 @ 80), (20) + (2400 - 2483.5 @ 40), (100 mW), NO-OUTDOOR + (5150 - 5250 @ 80), (100 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI + (5250 - 5350 @ 80), (100 mW), DFS, NO-OUTDOOR, AUTO-BW, wmmrule=ETSI + (5470 - 5725 @ 160), (100 mW), DFS, NO-OUTDOOR, wmmrule=ETSI + (5725 - 5850 @ 80), (100 mW), NO-OUTDOOR # 60 GHz band channels 1-4, ref: Etsi En 302 567 - (57000 - 66000 @ 2160), (40) + (57000 - 66000 @ 2160), (40 mW), NO-OUTDOOR country UG: DFS-FCC (2402 - 2482 @ 40), (20) @@ -1568,17 +1623,30 @@ # https://www.ecfr.gov/cgi-bin/text-idx?SID=eed706a2c49fd9271106c3228b0615f3&mc=true&node=pt47.1.15&rgn=div5 # Title 47 Part 15 - Radio Frequency Devices, April 2, 2020 +# Channels 12 and 13 are not forbidden, but are not normally used with full +# power in order to avoid any potential interference in the adjacent restricted +# frequency band, 2,483.5–2,500 MHz which is subject to strict emission limits +# set out in 47 CFR § 15.205. TODO: reenable and specify a safe TX power here. country US: DFS-FCC - (2400 - 2483.5 @ 40), (30) + # S1G Channel 1-3 + (902 - 904 @ 2), (30) + # S1G Channel 5-35 + (904 - 920 @ 16), (30) + # S1G Channel 37-51 + (920 - 928 @ 8), (30) + (2400 - 2472 @ 40), (30) # 5.15 ~ 5.25 GHz: 30 dBm for master mode, 23 dBm for clients (5150 - 5250 @ 80), (23), AUTO-BW - (5250 - 5350 @ 80), (23), DFS, AUTO-BW + (5250 - 5350 @ 80), (24), DFS, AUTO-BW # This range ends at 5725 MHz, but channel 144 extends to 5730 MHz. # Since 5725 ~ 5730 MHz belongs to the next range which has looser # requirements, we can extend the range by 5 MHz to make the kernel # happy and be able to use channel 144. - (5470 - 5730 @ 160), (23), DFS - (5730 - 5850 @ 80), (30) + (5470 - 5730 @ 160), (24), DFS + (5730 - 5850 @ 80), (30), AUTO-BW + # https://www.federalregister.gov/documents/2021/05/03/2021-08802/use-of-the-5850-5925-ghz-band + # max. 33 dBm AP @ 20MHz, 36 dBm AP @ 40Mhz+, 6 dB less for clients + (5850 - 5895 @ 40), (27), NO-OUTDOOR, AUTO-BW, NO-IR # 60g band # reference: section IV-D https://docs.fcc.gov/public/attachments/FCC-16-89A1.pdf # channels 1-6 EIRP=40dBm(43dBm peak) diff -Nru wireless-regdb-2020.04.29/debian/changelog wireless-regdb-2022.04.08/debian/changelog --- wireless-regdb-2020.04.29/debian/changelog 2020-06-30 19:34:44.000000000 +0200 +++ wireless-regdb-2022.04.08/debian/changelog 2022-06-30 01:13:22.000000000 +0200 @@ -1,3 +1,54 @@ +wireless-regdb (2022.04.08-2~deb11u1) bullseye; urgency=medium + + * Backport to bullseye: + - Revert "Remove support for loading through crda" + - Add my signature for regulatory.bin + - d/salsa-ci.yml: Set RELEASE to bullseye + * d/tests/check-signatures: Fix typo in openssl command line + + -- Ben Hutchings <b...@debian.org> Thu, 30 Jun 2022 01:13:22 +0200 + +wireless-regdb (2022.04.08-2) unstable; urgency=medium + + * debian/tests: Add check that regulatory.db signatures are valid + * d/wireless-regdb.postinst: Remove regular files installed by d-i + (Closes: #1012601) + + -- Ben Hutchings <b...@debian.org> Thu, 30 Jun 2022 00:01:25 +0200 + +wireless-regdb (2022.04.08-1) unstable; urgency=medium + + * New upstream version: + - Raise DFS TX power limit to 250 mW (24 dBm) for the US + - Update regulatory rules for Croatia (HR) on 6GHz + - Update regulatory rules for France (FR) on 6 and 60 GHz + - add support for US S1G channels + - add 802.11ah bands to world regulatory domain + - Update regulatory rules for Spain (ES) on 6GHz + - Update regulatory rules for South Korea (KR) + - Update regulatory rules for China (CN) (Closes: #1006127) + - Update regulatory rules for the Netherlands (NL) on 6GHz + - Update regulatory rules for Israel (IL) + - Update regulatory rules for Australia (AU) + * d/salsa-ci.yml: Add CI configuration for salsa.debian.org + * Remove support for loading through crda (Closes: #973551, #1004347) + * d/.gitignore: Ignore another debhelper temporary file + + -- Ben Hutchings <b...@debian.org> Sat, 04 Jun 2022 23:59:01 +0100 + +wireless-regdb (2021.08.28-1) unstable; urgency=medium + + * New upstream version (Closes: #986208): + - Update regulatory rules for Egypt (EG), Croatia (HR), Pakistan (PK) + on 5GHz, Great Britain (GB), Kazakhstan (KZ), Ukraine (UA), Cuba (CU) + on 5Ghz, Germany (DE) on 6GHz, Norway (NO) on 6 and 60 GHz, Ecuador (EC) + - US: restore channel 12 & 13 limitation + - US: remove PTMP-ONLY from 5850-5895 MHz + - US: reduce bandwidth for 5730-5850 and 5850-5895 MHz + - ES: Update CNAF regulation url + + -- Romain Perier <romain.per...@gmail.com> Fri, 17 Sep 2021 18:30:37 +0200 + wireless-regdb (2020.04.29-2) unstable; urgency=medium * Re-upload without binary packages (SourceOnlyUpload) Binary files /var/tmp/q2x0yR97II/wireless-regdb-2020.04.29/debian/regulatory.bin.sig and /var/tmp/t5Nn_4OFYr/wireless-regdb-2022.04.08/debian/regulatory.bin.sig differ Binary files /var/tmp/q2x0yR97II/wireless-regdb-2020.04.29/debian/regulatory.db.p7s and /var/tmp/t5Nn_4OFYr/wireless-regdb-2022.04.08/debian/regulatory.db.p7s differ diff -Nru wireless-regdb-2020.04.29/debian/salsa-ci.yml wireless-regdb-2022.04.08/debian/salsa-ci.yml --- wireless-regdb-2020.04.29/debian/salsa-ci.yml 1970-01-01 01:00:00.000000000 +0100 +++ wireless-regdb-2022.04.08/debian/salsa-ci.yml 2022-06-30 00:53:42.000000000 +0200 @@ -0,0 +1,13 @@ +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml + +variables: + RELEASE: 'bullseye' + # We only build arch:all packages + SALSA_CI_DISABLE_BLHC: 'true' + SALSA_CI_DISABLE_BUILD_PACKAGE_I386: 'true' + SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 'true' + SALSA_CI_DISABLE_CROSSBUILD_ARM64: 'true' + # Currently triggering falsely (bug #973313) + SALSA_CI_LINTIAN_SUPPRESS_TAGS: 'groff-message' diff -Nru wireless-regdb-2020.04.29/debian/tests/check-signatures wireless-regdb-2022.04.08/debian/tests/check-signatures --- wireless-regdb-2020.04.29/debian/tests/check-signatures 1970-01-01 01:00:00.000000000 +0100 +++ wireless-regdb-2022.04.08/debian/tests/check-signatures 2022-06-30 01:03:12.000000000 +0200 @@ -0,0 +1,136 @@ +#!/usr/bin/python3 + +# Check that signatures on regulatory.db are valid and made by keys +# trusted by the current kernel in the target suite + +import glob +import io +import os +import os.path +import re +import subprocess +import sys + + +tmp_dir = os.getenv('AUTOPKGTEST_TMP') + + +# Find current major/minor kernel version +def get_linux_source_name(): + proc = subprocess.Popen(['dpkg', '-s', 'linux-source'], + stdout=subprocess.PIPE) + with io.open(proc.stdout.fileno(), encoding='utf-8') as pipe: + for line in pipe: + match = re.match(r'^Depends:.*\b(linux-source-[0-9.]*)\b', line) + if match: + return match.group(1) + return None + + +# Extract wireless regdb certificate sources +def extract_certs_source(source_name): + certs_subdir = f'{source_name}/net/wireless/certs' + subprocess.check_call(['tar', '-C', tmp_dir, '-xa', + '-f', f'/usr/src/{source_name}.tar.xz', + certs_subdir]) + return os.path.join(tmp_dir, certs_subdir) + + +c_comment_re = re.compile(r'/\*.*?\*/') +c_hex_byte_re = re.compile(r'\s*0x([0-9A-Fa-f]{2})\s*') + + +# Convert from a C hex literal array to bytes +def convert_c_hex_to_bytes(hex): + decoded = [] + hex = c_comment_re.sub(' ', hex) + for word in hex.split(','): + match = c_hex_byte_re.fullmatch(word) + if match: + decoded.append(int(match.group(1), 16)) + elif word.isspace(): + pass + else: + raise ValueError() + return bytes(decoded) + + +# Convert an X.509 certificate from DER to PEM format +def convert_cert_der_to_pem(der): + proc = subprocess.Popen(['openssl', 'x509', '-inform', 'der', + '-outform', 'pem'], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE) + pem, _ = proc.communicate(der) + proc.wait() + return pem + + +# Return an array of (cert, is_upstream] pairs. Each cert is in PEM +# format. The is_upstream flag is false for certificates found in +# "debian.hex" and otherwise true. +def convert_certs(certs_source_dir): + certs = [] + + for hex_name in glob.glob(f'{certs_source_dir}/*.hex'): + is_upstream = os.path.basename(hex_name) != 'debian.hex' + decoded = convert_c_hex_to_bytes(open(hex_name).read()) + + # Split into certificates and convert one at a time, as the + # openssl command line doesn't seem to support this + start = 0 + while start < len(decoded): + end = decoded.find(b'\x30\x82\x02', start + 3) + if end < 0: + end = len(decoded) + certs.append((convert_cert_der_to_pem(decoded[start:end]), + is_upstream)) + start = end + + return certs + + +# Verify a PKCS#7 signature where the signer must exactly match +# one of the given PEM-format X.509 certificates +def verify_signature(payload_name, signature_name, certs): + cert_name = os.path.join(tmp_dir, 'certificate.pem') + with open(cert_name, 'wb') as cert_file: + for cert in certs: + cert_file.write(cert) + + # The certificates used here are self-signed and not CAs. This + # means we need to turn off vertification of the certificates + # (-noverify). We then to ignore the certificate in the signature + # (-nointern), so that the signature is required to have been made + # by one of the certificates we pass in (I hope). + # The payload is printed to stdout by default, so disable that. + # Successful verification is reported to stderr, which autopkgtest + # counts as a failure, so redirect that to our stdout. + subprocess.check_call(['openssl', 'smime', '-verify', '-noverify', + '-certfile', cert_name, '-nointern', + '-no_check_time', + '-content', payload_name, + '-in', signature_name, '-inform', 'der'], + stdout=subprocess.DEVNULL, + stderr=1) + + +def main(): + source_name = get_linux_source_name() + certs_source_dir = extract_certs_source(source_name) + certs = convert_certs(certs_source_dir) + certs_upstream = [cert + for cert, is_upstream in certs + if is_upstream] + certs_debian = [cert for cert, is_upstream in certs] + + verify_signature('/lib/firmware/regulatory.db-upstream', + '/lib/firmware/regulatory.db.p7s-upstream', + certs_upstream) + verify_signature('/lib/firmware/regulatory.db-debian', + '/lib/firmware/regulatory.db.p7s-debian', + certs_debian) + + +if __name__ == '__main__': + main() diff -Nru wireless-regdb-2020.04.29/debian/tests/control wireless-regdb-2022.04.08/debian/tests/control --- wireless-regdb-2020.04.29/debian/tests/control 1970-01-01 01:00:00.000000000 +0100 +++ wireless-regdb-2022.04.08/debian/tests/control 2022-06-30 00:53:52.000000000 +0200 @@ -0,0 +1,2 @@ +Tests: check-signatures +Depends: wireless-regdb, linux-source, openssl, python3 diff -Nru wireless-regdb-2020.04.29/debian/wireless-regdb.postinst wireless-regdb-2022.04.08/debian/wireless-regdb.postinst --- wireless-regdb-2020.04.29/debian/wireless-regdb.postinst 2020-05-01 11:08:46.000000000 +0200 +++ wireless-regdb-2022.04.08/debian/wireless-regdb.postinst 2022-06-30 00:53:52.000000000 +0200 @@ -3,6 +3,19 @@ set -e if [ "$1" = "configure" ]; then + # d-i currently installs its copies of regulatory.db{,.p7s} as + # regular files, which we need to remove before running + # update-alternatives + if dpkg --compare-versions "$2" lt 2022.04.08-2~; then + for file in regulatory.db regulatory.db.p7s; do + if [ ! -L /lib/firmware/"$file" ] || \ + [ "$(readlink /lib/firmware/"$file")" != \ + /etc/alternatives/"$file" ]; then + rm -f /lib/firmware/"$file" + fi + done + fi + update-alternatives --install \ /lib/firmware/regulatory.db regulatory.db /lib/firmware/regulatory.db-debian 100 \ --slave /lib/firmware/regulatory.db.p7s regulatory.db.p7s /lib/firmware/regulatory.db.p7s-debian diff -Nru wireless-regdb-2020.04.29/gen-pubcert.sh wireless-regdb-2022.04.08/gen-pubcert.sh --- wireless-regdb-2020.04.29/gen-pubcert.sh 2020-04-29 19:51:03.000000000 +0200 +++ wireless-regdb-2022.04.08/gen-pubcert.sh 2022-04-08 17:54:37.000000000 +0200 @@ -1,7 +1,7 @@ #!/bin/bash -if [[ $# -ne 2 ]]; then - echo "Usage: $0 priv-key out-file" +if [[ $# -ne 3 ]]; then + echo "Usage: $0 priv-key out-file common-name" exit 1 fi @@ -13,6 +13,6 @@ string_mask = utf8only prompt = no [ req_distinguished_name ] - commonName = sforshee + commonName = $3 EOF ) Binary files /var/tmp/q2x0yR97II/wireless-regdb-2020.04.29/regulatory.bin and /var/tmp/t5Nn_4OFYr/wireless-regdb-2022.04.08/regulatory.bin differ Binary files /var/tmp/q2x0yR97II/wireless-regdb-2020.04.29/regulatory.db and /var/tmp/t5Nn_4OFYr/wireless-regdb-2022.04.08/regulatory.db differ Binary files /var/tmp/q2x0yR97II/wireless-regdb-2020.04.29/regulatory.db.p7s and /var/tmp/t5Nn_4OFYr/wireless-regdb-2022.04.08/regulatory.db.p7s differ diff -Nru wireless-regdb-2020.04.29/sha1sum.txt wireless-regdb-2022.04.08/sha1sum.txt --- wireless-regdb-2020.04.29/sha1sum.txt 2020-04-29 19:51:03.000000000 +0200 +++ wireless-regdb-2022.04.08/sha1sum.txt 2022-04-08 17:54:37.000000000 +0200 @@ -1 +1 @@ -6fb563dd8cd662d23c1f2551a035de08e1e45ec5 db.txt +a1f14fc8c0d2d0fa451957f48500bebeb539bc63 db.txt