[pkg-wpa-devel] Debian 2.6.32 CONFIG_WIRELESS_OLD_REGULATORY, wireless-regdb and crda

Luis R. Rodriguez mcgrof at gmail.com
Thu Feb 18 17:19:06 UTC 2010


On Fri, Feb 5, 2010 at 11:10 PM, Paul Wise <pabs at debian.org> wrote:
> On Fri, 2010-02-05 at 15:11 -0800, Luis R. Rodriguez wrote:
>
>> And after reviewing this again, I conclude Kel already did all the
>> work :) So any mentors / DDs willing to take his package up?
>>
>> I think its at:
>>
>> dget -ux http://sidux.net/kelmo/sidux/crap/crda/crda_1.1.1-1.dsc
>
> Ok, here are my comments:
>
> I very much like that it is based on the new shiny debhelper 7 stuff and
> dpkg-source v3.
>
> I don't really like that it merges the two packages. I don't think that
> is appropriate unless upstream is going to do the same.

Upstream does not do the same. Ubuntu packages these two together
right now but it was because it made life easier for packaging.

John, do you guys package wireless-regdb and crda together on Fedora
land? Was this because of the dynamic key building per package? If so
what is the restriction on using two packages?

> nl80211.h looks like it comes from Linux, can't you just build-depend on
> the linux-libc-dev package and do #include <linux/nl80211.h> ? Comparing
> the crda one and the one from Linux 2.6.32 reveals quite a few changes
> since you copied nl80211.h into crda.

nl80211 is designed to allow userspace applications to either ship
their own nl80211.h based on the most recent kernel or to ship it and
ifdef around a feature instead of the kernel version. Shipping your
own nl80211.h is a nice option for userspace to not have to build
depend on kernel headers. In CRDA's case it only needs one command and
a set of attributes now which have long existed on nl80211.h. It is
fine that it ships an older nl80211.h as it doesn't need any of the
new stuff. I can just synch it, but I there is just no need. The
benefit of shipping your own nl80211.h becomes more evident on iw, for
example, which does make use of most of the commands. The idea is
distributions can ship with an iw which supports commands which future
kernels will support, for older kernels it will just say the operation
is not supported. New iw also list of the list of available and
supported commands through 'iw list', for example:

	Supported commands:
		 * new_interface
		 * set_interface
		 * new_key
		 * new_beacon
		 * new_station
		 * new_mpath
		 * set_mesh_params
		 * set_bss
		 * authenticate
		 * associate
		 * deauthenticate
		 * disassociate
		 * join_ibss
		 * Unknown command (55)
		 * Unknown command (57)
		 * Unknown command (59)
		 * set_wiphy_netns
		 * connect
		 * disconnect

Another example of a userpsace application shipping a copy of
nl80211.h is wpa_supplicant.

For CRDA then we ship our own nl80211.h and it doesn't matter much as
we only use only one command, and the API that can't change anyway.
When CRDA wants to make use of something new we can just re-synch,
just as we do with iw.

> Even after manually ensuring that sha1sum.txt reflects the sha1sum of
> db.txt with "sha1sum db.txt > sha1sum.txt", the wireless-regdb Makefile
> still seems to generate a new Debian RSA key pair. If the db.txt hasn't
> changed, there is no reason to auto-generate and install a key pair.

wireless-regdb is designed so that you do not have to run make at all
if you just intend on using John's key. So running make even if db.txt
has not changed will generate the keys for you and sign the
regulatory.bin with the new key.

> The package FTBFS when built twice in a row:
>
> dpkg-source: info: using source format `3.0 (quilt)'
> dpkg-source: info: building crda using existing ./crda_1.1.1.orig-wireless-regdb-20091125.tar.bz2 ./crda_1.1.1.orig.tar.bz2
> dpkg-source: error: cannot represent change to crda-1.1.1/wireless-regdb-20091125/regulatory.bin: binary file contents changed
> dpkg-source: error: add wireless-regdb-20091125/regulatory.bin in debian/source/include-binaries if you want to store the modified binary in the debian tarball
> dpkg-source: error: unrepresentable changes to source
>
> After working around this issue and building again, I get some files in
> debian/patches, you probably need to remove .custom on clean:
>
> pabs at chianamo:~/tmp/crda-1.1.1$ tail -n4 debian/patches/debian-changes-1.1.1-1
> --- /dev/null
> +++ crda-1.1.1/wireless-regdb-20091125/.custom
> @@ -0,0 +1 @@
> +Debian.key.pub.pem
>
> dpkg-shlibdeps complains that neither crda and regdbdump use symbols
> from libssl, it looks like this might be a false positive though:
>
> dpkg-shlibdeps: warning: dependency on libssl.so.0.9.8 could be avoided if "debian/crda/sbin/regdbdump debian/crda/sbin/crda" were not uselessly linked against it (they use none of its symbols).

They are not uselessly linking against libssl if indeed signature
checking is done.

> V=1 needs to be set on the make command-line so that the buildds
> verbosely print all the commands used to build everything.
>
> There are two lintian complaints:
>
> P: crda: no-upstream-changelog
> N:
> N:    The package does not install an upstream changelog file. If upstream
> N:    provides a changelog, it should be accessible as
> N:    /usr/share/doc/<pkg>/changelog.gz.
> N:
> N:    It's currently unclear how best to handle multiple binary packages from
> N:    the same source. Some maintainers put a copy of the upstream changelog
> N:    in each package, but it can be quite long. Some include it in one
> N:    package and add symlinks to the other packages, but this requires there
> N:    be dependencies between the packages. Some only include it in a
> N:    "central" binary package and omit it from more ancillary packages.
> N:
> N:    Refer to Debian Policy Manual section 12.7 (Changelog files) for
> N:    details.
> N:
> N:    Severity: pedantic, Certainty: wild-guess
> N:
>
> I'd suggest that 'make dist' should include a ChangeLog file in the
> tarball, generated with git2cl or git log or whatever. A NEWS file
> summarising the user-visible changes in each version would also be a
> good idea for both crda and wireless-regdb.

I see little point to maintaining a ChangeLog on these two upstream
git projects, is this something that has to be done on the package
debian/* stuff itself then? Is this required for inclusion into
Debian?

> W: crda: new-package-should-close-itp-bug
> N:
> N:    This package appears to be the first packaging of a new upstream
> N:    software package (there is only one changelog entry and the Debian
> N:    revision is 1), but it does not close any bugs. The initial upload of a
> N:    new package should close the corresponding ITP bug for that package.
> N:
> N:    This warning can be ignored if the package is not intended for Debian or
> N:    if it is a split of an existing Debian package.
> N:
> N:    Refer to Debian Developer's Reference section 5.1 (New packages) for
> N:    details.
> N:
> N:    Severity: normal, Certainty: certain
> N:
>
> Someone needs to step up to be the maintainer of the package, retitle
> #536502 to an ITP (intent to package) and set themselves as the owner:
>
> http://bugs.debian.org/536502



More information about the Pkg-wpa-devel mailing list