Initial import (#1598921).

This commit is contained in:
John W. Linville 2018-07-18 13:47:11 -04:00
parent bfa422700f
commit d45b7d49bb
8 changed files with 218 additions and 3 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/wireless-regdb-2018.05.31.tar.xz

5
85-regulatory.rules Normal file
View File

@ -0,0 +1,5 @@
# Set wireless regulatory domain at device creation
# For more information:
# man setregdomain
SUBSYSTEM=="ieee80211", ACTION=="add", RUN+="/usr/sbin/setregdomain"

View File

@ -1,3 +0,0 @@
# wireless-regdb
The wireless-regdb package

69
setregdomain Executable file
View File

@ -0,0 +1,69 @@
#!/bin/sh
#
# Copyright 2009-2014 Red Hat, Inc. All rights reserved.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
REGDOMAIN=/etc/sysconfig/regdomain
LOCALTIME=/etc/localtime
LOGGER="/usr/bin/logger -t wireless"
getcountry() {
while read c a z r
do
if [ "$z" = "$ZONE" ]
then
echo $c
break
fi
done < /usr/share/zoneinfo/zone.tab
}
if [ -f $REGDOMAIN ]
then
# This should set COUNTRY
. $REGDOMAIN
if [ -n "$COUNTRY" ]
then
/usr/sbin/iw reg set $COUNTRY
exit
fi
fi
if [ -f "$LOCALTIME" ]
then
ZONE=$(readlink -f $LOCALTIME)
ZONE=${ZONE#/usr/share/zoneinfo/}
else
$LOGGER -s "Timezone information not found! Unable to set regulatory domain."
exit 1
fi
if [ -z "$ZONE" -o "$ZONE" = "$LOCALTIME" ]
then
$LOGGER -s "Could not determine timezone! Unable to set regulatory domain."
exit 1
fi
COUNTRY=$(getcountry)
if [ -z "$COUNTRY" ]
then
$LOGGER -s "Could not determine country! Unable to set regulatory domain."
exit 1
fi
$LOGGER "setting regulatory domain to $COUNTRY based on timezone ($ZONE)"
/usr/sbin/iw reg set $COUNTRY

36
setregdomain.1 Normal file
View File

@ -0,0 +1,36 @@
.\" Copyright 2009 Red Hat, Inc.
.TH segregdomain 1 2014-11-19 "CRDA" "User Commands"
.SH NAME
setregdomain \- set regulatory domain based on country code
.SH SYNOPSIS
.B setregdomain
.SH DESCRIPTION
setregdomain sets the regulatory domain for your system; it takes no
arguments and is normally called via system script (eg, udev) rather
than manually by an administrator.
The regulatory domain is represented by an ISO / IEC 3166-1 alpha2
country code. By default, setregdomain attempts to determine
the appropriate country code by examining the target of the
.IR /etc/localtime
symbolic link. That information is used to look-up the matching
country code in the
.IR /usr/share/zoneinfo/zone.tab
file.
The country code look-up may fail. This could be due to faulty
or incomplete information in the
.IR /usr/share/zoneinfo/zone.tab
file, or the use of an actual file rather than a symlink for
.IR /etc/localtime
, among other possibilities. In those cases the system
administrator should define a COUNTRY environment variable in the
.IR /etc/sysconfig/regdomain
file. This value will be used as the country code and the country
code look-up will be skipped.
.SH "FILES"
.BR /etc/sysconfig/regdomain
.BR /etc/localtime
.BR /usr/share/zoneinfo/zone.tab
.SH "SEE ALSO"
.BR iw (1)

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (wireless-regdb-2018.05.31.tar.xz) = fda18edd619b294b125a5c1e04e758c04332c6d1d99ed44574321753294c159bd6c6f0c592ebfd91e99d301467e8ee8b97d1ad595cd56b3902bd5f85acd95b8d

View File

@ -0,0 +1,38 @@
diff -up wireless-regdb-2018.05.31/Makefile.install_db wireless-regdb-2018.05.31/Makefile
--- wireless-regdb-2018.05.31/Makefile.install_db 2018-07-05 15:17:03.698486949 -0400
+++ wireless-regdb-2018.05.31/Makefile 2018-07-05 15:20:33.537313703 -0400
@@ -41,7 +41,8 @@ REGDB_CHANGED = $(shell $(SHA1SUM) -c --
echo maintainer-clean $(REGDB_PUBKEY) $(REGDB_PUBCERT); \
fi)
-.PHONY: all clean mrproper install maintainer-clean install-distro-key
+.PHONY: all clean mrproper install maintainer-clean install-distro-key \
+ install_db install_bin
all: $(REGDB_CHANGED) regulatory.bin sha1sum.txt regulatory.db.p7s
@@ -115,15 +116,21 @@ install-distro-key: maintainer-clean $(D
# make maintainer-clean
# make
# sudo make install
-install: regulatory.bin.5.gz regulatory.db.5.gz
+install_bin: regulatory.bin.5.gz
install -m 755 -d $(DESTDIR)/$(CRDA_PATH)
install -m 755 -d $(DESTDIR)/$(CRDA_KEY_PATH)
- install -m 755 -d $(DESTDIR)/$(FIRMWARE_PATH)
if [ -f .custom ]; then \
install -m 644 -t $(DESTDIR)/$(CRDA_KEY_PATH)/ $(shell cat .custom); \
fi
install -m 644 -t $(DESTDIR)/$(CRDA_KEY_PATH)/ $(REGDB_UPSTREAM_PUBKEY)
install -m 644 -t $(DESTDIR)/$(CRDA_PATH)/ regulatory.bin
+ install -m 755 -d $(DESTDIR)/$(MANDIR)/man5/
+ install -m 644 -t $(DESTDIR)/$(MANDIR)/man5/ regulatory.bin.5.gz
+
+install_db: regulatory.db.5.gz
+ install -m 755 -d $(DESTDIR)/$(FIRMWARE_PATH)
install -m 644 -t $(DESTDIR)/$(FIRMWARE_PATH) regulatory.db regulatory.db.p7s
install -m 755 -d $(DESTDIR)/$(MANDIR)/man5/
- install -m 644 -t $(DESTDIR)/$(MANDIR)/man5/ regulatory.bin.5.gz regulatory.db.5.gz
+ install -m 644 -t $(DESTDIR)/$(MANDIR)/man5/ regulatory.db.5.gz
+
+install: install_bin install_db

68
wireless-regdb.spec Normal file
View File

@ -0,0 +1,68 @@
%global _firmwarepath /usr/lib/firmware
Name: wireless-regdb
Version: 2018.05.31
Release: 1%{?dist}
Summary: Regulatory database for 802.11 wireless networking
Group: System Environment/Base
License: ISC
URL: https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb
BuildArch: noarch
Requires: udev, iw
Requires: systemd >= 190
Requires: kernel >= 4.15
# Temporarily disable Provides so as to prevent unintended upgrades
#Provides: crda = 3.18_2018.05.31-3
Obsoletes: crda <= 3.18_2018.05.31-2
Source0: http://www.kernel.org/pub/software/network/wireless-regdb/wireless-regdb-%{version}.tar.xz
Source1: setregdomain
Source2: setregdomain.1
Source3: 85-regulatory.rules
# Split existing install rule into separate install_bin and install_db rules
Patch0: wireless-regdb-install_db.patch
%description
The wireless-regdb package provides the regulatory rules database
used by the kernels 802.11 networking stack in order to comply
with radio frequency regulatory rules around the world.
%prep
%setup -q
%patch0 -p1 -b .install_db
%build
: # Package installs a firmware-like, prebuilt binary from upstream...
%install
make install_db DESTDIR=%{buildroot} MANDIR=%{_mandir} \
FIRMWARE_PATH=%{_firmwarepath}
install -D -pm 0755 %SOURCE1 %{buildroot}%{_sbindir}/setregdomain
install -D -pm 0644 %SOURCE2 %{buildroot}%{_mandir}/man1/setregdomain.1
install -D -pm 0644 %SOURCE3 %{buildroot}%{_udevrulesdir}/85-regulatory.rules
%files
%{_sbindir}/setregdomain
%{_udevrulesdir}/85-regulatory.rules
%{_firmwarepath}/regulatory.db
%{_firmwarepath}/regulatory.db.p7s
%{_mandir}/man1/setregdomain.1*
%{_mandir}/man5/regulatory.db.5*
%license LICENSE
%doc README
%changelog
* Fri Jul 06 2018 John W. Linville <linville@redhat.com> - 2018.05.31-1
- Initial build