Package: wpasupplicant
Version: 0.6.3-1
Severity: important

Hi,

The current version fails to build on GNU/kFreeBSD due to linux
specific build options.

The attached patch fix the FTBFS and makes the package working 
fine on kfreebsd.

I will be glad if you can include it.

Cheers,

--
Emmanuel Bouthenot

-- System Information:
Debian Release: lenny/sid
Architecture: kfreebsd-i386 (i686)

Kernel: kFreeBSD 6.3-1-486
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages wpasupplicant depends on:
ii  adduser                    3.105         add and remove users and groups
ii  libbsd0                    0.0-1.2+r1710 BSD compatibility library - shared
ii  libc0.1                    2.7-10        GNU C Library: Shared libraries
ii  libdbus-1-3                1.2.1-2       simple interprocess messaging syst
ii  libpcap0.8                 0.9.8-3       system interface for user-level pa
ii  libpcsclite1               1.4.101-2     Middleware to access a smart card 
ii  libreadline5               5.2-3         GNU readline and history libraries
ii  libssl0.9.8                0.9.8g-8      SSL shared libraries
ii  lsb-base                   3.1-24        Linux Standard Base 3.1 init scrip

wpasupplicant recommends no packages.

-- no debconf information
diff -Naur wpasupplicant-0.6.3.orig/debian/config.kfreebsd 
wpasupplicant-0.6.3.new/debian/config.kfreebsd
--- wpasupplicant-0.6.3.orig/debian/config.kfreebsd     1970-01-01 
01:00:00.000000000 +0100
+++ wpasupplicant-0.6.3.new/debian/config.kfreebsd      2008-05-11 
00:24:31.000000000 +0200
@@ -0,0 +1,332 @@
+# Debian's wpa_supplicant build time configuration
+
+# Driver interface for Host AP driver
+#CONFIG_DRIVER_HOSTAP=y
+
+# Driver interface for Agere driver
+# XXX: Non-GPL header required
+#CONFIG_DRIVER_HERMES=y
+# Change include directories to match with the local setup
+#CFLAGS += -I../../hcf -I../../include -I../../include/hcf
+#CFLAGS += -I../../include/wireless
+
+# Driver interface for madwifi driver
+#CONFIG_DRIVER_MADWIFI=y
+# Change include directories to match with the local setup
+#CFLAGS += -I../debian/madwifi-headers
+
+# Driver interface for Prism54 driver
+# (Note: Prism54 is not yet supported, i.e., this will not work as-is and is
+# for developers only)
+#CONFIG_DRIVER_PRISM54=y
+
+# Driver interface for ndiswrapper
+# XXX: Deprecated since Linux 2.6.14
+#CONFIG_DRIVER_NDISWRAPPER=y
+
+# Driver interface for Atmel driver
+#CONFIG_DRIVER_ATMEL=y
+
+# Driver interface for Broadcom driver
+# XXX: Non-GPL header required
+#CONFIG_DRIVER_BROADCOM=y
+# Example path for wlioctl.h; change to match your configuration
+#CFLAGS += -I/opt/WRT54GS/release/src/include
+
+# Driver interface for Intel ipw2100/2200 driver
+# XXX: Deprecated since Linux 2.6.14
+#CONFIG_DRIVER_IPW=y
+
+# Driver interface for Ralink driver
+# XXX: rt2x00 supports DRIVER_WEXT, the legacy drivers hardly work at all
+#CONFIG_DRIVER_RALINK=y
+
+# Driver interface for generic Linux wireless extensions
+#CONFIG_DRIVER_WEXT=y
+
+# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
+# XXX: we are not FreeBSD
+CONFIG_DRIVER_BSD=y
+#CFLAGS += -I/usr/local/include
+LIBS += -lbsd
+
+# Driver interface for Windows NDIS
+# XXX: we don't cater for the win32 arch
+#CONFIG_DRIVER_NDIS=y
+#CFLAGS += -I/usr/include/w32api/ddk
+#LIBS += -L/usr/local/lib
+# For native build using mingw
+#CONFIG_NATIVE_WINDOWS=y
+# Additional directories for cross-compilation on Linux host for mingw target
+#CFLAGS += -I/opt/mingw/mingw32/include/ddk
+#LIBS += -L/opt/mingw/mingw32/lib
+#CC=mingw32-gcc
+# By default, driver_ndis uses WinPcap for low-level operations. This can be
+# replaced with the following option which replaces WinPcap calls with NDISUIO.
+# However, this requires that WZC is disabled (net stop wzcsvc) before starting
+# wpa_supplicant.
+# CONFIG_USE_NDISUIO=y
+
+# Driver interface for development testing
+CONFIG_DRIVER_TEST=y
+
+# Driver interface for wired Ethernet drivers
+#CONFIG_DRIVER_WIRED=y
+
+# Enable IEEE 802.1X Supplicant (automatically included if any EAP method is
+# included)
+CONFIG_IEEE8021X_EAPOL=y
+
+# EAP-MD5
+CONFIG_EAP_MD5=y
+
+# EAP-MSCHAPv2
+CONFIG_EAP_MSCHAPV2=y
+
+# EAP-TLS
+CONFIG_EAP_TLS=y
+
+# EAL-PEAP
+CONFIG_EAP_PEAP=y
+
+# EAP-TTLS
+CONFIG_EAP_TTLS=y
+
+# EAP-FAST
+# Note: Default OpenSSL package does not include support for all the
+# functionality needed for EAP-FAST. If EAP-FAST is enabled with OpenSSL,
+# the OpenSSL library must be patched (openssl-0.9.8d-tls-extensions.patch)
+# to add the needed functions.
+#CONFIG_EAP_FAST=y
+
+# EAP-GTC
+CONFIG_EAP_GTC=y
+
+# EAP-OTP
+CONFIG_EAP_OTP=y
+
+# EAP-SIM (enable CONFIG_PCSC, if EAP-SIM is used)
+CONFIG_EAP_SIM=y
+
+# EAP-PSK (experimental; this is _not_ needed for WPA-PSK)
+CONFIG_EAP_PSK=y
+
+# EAP-PAX
+CONFIG_EAP_PAX=y
+
+# LEAP
+CONFIG_EAP_LEAP=y
+
+# EAP-AKA (enable CONFIG_PCSC, if EAP-AKA is used)
+CONFIG_EAP_AKA=y
+
+# EAP-SAKE
+#CONFIG_EAP_SAKE=y
+
+# EAP-GPSK
+#CONFIG_EAP_GPSK=y
+# Include support for optional SHA256 cipher suite in EAP-GPSK
+#CONFIG_EAP_GPSK_SHA256=y
+
+# EAP-TNC and related Trusted Network Connect support (experimental)
+#CONFIG_EAP_TNC=y
+
+# EAP-WSC for Wi-Fi Protected Setup
+CONFIG_EAP_WSC=y
+
+# EAP-IKEv2
+#CONFIG_EAP_IKEV2=y
+
+# PKCS#12 (PFX) support (used to read private key and certificate file from
+# a file that usually has extension .p12 or .pfx)
+CONFIG_PKCS12=y
+
+# Smartcard support (i.e., private key on a smartcard), e.g., with openssl
+# engine.
+CONFIG_SMARTCARD=y
+
+# PC/SC interface for smartcards (USIM, GSM SIM)
+# Enable this if EAP-SIM or EAP-AKA is included
+CONFIG_PCSC=y
+
+# Development testing
+#CONFIG_EAPOL_TEST=y
+
+# Select control interface backend for external programs, e.g, wpa_cli:
+# unix = UNIX domain sockets (default for Linux/*BSD)
+# udp = UDP sockets using localhost (127.0.0.1)
+# named_pipe = Windows Named Pipe (default for Windows)
+# y = use default (backwards compatibility)
+# If this option is commented out, control interface is not included in the
+# build.
+CONFIG_CTRL_IFACE=y
+
+# Include support for GNU Readline and History Libraries in wpa_cli.
+# When building a wpa_cli binary for distribution, please note that these
+# libraries are licensed under GPL and as such, BSD license may not apply for
+# the resulting binary.
+CONFIG_READLINE=y
+
+# Remove debugging code that is printing out debug message to stdout.
+# This can be used to reduce the size of the wpa_supplicant considerably
+# if debugging code is not needed. The size reduction can be around 35%
+# (e.g., 90 kB).
+#CONFIG_NO_STDOUT_DEBUG=y
+
+# Remove WPA support, e.g., for wired-only IEEE 802.1X supplicant, to save
+# 35-50 kB in code size.
+#CONFIG_NO_WPA=y
+
+# Remove WPA2 support. This allows WPA to be used, but removes WPA2 code to
+# save about 1 kB in code size when building only WPA-Personal (no EAP support)
+# or 6 kB if building for WPA-Enterprise.
+#CONFIG_NO_WPA2=y
+
+# Remove IEEE 802.11i/WPA-Personal ASCII passphrase support
+# This option can be used to reduce code size by removing support for
+# converting ASCII passphrases into PSK. If this functionality is removed, the
+# PSK can only be configured as the 64-octet hexstring (e.g., from
+# wpa_passphrase). This saves about 0.5 kB in code size.
+#CONFIG_NO_WPA_PASSPHRASE=y
+
+# Remove AES extra functions. This can be used to reduce code size by about
+# 1.5 kB by removing extra AES modes that are not needed for commonly used
+# client configurations (they are needed for some EAP types).
+#CONFIG_NO_AES_EXTRAS=y
+
+# Disable scan result processing (ap_mode=1) to save code size by about 1 kB.
+# This can be used if ap_scan=1 mode is never enabled.
+#CONFIG_NO_SCAN_PROCESSING=y
+
+# Select configuration backend:
+# file = text file (e.g., wpa_supplicant.conf; note: the configuration file
+#      path is given on command line, not here; this option is just used to
+#      select the backend that allows configuration files to be used)
+# winreg = Windows registry (see win_example.reg for an example)
+CONFIG_BACKEND=file
+
+# Remove configuration write functionality (i.e., to allow the configuration
+# file to be updated based on runtime configuration changes). The runtime
+# configuration can still be changed, the changes are just not going to be
+# persistent over restarts. This option can be used to reduce code size by
+# about 3.5 kB.
+#CONFIG_NO_CONFIG_WRITE=y
+
+# Remove support for configuration blobs to reduce code size by about 1.5 kB.
+#CONFIG_NO_CONFIG_BLOBS=y
+
+# Select program entry point implementation:
+# main = UNIX/POSIX like main() function (default)
+# main_winsvc = Windows service (read parameters from registry)
+# main_none = Very basic example (development use only)
+CONFIG_MAIN=main
+
+# Select wrapper for operatins system and C library specific functions
+# unix = UNIX/POSIX like systems (default)
+# win32 = Windows systems
+# none = Empty template
+CONFIG_OS=unix
+
+# Select event loop implementation
+# eloop = select() loop (default)
+# eloop_win = Windows events and WaitForMultipleObject() loop
+# eloop_none = Empty template
+CONFIG_ELOOP=eloop
+
+# Select layer 2 packet implementation
+# linux = Linux packet socket (default)
+# pcap = libpcap/libdnet/WinPcap
+# freebsd = FreeBSD libpcap
+# winpcap = WinPcap with receive thread
+# ndis = Windows NDISUIO (note: requires CONFIG_USE_NDISUIO=y)
+# none = Empty template
+CONFIG_L2_PACKET=freebsd
+
+# PeerKey handshake for Station to Station Link (IEEE 802.11e DLS)
+CONFIG_PEERKEY=y
+
+# IEEE 802.11w (management frame protection)
+# This version is an experimental implementation based on IEEE 802.11w/D1.0
+# draft and is subject to change since the standard has not yet been finalized.
+# Driver support is also needed for IEEE 802.11w.
+CONFIG_IEEE80211W=y
+
+# Select TLS implementation
+# openssl = OpenSSL (default)
+# gnutls = GnuTLS (needed for TLS/IA, see also CONFIG_GNUTLS_EXTRA)
+# internal = Internal TLSv1 implementation (experimental)
+# none = Empty template
+CONFIG_TLS=openssl
+
+# Whether to enable TLS/IA support, which is required for EAP-TTLSv1.
+# You need CONFIG_TLS=gnutls for this to have any effect. Please note that
+# even though the core GnuTLS library is released under LGPL, this extra
+# library uses GPL and as such, the terms of GPL apply to the combination
+# of wpa_supplicant and GnuTLS if this option is enabled. BSD license may not
+# apply for distribution of the resulting binary.
+#CONFIG_GNUTLS_EXTRA=y
+
+# If CONFIG_TLS=internal is used, additional library and include paths are
+# needed for LibTomMath. Alternatively, an integrated, minimal version of
+# LibTomMath can be used. See beginning of libtommath.c for details on benefits
+# and drawbacks of this option.
+#CONFIG_INTERNAL_LIBTOMMATH=y
+#ifndef CONFIG_INTERNAL_LIBTOMMATH
+#LTM_PATH=/usr/src/libtommath-0.39
+#CFLAGS += -I$(LTM_PATH)
+#LIBS += -L$(LTM_PATH)
+#LIBS_p += -L$(LTM_PATH)
+#endif
+
+# Include NDIS event processing through WMI into wpa_supplicant/wpasvc.
+# This is only for Windows builds and requires WMI-related header files and
+# WbemUuid.Lib from Platform SDK even when building with MinGW.
+#CONFIG_NDIS_EVENTS_INTEGRATED=y
+#PLATFORMSDKLIB="/opt/Program Files/Microsoft Platform SDK/Lib"
+
+# Add support for DBus control interface
+CONFIG_CTRL_IFACE_DBUS=y
+
+# Add support for loading EAP methods dynamically as shared libraries.
+# When this option is enabled, each EAP method can be either included
+# statically (CONFIG_EAP_<method>=y) or dynamically (CONFIG_EAP_<method>=dyn).
+# Dynamic EAP methods are build as shared objects (eap_*.so) and they need to
+# be loaded in the beginning of the wpa_supplicant configuration file
+# (see load_dynamic_eap parameter in the example file) before being used in
+# the network blocks.
+#
+# Note that some shared parts of EAP methods are included in the main program
+# and in order to be able to use dynamic EAP methods using these parts, the
+# main program must have been build with the EAP method enabled (=y or =dyn).
+# This means that EAP-TLS/PEAP/TTLS/FAST cannot be added as dynamic libraries
+# unless at least one of them was included in the main build to force inclusion
+# of the shared code. Similarly, at least one of EAP-SIM/AKA must be included
+# in the main build to be able to load these methods dynamically.
+#
+# Please also note that using dynamic libraries will increase the total binary
+# size. Thus, it may not be the best option for targets that have limited
+# amount of memory/flash.
+#CONFIG_DYNAMIC_EAP_METHODS=y
+
+# Include client MLME (management frame processing).
+# This can be used to move MLME processing of Devicescape IEEE 802.11 stack
+# into user space.
+#CONFIG_CLIENT_MLME=y
+# Currently, driver_devicescape.c build requires some additional parameters
+# to be able to include some of the kernel header files. Following lines can
+# be used to set these (WIRELESS_DEV must point to the root directory of the
+# wireless-dev.git tree).
+#WIRELESS_DEV=/usr/src/wireless-dev
+#CFLAGS += -I$(WIRELESS_DEV)/net/mac80211
+
+# IEEE 802.11r/D4.1 (Fast BSS Transition)
+# This enables an experimental implementation of a draft version of
+# IEEE 802.11r. This draft is still subject to change, so it should be noted
+# that this version may not comply with the final standard.
+CONFIG_IEEE80211R=y
+
+# Add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt)
+CONFIG_DEBUG_FILE=y
+
+# Enable privilege separation (see README 'Privilege separation' for details)
+#CONFIG_PRIVSEP=y
diff -Naur wpasupplicant-0.6.3.orig/debian/control 
wpasupplicant-0.6.3.new/debian/control
--- wpasupplicant-0.6.3.orig/debian/control     2008-05-11 00:36:55.000000000 
+0200
+++ wpasupplicant-0.6.3.new/debian/control      2008-05-11 00:24:30.000000000 
+0200
@@ -4,7 +4,7 @@
 Maintainer: Debian/Ubuntu wpasupplicant Maintainers <[EMAIL PROTECTED]>
 Uploaders: Kyle McMartin <[EMAIL PROTECTED]>, Reinhard Tartler <[EMAIL 
PROTECTED]>, Kel Modderman <[EMAIL PROTECTED]>
 Standards-Version: 3.7.3
-Build-Depends: debhelper (>= 5), quilt, libssl-dev, libpcsclite-dev, 
libreadline5-dev, libqt4-dev, libdbus-1-dev, docbook, docbook-utils, pkg-config
+Build-Depends: debhelper (>= 5), quilt, libssl-dev, libpcsclite-dev, 
libreadline5-dev, libqt4-dev, libdbus-1-dev, docbook, docbook-utils, 
pkg-config, libpcap-dev [kfreebsd], libbsd[kfreebsd]
 Vcs-Svn: svn://svn.debian.org/pkg-wpa/wpasupplicant/trunk
 Vcs-Browser: http://svn.debian.org/wsvn/pkg-wpa/wpasupplicant/trunk/
 Homepage: http://w1.fi/wpa_supplicant/
diff -Naur 
wpasupplicant-0.6.3.orig/debian/patches/50_fix_ftbfs_on_gnukfreebsd.patch 
wpasupplicant-0.6.3.new/debian/patches/50_fix_ftbfs_on_gnukfreebsd.patch
--- wpasupplicant-0.6.3.orig/debian/patches/50_fix_ftbfs_on_gnukfreebsd.patch   
1970-01-01 01:00:00.000000000 +0100
+++ wpasupplicant-0.6.3.new/debian/patches/50_fix_ftbfs_on_gnukfreebsd.patch    
2008-05-11 00:55:34.000000000 +0200
@@ -0,0 +1,42 @@
+--- a/src/drivers/driver_bsd.c
++++ b/src/drivers/driver_bsd.c
+@@ -27,6 +27,10 @@
+ #include <net80211/ieee80211_crypto.h>
+ #include <net80211/ieee80211_ioctl.h>
+ 
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++#include "bsd/string.h"
++#endif
++
+ struct wpa_driver_bsd_data {
+       int     sock;                   /* open socket for 802.11 ioctls */
+       int     route;                  /* routing socket for events */
+--- a/src/l2_packet/l2_packet_freebsd.c
++++ b/src/l2_packet/l2_packet_freebsd.c
+@@ -17,6 +17,11 @@
+ #ifdef __APPLE__
+ #include <net/bpf.h>
+ #endif /* __APPLE__ */
++
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++#include <net/bpf.h>
++#endif
++
+ #include <pcap.h>
+ 
+ #include <sys/ioctl.h>
+--- a/src/utils/common.h
++++ b/src/utils/common.h
+@@ -17,10 +17,10 @@
+ 
+ #include "os.h"
+ 
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ #include <endian.h>
+ #include <byteswap.h>
+-#endif /* __linux__ */
++#endif /* __linux__ / GNU/kfreebsd */
+ 
+ #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
+ #include <sys/types.h>
diff -Naur wpasupplicant-0.6.3.orig/debian/patches/series 
wpasupplicant-0.6.3.new/debian/patches/series
--- wpasupplicant-0.6.3.orig/debian/patches/series      2008-05-11 
00:36:55.000000000 +0200
+++ wpasupplicant-0.6.3.new/debian/patches/series       2008-05-11 
00:58:54.000000000 +0200
@@ -9,3 +9,4 @@
 20_wpa_gui_qt4_disable_link_prl.patch
 41_manpage_format_fixes.patch
 42_manpage_explain_available_drivers.patch
+50_fix_ftbfs_on_gnukfreebsd.patch
diff -Naur wpasupplicant-0.6.3.orig/debian/rules 
wpasupplicant-0.6.3.new/debian/rules
--- wpasupplicant-0.6.3.orig/debian/rules       2008-05-11 00:36:55.000000000 
+0200
+++ wpasupplicant-0.6.3.new/debian/rules        2008-05-11 00:24:31.000000000 
+0200
@@ -17,7 +17,16 @@
        CFLAGS += -O2
 endif
 
-wpa_supplicant/.config: debian/config
+DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
+
+ifeq ($(DEB_HOST_ARCH_OS),kfreebsd)
+       CONFIG := debian/config.kfreebsd
+else
+       CONFIG := debian/config
+endif
+
+
+wpa_supplicant/.config: $(CONFIG)
        cp -v $< $@
 
 build: build-stamp

Reply via email to