[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1014079: bullseye-pu: package wireless-regdb/2022.04.08-2~deb11u1



Package: release.debian.org
Severity: normal
Tags: bullseye
User: release.debian.org@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 <benh@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 <benh@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 <benh@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.perier@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

Reply to: