[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