[arch-commits] Commit in (9 files)
Thomas Bächler
thomas at archlinux.org
Sun Mar 29 13:37:27 UTC 2009
Date: Sunday, March 29, 2009 @ 09:37:27
Author: thomas
Revision: 32167
- Split crda into crda and wireless-regdb (as it is done by all other distros that already include it)
The regdb will probably be updated more often than crda
- If crda is installed, the integrity of the regdb is now verified on build and install time
(if not, a warning is issued on build time, and nothing happens on install time)
A warning is issued if the database is corrupted.
- The file /etc/conf.d/wireless-regdom moved from crda to wireless-regdb. If the user has already
set the domain there, the .pacorig file overwrites the one from wireless-regdb
This is safe, as the only changes that may be in the stock file are newly added domains, which are commented
- It is not necessary to add wireless-regdom to DAEMONS any more. As soon as cfg80211 is loaded,
the regdom is set (if one is specified in /etc/conf.d/wireless-regdom)
This is not only more convenient, but also ensures the regdom is still set after rmmod cfg80211; modprobe cfg80211
Added:
crda/trunk/crda.install
wireless-regdb/
wireless-regdb/repos/
wireless-regdb/trunk/
wireless-regdb/trunk/PKGBUILD
wireless-regdb/trunk/crda.conf.d
wireless-regdb/trunk/wireless-regdb.install
Modified:
crda/trunk/PKGBUILD
Deleted:
crda/trunk/crda.conf.d
---------------------------------------------+
crda/trunk/PKGBUILD | 43 +++++++-------------------
crda/trunk/crda.conf.d | 4 --
crda/trunk/crda.install | 16 +++++++++
wireless-regdb/trunk/PKGBUILD | 42 +++++++++++++++++++++++++
wireless-regdb/trunk/crda.conf.d | 4 ++
wireless-regdb/trunk/wireless-regdb.install | 13 +++++++
6 files changed, 88 insertions(+), 34 deletions(-)
Modified: crda/trunk/PKGBUILD
===================================================================
--- crda/trunk/PKGBUILD 2009-03-29 13:30:36 UTC (rev 32166)
+++ crda/trunk/PKGBUILD 2009-03-29 13:37:27 UTC (rev 32167)
@@ -3,48 +3,31 @@
pkgname=crda
pkgver=1.0.1
-_regdbver=2009.01.30
-pkgrel=1
+pkgrel=2
pkgdesc="Central Regulatory Domain Agent"
arch=(i686 x86_64)
url="http://wireless.kernel.org/en/developers/Regulatory/CRDA"
license=('custom')
-depends=('libnl' 'libgcrypt' 'udev' 'iw')
+depends=('wireless-regdb' 'libnl' 'libgcrypt' 'udev' 'iw')
makedepends=('python-m2crypto')
-source=(http://wireless.kernel.org/download/crda/$pkgname-$pkgver.tar.bz2
- http://wireless.kernel.org/download/wireless-regdb/regulatory.bins/${_regdbver}-regulatory.bin
- crda.rc
- crda.conf.d)
-backup=(etc/conf.d/wireless-regdom)
+install=crda.install
+source=(http://wireless.kernel.org/download/crda/${pkgname}-${pkgver}.tar.bz2
+ crda.rc)
md5sums=('03554b71eef2626795befa17eb1d8b9e'
- '2515a1d6ba52f5acef255cf702a6c77d'
- '014eef3f8655e9a130064ec6891317fc'
- '2374dcf1c6530332f375e5362b80169b')
+ '014eef3f8655e9a130064ec6891317fc')
build() {
# Install crda, regdbdump and udev rules
msg "Compiling and installing crda ..."
- cd $srcdir/$pkgname-$pkgver
+ cd ${srcdir}/${pkgname}-${pkgver}
make crda regdbdump || return 1
- make DESTDIR=$pkgdir install || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ # This rule automatically sets the regulatory domain when cfg80211 is loaded
+ echo 'ACTION=="add" SUBSYSTEM=="module", DEVPATH=="/module/cfg80211", RUN+="/etc/rc.d/wireless-regdom start >/dev/null"' >> ${pkgdir}/lib/udev/rules.d/85-regulatory.rules || return 1
- # Install and verify regulatory.bin file
- msg "Installing and verifying the regulatory.bin file ..."
- install -D -m444 $srcdir/${_regdbver}-regulatory.bin $pkgdir/usr/lib/crda/regulatory.bin || return 1
- if $pkgdir/sbin/regdbdump $pkgdir/usr/lib/crda/regulatory.bin > /dev/null; then
- msg "Regulatory database verification was succesful."
- else
- error "Regulatory database verification failed."
- return 1
- fi
-
msg "Installing license ..."
- install -D -m644 $srcdir/$pkgname-$pkgver/LICENSE $pkgdir/usr/share/licenses/crda/LICENSE || return 1
+ install -D -m644 ${srcdir}/${pkgname}-${pkgver}/LICENSE ${pkgdir}/usr/share/licenses/crda/LICENSE || return 1
- msg "Installing boot scripts ..."
- install -D -m755 $srcdir/crda.rc $pkgdir/etc/rc.d/wireless-regdom || return 1
- install -D -m644 $srcdir/crda.conf.d $pkgdir/etc/conf.d/wireless-regdom || return 1
- for dom in $($pkgdir/sbin/regdbdump $pkgdir/usr/lib/crda/regulatory.bin | grep ^country | cut -d' ' -f2 | sed 's|:||g'); do
- echo "#WIRELESS_REGDOM=\"${dom}\"" >> $pkgdir/etc/conf.d/wireless-regdom || return 1
- done
+ msg "Installing boot script ..."
+ install -D -m755 ${srcdir}/crda.rc ${pkgdir}/etc/rc.d/wireless-regdom || return 1
}
Deleted: crda/trunk/crda.conf.d
===================================================================
--- crda/trunk/crda.conf.d 2009-03-29 13:30:36 UTC (rev 32166)
+++ crda/trunk/crda.conf.d 2009-03-29 13:37:27 UTC (rev 32167)
@@ -1,4 +0,0 @@
-#
-# Wireless regulatory domain configuration
-#
-
Added: crda/trunk/crda.install
===================================================================
--- crda/trunk/crda.install (rev 0)
+++ crda/trunk/crda.install 2009-03-29 13:37:27 UTC (rev 32167)
@@ -0,0 +1,16 @@
+## arg 1: the new package version
+post_install() {
+ echo "Uncomment the right regulatory domain in /etc/conf.d/wireless-regdom."
+ echo "It will automatically be set when necessary."
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ # In an upgrade from 1.0.1-1 or older, the wireless-regdom file moves from the crda package
+ # to the new wireless-regdb package. If the user changed the file, it is save to overwrite the one
+ # from wireless-regdb by the user-defined one
+ if [ $(vercmp $2 1.0.1-2) -lt 0 -a -f /etc/conf.d/wireless-regdom.pacorig -a -n "$(grep -v ^# /etc/conf.d/wireless-regdom.pacorig | grep -v ^$)" ]; then
+ mv /etc/conf.d/wireless-regdom.pacorig /etc/conf.d/wireless-regdom
+ fi
+}
Added: wireless-regdb/trunk/PKGBUILD
===================================================================
--- wireless-regdb/trunk/PKGBUILD (rev 0)
+++ wireless-regdb/trunk/PKGBUILD 2009-03-29 13:37:27 UTC (rev 32167)
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 28298 2009-02-28 18:22:27Z thomas $
+# Maintainer: Thomas Bächler <thomas at archlinux.org>
+
+pkgname=wireless-regdb
+pkgver=2009.03.09
+pkgrel=1
+pkgdesc="Central Regulatory Domain Database"
+arch=(i686 x86_64)
+url="http://wireless.kernel.org/en/developers/Regulatory/CRDA"
+depends=()
+install=wireless-regdb.install
+source=(http://wireless.kernel.org/download/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ crda.conf.d)
+backup=(etc/conf.d/wireless-regdom)
+md5sums=('09d423911584e6580efb8af366775d5f'
+ '2374dcf1c6530332f375e5362b80169b')
+
+build() {
+ # Install and verify regulatory.bin file
+ msg "Installing and verifying the regulatory.bin file ..."
+ install -D -m444 ${srcdir}/${pkgname}-${pkgver}/regulatory.bin ${pkgdir}/usr/lib/crda/regulatory.bin || return 1
+ # If crda is installed, the wireless regdb can be verified using regdbdump
+ # Keep this step optional so no depend/makedepend loop is created
+ if [ -x /sbin/regdbdump ]; then
+ if /sbin/regdbdump ${pkgdir}/usr/lib/crda/regulatory.bin > /dev/null; then
+ msg "Regulatory database verification was succesful."
+ else
+ error "Regulatory database verification failed."
+ return 1
+ fi
+ else
+ warning "Crda is not installed, regulatory database could not be verified."
+ fi
+
+ msg "Installing /etc/conf.d/wireless-regdom ..."
+ install -D -m644 ${srcdir}/crda.conf.d ${pkgdir}/etc/conf.d/wireless-regdom || return 1
+ for dom in $(grep ^country ${srcdir}/${pkgname}-${pkgver}/db.txt | cut -d' ' -f2 | sed 's|:||g'); do
+ echo "#WIRELESS_REGDOM=\"${dom}\"" >> ${pkgdir}/etc/conf.d/wireless-regdom.tmp || return 1
+ done
+ sort -u ${pkgdir}/etc/conf.d/wireless-regdom.tmp >> ${pkgdir}/etc/conf.d/wireless-regdom || return 1
+ rm -f ${pkgdir}/etc/conf.d/wireless-regdom.tmp || return 1
+}
Added: wireless-regdb/trunk/crda.conf.d
===================================================================
--- wireless-regdb/trunk/crda.conf.d (rev 0)
+++ wireless-regdb/trunk/crda.conf.d 2009-03-29 13:37:27 UTC (rev 32167)
@@ -0,0 +1,4 @@
+#
+# Wireless regulatory domain configuration
+#
+
Added: wireless-regdb/trunk/wireless-regdb.install
===================================================================
--- wireless-regdb/trunk/wireless-regdb.install (rev 0)
+++ wireless-regdb/trunk/wireless-regdb.install 2009-03-29 13:37:27 UTC (rev 32167)
@@ -0,0 +1,13 @@
+post_install() {
+ post_upgrade
+}
+
+post_upgrade() {
+ # If crda is installed, we verify the integrity of the database
+ # If not, we skip this step silently
+ if [ -x /sbin/regdbdump ]; then
+ if ! /sbin/regdbdump /usr/lib/crda/regulatory.bin > /dev/null; then
+ echo "Failed to verify the integrity of the wireless regulatory database, CRDA will not work."
+ fi
+ fi
+}
More information about the arch-commits
mailing list