summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-wireless
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-wireless')
-rw-r--r--net-wireless/adm8211/Manifest1
-rw-r--r--net-wireless/adm8211/adm8211-20060111.ebuild57
-rw-r--r--net-wireless/adm8211/files/01-fix-up-build-breaks-from-2.6.19.patch44
-rw-r--r--net-wireless/adm8211/files/02-Use-ieee80211_generic_get_stats.patch43
-rw-r--r--net-wireless/adm8211/files/03-fix-work_struct-build-breakage.patch69
-rw-r--r--net-wireless/adm8211/files/04-fix-set-essid-for-WE-21.patch26
-rw-r--r--net-wireless/adm8211/files/05-update-email-address-from-jkmaline-cc.hut.fi-to.patch81
-rw-r--r--net-wireless/adm8211/files/06-adm8211-fix-build-breakage-from-skb-mac.raw.patch53
-rw-r--r--net-wireless/adm8211/files/2.6.20-no-config_h.patch20
-rw-r--r--net-wireless/adm8211/files/2.6.20.patch27
-rw-r--r--net-wireless/adm8211/files/linux-2.6.17.patch10
-rw-r--r--net-wireless/adm8211/files/linux-2.6.19.patch32
-rw-r--r--net-wireless/adm8211/metadata.xml5
-rw-r--r--net-wireless/aircrack-ng/Manifest2
-rw-r--r--net-wireless/aircrack-ng/aircrack-ng-1.2_rc1-r1.ebuild138
-rw-r--r--net-wireless/aircrack-ng/aircrack-ng-1.2_rc2.ebuild138
-rw-r--r--net-wireless/aircrack-ng/aircrack-ng-9999.ebuild144
-rw-r--r--net-wireless/aircrack-ng/metadata.xml23
-rw-r--r--net-wireless/airpwn/Manifest1
-rw-r--r--net-wireless/airpwn/airpwn-1.4-r2.ebuild45
-rw-r--r--net-wireless/airpwn/metadata.xml13
-rw-r--r--net-wireless/airsnort/Manifest1
-rw-r--r--net-wireless/airsnort/airsnort-0.2.7e.ebuild30
-rw-r--r--net-wireless/airsnort/metadata.xml10
-rw-r--r--net-wireless/airtraf/Manifest1
-rw-r--r--net-wireless/airtraf/airtraf-1.1-r3.ebuild54
-rw-r--r--net-wireless/airtraf/files/airtraf-1.1-fprintf-format.patch14
-rw-r--r--net-wireless/airtraf/files/airtraf-1.1-off-by-one.patch29
-rw-r--r--net-wireless/airtraf/files/airtraf-1.1.patch59
-rw-r--r--net-wireless/airtraf/metadata.xml12
-rw-r--r--net-wireless/ap-utils/Manifest2
-rw-r--r--net-wireless/ap-utils/ap-utils-1.4.ebuild32
-rw-r--r--net-wireless/ap-utils/ap-utils-1.5.ebuild23
-rw-r--r--net-wireless/ap-utils/files/ap-utils-1.4-ppc-fix.diff24
-rw-r--r--net-wireless/ap-utils/metadata.xml5
-rw-r--r--net-wireless/b43-fwcutter/Manifest2
-rw-r--r--net-wireless/b43-fwcutter/b43-fwcutter-018.ebuild34
-rw-r--r--net-wireless/b43-fwcutter/b43-fwcutter-019.ebuild36
-rw-r--r--net-wireless/b43-fwcutter/metadata.xml12
-rw-r--r--net-wireless/bcm43xx-fwcutter/Manifest2
-rw-r--r--net-wireless/bcm43xx-fwcutter/bcm43xx-fwcutter-005.ebuild39
-rw-r--r--net-wireless/bcm43xx-fwcutter/bcm43xx-fwcutter-006.ebuild39
-rw-r--r--net-wireless/bcm43xx-fwcutter/metadata.xml12
-rw-r--r--net-wireless/bladerf-firmware/Manifest2
-rw-r--r--net-wireless/bladerf-firmware/bladerf-firmware-1.7.1.ebuild28
-rw-r--r--net-wireless/bladerf-firmware/bladerf-firmware-1.8.0.ebuild34
-rw-r--r--net-wireless/bladerf-firmware/metadata.xml11
-rw-r--r--net-wireless/bladerf-fpga/Manifest8
-rw-r--r--net-wireless/bladerf-fpga/bladerf-fpga-0.0.6.ebuild30
-rw-r--r--net-wireless/bladerf-fpga/bladerf-fpga-0.1.1-r1.ebuild30
-rw-r--r--net-wireless/bladerf-fpga/bladerf-fpga-0.1.2.ebuild30
-rw-r--r--net-wireless/bladerf-fpga/bladerf-fpga-0.3.4.ebuild30
-rw-r--r--net-wireless/bladerf-fpga/metadata.xml15
-rw-r--r--net-wireless/bladerf/Manifest2
-rw-r--r--net-wireless/bladerf/bladerf-2015.02.ebuild53
-rw-r--r--net-wireless/bladerf/bladerf-2015.07.ebuild53
-rw-r--r--net-wireless/bladerf/bladerf-9999.ebuild53
-rw-r--r--net-wireless/bladerf/metadata.xml17
-rw-r--r--net-wireless/bluedevil/Manifest2
-rw-r--r--net-wireless/bluedevil/bluedevil-2.0_rc1.ebuild27
-rw-r--r--net-wireless/bluedevil/bluedevil-2.1.1.ebuild27
-rw-r--r--net-wireless/bluedevil/metadata.xml5
-rw-r--r--net-wireless/blueman/Manifest3
-rw-r--r--net-wireless/blueman/blueman-1.23-r2.ebuild100
-rw-r--r--net-wireless/blueman/blueman-1.98_p20150105.ebuild101
-rw-r--r--net-wireless/blueman/blueman-2.0.ebuild116
-rw-r--r--net-wireless/blueman/blueman-9999.ebuild115
-rw-r--r--net-wireless/blueman/files/blueman-1.23-fix-broken-status-icon.patch34
-rw-r--r--net-wireless/blueman/files/blueman-1.23-plugins-conf-file.patch30
-rw-r--r--net-wireless/blueman/files/blueman-1.23-set-codeset-for-gettext-to-UTF-8-always.patch266
-rw-r--r--net-wireless/blueman/files/blueman-1.98_p20150105-set-codeset-for-gettext-to-UTF-8-always.patch239
-rw-r--r--net-wireless/blueman/files/blueman-2.0-set-codeset-for-gettext-to-UTF-8-always.patch219
-rw-r--r--net-wireless/blueman/files/blueman-9999-set-codeset-for-gettext-to-UTF-8-always.patch267
-rw-r--r--net-wireless/blueman/metadata.xml19
-rw-r--r--net-wireless/bluez-hcidump/Manifest1
-rw-r--r--net-wireless/bluez-hcidump/bluez-hcidump-2.5.ebuild19
-rw-r--r--net-wireless/bluez-hcidump/metadata.xml8
-rw-r--r--net-wireless/bluez/Manifest5
-rw-r--r--net-wireless/bluez/bluez-4.101-r9.ebuild204
-rw-r--r--net-wireless/bluez/bluez-5.25.ebuild208
-rw-r--r--net-wireless/bluez/bluez-5.32.ebuild209
-rw-r--r--net-wireless/bluez/bluez-5.33.ebuild209
-rw-r--r--net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch58
-rw-r--r--net-wireless/bluez/files/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch38
-rw-r--r--net-wireless/bluez/files/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch29
-rw-r--r--net-wireless/bluez/files/0002-autopair-Don-t-handle-the-iCade.patch47
-rw-r--r--net-wireless/bluez/files/0004-agent-Assert-possible-infinite-loop.patch25
-rw-r--r--net-wireless/bluez/files/bluetooth-init.d-r221
-rw-r--r--net-wireless/bluez/files/bluetooth-init.d-r321
-rwxr-xr-xnet-wireless/bluez/files/bluez-plugdev.patch14
-rw-r--r--net-wireless/bluez/files/bluez-udevadm-path.patch10
-rw-r--r--net-wireless/bluez/files/rfcomm-conf.d5
-rw-r--r--net-wireless/bluez/files/rfcomm-init.d27
-rwxr-xr-xnet-wireless/bluez/files/rfcomm-init.d-r235
-rw-r--r--net-wireless/bluez/metadata.xml21
-rw-r--r--net-wireless/broadcom-sta/Manifest7
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-6.30.223.141-r1.ebuild66
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-6.30.223.141-r2.ebuild67
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-6.30.223.141.ebuild69
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r1.ebuild75
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r2.ebuild77
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild77
-rw-r--r--net-wireless/broadcom-sta/broadcom-sta-6.30.223.30-r2.ebuild83
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-license.patch12
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.111-linux-3.0.patch21
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-2.6.39.patch11
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.2-with-multicast.patch14
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.4.patch12
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.6.patch60
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.8.patch71
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.9.patch14
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-remove-rssi-errors.patch32
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.38-gcc.patch11
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-eth-to-wlan.patch12
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-gcc.patch11
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-license.patch10
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-3.10.0.patch102
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-3.15.patch17
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-recent.patch126
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-makefile.patch14
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-linux-3.17.patch29
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-linux-3.18.patch30
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch11
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch350
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-4.0.patch26
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-linux-3.10.0.patch102
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-linux-3.9.0.patch17
-rw-r--r--net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-makefile.patch14
-rw-r--r--net-wireless/broadcom-sta/metadata.xml15
-rw-r--r--net-wireless/bss/Manifest1
-rw-r--r--net-wireless/bss/bss-0.8.ebuild34
-rw-r--r--net-wireless/bss/metadata.xml7
-rw-r--r--net-wireless/btcrack/btcrack-9999.ebuild28
-rw-r--r--net-wireless/btcrack/metadata.xml13
-rw-r--r--net-wireless/chillispot/Manifest1
-rw-r--r--net-wireless/chillispot/chillispot-1.1.0.ebuild34
-rw-r--r--net-wireless/chillispot/files/chillispot33
-rw-r--r--net-wireless/chillispot/files/chillispot-1.1.0-gcc44.patch81
-rw-r--r--net-wireless/chillispot/metadata.xml15
-rw-r--r--net-wireless/chirp/Manifest1
-rw-r--r--net-wireless/chirp/chirp-0.4.1.ebuild43
-rw-r--r--net-wireless/chirp/chirp-9999.ebuild43
-rw-r--r--net-wireless/chirp/metadata.xml12
-rw-r--r--net-wireless/cpyrit-cuda/Manifest1
-rw-r--r--net-wireless/cpyrit-cuda/cpyrit-cuda-0.4.0-r1.ebuild30
-rw-r--r--net-wireless/cpyrit-cuda/cpyrit-cuda-0.4.0.ebuild27
-rw-r--r--net-wireless/cpyrit-cuda/metadata.xml13
-rw-r--r--net-wireless/cpyrit-opencl/Manifest1
-rw-r--r--net-wireless/cpyrit-opencl/cpyrit-opencl-0.4.0-r1.ebuild30
-rw-r--r--net-wireless/cpyrit-opencl/cpyrit-opencl-0.4.0.ebuild27
-rw-r--r--net-wireless/cpyrit-opencl/metadata.xml13
-rw-r--r--net-wireless/crackle/Manifest1
-rw-r--r--net-wireless/crackle/crackle-0.1.ebuild29
-rw-r--r--net-wireless/crackle/files/flags.patch20
-rw-r--r--net-wireless/crackle/metadata.xml10
-rw-r--r--net-wireless/crda/Manifest3
-rw-r--r--net-wireless/crda/crda-1.1.2-r3.ebuild48
-rw-r--r--net-wireless/crda/crda-1.1.2-r4.ebuild58
-rw-r--r--net-wireless/crda/crda-1.1.3-r1.ebuild67
-rw-r--r--net-wireless/crda/crda-1.1.3.ebuild56
-rw-r--r--net-wireless/crda/crda-3.18.ebuild75
-rw-r--r--net-wireless/crda/files/crda-1.1.3-missing-include.patch11
-rw-r--r--net-wireless/crda/files/crda-3.18-cflags.patch33
-rw-r--r--net-wireless/crda/files/crda-3.18-libreg-link.patch30
-rw-r--r--net-wireless/crda/files/crda-3.18-no-ldconfig.patch28
-rw-r--r--net-wireless/crda/files/crda-3.18-no-werror.patch32
-rw-r--r--net-wireless/crda/files/crda-3.18-openssl.patch44
-rw-r--r--net-wireless/crda/files/libnl31-support.diff60
-rw-r--r--net-wireless/crda/metadata.xml16
-rw-r--r--net-wireless/dump1090/Manifest1
-rw-r--r--net-wireless/dump1090/dump1090-0.0_p20140919.ebuild47
-rw-r--r--net-wireless/dump1090/dump1090-9999.ebuild47
-rw-r--r--net-wireless/dump1090/files/gmap_usr_share_mv.patch14
-rw-r--r--net-wireless/dump1090/metadata.xml12
-rw-r--r--net-wireless/gnome-bluetooth/Manifest3
-rw-r--r--net-wireless/gnome-bluetooth/files/61-gnome-bluetooth.rules11
-rw-r--r--net-wireless/gnome-bluetooth/files/gnome-bluetooth-3.12.0-gold.patch54
-rw-r--r--net-wireless/gnome-bluetooth/gnome-bluetooth-3.14.0.ebuild73
-rw-r--r--net-wireless/gnome-bluetooth/gnome-bluetooth-3.14.1.ebuild73
-rw-r--r--net-wireless/gnome-bluetooth/gnome-bluetooth-3.16.1.ebuild73
-rw-r--r--net-wireless/gnome-bluetooth/metadata.xml5
-rw-r--r--net-wireless/gnuradio/Manifest3
-rw-r--r--net-wireless/gnuradio/files/gnuradio-3.6.1-automagic-audio.patch90
-rw-r--r--net-wireless/gnuradio/files/gnuradio-3.7.4-include_stringh.patch18
-rw-r--r--net-wireless/gnuradio/files/gnuradio-3.7.6.1-qwt-with-qt5-support.patch23
-rw-r--r--net-wireless/gnuradio/files/gnuradio-9999-build-type-nonfatal.patch11
-rw-r--r--net-wireless/gnuradio/gnuradio-3.6.5.1-r2.ebuild196
-rw-r--r--net-wireless/gnuradio/gnuradio-3.7.6.1-r2.ebuild232
-rw-r--r--net-wireless/gnuradio/gnuradio-3.7.7.1.ebuild231
-rw-r--r--net-wireless/gnuradio/gnuradio-9999.ebuild231
-rw-r--r--net-wireless/gnuradio/metadata.xml28
-rw-r--r--net-wireless/gobi_loader/Manifest1
-rw-r--r--net-wireless/gobi_loader/files/gobi_loader-0.7-makefile.patch22
-rw-r--r--net-wireless/gobi_loader/gobi_loader-0.7-r2.ebuild34
-rw-r--r--net-wireless/gobi_loader/metadata.xml13
-rw-r--r--net-wireless/gqrx/Manifest2
-rw-r--r--net-wireless/gqrx/files/no_qtsvg.patch13
-rw-r--r--net-wireless/gqrx/gqrx-2.3.1.ebuild44
-rw-r--r--net-wireless/gqrx/gqrx-2.3.2.ebuild44
-rw-r--r--net-wireless/gqrx/gqrx-9999.ebuild43
-rw-r--r--net-wireless/gqrx/metadata.xml14
-rw-r--r--net-wireless/gr-baz/gr-baz-9999.ebuild42
-rw-r--r--net-wireless/gr-baz/metadata.xml17
-rw-r--r--net-wireless/gr-iqbal/Manifest2
-rw-r--r--net-wireless/gr-iqbal/files/add-pkgconfig-file.patch52
-rw-r--r--net-wireless/gr-iqbal/gr-iqbal-0.36.0.ebuild39
-rw-r--r--net-wireless/gr-iqbal/gr-iqbal-0.37.2.ebuild32
-rw-r--r--net-wireless/gr-iqbal/gr-iqbal-9999.ebuild32
-rw-r--r--net-wireless/gr-iqbal/metadata.xml12
-rw-r--r--net-wireless/gr-osmosdr/Manifest2
-rw-r--r--net-wireless/gr-osmosdr/files/hackrf-safety.patch34
-rw-r--r--net-wireless/gr-osmosdr/gr-osmosdr-0.1.4.ebuild70
-rw-r--r--net-wireless/gr-osmosdr/gr-osmosdr-0.1.4_p20150730.ebuild70
-rw-r--r--net-wireless/gr-osmosdr/gr-osmosdr-9999.ebuild70
-rw-r--r--net-wireless/gr-osmosdr/metadata.xml15
-rw-r--r--net-wireless/gr-rds/gr-rds-9999.ebuild45
-rw-r--r--net-wireless/gr-rds/metadata.xml8
-rw-r--r--net-wireless/hackrf-tools/Manifest2
-rw-r--r--net-wireless/hackrf-tools/files/52-hackrf.rules1
-rw-r--r--net-wireless/hackrf-tools/hackrf-tools-2014.08.1.ebuild43
-rw-r--r--net-wireless/hackrf-tools/hackrf-tools-2015.07.2-r1.ebuild45
-rw-r--r--net-wireless/hackrf-tools/hackrf-tools-2015.07.2.ebuild43
-rw-r--r--net-wireless/hackrf-tools/hackrf-tools-9999.ebuild45
-rw-r--r--net-wireless/hackrf-tools/metadata.xml15
-rw-r--r--net-wireless/hidclient/Manifest1
-rw-r--r--net-wireless/hidclient/files/README16
-rw-r--r--net-wireless/hidclient/hidclient-20120728.ebuild34
-rw-r--r--net-wireless/hidclient/metadata.xml11
-rw-r--r--net-wireless/horst/Manifest1
-rw-r--r--net-wireless/horst/horst-4.2.ebuild35
-rw-r--r--net-wireless/horst/horst-9999.ebuild37
-rw-r--r--net-wireless/horst/metadata.xml11
-rw-r--r--net-wireless/hostap-utils/Manifest1
-rw-r--r--net-wireless/hostap-utils/files/hostap-utils-0.4.7-makefile.patch31
-rw-r--r--net-wireless/hostap-utils/hostap-utils-0.4.7-r1.ebuild34
-rw-r--r--net-wireless/hostap-utils/metadata.xml6
-rw-r--r--net-wireless/hostapd/Manifest1
-rw-r--r--net-wireless/hostapd/files/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch49
-rw-r--r--net-wireless/hostapd/files/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch41
-rw-r--r--net-wireless/hostapd/files/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch73
-rw-r--r--net-wireless/hostapd/files/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch66
-rw-r--r--net-wireless/hostapd/files/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch52
-rw-r--r--net-wireless/hostapd/files/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch50
-rw-r--r--net-wireless/hostapd/files/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch32
-rw-r--r--net-wireless/hostapd/files/2015-5/0001-NFC-Avoid-misaligned-read-of-an-NDEF-field.patch29
-rw-r--r--net-wireless/hostapd/files/2015-5/0002-NFC-Fix-payload-length-validation-in-NDEF-record-par.patch61
-rw-r--r--net-wireless/hostapd/files/hostapd-conf.d9
-rw-r--r--net-wireless/hostapd/files/hostapd-hlr_auc_gw-openssl.patch43
-rw-r--r--net-wireless/hostapd/files/hostapd-init.d39
-rw-r--r--net-wireless/hostapd/files/hostapd.service9
-rw-r--r--net-wireless/hostapd/hostapd-2.4-r2.ebuild220
-rw-r--r--net-wireless/hostapd/hostapd-2.4-r3.ebuild224
-rw-r--r--net-wireless/hostapd/metadata.xml21
-rw-r--r--net-wireless/irda-utils/Manifest1
-rw-r--r--net-wireless/irda-utils/files/irda-setup.sh68
-rw-r--r--net-wireless/irda-utils/files/irda-usb.sh62
-rw-r--r--net-wireless/irda-utils/files/irda-utils-0.9.18-asneeded.patch15
-rw-r--r--net-wireless/irda-utils/files/irda-utils-0.9.18-dofail.patch26
-rw-r--r--net-wireless/irda-utils/files/irda-utils-0.9.18-headers.patch11
-rw-r--r--net-wireless/irda-utils/files/irda-utils-0.9.18-io.h.diff48
-rw-r--r--net-wireless/irda-utils/files/irda-utils-0.9.18-ldflags.patch132
-rw-r--r--net-wireless/irda-utils/files/irda-utils-0.9.18-makefile.diff11
-rw-r--r--net-wireless/irda-utils/files/irda-utils-0.9.18-smcinit.diff14
-rw-r--r--net-wireless/irda-utils/files/irda-utils-rh1.patch11
-rw-r--r--net-wireless/irda-utils/files/irda.confd27
-rw-r--r--net-wireless/irda-utils/files/irda.initd86
-rw-r--r--net-wireless/irda-utils/files/irda.modsd48
-rw-r--r--net-wireless/irda-utils/files/irda.rules18
-rw-r--r--net-wireless/irda-utils/irda-utils-0.9.18-r3.ebuild94
-rw-r--r--net-wireless/irda-utils/irda-utils-0.9.18-r4.ebuild96
-rw-r--r--net-wireless/irda-utils/metadata.xml10
-rw-r--r--net-wireless/iw/Manifest6
-rw-r--r--net-wireless/iw/files/iw-3.10-versioncheck.patch30
-rw-r--r--net-wireless/iw/iw-3.10-r1.ebuild33
-rw-r--r--net-wireless/iw/iw-3.10.ebuild32
-rw-r--r--net-wireless/iw/iw-3.11.ebuild32
-rw-r--r--net-wireless/iw/iw-3.13.ebuild34
-rw-r--r--net-wireless/iw/iw-3.14.ebuild34
-rw-r--r--net-wireless/iw/iw-3.17.ebuild34
-rw-r--r--net-wireless/iw/iw-4.0.ebuild34
-rw-r--r--net-wireless/iw/metadata.xml13
-rw-r--r--net-wireless/kismet-ubertooth/Manifest3
-rw-r--r--net-wireless/kismet-ubertooth/files/kismet-ubertooth-0.0_p534-respect-cflags.patch61
-rw-r--r--net-wireless/kismet-ubertooth/kismet-ubertooth-0.0_p534-r1.ebuild58
-rw-r--r--net-wireless/kismet-ubertooth/kismet-ubertooth-0.0_p534.ebuild58
-rw-r--r--net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1-r1.ebuild56
-rw-r--r--net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1-r2.ebuild56
-rw-r--r--net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1.ebuild56
-rw-r--r--net-wireless/kismet-ubertooth/kismet-ubertooth-2014.04.1.ebuild54
-rw-r--r--net-wireless/kismet-ubertooth/kismet-ubertooth-9999.ebuild54
-rw-r--r--net-wireless/kismet-ubertooth/metadata.xml13
-rw-r--r--net-wireless/kismet/Manifest1
-rw-r--r--net-wireless/kismet/files/bluechanfix_r3184.patch15
-rw-r--r--net-wireless/kismet/files/header_alignment_r3326.patch58
-rw-r--r--net-wireless/kismet/files/kismet-2011.03.2-cflags-backport.patch115
-rw-r--r--net-wireless/kismet/files/kismet-2013.03.1-tinfo.patch11
-rw-r--r--net-wireless/kismet/files/kismet-console-scrolling-backport.patch12
-rw-r--r--net-wireless/kismet/files/kismet.confd12
-rw-r--r--net-wireless/kismet/files/kismet.initd27
-rw-r--r--net-wireless/kismet/files/makefile.patch119
-rw-r--r--net-wireless/kismet/files/plugins-ldflags.patch10
-rw-r--r--net-wireless/kismet/files/ruby19_fixes.patch85
-rw-r--r--net-wireless/kismet/files/update-kismet_shootout.patch103
-rw-r--r--net-wireless/kismet/files/use-hostname-by-default.patch29
-rw-r--r--net-wireless/kismet/kismet-2013.03.1-r2.ebuild174
-rw-r--r--net-wireless/kismet/kismet-9999.ebuild167
-rw-r--r--net-wireless/kismet/metadata.xml31
-rw-r--r--net-wireless/lorcon-old/lorcon-old-9999.ebuild27
-rw-r--r--net-wireless/lorcon-old/metadata.xml11
-rw-r--r--net-wireless/lorcon/Manifest1
-rw-r--r--net-wireless/lorcon/lorcon-0.0_p20130212-r1.ebuild100
-rw-r--r--net-wireless/lorcon/lorcon-9999.ebuild100
-rw-r--r--net-wireless/lorcon/metadata.xml11
-rw-r--r--net-wireless/madwifi-ng-tools/Manifest6
-rw-r--r--net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.3.3.ebuild75
-rw-r--r--net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4119.20100201.ebuild70
-rw-r--r--net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4133.20100621.ebuild70
-rw-r--r--net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4165.20110816.ebuild70
-rw-r--r--net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4180.20120502.ebuild70
-rw-r--r--net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.ebuild75
-rw-r--r--net-wireless/madwifi-ng-tools/metadata.xml11
-rw-r--r--net-wireless/madwifi-ng/Manifest6
-rw-r--r--net-wireless/madwifi-ng/files/madwifi-dfs-ieee80211-skb-update.patch12
-rw-r--r--net-wireless/madwifi-ng/files/madwifi-ng-0.9.3-uudecode-gcda-fix.patch12
-rw-r--r--net-wireless/madwifi-ng/files/madwifi-ng-0.9.4-2.6.27-r3811.patch190
-rw-r--r--net-wireless/madwifi-ng/files/madwifi-ng-0.9.4-request_module-build.patch31
-rw-r--r--net-wireless/madwifi-ng/files/madwifi-ng-injection-r3925.patch32
-rw-r--r--net-wireless/madwifi-ng/files/madwifi-ng-r1886.patch26
-rw-r--r--net-wireless/madwifi-ng/madwifi-ng-0.9.3.3.ebuild85
-rw-r--r--net-wireless/madwifi-ng/madwifi-ng-0.9.4-r1.ebuild95
-rw-r--r--net-wireless/madwifi-ng/madwifi-ng-0.9.4.4119.20100201.ebuild96
-rw-r--r--net-wireless/madwifi-ng/madwifi-ng-0.9.4.4133.20100621.ebuild96
-rw-r--r--net-wireless/madwifi-ng/madwifi-ng-0.9.4.4165.20110816.ebuild96
-rw-r--r--net-wireless/madwifi-ng/madwifi-ng-0.9.4.4180.20120502.ebuild96
-rw-r--r--net-wireless/madwifi-ng/madwifi-ng-0.9.4.ebuild95
-rw-r--r--net-wireless/madwifi-ng/metadata.xml19
-rw-r--r--net-wireless/madwimax/Manifest1
-rw-r--r--net-wireless/madwimax/madwimax-0.1.1-r1.ebuild42
-rw-r--r--net-wireless/madwimax/metadata.xml10
-rw-r--r--net-wireless/mdk/Manifest1
-rw-r--r--net-wireless/mdk/files/3.6-makefile.patch37
-rw-r--r--net-wireless/mdk/files/fix_wids_mdk3_v5.patch21
-rw-r--r--net-wireless/mdk/mdk-3.6-r1.ebuild37
-rw-r--r--net-wireless/mdk/metadata.xml9
-rw-r--r--net-wireless/metadata.xml36
-rw-r--r--net-wireless/mfoc/Manifest1
-rw-r--r--net-wireless/mfoc/metadata.xml8
-rw-r--r--net-wireless/mfoc/mfoc-0.10.7.ebuild27
-rw-r--r--net-wireless/multimode/Manifest2
-rw-r--r--net-wireless/multimode/metadata.xml12
-rw-r--r--net-wireless/multimode/multimode-1.00-r2.ebuild43
-rw-r--r--net-wireless/multimode/multimode-1.4_p20140831-r1.ebuild41
-rw-r--r--net-wireless/multimode/multimode-9999.ebuild41
-rw-r--r--net-wireless/ndiswrapper/Manifest2
-rw-r--r--net-wireless/ndiswrapper/files/ndiswrapper-1.56-cflags.patch12
-rw-r--r--net-wireless/ndiswrapper/files/ndiswrapper-1.58-3.9.patch32
-rw-r--r--net-wireless/ndiswrapper/files/ndiswrapper-1.59-3.14.patch48
-rw-r--r--net-wireless/ndiswrapper/files/ndiswrapper-1.59-cflags.patch13
-rw-r--r--net-wireless/ndiswrapper/metadata.xml15
-rw-r--r--net-wireless/ndiswrapper/ndiswrapper-1.58.ebuild106
-rw-r--r--net-wireless/ndiswrapper/ndiswrapper-1.59.ebuild107
-rw-r--r--net-wireless/neard/Manifest3
-rw-r--r--net-wireless/neard/files/neard.confd8
-rw-r--r--net-wireless/neard/files/neard.rc23
-rw-r--r--net-wireless/neard/metadata.xml11
-rw-r--r--net-wireless/neard/neard-0.11.ebuild30
-rw-r--r--net-wireless/neard/neard-0.13.ebuild30
-rw-r--r--net-wireless/neard/neard-0.15.ebuild31
-rw-r--r--net-wireless/openbsc/metadata.xml9
-rw-r--r--net-wireless/openbsc/openbsc-9999.ebuild34
-rw-r--r--net-wireless/openggsn/metadata.xml6
-rw-r--r--net-wireless/openggsn/openggsn-9999.ebuild23
-rw-r--r--net-wireless/orinoco-fwutils/Manifest2
-rw-r--r--net-wireless/orinoco-fwutils/metadata.xml11
-rw-r--r--net-wireless/orinoco-fwutils/orinoco-fwutils-0.1.ebuild43
-rw-r--r--net-wireless/orinoco-fwutils/orinoco-fwutils-0.3.ebuild42
-rw-r--r--net-wireless/orinoco-usb/metadata.xml5
-rw-r--r--net-wireless/orinoco-usb/orinoco-usb-9999.ebuild42
-rw-r--r--net-wireless/osmobts/metadata.xml6
-rw-r--r--net-wireless/osmobts/osmobts-9999.ebuild31
-rw-r--r--net-wireless/osmocom-bb/metadata.xml9
-rw-r--r--net-wireless/osmocom-bb/osmocom-bb-9999.ebuild46
-rw-r--r--net-wireless/portapack-firmware/Manifest1
-rw-r--r--net-wireless/portapack-firmware/metadata.xml9
-rw-r--r--net-wireless/portapack-firmware/portapack-firmware-20150722.ebuild50
-rw-r--r--net-wireless/pyrit/Manifest1
-rw-r--r--net-wireless/pyrit/metadata.xml17
-rw-r--r--net-wireless/pyrit/pyrit-0.4.0-r1.ebuild35
-rw-r--r--net-wireless/python-wifi/Manifest1
-rw-r--r--net-wireless/python-wifi/metadata.xml11
-rw-r--r--net-wireless/python-wifi/python-wifi-0.5.0-r1.ebuild36
-rw-r--r--net-wireless/python-wifi/python-wifi-0.5.0-r3.ebuild34
-rw-r--r--net-wireless/reaver/Manifest1
-rw-r--r--net-wireless/reaver/files/reaver-1.4_cflags.patch47
-rw-r--r--net-wireless/reaver/files/reaver-1.4_memset.patch11
-rw-r--r--net-wireless/reaver/files/reaver-1.4_parallel-make.patch50
-rw-r--r--net-wireless/reaver/files/reaver-1.4_var_db.patch11
-rw-r--r--net-wireless/reaver/files/reaver-1.4_wps_registrar.patch11
-rw-r--r--net-wireless/reaver/metadata.xml13
-rw-r--r--net-wireless/reaver/reaver-1.4-r1.ebuild36
-rw-r--r--net-wireless/reaver/reaver-1.4-r3.ebuild47
-rw-r--r--net-wireless/reaver/reaver-1.4.ebuild34
-rw-r--r--net-wireless/rfkill/Manifest1
-rw-r--r--net-wireless/rfkill/metadata.xml13
-rw-r--r--net-wireless/rfkill/rfkill-0.5.ebuild30
-rw-r--r--net-wireless/rfswitch/Manifest1
-rw-r--r--net-wireless/rfswitch/metadata.xml10
-rw-r--r--net-wireless/rfswitch/rfswitch-1.3.ebuild54
-rw-r--r--net-wireless/rtl-sdr/Manifest3
-rw-r--r--net-wireless/rtl-sdr/metadata.xml6
-rw-r--r--net-wireless/rtl-sdr/rtl-sdr-0.5.0.ebuild51
-rw-r--r--net-wireless/rtl-sdr/rtl-sdr-0.5.3-r1.ebuild50
-rw-r--r--net-wireless/rtl-sdr/rtl-sdr-0.5.3.ebuild56
-rw-r--r--net-wireless/rtl-sdr/rtl-sdr-0.5.3_p20150730.ebuild50
-rw-r--r--net-wireless/rtl-sdr/rtl-sdr-9999.ebuild50
-rw-r--r--net-wireless/rtl8180/Manifest1
-rw-r--r--net-wireless/rtl8180/files/rtl8180-2.6.19.patch145
-rw-r--r--net-wireless/rtl8180/files/rtl8180-2.6.20.patch32
-rw-r--r--net-wireless/rtl8180/metadata.xml5
-rw-r--r--net-wireless/rtl8180/rtl8180-0.22_pre20050528.ebuild45
-rw-r--r--net-wireless/spectools/Manifest2
-rw-r--r--net-wireless/spectools/metadata.xml24
-rw-r--r--net-wireless/spectools/spectools-2011.08.1-r2.ebuild71
-rw-r--r--net-wireless/spectools/spectools-2011.08.1_p20140618.ebuild70
-rw-r--r--net-wireless/spectools/spectools-9999.ebuild70
-rw-r--r--net-wireless/ubertooth/Manifest2
-rw-r--r--net-wireless/ubertooth/files/40-ubertooth.rules5
-rw-r--r--net-wireless/ubertooth/metadata.xml21
-rw-r--r--net-wireless/ubertooth/ubertooth-0.0_p534.ebuild92
-rw-r--r--net-wireless/ubertooth/ubertooth-2014.04.1-r1.ebuild116
-rw-r--r--net-wireless/ubertooth/ubertooth-9999.ebuild102
-rw-r--r--net-wireless/uhd/Manifest2
-rw-r--r--net-wireless/uhd/metadata.xml18
-rw-r--r--net-wireless/uhd/uhd-3.8.2.ebuild46
-rw-r--r--net-wireless/wavemon/Manifest2
-rw-r--r--net-wireless/wavemon/files/wavemon-0.6.7-dont-override-CFLAGS.patch11
-rw-r--r--net-wireless/wavemon/files/wavemon-0.7.5-ncurses-tinfo.patch18
-rw-r--r--net-wireless/wavemon/files/wavemon-0.7.6-ncurses-tinfo.patch19
-rw-r--r--net-wireless/wavemon/metadata.xml8
-rw-r--r--net-wireless/wavemon/wavemon-0.7.5.ebuild47
-rw-r--r--net-wireless/wavemon/wavemon-0.7.6.ebuild51
-rw-r--r--net-wireless/wepattack/Manifest1
-rw-r--r--net-wireless/wepattack/files/wepattack-0.1.3-filter-mac-address.patch186
-rw-r--r--net-wireless/wepattack/files/wepattack-0.1.3-missed-string.h-warnings-fix.patch30
-rw-r--r--net-wireless/wepattack/files/wepattack.conf9
-rw-r--r--net-wireless/wepattack/metadata.xml18
-rw-r--r--net-wireless/wepattack/wepattack-0.1.3-r3.ebuild57
-rw-r--r--net-wireless/wepdecrypt/Manifest1
-rw-r--r--net-wireless/wepdecrypt/files/wepdecrypt-0.8-buffer.patch11
-rw-r--r--net-wireless/wepdecrypt/files/wepdecrypt-0.8-build.patch20
-rw-r--r--net-wireless/wepdecrypt/files/wepdecrypt-0.8-dyn.patch13
-rw-r--r--net-wireless/wepdecrypt/files/wepdecrypt-0.8-fltk.patch16
-rw-r--r--net-wireless/wepdecrypt/metadata.xml8
-rw-r--r--net-wireless/wepdecrypt/wepdecrypt-0.8-r2.ebuild44
-rw-r--r--net-wireless/wifi-radar/Manifest1
-rw-r--r--net-wireless/wifi-radar/metadata.xml7
-rw-r--r--net-wireless/wifi-radar/wifi-radar-2.0.8-r2.ebuild68
-rw-r--r--net-wireless/wireless-regdb/Manifest4
-rw-r--r--net-wireless/wireless-regdb/metadata.xml16
-rw-r--r--net-wireless/wireless-regdb/wireless-regdb-20130213.ebuild34
-rw-r--r--net-wireless/wireless-regdb/wireless-regdb-20141118.ebuild34
-rw-r--r--net-wireless/wireless-regdb/wireless-regdb-20150313.ebuild34
-rw-r--r--net-wireless/wireless-regdb/wireless-regdb-20150605.ebuild34
-rw-r--r--net-wireless/wireless-tools/Manifest1
-rw-r--r--net-wireless/wireless-tools/files/wireless-tools-29-asneeded.patch13
-rw-r--r--net-wireless/wireless-tools/metadata.xml17
-rw-r--r--net-wireless/wireless-tools/wireless-tools-30_pre9.ebuild62
-rw-r--r--net-wireless/wpa_supplicant/Manifest1
-rw-r--r--net-wireless/wpa_supplicant/files/2015-1/0001-P2P-Validate-SSID-element-length-before-copying-it-C.patch42
-rw-r--r--net-wireless/wpa_supplicant/files/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch49
-rw-r--r--net-wireless/wpa_supplicant/files/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch41
-rw-r--r--net-wireless/wpa_supplicant/files/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch73
-rw-r--r--net-wireless/wpa_supplicant/files/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch66
-rw-r--r--net-wireless/wpa_supplicant/files/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch52
-rw-r--r--net-wireless/wpa_supplicant/files/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch50
-rw-r--r--net-wireless/wpa_supplicant/files/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch32
-rw-r--r--net-wireless/wpa_supplicant/files/2015-5/0001-NFC-Avoid-misaligned-read-of-an-NDEF-field.patch29
-rw-r--r--net-wireless/wpa_supplicant/files/2015-5/0002-NFC-Fix-payload-length-validation-in-NDEF-record-par.patch61
-rw-r--r--net-wireless/wpa_supplicant/files/wpa_cli.sh47
-rw-r--r--net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-dbus-path-fix.patch20
-rw-r--r--net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-do-not-call-dbus-functions-with-NULL-path.patch60
-rw-r--r--net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-generate-libeap-peer.patch353
-rw-r--r--net-wireless/wpa_supplicant/files/wpa_supplicant-conf.d6
-rw-r--r--net-wireless/wpa_supplicant/files/wpa_supplicant-init.d70
-rw-r--r--net-wireless/wpa_supplicant/files/wpa_supplicant.conf7
-rw-r--r--net-wireless/wpa_supplicant/files/wpa_supplicant.service11
-rw-r--r--net-wireless/wpa_supplicant/files/wpa_supplicant_at.service11
-rw-r--r--net-wireless/wpa_supplicant/metadata.xml28
-rw-r--r--net-wireless/wpa_supplicant/wpa_supplicant-2.4-r3.ebuild383
-rw-r--r--net-wireless/wpa_supplicant/wpa_supplicant-2.4-r4.ebuild387
-rw-r--r--net-wireless/yatebts/Manifest1
-rw-r--r--net-wireless/yatebts/files/yatebts-4.0.0-dont-mess-with-cflags.patch13
-rw-r--r--net-wireless/yatebts/files/yatebts-bladeRF-transceiver_revert_init_order.patch86
-rw-r--r--net-wireless/yatebts/files/yatebts-sgsnggsn-inetutils-hostname-fix.diff14
-rw-r--r--net-wireless/yatebts/metadata.xml12
-rw-r--r--net-wireless/yatebts/yatebts-4.0.0-r1.ebuild50
-rw-r--r--net-wireless/yatebts/yatebts-9999.ebuild49
497 files changed, 21107 insertions, 0 deletions
diff --git a/net-wireless/adm8211/Manifest b/net-wireless/adm8211/Manifest
new file mode 100644
index 000000000000..a9f0e75f8d12
--- /dev/null
+++ b/net-wireless/adm8211/Manifest
@@ -0,0 +1 @@
+DIST adm8211-20060111.tar.bz2 36391 SHA256 09e803d78d2b86ca2261960135d280b48ef8ccb9bf1aef877bc5a011bf32bb76
diff --git a/net-wireless/adm8211/adm8211-20060111.ebuild b/net-wireless/adm8211/adm8211-20060111.ebuild
new file mode 100644
index 000000000000..df9c975a56fa
--- /dev/null
+++ b/net-wireless/adm8211/adm8211-20060111.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit linux-mod
+
+S=${WORKDIR}/${PN}
+
+DESCRIPTION="IEEE 802.11 wireless LAN driver for adm8211 based cards"
+HOMEPAGE="http://aluminum.sourmilk.net/adm8211/"
+SRC_URI="http://aluminum.sourmilk.net/adm8211/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE=""
+RDEPEND="net-wireless/wireless-tools"
+
+BUILD_TARGETS="all"
+
+MODULE_NAMES="adm8211(net:)"
+
+CONFIG_CHECK="WIRELESS_EXT CRYPTO_ARC4"
+ERROR_WIRELESS_EXT="${P} requires support for Wireless LAN drivers (non-hamradio) & Wireless Extensions"
+ERROR_CRYPTO_ARC4="${P} requires support for ARC4 cipher algorithm (CONFIG_CRYPTO_ARC4)."
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ if kernel_is lt 2 6 10; then
+ eerror "${P} requires linux-2.6.9 or later."
+ die "${P} requires linux-2.6.9 or later"
+ fi
+
+ BUILD_PARAMS="KDIR=${KV_DIR}"
+}
+
+src_unpack() {
+ unpack ${A}
+
+ cd ${S}
+ epatch ${FILESDIR}/01-fix-up-build-breaks-from-2.6.19.patch
+ epatch ${FILESDIR}/02-Use-ieee80211_generic_get_stats.patch
+ epatch ${FILESDIR}/03-fix-work_struct-build-breakage.patch
+ epatch ${FILESDIR}/04-fix-set-essid-for-WE-21.patch
+ epatch ${FILESDIR}/05-update-email-address-from-jkmaline-cc.hut.fi-to.patch
+ kernel_is ge 2 6 22 && epatch ${FILESDIR}/06-adm8211-fix-build-breakage-from-skb-mac.raw.patch
+
+ convert_to_m ${S}/Makefile
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc Changelog NOTES TODO
+}
diff --git a/net-wireless/adm8211/files/01-fix-up-build-breaks-from-2.6.19.patch b/net-wireless/adm8211/files/01-fix-up-build-breaks-from-2.6.19.patch
new file mode 100644
index 000000000000..1cf8f0a0ac10
--- /dev/null
+++ b/net-wireless/adm8211/files/01-fix-up-build-breaks-from-2.6.19.patch
@@ -0,0 +1,44 @@
+From 108f260412a71614665e8867a3356231af43f374 Mon Sep 17 00:00:00 2001
+From: John W. Linville <linville@tuxdriver.com>
+Date: Tue, 17 Oct 2006 13:02:27 -0400
+Subject: [PATCH] [PATCH] adm8211: fix-up build breaks from 2.6.19
+
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+---
+ adm8211/adm8211_hw.c | 6 ++----
+ 1 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/adm8211/adm8211_hw.c b/adm8211/adm8211_hw.c
+index a45c74d..f95d798 100644
+--- a/adm8211/adm8211_hw.c
++++ b/adm8211/adm8211_hw.c
+@@ -15,7 +15,6 @@
+ * more details.
+ */
+
+-#include <linux/config.h>
+ #include <linux/version.h>
+ #include <linux/module.h>
+ #include <linux/moduleparam.h>
+@@ -737,8 +736,7 @@ static void adm8211_interrupt_rci(struct net_device *dev)
+ }
+
+
+-static irqreturn_t adm8211_interrupt(int irq, void *dev_id,
+- struct pt_regs *regs)
++static irqreturn_t adm8211_interrupt(int irq, void *dev_id)
+ {
+ #define ADM8211_INT(x) if (unlikely(stsr & ADM8211_STSR_ ## x)) printk(KERN_DEBUG "%s: " #x "\n", dev->name)
+
+@@ -2041,7 +2039,7 @@ static int adm8211_open(struct net_device *dev)
+ adm8211_set_rx_mode(dev);
+
+ retval = request_irq(dev->irq, &adm8211_interrupt,
+- SA_SHIRQ, dev->name, dev);
++ IRQF_SHARED, dev->name, dev);
+ if (retval) {
+ printk(KERN_ERR "%s: failed to register IRQ handler\n",
+ dev->name);
+--
+1.5.2.1
+
diff --git a/net-wireless/adm8211/files/02-Use-ieee80211_generic_get_stats.patch b/net-wireless/adm8211/files/02-Use-ieee80211_generic_get_stats.patch
new file mode 100644
index 000000000000..4adfea7c94e9
--- /dev/null
+++ b/net-wireless/adm8211/files/02-Use-ieee80211_generic_get_stats.patch
@@ -0,0 +1,43 @@
+From 192837172632b72c0da82ade708bb6b1ed649b8f Mon Sep 17 00:00:00 2001
+From: Daniel Drake <dsd@gentoo.org>
+Date: Wed, 22 Nov 2006 03:16:13 +0000
+Subject: [PATCH] [PATCH] adm8211: Use ieee80211_generic_get_stats
+
+adm8211 can also benefit from the generic get_stats implementation in my
+previous mail. I am sending the adm8211 patch separately because adm8211 is
+not in Linus' tree.
+
+Signed-off-by: Daniel Drake <dsd@gentoo.org>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+---
+ adm8211/adm8211_hw.c | 7 -------
+ 1 files changed, 0 insertions(+), 7 deletions(-)
+
+diff --git a/adm8211/adm8211_hw.c b/adm8211/adm8211_hw.c
+index f95d798..a33d239 100644
+--- a/adm8211/adm8211_hw.c
++++ b/adm8211/adm8211_hw.c
+@@ -363,12 +363,6 @@ static void adm8211_clear_sram(struct net_device *dev)
+ ADM8211_CSR_WRITE(WEPCTL, reg);
+ }
+
+-static struct net_device_stats *adm8211_get_stats(struct net_device *dev)
+-{
+- struct ieee80211_device *ieee = netdev_priv(dev);
+- return &ieee->stats;
+-}
+-
+ static void adm8211_set_rx_mode(struct net_device *dev)
+ {
+ struct adm8211_priv *priv = ieee80211_priv(dev);
+@@ -2531,7 +2525,6 @@ static int __devinit adm8211_probe(struct pci_dev *pdev,
+ dev->features |= NETIF_F_LLTX;
+ dev->open = adm8211_open;
+ dev->stop = adm8211_stop;
+- dev->get_stats = adm8211_get_stats;
+ dev->set_multicast_list = adm8211_set_rx_mode;
+ dev->set_mac_address = adm8211_set_mac_address;
+
+--
+1.5.2.1
+
diff --git a/net-wireless/adm8211/files/03-fix-work_struct-build-breakage.patch b/net-wireless/adm8211/files/03-fix-work_struct-build-breakage.patch
new file mode 100644
index 000000000000..95eb22afd638
--- /dev/null
+++ b/net-wireless/adm8211/files/03-fix-work_struct-build-breakage.patch
@@ -0,0 +1,69 @@
+From e8c4bd51047c6f428474f9f0788375a3433684e7 Mon Sep 17 00:00:00 2001
+From: John W. Linville <linville@tuxdriver.com>
+Date: Mon, 11 Dec 2006 18:32:06 -0500
+Subject: [PATCH] [PATCH] adm8211: fix work_struct build breakage
+
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+---
+ adm8211/ieee80211_sta.c | 12 ++++++------
+ adm8211/ieee80211_sta.h | 2 +-
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/adm8211/ieee80211_sta.c b/adm8211/ieee80211_sta.c
+index 032d067..940f742 100644
+--- a/adm8211/ieee80211_sta.c
++++ b/adm8211/ieee80211_sta.c
+@@ -30,7 +30,7 @@
+ #define IEEE80211_MONITORING_INTERVAL (30 * HZ)
+ #define IEEE80211_LINKCHECK_INTERVAL (3 * HZ)
+
+-static void ieee80211_timer(void *ptr);
++static void ieee80211_timer(struct work_struct *work);
+
+ ParseRes ieee802_11_parse_elems(struct ieee80211_info_element *start, size_t len,
+ struct ieee802_11_elems *elems)
+@@ -818,12 +818,12 @@ void ieee80211_start_scan(struct ieee80211_data *data)
+ ieee80211_set_associated(data, 0);
+ data->scan_channel = 0;
+
+- schedule_work(&data->work);
++ schedule_work(&data->work.work);
+ }
+
+ void ieee80211_init(struct ieee80211_data *data)
+ {
+- INIT_WORK(&data->work, ieee80211_timer, data);
++ INIT_DELAYED_WORK(&data->work, ieee80211_timer);
+
+ data->listen_interval = 10;
+ data->ieee->state = IEEE80211_UNINITIALIZED;
+@@ -1187,10 +1187,10 @@ void ieee80211_rx_mgmt(struct ieee80211_data *data, struct sk_buff *skb,
+ dev_kfree_skb(skb);
+ }
+
+-
+-static void ieee80211_timer(void *ptr)
++static void ieee80211_timer(struct work_struct *work)
+ {
+- struct ieee80211_data *data = (struct ieee80211_data *) ptr;
++ struct ieee80211_data *data =
++ container_of(work, struct ieee80211_data, work.work);
+
+ switch (data->ieee->state) {
+ case IEEE80211_INITIALIZED:
+diff --git a/adm8211/ieee80211_sta.h b/adm8211/ieee80211_sta.h
+index b672936..75dc61b 100644
+--- a/adm8211/ieee80211_sta.h
++++ b/adm8211/ieee80211_sta.h
+@@ -47,7 +47,7 @@ struct ieee80211_data {
+ void (*link_monitor)(struct net_device *dev);
+ int (*set_channel)(struct net_device *dev, unsigned int channel);
+
+- struct work_struct work;
++ struct delayed_work work;
+
+ #define AUTO_ASSOCIATE (1<<0)
+ #define AUTO_RATE (1<<1)
+--
+1.5.2.1
+
diff --git a/net-wireless/adm8211/files/04-fix-set-essid-for-WE-21.patch b/net-wireless/adm8211/files/04-fix-set-essid-for-WE-21.patch
new file mode 100644
index 000000000000..dfe807b88682
--- /dev/null
+++ b/net-wireless/adm8211/files/04-fix-set-essid-for-WE-21.patch
@@ -0,0 +1,26 @@
+From 79259f536ba8fd8c500b4506b1a89b06c5264d06 Mon Sep 17 00:00:00 2001
+From: John W. Linville <linville@tuxdriver.com>
+Date: Tue, 27 Mar 2007 13:03:46 -0400
+Subject: [PATCH] [PATCH] adm8211: fix set essid for WE-21
+
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+---
+ adm8211/adm8211_ioctl.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/adm8211/adm8211_ioctl.c b/adm8211/adm8211_ioctl.c
+index 22850cc..7c0f6b6 100644
+--- a/adm8211/adm8211_ioctl.c
++++ b/adm8211_ioctl.c
+@@ -294,7 +294,7 @@ static int adm8211_ioctl_siwessid(struct net_device *dev,
+ if (dwrq->flags == 0 || dwrq->length < 1)
+ len = 0;
+ else
+- len = min(dwrq->length - 1, IW_ESSID_MAX_SIZE);
++ len = min(dwrq->length, IW_ESSID_MAX_SIZE);
+
+ memcpy(priv->ieee80211.ssid, essid, len);
+ priv->ieee80211.ssid_len = len;
+--
+1.5.2.1
+
diff --git a/net-wireless/adm8211/files/05-update-email-address-from-jkmaline-cc.hut.fi-to.patch b/net-wireless/adm8211/files/05-update-email-address-from-jkmaline-cc.hut.fi-to.patch
new file mode 100644
index 000000000000..be7561c6b78c
--- /dev/null
+++ b/net-wireless/adm8211/files/05-update-email-address-from-jkmaline-cc.hut.fi-to.patch
@@ -0,0 +1,81 @@
+From 3e2d468ee087e4d60c007746b68731e08346d620 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sat, 24 Mar 2007 17:15:30 -0700
+Subject: [PATCH] [PATCH] Update my email address from jkmaline@cc.hut.fi to j@w1.fi
+
+After 13 years of use, it looks like my email address is finally going
+to disappear. While this is likely to drop the amount of incoming spam
+greatly ;-), it may also affect more appropriate messages, so let's
+update my email address in various places. In addition, Host AP mailing
+list is subscribers-only and linux-wireless can also be used for
+discussing issues related to this driver which is now shown in
+MAINTAINERS.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+---
+ drivers/net/wireless/adm8211/adm8211_hw.c | 6 +++---
+ adm8211/adm8211_ioctl.c | 2 +-
+ adm8211/ieee80211_sta.c | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/adm8211/adm8211_hw.c b/adm8211/adm8211_hw.c
+index a33d239..2ec950d 100644
+--- a/adm8211/adm8211_hw.c
++++ b/adm8211/adm8211_hw.c
+@@ -2,7 +2,7 @@
+ /*
+ * Linux device driver for ADMtek ADM8211 (IEEE 802.11b MAC/BBP)
+ *
+- * Copyright (c) 2003, Jouni Malinen <jkmaline@cc.hut.fi>
++ * Copyright (c) 2003, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2004-2005, Michael Wu <flamingice@sourmilk.net>
+ * Some parts copyright (c) 2003 by David Young <dyoung@pobox.com>
+ * and used with permission.
+@@ -43,7 +43,7 @@
+
+ #define RELEASE_DATE "20060414"
+
+-MODULE_AUTHOR("Jouni Malinen <jkmaline@cc.hut.fi>, Michael Wu <flamingice@sourmilk.net>");
++MODULE_AUTHOR("Jouni Malinen <j@w1.fi>, Michael Wu <flamingice@sourmilk.net>");
+ MODULE_DESCRIPTION("Driver for IEEE 802.11b wireless LAN cards based on ADMtek"
+ " ADM8211");
+ MODULE_SUPPORTED_DEVICE("ADM8211");
+@@ -58,7 +58,7 @@ module_param(rx_ring_size, uint, 0);
+ module_param(debug, int, 0);
+
+ static const char *version = KERN_INFO "adm8211: "
+-"Copyright 2003, Jouni Malinen <jkmaline@cc.hut.fi>; "
++"Copyright 2003, Jouni Malinen <j@w1.fi>; "
+ "Copyright 2004-2005, Michael Wu <flamingice@sourmilk.net>\n";
+
+
+diff --git a/adm8211/adm8211_ioctl.c b/adm8211/adm8211_ioctl.c
+index 7c0f6b6..7009dae 100644
+--- a/adm8211/adm8211_ioctl.c
++++ b/adm8211/adm8211_ioctl.c
+@@ -1,7 +1,7 @@
+ /*
+ * Linux driver for ADMtek ADM8211 (IEEE 802.11b wireless LAN card)
+ *
+- * Copyright (c) 2003, Jouni Malinen <jkmaline@cc.hut.fi>
++ * Copyright (c) 2003, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2004-2005, Michael Wu <flamingice@sourmilk.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+diff --git a/adm8211/ieee80211_sta.c b/adm8211/ieee80211_sta.c
+index 940f742..3b57915 100644
+--- a/adm8211/ieee80211_sta.c
++++ b/adm8211/ieee80211_sta.c
+@@ -1,7 +1,7 @@
+ /*
+ * IEEE 802.11 station / management functionality
+ *
+- * Copyright (c) 2003, Jouni Malinen <jkmaline@cc.hut.fi>
++ * Copyright (c) 2003, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2004-2005, Michael Wu <flamingice@sourmilk.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+--
+1.5.2.1
+
diff --git a/net-wireless/adm8211/files/06-adm8211-fix-build-breakage-from-skb-mac.raw.patch b/net-wireless/adm8211/files/06-adm8211-fix-build-breakage-from-skb-mac.raw.patch
new file mode 100644
index 000000000000..d3bb15d60cca
--- /dev/null
+++ b/net-wireless/adm8211/files/06-adm8211-fix-build-breakage-from-skb-mac.raw.patch
@@ -0,0 +1,53 @@
+>From 72c942ed694ef6249c0df84c0802e7378884e7c7 Mon Sep 17 00:00:00 2001
+From: John W. Linville <linville@tuxdriver.com>
+Date: Tue, 29 May 2007 14:21:23 -0400
+Subject: [PATCH] [PATCH] adm8211: fix build breakage from skb->mac.raw
+
+Use skb_mac_header and related functions instead.
+
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+---
+ drivers/net/wireless/adm8211/adm8211_hw.c | 7 ++++---
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/adm8211/adm8211_hw.c b/adm8211/adm8211_hw.c
+index 2ec950d..49d79cb 100644
+--- a/adm8211/adm8211_hw.c
++++ b/adm8211/adm8211_hw.c
+@@ -499,7 +499,7 @@ static void adm8211_rx_skb(struct net_device *dev, struct sk_buff *skb)
+ ieee->stats.rx_packets++;
+
+ skb->pkt_type = PACKET_OTHERHOST;
+- skb->mac.raw = skb->data;
++ skb_reset_mac_header(skb);
+
+ netif_rx(skb);
+ dev->last_rx = jiffies;
+@@ -717,7 +717,7 @@ static void adm8211_interrupt_rci(struct net_device *dev)
+ #endif
+ stat->rssi = rssi;
+ stat->rate = rate;
+- skb->mac.raw = skb->data;
++ skb_reset_mac_header(skb);
+ skb->protocol = __constant_htons(ETH_P_802_2);
+ skb_queue_tail(&priv->rx_queue, skb);
+ tasklet_schedule(&priv->rx_tasklet);
+@@ -2376,7 +2376,8 @@ static int adm8211_hard_start_xmit(struct ieee80211_txb *txb,
+
+ int adm8211_80211_header_parse(struct sk_buff *skb, unsigned char *haddr)
+ {
+- memcpy(haddr, skb->mac.raw + 10 + sizeof(struct avs_caphdr), ETH_ALEN); /* addr2 */
++ memcpy(haddr, skb_mac_header(skb) + 10 + sizeof(struct avs_caphdr),
++ ETH_ALEN); /* addr2 */
+ return ETH_ALEN;
+ }
+
+--
+1.5.2.1
+
+
+
+
+
+
+
diff --git a/net-wireless/adm8211/files/2.6.20-no-config_h.patch b/net-wireless/adm8211/files/2.6.20-no-config_h.patch
new file mode 100644
index 000000000000..d565eccca047
--- /dev/null
+++ b/net-wireless/adm8211/files/2.6.20-no-config_h.patch
@@ -0,0 +1,20 @@
+--- adm8211/wep.c.old 2007-06-13 11:06:07.778330430 +1000
++++ adm8211/wep.c 2007-06-13 11:06:16.442008732 +1000
+@@ -10,7 +10,6 @@
+ * more details.
+ */
+
+-#include <linux/config.h>
+ #include <linux/version.h>
+ #include <linux/module.h>
+ #include <linux/init.h>
+--- adm8211/adm8211_hw.c.old 2007-06-13 11:10:12.949927966 +1000
++++ adm8211/adm8211_hw.c 2007-06-13 11:10:23.838266881 +1000
+@@ -29,7 +29,6 @@
+ */
+
+
+-#include <linux/config.h>
+ #include <linux/version.h>
+ #include <linux/module.h>
+ #include <linux/init.h>
diff --git a/net-wireless/adm8211/files/2.6.20.patch b/net-wireless/adm8211/files/2.6.20.patch
new file mode 100644
index 000000000000..10081fbcecbb
--- /dev/null
+++ b/net-wireless/adm8211/files/2.6.20.patch
@@ -0,0 +1,27 @@
+# --- T2-COPYRIGHT-NOTE-BEGIN ---
+# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
+#
+# T2 SDE: package/.../adm8211/2.6.20.patch
+# Copyright (C) 2007 The T2 SDE Project
+#
+# More information can be found in the files COPYING and README.
+#
+# This patch file is dual-licensed. It is available under the license the
+# patched project is licensed under, as long as it is an OpenSource license
+# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
+# of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+# --- T2-COPYRIGHT-NOTE-END ---
+
+--- adm8211/wep.c.vanilla 2007-03-30 09:36:24.446241003 +0200
++++ adm8211/wep.c 2007-03-30 09:44:01.860307546 +0200
+@@ -22,6 +22,8 @@
+ #include <linux/crc32.h>
+ #include <asm/string.h>
+ #include <asm/scatterlist.h>
++#include <asm/page.h>
++#include <linux/mm.h>
+
+ #ifndef CONFIG_CRYPTO
+ #error CONFIG_CRYPTO required to build
diff --git a/net-wireless/adm8211/files/linux-2.6.17.patch b/net-wireless/adm8211/files/linux-2.6.17.patch
new file mode 100644
index 000000000000..f3a65428363d
--- /dev/null
+++ b/net-wireless/adm8211/files/linux-2.6.17.patch
@@ -0,0 +1,10 @@
+--- adm8211/adm8211_hw.c.vanilla 2006-07-01 17:17:45.000000000 +0000
++++ adm8211/adm8211_hw.c 2006-07-01 17:20:10.000000000 +0000
+@@ -39,6 +39,7 @@
+ #include <linux/etherdevice.h>
+ #include <linux/ioport.h>
+ #include <linux/pci.h>
++#include <linux/dma-mapping.h>
+ #include <linux/if_arp.h>
+ #include <linux/delay.h>
+ #include <linux/crc32.h>
diff --git a/net-wireless/adm8211/files/linux-2.6.19.patch b/net-wireless/adm8211/files/linux-2.6.19.patch
new file mode 100644
index 000000000000..9a3f2e57d0a2
--- /dev/null
+++ b/net-wireless/adm8211/files/linux-2.6.19.patch
@@ -0,0 +1,32 @@
+# --- T2-COPYRIGHT-NOTE-BEGIN ---
+# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
+#
+# T2 SDE: package/.../adm8211/linux-2.6.19.patch
+# Copyright (C) 2007 The T2 SDE Project
+#
+# More information can be found in the files COPYING and README.
+#
+# This patch file is dual-licensed. It is available under the license the
+# patched project is licensed under, as long as it is an OpenSource license
+# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
+# of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+# --- T2-COPYRIGHT-NOTE-END ---
+
+--- adm8211/adm8211_hw.c.orig 2005-03-23 12:12:02.000000000 +0100
++++ adm8211/adm8211_hw.c 2007-01-02 16:54:08.000000000 +0100
+@@ -2468,9 +2468,13 @@
+ dev->set_mac_address = adm8211_set_mac_address;
+ dev->hard_start_xmit = adm8211_hard_start_xmit;
+
++#if WIRELESS_EXT >= 12
++#if WIRELESS_EXT < 20
+ dev->get_wireless_stats = adm8211_get_wireless_stats;
++#endif
+ dev->wireless_handlers =
+ (struct iw_handler_def *) &adm8211_iw_handler_def;
++#endif
+
+ init_timer(&priv->timer);
+ priv->timer.data = (unsigned long) dev;
diff --git a/net-wireless/adm8211/metadata.xml b/net-wireless/adm8211/metadata.xml
new file mode 100644
index 000000000000..4538a68724a6
--- /dev/null
+++ b/net-wireless/adm8211/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer><email>maintainer-needed@gentoo.org</email></maintainer>
+</pkgmetadata>
diff --git a/net-wireless/aircrack-ng/Manifest b/net-wireless/aircrack-ng/Manifest
new file mode 100644
index 000000000000..80ce3f85a7a9
--- /dev/null
+++ b/net-wireless/aircrack-ng/Manifest
@@ -0,0 +1,2 @@
+DIST aircrack-ng-1.2-rc1.tar.gz 2046476 SHA256 cf3134521e1c3d7aed4e384e3e5e7b6959e2d485bd1554474608a3a9328e35fd SHA512 897427c535846c0ede58b2f99ed469bc01f50f9b38fc70d5711261fca7342339192cc0c71a724fc04c99114db7534d825a44f09e7bc5754286ec44933a33e40d WHIRLPOOL 2f8df161c61b8dfa6f4bd5f4af677273f255f01ae84853a80fcde4c07f03e51dcad9dcf007afa5a1120521c641d35c23d07b1edfc51c90d7b8b216b179d27ea9
+DIST aircrack-ng-1.2-rc2.tar.gz 2046531 SHA256 ba5b3eda44254efc5b7c9f776eb756f7cc323ad5d0813c101e92edb483d157e9 SHA512 49794c80a76da20698d0372a81fdbd54f2defb694c23807369be7632e57d21cb09f14d3013b199f247663286c316714ee0fae8a6d302cabbe48ffa1e6ebefc56 WHIRLPOOL d0a221a840ab7541648b204bc8e38108fe125999167a8477cf5a1cfc309a892fd72c888bad28ab83fc049b46a5817b72e9da6d5e0c6ed9cea97ba4ea741765f3
diff --git a/net-wireless/aircrack-ng/aircrack-ng-1.2_rc1-r1.ebuild b/net-wireless/aircrack-ng/aircrack-ng-1.2_rc1-r1.ebuild
new file mode 100644
index 000000000000..e627140751ed
--- /dev/null
+++ b/net-wireless/aircrack-ng/aircrack-ng-1.2_rc1-r1.ebuild
@@ -0,0 +1,138 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+
+inherit toolchain-funcs distutils-r1 flag-o-matic
+
+DESCRIPTION="WLAN tools for breaking 802.11 WEP/WPA keys"
+HOMEPAGE="http://www.aircrack-ng.org"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit subversion
+ ESVN_REPO_URI="http://svn.aircrack-ng.org/trunk"
+ KEYWORDS=""
+ S="${WORKDIR}/${PN}"
+else
+ MY_PV=${PV/_/-}
+ SRC_URI="http://download.${PN}.org/${PN}-${MY_PV}.tar.gz"
+ KEYWORDS="amd64 arm ppc x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="+airdrop-ng +airgraph-ng kernel_linux kernel_FreeBSD +netlink +pcre +sqlite +unstable"
+
+DEPEND="net-libs/libpcap
+ dev-libs/openssl
+ netlink? ( dev-libs/libnl:3 )
+ pcre? ( dev-libs/libpcre )
+ airdrop-ng? ( ${PYTHON_DEPS} )
+ airgraph-ng? ( ${PYTHON_DEPS} )
+ sqlite? ( >=dev-db/sqlite-3.4 )
+ unstable? ( sys-libs/zlib )"
+RDEPEND="${DEPEND}
+ kernel_linux? (
+ net-wireless/iw
+ net-wireless/wireless-tools
+ sys-apps/ethtool
+ sys-apps/usbutils
+ sys-apps/pciutils )
+ sys-apps/hwids
+ airdrop-ng? ( net-wireless/lorcon[python,${PYTHON_USEDEP}] )"
+
+REQUIRED_USE="airdrop-ng? ( ${PYTHON_REQUIRED_USE} )
+ airgraph-ng? ( ${PYTHON_REQUIRED_USE} )"
+
+src_compile() {
+ if [[ $($(tc-getCC) --version) == clang* ]] ; then
+ die "Please use gcc, upstream bug http://trac.aircrack-ng.org/ticket/1144"
+ fi
+
+ if [[ ${PV} == "9999" ]] ; then
+ liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
+ fi
+
+ emake \
+ CC="$(tc-getCC)" \
+ AR="$(tc-getAR)" \
+ LD="$(tc-getLD)" \
+ RANLIB="$(tc-getRANLIB)" \
+ libnl=$(usex netlink true false) \
+ pcre=$(usex pcre true false) \
+ sqlite=$(usex sqlite true false) \
+ unstable=$(usex unstable true false) \
+ ${liveflags}
+
+ if use airgraph-ng; then
+ cd "${S}/scripts/airgraph-ng"
+ distutils-r1_src_compile
+ fi
+ if use airdrop-ng; then
+ cd "${S}/scripts/airdrop-ng"
+ distutils-r1_src_compile
+ fi
+}
+
+src_test() {
+ if [[ ${PV} == "9999" ]] ; then
+ liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
+ fi
+
+ emake check \
+ libnl=$(usex netlink true false) \
+ pcre=$(usex pcre true false) \
+ sqlite=$(usex sqlite true false) \
+ unstable=$(usex unstable true false) \
+ ${liveflags}
+}
+
+src_install() {
+ if [[ ${PV} == "9999" ]] ; then
+ liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
+ fi
+
+ emake \
+ prefix="${ED}/usr" \
+ libnl=$(usex netlink true false) \
+ pcre=$(usex pcre true false) \
+ sqlite=$(usex sqlite true false) \
+ unstable=$(usex unstable true false) \
+ ${liveflags} \
+ install
+
+ dodoc AUTHORS ChangeLog INSTALLING README
+
+ if use airgraph-ng; then
+ cd "${S}/scripts/airgraph-ng"
+ distutils-r1_src_install
+ fi
+ if use airdrop-ng; then
+ cd "${S}/scripts/airdrop-ng"
+ distutils-r1_src_install
+ fi
+
+ #we don't need aircrack-ng's oui updater, we have our own
+ rm "${ED}"/usr/sbin/airodump-ng-oui-update
+}
+
+pkg_postinst() {
+ # Message is (c) FreeBSD
+ # http://www.freebsd.org/cgi/cvsweb.cgi/ports/net-mgmt/aircrack-ng/files/pkg-message.in?rev=1.5
+ if use kernel_FreeBSD ; then
+ einfo "Contrary to Linux, it is not necessary to use airmon-ng to enable the monitor"
+ einfo "mode of your wireless card. So do not care about what the manpages say about"
+ einfo "airmon-ng, airodump-ng sets monitor mode automatically."
+ echo
+ einfo "To return from monitor mode, issue the following command:"
+ einfo " ifconfig \${INTERFACE} -mediaopt monitor"
+ einfo
+ einfo "For aireplay-ng you need FreeBSD >= 7.0."
+ fi
+}
diff --git a/net-wireless/aircrack-ng/aircrack-ng-1.2_rc2.ebuild b/net-wireless/aircrack-ng/aircrack-ng-1.2_rc2.ebuild
new file mode 100644
index 000000000000..b5693dde48e1
--- /dev/null
+++ b/net-wireless/aircrack-ng/aircrack-ng-1.2_rc2.ebuild
@@ -0,0 +1,138 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+
+inherit toolchain-funcs distutils-r1 flag-o-matic
+
+DESCRIPTION="WLAN tools for breaking 802.11 WEP/WPA keys"
+HOMEPAGE="http://www.aircrack-ng.org"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit subversion
+ ESVN_REPO_URI="http://svn.aircrack-ng.org/trunk"
+ KEYWORDS=""
+ S="${WORKDIR}/${PN}"
+else
+ MY_PV=${PV/_/-}
+ SRC_URI="http://download.${PN}.org/${PN}-${MY_PV}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="+airdrop-ng +airgraph-ng kernel_linux kernel_FreeBSD +netlink +pcre +sqlite +experimental"
+
+DEPEND="net-libs/libpcap
+ dev-libs/openssl:0=
+ netlink? ( dev-libs/libnl:3 )
+ pcre? ( dev-libs/libpcre )
+ airdrop-ng? ( ${PYTHON_DEPS} )
+ airgraph-ng? ( ${PYTHON_DEPS} )
+ experimental? ( sys-libs/zlib )
+ sqlite? ( >=dev-db/sqlite-3.4 )"
+RDEPEND="${DEPEND}
+ kernel_linux? (
+ net-wireless/iw
+ net-wireless/wireless-tools
+ sys-apps/ethtool
+ sys-apps/usbutils
+ sys-apps/pciutils )
+ sys-apps/hwids
+ airdrop-ng? ( net-wireless/lorcon[python,${PYTHON_USEDEP}] )"
+
+REQUIRED_USE="airdrop-ng? ( ${PYTHON_REQUIRED_USE} )
+ airgraph-ng? ( ${PYTHON_REQUIRED_USE} )"
+
+src_compile() {
+ if [[ $($(tc-getCC) --version) == clang* ]] ; then
+ die "Please use gcc, upstream bug http://trac.aircrack-ng.org/ticket/1144"
+ fi
+
+ if [[ ${PV} == "9999" ]] ; then
+ liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
+ fi
+
+ emake \
+ CC="$(tc-getCC)" \
+ AR="$(tc-getAR)" \
+ LD="$(tc-getLD)" \
+ RANLIB="$(tc-getRANLIB)" \
+ libnl=$(usex netlink true false) \
+ pcre=$(usex pcre true false) \
+ sqlite=$(usex sqlite true false) \
+ experimental=$(usex experimental true false) \
+ ${liveflags}
+
+ if use airgraph-ng; then
+ cd "${S}/scripts/airgraph-ng"
+ distutils-r1_src_compile
+ fi
+ if use airdrop-ng; then
+ cd "${S}/scripts/airdrop-ng"
+ distutils-r1_src_compile
+ fi
+}
+
+src_test() {
+ if [[ ${PV} == "9999" ]] ; then
+ liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
+ fi
+
+ emake check \
+ libnl=$(usex netlink true false) \
+ pcre=$(usex pcre true false) \
+ sqlite=$(usex sqlite true false) \
+ experimental=$(usex experimental true false) \
+ ${liveflags}
+}
+
+src_install() {
+ if [[ ${PV} == "9999" ]] ; then
+ liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
+ fi
+
+ emake \
+ prefix="${ED}/usr" \
+ libnl=$(usex netlink true false) \
+ pcre=$(usex pcre true false) \
+ sqlite=$(usex sqlite true false) \
+ experimental=$(usex experimental true false) \
+ ${liveflags} \
+ install
+
+ dodoc AUTHORS ChangeLog INSTALLING README
+
+ if use airgraph-ng; then
+ cd "${S}/scripts/airgraph-ng"
+ distutils-r1_src_install
+ fi
+ if use airdrop-ng; then
+ cd "${S}/scripts/airdrop-ng"
+ distutils-r1_src_install
+ fi
+
+ #we don't need aircrack-ng's oui updater, we have our own
+ rm "${ED}"/usr/sbin/airodump-ng-oui-update
+}
+
+pkg_postinst() {
+ # Message is (c) FreeBSD
+ # http://www.freebsd.org/cgi/cvsweb.cgi/ports/net-mgmt/aircrack-ng/files/pkg-message.in?rev=1.5
+ if use kernel_FreeBSD ; then
+ einfo "Contrary to Linux, it is not necessary to use airmon-ng to enable the monitor"
+ einfo "mode of your wireless card. So do not care about what the manpages say about"
+ einfo "airmon-ng, airodump-ng sets monitor mode automatically."
+ echo
+ einfo "To return from monitor mode, issue the following command:"
+ einfo " ifconfig \${INTERFACE} -mediaopt monitor"
+ einfo
+ einfo "For aireplay-ng you need FreeBSD >= 7.0."
+ fi
+}
diff --git a/net-wireless/aircrack-ng/aircrack-ng-9999.ebuild b/net-wireless/aircrack-ng/aircrack-ng-9999.ebuild
new file mode 100644
index 000000000000..134a722b851d
--- /dev/null
+++ b/net-wireless/aircrack-ng/aircrack-ng-9999.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+
+inherit toolchain-funcs distutils-r1 flag-o-matic
+
+DESCRIPTION="WLAN tools for breaking 802.11 WEP/WPA keys"
+HOMEPAGE="http://www.aircrack-ng.org"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit subversion
+ ESVN_REPO_URI="http://svn.aircrack-ng.org/trunk"
+ KEYWORDS=""
+ S="${WORKDIR}/${PN}"
+else
+ #inherit versionator
+ #MY_P=${P/\_/-}
+ #MY_PV="$(replace_version_separator 2 '-')"
+ #SRC_URI="http://download.aircrack-ng.org/${PN}-${MY_PV}.tar.gz"
+ #KEYWORDS="~amd64 ~arm ~ppc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+ #S="${WORKDIR}/${MY_P}"
+ MY_PV=${PV/_/-}
+ SRC_URI="http://download.${PN}.org/${PN}-${MY_PV}.tar.gz"
+ KEYWORDS="amd64 arm ppc x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="+airdrop-ng +airgraph-ng kernel_linux kernel_FreeBSD +netlink +pcre +sqlite +experimental"
+
+DEPEND="net-libs/libpcap
+ dev-libs/openssl:0=
+ netlink? ( dev-libs/libnl:3 )
+ pcre? ( dev-libs/libpcre )
+ airdrop-ng? ( ${PYTHON_DEPS} )
+ airgraph-ng? ( ${PYTHON_DEPS} )
+ experimental? ( sys-libs/zlib )
+ sqlite? ( >=dev-db/sqlite-3.4 )"
+RDEPEND="${DEPEND}
+ kernel_linux? (
+ net-wireless/iw
+ net-wireless/wireless-tools
+ sys-apps/ethtool
+ sys-apps/usbutils
+ sys-apps/pciutils )
+ sys-apps/hwids
+ airdrop-ng? ( net-wireless/lorcon[python,${PYTHON_USEDEP}] )"
+
+REQUIRED_USE="airdrop-ng? ( ${PYTHON_REQUIRED_USE} )
+ airgraph-ng? ( ${PYTHON_REQUIRED_USE} )"
+
+src_compile() {
+ if [[ $($(tc-getCC) --version) == clang* ]] ; then
+ die "Please use gcc, upstream bug http://trac.aircrack-ng.org/ticket/1144"
+ fi
+
+ if [[ ${PV} == "9999" ]] ; then
+ liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
+ fi
+
+ emake \
+ CC="$(tc-getCC)" \
+ AR="$(tc-getAR)" \
+ LD="$(tc-getLD)" \
+ RANLIB="$(tc-getRANLIB)" \
+ libnl=$(usex netlink true false) \
+ pcre=$(usex pcre true false) \
+ sqlite=$(usex sqlite true false) \
+ experimental=$(usex experimental true false) \
+ ${liveflags}
+
+ if use airgraph-ng; then
+ cd "${S}/scripts/airgraph-ng"
+ distutils-r1_src_compile
+ fi
+ if use airdrop-ng; then
+ cd "${S}/scripts/airdrop-ng"
+ distutils-r1_src_compile
+ fi
+}
+
+src_test() {
+ if [[ ${PV} == "9999" ]] ; then
+ liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
+ fi
+
+ emake check \
+ libnl=$(usex netlink true false) \
+ pcre=$(usex pcre true false) \
+ sqlite=$(usex sqlite true false) \
+ experimental=$(usex experimental true false) \
+ ${liveflags}
+}
+
+src_install() {
+ if [[ ${PV} == "9999" ]] ; then
+ liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
+ fi
+
+ emake \
+ prefix="${ED}/usr" \
+ libnl=$(usex netlink true false) \
+ pcre=$(usex pcre true false) \
+ sqlite=$(usex sqlite true false) \
+ experimental=$(usex experimental true false) \
+ ${liveflags} \
+ install
+
+ dodoc AUTHORS ChangeLog INSTALLING README
+
+ if use airgraph-ng; then
+ cd "${S}/scripts/airgraph-ng"
+ distutils-r1_src_install
+ fi
+ if use airdrop-ng; then
+ cd "${S}/scripts/airdrop-ng"
+ distutils-r1_src_install
+ fi
+
+ #we don't need aircrack-ng's oui updater, we have our own
+ rm "${ED}"/usr/sbin/airodump-ng-oui-update
+}
+
+pkg_postinst() {
+ # Message is (c) FreeBSD
+ # http://www.freebsd.org/cgi/cvsweb.cgi/ports/net-mgmt/aircrack-ng/files/pkg-message.in?rev=1.5
+ if use kernel_FreeBSD ; then
+ einfo "Contrary to Linux, it is not necessary to use airmon-ng to enable the monitor"
+ einfo "mode of your wireless card. So do not care about what the manpages say about"
+ einfo "airmon-ng, airodump-ng sets monitor mode automatically."
+ echo
+ einfo "To return from monitor mode, issue the following command:"
+ einfo " ifconfig \${INTERFACE} -mediaopt monitor"
+ einfo
+ einfo "For aireplay-ng you need FreeBSD >= 7.0."
+ fi
+}
diff --git a/net-wireless/aircrack-ng/metadata.xml b/net-wireless/aircrack-ng/metadata.xml
new file mode 100644
index 000000000000..21bff513b018
--- /dev/null
+++ b/net-wireless/aircrack-ng/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>netmon</herd>
+<herd>crypto</herd>
+<maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ <description>Also on the upstream team</description>
+</maintainer>
+<longdescription>
+ aircrack is a set of tools for auditing wireless networks.
+ aircrack-ng is the next generation of aircrack with lots of new features.
+ (from http://www.aircrack-ng.org)
+</longdescription>
+<use>
+ <flag name="airdrop-ng">Build airdrop-ng</flag>
+ <flag name="airgraph-ng">Build airgraph-ng</flag>
+ <flag name="experimental">Build the "experimental" tools which may randomly fail to run properly</flag>
+ <flag name="netlink">Use netlink for channel control instead of WEXT</flag>
+ <flag name="unstable">Build the "unstable" tools which may randomly fail to run properly</flag>
+</use>
+</pkgmetadata>
diff --git a/net-wireless/airpwn/Manifest b/net-wireless/airpwn/Manifest
new file mode 100644
index 000000000000..eb77af35a0b3
--- /dev/null
+++ b/net-wireless/airpwn/Manifest
@@ -0,0 +1 @@
+DIST airpwn-1.4.tgz 910109 SHA256 f689cd5a9038832cb0aaefa18cae0c282a6bfbeea38819cf47f306f14344e164 SHA512 c849740848289005eb2a72b09bbfade6bf078a3ff93d39300f6a65d328c527bbafbb2a325f2813064612f91a2da20a2daacb8508497e8410ad0befc4e28331e5 WHIRLPOOL f3e7f18578e8c19dd033567851abd9af3a5bd9b0c76bc60010b654735d8632fa02eb942350afbd9015b4b8ef25e9b3dd9e01f30c38358658e5b22a89a3c9b259
diff --git a/net-wireless/airpwn/airpwn-1.4-r2.ebuild b/net-wireless/airpwn/airpwn-1.4-r2.ebuild
new file mode 100644
index 000000000000..a8ca79f238d7
--- /dev/null
+++ b/net-wireless/airpwn/airpwn-1.4-r2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils flag-o-matic python-single-r1
+
+DESCRIPTION="Tool for generic packet injection on 802.11"
+HOMEPAGE="http://airpwn.sf.net"
+SRC_URI="mirror://sourceforge/airpwn/$P.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="+examples"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="${PYTHON_DEPS}
+ dev-libs/libpcre
+ dev-libs/openssl:0=
+ net-libs/libnet:1.1=
+ net-libs/libpcap
+ net-wireless/lorcon-old"
+RDEPEND="${DEPEND}"
+
+src_configure() {
+ econf
+ sed -i "s/python2.4/${EPYTHON}/g" conf.h || die
+ sed -i "s|-lorcon -lpthread -lpcre -lpcap -lnet|-lorcon -lpthread -lpcre -lpcap -lnet -lcrypto -l${EPYTHON}|g" Makefile || die
+}
+
+src_install() {
+ default
+
+ if use examples; then
+ insinto /usr/share/${PN}
+ ecvs_clean
+ sed -i "s#content/#/usr/share/${PN}/content/#" conf/* || die
+ doins -r conf content
+ fi
+}
diff --git a/net-wireless/airpwn/metadata.xml b/net-wireless/airpwn/metadata.xml
new file mode 100644
index 000000000000..a44f7d6df373
--- /dev/null
+++ b/net-wireless/airpwn/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">airpwn</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/airsnort/Manifest b/net-wireless/airsnort/Manifest
new file mode 100644
index 000000000000..0f1c6b168a6c
--- /dev/null
+++ b/net-wireless/airsnort/Manifest
@@ -0,0 +1 @@
+DIST airsnort-0.2.7e.tar.gz 208383 SHA256 39910878a41b0a2acaba32d72cd76e65cdaa138555e5763140a5da7714f19a70
diff --git a/net-wireless/airsnort/airsnort-0.2.7e.ebuild b/net-wireless/airsnort/airsnort-0.2.7e.ebuild
new file mode 100644
index 000000000000..ea30ef7a3605
--- /dev/null
+++ b/net-wireless/airsnort/airsnort-0.2.7e.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="802.11b Wireless Packet Sniffer/WEP Cracker"
+HOMEPAGE="http://airsnort.shmoo.com/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ppc x86"
+IUSE=""
+
+RDEPEND="=x11-libs/gtk+-2*
+ net-libs/libpcap"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_install() {
+ make DESTDIR=${D} install || die "make install failed"
+ dodoc README README.decrypt AUTHORS ChangeLog TODO faq.txt
+}
+
+pkg_postinst() {
+ elog "Make sure to emerge linux-wlan-ng if you want support"
+ elog "for Prism2 based cards in airsnort."
+
+ elog "Make sure to emerge orinoco if you want support"
+ elog "for Orinoco based cards in airsnort."
+}
diff --git a/net-wireless/airsnort/metadata.xml b/net-wireless/airsnort/metadata.xml
new file mode 100644
index 000000000000..fc15de09a54f
--- /dev/null
+++ b/net-wireless/airsnort/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">airsnort</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/airtraf/Manifest b/net-wireless/airtraf/Manifest
new file mode 100644
index 000000000000..71b78bc9bf97
--- /dev/null
+++ b/net-wireless/airtraf/Manifest
@@ -0,0 +1 @@
+DIST airtraf-1.1.tar.gz 136241 SHA256 10ad27d6cac5ac7fcfec04cd737a0d8a640d5bfeb6fa48a13268f9efbe6bfe53 SHA512 7f341abb25e15dbdf510805230ee2f186a7a66d5c1e486bfdb978d3d8534d8b8c2cc1b5e0e323357c65af1eedbcb1da3e3e5f3ac8299db5f203f54b4a868f90b WHIRLPOOL de40aca3c5cacd5e5047b175e2538dba3ef90af1afb14dcb9a9e1ffab66fa3ddc0aee75aa916183a25f82906c108f3a7e9a177a2228858b2909c44a15a5227c7
diff --git a/net-wireless/airtraf/airtraf-1.1-r3.ebuild b/net-wireless/airtraf/airtraf-1.1-r3.ebuild
new file mode 100644
index 000000000000..bd4dd8f70c11
--- /dev/null
+++ b/net-wireless/airtraf/airtraf-1.1-r3.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="AirTraf 802.11b Wireless traffic sniffer"
+LICENSE="GPL-2"
+HOMEPAGE="http://www.elixar.com/"
+SRC_URI="${HOMEPAGE}${P}.tar.gz"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+RDEPEND="
+ net-libs/libpcap
+ sys-libs/ncurses
+"
+DEPEND="
+ ${RDEPEND}
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${P}.patch \
+ "${FILESDIR}"/${P}-off-by-one.patch \
+ "${FILESDIR}"/${P}-fprintf-format.patch
+
+ sed -i \
+ -e '/^LIBS/s|=.*|= $(shell $(PKG_CONFIG) --libs panel)|' \
+ src/libncurses/Makefile || die
+ sed -i \
+ -e 's|-lpanel -lncurses|$(shell $(PKG_CONFIG) --libs panel)|' \
+ src/sniffd/Makefile || die
+ tc-export PKG_CONFIG
+}
+
+src_compile() {
+ # parallel make (bug #297331)
+ emake -C src -j1 \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ CFLAGS="${CFLAGS}" \
+ CXXFLAGS="${CXXFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ || die
+}
+
+src_install () {
+ dobin src/airtraf
+ dodoc Authors COMPATIBILITY docs/airtraf_doc.html
+}
diff --git a/net-wireless/airtraf/files/airtraf-1.1-fprintf-format.patch b/net-wireless/airtraf/files/airtraf-1.1-fprintf-format.patch
new file mode 100644
index 000000000000..ac5d174c0d6f
--- /dev/null
+++ b/net-wireless/airtraf/files/airtraf-1.1-fprintf-format.patch
@@ -0,0 +1,14 @@
+--- a/src/libcommon/logger.c
++++ b/src/libcommon/logger.c
+@@ -92,9 +92,9 @@
+
+ switch (type)
+ {
+- case CONNECT_LOG: status = fprintf(connect_log, text);
++ case CONNECT_LOG: status = fprintf(connect_log, "%s\n", text);
+ break;
+- case ERROR_LOG: status = fprintf(error_log, text);
++ case ERROR_LOG: status = fprintf(error_log, "%s\n", text);
+ break;
+ default: // do nothing?
+ break;
diff --git a/net-wireless/airtraf/files/airtraf-1.1-off-by-one.patch b/net-wireless/airtraf/files/airtraf-1.1-off-by-one.patch
new file mode 100644
index 000000000000..571532b603ec
--- /dev/null
+++ b/net-wireless/airtraf/files/airtraf-1.1-off-by-one.patch
@@ -0,0 +1,29 @@
+--- a/src/sniffd/autoconfig.c
++++ b/src/sniffd/autoconfig.c
+@@ -68,7 +68,7 @@
+ struct ifreq ifr;
+
+ strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
+- ifr.ifr_name[IFNAMSIZ] = '\0';
++ ifr.ifr_name[IFNAMSIZ -1] = '\0';
+ if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0){
+ return (-1);
+ }
+@@ -89,7 +89,7 @@
+ struct ifreq ifr;
+
+ strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
+- ifr.ifr_name[IFNAMSIZ] = '\0';
++ ifr.ifr_name[IFNAMSIZ -1] = '\0';
+ if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0){
+ return (-1);
+ }
+@@ -129,7 +129,7 @@
+ {
+ /* Set device name */
+ strncpy(pwrq->ifr_name, ifname, IFNAMSIZ);
+- pwrq->ifr_name[IFNAMSIZ] = '\0';
++ pwrq->ifr_name[IFNAMSIZ -1] = '\0';
+
+ /* Do the request */
+ return(ioctl(skfd, request, pwrq));
diff --git a/net-wireless/airtraf/files/airtraf-1.1.patch b/net-wireless/airtraf/files/airtraf-1.1.patch
new file mode 100644
index 000000000000..e88ef52267c1
--- /dev/null
+++ b/net-wireless/airtraf/files/airtraf-1.1.patch
@@ -0,0 +1,59 @@
+--- a/src/sniffd/autoconfig.c
++++ b/src/sniffd/autoconfig.c
+@@ -360,7 +360,7 @@
+ int check_drv_compat(char * drvname, int * id)
+ {
+ int i;
+- for (i=0; (int) compat_drivers[i] != -1; i++){
++ for (i=0; (long) compat_drivers[i] != -1; i++){
+ if (!strncmp(compat_drivers[i], drvname, DRVNAMSIZ +1)){
+ *id = i;
+ return (1); // just true...
+@@ -525,6 +525,7 @@
+ }
+ /* Close the socket. */
+ close(skfd);
++ return 0;
+ }
+
+ /**
+@@ -772,7 +773,7 @@
+ fclose(fh);
+ break;
+ case DRV_PRISM2:
+-
++ break;
+
+ }
+ /* update flag take off PROMISC */
+--- a/src/sniffd/gui_channel_scan.c
++++ b/src/sniffd/gui_channel_scan.c
+@@ -384,7 +384,7 @@
+ if (!beep()) flash();
+ wattrset(statuswin, STDATTR);
+ snprintf(message,100,"Detected new network '%s' (%s) on Channel %02d",
+- ((strlen(ap->ssid)==1)&&(!strncmp(" ",ap->ssid,1))) ? "<cloaked>" : ap->ssid,
++ ((strlen(ap->ssid)==1)&&(!strncmp(" ",(char *)ap->ssid,1))) ? "<cloaked>" : (char *)ap->ssid,
+ hexdump((__u8*)&ap->bssid,6), ap->channel);
+ print_status_msg(statuswin, location, message);
+ ap->status = AP_STATUS_ACTIVE;
+--- a/src/sniffd/server.c
++++ b/src/sniffd/server.c
+@@ -57,7 +57,7 @@
+
+ int process_command(int, char *);
+ int issue_get_cmd(int, char *);
+-int send_bss_info(int);
++ssize_t send_bss_info(int);
+ int send_ids_info(int);
+
+ /*=============================================================*/
+@@ -143,7 +143,7 @@
+ if (DEBUG) fprintf(stderr,"Error transmitting data\n");
+ }
+ } while (write_len == 0);
+- if (DEBUG) fprintf(stderr,"Data: %d bytes sent\n",length);
++ if (DEBUG) fprintf(stderr,"Data: %ld bytes sent\n",length);
+ }
+
+ /**
diff --git a/net-wireless/airtraf/metadata.xml b/net-wireless/airtraf/metadata.xml
new file mode 100644
index 000000000000..8c9992e713f9
--- /dev/null
+++ b/net-wireless/airtraf/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>netmon</herd>
+<longdescription>
+AirTraf 1.0 is a wireless sniffer that can detect and determine exactly what is
+being transmitted over 802.11 wireless networks. This open-source program
+tracks and identifies legitimate and rogue access points, keeps performance
+statistics on a by-user and by-protocol basis, measures the signal strength of
+network components, and more. Do you want to capture the sky?
+</longdescription>
+</pkgmetadata>
diff --git a/net-wireless/ap-utils/Manifest b/net-wireless/ap-utils/Manifest
new file mode 100644
index 000000000000..1dac692d6e2a
--- /dev/null
+++ b/net-wireless/ap-utils/Manifest
@@ -0,0 +1,2 @@
+DIST ap-utils-1.4.tar.bz2 367750 SHA256 bc0e8606560421ac048a819458d51837d40ddf66dac82615455a6249ac91535a
+DIST ap-utils-1.5.tar.bz2 409480 SHA256 f01d068650f0f05c5b3753147ee0a5d3dfc07732c9788bb295683e66415a325d SHA512 ca875e0ce3d2e1c118f820483e649d419aff29c50db5c9ad88f19063f6d0f6ec1bae2e69339ea8dbded6ad4a7dcda81c78d45566ed058669acfb391499d4f3d9 WHIRLPOOL cb68458e7478447a432c3274059eeec2979b7b326357459088bbef1ef2bc79c5cb6f22dbd0c58397f201bce4e5a751982274a1b52b01265bdb35efed87f5664b
diff --git a/net-wireless/ap-utils/ap-utils-1.4.ebuild b/net-wireless/ap-utils/ap-utils-1.4.ebuild
new file mode 100644
index 000000000000..11d953dfd25a
--- /dev/null
+++ b/net-wireless/ap-utils/ap-utils-1.4.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils
+
+IUSE="nls"
+
+DESCRIPTION="Wireless Access Point Utilities for Unix"
+HOMEPAGE="http://ap-utils.polesye.net/"
+SRC_URI="mirror://sourceforge/ap-utils/${P}.tar.bz2"
+RESTRICT="mirror"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="x86"
+DEPEND=">=sys-devel/bison-1.34"
+RDEPEND=""
+
+src_unpack() {
+ unpack ${A}
+ epatch ${FILESDIR}/${P}-ppc-fix.diff
+}
+
+src_compile() {
+ econf --build=${CHOST} `use_enable nls` || die
+ emake || die
+}
+
+src_install () {
+ einstall || die
+ dodoc ChangeLog NEWS README THANKS TODO
+}
diff --git a/net-wireless/ap-utils/ap-utils-1.5.ebuild b/net-wireless/ap-utils/ap-utils-1.5.ebuild
new file mode 100644
index 000000000000..482895702110
--- /dev/null
+++ b/net-wireless/ap-utils/ap-utils-1.5.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils
+
+IUSE="nls"
+
+DESCRIPTION="Wireless Access Point Utilities for Unix"
+HOMEPAGE="http://ap-utils.polesye.net/"
+SRC_URI="ftp://linux.zhitomir.net/ap-utils/ap-utils-1.5.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+RDEPEND="sys-libs/ncurses"
+DEPEND="${RDEPEND}
+ >=sys-devel/bison-1.34"
+
+src_configure() {
+ econf $(use_enable nls)
+}
diff --git a/net-wireless/ap-utils/files/ap-utils-1.4-ppc-fix.diff b/net-wireless/ap-utils/files/ap-utils-1.4-ppc-fix.diff
new file mode 100644
index 000000000000..4b0dc577f60f
--- /dev/null
+++ b/net-wireless/ap-utils/files/ap-utils-1.4-ppc-fix.diff
@@ -0,0 +1,24 @@
+diff -aur ap-utils-1.4-orig/lib/wlan.c ap-utils-1.4/lib/wlan.c
+--- ap-utils-1.4-orig/lib/wlan.c 2003-10-31 12:15:00.000000000 -0500
++++ ap-utils-1.4/lib/wlan.c 2004-02-24 23:00:25.214209480 -0500
+@@ -140,6 +140,7 @@
+ _("Short"), _("Long")};
+ short __rates[4] = { 2, 4, 11, 22 };
+ int i, c = 0;
++ char ch;
+ unsigned int ap_regdomain;
+
+ if (ap_type == ATMEL12350) {
+@@ -508,10 +509,10 @@
+ i++;
+ }
+ if (m_essid) {
+- c = strlen(domain);
++ c = ch = strlen(domain);
+ varbinds[i].oid = operESSIDLength;
+ varbinds[i].len_oid = sizeof(operESSIDLength);
+- varbinds[i].value = (char *)&c;
++ varbinds[i].value = (char *)&ch;
+ varbinds[i].len_val = 1;
+ varbinds[i].type = INT_VALUE;
+ i++;
diff --git a/net-wireless/ap-utils/metadata.xml b/net-wireless/ap-utils/metadata.xml
new file mode 100644
index 000000000000..4538a68724a6
--- /dev/null
+++ b/net-wireless/ap-utils/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer><email>maintainer-needed@gentoo.org</email></maintainer>
+</pkgmetadata>
diff --git a/net-wireless/b43-fwcutter/Manifest b/net-wireless/b43-fwcutter/Manifest
new file mode 100644
index 000000000000..55ee0365aa55
--- /dev/null
+++ b/net-wireless/b43-fwcutter/Manifest
@@ -0,0 +1,2 @@
+DIST b43-fwcutter-018.tar.bz2 20314 SHA256 57b069dcd1a369ceb457ca397aab470be9b3fc537f400d27244e060fd425638f SHA512 dd2f8d3cb1c94e072489c602be2c4633f305ff0fb86702a0ff4109d64d5c9ccfc1b8442b8bc3d524c5deeb0a07b2a9b86225cb50291436110dcd68d3506bed9b WHIRLPOOL 7433393686e566e248853c8b7652cf0daf76747f5d4aafeb67fe2163588498505029fecf6c424e98230306f59aaacd7f4860bef54534d80a2966acca44a1a036
+DIST b43-fwcutter-019.tar.bz2 46769 SHA256 d6ea85310df6ae08e7f7e46d8b975e17fc867145ee249307413cfbe15d7121ce SHA512 2a439d1583d1ee7b13dd6a7526b78b216073e044c3934adf6615b8d2ca9a4b8c74db9791182d27baf1690b5c5ff6ce1a9c8dd4fb796e47939d055fef5bb37960 WHIRLPOOL c35799eae33323d97b61878ccce8183260a9730037f970ecd5f9a22511cccfa1e050bd77ea14febc8bb2ac296cdb9b9a621c20e20e6b07d16ff4d5069d27ddc7
diff --git a/net-wireless/b43-fwcutter/b43-fwcutter-018.ebuild b/net-wireless/b43-fwcutter/b43-fwcutter-018.ebuild
new file mode 100644
index 000000000000..866815226b92
--- /dev/null
+++ b/net-wireless/b43-fwcutter/b43-fwcutter-018.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit toolchain-funcs
+
+DESCRIPTION="Firmware Tool for Broadcom 43xx based wireless network devices
+using the mac80211 wireless stack"
+HOMEPAGE="http://bues.ch/b43/fwcutter"
+SRC_URI="http://bues.ch/b43/fwcutter/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE=""
+
+src_compile() {
+ MAKEOPTS+=" V=1"
+ emake CC="$(tc-getCC)" || die "emake failed"
+}
+
+src_install() {
+ # Install fwcutter
+ dobin ${PN}
+ doman ${PN}.1
+ dodoc README
+}
+
+pkg_postinst() {
+ echo
+ einfo "Firmware may be downloaded from http://linuxwireless.org."
+ einfo "This version of fwcutter works with all b43 driver versions."
+ echo
+}
diff --git a/net-wireless/b43-fwcutter/b43-fwcutter-019.ebuild b/net-wireless/b43-fwcutter/b43-fwcutter-019.ebuild
new file mode 100644
index 000000000000..2e7fe336bbd5
--- /dev/null
+++ b/net-wireless/b43-fwcutter/b43-fwcutter-019.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="Firmware Tool for Broadcom 43xx based wireless network devices
+using the mac80211 wireless stack"
+HOMEPAGE="http://bues.ch/b43/fwcutter"
+SRC_URI="http://bues.ch/b43/fwcutter/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ~ppc64 x86"
+IUSE=""
+
+src_compile() {
+ MAKEOPTS+=" V=1"
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ # Install fwcutter
+ dobin ${PN}
+ doman ${PN}.1
+ dodoc README
+}
+
+pkg_postinst() {
+ echo
+ einfo "Firmware may be downloaded from http://linuxwireless.org."
+ einfo "This version of fwcutter works with all b43 driver versions."
+ echo
+}
diff --git a/net-wireless/b43-fwcutter/metadata.xml b/net-wireless/b43-fwcutter/metadata.xml
new file mode 100644
index 000000000000..4ef9e6d1908e
--- /dev/null
+++ b/net-wireless/b43-fwcutter/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+ <email>josejx@gentoo.org</email>
+ <name>Joseph Jezak</name>
+</maintainer>
+<maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+</maintainer>
+</pkgmetadata>
diff --git a/net-wireless/bcm43xx-fwcutter/Manifest b/net-wireless/bcm43xx-fwcutter/Manifest
new file mode 100644
index 000000000000..fa9259618be8
--- /dev/null
+++ b/net-wireless/bcm43xx-fwcutter/Manifest
@@ -0,0 +1,2 @@
+DIST bcm43xx-fwcutter-005.tar.bz2 34646 SHA256 ed403870f7198991f2070a42be258d100a1770daa805e5d4569a28edbac92d3e
+DIST bcm43xx-fwcutter-006.tar.bz2 27525 SHA256 5153c94ab59ed9d3f1a6c4ed4764953be61cefbf27a9c6b04c24cca7d44034ce
diff --git a/net-wireless/bcm43xx-fwcutter/bcm43xx-fwcutter-005.ebuild b/net-wireless/bcm43xx-fwcutter/bcm43xx-fwcutter-005.ebuild
new file mode 100644
index 000000000000..19d67973b484
--- /dev/null
+++ b/net-wireless/bcm43xx-fwcutter/bcm43xx-fwcutter-005.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit toolchain-funcs
+
+DESCRIPTION="Firmware Tool for Broadcom 43xx based wireless network devices"
+HOMEPAGE="http://bcm43xx.berlios.de"
+SRC_URI="mirror://berlios/bcm43xx/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ppc ~x86 ~ppc64"
+IUSE=""
+
+src_compile() {
+ emake CC="$(tc-getCC)" || die "emake failed"
+}
+
+src_install() {
+ # Install fwcutter
+ dobin ${PN}
+ doman ${PN}.1
+ dodoc README
+}
+
+pkg_postinst() {
+ if ! [ -f /lib/firmware/${PN}_microcode2.fw ]; then
+ echo
+ einfo "You'll need to use bcm43xx-fwcutter to install the bcm43xx firmware."
+ einfo "Please read the bcm43xx-fwcutter readme for more details:"
+ einfo "README in /usr/share/doc/${P}/"
+ echo
+ fi
+
+ einfo "Please read this forum thread for help and troubleshooting:"
+ einfo "http://forums.gentoo.org/viewtopic-t-409194.html"
+ echo
+}
diff --git a/net-wireless/bcm43xx-fwcutter/bcm43xx-fwcutter-006.ebuild b/net-wireless/bcm43xx-fwcutter/bcm43xx-fwcutter-006.ebuild
new file mode 100644
index 000000000000..ca9100cb4171
--- /dev/null
+++ b/net-wireless/bcm43xx-fwcutter/bcm43xx-fwcutter-006.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit toolchain-funcs
+
+DESCRIPTION="Firmware Tool for Broadcom 43xx based wireless network devices"
+HOMEPAGE="http://bcm43xx.berlios.de"
+SRC_URI="mirror://berlios/bcm43xx/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ppc ~ppc64 ~x86"
+IUSE=""
+
+src_compile() {
+ emake CC="$(tc-getCC)" || die "emake failed"
+}
+
+src_install() {
+ # Install fwcutter
+ dobin ${PN}
+ doman ${PN}.1
+ dodoc README
+}
+
+pkg_postinst() {
+ if ! [ -f /lib/firmware/${PN}_microcode2.fw ]; then
+ echo
+ einfo "You'll need to use bcm43xx-fwcutter to install the bcm43xx firmware."
+ einfo "Please read the bcm43xx-fwcutter readme for more details:"
+ einfo "README in /usr/share/doc/${P}"
+ echo
+ fi
+
+ einfo "Please read this forum thread for help and troubleshooting:"
+ einfo "http://forums.gentoo.org/viewtopic-t-409194.html"
+ echo
+}
diff --git a/net-wireless/bcm43xx-fwcutter/metadata.xml b/net-wireless/bcm43xx-fwcutter/metadata.xml
new file mode 100644
index 000000000000..4ef9e6d1908e
--- /dev/null
+++ b/net-wireless/bcm43xx-fwcutter/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+ <email>josejx@gentoo.org</email>
+ <name>Joseph Jezak</name>
+</maintainer>
+<maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+</maintainer>
+</pkgmetadata>
diff --git a/net-wireless/bladerf-firmware/Manifest b/net-wireless/bladerf-firmware/Manifest
new file mode 100644
index 000000000000..6093baacd4b1
--- /dev/null
+++ b/net-wireless/bladerf-firmware/Manifest
@@ -0,0 +1,2 @@
+DIST bladeRF_fw_v1.7.1.img 122408 SHA256 9af2faa3b648e59f07b2c19d1e9ea2b91b47abd2b44c55e10bd2daed52943464 SHA512 9dc1f461bc48a7eb32957fef4818a2e3b50b13da0924385404abb972d653243c0de5717044bcac6eb44dac637ae429311e776a4f5aaa235a80193eb3ec7a0e7e WHIRLPOOL b15e158068bad1840c230f2fb9efbc5f8eef70cae4ac6ed69042293dcc7ecdcd830f1f445a452b0ee6f0ae40f425a9fd015fb311c11788b242067cf52b98bed7
+DIST bladeRF_fw_v1.8.0.img 122576 SHA256 3d8bb1bb2511d5d9b264b51c16cff7648c08fcaa7e7350127e6e82d80a695d02 SHA512 5cc8e69e550e60af0c9fbead9655c6af19a29afa18c352b0d010727e28b7c8fa015c6294054d19a65caa4a8ed2fb5096fa90f460561e4a7abaabb2b0bb15e366 WHIRLPOOL b71b3aec706e7fd6a92c913d1646fb31576dd97a6ad2c3a36965567d17e98e5035203d200e6d5b3da38ded00104a044027fb3bc63cdca760ccafa0112649b676
diff --git a/net-wireless/bladerf-firmware/bladerf-firmware-1.7.1.ebuild b/net-wireless/bladerf-firmware/bladerf-firmware-1.7.1.ebuild
new file mode 100644
index 000000000000..4e90fff53e9f
--- /dev/null
+++ b/net-wireless/bladerf-firmware/bladerf-firmware-1.7.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="bladeRF FX3 firmware images"
+HOMEPAGE="http://nuand.com/fx3.php"
+
+#firmware is open source, but uses a proprietary toolchain to build
+#automated builds from git are available, but likely unneeded
+#http://hoopycat.com/bladerf_builds/
+SRC_URI="http://nuand.com/fx3/bladeRF_fw_v${PV}.img"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+S="${DISTDIR}"
+
+src_install() {
+ insinto /usr/share/Nuand/bladeRF/
+ doins bladeRF_fw_v${PV}.img
+}
diff --git a/net-wireless/bladerf-firmware/bladerf-firmware-1.8.0.ebuild b/net-wireless/bladerf-firmware/bladerf-firmware-1.8.0.ebuild
new file mode 100644
index 000000000000..4253360761c7
--- /dev/null
+++ b/net-wireless/bladerf-firmware/bladerf-firmware-1.8.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="bladeRF FX3 firmware images"
+HOMEPAGE="http://nuand.com/fx3.php"
+
+#firmware is open source, but uses a proprietary toolchain to build
+#automated builds from git are available, but likely unneeded
+#http://hoopycat.com/bladerf_builds/
+SRC_URI="http://nuand.com/fx3/bladeRF_fw_v${PV}.img"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+S="${DISTDIR}"
+
+src_install() {
+ insinto /usr/share/Nuand/bladeRF/
+ doins bladeRF_fw_v${PV}.img
+}
+
+pkg_postinst() {
+ elog "Please remember you have to actually flash this onto"
+ elog "your bladerf with the following command:"
+ elog "bladeRF-cli -f /usr/share/Nuand/bladeRF/bladeRF_fw_v${PV}.img"
+}
diff --git a/net-wireless/bladerf-firmware/metadata.xml b/net-wireless/bladerf-firmware/metadata.xml
new file mode 100644
index 000000000000..1681f5f93bc5
--- /dev/null
+++ b/net-wireless/bladerf-firmware/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>radio</herd>
+<maintainer>
+<email>zerochaos@gentoo.org</email>
+<name>Rick Farina</name>
+</maintainer>
+<longdescription lang="en">
+</longdescription>
+</pkgmetadata>
diff --git a/net-wireless/bladerf-fpga/Manifest b/net-wireless/bladerf-fpga/Manifest
new file mode 100644
index 000000000000..9720c8ac8ed2
--- /dev/null
+++ b/net-wireless/bladerf-fpga/Manifest
@@ -0,0 +1,8 @@
+DIST hostedx115-0.1.1.rbf 3571462 SHA256 112b315efaa4aef4bdb15285fb637ff1c93aa24cc3aa98d86ebb4e02d2352aa6 SHA512 14a74942963d0a47b6c3a46540fb8fbedf0204d9e056e5ad8c87b3988441ab0e4d1f875196a6c2e7c8e462b5e091a18e7cbe5a7e5c3d3773952e43d7a4165e99 WHIRLPOOL 76b7e6157fe889abc6dec9d1e81656ff60b0de9d3a7c1405f2fc25166ef3ee963e4f37f93e9f52d881cb6b899ca33be90ff1920179b44bc12a7f7bd70963cda8
+DIST hostedx115-0.1.2.rbf 3571462 SHA256 3dea872433a4dc3410c3aa667dc18caa8c2fda0a616d325f95d6f2ef02221f90 SHA512 0c90a2e5add5443df549b2428e6ea2c043171b4c18bbbf953eb1c96ad3a2bb53f655212353eac6df1e7758366fd4ea5dabc355f85db3abdecdb16b4b2b85fd4d WHIRLPOOL 5065e033c6882c92e117444480b969e9f17ee99c794fbf16edccaa9396d1d1c804969463cbcf90a4c86abebee4a78349a3a8ebe40388a38a7e517bdd317de431
+DIST hostedx115-0.3.4.rbf 3571462 SHA256 fbbe05efcac213cc65aeb9b1235b2341595be08b11b0d3ea9ff0071ac60ad19c SHA512 8ab1373c7ac2de64962f619e0809e0bff7d0df82666ed9601cf51dae0de1914240e929c6ab3a8b34928b7f89c2906782522238cd6a8809f8201af4d1275d8e25 WHIRLPOOL 1d0151adc7a9361f96ded0ef80fe543904453e59bb12ee3ee672a5db7af898f20c6d6d05fad80a4b7dd28c1b20c26b2bd32acd6b3a8ac7e5947c5381a4d8e318
+DIST hostedx115.rbf 3571462 SHA256 1c145aee9555a84ecc065fe50e15b56835be2c3691ae747cb74e0c24a8fd1e4b SHA512 4df268602e662cd54a6da2b94d52cc355afdda8578c8342ea1be6a168ff874c095f92230f3cdfe5aada3d1c3237d8572e427c377c57f4a6d555f0ca49f85d6e4 WHIRLPOOL ea66c0779023eb6ef5b15bd4c34dc108cc1c624cbf2265adc5f2e0a64f70b1ac1011cce943bacbe8be09580fe0551493bf29ae130bdcb0e1e3baf09260c435ce
+DIST hostedx40-0.1.1.rbf 1191788 SHA256 48852d9d0a64f03331e0c3c1adf6dd56ee8ef77bf6ae93401bf845a1117714a8 SHA512 426aa48c588e02fe3a13c7310ab7f2a78f0c5aaba1925164c78f484cf99cfcfba103b8a738329a198c3b905fd23cb48fbe29fa4e08ded6d2fe5d70f90b850af1 WHIRLPOOL e39e3494e9e39798b3af00b145bf05c9544b995abf549a49f1f82af313efcdbc4bcfa923c6b6e6e7903c45331b94ab7d3a5bdfe73879d9986cd9da8318ab0b09
+DIST hostedx40-0.1.2.rbf 1191788 SHA256 85f2e237829476f6f15851a25ce96084dfc695820c37cd6751efee4c4806999a SHA512 9f06b5560d91ed65df14e48c729da04ae4c8720aae863d215f24db7efc4a353751840605aeb6b2ae9e4a71ffb9820d7f310bdca6dddad27768514e2edd7fc933 WHIRLPOOL 077c947b7f9558ab45193170374b6472187f1c26b874029a7eecc9823392ffbdcdab5d7f6461a5a391719311ff7e8aec3e4fd517a2c1aecdbc68357ca9776879
+DIST hostedx40-0.3.4.rbf 1191788 SHA256 517de44d7ad8cdc0e88b0d3d8945a580a1c9a25fb90ec9f0b1fd34fe30a2e8ff SHA512 0529bda4bf39ee83aa9d48dabc30af7333018e3a369e9968d030995a915e6f4ae67c17df22e55e0c4144eced0fbbac786d82dccb70d0393e8eee095e49792ade WHIRLPOOL d2dc1160536f7e4f4fa5b62f4485da2072ba34dd1426b295867f2a4e75b4820943206ca6e5e36111310bf2b97e9ceb5c8a1377ef882a1630c4bb2ee2233602e8
+DIST hostedx40.rbf 1191788 SHA256 206c7629d3191d4bb29e2826730c89a160cc565a7e54a7c2b2c2db05549e72cb SHA512 e56686a8dd4372cf11d3f373ef4262c3897f9adbd8952d82b3d737d38e77d8ddde9c427ddb6ba20364ff3748d57f29974044bd32c0f4177690ff37a600b210e9 WHIRLPOOL 0aeddf6169db1b05e8d722a1f1d5056621890a96301055e27d06c3fb928a11884ad89310c27c4c1cadde9be65c9a7c063416f2da0dd94ea28e535bd561e54a7a
diff --git a/net-wireless/bladerf-fpga/bladerf-fpga-0.0.6.ebuild b/net-wireless/bladerf-fpga/bladerf-fpga-0.0.6.ebuild
new file mode 100644
index 000000000000..dd727379106d
--- /dev/null
+++ b/net-wireless/bladerf-fpga/bladerf-fpga-0.0.6.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="bladeRF FPGA bitstreams"
+HOMEPAGE="http://nuand.com/fpga.php"
+
+#fpga code is open source, but uses a proprietary toolchain to build
+#automated builds from git are available, but likely unneeded
+#http://hoopycat.com/bladerf_builds/
+SRC_URI="x40? ( http://nuand.com/fpga/v${PV}/hostedx40.rbf )
+ x115? ( http://nuand.com/fpga/v${PV}/hostedx115.rbf )"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+x40 +x115"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+S="${DISTDIR}"
+
+src_install() {
+ insinto /usr/share/Nuand/bladeRF/
+ use x40 && doins hostedx40.rbf
+ use x115 && doins hostedx115.rbf
+}
diff --git a/net-wireless/bladerf-fpga/bladerf-fpga-0.1.1-r1.ebuild b/net-wireless/bladerf-fpga/bladerf-fpga-0.1.1-r1.ebuild
new file mode 100644
index 000000000000..d3a927ebd446
--- /dev/null
+++ b/net-wireless/bladerf-fpga/bladerf-fpga-0.1.1-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="bladeRF FPGA bitstreams"
+HOMEPAGE="http://nuand.com/fpga.php"
+
+#fpga code is open source, but uses a proprietary toolchain to build
+#automated builds from git are available, but likely unneeded
+#http://hoopycat.com/bladerf_builds/
+SRC_URI="x40? ( http://nuand.com/fpga/v${PV}/hostedx40.rbf -> hostedx40-${PV}.rbf )
+ x115? ( http://nuand.com/fpga/v${PV}/hostedx115.rbf -> hostedx115-${PV}.rbf )"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+x40 +x115"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+S="${DISTDIR}"
+
+src_install() {
+ insinto /usr/share/Nuand/bladeRF/
+ use x40 && newins hostedx40-${PV}.rbf hostedx40.rbf
+ use x115 && newins hostedx115-${PV}.rbf hostedx115.rbf
+}
diff --git a/net-wireless/bladerf-fpga/bladerf-fpga-0.1.2.ebuild b/net-wireless/bladerf-fpga/bladerf-fpga-0.1.2.ebuild
new file mode 100644
index 000000000000..37a2de9b6f4d
--- /dev/null
+++ b/net-wireless/bladerf-fpga/bladerf-fpga-0.1.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="bladeRF FPGA bitstreams"
+HOMEPAGE="http://nuand.com/fpga.php"
+
+#fpga code is open source, but uses a proprietary toolchain to build
+#automated builds from git are available, but likely unneeded
+#http://hoopycat.com/bladerf_builds/
+SRC_URI="x40? ( http://nuand.com/fpga/v${PV}/hostedx40.rbf -> hostedx40-${PV}.rbf )
+ x115? ( http://nuand.com/fpga/v${PV}/hostedx115.rbf -> hostedx115-${PV}.rbf )"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+x40 +x115"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+S="${DISTDIR}"
+
+src_install() {
+ insinto /usr/share/Nuand/bladeRF/
+ use x40 && newins hostedx40-${PV}.rbf hostedx40.rbf
+ use x115 && newins hostedx115-${PV}.rbf hostedx115.rbf
+}
diff --git a/net-wireless/bladerf-fpga/bladerf-fpga-0.3.4.ebuild b/net-wireless/bladerf-fpga/bladerf-fpga-0.3.4.ebuild
new file mode 100644
index 000000000000..37a2de9b6f4d
--- /dev/null
+++ b/net-wireless/bladerf-fpga/bladerf-fpga-0.3.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="bladeRF FPGA bitstreams"
+HOMEPAGE="http://nuand.com/fpga.php"
+
+#fpga code is open source, but uses a proprietary toolchain to build
+#automated builds from git are available, but likely unneeded
+#http://hoopycat.com/bladerf_builds/
+SRC_URI="x40? ( http://nuand.com/fpga/v${PV}/hostedx40.rbf -> hostedx40-${PV}.rbf )
+ x115? ( http://nuand.com/fpga/v${PV}/hostedx115.rbf -> hostedx115-${PV}.rbf )"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+x40 +x115"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+S="${DISTDIR}"
+
+src_install() {
+ insinto /usr/share/Nuand/bladeRF/
+ use x40 && newins hostedx40-${PV}.rbf hostedx40.rbf
+ use x115 && newins hostedx115-${PV}.rbf hostedx115.rbf
+}
diff --git a/net-wireless/bladerf-fpga/metadata.xml b/net-wireless/bladerf-fpga/metadata.xml
new file mode 100644
index 000000000000..ddbf40e23d31
--- /dev/null
+++ b/net-wireless/bladerf-fpga/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>radio</herd>
+<maintainer>
+<email>zerochaos@gentoo.org</email>
+<name>Rick Farina</name>
+</maintainer>
+<longdescription lang="en">
+</longdescription>
+<use>
+<flag name="x40">bitstream for the x40KLE Cyclone IV FPGA bladerf model"</flag>
+<flag name="x115">bitstream for the x115KLE Cyclone IV FPGA bladerf model"</flag>
+</use>
+</pkgmetadata>
diff --git a/net-wireless/bladerf/Manifest b/net-wireless/bladerf/Manifest
new file mode 100644
index 000000000000..f2ea47d13024
--- /dev/null
+++ b/net-wireless/bladerf/Manifest
@@ -0,0 +1,2 @@
+DIST bladerf-2015.02.tar.gz 1297072 SHA256 387855d38fa425e55247fbcba28b386b23d87168e5d49aa3911d02e448a18eb6 SHA512 04fa431232562cf589489961a5206022be59687531aeb118aac8b8b58f74862cac7fad5c55676c0cf3b33e19abbf9e2a1339237eade2fd96c5ecdb37b51e9603 WHIRLPOOL 733b5ec527aae1420f763274c0cad239a782e41f2624fdf5a583cbddd4dafed22fcde2b051931cb756922909f84240e7eeed899bd1b52182bdb752fd6e8a5558
+DIST bladerf-2015.07.tar.gz 1418766 SHA256 9e15911ab39ba1eb4aa1bcbf518a0eac5396207fc4a58c32b2550fe0a65f9d22 SHA512 01589bc9bd6ee2d4120597133c7a69ed91a80c74bc75b70fb4470a9a14328161fcf4ba7112ec91ea12bedb3de7325135ac125b26f09c22dc6e49d9c23247bec8 WHIRLPOOL fe5c5716d6777ef71d1a7b482ec31792d07d360a04cb319a04d5e712b82c345ab83fd4db100fcb62a5cec9ce1b0983234b2b2c8eb8999a0a806a80990ea6ba5a
diff --git a/net-wireless/bladerf/bladerf-2015.02.ebuild b/net-wireless/bladerf/bladerf-2015.02.ebuild
new file mode 100644
index 000000000000..fe1d6271922e
--- /dev/null
+++ b/net-wireless/bladerf/bladerf-2015.02.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils udev
+
+DESCRIPTION="Libraries for supporing the BladeRF hardware from Nuand"
+HOMEPAGE="http://nuand.com/"
+
+#lib is LGPL and cli tools are GPL
+LICENSE="GPL-2+ LGPL-2.1+"
+
+SLOT="0/${PV}"
+
+#maintainer notes:
+#doc use flag, looks like it can't be disabled right now and will
+# always build if pandoc and help2man are installed
+# also ignores when deps are missing and just disables docs
+IUSE="doc +tecla"
+
+MY_PN="bladeRF"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Nuand/${MY_PN}.git"
+ KEYWORDS=""
+else
+ MY_PV=${PV/\_/-}
+ S="${WORKDIR}/${MY_PN}-${MY_PV}"
+ SRC_URI="https://github.com/Nuand/${MY_PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+CDEPEND=">=dev-libs/libusb-1.0.16
+ tecla? ( dev-libs/libtecla )"
+DEPEND="${CDEPEND}
+ virtual/pkgconfig"
+RDEPEND="${CDEPEND}"
+PDEPEND=">=net-wireless/bladerf-firmware-1.8.0
+ >=net-wireless/bladerf-fpga-0.1.2"
+
+src_configure() {
+ mycmakeargs=(
+ -DVERSION_INFO_OVERRIDE:STRING="${PV}"
+ $(cmake-utils_use_enable doc BUILD_DOCUMENTATION)
+ $(cmake-utils_use_enable tecla LIBTECLA)
+ -DTREAT_WARNINGS_AS_ERRORS=OFF
+ -DUDEV_RULES_PATH="$(get_udevdir)"/rules.d
+ )
+ cmake-utils_src_configure
+}
diff --git a/net-wireless/bladerf/bladerf-2015.07.ebuild b/net-wireless/bladerf/bladerf-2015.07.ebuild
new file mode 100644
index 000000000000..04e504dbd758
--- /dev/null
+++ b/net-wireless/bladerf/bladerf-2015.07.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils udev
+
+DESCRIPTION="Libraries for supporing the BladeRF hardware from Nuand"
+HOMEPAGE="http://nuand.com/"
+
+#lib is LGPL and cli tools are GPL
+LICENSE="GPL-2+ LGPL-2.1+"
+
+SLOT="0/${PV}"
+
+#maintainer notes:
+#doc use flag, looks like it can't be disabled right now and will
+# always build if pandoc and help2man are installed
+# also ignores when deps are missing and just disables docs
+IUSE="doc +tecla"
+
+MY_PN="bladeRF"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Nuand/${MY_PN}.git"
+ KEYWORDS=""
+else
+ MY_PV=${PV/\_/-}
+ S="${WORKDIR}/${MY_PN}-${MY_PV}"
+ SRC_URI="https://github.com/Nuand/${MY_PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+CDEPEND=">=dev-libs/libusb-1.0.16
+ tecla? ( dev-libs/libtecla )"
+DEPEND="${CDEPEND}
+ virtual/pkgconfig"
+RDEPEND="${CDEPEND}"
+PDEPEND=">=net-wireless/bladerf-firmware-1.8.0
+ >=net-wireless/bladerf-fpga-0.3.4"
+
+src_configure() {
+ mycmakeargs=(
+ -DVERSION_INFO_OVERRIDE:STRING="${PV}"
+ $(cmake-utils_use_enable doc BUILD_DOCUMENTATION)
+ $(cmake-utils_use_enable tecla LIBTECLA)
+ -DTREAT_WARNINGS_AS_ERRORS=OFF
+ -DUDEV_RULES_PATH="$(get_udevdir)"/rules.d
+ )
+ cmake-utils_src_configure
+}
diff --git a/net-wireless/bladerf/bladerf-9999.ebuild b/net-wireless/bladerf/bladerf-9999.ebuild
new file mode 100644
index 000000000000..04e504dbd758
--- /dev/null
+++ b/net-wireless/bladerf/bladerf-9999.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils udev
+
+DESCRIPTION="Libraries for supporing the BladeRF hardware from Nuand"
+HOMEPAGE="http://nuand.com/"
+
+#lib is LGPL and cli tools are GPL
+LICENSE="GPL-2+ LGPL-2.1+"
+
+SLOT="0/${PV}"
+
+#maintainer notes:
+#doc use flag, looks like it can't be disabled right now and will
+# always build if pandoc and help2man are installed
+# also ignores when deps are missing and just disables docs
+IUSE="doc +tecla"
+
+MY_PN="bladeRF"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Nuand/${MY_PN}.git"
+ KEYWORDS=""
+else
+ MY_PV=${PV/\_/-}
+ S="${WORKDIR}/${MY_PN}-${MY_PV}"
+ SRC_URI="https://github.com/Nuand/${MY_PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+CDEPEND=">=dev-libs/libusb-1.0.16
+ tecla? ( dev-libs/libtecla )"
+DEPEND="${CDEPEND}
+ virtual/pkgconfig"
+RDEPEND="${CDEPEND}"
+PDEPEND=">=net-wireless/bladerf-firmware-1.8.0
+ >=net-wireless/bladerf-fpga-0.3.4"
+
+src_configure() {
+ mycmakeargs=(
+ -DVERSION_INFO_OVERRIDE:STRING="${PV}"
+ $(cmake-utils_use_enable doc BUILD_DOCUMENTATION)
+ $(cmake-utils_use_enable tecla LIBTECLA)
+ -DTREAT_WARNINGS_AS_ERRORS=OFF
+ -DUDEV_RULES_PATH="$(get_udevdir)"/rules.d
+ )
+ cmake-utils_src_configure
+}
diff --git a/net-wireless/bladerf/metadata.xml b/net-wireless/bladerf/metadata.xml
new file mode 100644
index 000000000000..0ab524fad838
--- /dev/null
+++ b/net-wireless/bladerf/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <use>
+ <flag name="tecla">use libtecla for command line editing, tab completion, and history</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">Nuand/bladeRF</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/bluedevil/Manifest b/net-wireless/bluedevil/Manifest
new file mode 100644
index 000000000000..ef39f773b573
--- /dev/null
+++ b/net-wireless/bluedevil/Manifest
@@ -0,0 +1,2 @@
+DIST bluedevil-2.0-rc1.tar.xz 162800 SHA256 9833076b43e3b955dde77a0eff69ca0844b8947f770c0b86d2a58e59b9304e2d SHA512 6a72637ce02d2a634cee05579bc6de601fbd6db97eb3b88fcdbe289f80ce735a66a966e7e78423a10d93136560a83e546e899a22cc77c6934a8e9f2779309952 WHIRLPOOL d13626e4dde5dd54046c9c841437b78af88956f1745a39307e9dfd1764b76359199bbf4b39dae40b62e725cff774635745d5ddd62ecc999183b10f55776432b6
+DIST bluedevil-2.1.1.tar.xz 162060 SHA256 f18dc3848363dd7f7cce61475f336426c17b83224260cff705a96a535d0b9de5 SHA512 c5908db65dc2b3971af01b8555cb244257ed80592fe85417f2778cf3d236e34da402e8bf9bb4beba796b6d1401a1dcb1b4a651db1f57422314e3d030199e8bc4 WHIRLPOOL 858c29b76ac36af75d47c894f5da1e088d821801aaae695df619c95f8fab97ff22247d0451d3a9e7ec2253db836b4a7c1bf54a5f1b218e75030ba80189a6a193
diff --git a/net-wireless/bluedevil/bluedevil-2.0_rc1.ebuild b/net-wireless/bluedevil/bluedevil-2.0_rc1.ebuild
new file mode 100644
index 000000000000..0fae390406f6
--- /dev/null
+++ b/net-wireless/bluedevil/bluedevil-2.0_rc1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+KDE_LINGUAS="ar bs ca ca@valencia cs da de el en_GB eo es et eu fa fi fr ga gl
+hu it ja kk km ko lt mai mr ms nb nds nl pa pl pt pt_BR ro ru sk sl sr
+sr@ijekavian sr@ijekavianlatin sr@latin sv th tr ug uk zh_CN zh_TW"
+inherit kde4-base
+
+MY_P=${PN}-${PV/_/-}
+DESCRIPTION="Bluetooth stack for KDE"
+HOMEPAGE="http://projects.kde.org/projects/extragear/base/bluedevil"
+SRC_URI="mirror://kde/unstable/${PN}/${PV/_/-}/src/${MY_P}.tar.xz"
+
+LICENSE="GPL-2+"
+KEYWORDS="amd64 ~arm ppc ppc64 x86"
+SLOT="4"
+IUSE="debug"
+
+DEPEND="
+ >=net-libs/libbluedevil-2:4
+ x11-misc/shared-mime-info
+"
+RDEPEND="${DEPEND}"
+S=${WORKDIR}/${MY_P}
diff --git a/net-wireless/bluedevil/bluedevil-2.1.1.ebuild b/net-wireless/bluedevil/bluedevil-2.1.1.ebuild
new file mode 100644
index 000000000000..798c567fb942
--- /dev/null
+++ b/net-wireless/bluedevil/bluedevil-2.1.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+KDE_LINGUAS="ar bg bs ca ca@valencia cs da de el en_GB eo es et eu fa fi fr ga gl
+hu it ja kk km ko lt mai mr ms nb nds nl pa pl pt pt_BR ro ru sk sl sr
+sr@ijekavian sr@ijekavianlatin sr@Latn sv th tr ug uk zh_CN zh_TW"
+inherit kde4-base
+
+DESCRIPTION="Bluetooth stack for KDE"
+HOMEPAGE="http://projects.kde.org/projects/extragear/base/bluedevil"
+SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="4"
+KEYWORDS="amd64 ~arm ppc ~ppc64 x86"
+IUSE="debug"
+
+RDEPEND="
+ >=net-libs/libbluedevil-2.1:4
+ x11-misc/shared-mime-info
+"
+DEPEND="${RDEPEND}
+ sys-devel/gettext
+"
diff --git a/net-wireless/bluedevil/metadata.xml b/net-wireless/bluedevil/metadata.xml
new file mode 100644
index 000000000000..a23f444b67d6
--- /dev/null
+++ b/net-wireless/bluedevil/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>kde</herd>
+</pkgmetadata>
diff --git a/net-wireless/blueman/Manifest b/net-wireless/blueman/Manifest
new file mode 100644
index 000000000000..bf3bc8274493
--- /dev/null
+++ b/net-wireless/blueman/Manifest
@@ -0,0 +1,3 @@
+DIST blueman-1.23.tar.gz 1223094 SHA256 50b261bcdc2e99e176c7c194825da1259500aaacaccb92714d97af0209a4f011 SHA512 529a43dace73bf362baac69404a9e87d14f5bcb7b07b18194434c7a6c1dbc22f8fecdb4923c92a77b65656405a492b9e147e77cb7a161df4a93e8b78a003eba7 WHIRLPOOL 4070b4d86cbe743278730e4ee3022bcfdea590b5b76e545cc67912a3498de993ed0c62cb67ac2cd3ad3b8e3c17c5d5a8b1f8fa6e214234a64a784146c6d6d542
+DIST blueman-1.98_p20150105.tar.xz 1698524 SHA256 cb610b0c4799d87989a2f6147059fb850f71984909f761af875c3106f51d543a SHA512 c988ff6cf9769d7653be252bda59bb41388a4d41d7b1f5aa01df63278018fc637634ea96a08b183b78cb5b966c3d2dc189021f437eabf674e8f93812798d4a6b WHIRLPOOL 7070a1bff973fe682af3b0103c99424401e5c3c5bc5632aefbaa9b5c9835d3f001b0656a17893feaffdcc3bfe173aac0c17789b634f937c54906774c9acde22f
+DIST blueman-2.0.tar.xz 1941332 SHA256 81a5ca95124f12bfb62d2d2d0d265af70cdae1d43b0c6e4fc6d2bad8f82958f1 SHA512 44d3967d031f7482e7700674970eff08fee53d8cbeb96e46b2f97e2a2fb6b5790f663ed73129eab241545ebaa6c5748dc6cf6b90a2c4795b27e90b5399d71f80 WHIRLPOOL 394bac3e0b457fdbb79c69fe9181abafde3f9b1138ff71c4dc23bc78424b76284e3ad9cf02dc168848fa461541f86fa2bba5aee0f014e460f0852e1bfa163dae
diff --git a/net-wireless/blueman/blueman-1.23-r2.ebuild b/net-wireless/blueman/blueman-1.23-r2.ebuild
new file mode 100644
index 000000000000..ae5de7c75a9e
--- /dev/null
+++ b/net-wireless/blueman/blueman-1.23-r2.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+PYTHON_DEPEND="2:2.7"
+
+inherit eutils python gnome2-utils
+
+DESCRIPTION="GTK+ Bluetooth Manager, designed to be simple and intuitive for everyday bluetooth tasks"
+HOMEPAGE="https://github.com/blueman-project/blueman"
+SRC_URI="http://download.tuxfamily.org/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="gconf sendto network nls policykit pulseaudio"
+
+CDEPEND="dev-libs/glib:2
+ >=x11-libs/gtk+-2.12:2
+ x11-libs/startup-notification
+ dev-python/pygobject:2
+ <net-wireless/bluez-5
+ >=net-wireless/bluez-4.21"
+DEPEND="${CDEPEND}
+ nls? ( dev-util/intltool sys-devel/gettext )
+ virtual/pkgconfig
+ >=dev-python/pyrex-0.9.8"
+RDEPEND="${CDEPEND}
+ >=app-mobilephone/obex-data-server-0.4.4
+ sys-apps/dbus
+ dev-python/pygtk
+ dev-python/notify-python
+ dev-python/dbus-python
+ x11-themes/hicolor-icon-theme
+ gconf? ( dev-python/gconf-python )
+ sendto? ( gnome-base/nautilus )
+ network? ( || ( net-dns/dnsmasq
+ net-misc/dhcp
+ >=net-misc/networkmanager-0.8 ) )
+ policykit? ( sys-auth/polkit )
+ pulseaudio? ( media-sound/pulseaudio )"
+
+pkg_setup() {
+ python_set_active_version 2.7
+ python_pkg_setup
+}
+
+src_prepare() {
+ # disable pyc compiling
+ ln -sf $(type -P true) py-compile
+
+ sed -i \
+ -e '/^Encoding/d' \
+ data/blueman-manager.desktop.in || die "sed failed"
+
+ epatch \
+ "${FILESDIR}/${P}-plugins-conf-file.patch" \
+ "${FILESDIR}/${P}-fix-broken-status-icon.patch" \
+ "${FILESDIR}/${P}-set-codeset-for-gettext-to-UTF-8-always.patch"
+}
+
+src_configure() {
+ econf \
+ --disable-static \
+ $(use_enable policykit polkit) \
+ $(use_enable sendto) \
+ --disable-hal \
+ $(use_enable nls)
+}
+
+src_install() {
+ default
+
+ python_convert_shebangs 2.7 "${D}"/usr/bin/blueman-* "${D}/usr/libexec/blueman-mechanism"
+
+ rm "${D}"/$(python_get_sitedir)/*.la
+ use sendto && rm "${D}"/usr/lib*/nautilus-sendto/plugins/*.la
+
+ use gconf || rm "${D}"/$(python_get_sitedir)/${PN}/plugins/config/Gconf.py
+ use policykit || rm -rf "${D}"/usr/share/polkit-1
+ use pulseaudio || rm "${D}"/$(python_get_sitedir)/${PN}/{main/Pulse*.py,plugins/applet/Pulse*.py}
+
+ python_need_rebuild
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ python_mod_optimize ${PN}
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ python_mod_cleanup ${PN}
+ gnome2_icon_cache_update
+}
diff --git a/net-wireless/blueman/blueman-1.98_p20150105.ebuild b/net-wireless/blueman/blueman-1.98_p20150105.ebuild
new file mode 100644
index 000000000000..17d1594baf25
--- /dev/null
+++ b/net-wireless/blueman/blueman-1.98_p20150105.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+inherit eutils python-single-r1 gnome2-utils autotools
+
+DESCRIPTION="GTK+ Bluetooth Manager, designed to be simple and intuitive for everyday bluetooth tasks"
+HOMEPAGE="https://github.com/blueman-project/blueman"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/${PN}-project/${PN}.git"
+ KEYWORDS=""
+else
+ #SRC_URI="http://download.tuxfamily.org/${PN}/${P}.tar.gz"
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~ppc ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="gconf gnome network nls policykit pulseaudio thunar"
+
+CDEPEND="dev-libs/glib:2=
+ x11-libs/gtk+:3=
+ x11-libs/startup-notification:=
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:3
+ >=net-wireless/bluez-4.61:=
+ ${PYTHON_DEPS}"
+DEPEND="${CDEPEND}
+ nls? ( dev-util/intltool sys-devel/gettext )
+ virtual/pkgconfig
+ dev-python/cython[${PYTHON_USEDEP}]"
+RDEPEND="${CDEPEND}
+ >=app-mobilephone/obex-data-server-0.4.4
+ sys-apps/dbus
+ x11-themes/hicolor-icon-theme
+ gconf? ( dev-python/gconf-python[${PYTHON_USEDEP}] )
+ gnome? ( gnome-base/nautilus )
+ network? ( || ( net-dns/dnsmasq
+ net-misc/dhcp
+ >=net-misc/networkmanager-0.8 ) )
+ policykit? ( sys-auth/polkit )
+ pulseaudio? ( media-sound/pulseaudio )
+ !net-wireless/gnome-bluetooth
+ x11-themes/gnome-icon-theme
+ thunar? ( xfce-base/thunar )
+"
+# See bug 455320 and https://github.com/blueman-project/blueman/issues/112 for reason for gnome-icon-theme dep
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+src_prepare() {
+ sed -i \
+ -e '/^Encoding/d' \
+ data/blueman-manager.desktop.in || die "sed failed"
+
+ epatch \
+ "${FILESDIR}/${PN}-9999-plugins-conf-file.patch" \
+ "${FILESDIR}/${P}-set-codeset-for-gettext-to-UTF-8-always.patch"
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --disable-static \
+ $(use_enable policykit polkit) \
+ $(use_enable gnome nautilus-sendto) \
+ $(use_enable nls) \
+ $(use_enable thunar thunar-sendto)
+}
+
+src_install() {
+ default
+
+ python_fix_shebang "${D}"
+
+ rm "${D}"/$(python_get_sitedir)/*.la || die
+ use gnome && { rm "${D}"/usr/lib*/nautilus-sendto/plugins/*.la || die; }
+
+ # Note: Python 3 support would need __pycache__ file removal too
+ use gconf || { rm "${D}"/$(python_get_sitedir)/${PN}/plugins/config/Gconf.py* || die; }
+ use policykit || { rm -rf "${D}"/usr/share/polkit-1 || die; }
+ use pulseaudio || { rm "${D}"/$(python_get_sitedir)/${PN}/{main/Pulse*.py*,plugins/manager/Pulse*.py*} || die; }
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/net-wireless/blueman/blueman-2.0.ebuild b/net-wireless/blueman/blueman-2.0.ebuild
new file mode 100644
index 000000000000..473715688d65
--- /dev/null
+++ b/net-wireless/blueman/blueman-2.0.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+inherit eutils gnome2-utils linux-info python-single-r1
+
+DESCRIPTION="GTK+ Bluetooth Manager, designed to be simple and intuitive for everyday bluetooth tasks"
+HOMEPAGE="https://github.com/blueman-project/blueman"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit autotools git-r3
+ EGIT_REPO_URI="https://github.com/blueman-project/blueman.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://github.com/blueman-project/${PN}/releases/download/${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="appindicator network nls policykit pulseaudio thunar"
+
+COMMON_DEPEND="
+ dev-python/pygobject:3
+ >=net-wireless/bluez-4.61:=
+ ${PYTHON_DEPS}"
+DEPEND="${COMMON_DEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ nls? ( dev-util/intltool sys-devel/gettext )"
+RDEPEND="${COMMON_DEPEND}
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ sys-apps/dbus
+ x11-libs/gtk+:3[introspection]
+ x11-libs/libnotify[introspection]
+ || (
+ x11-themes/faenza-icon-theme
+ x11-themes/gnome-icon-theme
+ x11-themes/mate-icon-theme
+ )
+ appindicator? ( dev-libs/libappindicator:3[introspection] )
+ network? (
+ net-dns/avahi[autoipd]
+ net-firewall/iptables
+ sys-apps/net-tools
+ || (
+ net-dns/dnsmasq
+ net-misc/dhcp
+ >=net-misc/networkmanager-0.8
+ )
+ )
+ policykit? ( sys-auth/polkit )
+ pulseaudio? ( media-sound/pulseaudio[bluetooth] )
+ thunar? ( xfce-base/thunar )
+ !net-wireless/gnome-bluetooth
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+pkg_pretend() {
+ if use network; then
+ local CONFIG_CHECK="~BRIDGE ~IP_NF_IPTABLES
+ ~IP_NF_NAT ~IP_NF_TARGET_MASQUERADE"
+ linux-info_pkg_setup
+ fi
+}
+
+pkg_setup() {
+ pkg_pretend
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${P}-set-codeset-for-gettext-to-UTF-8-always.patch"
+ [[ ${PV} == 9999 ]] && eautoreconf
+}
+
+src_configure() {
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --disable-runtime-deps-check \
+ --disable-static \
+ $(use_enable policykit polkit) \
+ $(use_enable nls) \
+ $(use_enable thunar thunar-sendto)
+}
+
+src_install() {
+ default
+
+ python_fix_shebang "${D}"
+ rm "${D}"/$(python_get_sitedir)/*.la || die
+
+ use appindicator || { rm "${D}"/$(python_get_sitedir)/${PN}/plugins/applet/AppIndicator.py* || die; }
+ use pulseaudio || { rm "${D}"/$(python_get_sitedir)/${PN}/{main/Pulse*.py*,plugins/manager/Pulse*.py*} || die; }
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+ gnome2_schemas_savelist
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+ gnome2_schemas_update
+}
diff --git a/net-wireless/blueman/blueman-9999.ebuild b/net-wireless/blueman/blueman-9999.ebuild
new file mode 100644
index 000000000000..caa2c00d0e8f
--- /dev/null
+++ b/net-wireless/blueman/blueman-9999.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_7,3_4} )
+inherit eutils gnome2-utils linux-info python-single-r1
+
+DESCRIPTION="GTK+ Bluetooth Manager, designed to be simple and intuitive for everyday bluetooth tasks"
+HOMEPAGE="https://github.com/blueman-project/blueman"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit autotools git-r3
+ EGIT_REPO_URI="https://github.com/blueman-project/blueman.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://github.com/blueman-project/${PN}/releases/download/${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~ppc ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="appindicator network nls policykit pulseaudio thunar"
+
+COMMON_DEPEND="
+ dev-python/pygobject:3
+ >=net-wireless/bluez-5:=
+ ${PYTHON_DEPS}"
+DEPEND="${COMMON_DEPEND}
+ dev-python/cython[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ nls? ( dev-util/intltool sys-devel/gettext )"
+RDEPEND="${COMMON_DEPEND}
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ sys-apps/dbus
+ x11-libs/gtk+:3[introspection]
+ x11-libs/libnotify[introspection]
+ || (
+ x11-themes/faenza-icon-theme
+ x11-themes/gnome-icon-theme
+ x11-themes/mate-icon-theme
+ )
+ appindicator? ( dev-libs/libappindicator:3[introspection] )
+ network? (
+ net-dns/avahi[autoipd]
+ net-firewall/iptables
+ sys-apps/net-tools
+ || (
+ net-dns/dnsmasq
+ net-misc/dhcp
+ >=net-misc/networkmanager-0.8
+ )
+ )
+ policykit? ( sys-auth/polkit )
+ pulseaudio? ( media-sound/pulseaudio[bluetooth] )
+ thunar? ( xfce-base/thunar )
+ !net-wireless/gnome-bluetooth
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+pkg_pretend() {
+ if use network; then
+ local CONFIG_CHECK="~BRIDGE ~IP_NF_IPTABLES
+ ~IP_NF_NAT ~IP_NF_TARGET_MASQUERADE"
+ linux-info_pkg_setup
+ fi
+}
+
+pkg_setup() {
+ pkg_pretend
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${PN}-9999-set-codeset-for-gettext-to-UTF-8-always.patch"
+ [[ ${PV} == 9999 ]] && eautoreconf
+}
+
+src_configure() {
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --disable-runtime-deps-check \
+ --disable-static \
+ $(use_enable appindicator) \
+ $(use_enable policykit polkit) \
+ $(use_enable nls) \
+ $(use_enable pulseaudio) \
+ $(use_enable thunar thunar-sendto)
+}
+
+src_install() {
+ default
+
+ python_fix_shebang "${D}"
+ rm "${D}"/$(python_get_sitedir)/*.la || die
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+ gnome2_schemas_savelist
+}
+
+pkg_postinst() {
+ gnome2_icon_cache_update
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+ gnome2_schemas_update
+}
diff --git a/net-wireless/blueman/files/blueman-1.23-fix-broken-status-icon.patch b/net-wireless/blueman/files/blueman-1.23-fix-broken-status-icon.patch
new file mode 100644
index 000000000000..58931eba3982
--- /dev/null
+++ b/net-wireless/blueman/files/blueman-1.23-fix-broken-status-icon.patch
@@ -0,0 +1,34 @@
+From 4588e22cc486cf297517168f52f0274133577827 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tiziano=20M=C3=BCller?= <tm@dev-zero.ch>
+Date: Wed, 13 Jun 2012 09:52:40 +0200
+Subject: [PATCH] fix broken status icon
+
+---
+ blueman/plugins/applet/StatusIcon.py | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/blueman/plugins/applet/StatusIcon.py b/blueman/plugins/applet/StatusIcon.py
+index fb02593..ed352ea 100644
+--- a/blueman/plugins/applet/StatusIcon.py
++++ b/blueman/plugins/applet/StatusIcon.py
+@@ -68,7 +68,7 @@ class StatusIcon(AppletPlugin, gtk.StatusIcon):
+ entry.connect("changed", self.on_entry_changed, ic, image)
+
+ __options__ = {"icon": {"type": str,
+- "default": "blueman-tray",
++ "default": "blueman",
+ "name": _("Icon Name"),
+ "desc": _("Custom icon to use for the notification area"),
+ "decorator": widget_decorator
+@@ -166,7 +166,7 @@ class StatusIcon(AppletPlugin, gtk.StatusIcon):
+ self.QueryVisibility()
+
+ def on_status_icon_resized(self):
+- self.icon = "blueman-tray"
++ self.icon = "blueman"
+
+ #p = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, 22, 22)
+ #p.fill(0)
+--
+1.7.8.6
+
diff --git a/net-wireless/blueman/files/blueman-1.23-plugins-conf-file.patch b/net-wireless/blueman/files/blueman-1.23-plugins-conf-file.patch
new file mode 100644
index 000000000000..80cdad0c9a07
--- /dev/null
+++ b/net-wireless/blueman/files/blueman-1.23-plugins-conf-file.patch
@@ -0,0 +1,30 @@
+diff --git a/blueman/plugins/config/File.py b/blueman/plugins/config/File.py
+index c5414c5..9a9e156 100644
+--- a/blueman/plugins/config/File.py
++++ b/blueman/plugins/config/File.py
+@@ -37,7 +37,12 @@ signal.signal(signal.SIGHUP, sighandler)
+
+ dbus.service.Object.SUPPORTS_MULTIPLE_OBJECT_PATHS = True
+
+-cfg_path = os.path.expanduser('~/.config/blueman/blueman.cfg')
++cfg_dir = os.path.expanduser('~/.config/blueman')
++
++if os.environ.has_key('XDG_CONFIG_HOME'):
++ cfg_dir = '%s/blueman' % os.environ['XDG_CONFIG_HOME']
++
++cfg_path = '%s/blueman.cfg' % cfg_dir
+
+ class Monitor(dbus.service.Object):
+ __id__ = 0
+@@ -89,9 +94,9 @@ class File(ConfigPlugin):
+ def on_load(self, section):
+
+ if not File.__db__:
+- if not os.path.exists(os.path.expanduser('~/.config/blueman')):
++ if not os.path.exists(os.path.expanduser(cfg_dir)):
+ try:
+- os.makedirs(os.path.expanduser('~/.config/blueman'))
++ os.makedirs(os.path.expanduser(cfg_dir))
+ except:
+ pass
+ try:
diff --git a/net-wireless/blueman/files/blueman-1.23-set-codeset-for-gettext-to-UTF-8-always.patch b/net-wireless/blueman/files/blueman-1.23-set-codeset-for-gettext-to-UTF-8-always.patch
new file mode 100644
index 000000000000..a7df10db506e
--- /dev/null
+++ b/net-wireless/blueman/files/blueman-1.23-set-codeset-for-gettext-to-UTF-8-always.patch
@@ -0,0 +1,266 @@
+From f585aea768ad98440d4967894aa9213cea6e6f14 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tiziano=20M=C3=BCller?= <tm@dev-zero.ch>
+Date: Tue, 19 Jun 2012 08:03:47 +0200
+Subject: [PATCH] Set codeset for gettext to UTF-8 always
+
+This fixes a segfault in g_markup_escape_text when loading the UI files
+with a non-UTF-8 locale since GTK+ expects all strings (including translation)
+to be in UTF-8.
+---
+ apps/blueman-adapters | 2 ++
+ apps/blueman-assistant | 2 ++
+ apps/blueman-manager | 2 ++
+ apps/blueman-sendto | 2 ++
+ apps/blueman-services | 2 ++
+ blueman/gui/GsmSettings.py | 2 ++
+ blueman/gui/applet/PluginDialog.py | 2 ++
+ blueman/main/applet/BluezAgent.py | 2 ++
+ blueman/plugins/applet/NetUsage.py | 2 ++
+ blueman/plugins/services/Audio.py | 2 ++
+ blueman/plugins/services/Network.py | 2 ++
+ blueman/plugins/services/Transfer.py | 2 ++
+ 12 files changed, 24 insertions(+), 0 deletions(-)
+
+diff --git a/apps/blueman-adapters b/apps/blueman-adapters
+index 6adc642..51325ad 100755
+--- a/apps/blueman-adapters
++++ b/apps/blueman-adapters
+@@ -26,6 +26,7 @@ import gobject
+ import pango
+ import os.path
+ import sys
++from locale import bind_textdomain_codeset
+
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+@@ -47,6 +48,7 @@ class BluemanAdapters:
+
+ builder = gtk.Builder()
+ builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ builder.add_from_file(UI_PATH +"/adapters.ui")
+ self.dialog = builder.get_object("dialog")
+
+diff --git a/apps/blueman-assistant b/apps/blueman-assistant
+index 32d8bd8..c30f663 100755
+--- a/apps/blueman-assistant
++++ b/apps/blueman-assistant
+@@ -35,6 +35,7 @@ import gtk
+ import random
+ import dbus.glib
+ from optparse import OptionParser
++from locale import bind_textdomain_codeset
+
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+@@ -74,6 +75,7 @@ class Assistant(Agent):
+
+ self.Builder = gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/assistant.ui")
+ self.assistant = self.Builder.get_object("assistant")
+ self.assistant.set_title(_("Bluetooth Assistant"))
+diff --git a/apps/blueman-manager b/apps/blueman-manager
+index e4a04e3..3aeb80f 100755
+--- a/apps/blueman-manager
++++ b/apps/blueman-manager
+@@ -25,6 +25,7 @@ import sys
+ import gtk
+ import dbus, dbus.glib
+ import gobject
++from locale import bind_textdomain_codeset
+
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+@@ -56,6 +57,7 @@ class Blueman:
+
+ self.Builder = gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/manager-main.ui")
+
+ self.window = self.Builder.get_object("window")
+diff --git a/apps/blueman-sendto b/apps/blueman-sendto
+index 72fcfa9..f8c082a 100755
+--- a/apps/blueman-sendto
++++ b/apps/blueman-sendto
+@@ -33,6 +33,7 @@ from optparse import OptionParser
+ import gettext
+ import urllib
+ import time
++from locale import bind_textdomain_codeset
+
+ from blueman.bluez.Adapter import Adapter
+ from blueman.main.Device import Device
+@@ -56,6 +57,7 @@ class Sender(gobject.GObject):
+ gobject.GObject.__init__(self)
+ self.Builder = gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/send-dialog.ui")
+ self.window = self.Builder.get_object("window")
+
+diff --git a/apps/blueman-services b/apps/blueman-services
+index d6d4545..2c15f03 100755
+--- a/apps/blueman-services
++++ b/apps/blueman-services
+@@ -8,6 +8,7 @@ if os.path.exists(os.path.join(_dirname,"ChangeLog")):
+ sys.path.insert(0, _dirname)
+
+ import gtk
++from locale import bind_textdomain_codeset
+ from blueman.gui.GenericList import GenericList
+
+ from blueman.Functions import *
+@@ -25,6 +26,7 @@ class BluemanServices:
+
+ self.Builder = gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/services.ui")
+
+ self.Config = Config()
+diff --git a/blueman/gui/GsmSettings.py b/blueman/gui/GsmSettings.py
+index 2e845ec..b4e1059 100644
+--- a/blueman/gui/GsmSettings.py
++++ b/blueman/gui/GsmSettings.py
+@@ -20,6 +20,7 @@ from blueman.main.Config import Config
+ from blueman.Functions import *
+ from blueman.Constants import *
+ import gtk
++from locale import bind_textdomain_codeset
+
+ class GsmSettings(gtk.Dialog):
+ def __init__(self, bd_address):
+@@ -29,6 +30,7 @@ class GsmSettings(gtk.Dialog):
+
+ self.Builder = gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/gsm-settings.ui")
+
+ vbox = self.Builder.get_object("vbox1")
+diff --git a/blueman/gui/applet/PluginDialog.py b/blueman/gui/applet/PluginDialog.py
+index 1d8cbec..299aa32 100644
+--- a/blueman/gui/applet/PluginDialog.py
++++ b/blueman/gui/applet/PluginDialog.py
+@@ -23,6 +23,7 @@ from blueman.Functions import *
+
+ from blueman.gui.GenericList import GenericList
+ import weakref
++from locale import bind_textdomain_codeset
+
+ class SettingsWidget(gtk.VBox):
+ def __init__(self, inst):
+@@ -118,6 +119,7 @@ class PluginDialog(gtk.Dialog):
+
+ self.Builder = gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/applet-plugins-widget.ui")
+
+ self.set_title(_("Plugins"))
+diff --git a/blueman/main/applet/BluezAgent.py b/blueman/main/applet/BluezAgent.py
+index 9c7f93e..377f84b 100644
+--- a/blueman/main/applet/BluezAgent.py
++++ b/blueman/main/applet/BluezAgent.py
+@@ -24,6 +24,7 @@ from blueman.Functions import get_icon, dprint
+ import gtk
+ import gobject
+ import cgi
++from locale import bind_textdomain_codeset
+ import blueman.bluez as Bluez
+ from blueman.Sdp import *
+ from blueman.Constants import *
+@@ -65,6 +66,7 @@ class CommonAgent(gobject.GObject, Agent):
+ builder = gtk.Builder()
+ builder.add_from_file(UI_PATH +"/applet-passkey.ui")
+ builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ dialog = builder.get_object("dialog")
+
+ dialog.props.icon_name = "blueman"
+diff --git a/blueman/plugins/applet/NetUsage.py b/blueman/plugins/applet/NetUsage.py
+index 0cf15e8..bcebb44 100644
+--- a/blueman/plugins/applet/NetUsage.py
++++ b/blueman/plugins/applet/NetUsage.py
+@@ -33,6 +33,7 @@ import dbus
+ import time
+ import datetime
+ import gettext
++from locale import bind_textdomain_codeset
+
+ class MonitorBase(gobject.GObject):
+ __gsignals__ = {
+@@ -146,6 +147,7 @@ class Dialog:
+ builder = gtk.Builder()
+ builder.add_from_file(UI_PATH + "/net-usage.ui")
+ builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+
+ self.dialog = builder.get_object("dialog")
+ self.dialog.connect("response", self.on_response)
+diff --git a/blueman/plugins/services/Audio.py b/blueman/plugins/services/Audio.py
+index a725923..6a67fb0 100644
+--- a/blueman/plugins/services/Audio.py
++++ b/blueman/plugins/services/Audio.py
+@@ -19,6 +19,7 @@
+
+ import gtk
+ import dbus
++from locale import bind_textdomain_codeset
+ from blueman.Constants import *
+ from blueman.plugins.ServicePlugin import ServicePlugin
+
+@@ -35,6 +36,7 @@ class Audio(ServicePlugin):
+
+ self.Builder = gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/services-audio.ui")
+ self.widget = self.Builder.get_object("audio")
+
+diff --git a/blueman/plugins/services/Network.py b/blueman/plugins/services/Network.py
+index d7b9f45..fc8a8f4 100644
+--- a/blueman/plugins/services/Network.py
++++ b/blueman/plugins/services/Network.py
+@@ -18,6 +18,7 @@
+ #
+
+ import gtk
++from locale import bind_textdomain_codeset
+ from blueman.Constants import *
+ from blueman.Functions import have, dprint, mask_ip4_address
+ from blueman.Lib import get_net_interfaces, get_net_address, get_net_netmask
+@@ -36,6 +37,7 @@ class Network(ServicePlugin):
+
+ self.Builder = gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/services-network.ui")
+ self.widget = self.Builder.get_object("network")
+
+diff --git a/blueman/plugins/services/Transfer.py b/blueman/plugins/services/Transfer.py
+index d8ba6be..5dd44f0 100644
+--- a/blueman/plugins/services/Transfer.py
++++ b/blueman/plugins/services/Transfer.py
+@@ -18,6 +18,7 @@
+ #
+
+ import gtk
++from locale import bind_textdomain_codeset
+ from blueman.Constants import *
+ from blueman.plugins.ServicePlugin import ServicePlugin
+
+@@ -32,6 +33,7 @@ class Transfer(ServicePlugin):
+
+ self.Builder = gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/services-transfer.ui")
+ self.widget = self.Builder.get_object("transfer")
+
+--
+1.7.8.6
+
diff --git a/net-wireless/blueman/files/blueman-1.98_p20150105-set-codeset-for-gettext-to-UTF-8-always.patch b/net-wireless/blueman/files/blueman-1.98_p20150105-set-codeset-for-gettext-to-UTF-8-always.patch
new file mode 100644
index 000000000000..ce341c866cd9
--- /dev/null
+++ b/net-wireless/blueman/files/blueman-1.98_p20150105-set-codeset-for-gettext-to-UTF-8-always.patch
@@ -0,0 +1,239 @@
+diff --git a/apps/blueman-adapters b/apps/blueman-adapters
+index ed80a4f..9f27b9e 100755
+--- a/apps/blueman-adapters
++++ b/apps/blueman-adapters
+@@ -6,6 +6,7 @@ from gi.repository import Pango
+ import os.path
+ import sys
+ import signal
++from locale import bind_textdomain_codeset
+
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+@@ -34,6 +35,7 @@ class BluemanAdapters:
+
+ builder = Gtk.Builder()
+ builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ builder.add_from_file(UI_PATH + "/adapters.ui")
+ self.dialog = builder.get_object("dialog")
+
+diff --git a/apps/blueman-assistant b/apps/blueman-assistant
+index 7e602c8..fab3355 100755
+--- a/apps/blueman-assistant
++++ b/apps/blueman-assistant
+@@ -16,6 +16,7 @@ import random
+ import signal
+ import dbus.glib
+ from optparse import OptionParser
++from locale import bind_textdomain_codeset
+
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+@@ -62,6 +63,7 @@ class Assistant:
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/assistant.ui")
+ self.assistant = self.Builder.get_object("assistant")
+ self.assistant.set_title(_("Bluetooth Assistant"))
+diff --git a/apps/blueman-manager b/apps/blueman-manager
+index b152044..395257b 100755
+--- a/apps/blueman-manager
++++ b/apps/blueman-manager
+@@ -7,6 +7,7 @@ import dbus, dbus.glib
+ from blueman.Constants import *
+ import gi
+ gi.require_version("Gtk", "3.0")
++from locale import bind_textdomain_codeset
+ from gi.repository import Gtk
+ from gi.repository import GObject
+ from blueman.bluez.BlueZInterface import BlueZInterface
+@@ -43,6 +44,7 @@ class Blueman:
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/manager-main.ui")
+
+ self.window = self.Builder.get_object("window")
+diff --git a/apps/blueman-sendto b/apps/blueman-sendto
+index 852f99a..fdbff01 100755
+--- a/apps/blueman-sendto
++++ b/apps/blueman-sendto
+@@ -13,6 +13,7 @@ from optparse import OptionParser
+ import gettext
+ import urllib
+ import time
++from locale import bind_textdomain_codeset
+
+ from blueman.Constants import *
+ import gi
+@@ -46,6 +47,7 @@ class Sender(GObject.GObject):
+ GObject.GObject.__init__(self)
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/send-dialog.ui")
+ self.window = self.Builder.get_object("window")
+
+diff --git a/apps/blueman-services b/apps/blueman-services
+index 25a529b..4b4419c 100755
+--- a/apps/blueman-services
++++ b/apps/blueman-services
+@@ -2,6 +2,7 @@
+
+ import os
+ import sys
++from locale import bind_textdomain_codeset
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+ if os.path.exists(os.path.join(_dirname, "CHANGELOG.md")):
+@@ -29,6 +30,7 @@ class BluemanServices:
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/services.ui")
+
+ self.Config = Config()
+diff --git a/blueman/gui/GsmSettings.py b/blueman/gui/GsmSettings.py
+index ee07e62..e58277b 100644
+--- a/blueman/gui/GsmSettings.py
++++ b/blueman/gui/GsmSettings.py
+@@ -21,6 +21,7 @@ from blueman.Functions import *
+ from blueman.Constants import *
+
+ from gi.repository import Gtk
++from locale import bind_textdomain_codeset
+
+ class GsmSettings(Gtk.Dialog):
+ def __init__(self, bd_address):
+@@ -30,6 +31,7 @@ class GsmSettings(Gtk.Dialog):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/gsm-settings.ui")
+
+ vbox = self.Builder.get_object("vbox1")
+diff --git a/blueman/gui/applet/PluginDialog.py b/blueman/gui/applet/PluginDialog.py
+index f994cc9..84d6370 100644
+--- a/blueman/gui/applet/PluginDialog.py
++++ b/blueman/gui/applet/PluginDialog.py
+@@ -23,6 +23,7 @@ from blueman.Functions import *
+
+ from blueman.gui.GenericList import GenericList
+ import weakref
++from locale import bind_textdomain_codeset
+
+ class SettingsWidget(Gtk.VBox):
+ def __init__(self, inst):
+@@ -118,6 +119,7 @@ class PluginDialog(Gtk.Dialog):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/applet-plugins-widget.ui")
+
+ self.set_title(_("Plugins"))
+diff --git a/blueman/main/applet/BluezAgent.py b/blueman/main/applet/BluezAgent.py
+index 072958d..207659c 100644
+--- a/blueman/main/applet/BluezAgent.py
++++ b/blueman/main/applet/BluezAgent.py
+@@ -7,6 +7,7 @@ from gi.repository import Gtk
+ from gi.repository import GObject
+ from gi.types import GObjectMeta
+ import cgi
++from locale import bind_textdomain_codeset
+ import blueman.bluez as Bluez
+ from blueman.Sdp import *
+ from blueman.Constants import *
+@@ -50,6 +51,7 @@ class CommonAgent(GObject.GObject, Agent):
+ editable.stop_emission("insert-text")
+
+ builder = Gtk.Builder()
++ bind_textdomain_codeset("blueman", "UTF-8")
+ builder.add_from_file(UI_PATH + "/applet-passkey.ui")
+ builder.set_translation_domain("blueman")
+ dialog = builder.get_object("dialog")
+diff --git a/blueman/plugins/applet/NetUsage.py b/blueman/plugins/applet/NetUsage.py
+index 9fd93c7..d6bc492 100644
+--- a/blueman/plugins/applet/NetUsage.py
++++ b/blueman/plugins/applet/NetUsage.py
+@@ -17,7 +17,7 @@ import dbus
+ import time
+ import datetime
+ import gettext
+-
++from locale import bind_textdomain_codeset
+
+ class MonitorBase(GObject.GObject):
+ __gsignals__ = {
+@@ -134,6 +134,7 @@ class Dialog:
+ builder = Gtk.Builder()
+ builder.add_from_file(UI_PATH + "/net-usage.ui")
+ builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+
+ self.dialog = builder.get_object("dialog")
+ self.dialog.connect("response", self.on_response)
+diff --git a/blueman/plugins/services/Audio.py b/blueman/plugins/services/Audio.py
+index b44d6b5..4b13e8f 100644
+--- a/blueman/plugins/services/Audio.py
++++ b/blueman/plugins/services/Audio.py
+@@ -19,6 +19,7 @@
+
+ from gi.repository import Gtk
+ import dbus
++from locale import bind_textdomain_codeset
+ from blueman.Constants import *
+ from blueman.plugins.ServicePlugin import ServicePlugin
+
+@@ -35,6 +36,7 @@ class Audio(ServicePlugin):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/services-audio.ui")
+ self.widget = self.Builder.get_object("audio")
+
+diff --git a/blueman/plugins/services/Network.py b/blueman/plugins/services/Network.py
+index 5fab49a..0dd88d9 100644
+--- a/blueman/plugins/services/Network.py
++++ b/blueman/plugins/services/Network.py
+@@ -18,6 +18,7 @@
+ #
+
+ from gi.repository import Gtk
++from locale import bind_textdomain_codeset
+ from blueman.Constants import *
+ from blueman.Functions import have, dprint, mask_ip4_address
+ from blueman.Lib import get_net_interfaces, get_net_address, get_net_netmask
+@@ -36,6 +37,7 @@ class Network(ServicePlugin):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH +"/services-network.ui")
+ self.widget = self.Builder.get_object("network")
+
+diff --git a/blueman/plugins/services/Transfer.py b/blueman/plugins/services/Transfer.py
+index 189d0cc..8fa65d0 100644
+--- a/blueman/plugins/services/Transfer.py
++++ b/blueman/plugins/services/Transfer.py
+@@ -1,4 +1,5 @@
+ from gi.repository import Gtk
++from locale import bind_textdomain_codeset
+ from blueman.Constants import *
+ from blueman.plugins.ServicePlugin import ServicePlugin
+
+@@ -14,6 +15,7 @@ class Transfer(ServicePlugin):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/services-transfer.ui")
+ self.widget = self.Builder.get_object("transfer")
+
diff --git a/net-wireless/blueman/files/blueman-2.0-set-codeset-for-gettext-to-UTF-8-always.patch b/net-wireless/blueman/files/blueman-2.0-set-codeset-for-gettext-to-UTF-8-always.patch
new file mode 100644
index 000000000000..02747d178d36
--- /dev/null
+++ b/net-wireless/blueman/files/blueman-2.0-set-codeset-for-gettext-to-UTF-8-always.patch
@@ -0,0 +1,219 @@
+From aebfe594584e7c5cca30062d643618fc2ab8144b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sun, 1 Mar 2015 23:08:02 +0100
+Subject: [PATCH] set codeset for gettext to utf-8
+
+---
+ apps/blueman-adapters | 2 ++
+ apps/blueman-assistant | 2 ++
+ apps/blueman-manager | 2 ++
+ apps/blueman-sendto | 2 ++
+ apps/blueman-services | 2 ++
+ blueman/gui/GsmSettings.py | 2 ++
+ blueman/gui/applet/PluginDialog.py | 4 +++-
+ blueman/plugins/applet/NetUsage.py | 3 ++-
+ blueman/plugins/services/Network.py | 3 ++-
+ blueman/plugins/services/Transfer.py | 2 ++
+ 11 files changed, 29 insertions(+), 6 deletions(-)
+
+diff --git a/apps/blueman-adapters b/apps/blueman-adapters
+index a961480..3759ba8 100755
+--- a/apps/blueman-adapters
++++ b/apps/blueman-adapters
+@@ -6,6 +6,7 @@ from gi.repository import Pango
+ import os.path
+ import sys
+ import signal
++from locale import bind_textdomain_codeset
+
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+@@ -36,6 +37,7 @@ class BluemanAdapters:
+
+ builder = Gtk.Builder()
+ builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ builder.add_from_file(UI_PATH + "/adapters.ui")
+ self.dialog = builder.get_object("dialog")
+
+diff --git a/apps/blueman-assistant b/apps/blueman-assistant
+index 7d96ec7..c322256 100755
+--- a/apps/blueman-assistant
++++ b/apps/blueman-assistant
+@@ -16,6 +16,7 @@ import random
+ import signal
+ import dbus.glib
+ from optparse import OptionParser
++from locale import bind_textdomain_codeset
+
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+@@ -62,6 +63,7 @@ class Assistant:
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/assistant.ui")
+ self.assistant = self.Builder.get_object("assistant")
+ self.assistant.set_title(_("Bluetooth Assistant"))
+diff --git a/apps/blueman-manager b/apps/blueman-manager
+index 666f16c..af23015 100755
+--- a/apps/blueman-manager
++++ b/apps/blueman-manager
+@@ -8,6 +8,7 @@ from dbus.mainloop.glib import DBusGMainLoop
+ from blueman.Constants import *
+ import gi
+ gi.require_version("Gtk", "3.0")
++from locale import bind_textdomain_codeset
+ from gi.repository import Gtk
+ from gi.repository import GObject
+ from blueman.bluez.BlueZInterface import BlueZInterface
+@@ -46,6 +47,7 @@ class Blueman:
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/manager-main.ui")
+
+ self.window = self.Builder.get_object("window")
+diff --git a/apps/blueman-sendto b/apps/blueman-sendto
+index 06ad626..a7099ab 100755
+--- a/apps/blueman-sendto
++++ b/apps/blueman-sendto
+@@ -13,6 +13,7 @@ from optparse import OptionParser
+ import gettext
+ import urllib
+ import time
++from locale import bind_textdomain_codeset
+
+ from blueman.Constants import *
+ import gi
+@@ -48,6 +49,7 @@ class Sender(GObject.GObject):
+ GObject.GObject.__init__(self)
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/send-dialog.ui")
+ self.window = self.Builder.get_object("window")
+
+diff --git a/apps/blueman-services b/apps/blueman-services
+index fb1428d..e3e708b 100755
+--- a/apps/blueman-services
++++ b/apps/blueman-services
+@@ -2,6 +2,7 @@
+
+ import os
+ import sys
++from locale import bind_textdomain_codeset
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+ if os.path.exists(os.path.join(_dirname, "CHANGELOG.md")):
+@@ -29,6 +30,7 @@ class BluemanServices:
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/services.ui")
+
+ self.Config = Config()
+diff --git a/blueman/gui/GsmSettings.py b/blueman/gui/GsmSettings.py
+index b12f77f..cc80492 100644
+--- a/blueman/gui/GsmSettings.py
++++ b/blueman/gui/GsmSettings.py
+@@ -3,6 +3,7 @@ from blueman.Functions import *
+ from blueman.Constants import *
+
+ from gi.repository import Gtk
++from locale import bind_textdomain_codeset
+
+
+ class GsmSettings(Gtk.Dialog):
+@@ -13,6 +14,7 @@ class GsmSettings(Gtk.Dialog):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/gsm-settings.ui")
+
+ vbox = self.Builder.get_object("vbox1")
+diff --git a/blueman/gui/applet/PluginDialog.py b/blueman/gui/applet/PluginDialog.py
+index 71dd742..3a1f932 100644
+--- a/blueman/gui/applet/PluginDialog.py
++++ b/blueman/gui/applet/PluginDialog.py
+@@ -1,4 +1,5 @@
+ from gi.repository import Gtk
++from locale import bind_textdomain_codeset
+ from blueman.Constants import *
+ from blueman.Functions import *
+
+@@ -97,7 +98,8 @@ class PluginDialog(Gtk.Dialog):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
+- self.Builder.add_from_file(UI_PATH + "/applet-plugins-widget.ui")
++ bind_textdomain_codeset("blueman", "UTF-8")
++ self.Builder.add_from_file(UI_PATH + "/applet-plugins-widget.ui")
+
+ self.set_title(_("Plugins"))
+ self.props.icon_name = "blueman"
+diff --git a/blueman/plugins/applet/NetUsage.py b/blueman/plugins/applet/NetUsage.py
+index f6acb1f..5545112 100644
+--- a/blueman/plugins/applet/NetUsage.py
++++ b/blueman/plugins/applet/NetUsage.py
+@@ -17,7 +17,7 @@ import dbus
+ import time
+ import datetime
+ import gettext
+-
++from locale import bind_textdomain_codeset
+
+ class MonitorBase(GObject.GObject):
+ __gsignals__ = {
+@@ -134,6 +134,7 @@ class Dialog:
+ builder = Gtk.Builder()
+ builder.add_from_file(UI_PATH + "/net-usage.ui")
+ builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+
+ self.dialog = builder.get_object("dialog")
+ self.dialog.connect("response", self.on_response)
+diff --git a/blueman/plugins/services/Network.py b/blueman/plugins/services/Network.py
+index 278121e..e688e68 100644
+--- a/blueman/plugins/services/Network.py
++++ b/blueman/plugins/services/Network.py
+@@ -1,4 +1,5 @@
+ from gi.repository import Gtk
++from locale import bind_textdomain_codeset
+ from blueman.Constants import *
+ from blueman.Functions import have, dprint, mask_ip4_address
+ from blueman.Lib import get_net_interfaces, get_net_address, get_net_netmask
+@@ -19,7 +20,7 @@ class Network(ServicePlugin):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
+- self.Builder.add_from_file(UI_PATH + "/services-network.ui")
++ bind_textdomain_codeset("blueman", "UTF-8") self.Builder.add_from_file(UI_PATH + "/services-network.ui")
+ self.widget = self.Builder.get_object("network")
+
+ self.ignored_keys = []
+diff --git a/blueman/plugins/services/Transfer.py b/blueman/plugins/services/Transfer.py
+index d14d0eb..c3e71ad 100644
+--- a/blueman/plugins/services/Transfer.py
++++ b/blueman/plugins/services/Transfer.py
+@@ -1,4 +1,5 @@
+ from gi.repository import Gtk
++from locale import bind_textdomain_codeset
+ from blueman.Constants import *
+ from blueman.plugins.ServicePlugin import ServicePlugin
+
+@@ -14,6 +15,7 @@ class Transfer(ServicePlugin):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/services-transfer.ui")
+ self.widget = self.Builder.get_object("transfer")
+
+--
+2.3.1
+
diff --git a/net-wireless/blueman/files/blueman-9999-set-codeset-for-gettext-to-UTF-8-always.patch b/net-wireless/blueman/files/blueman-9999-set-codeset-for-gettext-to-UTF-8-always.patch
new file mode 100644
index 000000000000..fa536b27c429
--- /dev/null
+++ b/net-wireless/blueman/files/blueman-9999-set-codeset-for-gettext-to-UTF-8-always.patch
@@ -0,0 +1,267 @@
+From a28a982ba05a3b84dcfed43e5bd6801067b5d0c5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 8 Aug 2015 14:57:51 +0200
+Subject: [PATCH] Always set codeset for gettext to utf8
+
+---
+ apps/blueman-adapters | 2 ++
+ apps/blueman-assistant | 2 ++
+ apps/blueman-manager | 2 ++
+ apps/blueman-sendto | 2 ++
+ apps/blueman-services | 2 ++
+ blueman/gui/GsmSettings.py | 3 +++
+ blueman/gui/applet/PluginDialog.py | 3 +++
+ blueman/gui/manager/ManagerDeviceMenu.py | 2 ++
+ blueman/main/applet/BluezAgent.py | 2 ++
+ blueman/plugins/applet/NetUsage.py | 3 ++-
+ blueman/plugins/services/Network.py | 2 ++
+ blueman/plugins/services/Transfer.py | 3 +++
+ 12 files changed, 27 insertions(+), 1 deletion(-)
+
+diff --git a/apps/blueman-adapters b/apps/blueman-adapters
+index 4ac81fe..c8d8c06 100755
+--- a/apps/blueman-adapters
++++ b/apps/blueman-adapters
+@@ -11,6 +11,7 @@ from gi.repository import Pango
+ import os.path
+ import sys
+ import signal
++from locale import bind_textdomain_codeset
+
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+@@ -40,6 +41,7 @@ class BluemanAdapters:
+
+ builder = Gtk.Builder()
+ builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ builder.add_from_file(UI_PATH + "/adapters.ui")
+ self.dialog = builder.get_object("dialog")
+
+diff --git a/apps/blueman-assistant b/apps/blueman-assistant
+index 0b8544b..b23150f 100755
+--- a/apps/blueman-assistant
++++ b/apps/blueman-assistant
+@@ -19,6 +19,7 @@ import os
+ import sys
+ import signal
+ from optparse import OptionParser
++from locale import bind_textdomain_codeset
+
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+@@ -60,6 +61,7 @@ class Assistant:
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/assistant.ui")
+ self.assistant = self.Builder.get_object("assistant")
+ self.assistant.set_title(_("Bluetooth Assistant"))
+diff --git a/apps/blueman-manager b/apps/blueman-manager
+index d276692..e272528 100755
+--- a/apps/blueman-manager
++++ b/apps/blueman-manager
+@@ -14,6 +14,7 @@ from blueman.Constants import *
+ import gi
+ gi.require_version("Gtk", "3.0")
+ from gi.repository import Gtk
++from locale import bind_textdomain_codeset
+
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+@@ -47,6 +48,7 @@ class Blueman:
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/manager-main.ui")
+
+ self.window = self.Builder.get_object("window")
+diff --git a/apps/blueman-sendto b/apps/blueman-sendto
+index 54e30b4..3f99d1e 100755
+--- a/apps/blueman-sendto
++++ b/apps/blueman-sendto
+@@ -17,6 +17,7 @@ from optparse import OptionParser
+ import gettext
+ import urllib
+ import time
++from locale import bind_textdomain_codeset
+
+ from blueman.Constants import *
+ import gi
+@@ -52,6 +53,7 @@ class Sender(GObject.GObject):
+ GObject.GObject.__init__(self)
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/send-dialog.ui")
+ self.window = self.Builder.get_object("window")
+
+diff --git a/apps/blueman-services b/apps/blueman-services
+index 3e343ca..5e41261 100755
+--- a/apps/blueman-services
++++ b/apps/blueman-services
+@@ -7,6 +7,7 @@ from __future__ import unicode_literals
+
+ import os
+ import sys
++from locale import bind_textdomain_codeset
+ #support running uninstalled
+ _dirname = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+ if os.path.exists(os.path.join(_dirname, "CHANGELOG.md")):
+@@ -35,6 +36,7 @@ class BluemanServices:
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/services.ui")
+
+ self.Config = Config("org.blueman.general")
+diff --git a/blueman/gui/GsmSettings.py b/blueman/gui/GsmSettings.py
+index 2919a69..3cb7057 100644
+--- a/blueman/gui/GsmSettings.py
++++ b/blueman/gui/GsmSettings.py
+@@ -3,6 +3,8 @@ from __future__ import division
+ from __future__ import absolute_import
+ from __future__ import unicode_literals
+
++from locale import bind_textdomain_codeset
++
+ from blueman.main.Config import Config
+ from blueman.Functions import *
+ from blueman.Constants import *
+@@ -20,6 +22,7 @@ class GsmSettings(Gtk.Dialog):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/gsm-settings.ui")
+
+ vbox = self.Builder.get_object("vbox1")
+diff --git a/blueman/gui/applet/PluginDialog.py b/blueman/gui/applet/PluginDialog.py
+index eb70b45..def7e48 100644
+--- a/blueman/gui/applet/PluginDialog.py
++++ b/blueman/gui/applet/PluginDialog.py
+@@ -3,6 +3,8 @@ from __future__ import division
+ from __future__ import absolute_import
+ from __future__ import unicode_literals
+
++from locale import bind_textdomain_codeset
++
+ import gi
+ gi.require_version("Gtk", "3.0")
+ from gi.repository import Gtk
+@@ -105,6 +107,7 @@ class PluginDialog(Gtk.Dialog):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/applet-plugins-widget.ui")
+
+ self.set_title(_("Plugins"))
+diff --git a/blueman/gui/manager/ManagerDeviceMenu.py b/blueman/gui/manager/ManagerDeviceMenu.py
+index f0dea5a..031b456 100644
+--- a/blueman/gui/manager/ManagerDeviceMenu.py
++++ b/blueman/gui/manager/ManagerDeviceMenu.py
+@@ -3,6 +3,7 @@ from __future__ import division
+ from __future__ import absolute_import
+ from __future__ import unicode_literals
+
++from locale import bind_textdomain_codeset
+ from operator import itemgetter
+ from blueman.Sdp import uuid128_to_uuid16, SERIAL_PORT_SVCLASS_ID, OBEX_OBJPUSH_SVCLASS_ID, OBEX_FILETRANS_SVCLASS_ID
+ from blueman.Functions import *
+@@ -312,6 +313,7 @@ class ManagerDeviceMenu(Gtk.Menu):
+
+ builder = Gtk.Builder()
+ builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ builder.add_from_file(UI_PATH + "/rename-device.ui")
+ dialog = builder.get_object("dialog")
+ dialog.set_transient_for(self.Blueman.window)
+diff --git a/blueman/main/applet/BluezAgent.py b/blueman/main/applet/BluezAgent.py
+index f49946d..e930963 100644
+--- a/blueman/main/applet/BluezAgent.py
++++ b/blueman/main/applet/BluezAgent.py
+@@ -6,6 +6,7 @@ from __future__ import unicode_literals
+ import dbus
+ from dbus.mainloop.glib import DBusGMainLoop
+ import dbus.service
++from locale import bind_textdomain_codeset
+ from blueman.Functions import get_icon, dprint
+
+ import gi
+@@ -68,6 +69,7 @@ class BluezAgent(_GObjectAgent, Agent, GObject.GObject):
+ builder = Gtk.Builder()
+ builder.add_from_file(UI_PATH + "/applet-passkey.ui")
+ builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ dialog = builder.get_object("dialog")
+
+ dialog.props.icon_name = "blueman"
+diff --git a/blueman/plugins/applet/NetUsage.py b/blueman/plugins/applet/NetUsage.py
+index 1f3ad04..a498f98 100644
+--- a/blueman/plugins/applet/NetUsage.py
++++ b/blueman/plugins/applet/NetUsage.py
+@@ -24,7 +24,7 @@ import dbus
+ import time
+ import datetime
+ import gettext
+-
++from locale import bind_textdomain_codeset
+
+ class MonitorBase(GObject.GObject):
+ __gsignals__ = {
+@@ -135,6 +135,7 @@ class Dialog:
+ builder = Gtk.Builder()
+ builder.add_from_file(UI_PATH + "/net-usage.ui")
+ builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+
+ self.dialog = builder.get_object("dialog")
+ self.dialog.connect("response", self.on_response)
+diff --git a/blueman/plugins/services/Network.py b/blueman/plugins/services/Network.py
+index 59e1da3..f36691a 100644
+--- a/blueman/plugins/services/Network.py
++++ b/blueman/plugins/services/Network.py
+@@ -18,6 +18,7 @@ from blueman.main.Mechanism import Mechanism
+ from blueman.main.AppletService import AppletService
+ from blueman.gui.Dialogs import NetworkErrorDialog
+ from random import randint
++from locale import bind_textdomain_codeset
+
+
+ class Network(ServicePlugin):
+@@ -27,6 +28,7 @@ class Network(ServicePlugin):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/services-network.ui")
+ self.widget = self.Builder.get_object("network")
+
+diff --git a/blueman/plugins/services/Transfer.py b/blueman/plugins/services/Transfer.py
+index 61b9db1..4474e93 100644
+--- a/blueman/plugins/services/Transfer.py
++++ b/blueman/plugins/services/Transfer.py
+@@ -3,6 +3,8 @@ from __future__ import division
+ from __future__ import absolute_import
+ from __future__ import unicode_literals
+
++from locale import bind_textdomain_codeset
++
+ import gi
+ gi.require_version("Gtk", "3.0")
+ from gi.repository import Gtk
+@@ -21,6 +23,7 @@ class Transfer(ServicePlugin):
+
+ self.Builder = Gtk.Builder()
+ self.Builder.set_translation_domain("blueman")
++ bind_textdomain_codeset("blueman", "UTF-8")
+ self.Builder.add_from_file(UI_PATH + "/services-transfer.ui")
+ self.widget = self.Builder.get_object("transfer")
+
+--
+2.5.0
+
diff --git a/net-wireless/blueman/metadata.xml b/net-wireless/blueman/metadata.xml
new file mode 100644
index 000000000000..555ea971ea87
--- /dev/null
+++ b/net-wireless/blueman/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>dev-zero@gentoo.org</email>
+ </maintainer>
+ <maintainer>
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <use>
+ <flag name="appindicator">Enable usage of <pkg>dev-libs/libappindicator</pkg> to export menu options</flag>
+ <flag name="gconf">Enable the GConf configuration backend</flag>
+ <flag name="network">Add functionality to setup (host) PAN connections using either <pkg>net-dns/dnsmasq</pkg> or <pkg>net-misc/dhcp</pkg></flag>
+ <flag name="sendto">Install the sendto-plugin for <pkg>gnome-base/nautilus</pkg></flag>
+ <flag name="gnome">Install the sendto-plugin for <pkg>gnome-base/nautilus</pkg></flag>
+ <flag name="thunar">Install the sendto-plugin for <pkg>xfce-base/thunar</pkg></flag>
+ </use>
+</pkgmetadata>
diff --git a/net-wireless/bluez-hcidump/Manifest b/net-wireless/bluez-hcidump/Manifest
new file mode 100644
index 000000000000..80907a48a87a
--- /dev/null
+++ b/net-wireless/bluez-hcidump/Manifest
@@ -0,0 +1 @@
+DIST bluez-hcidump-2.5.tar.xz 157072 SHA256 c2caf88c48c8fdfa1057decd7a33ee5581625cac0f28dc3cfaa5f3de5985332b SHA512 20e05bba1ea53fa774311fb0c24263c8837818b598ea8519539d0792cad7888330feb5c717c327630d6f6985eb0813de99a30994c3ef108fa128b484487ea3f2 WHIRLPOOL 579e1d5b9f86fea1df147910891992813548b29eee7be4067165a77e5126130f74ee69d9104e3233baa7e86382bc558658423f8cf1eb4a8d582312a8041eb186
diff --git a/net-wireless/bluez-hcidump/bluez-hcidump-2.5.ebuild b/net-wireless/bluez-hcidump/bluez-hcidump-2.5.ebuild
new file mode 100644
index 000000000000..5b9662939dd5
--- /dev/null
+++ b/net-wireless/bluez-hcidump/bluez-hcidump-2.5.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Bluetooth HCI packet analyzer"
+HOMEPAGE="http://www.bluez.org/"
+SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm hppa ppc ppc64 x86"
+IUSE=""
+
+RDEPEND=">=net-wireless/bluez-4.98"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ app-arch/xz-utils"
diff --git a/net-wireless/bluez-hcidump/metadata.xml b/net-wireless/bluez-hcidump/metadata.xml
new file mode 100644
index 000000000000..8a0f59154c4c
--- /dev/null
+++ b/net-wireless/bluez-hcidump/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>pacho@gentoo.org</email>
+ <name>Pacho Ramos</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
new file mode 100644
index 000000000000..08cbee844ad3
--- /dev/null
+++ b/net-wireless/bluez/Manifest
@@ -0,0 +1,5 @@
+DIST bluez-4.101-patches.tar.xz 12380 SHA256 ea4b837245080ebe904fe4f338cd3c8c1370e197cdfbcd42bd55430c940b5e13 SHA512 0ef3219ed923a0880b2fe7008c36c185ff631a8fe1b357cc3612888817d9a7eaa6624bd31ed00a8bbbb6739528cb777a0b9900a7db4930482d1cbc38417b89aa WHIRLPOOL b89729b2cb1ecd6c816210682605b275af396af056e85d9a8671192ede0470002c1f61931781f27ad988ce8bc137f69a6725008a5ea9fe743ae41bc2f5edc7e8
+DIST bluez-4.101.tar.xz 887236 SHA256 41f9578bef39b8c94a2d6ddeaa556afd22d136936d0f03100e422fe970a45a7d SHA512 c8a88fa6948e43c81687047856806c9dc576d3223371947b496f228dec2b2614d1c5a8ff587e9f26eec44843a50503c55861f9fa736fdba43b2364f663f0cb0d WHIRLPOOL 0c4f163e4f4d0ba8f7928f5330ac3fd5f204c299346c59e73b64ebb331b0887a2b01e8ed6f4e6ae91f826a0431df4f97fe3a0900fa6013ae66fd755aaa136196
+DIST bluez-5.25.tar.xz 1479312 SHA256 5ca62f3f45e2638a0f7a81658d6c8813ee01487436ae8e53e9fe395e23d1fd30 SHA512 2e13c552e771a9066c3170dfca43cca8a16b3afa3580b90ff065301e3a85d35ac47b145f5aa4db42001c466675994e9115d5c1909b7abe76c381114b7f4d872a WHIRLPOOL 28dfe9e7a6eb9a1cb81001f7183a26b3a3cf8d6383b4c6d17e0b851eeb87497e23c8262a07564cb1cc0fcec128627503ff266d17c86c7ebd8906b9c714dc5df1
+DIST bluez-5.32.tar.xz 1634844 SHA256 fe4f35e701cbec04478818adf014ed9bbd1f7d11e2603370f1b70a78106f57f7 SHA512 718d0e1132123b67acaf0cf91aaf0add1e56b5b79fbb3cc4a72299c6ae00bfab6e0096463969b6bc27fdbeb18d4b62823d59356f6ff661b0bbe2df8205775f28 WHIRLPOOL 9e45d2bc4f65f15a9f2fe01edb90411918d2787b1008859a08894a4330170901ecd02aa0d8c5ab8d0866c316272c4605b8ecb40a0d91596a059dbb16b34ed26d
+DIST bluez-5.33.tar.xz 1636808 SHA256 1801807a13506678cbfeb15c6a4b89ecb5739efe1067eb464da6641d731436d3 SHA512 6b91b7d232c2654985b4777162e14a750b2840ec8bea7f913fc22bb63c5b767f6e8a7c39645cc7d583f17c993bd772f836bf0ab491eb5c75950c08dd9291a3da WHIRLPOOL cf176fabc4689c6e0233005a95731977e177eefb84c1652cbb0ca70a6a484366c7f4c95f3086652a8e3f6ccc023f741cbf930844265cf7090685863dc38fc105
diff --git a/net-wireless/bluez/bluez-4.101-r9.ebuild b/net-wireless/bluez/bluez-4.101-r9.ebuild
new file mode 100644
index 000000000000..c0291711a18e
--- /dev/null
+++ b/net-wireless/bluez/bluez-4.101-r9.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+inherit autotools eutils multilib python-single-r1 readme.gentoo \
+ systemd user multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org/"
+SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz
+ http://dev.gentoo.org/~pacho/bluez/${P}-patches.tar.xz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 arm hppa ppc ppc64 x86"
+IUSE="alsa cups debug gstreamer hid2hci pcmcia readline selinux test-programs usb"
+
+REQUIRED_USE="test-programs? ( ${PYTHON_REQUIRED_USE} )"
+
+# TODO: revisit USE=gstreamer once gstreamer is ported to multilib
+
+CDEPEND="
+ >=dev-libs/glib-2.28:2
+ >=sys-apps/dbus-1.6:=
+ >=sys-apps/hwids-20121202.2
+ >=virtual/udev-171
+ alsa? (
+ >=media-libs/alsa-lib-1.0.27.2:=[${MULTILIB_USEDEP},alsa_pcm_plugins_extplug(+),alsa_pcm_plugins_ioplug(+)]
+ media-libs/libsndfile:=
+ )
+ cups? ( net-print/cups:= )
+ gstreamer? (
+ >=media-libs/gstreamer-0.10:0.10
+ >=media-libs/gst-plugins-base-0.10:0.10
+ )
+ readline? ( sys-libs/readline:= )
+ selinux? ( sec-policy/selinux-bluetooth )
+ usb? ( virtual/libusb:0 )
+"
+DEPEND="${CDEPEND}
+ sys-devel/flex
+ >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
+ test-programs? ( >=dev-libs/check-0.9.6 )
+"
+RDEPEND="${CDEPEND}
+ test-programs? (
+ >=dev-python/dbus-python-1
+ dev-python/pygobject:2
+ dev-python/pygobject:3
+ ${PYTHON_DEPS}
+ )
+ abi_x86_32? (
+ !<app-emulation/emul-linux-x86-soundlibs-20140406-r1
+ !app-emulation/emul-linux-x86-soundlibs[-abi_x86_32]
+ )
+"
+
+DOCS=( AUTHORS ChangeLog README )
+
+DOC_CONTENTS="
+ If you want to use rfcomm as a normal user, you need to add the user
+ to the uucp group.
+"
+
+pkg_setup() {
+ enewgroup plugdev
+ use test-programs && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # Fedora patches
+ epatch "${WORKDIR}/${P}-patches"/*.patch
+
+ # Use static group "plugdev" if there is no ConsoleKit (or systemd logind)
+ epatch "${FILESDIR}"/bluez-plugdev.patch
+
+ sed -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/" -i configure.ac || die
+
+ eautoreconf
+
+ if use cups; then
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = `cups-config --serverbin`:" \
+ Makefile.{in,tools} || die
+ fi
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local myconf=(
+ ac_cv_header_readline_readline_h=$(multilib_native_usex readline)
+ )
+
+ if ! multilib_is_native_abi; then
+ myconf+=(
+ # deps not used for the library
+ {DBUS,GLIB}_{CFLAGS,LIBS}=' '
+ )
+ fi
+
+ # Missing flags: --enable-{sap,hidd,pand,dund,dbusoob,gatt}
+ # Keep this in ./configure --help order!
+ econf \
+ --localstatedir=/var \
+ --enable-network \
+ --enable-serial \
+ --enable-input \
+ --enable-audio \
+ --enable-service \
+ --enable-health \
+ --enable-pnat \
+ $(multilib_native_use_enable gstreamer) \
+ $(use_enable alsa) \
+ $(multilib_native_use_enable usb) \
+ $(multilib_native_use_enable usb cable) \
+ --enable-tools \
+ --enable-bccmd \
+ $(use_enable pcmcia) \
+ $(multilib_native_use_enable hid2hci) \
+ --enable-dfutool \
+ $(multilib_native_use_enable cups) \
+ $(multilib_native_use_enable test-programs test) \
+ --enable-datafiles \
+ $(use_enable debug) \
+ --enable-maemo6 \
+ --enable-wiimote \
+ --disable-hal \
+ --with-ouifile=/usr/share/misc/oui.txt \
+ --with-systemdunitdir="$(systemd_get_unitdir)"
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ default
+ else
+ emake -f Makefile -f - libs \
+ <<<'libs: $(lib_LTLIBRARIES) $(alsa_LTLIBRARIES)'
+ fi
+}
+
+multilib_src_test() {
+ multilib_is_native_abi && default
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+ else
+ emake DESTDIR="${D}" \
+ install-includeHEADERS \
+ install-libLTLIBRARIES \
+ install-alsaLTLIBRARIES \
+ install-pkgconfigDATA
+ fi
+
+ if multilib_is_native_abi && use test-programs; then
+ pushd test >/dev/null
+ dobin simple-agent simple-service monitor-bluetooth
+ newbin list-devices list-bluetooth-devices
+ rm test-textfile.{c,o} || die #356529
+ local b
+ for b in hsmicro hsplay test-*; do
+ newbin "${b}" bluez-"${b}"
+ done
+ insinto /usr/share/doc/${PF}/test-services
+ doins service-*
+ python_fix_shebang "${ED}"
+ popd >/dev/null
+ fi
+}
+
+multilib_src_install_all() {
+ insinto /etc/bluetooth
+ local d
+ for d in input audio network serial; do
+ doins ${d}/${d}.conf
+ done
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r2 bluetooth
+ newinitd "${FILESDIR}"/rfcomm-init.d rfcomm
+ newconfd "${FILESDIR}"/rfcomm-conf.d rfcomm
+
+ readme.gentoo_create_doc
+
+ prune_libtool_files --modules
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ udevadm control --reload-rules
+
+ has_version net-dialup/ppp || elog "To use dial up networking you must install net-dialup/ppp."
+
+ if ! has_version sys-auth/consolekit && ! has_version sys-apps/systemd; then
+ elog "Since you don't have sys-auth/consolekit neither sys-apps/systemd, you will only"
+ elog "be able to run bluetooth clients as root. If you want to be able to run bluetooth clientes as"
+ elog "a regular user, you need to enable the consolekit use flag for this package or"
+ elog "to add the user to the plugdev group."
+ fi
+}
diff --git a/net-wireless/bluez/bluez-5.25.ebuild b/net-wireless/bluez/bluez-5.25.ebuild
new file mode 100644
index 000000000000..c5568b301db2
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.25.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit autotools eutils multilib python-any-r1 readme.gentoo systemd udev user multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org"
+SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz"
+
+LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="0/3"
+KEYWORDS="amd64 arm hppa ppc ppc64 x86"
+IUSE="cups debug +obex +readline selinux systemd test +udev"
+REQUIRED_USE="test? ( ${PYTHON_REQUIRED_USE} )"
+
+CDEPEND="
+ >=dev-libs/glib-2.28:2
+ >=sys-apps/dbus-1.6:=
+ >=sys-apps/hwids-20121202.2
+ cups? ( net-print/cups:= )
+ obex? ( dev-libs/libical )
+ readline? ( sys-libs/readline:= )
+ systemd? ( sys-apps/systemd )
+ udev? ( >=virtual/udev-172 )
+ abi_x86_32? (
+ !<app-emulation/emul-linux-x86-soundlibs-20140406-r1
+ !app-emulation/emul-linux-x86-soundlibs[-abi_x86_32]
+ )
+"
+DEPEND="${CDEPEND}
+ virtual/pkgconfig
+ test? (
+ ${PYTHON_DEPS}
+ >=dev-python/dbus-python-1
+ dev-python/pygobject:2
+ dev-python/pygobject:3
+ )
+"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-bluetooth )
+"
+DOC_CONTENTS="
+ If you want to use rfcomm as a normal user, you need to add the user
+ to the uucp group.
+"
+
+pkg_setup() {
+ enewgroup plugdev
+ use test && python-any-r1_pkg_setup
+
+ if ! use udev; then
+ ewarn
+ ewarn "You are installing ${PN} with USE=-udev. This means various bluetooth"
+ ewarn "devices and adapters from Apple, Dell, Logitech etc. will not work,"
+ ewarn "and hid2hci will not be available."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # Use static group "plugdev" if there is no ConsoleKit (or systemd logind)
+ epatch "${FILESDIR}"/bluez-plugdev.patch
+
+ # Fedora patches
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ epatch "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+ epatch "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg41264.html
+ epatch "${FILESDIR}"/0002-autopair-Don-t-handle-the-iCade.patch
+
+ # ???
+ epatch "${FILESDIR}"/0004-agent-Assert-possible-infinite-loop.patch
+
+ # Ubuntu workaround for bug #501120
+ epatch "${FILESDIR}"/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
+
+ if use cups; then
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ eautoreconf
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local myconf=(
+ # readline is automagic when client is enabled
+ # --enable-client always needs readline, bug #504038
+ ac_cv_header_readline_readline_h=$(multilib_native_usex readline)
+ )
+
+ if ! multilib_is_native_abi; then
+ myconf+=(
+ # deps not used for the library
+ {DBUS,GLIB}_{CFLAGS,LIBS}=' '
+ )
+ fi
+
+ econf \
+ --localstatedir=/var \
+ --disable-android \
+ --enable-datafiles \
+ --enable-experimental \
+ --enable-optimization \
+ $(use_enable debug) \
+ --enable-pie \
+ --enable-threads \
+ --enable-library \
+ $(multilib_native_use_enable test) \
+ --enable-tools \
+ --enable-manpages \
+ --enable-monitor \
+ $(multilib_native_use_enable cups) \
+ $(multilib_native_use_enable obex) \
+ $(multilib_native_use_enable readline client) \
+ $(multilib_native_use_enable systemd) \
+ $(systemd_with_unitdir) \
+ $(multilib_native_use_enable udev) \
+ $(multilib_native_use_enable udev sixaxis)
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ default
+ else
+ emake -f Makefile -f - libs \
+ <<<'libs: $(lib_LTLIBRARIES)'
+ fi
+}
+
+multilib_src_test() {
+ multilib_is_native_abi && default
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+
+ # Upstream don't install this, bug #524640
+ # http://permalink.gmane.org/gmane.linux.bluez.kernel/53115
+ # http://comments.gmane.org/gmane.linux.bluez.kernel/54564
+ # gatttool is only built with readline, bug #530776
+ use readline && dobin attrib/gatttool
+ dobin tools/hex2hcd
+
+ # Unittests are not that useful once installed
+ if use test ; then
+ rm -r "${ED}"/usr/$(get_libdir)/bluez/test || die
+ fi
+ else
+ emake DESTDIR="${D}" \
+ install-includeHEADERS \
+ install-libLTLIBRARIES \
+ install-pkgconfigDATA
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --modules
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network proximity; do
+ doins profiles/${d}/${d}.conf
+ done
+ doins src/main.conf
+ doins src/bluetooth.conf
+
+# FIXME:
+# Looks like upstream installs it only for systemd, probably not needed
+# insinto /usr/share/dbus-1/system-services
+# doins src/org.bluez.service
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r3 bluetooth
+ newinitd "${FILESDIR}"/rfcomm-init.d-r2 rfcomm
+
+ einstalldocs
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ use udev && udev_reload
+
+ has_version net-dialup/ppp || elog "To use dial up networking you must install net-dialup/ppp."
+
+ if ! has_version sys-auth/consolekit && ! has_version sys-apps/systemd; then
+ elog "Since you don't have sys-auth/consolekit neither sys-apps/systemd, you will only"
+ elog "be able to run bluetooth clients as root. If you want to be able to run bluetooth clients as"
+ elog "a regular user, you need to add the user to the plugdev group."
+ fi
+}
diff --git a/net-wireless/bluez/bluez-5.32.ebuild b/net-wireless/bluez/bluez-5.32.ebuild
new file mode 100644
index 000000000000..a82c3c070900
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.32.ebuild
@@ -0,0 +1,209 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit autotools eutils multilib python-any-r1 readme.gentoo systemd udev user multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org"
+SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz"
+
+LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="0/3"
+KEYWORDS="~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~x86"
+IUSE="cups debug +obex +readline selinux systemd test +udev"
+
+CDEPEND="
+ >=dev-libs/glib-2.28:2
+ >=sys-apps/dbus-1.6:=
+ >=sys-apps/hwids-20121202.2
+ cups? ( net-print/cups:= )
+ obex? ( dev-libs/libical:= )
+ readline? ( sys-libs/readline:= )
+ systemd? ( sys-apps/systemd )
+ udev? ( >=virtual/udev-172 )
+ abi_x86_32? (
+ !<app-emulation/emul-linux-x86-soundlibs-20140406-r1
+ !app-emulation/emul-linux-x86-soundlibs[-abi_x86_32]
+ )
+"
+DEPEND="${CDEPEND}
+ app-arch/xz-utils
+ virtual/pkgconfig
+ test? (
+ $(python_gen_any_dep '
+ >=dev-python/dbus-python-1[${PYTHON_USEDEP}]
+ || (
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/pygobject:2[${PYTHON_USEDEP}]
+ )
+ ')
+ )
+"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-bluetooth )
+"
+DOC_CONTENTS="
+ If you want to use rfcomm as a normal user, you need to add the user
+ to the uucp group.
+"
+
+pkg_setup() {
+ enewgroup plugdev
+ use test && python-any-r1_pkg_setup
+
+ if ! use udev; then
+ ewarn
+ ewarn "You are installing ${PN} with USE=-udev. This means various bluetooth"
+ ewarn "devices and adapters from Apple, Dell, Logitech etc. will not work,"
+ ewarn "and hid2hci will not be available."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # Use static group "plugdev" if there is no ConsoleKit (or systemd logind)
+ epatch "${FILESDIR}"/bluez-plugdev.patch
+
+ # Try both udevadm paths to cover udev/systemd vs. eudev locations (#539844)
+ # http://www.spinics.net/lists/linux-bluetooth/msg58739.html
+ epatch "${FILESDIR}"/bluez-udevadm-path.patch
+
+ # Fedora patches
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ epatch "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+ epatch "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg41264.html
+ epatch "${FILESDIR}"/0002-autopair-Don-t-handle-the-iCade.patch
+
+ # ???
+ epatch "${FILESDIR}"/0004-agent-Assert-possible-infinite-loop.patch
+
+ # Ubuntu workaround for bug #501120
+ epatch "${FILESDIR}"/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
+
+ if use cups; then
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ eautoreconf
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local myconf=(
+ # readline is automagic when client is enabled
+ # --enable-client always needs readline, bug #504038
+ ac_cv_header_readline_readline_h=$(multilib_native_usex readline)
+ )
+
+ if ! multilib_is_native_abi; then
+ myconf+=(
+ # deps not used for the library
+ {DBUS,GLIB}_{CFLAGS,LIBS}=' '
+ )
+ fi
+
+ econf \
+ --localstatedir=/var \
+ --disable-android \
+ --enable-datafiles \
+ --enable-experimental \
+ --enable-optimization \
+ $(use_enable debug) \
+ --enable-pie \
+ --enable-threads \
+ --enable-library \
+ $(multilib_native_use_enable test) \
+ --enable-tools \
+ --enable-manpages \
+ --enable-monitor \
+ $(multilib_native_use_enable cups) \
+ $(multilib_native_use_enable obex) \
+ $(multilib_native_use_enable readline client) \
+ $(multilib_native_use_enable systemd) \
+ $(systemd_with_unitdir) \
+ $(multilib_native_use_enable udev) \
+ $(multilib_native_use_enable udev sixaxis)
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ default
+ else
+ emake -f Makefile -f - libs \
+ <<<'libs: $(lib_LTLIBRARIES)'
+ fi
+}
+
+multilib_src_test() {
+ multilib_is_native_abi && default
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+
+ # Upstream doesn't install this, bug #524640
+ # http://permalink.gmane.org/gmane.linux.bluez.kernel/53115
+ # http://comments.gmane.org/gmane.linux.bluez.kernel/54564
+ # gatttool is only built with readline, bug #530776
+ use readline && dobin attrib/gatttool
+ dobin tools/hex2hcd
+
+ # Unittests are not that useful once installed
+ if use test ; then
+ rm -r "${ED}"/usr/$(get_libdir)/bluez/test || die
+ fi
+ else
+ emake DESTDIR="${D}" \
+ install-includeHEADERS \
+ install-libLTLIBRARIES \
+ install-pkgconfigDATA
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --modules
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network proximity; do
+ doins profiles/${d}/${d}.conf
+ done
+ doins src/main.conf
+ doins src/bluetooth.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r3 bluetooth
+ newinitd "${FILESDIR}"/rfcomm-init.d-r2 rfcomm
+
+ einstalldocs
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ use udev && udev_reload
+
+ has_version net-dialup/ppp || elog "To use dial up networking you must install net-dialup/ppp."
+
+ if ! has_version sys-auth/consolekit && ! has_version sys-apps/systemd; then
+ elog "Since you don't have sys-auth/consolekit neither sys-apps/systemd, you will"
+ elog "need to add the user to the plugdev group."
+ fi
+}
diff --git a/net-wireless/bluez/bluez-5.33.ebuild b/net-wireless/bluez/bluez-5.33.ebuild
new file mode 100644
index 000000000000..a82c3c070900
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.33.ebuild
@@ -0,0 +1,209 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python{2_7,3_3,3_4} )
+
+inherit autotools eutils multilib python-any-r1 readme.gentoo systemd udev user multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org"
+SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz"
+
+LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="0/3"
+KEYWORDS="~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~x86"
+IUSE="cups debug +obex +readline selinux systemd test +udev"
+
+CDEPEND="
+ >=dev-libs/glib-2.28:2
+ >=sys-apps/dbus-1.6:=
+ >=sys-apps/hwids-20121202.2
+ cups? ( net-print/cups:= )
+ obex? ( dev-libs/libical:= )
+ readline? ( sys-libs/readline:= )
+ systemd? ( sys-apps/systemd )
+ udev? ( >=virtual/udev-172 )
+ abi_x86_32? (
+ !<app-emulation/emul-linux-x86-soundlibs-20140406-r1
+ !app-emulation/emul-linux-x86-soundlibs[-abi_x86_32]
+ )
+"
+DEPEND="${CDEPEND}
+ app-arch/xz-utils
+ virtual/pkgconfig
+ test? (
+ $(python_gen_any_dep '
+ >=dev-python/dbus-python-1[${PYTHON_USEDEP}]
+ || (
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/pygobject:2[${PYTHON_USEDEP}]
+ )
+ ')
+ )
+"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-bluetooth )
+"
+DOC_CONTENTS="
+ If you want to use rfcomm as a normal user, you need to add the user
+ to the uucp group.
+"
+
+pkg_setup() {
+ enewgroup plugdev
+ use test && python-any-r1_pkg_setup
+
+ if ! use udev; then
+ ewarn
+ ewarn "You are installing ${PN} with USE=-udev. This means various bluetooth"
+ ewarn "devices and adapters from Apple, Dell, Logitech etc. will not work,"
+ ewarn "and hid2hci will not be available."
+ ewarn
+ fi
+}
+
+src_prepare() {
+ # Use static group "plugdev" if there is no ConsoleKit (or systemd logind)
+ epatch "${FILESDIR}"/bluez-plugdev.patch
+
+ # Try both udevadm paths to cover udev/systemd vs. eudev locations (#539844)
+ # http://www.spinics.net/lists/linux-bluetooth/msg58739.html
+ epatch "${FILESDIR}"/bluez-udevadm-path.patch
+
+ # Fedora patches
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ epatch "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+ epatch "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg41264.html
+ epatch "${FILESDIR}"/0002-autopair-Don-t-handle-the-iCade.patch
+
+ # ???
+ epatch "${FILESDIR}"/0004-agent-Assert-possible-infinite-loop.patch
+
+ # Ubuntu workaround for bug #501120
+ epatch "${FILESDIR}"/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
+
+ if use cups; then
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ eautoreconf
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local myconf=(
+ # readline is automagic when client is enabled
+ # --enable-client always needs readline, bug #504038
+ ac_cv_header_readline_readline_h=$(multilib_native_usex readline)
+ )
+
+ if ! multilib_is_native_abi; then
+ myconf+=(
+ # deps not used for the library
+ {DBUS,GLIB}_{CFLAGS,LIBS}=' '
+ )
+ fi
+
+ econf \
+ --localstatedir=/var \
+ --disable-android \
+ --enable-datafiles \
+ --enable-experimental \
+ --enable-optimization \
+ $(use_enable debug) \
+ --enable-pie \
+ --enable-threads \
+ --enable-library \
+ $(multilib_native_use_enable test) \
+ --enable-tools \
+ --enable-manpages \
+ --enable-monitor \
+ $(multilib_native_use_enable cups) \
+ $(multilib_native_use_enable obex) \
+ $(multilib_native_use_enable readline client) \
+ $(multilib_native_use_enable systemd) \
+ $(systemd_with_unitdir) \
+ $(multilib_native_use_enable udev) \
+ $(multilib_native_use_enable udev sixaxis)
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi; then
+ default
+ else
+ emake -f Makefile -f - libs \
+ <<<'libs: $(lib_LTLIBRARIES)'
+ fi
+}
+
+multilib_src_test() {
+ multilib_is_native_abi && default
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+ emake DESTDIR="${D}" install
+
+ # Upstream doesn't install this, bug #524640
+ # http://permalink.gmane.org/gmane.linux.bluez.kernel/53115
+ # http://comments.gmane.org/gmane.linux.bluez.kernel/54564
+ # gatttool is only built with readline, bug #530776
+ use readline && dobin attrib/gatttool
+ dobin tools/hex2hcd
+
+ # Unittests are not that useful once installed
+ if use test ; then
+ rm -r "${ED}"/usr/$(get_libdir)/bluez/test || die
+ fi
+ else
+ emake DESTDIR="${D}" \
+ install-includeHEADERS \
+ install-libLTLIBRARIES \
+ install-pkgconfigDATA
+ fi
+}
+
+multilib_src_install_all() {
+ prune_libtool_files --modules
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network proximity; do
+ doins profiles/${d}/${d}.conf
+ done
+ doins src/main.conf
+ doins src/bluetooth.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r3 bluetooth
+ newinitd "${FILESDIR}"/rfcomm-init.d-r2 rfcomm
+
+ einstalldocs
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ use udev && udev_reload
+
+ has_version net-dialup/ppp || elog "To use dial up networking you must install net-dialup/ppp."
+
+ if ! has_version sys-auth/consolekit && ! has_version sys-apps/systemd; then
+ elog "Since you don't have sys-auth/consolekit neither sys-apps/systemd, you will"
+ elog "need to add the user to the plugdev group."
+ fi
+}
diff --git a/net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch b/net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
new file mode 100644
index 000000000000..1ea3e6f3e0c1
--- /dev/null
+++ b/net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
@@ -0,0 +1,58 @@
+From 3027cb7141fb65cf3eeda69c688db8c4045e2d3f Mon Sep 17 00:00:00 2001
+From: Giovanni Campagna <gcampagna-cNUdlRotFMnNLxjTenLetw@public.gmane.org>
+Date: Sat, 12 Oct 2013 17:45:25 +0200
+Subject: [PATCH] Allow using obexd without systemd in the user session
+
+Not all sessions run systemd --user (actually, the majority
+doesn't), so the dbus daemon must be able to spawn obexd
+directly, and to do so it needs the full path of the daemon.
+---
+ Makefile.obexd | 4 ++--
+ obexd/src/org.bluez.obex.service | 4 ----
+ obexd/src/org.bluez.obex.service.in | 4 ++++
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+ delete mode 100644 obexd/src/org.bluez.obex.service
+ create mode 100644 obexd/src/org.bluez.obex.service.in
+
+diff --git a/Makefile.obexd b/Makefile.obexd
+index 3760867..142e7c3 100644
+--- a/Makefile.obexd
++++ b/Makefile.obexd
+@@ -2,12 +2,12 @@
+ if SYSTEMD
+ systemduserunitdir = @SYSTEMD_USERUNITDIR@
+ systemduserunit_DATA = obexd/src/obex.service
++endif
+
+ dbussessionbusdir = @DBUS_SESSIONBUSDIR@
+ dbussessionbus_DATA = obexd/src/org.bluez.obex.service
+-endif
+
+-EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service
++EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service.in
+
+ obex_plugindir = $(libdir)/obex/plugins
+
+diff --git a/obexd/src/org.bluez.obex.service b/obexd/src/org.bluez.obex.service
+deleted file mode 100644
+index a538088..0000000
+--- a/obexd/src/org.bluez.obex.service
++++ /dev/null
+@@ -1,4 +0,0 @@
+-[D-BUS Service]
+-Name=org.bluez.obex
+-Exec=/bin/false
+-SystemdService=dbus-org.bluez.obex.service
+diff --git a/obexd/src/org.bluez.obex.service.in b/obexd/src/org.bluez.obex.service.in
+new file mode 100644
+index 0000000..9c815f2
+--- /dev/null
++++ b/obexd/src/org.bluez.obex.service.in
+@@ -0,0 +1,4 @@
++[D-BUS Service]
++Name=org.bluez.obex
++Exec=@libexecdir@/obexd
++SystemdService=dbus-org.bluez.obex.service
+--
+1.8.3.1
+
diff --git a/net-wireless/bluez/files/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch b/net-wireless/bluez/files/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
new file mode 100644
index 000000000000..004a3895aa09
--- /dev/null
+++ b/net-wireless/bluez/files/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
@@ -0,0 +1,38 @@
+From f7861d27fbcbc519f57d8496aa9486f487908821 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Sat, 9 Nov 2013 18:13:43 +0100
+Subject: [PATCH 1/5] obex: Use GLib helper function to manipulate paths
+
+Instead of trying to do it by hand. This also makes sure that
+relative paths aren't used by the agent.
+---
+ obexd/src/manager.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/obexd/src/manager.c b/obexd/src/manager.c
+index cec8a39..f18896e 100644
+--- a/obexd/src/manager.c
++++ b/obexd/src/manager.c
+@@ -651,14 +651,14 @@ static void agent_reply(DBusPendingCall *call, void *user_data)
+ DBUS_TYPE_STRING, &name,
+ DBUS_TYPE_INVALID)) {
+ /* Splits folder and name */
+- const char *slash = strrchr(name, '/');
++ gboolean is_relative = !g_path_is_absolute(name);
+ DBG("Agent replied with %s", name);
+- if (!slash) {
+- agent->new_name = g_strdup(name);
++ if (is_relative) {
++ agent->new_name = g_path_get_basename(name);
+ agent->new_folder = NULL;
+ } else {
+- agent->new_name = g_strdup(slash + 1);
+- agent->new_folder = g_strndup(name, slash - name);
++ agent->new_name = g_path_get_basename(name);
++ agent->new_folder = g_path_get_dirname(name);
+ }
+ }
+
+--
+1.8.4.2
+
diff --git a/net-wireless/bluez/files/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch b/net-wireless/bluez/files/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
new file mode 100644
index 000000000000..55d5af654a93
--- /dev/null
+++ b/net-wireless/bluez/files/0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
@@ -0,0 +1,29 @@
+From aa73bf5039dfd2cf0a52dd6fd22501d955cc1a00 Mon Sep 17 00:00:00 2001
+From: Tommy <mesilliac@gmail.com>
+Date: Thu, 10 Jan 2013 09:18:43 +0100
+Subject: [PATCH] work around Logitech diNovo Edge keyboard firmware issue
+
+https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/269851
+---
+ tools/hid2hci.rules | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/tools/hid2hci.rules b/tools/hid2hci.rules
+index db6bb03..7db4572 100644
+--- a/tools/hid2hci.rules
++++ b/tools/hid2hci.rules
+@@ -11,7 +11,10 @@ ATTR{bInterfaceClass}=="03", ATTR{bInterfaceSubClass}=="01", ATTR{bInterfaceProt
+ RUN+="hid2hci --method=dell --devpath=%p", ENV{HID2HCI_SWITCH}="1"
+
+ # Logitech devices
+-KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[345abce]|c71[34bc]", \
++KERNEL=="hiddev*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[5e]", \
++ RUN+="hid2hci --method=logitech-hid --devpath=%p"
++# Logitech, Inc. RAW communicating devices
++KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c70[34abc]|c71[34bc]", \
+ RUN+="hid2hci --method=logitech-hid --devpath=%p"
+
+ ENV{DEVTYPE}!="usb_device", GOTO="hid2hci_end"
+--
+1.8.0.1
+
diff --git a/net-wireless/bluez/files/0002-autopair-Don-t-handle-the-iCade.patch b/net-wireless/bluez/files/0002-autopair-Don-t-handle-the-iCade.patch
new file mode 100644
index 000000000000..68751ae7b60f
--- /dev/null
+++ b/net-wireless/bluez/files/0002-autopair-Don-t-handle-the-iCade.patch
@@ -0,0 +1,47 @@
+From c16ae7041c7511d8d1ed8441f696716fa6a9117e Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Tue, 19 Nov 2013 14:11:39 +0100
+Subject: [PATCH 2/5] autopair: Don't handle the iCade
+
+We can't easily enter digits other than 1 through 4 (inclusive)
+so leave it up to the agent to figure out a good passcode
+for the iCade.
+
+Note that we can not use the VID/PID of the device, as it is not
+yet known at that point.
+---
+ plugins/autopair.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/plugins/autopair.c b/plugins/autopair.c
+index 8c98c12..5d2f6f7 100644
+--- a/plugins/autopair.c
++++ b/plugins/autopair.c
+@@ -57,13 +57,23 @@ static ssize_t autopair_pincb(struct btd_adapter *adapter,
+ {
+ char addr[18];
+ char pinstr[7];
++ char name[25];
+ uint32_t class;
+
+ ba2str(device_get_address(device), addr);
+
+ class = btd_device_get_class(device);
+
+- DBG("device %s 0x%x", addr, class);
++ device_get_name(device, name, sizeof(name));
++ name[sizeof(name) - 1] = 0;
++
++ DBG("device %s (%s) 0x%x", addr, name, class);
++
++ g_message ("vendor 0x%X product: 0x%X", btd_device_get_vendor (device), btd_device_get_product (device));
++
++ /* The iCade shouldn't use random PINs like normal keyboards */
++ if (name != NULL && strstr(name, "iCade") != NULL)
++ return 0;
+
+ /* This is a class-based pincode guesser. Ignore devices with an
+ * unknown class.
+--
+1.8.4.2
+
diff --git a/net-wireless/bluez/files/0004-agent-Assert-possible-infinite-loop.patch b/net-wireless/bluez/files/0004-agent-Assert-possible-infinite-loop.patch
new file mode 100644
index 000000000000..2746e0cdd2cb
--- /dev/null
+++ b/net-wireless/bluez/files/0004-agent-Assert-possible-infinite-loop.patch
@@ -0,0 +1,25 @@
+From 67e5477687a2753d3f7b300bcfdc74464d8ad41f Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Mon, 9 Dec 2013 18:04:56 +0100
+Subject: [PATCH 4/5] agent: Assert possible infinite loop
+
+---
+ src/agent.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/agent.c b/src/agent.c
+index bcba969..b292881 100644
+--- a/src/agent.c
++++ b/src/agent.c
+@@ -203,6 +203,8 @@ void agent_unref(struct agent *agent)
+ if (agent->ref > 0)
+ return;
+
++ g_assert (agent->ref == 0);
++
+ if (agent->request) {
+ DBusError err;
+ agent_pincode_cb pincode_cb;
+--
+1.8.4.2
+
diff --git a/net-wireless/bluez/files/bluetooth-init.d-r2 b/net-wireless/bluez/files/bluetooth-init.d-r2
new file mode 100644
index 000000000000..7975cb558d06
--- /dev/null
+++ b/net-wireless/bluez/files/bluetooth-init.d-r2
@@ -0,0 +1,21 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ after coldplug
+ need dbus localmount hostname
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --exec /usr/sbin/bluetoothd
+ eend $?
+}
+
+stop() {
+ ebegin "Shutting down ${SVCNAME}"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/bluetoothd
+ eend $?
+}
diff --git a/net-wireless/bluez/files/bluetooth-init.d-r3 b/net-wireless/bluez/files/bluetooth-init.d-r3
new file mode 100644
index 000000000000..3b9569ee737d
--- /dev/null
+++ b/net-wireless/bluez/files/bluetooth-init.d-r3
@@ -0,0 +1,21 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ after coldplug
+ need dbus localmount hostname
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --background --exec /usr/libexec/bluetooth/bluetoothd
+ eend $?
+}
+
+stop() {
+ ebegin "Shutting down ${SVCNAME}"
+ start-stop-daemon --stop --quiet --exec /usr/libexec/bluetooth/bluetoothd
+ eend $?
+}
diff --git a/net-wireless/bluez/files/bluez-plugdev.patch b/net-wireless/bluez/files/bluez-plugdev.patch
new file mode 100755
index 000000000000..726838a5132f
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-plugdev.patch
@@ -0,0 +1,14 @@
+diff -Nurp bluez-4.39.orig/src/bluetooth.conf bluez-4.39/src/bluetooth.conf
+--- bluez-4.39.orig/src/bluetooth.conf 2008-12-20 20:18:10.000000000 +0100
++++ bluez-4.39/src/bluetooth.conf 2009-09-05 13:30:34.411581498 +0200
+@@ -17,6 +17,10 @@
+ <allow send_destination="org.bluez"/>
+ </policy>
+
++ <policy group="plugdev">
++ <allow send_destination="org.bluez"/>
++ </policy>
++
+ <policy context="default">
+ <deny send_destination="org.bluez"/>
+ </policy>
diff --git a/net-wireless/bluez/files/bluez-udevadm-path.patch b/net-wireless/bluez/files/bluez-udevadm-path.patch
new file mode 100644
index 000000000000..a29193ebb19a
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-udevadm-path.patch
@@ -0,0 +1,10 @@
+--- tools/hid2hci.rules~ 2012-12-24 18:46:55.000000000 +0100
++++ tools/hid2hci.rules 2015-04-04 13:13:29.360300000 +0200
+@@ -20,6 +20,7 @@
+ # Unfortunately the only event seen is the BT device disappearing, so the mouse
+ # device needs to be chased down on the USB bus.
+ ATTR{bDeviceClass}=="e0", ATTR{bDeviceSubClass}=="01", ATTR{bDeviceProtocol}=="01", ATTR{idVendor}=="413c", \
++ ENV{REMOVE_CMD}="/usr/bin/udevadm trigger --action=change --subsystem-match=usb --property-match=HID2HCI_SWITCH=1" \
+ ENV{REMOVE_CMD}="/sbin/udevadm trigger --action=change --subsystem-match=usb --property-match=HID2HCI_SWITCH=1"
+
+ # CSR devices
diff --git a/net-wireless/bluez/files/rfcomm-conf.d b/net-wireless/bluez/files/rfcomm-conf.d
new file mode 100644
index 000000000000..d87acdb282eb
--- /dev/null
+++ b/net-wireless/bluez/files/rfcomm-conf.d
@@ -0,0 +1,5 @@
+# Bind rfcomm devices (allowed values are "true" and "false")
+RFCOMM_ENABLE=true
+
+# Config file for rfcomm
+RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"
diff --git a/net-wireless/bluez/files/rfcomm-init.d b/net-wireless/bluez/files/rfcomm-init.d
new file mode 100644
index 000000000000..f2f737824cf8
--- /dev/null
+++ b/net-wireless/bluez/files/rfcomm-init.d
@@ -0,0 +1,27 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ after coldplug
+ need dbus localmount hostname
+}
+
+start() {
+ if [ "${RFCOMM_ENABLE}" = "true" -a -x /usr/bin/rfcomm ]; then
+ if [ -f "${RFCOMM_CONFIG}" ]; then
+ ebegin "Starting rfcomm"
+ /usr/bin/rfcomm -f "${RFCOMM_CONFIG}" bind all
+ eend $?
+ else
+ ewarn "Not enabling rfcomm because RFCOMM_CONFIG does not exists"
+ fi
+ fi
+}
+
+stop() {
+ ebegin "Shutting down rfcomm"
+ /usr/bin/rfcomm release all
+ eend $?
+}
diff --git a/net-wireless/bluez/files/rfcomm-init.d-r2 b/net-wireless/bluez/files/rfcomm-init.d-r2
new file mode 100755
index 000000000000..4a91916919cc
--- /dev/null
+++ b/net-wireless/bluez/files/rfcomm-init.d-r2
@@ -0,0 +1,35 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need bluetooth
+}
+
+checkconfig() {
+ if [ -z "${ADDRESS}" ]; then
+ eerror "ADDRESS must be set"
+ return 1
+ fi
+
+ return 0
+}
+
+start() {
+ local DEVICE=${RC_SVCNAME#*.}
+
+ checkconfig || return 1
+
+ ebegin "Starting ${RC_SVCNAME}"
+ rfcomm bind "${DEVICE}" "${ADDRESS}" ${CHANNEL}
+ eend $?
+}
+
+stop() {
+ local DEVICE=${RC_SVCNAME#*.}
+
+ ebegin "Shutting down ${RC_SVCNAME}"
+ rfcomm release "${DEVICE}"
+ eend $?
+}
diff --git a/net-wireless/bluez/metadata.xml b/net-wireless/bluez/metadata.xml
new file mode 100644
index 000000000000..de19c8b55394
--- /dev/null
+++ b/net-wireless/bluez/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>pacho@gentoo.org</email>
+ <name>Pacho Ramos</name>
+ </maintainer>
+ <use>
+ <flag name="test-programs">Install tools for testing of
+ various Bluetooth functions</flag>
+ <flag name="hid2hci">The HID proxying makes the keyboard / mouse show up
+ as regular USB HID devices, but needs them to be
+ paired before enabling this, otherwise they won't be
+ detected</flag>
+ <flag name="obex">Enable OBEX transfer support.</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:bluez:bluez</remote-id>
+ <remote-id type="cpe">cpe:/a:bluez:bluez-libs</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/broadcom-sta/Manifest b/net-wireless/broadcom-sta/Manifest
new file mode 100644
index 000000000000..97adc135c590
--- /dev/null
+++ b/net-wireless/broadcom-sta/Manifest
@@ -0,0 +1,7 @@
+DIST README-broadcom-sta-6.30.223.248.txt 16775 SHA256 e25eaa7e666a361abff679d7518c75200ee4d90f8e5cb16f69af3f033c68811a SHA512 e635629f0a75059fa13b2bd2a756397631bc0add43786b0064d3f0232c9bd42dae394b9631846bf602f6cea628a49928ec2344df453ec5075168736627494020 WHIRLPOOL 4b0923b276bca6c3a0f8b37c903e3cd1b3f9ea37b07ffe308b831e505c691f4b77489abd491cd2c7334fe692846fe797c7d4b0ac63e8786f4190f5c2791e6b46
+DIST bcmwl-kernel-source_6.30.223.30%2Bbdcom-0ubuntu1%7Eppa1_amd64.deb 1779122 SHA256 de6529ae67f339aee185be93e3c12ffa944ef6b4807d176d6fda661de52136ba SHA512 93b17029538ec17be61902f1e5237a300f532dc88fd7475ac202c249a9cec099c5d170b0ebc043e1bda1987f6f925b6a28d4aa80748218f735a3790ded0565cd WHIRLPOOL 47f54a2fc286e58adef1383496fe3e65430ef643d8e7b8830cb87c0558319780f71944296211c62ccccaa4e3a216019fc5a29dd48903240362c656bb79ae55c2
+DIST bcmwl-kernel-source_6.30.223.30%2Bbdcom-0ubuntu1%7Eppa1_i386.deb 1732452 SHA256 d689040ac2ef67b9947f892b52764cd94c2090499747b57d63c2b40c7bc8eabb SHA512 323db5e6c8fc702990d7137bd11d2e8bba7ed073ee8da00125d147872edf90dd051a959198dbdaf92808403cdcfd582f17afb8a6f5e741382d3a0cffd6ce130a WHIRLPOOL db24f078e2639f609021028304e7caf48b9a3737b6fdf4b2522ab74606c6cb0b11a94706978b1fd1acdf66c59e351a4a433cf9e500862931a1e9dce6e5562c01
+DIST hybrid-v35-nodebug-pcoem-6_30_223_141.tar.gz 1735911 SHA256 d57c33f6bf4ebe68cac67ffe39c2260b8990bb0f07413dfd021dd4db845199a7 SHA512 adb3d9d9375888df3317d6af3d6d45c53412a677e5431051cbfe8c9eac3b13760022fd9b970e77caaeb0fa010ee8bd32ad80076d7279b60719bfb8562c09951f WHIRLPOOL f037e26d7f85d9a1bf3f2638fa6d6bbda43384e24fb249e90afcfff792be8013f1e0f2a1876c4675e39911d4e4877f0ab785eab15f7a6460621fe14c21bab486
+DIST hybrid-v35-nodebug-pcoem-6_30_223_248.tar.gz 2824762 SHA256 b196543a429c22b2b8d75d0c1d9e6e7ff212c3d3e1f42cc6fd9e4858f01da1ad SHA512 9f067cf5e1be562c78252791c0b2324b568c8533903842e18e92f2b10c3277e1d15ed42a5925acbd443de373f5113d05447b885a8d52ef57695babe48d68a0ff WHIRLPOOL f3bfef5b3dcbf6d051facbda0078a9850a1cf2f851bca07fd7538ffc3d5c0bf118622d217bb7737fdd87825af73b61ddd2d9a52c3d13a8070be02d1a584a8b14
+DIST hybrid-v35_64-nodebug-pcoem-6_30_223_141.tar.gz 1786627 SHA256 5f37b2b879e29b220dc64ce2e93d922dc231d4241da03bcbab15ced10e649b4a SHA512 a83defe4553f680b984bf49788377436c5f563f2920c129d87a3930fb6501d0f833d353acf229fa4f67b761e4564428c62bc1c8e3e23c0727d01b8c4f797f6af WHIRLPOOL d1ddc19e29a6927ae0f172613d429a92d5009515b4db1bc188b0ced41ff39565512d4f85721bcf4ddd0a951afadfd7bc303219ed93a20f83e1936a9c82717e47
+DIST hybrid-v35_64-nodebug-pcoem-6_30_223_248.tar.gz 2875739 SHA256 3d994cc6c05198f4b6f07a213ac1e9e45a45159899e6c4a7feca5e6c395c3022 SHA512 ce1e9f7f52cd98eaba5cf4ec0c7276bddf3ad906a0111eb236665daca72f36139ca4a8af72658cf91b0eaaa8479e54f5bb3bce77a0cc9bc1966f044b76b8295a WHIRLPOOL 6393507f340f4244d8e40c81102e37f9df0d5dbc0ce4e0fd3ed187ddde6faf3be9bfae59371eb307d031974b5b6d1417c7c11fbdd51b9f3b168ccd83d48276d9
diff --git a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.141-r1.ebuild b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.141-r1.ebuild
new file mode 100644
index 000000000000..099e4ae716bb
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.141-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+inherit eutils linux-info linux-mod
+
+DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver"
+HOMEPAGE="http://www.broadcom.com/support/802.11/linux_sta.php"
+SRC_BASE="http://www.broadcom.com/docs/linux_sta/hybrid-v35"
+SRC_URI="x86? ( ${SRC_BASE}-nodebug-pcoem-${PV//\./_}.tar.gz )
+ amd64? ( ${SRC_BASE}_64-nodebug-pcoem-${PV//\./_}.tar.gz )"
+
+LICENSE="Broadcom"
+KEYWORDS="~amd64 ~x86"
+
+RESTRICT="mirror"
+
+DEPEND="virtual/linux-sources"
+RDEPEND=""
+
+S="${WORKDIR}"
+
+MODULE_NAMES="wl(net/wireless)"
+MODULESD_WL_ALIASES=("wlan0 wl")
+
+pkg_setup() {
+ # bug #300570
+ # NOTE<lxnay>: module builds correctly anyway with b43 and SSB enabled
+ # make checks non-fatal. The correct fix is blackisting ssb and, perhaps
+ # b43 via udev rules. Moreover, previous fix broke binpkgs support.
+ CONFIG_CHECK="~!B43 ~!SSB"
+ CONFIG_CHECK2="LIB80211 ~!MAC80211 ~LIB80211_CRYPT_TKIP"
+ ERROR_B43="B43: If you insist on building this, you must blacklist it!"
+ ERROR_SSB="SSB: If you insist on building this, you must blacklist it!"
+ ERROR_LIB80211="LIB80211: Please enable it. If you can't find it: enabling the driver for \"Intel PRO/Wireless 2100\" or \"Intel PRO/Wireless 2200BG\" (IPW2100 or IPW2200) should suffice."
+ ERROR_MAC80211="MAC80211: If you insist on building this, you must blacklist it!"
+ ERROR_PREEMPT_RCU="PREEMPT_RCU: Please do not set the Preemption Model to \"Preemptible Kernel\"; choose something else."
+ ERROR_LIB80211_CRYPT_TKIP="LIB80211_CRYPT_TKIP: You will need this for WPA."
+ if kernel_is ge 3 8 8; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211 ~!PREEMPT_RCU ~!PREEMPT"
+ elif kernel_is ge 2 6 32; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211"
+ elif kernel_is ge 2 6 31; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT ~!MAC80211"
+ elif kernel_is ge 2 6 29; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT COMPAT_NET_DEV_OPS"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
+ fi
+
+ linux-mod_pkg_setup
+
+ BUILD_PARAMS="-C ${KV_DIR} M=${S}"
+ BUILD_TARGETS="wl.ko"
+}
+
+src_prepare() {
+# Makefile.patch: keep `emake install` working
+# linux-3.9.0.patch: add support for kernel 3.9.0
+# linux-3.10.0.patch: add support for kernel 3.10, bug #477372
+ epatch "${FILESDIR}/${P}-makefile.patch" \
+ "${FILESDIR}/${P}-linux-3.10.0.patch"
+
+ epatch_user
+}
diff --git a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.141-r2.ebuild b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.141-r2.ebuild
new file mode 100644
index 000000000000..2962110678bc
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.141-r2.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+inherit eutils linux-info linux-mod
+
+DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver"
+HOMEPAGE="http://www.broadcom.com/support/802.11/linux_sta.php"
+SRC_BASE="http://www.broadcom.com/docs/linux_sta/hybrid-v35"
+SRC_URI="x86? ( ${SRC_BASE}-nodebug-pcoem-${PV//\./_}.tar.gz )
+ amd64? ( ${SRC_BASE}_64-nodebug-pcoem-${PV//\./_}.tar.gz )"
+
+LICENSE="Broadcom"
+KEYWORDS="-* ~amd64 ~x86"
+
+RESTRICT="mirror"
+
+DEPEND="virtual/linux-sources"
+RDEPEND=""
+
+S="${WORKDIR}"
+
+MODULE_NAMES="wl(net/wireless)"
+MODULESD_WL_ALIASES=("wlan0 wl")
+
+pkg_setup() {
+ # bug #300570
+ # NOTE<lxnay>: module builds correctly anyway with b43 and SSB enabled
+ # make checks non-fatal. The correct fix is blackisting ssb and, perhaps
+ # b43 via udev rules. Moreover, previous fix broke binpkgs support.
+ CONFIG_CHECK="~!B43 ~!SSB"
+ CONFIG_CHECK2="LIB80211 ~!MAC80211 ~LIB80211_CRYPT_TKIP"
+ ERROR_B43="B43: If you insist on building this, you must blacklist it!"
+ ERROR_SSB="SSB: If you insist on building this, you must blacklist it!"
+ ERROR_LIB80211="LIB80211: Please enable it. If you can't find it: enabling the driver for \"Intel PRO/Wireless 2100\" or \"Intel PRO/Wireless 2200BG\" (IPW2100 or IPW2200) should suffice."
+ ERROR_MAC80211="MAC80211: If you insist on building this, you must blacklist it!"
+ ERROR_PREEMPT_RCU="PREEMPT_RCU: Please do not set the Preemption Model to \"Preemptible Kernel\"; choose something else."
+ ERROR_LIB80211_CRYPT_TKIP="LIB80211_CRYPT_TKIP: You will need this for WPA."
+ if kernel_is ge 3 8 8; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211 ~!PREEMPT_RCU ~!PREEMPT"
+ elif kernel_is ge 2 6 32; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211"
+ elif kernel_is ge 2 6 31; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT ~!MAC80211"
+ elif kernel_is ge 2 6 29; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT COMPAT_NET_DEV_OPS"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
+ fi
+
+ linux-mod_pkg_setup
+
+ BUILD_PARAMS="-C ${KV_DIR} M=${S}"
+ BUILD_TARGETS="wl.ko"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-license.patch" \
+ "${FILESDIR}/${P}-makefile.patch" \
+ "${FILESDIR}/${P}-linux-recent.patch" \
+ "${FILESDIR}/${P}-eth-to-wlan.patch" \
+ "${FILESDIR}/${P}-gcc.patch" \
+ "${FILESDIR}/${P}-linux-3.15.patch"
+
+ epatch_user
+}
diff --git a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.141.ebuild b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.141.ebuild
new file mode 100644
index 000000000000..65dcb1c8fee9
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.141.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+inherit eutils linux-info linux-mod
+
+DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver"
+HOMEPAGE="http://www.broadcom.com/support/802.11/linux_sta.php"
+SRC_BASE="http://www.broadcom.com/docs/linux_sta/hybrid-v35"
+SRC_URI="x86? ( ${SRC_BASE}-nodebug-pcoem-${PV//\./_}.tar.gz )
+ amd64? ( ${SRC_BASE}_64-nodebug-pcoem-${PV//\./_}.tar.gz )"
+
+LICENSE="Broadcom"
+KEYWORDS="-* ~amd64 ~x86"
+
+RESTRICT="mirror"
+
+DEPEND="virtual/linux-sources"
+RDEPEND=""
+
+S="${WORKDIR}"
+
+MODULE_NAMES="wl(net/wireless)"
+MODULESD_WL_ALIASES=("wlan0 wl")
+
+pkg_setup() {
+ # bug #300570
+ # NOTE<lxnay>: module builds correctly anyway with b43 and SSB enabled
+ # make checks non-fatal. The correct fix is blackisting ssb and, perhaps
+ # b43 via udev rules. Moreover, previous fix broke binpkgs support.
+ CONFIG_CHECK="~!B43 ~!SSB"
+ CONFIG_CHECK2="LIB80211 ~!MAC80211 ~LIB80211_CRYPT_TKIP"
+ ERROR_B43="B43: If you insist on building this, you must blacklist it!"
+ ERROR_SSB="SSB: If you insist on building this, you must blacklist it!"
+ ERROR_LIB80211="LIB80211: Please enable it. If you can't find it: enabling the driver for \"Intel PRO/Wireless 2100\" or \"Intel PRO/Wireless 2200BG\" (IPW2100 or IPW2200) should suffice."
+ ERROR_MAC80211="MAC80211: If you insist on building this, you must blacklist it!"
+ ERROR_PREEMPT_RCU="PREEMPT_RCU: Please do not set the Preemption Model to \"Preemptible Kernel\"; choose something else."
+ ERROR_LIB80211_CRYPT_TKIP="LIB80211_CRYPT_TKIP: You will need this for WPA."
+ if kernel_is ge 3 8 8; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211 ~!PREEMPT_RCU"
+ elif kernel_is ge 2 6 32; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211"
+ elif kernel_is ge 2 6 31; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT ~!MAC80211"
+ elif kernel_is ge 2 6 29; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT COMPAT_NET_DEV_OPS"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
+ fi
+
+ linux-mod_pkg_setup
+
+ BUILD_PARAMS="-C ${KV_DIR} M=${S}"
+ BUILD_TARGETS="wl.ko"
+}
+
+src_prepare() {
+# Makefile.patch: keep `emake install` working
+# linux-3.9.0.patch: add support for kernel 3.9.0
+# linux-3.10.0.patch: add support for kernel 3.10, bug #477372
+ epatch "${FILESDIR}/${P}-license.patch"
+ epatch "${FILESDIR}/${P}-makefile.patch"
+ epatch "${FILESDIR}/${P}-linux-recent.patch"
+ epatch "${FILESDIR}/${P}-eth-to-wlan.patch"
+ epatch "${FILESDIR}/${P}-gcc.patch"
+
+ epatch_user
+}
diff --git a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r1.ebuild b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r1.ebuild
new file mode 100644
index 000000000000..adf6ca558977
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils linux-info linux-mod
+
+DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver"
+HOMEPAGE="http://www.broadcom.com/support/802.11/linux_sta.php"
+SRC_BASE="http://www.broadcom.com/docs/linux_sta/hybrid-v35"
+SRC_URI="x86? ( ${SRC_BASE}-nodebug-pcoem-${PV//\./_}.tar.gz )
+ amd64? ( ${SRC_BASE}_64-nodebug-pcoem-${PV//\./_}.tar.gz )
+ http://www.broadcom.com/docs/linux_sta/README_${PV}.txt -> README-${P}.txt"
+
+LICENSE="Broadcom"
+KEYWORDS="-* ~amd64 ~x86"
+
+RESTRICT="mirror"
+
+DEPEND="virtual/linux-sources"
+RDEPEND=""
+
+S="${WORKDIR}"
+
+MODULE_NAMES="wl(net/wireless)"
+MODULESD_WL_ALIASES=("wlan0 wl")
+
+pkg_setup() {
+ # bug #300570
+ # NOTE<lxnay>: module builds correctly anyway with b43 and SSB enabled
+ # make checks non-fatal. The correct fix is blackisting ssb and, perhaps
+ # b43 via udev rules. Moreover, previous fix broke binpkgs support.
+ CONFIG_CHECK="~!B43 ~!BCMA ~!SSB"
+ CONFIG_CHECK2="LIB80211 ~!MAC80211 ~LIB80211_CRYPT_TKIP"
+ ERROR_B43="B43: If you insist on building this, you must blacklist it!"
+ ERROR_BCMA="BCMA: If you insist on building this, you must blacklist it!"
+ ERROR_SSB="SSB: If you insist on building this, you must blacklist it!"
+ ERROR_LIB80211="LIB80211: Please enable it. If you can't find it: enabling the driver for \"Intel PRO/Wireless 2100\" or \"Intel PRO/Wireless 2200BG\" (IPW2100 or IPW2200) should suffice."
+ ERROR_MAC80211="MAC80211: If you insist on building this, you must blacklist it!"
+ ERROR_PREEMPT_RCU="PREEMPT_RCU: Please do not set the Preemption Model to \"Preemptible Kernel\"; choose something else."
+ ERROR_LIB80211_CRYPT_TKIP="LIB80211_CRYPT_TKIP: You will need this for WPA."
+ if kernel_is ge 3 8 8; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211 ~!PREEMPT_RCU ~!PREEMPT"
+ elif kernel_is ge 2 6 32; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211"
+ elif kernel_is ge 2 6 31; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT ~!MAC80211"
+ elif kernel_is ge 2 6 29; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT COMPAT_NET_DEV_OPS"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
+ fi
+
+ linux-mod_pkg_setup
+
+ BUILD_PARAMS="-C ${KV_DIR} M=${S}"
+ BUILD_TARGETS="wl.ko"
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${PN}-6.30.223.141-license.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-makefile.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-eth-to-wlan.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-gcc.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-linux-3.15.patch"
+
+ epatch_user
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc "${DISTDIR}/README-${P}.txt"
+}
diff --git a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r2.ebuild b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r2.ebuild
new file mode 100644
index 000000000000..e91828dcf87f
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r2.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils linux-info linux-mod
+
+DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver"
+HOMEPAGE="http://www.broadcom.com/support/802.11/linux_sta.php"
+SRC_BASE="http://www.broadcom.com/docs/linux_sta/hybrid-v35"
+SRC_URI="x86? ( ${SRC_BASE}-nodebug-pcoem-${PV//\./_}.tar.gz )
+ amd64? ( ${SRC_BASE}_64-nodebug-pcoem-${PV//\./_}.tar.gz )
+ http://www.broadcom.com/docs/linux_sta/README_${PV}.txt -> README-${P}.txt"
+
+LICENSE="Broadcom"
+KEYWORDS="-* ~amd64 ~x86"
+
+RESTRICT="mirror"
+
+DEPEND="virtual/linux-sources"
+RDEPEND=""
+
+S="${WORKDIR}"
+
+MODULE_NAMES="wl(net/wireless)"
+MODULESD_WL_ALIASES=("wlan0 wl")
+
+pkg_setup() {
+ # bug #300570
+ # NOTE<lxnay>: module builds correctly anyway with b43 and SSB enabled
+ # make checks non-fatal. The correct fix is blackisting ssb and, perhaps
+ # b43 via udev rules. Moreover, previous fix broke binpkgs support.
+ CONFIG_CHECK="~!B43 ~!BCMA ~!SSB"
+ CONFIG_CHECK2="LIB80211 ~!MAC80211 ~LIB80211_CRYPT_TKIP"
+ ERROR_B43="B43: If you insist on building this, you must blacklist it!"
+ ERROR_BCMA="BCMA: If you insist on building this, you must blacklist it!"
+ ERROR_SSB="SSB: If you insist on building this, you must blacklist it!"
+ ERROR_LIB80211="LIB80211: Please enable it. If you can't find it: enabling the driver for \"Intel PRO/Wireless 2100\" or \"Intel PRO/Wireless 2200BG\" (IPW2100 or IPW2200) should suffice."
+ ERROR_MAC80211="MAC80211: If you insist on building this, you must blacklist it!"
+ ERROR_PREEMPT_RCU="PREEMPT_RCU: Please do not set the Preemption Model to \"Preemptible Kernel\"; choose something else."
+ ERROR_LIB80211_CRYPT_TKIP="LIB80211_CRYPT_TKIP: You will need this for WPA."
+ if kernel_is ge 3 8 8; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211 ~!PREEMPT_RCU ~!PREEMPT"
+ elif kernel_is ge 2 6 32; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211"
+ elif kernel_is ge 2 6 31; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT ~!MAC80211"
+ elif kernel_is ge 2 6 29; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT COMPAT_NET_DEV_OPS"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
+ fi
+
+ linux-mod_pkg_setup
+
+ BUILD_PARAMS="-C ${KV_DIR} M=${S}"
+ BUILD_TARGETS="wl.ko"
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${PN}-6.30.223.141-license.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-makefile.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-eth-to-wlan.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-gcc.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-linux-3.15.patch" \
+ "${FILESDIR}/${PN}-6.30.223.248-linux-3.17.patch" \
+ "${FILESDIR}/${PN}-6.30.223.248-linux-3.18.patch"
+
+ epatch_user
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc "${DISTDIR}/README-${P}.txt"
+}
diff --git a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild
new file mode 100644
index 000000000000..5a647f1950d4
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils linux-info linux-mod
+
+DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver"
+HOMEPAGE="http://www.broadcom.com/support/802.11/linux_sta.php"
+SRC_BASE="http://www.broadcom.com/docs/linux_sta/hybrid-v35"
+SRC_URI="x86? ( ${SRC_BASE}-nodebug-pcoem-${PV//\./_}.tar.gz )
+ amd64? ( ${SRC_BASE}_64-nodebug-pcoem-${PV//\./_}.tar.gz )
+ http://www.broadcom.com/docs/linux_sta/README_${PV}.txt -> README-${P}.txt"
+
+LICENSE="Broadcom"
+KEYWORDS="-* ~amd64 ~x86"
+
+RESTRICT="mirror"
+
+DEPEND="virtual/linux-sources"
+RDEPEND=""
+
+S="${WORKDIR}"
+
+MODULE_NAMES="wl(net/wireless)"
+MODULESD_WL_ALIASES=("wlan0 wl")
+
+pkg_setup() {
+ # bug #300570
+ # NOTE<lxnay>: module builds correctly anyway with b43 and SSB enabled
+ # make checks non-fatal. The correct fix is blackisting ssb and, perhaps
+ # b43 via udev rules. Moreover, previous fix broke binpkgs support.
+ CONFIG_CHECK="~!B43 ~!BCMA ~!SSB"
+ CONFIG_CHECK2="LIB80211 ~!MAC80211 ~LIB80211_CRYPT_TKIP"
+ ERROR_B43="B43: If you insist on building this, you must blacklist it!"
+ ERROR_BCMA="BCMA: If you insist on building this, you must blacklist it!"
+ ERROR_SSB="SSB: If you insist on building this, you must blacklist it!"
+ ERROR_LIB80211="LIB80211: Please enable it. If you can't find it: enabling the driver for \"Intel PRO/Wireless 2100\" or \"Intel PRO/Wireless 2200BG\" (IPW2100 or IPW2200) should suffice."
+ ERROR_MAC80211="MAC80211: If you insist on building this, you must blacklist it!"
+ ERROR_PREEMPT_RCU="PREEMPT_RCU: Please do not set the Preemption Model to \"Preemptible Kernel\"; choose something else."
+ ERROR_LIB80211_CRYPT_TKIP="LIB80211_CRYPT_TKIP: You will need this for WPA."
+ if kernel_is ge 3 8 8; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211 ~!PREEMPT_RCU ~!PREEMPT"
+ elif kernel_is ge 2 6 32; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211"
+ elif kernel_is ge 2 6 31; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT ~!MAC80211"
+ elif kernel_is ge 2 6 29; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT COMPAT_NET_DEV_OPS"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
+ fi
+
+ linux-mod_pkg_setup
+
+ BUILD_PARAMS="-C ${KV_DIR} M=${S}"
+ BUILD_TARGETS="wl.ko"
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${PN}-6.30.223.141-license.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-makefile.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-eth-to-wlan.patch" \
+ "${FILESDIR}/${PN}-6.30.223.141-gcc.patch" \
+ "${FILESDIR}/${PN}-6.30.223.248-r3-Wno-date-time.patch" \
+ "${FILESDIR}/${PN}-6.30.223.248-r3-linux-3.15-3.18.patch" \
+ "${FILESDIR}/${PN}-6.30.223.248-r3-linux-4.0.patch"
+
+ epatch_user
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc "${DISTDIR}/README-${P}.txt"
+}
diff --git a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.30-r2.ebuild b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.30-r2.ebuild
new file mode 100644
index 000000000000..e5cdaf839f0e
--- /dev/null
+++ b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.30-r2.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+inherit eutils linux-info linux-mod unpacker
+
+DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver"
+HOMEPAGE="https://launchpad.net/ubuntu/+source/bcmwl http://www.broadcom.com/support/802.11/linux_sta.php"
+BASE_URI="https://launchpad.net/~albertomilone/+archive/broadcom/+files"
+BASE_NAME="bcmwl-kernel-source_${PV}%2Bbdcom-0ubuntu1%7Eppa1_"
+SRC_URI="amd64? ( ${BASE_URI}/${BASE_NAME}amd64.deb )
+ x86? ( ${BASE_URI}/${BASE_NAME}i386.deb )"
+
+LICENSE="Broadcom"
+KEYWORDS="-* ~amd64 ~x86"
+
+RESTRICT="mirror"
+
+DEPEND="virtual/linux-sources"
+RDEPEND=""
+
+#S="${WORKDIR}"
+S="${WORKDIR}/usr/src/bcmwl-${PV}+bdcom"
+
+MODULE_NAMES="wl(net/wireless)"
+MODULESD_WL_ALIASES=("wlan0 wl")
+
+pkg_setup() {
+ # bug #300570
+ # NOTE<lxnay>: module builds correctly anyway with b43 and SSB enabled
+ # make checks non-fatal. The correct fix is blackisting ssb and, perhaps
+ # b43 via udev rules. Moreover, previous fix broke binpkgs support.
+ CONFIG_CHECK="~!B43 ~!SSB"
+ CONFIG_CHECK2="LIB80211 ~!MAC80211 ~LIB80211_CRYPT_TKIP"
+ ERROR_B43="B43: If you insist on building this, you must blacklist it!"
+ ERROR_SSB="SSB: If you insist on building this, you must blacklist it!"
+ ERROR_LIB80211="LIB80211: Please enable it. If you can't find it: enabling the driver for \"Intel PRO/Wireless 2100\" or \"Intel PRO/Wireless 2200BG\" (IPW2100 or IPW2200) should suffice."
+ ERROR_MAC80211="MAC80211: If you insist on building this, you must blacklist it!"
+ ERROR_PREEMPT_RCU="PREEMPT_RCU: Please do not set the Preemption Model to \"Preemptible Kernel\"; choose something else."
+ ERROR_LIB80211_CRYPT_TKIP="LIB80211_CRYPT_TKIP: You will need this for WPA."
+ if kernel_is ge 3 8 8; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211 ~!PREEMPT_RCU"
+ elif kernel_is ge 2 6 32; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211"
+ elif kernel_is ge 2 6 31; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT ~!MAC80211"
+ elif kernel_is ge 2 6 29; then
+ CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT COMPAT_NET_DEV_OPS"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
+ fi
+
+ linux-mod_pkg_setup
+
+ BUILD_PARAMS="-C ${KV_DIR} M=${S}"
+ BUILD_TARGETS="wl.ko"
+}
+
+src_unpack() {
+ local arch_suffix
+ if use amd64; then
+ arch_suffix="amd64"
+ else
+ arch_suffix="i386"
+ fi
+ unpack_deb "${BASE_NAME}${arch_suffix}.deb"
+}
+
+src_prepare() {
+# Filter the outdated patches here
+ EPATCH_FORCE="yes" EPATCH_EXCLUDE="0002* 0004* 0005*" EPATCH_SOURCE="${S}/patches" EPATCH_SUFFIX=patch epatch
+# Makefile.patch: keep `emake install` working
+# linux-3.9.0.patch: add support for kernel 3.9.0
+# linux-3.10.0.patch: add support for kernel 3.10, bug #477372
+ epatch "${FILESDIR}/${P}-makefile.patch" \
+ "${FILESDIR}/${P}-linux-3.9.0.patch" \
+ "${FILESDIR}/${P}-linux-3.10.0.patch"
+ mv "${S}/lib/wlc_hybrid.o_shipped_"* "${S}/lib/wlc_hybrid.o_shipped" \
+ || die "Where is the blob?"
+
+ epatch_user
+}
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-license.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-license.patch
new file mode 100644
index 000000000000..b320d977e8b0
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.10.91.9-license.patch
@@ -0,0 +1,12 @@
+diff -Naur hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c
+--- hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c 2009-04-23 02:48:59.000000000 +0900
++++ hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c 2009-05-08 00:48:20.000000000 +0900
+@@ -163,6 +163,8 @@
+ static void wl_free_if(wl_info_t *wl, wl_if_t *wlif);
+ static void wl_get_driver_info(struct net_device *dev, struct ethtool_drvinfo *info);
+
++MODULE_LICENSE("MIXED/Proprietary");
++
+ static struct pci_device_id wl_id_table[] = {
+ { PCI_VENDOR_ID_BROADCOM, 0x4311, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
+ { PCI_VENDOR_ID_BROADCOM, 0x4312, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.111-linux-3.0.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.111-linux-3.0.patch
new file mode 100644
index 000000000000..a915aee67fe2
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.111-linux-3.0.patch
@@ -0,0 +1,21 @@
+diff -Naur broadcom-sta-5.100.82.111.orig/Makefile broadcom-sta-5.100.82.111/Makefile
+--- broadcom-sta-5.100.82.111.orig/Makefile 2011-10-06 08:16:10.000000000 +0900
++++ broadcom-sta-5.100.82.111/Makefile 2011-10-24 08:54:26.000000000 +0900
+@@ -16,7 +16,7 @@
+ ifneq ($(KERNELRELEASE),)
+
+ LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \
+- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" ]; then \
++ if [ "$(VERSION)" -ge "3" -o "$(VERSION)" -eq "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" ]; then \
+ echo TRUE; \
+ else \
+ echo FALSE; \
+@@ -24,7 +24,7 @@
+ ))
+
+ LINUXVER_WEXT_ONLY:=$(strip $(shell \
+- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \
++ if [ "$(VERSION)" -ge "3" -o "$(VERSION)" -eq "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \
+ echo FALSE; \
+ else \
+ echo TRUE; \
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-2.6.39.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-2.6.39.patch
new file mode 100644
index 000000000000..633b9c858d6c
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-2.6.39.patch
@@ -0,0 +1,11 @@
+--- src/wl/sys/wl_cfg80211.c.orig 2011-10-31 07:57:38.000000000 -0400
++++ src/wl/sys/wl_cfg80211.c 2011-10-31 07:57:46.000000000 -0400
+@@ -1811,7 +1811,7 @@
+ notif_bss_info->frame_len = offsetof(struct ieee80211_mgmt, u.beacon.variable) +
+ wl_get_ielen(wl);
+ freq = ieee80211_channel_to_frequency(notif_bss_info->channel
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)
+ ,(notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ
+ #endif
+ );
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.2-with-multicast.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.2-with-multicast.patch
new file mode 100644
index 000000000000..c28bc0ee4ad6
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.2-with-multicast.patch
@@ -0,0 +1,14 @@
+--- src/wl/sys/wl_linux.c.old 2013-05-02 21:00:51.000000000 +0200
++++ src/wl/sys/wl_linux.c 2013-05-02 21:04:00.000000000 +0200
+@@ -385,7 +385,11 @@
+ #endif
+ .ndo_get_stats = wl_get_stats,
+ .ndo_set_mac_address = wl_set_mac_address,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
+ .ndo_set_multicast_list = wl_set_multicast_list,
++#else
++ .ndo_set_rx_mode = wl_set_multicast_list,
++#endif
+ .ndo_do_ioctl = wl_ioctl
+ };
+
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.4.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.4.patch
new file mode 100644
index 000000000000..2f1ad562cecc
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.4.patch
@@ -0,0 +1,12 @@
+--- src/wl/sys/wl_linux.c.old 2013-05-02 14:51:07.000000000 +0200
++++ src/wl/sys/wl_linux.c 2013-05-02 14:51:14.000000000 +0200
+@@ -40,7 +40,9 @@
+ #include <linux/pci_ids.h>
+ #define WLC_MAXBSSCFG 1
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0)
+ #include <asm/system.h>
++#endif
+ #include <asm/io.h>
+ #include <asm/irq.h>
+ #include <asm/pgtable.h>
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.6.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.6.patch
new file mode 100644
index 000000000000..17730dbe0c04
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.6.patch
@@ -0,0 +1,60 @@
+--- work.orig/src/wl/sys/wl_cfg80211.c 2012-11-05 21:12:30.402421835 +0100
++++ work/src/wl/sys/wl_cfg80211.c 2012-11-05 21:21:13.962421835 +0100
+@@ -40,9 +40,15 @@ u32 wl_dbg_level = WL_DBG_ERR | WL_DBG_I
+
+ static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev,
+ enum nl80211_iftype type, u32 *flags, struct vif_params *params);
+-static s32 __wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
++static s32 __wl_cfg80211_scan(struct wiphy *wiphy,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
++ struct net_device *ndev,
++#endif
+ struct cfg80211_scan_request *request, struct cfg80211_ssid *this_ssid);
+-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
++static s32 wl_cfg80211_scan(struct wiphy *wiphy,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
++ struct net_device *ndev,
++#endif
+ struct cfg80211_scan_request *request);
+ static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
+ static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
+@@ -496,10 +502,16 @@ wl_cfg80211_change_iface(struct wiphy *w
+ }
+
+ static s32
+-__wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
++__wl_cfg80211_scan(struct wiphy *wiphy,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
++ struct net_device *ndev,
++#endif
+ struct cfg80211_scan_request *request,
+ struct cfg80211_ssid *this_ssid)
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
++ struct net_device *ndev = request->wdev->netdev;
++#endif
+ struct wl_priv *wl = ndev_to_wl(ndev);
+ struct cfg80211_ssid *ssids;
+ struct wl_scan_req *sr = wl_to_sr(wl);
+@@ -570,13 +582,20 @@ scan_out:
+ }
+
+ static s32
+-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
++wl_cfg80211_scan(struct wiphy *wiphy,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
++ struct net_device *ndev,
++#endif
+ struct cfg80211_scan_request *request)
+ {
+ s32 err = 0;
+
+ CHECK_SYS_UP();
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
+ err = __wl_cfg80211_scan(wiphy, ndev, request, NULL);
++#else
++ err = __wl_cfg80211_scan(wiphy, request, NULL);
++#endif
+ if (err) {
+ WL_DBG(("scan error (%d)\n", err));
+ return err;
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.8.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.8.patch
new file mode 100644
index 000000000000..da2ddcca437e
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.8.patch
@@ -0,0 +1,71 @@
+--- /src/include/bcmutils.h~ 2011-10-22 18:55:54.000000000 +0200
++++ /src/include/bcmutils.h 2013-02-21 09:08:19.947034424 +0100
+@@ -555,7 +555,11 @@ extern void printbig(char *buf);
+ extern void prhex(const char *msg, uchar *buf, uint len);
+
+ extern bcm_tlv_t *BCMROMFN(bcm_next_tlv)(bcm_tlv_t *elt, int *buflen);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
+ extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(void *buf, int buflen, uint key);
++#else
++extern bcm_tlv_t *BCMROMFN(bcm_parse_tlvs)(const void *buf, int buflen, uint key);
++#endif
+ extern bcm_tlv_t *BCMROMFN(bcm_parse_ordered_tlvs)(void *buf, int buflen, uint key);
+
+ extern const char *bcmerrorstr(int bcmerror);
+--- /src/wl/sys/wl_cfg80211.c~ 2013-02-21 09:06:18.971297216 +0100
++++ /src/wl/sys/wl_cfg80211.c 2013-02-21 09:10:56.682019739 +0100
+@@ -744,7 +744,11 @@ wl_cfg80211_join_ibss(struct wiphy *wiph
+ else
+ memset(&join_params.params.bssid, 0, ETHER_ADDR_LEN);
+
+- wl_ch_to_chanspec(params->channel, &join_params, &join_params_size);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
++ wl_ch_to_chanspec(params->channel, &join_params, &join_params_size);
++#else
++ wl_ch_to_chanspec(params->chandef.chan, &join_params, &join_params_size);
++#endif
+
+ err = wl_dev_ioctl(dev, WLC_SET_SSID, &join_params, join_params_size);
+ if (err) {
+@@ -2047,9 +2051,14 @@ static s32 wl_update_bss_info(struct wl_
+ struct bcm_tlv *tim;
+ u16 beacon_interval;
+ s32 dtim_period;
+- size_t ie_len;
+- u8 *ie;
+ s32 err = 0;
++ size_t ie_len;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
++ u8 *ie;
++#else
++ const u8 *ie;
++ const struct cfg80211_bss_ies *ies;
++#endif
+
+ ssid = &wl->profile->ssid;
+ bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid,
+@@ -2079,8 +2088,22 @@ static s32 wl_update_bss_info(struct wl_
+ beacon_interval = cpu_to_le16(bi->beacon_period);
+ } else {
+ WL_DBG(("Found the AP in the list - BSSID %pM\n", bss->bssid));
+- ie = bss->information_elements;
+- ie_len = bss->len_information_elements;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
++ ie = bss->information_elements;
++ ie_len = bss->len_information_elements;
++#else
++ rcu_read_lock();
++ ies = (const struct cfg80211_bss_ies*)rcu_dereference(bss->ies);
++ if (!ies) {
++ /* This should never happen */
++ rcu_read_unlock();
++ err = -EIO;
++ goto update_bss_info_out;
++ }
++ ie = ies->data;
++ ie_len = (size_t)(ies->len);
++ rcu_read_unlock();
++#endif
+ beacon_interval = bss->beacon_interval;
+ cfg80211_put_bss(bss);
+ }
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.9.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.9.patch
new file mode 100644
index 000000000000..e1f168f12707
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-linux-3.9.patch
@@ -0,0 +1,14 @@
+--- src/wl/sys/wl_cfg80211.c.old 2013-05-02 17:10:36.000000000 +0200
++++ src/wl/sys/wl_cfg80211.c 2013-05-02 17:12:27.000000000 +0200
+@@ -2119,7 +2119,11 @@
+ rcu_read_unlock();
+ #endif
+ beacon_interval = bss->beacon_interval;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
+ cfg80211_put_bss(bss);
++#else
++ cfg80211_put_bss(wl_to_wiphy(wl), bss);
++#endif
+ }
+
+ tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-remove-rssi-errors.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-remove-rssi-errors.patch
new file mode 100644
index 000000000000..7f26746ee7a5
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.112-remove-rssi-errors.patch
@@ -0,0 +1,32 @@
+diff -Naur broadcom-sta-5.100.82.112.orig/amd64/src/wl/sys/wl_linux.c broadcom-sta-5.100.82.112/amd64/src/wl/sys/wl_linux.c
+--- broadcom-sta-5.100.82.112.orig/amd64/src/wl/sys/wl_linux.c 2012-05-24 09:45:02.520119025 +0400
++++ broadcom-sta-5.100.82.112/amd64/src/wl/sys/wl_linux.c 2012-05-24 09:46:52.116121834 +0400
+@@ -1581,11 +1581,7 @@
+ }
+
+ WL_LOCK(wl);
+- if (!capable(CAP_NET_ADMIN)) {
+- bcmerror = BCME_EPERM;
+- } else {
+- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
+- }
++ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
+ WL_UNLOCK(wl);
+
+ done1:
+
+diff -Naur broadcom-sta-5.100.82.112.orig/amd64/src/wl/sys/wl_cfg80211.c broadcom-sta-5.100.82.112/amd64/src/wl/sys/wl_cfg80211.c
+--- broadcom-sta-5.100.82.112.orig/amd64/src/wl/sys/wl_cfg80211.c 2012-05-24 09:45:33.268119813 +0400
++++ broadcom-sta-5.100.82.112/amd64/src/wl/sys/wl_cfg80211.c 2012-05-24 09:55:30.184135098 +0400
+@@ -1466,7 +1466,10 @@
+ scb_val.val = 0;
+ err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t));
+ if (err) {
+- WL_ERR(("Could not get rssi (%d)\n", err));
++ if (err != -EINVAL) {
++ // Don't fill syslog with EINVAL error
++ WL_ERR(("Could not get rssi (%d)\n", err));
++ }
+ return err;
+ }
+ rssi = dtoh32(scb_val.val);
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.38-gcc.patch b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.38-gcc.patch
new file mode 100644
index 000000000000..048565376d75
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-5.100.82.38-gcc.patch
@@ -0,0 +1,11 @@
+diff -Naur broadcom-sta-5.60.246.2.orig//src/wl/sys/wl_iw.h broadcom-sta-5.60.246.2/src/wl/sys/wl_iw.h
+--- broadcom-sta-5.60.246.2.orig//src/wl/sys/wl_iw.h 2010-10-08 07:32:59.000000000 +0900
++++ broadcom-sta-5.60.246.2/src/wl/sys/wl_iw.h 2010-10-28 00:50:57.925351964 +0900
+@@ -15,6 +15,7 @@
+ #ifndef _wl_iw_h_
+ #define _wl_iw_h_
+
++#include <linux/semaphore.h>
+ #include <linux/wireless.h>
+
+ #include <typedefs.h>
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-eth-to-wlan.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-eth-to-wlan.patch
new file mode 100644
index 000000000000..b23914a0b3d6
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-eth-to-wlan.patch
@@ -0,0 +1,12 @@
+diff -urN a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+--- a/src/wl/sys/wl_linux.c 2013-08-01 09:52:22.000000000 +0300
++++ b/src/wl/sys/wl_linux.c 2013-09-27 09:20:11.495023471 +0300
+@@ -235,7 +235,7 @@
+ #define to_str(s) #s
+ #define quote_str(s) to_str(s)
+
+-#define BRCM_WLAN_IFNAME eth%d
++#define BRCM_WLAN_IFNAME wlan%d
+
+ static char intf_name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME);
+
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-gcc.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-gcc.patch
new file mode 100644
index 000000000000..b5d7e858d78f
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-gcc.patch
@@ -0,0 +1,11 @@
+diff -urN a/src/wl/sys/wl_iw.h b/src/wl/sys/wl_iw.h
+--- a/src/wl/sys/wl_iw.h 2013-08-01 09:52:22.000000000 +0300
++++ b/src/wl/sys/wl_iw.h 2013-09-27 09:36:07.808067913 +0300
+@@ -21,6 +21,7 @@
+ #ifndef _wl_iw_h_
+ #define _wl_iw_h_
+
++#include <linux/semaphore.h>
+ #include <linux/wireless.h>
+
+ #include <typedefs.h>
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-license.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-license.patch
new file mode 100644
index 000000000000..cd4670901202
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-license.patch
@@ -0,0 +1,10 @@
+--- a/src/wl/sys/wl_linux.c 2013-08-01 08:52:22.000000000 +0200
++++ b/src/wl/sys/wl_linux.c 2013-09-13 14:26:42.613839899 +0200
+@@ -225,6 +225,7 @@
+
+ static int nompc = 0;
+ module_param(nompc, int, 0);
++MODULE_LICENSE("Mixed/Proprietary");
+
+ #ifdef quote_str
+ #undef quote_str
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-3.10.0.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-3.10.0.patch
new file mode 100644
index 000000000000..c575f289a26e
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-3.10.0.patch
@@ -0,0 +1,102 @@
+diff -Naur bcmwl-6.30.223.30+bdcom.orig/src/src/wl/sys/wl_linux.c bcmwl-6.30.223.30+bdcom/src/src/wl/sys/wl_linux.c
+--- bcmwl-6.30.223.30+bdcom.orig/src/src/wl/sys/wl_linux.c 2013-04-23 12:31:31.011588881 +0200
++++ bcmwl-6.30.223.30+bdcom/src/src/wl/sys/wl_linux.c 2013-05-20 18:27:18.830187333 +0200
+@@ -3229,7 +3229,12 @@
+ wl_tkip_printstats(wl_info_t *wl, bool group_key)
+ {
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
++ struct seq_file sfile;
++ struct seq_file *debug_buf = &sfile;
++#else
+ char debug_buf[512];
++#endif
+ int idx;
+ if (wl->tkipmodops) {
+ if (group_key) {
+@@ -3242,7 +3247,11 @@
+ wl->tkipmodops->print_stats(debug_buf, wl->tkip_ucast_data);
+ else
+ return;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
++ printk("%s: TKIP stats from module: %s\n", debug_buf->buf, group_key?"Bcast":"Ucast");
++#else
+ printk("%s: TKIP stats from module: %s\n", debug_buf, group_key?"Bcast":"Ucast");
++#endif
+ }
+ #endif
+ }
+@@ -3401,17 +3410,24 @@
+ return 0;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ static int
+ wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
++#else
++static ssize_t
++wl_proc_read (struct file *filp, char __user *buffer, size_t length, loff_t *data)
++#endif
+ {
+ wl_info_t * wl = (wl_info_t *)data;
+ int bcmerror, to_user;
+ int len;
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ if (offset > 0) {
+ *eof = 1;
+ return 0;
+ }
++#endif
+
+ if (!length) {
+ WL_ERROR(("%s: Not enough return buf space\n", __FUNCTION__));
+@@ -3424,8 +3440,13 @@
+ return len;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ static int
+ wl_proc_write(struct file *filp, const char *buff, unsigned long length, void *data)
++#else
++static ssize_t
++wl_proc_write (struct file *filp, const char __user *buff, size_t length, loff_t *data)
++#endif
+ {
+ wl_info_t * wl = (wl_info_t *)data;
+ int from_user = 0;
+@@ -3455,19 +3476,34 @@
+ return length;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
++static const struct file_operations wl_fops = {
++ .owner = THIS_MODULE,
++ .read = wl_proc_read,
++ .write = wl_proc_write,
++};
++#endif
++
+ static int
+ wl_reg_proc_entry(wl_info_t *wl)
+ {
+ char tmp[32];
+ sprintf(tmp, "%s%d", HYBRID_PROC, wl->pub->unit);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
+ WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
++#else
++ if ((wl->proc_entry = proc_create(tmp, 0644, NULL, &wl_fops)) == NULL) {
++ WL_ERROR(("%s: proc_create %s failed\n", __FUNCTION__, tmp));
++#endif
+ ASSERT(0);
+ return -1;
+ }
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ wl->proc_entry->read_proc = wl_proc_read;
+ wl->proc_entry->write_proc = wl_proc_write;
+ wl->proc_entry->data = wl;
++#endif
+ return 0;
+ }
+ #ifdef WLOFFLD
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-3.15.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-3.15.patch
new file mode 100644
index 000000000000..5596c0ebcf2e
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-3.15.patch
@@ -0,0 +1,17 @@
+Add channel parameter to cfg80211_ibss_joined call
+
+--- a/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -1841,7 +1841,12 @@ wl_notify_connect_status(struct wl_cfg80211_priv *wl, struct net_device *ndev,
+ wl_get_assoc_ies(wl);
+ memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
+ wl_update_bss_info(wl);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0)
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
++#else
++ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid,
++ &wl->conf->channel, GFP_KERNEL);
++#endif
+ set_bit(WL_STATUS_CONNECTED, &wl->status);
+ wl->profile->active = true;
+ }
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-recent.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-recent.patch
new file mode 100644
index 000000000000..97a331a2bd73
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-linux-recent.patch
@@ -0,0 +1,126 @@
+--- a/src/wl/sys/wl_linux.c 2013-08-01 08:52:22.000000000 +0200
++++ b/src/wl/sys/wl_linux.c 2013-09-13 14:25:36.463020788 +0200
+@@ -910,7 +910,11 @@
+ pci_set_drvdata(pdev, NULL);
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
+ static struct pci_driver wl_pci_driver = {
++#else
++static struct pci_driver wl_pci_driver __refdata = {
++#endif
+ name: "wl",
+ probe: wl_pci_probe,
+ suspend: wl_suspend,
+@@ -3235,7 +3239,7 @@
+ void
+ wl_tkip_printstats(wl_info_t *wl, bool group_key)
+ {
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ char debug_buf[512];
+ int idx;
+ if (wl->tkipmodops) {
+@@ -3408,6 +3412,7 @@
+ return 0;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ static int
+ wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
+ {
+@@ -3462,19 +3467,90 @@
+ return length;
+ }
+
++#else
++
++static int
++wl_proc_read(struct seq_file *seq, void *offset)
++{
++ wl_info_t * wl = (wl_info_t *)seq->private;
++ int bcmerror, to_user;
++
++ WL_LOCK(wl);
++ bcmerror = wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
++ WL_UNLOCK(wl);
++
++ seq_printf(seq, "%d\n", to_user);
++ return bcmerror;
++}
++
++static ssize_t wl_proc_write(struct file *file, const char __user *buff,
++ size_t length, loff_t *ppos)
++{
++ struct seq_file *seq = file->private_data;
++ wl_info_t * wl = (wl_info_t *)seq->private;
++ int bcmerror, from_user = 0;
++
++ if (length != 1) {
++ WL_ERROR(("%s: Invalid data length\n", __FUNCTION__));
++ return -EIO;
++ }
++
++ if (copy_from_user(&from_user, buff, 1)) {
++ WL_ERROR(("%s: copy from user failed\n", __FUNCTION__));
++ return -EFAULT;
++ }
++
++ if (from_user >= 0x30)
++ from_user -= 0x30;
++
++ WL_LOCK(wl);
++ bcmerror = wlc_ioctl(wl->wlc, WLC_SET_MONITOR, &from_user, sizeof(int), NULL);
++ WL_UNLOCK(wl);
++
++ if (bcmerror < 0) {
++ WL_ERROR(("%s: SET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
++ return -EIO;
++ }
++ *ppos += length;
++ return length;
++}
++
++static int wl_proc_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, wl_proc_read, PDE_DATA(inode));
++}
++
++static const struct file_operations wl_proc_fops = {
++ .owner = THIS_MODULE,
++ .open = wl_proc_open,
++ .read = seq_read,
++ .write = wl_proc_write,
++ .llseek = seq_lseek,
++ .release = single_release,
++};
++#endif
++
+ static int
+ wl_reg_proc_entry(wl_info_t *wl)
+ {
+ char tmp[32];
+ sprintf(tmp, "%s%d", HYBRID_PROC, wl->pub->unit);
+- if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
++ wl->proc_entry = create_proc_entry(tmp, 0644, NULL);
++ if (wl->proc_entry) {
++ wl->proc_entry->read_proc = wl_proc_read;
++ wl->proc_entry->write_proc = wl_proc_write;
++ wl->proc_entry->data = wl;
++ }
++#else
++ wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_proc_fops, wl);
++#endif
++ if (!wl->proc_entry) {
+ WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
+ ASSERT(0);
+ return -1;
+ }
+- wl->proc_entry->read_proc = wl_proc_read;
+- wl->proc_entry->write_proc = wl_proc_write;
+- wl->proc_entry->data = wl;
+ return 0;
+ }
+ #ifdef WLOFFLD
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-makefile.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-makefile.patch
new file mode 100644
index 000000000000..09c495d2a10f
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.141-makefile.patch
@@ -0,0 +1,14 @@
+--- Makefile.old 2013-04-28 22:42:59.000000000 +0200
++++ Makefile 2013-04-28 22:45:53.000000000 +0200
+@@ -128,9 +128,9 @@
+
+ EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
+
+-KBASE ?= /lib/modules/`uname -r`
++KBASE ?= /lib/modules/${KV_FULL}
+ KBUILD_DIR ?= $(KBASE)/build
+-MDEST_DIR ?= $(KBASE)/kernel/drivers/net/wireless
++MDEST_DIR ?= ${D}$(KBASE)/kernel/drivers/net/wireless
+
+ all:
+ KBUILD_NOPEDANTIC=1 make -C $(KBUILD_DIR) M=`pwd`
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-linux-3.17.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-linux-3.17.patch
new file mode 100644
index 000000000000..6ee0092376bb
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-linux-3.17.patch
@@ -0,0 +1,29 @@
+From 5f7db08c046bd31b162a102ca868fa334a0357b9 Mon Sep 17 00:00:00 2001
+From: Michael Marineau <mike@marineau.org>
+Date: Sat, 20 Sep 2014 12:49:43 -0700
+Subject: [PATCH] linux 3.17
+
+http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c835a677331495cf137a7f8a023463afd9f032f8
+---
+ src/wl/sys/wl_linux.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+index 1622127..11c4ec2 100644
+--- a/src/wl/sys/wl_linux.c
++++ b/src/wl/sys/wl_linux.c
+@@ -1308,7 +1308,11 @@ wl_alloc_linux_if(wl_if_t *wlif)
+ dev->priv = priv_link;
+ #else
+
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
+ dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
++#else
++ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN, ether_setup);
++#endif
+ if (!dev) {
+ WL_ERROR(("wl%d: %s: alloc_netdev failed\n",
+ (wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__));
+--
+1.8.5.5
+
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-linux-3.18.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-linux-3.18.patch
new file mode 100644
index 000000000000..4860912d9fe6
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-linux-3.18.patch
@@ -0,0 +1,30 @@
+From 5aae9ccfda6dfc680403b4a5ff9a36dcd5331dfd Mon Sep 17 00:00:00 2001
+From: Michael Marineau <mike@marineau.org>
+Date: Tue, 11 Nov 2014 15:17:46 -0800
+Subject: [PATCH] linux 3.18
+
+http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5bc8c1f2b070bab82ed738f98ecfac725e33c57f
+---
+ src/wl/sys/wl_cfg80211_hybrid.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
+index 514a892..e3ebef2 100644
+--- a/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -2010,7 +2010,11 @@ static s32 wl_inform_single_bss(struct wl_cfg80211_priv *wl, struct wl_bss_info
+
+ notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
+ notify_ielen = le32_to_cpu(bi->ie_length);
+- cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
++ cbss = cfg80211_inform_bss(wiphy, channel,
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)
++ CFG80211_BSS_FTYPE_UNKNOWN,
++#endif
++ (const u8 *)(bi->BSSID.octet),
+ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
+ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
+
+--
+2.0.4
+
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch
new file mode 100644
index 000000000000..f93e3f1d3a3f
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch
@@ -0,0 +1,11 @@
+--- a/Makefile 2014-06-26 10:42:08.000000000 +0000
++++ b/Makefile 2014-07-17 22:44:01.662297228 +0000
+@@ -126,6 +126,8 @@
+ EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include
+ #EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR
+
++EXTRA_CFLAGS += -Wno-date-time
++
+ EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
+
+ KBASE ?= /lib/modules/`uname -r`
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch
new file mode 100644
index 000000000000..7fe63199a0cb
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch
@@ -0,0 +1,350 @@
+--- a/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 12:42:08.000000000 +0200
++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2015-01-22 01:43:25.378920452 +0100
+@@ -63,8 +63,13 @@
+ static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
+ struct cfg80211_ibss_params *params);
+ static s32 wl_cfg80211_leave_ibss(struct wiphy *wiphy, struct net_device *dev);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
+ static s32 wl_cfg80211_get_station(struct wiphy *wiphy,
+ struct net_device *dev, u8 *mac, struct station_info *sinfo);
++#else
++static s32 wl_cfg80211_get_station(struct wiphy *wiphy,
++ struct net_device *dev, const u8 *mac, struct station_info *sinfo);
++#endif
+ static s32 wl_cfg80211_set_power_mgmt(struct wiphy *wiphy,
+ struct net_device *dev, bool enabled, s32 timeout);
+ static int wl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
+@@ -1387,7 +1392,7 @@
+ key_endian_to_host(&key);
+
+ params.key_len = (u8) min_t(u8, DOT11_MAX_KEY_SIZE, key.len);
+- memcpy(params.key, key.data, params.key_len);
++ memcpy((char *)params.key, key.data, params.key_len);
+
+ if ((err = wl_dev_ioctl(dev, WLC_GET_WSEC, &wsec, sizeof(wsec)))) {
+ return err;
+@@ -1421,9 +1426,15 @@
+ return err;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
+ static s32
+ wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
+ u8 *mac, struct station_info *sinfo)
++#else
++static s32
++wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
++ const u8 *mac, struct station_info *sinfo)
++#endif
+ {
+ struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy);
+ scb_val_t scb_val;
+@@ -2010,9 +2021,15 @@
+
+ notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
+ notify_ielen = le32_to_cpu(bi->ie_length);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0)
+ cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
+ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
+ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
++#else
++ cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN, (const u8 *)(bi->BSSID.octet),
++ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
++ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
++#endif
+
+ if (unlikely(!cbss))
+ return -ENOMEM;
+@@ -2071,7 +2088,26 @@
+ wl_get_assoc_ies(wl);
+ memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
+ wl_update_bss_info(wl);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
++ {
++ struct wl_bss_info *bi;
++ u16 bss_info_channel;
++ struct ieee80211_channel *channel;
++ u32 freq;
++
++ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
++ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
++
++ freq = ieee80211_channel_to_frequency(bss_info_channel,
++ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
++ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
++
++ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
++ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
++ }
++#else
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
++#endif
+ set_bit(WL_STATUS_CONNECTED, &wl->status);
+ wl->profile->active = true;
+ }
+@@ -2629,7 +2665,15 @@
+
+ void wl_cfg80211_detach(struct net_device *ndev)
+ {
+- struct wl_cfg80211_priv *wl = ndev_to_wl(ndev);
++ struct wl_cfg80211_priv *wl;
++ struct wireless_dev *wdev;
++
++ wdev = ndev->ieee80211_ptr;
++ if (wdev == NULL) {
++ printk(KERN_ERR "[%s()] in ndev=%p: IEEE80211ptr=%p\n", __FUNCTION__, ndev, wdev);
++ return;
++ }
++ wl = ndev_to_wl(ndev);
+
+ wl_deinit_cfg80211_priv(wl);
+ wl_free_wdev(wl);
+--- a/src/wl/sys/wl_dbg.h 2014-06-26 12:42:08.000000000 +0200
++++ b/src/wl/sys/wl_dbg.h 2015-01-22 01:43:25.379920462 +0100
+@@ -55,10 +55,12 @@
+
+ #define WL_NONE(args)
+
++#define FORCE_TRACE_LEVEL(fmt, ...) do { printk(KERN_ERR fmt, ## __VA_ARGS__); } while (0) /* ## is GCC specific syntax to remove comma when single arg */
++
+ #ifdef BCMDBG_ERR
+ #define WL_ERROR(args) WL_PRINT(args)
+ #else
+-#define WL_ERROR(args)
++#define WL_ERROR(args) FORCE_TRACE_LEVEL args
+ #endif
+ #define WL_TRACE(args)
+ #define WL_APSTA_UPDN(args)
+--- a/src/wl/sys/wl_linux.c 2014-06-26 12:42:08.000000000 +0200
++++ b/src/wl/sys/wl_linux.c 2015-01-22 01:44:58.580453805 +0100
+@@ -878,7 +878,7 @@
+ static SIMPLE_DEV_PM_OPS(wl_pm_ops, wl_suspend, wl_resume);
+ #endif
+
+-static struct pci_driver wl_pci_driver = {
++static struct pci_driver wl_pci_driver __refdata = {
+ .name = "wl",
+ .probe = wl_pci_probe,
+ .remove = __devexit_p(wl_remove),
+@@ -1270,6 +1270,7 @@
+ MFREE(wl->osh, wlif->dev, sizeof(struct net_device));
+ #else
+ free_netdev(wlif->dev);
++ wlif->dev = NULL;
+ #endif
+ }
+
+@@ -1307,7 +1308,12 @@
+ dev->priv = priv_link;
+ #else
+
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
+ dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
++#else
++ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN,
++ ether_setup);
++#endif
+ if (!dev) {
+ WL_ERROR(("wl%d: %s: alloc_netdev failed\n",
+ (wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__));
+@@ -1651,11 +1657,7 @@
+ }
+
+ WL_LOCK(wl);
+- if (!capable(CAP_NET_ADMIN)) {
+- bcmerror = BCME_EPERM;
+- } else {
+- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
+- }
++ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif);
+ WL_UNLOCK(wl);
+
+ done1:
+@@ -2157,8 +2159,8 @@
+ wlif = WL_DEV_IF(dev);
+ wl = WL_INFO(dev);
+
++ skb->prev = NULL;
+ if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) {
+- skb->prev = NULL;
+
+ TXQ_LOCK(wl);
+
+@@ -2455,8 +2457,10 @@
+ p80211msg_t *phdr;
+
+ len = sizeof(p80211msg_t) + oskb->len - D11_PHY_HDR_LEN;
+- if ((skb = dev_alloc_skb(len)) == NULL)
++ if ((skb = dev_alloc_skb(len)) == NULL) {
++ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__));
+ return;
++ }
+
+ skb_put(skb, len);
+ phdr = (p80211msg_t*)skb->data;
+@@ -2535,8 +2539,10 @@
+ rtap_len = sizeof(wl_radiotap_ht_brcm_2_t);
+
+ len = rtap_len + (oskb->len - D11_PHY_HDR_LEN);
+- if ((skb = dev_alloc_skb(len)) == NULL)
++ if ((skb = dev_alloc_skb(len)) == NULL) {
++ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__));
+ return;
++ }
+
+ skb_put(skb, len);
+
+@@ -2664,8 +2670,10 @@
+ len += amsdu_len;
+ }
+
+- if ((skb = dev_alloc_skb(len)) == NULL)
++ if ((skb = dev_alloc_skb(len)) == NULL) {
++ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__));
+ return;
++ }
+
+ skb_put(skb, len);
+
+@@ -2990,7 +2998,7 @@
+ }
+
+ void
+-wl_set_monitor(wl_info_t *wl, int val)
++wl_set_monitor(wl_info_t *wl, int val) /* public => is called by wlc_hybrid.o_shipped */
+ {
+ const char *devname;
+ wl_if_t *wlif;
+@@ -3224,42 +3232,75 @@
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ static int
+ wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
++{
++ wl_info_t * wl = (wl_info_t *)data;
+ #else
+ static ssize_t
+-wl_proc_read(struct file *filp, char __user *buffer, size_t length, loff_t *data)
+-#endif
++wl_proc_read(struct file *filp, char __user *buffer, size_t length, loff_t *offp)
+ {
+- wl_info_t * wl = (wl_info_t *)data;
+- int to_user;
+- int len;
++ wl_info_t * wl = PDE_DATA(file_inode(filp));
++#endif
++ int bcmerror, len;
++ int to_user = 0;
++ char tmp[8];
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ if (offset > 0) {
+ *eof = 1;
+ return 0;
+ }
++#else
++ if (*offp > 0) { /* for example, stop: cat /proc/brcm_monitor0 */
++ return 0; /* 0 <=> EOF */
++ }
+ #endif
+
+- if (!length) {
+- WL_ERROR(("%s: Not enough return buf space\n", __FUNCTION__));
+- return 0;
+- }
+ WL_LOCK(wl);
+- wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
+- len = sprintf(buffer, "%d\n", to_user);
+- WL_UNLOCK(wl);
+- return len;
++ bcmerror = wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL);
++ WL_UNLOCK(wl);
++
++ if (bcmerror != BCME_OK) {
++ WL_ERROR(("%s: GET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
++ return -EIO;
++ }
++
++ len = snprintf(tmp, ARRAY_SIZE(tmp), "%d\n", to_user);
++ tmp[ARRAY_SIZE(tmp) - 1] = '\0';
++ if (len >= ARRAY_SIZE(tmp)) {
++ printk(KERN_ERR "%s:%d [%s()] output would be truncated (ret=%d)!", __FILE__, __LINE__, __FUNCTION__, len);
++ return -ERANGE;
++ }
++ else if (len < 0) {
++ printk(KERN_ERR "%s:%d [%s()] unable to convert value (ret=%d)!", __FILE__, __LINE__, __FUNCTION__, len);
++ return len;
++ }
++ if (length < len) {
++ printk(KERN_ERR "%s:%d [%s()] user buffer is too small (at least=%d ; user=%d)!", __FILE__, __LINE__, __FUNCTION__, len, (int)length);
++ return -EMSGSIZE;
++ }
++ if (copy_to_user(buffer, tmp, len) != 0) {
++ printk(KERN_ERR "%s:%d [%s()] unable to copy data!", __FILE__, __LINE__, __FUNCTION__);
++ return -EFAULT;
++ }
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
++ *offp += len;
++#endif
++
++ return len;
+ }
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ static int
+ wl_proc_write(struct file *filp, const char *buff, unsigned long length, void *data)
++{
++ wl_info_t * wl = (wl_info_t *)data;
+ #else
+ static ssize_t
+-wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t *data)
+-#endif
++wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t *offp)
+ {
+- wl_info_t * wl = (wl_info_t *)data;
++ wl_info_t * wl = PDE_DATA(file_inode(filp));
++#endif
+ int from_user = 0;
+ int bcmerror;
+
+@@ -3270,7 +3311,11 @@
+ }
+ if (copy_from_user(&from_user, buff, 1)) {
+ WL_ERROR(("%s: copy from user failed\n", __FUNCTION__));
+- return -EIO;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
++ return -EIO;
++#else
++ return -EFAULT;
++#endif
+ }
+
+ if (from_user >= 0x30)
+@@ -3280,10 +3325,15 @@
+ bcmerror = wlc_ioctl(wl->wlc, WLC_SET_MONITOR, &from_user, sizeof(int), NULL);
+ WL_UNLOCK(wl);
+
+- if (bcmerror < 0) {
++ if (bcmerror != BCME_OK) {
+ WL_ERROR(("%s: SET_MONITOR failed with %d\n", __FUNCTION__, bcmerror));
+ return -EIO;
+ }
++
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) && 0 /* no need to update offset because this file should only trigger action... */
++ *offp += length;
++#endif
++
+ return length;
+ }
+
+@@ -3304,8 +3354,8 @@
+ if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
+ WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
+ #else
+- if ((wl->proc_entry = proc_create(tmp, 0644, NULL, &wl_fops)) == NULL) {
+- WL_ERROR(("%s: proc_create %s failed\n", __FUNCTION__, tmp));
++ if ((wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_fops, wl)) == NULL) {
++ WL_ERROR(("%s: proc_create_data %s failed\n", __FUNCTION__, tmp));
+ #endif
+ ASSERT(0);
+ return -1;
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-4.0.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-4.0.patch
new file mode 100644
index 000000000000..6d18c19bd430
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-4.0.patch
@@ -0,0 +1,26 @@
+--- src/wl/sys/wl_cfg80211_hybrid.c.orig 2015-04-27 11:08:10.252439465 +0000
++++ src/wl/sys/wl_cfg80211_hybrid.c 2015-04-27 11:10:52.454433122 +0000
+@@ -1441,7 +1441,11 @@ wl_cfg80211_get_station(struct wiphy *wi
+ WL_DBG(("Could not get rate (%d)\n", err));
+ } else {
+ rate = dtoh32(rate);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
+ sinfo->filled |= STATION_INFO_TX_BITRATE;
++#else
++ sinfo->filled |= BIT(NL80211_STA_INFO_TX_BITRATE);
++#endif
+ sinfo->txrate.legacy = rate * 5;
+ WL_DBG(("Rate %d Mbps\n", (rate / 2)));
+ }
+@@ -1454,7 +1458,11 @@ wl_cfg80211_get_station(struct wiphy *wi
+ return err;
+ }
+ rssi = dtoh32(scb_val.val);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
+ sinfo->filled |= STATION_INFO_SIGNAL;
++#else
++ sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
++#endif
+ sinfo->signal = rssi;
+ WL_DBG(("RSSI %d dBm\n", rssi));
+ }
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-linux-3.10.0.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-linux-3.10.0.patch
new file mode 100644
index 000000000000..c575f289a26e
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-linux-3.10.0.patch
@@ -0,0 +1,102 @@
+diff -Naur bcmwl-6.30.223.30+bdcom.orig/src/src/wl/sys/wl_linux.c bcmwl-6.30.223.30+bdcom/src/src/wl/sys/wl_linux.c
+--- bcmwl-6.30.223.30+bdcom.orig/src/src/wl/sys/wl_linux.c 2013-04-23 12:31:31.011588881 +0200
++++ bcmwl-6.30.223.30+bdcom/src/src/wl/sys/wl_linux.c 2013-05-20 18:27:18.830187333 +0200
+@@ -3229,7 +3229,12 @@
+ wl_tkip_printstats(wl_info_t *wl, bool group_key)
+ {
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 14)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
++ struct seq_file sfile;
++ struct seq_file *debug_buf = &sfile;
++#else
+ char debug_buf[512];
++#endif
+ int idx;
+ if (wl->tkipmodops) {
+ if (group_key) {
+@@ -3242,7 +3247,11 @@
+ wl->tkipmodops->print_stats(debug_buf, wl->tkip_ucast_data);
+ else
+ return;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
++ printk("%s: TKIP stats from module: %s\n", debug_buf->buf, group_key?"Bcast":"Ucast");
++#else
+ printk("%s: TKIP stats from module: %s\n", debug_buf, group_key?"Bcast":"Ucast");
++#endif
+ }
+ #endif
+ }
+@@ -3401,17 +3410,24 @@
+ return 0;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ static int
+ wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
++#else
++static ssize_t
++wl_proc_read (struct file *filp, char __user *buffer, size_t length, loff_t *data)
++#endif
+ {
+ wl_info_t * wl = (wl_info_t *)data;
+ int bcmerror, to_user;
+ int len;
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ if (offset > 0) {
+ *eof = 1;
+ return 0;
+ }
++#endif
+
+ if (!length) {
+ WL_ERROR(("%s: Not enough return buf space\n", __FUNCTION__));
+@@ -3424,8 +3440,13 @@
+ return len;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ static int
+ wl_proc_write(struct file *filp, const char *buff, unsigned long length, void *data)
++#else
++static ssize_t
++wl_proc_write (struct file *filp, const char __user *buff, size_t length, loff_t *data)
++#endif
+ {
+ wl_info_t * wl = (wl_info_t *)data;
+ int from_user = 0;
+@@ -3455,19 +3476,34 @@
+ return length;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
++static const struct file_operations wl_fops = {
++ .owner = THIS_MODULE,
++ .read = wl_proc_read,
++ .write = wl_proc_write,
++};
++#endif
++
+ static int
+ wl_reg_proc_entry(wl_info_t *wl)
+ {
+ char tmp[32];
+ sprintf(tmp, "%s%d", HYBRID_PROC, wl->pub->unit);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
+ WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
++#else
++ if ((wl->proc_entry = proc_create(tmp, 0644, NULL, &wl_fops)) == NULL) {
++ WL_ERROR(("%s: proc_create %s failed\n", __FUNCTION__, tmp));
++#endif
+ ASSERT(0);
+ return -1;
+ }
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
+ wl->proc_entry->read_proc = wl_proc_read;
+ wl->proc_entry->write_proc = wl_proc_write;
+ wl->proc_entry->data = wl;
++#endif
+ return 0;
+ }
+ #ifdef WLOFFLD
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-linux-3.9.0.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-linux-3.9.0.patch
new file mode 100644
index 000000000000..a6e3d3d1f9fb
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-linux-3.9.0.patch
@@ -0,0 +1,17 @@
+--- src.orig/wl/sys/wl_cfg80211_hybrid.c
++++ src/wl/sys/wl_cfg80211_hybrid.c
+@@ -2013,8 +2013,12 @@
+ ie_len = (size_t)(ies->len);
+ rcu_read_unlock();
+ #endif
+- cfg80211_put_bss(bss);
+- }
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
++ cfg80211_put_bss(bss);
++#else
++ cfg80211_put_bss(wl_to_wiphy(wl), bss);
++#endif
++ }
+
+ tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);
+ if (tim) {
diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-makefile.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-makefile.patch
new file mode 100644
index 000000000000..09c495d2a10f
--- /dev/null
+++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.30-makefile.patch
@@ -0,0 +1,14 @@
+--- Makefile.old 2013-04-28 22:42:59.000000000 +0200
++++ Makefile 2013-04-28 22:45:53.000000000 +0200
+@@ -128,9 +128,9 @@
+
+ EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
+
+-KBASE ?= /lib/modules/`uname -r`
++KBASE ?= /lib/modules/${KV_FULL}
+ KBUILD_DIR ?= $(KBASE)/build
+-MDEST_DIR ?= $(KBASE)/kernel/drivers/net/wireless
++MDEST_DIR ?= ${D}$(KBASE)/kernel/drivers/net/wireless
+
+ all:
+ KBUILD_NOPEDANTIC=1 make -C $(KBUILD_DIR) M=`pwd`
diff --git a/net-wireless/broadcom-sta/metadata.xml b/net-wireless/broadcom-sta/metadata.xml
new file mode 100644
index 000000000000..81110864a84b
--- /dev/null
+++ b/net-wireless/broadcom-sta/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mattst88@gentoo.org</email>
+ <name>Matt Turner</name>
+ </maintainer>
+ <maintainer>
+ <email>mpagano@gentoo.org</email>
+ <name>Mike Pagano</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="launchpad">~albertomilone</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/bss/Manifest b/net-wireless/bss/Manifest
new file mode 100644
index 000000000000..301aa1ce59fe
--- /dev/null
+++ b/net-wireless/bss/Manifest
@@ -0,0 +1 @@
+DIST bss-0.8.tar.gz 25128 RMD160 195e210d05cab817acb39b3c46e353679891b3bb SHA1 6c5e028104c971e800424903581e246ffea3dfd2 SHA256 582a766ddf3ce1fb66df6763abc413c25de039daf8a68e9352c855ca21eb3251
diff --git a/net-wireless/bss/bss-0.8.ebuild b/net-wireless/bss/bss-0.8.ebuild
new file mode 100644
index 000000000000..739946227dcc
--- /dev/null
+++ b/net-wireless/bss/bss-0.8.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=2
+inherit toolchain-funcs
+
+DESCRIPTION="Bluetooth stack smasher / fuzzer"
+HOMEPAGE="http://securitech.homeunix.org/blue/"
+SRC_URI="http://securitech.homeunix.org/blue/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+DEPEND="net-wireless/bluez"
+
+src_prepare() {
+ sed -i -e 's:/local::' Makefile || die
+}
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ BSS_FLAGS="${LDFLAGS}" || die
+}
+
+src_install() {
+ dosbin bss || die
+ dodoc AUTHOR BUGS CHANGELOG CONTRIB NOTES README TODO \
+ replay_packet/replay_l2cap_packet.c
+}
diff --git a/net-wireless/bss/metadata.xml b/net-wireless/bss/metadata.xml
new file mode 100644
index 000000000000..c6d862855eb5
--- /dev/null
+++ b/net-wireless/bss/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+ <email>robbat2@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/net-wireless/btcrack/btcrack-9999.ebuild b/net-wireless/btcrack/btcrack-9999.ebuild
new file mode 100644
index 000000000000..e7f062a2959f
--- /dev/null
+++ b/net-wireless/btcrack/btcrack-9999.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="linux port of Thierry Zollers' BTCrack"
+HOMEPAGE="https://github.com/mikeryan/btcrack"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/mikeryan/btcrack.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ #SRC_URI=""
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+src_install() {
+ emake DESTDIR="${ED}" PREFIX=/usr install
+}
diff --git a/net-wireless/btcrack/metadata.xml b/net-wireless/btcrack/metadata.xml
new file mode 100644
index 000000000000..ceccf8106cb7
--- /dev/null
+++ b/net-wireless/btcrack/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="github">mikeryan/btcrack</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/chillispot/Manifest b/net-wireless/chillispot/Manifest
new file mode 100644
index 000000000000..a38daa9d8fa6
--- /dev/null
+++ b/net-wireless/chillispot/Manifest
@@ -0,0 +1 @@
+DIST chillispot-1.1.0.tar.gz 452749 SHA256 b505ab963af8423ef8ae844951ef05fe1554630b448f1174074e9881cb474a01 SHA512 f0ea3c50983cb1d23da542d63be989a6ccb1e81d5e3a20b143f66414fad035f54531174d4cec49d1f8c9d27f0cffc5a3ed0f4ca64f4cf8b58035d561ce59cab2 WHIRLPOOL 5ab73a04e3127570a0f1cffbf167cba877f3f0bbd45c094a3b1a01fa5ffac70efd2fbfbf9c3bebb064abaef90f6774f375f45bb8f1465bbf878d6ab54e200805
diff --git a/net-wireless/chillispot/chillispot-1.1.0.ebuild b/net-wireless/chillispot/chillispot-1.1.0.ebuild
new file mode 100644
index 000000000000..dfad34356932
--- /dev/null
+++ b/net-wireless/chillispot/chillispot-1.1.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils
+
+DESCRIPTION="open source captive portal or wireless LAN access point controller"
+HOMEPAGE="http://www.chillispot.info/"
+SRC_URI="http://www.chillispot.info/download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ~ppc s390 sh ~sparc x86"
+IUSE=""
+
+DEPEND=">=sys-apps/sed-4"
+RDEPEND=""
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ chmod 644 doc/*.conf
+ find . -exec chmod go-w '{}' \;
+
+ epatch "${FILESDIR}"/${P}-gcc44.patch
+}
+
+src_install() {
+ emake DESTDIR="${D}" STRIPPROG=true install || die "emake install failed"
+ cd doc && dodoc chilli.conf freeradius.users hotspotlogin.cgi firewall.iptables
+
+ # init script provided by Michele Beltrame bug #124698
+ newinitd "${FILESDIR}"/${PN} ${PN} || die
+}
diff --git a/net-wireless/chillispot/files/chillispot b/net-wireless/chillispot/files/chillispot
new file mode 100644
index 000000000000..9c6b6cb7663e
--- /dev/null
+++ b/net-wireless/chillispot/files/chillispot
@@ -0,0 +1,33 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ use net logger
+}
+
+
+checkconfig() {
+ if [ -f /etc/chilli.conf ]; then
+ return 0;
+ else
+ eerror "Error starting chillispot. Please create /etc/chilli.conf before."
+ return 1;
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting Chillispot"
+
+ start-stop-daemon --start --quiet \
+ --exec /usr/sbin/chilli
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping Chillispot"
+ start-stop-daemon --stop --pidfile /var/run/chilli.pid --quiet
+ eend $?
+}
diff --git a/net-wireless/chillispot/files/chillispot-1.1.0-gcc44.patch b/net-wireless/chillispot/files/chillispot-1.1.0-gcc44.patch
new file mode 100644
index 000000000000..aa296b8828ac
--- /dev/null
+++ b/net-wireless/chillispot/files/chillispot-1.1.0-gcc44.patch
@@ -0,0 +1,81 @@
+diff -NrU5 chillispot-1.1.0.original/src/tun.c chillispot-1.1.0/src/tun.c
+--- chillispot-1.1.0.original/src/tun.c 2009-07-18 20:50:38.000000000 +0000
++++ chillispot-1.1.0/src/tun.c 2009-07-18 21:06:53.000000000 +0000
+@@ -364,11 +364,11 @@
+ tun_sifflags(this, IFF_UP | IFF_RUNNING); /* TODO */
+ close(fd);
+ this->addrs++;
+ return 0;
+
+-#elif defined (__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
++#elif defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+
+ int fd;
+ struct ifaliasreq areq;
+
+ /* TODO: Is this needed on FreeBSD? */
+@@ -443,11 +443,11 @@
+ ifr.ifr_dstaddr.sa_family = AF_INET;
+
+ #if defined(__linux__)
+ ifr.ifr_netmask.sa_family = AF_INET;
+
+-#elif defined(__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
++#elif defined(__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+ ((struct sockaddr_in *) &ifr.ifr_addr)->sin_len =
+ sizeof (struct sockaddr_in);
+ ((struct sockaddr_in *) &ifr.ifr_dstaddr)->sin_len =
+ sizeof (struct sockaddr_in);
+ #endif
+@@ -495,11 +495,11 @@
+ this->netmask.s_addr = netmask->s_addr;
+ #if defined(__linux__)
+ ((struct sockaddr_in *) &ifr.ifr_netmask)->sin_addr.s_addr =
+ netmask->s_addr;
+
+-#elif defined(__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
++#elif defined(__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+ ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr.s_addr =
+ netmask->s_addr;
+
+ #elif defined(__sun__)
+ ((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr.s_addr =
+@@ -583,11 +583,11 @@
+ }
+ }
+ close(fd);
+ return 0;
+
+-#elif defined(__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
++#elif defined(__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+
+ struct {
+ struct rt_msghdr rt;
+ struct sockaddr_in dst;
+ struct sockaddr_in gate;
+@@ -672,11 +672,11 @@
+ {
+
+ #if defined(__linux__)
+ struct ifreq ifr;
+
+-#elif defined(__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
++#elif defined(__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+ char devname[IFNAMSIZ+5]; /* "/dev/" + ifname */
+ int devnum;
+ struct ifaliasreq areq;
+ int fd;
+
+@@ -720,11 +720,11 @@
+ (*tun)->devname[IFNAMSIZ] = 0;
+
+ ioctl((*tun)->fd, TUNSETNOCSUM, 1); /* Disable checksums */
+ return 0;
+
+-#elif defined(__FreeBSD__) defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
++#elif defined(__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__APPLE__)
+
+ /* Find suitable device */
+ for (devnum = 0; devnum < 255; devnum++) { /* TODO 255 */
+ snprintf(devname, sizeof(devname), "/dev/tun%d", devnum);
+ devname[sizeof(devname)] = 0;
diff --git a/net-wireless/chillispot/metadata.xml b/net-wireless/chillispot/metadata.xml
new file mode 100644
index 000000000000..8160ef2ff55d
--- /dev/null
+++ b/net-wireless/chillispot/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+</maintainer>
+
+<longdescription>ChilliSpot is an open source captive portal or wireless
+LAN access point controller. It is used for authenticating users of a
+wireless LAN. It supports web based login which is today's standard for
+public HotSpots and it supports Wireless Protected Access (WPA) which is
+the standard of the future. Authentication, authorization and accounting
+(AAA) is handled by your favorite radius server.</longdescription>
+
+</pkgmetadata>
diff --git a/net-wireless/chirp/Manifest b/net-wireless/chirp/Manifest
new file mode 100644
index 000000000000..4fefe4dde907
--- /dev/null
+++ b/net-wireless/chirp/Manifest
@@ -0,0 +1 @@
+DIST chirp-0.4.1.tar.gz 416851 SHA256 8c9d652dc89dbab9e2a1a75c07aa7179ce403de078a4d02814365f89e183319e SHA512 13f36e96bb1608a41605cedd2fa3dfb46efc37e97437d09b75a0dd9ff10bb85c32ef3190d8db3fdb0360de8b85470588492df3ca5b3e2ecbdb813f3f11a9cc57 WHIRLPOOL 995c370a48b63fe4eb4d879b11f85385474a2ebcb5ea23f09db89661f42bdb0ad6867a172d4a15821eaf84d83469b55790b02d2fe4c4ce276e1a713022a5f49e
diff --git a/net-wireless/chirp/chirp-0.4.1.ebuild b/net-wireless/chirp/chirp-0.4.1.ebuild
new file mode 100644
index 000000000000..3ec9e14c9d56
--- /dev/null
+++ b/net-wireless/chirp/chirp-0.4.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+if [[ ${PV} == "9999" ]] ; then
+ SCM=mercurial
+ EHG_REPO_URI="http://d-rats.com/hg/chirp.hg"
+fi
+
+inherit distutils-r1 ${SCM}
+
+DESCRIPTION="Free open-source tool for programming your amateur radio"
+HOMEPAGE="http://chirp.danplanet.com"
+
+if [[ ${PV} == "9999" ]] ; then
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="http://chirp.danplanet.com/download/${PV}/${P}.tar.gz"
+ RESTRICT="test"
+fi
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+
+DEPEND="dev-python/pyserial
+ dev-libs/libxml2[python]"
+RDEPEND="${DEPEND}
+ dev-python/pygtk"
+
+src_prepare() {
+ sed -i -e "/share\/doc\/chirp/d" setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ pushd tests > /dev/null
+ "${PYTHON}" run_tests || die
+ popd > /dev/null
+}
diff --git a/net-wireless/chirp/chirp-9999.ebuild b/net-wireless/chirp/chirp-9999.ebuild
new file mode 100644
index 000000000000..3ec9e14c9d56
--- /dev/null
+++ b/net-wireless/chirp/chirp-9999.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+if [[ ${PV} == "9999" ]] ; then
+ SCM=mercurial
+ EHG_REPO_URI="http://d-rats.com/hg/chirp.hg"
+fi
+
+inherit distutils-r1 ${SCM}
+
+DESCRIPTION="Free open-source tool for programming your amateur radio"
+HOMEPAGE="http://chirp.danplanet.com"
+
+if [[ ${PV} == "9999" ]] ; then
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="http://chirp.danplanet.com/download/${PV}/${P}.tar.gz"
+ RESTRICT="test"
+fi
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+
+DEPEND="dev-python/pyserial
+ dev-libs/libxml2[python]"
+RDEPEND="${DEPEND}
+ dev-python/pygtk"
+
+src_prepare() {
+ sed -i -e "/share\/doc\/chirp/d" setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ pushd tests > /dev/null
+ "${PYTHON}" run_tests || die
+ popd > /dev/null
+}
diff --git a/net-wireless/chirp/metadata.xml b/net-wireless/chirp/metadata.xml
new file mode 100644
index 000000000000..50b2373a3fe9
--- /dev/null
+++ b/net-wireless/chirp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>radio</herd>
+<maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+</maintainer>
+<longdescription lang="en">
+</longdescription>
+</pkgmetadata>
+
diff --git a/net-wireless/cpyrit-cuda/Manifest b/net-wireless/cpyrit-cuda/Manifest
new file mode 100644
index 000000000000..09b06ec17815
--- /dev/null
+++ b/net-wireless/cpyrit-cuda/Manifest
@@ -0,0 +1 @@
+DIST cpyrit-cuda-0.4.0.tar.gz 22050 SHA256 6035f01874f699f010e460618694ec876f719bea475313b991f5dd3dd84d831b SHA512 c875c6aaa527251453369e43cd9596b5727032ff6a7bbbee7cc1c4efe56b71dd3151d39b8203a4d496e5f8addd21379486bf353e7893ac9ba11ad0614305fec1 WHIRLPOOL 3ae00515e44fa13d4172c3cc3cd569551831a4740a0e8c82b7962e82cc832c4c173507d65cd6d16d6eb575efc3ae1a6df4f4fcfd39898b25790f57672f9f1d31
diff --git a/net-wireless/cpyrit-cuda/cpyrit-cuda-0.4.0-r1.ebuild b/net-wireless/cpyrit-cuda/cpyrit-cuda-0.4.0-r1.ebuild
new file mode 100644
index 000000000000..4d50d569bf4b
--- /dev/null
+++ b/net-wireless/cpyrit-cuda/cpyrit-cuda-0.4.0-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="A sub-package that adds CUDA-capability to Pyrit"
+HOMEPAGE="http://code.google.com/p/pyrit/"
+SRC_URI="http://pyrit.googlecode.com/files/cpyrit-cuda-${PV}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-libs/openssl:=
+ net-libs/libpcap
+ dev-util/nvidia-cuda-toolkit"
+RDEPEND="${DEPEND}"
+PDEPEND="~net-wireless/pyrit-${PV}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
diff --git a/net-wireless/cpyrit-cuda/cpyrit-cuda-0.4.0.ebuild b/net-wireless/cpyrit-cuda/cpyrit-cuda-0.4.0.ebuild
new file mode 100644
index 000000000000..347969869a68
--- /dev/null
+++ b/net-wireless/cpyrit-cuda/cpyrit-cuda-0.4.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_DEPEND="2:2.5"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils eutils
+
+DESCRIPTION="A sub-package that adds CUDA-capability to Pyrit"
+HOMEPAGE="http://code.google.com/p/pyrit/"
+SRC_URI="http://pyrit.googlecode.com/files/cpyrit-cuda-${PV}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-libs/openssl
+ net-libs/libpcap
+ dev-util/nvidia-cuda-toolkit"
+RDEPEND="${DEPEND}"
+PDEPEND="~net-wireless/pyrit-${PV}"
diff --git a/net-wireless/cpyrit-cuda/metadata.xml b/net-wireless/cpyrit-cuda/metadata.xml
new file mode 100644
index 000000000000..81f3a278efce
--- /dev/null
+++ b/net-wireless/cpyrit-cuda/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<maintainer>
+ <email>oleg@kaa.org.ua</email>
+ <name>Oleg Kravchenko</name>
+</maintainer>
+<maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+</maintainer>
+</pkgmetadata>
diff --git a/net-wireless/cpyrit-opencl/Manifest b/net-wireless/cpyrit-opencl/Manifest
new file mode 100644
index 000000000000..8f18f47c2081
--- /dev/null
+++ b/net-wireless/cpyrit-opencl/Manifest
@@ -0,0 +1 @@
+DIST cpyrit-opencl-0.4.0.tar.gz 22851 SHA256 aac593bce3f00ea7fd3d558083dbd7e168332a92736e51a621a0459d1bc042fa SHA512 105c735089c23850f46fc349d4393bc038ca676ed9437545af7d23d98786e52a6ed88a09eeb9b7e2ef3654eaa71e0172a64478f8a37177714b3060ad3af49e5a WHIRLPOOL 522311339e52e10eac4bb724e31e9b277dd831c85ad011121ea3e251a1314afdef45f518b4b47d1ad542b5b65a0f5abbeed47c6379b329fcc72aeded221041fe
diff --git a/net-wireless/cpyrit-opencl/cpyrit-opencl-0.4.0-r1.ebuild b/net-wireless/cpyrit-opencl/cpyrit-opencl-0.4.0-r1.ebuild
new file mode 100644
index 000000000000..88f58edbca9b
--- /dev/null
+++ b/net-wireless/cpyrit-opencl/cpyrit-opencl-0.4.0-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="A sub-package that adds OpenCL-capability to Pyrit"
+HOMEPAGE="http://code.google.com/p/pyrit/"
+SRC_URI="http://pyrit.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-libs/openssl:=
+ sys-libs/zlib
+ virtual/opencl"
+RDEPEND="${DEPEND}"
+PDEPEND="~net-wireless/pyrit-${PV}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
diff --git a/net-wireless/cpyrit-opencl/cpyrit-opencl-0.4.0.ebuild b/net-wireless/cpyrit-opencl/cpyrit-opencl-0.4.0.ebuild
new file mode 100644
index 000000000000..326be8e253f3
--- /dev/null
+++ b/net-wireless/cpyrit-opencl/cpyrit-opencl-0.4.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+PYTHON_DEPEND="2:2.5"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils eutils
+
+DESCRIPTION="A sub-package that adds OpenCL-capability to Pyrit"
+HOMEPAGE="http://code.google.com/p/pyrit/"
+SRC_URI="http://pyrit.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="
+ dev-libs/openssl
+ sys-libs/zlib
+ virtual/opencl"
+RDEPEND="${DEPEND}"
+PDEPEND="~net-wireless/pyrit-${PV}"
diff --git a/net-wireless/cpyrit-opencl/metadata.xml b/net-wireless/cpyrit-opencl/metadata.xml
new file mode 100644
index 000000000000..81f3a278efce
--- /dev/null
+++ b/net-wireless/cpyrit-opencl/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<maintainer>
+ <email>oleg@kaa.org.ua</email>
+ <name>Oleg Kravchenko</name>
+</maintainer>
+<maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+</maintainer>
+</pkgmetadata>
diff --git a/net-wireless/crackle/Manifest b/net-wireless/crackle/Manifest
new file mode 100644
index 000000000000..7db449d8bb9f
--- /dev/null
+++ b/net-wireless/crackle/Manifest
@@ -0,0 +1 @@
+DIST crackle-0.1.tgz 27015 SHA256 07e31b5a67451b1d3baa3cde81cf5c945fd258df5b3df84fb12f01aaead4d5d6 SHA512 e60341e1fae6a3212028714a7bdba2c8f65d4b92d3d670194954df0e11e1f69a1bb6a5bcbdd5c4db54774cfe60955d50fbd2bfaff5fa615bf253f57283cfa17b WHIRLPOOL 837e3526d438b58473190e9e6f23e42e7f2d1b8d372b4aa3eeb47b245ac305e9e1f3fb49e03c648b802ecd128a5c88079026271dd8d07fdf50542040b19169e6
diff --git a/net-wireless/crackle/crackle-0.1.ebuild b/net-wireless/crackle/crackle-0.1.ebuild
new file mode 100644
index 000000000000..708032aa5091
--- /dev/null
+++ b/net-wireless/crackle/crackle-0.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Crackle cracks BLE Encryption (AKA Bluetooth Smart)"
+HOMEPAGE="http://lacklustre.net/projects/crackle/"
+SRC_URI="http://lacklustre.net/projects/crackle/${P}.tgz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="net-libs/libpcap"
+RDEPEND="${DEPEND}"
+
+RESTRICT="test"
+
+src_prepare() {
+ epatch "${FILESDIR}"/flags.patch
+}
+
+src_install() {
+ dobin crackle
+}
diff --git a/net-wireless/crackle/files/flags.patch b/net-wireless/crackle/files/flags.patch
new file mode 100644
index 000000000000..c1c0bd570d36
--- /dev/null
+++ b/net-wireless/crackle/files/flags.patch
@@ -0,0 +1,20 @@
+diff -Naur crackle-0.1/Makefile crackle-0.1-patched/Makefile
+--- crackle-0.1/Makefile 2013-02-15 01:04:24.000000000 -0500
++++ crackle-0.1-patched/Makefile 2014-03-05 11:30:20.907003818 -0500
+@@ -4,13 +4,13 @@
+
+ OBJS = crackle.o aes.o aes-ccm.o aes-enc.o test.o
+
+-CFLAGS = -Wall -Werror -g
+-LDFLAGS = -lpcap
++CFLAGS ?= -Wall -Werror -g
++LDFLAGS ?=
+
+ all: crackle
+
+ crackle: $(OBJS)
+- $(CC) -o crackle $(OBJS) $(LDFLAGS)
++ $(CC) $(CFLAGS) -o crackle $(OBJS) -lpcap $(LDFLAGS)
+
+ install: crackle
+ $(INSTALL) -m 0755 crackle $(INSTALL_DIR)
diff --git a/net-wireless/crackle/metadata.xml b/net-wireless/crackle/metadata.xml
new file mode 100644
index 000000000000..4b6b68191d89
--- /dev/null
+++ b/net-wireless/crackle/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>zerochaos@gentoo.org</email>
+<name>Rick Farina</name>
+</maintainer>
+<longdescription lang="en">
+</longdescription>
+</pkgmetadata>
diff --git a/net-wireless/crda/Manifest b/net-wireless/crda/Manifest
new file mode 100644
index 000000000000..30890a731c56
--- /dev/null
+++ b/net-wireless/crda/Manifest
@@ -0,0 +1,3 @@
+DIST crda-1.1.2.tar.bz2 21754 SHA256 e469348a5d0bb933df31995869130f68901de9be02e666437f52125698851864 SHA512 cd0997fdafc63640cbac5cff57b617177c3693a6d05e2138f23ed8273502d5f485f8f60309ed4fec97fe2cd2d51ee4b7e2d9535efc1de44c08b9cc9d6fb7ecf3 WHIRLPOOL 35ef76fcb7f3760613135caba5b9c6b0c781bc560f948a60f6b09eaeb75f3538461d90ce353decc17795995795b63c124a282903d41a8e25680fda0b6498bea4
+DIST crda-1.1.3.tar.bz2 38697 SHA256 aa8a7fe92f0765986c421a5b6768a185375ac210393df0605ee132f6754825f0 SHA512 4ec37d3d51f5988af79c2eaadc1bce344f20d4d9833533838d308533ee02cb12d5ed193391679ae1231c8afe61b21defdb368614a6238f99fdc5824f6819cfed WHIRLPOOL bbcb31277b664243f9e494c494152cf0ebcb187360ba48aa07c8e96c83dd91098bc49f1edf0b196a9bf4071565ac389b2907fcc73e348780aa890e066895c282
+DIST crda-3.18.tar.xz 61516 SHA256 43fcb9679f8b75ed87ad10944a506292def13e4afb194afa7aa921b01e8ecdbf SHA512 57ae6309159f396448f052c127f401c2f63d47f4193e87dca231c4b7bbbd7e69b5e5666f356fc76dfc8a6ae58ffa55c3794428d6eb34d9937df77c4276036588 WHIRLPOOL f2ee46b8e25509b6f78e508e62de3f1d0d85303b173b38d653f69f4f6e8f77ada2bc3330cd62646a1ce3819b0db834d9aecc9751cf3e7d35e2a67d3ffdfb1503
diff --git a/net-wireless/crda/crda-1.1.2-r3.ebuild b/net-wireless/crda/crda-1.1.2-r3.ebuild
new file mode 100644
index 000000000000..8b2e19921dab
--- /dev/null
+++ b/net-wireless/crda/crda-1.1.2-r3.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit eutils toolchain-funcs python
+
+DESCRIPTION="Central Regulatory Domain Agent for wireless networks"
+HOMEPAGE="http://wireless.kernel.org/en/developers/Regulatory"
+SRC_URI="http://linuxwireless.org/download/crda/${P}.tar.bz2"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips ppc ppc64 x86"
+IUSE=""
+
+RDEPEND="dev-libs/openssl
+ dev-libs/libnl
+ net-wireless/wireless-regdb"
+DEPEND="${RDEPEND}
+ dev-python/m2crypto
+ =dev-lang/python-2*
+ virtual/pkgconfig"
+RDEPEND="${RDEPEND}
+ >=virtual/udev-171"
+
+src_prepare() {
+ epatch "${FILESDIR}"/libnl31-support.diff
+
+ python_convert_shebangs 2 utils/key2pub.py
+
+ sed -i \
+ -e "s:\<pkg-config\>:$(tc-getPKG_CONFIG):" \
+ Makefile || die
+}
+
+src_compile() {
+ emake UDEV_RULE_DIR=/lib/udev/rules.d/ REG_BIN=/usr/$(get_libdir)/crda/regulatory.bin USE_OPENSSL=1 CC="$(tc-getCC)" all_noverify
+}
+
+src_test() {
+ emake USE_OPENSSL=1 CC="$(tc-getCC)" verify
+}
+
+src_install() {
+ emake UDEV_RULE_DIR=/lib/udev/rules.d/ REG_BIN=/usr/$(get_libdir)/crda/regulatory.bin USE_OPENSSL=1 DESTDIR="${D}" install
+ keepdir /etc/wireless-regdb/pubkeys
+}
diff --git a/net-wireless/crda/crda-1.1.2-r4.ebuild b/net-wireless/crda/crda-1.1.2-r4.ebuild
new file mode 100644
index 000000000000..c7ec1b7a2fed
--- /dev/null
+++ b/net-wireless/crda/crda-1.1.2-r4.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit eutils toolchain-funcs python
+
+DESCRIPTION="Central Regulatory Domain Agent for wireless networks"
+HOMEPAGE="http://wireless.kernel.org/en/developers/Regulatory"
+SRC_URI="http://linuxwireless.org/download/crda/${P}.tar.bz2"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND="dev-libs/openssl:0
+ dev-libs/libnl:3
+ net-wireless/wireless-regdb
+ >=virtual/udev-171"
+DEPEND="${RDEPEND}
+ dev-python/m2crypto
+ =dev-lang/python-2*
+ virtual/pkgconfig"
+
+src_prepare() {
+ epatch "${FILESDIR}"/libnl31-support.diff
+
+ python_convert_shebangs 2 utils/key2pub.py
+
+ sed -i \
+ -e "s:\<pkg-config\>:$(tc-getPKG_CONFIG):" \
+ Makefile || die
+}
+
+src_compile() {
+ emake \
+ UDEV_RULE_DIR="$($(tc-getPKG_CONFIG) --variable=udevdir udev)/rules.d" \
+ REG_BIN=/usr/$(get_libdir)/crda/regulatory.bin \
+ USE_OPENSSL=1 \
+ CC="$(tc-getCC)" \
+ all_noverify V=1
+}
+
+src_test() {
+ emake USE_OPENSSL=1 CC="$(tc-getCC)" verify
+}
+
+src_install() {
+ emake \
+ UDEV_RULE_DIR="$($(tc-getPKG_CONFIG) --variable=udevdir udev)/rules.d" \
+ REG_BIN=/usr/$(get_libdir)/crda/regulatory.bin \
+ USE_OPENSSL=1 \
+ DESTDIR="${D}" \
+ install
+
+ keepdir /etc/wireless-regdb/pubkeys
+}
diff --git a/net-wireless/crda/crda-1.1.3-r1.ebuild b/net-wireless/crda/crda-1.1.3-r1.ebuild
new file mode 100644
index 000000000000..4f63d6b34f0d
--- /dev/null
+++ b/net-wireless/crda/crda-1.1.3-r1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+inherit eutils toolchain-funcs python-any-r1 udev
+
+DESCRIPTION="Central Regulatory Domain Agent for wireless networks"
+HOMEPAGE="http://wireless.kernel.org/en/developers/Regulatory"
+SRC_URI="http://linuxwireless.org/download/crda/${P}.tar.bz2"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 ia64 ~mips ppc ppc64 sparc x86"
+IUSE=""
+
+RDEPEND="dev-libs/openssl:0
+ dev-libs/libnl:3
+ net-wireless/wireless-regdb"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/m2crypto[${PYTHON_USEDEP}]')
+ virtual/pkgconfig"
+
+python_check_deps() {
+ has_version --host-root "dev-python/m2crypto[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-missing-include.patch
+ sed -i \
+ -e "s:\<pkg-config\>:$(tc-getPKG_CONFIG):" \
+ Makefile || die
+}
+
+_emake() {
+ # The source hardcodes /usr/lib/crda/ paths (ignoring all make vars
+ # that look like it should change it). We want to use /usr/lib/
+ # anyways as this file is not ABI specific and we want to share it
+ # among all ABIs rather than pointlessly duplicate it.
+ #
+ # The trailing slash on SBINDIR is required by the source.
+ emake \
+ PREFIX="${EPREFIX}/usr" \
+ SBINDIR='$(PREFIX)/sbin/' \
+ UDEV_RULE_DIR="$(get_udevdir)/rules.d" \
+ REG_BIN=/usr/lib/crda/regulatory.bin \
+ USE_OPENSSL=1 \
+ CC="$(tc-getCC)" \
+ V=1 \
+ "$@"
+}
+
+src_compile() {
+ _emake all_noverify
+}
+
+src_test() {
+ _emake verify
+}
+
+src_install() {
+ _emake DESTDIR="${D}" install
+ keepdir /etc/wireless-regdb/pubkeys
+}
diff --git a/net-wireless/crda/crda-1.1.3.ebuild b/net-wireless/crda/crda-1.1.3.ebuild
new file mode 100644
index 000000000000..de5647a41a06
--- /dev/null
+++ b/net-wireless/crda/crda-1.1.3.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit eutils toolchain-funcs python udev
+
+DESCRIPTION="Central Regulatory Domain Agent for wireless networks"
+HOMEPAGE="http://wireless.kernel.org/en/developers/Regulatory"
+SRC_URI="http://linuxwireless.org/download/crda/${P}.tar.bz2"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND="dev-libs/openssl:0
+ dev-libs/libnl:3
+ net-wireless/wireless-regdb"
+DEPEND="${RDEPEND}
+ dev-python/m2crypto
+ =dev-lang/python-2*
+ virtual/pkgconfig"
+
+src_prepare() {
+ python_convert_shebangs 2 utils/key2pub.py
+
+ epatch "${FILESDIR}"/${P}-missing-include.patch
+ sed -i \
+ -e "s:\<pkg-config\>:$(tc-getPKG_CONFIG):" \
+ Makefile || die
+}
+
+src_compile() {
+ emake \
+ UDEV_RULE_DIR="$(get_udevdir)/rules.d" \
+ REG_BIN=/usr/$(get_libdir)/crda/regulatory.bin \
+ USE_OPENSSL=1 \
+ CC="$(tc-getCC)" \
+ all_noverify V=1
+}
+
+src_test() {
+ emake USE_OPENSSL=1 CC="$(tc-getCC)" verify
+}
+
+src_install() {
+ emake \
+ UDEV_RULE_DIR="$(get_udevdir)/rules.d" \
+ REG_BIN=/usr/$(get_libdir)/crda/regulatory.bin \
+ USE_OPENSSL=1 \
+ DESTDIR="${D}" \
+ install
+
+ keepdir /etc/wireless-regdb/pubkeys
+}
diff --git a/net-wireless/crda/crda-3.18.ebuild b/net-wireless/crda/crda-3.18.ebuild
new file mode 100644
index 000000000000..f976625a92dc
--- /dev/null
+++ b/net-wireless/crda/crda-3.18.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+inherit eutils toolchain-funcs python-any-r1 udev
+
+DESCRIPTION="Central Regulatory Domain Agent for wireless networks"
+HOMEPAGE="https://wireless.wiki.kernel.org/en/developers/regulatory/crda"
+SRC_URI="http://linuxwireless.org/download/crda/${P}.tar.xz
+ mirror://kernel/software/network/crda/${P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="gcrypt"
+
+RDEPEND="!gcrypt? ( dev-libs/openssl:0 )
+ gcrypt? ( dev-libs/libgcrypt:0 )
+ dev-libs/libnl:3
+ net-wireless/wireless-regdb"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/m2crypto[${PYTHON_USEDEP}]')
+ virtual/pkgconfig"
+
+python_check_deps() {
+ has_version --host-root "dev-python/m2crypto[${PYTHON_USEDEP}]"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-3.18-no-ldconfig.patch
+ epatch "${FILESDIR}"/${PN}-3.18-no-werror.patch
+ epatch "${FILESDIR}"/${PN}-3.18-openssl.patch
+ epatch "${FILESDIR}"/${PN}-3.18-cflags.patch
+ epatch "${FILESDIR}"/${PN}-3.18-libreg-link.patch #542436
+ sed -i \
+ -e "s:\<pkg-config\>:$(tc-getPKG_CONFIG):" \
+ Makefile || die
+}
+
+_emake() {
+ # The source hardcodes /usr/lib/crda/ paths (ignoring all make vars
+ # that look like it should change it). We want to use /usr/lib/
+ # anyways as this file is not ABI specific and we want to share it
+ # among all ABIs rather than pointlessly duplicate it.
+ #
+ # The trailing slash on SBINDIR is required by the source.
+ emake \
+ PREFIX="${EPREFIX}/usr" \
+ SBINDIR='$(PREFIX)/sbin/' \
+ LIBDIR='$(PREFIX)/'"$(get_libdir)" \
+ UDEV_RULE_DIR="$(get_udevdir)/rules.d" \
+ REG_BIN="${SYSROOT}"/usr/lib/crda/regulatory.bin \
+ USE_OPENSSL=$(usex gcrypt 0 1) \
+ CC="$(tc-getCC)" \
+ V=1 \
+ WERROR= \
+ "$@"
+}
+
+src_compile() {
+ _emake all_noverify
+}
+
+src_test() {
+ _emake verify
+}
+
+src_install() {
+ _emake DESTDIR="${D}" install
+ keepdir /etc/wireless-regdb/pubkeys
+}
diff --git a/net-wireless/crda/files/crda-1.1.3-missing-include.patch b/net-wireless/crda/files/crda-1.1.3-missing-include.patch
new file mode 100644
index 000000000000..a472e238f66f
--- /dev/null
+++ b/net-wireless/crda/files/crda-1.1.3-missing-include.patch
@@ -0,0 +1,11 @@
+diff --git a/reglib.c b/reglib.c
+index bc81974..1fafd37 100644
+--- a/reglib.c
++++ b/reglib.c
+@@ -9,6 +9,7 @@
+ #include <fcntl.h>
+ #include <stdbool.h>
+ #include <unistd.h>
++#include <string.h>
+
+ #include <arpa/inet.h> /* ntohl */
diff --git a/net-wireless/crda/files/crda-3.18-cflags.patch b/net-wireless/crda/files/crda-3.18-cflags.patch
new file mode 100644
index 000000000000..6edbded822cc
--- /dev/null
+++ b/net-wireless/crda/files/crda-3.18-cflags.patch
@@ -0,0 +1,33 @@
+From c5b0741ea7fc12e9f6a2a309296ed412a999d0f7 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Wed, 4 Mar 2015 14:09:50 -0500
+Subject: [PATCH] clean up CFLAGS handling
+
+Rather than append -O2 -g all the time to the user's CFLAGS (and thus
+clobbering whatever they have set up), initialize the default value to
+that and let the user override it entirely.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 5f988f4..8e345a1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -26,9 +26,9 @@ PUBKEY_DIR?=pubkeys
+ RUNTIME_PUBKEY_DIR?=/etc/wireless-regdb/pubkeys
+
+ WERROR = -Werror
+-CFLAGS += -O2 -fpic
++CFLAGS ?= -O2 -g
++CFLAGS += -fpic
+ CFLAGS += -std=gnu99 -Wall $(WERROR) -pedantic
+-CFLAGS += -Wall -g
+ LDLIBREG += -lreg
+ LDLIBS += $(LDLIBREG)
+ LDLIBS += -lm
+--
+2.3.1
+
diff --git a/net-wireless/crda/files/crda-3.18-libreg-link.patch b/net-wireless/crda/files/crda-3.18-libreg-link.patch
new file mode 100644
index 000000000000..0aa1b6e87a39
--- /dev/null
+++ b/net-wireless/crda/files/crda-3.18-libreg-link.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/542436
+
+From f56ab87b25f2228a67ac592a1c18793c72dd03eb Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 7 Mar 2015 22:29:33 -0500
+Subject: [PATCH crda] libreg: link against crypto libs
+
+Since libreg uses funcs from the crypto lib, make sure we link them.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 8e345a1..77708e6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -117,7 +117,7 @@ keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
+
+ $(LIBREG): regdb.h reglib.h reglib.c
+ $(NQ) ' CC ' $@
+- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^
++ $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(filter-out -lreg,$(LDLIBS))
+
+ install-libreg-headers:
+ $(NQ) ' INSTALL libreg-headers'
+--
+2.3.1
+
diff --git a/net-wireless/crda/files/crda-3.18-no-ldconfig.patch b/net-wireless/crda/files/crda-3.18-no-ldconfig.patch
new file mode 100644
index 000000000000..a5cc42084d53
--- /dev/null
+++ b/net-wireless/crda/files/crda-3.18-no-ldconfig.patch
@@ -0,0 +1,28 @@
+From b11d83df189670defe4a29c624f2930351c13df2 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Wed, 4 Mar 2015 13:56:36 -0500
+Subject: [PATCH] do not run ldconfig
+
+Let the distro/user deal with ldconfig updating. Running it blindly like
+this breaks DESTDIR installs as `ldconfig` only operates on system paths.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ Makefile | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index a3ead30..46c683d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -127,7 +127,6 @@ install-libreg:
+ $(NQ) ' INSTALL libreg'
+ $(Q)mkdir -p $(DESTDIR)/$(LIBDIR)
+ $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/
+- $(Q)ldconfig
+
+ %.o: %.c regdb.h $(LIBREG)
+ $(NQ) ' CC ' $@
+--
+2.3.1
+
diff --git a/net-wireless/crda/files/crda-3.18-no-werror.patch b/net-wireless/crda/files/crda-3.18-no-werror.patch
new file mode 100644
index 000000000000..6abb78c984e4
--- /dev/null
+++ b/net-wireless/crda/files/crda-3.18-no-werror.patch
@@ -0,0 +1,32 @@
+From 37384d22ba0ab622a5848a9a794084e6064fc905 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Wed, 4 Mar 2015 14:03:44 -0500
+Subject: [PATCH] allow people to turn off -Werror
+
+Forcing -Werror at build time easily breaks across compiler settings,
+compiler versions, architectures, C libraries, etc... Add a knob so
+distro peeps can turn it off.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 46c683d..5f988f4 100644
+--- a/Makefile
++++ b/Makefile
+@@ -25,8 +25,9 @@ UDEV_RULE_DIR?=/lib/udev/rules.d/
+ PUBKEY_DIR?=pubkeys
+ RUNTIME_PUBKEY_DIR?=/etc/wireless-regdb/pubkeys
+
++WERROR = -Werror
+ CFLAGS += -O2 -fpic
+-CFLAGS += -std=gnu99 -Wall -Werror -pedantic
++CFLAGS += -std=gnu99 -Wall $(WERROR) -pedantic
+ CFLAGS += -Wall -g
+ LDLIBREG += -lreg
+ LDLIBS += $(LDLIBREG)
+--
+2.3.1
+
diff --git a/net-wireless/crda/files/crda-3.18-openssl.patch b/net-wireless/crda/files/crda-3.18-openssl.patch
new file mode 100644
index 000000000000..9147e862ee5a
--- /dev/null
+++ b/net-wireless/crda/files/crda-3.18-openssl.patch
@@ -0,0 +1,44 @@
+From af009b7599d705a1023d7bc95c485e5a8776d2b8 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Wed, 4 Mar 2015 14:07:37 -0500
+Subject: [PATCH] fix openssl generation
+
+This file uses BN_ULONG but doesn't include the openssl headers leading
+to build failures:
+keys-ssl.c:2:8: error: unknown type name 'BN_ULONG'
+ static BN_ULONG e_0[1] = {
+
+The large unqualified constants also break building:
+keys-ssl.c:8:2: warning: overflow in implicit constant conversion [-Woverflow]
+ 0x63a2705416a0d8e1, 0xdc9fca11c8ba757b,
+ ^
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ utils/key2pub.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/utils/key2pub.py b/utils/key2pub.py
+index 3e84cd2..c504aca 100755
+--- a/utils/key2pub.py
++++ b/utils/key2pub.py
+@@ -24,7 +24,7 @@ def print_ssl_64(output, name, val):
+ for v1, v2, v3, v4, v5, v6, v7, v8 in vnew:
+ if not idx:
+ output.write('\t')
+- output.write('0x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x, ' % (ord(v1), ord(v2), ord(v3), ord(v4), ord(v5), ord(v6), ord(v7), ord(v8)))
++ output.write('0x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2xULL, ' % (ord(v1), ord(v2), ord(v3), ord(v4), ord(v5), ord(v6), ord(v7), ord(v8)))
+ idx += 1
+ if idx == 2:
+ idx = 0
+@@ -60,6 +60,7 @@ def print_ssl_32(output, name, val):
+ def print_ssl(output, name, val):
+ import struct
+ output.write('#include <stdint.h>\n')
++ output.write('#include <openssl/bn.h>\n')
+ if len(struct.pack('@L', 0)) == 8:
+ return print_ssl_64(output, name, val)
+ else:
+--
+2.3.1
+
diff --git a/net-wireless/crda/files/libnl31-support.diff b/net-wireless/crda/files/libnl31-support.diff
new file mode 100644
index 000000000000..56243ee9c697
--- /dev/null
+++ b/net-wireless/crda/files/libnl31-support.diff
@@ -0,0 +1,60 @@
+diff -aurp a/crda-1.1.2/crda.c b/crda-1.1.2/crda.c
+--- a/crda-1.1.2/crda.c 2011-11-07 19:52:28.884873650 +0000
++++ b/crda-1.1.2/crda.c 2011-11-07 19:53:30.501874372 +0000
+@@ -21,7 +21,7 @@
+ #include "regdb.h"
+ #include "reglib.h"
+
+-#if !defined(CONFIG_LIBNL20) && !defined(CONFIG_LIBNL30)
++#if !defined(CONFIG_LIBNL20) && !defined(CONFIG_LIBNL30) && !defined(CONFIG_LIBNL31)
+ /* libnl 2.0 compatibility code */
+ static inline struct nl_handle *nl_socket_alloc(void)
+ {
+@@ -44,7 +44,7 @@ static inline int __genl_ctrl_alloc_cach
+
+ #define genl_ctrl_alloc_cache __genl_ctrl_alloc_cache
+ #define nl_sock nl_handle
+-#endif /* CONFIG_LIBNL20 && CONFIG_LIBNL30 */
++#endif /* CONFIG_LIBNL20 && CONFIG_LIBNL30 && CONFIG_LIBNL31 */
+
+ struct nl80211_state {
+ struct nl_sock *nl_sock;
+diff -aurp a/crda-1.1.2/Makefile b/crda-1.1.2/Makefile
+--- a/crda-1.1.2/Makefile 2011-11-07 19:52:28.884873650 +0000
++++ b/crda-1.1.2/Makefile 2011-11-07 19:54:25.906872386 +0000
+@@ -48,19 +48,26 @@ INSTALL ?= install
+ NL1FOUND := $(shell pkg-config --atleast-version=1 libnl-1 && echo Y)
+ NL2FOUND := $(shell pkg-config --atleast-version=2 libnl-2.0 && echo Y)
+ NL3FOUND := $(shell pkg-config --atleast-version=3 libnl-3.0 && echo Y)
++NL31FOUND := $(shell pkg-config --atleast-version=3 libnl-3.1 && echo Y)
+
+-ifeq ($(NL3FOUND),Y)
++ifeq ($(NL31FOUND),Y)
+ CFLAGS += -DCONFIG_LIBNL30
+-NLLIBS += -lnl-genl
+-NLLIBNAME = libnl-3.0
++NLLIBS += $(shell pkg-config --libs libnl-genl-3.1)
++NLLIBNAME = libnl-3.1
+ else
+- ifeq ($(NL2FOUND),Y)
+- CFLAGS += -DCONFIG_LIBNL20
+- NLLIBS += -lnl-genl
+- NLLIBNAME = libnl-2.0
++ ifeq ($(NL3FOUND),Y)
++ CFLAGS += -DCONFIG_LIBNL30
++ NLLIBS += $(shell pkg-config --libs libnl-genl-3.0)
++ NLLIBNAME = libnl-3.0
+ else
+- ifeq ($(NL1FOUND),Y)
+- NLLIBNAME = libnl-1
++ ifeq ($(NL2FOUND),Y)
++ CFLAGS += -DCONFIG_LIBNL20
++ NLLIBS += -lnl-genl
++ NLLIBNAME = libnl-2.0
++ else
++ ifeq ($(NL1FOUND),Y)
++ NLLIBNAME = libnl-1
++ endif
+ endif
+ endif
+ endif
diff --git a/net-wireless/crda/metadata.xml b/net-wireless/crda/metadata.xml
new file mode 100644
index 000000000000..784df934cb05
--- /dev/null
+++ b/net-wireless/crda/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>gurligebis@gentoo.org</email>
+ <name>Bjarke Istrup Pedersen</name>
+ </maintainer>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <use>
+ <flag name='gcrypt'>Use libgcrypt instead of openssl for key checking</flag>
+ </use>
+</pkgmetadata>
+
diff --git a/net-wireless/dump1090/Manifest b/net-wireless/dump1090/Manifest
new file mode 100644
index 000000000000..fdb997c22923
--- /dev/null
+++ b/net-wireless/dump1090/Manifest
@@ -0,0 +1 @@
+DIST dump1090-0.0_p20140919.tar.xz 445108 SHA256 5c2248e092036a0f40cd719c79a5f6d7eb089c394ca7d3966c281985d16866e4 SHA512 4b7f915d5dd9c728da36298ecfe6c0e1da17bb9082e5f1c41376e6425dce429c099b0fd2d8436a966f5d3189788b818602f26fb0aea62e5dbe753e489bf0a760 WHIRLPOOL 046b8f70a68fc7b46a787e885e5323ce53ca216cf060f0f64081265d110a6353128191a99e7a1a4c539db3c547b0fcf81312badaf37f83e70bb71e55f91667bc
diff --git a/net-wireless/dump1090/dump1090-0.0_p20140919.ebuild b/net-wireless/dump1090/dump1090-0.0_p20140919.ebuild
new file mode 100644
index 000000000000..495ceb40f9da
--- /dev/null
+++ b/net-wireless/dump1090/dump1090-0.0_p20140919.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs eutils
+
+DESCRIPTION="simple Mode S decoder for RTLSDR devices"
+HOMEPAGE="https://github.com/antirez/dump1090"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="git://github.com/antirez/dump1090.git"
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ S="${WORKDIR}/${PN}"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+RDEPEND="net-wireless/rtl-sdr"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/gmap_usr_share_mv.patch
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" \
+ CFLAGS="$(pkg-config --cflags librtlsdr)" \
+ LIBS="${LDFLAGS} $(pkg-config --libs librtlsdr) -lm -lpthread" \
+ all
+}
+
+src_install() {
+ dobin ${PN}
+ dodoc TODO README.md
+
+ insinto /usr/share/${PN}
+ doins gmap.html
+ doins tools/debug.html
+}
diff --git a/net-wireless/dump1090/dump1090-9999.ebuild b/net-wireless/dump1090/dump1090-9999.ebuild
new file mode 100644
index 000000000000..495ceb40f9da
--- /dev/null
+++ b/net-wireless/dump1090/dump1090-9999.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs eutils
+
+DESCRIPTION="simple Mode S decoder for RTLSDR devices"
+HOMEPAGE="https://github.com/antirez/dump1090"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="git://github.com/antirez/dump1090.git"
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ S="${WORKDIR}/${PN}"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+RDEPEND="net-wireless/rtl-sdr"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/gmap_usr_share_mv.patch
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" \
+ CFLAGS="$(pkg-config --cflags librtlsdr)" \
+ LIBS="${LDFLAGS} $(pkg-config --libs librtlsdr) -lm -lpthread" \
+ all
+}
+
+src_install() {
+ dobin ${PN}
+ dodoc TODO README.md
+
+ insinto /usr/share/${PN}
+ doins gmap.html
+ doins tools/debug.html
+}
diff --git a/net-wireless/dump1090/files/gmap_usr_share_mv.patch b/net-wireless/dump1090/files/gmap_usr_share_mv.patch
new file mode 100644
index 000000000000..e1450e19f1f4
--- /dev/null
+++ b/net-wireless/dump1090/files/gmap_usr_share_mv.patch
@@ -0,0 +1,14 @@
+diff -Naur dump1090-orig/dump1090.c dump1090/dump1090.c
+--- dump1090-orig/dump1090.c 2014-11-17 13:23:59.518047332 -0500
++++ dump1090/dump1090.c 2014-11-17 13:24:33.876048252 -0500
+@@ -2233,8 +2233,8 @@
+ struct stat sbuf;
+ int fd = -1;
+
+- if (stat("gmap.html",&sbuf) != -1 &&
+- (fd = open("gmap.html",O_RDONLY)) != -1)
++ if (stat("/usr/share/dump1090/gmap.html",&sbuf) != -1 &&
++ (fd = open("/usr/share/dump1090/gmap.html",O_RDONLY)) != -1)
+ {
+ content = malloc(sbuf.st_size);
+ if (read(fd,content,sbuf.st_size) == -1) {
diff --git a/net-wireless/dump1090/metadata.xml b/net-wireless/dump1090/metadata.xml
new file mode 100644
index 000000000000..5c64bb297eab
--- /dev/null
+++ b/net-wireless/dump1090/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+ <maintainer>
+ <email>xmw@gentoo.org</email>
+ <name>Michael Weber</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">antirez/dump1090</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/gnome-bluetooth/Manifest b/net-wireless/gnome-bluetooth/Manifest
new file mode 100644
index 000000000000..5e81e3de0231
--- /dev/null
+++ b/net-wireless/gnome-bluetooth/Manifest
@@ -0,0 +1,3 @@
+DIST gnome-bluetooth-3.14.0.tar.xz 1350300 SHA256 e2ef5e0036748eeb4756e8cb57e9909f10b771d290086dd1f377451d3fe18b09 SHA512 5df9367bf7ac08a896d2a34b855c06c0f9f2b8485f1f549659ee42b9ccea5db0983eef271b4611cfc234f590e4cca7485f353342efbe1e28e7068d4d6c2a0beb WHIRLPOOL 920ff7993a3f74bc5da0343097c7a8e1354ab95feda97cff1c8a87f991a6cae6259593a39f072199ae1ef320739b7dd074c5078e6fa66cbf23ed5874c22748ca
+DIST gnome-bluetooth-3.14.1.tar.xz 1355116 SHA256 3d2f6161c43d4c53af37979d6d7ff8714211676bffa80e211f168819e64bb4c9 SHA512 64ccc7fe32b9dce2513caca4e785133376d8ab776cdfe4d6a8146897b4a526cd4426f81d55fddec8971614b4b0a15523ebde9cde0f628aed10c807b2c1d9ad48 WHIRLPOOL 5bfbd131ca17f05a071dfccf627d488fb61e0375a172a627d96152e5bc82294d03a5e1b5cb04ca44921e440d774fd43219843ed1f6153d8a53deac567b8d08b0
+DIST gnome-bluetooth-3.16.1.tar.xz 1357388 SHA256 3feb202d6780a53bc4a570eab5b0179f9351b32c1d3f28151ac2d222453ae08b SHA512 811db04e1ab91585031e86cb55ee7764b0f0dfd88682afaee2e67f99af12619c540a48a3879afd8fb66e39cb35917f637b637e4b6f3ab8b8e908351426b77576 WHIRLPOOL 3019d80e64d5009f06480a65f19bf1b46daaeda4071345e0fea7da666d28301c51d6daf4a671c9582fbf64ff8e5b923444054e68c5a85d0a0e97351ed0bff648
diff --git a/net-wireless/gnome-bluetooth/files/61-gnome-bluetooth.rules b/net-wireless/gnome-bluetooth/files/61-gnome-bluetooth.rules
new file mode 100644
index 000000000000..506574082122
--- /dev/null
+++ b/net-wireless/gnome-bluetooth/files/61-gnome-bluetooth.rules
@@ -0,0 +1,11 @@
+# Get access to /dev/rfkill for users
+# See https://bugzilla.redhat.com/show_bug.cgi?id=514798
+#
+# Updated for udev >= 154
+# http://bugs.debian.org/582188
+# https://bugzilla.redhat.com/show_bug.cgi?id=588660
+
+ENV{ACL_MANAGE}=="0", GOTO="gnome_bluetooth_end"
+ACTION!="add|change", GOTO="gnome_bluetooth_end"
+KERNEL=="rfkill", GROUP="plugdev", MODE="0664", TAG+="udev-acl"
+LABEL="gnome_bluetooth_end"
diff --git a/net-wireless/gnome-bluetooth/files/gnome-bluetooth-3.12.0-gold.patch b/net-wireless/gnome-bluetooth/files/gnome-bluetooth-3.12.0-gold.patch
new file mode 100644
index 000000000000..411e64b530d6
--- /dev/null
+++ b/net-wireless/gnome-bluetooth/files/gnome-bluetooth-3.12.0-gold.patch
@@ -0,0 +1,54 @@
+From 34f21eea0ae2b7bace570eb2d49cf868699e9213 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Tue, 25 Mar 2014 14:25:04 +0100
+Subject: [PATCH] build: Explicitely link to libm
+
+For the "pow()" call.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=726693
+---
+ configure.ac | 2 ++
+ gnome-bluetooth-1.0.pc.in | 2 +-
+ lib/Makefile.am | 2 +-
+ 3 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 31e47f7..f7a74ed 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -51,6 +51,8 @@ GLIB_GSETTINGS
+
+ AC_PATH_PROG([XMLLINT],[xmllint])
+
++AC_CHECK_LIB([m],[sin])
++
+ dnl gtk-doc checks
+ GTK_DOC_CHECK(1.9)
+
+diff --git a/gnome-bluetooth-1.0.pc.in b/gnome-bluetooth-1.0.pc.in
+index 4350bc8..46d7dc1 100644
+--- a/gnome-bluetooth-1.0.pc.in
++++ b/gnome-bluetooth-1.0.pc.in
+@@ -8,5 +8,5 @@ Description: Widgets for Bluetooth device selection
+ Version: @VERSION@
+ Requires: gtk+-3.0 gio-2.0
+ Requires.private: libudev
+-Libs: -L${libdir} -lgnome-bluetooth
++Libs: -L${libdir} -lgnome-bluetooth -lm
+ Cflags: -I${includedir}/gnome-bluetooth
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index c558d0c..c110c27 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -48,7 +48,7 @@ libgnome_bluetooth_la_SOURCES = \
+ $(libgnome_bluetooth_private_headers) \
+ $(libgnome_bluetooth_c_sources)
+
+-libgnome_bluetooth_la_LIBADD = $(LIBGNOMEBT_LIBS)
++libgnome_bluetooth_la_LIBADD = $(LIBGNOMEBT_LIBS) $(LIBS)
+
+ libgnome_bluetooth_la_LDFLAGS = \
+ -version-info $(GNOMEBT_LT_VERSION) \
+--
+2.0.0
+
diff --git a/net-wireless/gnome-bluetooth/gnome-bluetooth-3.14.0.ebuild b/net-wireless/gnome-bluetooth/gnome-bluetooth-3.14.0.ebuild
new file mode 100644
index 000000000000..c46c91f0e43f
--- /dev/null
+++ b/net-wireless/gnome-bluetooth/gnome-bluetooth-3.14.0.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="yes"
+
+inherit eutils gnome2 udev user
+
+DESCRIPTION="Bluetooth graphical utilities integrated with GNOME"
+HOMEPAGE="https://wiki.gnome.org/GnomeBluetooth"
+
+LICENSE="GPL-2+ LGPL-2.1+ FDL-1.1+"
+SLOT="2/13" # subslot = libgnome-bluetooth soname version
+IUSE="+introspection"
+KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.37.3:2
+ >=x11-libs/gtk+-3.11.2:3[introspection?]
+ virtual/udev
+ introspection? ( >=dev-libs/gobject-introspection-0.9.5 )
+"
+RDEPEND="${COMMON_DEPEND}
+ >=net-wireless/bluez-5
+ x11-themes/gnome-icon-theme-symbolic
+"
+DEPEND="${COMMON_DEPEND}
+ !net-wireless/bluez-gnome
+ app-text/docbook-xml-dtd:4.1.2
+ dev-libs/libxml2:2
+ dev-util/gdbus-codegen
+ >=dev-util/gtk-doc-am-1.9
+ >=dev-util/intltool-0.40.0
+ virtual/libudev
+ virtual/pkgconfig
+ x11-proto/xproto
+"
+# eautoreconf needs:
+# gnome-base/gnome-common
+
+pkg_setup() {
+ enewgroup plugdev
+}
+
+src_prepare() {
+ # Regenerate gdbus-codegen files to allow using any glib version; bug #436236
+ rm -v lib/bluetooth-client-glue.{c,h} || die
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ $(use_enable introspection) \
+ --enable-documentation \
+ --disable-desktop-update \
+ --disable-icon-update \
+ --disable-static \
+ ITSTOOL=$(type -P true)
+}
+
+src_install() {
+ gnome2_src_install
+ udev_dorules "${FILESDIR}"/61-${PN}.rules
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ if ! has_version sys-auth/consolekit[acl] && ! has_version sys-apps/systemd[acl] ; then
+ elog "Don't forget to add yourself to the plugdev group "
+ elog "if you want to be able to control bluetooth transmitter."
+ fi
+}
diff --git a/net-wireless/gnome-bluetooth/gnome-bluetooth-3.14.1.ebuild b/net-wireless/gnome-bluetooth/gnome-bluetooth-3.14.1.ebuild
new file mode 100644
index 000000000000..c46c91f0e43f
--- /dev/null
+++ b/net-wireless/gnome-bluetooth/gnome-bluetooth-3.14.1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="yes"
+
+inherit eutils gnome2 udev user
+
+DESCRIPTION="Bluetooth graphical utilities integrated with GNOME"
+HOMEPAGE="https://wiki.gnome.org/GnomeBluetooth"
+
+LICENSE="GPL-2+ LGPL-2.1+ FDL-1.1+"
+SLOT="2/13" # subslot = libgnome-bluetooth soname version
+IUSE="+introspection"
+KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.37.3:2
+ >=x11-libs/gtk+-3.11.2:3[introspection?]
+ virtual/udev
+ introspection? ( >=dev-libs/gobject-introspection-0.9.5 )
+"
+RDEPEND="${COMMON_DEPEND}
+ >=net-wireless/bluez-5
+ x11-themes/gnome-icon-theme-symbolic
+"
+DEPEND="${COMMON_DEPEND}
+ !net-wireless/bluez-gnome
+ app-text/docbook-xml-dtd:4.1.2
+ dev-libs/libxml2:2
+ dev-util/gdbus-codegen
+ >=dev-util/gtk-doc-am-1.9
+ >=dev-util/intltool-0.40.0
+ virtual/libudev
+ virtual/pkgconfig
+ x11-proto/xproto
+"
+# eautoreconf needs:
+# gnome-base/gnome-common
+
+pkg_setup() {
+ enewgroup plugdev
+}
+
+src_prepare() {
+ # Regenerate gdbus-codegen files to allow using any glib version; bug #436236
+ rm -v lib/bluetooth-client-glue.{c,h} || die
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ $(use_enable introspection) \
+ --enable-documentation \
+ --disable-desktop-update \
+ --disable-icon-update \
+ --disable-static \
+ ITSTOOL=$(type -P true)
+}
+
+src_install() {
+ gnome2_src_install
+ udev_dorules "${FILESDIR}"/61-${PN}.rules
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ if ! has_version sys-auth/consolekit[acl] && ! has_version sys-apps/systemd[acl] ; then
+ elog "Don't forget to add yourself to the plugdev group "
+ elog "if you want to be able to control bluetooth transmitter."
+ fi
+}
diff --git a/net-wireless/gnome-bluetooth/gnome-bluetooth-3.16.1.ebuild b/net-wireless/gnome-bluetooth/gnome-bluetooth-3.16.1.ebuild
new file mode 100644
index 000000000000..c1d6505cfbf4
--- /dev/null
+++ b/net-wireless/gnome-bluetooth/gnome-bluetooth-3.16.1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="yes"
+
+inherit eutils gnome2 udev user
+
+DESCRIPTION="Bluetooth graphical utilities integrated with GNOME"
+HOMEPAGE="https://wiki.gnome.org/GnomeBluetooth"
+
+LICENSE="GPL-2+ LGPL-2.1+ FDL-1.1+"
+SLOT="2/13" # subslot = libgnome-bluetooth soname version
+IUSE="+introspection"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.38:2
+ >=x11-libs/gtk+-3.12:3[introspection?]
+ virtual/udev
+ introspection? ( >=dev-libs/gobject-introspection-0.9.5 )
+"
+RDEPEND="${COMMON_DEPEND}
+ >=net-wireless/bluez-5
+ x11-themes/gnome-icon-theme-symbolic
+"
+DEPEND="${COMMON_DEPEND}
+ !net-wireless/bluez-gnome
+ app-text/docbook-xml-dtd:4.1.2
+ dev-libs/libxml2:2
+ dev-util/gdbus-codegen
+ >=dev-util/gtk-doc-am-1.9
+ >=dev-util/intltool-0.40.0
+ virtual/libudev
+ virtual/pkgconfig
+ x11-proto/xproto
+"
+# eautoreconf needs:
+# gnome-base/gnome-common
+
+pkg_setup() {
+ enewgroup plugdev
+}
+
+src_prepare() {
+ # Regenerate gdbus-codegen files to allow using any glib version; bug #436236
+ rm -v lib/bluetooth-client-glue.{c,h} || die
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ $(use_enable introspection) \
+ --enable-documentation \
+ --disable-desktop-update \
+ --disable-icon-update \
+ --disable-static \
+ ITSTOOL=$(type -P true)
+}
+
+src_install() {
+ gnome2_src_install
+ udev_dorules "${FILESDIR}"/61-${PN}.rules
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ if ! has_version sys-auth/consolekit[acl] && ! has_version sys-apps/systemd[acl] ; then
+ elog "Don't forget to add yourself to the plugdev group "
+ elog "if you want to be able to control bluetooth transmitter."
+ fi
+}
diff --git a/net-wireless/gnome-bluetooth/metadata.xml b/net-wireless/gnome-bluetooth/metadata.xml
new file mode 100644
index 000000000000..da6fd63d0085
--- /dev/null
+++ b/net-wireless/gnome-bluetooth/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnome</herd>
+</pkgmetadata>
diff --git a/net-wireless/gnuradio/Manifest b/net-wireless/gnuradio/Manifest
new file mode 100644
index 000000000000..ed80eb45de25
--- /dev/null
+++ b/net-wireless/gnuradio/Manifest
@@ -0,0 +1,3 @@
+DIST gnuradio-3.6.5.1.tar.gz 3150283 SHA256 0875d2f0a7da0f3bcc1771b528b0f98f79d9ab69aa1ef953651bbbe1f57b4621 SHA512 23a22aed482da11005b17e5197ee3ba24d442b30309522b0858e694b58f46b76cc050143d365623c7dd4241cdf8b9f988e1a4dabe2e1f98d0fd4cca71bbb82e8 WHIRLPOOL 7cf55be5fac7891a737d228d83718bbc43f9069c6275c5ac465ae11088559dca5e7fa31239e281271b529aa8b9ae1a0efe3850a16a40e53c0f1fe57e351ff2a8
+DIST gnuradio-3.7.6.1.tar.gz 3588833 SHA256 39dede70eec36f430c4895900bbd7ed266aa9e846d0a362987e806b7197c4c0b SHA512 88ec30b2bd93ca032c29f4606856a8e70b0123474fd84115657804429f381dea78f97a7523c9684acad6a27b357ddf876632e957de5c6e0170045dc38d121939 WHIRLPOOL 97d70e403fe46b0afbd1e6f0812f8d9de4ea506dcb2190a23d9a0f0499662f9e2bbaa86d1b624f7c621ae1675094f92cd295bc273db0759b2647e2dfb2a49b43
+DIST gnuradio-3.7.7.1.tar.gz 3845988 SHA256 2b27b13fc734ab5882e42c1661d433c0c097fd8b55b682f00626fa96c356584e SHA512 7be9568d19cbe03f3c229dbda5fc8d448a4a57d84bd9f8b91a400c65b526414539536c0a391b15d5f0e63bf22ef5675dc3ed8a6ed94ce3b1e4328948fa202ba1 WHIRLPOOL c54e26af37ecb27dd515d1ca320ccf363f6a9bbff61724f7d98f751d69a32ba21f2a631ce07caf273596f4297ff92359d2469768cd927ae9d680c8a8bbd25dbd
diff --git a/net-wireless/gnuradio/files/gnuradio-3.6.1-automagic-audio.patch b/net-wireless/gnuradio/files/gnuradio-3.6.1-automagic-audio.patch
new file mode 100644
index 000000000000..4fa1c664145d
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-3.6.1-automagic-audio.patch
@@ -0,0 +1,90 @@
+diff -ur a/gr-audio/lib/CMakeLists.txt b/gr-audio/lib/CMakeLists.txt
+--- a/gr-audio/lib/CMakeLists.txt 2012-06-11 17:55:20.000000000 +0200
++++ b/gr-audio/lib/CMakeLists.txt 2012-06-12 23:34:58.601611171 +0200
+@@ -38,7 +38,11 @@
+ ########################################################################
+ find_package(ALSA)
+
+-if(ALSA_FOUND)
++GR_REGISTER_COMPONENT("gr-audio-alsa" ENABLE_GR_AUDIO_ALSA
++ ALSA_FOUND
++)
++
++if(ALSA_FOUND AND ENABLE_GR_AUDIO_ALSA)
+
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/alsa ${ALSA_INCLUDE_DIRS})
+ list(APPEND gr_audio_libs ${ALSA_LIBRARIES})
+@@ -49,14 +53,18 @@
+ )
+ list(APPEND gr_audio_confs ${CMAKE_CURRENT_SOURCE_DIR}/alsa/gr-audio-alsa.conf)
+
+-endif(ALSA_FOUND)
++endif(ALSA_FOUND AND ENABLE_GR_AUDIO_ALSA)
+
+ ########################################################################
+ ## OSS Support
+ ########################################################################
+ find_package(OSS)
+
+-if(OSS_FOUND)
++GR_REGISTER_COMPONENT("gr-audio-oss" ENABLE_GR_AUDIO_OSS
++ OSS_FOUND
++)
++
++if(OSS_FOUND AND ENABLE_GR_AUDIO_OSS)
+
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/oss ${OSS_INCLUDE_DIRS})
+ list(APPEND gr_audio_sources
+@@ -65,7 +73,7 @@
+ )
+ list(APPEND gr_audio_confs ${CMAKE_CURRENT_SOURCE_DIR}/oss/gr-audio-oss.conf)
+
+-endif(OSS_FOUND)
++endif(OSS_FOUND AND ENABLE_GR_AUDIO_OSS)
+
+
+ ########################################################################
+@@ -73,7 +81,11 @@
+ ########################################################################
+ find_package(Jack)
+
+-if(JACK_FOUND)
++GR_REGISTER_COMPONENT("gr-audio-jack" ENABLE_GR_AUDIO_JACK
++ JACK_FOUND
++)
++
++if(JACK_FOUND AND ENABLE_GR_AUDIO_JACK)
+
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/jack ${JACK_INCLUDE_DIRS})
+ list(APPEND gr_audio_libs ${JACK_LIBRARIES})
+@@ -85,7 +97,7 @@
+ )
+ list(APPEND gr_audio_confs ${CMAKE_CURRENT_SOURCE_DIR}/jack/gr-audio-jack.conf)
+
+-endif(JACK_FOUND)
++endif(JACK_FOUND AND ENABLE_GR_AUDIO_JACK)
+
+ ########################################################################
+ ## OSX Support
+@@ -115,7 +127,11 @@
+ ########################################################################
+ find_package(Portaudio)
+
+-if(PORTAUDIO_FOUND)
++GR_REGISTER_COMPONENT("gr-audio-portaudio" ENABLE_GR_AUDIO_PORTAUDIO
++ PORTAUDIO_FOUND
++)
++
++if(PORTAUDIO_FOUND AND ENABLE_GR_AUDIO_PORTAUDIO)
+
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/portaudio ${PORTAUDIO_INCLUDE_DIRS})
+ list(APPEND gr_audio_libs ${PORTAUDIO_LIBRARIES})
+@@ -127,7 +143,7 @@
+ )
+ list(APPEND gr_audio_confs ${CMAKE_CURRENT_SOURCE_DIR}/portaudio/gr-audio-portaudio.conf)
+
+-endif(PORTAUDIO_FOUND)
++endif(PORTAUDIO_FOUND AND ENABLE_GR_AUDIO_PORTAUDIO)
+
+ ########################################################################
+ ## Windows Support
diff --git a/net-wireless/gnuradio/files/gnuradio-3.7.4-include_stringh.patch b/net-wireless/gnuradio/files/gnuradio-3.7.4-include_stringh.patch
new file mode 100644
index 000000000000..1450e101cd05
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-3.7.4-include_stringh.patch
@@ -0,0 +1,18 @@
+commit 09ba248d3fc6afbebb784edfaf5e61413cd05255
+Author: Tom Rondeau <tom@trondeau.com>
+Date: Sun Jul 27 10:50:17 2014 -0400
+
+ volk: adding string.h to puppet for memset calls.
+
+diff --git a/volk/kernels/volk/volk_8u_conv_k7_r2puppet_8u.h b/volk/kernels/volk/volk_8u_conv_k7_r2puppet_8u.h
+index fef9db5..8d31e46 100644
+--- a/volk/kernels/volk/volk_8u_conv_k7_r2puppet_8u.h
++++ b/volk/kernels/volk/volk_8u_conv_k7_r2puppet_8u.h
+@@ -3,6 +3,7 @@
+
+ #include <volk/volk.h>
+ #include <volk/volk_8u_x4_conv_k7_r2_8u.h>
++#include <string.h>
+
+ typedef union {
+ //decision_t is a BIT vector
diff --git a/net-wireless/gnuradio/files/gnuradio-3.7.6.1-qwt-with-qt5-support.patch b/net-wireless/gnuradio/files/gnuradio-3.7.6.1-qwt-with-qt5-support.patch
new file mode 100644
index 000000000000..f155ed51db73
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-3.7.6.1-qwt-with-qt5-support.patch
@@ -0,0 +1,23 @@
+From b3bdd301debb2eb859473a25b23d068fa66f6cb1 Mon Sep 17 00:00:00 2001
+From: Zero_Chaos <sidhayn@gmail.com>
+Date: Fri, 20 Feb 2015 15:54:00 -0500
+Subject: [PATCH] Update FindQwt.cmake to support qwt6-qt4
+
+allow finding qwt6-qt4 library. Some distros have added support for both qt4 and qt5 in qwt6, the common name the library uses appears to be qwt6-qt4. The pre-existance of the qwt-qt4 entry suggests this naming convention is reasonably standard (or at least this isn't a unique hack)
+---
+ cmake/Modules/FindQwt.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/Modules/FindQwt.cmake b/cmake/Modules/FindQwt.cmake
+index 68f55bf..3ce49aa 100644
+--- a/cmake/Modules/FindQwt.cmake
++++ b/cmake/Modules/FindQwt.cmake
+@@ -22,7 +22,7 @@ find_path(QWT_INCLUDE_DIRS
+ )
+
+ find_library (QWT_LIBRARIES
+- NAMES qwt6 qwt qwt-qt4
++ NAMES qwt6 qwt6-qt4 qwt qwt-qt4
+ HINTS
+ ${CMAKE_INSTALL_PREFIX}/lib
+ ${CMAKE_INSTALL_PREFIX}/lib64
diff --git a/net-wireless/gnuradio/files/gnuradio-9999-build-type-nonfatal.patch b/net-wireless/gnuradio/files/gnuradio-9999-build-type-nonfatal.patch
new file mode 100644
index 000000000000..f4fcd982b8b0
--- /dev/null
+++ b/net-wireless/gnuradio/files/gnuradio-9999-build-type-nonfatal.patch
@@ -0,0 +1,11 @@
+diff -Naur gnuradio-9999/cmake/Modules/GrBuildTypes.cmake gnuradio-9999-hacked/cmake/Modules/GrBuildTypes.cmake
+--- gnuradio-9999/cmake/Modules/GrBuildTypes.cmake 2014-07-26 01:54:47.645866658 -0400
++++ gnuradio-9999-hacked/cmake/Modules/GrBuildTypes.cmake 2014-07-26 01:56:47.193869859 -0400
+@@ -61,7 +61,6 @@
+ endif(${_settype} STREQUAL ${_btype})
+ endforeach(btype)
+ # Build type not found; error out
+- message(FATAL_ERROR "Build type '${settype}' not valid, must be one of: ${AVAIL_BUILDTYPES}")
+ endfunction(GR_CHECK_BUILD_TYPE)
+
+ ########################################################################
diff --git a/net-wireless/gnuradio/gnuradio-3.6.5.1-r2.ebuild b/net-wireless/gnuradio/gnuradio-3.6.5.1-r2.ebuild
new file mode 100644
index 000000000000..c958b9db163a
--- /dev/null
+++ b/net-wireless/gnuradio/gnuradio-3.6.5.1-r2.ebuild
@@ -0,0 +1,196 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils fdo-mime python-single-r1
+
+DESCRIPTION="Toolkit that provides signal processing blocks to implement software radios"
+HOMEPAGE="http://gnuradio.org/"
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="http://gnuradio.org/git/gnuradio.git"
+ inherit git-2
+ KEYWORDS=""
+else
+ SRC_URI="http://gnuradio.org/releases/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+IUSE="alsa +analog +digital doc examples fcd +filter grc jack oss pager performance-counters portaudio qt4 sdl uhd +utils wavelet wxwidgets"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ analog? ( filter )
+ digital? ( filter analog )
+ pager? ( filter analog )
+ qt4? ( filter )
+ uhd? ( filter analog )
+ fcd? ( || ( alsa oss ) )
+ wavelet? ( analog )
+ wxwidgets? ( filter analog )"
+
+# bug #348206
+# comedi? ( >=sci-electronics/comedilib-0.7 )
+# boost-1.52.0 is blacklisted, bug #461578, upstream #513, boost #7669
+RDEPEND="${PYTHON_DEPS}
+ >=dev-lang/orc-0.4.12
+ dev-libs/boost:0=[${PYTHON_USEDEP}]
+ !<=dev-libs/boost-1.52.0-r6:0/1.52
+ dev-util/cppunit
+ sci-libs/fftw:3.0=
+ fcd? ( virtual/libusb:1 )
+ alsa? (
+ media-libs/alsa-lib[${PYTHON_USEDEP}]
+ )
+ grc? (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pygtk:2[${PYTHON_USEDEP}]
+ )
+ jack? (
+ media-sound/jack-audio-connection-kit
+ )
+ portaudio? (
+ >=media-libs/portaudio-19_pre
+ )
+ qt4? (
+ dev-python/PyQt4[X,opengl,${PYTHON_USEDEP}]
+ dev-python/pyqwt:5
+ dev-qt/qtgui:4
+ )
+ sdl? ( media-libs/libsdl )
+ uhd? ( >=net-wireless/uhd-3.4.3-r1:=[${PYTHON_USEDEP}] )
+ wavelet? (
+ sci-libs/gsl
+ )
+ wxwidgets? (
+ dev-python/wxpython:2.8[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}
+ dev-lang/swig
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=app-doc/doxygen-1.5.7.1
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+ grc? (
+ x11-misc/xdg-utils
+ )
+ oss? (
+ virtual/os-headers
+ )
+"
+
+src_prepare() {
+ # Useless UI element would require qt3support, bug #365019
+ sed -i '/qPixmapFromMimeSource/d' "${S}"/gr-qtgui/lib/spectrumdisplayform.ui || die
+ epatch "${FILESDIR}"/${PN}-3.6.1-automagic-audio.patch
+}
+
+src_configure() {
+ # TODO: docs are installed to /usr/share/doc/${PN} not /usr/share/doc/${PF}
+ # SYSCONFDIR/GR_PREFSDIR default to install below CMAKE_INSTALL_PREFIX
+ mycmakeargs=(
+ $(cmake-utils_use_enable alsa GR_AUDIO_ALSA) \
+ $(cmake-utils_use_enable analog GR_ANALOG) \
+ $(cmake-utils_use_enable digital GR_DIGITAL) \
+ $(cmake-utils_use_enable doc DOXYGEN) \
+ $(cmake-utils_use_enable doc SPHINX) \
+ $(cmake-utils_use_enable fcd GR_FCD) \
+ $(cmake-utils_use_enable filter GR_FILTER) \
+ $(cmake-utils_use_enable grc GRC) \
+ $(cmake-utils_use_enable jack GR_AUDIO_JACK) \
+ $(cmake-utils_use_enable oss GR_AUDIO_OSS) \
+ $(cmake-utils_use_enable pager GR_PAGER) \
+ $(cmake-utils_use_enable performance-counters ENABLE_PERFORMANCE_COUNTERS) \
+ $(cmake-utils_use_enable portaudio GR_AUDIO_PORTAUDIO) \
+ $(cmake-utils_use_enable uhd GR_UHD) \
+ $(cmake-utils_use_enable utils GR_UTILS) \
+ $(cmake-utils_use_enable wavelet GR_WAVELET) \
+ $(cmake-utils_use_enable wxwidgets GR_WXGUI) \
+ $(cmake-utils_use_enable qt4 GR_QTGUI) \
+ $(cmake-utils_use_enable sdl GR_VIDEO_SDL) \
+ -DENABLE_GR_CORE=ON \
+ -DSYSCONFDIR="${EPREFIX}"/etc \
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ use qt4 && mycmakeargs+=( -DQWT_INCLUDE_DIRS="${EPREFIX}"/usr/include/qwt5 )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ if use examples ; then
+ dodir /usr/share/doc/${PF}/
+ mv "${ED}"/usr/share/${PN}/examples "${ED}"/usr/share/doc/${PF}/ || die
+ else
+ # It seems that the examples are always installed
+ rm -rf "${ED}"/usr/share/${PN}/examples || die
+ fi
+
+ # We install the mimetypes to the correct locations from the ebuild
+ rm -rf "${ED}"/usr/share/${PN}/grc/freedesktop || die
+ rm -f "${ED}"/usr/libexec/${PN}/grc_setup_freedesktop || die
+
+ # Install icons, menu items and mime-types for GRC
+ if use grc ; then
+ local fd_path="${S}/grc/freedesktop"
+ insinto /usr/share/mime/packages
+ doins "${fd_path}/${PN}-grc.xml"
+
+ domenu "${fd_path}/"*.desktop
+ doicon "${fd_path}/"*.png
+ fi
+
+ python_fix_shebang "${ED}"
+}
+
+src_test()
+{
+ ctest -E qtgui
+}
+
+pkg_postinst()
+{
+ local GRC_ICON_SIZES="32 48 64 128 256"
+
+ if use grc ; then
+ fdo-mime_desktop_database_update
+ fdo-mime_mime_database_update
+ for size in ${GRC_ICON_SIZES} ; do
+ xdg-icon-resource install --noupdate --context mimetypes --size ${size} \
+ "${EROOT}/usr/share/pixmaps/grc-icon-${size}.png" application-gnuradio-grc \
+ || die "icon resource installation failed"
+ xdg-icon-resource install --noupdate --context apps --size ${size} \
+ "${EROOT}/usr/share/pixmaps/grc-icon-${size}.png" gnuradio-grc \
+ || die "icon resource installation failed"
+ done
+ xdg-icon-resource forceupdate
+ fi
+}
+
+pkg_postrm()
+{
+ local GRC_ICON_SIZES="32 48 64 128 256"
+
+ if use grc ; then
+ fdo-mime_desktop_database_update
+ fdo-mime_mime_database_update
+ for size in ${GRC_ICON_SIZES} ; do
+ xdg-icon-resource uninstall --noupdate --context mimetypes --size ${size} \
+ application-gnuradio-grc || ewarn "icon uninstall failed"
+ xdg-icon-resource uninstall --noupdate --context apps --size ${size} \
+ gnuradio-grc || ewarn "icon uninstall failed"
+
+ done
+ xdg-icon-resource forceupdate
+ fi
+}
diff --git a/net-wireless/gnuradio/gnuradio-3.7.6.1-r2.ebuild b/net-wireless/gnuradio/gnuradio-3.7.6.1-r2.ebuild
new file mode 100644
index 000000000000..96c7965bdf61
--- /dev/null
+++ b/net-wireless/gnuradio/gnuradio-3.7.6.1-r2.ebuild
@@ -0,0 +1,232 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+CMAKE_BUILD_TYPE="None"
+inherit cmake-utils fdo-mime gnome2-utils python-single-r1 eutils
+
+DESCRIPTION="Toolkit that provides signal processing blocks to implement software radios"
+HOMEPAGE="http://gnuradio.org/"
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="http://gnuradio.org/git/gnuradio.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="http://s3-dist.gnuradio.org/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+IUSE="+audio +alsa atsc +analog +digital channels doc dtv examples fcd fec +filter grc jack log noaa oss pager performance-counters portaudio +qt4 sdl test trellis uhd vocoder +utils wavelet wxwidgets zeromq"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ audio? ( || ( alsa oss jack portaudio ) )
+ alsa? ( audio )
+ oss? ( audio )
+ jack? ( audio )
+ portaudio? ( audio )
+ analog? ( filter )
+ digital? ( filter analog )
+ dtv? ( fec )
+ pager? ( filter analog )
+ qt4? ( filter )
+ uhd? ( filter analog )
+ fcd? ( || ( alsa oss ) )
+ wavelet? ( analog )
+ wxwidgets? ( filter analog )"
+
+# bug #348206
+# comedi? ( >=sci-electronics/comedilib-0.8 )
+# boost-1.52.0 is blacklisted, bug #461578, upstream #513, boost #7669
+RDEPEND="${PYTHON_DEPS}
+ >=dev-lang/orc-0.4.12
+ dev-libs/boost:0=[${PYTHON_USEDEP}]
+ !<=dev-libs/boost-1.52.0-r6:0/1.52
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/fftw:3.0=
+ alsa? (
+ media-libs/alsa-lib[${PYTHON_USEDEP}]
+ )
+ fcd? ( virtual/libusb:1 )
+ filter? ( sci-libs/scipy )
+ grc? (
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/pygtk-2.10:2[${PYTHON_USEDEP}]
+ )
+ jack? (
+ media-sound/jack-audio-connection-kit
+ )
+ log? ( dev-libs/log4cpp )
+ portaudio? (
+ >=media-libs/portaudio-19_pre
+ )
+ qt4? (
+ >=dev-python/PyQt4-4.4[X,opengl,${PYTHON_USEDEP}]
+ >=dev-python/pyqwt-5.2:5[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-4.4:4
+ >=dev-qt/qtgui-4.4:4
+ x11-libs/qwt:6
+ )
+ sdl? ( >=media-libs/libsdl-1.2.0 )
+ uhd? ( >=net-wireless/uhd-3.4.3-r1:=[${PYTHON_USEDEP}] )
+ utils? ( dev-python/matplotlib[${PYTHON_USEDEP}] )
+ vocoder? ( media-sound/gsm )
+ wavelet? (
+ >=sci-libs/gsl-1.10
+ )
+ wxwidgets? (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/wxpython:2.8[${PYTHON_USEDEP}]
+ )
+ zeromq? ( >=net-libs/zeromq-2.1.11 )
+ "
+
+DEPEND="${RDEPEND}
+ dev-lang/swig
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=app-doc/doxygen-1.5.7.1
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+ grc? ( x11-misc/xdg-utils )
+ oss? ( virtual/os-headers )
+ test? ( >=dev-util/cppunit-1.9.14 )
+ zeromq? ( net-libs/cppzmq )
+"
+
+src_prepare() {
+ gnome2_environment_reset #534582
+
+ # Useless UI element would require qt3support, bug #365019
+ sed -i '/qPixmapFromMimeSource/d' "${S}"/gr-qtgui/lib/spectrumdisplayform.ui || die
+ epatch "${FILESDIR}/${P}-qwt-with-qt5-support.patch"
+ epatch_user
+}
+
+src_configure() {
+ # TODO: docs are installed to /usr/share/doc/${PN} not /usr/share/doc/${PF}
+ # SYSCONFDIR/GR_PREFSDIR default to install below CMAKE_INSTALL_PREFIX
+ #audio provider is still automagic
+ #zeromq missing deps isn't fatal
+ mycmakeargs=(
+ -DENABLE_DEFAULT=OFF
+ -DENABLE_GNURADIO_RUNTIME=ON
+ -DENABLE_VOLK=ON
+ -DENABLE_PYTHON=ON
+ -DENABLE_GR_BLOCKS=ON
+ -DENABLE_GR_FFT=ON
+ -DENABLE_GR_AUDIO=ON
+ $(cmake-utils_use_enable alsa GR_AUDIO_ALSA) \
+ $(cmake-utils_use_enable analog GR_ANALOG) \
+ $(cmake-utils_use_enable atsc GR_ATSC) \
+ $(cmake-utils_use_enable channels GR_CHANNELS) \
+ $(cmake-utils_use_enable digital GR_DIGITAL) \
+ $(cmake-utils_use_enable doc DOXYGEN) \
+ $(cmake-utils_use_enable doc SPHINX) \
+ $(cmake-utils_use_enable dtv GR_DTV) \
+ $(cmake-utils_use_enable fcd GR_FCD) \
+ $(cmake-utils_use_enable fec GR_FEC) \
+ $(cmake-utils_use_enable filter GR_FILTER) \
+ $(cmake-utils_use_enable grc GRC) \
+ $(cmake-utils_use_enable jack GR_AUDIO_JACK) \
+ $(cmake-utils_use_enable log GR_LOG) \
+ $(cmake-utils_use_enable noaa GR_NOAA) \
+ $(cmake-utils_use_enable oss GR_AUDIO_OSS) \
+ $(cmake-utils_use_enable pager GR_PAGER) \
+ $(cmake-utils_use_enable performance-counters ENABLE_PERFORMANCE_COUNTERS) \
+ $(cmake-utils_use_enable portaudio GR_AUDIO_PORTAUDIO) \
+ $(cmake-utils_use_enable test TESTING) \
+ $(cmake-utils_use_enable trellis GR_TRELLIS) \
+ $(cmake-utils_use_enable uhd GR_UHD) \
+ $(cmake-utils_use_enable utils GR_UTILS) \
+ $(cmake-utils_use_enable vocoder GR_VOCODER) \
+ $(cmake-utils_use_enable wavelet GR_WAVELET) \
+ $(cmake-utils_use_enable wxwidgets GR_WXGUI) \
+ $(cmake-utils_use_enable qt4 GR_QTGUI) \
+ $(cmake-utils_use_enable sdl GR_VIDEO_SDL) \
+ $(cmake-utils_use_enable zeromq GR_ZEROMQ) \
+ -DENABLE_GR_CORE=ON \
+ -DSYSCONFDIR="${EPREFIX}"/etc \
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ use vocoder && mycmakeargs+=( -DGR_USE_SYSTEM_LIBGSM=TRUE )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ if use examples ; then
+ dodir /usr/share/doc/${PF}/
+ mv "${ED}"/usr/share/${PN}/examples "${ED}"/usr/share/doc/${PF}/ || die
+ else
+ # It seems that the examples are always installed
+ rm -rf "${ED}"/usr/share/${PN}/examples || die
+ fi
+
+ # We install the mimetypes to the correct locations from the ebuild
+ rm -rf "${ED}"/usr/share/${PN}/grc/freedesktop || die
+ rm -f "${ED}"/usr/libexec/${PN}/grc_setup_freedesktop || die
+
+ # Install icons, menu items and mime-types for GRC
+ if use grc ; then
+ local fd_path="${S}/grc/freedesktop"
+ insinto /usr/share/mime/packages
+ doins "${fd_path}/${PN}-grc.xml"
+
+ domenu "${fd_path}/"*.desktop
+ doicon "${fd_path}/"*.png
+ fi
+
+ python_fix_shebang "${ED}"
+}
+
+src_test()
+{
+ ctest -E qtgui
+}
+
+pkg_postinst()
+{
+ local GRC_ICON_SIZES="32 48 64 128 256"
+
+ if use grc ; then
+ fdo-mime_desktop_database_update
+ fdo-mime_mime_database_update
+ for size in ${GRC_ICON_SIZES} ; do
+ xdg-icon-resource install --noupdate --context mimetypes --size ${size} \
+ "${EROOT}/usr/share/pixmaps/grc-icon-${size}.png" application-gnuradio-grc \
+ || die "icon resource installation failed"
+ xdg-icon-resource install --noupdate --context apps --size ${size} \
+ "${EROOT}/usr/share/pixmaps/grc-icon-${size}.png" gnuradio-grc \
+ || die "icon resource installation failed"
+ done
+ xdg-icon-resource forceupdate
+ fi
+}
+
+pkg_postrm()
+{
+ local GRC_ICON_SIZES="32 48 64 128 256"
+
+ if use grc ; then
+ fdo-mime_desktop_database_update
+ fdo-mime_mime_database_update
+ for size in ${GRC_ICON_SIZES} ; do
+ xdg-icon-resource uninstall --noupdate --context mimetypes --size ${size} \
+ application-gnuradio-grc || ewarn "icon uninstall failed"
+ xdg-icon-resource uninstall --noupdate --context apps --size ${size} \
+ gnuradio-grc || ewarn "icon uninstall failed"
+
+ done
+ xdg-icon-resource forceupdate
+ fi
+}
diff --git a/net-wireless/gnuradio/gnuradio-3.7.7.1.ebuild b/net-wireless/gnuradio/gnuradio-3.7.7.1.ebuild
new file mode 100644
index 000000000000..2933b8eb1087
--- /dev/null
+++ b/net-wireless/gnuradio/gnuradio-3.7.7.1.ebuild
@@ -0,0 +1,231 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+CMAKE_BUILD_TYPE="None"
+inherit cmake-utils fdo-mime gnome2-utils python-single-r1 eutils
+
+DESCRIPTION="Toolkit that provides signal processing blocks to implement software radios"
+HOMEPAGE="http://gnuradio.org/"
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="http://gnuradio.org/git/gnuradio.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="http://gnuradio.org/releases/gnuradio/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+IUSE="+audio +alsa atsc +analog +digital channels doc dtv examples fcd fec +filter grc jack log noaa oss pager performance-counters portaudio +qt4 sdl test trellis uhd vocoder +utils wavelet wxwidgets zeromq"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ audio? ( || ( alsa oss jack portaudio ) )
+ alsa? ( audio )
+ oss? ( audio )
+ jack? ( audio )
+ portaudio? ( audio )
+ analog? ( filter )
+ digital? ( filter analog )
+ dtv? ( fec )
+ pager? ( filter analog )
+ qt4? ( filter )
+ uhd? ( filter analog )
+ fcd? ( || ( alsa oss ) )
+ wavelet? ( analog )
+ wxwidgets? ( filter analog )"
+
+# bug #348206
+# comedi? ( >=sci-electronics/comedilib-0.8 )
+# boost-1.52.0 is blacklisted, bug #461578, upstream #513, boost #7669
+RDEPEND="${PYTHON_DEPS}
+ >=dev-lang/orc-0.4.12
+ dev-libs/boost:0=[${PYTHON_USEDEP}]
+ !<=dev-libs/boost-1.52.0-r6:0/1.52
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/fftw:3.0=
+ alsa? (
+ media-libs/alsa-lib[${PYTHON_USEDEP}]
+ )
+ fcd? ( virtual/libusb:1 )
+ filter? ( sci-libs/scipy )
+ grc? (
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/pygtk-2.10:2[${PYTHON_USEDEP}]
+ )
+ jack? (
+ media-sound/jack-audio-connection-kit
+ )
+ log? ( dev-libs/log4cpp )
+ portaudio? (
+ >=media-libs/portaudio-19_pre
+ )
+ qt4? (
+ >=dev-python/PyQt4-4.4[X,opengl,${PYTHON_USEDEP}]
+ >=dev-python/pyqwt-5.2:5[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-4.4:4
+ >=dev-qt/qtgui-4.4:4
+ x11-libs/qwt:6
+ )
+ sdl? ( >=media-libs/libsdl-1.2.0 )
+ uhd? ( >=net-wireless/uhd-3.4.3-r1:=[${PYTHON_USEDEP}] )
+ utils? ( dev-python/matplotlib[${PYTHON_USEDEP}] )
+ vocoder? ( media-sound/gsm )
+ wavelet? (
+ >=sci-libs/gsl-1.10
+ )
+ wxwidgets? (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/wxpython:2.8[${PYTHON_USEDEP}]
+ )
+ zeromq? ( >=net-libs/zeromq-2.1.11 )
+ "
+
+DEPEND="${RDEPEND}
+ >=dev-lang/swig-3.0.5
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=app-doc/doxygen-1.5.7.1
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+ grc? ( x11-misc/xdg-utils )
+ oss? ( virtual/os-headers )
+ test? ( >=dev-util/cppunit-1.9.14 )
+ zeromq? ( net-libs/cppzmq )
+"
+
+src_prepare() {
+ gnome2_environment_reset #534582
+
+ # Useless UI element would require qt3support, bug #365019
+ sed -i '/qPixmapFromMimeSource/d' "${S}"/gr-qtgui/lib/spectrumdisplayform.ui || die
+ epatch_user
+}
+
+src_configure() {
+ # SYSCONFDIR/GR_PREFSDIR default to install below CMAKE_INSTALL_PREFIX
+ #audio provider is still automagic
+ #zeromq missing deps isn't fatal
+ mycmakeargs=(
+ -DENABLE_DEFAULT=OFF
+ -DENABLE_GNURADIO_RUNTIME=ON
+ -DENABLE_VOLK=ON
+ -DENABLE_PYTHON=ON
+ -DENABLE_GR_BLOCKS=ON
+ -DENABLE_GR_FFT=ON
+ -DENABLE_GR_AUDIO=ON
+ $(cmake-utils_use_enable alsa GR_AUDIO_ALSA) \
+ $(cmake-utils_use_enable analog GR_ANALOG) \
+ $(cmake-utils_use_enable atsc GR_ATSC) \
+ $(cmake-utils_use_enable channels GR_CHANNELS) \
+ $(cmake-utils_use_enable digital GR_DIGITAL) \
+ $(cmake-utils_use_enable doc DOXYGEN) \
+ $(cmake-utils_use_enable doc SPHINX) \
+ $(cmake-utils_use_enable dtv GR_DTV) \
+ $(cmake-utils_use_enable fcd GR_FCD) \
+ $(cmake-utils_use_enable fec GR_FEC) \
+ $(cmake-utils_use_enable filter GR_FILTER) \
+ $(cmake-utils_use_enable grc GRC) \
+ $(cmake-utils_use_enable jack GR_AUDIO_JACK) \
+ $(cmake-utils_use_enable log GR_LOG) \
+ $(cmake-utils_use_enable noaa GR_NOAA) \
+ $(cmake-utils_use_enable oss GR_AUDIO_OSS) \
+ $(cmake-utils_use_enable pager GR_PAGER) \
+ $(cmake-utils_use_enable performance-counters ENABLE_PERFORMANCE_COUNTERS) \
+ $(cmake-utils_use_enable portaudio GR_AUDIO_PORTAUDIO) \
+ $(cmake-utils_use_enable test TESTING) \
+ $(cmake-utils_use_enable trellis GR_TRELLIS) \
+ $(cmake-utils_use_enable uhd GR_UHD) \
+ $(cmake-utils_use_enable utils GR_UTILS) \
+ $(cmake-utils_use_enable vocoder GR_VOCODER) \
+ $(cmake-utils_use_enable wavelet GR_WAVELET) \
+ $(cmake-utils_use_enable wxwidgets GR_WXGUI) \
+ $(cmake-utils_use_enable qt4 GR_QTGUI) \
+ $(cmake-utils_use_enable sdl GR_VIDEO_SDL) \
+ $(cmake-utils_use_enable zeromq GR_ZEROMQ) \
+ -DENABLE_GR_CORE=ON \
+ -DSYSCONFDIR="${EPREFIX}"/etc \
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ -DGR_PKG_DOC_DIR='${GR_DOC_DIR}/${CMAKE_PROJECT_NAME}'-"${PVF}"
+ )
+ use vocoder && mycmakeargs+=( -DGR_USE_SYSTEM_LIBGSM=TRUE )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ if use examples ; then
+ dodir /usr/share/doc/${PF}/
+ mv "${ED}"/usr/share/${PN}/examples "${ED}"/usr/share/doc/${PF}/ || die
+ else
+ # It seems that the examples are always installed
+ rm -rf "${ED}"/usr/share/${PN}/examples || die
+ fi
+
+ # We install the mimetypes to the correct locations from the ebuild
+ rm -rf "${ED}"/usr/share/${PN}/grc/freedesktop || die
+ rm -f "${ED}"/usr/libexec/${PN}/grc_setup_freedesktop || die
+
+ # Install icons, menu items and mime-types for GRC
+ if use grc ; then
+ local fd_path="${S}/grc/freedesktop"
+ insinto /usr/share/mime/packages
+ doins "${fd_path}/${PN}-grc.xml"
+
+ domenu "${fd_path}/"*.desktop
+ doicon "${fd_path}/"*.png
+ fi
+
+ python_fix_shebang "${ED}"
+}
+
+src_test()
+{
+ ctest -E qtgui
+}
+
+pkg_postinst()
+{
+ local GRC_ICON_SIZES="32 48 64 128 256"
+
+ if use grc ; then
+ fdo-mime_desktop_database_update
+ fdo-mime_mime_database_update
+ for size in ${GRC_ICON_SIZES} ; do
+ xdg-icon-resource install --noupdate --context mimetypes --size ${size} \
+ "${EROOT}/usr/share/pixmaps/grc-icon-${size}.png" application-gnuradio-grc \
+ || die "icon resource installation failed"
+ xdg-icon-resource install --noupdate --context apps --size ${size} \
+ "${EROOT}/usr/share/pixmaps/grc-icon-${size}.png" gnuradio-grc \
+ || die "icon resource installation failed"
+ done
+ xdg-icon-resource forceupdate
+ fi
+}
+
+pkg_postrm()
+{
+ local GRC_ICON_SIZES="32 48 64 128 256"
+
+ if use grc ; then
+ fdo-mime_desktop_database_update
+ fdo-mime_mime_database_update
+ for size in ${GRC_ICON_SIZES} ; do
+ xdg-icon-resource uninstall --noupdate --context mimetypes --size ${size} \
+ application-gnuradio-grc || ewarn "icon uninstall failed"
+ xdg-icon-resource uninstall --noupdate --context apps --size ${size} \
+ gnuradio-grc || ewarn "icon uninstall failed"
+
+ done
+ xdg-icon-resource forceupdate
+ fi
+}
diff --git a/net-wireless/gnuradio/gnuradio-9999.ebuild b/net-wireless/gnuradio/gnuradio-9999.ebuild
new file mode 100644
index 000000000000..2f9f15ca2cf5
--- /dev/null
+++ b/net-wireless/gnuradio/gnuradio-9999.ebuild
@@ -0,0 +1,231 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+CMAKE_BUILD_TYPE="None"
+inherit cmake-utils fdo-mime gnome2-utils python-single-r1 eutils
+
+DESCRIPTION="Toolkit that provides signal processing blocks to implement software radios"
+HOMEPAGE="http://gnuradio.org/"
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="http://gnuradio.org/git/gnuradio.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="http://s3-dist.gnuradio.org/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+IUSE="+audio +alsa atsc +analog +digital channels doc dtv examples fcd fec +filter grc jack log noaa oss pager performance-counters portaudio +qt4 sdl test trellis uhd vocoder +utils wavelet wxwidgets zeromq"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ audio? ( || ( alsa oss jack portaudio ) )
+ alsa? ( audio )
+ oss? ( audio )
+ jack? ( audio )
+ portaudio? ( audio )
+ analog? ( filter )
+ digital? ( filter analog )
+ dtv? ( fec )
+ pager? ( filter analog )
+ qt4? ( filter )
+ uhd? ( filter analog )
+ fcd? ( || ( alsa oss ) )
+ wavelet? ( analog )
+ wxwidgets? ( filter analog )"
+
+# bug #348206
+# comedi? ( >=sci-electronics/comedilib-0.8 )
+# boost-1.52.0 is blacklisted, bug #461578, upstream #513, boost #7669
+RDEPEND="${PYTHON_DEPS}
+ >=dev-lang/orc-0.4.12
+ dev-libs/boost:0=[${PYTHON_USEDEP}]
+ !<=dev-libs/boost-1.52.0-r6:0/1.52
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/fftw:3.0=
+ alsa? (
+ media-libs/alsa-lib[${PYTHON_USEDEP}]
+ )
+ fcd? ( virtual/libusb:1 )
+ filter? ( sci-libs/scipy )
+ grc? (
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ >=dev-python/pygtk-2.10:2[${PYTHON_USEDEP}]
+ )
+ jack? (
+ media-sound/jack-audio-connection-kit
+ )
+ log? ( dev-libs/log4cpp )
+ portaudio? (
+ >=media-libs/portaudio-19_pre
+ )
+ qt4? (
+ >=dev-python/PyQt4-4.4[X,opengl,${PYTHON_USEDEP}]
+ >=dev-python/pyqwt-5.2:5[${PYTHON_USEDEP}]
+ >=dev-qt/qtcore-4.4:4
+ >=dev-qt/qtgui-4.4:4
+ x11-libs/qwt:6
+ )
+ sdl? ( >=media-libs/libsdl-1.2.0 )
+ uhd? ( >=net-wireless/uhd-3.4.3-r1:=[${PYTHON_USEDEP}] )
+ utils? ( dev-python/matplotlib[${PYTHON_USEDEP}] )
+ vocoder? ( media-sound/gsm )
+ wavelet? (
+ >=sci-libs/gsl-1.10
+ )
+ wxwidgets? (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/wxpython:2.8[${PYTHON_USEDEP}]
+ )
+ zeromq? ( >=net-libs/zeromq-2.1.11 )
+ "
+
+DEPEND="${RDEPEND}
+ dev-lang/swig
+ dev-python/cheetah[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=app-doc/doxygen-1.5.7.1
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+ grc? ( x11-misc/xdg-utils )
+ oss? ( virtual/os-headers )
+ test? ( >=dev-util/cppunit-1.9.14 )
+ zeromq? ( net-libs/cppzmq )
+"
+
+src_prepare() {
+ gnome2_environment_reset #534582
+
+ # Useless UI element would require qt3support, bug #365019
+ sed -i '/qPixmapFromMimeSource/d' "${S}"/gr-qtgui/lib/spectrumdisplayform.ui || die
+ epatch_user
+}
+
+src_configure() {
+ # TODO: docs are installed to /usr/share/doc/${PN} not /usr/share/doc/${PF}
+ # SYSCONFDIR/GR_PREFSDIR default to install below CMAKE_INSTALL_PREFIX
+ #audio provider is still automagic
+ #zeromq missing deps isn't fatal
+ mycmakeargs=(
+ -DENABLE_DEFAULT=OFF
+ -DENABLE_GNURADIO_RUNTIME=ON
+ -DENABLE_VOLK=ON
+ -DENABLE_PYTHON=ON
+ -DENABLE_GR_BLOCKS=ON
+ -DENABLE_GR_FFT=ON
+ -DENABLE_GR_AUDIO=ON
+ $(cmake-utils_use_enable alsa GR_AUDIO_ALSA) \
+ $(cmake-utils_use_enable analog GR_ANALOG) \
+ $(cmake-utils_use_enable atsc GR_ATSC) \
+ $(cmake-utils_use_enable channels GR_CHANNELS) \
+ $(cmake-utils_use_enable digital GR_DIGITAL) \
+ $(cmake-utils_use_enable doc DOXYGEN) \
+ $(cmake-utils_use_enable doc SPHINX) \
+ $(cmake-utils_use_enable dtv GR_DTV) \
+ $(cmake-utils_use_enable fcd GR_FCD) \
+ $(cmake-utils_use_enable fec GR_FEC) \
+ $(cmake-utils_use_enable filter GR_FILTER) \
+ $(cmake-utils_use_enable grc GRC) \
+ $(cmake-utils_use_enable jack GR_AUDIO_JACK) \
+ $(cmake-utils_use_enable log GR_LOG) \
+ $(cmake-utils_use_enable noaa GR_NOAA) \
+ $(cmake-utils_use_enable oss GR_AUDIO_OSS) \
+ $(cmake-utils_use_enable pager GR_PAGER) \
+ $(cmake-utils_use_enable performance-counters ENABLE_PERFORMANCE_COUNTERS) \
+ $(cmake-utils_use_enable portaudio GR_AUDIO_PORTAUDIO) \
+ $(cmake-utils_use_enable test TESTING) \
+ $(cmake-utils_use_enable trellis GR_TRELLIS) \
+ $(cmake-utils_use_enable uhd GR_UHD) \
+ $(cmake-utils_use_enable utils GR_UTILS) \
+ $(cmake-utils_use_enable vocoder GR_VOCODER) \
+ $(cmake-utils_use_enable wavelet GR_WAVELET) \
+ $(cmake-utils_use_enable wxwidgets GR_WXGUI) \
+ $(cmake-utils_use_enable qt4 GR_QTGUI) \
+ $(cmake-utils_use_enable sdl GR_VIDEO_SDL) \
+ $(cmake-utils_use_enable zeromq GR_ZEROMQ) \
+ -DENABLE_GR_CORE=ON \
+ -DSYSCONFDIR="${EPREFIX}"/etc \
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ use vocoder && mycmakeargs+=( -DGR_USE_SYSTEM_LIBGSM=TRUE )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ if use examples ; then
+ dodir /usr/share/doc/${PF}/
+ mv "${ED}"/usr/share/${PN}/examples "${ED}"/usr/share/doc/${PF}/ || die
+ else
+ # It seems that the examples are always installed
+ rm -rf "${ED}"/usr/share/${PN}/examples || die
+ fi
+
+ # We install the mimetypes to the correct locations from the ebuild
+ rm -rf "${ED}"/usr/share/${PN}/grc/freedesktop || die
+ rm -f "${ED}"/usr/libexec/${PN}/grc_setup_freedesktop || die
+
+ # Install icons, menu items and mime-types for GRC
+ if use grc ; then
+ local fd_path="${S}/grc/freedesktop"
+ insinto /usr/share/mime/packages
+ doins "${fd_path}/${PN}-grc.xml"
+
+ domenu "${fd_path}/"*.desktop
+ doicon "${fd_path}/"*.png
+ fi
+
+ python_fix_shebang "${ED}"
+}
+
+src_test()
+{
+ ctest -E qtgui
+}
+
+pkg_postinst()
+{
+ local GRC_ICON_SIZES="32 48 64 128 256"
+
+ if use grc ; then
+ fdo-mime_desktop_database_update
+ fdo-mime_mime_database_update
+ for size in ${GRC_ICON_SIZES} ; do
+ xdg-icon-resource install --noupdate --context mimetypes --size ${size} \
+ "${EROOT}/usr/share/pixmaps/grc-icon-${size}.png" application-gnuradio-grc \
+ || die "icon resource installation failed"
+ xdg-icon-resource install --noupdate --context apps --size ${size} \
+ "${EROOT}/usr/share/pixmaps/grc-icon-${size}.png" gnuradio-grc \
+ || die "icon resource installation failed"
+ done
+ xdg-icon-resource forceupdate
+ fi
+}
+
+pkg_postrm()
+{
+ local GRC_ICON_SIZES="32 48 64 128 256"
+
+ if use grc ; then
+ fdo-mime_desktop_database_update
+ fdo-mime_mime_database_update
+ for size in ${GRC_ICON_SIZES} ; do
+ xdg-icon-resource uninstall --noupdate --context mimetypes --size ${size} \
+ application-gnuradio-grc || ewarn "icon uninstall failed"
+ xdg-icon-resource uninstall --noupdate --context apps --size ${size} \
+ gnuradio-grc || ewarn "icon uninstall failed"
+
+ done
+ xdg-icon-resource forceupdate
+ fi
+}
diff --git a/net-wireless/gnuradio/metadata.xml b/net-wireless/gnuradio/metadata.xml
new file mode 100644
index 000000000000..a9d64fbfe5ff
--- /dev/null
+++ b/net-wireless/gnuradio/metadata.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+ <use>
+ <flag name='analog'>enable analog signal processing blocks</flag>
+ <flag name='atsc'>enable ATSC (HDTV) transmitter and receiver blocks</flag>
+ <flag name='audio'>enable blocks to connect to audio sources (mic-in) and sinks (speaker-out) ports on a computer</flag>
+ <flag name='channels'>enable channel mode blocks</flag>
+ <flag name='digital'>enable digital signal processing blocks</flag>
+ <flag name='dtv'>enable digital tv signal processing blocks</flag>
+ <flag name='fcd'>enable Funcube Dongle source block</flag>
+ <flag name='fec'>enable block for convolutional encoding using the CCSDS standard polynomial ("Voyager")</flag>
+ <flag name='filter'>enable filter signal processing blocks</flag>
+ <flag name='grc'>enable GNU Radio Companion graphical tool to design signal processing flow graphs</flag>
+ <flag name='log'>enable logging to console and files</flag>
+ <flag name='noaa'>enable NOAA POES HRPT receiver blocks</flag>
+ <flag name='pager'>enable pager signal processing blocks</flag>
+ <flag name='performance-counters'>enable block performance counters</flag>
+ <flag name='trellis'>enable trellis blocks for FSM</flag>
+ <flag name='uhd'>install UHD source and sink blocks</flag>
+ <flag name='utils'>install scripts to enable viewing and analysis of files produced by flow graphs</flag>
+ <flag name='vocoder'>enable blocks for audio voice encoders</flag>
+ <flag name='wavelet'>enable wavelet signal processing blocks</flag>
+ <flag name='zeromq'>enable zeromq message passing blocks</flag>
+ </use>
+</pkgmetadata>
+
diff --git a/net-wireless/gobi_loader/Manifest b/net-wireless/gobi_loader/Manifest
new file mode 100644
index 000000000000..cfee070bc008
--- /dev/null
+++ b/net-wireless/gobi_loader/Manifest
@@ -0,0 +1 @@
+DIST gobi_loader-0.7.tar.gz 5056 SHA256 78bdc255451cde1caa406e146b01a88828480c9c43272de8cffdb61627be754a SHA512 79b9a357a1dc11bf0eae5a7a964f8ffe4d09381384d0bfc0541bf0311bba9206055e5ef3d884648b12fa05286feec0118af11effa1db66626001ea2743a715a1 WHIRLPOOL cfc6a0f01aa9ee2b3b04004d5eb6bdd27ba66a60dcb34aef3cc8412572e1eecf5cb67be0f8a6d742b536de40bed4ebae506a11283213cef2c1390f2b0d379736
diff --git a/net-wireless/gobi_loader/files/gobi_loader-0.7-makefile.patch b/net-wireless/gobi_loader/files/gobi_loader-0.7-makefile.patch
new file mode 100644
index 000000000000..ec5b4a706315
--- /dev/null
+++ b/net-wireless/gobi_loader/files/gobi_loader-0.7-makefile.patch
@@ -0,0 +1,22 @@
+--- gobi_loader-0.7/Makefile
++++ gobi_loader-0.7/Makefile
+@@ -1,15 +1,14 @@
+ VERSION = 0.7
+
+ gobi_loader: gobi_loader.c
+- gcc -Wall gobi_loader.c -o gobi_loader
++ gcc ${CFLAGS} ${LDFLAGS} -Wall gobi_loader.c -o gobi_loader
+
+ all: gobi_loader
+
+ install: gobi_loader
+- install -D gobi_loader ${prefix}/lib/udev/gobi_loader
+- install -D 60-gobi.rules ${prefix}/lib/udev/rules.d/60-gobi.rules
+- mkdir -p ${prefix}/lib/firmware
+- -udevadm control --reload-rules
++ install -D gobi_loader ${D}%UDEVDIR%/gobi_loader
++ install -D 60-gobi.rules ${D}%UDEVDIR%/rules.d/60-gobi.rules
++ mkdir -p ${D}${prefix}/lib/firmware
+
+ uninstall:
+ -rm $(prefix)/lib/udev/gobi_loader
diff --git a/net-wireless/gobi_loader/gobi_loader-0.7-r2.ebuild b/net-wireless/gobi_loader/gobi_loader-0.7-r2.ebuild
new file mode 100644
index 000000000000..4a291bcd70da
--- /dev/null
+++ b/net-wireless/gobi_loader/gobi_loader-0.7-r2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+inherit eutils multilib udev
+
+DESCRIPTION="gobi_loader is a firmware loader for Qualcomm Gobi USB chipsets"
+HOMEPAGE="http://www.codon.org.uk/~mjg59/gobi_loader/"
+SRC_URI="http://www.codon.org.uk/~mjg59/${PN}/download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="virtual/libusb:0"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-makefile.patch
+ sed "s:%UDEVDIR%:$(get_udevdir):" -i Makefile || die
+}
+
+src_install() {
+ emake install || die
+}
+
+pkg_postinst() {
+ udevadm control --reload-rules
+ einfo
+ einfo "Put your firmware in /lib/firmware/gobi."
+ einfo
+}
diff --git a/net-wireless/gobi_loader/metadata.xml b/net-wireless/gobi_loader/metadata.xml
new file mode 100644
index 000000000000..b0008f01cbdf
--- /dev/null
+++ b/net-wireless/gobi_loader/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+ <email>craig@gentoo.org</email>
+ <name>Stefan Behte</name>
+</maintainer>
+<maintainer>
+ <email>polynomial-c@gentoo.org</email>
+ <name>Lars Wendler</name>
+ <description>Proxy maintainer for Stefan</description>
+</maintainer>
+</pkgmetadata>
diff --git a/net-wireless/gqrx/Manifest b/net-wireless/gqrx/Manifest
new file mode 100644
index 000000000000..811167a20767
--- /dev/null
+++ b/net-wireless/gqrx/Manifest
@@ -0,0 +1,2 @@
+DIST gqrx-2.3.1.tar.gz 1080929 SHA256 1756132f4958a63199396020c6d26658304a2cf7d940650e86764f9d8eea0f81 SHA512 7fd158b039ac593b73da069b6356bfb63e92b5f1d815663ebe59044b8006b4d206e877934e5ae4770d06d0d486bb1d2b47ad96055c369a08af9e2af701e9a307 WHIRLPOOL 367b20ba8c2ccc56f4111fd0ff9abf6110bc5de070d036b88d594bd03714e3615f52f2691144204e733fb597cd4d4eff63f21cff25710f9075daee0f65166605
+DIST gqrx-2.3.2.tar.gz 1080995 SHA256 2748ee14491dbfb5821efba32300124b5a2b0aabc810cdfda91e5f64bd3502cf SHA512 53b271a7b053ebf877152ddd4d6d96e2ae864c8a85a66f5dca5ce670301616fec770e0c2bb2352234fc8566d05679c8c3ef147e62ea5393635a6f57724fd8da0 WHIRLPOOL d36a8b8ab001d5a80a9aff47091c3f54b0026c45c1676341096dba9a06120a4f47110314b2377ea07f93a40eb5e99401c8256e4fb9ff1d90868f5adbbfa3e197
diff --git a/net-wireless/gqrx/files/no_qtsvg.patch b/net-wireless/gqrx/files/no_qtsvg.patch
new file mode 100644
index 000000000000..848f10c8a476
--- /dev/null
+++ b/net-wireless/gqrx/files/no_qtsvg.patch
@@ -0,0 +1,13 @@
+diff --git a/gqrx.pro b/gqrx.pro
+index 2998186..b1e7687 100644
+--- a/gqrx.pro
++++ b/gqrx.pro
+@@ -9,7 +9,7 @@
+ # BOOST_SUFFIX=-mt To link against libboost-xyz-mt (needed for pybombs)
+ #--------------------------------------------------------------------------------
+
+-QT += core gui svg network
++QT += core gui network
+ contains(QT_MAJOR_VERSION,5) {
+ QT += widgets
+ }
diff --git a/net-wireless/gqrx/gqrx-2.3.1.ebuild b/net-wireless/gqrx/gqrx-2.3.1.ebuild
new file mode 100644
index 000000000000..59e0a413fd46
--- /dev/null
+++ b/net-wireless/gqrx/gqrx-2.3.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit qt4-r2
+
+DESCRIPTION="Software defined radio receiver powered by GNU Radio and Qt"
+HOMEPAGE="http://gqrx.dk/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/csete/gqrx.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="https://github.com/csete/gqrx/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="pulseaudio"
+
+DEPEND=">=net-wireless/gnuradio-3.7_rc:=[audio,analog,filter]
+ >=net-wireless/gr-osmosdr-0.1.0:=
+ dev-libs/boost:=
+ dev-qt/qtcore:4
+ dev-qt/qtgui:4
+ pulseaudio? ( media-sound/pulseaudio:= )"
+RDEPEND="${DEPEND}
+ dev-qt/qtsvg:4"
+
+src_prepare() {
+ if use !pulseaudio; then
+ sed -i 's/AUDIO_BACKEND = pulse/#AUDIO_BACKEND = pulse/' gqrx.pro || die
+ fi
+ epatch "${FILESDIR}"/no_qtsvg.patch
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ dobin gqrx
+}
diff --git a/net-wireless/gqrx/gqrx-2.3.2.ebuild b/net-wireless/gqrx/gqrx-2.3.2.ebuild
new file mode 100644
index 000000000000..59e0a413fd46
--- /dev/null
+++ b/net-wireless/gqrx/gqrx-2.3.2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit qt4-r2
+
+DESCRIPTION="Software defined radio receiver powered by GNU Radio and Qt"
+HOMEPAGE="http://gqrx.dk/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/csete/gqrx.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="https://github.com/csete/gqrx/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="pulseaudio"
+
+DEPEND=">=net-wireless/gnuradio-3.7_rc:=[audio,analog,filter]
+ >=net-wireless/gr-osmosdr-0.1.0:=
+ dev-libs/boost:=
+ dev-qt/qtcore:4
+ dev-qt/qtgui:4
+ pulseaudio? ( media-sound/pulseaudio:= )"
+RDEPEND="${DEPEND}
+ dev-qt/qtsvg:4"
+
+src_prepare() {
+ if use !pulseaudio; then
+ sed -i 's/AUDIO_BACKEND = pulse/#AUDIO_BACKEND = pulse/' gqrx.pro || die
+ fi
+ epatch "${FILESDIR}"/no_qtsvg.patch
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ dobin gqrx
+}
diff --git a/net-wireless/gqrx/gqrx-9999.ebuild b/net-wireless/gqrx/gqrx-9999.ebuild
new file mode 100644
index 000000000000..151dc86fca1f
--- /dev/null
+++ b/net-wireless/gqrx/gqrx-9999.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit qt4-r2
+
+DESCRIPTION="Software defined radio receiver powered by GNU Radio and Qt"
+HOMEPAGE="http://gqrx.dk/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/csete/gqrx.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="https://github.com/csete/gqrx/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="pulseaudio"
+
+DEPEND=">=net-wireless/gnuradio-3.7_rc:=[audio,analog,filter]
+ >=net-wireless/gr-osmosdr-0.1.0:=
+ dev-libs/boost:=
+ dev-qt/qtcore:4
+ dev-qt/qtgui:4
+ pulseaudio? ( media-sound/pulseaudio:= )"
+RDEPEND="${DEPEND}
+ dev-qt/qtsvg:4"
+
+src_prepare() {
+ if use !pulseaudio; then
+ sed -i 's/AUDIO_BACKEND = pulse/#AUDIO_BACKEND = pulse/' gqrx.pro || die
+ fi
+ qt4-r2_src_prepare
+}
+
+src_install() {
+ dobin gqrx
+}
diff --git a/net-wireless/gqrx/metadata.xml b/net-wireless/gqrx/metadata.xml
new file mode 100644
index 000000000000..a8431b1c0750
--- /dev/null
+++ b/net-wireless/gqrx/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="github">csete/gqrx</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/gr-baz/gr-baz-9999.ebuild b/net-wireless/gr-baz/gr-baz-9999.ebuild
new file mode 100644
index 000000000000..df39e837fb42
--- /dev/null
+++ b/net-wireless/gr-baz/gr-baz-9999.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils git-r3 python-single-r1
+
+DESCRIPTION="Gnuradio baz"
+HOMEPAGE="http://wiki.spench.net/wiki/Gr-baz"
+EGIT_REPO_URI="https://github.com/balint256/gr-baz.git"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS=""
+IUSE="armadillo doc rtlsdr uhd"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="dev-libs/boost[threads,${PYTHON_USEDEP}]
+ >=net-wireless/gnuradio-3.7.0:=[${PYTHON_USEDEP}]
+ armadillo? ( sci-libs/armadillo )
+ rtlsdr? ( virtual/libusb:1 )
+ uhd? ( net-wireless/uhd[${PYTHON_USEDEP}] )
+ ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}
+ doc? ( app-doc/doxygen )
+ virtual/pkgconfig"
+
+src_configure() {
+ mycmakeargs=(
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake-utils_src_configure
+}
+src_install() {
+ cmake-utils_src_install
+ insinto /usr/share/${PN}
+ doins -r samples/*
+}
diff --git a/net-wireless/gr-baz/metadata.xml b/net-wireless/gr-baz/metadata.xml
new file mode 100644
index 000000000000..429b14a8c93e
--- /dev/null
+++ b/net-wireless/gr-baz/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>radio</herd>
+<maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+</maintainer>
+<longdescription lang="en">
+</longdescription>
+<use>
+ <flag name='armadillo'>install MUSIC DOA estimator block</flag>
+ <flag name='rtlsdr'>install rtlsdr source block</flag>
+ <flag name='uhd'>install UHD aware blocks</flag>
+</use>
+</pkgmetadata>
+
diff --git a/net-wireless/gr-iqbal/Manifest b/net-wireless/gr-iqbal/Manifest
new file mode 100644
index 000000000000..7172b06c7119
--- /dev/null
+++ b/net-wireless/gr-iqbal/Manifest
@@ -0,0 +1,2 @@
+DIST gr-iqbal-0.36.0.tar.xz 76504 SHA256 7715142d5fd478ade7536f015f6764a6a0c113c931b381e4536d1c681ad778d6 SHA512 1fd91f5ea2984e71826906437bb32b3518191e69411d74ecfcdd09b18b545c4b42d097366dae0d430f75e9c5dd72c7c0425cd1de3551c2a9eacae983f87d4204 WHIRLPOOL db5c54f226682aea33eb61952d1e2cea8be6c343c59d356539ed7f0379767a732bbca4d889f5caa320a4941a52589cef1101add34879fa9304b983e2f6e42e15
+DIST gr-iqbal-0.37.2.tar.xz 71340 SHA256 7b15b404634cf91209ff0e17350f87307ab88ab6b795f7d5a60ed009f5492824 SHA512 00037a535219ebe3b5244d4a09355cc74bf17aa6a935bff135e9d7c7c7f6bc1c8b7a29edc02132dbacda2c41efa3613c09e6fdc222472e58d88c4c076736842e WHIRLPOOL 2afdf6bc97d07d2aaf888336987c9f437b76a0216cef904d7319d98ce914565c28ced0c9397e35da1fcc65aabc852a81e8df3a81441fe0800ed03e65cd5ff125
diff --git a/net-wireless/gr-iqbal/files/add-pkgconfig-file.patch b/net-wireless/gr-iqbal/files/add-pkgconfig-file.patch
new file mode 100644
index 000000000000..c86cdfa458c2
--- /dev/null
+++ b/net-wireless/gr-iqbal/files/add-pkgconfig-file.patch
@@ -0,0 +1,52 @@
+From 077397e65a8867fe3e93de0930d9556d39f10126 Mon Sep 17 00:00:00 2001
+From: Sylvain Munaut <tnt@246tNt.com>
+Date: Sun, 07 Jul 2013 19:54:23 +0000
+Subject: misc: Add a .pc file
+
+Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
+---
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a251954..10dc8c8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -158,3 +158,21 @@ add_subdirectory(python)
+ add_subdirectory(grc)
+ add_subdirectory(apps)
+ add_subdirectory(docs)
++
++########################################################################
++# Create Pkg Config File
++########################################################################
++file(TO_NATIVE_PATH "${CMAKE_INSTALL_PREFIX}" prefix)
++file(TO_NATIVE_PATH "\${prefix}" exec_prefix)
++file(TO_NATIVE_PATH "\${exec_prefix}/${GR_LIBRARY_DIR}" libdir)
++file(TO_NATIVE_PATH "\${prefix}/${GR_INCLUDE_DIR}" includedir)
++
++configure_file(
++ ${CMAKE_CURRENT_SOURCE_DIR}/gnuradio-iqbalance.pc.in
++ ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-iqbalance.pc
++@ONLY)
++
++install(
++ FILES ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-iqbalance.pc
++ DESTINATION ${GR_LIBRARY_DIR}/pkgconfig
++)
+diff --git a/gnuradio-iqbalance.pc.in b/gnuradio-iqbalance.pc.in
+new file mode 100644
+index 0000000..edde90d
+--- /dev/null
++++ b/gnuradio-iqbalance.pc.in
+@@ -0,0 +1,11 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: gnuradio-iqbalance
++Description: gnuradio I/Q balancing
++URL: http://git.osmocom.org/gr-iqbal/
++Requires: gnuradio-runtime
++Libs: -L${libdir} -lgnuradio-iqbalance
++Cflags: -I${includedir}
+--
+cgit v0.9.1
diff --git a/net-wireless/gr-iqbal/gr-iqbal-0.36.0.ebuild b/net-wireless/gr-iqbal/gr-iqbal-0.36.0.ebuild
new file mode 100644
index 000000000000..c6033fd9cd9a
--- /dev/null
+++ b/net-wireless/gr-iqbal/gr-iqbal-0.36.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_DEPEND="2"
+
+inherit cmake-utils python
+
+DESCRIPTION="gnuradio I/Q balancing"
+HOMEPAGE="http://git.osmocom.org/gr-iqbal/"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-2
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+IUSE=""
+
+RDEPEND="<net-wireless/gnuradio-3.7_rc:0=
+ net-libs/libosmo-dsp:=
+ dev-libs/boost:="
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ python_set_active_version 2
+ python_pkg_setup
+}
+
+src_prepare() {
+ python_convert_shebangs -q -r 2 "${S}"
+}
diff --git a/net-wireless/gr-iqbal/gr-iqbal-0.37.2.ebuild b/net-wireless/gr-iqbal/gr-iqbal-0.37.2.ebuild
new file mode 100644
index 000000000000..73f518523423
--- /dev/null
+++ b/net-wireless/gr-iqbal/gr-iqbal-0.37.2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils python-single-r1
+
+DESCRIPTION="gnuradio I/Q balancing"
+HOMEPAGE="http://git.osmocom.org/gr-iqbal/"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+IUSE=""
+
+RDEPEND=">=net-wireless/gnuradio-3.7_rc:0=[${PYTHON_USEDEP}]
+ net-libs/libosmo-dsp:=
+ dev-libs/boost:=
+ ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/net-wireless/gr-iqbal/gr-iqbal-9999.ebuild b/net-wireless/gr-iqbal/gr-iqbal-9999.ebuild
new file mode 100644
index 000000000000..73f518523423
--- /dev/null
+++ b/net-wireless/gr-iqbal/gr-iqbal-9999.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils python-single-r1
+
+DESCRIPTION="gnuradio I/Q balancing"
+HOMEPAGE="http://git.osmocom.org/gr-iqbal/"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+IUSE=""
+
+RDEPEND=">=net-wireless/gnuradio-3.7_rc:0=[${PYTHON_USEDEP}]
+ net-libs/libosmo-dsp:=
+ dev-libs/boost:=
+ ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/net-wireless/gr-iqbal/metadata.xml b/net-wireless/gr-iqbal/metadata.xml
new file mode 100644
index 000000000000..044f12194316
--- /dev/null
+++ b/net-wireless/gr-iqbal/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>zerochaos@gentoo.org</email>
+<name>Rick Farina</name>
+</maintainer>
+<herd>radio</herd>
+<longdescription lang="en">
+</longdescription>
+</pkgmetadata>
+
diff --git a/net-wireless/gr-osmosdr/Manifest b/net-wireless/gr-osmosdr/Manifest
new file mode 100644
index 000000000000..2339d8dcd923
--- /dev/null
+++ b/net-wireless/gr-osmosdr/Manifest
@@ -0,0 +1,2 @@
+DIST gr-osmosdr-0.1.4.tar.xz 141500 SHA256 074dd3ad68c187948f05c33e025629acd4c8b62b5d1d1c212e3dabd8f080b16a SHA512 930a7f6065fba709fb770fd373f0fe7eba13abf09e49f6e839718d547ce69176d93d89d1b037ee3f0cdffda7060ac6c9ff4023dc835ec50ef456d51d383046ab WHIRLPOOL e8e78cbf320b64a1615b83cda396928fc1e6df47806607feeacc3e37a876bb9930b6d2ef420579f73a745b87b2b91a3276fca9552a13d48a92d0e414fff7c0aa
+DIST gr-osmosdr-0.1.4_p20150730.tar.xz 1148596 SHA256 b94e597d8042717d70f5f8c358fb8446ef64a91fa6ab2b362e0e7d37457bd961 SHA512 7e6847eba0d4e217ea71bb4b8105290b329bf8840a7193df013b3a0cd9c9ef57f3686252da48cb0df239288b5794c75178a8bb45ff2a2dd8b605f63fec2426d9 WHIRLPOOL db2df16796ab5974d22d4f606bd73aaec53693933fcc5c12e5126f14e4d3d2eadacd7cf2e28cb18a951caf9a16440c72f54177acfd3af16512febd97d6e0072c
diff --git a/net-wireless/gr-osmosdr/files/hackrf-safety.patch b/net-wireless/gr-osmosdr/files/hackrf-safety.patch
new file mode 100644
index 000000000000..fc04fc0c50ed
--- /dev/null
+++ b/net-wireless/gr-osmosdr/files/hackrf-safety.patch
@@ -0,0 +1,34 @@
+commit 39230788d7f4b0a8d6d3ab32039073ed53e74af6
+Author: Dimitri Stolnikov <horiz0n@gmx.net>
+Date: Tue Oct 21 22:10:40 2014 +0200
+
+ hackrf: disable AMP gain stage by default to protect it from damage
+
+ patch proivided by Paul Connolly
+
+diff --git a/lib/hackrf/hackrf_sink_c.cc b/lib/hackrf/hackrf_sink_c.cc
+index 120b271..3a1e7da 100644
+--- a/lib/hackrf/hackrf_sink_c.cc
++++ b/lib/hackrf/hackrf_sink_c.cc
+@@ -213,7 +213,7 @@ hackrf_sink_c::hackrf_sink_c (const std::string &args)
+ set_sample_rate( get_sample_rates().start() );
+ set_bandwidth( 0 );
+
+- set_gain( 14 ); /* enable AMP gain stage by default */
++ set_gain( 0 ); /* disable AMP gain stage by default to protect full sprectrum pre-amp from physical damage */
+
+ set_if_gain( 16 ); /* preset to a reasonable default (non-GRC use case) */
+
+diff --git a/lib/hackrf/hackrf_source_c.cc b/lib/hackrf/hackrf_source_c.cc
+index f647b80..e3b3ea4 100644
+--- a/lib/hackrf/hackrf_source_c.cc
++++ b/lib/hackrf/hackrf_source_c.cc
+@@ -168,7 +168,7 @@ hackrf_source_c::hackrf_source_c (const std::string &args)
+ set_sample_rate( get_sample_rates().start() );
+ set_bandwidth( 0 );
+
+- set_gain( 14 ); /* enable AMP gain stage by default */
++ set_gain( 0 ); /* disable AMP gain stage by default to protect full sprectrum pre-amp from physical damage */
+
+ set_if_gain( 16 ); /* preset to a reasonable default (non-GRC use case) */
+
diff --git a/net-wireless/gr-osmosdr/gr-osmosdr-0.1.4.ebuild b/net-wireless/gr-osmosdr/gr-osmosdr-0.1.4.ebuild
new file mode 100644
index 000000000000..fb14eb8dca95
--- /dev/null
+++ b/net-wireless/gr-osmosdr/gr-osmosdr-0.1.4.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils python-single-r1
+
+DESCRIPTION="GNU Radio source block for OsmoSDR and rtlsdr and hackrf"
+HOMEPAGE="http://sdr.osmocom.org/trac/wiki/GrOsmoSDR"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+ KEYWORDS=""
+else
+ #git clone git://git.osmocom.org/gr-osmosdr.git
+ #cd gr-osmosdr
+ #git archive --format=tar --prefix=gr-osmosdr-${PV}/ v${PV} | xz > ../gr-osmosdr-${PV}.tar.xz
+ SRC_URI="http://cgit.osmocom.org/gr-osmosdr/snapshot/gr-osmosdr-${PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+IUSE="bladerf fcd hackrf iqbalance mirisdr python rtlsdr uhd"
+
+RDEPEND="${PYTHON_DEPS}
+ dev-libs/boost:=
+ >=net-wireless/gnuradio-3.7_rc:0=[fcd?,${PYTHON_USEDEP}]
+ bladerf? ( net-wireless/bladerf:= )
+ hackrf? ( net-libs/libhackrf:= )
+ iqbalance? ( net-wireless/gr-iqbal:=[${PYTHON_USEDEP}] )
+ mirisdr? ( net-libs/libmirisdr:= )
+ rtlsdr? ( >=net-wireless/rtl-sdr-0.5.3:= )
+ uhd? ( net-wireless/uhd:=[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ dev-python/cheetah"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+src_prepare() {
+ epatch_user
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_DEFAULT=OFF
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ -DENABLE_FILE=ON
+ $(cmake-utils_use_enable bladerf)
+ $(cmake-utils_use_enable fcd)
+ $(cmake-utils_use_enable hackrf)
+ $(cmake-utils_use_enable iqbalance)
+ $(cmake-utils_use_enable mirisdr MIRI)
+ $(cmake-utils_use_enable python)
+ $(cmake-utils_use_enable rtlsdr RTL)
+ $(cmake-utils_use_enable rtlsdr RTL_TCP)
+ $(cmake-utils_use_enable uhd)
+ )
+
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+ python_fix_shebang "${ED}"/usr/bin
+}
diff --git a/net-wireless/gr-osmosdr/gr-osmosdr-0.1.4_p20150730.ebuild b/net-wireless/gr-osmosdr/gr-osmosdr-0.1.4_p20150730.ebuild
new file mode 100644
index 000000000000..dd7b0061a0ed
--- /dev/null
+++ b/net-wireless/gr-osmosdr/gr-osmosdr-0.1.4_p20150730.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils python-single-r1
+
+DESCRIPTION="GNU Radio source block for OsmoSDR and rtlsdr and hackrf"
+HOMEPAGE="http://sdr.osmocom.org/trac/wiki/GrOsmoSDR"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+ KEYWORDS=""
+else
+ #git clone git://git.osmocom.org/gr-osmosdr.git
+ #cd gr-osmosdr
+ #git archive --format=tar --prefix=gr-osmosdr-${PV}/ v${PV} | xz > ../gr-osmosdr-${PV}.tar.xz
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/gr-osmosdr-${PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+IUSE="bladerf fcd hackrf iqbalance mirisdr python rtlsdr uhd"
+
+RDEPEND="${PYTHON_DEPS}
+ dev-libs/boost:=
+ >=net-wireless/gnuradio-3.7_rc:0=[fcd?,${PYTHON_USEDEP}]
+ bladerf? ( net-wireless/bladerf:= )
+ hackrf? ( net-libs/libhackrf:= )
+ iqbalance? ( net-wireless/gr-iqbal:=[${PYTHON_USEDEP}] )
+ mirisdr? ( net-libs/libmirisdr:= )
+ rtlsdr? ( >=net-wireless/rtl-sdr-0.5.3:= )
+ uhd? ( net-wireless/uhd:=[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ dev-python/cheetah"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+src_prepare() {
+ epatch_user
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_DEFAULT=OFF
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ -DENABLE_FILE=ON
+ $(cmake-utils_use_enable bladerf)
+ $(cmake-utils_use_enable fcd)
+ $(cmake-utils_use_enable hackrf)
+ $(cmake-utils_use_enable iqbalance)
+ $(cmake-utils_use_enable mirisdr MIRI)
+ $(cmake-utils_use_enable python)
+ $(cmake-utils_use_enable rtlsdr RTL)
+ $(cmake-utils_use_enable rtlsdr RTL_TCP)
+ $(cmake-utils_use_enable uhd)
+ )
+
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+ python_fix_shebang "${ED}"/usr/bin
+}
diff --git a/net-wireless/gr-osmosdr/gr-osmosdr-9999.ebuild b/net-wireless/gr-osmosdr/gr-osmosdr-9999.ebuild
new file mode 100644
index 000000000000..fb14eb8dca95
--- /dev/null
+++ b/net-wireless/gr-osmosdr/gr-osmosdr-9999.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils python-single-r1
+
+DESCRIPTION="GNU Radio source block for OsmoSDR and rtlsdr and hackrf"
+HOMEPAGE="http://sdr.osmocom.org/trac/wiki/GrOsmoSDR"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+ KEYWORDS=""
+else
+ #git clone git://git.osmocom.org/gr-osmosdr.git
+ #cd gr-osmosdr
+ #git archive --format=tar --prefix=gr-osmosdr-${PV}/ v${PV} | xz > ../gr-osmosdr-${PV}.tar.xz
+ SRC_URI="http://cgit.osmocom.org/gr-osmosdr/snapshot/gr-osmosdr-${PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+IUSE="bladerf fcd hackrf iqbalance mirisdr python rtlsdr uhd"
+
+RDEPEND="${PYTHON_DEPS}
+ dev-libs/boost:=
+ >=net-wireless/gnuradio-3.7_rc:0=[fcd?,${PYTHON_USEDEP}]
+ bladerf? ( net-wireless/bladerf:= )
+ hackrf? ( net-libs/libhackrf:= )
+ iqbalance? ( net-wireless/gr-iqbal:=[${PYTHON_USEDEP}] )
+ mirisdr? ( net-libs/libmirisdr:= )
+ rtlsdr? ( >=net-wireless/rtl-sdr-0.5.3:= )
+ uhd? ( net-wireless/uhd:=[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}
+ dev-python/cheetah"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+src_prepare() {
+ epatch_user
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_DEFAULT=OFF
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ -DENABLE_FILE=ON
+ $(cmake-utils_use_enable bladerf)
+ $(cmake-utils_use_enable fcd)
+ $(cmake-utils_use_enable hackrf)
+ $(cmake-utils_use_enable iqbalance)
+ $(cmake-utils_use_enable mirisdr MIRI)
+ $(cmake-utils_use_enable python)
+ $(cmake-utils_use_enable rtlsdr RTL)
+ $(cmake-utils_use_enable rtlsdr RTL_TCP)
+ $(cmake-utils_use_enable uhd)
+ )
+
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+ python_fix_shebang "${ED}"/usr/bin
+}
diff --git a/net-wireless/gr-osmosdr/metadata.xml b/net-wireless/gr-osmosdr/metadata.xml
new file mode 100644
index 000000000000..66351693a775
--- /dev/null
+++ b/net-wireless/gr-osmosdr/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+<use>
+ <flag name="bladerf">Build with Nuand BladeRF support</flag>
+ <flag name="fcd">Build with Funcube Dongle support</flag>
+ <flag name="hackrf">Build with Great Scott Gadgets HackRF support</flag>
+ <flag name="iqbalance">Enable support for I/Q balancing using gr-iqbal</flag>
+ <flag name="mirisdr">Build with Mirics MSi2500 + MSi001 SDR support</flag>
+ <flag name="rtlsdr">Build with Realtek RTL2832U (rtlsdr) support</flag>
+ <flag name="uhd">Build with Ettus Research USRP Hardware Driver support</flag>
+</use>
+</pkgmetadata>
+
diff --git a/net-wireless/gr-rds/gr-rds-9999.ebuild b/net-wireless/gr-rds/gr-rds-9999.ebuild
new file mode 100644
index 000000000000..9f43bc740248
--- /dev/null
+++ b/net-wireless/gr-rds/gr-rds-9999.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-utils python-single-r1
+
+DESCRIPTION="gnuradio FM RDS Receiver"
+HOMEPAGE="https://github.com/bastibl/gr-rds"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/bastibl/${PN}"
+ KEYWORDS=""
+#else
+# SRC_URI=""
+# KEYWORDS=""
+fi
+
+LICENSE="GPL-3"
+SLOT="0/${PV}"
+
+RDEPEND=">=net-wireless/gnuradio-3.7_rc:0=[${PYTHON_USEDEP}]
+ dev-libs/boost:=[${PYTHON_USEDEP}]
+ ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}
+ dev-lang/swig:0"
+#cppunit is listed in cmake, but only needed for tests and there are no tests
+# dev-util/cppunit"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+src_prepare() {
+ #although cppunit is not used, it fails if it isn't there, fix it
+ sed -i 's#FATAL_ERROR "CppUnit#MESSAGE "CppUnit#' CMakeLists.txt
+ sed -i '/${CPPUNIT_INCLUDE_DIRS}/d' CMakeLists.txt
+ sed -i '/${CPPUNIT_LIBRARY_DIRS}/d' CMakeLists.txt
+}
+
+src_configure() {
+ mycmakeargs=( -DPYTHON_EXECUTABLE="${PYTHON}" )
+ cmake-utils_src_configure
+}
diff --git a/net-wireless/gr-rds/metadata.xml b/net-wireless/gr-rds/metadata.xml
new file mode 100644
index 000000000000..01833ab8f4e7
--- /dev/null
+++ b/net-wireless/gr-rds/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+ <upstream>
+ <remote-id type="github">bastibl/gr-rds</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/hackrf-tools/Manifest b/net-wireless/hackrf-tools/Manifest
new file mode 100644
index 000000000000..7efb28f31f99
--- /dev/null
+++ b/net-wireless/hackrf-tools/Manifest
@@ -0,0 +1,2 @@
+DIST hackrf-2014.08.1.tar.xz 14376904 SHA256 624c46163161896b8347a73e9edeb1188433f032df7cd00eda9a242c2a5bc98a SHA512 2bb2e9398479f635fc4cb73875d9728c689f5d29bfbdcaae661d98ecafe51d38ac8768dd4f38b87766195d9ed08757e76d790030edf6f6f572d547146287c073 WHIRLPOOL c33430279d0757e104f09ecafce2df859f33f8de9139dd6491a11d86ed3e241ba3ef298d1d0994113e695c46ab211daf573262815a8a1fc5349fd44642da3910
+DIST hackrf-2015.07.2.tar.xz 14415212 SHA256 5e3d9c36928b88cdbc0d66ee54e24e8682972dba478abfca0e31069515b870b6 SHA512 a4f7b7800ece9b260d5c8c374f5544aa55cd2e97e10c6a0b33cf476e2ad4811321ffb1308d9dfb2168b2624cd3af616d1c314ad86bcd6f4c3fd0897319fa2cbd WHIRLPOOL 8dfee4fb55be913f44d8ab905fc7c6b1fd703e16b01aa41191e97ab726a3b04d6a78670ae47c2d3bada64e38d42cabcf7f39b646fba55b436cbcab312be1f198
diff --git a/net-wireless/hackrf-tools/files/52-hackrf.rules b/net-wireless/hackrf-tools/files/52-hackrf.rules
new file mode 100644
index 000000000000..1ebb20db569c
--- /dev/null
+++ b/net-wireless/hackrf-tools/files/52-hackrf.rules
@@ -0,0 +1 @@
+ATTR{idVendor}=="1d50", ATTR{idProduct}=="604b", SYMLINK+="hackrf-%k", MODE="660", GROUP="plugdev"
diff --git a/net-wireless/hackrf-tools/hackrf-tools-2014.08.1.ebuild b/net-wireless/hackrf-tools/hackrf-tools-2014.08.1.ebuild
new file mode 100644
index 000000000000..22fb6f01e05c
--- /dev/null
+++ b/net-wireless/hackrf-tools/hackrf-tools-2014.08.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="library for communicating with HackRF SDR platform"
+HOMEPAGE="http://greatscottgadgets.com/hackrf/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/mossmann/hackrf.git"
+ inherit git-2
+ KEYWORDS=""
+ EGIT_SOURCEDIR="${WORKDIR}/hackrf"
+ S="${WORKDIR}/hackrf/host/hackrf-tools"
+else
+ S="${WORKDIR}/hackrf-${PV}/host/hackrf-tools"
+ SRC_URI="mirror://sourceforge/hackrf/hackrf-${PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+DEPEND="=net-libs/libhackrf-${PV}:="
+RDEPEND="${DEPEND}"
+
+src_install() {
+ cmake-utils_src_install
+ if [[ ${PV} != "9999" ]] ; then
+ insinto /usr/share/hackrf
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb_rom_to_ram.bin" hackrf_jawbreaker_usb_rom_to_ram-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb_ram.dfu" hackrf_jawbreaker_usb_ram-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb_rom_to_ram.bin" hackrf_one_usb_rom_to_ram-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb_ram.dfu" hackrf_one_usb_ram-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware/cpld/sgpio_if/default.xsvf" hackrf_cpld_default-${PV}.xsvf
+ else
+ ewarn "The compiled firmware files are only available in the versioned releases, you are on your own for this."
+ fi
+}
diff --git a/net-wireless/hackrf-tools/hackrf-tools-2015.07.2-r1.ebuild b/net-wireless/hackrf-tools/hackrf-tools-2015.07.2-r1.ebuild
new file mode 100644
index 000000000000..a1fd7f6b564b
--- /dev/null
+++ b/net-wireless/hackrf-tools/hackrf-tools-2015.07.2-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="library for communicating with HackRF SDR platform"
+HOMEPAGE="http://greatscottgadgets.com/hackrf/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/mossmann/hackrf.git"
+ inherit git-2
+ KEYWORDS=""
+ EGIT_SOURCEDIR="${WORKDIR}/hackrf"
+ S="${WORKDIR}/hackrf/host/hackrf-tools"
+else
+ S="${WORKDIR}/hackrf-${PV}/host/hackrf-tools"
+ SRC_URI="https://github.com/mossmann/hackrf/releases/download/v${PV}/hackrf-${PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+DEPEND="=net-libs/libhackrf-${PV}:="
+RDEPEND="${DEPEND}"
+
+src_install() {
+ cmake-utils_src_install
+ if [[ ${PV} != "9999" ]] ; then
+ insinto /usr/share/hackrf
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb_rom_to_ram.bin" hackrf_jawbreaker_usb_rom_to_ram-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb_ram.dfu" hackrf_jawbreaker_usb_ram-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb_rom_to_ram.bin" hackrf_one_usb_rom_to_ram-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb_ram.dfu" hackrf_one_usb_ram-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware/cpld/sgpio_if/default.xsvf" hackrf_cpld_default-${PV}.xsvf
+ ln -s hackrf_one_usb_rom_to_ram-${PV}.bin "${ED}/usr/share/hackrf/hackrf_one_usb_rom_to_ram.bin"
+ ln -s hackrf_one_usb_ram-${PV}.dfu "${ED}/usr/share/hackrf/hackrf_one_usb_ram.dfu"
+ else
+ ewarn "The compiled firmware files are only available in the versioned releases, you are on your own for this."
+ fi
+}
diff --git a/net-wireless/hackrf-tools/hackrf-tools-2015.07.2.ebuild b/net-wireless/hackrf-tools/hackrf-tools-2015.07.2.ebuild
new file mode 100644
index 000000000000..cd9e614efb7f
--- /dev/null
+++ b/net-wireless/hackrf-tools/hackrf-tools-2015.07.2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="library for communicating with HackRF SDR platform"
+HOMEPAGE="http://greatscottgadgets.com/hackrf/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/mossmann/hackrf.git"
+ inherit git-2
+ KEYWORDS=""
+ EGIT_SOURCEDIR="${WORKDIR}/hackrf"
+ S="${WORKDIR}/hackrf/host/hackrf-tools"
+else
+ S="${WORKDIR}/hackrf-${PV}/host/hackrf-tools"
+ SRC_URI="https://github.com/mossmann/hackrf/releases/download/v${PV}/hackrf-${PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+DEPEND="=net-libs/libhackrf-${PV}:="
+RDEPEND="${DEPEND}"
+
+src_install() {
+ cmake-utils_src_install
+ if [[ ${PV} != "9999" ]] ; then
+ insinto /usr/share/hackrf
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb_rom_to_ram.bin" hackrf_jawbreaker_usb_rom_to_ram-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb_ram.dfu" hackrf_jawbreaker_usb_ram-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb_rom_to_ram.bin" hackrf_one_usb_rom_to_ram-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb_ram.dfu" hackrf_one_usb_ram-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware/cpld/sgpio_if/default.xsvf" hackrf_cpld_default-${PV}.xsvf
+ else
+ ewarn "The compiled firmware files are only available in the versioned releases, you are on your own for this."
+ fi
+}
diff --git a/net-wireless/hackrf-tools/hackrf-tools-9999.ebuild b/net-wireless/hackrf-tools/hackrf-tools-9999.ebuild
new file mode 100644
index 000000000000..a1fd7f6b564b
--- /dev/null
+++ b/net-wireless/hackrf-tools/hackrf-tools-9999.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils
+
+DESCRIPTION="library for communicating with HackRF SDR platform"
+HOMEPAGE="http://greatscottgadgets.com/hackrf/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/mossmann/hackrf.git"
+ inherit git-2
+ KEYWORDS=""
+ EGIT_SOURCEDIR="${WORKDIR}/hackrf"
+ S="${WORKDIR}/hackrf/host/hackrf-tools"
+else
+ S="${WORKDIR}/hackrf-${PV}/host/hackrf-tools"
+ SRC_URI="https://github.com/mossmann/hackrf/releases/download/v${PV}/hackrf-${PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+DEPEND="=net-libs/libhackrf-${PV}:="
+RDEPEND="${DEPEND}"
+
+src_install() {
+ cmake-utils_src_install
+ if [[ ${PV} != "9999" ]] ; then
+ insinto /usr/share/hackrf
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb_rom_to_ram.bin" hackrf_jawbreaker_usb_rom_to_ram-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_jawbreaker_usb_ram.dfu" hackrf_jawbreaker_usb_ram-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb_rom_to_ram.bin" hackrf_one_usb_rom_to_ram-${PV}.bin
+ newins "${WORKDIR}/hackrf-${PV}/firmware-bin/hackrf_one_usb_ram.dfu" hackrf_one_usb_ram-${PV}.dfu
+ newins "${WORKDIR}/hackrf-${PV}/firmware/cpld/sgpio_if/default.xsvf" hackrf_cpld_default-${PV}.xsvf
+ ln -s hackrf_one_usb_rom_to_ram-${PV}.bin "${ED}/usr/share/hackrf/hackrf_one_usb_rom_to_ram.bin"
+ ln -s hackrf_one_usb_ram-${PV}.dfu "${ED}/usr/share/hackrf/hackrf_one_usb_ram.dfu"
+ else
+ ewarn "The compiled firmware files are only available in the versioned releases, you are on your own for this."
+ fi
+}
diff --git a/net-wireless/hackrf-tools/metadata.xml b/net-wireless/hackrf-tools/metadata.xml
new file mode 100644
index 000000000000..f347a49f850f
--- /dev/null
+++ b/net-wireless/hackrf-tools/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">hackrf</remote-id>
+ <remote-id type="github">mossmann/hackrf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/hidclient/Manifest b/net-wireless/hidclient/Manifest
new file mode 100644
index 000000000000..54cc4809ae30
--- /dev/null
+++ b/net-wireless/hidclient/Manifest
@@ -0,0 +1 @@
+DIST hidclient-20120728.tar.bz2 12563 SHA256 c2e0a0b97f816b5303d06eef8e1d1230f2a96013b30bcad8b3375358280c253c SHA512 c928d5844c7ed0cb20421c9241a938d39bb7d65accf9493817c6d9e1de9049a5e8256838b086ff6a44023259656c0c985c2155ed125838c6a2d73439c21884d4 WHIRLPOOL 32aafac3bffc95e0f033353a132f0bd6226fc6d54dd06c766b459320bce8d5090a3f5d2f4d28dae9129aa2ce6f927d33032a2ada635547d136bee4ccd63f0359
diff --git a/net-wireless/hidclient/files/README b/net-wireless/hidclient/files/README
new file mode 100644
index 000000000000..20497fa7dc44
--- /dev/null
+++ b/net-wireless/hidclient/files/README
@@ -0,0 +1,16 @@
+Maintainer note: I copied this from the homepage for reference
+
+Command-line parameter "-l" to list input devices
+-e<NUM> to ONLY bind to device Number NUM (see -l List)
+-x will "mute" the device(s) for X11 so you can start hidclient while having a X11 session.
+-fFIFONAME will read data from a FIFO instead of event devices.
+
+You don't need to copy anything into /etc/bluetooth. Might be a good idea to edit /etc/bluetooth/main.conf and set "DisabledPlugins=input" there, and "Class=0x000540" - that helps
+identifying the device as a "keyboard". Now run
+sudo hidclient -l
+to list the available input devices. If you have for example two usb mice and want to export only one (while working locally on the other), select the ID number from the first column. Start
+hidclient with
+sudo hidclient -e4 -x
+where 4 is the number of your mouse. Hidclient will wait for bluetooth connections. The mouse should stop working on the local PC, so it will not interfere with your normal computer usage
+while it is connected to another device.
+With the -x parameter, you can ignore the "openvt" mentioned above.
diff --git a/net-wireless/hidclient/hidclient-20120728.ebuild b/net-wireless/hidclient/hidclient-20120728.ebuild
new file mode 100644
index 000000000000..97a7e7c1ae87
--- /dev/null
+++ b/net-wireless/hidclient/hidclient-20120728.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+DESCRIPTION="Use your machine as a bluetooh keyboard/mouse"
+HOMEPAGE="http://anselm.hoffmeister.be/computer/hidclient/"
+SRC_URI="http://anselm.hoffmeister.be/computer/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="net-wireless/bluez"
+RDEPEND="${DEPEND}
+ x11-apps/xinput"
+
+S="${WORKDIR}"
+
+src_prepare() {
+ sed -i 's#gcc#$(CC)#' Makefile
+ sed -i 's#-O2#$(CFLAGS) $(LDFLAGS)#' Makefile
+}
+
+src_compile() {
+ emake hidclient
+}
+
+src_install() {
+ dosbin hidclient
+ dodoc "${FILESDIR}"/README
+}
diff --git a/net-wireless/hidclient/metadata.xml b/net-wireless/hidclient/metadata.xml
new file mode 100644
index 000000000000..5fcbf8e1851a
--- /dev/null
+++ b/net-wireless/hidclient/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>zerochaos@gentoo.org</email>
+<name>Rick Farina</name>
+</maintainer>
+<longdescription lang="en">
+</longdescription>
+</pkgmetadata>
+
diff --git a/net-wireless/horst/Manifest b/net-wireless/horst/Manifest
new file mode 100644
index 000000000000..76d4fe2414dd
--- /dev/null
+++ b/net-wireless/horst/Manifest
@@ -0,0 +1 @@
+DIST horst-4.2.tar.gz 97976 SHA256 eab46330998a4c6d5abc9bfdad739b62b57c65049ac6f160e58ee3edd3260057 SHA512 a6fa50d6eb0d2c2ae83dfccf59359f8cd74334dbc2362f01f1a3787ebb3d34bcdb76c34899cb048e4a4abc7353d72e8dd846b567ba228f9930e3f418b3656c0a WHIRLPOOL 5209beb9259b1d4a8c151e5ed66bc38f7682918c9cbd3af944de4d62e75af53fc15b6afc730cef3b3642f6475e8f9e62379c89da6a65739f34ceb61214f63645
diff --git a/net-wireless/horst/horst-4.2.ebuild b/net-wireless/horst/horst-4.2.ebuild
new file mode 100644
index 000000000000..4774eab15ab1
--- /dev/null
+++ b/net-wireless/horst/horst-4.2.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="Small 802.11 wireless LAN analyzer"
+HOMEPAGE="http://br1.einfach.org/tech/horst/"
+SRC_URI="http://br1.einfach.org/${PN}_dl/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug +pcap test"
+
+RDEPEND="sys-libs/ncurses
+ pcap? ( net-libs/libpcap )"
+DEPEND="${RDEPEND}
+ test? ( sys-devel/sparse )"
+
+#just semantic tests, no functional tests
+RESTRICT=test
+
+src_compile() {
+ tc-export CC
+ emake PCAP=$(usex pcap 1 0) DEBUG=$(usex debug 1 0)
+}
+
+src_install() {
+ dosbin ${PN}{,.sh}
+ dodoc README TODO
+ doman ${PN}.1
+}
diff --git a/net-wireless/horst/horst-9999.ebuild b/net-wireless/horst/horst-9999.ebuild
new file mode 100644
index 000000000000..e29591a5d7b4
--- /dev/null
+++ b/net-wireless/horst/horst-9999.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs git-r3
+
+DESCRIPTION="Small 802.11 wireless LAN analyzer"
+HOMEPAGE="http://br1.einfach.org/tech/horst/"
+EGIT_REPO_URI="https://github.com/br101/${PN}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="debug +pcap test"
+
+RDEPEND="sys-libs/ncurses
+ pcap? ( net-libs/libpcap )"
+DEPEND="${RDEPEND}
+ test? ( sys-devel/sparse )"
+
+#just semantic tests, no functional tests
+RESTRICT=test
+
+src_compile() {
+ tc-export CC
+ emake PCAP=$(usex pcap 1 0) DEBUG=$(usex debug 1 0)
+}
+
+src_install() {
+ dosbin ${PN}{,.sh}
+ dodoc README TODO
+ doman ${PN}.1
+ insinto /etc
+ doins ${PN}.conf
+}
diff --git a/net-wireless/horst/metadata.xml b/net-wireless/horst/metadata.xml
new file mode 100644
index 000000000000..b6b141817fa9
--- /dev/null
+++ b/net-wireless/horst/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>xmw@gentoo.org</email>
+<name>Michael Weber</name>
+</maintainer>
+<use>
+ <flag name="pcap">Add support for network packet capture via net-libs/libpcap</flag>
+</use>
+</pkgmetadata>
diff --git a/net-wireless/hostap-utils/Manifest b/net-wireless/hostap-utils/Manifest
new file mode 100644
index 000000000000..bba788616c6e
--- /dev/null
+++ b/net-wireless/hostap-utils/Manifest
@@ -0,0 +1 @@
+DIST hostap-utils-0.4.7.tar.gz 60782 SHA256 c6f598d8e356c1620fa009eca0a700bf1105e16817eefd77d891994261009355 SHA512 1a54c5d84b02d2dc96c33d6463af775212e09a20ac85367184636d364f17a09e48f937417dd9c43148663d242b3fc5f2f13835ec5331bd0600ef31797c414d44 WHIRLPOOL 4e195921144640806d944ce2628dbd15fa1cf8c3b51d5ba761476fa5fc301478bca1b99f3f8cf401d3854492f4e8ed1ee9449469722b9f9030c1269cf63d1450
diff --git a/net-wireless/hostap-utils/files/hostap-utils-0.4.7-makefile.patch b/net-wireless/hostap-utils/files/hostap-utils-0.4.7-makefile.patch
new file mode 100644
index 000000000000..366a878b7b62
--- /dev/null
+++ b/net-wireless/hostap-utils/files/hostap-utils-0.4.7-makefile.patch
@@ -0,0 +1,31 @@
+--- Makefile.orig 2012-11-20 12:16:39.747881769 +0400
++++ Makefile 2012-11-20 12:17:39.248881307 +0400
+@@ -1,7 +1,3 @@
+-ifndef CFLAGS
+-CFLAGS = -O2 -Wall
+-endif
+-
+ # Include directory for CVS version
+ CFLAGS += -I../driver/modules
+
+@@ -14,17 +10,17 @@
+ hostap_crypt_conf: hostap_crypt_conf.c
+
+ hostap_diag: hostap_diag.o util.o
+- $(CC) -o hostap_diag $(CFLAGS) hostap_diag.o util.o
++ $(CC) -o hostap_diag $(CFLAGS) $(LDFLAGS) hostap_diag.o util.o
+
+ hostap_diag.o: hostap_diag.c util.h
+
+ util.o: util.c util.h
+
+ hostap_io_debug: hostap_io_debug.c
+- $(CC) -o hostap_io_debug $(CFLAGS) hostap_io_debug.c
++ $(CC) -o hostap_io_debug $(CFLAGS) $(LDFLAGS) hostap_io_debug.c
+
+ hostap_rid: hostap_rid.o util.o
+- $(CC) -o hostap_rid $(CFLAGS) hostap_rid.o util.o
++ $(CC) -o hostap_rid $(CFLAGS) $(LDFLAGS) hostap_rid.o util.o
+
+ hostap_rid.o: hostap_rid.c util.h
+
diff --git a/net-wireless/hostap-utils/hostap-utils-0.4.7-r1.ebuild b/net-wireless/hostap-utils/hostap-utils-0.4.7-r1.ebuild
new file mode 100644
index 000000000000..9586f3b52886
--- /dev/null
+++ b/net-wireless/hostap-utils/hostap-utils-0.4.7-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit base toolchain-funcs
+
+DESCRIPTION="Utilities for Intersil Prism2/2.5/3 based IEEE 802.11b wireless LAN products"
+HOMEPAGE="http://hostap.epitest.fi/"
+SRC_URI="http://hostap.epitest.fi/releases/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}/${P}-makefile.patch" )
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ dosbin hostap_{crypt_conf,diag,fw_load,io_debug,rid}
+ dosbin prism2_{param,srec}
+ dosbin split_combined_hex
+
+ dodoc README
+}
diff --git a/net-wireless/hostap-utils/metadata.xml b/net-wireless/hostap-utils/metadata.xml
new file mode 100644
index 000000000000..c078bde811ae
--- /dev/null
+++ b/net-wireless/hostap-utils/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer><email>maintainer-needed@gentoo.org</email></maintainer>
+<longdescription>Utility programs for hostap-driver</longdescription>
+</pkgmetadata>
diff --git a/net-wireless/hostapd/Manifest b/net-wireless/hostapd/Manifest
new file mode 100644
index 000000000000..f9a5061af237
--- /dev/null
+++ b/net-wireless/hostapd/Manifest
@@ -0,0 +1 @@
+DIST hostapd-2.4.tar.gz 1658872 SHA256 6fe0eb6bd1c9cbd24952ece8586b6f7bd14ab358edfda99794e79b9b9dbd657f SHA512 37e648fe9cce92923ab1d1e23a4267e274c988785d7be5610f1affca425ffa86b438de81e37446926a0f9158d6b67ee83e6396c3f81d571545c973dddbf1ffe3 WHIRLPOOL 78484c7e09725ba967c8815c3d8b0ffcc0c56daaec4acc79bc15c7392084c8642a2b41156b2c6a6360badb7e9d23792699d452fe600b56e3d62dd569188b6c2c
diff --git a/net-wireless/hostapd/files/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch b/net-wireless/hostapd/files/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch
new file mode 100644
index 000000000000..36b4ca294699
--- /dev/null
+++ b/net-wireless/hostapd/files/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch
@@ -0,0 +1,49 @@
+From 5acd23f4581da58683f3cf5e36cb71bbe4070bd7 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Tue, 28 Apr 2015 17:08:33 +0300
+Subject: [PATCH] WPS: Fix HTTP chunked transfer encoding parser
+
+strtoul() return value may end up overflowing the int h->chunk_size and
+resulting in a negative value to be stored as the chunk_size. This could
+result in the following memcpy operation using a very large length
+argument which would result in a buffer overflow and segmentation fault.
+
+This could have been used to cause a denial service by any device that
+has been authorized for network access (either wireless or wired). This
+would affect both the WPS UPnP functionality in a WPS AP (hostapd with
+upnp_iface parameter set in the configuration) and WPS ER
+(wpa_supplicant with WPS_ER_START control interface command used).
+
+Validate the parsed chunk length value to avoid this. In addition to
+rejecting negative values, we can also reject chunk size that would be
+larger than the maximum configured body length.
+
+Thanks to Kostya Kortchinsky of Google security team for discovering and
+reporting this issue.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/wps/httpread.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/wps/httpread.c b/src/wps/httpread.c
+index 2f08f37..d2855e3 100644
+--- a/src/wps/httpread.c
++++ b/src/wps/httpread.c
+@@ -533,6 +533,13 @@ static void httpread_read_handler(int sd, void *eloop_ctx, void *sock_ctx)
+ if (!isxdigit(*cbp))
+ goto bad;
+ h->chunk_size = strtoul(cbp, NULL, 16);
++ if (h->chunk_size < 0 ||
++ h->chunk_size > h->max_bytes) {
++ wpa_printf(MSG_DEBUG,
++ "httpread: Invalid chunk size %d",
++ h->chunk_size);
++ goto bad;
++ }
+ /* throw away chunk header
+ * so we have only real data
+ */
+--
+1.9.1
+
diff --git a/net-wireless/hostapd/files/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch b/net-wireless/hostapd/files/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch
new file mode 100644
index 000000000000..79c5af8906fa
--- /dev/null
+++ b/net-wireless/hostapd/files/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch
@@ -0,0 +1,41 @@
+From ef566a4d4f74022e1fdb0a2addfe81e6de9f4aae Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Wed, 29 Apr 2015 02:21:53 +0300
+Subject: [PATCH] AP WMM: Fix integer underflow in WMM Action frame parser
+
+The length of the WMM Action frame was not properly validated and the
+length of the information elements (int left) could end up being
+negative. This would result in reading significantly past the stack
+buffer while parsing the IEs in ieee802_11_parse_elems() and while doing
+so, resulting in segmentation fault.
+
+This can result in an invalid frame being used for a denial of service
+attack (hostapd process killed) against an AP with a driver that uses
+hostapd for management frame processing (e.g., all mac80211-based
+drivers).
+
+Thanks to Kostya Kortchinsky of Google security team for discovering and
+reporting this issue.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/ap/wmm.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/ap/wmm.c b/src/ap/wmm.c
+index 6d4177c..314e244 100644
+--- a/src/ap/wmm.c
++++ b/src/ap/wmm.c
+@@ -274,6 +274,9 @@ void hostapd_wmm_action(struct hostapd_data *hapd,
+ return;
+ }
+
++ if (left < 0)
++ return; /* not a valid WMM Action frame */
++
+ /* extract the tspec info element */
+ if (ieee802_11_parse_elems(pos, left, &elems, 1) == ParseFailed) {
+ hostapd_logger(hapd, mgmt->sa, HOSTAPD_MODULE_IEEE80211,
+--
+1.9.1
+
diff --git a/net-wireless/hostapd/files/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch b/net-wireless/hostapd/files/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch
new file mode 100644
index 000000000000..91627fb7b7f6
--- /dev/null
+++ b/net-wireless/hostapd/files/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch
@@ -0,0 +1,73 @@
+From dd2f043c9c43d156494e33d7ce22db96e6ef42c7 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Fri, 1 May 2015 16:37:45 +0300
+Subject: [PATCH 1/5] EAP-pwd peer: Fix payload length validation for Commit
+ and Confirm
+
+The length of the received Commit and Confirm message payloads was not
+checked before reading them. This could result in a buffer read
+overflow when processing an invalid message.
+
+Fix this by verifying that the payload is of expected length before
+processing it. In addition, enforce correct state transition sequence to
+make sure there is no unexpected behavior if receiving a Commit/Confirm
+message before the previous exchanges have been completed.
+
+Thanks to Kostya Kortchinsky of Google security team for discovering and
+reporting this issue.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_peer/eap_pwd.c | 29 +++++++++++++++++++++++++++++
+ 1 file changed, 29 insertions(+)
+
+diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c
+index f2b0926..a629437 100644
+--- a/src/eap_peer/eap_pwd.c
++++ b/src/eap_peer/eap_pwd.c
+@@ -355,6 +355,23 @@ eap_pwd_perform_commit_exchange(struct eap_sm *sm, struct eap_pwd_data *data,
+ BIGNUM *mask = NULL, *x = NULL, *y = NULL, *cofactor = NULL;
+ u16 offset;
+ u8 *ptr, *scalar = NULL, *element = NULL;
++ size_t prime_len, order_len;
++
++ if (data->state != PWD_Commit_Req) {
++ ret->ignore = TRUE;
++ goto fin;
++ }
++
++ prime_len = BN_num_bytes(data->grp->prime);
++ order_len = BN_num_bytes(data->grp->order);
++
++ if (payload_len != 2 * prime_len + order_len) {
++ wpa_printf(MSG_INFO,
++ "EAP-pwd: Unexpected Commit payload length %u (expected %u)",
++ (unsigned int) payload_len,
++ (unsigned int) (2 * prime_len + order_len));
++ goto fin;
++ }
+
+ if (((data->private_value = BN_new()) == NULL) ||
+ ((data->my_element = EC_POINT_new(data->grp->group)) == NULL) ||
+@@ -554,6 +571,18 @@ eap_pwd_perform_confirm_exchange(struct eap_sm *sm, struct eap_pwd_data *data,
+ u8 conf[SHA256_MAC_LEN], *cruft = NULL, *ptr;
+ int offset;
+
++ if (data->state != PWD_Confirm_Req) {
++ ret->ignore = TRUE;
++ goto fin;
++ }
++
++ if (payload_len != SHA256_MAC_LEN) {
++ wpa_printf(MSG_INFO,
++ "EAP-pwd: Unexpected Confirm payload length %u (expected %u)",
++ (unsigned int) payload_len, SHA256_MAC_LEN);
++ goto fin;
++ }
++
+ /*
+ * first build up the ciphersuite which is group | random_function |
+ * prf
+--
+1.9.1
+
diff --git a/net-wireless/hostapd/files/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch b/net-wireless/hostapd/files/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch
new file mode 100644
index 000000000000..5dca20b2771b
--- /dev/null
+++ b/net-wireless/hostapd/files/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch
@@ -0,0 +1,66 @@
+From e28a58be26184c2a23f80b410e0997ef1bd5d578 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Fri, 1 May 2015 16:40:44 +0300
+Subject: [PATCH 2/5] EAP-pwd server: Fix payload length validation for Commit
+ and Confirm
+
+The length of the received Commit and Confirm message payloads was not
+checked before reading them. This could result in a buffer read
+overflow when processing an invalid message.
+
+Fix this by verifying that the payload is of expected length before
+processing it. In addition, enforce correct state transition sequence to
+make sure there is no unexpected behavior if receiving a Commit/Confirm
+message before the previous exchanges have been completed.
+
+Thanks to Kostya Kortchinsky of Google security team for discovering and
+reporting this issue.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_server/eap_server_pwd.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/src/eap_server/eap_server_pwd.c b/src/eap_server/eap_server_pwd.c
+index 66bd5d2..3189105 100644
+--- a/src/eap_server/eap_server_pwd.c
++++ b/src/eap_server/eap_server_pwd.c
+@@ -656,9 +656,21 @@ eap_pwd_process_commit_resp(struct eap_sm *sm, struct eap_pwd_data *data,
+ BIGNUM *x = NULL, *y = NULL, *cofactor = NULL;
+ EC_POINT *K = NULL, *point = NULL;
+ int res = 0;
++ size_t prime_len, order_len;
+
+ wpa_printf(MSG_DEBUG, "EAP-pwd: Received commit response");
+
++ prime_len = BN_num_bytes(data->grp->prime);
++ order_len = BN_num_bytes(data->grp->order);
++
++ if (payload_len != 2 * prime_len + order_len) {
++ wpa_printf(MSG_INFO,
++ "EAP-pwd: Unexpected Commit payload length %u (expected %u)",
++ (unsigned int) payload_len,
++ (unsigned int) (2 * prime_len + order_len));
++ goto fin;
++ }
++
+ if (((data->peer_scalar = BN_new()) == NULL) ||
+ ((data->k = BN_new()) == NULL) ||
+ ((cofactor = BN_new()) == NULL) ||
+@@ -774,6 +786,13 @@ eap_pwd_process_confirm_resp(struct eap_sm *sm, struct eap_pwd_data *data,
+ u8 conf[SHA256_MAC_LEN], *cruft = NULL, *ptr;
+ int offset;
+
++ if (payload_len != SHA256_MAC_LEN) {
++ wpa_printf(MSG_INFO,
++ "EAP-pwd: Unexpected Confirm payload length %u (expected %u)",
++ (unsigned int) payload_len, SHA256_MAC_LEN);
++ goto fin;
++ }
++
+ /* build up the ciphersuite: group | random_function | prf */
+ grp = htons(data->group_num);
+ ptr = (u8 *) &cs;
+--
+1.9.1
+
diff --git a/net-wireless/hostapd/files/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch b/net-wireless/hostapd/files/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch
new file mode 100644
index 000000000000..4d2f9d8aefeb
--- /dev/null
+++ b/net-wireless/hostapd/files/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch
@@ -0,0 +1,52 @@
+From 477c74395acd0123340457ba6f15ab345d42016e Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sat, 2 May 2015 19:23:04 +0300
+Subject: [PATCH 3/5] EAP-pwd peer: Fix Total-Length parsing for fragment
+ reassembly
+
+The remaining number of bytes in the message could be smaller than the
+Total-Length field size, so the length needs to be explicitly checked
+prior to reading the field and decrementing the len variable. This could
+have resulted in the remaining length becoming negative and interpreted
+as a huge positive integer.
+
+In addition, check that there is no already started fragment in progress
+before allocating a new buffer for reassembling fragments. This avoid a
+potential memory leak when processing invalid message.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_peer/eap_pwd.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c
+index a629437..1d2079b 100644
+--- a/src/eap_peer/eap_pwd.c
++++ b/src/eap_peer/eap_pwd.c
+@@ -866,11 +866,23 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret,
+ * if it's the first fragment there'll be a length field
+ */
+ if (EAP_PWD_GET_LENGTH_BIT(lm_exch)) {
++ if (len < 2) {
++ wpa_printf(MSG_DEBUG,
++ "EAP-pwd: Frame too short to contain Total-Length field");
++ ret->ignore = TRUE;
++ return NULL;
++ }
+ tot_len = WPA_GET_BE16(pos);
+ wpa_printf(MSG_DEBUG, "EAP-pwd: Incoming fragments whose "
+ "total length = %d", tot_len);
+ if (tot_len > 15000)
+ return NULL;
++ if (data->inbuf) {
++ wpa_printf(MSG_DEBUG,
++ "EAP-pwd: Unexpected new fragment start when previous fragment is still in use");
++ ret->ignore = TRUE;
++ return NULL;
++ }
+ data->inbuf = wpabuf_alloc(tot_len);
+ if (data->inbuf == NULL) {
+ wpa_printf(MSG_INFO, "Out of memory to buffer "
+--
+1.9.1
+
diff --git a/net-wireless/hostapd/files/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch b/net-wireless/hostapd/files/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch
new file mode 100644
index 000000000000..7edef099eb59
--- /dev/null
+++ b/net-wireless/hostapd/files/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch
@@ -0,0 +1,50 @@
+From 3035cc2894e08319b905bd6561e8bddc8c2db9fa Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sat, 2 May 2015 19:26:06 +0300
+Subject: [PATCH 4/5] EAP-pwd server: Fix Total-Length parsing for fragment
+ reassembly
+
+The remaining number of bytes in the message could be smaller than the
+Total-Length field size, so the length needs to be explicitly checked
+prior to reading the field and decrementing the len variable. This could
+have resulted in the remaining length becoming negative and interpreted
+as a huge positive integer.
+
+In addition, check that there is no already started fragment in progress
+before allocating a new buffer for reassembling fragments. This avoid a
+potential memory leak when processing invalid message.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_server/eap_server_pwd.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/eap_server/eap_server_pwd.c b/src/eap_server/eap_server_pwd.c
+index 3189105..2bfc3c2 100644
+--- a/src/eap_server/eap_server_pwd.c
++++ b/src/eap_server/eap_server_pwd.c
+@@ -942,11 +942,21 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv,
+ * the first fragment has a total length
+ */
+ if (EAP_PWD_GET_LENGTH_BIT(lm_exch)) {
++ if (len < 2) {
++ wpa_printf(MSG_DEBUG,
++ "EAP-pwd: Frame too short to contain Total-Length field");
++ return;
++ }
+ tot_len = WPA_GET_BE16(pos);
+ wpa_printf(MSG_DEBUG, "EAP-pwd: Incoming fragments, total "
+ "length = %d", tot_len);
+ if (tot_len > 15000)
+ return;
++ if (data->inbuf) {
++ wpa_printf(MSG_DEBUG,
++ "EAP-pwd: Unexpected new fragment start when previous fragment is still in use");
++ return;
++ }
+ data->inbuf = wpabuf_alloc(tot_len);
+ if (data->inbuf == NULL) {
+ wpa_printf(MSG_INFO, "EAP-pwd: Out of memory to "
+--
+1.9.1
+
diff --git a/net-wireless/hostapd/files/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch b/net-wireless/hostapd/files/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch
new file mode 100644
index 000000000000..a601323f14da
--- /dev/null
+++ b/net-wireless/hostapd/files/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch
@@ -0,0 +1,32 @@
+From 28a069a545b06b99eb55ad53f63f2c99e65a98f6 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sat, 2 May 2015 19:26:28 +0300
+Subject: [PATCH 5/5] EAP-pwd peer: Fix asymmetric fragmentation behavior
+
+The L (Length) and M (More) flags needs to be cleared before deciding
+whether the locally generated response requires fragmentation. This
+fixes an issue where these flags from the server could have been invalid
+for the following message. In some cases, this could have resulted in
+triggering the wpabuf security check that would terminate the process
+due to invalid buffer allocation.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_peer/eap_pwd.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c
+index 1d2079b..e58b13a 100644
+--- a/src/eap_peer/eap_pwd.c
++++ b/src/eap_peer/eap_pwd.c
+@@ -968,6 +968,7 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret,
+ /*
+ * we have output! Do we need to fragment it?
+ */
++ lm_exch = EAP_PWD_GET_EXCHANGE(lm_exch);
+ len = wpabuf_len(data->outbuf);
+ if ((len + EAP_PWD_HDR_SIZE) > data->mtu) {
+ resp = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_PWD, data->mtu,
+--
+1.9.1
+
diff --git a/net-wireless/hostapd/files/2015-5/0001-NFC-Avoid-misaligned-read-of-an-NDEF-field.patch b/net-wireless/hostapd/files/2015-5/0001-NFC-Avoid-misaligned-read-of-an-NDEF-field.patch
new file mode 100644
index 000000000000..d03eb484fc28
--- /dev/null
+++ b/net-wireless/hostapd/files/2015-5/0001-NFC-Avoid-misaligned-read-of-an-NDEF-field.patch
@@ -0,0 +1,29 @@
+From fc880b11ed70ff9dcf8be48621f75d354cc5094d Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Tue, 7 Jul 2015 15:33:55 +0300
+Subject: [PATCH] NFC: Avoid misaligned read of an NDEF field
+
+The 32-bit version of payload length field may not be 32-bit aligned in
+the message buffer, so use WPA_GET_BE32() to read it instead of ntohl().
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/wps/ndef.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/wps/ndef.c b/src/wps/ndef.c
+index 8d1ce1e..5604b0a 100644
+--- a/src/wps/ndef.c
++++ b/src/wps/ndef.c
+@@ -47,7 +47,7 @@ static int ndef_parse_record(const u8 *data, u32 size,
+ } else {
+ if (size < 6)
+ return -1;
+- record->payload_length = ntohl(*(u32 *)pos);
++ record->payload_length = WPA_GET_BE32(pos);
+ pos += sizeof(u32);
+ }
+
+--
+1.7.9.5
+
diff --git a/net-wireless/hostapd/files/2015-5/0002-NFC-Fix-payload-length-validation-in-NDEF-record-par.patch b/net-wireless/hostapd/files/2015-5/0002-NFC-Fix-payload-length-validation-in-NDEF-record-par.patch
new file mode 100644
index 000000000000..1f624c8dad46
--- /dev/null
+++ b/net-wireless/hostapd/files/2015-5/0002-NFC-Fix-payload-length-validation-in-NDEF-record-par.patch
@@ -0,0 +1,61 @@
+From df9079e72760ceb7ebe7fb11538200c516bdd886 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Tue, 7 Jul 2015 21:57:28 +0300
+Subject: [PATCH] NFC: Fix payload length validation in NDEF record parser
+
+It was possible for the 32-bit record->total_length value to end up
+wrapping around due to integer overflow if the longer form of payload
+length field is used and record->payload_length gets a value close to
+2^32. This could result in ndef_parse_record() accepting a too large
+payload length value and the record type filter reading up to about 20
+bytes beyond the end of the buffer and potentially killing the process.
+This could also result in an attempt to allocate close to 2^32 bytes of
+heap memory and if that were to succeed, a buffer read overflow of the
+same length which would most likely result in the process termination.
+In case of record->total_length ending up getting the value 0, there
+would be no buffer read overflow, but record parsing would result in an
+infinite loop in ndef_parse_records().
+
+Any of these error cases could potentially be used for denial of service
+attacks over NFC by using a malformed NDEF record on an NFC Tag or
+sending them during NFC connection handover if the application providing
+the NDEF message to hostapd/wpa_supplicant did no validation of the
+received records. While such validation is likely done in the NFC stack
+that needs to parse the NFC messages before further processing,
+hostapd/wpa_supplicant better be prepared for any data being included
+here.
+
+Fix this by validating record->payload_length value in a way that
+detects integer overflow. (CID 122668)
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/wps/ndef.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/wps/ndef.c b/src/wps/ndef.c
+index 5604b0a..50d018f 100644
+--- a/src/wps/ndef.c
++++ b/src/wps/ndef.c
+@@ -48,6 +48,8 @@ static int ndef_parse_record(const u8 *data, u32 size,
+ if (size < 6)
+ return -1;
+ record->payload_length = WPA_GET_BE32(pos);
++ if (record->payload_length > size - 6)
++ return -1;
+ pos += sizeof(u32);
+ }
+
+@@ -68,7 +70,8 @@ static int ndef_parse_record(const u8 *data, u32 size,
+ pos += record->payload_length;
+
+ record->total_length = pos - data;
+- if (record->total_length > size)
++ if (record->total_length > size ||
++ record->total_length < record->payload_length)
+ return -1;
+ return 0;
+ }
+--
+1.9.1
+
diff --git a/net-wireless/hostapd/files/hostapd-conf.d b/net-wireless/hostapd/files/hostapd-conf.d
new file mode 100644
index 000000000000..7d05735eb3b4
--- /dev/null
+++ b/net-wireless/hostapd/files/hostapd-conf.d
@@ -0,0 +1,9 @@
+# Space separated List of interfaces which needs to be started before
+# hostapd
+INTERFACES="wlan0"
+
+# Space separated list of configuration files
+CONFIGS="/etc/hostapd/hostapd.conf"
+
+# Extra options to pass to hostapd, see hostapd(8)
+OPTIONS=""
diff --git a/net-wireless/hostapd/files/hostapd-hlr_auc_gw-openssl.patch b/net-wireless/hostapd/files/hostapd-hlr_auc_gw-openssl.patch
new file mode 100644
index 000000000000..1e88859b8e00
--- /dev/null
+++ b/net-wireless/hostapd/files/hostapd-hlr_auc_gw-openssl.patch
@@ -0,0 +1,43 @@
+From 58e115b86928000475b734a4345862afe11d6352 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@qca.qualcomm.com>
+Date: Fri, 20 Mar 2015 12:56:31 +0000
+Subject: Fix hlr_auc_gw build with OpenSSL
+
+Commit 983c6a606bc839248ea0c69090e60c095a655bc6 ('OpenSSL: Replace
+internal HMAC-MD5 implementation') forgot to make inclusion of md5.o
+conditional for hlr_auc_gw build.
+
+Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
+---
+diff --git a/hostapd/Android.mk b/hostapd/Android.mk
+index 5c69bd1..54b139c 100644
+--- a/hostapd/Android.mk
++++ b/hostapd/Android.mk
+@@ -795,8 +795,10 @@ OBJS += src/crypto/random.c
+ HOBJS += src/crypto/random.c
+ HOBJS += src/utils/eloop.c
+ HOBJS += $(SHA1OBJS)
++ifneq ($(CONFIG_TLS), openssl)
+ HOBJS += src/crypto/md5.c
+ endif
++endif
+
+ ifdef CONFIG_RADIUS_SERVER
+ L_CFLAGS += -DRADIUS_SERVER
+diff --git a/hostapd/Makefile b/hostapd/Makefile
+index 520ae89..d718c15 100644
+--- a/hostapd/Makefile
++++ b/hostapd/Makefile
+@@ -792,8 +792,10 @@ OBJS += ../src/crypto/random.o
+ HOBJS += ../src/crypto/random.o
+ HOBJS += ../src/utils/eloop.o
+ HOBJS += $(SHA1OBJS)
++ifneq ($(CONFIG_TLS), openssl)
+ HOBJS += ../src/crypto/md5.o
+ endif
++endif
+
+ ifdef CONFIG_RADIUS_SERVER
+ CFLAGS += -DRADIUS_SERVER
+--
+cgit v0.9.2
diff --git a/net-wireless/hostapd/files/hostapd-init.d b/net-wireless/hostapd/files/hostapd-init.d
new file mode 100644
index 000000000000..eafbc6046c73
--- /dev/null
+++ b/net-wireless/hostapd/files/hostapd-init.d
@@ -0,0 +1,39 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+pidfile="/run/${SVCNAME}.pid"
+command="/usr/sbin/hostapd"
+command_args="-P ${pidfile} -B ${OPTIONS} ${CONFIGS}"
+
+extra_started_commands="reload"
+
+depend() {
+ local myneeds=
+ for iface in ${INTERFACES}; do
+ myneeds="${myneeds} net.${iface}"
+ done
+
+ [ -n "${myneeds}" ] && need ${myneeds}
+ use logger
+}
+
+start_pre() {
+ local file
+
+ for file in ${CONFIGS}; do
+ if [ ! -r "${file}" ]; then
+ eerror "hostapd configuration file (${CONFIG}) not found"
+ return 1
+ fi
+ done
+}
+
+reload() {
+ start_pre || return 1
+
+ ebegin "Reloading ${SVCNAME} configuration"
+ kill -HUP $(cat ${pidfile}) > /dev/null 2>&1
+ eend $?
+}
diff --git a/net-wireless/hostapd/files/hostapd.service b/net-wireless/hostapd/files/hostapd.service
new file mode 100644
index 000000000000..8f0ee8e8f744
--- /dev/null
+++ b/net-wireless/hostapd/files/hostapd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
+After=network.target
+
+[Service]
+ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-wireless/hostapd/hostapd-2.4-r2.ebuild b/net-wireless/hostapd/hostapd-2.4-r2.ebuild
new file mode 100644
index 000000000000..82d4e65ea8f1
--- /dev/null
+++ b/net-wireless/hostapd/hostapd-2.4-r2.ebuild
@@ -0,0 +1,220 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs eutils systemd
+
+DESCRIPTION="IEEE 802.11 wireless LAN Host AP daemon"
+HOMEPAGE="http://hostap.epitest.fi"
+SRC_URI="http://hostap.epitest.fi/releases/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 BSD )"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~mips ppc x86"
+IUSE="ipv6 logwatch netlink sqlite +ssl +wps +crda"
+
+DEPEND="ssl? ( dev-libs/openssl[-bindist] )
+ kernel_linux? (
+ dev-libs/libnl:3
+ crda? ( net-wireless/crda )
+ )
+ netlink? ( net-libs/libnfnetlink )
+ sqlite? ( >=dev-db/sqlite-3 )"
+
+RDEPEND="${DEPEND}"
+
+S="${S}/${PN}"
+
+src_prepare() {
+ cd ..
+
+ # bug (548744)
+ epatch "${FILESDIR}/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch"
+ epatch "${FILESDIR}/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch"
+ epatch "${FILESDIR}/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch"
+ epatch "${FILESDIR}/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch"
+ epatch "${FILESDIR}/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch"
+ epatch "${FILESDIR}/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch"
+ epatch "${FILESDIR}/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch"
+
+ cd "${PN}"
+
+ epatch "${FILESDIR}/${PN}-hlr_auc_gw-openssl.patch"
+
+ sed -i -e "s:/etc/hostapd:/etc/hostapd/hostapd:g" \
+ "${S}/hostapd.conf" || die
+}
+
+src_configure() {
+ local CONFIG="${S}/.config"
+
+ # toolchain setup
+ echo "CC = $(tc-getCC)" > ${CONFIG}
+
+ # EAP authentication methods
+ echo "CONFIG_EAP=y" >> ${CONFIG}
+ echo "CONFIG_ERP=y" >> ${CONFIG}
+ echo "CONFIG_EAP_MD5=y" >> ${CONFIG}
+
+ if use ssl; then
+ # SSL authentication methods
+ echo "CONFIG_EAP_FAST=y" >> ${CONFIG}
+ echo "CONFIG_EAP_TLS=y" >> ${CONFIG}
+ echo "CONFIG_EAP_TTLS=y" >> ${CONFIG}
+ echo "CONFIG_EAP_MSCHAPV2=y" >> ${CONFIG}
+ echo "CONFIG_EAP_PEAP=y" >> ${CONFIG}
+ echo "CONFIG_TLSV11=y" >> ${CONFIG}
+ echo "CONFIG_TLSV12=y" >> ${CONFIG}
+ fi
+
+ if use wps; then
+ # Enable Wi-Fi Protected Setup
+ echo "CONFIG_WPS=y" >> ${CONFIG}
+ echo "CONFIG_WPS2=y" >> ${CONFIG}
+ echo "CONFIG_WPS_UPNP=y" >> ${CONFIG}
+ echo "CONFIG_WPS_NFC=y" >> ${CONFIG}
+ einfo "Enabling Wi-Fi Protected Setup support"
+ fi
+
+ echo "CONFIG_EAP_IKEV2=y" >> ${CONFIG}
+ echo "CONFIG_EAP_TNC=y" >> ${CONFIG}
+ echo "CONFIG_EAP_GTC=y" >> ${CONFIG}
+ echo "CONFIG_EAP_SIM=y" >> ${CONFIG}
+ echo "CONFIG_EAP_AKA=y" >> ${CONFIG}
+ echo "CONFIG_EAP_AKA_PRIME=y" >> ${CONFIG}
+ echo "CONFIG_EAP_EKE=y" >> ${CONFIG}
+ echo "CONFIG_EAP_PAX=y" >> ${CONFIG}
+ echo "CONFIG_EAP_PSK=y" >> ${CONFIG}
+ echo "CONFIG_EAP_SAKE=y" >> ${CONFIG}
+ echo "CONFIG_EAP_GPSK=y" >> ${CONFIG}
+ echo "CONFIG_EAP_GPSK_SHA256=y" >> ${CONFIG}
+ echo "CONFIG_EAP_PWD=y" >> ${CONFIG}
+
+ einfo "Enabling drivers: "
+
+ # drivers
+ echo "CONFIG_DRIVER_HOSTAP=y" >> ${CONFIG}
+ einfo " HostAP driver enabled"
+ echo "CONFIG_DRIVER_WIRED=y" >> ${CONFIG}
+ einfo " Wired driver enabled"
+ echo "CONFIG_DRIVER_PRISM54=y" >> ${CONFIG}
+ einfo " Prism54 driver enabled"
+ echo "CONFIG_DRIVER_NONE=y" >> ${CONFIG}
+ einfo " None driver enabled"
+
+ einfo " nl80211 driver enabled"
+ echo "CONFIG_DRIVER_NL80211=y" >> ${CONFIG}
+
+ # misc
+ echo "CONFIG_DEBUG_FILE=y" >> ${CONFIG}
+ echo "CONFIG_PKCS12=y" >> ${CONFIG}
+ echo "CONFIG_RADIUS_SERVER=y" >> ${CONFIG}
+ echo "CONFIG_IAPP=y" >> ${CONFIG}
+ echo "CONFIG_IEEE80211R=y" >> ${CONFIG}
+ echo "CONFIG_IEEE80211W=y" >> ${CONFIG}
+ echo "CONFIG_IEEE80211N=y" >> ${CONFIG}
+ echo "CONFIG_IEEE80211AC=y" >> ${CONFIG}
+ echo "CONFIG_PEERKEY=y" >> ${CONFIG}
+ echo "CONFIG_RSN_PREAUTH=y" >> ${CONFIG}
+ echo "CONFIG_INTERWORKING=y" >> ${CONFIG}
+ echo "CONFIG_FULL_DYNAMIC_VLAN=y" >> ${CONFIG}
+ echo "CONFIG_HS20=y" >> ${CONFIG}
+ echo "CONFIG_WNM=y" >> ${CONFIG}
+ echo "CONFIG_ACS=y" >> ${CONFIG}
+
+ if use netlink; then
+ # Netlink support
+ echo "CONFIG_VLAN_NETLINK=y" >> ${CONFIG}
+ fi
+
+ if use ipv6; then
+ # IPv6 support
+ echo "CONFIG_IPV6=y" >> ${CONFIG}
+ fi
+
+ if use sqlite; then
+ # Sqlite support
+ echo "CONFIG_SQLITE=y" >> ${CONFIG}
+ fi
+
+ # If we are using libnl 2.0 and above, enable support for it
+ # Removed for now, since the 3.2 version is broken, and we don't
+ # support it.
+ if has_version ">=dev-libs/libnl-3.2"; then
+ echo "CONFIG_LIBNL32=y" >> .config
+ fi
+
+ # TODO: Add support for BSD drivers
+
+ default_src_configure
+}
+
+src_compile() {
+ emake V=1
+
+ if use ssl; then
+ emake V=1 nt_password_hash
+ emake V=1 hlr_auc_gw
+ fi
+}
+
+src_install() {
+ insinto /etc/${PN}
+ doins ${PN}.{conf,accept,deny,eap_user,radius_clients,sim_db,wpa_psk}
+
+ fperms -R 600 /etc/${PN}
+
+ dosbin ${PN}
+ dobin ${PN}_cli
+
+ use ssl && dobin nt_password_hash hlr_auc_gw
+
+ newinitd "${FILESDIR}"/${PN}-init.d ${PN}
+ newconfd "${FILESDIR}"/${PN}-conf.d ${PN}
+ systemd_dounit "${FILESDIR}"/${PN}.service
+
+ doman ${PN}{.8,_cli.1}
+
+ dodoc ChangeLog README
+ use wps && dodoc README-WPS
+
+ docinto examples
+ dodoc wired.conf
+
+ if use logwatch; then
+ insinto /etc/log.d/conf/services/
+ doins logwatch/${PN}.conf
+
+ exeinto /etc/log.d/scripts/services/
+ doexe logwatch/${PN}
+ fi
+}
+
+pkg_postinst() {
+ einfo
+ einfo "If you are running openRC you need to follow this instructions:"
+ einfo "In order to use ${PN} you need to set up your wireless card"
+ einfo "for master mode in /etc/conf.d/net and then start"
+ einfo "/etc/init.d/${PN}."
+ einfo
+ einfo "Example configuration:"
+ einfo
+ einfo "config_wlan0=( \"192.168.1.1/24\" )"
+ einfo "channel_wlan0=\"6\""
+ einfo "essid_wlan0=\"test\""
+ einfo "mode_wlan0=\"master\""
+ einfo
+ #if [ -e "${KV_DIR}"/net/mac80211 ]; then
+ # einfo "This package now compiles against the headers installed by"
+ # einfo "the kernel source for the mac80211 driver. You should "
+ # einfo "re-emerge ${PN} after upgrading your kernel source."
+ #fi
+
+ if use wps; then
+ einfo "You have enabled Wi-Fi Protected Setup support, please"
+ einfo "read the README-WPS file in /usr/share/doc/${P}"
+ einfo "for info on how to use WPS"
+ fi
+}
diff --git a/net-wireless/hostapd/hostapd-2.4-r3.ebuild b/net-wireless/hostapd/hostapd-2.4-r3.ebuild
new file mode 100644
index 000000000000..82fc20d92a1a
--- /dev/null
+++ b/net-wireless/hostapd/hostapd-2.4-r3.ebuild
@@ -0,0 +1,224 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs eutils systemd
+
+DESCRIPTION="IEEE 802.11 wireless LAN Host AP daemon"
+HOMEPAGE="http://hostap.epitest.fi"
+SRC_URI="http://hostap.epitest.fi/releases/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 BSD )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~ppc ~x86"
+IUSE="ipv6 logwatch netlink sqlite +ssl +wps +crda"
+
+DEPEND="ssl? ( dev-libs/openssl[-bindist] )
+ kernel_linux? (
+ dev-libs/libnl:3
+ crda? ( net-wireless/crda )
+ )
+ netlink? ( net-libs/libnfnetlink )
+ sqlite? ( >=dev-db/sqlite-3 )"
+
+RDEPEND="${DEPEND}"
+
+S="${S}/${PN}"
+
+src_prepare() {
+ cd ..
+
+ # bug (548744)
+ epatch "${FILESDIR}/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch"
+ epatch "${FILESDIR}/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch"
+ epatch "${FILESDIR}/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch"
+ epatch "${FILESDIR}/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch"
+ epatch "${FILESDIR}/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch"
+ epatch "${FILESDIR}/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch"
+ epatch "${FILESDIR}/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch"
+
+ # bug (554862)
+ epatch "${FILESDIR}/2015-5/0001-NFC-Avoid-misaligned-read-of-an-NDEF-field.patch"
+ epatch "${FILESDIR}/2015-5/0002-NFC-Fix-payload-length-validation-in-NDEF-record-par.patch"
+
+ cd "${PN}"
+
+ epatch "${FILESDIR}/${PN}-hlr_auc_gw-openssl.patch"
+
+ sed -i -e "s:/etc/hostapd:/etc/hostapd/hostapd:g" \
+ "${S}/hostapd.conf" || die
+}
+
+src_configure() {
+ local CONFIG="${S}/.config"
+
+ # toolchain setup
+ echo "CC = $(tc-getCC)" > ${CONFIG}
+
+ # EAP authentication methods
+ echo "CONFIG_EAP=y" >> ${CONFIG}
+ echo "CONFIG_ERP=y" >> ${CONFIG}
+ echo "CONFIG_EAP_MD5=y" >> ${CONFIG}
+
+ if use ssl; then
+ # SSL authentication methods
+ echo "CONFIG_EAP_FAST=y" >> ${CONFIG}
+ echo "CONFIG_EAP_TLS=y" >> ${CONFIG}
+ echo "CONFIG_EAP_TTLS=y" >> ${CONFIG}
+ echo "CONFIG_EAP_MSCHAPV2=y" >> ${CONFIG}
+ echo "CONFIG_EAP_PEAP=y" >> ${CONFIG}
+ echo "CONFIG_TLSV11=y" >> ${CONFIG}
+ echo "CONFIG_TLSV12=y" >> ${CONFIG}
+ fi
+
+ if use wps; then
+ # Enable Wi-Fi Protected Setup
+ echo "CONFIG_WPS=y" >> ${CONFIG}
+ echo "CONFIG_WPS2=y" >> ${CONFIG}
+ echo "CONFIG_WPS_UPNP=y" >> ${CONFIG}
+ echo "CONFIG_WPS_NFC=y" >> ${CONFIG}
+ einfo "Enabling Wi-Fi Protected Setup support"
+ fi
+
+ echo "CONFIG_EAP_IKEV2=y" >> ${CONFIG}
+ echo "CONFIG_EAP_TNC=y" >> ${CONFIG}
+ echo "CONFIG_EAP_GTC=y" >> ${CONFIG}
+ echo "CONFIG_EAP_SIM=y" >> ${CONFIG}
+ echo "CONFIG_EAP_AKA=y" >> ${CONFIG}
+ echo "CONFIG_EAP_AKA_PRIME=y" >> ${CONFIG}
+ echo "CONFIG_EAP_EKE=y" >> ${CONFIG}
+ echo "CONFIG_EAP_PAX=y" >> ${CONFIG}
+ echo "CONFIG_EAP_PSK=y" >> ${CONFIG}
+ echo "CONFIG_EAP_SAKE=y" >> ${CONFIG}
+ echo "CONFIG_EAP_GPSK=y" >> ${CONFIG}
+ echo "CONFIG_EAP_GPSK_SHA256=y" >> ${CONFIG}
+ echo "CONFIG_EAP_PWD=y" >> ${CONFIG}
+
+ einfo "Enabling drivers: "
+
+ # drivers
+ echo "CONFIG_DRIVER_HOSTAP=y" >> ${CONFIG}
+ einfo " HostAP driver enabled"
+ echo "CONFIG_DRIVER_WIRED=y" >> ${CONFIG}
+ einfo " Wired driver enabled"
+ echo "CONFIG_DRIVER_PRISM54=y" >> ${CONFIG}
+ einfo " Prism54 driver enabled"
+ echo "CONFIG_DRIVER_NONE=y" >> ${CONFIG}
+ einfo " None driver enabled"
+
+ einfo " nl80211 driver enabled"
+ echo "CONFIG_DRIVER_NL80211=y" >> ${CONFIG}
+
+ # misc
+ echo "CONFIG_DEBUG_FILE=y" >> ${CONFIG}
+ echo "CONFIG_PKCS12=y" >> ${CONFIG}
+ echo "CONFIG_RADIUS_SERVER=y" >> ${CONFIG}
+ echo "CONFIG_IAPP=y" >> ${CONFIG}
+ echo "CONFIG_IEEE80211R=y" >> ${CONFIG}
+ echo "CONFIG_IEEE80211W=y" >> ${CONFIG}
+ echo "CONFIG_IEEE80211N=y" >> ${CONFIG}
+ echo "CONFIG_IEEE80211AC=y" >> ${CONFIG}
+ echo "CONFIG_PEERKEY=y" >> ${CONFIG}
+ echo "CONFIG_RSN_PREAUTH=y" >> ${CONFIG}
+ echo "CONFIG_INTERWORKING=y" >> ${CONFIG}
+ echo "CONFIG_FULL_DYNAMIC_VLAN=y" >> ${CONFIG}
+ echo "CONFIG_HS20=y" >> ${CONFIG}
+ echo "CONFIG_WNM=y" >> ${CONFIG}
+ echo "CONFIG_ACS=y" >> ${CONFIG}
+
+ if use netlink; then
+ # Netlink support
+ echo "CONFIG_VLAN_NETLINK=y" >> ${CONFIG}
+ fi
+
+ if use ipv6; then
+ # IPv6 support
+ echo "CONFIG_IPV6=y" >> ${CONFIG}
+ fi
+
+ if use sqlite; then
+ # Sqlite support
+ echo "CONFIG_SQLITE=y" >> ${CONFIG}
+ fi
+
+ # If we are using libnl 2.0 and above, enable support for it
+ # Removed for now, since the 3.2 version is broken, and we don't
+ # support it.
+ if has_version ">=dev-libs/libnl-3.2"; then
+ echo "CONFIG_LIBNL32=y" >> .config
+ fi
+
+ # TODO: Add support for BSD drivers
+
+ default_src_configure
+}
+
+src_compile() {
+ emake V=1
+
+ if use ssl; then
+ emake V=1 nt_password_hash
+ emake V=1 hlr_auc_gw
+ fi
+}
+
+src_install() {
+ insinto /etc/${PN}
+ doins ${PN}.{conf,accept,deny,eap_user,radius_clients,sim_db,wpa_psk}
+
+ fperms -R 600 /etc/${PN}
+
+ dosbin ${PN}
+ dobin ${PN}_cli
+
+ use ssl && dobin nt_password_hash hlr_auc_gw
+
+ newinitd "${FILESDIR}"/${PN}-init.d ${PN}
+ newconfd "${FILESDIR}"/${PN}-conf.d ${PN}
+ systemd_dounit "${FILESDIR}"/${PN}.service
+
+ doman ${PN}{.8,_cli.1}
+
+ dodoc ChangeLog README
+ use wps && dodoc README-WPS
+
+ docinto examples
+ dodoc wired.conf
+
+ if use logwatch; then
+ insinto /etc/log.d/conf/services/
+ doins logwatch/${PN}.conf
+
+ exeinto /etc/log.d/scripts/services/
+ doexe logwatch/${PN}
+ fi
+}
+
+pkg_postinst() {
+ einfo
+ einfo "If you are running openRC you need to follow this instructions:"
+ einfo "In order to use ${PN} you need to set up your wireless card"
+ einfo "for master mode in /etc/conf.d/net and then start"
+ einfo "/etc/init.d/${PN}."
+ einfo
+ einfo "Example configuration:"
+ einfo
+ einfo "config_wlan0=( \"192.168.1.1/24\" )"
+ einfo "channel_wlan0=\"6\""
+ einfo "essid_wlan0=\"test\""
+ einfo "mode_wlan0=\"master\""
+ einfo
+ #if [ -e "${KV_DIR}"/net/mac80211 ]; then
+ # einfo "This package now compiles against the headers installed by"
+ # einfo "the kernel source for the mac80211 driver. You should "
+ # einfo "re-emerge ${PN} after upgrading your kernel source."
+ #fi
+
+ if use wps; then
+ einfo "You have enabled Wi-Fi Protected Setup support, please"
+ einfo "read the README-WPS file in /usr/share/doc/${P}"
+ einfo "for info on how to use WPS"
+ fi
+}
diff --git a/net-wireless/hostapd/metadata.xml b/net-wireless/hostapd/metadata.xml
new file mode 100644
index 000000000000..ff83262e4c58
--- /dev/null
+++ b/net-wireless/hostapd/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>gurligebis@gentoo.org</email>
+ <name>Bjarke Istrup Pedersen</name>
+ </maintainer>
+ <longdescription>
+ User space daemon for the hostap-driver.
+ Extended IEEE 802.11 management, IEEE 802.1X Authenticator,
+ RADIUS Authentication client, RADIUS Accounting client
+ </longdescription>
+ <use>
+ <flag name='crda'>Add CRDA support</flag>
+ <flag name='logwatch'>Install support files for
+ <pkg>sys-app/logwatch</pkg></flag>
+ <flag name='netlink'>Adding support for using netlink to create VLANs</flag>
+ <flag name='sqlite'>Adding sqlite support</flag>
+ <flag name='wps'>Add support for Wi-Fi Protected Setup</flag>
+ </use>
+</pkgmetadata>
diff --git a/net-wireless/irda-utils/Manifest b/net-wireless/irda-utils/Manifest
new file mode 100644
index 000000000000..e71346dcec9b
--- /dev/null
+++ b/net-wireless/irda-utils/Manifest
@@ -0,0 +1 @@
+DIST irda-utils-0.9.18.tar.gz 168390 SHA256 61980551e46b2eaa9e17ad31cbc1a638074611fc33bff34163d10c7a67a9fdc6 SHA512 493360b5c03f93063265663b86c8ef3ade714c51edf804390c4e713cb0aeea204c5cd06c8ceffb99b1531fca7272422e53d52e03b66ddc4bceb5503f4ab5f3ad WHIRLPOOL 8282478bb9f96eb4def9f60bd7db9d6471b65bcddbb9ff6d4a63698940cc6a11062541ff2f3619d6f11928aedd172053d424698288e7a2bce9f13119078d83a6
diff --git a/net-wireless/irda-utils/files/irda-setup.sh b/net-wireless/irda-utils/files/irda-setup.sh
new file mode 100644
index 000000000000..a7c781989c57
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda-setup.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+#
+# irda-setup
+#
+# Initialize IrDA devices. Based on a Ubuntu init-script,
+# but adapted to be called directly from udev.
+#
+# params: sir/fir <module> <options>
+
+MODE="${1}"
+shift
+
+SYSFS="/sys"
+RESOURCES="${SYSFS}${DEVPATH}/resources"
+
+# Work out resource ranges, so we know which serial port to work with
+PORTS=$(/bin/sed -n 's/io \(.*\)-.*/\1/p' "${RESOURCES}")
+for PORT in ${PORTS}; do
+ case "${PORT}" in
+ 0x3f8)
+ PORT="/dev/ttyS0"
+ break;;
+ 0x2f8)
+ PORT="/dev/ttyS1"
+ break;;
+ 0x3e8)
+ PORT="/dev/ttyS2"
+ break;;
+ 0x2e8)
+ PORT="/dev/ttyS3"
+ break;;
+ default)
+ PORT="UNKNOWN";;
+ esac
+done
+
+# Handle FIR dongles
+if [ "${MODE}" = "fir" ]; then
+ # The BIOS doesn't always activate the device. Prod it
+ echo disable > "${RESOURCES}"
+ echo activate > "${RESOURCES}"
+
+ UART="unknown";
+ if [ "${PORT}" != "UNKNOWN" ]; then
+ # We should attempt to disable the UART. However, we need to store
+ # it - there's a chance that things could still go horribly wrong
+ UART=$(/bin/setserial ${PORT} | /bin/sed 's/.*UART: \(.*\), Port.*/\1/')
+ /bin/setserial ${PORT} uart none
+ fi
+
+ # Load FIR module
+ /sbin/modprobe -sq "${@}" && exit 0 # OK
+
+ # Try to recover
+ [ "${UART}" != "undefined" ] && /bin/setserial ${PORT} uart ${UART}
+fi
+
+# We'll only have got here if we have SIR or the FIR module has failed
+if [ "${PORT}" != "UNKNOWN" ]; then
+ # The BIOS doesn't always activate the device. Prod it
+ echo disable > "${RESOURCES}"
+ echo activate > "${RESOURCES}"
+
+ # The IRQ is not always set correctly, so try to deal with that
+ /bin/setserial ${PORT} $(/bin/grep -h '^irq ' "${RESOURCES}")
+fi
+
+exit 0 # never fail
diff --git a/net-wireless/irda-utils/files/irda-usb.sh b/net-wireless/irda-utils/files/irda-usb.sh
new file mode 100644
index 000000000000..d0250eab891f
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda-usb.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+# irda-usb
+#
+# Hotplug IrDA-USB devices. Only USB devices are handled!
+# To initialize normal SIR/FIR dongles, please use /etc/init.d/irda
+
+SYSFS="/sys"
+
+checkusb() {
+ # quick check, but not always available
+ [ "${PHYSDEVBUS}" = "usb" ] && return 0
+
+ # alternative check via modalias
+ /bin/grep -q '^usb:' "${SYSFS}${DEVPATH}/device/modalias" 2>/dev/null
+}
+
+checkconfig() {
+ . /etc/conf.d/irda
+
+ if [ "${DISCOVERY}" = "yes" ]; then
+ DISCOVERY="-s"
+ else
+ DISCOVERY=""
+ fi
+
+ NET_IRDA_OPTS=""
+
+ # Set maximum baud rate for IrDA
+ if [ -n "${MAX_BAUD_RATE}" ]; then
+ NET_IRDA_OPTS="${NET_IRDA_OPTS} net.irda.max_baud_rate=${MAX_BAUD_RATE}"
+ fi
+
+ # Disable discovery (enabling is done automatically by irattach)
+ if [ -z "${DISCOVERY}" ]; then
+ NET_IRDA_OPTS="${NET_IRDA_OPTS} net.irda.discovery=0"
+ fi
+}
+
+case "${ACTION}" in
+ add)
+ # We handle USB only
+ checkusb || exit 0
+
+ # Load config
+ checkconfig
+
+ # Load IrDA modules
+ /sbin/modprobe -sqa ircomm-tty ${LOAD_MODULES}
+
+ # Set IrDA options
+ [ -n "${NET_IRDA_OPTS}" ] && /sbin/sysctl -e -q -w ${NET_IRDA_OPTS}
+
+ # Finally, attach IrDA device
+ /usr/sbin/irattach ${INTERFACE} ${DISCOVERY}
+ ;;
+
+ remove)
+ # Unconditionally kill irattach instance
+ /usr/bin/pkill -f "^/usr/sbin/irattach ${INTERFACE} ?"
+ ;;
+esac
diff --git a/net-wireless/irda-utils/files/irda-utils-0.9.18-asneeded.patch b/net-wireless/irda-utils/files/irda-utils-0.9.18-asneeded.patch
new file mode 100644
index 000000000000..26937a042c2b
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda-utils-0.9.18-asneeded.patch
@@ -0,0 +1,15 @@
+Fixing as-needed issues
+
+http://bugs.gentoo.org/show_bug.cgi?id=318135
+
+--- irdadump/Makefile
++++ irdadump/Makefile
+@@ -40,7 +40,7 @@
+
+ irdadump: $(IRDADUMP_OBJS) $(LIBIRDADUMP_TARGET)
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) `pkg-config --libs glib-2.0` -o $(IRDADUMP_TARGET) $< $(LIBIRDADUMP_TARGET)
++ $(ECMD)$(CC) $(CFLAGS) -o $(IRDADUMP_TARGET) $< $(LIBIRDADUMP_TARGET) `pkg-config --libs glib-2.0`
+
+
+ .c.o:
diff --git a/net-wireless/irda-utils/files/irda-utils-0.9.18-dofail.patch b/net-wireless/irda-utils/files/irda-utils-0.9.18-dofail.patch
new file mode 100644
index 000000000000..9c752407a362
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda-utils-0.9.18-dofail.patch
@@ -0,0 +1,26 @@
+--- a/Makefile
++++ b/Makefile
+@@ -31,19 +31,19 @@
+ CFLAGS= -O2 -W -Wall
+
+ all:
+- @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
++ @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
+
+
+ install:
+- @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
++ @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
+
+
+ clean:
+ $(prn_clean)
+- @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
++ @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
+
+
+ distclean:
+ $(prn_distclean)
+- @-(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
++ @(set -e ; for d in $(DIRS) ; do $(MAKE) $(MAKE_OUTPUT) -C $$d $@ ; done)
+
diff --git a/net-wireless/irda-utils/files/irda-utils-0.9.18-headers.patch b/net-wireless/irda-utils/files/irda-utils-0.9.18-headers.patch
new file mode 100644
index 000000000000..1c40edc7cd7e
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda-utils-0.9.18-headers.patch
@@ -0,0 +1,11 @@
+--- tekram/Makefile.orig 2010-11-02 22:41:43.000000000 +0100
++++ tekram/Makefile 2010-11-02 22:41:53.000000000 +0100
+@@ -38,7 +38,7 @@
+ #
+ # System stuff
+ #
+-SYS_INCLUDES = -I/usr/src/linux/include -I/usr/include -I../include
++SYS_INCLUDES = -I/usr/include -I../include
+ SYS_LIBRARIES =
+ SYS_LIBPATH = -L/usr/lib -L/usr/local/lib
+
diff --git a/net-wireless/irda-utils/files/irda-utils-0.9.18-io.h.diff b/net-wireless/irda-utils/files/irda-utils-0.9.18-io.h.diff
new file mode 100644
index 000000000000..13de1f944007
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda-utils-0.9.18-io.h.diff
@@ -0,0 +1,48 @@
+diff -Naur irda-utils-0.9.18-orig/findchip/nsc.c irda-utils-0.9.18/findchip/nsc.c
+--- irda-utils-0.9.18-orig/findchip/nsc.c 2006-07-11 08:16:06.000000000 +0200
++++ irda-utils-0.9.18/findchip/nsc.c 2007-09-25 01:34:32.000000000 +0200
+@@ -33,7 +33,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+-#include <asm/io.h>
++#include <sys/io.h>
+
+ #include "findchip.h"
+
+diff -Naur irda-utils-0.9.18-orig/findchip/smc.c irda-utils-0.9.18/findchip/smc.c
+--- irda-utils-0.9.18-orig/findchip/smc.c 2006-07-11 08:16:06.000000000 +0200
++++ irda-utils-0.9.18/findchip/smc.c 2007-09-25 01:34:32.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+-#include <asm/io.h>
++#include <sys/io.h>
+
+ #include "findchip.h"
+
+diff -Naur irda-utils-0.9.18-orig/findchip/winbond.c irda-utils-0.9.18/findchip/winbond.c
+--- irda-utils-0.9.18-orig/findchip/winbond.c 2006-07-11 08:16:06.000000000 +0200
++++ irda-utils-0.9.18/findchip/winbond.c 2007-09-25 01:34:32.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+-#include <asm/io.h>
++#include <sys/io.h>
+
+ #include "findchip.h"
+
+diff -Naur irda-utils-0.9.18-orig/pcmcia/ircard_cs.c irda-utils-0.9.18/pcmcia/ircard_cs.c
+--- irda-utils-0.9.18-orig/pcmcia/ircard_cs.c 2006-07-11 08:16:06.000000000 +0200
++++ irda-utils-0.9.18/pcmcia/ircard_cs.c 2007-09-25 01:34:32.000000000 +0200
+@@ -41,7 +41,7 @@
+ #include <linux/timer.h>
+ #include <linux/delay.h>
+ #include <linux/ioport.h>
+-#include <asm/io.h>
++#include <sys/io.h>
+ #include <asm/system.h>
+
+ #include <net/irda/irda.h>
diff --git a/net-wireless/irda-utils/files/irda-utils-0.9.18-ldflags.patch b/net-wireless/irda-utils/files/irda-utils-0.9.18-ldflags.patch
new file mode 100644
index 000000000000..d8548ed79ff0
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda-utils-0.9.18-ldflags.patch
@@ -0,0 +1,132 @@
+diff -uNr irda-utils-0.9.18.ORIG/findchip/Makefile irda-utils-0.9.18/findchip/Makefile
+--- irda-utils-0.9.18.ORIG/findchip/Makefile 2010-10-17 14:30:57.000000000 +0100
++++ irda-utils-0.9.18/findchip/Makefile 2010-10-17 14:31:21.000000000 +0100
+@@ -47,7 +47,7 @@
+
+ findchip: $(OBJS)
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(OBJS) $(CFLAGS) -o $@
++ $(ECMD)$(CC) $(LDFLAGS) $(OBJS) $(CFLAGS) -o $@
+
+
+ clean:
+@@ -65,5 +65,5 @@
+
+ gfindchip: gfindchip.c
+ $(prn_cc)
+- $(ECMD))$(CC) $(CFLAGS) `gtk-config --cflags` $< -o $@ `gtk-config --libs`
++ $(ECMD))$(CC) $(LDFLAGS) $(CFLAGS) `gtk-config --cflags` $< -o $@ `gtk-config --libs`
+
+diff -uNr irda-utils-0.9.18.ORIG/irattach/Makefile irda-utils-0.9.18/irattach/Makefile
+--- irda-utils-0.9.18.ORIG/irattach/Makefile 2010-10-17 14:30:57.000000000 +0100
++++ irda-utils-0.9.18/irattach/Makefile 2010-10-17 14:31:21.000000000 +0100
+@@ -49,13 +49,13 @@
+
+ irattach: irattach.o util.o
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) irattach.o util.o -o $@
++ $(ECMD)$(CC) $(LDFLAGS) $(CFLAGS) irattach.o util.o -o $@
+
+
+
+ dongle_attach: dongle_attach.o
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) dongle_attach.o -o $@
++ $(ECMD)$(CC) $(LDFLAGS) $(CFLAGS) dongle_attach.o -o $@
+
+
+ install: $(TARGETS)
+diff -uNr irda-utils-0.9.18.ORIG/irdadump/Makefile irda-utils-0.9.18/irdadump/Makefile
+--- irda-utils-0.9.18.ORIG/irdadump/Makefile 2010-10-17 14:30:57.000000000 +0100
++++ irda-utils-0.9.18/irdadump/Makefile 2010-10-17 14:31:31.000000000 +0100
+@@ -40,7 +40,7 @@
+
+ irdadump: $(IRDADUMP_OBJS) $(LIBIRDADUMP_TARGET)
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) -o $(IRDADUMP_TARGET) $< $(LIBIRDADUMP_TARGET) `pkg-config --libs glib-2.0`
++ $(ECMD)$(CC) $(LDFLAGS) $(CFLAGS) -o $(IRDADUMP_TARGET) $< $(LIBIRDADUMP_TARGET) `pkg-config --libs glib-2.0`
+
+
+ .c.o:
+diff -uNr irda-utils-0.9.18.ORIG/irdaping/Makefile irda-utils-0.9.18/irdaping/Makefile
+--- irda-utils-0.9.18.ORIG/irdaping/Makefile 2010-10-17 14:30:57.000000000 +0100
++++ irda-utils-0.9.18/irdaping/Makefile 2010-10-17 14:31:21.000000000 +0100
+@@ -56,7 +56,7 @@
+
+ irdaping: $(OBJS)
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) $(OBJS) -o $@
++ $(ECMD)$(CC) $(LDFLAGS) $(CFLAGS) $(OBJS) -o $@
+
+
+ .c.o:
+diff -uNr irda-utils-0.9.18.ORIG/irnetd/Makefile irda-utils-0.9.18/irnetd/Makefile
+--- irda-utils-0.9.18.ORIG/irnetd/Makefile 2010-10-17 14:30:57.000000000 +0100
++++ irda-utils-0.9.18/irnetd/Makefile 2010-10-17 14:31:21.000000000 +0100
+@@ -50,7 +50,7 @@
+
+ irnetd: $(OBJS)
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) $(OBJS) -o $@
++ $(ECMD)$(CC) $(LDFLAGS) $(CFLAGS) $(OBJS) -o $@
+
+
+ install: irnetd
+diff -uNr irda-utils-0.9.18.ORIG/irsockets/Makefile irda-utils-0.9.18/irsockets/Makefile
+--- irda-utils-0.9.18.ORIG/irsockets/Makefile 2010-10-17 14:30:57.000000000 +0100
++++ irda-utils-0.9.18/irsockets/Makefile 2010-10-17 14:31:21.000000000 +0100
+@@ -54,7 +54,7 @@
+
+ %: %.o
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(XCFLAGS) -o $@ $^ $(LIBS)
++ $(ECMD)$(CC) $(LDFLAGS) $(XCFLAGS) -o $@ $^ $(LIBS)
+
+
+ %.o: %.c
+diff -uNr irda-utils-0.9.18.ORIG/psion/Makefile irda-utils-0.9.18/psion/Makefile
+--- irda-utils-0.9.18.ORIG/psion/Makefile 2010-10-17 14:30:57.000000000 +0100
++++ irda-utils-0.9.18/psion/Makefile 2010-10-17 14:31:21.000000000 +0100
+@@ -25,4 +25,4 @@
+ CFLAGS += -g -I../include -Wall -Wstrict-prototypes $(RPM_OPT_FLAGS)
+ irpsion5:
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) $(PSION_SRC) -o $@
+\ No newline at end of file
++ $(ECMD)$(CC) $(LDFLAGS) $(CFLAGS) $(PSION_SRC) -o $@
+diff -uNr irda-utils-0.9.18.ORIG/smcinit/Makefile irda-utils-0.9.18/smcinit/Makefile
+--- irda-utils-0.9.18.ORIG/smcinit/Makefile 2010-10-17 14:30:57.000000000 +0100
++++ irda-utils-0.9.18/smcinit/Makefile 2010-10-17 14:31:21.000000000 +0100
+@@ -26,17 +26,17 @@
+
+ smcinit: smcinit.o
+ $(prn_cc_o)
+- $(ECMD)$(CC) -o $@ $^ $(LIBS) -lpci
++ $(ECMD)$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) -lpci
+
+
+ tosh1800-smcinit: tosh1800-smcinit.o
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(XCFLAGS) -o $@ $^ $(LIBS) -lpci
++ $(ECMD)$(CC) $(LDFLAGS) $(XCFLAGS) -o $@ $^ $(LIBS) -lpci
+
+
+ tosh2450-smcinit: tosh2450-smcinit.o
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(XCFLAGS) -o $@ $^ $(LIBS) -lpci
++ $(ECMD)$(CC) $(LDFLAGS) $(XCFLAGS) -o $@ $^ $(LIBS) -lpci
+
+
+ %o: %c
+diff -uNr irda-utils-0.9.18.ORIG/tekram/Makefile irda-utils-0.9.18/tekram/Makefile
+--- irda-utils-0.9.18.ORIG/tekram/Makefile 2010-10-17 14:30:57.000000000 +0100
++++ irda-utils-0.9.18/tekram/Makefile 2010-10-17 14:31:21.000000000 +0100
+@@ -55,7 +55,7 @@
+
+ irkbd: $(OBJS)
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(OBJS) -o $@
++ $(ECMD)$(CC) $(LDFLAGS) $(OBJS) -o $@
+
+
+ .c.o:
diff --git a/net-wireless/irda-utils/files/irda-utils-0.9.18-makefile.diff b/net-wireless/irda-utils/files/irda-utils-0.9.18-makefile.diff
new file mode 100644
index 000000000000..02e3b8909db5
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda-utils-0.9.18-makefile.diff
@@ -0,0 +1,11 @@
+--- irda-utils-0.9.18-orig/irnetd/Makefile 2006-07-11 08:16:06.000000000 +0200
++++ irda-utils-0.9.18/irnetd/Makefile 2007-09-25 01:38:13.000000000 +0200
+@@ -55,7 +55,7 @@
+
+ install: irnetd
+ $(prn_install)
+- $(ECMD) install irnetd /usr/sbin/
++ $(ECMD) install irnetd $(ROOT)/usr/sbin/
+
+
+ clean:
diff --git a/net-wireless/irda-utils/files/irda-utils-0.9.18-smcinit.diff b/net-wireless/irda-utils/files/irda-utils-0.9.18-smcinit.diff
new file mode 100644
index 000000000000..dd06efec02a8
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda-utils-0.9.18-smcinit.diff
@@ -0,0 +1,14 @@
+--- smcinit/smcinit.c.orig 2006-07-11 08:16:06.000000000 +0200
++++ smcinit/smcinit.c 2008-03-22 05:49:38.000000000 +0100
+@@ -292,9 +292,9 @@
+ }
+
+ twobyte = pci_read_word(dev, DID);
+- if ((twobyte != 0x24cc) & (twobyte != 0x248c)) {
++ if ((twobyte != 0x244c) & (twobyte != 0x24cc) & (twobyte != 0x248c)) {
+ fprintf(stderr,
+- "%s IO hub device %x not 82801CAM (0x248c or 0x24cc)\n",
++ "%s IO hub device %x not 82801BAM/82801CAM (0x24cc or 0x244c or 0x248c)\n",
+ PROGNAME, twobyte);
+ return 1;
+ }
diff --git a/net-wireless/irda-utils/files/irda-utils-rh1.patch b/net-wireless/irda-utils/files/irda-utils-rh1.patch
new file mode 100644
index 000000000000..6e4bfca618ae
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda-utils-rh1.patch
@@ -0,0 +1,11 @@
+--- irda-utils-0.9.15/irattach/irattach.c.rh1 2003-11-24 17:30:21.000000000 +0100
++++ irda-utils-0.9.15/irattach/irattach.c 2003-11-24 17:34:51.000000000 +0100
+@@ -614,7 +614,7 @@
+ /* First arg is device name. Save it now, because in some cases
+ * getopt() will remove it... */
+ strncpy(device, argv[1], 20);
+- device[20] = '\0';
++ device[19] = '\0';
+
+ /* Look for options */
+ /* Do this before processing device, to handle "-h" and -v"
diff --git a/net-wireless/irda-utils/files/irda.confd b/net-wireless/irda-utils/files/irda.confd
new file mode 100644
index 000000000000..6b6ac85413a6
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda.confd
@@ -0,0 +1,27 @@
+# Set your startup settings for irattach, the IrDA-daemon, here.
+# please also look at /etc/modprobe.d/irda.conf
+
+# Set discovery mode which usually is a good idea for finding other devices.
+# If set 'yes' or 'no' irattach and sysctl are used to enable and disable
+# discovery mode. By default discover mode is disabled.
+DISCOVERY="yes"
+
+# Set IRDA device to access (e.g. /dev/ttyS1 or irda0). In case of irda0,
+# the proper module for FIR-mode has to be set in /etc/modprobe.d/irda.
+DEVICE="/dev/ttyS1"
+
+# Set dongle type, e.g. none, tekram, esi, actisys, actisys+, ep7211, girbil,
+# litelink, airport, old_belkin, mcp2120, act200l, ma600). You do not need
+# a dongle for FIR mode. See "man 8 irattach" for more information.
+DONGLE="none"
+
+# Set the serial device to quiet with setserial. This is only useful on some
+# machines in FIR-mode, so most people should leave it blank.
+#SETSERIAL="/dev/ttyS1"
+
+# Sets the maximum baud rate for the IrDA serial port.
+# Some devices (e.g. Nokia mobile phones) need this.
+#MAX_BAUD_RATE="115200"
+
+# Load extra modules
+#LOAD_MODULES="irlan irnet"
diff --git a/net-wireless/irda-utils/files/irda.initd b/net-wireless/irda-utils/files/irda.initd
new file mode 100644
index 000000000000..c515d12356e7
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda.initd
@@ -0,0 +1,86 @@
+#!/sbin/runscript
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2
+# $Id$
+
+# Hint: We don't use start-stop-daemon, because pidfile is the same
+# for every irattach instance. So it isn't reliable if we have more
+# than one IrDA device (i.e. with IrDA-USB).
+
+depend() {
+ use serial
+}
+
+checkconfig() {
+ if [ -z "${DEVICE}" ]; then
+ DEVICE="/dev/ttyS1"
+ fi
+
+ if [ -z "${DONGLE}" -o "${DONGLE}" = "none" ]; then
+ DONGLE=""
+ else
+ DONGLE="-d ${DONGLE}"
+ fi
+
+ if [ "${DISCOVERY}" = "yes" ]; then
+ DISCOVERY="-s"
+ else
+ DISCOVERY=""
+ fi
+
+ NET_IRDA_OPTS=""
+
+ # Set maximum baud rate for IrDA
+ if [ -n "${MAX_BAUD_RATE}" ]; then
+ NET_IRDA_OPTS="${NET_IRDA_OPTS} net.irda.max_baud_rate=${MAX_BAUD_RATE}"
+ fi
+
+ # Disable discovery (enabling is done automatically by irattach)
+ if [ -z "${DISCOVERY}" ]; then
+ NET_IRDA_OPTS="${NET_IRDA_OPTS} net.irda.discovery=0"
+ fi
+
+ # Ensure that SIR driver is loaded (needed for pmac_zilog)
+ case "${DEVICE}" in
+ /dev/ttyS*) LOAD_MODULES="${LOAD_MODULES} irtty-sir";;
+ esac
+}
+
+remove_module() {
+ local CNT=0
+ while ! /sbin/modprobe -sqr ${1}; do
+ [ $((CNT++)) -eq 10 ] && break
+ sleep 0.25
+ done
+}
+
+start() {
+ checkconfig
+ ebegin "Starting IrDA"
+
+ # Needed for some machines in FIR-mode
+ [ -n "${SETSERIAL}" ] && /bin/setserial ${SETSERIAL} uart none port 0x0 irq 0
+
+ # Load IrDA modules
+ /sbin/modprobe -sqa ircomm-tty ${LOAD_MODULES}
+
+ # Set IrDA options
+ [ -n "${NET_IRDA_OPTS}" ] && /sbin/sysctl -e -q -w ${NET_IRDA_OPTS}
+
+ # Finally, attach IrDA device
+ /usr/sbin/irattach ${DEVICE} ${DONGLE} ${DISCOVERY}
+ eend ${?}
+}
+
+stop() {
+ ebegin "Shutting down IrDA"
+ /usr/bin/pkill -f "^/usr/sbin/irattach ${DEVICE} ?"
+ eend ${?}
+
+ # Try to remove IrDA driver
+ case "${DEVICE}" in
+ /dev/ttyS*) remove_module irtty-sir;;
+ irda[0-9]*) remove_module ${DEVICE};;
+ esac
+ return 0 # never fail
+}
diff --git a/net-wireless/irda-utils/files/irda.modsd b/net-wireless/irda-utils/files/irda.modsd
new file mode 100644
index 000000000000..a32c9a6829f8
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda.modsd
@@ -0,0 +1,48 @@
+# IrDA module configuration
+# please also look at /etc/conf.d/irda
+
+# IrDA over a normal serial port, or a serial port compatible IrDA port
+alias tty-ldisc-11 irtty
+
+# IrCOMM/IrLPT support (virtual serial/parallel over IrDA)
+alias char-major-161 ircomm-tty # Official allocation of IrCOMM
+
+# IrLAN support (Ethernet over IrDA)
+alias irlan0 irlan
+# Access type DIRECT=1, PEER=2, HOSTED=3 (int)
+#options irlan access=2
+
+# IrNET support (Synchronous PPP over IrDA)
+alias char-major-10-187 irnet # Official allocation of IrNET
+
+# Serial Dongles
+# These values are hard-coded in irattach (not instance order)
+alias irda-dongle-0 tekram # Tekram IrMate IR-210B
+alias irda-dongle-1 esi # ESI JetEye
+alias irda-dongle-2 actisys # Actisys IR-220L
+alias irda-dongle-3 actisys # Actisys IR-220L+
+alias irda-dongle-4 girbil # Greenwich GIrBIL
+alias irda-dongle-5 litelink # Parallax LiteLink (+ modern ESI)
+alias irda-dongle-6 airport # Adaptec Airport 1000 and 2000
+alias irda-dongle-7 old_belkin # Old Belkin (9600 baud only)
+alias irda-dongle-8 ep7211 # ???
+alias irda-dongle-9 mcp2120 # Crystal compatible chipset
+
+# To use the NSC driver on a Thinkpad laptop
+#alias irda0 nsc-ircc
+#options nsc-ircc dongle_id=0x09
+
+# To use the NSC driver on a HP OB6000 laptop
+#alias irda0 nsc-ircc
+#options nsc-ircc dongle_id=0x08
+
+# SMC driver
+#alias irda0 smsc-ircc2
+#options smsc-ircc2 ircc_dma=1 ircc_irq=10 ircc_fir=0x0130 ircc_sir=0x02f8
+
+# Some laptops (Toshiba Satellites and others with SMCS LPC47N227) require
+# running smcinit to initialize the irda device prior to use. If your device
+# is one of them, uncomment the required SMC-IRCC initializer.
+#install smsc-ircc2 /usr/sbin/smcinit && /sbin/modprobe -i smsc-ircc2
+#install smsc-ircc2 /usr/sbin/tosh1800-smcinit && /sbin/modprobe -i smsc-ircc2
+#install smsc-ircc2 /usr/sbin/tosh2450-smcinit && /sbin/modprobe -i smsc-ircc2
diff --git a/net-wireless/irda-utils/files/irda.rules b/net-wireless/irda-utils/files/irda.rules
new file mode 100644
index 000000000000..54dd3c2a4cfe
--- /dev/null
+++ b/net-wireless/irda-utils/files/irda.rules
@@ -0,0 +1,18 @@
+# IrDA-PNP (autodetect and setup some known SIR/FIR devices)
+# you need to run /etc/init./irda to activate your device
+
+ACTION!="add", GOTO="irda_pnp_end"
+SUBSYSTEM!="pnp", GOTO="irda_pnp_end"
+
+ATTR{id}=="PNP0510", RUN+="irda-setup sir"
+ATTR{id}=="PNP0511", RUN+="irda-setup sir"
+ATTR{id}=="NSC*", RUN+="irda-setup fir nsc-ircc"
+ATTR{id}=="IBM0071", RUN+="irda-setup fir nsc-ircc dongle_id=0x09"
+ATTR{id}=="SMC*", RUN+="irda-setup fir smsc-ircc2"
+ATTR{id}=="ALI5123", RUN+="irda-setup fir ali-ircc"
+ATTR{id}=="VIA3076", RUN+="irda-setup fir via-ircc"
+
+LABEL="irda_pnp_end"
+
+# IrDA-USB (start/stop irattach automatically)
+KERNEL=="irda[0-9]*", SUBSYSTEM=="net", RUN+="irda-usb"
diff --git a/net-wireless/irda-utils/irda-utils-0.9.18-r3.ebuild b/net-wireless/irda-utils/irda-utils-0.9.18-r3.ebuild
new file mode 100644
index 000000000000..3de48eaa2554
--- /dev/null
+++ b/net-wireless/irda-utils/irda-utils-0.9.18-r3.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils toolchain-funcs flag-o-matic udev
+
+DESCRIPTION="IrDA management and handling utilities"
+HOMEPAGE="http://irda.sourceforge.net"
+SRC_URI="mirror://sourceforge/irda/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~sh x86"
+IUSE=""
+
+RDEPEND="=dev-libs/glib-2*
+ >=sys-apps/pciutils-2.2.7-r1
+ sys-process/procps
+ sys-apps/setserial
+ sys-apps/grep
+ virtual/udev"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ !app-laptop/smcinit"
+
+src_unpack() {
+ unpack ${A}
+
+ cd "${S}"
+ epatch "${FILESDIR}"/irda-utils-rh1.patch \
+ "${FILESDIR}"/${P}-makefile.diff \
+ "${FILESDIR}"/${P}-smcinit.diff \
+ "${FILESDIR}"/${P}-io.h.diff \
+ "${FILESDIR}"/${P}-dofail.patch \
+ "${FILESDIR}"/${P}-asneeded.patch
+
+ # fix crosscompile, respect CFLAGS (Bug 200295)
+ sed -i -e "/^CC/s:gcc:$(tc-getCC):" \
+ -e "/^LD/s:ld:$(tc-getLD):" \
+ -e "/^AR/s:ar:$(tc-getAR):" \
+ -e "/^RANLIB/s:ranlib:$(tc-getRANLIB):" \
+ -e "/^CFLAGS/s:-O2:${CFLAGS}:" Makefile */Makefile
+
+ # fix compile when pciutils is compiled with USE=zlib (Bug 200295)
+ sed -i -e "s:-lpci:$(pkg-config --libs libpci):g" smcinit/Makefile
+
+ # disable etc subdir in Makefile
+ sed -i -e "s:^\(DIRS.*=.* \)etc \(.*\):\1\2:g" Makefile
+
+ # disable write_pid(), because we don't need it
+ sed -i -e "s:\(write_pid();\):/* \1 */:g" irattach/util.c
+
+ append-flags "-fno-strict-aliasing"
+}
+
+src_compile() {
+ emake RPM_OPT_FLAGS="${CFLAGS}" RPM_BUILD_ROOT="${D}" ROOT="${D}" \
+ || die "emake failed"
+}
+
+src_install () {
+ dodir /usr/bin
+ dodir /usr/sbin
+
+ emake install RPM_OPT_FLAGS="${CFLAGS}" ROOT="${D}" \
+ MANDIR="${D}usr/share/man" || die "emake install failed"
+
+ newdoc ethereal/README README.wireshark
+ newdoc irattach/README README.irattach
+ newdoc irdadump/README README.irdadump
+ newdoc irdaping/README README.irdaping
+ newdoc irsockets/README README.irsockets
+ newdoc tekram/README README.tekram
+ newdoc smcinit/README README.smcinit
+ newdoc smcinit/README.Peri README.smcinit.Peri
+ newdoc smcinit/README.Rob README.smcinit.Rob
+ newdoc smcinit/README.Tom README.smcinit.Tom
+ newdoc irattach/ChangeLog ChangeLog.irattach
+ newdoc irdadump/ChangeLog ChangeLog.irdadump
+ newdoc smcinit/ChangeLog ChangeLog.smcinit
+ dohtml smcinit/RobMiller-irda.html
+ dodoc README
+
+ newconfd "${FILESDIR}/irda.confd" irda
+ newinitd "${FILESDIR}/irda.initd" irda
+
+ insinto /etc/modprobe.d
+ newins "${FILESDIR}/irda.modsd" irda.conf
+
+ udev_newrules "${FILESDIR}/irda.rules" 53-irda.rules
+ exeinto "$(get_udevdir)"
+ newexe "${FILESDIR}/irda-setup.sh" irda-setup
+ newexe "${FILESDIR}/irda-usb.sh" irda-usb
+}
diff --git a/net-wireless/irda-utils/irda-utils-0.9.18-r4.ebuild b/net-wireless/irda-utils/irda-utils-0.9.18-r4.ebuild
new file mode 100644
index 000000000000..589574b4f553
--- /dev/null
+++ b/net-wireless/irda-utils/irda-utils-0.9.18-r4.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils toolchain-funcs flag-o-matic udev
+
+DESCRIPTION="IrDA management and handling utilities"
+HOMEPAGE="http://irda.sourceforge.net"
+SRC_URI="mirror://sourceforge/irda/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~sh ~x86"
+IUSE=""
+
+RDEPEND="
+ dev-libs/glib:2
+ >=sys-apps/pciutils-2.2.7-r1
+ sys-process/procps
+ sys-apps/setserial
+ sys-apps/grep
+ virtual/udev
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ !app-laptop/smcinit
+"
+
+src_prepare() {
+ epatch "${FILESDIR}"/irda-utils-rh1.patch \
+ "${FILESDIR}"/${P}-makefile.diff \
+ "${FILESDIR}"/${P}-smcinit.diff \
+ "${FILESDIR}"/${P}-io.h.diff \
+ "${FILESDIR}"/${P}-dofail.patch \
+ "${FILESDIR}"/${P}-asneeded.patch \
+ "${FILESDIR}"/${P}-ldflags.patch \
+ "${FILESDIR}"/${P}-headers.patch
+
+ # fix crosscompile, respect CFLAGS (Bug 200295)
+ sed -i -e "/^CC/s:gcc:$(tc-getCC):" \
+ -e "/^LD/s:ld:$(tc-getLD):" \
+ -e "/^AR/s:ar:$(tc-getAR):" \
+ -e "/^RANLIB/s:ranlib:$(tc-getRANLIB):" \
+ -e "/^CFLAGS/s:-O2:${CFLAGS}:" Makefile */Makefile || die
+
+ # fix compile when pciutils is compiled with USE=zlib (Bug 200295)
+ sed -i -e "s:-lpci:$(pkg-config --libs libpci):g" smcinit/Makefile || die
+
+ # disable etc subdir in Makefile
+ sed -i -e "s:^\(DIRS.*=.* \)etc \(.*\):\1\2:g" Makefile || die
+
+ # disable write_pid(), because we don't need it
+ sed -i -e "s:\(write_pid();\):/* \1 */:g" irattach/util.c || die
+
+ append-flags "-fno-strict-aliasing" # bug????
+}
+
+src_compile() {
+ emake RPM_OPT_FLAGS="${CFLAGS}" RPM_BUILD_ROOT="${D}" ROOT="${D}"
+}
+
+src_install () {
+ dodir /usr/bin
+ dodir /usr/sbin
+
+ emake install RPM_OPT_FLAGS="${CFLAGS}" ROOT="${D}" \
+ MANDIR="${D}usr/share/man"
+
+ newdoc ethereal/README README.wireshark
+ newdoc irattach/README README.irattach
+ newdoc irdadump/README README.irdadump
+ newdoc irdaping/README README.irdaping
+ newdoc irsockets/README README.irsockets
+ newdoc tekram/README README.tekram
+ newdoc smcinit/README README.smcinit
+ newdoc smcinit/README.Peri README.smcinit.Peri
+ newdoc smcinit/README.Rob README.smcinit.Rob
+ newdoc smcinit/README.Tom README.smcinit.Tom
+ newdoc irattach/ChangeLog ChangeLog.irattach
+ newdoc irdadump/ChangeLog ChangeLog.irdadump
+ newdoc smcinit/ChangeLog ChangeLog.smcinit
+ dohtml smcinit/RobMiller-irda.html
+ dodoc README
+
+ newconfd "${FILESDIR}/irda.confd" irda
+ newinitd "${FILESDIR}/irda.initd" irda
+
+ insinto /etc/modprobe.d
+ newins "${FILESDIR}/irda.modsd" irda.conf
+
+ udev_newrules "${FILESDIR}/irda.rules" 53-irda.rules
+ exeinto "$(get_udevdir)"
+ newexe "${FILESDIR}/irda-setup.sh" irda-setup
+ newexe "${FILESDIR}/irda-usb.sh" irda-usb
+}
diff --git a/net-wireless/irda-utils/metadata.xml b/net-wireless/irda-utils/metadata.xml
new file mode 100644
index 000000000000..86b764ae9bc6
--- /dev/null
+++ b/net-wireless/irda-utils/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">irda</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/iw/Manifest b/net-wireless/iw/Manifest
new file mode 100644
index 000000000000..11e6f1e20136
--- /dev/null
+++ b/net-wireless/iw/Manifest
@@ -0,0 +1,6 @@
+DIST iw-3.10.tar.xz 80476 SHA256 456ee212cfb728e292667caa508a7dff902666c78579814756a3012d68d64fe9 SHA512 8cf38664b3eb9cfaf5c2c0c70376fc35d069eb4615af7c706253e9a111811be11c8d44d6c4205e8299db490dd9713faf4029ad2167a28f7305606e4683ac9f1b WHIRLPOOL f87cc344c994b0caa2731b073fa785f075af2be73608a82a1326078e4c3150a6dac69a99e1577129d696d80c38f6b33a89a2670c35a7ea58348ac5739e8b5b68
+DIST iw-3.11.tar.xz 83456 SHA256 e90327323821a8219abac56298919076c4bac6636464ca91356f02cfe40530ff SHA512 2fc7402a090593a9ebaf12452c89bc39e5781194ecb3934c7722397cdb5d546893d72b92176be286d22b5f36c5d0f9a5314289c3cd7ff07ab6036712d01d6e65 WHIRLPOOL 6f5f6bb823d58ec46ac8184510d738d4de2024ea00167d21bf16af2ded3b1b3ab13b0e8663058c51aed5219b32a7f983b8bf78332b8cd818dc009899973cd1ed
+DIST iw-3.13.tar.xz 85724 SHA256 70c1c0f5145542b4d04dd52ad637920718515245e3dd3b4dc4c8e3b57b110dc6 SHA512 cbfa2ea8f4584e61060d56e52f405d1e67dc04d08b75179dde58d2ed20b78eae78b04650af1760265df97e559af0af6664e384d65109bf380391bc38b08a348d WHIRLPOOL 188342aa4f118bf377b5833c2f8fef08197983a4ecf7841a6443967f0c54656e4b9efac078f8ea5fcb3462d336167c170a60378e5a171892fd2352ab1f3cebf4
+DIST iw-3.14.tar.xz 87224 SHA256 871cb28aa554581ed3508b296071051cecbbbbdd8f62e95313e00840d908d999 SHA512 52526204f0b16b86eb001b50b60666d6b7a710cdad62359702c17ea9222a498dea987d400461be5886d81fec0bf5e6a331b70c0b3d6e778408babf1c157542a4 WHIRLPOOL dcc4b1a2a5d7aa4ea20a7c99b7746fd0f8e5d8cd32b29525aae9980d743684f4f45d59251634684de940fda894e69b580aa04c7ef9d2f23a9bbd7f3831ec9651
+DIST iw-3.17.tar.xz 91796 SHA256 48a62eb5cd8e757c9617749df96b01f133c184f6c107f18be660ee08f155fa93 SHA512 ac4779a88aacb9e2f4859cdb3e953bfba0a83b2e8140777092d61ced6799f09d8ec5628a359109cc23e6389e0ec0ab5a98b9da93c400b7cffedd930013c44f39 WHIRLPOOL 74225c1f29dd58d79e3af2ade0fdb7a2cb6c881bcaa2bd8571fc178bd6ad89fabb53389d1cdc3ac8d6f162314192427f8f3da7b343dca6612a8cb5c3e2a68bed
+DIST iw-4.0.tar.xz 97352 SHA256 2b4b7906d5ce89ce0ab523e5de8b619cddcc18fee7a2bfd6f9c62efab2d3bed6 SHA512 404852357166742f0104792a79ac7291c2d1e2b01f07f8bfe0efe14c8444eb87e045d00dd717e21fe9a27542e37f570b2d7bb44aee174091924455f3f3ef9e07 WHIRLPOOL 7194188f6fd11cf718764688ec4940a448017214812249654f3b5a985f14db1ff5c5f251db64a4b020630d1d0990895a2a8073baac1f9e41563de93b2020e666
diff --git a/net-wireless/iw/files/iw-3.10-versioncheck.patch b/net-wireless/iw/files/iw-3.10-versioncheck.patch
new file mode 100644
index 000000000000..a15931f5865f
--- /dev/null
+++ b/net-wireless/iw/files/iw-3.10-versioncheck.patch
@@ -0,0 +1,30 @@
+From 2b60b435dd032572c556b064295a3e3607d00a55 Mon Sep 17 00:00:00 2001
+From: Florian Schmaus <fschmaus@gmail.com>
+Date: Sun, 1 Sep 2013 17:57:21 +0200
+Subject: [PATCH] Don't get iw version from git if there is no .git/
+
+The version.sh script should only try to get the version from git if the
+source actually resides in a git repository, i.e. .git/ exists. Doing
+otherwise in a non-git source repo results in git ascending until it
+finds a .git directory, which will cause problems in some source-based
+distributions ( https://bugs.gentoo.org/show_bug.cgi?id=482334 ).
+---
+ version.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/version.sh b/version.sh
+index 80e55ab..0f1aa1d 100755
+--- a/version.sh
++++ b/version.sh
+@@ -3,7 +3,7 @@
+ VERSION="3.11"
+ OUT="$1"
+
+-if head=`git rev-parse --verify HEAD 2>/dev/null`; then
++if [ -d .git ] && head=`git rev-parse --verify HEAD 2>/dev/null`; then
+ git update-index --refresh --unmerged > /dev/null
+ descr=$(git describe)
+
+--
+1.8.1.5
+
diff --git a/net-wireless/iw/iw-3.10-r1.ebuild b/net-wireless/iw/iw-3.10-r1.ebuild
new file mode 100644
index 000000000000..9ea5aeced77d
--- /dev/null
+++ b/net-wireless/iw/iw-3.10-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs eutils
+
+DESCRIPTION="nl80211-based configuration utility for wireless devices using the mac80211 kernel stack"
+HOMEPAGE="http://wireless.kernel.org/en/users/Documentation/iw"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-libs/libnl"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ tc-export CC LD
+ epatch "${FILESDIR}/${P}-versioncheck.patch"
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+}
diff --git a/net-wireless/iw/iw-3.10.ebuild b/net-wireless/iw/iw-3.10.ebuild
new file mode 100644
index 000000000000..204a6f187e70
--- /dev/null
+++ b/net-wireless/iw/iw-3.10.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="nl80211-based configuration utility for wireless devices using the mac80211 kernel stack"
+HOMEPAGE="http://wireless.kernel.org/en/users/Documentation/iw"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="amd64 arm ppc x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-libs/libnl"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ tc-export CC LD
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+}
diff --git a/net-wireless/iw/iw-3.11.ebuild b/net-wireless/iw/iw-3.11.ebuild
new file mode 100644
index 000000000000..38a78024c2f5
--- /dev/null
+++ b/net-wireless/iw/iw-3.11.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="nl80211-based configuration utility for wireless devices using the mac80211 kernel stack"
+HOMEPAGE="http://wireless.kernel.org/en/users/Documentation/iw"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-libs/libnl"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ tc-export CC LD
+}
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+}
diff --git a/net-wireless/iw/iw-3.13.ebuild b/net-wireless/iw/iw-3.13.ebuild
new file mode 100644
index 000000000000..bd39a8246292
--- /dev/null
+++ b/net-wireless/iw/iw-3.13.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="nl80211-based configuration utility for wireless devices using the mac80211 kernel stack"
+HOMEPAGE="http://wireless.kernel.org/en/users/Documentation/iw"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-libs/libnl"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ tc-export CC LD
+}
+
+src_compile() {
+ CFLAGS="${CFLAGS} ${CPPFLAGS}" \
+ LDFLAGS="${CFLAGS} ${LDFLAGS}" \
+ emake V=1
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+}
diff --git a/net-wireless/iw/iw-3.14.ebuild b/net-wireless/iw/iw-3.14.ebuild
new file mode 100644
index 000000000000..bd39a8246292
--- /dev/null
+++ b/net-wireless/iw/iw-3.14.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="nl80211-based configuration utility for wireless devices using the mac80211 kernel stack"
+HOMEPAGE="http://wireless.kernel.org/en/users/Documentation/iw"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-libs/libnl"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ tc-export CC LD
+}
+
+src_compile() {
+ CFLAGS="${CFLAGS} ${CPPFLAGS}" \
+ LDFLAGS="${CFLAGS} ${LDFLAGS}" \
+ emake V=1
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+}
diff --git a/net-wireless/iw/iw-3.17.ebuild b/net-wireless/iw/iw-3.17.ebuild
new file mode 100644
index 000000000000..313e82fb3b0a
--- /dev/null
+++ b/net-wireless/iw/iw-3.17.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="nl80211-based configuration utility for wireless devices using the mac80211 kernel stack"
+HOMEPAGE="http://wireless.kernel.org/en/users/Documentation/iw"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="amd64 arm ppc x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-libs/libnl"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ tc-export CC LD
+}
+
+src_compile() {
+ CFLAGS="${CFLAGS} ${CPPFLAGS}" \
+ LDFLAGS="${CFLAGS} ${LDFLAGS}" \
+ emake V=1
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+}
diff --git a/net-wireless/iw/iw-4.0.ebuild b/net-wireless/iw/iw-4.0.ebuild
new file mode 100644
index 000000000000..a1397cf35b06
--- /dev/null
+++ b/net-wireless/iw/iw-4.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="nl80211-based configuration utility for wireless devices using the mac80211 kernel stack"
+HOMEPAGE="http://wireless.kernel.org/en/users/Documentation/iw"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="dev-libs/libnl"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ tc-export CC LD
+}
+
+src_compile() {
+ CFLAGS="${CFLAGS} ${CPPFLAGS}" \
+ LDFLAGS="${CFLAGS} ${LDFLAGS}" \
+ emake V=1
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+}
diff --git a/net-wireless/iw/metadata.xml b/net-wireless/iw/metadata.xml
new file mode 100644
index 000000000000..e5ae030f575d
--- /dev/null
+++ b/net-wireless/iw/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>gurligebis@gentoo.org</email>
+ <name>Bjarke Istrup Pedersen</name>
+ </maintainer>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ <description>co-maintainer, please cc on bugs</description>
+ </maintainer>
+</pkgmetadata>
diff --git a/net-wireless/kismet-ubertooth/Manifest b/net-wireless/kismet-ubertooth/Manifest
new file mode 100644
index 000000000000..1ccd099852c6
--- /dev/null
+++ b/net-wireless/kismet-ubertooth/Manifest
@@ -0,0 +1,3 @@
+DIST ubertooth-2012-10-R1.tar.xz 1677996 SHA256 e049d6f306c612d522c840ad296aa48b63c670665fac51425bcec2d6338ca1bd SHA512 51cf7debfe9ff2484924943484c54be38ad203d25390ddfeb242b06d1e27475763c6fdfe8706c85ed40f568c6502570289d2a04923d5e124c7b3d80359acbbd9 WHIRLPOOL dc30a1e9ad299c1c992cef1539dc5323133140d27544dbfadf44c379e9b70dddb5f5e9f097ef8e18f401a46a42da8ba359f7ae480ea821cd2a774da1e173dc6d
+DIST ubertooth-2014-04-R1.tar.xz 1762456 SHA256 0881b4bde755acea557851852bc830c100986801148ac1fcaf8ca898623edfaa SHA512 9cc415c7e7f4ce40703e7dcf916e8942325902ab3af470fb959de6bbe047a824ad62b41a09e95ead5a74a961674d2dd4d30e582db21e2ba47f648eb99462bf4a WHIRLPOOL 6c01402ebf004e782bbe4ad891c3b8ebee0040a5bfb6fcdeb2939a105646157b1786b90772a502b92e26a356a5674bafd6960ce83e3f81db819dd5575e6fc444
+DIST ubertooth-r534.tar.gz 2959832 SHA256 5e227872ee8c088fe2cdac936c4a30d1e12b8f7c6ac781c96004ad7528b44730 SHA512 b3e150b8f8a4335f65fd8b7b629316eae08cf0560269991af6632d48e360f17dd98742da975df33852760140cd5f4571f72f36d973fa5e6d8df47932561acfa6 WHIRLPOOL 7d7ea0db033b34cbf16f963ea42d05db9bf8f82f41d5d26dd6510a95ffe339dae3fef54f5cef5d71bfedb1e05531bf33998cbcabe88af611feeaecf1e22a7b10
diff --git a/net-wireless/kismet-ubertooth/files/kismet-ubertooth-0.0_p534-respect-cflags.patch b/net-wireless/kismet-ubertooth/files/kismet-ubertooth-0.0_p534-respect-cflags.patch
new file mode 100644
index 000000000000..570a5def7882
--- /dev/null
+++ b/net-wireless/kismet-ubertooth/files/kismet-ubertooth-0.0_p534-respect-cflags.patch
@@ -0,0 +1,61 @@
+--- /var/tmp/portage/net-wireless/kismet-ubertooth-0.0_p534/work/ubertooth-r534/host/kismet/plugin-ubertooth-phyneutral/Makefile 2012-04-30 12:08:07.000000000 -0400
++++ host/kismet/plugin-ubertooth-phyneutral/Makefile 2012-07-23 12:50:07.883119040 -0400
+@@ -11,13 +11,12 @@
+
+ PLUGINLDFLAGS ?= $(LDFLAGS)
+ PLUGINLDFLAGS += -shared -rdynamic
+-LIBS += -lstdc++ -lusb-1.0 -lpthread -lbtbb
+-CFLAGS ?= $(CFLAGS) $(CPPFLAGS)
++LIBS += -lstdc++ -lusb-1.0 -lpthread -lbtbb
+ CFLAGS += -I$(KIS_INC_DIR) -I$(RXTX_INC_DIR) -g -fPIC
++CXXFLAGS += -I$(KIS_INC_DIR) -I$(RXTX_INC_DIR) -g -fPIC
+
+ SRVOBJS = packetsource_ubertooth.o packet_btbb_types.o \
+- phy_btbb.o kismet_ubertooth.o \
+- $(RXTX_SRC_DIR)/ubertooth.o
++ phy_btbb.o kismet_ubertooth.o
+ SRVOUT = ubertooth.so
+
+ all: $(SRVOUT)
+@@ -38,9 +37,9 @@
+ @-rm -f *.so
+
+ .c.o:
+- $(CC) $(CFLAGS) -c $*.c -o $@
++ $(CC) $(CPPFLAGS) $(CFLAGS) -c $*.c -o $@
+
+ .cc.o:
+- $(CXX) $(CFLAGS) -c $*.cc -o $@
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $*.cc -o $@
+
+ .SUFFIXES: .c .cc .o
+--- /var/tmp/portage/net-wireless/kismet-ubertooth-0.0_p534/work/ubertooth-r534/host/kismet/plugin-ubertooth/Makefile 2012-04-04 19:18:29.000000000 -0400
++++ host/kismet/plugin-ubertooth/Makefile 2012-07-23 12:50:07.890119040 -0400
+@@ -11,12 +11,12 @@
+
+ PLUGINLDFLAGS ?= $(LDFLAGS)
+ PLUGINLDFLAGS += -shared -rdynamic
+-LIBS += -lstdc++ -lusb-1.0 -lpthread -lbtbb
+-CFLAGS ?= $(CFLAGS) $(CPPFLAGS)
++LIBS += -lstdc++ -lusb-1.0 -lpthread -lbtbb
+ CFLAGS += -I/usr/include -I$(KIS_INC_DIR) -I$(RXTX_INC_DIR) -g -fPIC
++CXXFLAGS += -I/usr/include -I$(KIS_INC_DIR) -I$(RXTX_INC_DIR) -g -fPIC
+
+ SRVOBJS = packetsource_ubertooth.o packet_btbb.o packet_btbb_types.o \
+- tracker_btbb.o kismet_ubertooth.o $(RXTX_SRC_DIR)/ubertooth.o
++ tracker_btbb.o kismet_ubertooth.o
+ SRVOUT = ubertooth.so
+
+ CLIOBJS = ubertooth_ui.o
+@@ -48,9 +48,9 @@
+ @-rm -f *.so
+
+ .c.o:
+- $(CC) $(CFLAGS) -c $*.c -o $@
++ $(CC) $(CPPFLAGS) $(CFLAGS) -c $*.c -o $@
+
+ .cc.o:
+- $(CXX) $(CFLAGS) -c $*.cc -o $@
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $*.cc -o $@
+
+ .SUFFIXES: .c .cc .o
diff --git a/net-wireless/kismet-ubertooth/kismet-ubertooth-0.0_p534-r1.ebuild b/net-wireless/kismet-ubertooth/kismet-ubertooth-0.0_p534-r1.ebuild
new file mode 100644
index 000000000000..bba3e9c89510
--- /dev/null
+++ b/net-wireless/kismet-ubertooth/kismet-ubertooth-0.0_p534-r1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils multilib
+
+DESCRIPTION="Provides basic bluetooth support in kismet"
+HOMEPAGE="http://ubertooth.sourceforge.net/"
+
+if [[ ${PV} == "9999" ]] ; then
+ ESVN_REPO_URI="https://ubertooth.svn.sourceforge.net/svnroot/ubertooth/trunk/host"
+ SRC_URI=""
+ inherit subversion
+ KEYWORDS=""
+else
+ MY_PV="${PV/p/r}"
+ MY_PV="${MY_PV/0.0_/}"
+ SRC_URI="mirror://sourceforge/ubertooth/ubertooth-${MY_PV}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+ S="${WORKDIR}/ubertooth-${MY_PV}/host/"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+DEPEND=">=net-wireless/kismet-2011.03.2-r1 \
+ >=net-libs/libbtbb-0.8 \
+ virtual/libusb:1"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-respect-cflags.patch
+}
+
+src_compile() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/kismet/plugin-ubertooth" || die
+ fi
+ emake KIS_SRC_DIR="/usr/include/kismet/"
+}
+
+src_install() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/kismet/plugin-ubertooth" || die
+ fi
+ emake DESTDIR="${ED}" LIBDIR="/$(get_libdir)" KIS_SRC_DIR="/usr/include/kismet/" install
+}
+
+pkg_postinst() {
+ ewarn "This package must be rebuilt every time kismet is rebuilt. Or else."
+}
diff --git a/net-wireless/kismet-ubertooth/kismet-ubertooth-0.0_p534.ebuild b/net-wireless/kismet-ubertooth/kismet-ubertooth-0.0_p534.ebuild
new file mode 100644
index 000000000000..b880389fbcc7
--- /dev/null
+++ b/net-wireless/kismet-ubertooth/kismet-ubertooth-0.0_p534.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils multilib
+
+DESCRIPTION="Provides basic bluetooth support in kismet"
+HOMEPAGE="http://ubertooth.sourceforge.net/"
+
+if [[ ${PV} == "9999" ]] ; then
+ ESVN_REPO_URI="https://ubertooth.svn.sourceforge.net/svnroot/ubertooth/trunk/host"
+ SRC_URI=""
+ inherit subversion
+ KEYWORDS=""
+else
+ MY_PV="${PV/p/r}"
+ MY_PV="${MY_PV/0.0_/}"
+ SRC_URI="mirror://sourceforge/ubertooth/ubertooth-${MY_PV}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+ S="${WORKDIR}/ubertooth-${MY_PV}/host/"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+DEPEND=">=net-wireless/kismet-2011.03.2-r1 \
+ >=net-libs/libbtbb-0.8 \
+ virtual/libusb:1"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-respect-cflags.patch
+}
+
+src_compile() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/kismet/plugin-ubertooth" || die
+ fi
+ emake KIS_SRC_DIR="/usr/include/kismet/"
+}
+
+src_install() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/kismet/plugin-ubertooth" || die
+ fi
+ emake DESTDIR="${ED}" LIBDIR="/usr/$(get_libdir)" KIS_SRC_DIR="/usr/include/kismet/" KIS_DEST_DIR="${D}/usr/" install
+}
+
+pkg_postinst() {
+ ewarn "This package must be rebuilt every time kismet is rebuilt. Or else."
+}
diff --git a/net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1-r1.ebuild b/net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1-r1.ebuild
new file mode 100644
index 000000000000..d6b342878055
--- /dev/null
+++ b/net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit multilib
+
+MY_PV=${PV/\./-}
+MY_PV=${MY_PV/./-R}
+S="${WORKDIR}/ubertooth-${MY_PV}"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://ubertooth.git.sourceforge.net/gitroot/ubertooth/ubertooth"
+ SRC_URI=""
+ inherit git-2
+ KEYWORDS=""
+else
+ SRC_URI="mirror://sourceforge/ubertooth/ubertooth-${MY_PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+DESCRIPTION="Provides basic bluetooth support in kismet"
+HOMEPAGE="http://ubertooth.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+IUSE=""
+
+DEPEND=">=net-wireless/kismet-2011.03.2-r1:= \
+ >=net-wireless/ubertooth-${PV} \
+ >=net-libs/libbtbb-${PV} \
+ virtual/libusb:1"
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/host/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/host/kismet/plugin-ubertooth" || die
+ fi
+ emake KIS_SRC_DIR="/usr/include/kismet/"
+}
+
+src_install() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/host/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/host/kismet/plugin-ubertooth" || die
+ fi
+ emake DESTDIR="${ED}" LIBDIR="/$(get_libdir)" KIS_SRC_DIR="/usr/include/kismet/" install
+}
+
+pkg_postinst() {
+ ewarn "This package must be rebuilt every time kismet is rebuilt. Or else."
+}
diff --git a/net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1-r2.ebuild b/net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1-r2.ebuild
new file mode 100644
index 000000000000..a235d304b76f
--- /dev/null
+++ b/net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1-r2.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit multilib
+
+MY_PV=${PV/\./-}
+MY_PV=${MY_PV/./-R}
+S="${WORKDIR}/ubertooth-${MY_PV}"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://ubertooth.git.sourceforge.net/gitroot/ubertooth/ubertooth"
+ SRC_URI=""
+ inherit git-2
+ KEYWORDS=""
+else
+ SRC_URI="mirror://sourceforge/ubertooth/ubertooth-${MY_PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+DESCRIPTION="Provides basic bluetooth support in kismet"
+HOMEPAGE="http://ubertooth.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+IUSE=""
+
+DEPEND=">=net-wireless/kismet-2011.03.2-r1:= \
+ >=net-wireless/ubertooth-${PV}:= \
+ >=net-libs/libbtbb-${PV}:= \
+ virtual/libusb:1"
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/host/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/host/kismet/plugin-ubertooth" || die
+ fi
+ emake KIS_SRC_DIR="/usr/include/kismet/"
+}
+
+src_install() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/host/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/host/kismet/plugin-ubertooth" || die
+ fi
+ emake DESTDIR="${ED}" LIBDIR="/$(get_libdir)" KIS_SRC_DIR="/usr/include/kismet/" install
+}
+
+pkg_postinst() {
+ ewarn "This package must be rebuilt every time kismet is rebuilt. Or else."
+}
diff --git a/net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1.ebuild b/net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1.ebuild
new file mode 100644
index 000000000000..4f6aa61d7e6d
--- /dev/null
+++ b/net-wireless/kismet-ubertooth/kismet-ubertooth-2012.10.1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit multilib
+
+MY_PV=${PV/\./-}
+MY_PV=${MY_PV/./-R}
+S="${WORKDIR}/ubertooth-${MY_PV}"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://ubertooth.git.sourceforge.net/gitroot/ubertooth/ubertooth"
+ SRC_URI=""
+ inherit git-2
+ KEYWORDS=""
+else
+ SRC_URI="mirror://sourceforge/ubertooth/ubertooth-${MY_PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+DESCRIPTION="Provides basic bluetooth support in kismet"
+HOMEPAGE="http://ubertooth.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+DEPEND=">=net-wireless/kismet-2011.03.2-r1 \
+ >=net-wireless/ubertooth-${PV} \
+ >=net-libs/libbtbb-${PV} \
+ virtual/libusb:1"
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/host/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/host/kismet/plugin-ubertooth" || die
+ fi
+ emake KIS_SRC_DIR="/usr/include/kismet/"
+}
+
+src_install() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/host/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/host/kismet/plugin-ubertooth" || die
+ fi
+ emake DESTDIR="${ED}" LIBDIR="/$(get_libdir)" KIS_SRC_DIR="/usr/include/kismet/" install
+}
+
+pkg_postinst() {
+ ewarn "This package must be rebuilt every time kismet is rebuilt. Or else."
+}
diff --git a/net-wireless/kismet-ubertooth/kismet-ubertooth-2014.04.1.ebuild b/net-wireless/kismet-ubertooth/kismet-ubertooth-2014.04.1.ebuild
new file mode 100644
index 000000000000..1fd89429ed73
--- /dev/null
+++ b/net-wireless/kismet-ubertooth/kismet-ubertooth-2014.04.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit multilib
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/greatscottgadgets/ubertooth.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ MY_PV=${PV/\./-}
+ MY_PV=${MY_PV/./-R}
+ S="${WORKDIR}/ubertooth-${MY_PV}"
+ SRC_URI="https://github.com/greatscottgadgets/ubertooth/releases/download/${MY_PV}/ubertooth-${MY_PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+DESCRIPTION="Provides basic bluetooth support in kismet"
+HOMEPAGE="http://ubertooth.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+IUSE=""
+
+DEPEND=">=net-wireless/kismet-2011.03.2-r1:= \
+ >=net-wireless/ubertooth-2012.02.2:= \
+ >=net-libs/libbtbb-2012.02.2:= \
+ virtual/libusb:1"
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/host/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/host/kismet/plugin-ubertooth" || die
+ fi
+ emake KIS_SRC_DIR="/usr/include/kismet/"
+}
+
+src_install() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/host/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/host/kismet/plugin-ubertooth" || die
+ fi
+ emake DESTDIR="${ED}" LIBDIR="/$(get_libdir)" KIS_SRC_DIR="/usr/include/kismet/" install
+}
+
+pkg_postinst() {
+ ewarn "This package must be rebuilt every time kismet is rebuilt. Or else."
+}
diff --git a/net-wireless/kismet-ubertooth/kismet-ubertooth-9999.ebuild b/net-wireless/kismet-ubertooth/kismet-ubertooth-9999.ebuild
new file mode 100644
index 000000000000..af994f8b58e2
--- /dev/null
+++ b/net-wireless/kismet-ubertooth/kismet-ubertooth-9999.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit multilib
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/greatscottgadgets/ubertooth.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ MY_PV=${PV/\./-}
+ MY_PV=${MY_PV/./-R}
+ S="${WORKDIR}/ubertooth-${MY_PV}"
+ SRC_URI="https://github.com/greatscottgadgets/ubertooth/releases/download/${MY_PV}/ubertooth-${MY_PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+DESCRIPTION="Provides basic bluetooth support in kismet"
+HOMEPAGE="http://ubertooth.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+IUSE=""
+
+DEPEND=">=net-wireless/kismet-2011.03.2-r1:= \
+ >=net-wireless/ubertooth-${PV}:= \
+ >=net-libs/libbtbb-${PV}:= \
+ virtual/libusb:1"
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/host/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/host/kismet/plugin-ubertooth" || die
+ fi
+ emake KIS_SRC_DIR="/usr/include/kismet/"
+}
+
+src_install() {
+ if has_version =net-wireless/kismet-9999; then
+ cd "${S}/host/kismet/plugin-ubertooth-phyneutral" || die
+ else
+ cd "${S}/host/kismet/plugin-ubertooth" || die
+ fi
+ emake DESTDIR="${ED}" LIBDIR="/$(get_libdir)" KIS_SRC_DIR="/usr/include/kismet/" install
+}
+
+pkg_postinst() {
+ ewarn "This package must be rebuilt every time kismet is rebuilt. Or else."
+}
diff --git a/net-wireless/kismet-ubertooth/metadata.xml b/net-wireless/kismet-ubertooth/metadata.xml
new file mode 100644
index 000000000000..b93f7ac13411
--- /dev/null
+++ b/net-wireless/kismet-ubertooth/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="github">greatscottgadgets/ubertooth</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/kismet/Manifest b/net-wireless/kismet/Manifest
new file mode 100644
index 000000000000..0f38cd0d17b7
--- /dev/null
+++ b/net-wireless/kismet/Manifest
@@ -0,0 +1 @@
+DIST kismet-2013-03-R1.tar.gz 899372 SHA256 1c1e9f6b550de1f248363d4c9ce1d24fdc20d041ead5a53cec88eb1b07353082 SHA512 7e992f5ef3db4c5fa298bd4aabfe216668baade948b83996850c010c6c92bfa2fea37d7006a532eb6bace015624f536cc45ed8b3b3ed4a6a1cac7a137ac86d36 WHIRLPOOL 694796f7dd0f4ffd70e64d67eba30bf7b206189dadb8e773a302af9f417a8219b45e547bfcaf59db3f502e0f5ab18af6d642e66dbe8277d8af48daeb35b40843
diff --git a/net-wireless/kismet/files/bluechanfix_r3184.patch b/net-wireless/kismet/files/bluechanfix_r3184.patch
new file mode 100644
index 000000000000..bdc05cb0b51f
--- /dev/null
+++ b/net-wireless/kismet/files/bluechanfix_r3184.patch
@@ -0,0 +1,15 @@
+Index: packetsourcetracker.cc
+===================================================================
+--- packetsourcetracker.cc (revision 3183)
++++ packetsourcetracker.cc (working copy)
+@@ -151,7 +151,10 @@
+ break;
+
+ case SOURCE_channel:
+- osstr << psrc->channel;
++ if (psrc->strong_source != NULL)
++ osstr << psrc->strong_source->FetchChannel();
++ else
++ osstr << psrc->channel;
+ cache->Cache(fnum, osstr.str());
+ break;
diff --git a/net-wireless/kismet/files/header_alignment_r3326.patch b/net-wireless/kismet/files/header_alignment_r3326.patch
new file mode 100644
index 000000000000..408456ecafec
--- /dev/null
+++ b/net-wireless/kismet/files/header_alignment_r3326.patch
@@ -0,0 +1,58 @@
+diff -Naur kismet-2011-03-R2-orig/packetsource_pcap.cc kismet-2011-03-R2/packetsource_pcap.cc
+--- kismet-2011-03-R2-orig/packetsource_pcap.cc 2011-01-05 16:52:51.000000000 -0500
++++ kismet-2011-03-R2/packetsource_pcap.cc 2012-02-20 22:37:17.973526919 -0500
+@@ -553,6 +553,9 @@
+ }
+ #endif
+
++#define ALIGN_OFFSET(offset, width) \
++ ( (((offset) + ((width) - 1)) & (~((width) - 1))) - offset )
++
+ /*
+ * Useful combinations of channel characteristics.
+ */
+@@ -617,6 +620,8 @@
+ enum ieee80211_radiotap_type bit;
+ int bit0;
+ const u_char *iter;
++ const u_char *iter_start;
++ unsigned int iter_align;
+ int fcs_cut = 0; // Is the FCS bit set?
+ char errstr[STATUS_MAX];
+
+@@ -658,7 +663,7 @@
+
+ eight11chunk->dlt = KDLT_IEEE802_11;
+
+- iter = (u_char*)(last_presentp + 1);
++ iter_start = iter = (u_char*)(last_presentp + 1);
+
+ for (bit0 = 0, presentp = &hdr->it_present; presentp <= last_presentp;
+ presentp++, bit0 += 32) {
+@@ -686,6 +691,9 @@
+ u.i8 = *iter++;
+ break;
+ case IEEE80211_RADIOTAP_CHANNEL:
++ iter_align = ALIGN_OFFSET((unsigned int) (iter - iter_start), 2);
++ iter += iter_align;
++
+ u.u16 = EXTRACT_LE_16BITS(iter);
+ iter += sizeof(u.u16);
+ u2.u16 = EXTRACT_LE_16BITS(iter);
+@@ -695,10 +703,16 @@
+ case IEEE80211_RADIOTAP_LOCK_QUALITY:
+ case IEEE80211_RADIOTAP_TX_ATTENUATION:
+ case IEEE80211_RADIOTAP_DB_TX_ATTENUATION:
++ iter_align = ALIGN_OFFSET((unsigned int) (iter - iter_start), 2);
++ iter += iter_align;
++
+ u.u16 = EXTRACT_LE_16BITS(iter);
+ iter += sizeof(u.u16);
+ break;
+ case IEEE80211_RADIOTAP_TSFT:
++ iter_align = ALIGN_OFFSET((unsigned int) (iter - iter_start), 8);
++ iter += iter_align;
++
+ u.u64 = EXTRACT_LE_64BITS(iter);
+ iter += sizeof(u.u64);
+ break;
diff --git a/net-wireless/kismet/files/kismet-2011.03.2-cflags-backport.patch b/net-wireless/kismet/files/kismet-2011.03.2-cflags-backport.patch
new file mode 100644
index 000000000000..2ef2a6b59df6
--- /dev/null
+++ b/net-wireless/kismet/files/kismet-2011.03.2-cflags-backport.patch
@@ -0,0 +1,115 @@
+diff -Naur kismet-2011-03-R2/plugin-autowep/Makefile kismet-2011-03-R2-cflags/plugin-autowep/Makefile
+--- kismet-2011-03-R2/plugin-autowep/Makefile 2012-07-23 12:58:09.961131948 -0400
++++ kismet-2011-03-R2-cflags/plugin-autowep/Makefile 2012-07-23 13:00:04.544135017 -0400
+@@ -12,6 +12,7 @@
+ PLUGINLDFLAGS += -shared -rdynamic
+ LIBS += -lstdc++
+ CFLAGS += -I/usr/include -I$(KIS_INC_DIR) -g -fPIC
++CXXFLAGS += -I/usr/include -I$(KIS_INC_DIR) -g -fPIC
+
+ PLUGOBJS = autowep-kismet.o
+ PLUGOUT = autowep-kismet.so
+@@ -34,9 +35,9 @@
+ @-rm -f *.so
+
+ .c.o:
+- $(CC) $(CFLAGS) -c $*.c -o $@
++ $(CC) $(CPPFLAGS) $(CFLAGS) -c $*.c -o $@
+
+ .cc.o:
+- $(CXX) $(CFLAGS) -c $*.cc -o $@
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $*.cc -o $@
+
+ .SUFFIXES: .c .cc .o
+diff -Naur kismet-2011-03-R2/plugin-btscan/Makefile kismet-2011-03-R2-cflags/plugin-btscan/Makefile
+--- kismet-2011-03-R2/plugin-btscan/Makefile 2012-07-23 12:58:09.962131948 -0400
++++ kismet-2011-03-R2-cflags/plugin-btscan/Makefile 2012-07-23 13:02:33.016138993 -0400
+@@ -12,6 +12,7 @@
+ PLUGINLDFLAGS += -shared -rdynamic
+ LIBS += -lstdc++ -lbluetooth -lpthread -lncurses -lpanel
+ CFLAGS += -I/usr/include -I$(KIS_INC_DIR) -g -fPIC
++CXXFLAGS += -I/usr/include -I$(KIS_INC_DIR) -g -fPIC
+
+ SRVOBJS = packetsource_linuxbt.o tracker_btscan.o dumpfile_btscantxt.o kismet_btscan.o
+ SRVOUT = btscan.so
+@@ -44,9 +45,9 @@
+ @-rm -f *.so
+
+ .c.o:
+- $(CC) $(CFLAGS) -c $*.c -o $@
++ $(CC) $(CPPFLAGS) $(CFLAGS) -c $*.c -o $@
+
+ .cc.o:
+- $(CXX) $(CFLAGS) -c $*.cc -o $@
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $*.cc -o $@
+
+ .SUFFIXES: .c .cc .o
+diff -Naur kismet-2011-03-R2/plugin-dot15d4/Makefile kismet-2011-03-R2-cflags/plugin-dot15d4/Makefile
+--- kismet-2011-03-R2/plugin-dot15d4/Makefile 2012-07-23 12:58:09.962131948 -0400
++++ kismet-2011-03-R2-cflags/plugin-dot15d4/Makefile 2012-07-23 13:03:17.209140176 -0400
+@@ -12,6 +12,7 @@
+ PLUGINLDFLAGS += -shared -rdynamic
+ LIBS += -lstdc++ -lusb -lpthread
+ CFLAGS += -I/usr/include -I$(KIS_INC_DIR) -g -fPIC
++CXXFLAGS += -I/usr/include -I$(KIS_INC_DIR) -g -fPIC
+
+ SRVOBJS = packetsource_raven.o packetsource_serialdev.o \
+ packet_dot15d4.o packet_dot15d4_types.o \
+@@ -39,9 +40,9 @@
+ @-rm -f *.so
+
+ .c.o:
+- $(CC) $(CFLAGS) -c $*.c -o $@
++ $(CC) $(CPPFLAGS) $(CFLAGS) -c $*.c -o $@
+
+ .cc.o:
+- $(CXX) $(CFLAGS) -c $*.cc -o $@
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $*.cc -o $@
+
+ .SUFFIXES: .c .cc .o
+diff -Naur kismet-2011-03-R2/plugin-ptw/Makefile kismet-2011-03-R2-cflags/plugin-ptw/Makefile
+--- kismet-2011-03-R2/plugin-ptw/Makefile 2012-07-23 12:58:09.963131948 -0400
++++ kismet-2011-03-R2-cflags/plugin-ptw/Makefile 2012-07-23 13:04:25.764142014 -0400
+@@ -12,6 +12,7 @@
+ PLUGINLDFLAGS += -shared -rdynamic
+ LIBS += -lstdc++ -lssl -lpthread -lcrypto
+ CFLAGS += -I/usr/include -I$(KIS_INC_DIR) -g -fPIC
++CXXFLAGS += -I/usr/include -I$(KIS_INC_DIR) -g -fPIC
+
+ PLUGOBJS = aircrack-crypto.o aircrack-ptw2-lib.o aircrack-kismet.o
+ PLUGOUT = aircrack-kismet.so
+@@ -34,9 +35,9 @@
+ @-rm -f *.so
+
+ .c.o:
+- $(CC) $(CFLAGS) -c $*.c -o $@
++ $(CC) $(CPPFLAGS) $(CFLAGS) -c $*.c -o $@
+
+ .cc.o:
+- $(CXX) $(CFLAGS) -c $*.cc -o $@
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $*.cc -o $@
+
+ .SUFFIXES: .c .cc .o
+diff -Naur kismet-2011-03-R2/plugin-spectools/Makefile kismet-2011-03-R2-cflags/plugin-spectools/Makefile
+--- kismet-2011-03-R2/plugin-spectools/Makefile 2012-07-23 12:58:09.963131948 -0400
++++ kismet-2011-03-R2-cflags/plugin-spectools/Makefile 2012-07-23 13:05:12.121143257 -0400
+@@ -12,6 +12,7 @@
+ PLUGINLDFLAGS += -shared -rdynamic
+ LIBS += -lstdc++
+ CFLAGS += -I/usr/include -I$(KIS_INC_DIR) -g -fPIC
++CXXFLAGS += -I/usr/include -I$(KIS_INC_DIR) -g -fPIC
+
+ CLIOBJS = spectools_ui.o
+ CLIOUT = spectools_ui.so
+@@ -44,9 +45,9 @@
+ @-rm -f *.so
+
+ .c.o:
+- $(CC) $(CFLAGS) -c $*.c -o $@
++ $(CC) $(CPPFLAGS) $(CFLAGS) -c $*.c -o $@
+
+ .cc.o:
+- $(CXX) $(CFLAGS) -c $*.cc -o $@
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $*.cc -o $@
+
+ .SUFFIXES: .c .cc .o
diff --git a/net-wireless/kismet/files/kismet-2013.03.1-tinfo.patch b/net-wireless/kismet/files/kismet-2013.03.1-tinfo.patch
new file mode 100644
index 000000000000..ac1a39004479
--- /dev/null
+++ b/net-wireless/kismet/files/kismet-2013.03.1-tinfo.patch
@@ -0,0 +1,11 @@
+--- a/configure.in
++++ b/configure.in
+@@ -423,6 +423,8 @@
+ foundlcurses=yes curseaux="-lcurses" termcontrol="curses" )
+ fi
+
++ AC_SEARCH_LIBS([stdscr], tinfo ncurses,curseaux="$curseaux $ac_res")
++
+ if test "$foundlcurses" != "yes"; then
+ AC_MSG_ERROR(Failed to find libcurses or libncurses. Install them or disable building the Kismet client with --disable-client. Disabling the client is probably not something you want to do normally.)
+ fi
diff --git a/net-wireless/kismet/files/kismet-console-scrolling-backport.patch b/net-wireless/kismet/files/kismet-console-scrolling-backport.patch
new file mode 100644
index 000000000000..01baea0bb735
--- /dev/null
+++ b/net-wireless/kismet/files/kismet-console-scrolling-backport.patch
@@ -0,0 +1,12 @@
+diff -Naur kismet-2011-03-R2-orig/kis_panel_windows.cc kismet-2011-03-R2/kis_panel_windows.cc
+--- kismet-2011-03-R2-orig/kis_panel_windows.cc 2011-03-02 17:04:05.000000000 -0500
++++ kismet-2011-03-R2/kis_panel_windows.cc 2012-02-07 11:53:39.634360668 -0500
+@@ -1936,7 +1936,7 @@
+
+ // Import the existing console
+ constext->SetFollowTail(1);
+- constext->SetMaxText(50);
++ constext->SetMaxText(250);
+ if (kpinterface->FetchServerFramework() == NULL) {
+ constext->SetText("Kismet server not started (or not started via this client)");
+ textcb = -1;
diff --git a/net-wireless/kismet/files/kismet.confd b/net-wireless/kismet/files/kismet.confd
new file mode 100644
index 000000000000..d203513c7143
--- /dev/null
+++ b/net-wireless/kismet/files/kismet.confd
@@ -0,0 +1,12 @@
+# /etc/conf.d/kismet - configuration file for /etc/init.d/kismet
+
+# Kismet configuration is done in /etc/kismet.conf
+
+# To use the kismet init script, you must have "logtemplate" set to a location
+# that is writable by the user assigned by "suiduser".
+# e.g.
+# suiduser=foo
+# logtemplate=%h/kismet_log/%n-%d-%i.%l
+
+# Options to pass to kismet_server, see `kismet_server --help`
+KISMET_SERVER_OPTIONS=""
diff --git a/net-wireless/kismet/files/kismet.initd b/net-wireless/kismet/files/kismet.initd
new file mode 100644
index 000000000000..3e6863483fa8
--- /dev/null
+++ b/net-wireless/kismet/files/kismet.initd
@@ -0,0 +1,27 @@
+#!/sbin/runscript
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+checkconfig() {
+ if [ ! -e /etc/kismet.conf ]; then
+ eerror "Configuration file /etc/kismet.conf not found"
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+
+ ebegin "Starting kismet server"
+ start-stop-daemon --start --quiet --pidfile /var/run/kismet_server.pid \
+ --background --make-pidfile --exec /usr/bin/kismet_server \
+ -- ${KISMET_SERVER_OPTIONS}
+ eend ${?}
+}
+
+stop() {
+ ebegin "Stopping kismet server"
+ start-stop-daemon --stop --quiet --pidfile /var/run/kismet_server.pid
+ eend ${?}
+}
diff --git a/net-wireless/kismet/files/makefile.patch b/net-wireless/kismet/files/makefile.patch
new file mode 100644
index 000000000000..5580c58346f8
--- /dev/null
+++ b/net-wireless/kismet/files/makefile.patch
@@ -0,0 +1,119 @@
+diff -Naur kismet-2011-03-R2-orig/plugin-autowep/Makefile kismet-2011-03-R2/plugin-autowep/Makefile
+--- kismet-2011-03-R2-orig/plugin-autowep/Makefile 2009-11-05 21:50:32.000000000 -0500
++++ kismet-2011-03-R2/plugin-autowep/Makefile 2011-05-31 21:15:06.000000000 -0400
+@@ -1,6 +1,7 @@
+ # You will need kismet newcore sources
+ KIS_SRC_DIR ?= /usr/src/kismet
+ KIS_INC_DIR ?= $(KIS_SRC_DIR)
++LIBDIR ?= /lib
+
+ include $(KIS_SRC_DIR)/Makefile.inc
+
+@@ -21,8 +22,8 @@
+ $(LD) $(PLUGINLDFLAGS) $(PLUGOBJS) -o $(PLUGOUT) $(LIBS)
+
+ install: $(PLUGOUT)
+- mkdir -p $(DESTDIR)$(prefix)/lib/kismet/
+- install -o $(INSTUSR) -g $(INSTGRP) -m 644 $^ $(DESTDIR)$(prefix)/lib/kismet/$^
++ mkdir -p $(DESTDIR)$(prefix)/$(LIBDIR)/kismet/
++ install -o $(INSTUSR) -g $(INSTGRP) -m 644 $^ $(DESTDIR)$(prefix)/$(LIBDIR)/kismet/$^
+
+ userinstall: $(PLUGOUT)
+ mkdir -p ${HOME}/.kismet/plugins/
+diff -Naur kismet-2011-03-R2-orig/plugin-btscan/Makefile kismet-2011-03-R2/plugin-btscan/Makefile
+--- kismet-2011-03-R2-orig/plugin-btscan/Makefile 2010-04-28 15:31:26.000000000 -0400
++++ kismet-2011-03-R2/plugin-btscan/Makefile 2011-05-31 21:23:55.000000000 -0400
+@@ -1,6 +1,7 @@
+ # You will need kismet newcore sources
+ KIS_SRC_DIR ?= /usr/src/kismet
+ KIS_INC_DIR ?= $(KIS_SRC_DIR)
++LIBDIR ?= /lib
+
+ include $(KIS_SRC_DIR)/Makefile.inc
+
+@@ -27,10 +28,10 @@
+ $(LD) $(PLUGINLDFLAGS) $(SRVOBJS) -o $(SRVOUT) $(LIBS)
+
+ install: $(SRVOUT) $(CLIOUT)
+- mkdir -p $(DESTDIR)$(prefix)/lib/kismet/
+- install -o $(INSTUSR) -g $(INSTGRP) -m 644 $(SRVOUT) $(DESTDIR)$(prefix)/lib/kismet/$(SRVOUT)
+- mkdir -p $(DESTDIR)$(prefix)/lib/kismet_client/
+- install -o $(INSTUSR) -g $(INSTGRP) -m 644 $(CLIOUT) $(DESTDIR)$(prefix)/lib/kismet_client/$(CLIOUT)
++ mkdir -p $(DESTDIR)$(prefix)/$(LIBDIR)/kismet/
++ install -o $(INSTUSR) -g $(INSTGRP) -m 644 $(SRVOUT) $(DESTDIR)$(prefix)/$(LIBDIR)/kismet/$(SRVOUT)
++ mkdir -p $(DESTDIR)$(prefix)/$(LIBDIR)/kismet_client/
++ install -o $(INSTUSR) -g $(INSTGRP) -m 644 $(CLIOUT) $(DESTDIR)$(prefix)/$(LIBDIR)/kismet_client/$(CLIOUT)
+
+ userinstall: $(SRVOUT) $(CLIOUT)
+ mkdir -p ${HOME}/.kismet/plugins/
+diff -Naur kismet-2011-03-R2-orig/plugin-dot15d4/Makefile kismet-2011-03-R2/plugin-dot15d4/Makefile
+--- kismet-2011-03-R2-orig/plugin-dot15d4/Makefile 2010-07-29 20:59:16.000000000 -0400
++++ kismet-2011-03-R2/plugin-dot15d4/Makefile 2011-05-31 21:17:25.000000000 -0400
+@@ -1,6 +1,7 @@
+ # You will need kismet newcore sources
+ KIS_SRC_DIR ?= /usr/src/kismet
+ KIS_INC_DIR ?= $(KIS_SRC_DIR)
++LIBDIR ?= /lib
+
+ include $(KIS_SRC_DIR)/Makefile.inc
+
+@@ -26,8 +27,8 @@
+ $(LD) $(PLUGINLDFLAGS) $(SRVOBJS) -o $(SRVOUT) $(LIBS)
+
+ install: $(SRVOUT) $(CLIOUT)
+- mkdir -p $(DESTDIR)$(prefix)/lib/kismet/
+- install -o $(INSTUSR) -g $(INSTGRP) -m 644 $(SRVOUT) $(DESTDIR)$(prefix)/lib/kismet/$(SRVOUT)
++ mkdir -p $(DESTDIR)$(prefix)/$(LIBDIR)/kismet/
++ install -o $(INSTUSR) -g $(INSTGRP) -m 644 $(SRVOUT) $(DESTDIR)$(prefix)/$(LIBDIR)/kismet/$(SRVOUT)
+
+ userinstall: $(SRVOUT) $(CLIOUT)
+ mkdir -p ${HOME}/.kismet/plugins/
+diff -Naur kismet-2011-03-R2-orig/plugin-ptw/Makefile kismet-2011-03-R2/plugin-ptw/Makefile
+--- kismet-2011-03-R2-orig/plugin-ptw/Makefile 2010-04-28 15:31:26.000000000 -0400
++++ kismet-2011-03-R2/plugin-ptw/Makefile 2011-05-31 21:18:14.000000000 -0400
+@@ -1,6 +1,7 @@
+ # You will need kismet newcore sources
+ KIS_SRC_DIR ?= /usr/src/kismet
+ KIS_INC_DIR ?= $(KIS_SRC_DIR)
++LIBDIR ?= /lib
+
+ include $(KIS_SRC_DIR)/Makefile.inc
+
+@@ -21,9 +22,8 @@
+ $(LD) $(PLUGINLDFLAGS) $(PLUGOBJS) -o $(PLUGOUT) $(LIBS)
+
+ install: $(PLUGOUT)
+- mkdir -p $(DESTDIR)$(prefix)/lib/kismet/
+-
+- install -o $(INSTUSR) -g $(INSTGRP) -m 644 $^ $(DESTDIR)$(prefix)/lib/kismet/$^
++ mkdir -p $(DESTDIR)$(prefix)/$(LIBDIR)/kismet/
++ install -o $(INSTUSR) -g $(INSTGRP) -m 644 $^ $(DESTDIR)$(prefix)/$(LIBDIR)/kismet/$^
+
+ userinstall: $(PLUGOUT)
+ mkdir -p ${HOME}/.kismet/plugins/
+diff -Naur kismet-2011-03-R2-orig/plugin-spectools/Makefile kismet-2011-03-R2/plugin-spectools/Makefile
+--- kismet-2011-03-R2-orig/plugin-spectools/Makefile 2010-01-07 18:33:30.000000000 -0500
++++ kismet-2011-03-R2/plugin-spectools/Makefile 2011-05-31 21:19:09.000000000 -0400
+@@ -1,6 +1,7 @@
+ # You will need kismet newcore sources
+ KIS_SRC_DIR ?= /usr/src/kismet
+ KIS_INC_DIR ?= $(KIS_SRC_DIR)
++LIBDIR ?= /lib
+
+ include $(KIS_SRC_DIR)/Makefile.inc
+
+@@ -27,10 +28,10 @@
+ $(LD) $(PLUGINLDFLAGS) $(SRVOBJS) -o $(SRVOUT) $(LIBS)
+
+ install: $(SRVOUT) $(CLIOUT)
+- mkdir -p $(DESTDIR)$(prefix)/lib/kismet/
+- install -o $(INSTUSR) -g $(INSTGRP) -m 644 $(SRVOUT) $(DESTDIR)$(prefix)/lib/kismet/$(SRVOUT)
+- mkdir -p $(DESTDIR)$(prefix)/lib/kismet_client/
+- install -o $(INSTUSR) -g $(INSTGRP) -m 644 $(CLIOUT) $(DESTDIR)$(prefix)/lib/kismet_client/$(CLIOUT)
++ mkdir -p $(DESTDIR)$(prefix)/$(LIBDIR)/kismet/
++ install -o $(INSTUSR) -g $(INSTGRP) -m 644 $(SRVOUT) $(DESTDIR)$(prefix)/$(LIBDIR)/kismet/$(SRVOUT)
++ mkdir -p $(DESTDIR)$(prefix)/$(LIBDIR)/kismet_client/
++ install -o $(INSTUSR) -g $(INSTGRP) -m 644 $(CLIOUT) $(DESTDIR)$(prefix)/$(LIBDIR)/kismet_client/$(CLIOUT)
+
+ userinstall: $(SRVOUT) $(CLIOUT)
+ mkdir -p ${HOME}/.kismet/plugins/
diff --git a/net-wireless/kismet/files/plugins-ldflags.patch b/net-wireless/kismet/files/plugins-ldflags.patch
new file mode 100644
index 000000000000..001ab78dab06
--- /dev/null
+++ b/net-wireless/kismet/files/plugins-ldflags.patch
@@ -0,0 +1,10 @@
+diff -Naur kismet-2011-03-R2-orig/Makefile.inc.in kismet-2011-03-R2/Makefile.inc.in
+--- kismet-2011-03-R2-orig/Makefile.inc.in 2009-11-05 21:43:30.000000000 -0500
++++ kismet-2011-03-R2/Makefile.inc.in 2011-06-01 00:13:13.000000000 -0400
+@@ -38,5 +38,5 @@
+ MAN = ${DESTDIR}@mandir@
+ WAV = ${SHARE}/wav/
+
+-PLUGINLDFLAGS = @PLUGINLDFLAGS@
++PLUGINLDFLAGS = @LDFLAGS@ @PLUGINLDFLAGS@
+
diff --git a/net-wireless/kismet/files/ruby19_fixes.patch b/net-wireless/kismet/files/ruby19_fixes.patch
new file mode 100644
index 000000000000..28b704d03c66
--- /dev/null
+++ b/net-wireless/kismet/files/ruby19_fixes.patch
@@ -0,0 +1,85 @@
+commit 09b5076e4cd8338d3b45a760662fc7347f8d93bf
+Author: Mike Kershaw / Dragorn <dragorn@kismetwireless.net>
+Date: Tue Apr 23 10:33:07 2013 -0400
+
+ Ruby 1.9 removed '.' from search path, use require_relative; also remove
+ spurious 'break' in tx code
+
+diff --git a/ruby/kismet.rb b/ruby/kismet.rb
+index 5b18b23..7eab708 100755
+--- a/ruby/kismet.rb
++++ b/ruby/kismet.rb
+@@ -61,8 +61,6 @@ class Kismet
+ rescue Exception => e
+ pp e
+
+- break if @die
+-
+ puts "write error: #{$!}"
+ end
+ end
+diff --git a/ruby/kismet_addsource.rb b/ruby/kismet_addsource.rb
+index 057a514..d3ae968 100755
+--- a/ruby/kismet_addsource.rb
++++ b/ruby/kismet_addsource.rb
+@@ -20,7 +20,7 @@
+
+ require 'socket'
+ require 'time'
+-require 'kismet'
++require_relative 'kismet'
+ require 'pp'
+ require 'optparse'
+
+diff --git a/ruby/kismet_alert_syslog.rb b/ruby/kismet_alert_syslog.rb
+index 6969247..27373a9 100755
+--- a/ruby/kismet_alert_syslog.rb
++++ b/ruby/kismet_alert_syslog.rb
+@@ -20,7 +20,7 @@
+
+ require 'socket'
+ require 'time'
+-require 'kismet'
++require_relative 'kismet'
+ require 'pp'
+ require "getopt/long"
+ require 'syslog'
+diff --git a/ruby/kismet_list.rb b/ruby/kismet_list.rb
+index ec8f0f9..7adffe6 100755
+--- a/ruby/kismet_list.rb
++++ b/ruby/kismet_list.rb
+@@ -20,7 +20,7 @@
+
+ require 'socket'
+ require 'time'
+-require 'kismet'
++require_relative 'kismet'
+
+ def bssidcb(proto, fields)
+ puts "Kismet saw network #{fields['bssid']} manuf #{fields['manuf']} on channel #{fields['channel']}"
+diff --git a/ruby/kismet_shootout.rb b/ruby/kismet_shootout.rb
+index accda7e..931360f 100755
+--- a/ruby/kismet_shootout.rb
++++ b/ruby/kismet_shootout.rb
+@@ -21,7 +21,7 @@
+
+ require 'socket'
+ require 'time'
+-require 'kismet'
++require_relative 'kismet'
+ require 'pp'
+ require 'optparse'
+
+diff --git a/ruby/kismet_sql.rb b/ruby/kismet_sql.rb
+index 9fe581d..b878979 100755
+--- a/ruby/kismet_sql.rb
++++ b/ruby/kismet_sql.rb
+@@ -22,7 +22,7 @@
+
+ require 'socket'
+ require 'time'
+-require 'kismet'
++require_relative 'kismet'
+ require 'pp'
+ require "getopt/long"
+ require "sqlite3"
diff --git a/net-wireless/kismet/files/update-kismet_shootout.patch b/net-wireless/kismet/files/update-kismet_shootout.patch
new file mode 100644
index 000000000000..57ff69f7bec2
--- /dev/null
+++ b/net-wireless/kismet/files/update-kismet_shootout.patch
@@ -0,0 +1,103 @@
+From 0ee73bd14c71e44ce53bc1016b871dcb6965e443 Mon Sep 17 00:00:00 2001
+From: "Rick Farina (Zero_Chaos)" <zerochaos@gentoo.org>
+Date: Tue, 17 Mar 2015 12:57:16 -0400
+Subject: [PATCH] update kismet_shootout
+
+make a little more detailed, 100.00 instead of 100.
+also extend space for name now that wlan0mon is a common interface name
+---
+ ruby/kismet_shootout.rb | 30 +++++++++++++++++++++++-------
+ 1 file changed, 23 insertions(+), 7 deletions(-)
+
+diff --git a/ruby/kismet_shootout.rb b/ruby/kismet_shootout.rb
+index 931360f..61f70b0 100755
+--- a/ruby/kismet_shootout.rb
++++ b/ruby/kismet_shootout.rb
+@@ -48,7 +48,7 @@ $lines_per_header = 10
+ $num_printed = 10
+
+ # output type (std, pretty, csv)
+-$output_type = "std"
++$output_type = "pretty"
+
+ def sourcecb(proto, fields)
+ if fields["error"] != "0"
+@@ -102,11 +102,11 @@ def sourcecb(proto, fields)
+ hstr = ""
+
+ if $output_type == "pretty"
+- hstr = sprintf("%s %6.6s %5.5s %8.8s %4.4s", hstr, "", "PPS", "Packets", "Pcnt")
++ hstr = sprintf("%s %8.8s %5.5s %8.8s %7.7s", hstr, "Name", "PPS", "Packets", "Percent")
+
+ else
+ $cards.each { |c|
+- hstr = sprintf("%s %6.6s %5.5s %8.8s %4.4s", hstr, c, "PPS", "Total", "Pcnt")
++ hstr = sprintf("%s %8.8s %5.5s %8.8s %7.7s", hstr, c, "PPS", "Total", "Percent")
+ }
+ end
+
+@@ -141,7 +141,7 @@ def sourcecb(proto, fields)
+ $card_records.each { |cr|
+ cr[1]["printed"] = 1
+
+- printf(" %6.6s %5.5s %8.8s %3d%%\n", cr[1]["interface"], cr[1]["packets"] - cr[1]["last_packets"], cr[1]["packets"], (cr[1]["packets"].to_f / best.to_f) * 100)
++ printf(" %8.8s %5.5s %8.8s %6.2f%%\n", cr[1]["interface"], cr[1]["packets"] - cr[1]["last_packets"], cr[1]["packets"], (cr[1]["packets"].to_f / best.to_f) * 100)
+ }
+
+ t = Time.now.to_i - $start_time
+@@ -163,7 +163,7 @@ def sourcecb(proto, fields)
+ tu += "#{t}s"
+ end
+
+- printf(" %6.6s %5.5s %8.8s %4.4s %6.6s %6.6s\n", "", "", "", "", total - lasttotal, tu)
++ printf(" %8.8s %5.5s %8.8s %7.7s %6.6s %6.6s\n", "", "", "", "", total - lasttotal, tu)
+ else
+ $card_records.each { |cr|
+ cr[1]["printed"] = 1
+@@ -171,7 +171,7 @@ def sourcecb(proto, fields)
+ cname = ""
+ cname = cr[1]["interface"] if $output_type == "pretty"
+
+- str = sprintf("%s %6.6s %5.5s %8.8s %3d%%", str, cname, cr[1]["packets"] - cr[1]["last_packets"], cr[1]["packets"], (cr[1]["packets"].to_f / best.to_f) * 100)
++ str = sprintf("%s %8.8s %5.5s %8.8s %6.2f%%", str, cname, cr[1]["packets"] - cr[1]["last_packets"], cr[1]["packets"], (cr[1]["packets"].to_f / best.to_f) * 100)
+ }
+
+ t = Time.now.to_i - $start_time
+@@ -282,10 +282,18 @@ OptionParser.new do |opts|
+ options[:channel] = c
+ end
+
+- opts.on("--pretty", "Format output with pretty ANSI codes") do
++ opts.on("--pretty", "Format output with pretty ANSI codes (default)") do
+ options[:pretty] = true
+ end
+
++ opts.on("--std", "Do not format output with pretty ANSI codes") do
++ options[:std] = true
++ end
++
++ #opts.on("--csv", "Format output as comma separated values") do
++ # options[:csv] = true
++ #end
++
+ end.parse!
+
+ if options[:host]
+@@ -315,6 +323,14 @@ if options[:pretty]
+ $output_type = "pretty"
+ end
+
++if options[:std]
++ $output_type = "std"
++end
++
++if options[:csv]
++ $output_type = "csv"
++end
++
+ $cards = ARGV
+
+ puts "INFO: Kismet NIC Shootout"
+--
+2.0.5
+
diff --git a/net-wireless/kismet/files/use-hostname-by-default.patch b/net-wireless/kismet/files/use-hostname-by-default.patch
new file mode 100644
index 000000000000..0f867da10d27
--- /dev/null
+++ b/net-wireless/kismet/files/use-hostname-by-default.patch
@@ -0,0 +1,29 @@
+diff -ruN kismet-2011-03-R2.orig/conf/kismet.conf.in kismet-2011-03-R2/conf/kismet.conf.in
+--- kismet-2011-03-R2.orig/conf/kismet.conf.in 2012-05-22 21:33:23.371718460 -0500
++++ kismet-2011-03-R2/conf/kismet.conf.in 2012-05-22 21:43:08.641691490 -0500
+@@ -7,7 +7,8 @@
+ version=2009-newcore
+
+ # Name of server (Purely for organizational purposes)
+-servername=Kismet_2009
++# If commented out, defaults to host name of system
++#servername=Kismet_Server
+
+ # Prefix of where we log (as used in the logtemplate later)
+ # logprefix=/some/path/to/logs
+diff -ruN kismet-2011-03-R2.orig/kismet_server.cc kismet-2011-03-R2/kismet_server.cc
+--- kismet-2011-03-R2.orig/kismet_server.cc 2011-03-03 23:34:42.000000000 -0600
++++ kismet-2011-03-R2/kismet_server.cc 2012-05-22 21:42:31.319693185 -0500
+@@ -897,7 +897,11 @@
+ }
+
+ if (conf->FetchOpt("servername") == "") {
+- globalregistry->servername = "Kismet";
++ char hostname[64];
++ if (gethostname(hostname, 64) < 0)
++ globalregistry->servername = "Kismet";
++ else
++ globalregistry->servername = string(hostname);
+ } else {
+ globalregistry->servername = MungeToPrintable(conf->FetchOpt("servername"));
+ }
diff --git a/net-wireless/kismet/kismet-2013.03.1-r2.ebuild b/net-wireless/kismet/kismet-2013.03.1-r2.ebuild
new file mode 100644
index 000000000000..5854ab862b59
--- /dev/null
+++ b/net-wireless/kismet/kismet-2013.03.1-r2.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools eutils multilib user
+
+MY_P=${P/\./-}
+MY_P=${MY_P/./-R}
+S=${WORKDIR}
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://www.kismetwireless.net/${PN}.git"
+ SRC_URI=""
+ inherit git-2
+ KEYWORDS=""
+else
+ SRC_URI="http://www.kismetwireless.net/code/${MY_P}.tar.gz"
+ KEYWORDS="amd64 arm ppc x86"
+fi
+
+DESCRIPTION="IEEE 802.11 wireless LAN sniffer"
+HOMEPAGE="http://www.kismetwireless.net/"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+IUSE="+client +pcre speech +plugin-autowep +plugin-btscan plugin-dot15d4 +plugin-ptw +plugin-spectools +plugin-syslog +ruby selinux +suid"
+
+CDEPEND="net-wireless/wireless-tools
+ kernel_linux? ( sys-libs/libcap
+ dev-libs/libnl:3
+ net-libs/libpcap
+ )
+ pcre? ( dev-libs/libpcre )
+ suid? ( sys-libs/libcap )
+ client? ( sys-libs/ncurses )
+ !arm? ( speech? ( app-accessibility/flite ) )
+ ruby? ( dev-lang/ruby:* )
+ plugin-btscan? ( net-wireless/bluez )
+ plugin-dot15d4? ( virtual/libusb:0 )
+ plugin-spectools? ( net-wireless/spectools )
+"
+
+DEPEND="${CDEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-kismet )
+"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-tinfo.patch
+ epatch "${FILESDIR}"/ruby19_fixes.patch
+ epatch "${FILESDIR}"/update-kismet_shootout.patch
+ mv configure.in configure.ac
+
+ sed -i -e "s:^\(logtemplate\)=\(.*\):\1=/tmp/\2:" \
+ conf/kismet.conf.in || die
+
+ # Don't strip and set correct mangrp
+ sed -i -e 's| -s||g' \
+ -e 's|@mangrp@|root|g' Makefile.in || die
+
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable client) \
+ $(use_enable pcre)
+}
+
+src_compile() {
+ emake
+
+ if use plugin-autowep; then
+ cd "${S}"/restricted-plugin-autowep
+ KIS_SRC_DIR="${S}" emake
+ fi
+ if use plugin-btscan; then
+ cd "${S}"/plugin-btscan
+ KIS_SRC_DIR="${S}" emake
+ fi
+ if use plugin-dot15d4; then
+ cd "${S}"/plugin-dot15d4
+ KIS_SRC_DIR="${S}" emake
+ fi
+ if use plugin-ptw; then
+ cd "${S}"/restricted-plugin-ptw
+ KIS_SRC_DIR="${S}" emake
+ fi
+ if use plugin-spectools; then
+ cd "${S}"/plugin-spectools
+ KIS_SRC_DIR="${S}" emake
+ fi
+ if use plugin-syslog; then
+ cd "${S}"/plugin-syslog
+ KIS_SRC_DIR="${S}" emake
+ fi
+}
+
+src_install() {
+ if use plugin-autowep; then
+ cd "${S}"/restricted-plugin-autowep
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use plugin-btscan; then
+ cd "${S}"/plugin-btscan
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use plugin-dot15d4; then
+ cd "${S}"/plugin-dot15d4
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use plugin-ptw; then
+ cd "${S}"/restricted-plugin-ptw
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use plugin-spectools; then
+ cd "${S}"/plugin-spectools
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use plugin-syslog; then
+ cd "${S}"/plugin-syslog
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use ruby; then
+ cd "${S}"/ruby
+ dobin *.rb
+ fi
+
+ cd "${S}"
+ emake DESTDIR="${D}" commoninstall
+
+ ##dragorn would prefer I set fire to my head than do this, but it works
+ ##all external kismet plugins (read: kismet-ubertooth) must be rebuilt when kismet is
+ ##is there an automatic way to force this?
+ # install headers for external plugins
+ insinto /usr/include/kismet
+ doins *.h
+ doins Makefile.inc
+ #todo write a plugin finder that tells you what needs to be rebuilt when kismet is updated, etc
+
+ dodoc CHANGELOG RELEASENOTES.txt README* docs/DEVEL.client docs/README.newcore
+ newinitd "${FILESDIR}"/${PN}.initd kismet
+ newconfd "${FILESDIR}"/${PN}.confd kismet
+
+ insinto /etc
+ doins conf/kismet{,_drone}.conf
+
+ if use suid; then
+ dobin kismet_capture
+ fi
+}
+
+pkg_preinst() {
+ if use suid; then
+ enewgroup kismet
+ fowners root:kismet /usr/bin/kismet_capture
+ # Need to set the permissions after chowning.
+ # See chown(2)
+ fperms 4550 /usr/bin/kismet_capture
+ elog "Kismet has been installed with a setuid-root helper binary"
+ elog "to enable minimal-root operation. Users need to be part of"
+ elog "the 'kismet' group to perform captures from physical devices."
+ fi
+ if ! use suid; then
+ ewarn "It is highly discouraged to run a sniffer as root,"
+ ewarn "Please consider enabling the suid use flag and adding"
+ ewarn "your user to the kismet group."
+ fi
+}
diff --git a/net-wireless/kismet/kismet-9999.ebuild b/net-wireless/kismet/kismet-9999.ebuild
new file mode 100644
index 000000000000..629f220cbdd6
--- /dev/null
+++ b/net-wireless/kismet/kismet-9999.ebuild
@@ -0,0 +1,167 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib user
+
+MY_P=${P/\./-}
+MY_P=${MY_P/./-R}
+S=${WORKDIR}/${MY_P}
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://www.kismetwireless.net/${PN}.git"
+ SRC_URI=""
+ inherit git-2
+ KEYWORDS=""
+else
+ SRC_URI="http://www.kismetwireless.net/code/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~x86"
+fi
+
+DESCRIPTION="IEEE 802.11 wireless LAN sniffer"
+HOMEPAGE="http://www.kismetwireless.net/"
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+IUSE="+client +pcre speech +plugin-autowep +plugin-btscan plugin-dot15d4 +plugin-ptw +plugin-spectools +plugin-syslog +ruby selinux +suid"
+
+CDEPEND="net-wireless/wireless-tools
+ kernel_linux? ( sys-libs/libcap
+ dev-libs/libnl:3
+ net-libs/libpcap
+ )
+ pcre? ( dev-libs/libpcre )
+ suid? ( sys-libs/libcap )
+ client? ( sys-libs/ncurses )
+ !arm? ( speech? ( app-accessibility/flite ) )
+ ruby? ( dev-lang/ruby:* )
+ plugin-btscan? ( net-wireless/bluez )
+ plugin-dot15d4? ( virtual/libusb:0 )
+ plugin-spectools? ( net-wireless/spectools )
+"
+
+DEPEND="${CDEPEND}
+ virtual/pkgconfig
+"
+
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-kismet )
+"
+
+src_prepare() {
+ sed -i -e "s:^\(logtemplate\)=\(.*\):\1=/tmp/\2:" \
+ conf/kismet.conf.in
+
+ # Don't strip and set correct mangrp
+ sed -i -e 's| -s||g' \
+ -e 's|@mangrp@|root|g' Makefile.in
+}
+
+src_configure() {
+ econf \
+ $(use_enable client) \
+ $(use_enable pcre)
+}
+
+src_compile() {
+ emake
+
+ if use plugin-autowep; then
+ cd "${S}"/restricted-plugin-autowep
+ KIS_SRC_DIR="${S}" emake
+ fi
+ if use plugin-btscan; then
+ cd "${S}"/plugin-btscan
+ KIS_SRC_DIR="${S}" emake
+ fi
+ if use plugin-dot15d4; then
+ cd "${S}"/plugin-dot15d4
+ KIS_SRC_DIR="${S}" emake
+ fi
+ if use plugin-ptw; then
+ cd "${S}"/restricted-plugin-ptw
+ KIS_SRC_DIR="${S}" emake
+ fi
+ if use plugin-spectools; then
+ cd "${S}"/plugin-spectools
+ KIS_SRC_DIR="${S}" emake
+ fi
+ if use plugin-syslog; then
+ cd "${S}"/plugin-syslog
+ KIS_SRC_DIR="${S}" emake
+ fi
+}
+
+src_install() {
+ if use plugin-autowep; then
+ cd "${S}"/restricted-plugin-autowep
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use plugin-btscan; then
+ cd "${S}"/plugin-btscan
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use plugin-dot15d4; then
+ cd "${S}"/plugin-dot15d4
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use plugin-ptw; then
+ cd "${S}"/restricted-plugin-ptw
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use plugin-spectools; then
+ cd "${S}"/plugin-spectools
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use plugin-syslog; then
+ cd "${S}"/plugin-syslog
+ KIS_SRC_DIR="${S}" emake DESTDIR="${ED}" LIBDIR="$(get_libdir)" install
+ fi
+ if use ruby; then
+ cd "${S}"/ruby
+ dobin *.rb
+ fi
+
+ cd "${S}"
+ emake DESTDIR="${D}" commoninstall
+
+ ##dragorn would prefer I set fire to my head than do this, but it works
+ ##all external kismet plugins (read: kismet-ubertooth) must be rebuilt when kismet is
+ ##is there an automatic way to force this?
+ # install headers for external plugins
+ insinto /usr/include/kismet
+ doins *.h
+ doins Makefile.inc
+ #todo write a plugin finder that tells you what needs to be rebuilt when kismet is updated, etc
+
+ dodoc CHANGELOG RELEASENOTES.txt README* docs/DEVEL.client docs/README.newcore
+ newinitd "${FILESDIR}"/${PN}.initd kismet
+ newconfd "${FILESDIR}"/${PN}.confd kismet
+
+ insinto /etc
+ doins conf/kismet{,_drone}.conf
+
+ if use suid; then
+ dobin kismet_capture
+ fi
+}
+
+pkg_preinst() {
+ if use suid; then
+ enewgroup kismet
+ fowners root:kismet /usr/bin/kismet_capture
+ # Need to set the permissions after chowning.
+ # See chown(2)
+ fperms 4550 /usr/bin/kismet_capture
+ elog "Kismet has been installed with a setuid-root helper binary"
+ elog "to enable minimal-root operation. Users need to be part of"
+ elog "the 'kismet' group to perform captures from physical devices."
+ fi
+ if ! use suid; then
+ ewarn "It is highly discouraged to run a sniffer as root,"
+ ewarn "Please consider enabling the suid use flag and adding"
+ ewarn "your user to the kismet group."
+ fi
+}
diff --git a/net-wireless/kismet/metadata.xml b/net-wireless/kismet/metadata.xml
new file mode 100644
index 000000000000..47f11248f28a
--- /dev/null
+++ b/net-wireless/kismet/metadata.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ <description>maintainer</description>
+ </maintainer>
+ <maintainer>
+ <email>steev@gentoo.org</email>
+ <name>Steev Klimaszewski</name>
+ <description>co-maintainer, CC him on bugs</description>
+ </maintainer>
+ <use>
+ <flag name="client">Build the ncurses-based user interface</flag>
+ <flag name="suid">
+ Install a setuid root helper binary with limited functionality;
+ this allows running kismet as a normal user, significantly
+ reducing security risks
+ </flag>
+ <flag name="pcre">Build with pcre support</flag>
+ <flag name="speech">Audio support using <pkg>app-accessibility/flite</pkg></flag>
+ <flag name="plugin-autowep">Build the autowep plugin</flag>
+ <flag name="plugin-btscan">Build the btscan plugin</flag>
+ <flag name="plugin-dot15d4">Build the dot15d4 plugin</flag>
+ <flag name="plugin-ptw">Build the ptw plugin</flag>
+ <flag name="plugin-spectools">Build the spectools plugin. This uses <pkg>net-wireless/spectools</pkg></flag>
+ <flag name="plugin-syslog">Build the syslog plugin.</flag>
+ <flag name="ruby">Build extras which are written in ruby, example plugins and the like.</flag>
+ </use>
+</pkgmetadata>
diff --git a/net-wireless/lorcon-old/lorcon-old-9999.ebuild b/net-wireless/lorcon-old/lorcon-old-9999.ebuild
new file mode 100644
index 000000000000..bd130bff231a
--- /dev/null
+++ b/net-wireless/lorcon-old/lorcon-old-9999.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs eutils subversion
+
+DESCRIPTION="A generic library for injecting 802.11 frames"
+HOMEPAGE="http://802.11ninja.net/lorcon"
+SRC_URI=""
+ESVN_REPO_URI="http://802.11ninja.net/svn/lorcon/branch/lorcon-old"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND="dev-libs/libnl
+ net-libs/libpcap"
+RDEPEND="${DEPEND}"
+
+src_install() {
+ DESTDIR="${D}" emake install
+ # rename manpage to avoid conflict with lorcon
+ mv "${D}"/usr/share/man/man3/lorcon.3 "${D}"/usr/share/man/man3/lorcon-old.3
+}
diff --git a/net-wireless/lorcon-old/metadata.xml b/net-wireless/lorcon-old/metadata.xml
new file mode 100644
index 000000000000..5fcbf8e1851a
--- /dev/null
+++ b/net-wireless/lorcon-old/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>zerochaos@gentoo.org</email>
+<name>Rick Farina</name>
+</maintainer>
+<longdescription lang="en">
+</longdescription>
+</pkgmetadata>
+
diff --git a/net-wireless/lorcon/Manifest b/net-wireless/lorcon/Manifest
new file mode 100644
index 000000000000..1f0b02401029
--- /dev/null
+++ b/net-wireless/lorcon/Manifest
@@ -0,0 +1 @@
+DIST lorcon-0.0_p20130212.tar.xz 956024 SHA256 1266bbd53e483456aca3031a49ea47fe3bd004e3e109b86a61672c881801742b SHA512 d7c33d9e8b5678e0b8b9513b6a132ab1b13045503e884d077474745a4a9731fa609ba8dc9c35f344ad93b65eb0ddc038919a6349d32187b6c6c92a020155b34f WHIRLPOOL b5e6af7977fd742b34a0f394eb443cc1aca95f9c44177b7353e8a19e1593bca4ccf7e72cf1fc2f05eb4fc5d77303bb162440462957fcc37a7f8a69443f1f4df5
diff --git a/net-wireless/lorcon/lorcon-0.0_p20130212-r1.ebuild b/net-wireless/lorcon/lorcon-0.0_p20130212-r1.ebuild
new file mode 100644
index 000000000000..751b5515da44
--- /dev/null
+++ b/net-wireless/lorcon/lorcon-0.0_p20130212-r1.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+
+USE_RUBY="ruby19"
+RUBY_OPTIONAL=yes
+
+inherit distutils-r1 ruby-ng
+
+DESCRIPTION="A generic library for injecting 802.11 frames"
+HOMEPAGE="http://802.11ninja.net/lorcon"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://code.google.com/p/lorcon/"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="http://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="amd64 arm ppc x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="python ruby"
+
+DEPEND="ruby? ( $(ruby_implementations_depend) )
+ python? ( ${PYTHON_DEPS} )
+ dev-libs/libnl
+ net-libs/libpcap"
+RDEPEND="${DEPEND}"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+S="${WORKDIR}"/${P}
+
+pkg_setup() {
+ use ruby && ruby-ng_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == "9999" ]] ; then
+ git-r3_src_unpack
+ cp -R "${S}/" "${WORKDIR}/all"
+ fi
+ default_src_unpack
+ #ruby-ng_src_unpack doesn't seem to like mixing with git so we just copy things above
+ use ruby && ruby-ng_src_unpack
+}
+
+src_prepare() {
+ sed -i 's#<lorcon2/lorcon.h>#"../lorcon.h"#' pylorcon2/PyLorcon2.c
+ sed -i 's#find_library("orcon2", "lorcon_list_drivers", "lorcon2/lorcon.h") and ##' ruby-lorcon/extconf.rb
+ sed -i 's#<lorcon2/lorcon.h>#"../lorcon.h"#' ruby-lorcon/Lorcon2.h
+ use python && distutils-r1_src_prepare
+ use ruby && ruby-ng_src_prepare
+}
+
+src_configure() {
+ default_src_configure
+}
+
+src_compile() {
+ default_src_compile
+ use ruby && ruby-ng_src_compile
+ if use python; then
+ LDFLAGS+=" -L${S}/.libs/"
+ cd pylorcon2 || die
+ distutils-r1_src_compile
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${ED}" install
+ use ruby && ruby-ng_src_install
+ if use python; then
+ cd pylorcon2 || die
+ distutils-r1_src_install
+ fi
+}
+
+src_test() {
+ :
+}
+
+each_ruby_compile() {
+ sed -i "s#-I/usr/include/lorcon2#-I${WORKDIR}/${P}/ruby-lorcon -L${WORKDIR}/${P}/.libs#" ruby-lorcon/extconf.rb
+ "${RUBY}" -C ruby-lorcon extconf.rb || die
+ sed -i 's#<lorcon2/lorcon.h>#"../lorcon.h"#' ruby-lorcon/Lorcon2.h
+ sed -i "s#-L\.#-L. -L${WORKDIR}/${P}/.libs -lorcon2 #g" ruby-lorcon/Makefile || die
+ emake -C ruby-lorcon
+}
+
+each_ruby_install() {
+ DESTDIR="${ED}" emake -C ruby-lorcon install
+}
diff --git a/net-wireless/lorcon/lorcon-9999.ebuild b/net-wireless/lorcon/lorcon-9999.ebuild
new file mode 100644
index 000000000000..b518014d0941
--- /dev/null
+++ b/net-wireless/lorcon/lorcon-9999.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+
+USE_RUBY="ruby19 ruby21"
+RUBY_OPTIONAL=yes
+
+inherit distutils-r1 ruby-ng
+
+DESCRIPTION="A generic library for injecting 802.11 frames"
+HOMEPAGE="http://802.11ninja.net/lorcon"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://code.google.com/p/lorcon/"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="http://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="python ruby"
+
+DEPEND="ruby? ( $(ruby_implementations_depend) )
+ python? ( ${PYTHON_DEPS} )
+ dev-libs/libnl
+ net-libs/libpcap"
+RDEPEND="${DEPEND}"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+S="${WORKDIR}"/${P}
+
+pkg_setup() {
+ use ruby && ruby-ng_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == "9999" ]] ; then
+ git-r3_src_unpack
+ cp -R "${S}/" "${WORKDIR}/all"
+ fi
+ default_src_unpack
+ #ruby-ng_src_unpack doesn't seem to like mixing with git so we just copy things above
+ use ruby && ruby-ng_src_unpack
+}
+
+src_prepare() {
+ sed -i 's#<lorcon2/lorcon.h>#"../lorcon.h"#' pylorcon2/PyLorcon2.c
+ sed -i 's#find_library("orcon2", "lorcon_list_drivers", "lorcon2/lorcon.h") and ##' ruby-lorcon/extconf.rb
+ sed -i 's#<lorcon2/lorcon.h>#"../lorcon.h"#' ruby-lorcon/Lorcon2.h
+ use python && distutils-r1_src_prepare
+ use ruby && ruby-ng_src_prepare
+}
+
+src_configure() {
+ default_src_configure
+}
+
+src_compile() {
+ default_src_compile
+ use ruby && ruby-ng_src_compile
+ if use python; then
+ LDFLAGS+=" -L${S}/.libs/"
+ cd pylorcon2 || die
+ distutils-r1_src_compile
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${ED}" install
+ use ruby && ruby-ng_src_install
+ if use python; then
+ cd pylorcon2 || die
+ distutils-r1_src_install
+ fi
+}
+
+src_test() {
+ :
+}
+
+each_ruby_compile() {
+ sed -i "s#-I/usr/include/lorcon2#-I${WORKDIR}/${P}/ruby-lorcon -L${WORKDIR}/${P}/.libs#" ruby-lorcon/extconf.rb
+ "${RUBY}" -C ruby-lorcon extconf.rb || die
+ sed -i 's#<lorcon2/lorcon.h>#"../lorcon.h"#' ruby-lorcon/Lorcon2.h
+ sed -i "s#-L\.#-L. -L${WORKDIR}/${P}/.libs -lorcon2 #g" ruby-lorcon/Makefile || die
+ emake -C ruby-lorcon
+}
+
+each_ruby_install() {
+ DESTDIR="${ED}" emake -C ruby-lorcon install
+}
diff --git a/net-wireless/lorcon/metadata.xml b/net-wireless/lorcon/metadata.xml
new file mode 100644
index 000000000000..5fcbf8e1851a
--- /dev/null
+++ b/net-wireless/lorcon/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>zerochaos@gentoo.org</email>
+<name>Rick Farina</name>
+</maintainer>
+<longdescription lang="en">
+</longdescription>
+</pkgmetadata>
+
diff --git a/net-wireless/madwifi-ng-tools/Manifest b/net-wireless/madwifi-ng-tools/Manifest
new file mode 100644
index 000000000000..3ed33d1bce34
--- /dev/null
+++ b/net-wireless/madwifi-ng-tools/Manifest
@@ -0,0 +1,6 @@
+DIST madwifi-0.9.3.3.tar.bz2 3489995 SHA256 7e38cb26d5b001e9fb36f48aaefdeee10d1dc57c83e675e3bbd0f1807a3305b7
+DIST madwifi-0.9.4-r4119-20100201.tar.gz 3534053 SHA256 43d3295209941cad7c75831dc83dcc0d4223987830d2a4d1089b8f5fa6ad79b6
+DIST madwifi-0.9.4-r4133-20100621.tar.gz 3534852 SHA256 f19f2eea7561a8a50a8731407d959eaafe64cc39fa5a894cac7a62807382d606
+DIST madwifi-0.9.4-r4165-20110816.tar.gz 3534958 SHA256 4b4081f317013e568169d6d732a6158dbf392f43d3d26e52665f340e80993afc SHA512 86df881ded673c9555263c90b75ce80ef0f338f4bd0726726b60a783d44d5706d3fc3a9178dc310cc283d7ba9fbc7030b6d37794a741cad9fca65945a941f546 WHIRLPOOL c1e01e2bd78dfda076967645caaf7d0a6ea802b4fb995ad4fd167e1ca7b021e48fd75af3c08d7372343aa5d5ee211eaab18090f25f8bc013d19eab940b94d27e
+DIST madwifi-0.9.4-r4180-20120502.tar.gz 3534976 SHA256 fe1b9f934f3b01b86170e661565f201c4e18b50e826f86e68578b58aea93d080 SHA512 54dd572dd454997f0f0e462726f0fac9339e883c444cc586ed64a450d1ab314e2912d94f5859c5648f64b663f59caa24be7a1294c06907ca0089877768fbdf9f WHIRLPOOL 18ab6450ed7c7d3b57ec66e7da49aef1822b11f3d0614851d53a834c2581326a80a27b078a05d122d29554dc12369e4be18e3043eb731be633e64293032a7b4b
+DIST madwifi-0.9.4.tar.bz2 3485142 SHA256 2356ea8a1a00454c31b8bb9a587a474744c022eca61eae01f37ab3f9ce3186a0
diff --git a/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.3.3.ebuild b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.3.3.ebuild
new file mode 100644
index 000000000000..c0f5bc9e8b52
--- /dev/null
+++ b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.3.3.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit toolchain-funcs
+
+MY_P=${PN/-ng-tools/}-${PV}
+S=${WORKDIR}/${MY_P}/tools
+
+DESCRIPTION="Next Generation tools for configuration of Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="mirror://sourceforge/madwifi/madwifi-${PV}.tar.bz2"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+IUSE=""
+DEPEND=""
+RDEPEND="!net-wireless/madwifi-old-tools
+ ${DEPEND}"
+
+src_unpack() {
+ unpack ${A}
+
+ # format string fix from solar
+ #sed -i \
+# -e 's:err(1, ifr.ifr_name);:err(1, "%s", ifr.ifr_name);:g' \
+# ${S}/tools/athstats.c || die
+
+einfo "S=$S"
+einfo "PV=$PV"
+
+ sed -i \
+ -e "s:CC =.*:CC = $(tc-getCC):" \
+ -e "s:CFLAGS=:CFLAGS+=:" \
+ -e "s:LDFLAGS=:LDFLAGS+=:" \
+ "${S}"/Makefile || die
+}
+
+src_compile() {
+ emake || die "emake failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" BINDIR=/usr/bin MANDIR=/usr/share/man STRIP=echo \
+ install || die "emake install failed"
+
+ dodir /sbin
+ mv "${D}"/usr/bin/wlanconfig "${D}"/sbin
+
+ # install headers for use by
+ # net-wireless/wpa_supplicant and net-wireless/hostapd
+ cd "${S}"/..
+ insinto /usr/include/madwifi/include/
+ doins include/*.h
+ insinto /usr/include/madwifi/net80211
+ doins net80211/*.h
+}
+
+pkg_postinst() {
+ if [ -e "${ROOT}"/etc/udev/rules.d/65-madwifi.rules ]; then
+ ewarn
+ ewarn "The udev rules for creating interfaces (athX) are no longer needed."
+ ewarn
+ ewarn "You should manually remove the /etc/udev/rules.d/65-madwifi.rules file"
+ ewarn "and either run 'udevstart' or reboot for the changes to take effect."
+ ewarn
+ fi
+ einfo
+ einfo "If you use net-wireless/wpa_supplicant or net-wireless/hostapd with
+madwifi"
+ einfo "you should remerge them now."
+ einfo
+}
diff --git a/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4119.20100201.ebuild b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4119.20100201.ebuild
new file mode 100644
index 000000000000..a2c605814ed8
--- /dev/null
+++ b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4119.20100201.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit versionator toolchain-funcs
+
+MY_PN=${PN/-ng-tools/}
+MY_PV=$(get_version_component_range 1-3)
+MY_REV=$(get_version_component_range 4)
+MY_DATE=$(get_version_component_range 5)
+MY_P=${MY_PN}-${MY_PV}-r${MY_REV}-${MY_DATE}
+S=${WORKDIR}/${MY_P}/tools
+
+DESCRIPTION="Next Generation tools for configuration of Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="http://snapshots.madwifi-project.org/${MY_PN}-${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="!net-wireless/madwifi-old-tools"
+
+src_prepare() {
+ # format string fix from solar
+ #sed -i \
+# -e 's:err(1, ifr.ifr_name);:err(1, "%s", ifr.ifr_name);:g' \
+# ${S}/tools/athstats.c || die
+
+ sed -i \
+ -e "s:CC =.*:CC = $(tc-getCC):" \
+ -e "s:CFLAGS=:CFLAGS+=:" \
+ -e "s:LDFLAGS=:LDFLAGS+=:" \
+ "${S}"/Makefile || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" BINDIR=/usr/bin MANDIR=/usr/share/man STRIP=echo \
+ install || die "emake install failed"
+
+ dodir /sbin
+ mv "${D}"/usr/bin/wlanconfig "${D}"/sbin
+
+ # install headers for use by
+ # net-wireless/wpa_supplicant and net-wireless/hostapd
+ cd "${S}"/..
+ insinto /usr/include/madwifi/include/
+ doins include/*.h
+ insinto /usr/include/madwifi/net80211
+ doins net80211/*.h
+}
+
+pkg_postinst() {
+ if [ -e "${ROOT}"/etc/udev/rules.d/65-madwifi.rules ]; then
+ ewarn
+ ewarn "The udev rules for creating interfaces (athX) are no longer needed."
+ ewarn
+ ewarn "You should manually remove the /etc/udev/rules.d/65-madwifi.rules file"
+ ewarn "and either run 'udevstart' or reboot for the changes to take effect."
+ ewarn
+ fi
+ einfo
+ einfo "If you use net-wireless/wpa_supplicant or net-wireless/hostapd with madwifi"
+ einfo "you should remerge them now."
+ einfo
+}
diff --git a/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4133.20100621.ebuild b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4133.20100621.ebuild
new file mode 100644
index 000000000000..a4c401dde47f
--- /dev/null
+++ b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4133.20100621.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit versionator toolchain-funcs
+
+MY_PN=${PN/-ng-tools/}
+MY_PV=$(get_version_component_range 1-3)
+MY_REV=$(get_version_component_range 4)
+MY_DATE=$(get_version_component_range 5)
+MY_P=${MY_PN}-${MY_PV}-r${MY_REV}-${MY_DATE}
+S=${WORKDIR}/${MY_P}/tools
+
+DESCRIPTION="Next Generation tools for configuration of Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="http://snapshots.madwifi-project.org/${MY_PN}-${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="!net-wireless/madwifi-old-tools"
+
+src_prepare() {
+ # format string fix from solar
+ #sed -i \
+# -e 's:err(1, ifr.ifr_name);:err(1, "%s", ifr.ifr_name);:g' \
+# ${S}/tools/athstats.c || die
+
+ sed -i \
+ -e "s:CC =.*:CC = $(tc-getCC):" \
+ -e "s:CFLAGS=:CFLAGS+=:" \
+ -e "s:LDFLAGS=:LDFLAGS+=:" \
+ "${S}"/Makefile || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" BINDIR=/usr/bin MANDIR=/usr/share/man STRIP=echo \
+ install || die "emake install failed"
+
+ dodir /sbin
+ mv "${D}"/usr/bin/wlanconfig "${D}"/sbin
+
+ # install headers for use by
+ # net-wireless/wpa_supplicant and net-wireless/hostapd
+ cd "${S}"/..
+ insinto /usr/include/madwifi/include/
+ doins include/*.h
+ insinto /usr/include/madwifi/net80211
+ doins net80211/*.h
+}
+
+pkg_postinst() {
+ if [ -e "${ROOT}"/etc/udev/rules.d/65-madwifi.rules ]; then
+ ewarn
+ ewarn "The udev rules for creating interfaces (athX) are no longer needed."
+ ewarn
+ ewarn "You should manually remove the /etc/udev/rules.d/65-madwifi.rules file"
+ ewarn "and either run 'udevstart' or reboot for the changes to take effect."
+ ewarn
+ fi
+ einfo
+ einfo "If you use net-wireless/wpa_supplicant or net-wireless/hostapd with madwifi"
+ einfo "you should remerge them now."
+ einfo
+}
diff --git a/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4165.20110816.ebuild b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4165.20110816.ebuild
new file mode 100644
index 000000000000..8ebaca2b30a1
--- /dev/null
+++ b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4165.20110816.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit versionator toolchain-funcs
+
+MY_PN=${PN/-ng-tools/}
+MY_PV=$(get_version_component_range 1-3)
+MY_REV=$(get_version_component_range 4)
+MY_DATE=$(get_version_component_range 5)
+MY_P=${MY_PN}-${MY_PV}-r${MY_REV}-${MY_DATE}
+S=${WORKDIR}/${MY_P}/tools
+
+DESCRIPTION="Next Generation tools for configuration of Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="http://snapshots.madwifi-project.org/${MY_PN}-${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="!net-wireless/madwifi-old-tools"
+
+src_prepare() {
+ # format string fix from solar
+ #sed -i \
+# -e 's:err(1, ifr.ifr_name);:err(1, "%s", ifr.ifr_name);:g' \
+# ${S}/tools/athstats.c || die
+
+ sed -i \
+ -e "s:CC =.*:CC = $(tc-getCC):" \
+ -e "s:CFLAGS=:CFLAGS+=:" \
+ -e "s:LDFLAGS=:LDFLAGS+=:" \
+ "${S}"/Makefile || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" BINDIR=/usr/bin MANDIR=/usr/share/man STRIP=echo \
+ install || die "emake install failed"
+
+ dodir /sbin
+ mv "${D}"/usr/bin/wlanconfig "${D}"/sbin
+
+ # install headers for use by
+ # net-wireless/wpa_supplicant and net-wireless/hostapd
+ cd "${S}"/..
+ insinto /usr/include/madwifi/include/
+ doins include/*.h
+ insinto /usr/include/madwifi/net80211
+ doins net80211/*.h
+}
+
+pkg_postinst() {
+ if [ -e "${ROOT}"/etc/udev/rules.d/65-madwifi.rules ]; then
+ ewarn
+ ewarn "The udev rules for creating interfaces (athX) are no longer needed."
+ ewarn
+ ewarn "You should manually remove the /etc/udev/rules.d/65-madwifi.rules file"
+ ewarn "and either run 'udevstart' or reboot for the changes to take effect."
+ ewarn
+ fi
+ einfo
+ einfo "If you use net-wireless/wpa_supplicant or net-wireless/hostapd with madwifi"
+ einfo "you should remerge them now."
+ einfo
+}
diff --git a/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4180.20120502.ebuild b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4180.20120502.ebuild
new file mode 100644
index 000000000000..8ebaca2b30a1
--- /dev/null
+++ b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.4180.20120502.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit versionator toolchain-funcs
+
+MY_PN=${PN/-ng-tools/}
+MY_PV=$(get_version_component_range 1-3)
+MY_REV=$(get_version_component_range 4)
+MY_DATE=$(get_version_component_range 5)
+MY_P=${MY_PN}-${MY_PV}-r${MY_REV}-${MY_DATE}
+S=${WORKDIR}/${MY_P}/tools
+
+DESCRIPTION="Next Generation tools for configuration of Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="http://snapshots.madwifi-project.org/${MY_PN}-${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="!net-wireless/madwifi-old-tools"
+
+src_prepare() {
+ # format string fix from solar
+ #sed -i \
+# -e 's:err(1, ifr.ifr_name);:err(1, "%s", ifr.ifr_name);:g' \
+# ${S}/tools/athstats.c || die
+
+ sed -i \
+ -e "s:CC =.*:CC = $(tc-getCC):" \
+ -e "s:CFLAGS=:CFLAGS+=:" \
+ -e "s:LDFLAGS=:LDFLAGS+=:" \
+ "${S}"/Makefile || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" BINDIR=/usr/bin MANDIR=/usr/share/man STRIP=echo \
+ install || die "emake install failed"
+
+ dodir /sbin
+ mv "${D}"/usr/bin/wlanconfig "${D}"/sbin
+
+ # install headers for use by
+ # net-wireless/wpa_supplicant and net-wireless/hostapd
+ cd "${S}"/..
+ insinto /usr/include/madwifi/include/
+ doins include/*.h
+ insinto /usr/include/madwifi/net80211
+ doins net80211/*.h
+}
+
+pkg_postinst() {
+ if [ -e "${ROOT}"/etc/udev/rules.d/65-madwifi.rules ]; then
+ ewarn
+ ewarn "The udev rules for creating interfaces (athX) are no longer needed."
+ ewarn
+ ewarn "You should manually remove the /etc/udev/rules.d/65-madwifi.rules file"
+ ewarn "and either run 'udevstart' or reboot for the changes to take effect."
+ ewarn
+ fi
+ einfo
+ einfo "If you use net-wireless/wpa_supplicant or net-wireless/hostapd with madwifi"
+ einfo "you should remerge them now."
+ einfo
+}
diff --git a/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.ebuild b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.ebuild
new file mode 100644
index 000000000000..c0f5bc9e8b52
--- /dev/null
+++ b/net-wireless/madwifi-ng-tools/madwifi-ng-tools-0.9.4.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit toolchain-funcs
+
+MY_P=${PN/-ng-tools/}-${PV}
+S=${WORKDIR}/${MY_P}/tools
+
+DESCRIPTION="Next Generation tools for configuration of Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="mirror://sourceforge/madwifi/madwifi-${PV}.tar.bz2"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+IUSE=""
+DEPEND=""
+RDEPEND="!net-wireless/madwifi-old-tools
+ ${DEPEND}"
+
+src_unpack() {
+ unpack ${A}
+
+ # format string fix from solar
+ #sed -i \
+# -e 's:err(1, ifr.ifr_name);:err(1, "%s", ifr.ifr_name);:g' \
+# ${S}/tools/athstats.c || die
+
+einfo "S=$S"
+einfo "PV=$PV"
+
+ sed -i \
+ -e "s:CC =.*:CC = $(tc-getCC):" \
+ -e "s:CFLAGS=:CFLAGS+=:" \
+ -e "s:LDFLAGS=:LDFLAGS+=:" \
+ "${S}"/Makefile || die
+}
+
+src_compile() {
+ emake || die "emake failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" BINDIR=/usr/bin MANDIR=/usr/share/man STRIP=echo \
+ install || die "emake install failed"
+
+ dodir /sbin
+ mv "${D}"/usr/bin/wlanconfig "${D}"/sbin
+
+ # install headers for use by
+ # net-wireless/wpa_supplicant and net-wireless/hostapd
+ cd "${S}"/..
+ insinto /usr/include/madwifi/include/
+ doins include/*.h
+ insinto /usr/include/madwifi/net80211
+ doins net80211/*.h
+}
+
+pkg_postinst() {
+ if [ -e "${ROOT}"/etc/udev/rules.d/65-madwifi.rules ]; then
+ ewarn
+ ewarn "The udev rules for creating interfaces (athX) are no longer needed."
+ ewarn
+ ewarn "You should manually remove the /etc/udev/rules.d/65-madwifi.rules file"
+ ewarn "and either run 'udevstart' or reboot for the changes to take effect."
+ ewarn
+ fi
+ einfo
+ einfo "If you use net-wireless/wpa_supplicant or net-wireless/hostapd with
+madwifi"
+ einfo "you should remerge them now."
+ einfo
+}
diff --git a/net-wireless/madwifi-ng-tools/metadata.xml b/net-wireless/madwifi-ng-tools/metadata.xml
new file mode 100644
index 000000000000..0cd29efddfd0
--- /dev/null
+++ b/net-wireless/madwifi-ng-tools/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">madwifi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/madwifi-ng/Manifest b/net-wireless/madwifi-ng/Manifest
new file mode 100644
index 000000000000..7558ed0688e1
--- /dev/null
+++ b/net-wireless/madwifi-ng/Manifest
@@ -0,0 +1,6 @@
+DIST madwifi-0.9.3.3.tar.bz2 3489995 SHA256 7e38cb26d5b001e9fb36f48aaefdeee10d1dc57c83e675e3bbd0f1807a3305b7
+DIST madwifi-0.9.4-r4119-20100201.tar.gz 3534053 SHA256 43d3295209941cad7c75831dc83dcc0d4223987830d2a4d1089b8f5fa6ad79b6
+DIST madwifi-0.9.4-r4133-20100621.tar.gz 3534852 SHA256 f19f2eea7561a8a50a8731407d959eaafe64cc39fa5a894cac7a62807382d606
+DIST madwifi-0.9.4-r4165-20110816.tar.gz 3534958 SHA256 4b4081f317013e568169d6d732a6158dbf392f43d3d26e52665f340e80993afc
+DIST madwifi-0.9.4-r4180-20120502.tar.gz 3534976 SHA256 fe1b9f934f3b01b86170e661565f201c4e18b50e826f86e68578b58aea93d080
+DIST madwifi-0.9.4.tar.bz2 3485142 SHA256 2356ea8a1a00454c31b8bb9a587a474744c022eca61eae01f37ab3f9ce3186a0
diff --git a/net-wireless/madwifi-ng/files/madwifi-dfs-ieee80211-skb-update.patch b/net-wireless/madwifi-ng/files/madwifi-dfs-ieee80211-skb-update.patch
new file mode 100644
index 000000000000..af14023b8c7c
--- /dev/null
+++ b/net-wireless/madwifi-ng/files/madwifi-dfs-ieee80211-skb-update.patch
@@ -0,0 +1,12 @@
+--- a/net80211/ieee80211_linux.h 2008-05-09 01:15:01 +0400
++++ b/net80211/ieee80211_linux.h 2008-05-11 02:26:35 +0400
+@@ -315,6 +315,9 @@ typedef spinlock_t acl_lock_t;
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14)
+ #define __skb_append(a,b,c) __skb_append(a, b)
+ #endif
++#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,25)
++#define __skb_append(a,b,c) __skb_queue_after(c,a,b)
++#endif
+
+ /*
+ * Per-node power-save queue definitions. Beware of control
diff --git a/net-wireless/madwifi-ng/files/madwifi-ng-0.9.3-uudecode-gcda-fix.patch b/net-wireless/madwifi-ng/files/madwifi-ng-0.9.3-uudecode-gcda-fix.patch
new file mode 100644
index 000000000000..686958cc1399
--- /dev/null
+++ b/net-wireless/madwifi-ng/files/madwifi-ng-0.9.3-uudecode-gcda-fix.patch
@@ -0,0 +1,12 @@
+Index: ath_hal/Makefile
+===================================================================
+--- ath_hal/Makefile (revision 1648)
++++ ath_hal/Makefile (working copy)
+@@ -61,6 +61,7 @@
+ ath_hal-objs := ah_osdep.o ${TARGET}.hal.o
+
+ hostprogs-y := uudecode
++uudecode-objs := uudecode.o
+
+ # For older 2.6 kernels
+ host-progs := $(hostprogs-y)
diff --git a/net-wireless/madwifi-ng/files/madwifi-ng-0.9.4-2.6.27-r3811.patch b/net-wireless/madwifi-ng/files/madwifi-ng-0.9.4-2.6.27-r3811.patch
new file mode 100644
index 000000000000..b02795f5f76a
--- /dev/null
+++ b/net-wireless/madwifi-ng/files/madwifi-ng-0.9.4-2.6.27-r3811.patch
@@ -0,0 +1,190 @@
+=== modified file 'net80211/ieee80211_wireless.c'
+--- net80211/ieee80211_wireless.c 2008-10-22 18:13:35 +0000
++++ net80211/ieee80211_wireless.c 2008-10-22 18:13:41 +0000
+@@ -1551,11 +1551,19 @@
+
+ struct iwscanreq { /* XXX: right place for this declaration? */
+ struct ieee80211vap *vap;
++ struct iw_request_info *info;
+ char *current_ev;
+ char *end_buf;
+ int mode;
+ };
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27) && !defined(IW_REQUEST_FLAG_COMPAT)
++#define iwe_stream_add_event(a, b, c, d, e) iwe_stream_add_event(b, c, d, e)
++#define iwe_stream_add_point(a, b, c, d, e) iwe_stream_add_point(b, c, d, e)
++#define iwe_stream_add_value(a, b, c, d, e, f) \
++ iwe_stream_add_value(b, c, d, e, f)
++#define iwe_stream_lcp_len(a) IW_EV_LCP_LEN
++#endif
+ static int
+ giwscan_cb(void *arg, const struct ieee80211_scan_entry *se)
+ {
+@@ -1590,7 +1598,8 @@
+ IEEE80211_ADDR_COPY(iwe.u.ap_addr.sa_data, se->se_macaddr);
+ else
+ IEEE80211_ADDR_COPY(iwe.u.ap_addr.sa_data, se->se_bssid);
+- current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, IW_EV_ADDR_LEN);
++ current_ev = iwe_stream_add_event(req->info, current_ev, end_buf,
++ &iwe, IW_EV_ADDR_LEN);
+
+ /* We ran out of space in the buffer. */
+ if (last_ev == current_ev)
+@@ -1603,11 +1612,11 @@
+ if (vap->iv_opmode == IEEE80211_M_HOSTAP) {
+ iwe.u.data.length = vap->iv_des_nssid > 0 ?
+ vap->iv_des_ssid[0].len : 0;
+- current_ev = iwe_stream_add_point(current_ev,
++ current_ev = iwe_stream_add_point(req->info, current_ev,
+ end_buf, &iwe, vap->iv_des_ssid[0].ssid);
+ } else {
+ iwe.u.data.length = se->se_ssid[1];
+- current_ev = iwe_stream_add_point(current_ev,
++ current_ev = iwe_stream_add_point(req->info, current_ev,
+ end_buf, &iwe, (char *) se->se_ssid+2);
+ }
+
+@@ -1621,8 +1630,8 @@
+ iwe.cmd = SIOCGIWMODE;
+ iwe.u.mode = se->se_capinfo & IEEE80211_CAPINFO_ESS ?
+ IW_MODE_MASTER : IW_MODE_ADHOC;
+- current_ev = iwe_stream_add_event(current_ev,
+- end_buf, &iwe, IW_EV_UINT_LEN);
++ current_ev = iwe_stream_add_event(req->info, current_ev,
++ end_buf, &iwe, IW_EV_UINT_LEN);
+
+ /* We ran out of space in the buffer. */
+ if (last_ev == current_ev)
+@@ -1634,8 +1643,8 @@
+ iwe.cmd = SIOCGIWFREQ;
+ iwe.u.freq.m = se->se_chan->ic_freq * 100000;
+ iwe.u.freq.e = 1;
+- current_ev = iwe_stream_add_event(current_ev,
+- end_buf, &iwe, IW_EV_FREQ_LEN);
++ current_ev = iwe_stream_add_event(req->info, current_ev,
++ end_buf, &iwe, IW_EV_FREQ_LEN);
+
+ /* We ran out of space in the buffer. */
+ if (last_ev == current_ev)
+@@ -1645,8 +1654,8 @@
+ last_ev = current_ev;
+ iwe.cmd = IWEVQUAL;
+ set_quality(&iwe.u.qual, se->se_rssi, ATH_DEFAULT_NOISE);
+- current_ev = iwe_stream_add_event(current_ev,
+- end_buf, &iwe, IW_EV_QUAL_LEN);
++ current_ev = iwe_stream_add_event(req->info, current_ev,
++ end_buf, &iwe, IW_EV_QUAL_LEN);
+
+ /* We ran out of space in the buffer */
+ if (last_ev == current_ev)
+@@ -1660,7 +1669,8 @@
+ else
+ iwe.u.data.flags = IW_ENCODE_DISABLED;
+ iwe.u.data.length = 0;
+- current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, "");
++ current_ev = iwe_stream_add_point(req->info, current_ev,
++ end_buf, &iwe, "");
+
+ /* We ran out of space in the buffer. */
+ if (last_ev == current_ev)
+@@ -1669,28 +1679,28 @@
+ memset(&iwe, 0, sizeof(iwe));
+ last_ev = current_ev;
+ iwe.cmd = SIOCGIWRATE;
+- current_val = current_ev + IW_EV_LCP_LEN;
++ current_val = current_ev + iwe_stream_lcp_len(req->info);
+ /* NB: not sorted, does it matter? */
+ for (j = 0; j < se->se_rates[1]; j++) {
+ int r = se->se_rates[2 + j] & IEEE80211_RATE_VAL;
+ if (r != 0) {
+ iwe.u.bitrate.value = r * (1000000 / 2);
+- current_val = iwe_stream_add_value(current_ev,
+- current_val, end_buf, &iwe,
+- IW_EV_PARAM_LEN);
++ current_val = iwe_stream_add_value(req->info,
++ current_ev, current_val, end_buf,
++ &iwe, IW_EV_PARAM_LEN);
+ }
+ }
+ for (j = 0; j < se->se_xrates[1]; j++) {
+ int r = se->se_xrates[2+j] & IEEE80211_RATE_VAL;
+ if (r != 0) {
+ iwe.u.bitrate.value = r * (1000000 / 2);
+- current_val = iwe_stream_add_value(current_ev,
+- current_val, end_buf, &iwe,
+- IW_EV_PARAM_LEN);
++ current_val = iwe_stream_add_value(req->info,
++ current_ev, current_val, end_buf,
++ &iwe, IW_EV_PARAM_LEN);
+ }
+ }
+ /* remove fixed header if no rates were added */
+- if ((current_val - current_ev) > IW_EV_LCP_LEN) {
++ if ((current_val - current_ev) > iwe_stream_lcp_len(req->info)) {
+ current_ev = current_val;
+ } else {
+ /* We ran out of space in the buffer. */
+@@ -1704,7 +1714,8 @@
+ iwe.cmd = IWEVCUSTOM;
+ snprintf(buf, sizeof(buf), "bcn_int=%d", se->se_intval);
+ iwe.u.data.length = strlen(buf);
+- current_ev = iwe_stream_add_point(current_ev, end_buf, &iwe, buf);
++ current_ev = iwe_stream_add_point(req->info, current_ev,
++ end_buf, &iwe, buf);
+
+ /* We ran out of space in the buffer. */
+ if (last_ev == current_ev)
+@@ -1728,8 +1739,8 @@
+ rsn_leader, sizeof(rsn_leader) - 1);
+ #endif
+ if (iwe.u.data.length != 0) {
+- current_ev = iwe_stream_add_point(current_ev, end_buf,
+- &iwe, buf);
++ current_ev = iwe_stream_add_point(req->info,
++ current_ev, end_buf, &iwe, buf);
+
+ /* We ran out of space in the buffer */
+ if (last_ev == current_ev)
+@@ -1754,8 +1765,8 @@
+ wpa_leader, sizeof(wpa_leader) - 1);
+ #endif
+ if (iwe.u.data.length != 0) {
+- current_ev = iwe_stream_add_point(current_ev, end_buf,
+- &iwe, buf);
++ current_ev = iwe_stream_add_point(req->info,
++ current_ev, end_buf, &iwe, buf);
+
+ /* We ran out of space in the buffer. */
+ if (last_ev == current_ev)
+@@ -1773,8 +1784,8 @@
+ se->se_wme_ie, se->se_wme_ie[1] + 2,
+ wme_leader, sizeof(wme_leader) - 1);
+ if (iwe.u.data.length != 0) {
+- current_ev = iwe_stream_add_point(current_ev, end_buf,
+- &iwe, buf);
++ current_ev = iwe_stream_add_point(req->info,
++ current_ev, end_buf, &iwe, buf);
+
+ /* We ran out of space in the buffer. */
+ if (last_ev == current_ev)
+@@ -1791,8 +1802,8 @@
+ se->se_ath_ie, se->se_ath_ie[1] + 2,
+ ath_leader, sizeof(ath_leader) - 1);
+ if (iwe.u.data.length != 0) {
+- current_ev = iwe_stream_add_point(current_ev, end_buf,
+- &iwe, buf);
++ current_ev = iwe_stream_add_point(req->info,
++ current_ev, end_buf, &iwe, buf);
+
+ /* We ran out of space in the buffer. */
+ if (last_ev == current_ev)
+@@ -1815,6 +1826,7 @@
+ int res = 0;
+
+ req.vap = vap;
++ req.info = info;
+ req.current_ev = extra;
+ if (data->length == 0) {
+ req.end_buf = extra + IW_SCAN_MAX_DATA;
+
diff --git a/net-wireless/madwifi-ng/files/madwifi-ng-0.9.4-request_module-build.patch b/net-wireless/madwifi-ng/files/madwifi-ng-0.9.4-request_module-build.patch
new file mode 100644
index 000000000000..ad338a3b70e0
--- /dev/null
+++ b/net-wireless/madwifi-ng/files/madwifi-ng-0.9.4-request_module-build.patch
@@ -0,0 +1,31 @@
+http://bugs.gentoo.org/show_bug.cgi?id=232099
+http://madwifi-project.org/changeset/3880
+
+=== modified file 'include/compat.h'
+--- include/compat.h 2009-01-31 16:01:16 +0000
++++ include/compat.h 2009-01-31 16:03:33 +0000
+@@ -175,6 +175,10 @@
+ #define DEV_ATH CTL_UNNUMBERED
+ #endif
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
++#define request_module(_fmt, _modname) request_module(_modname)
++#endif
++
+ #endif /* __KERNEL__ */
+
+ #endif /* _ATH_COMPAT_H_ */
+
+=== modified file 'net80211/ieee80211_linux.c'
+--- net80211/ieee80211_linux.c 2009-01-31 16:01:16 +0000
++++ net80211/ieee80211_linux.c 2009-01-31 16:03:09 +0000
+@@ -335,7 +335,7 @@
+ {
+ #ifdef CONFIG_KMOD
+ int rv;
+- rv = request_module(modname);
++ rv = request_module("%s", modname);
+ if (rv < 0)
+ printk(KERN_ERR "failed to automatically load module: %s; " \
+ "errno: %d\n", modname, rv);
+
diff --git a/net-wireless/madwifi-ng/files/madwifi-ng-injection-r3925.patch b/net-wireless/madwifi-ng/files/madwifi-ng-injection-r3925.patch
new file mode 100644
index 000000000000..1999184ec5ae
--- /dev/null
+++ b/net-wireless/madwifi-ng/files/madwifi-ng-injection-r3925.patch
@@ -0,0 +1,32 @@
+=== modified file 'ath/if_ath.c'
+--- ath/if_ath.c 2009-06-03 07:46:17 +0000
++++ ath/if_ath.c 2009-06-03 07:53:24 +0000
+@@ -2359,6 +2359,7 @@
+ ath_tx_startraw(struct net_device *dev, struct ath_buf *bf, struct sk_buff *skb)
+ {
+ struct ath_softc *sc = netdev_priv(dev);
++ struct ieee80211com *ic = &sc->sc_ic;
+ struct ath_hal *ah = sc->sc_ah;
+ struct ieee80211_phy_params *ph = (struct ieee80211_phy_params *) (skb->cb + sizeof(struct ieee80211_cb));
+ const HAL_RATE_TABLE *rt;
+@@ -2375,7 +2376,8 @@
+ struct ieee80211_frame *wh;
+
+ wh = (struct ieee80211_frame *) skb->data;
+- try0 = ph->try0;
++ //try0 = ph->try0;
++ try0 = (ic->ic_opmode == IEEE80211_M_MONITOR) ? 1 : ph->try0;
+ rt = sc->sc_currates;
+ txrate = dot11_to_ratecode(sc, rt, ph->rate0);
+ power = ph->power > 60 ? 60 : ph->power;
+@@ -2404,7 +2406,8 @@
+ KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode));
+
+
+- if (IEEE80211_IS_MULTICAST(wh->i_addr1)) {
++ if (IEEE80211_IS_MULTICAST(wh->i_addr1) || ((ic->ic_opmode ==
++ IEEE80211_M_MONITOR) && (skb->data[1]&3) != 0x01) ) {
+ flags |= HAL_TXDESC_NOACK; /* no ack on broad/multicast */
+ sc->sc_stats.ast_tx_noack++;
+ try0 = 1;
+
diff --git a/net-wireless/madwifi-ng/files/madwifi-ng-r1886.patch b/net-wireless/madwifi-ng/files/madwifi-ng-r1886.patch
new file mode 100644
index 000000000000..1ee11bec1c3f
--- /dev/null
+++ b/net-wireless/madwifi-ng/files/madwifi-ng-r1886.patch
@@ -0,0 +1,26 @@
+allow to inject packets with aircrack-ng
+
+diff -ur ath/if_ath.c ath/if_ath.c
+--- ath/if_ath.c 2007-01-07 21:22:55.312500000 +0100
++++ ath/if_ath.c 2007-01-07 21:17:09.875000000 +0100
+@@ -2289,6 +2289,7 @@
+ ath_tx_startraw(struct net_device *dev, struct ath_buf *bf, struct sk_buff *skb)
+ {
+ struct ath_softc *sc = dev->priv;
++ struct ieee80211com *ic = &sc->sc_ic;
+ struct ath_hal *ah = sc->sc_ah;
+ struct ieee80211_phy_params *ph = (struct ieee80211_phy_params *) (skb->cb + sizeof(struct ieee80211_cb));
+ const HAL_RATE_TABLE *rt;
+@@ -2305,7 +2306,11 @@
+ struct ieee80211_frame *wh;
+
+ wh = (struct ieee80211_frame *) skb->data;
+- try0 = ph->try0;
++ try0 = (ic->ic_opmode == IEEE80211_M_MONITOR) ? 1 : ph->try0;
++ /*
++ * The retry value has to be patched to 1 when injecting,
++ * otherwise the sequence number will be overwritten
++ */
+ rt = sc->sc_currates;
+ txrate = dot11_to_ratecode(sc, rt, ph->rate0);
+ power = ph->power > 60 ? 60 : ph->power;
diff --git a/net-wireless/madwifi-ng/madwifi-ng-0.9.3.3.ebuild b/net-wireless/madwifi-ng/madwifi-ng-0.9.3.3.ebuild
new file mode 100644
index 000000000000..80186d7b73ba
--- /dev/null
+++ b/net-wireless/madwifi-ng/madwifi-ng-0.9.3.3.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit linux-mod
+
+MY_P=${PN/-ng/}-${PV}
+S="${WORKDIR}"/${MY_P}
+
+DESCRIPTION="Next Generation driver for Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="mirror://sourceforge/madwifi/madwifi-${PV}.tar.bz2"
+
+LICENSE="atheros-hal
+ || ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="injection"
+
+DEPEND="app-arch/sharutils"
+RDEPEND="!net-wireless/madwifi-old
+ net-wireless/wireless-tools
+ ~net-wireless/madwifi-ng-tools-${PV}"
+
+CONFIG_CHECK="CRYPTO WIRELESS_EXT SYSCTL KMOD"
+ERROR_CRYPTO="${P} requires Cryptographic API support (CONFIG_CRYPTO)."
+ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by Wireless LAN drivers (non-hamradio) & Wireless Extensions"
+ERROR_SYSCTL="${P} requires Sysctl support (CONFIG_SYSCTL)."
+ERROR_KMOD="${F} requires CONFIG_KMOD to be set to y or m"
+BUILD_TARGETS="all"
+MODULESD_ATH_PCI_DOCS="README"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ MODULE_NAMES='ath_hal(net:"${S}"/ath_hal)
+ wlan(net:"${S}"/net80211)
+ wlan_acl(net:"${S}"/net80211)
+ wlan_ccmp(net:"${S}"/net80211)
+ wlan_tkip(net:"${S}"/net80211)
+ wlan_wep(net:"${S}"/net80211)
+ wlan_xauth(net:"${S}"/net80211)
+ wlan_scan_sta(net:"${S}"/net80211)
+ wlan_scan_ap(net:"${S}"/net80211)
+ ath_rate_amrr(net:"${S}"/ath_rate/amrr)
+ ath_rate_onoe(net:"${S}"/ath_rate/onoe)
+ ath_rate_sample(net:"${S}"/ath_rate/sample)
+ ath_pci(net:"${S}"/ath)'
+
+ BUILD_PARAMS="KERNELPATH=${KV_OUT_DIR}"
+}
+
+src_unpack() {
+ unpack ${A}
+
+ cd "${S}"
+ epatch "${FILESDIR}"/${PN}-0.9.3-uudecode-gcda-fix.patch
+ if use injection; then epatch "${FILESDIR}"/${PN}-r1886.patch; fi
+ for dir in ath ath_hal net80211 ath_rate ath_rate/amrr ath_rate/onoe ath_rate/sample; do
+ convert_to_m "${S}"/${dir}/Makefile
+ done
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc README THANKS docs/users-guide.pdf docs/WEP-HOWTO.txt
+}
+
+pkg_postinst() {
+ local moddir="${ROOT}/lib/modules/${KV_FULL}/net/"
+
+ linux-mod_pkg_postinst
+
+ einfo
+ einfo "Interfaces (athX) are now automatically created upon loading the ath_pci"
+ einfo "module."
+ einfo
+ einfo "The type of the created interface can be controlled through the 'autocreate'"
+ einfo "module parameter."
+ einfo
+ einfo "As of net-wireless/madwifi-ng-0.9.3 rate control module selection is done at"
+ einfo "module load time via the 'ratectl' module parameter. USE flags amrr and onoe"
+ einfo "no longer serve any purpose."
+}
diff --git a/net-wireless/madwifi-ng/madwifi-ng-0.9.4-r1.ebuild b/net-wireless/madwifi-ng/madwifi-ng-0.9.4-r1.ebuild
new file mode 100644
index 000000000000..07a296d207ed
--- /dev/null
+++ b/net-wireless/madwifi-ng/madwifi-ng-0.9.4-r1.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit linux-mod
+
+MY_P=${PN/-ng/}-${PV}
+S="${WORKDIR}"/${MY_P}
+
+DESCRIPTION="Next Generation driver for Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="mirror://sourceforge/madwifi/madwifi-${PV}.tar.bz2"
+
+LICENSE="atheros-hal
+ || ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="injection"
+
+RDEPEND="!net-wireless/madwifi-old
+ net-wireless/wireless-tools
+ ~net-wireless/madwifi-ng-tools-${PV}"
+
+CONFIG_CHECK="CRYPTO WIRELESS_EXT SYSCTL KMOD"
+ERROR_CRYPTO="${P} requires Cryptographic API support (CONFIG_CRYPTO)."
+ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by Wireless LAN drivers (non-hamradio) & Wireless Extensions"
+ERROR_SYSCTL="${P} requires Sysctl support (CONFIG_SYSCTL)."
+ERROR_KMOD="${F} requires CONFIG_KMOD to be set to y or m"
+BUILD_TARGETS="all"
+MODULESD_ATH_PCI_DOCS="README"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ MODULE_NAMES='ath_hal(net:"${S}"/ath_hal)
+ wlan(net:"${S}"/net80211)
+ wlan_acl(net:"${S}"/net80211)
+ wlan_ccmp(net:"${S}"/net80211)
+ wlan_tkip(net:"${S}"/net80211)
+ wlan_wep(net:"${S}"/net80211)
+ wlan_xauth(net:"${S}"/net80211)
+ wlan_scan_sta(net:"${S}"/net80211)
+ wlan_scan_ap(net:"${S}"/net80211)
+ ath_rate_amrr(net:"${S}"/ath_rate/amrr)
+ ath_rate_onoe(net:"${S}"/ath_rate/onoe)
+ ath_rate_sample(net:"${S}"/ath_rate/sample)
+ ath_rate_minstrel(net:"${S}"/ath_rate/minstrel)
+ ath_pci(net:"${S}"/ath)'
+
+ BUILD_PARAMS="KERNELPATH=${KV_OUT_DIR}"
+}
+
+src_unpack() {
+ unpack ${A}
+
+ cd "${S}"
+ epatch "${FILESDIR}/${PN}-0.9.3-uudecode-gcda-fix.patch"
+ if use injection; then epatch "${FILESDIR}"/${PN}-r1886.patch; fi
+ for dir in ath ath_hal net80211 ath_rate ath_rate/amrr ath_rate/minstrel ath_rate/onoe ath_rate/sample; do
+ convert_to_m "${S}/${dir}/Makefile"
+ done
+ epatch "${FILESDIR}/madwifi-dfs-ieee80211-skb-update.patch"
+ kernel_is ge 2 6 27 && epatch "${FILESDIR}/${P}-2.6.27-r3811.patch"
+ epatch "${FILESDIR}/${P}-request_module-build.patch"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc README THANKS docs/users-guide.pdf docs/WEP-HOWTO.txt
+}
+
+pkg_postinst() {
+ local moddir="${ROOT}/lib/modules/${KV_FULL}/net/"
+
+ linux-mod_pkg_postinst
+
+ einfo
+ einfo "Interfaces (athX) are now automatically created upon loading the ath_pci"
+ einfo "module."
+ einfo
+ einfo "The type of the created interface can be controlled through the 'autocreate'"
+ einfo "module parameter."
+ einfo
+ einfo "As of net-wireless/madwifi-ng-0.9.3 rate control module selection is done at"
+ einfo "module load time via the 'ratectl' module parameter. USE flags amrr and onoe"
+ einfo "no longer serve any purpose."
+
+ elog "Please note: This release is based off of 0.9.3.3 and NOT trunk."
+ elog "# No AR5007 support in this release;"
+ elog "experimental support is available for i386 (32bit) in #1679"
+ elog "# No AR5008 support in this release; support is available in trunk "
+ elog "No, we will not apply the patch from 1679, if you must, please do so
+ in an overlay on your system. That is upstreams ticket 1679, not Gentoo's."
+}
diff --git a/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4119.20100201.ebuild b/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4119.20100201.ebuild
new file mode 100644
index 000000000000..7cea2f1ec365
--- /dev/null
+++ b/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4119.20100201.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit linux-mod versionator
+
+MY_PN=${PN/-ng/}
+MY_PV=$(get_version_component_range 1-3)
+MY_REV=$(get_version_component_range 4)
+MY_DATE=$(get_version_component_range 5)
+MY_P=${MY_PN}-${MY_PV}-r${MY_REV}-${MY_DATE}
+S=${WORKDIR}/${MY_P}
+
+DESCRIPTION="Next Generation driver for Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="http://snapshots.madwifi-project.org/${MY_PN}-${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="atheros-hal
+ || ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="injection"
+
+RDEPEND="!net-wireless/madwifi-old
+ net-wireless/wireless-tools
+ ~net-wireless/madwifi-ng-tools-${PV}"
+
+pkg_setup() {
+ CONFIG_CHECK="CRYPTO WIRELESS_EXT SYSCTL"
+ kernel_is lt 2 6 29 && CONFIG_CHECK="${CONFIG_CHECK} KMOD"
+ ERROR_CRYPTO="${P} requires Cryptographic API support (CONFIG_CRYPTO)."
+ ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by Wireless LAN drivers (non-hamradio) & Wireless Extensions"
+ kernel_is gt 2 6 33 && \
+ ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by some Wireless LAN drivers (e.g CONFIG_IPW2100)"
+ ERROR_SYSCTL="${P} requires Sysctl support (CONFIG_SYSCTL)."
+ ERROR_KMOD="${F} requires CONFIG_KMOD to be set to y or m"
+ BUILD_TARGETS="all"
+ MODULESD_ATH_PCI_DOCS="README"
+ linux-mod_pkg_setup
+
+ MODULE_NAMES='ath_hal(net:"${S}"/ath_hal)
+ wlan(net:"${S}"/net80211)
+ wlan_acl(net:"${S}"/net80211)
+ wlan_ccmp(net:"${S}"/net80211)
+ wlan_tkip(net:"${S}"/net80211)
+ wlan_wep(net:"${S}"/net80211)
+ wlan_xauth(net:"${S}"/net80211)
+ wlan_scan_sta(net:"${S}"/net80211)
+ wlan_scan_ap(net:"${S}"/net80211)
+ ath_rate_amrr(net:"${S}"/ath_rate/amrr)
+ ath_rate_onoe(net:"${S}"/ath_rate/onoe)
+ ath_rate_sample(net:"${S}"/ath_rate/sample)
+ ath_rate_minstrel(net:"${S}"/ath_rate/minstrel)
+ ath_pci(net:"${S}"/ath)'
+
+ BUILD_PARAMS="KERNELPATH=${KV_OUT_DIR}"
+}
+
+src_prepare() {
+ use injection && epatch "${FILESDIR}"/${PN}-injection-r3925.patch
+ for dir in ath ath_hal net80211 ath_rate ath_rate/amrr ath_rate/minstrel ath_rate/onoe ath_rate/sample; do
+ convert_to_m "${S}/${dir}/Makefile"
+ done
+ sed -e 's:-Werror ::' -i Makefile.inc || die "sed -Werror failed"
+ make svnversion.h || die
+}
+
+src_install() {
+ linux-mod_src_install
+ dodoc README THANKS SNAPSHOT || die
+}
+
+pkg_postinst() {
+ local moddir="${ROOT}/lib/modules/${KV_FULL}/net/"
+
+ linux-mod_pkg_postinst
+
+ einfo
+ einfo "Interfaces (athX) are now automatically created upon loading the ath_pci"
+ einfo "module."
+ einfo
+ einfo "The type of the created interface can be controlled through the 'autocreate'"
+ einfo "module parameter."
+ einfo
+ einfo "As of net-wireless/madwifi-ng-0.9.3 rate control module selection is done at"
+ einfo "module load time via the 'ratectl' module parameter."
+
+ elog "Please note: This release is based off of 0.9.3.3 and NOT trunk."
+ elog "# No AR5007 support in this release;"
+ elog "experimental support is available for i386 (32bit) in #1679"
+ elog "# No AR5008 support in this release; support is available in trunk "
+ elog "No, we will not apply the patch from 1679, if you must, please do so
+ in an overlay on your system. That is upstreams ticket 1679, not Gentoo's."
+}
diff --git a/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4133.20100621.ebuild b/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4133.20100621.ebuild
new file mode 100644
index 000000000000..073c3022e54e
--- /dev/null
+++ b/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4133.20100621.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit linux-mod versionator
+
+MY_PN=${PN/-ng/}
+MY_PV=$(get_version_component_range 1-3)
+MY_REV=$(get_version_component_range 4)
+MY_DATE=$(get_version_component_range 5)
+MY_P=${MY_PN}-${MY_PV}-r${MY_REV}-${MY_DATE}
+S=${WORKDIR}/${MY_P}
+
+DESCRIPTION="Next Generation driver for Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="http://snapshots.madwifi-project.org/${MY_PN}-${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="atheros-hal
+ || ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="injection"
+
+RDEPEND="!net-wireless/madwifi-old
+ net-wireless/wireless-tools
+ ~net-wireless/madwifi-ng-tools-${PV}"
+
+pkg_setup() {
+ CONFIG_CHECK="CRYPTO WIRELESS_EXT SYSCTL"
+ kernel_is lt 2 6 29 && CONFIG_CHECK="${CONFIG_CHECK} KMOD"
+ ERROR_CRYPTO="${P} requires Cryptographic API support (CONFIG_CRYPTO)."
+ ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by Wireless LAN drivers (non-hamradio) & Wireless Extensions"
+ kernel_is gt 2 6 33 && \
+ ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by some Wireless LAN drivers (e.g CONFIG_IPW2100)"
+ ERROR_SYSCTL="${P} requires Sysctl support (CONFIG_SYSCTL)."
+ ERROR_KMOD="${F} requires CONFIG_KMOD to be set to y or m"
+ BUILD_TARGETS="all"
+ MODULESD_ATH_PCI_DOCS="README"
+ linux-mod_pkg_setup
+
+ MODULE_NAMES='ath_hal(net:"${S}"/ath_hal)
+ wlan(net:"${S}"/net80211)
+ wlan_acl(net:"${S}"/net80211)
+ wlan_ccmp(net:"${S}"/net80211)
+ wlan_tkip(net:"${S}"/net80211)
+ wlan_wep(net:"${S}"/net80211)
+ wlan_xauth(net:"${S}"/net80211)
+ wlan_scan_sta(net:"${S}"/net80211)
+ wlan_scan_ap(net:"${S}"/net80211)
+ ath_rate_amrr(net:"${S}"/ath_rate/amrr)
+ ath_rate_onoe(net:"${S}"/ath_rate/onoe)
+ ath_rate_sample(net:"${S}"/ath_rate/sample)
+ ath_rate_minstrel(net:"${S}"/ath_rate/minstrel)
+ ath_pci(net:"${S}"/ath)'
+
+ BUILD_PARAMS="KERNELPATH=${KV_OUT_DIR}"
+}
+
+src_prepare() {
+ use injection && epatch "${FILESDIR}"/${PN}-injection-r3925.patch
+ for dir in ath ath_hal net80211 ath_rate ath_rate/amrr ath_rate/minstrel ath_rate/onoe ath_rate/sample; do
+ convert_to_m "${S}/${dir}/Makefile"
+ done
+ sed -e 's:-Werror ::' -i Makefile.inc || die "sed -Werror failed"
+ make svnversion.h || die
+}
+
+src_install() {
+ linux-mod_src_install
+ dodoc README THANKS SNAPSHOT || die
+}
+
+pkg_postinst() {
+ local moddir="${ROOT}/lib/modules/${KV_FULL}/net/"
+
+ linux-mod_pkg_postinst
+
+ einfo
+ einfo "Interfaces (athX) are now automatically created upon loading the ath_pci"
+ einfo "module."
+ einfo
+ einfo "The type of the created interface can be controlled through the 'autocreate'"
+ einfo "module parameter."
+ einfo
+ einfo "As of net-wireless/madwifi-ng-0.9.3 rate control module selection is done at"
+ einfo "module load time via the 'ratectl' module parameter."
+
+ elog "Please note: This release is based off of 0.9.3.3 and NOT trunk."
+ elog "# No AR5007 support in this release;"
+ elog "experimental support is available for i386 (32bit) in #1679"
+ elog "# No AR5008 support in this release; support is available in trunk "
+ elog "No, we will not apply the patch from 1679, if you must, please do so
+ in an overlay on your system. That is upstreams ticket 1679, not Gentoo's."
+}
diff --git a/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4165.20110816.ebuild b/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4165.20110816.ebuild
new file mode 100644
index 000000000000..1c5000a0b0f0
--- /dev/null
+++ b/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4165.20110816.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit linux-mod versionator
+
+MY_PN=${PN/-ng/}
+MY_PV=$(get_version_component_range 1-3)
+MY_REV=$(get_version_component_range 4)
+MY_DATE=$(get_version_component_range 5)
+MY_P=${MY_PN}-${MY_PV}-r${MY_REV}-${MY_DATE}
+S=${WORKDIR}/${MY_P}
+
+DESCRIPTION="Next Generation driver for Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="http://snapshots.madwifi-project.org/${MY_PN}-${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="atheros-hal
+ || ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="injection"
+
+RDEPEND="!net-wireless/madwifi-old
+ net-wireless/wireless-tools
+ ~net-wireless/madwifi-ng-tools-${PV}"
+
+pkg_setup() {
+ CONFIG_CHECK="CRYPTO WIRELESS_EXT SYSCTL"
+ kernel_is lt 2 6 29 && CONFIG_CHECK="${CONFIG_CHECK} KMOD"
+ ERROR_CRYPTO="${P} requires Cryptographic API support (CONFIG_CRYPTO)."
+ ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by Wireless LAN drivers (non-hamradio) & Wireless Extensions"
+ kernel_is gt 2 6 33 && \
+ ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by some Wireless LAN drivers (e.g CONFIG_IPW2100)"
+ ERROR_SYSCTL="${P} requires Sysctl support (CONFIG_SYSCTL)."
+ ERROR_KMOD="${F} requires CONFIG_KMOD to be set to y or m"
+ BUILD_TARGETS="all"
+ MODULESD_ATH_PCI_DOCS="README"
+ linux-mod_pkg_setup
+
+ MODULE_NAMES='ath_hal(net:"${S}"/ath_hal)
+ wlan(net:"${S}"/net80211)
+ wlan_acl(net:"${S}"/net80211)
+ wlan_ccmp(net:"${S}"/net80211)
+ wlan_tkip(net:"${S}"/net80211)
+ wlan_wep(net:"${S}"/net80211)
+ wlan_xauth(net:"${S}"/net80211)
+ wlan_scan_sta(net:"${S}"/net80211)
+ wlan_scan_ap(net:"${S}"/net80211)
+ ath_rate_amrr(net:"${S}"/ath_rate/amrr)
+ ath_rate_onoe(net:"${S}"/ath_rate/onoe)
+ ath_rate_sample(net:"${S}"/ath_rate/sample)
+ ath_rate_minstrel(net:"${S}"/ath_rate/minstrel)
+ ath_pci(net:"${S}"/ath)'
+
+ BUILD_PARAMS="KERNELPATH=${KV_OUT_DIR}"
+}
+
+src_prepare() {
+ use injection && epatch "${FILESDIR}"/${PN}-injection-r3925.patch
+ for dir in ath ath_hal net80211 ath_rate ath_rate/amrr ath_rate/minstrel ath_rate/onoe ath_rate/sample; do
+ convert_to_m "${S}/${dir}/Makefile"
+ done
+ sed -e 's:-Werror ::' -i Makefile.inc || die "sed -Werror failed"
+ make svnversion.h || die
+}
+
+src_install() {
+ linux-mod_src_install
+ dodoc README THANKS SNAPSHOT || die
+}
+
+pkg_postinst() {
+ local moddir="${ROOT}/lib/modules/${KV_FULL}/net/"
+
+ linux-mod_pkg_postinst
+
+ einfo
+ einfo "Interfaces (athX) are now automatically created upon loading the ath_pci"
+ einfo "module."
+ einfo
+ einfo "The type of the created interface can be controlled through the 'autocreate'"
+ einfo "module parameter."
+ einfo
+ einfo "As of net-wireless/madwifi-ng-0.9.3 rate control module selection is done at"
+ einfo "module load time via the 'ratectl' module parameter."
+
+ elog "Please note: This release is based off of 0.9.3.3 and NOT trunk."
+ elog "# No AR5007 support in this release;"
+ elog "experimental support is available for i386 (32bit) in #1679"
+ elog "# No AR5008 support in this release; support is available in trunk "
+ elog "No, we will not apply the patch from 1679, if you must, please do so
+ in an overlay on your system. That is upstreams ticket 1679, not Gentoo's."
+}
diff --git a/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4180.20120502.ebuild b/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4180.20120502.ebuild
new file mode 100644
index 000000000000..e02e8ec8bf90
--- /dev/null
+++ b/net-wireless/madwifi-ng/madwifi-ng-0.9.4.4180.20120502.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit linux-mod versionator
+
+MY_PN=${PN/-ng/}
+MY_PV=$(get_version_component_range 1-3)
+MY_REV=$(get_version_component_range 4)
+MY_DATE=$(get_version_component_range 5)
+MY_P=${MY_PN}-${MY_PV}-r${MY_REV}-${MY_DATE}
+S=${WORKDIR}/${MY_P}
+
+DESCRIPTION="Next Generation driver for Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="http://snapshots.madwifi-project.org/${MY_PN}-${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="atheros-hal
+ || ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="injection"
+
+RDEPEND="!net-wireless/madwifi-old
+ net-wireless/wireless-tools
+ ~net-wireless/madwifi-ng-tools-${PV}"
+
+pkg_setup() {
+ CONFIG_CHECK="CRYPTO WIRELESS_EXT SYSCTL"
+ kernel_is lt 2 6 29 && CONFIG_CHECK="${CONFIG_CHECK} KMOD"
+ ERROR_CRYPTO="${P} requires Cryptographic API support (CONFIG_CRYPTO)."
+ ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by Wireless LAN drivers (non-hamradio) & Wireless Extensions"
+ kernel_is gt 2 6 33 && \
+ ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by some Wireless LAN drivers (e.g CONFIG_IPW2100)"
+ ERROR_SYSCTL="${P} requires Sysctl support (CONFIG_SYSCTL)."
+ ERROR_KMOD="${F} requires CONFIG_KMOD to be set to y or m"
+ BUILD_TARGETS="all"
+ MODULESD_ATH_PCI_DOCS="README"
+ linux-mod_pkg_setup
+
+ MODULE_NAMES='ath_hal(net:"${S}"/ath_hal)
+ wlan(net:"${S}"/net80211)
+ wlan_acl(net:"${S}"/net80211)
+ wlan_ccmp(net:"${S}"/net80211)
+ wlan_tkip(net:"${S}"/net80211)
+ wlan_wep(net:"${S}"/net80211)
+ wlan_xauth(net:"${S}"/net80211)
+ wlan_scan_sta(net:"${S}"/net80211)
+ wlan_scan_ap(net:"${S}"/net80211)
+ ath_rate_amrr(net:"${S}"/ath_rate/amrr)
+ ath_rate_onoe(net:"${S}"/ath_rate/onoe)
+ ath_rate_sample(net:"${S}"/ath_rate/sample)
+ ath_rate_minstrel(net:"${S}"/ath_rate/minstrel)
+ ath_pci(net:"${S}"/ath)'
+
+ BUILD_PARAMS="KERNELPATH=${KV_OUT_DIR}"
+}
+
+src_prepare() {
+ use injection && epatch "${FILESDIR}"/${PN}-injection-r3925.patch
+ for dir in ath ath_hal net80211 ath_rate ath_rate/amrr ath_rate/minstrel ath_rate/onoe ath_rate/sample; do
+ convert_to_m "${S}/${dir}/Makefile"
+ done
+ sed -e 's:-Werror ::' -i Makefile.inc || die "sed -Werror failed"
+ make svnversion.h || die
+}
+
+src_install() {
+ linux-mod_src_install
+ dodoc README THANKS SNAPSHOT || die
+}
+
+pkg_postinst() {
+ local moddir="${ROOT}/lib/modules/${KV_FULL}/net/"
+
+ linux-mod_pkg_postinst
+
+ einfo
+ einfo "Interfaces (athX) are now automatically created upon loading the ath_pci"
+ einfo "module."
+ einfo
+ einfo "The type of the created interface can be controlled through the 'autocreate'"
+ einfo "module parameter."
+ einfo
+ einfo "As of net-wireless/madwifi-ng-0.9.3 rate control module selection is done at"
+ einfo "module load time via the 'ratectl' module parameter."
+
+ elog "Please note: This release is based off of 0.9.3.3 and NOT trunk."
+ elog "# No AR5007 support in this release;"
+ elog "experimental support is available for i386 (32bit) in #1679"
+ elog "# No AR5008 support in this release; support is available in trunk "
+ elog "No, we will not apply the patch from 1679, if you must, please do so
+ in an overlay on your system. That is upstreams ticket 1679, not Gentoo's."
+}
diff --git a/net-wireless/madwifi-ng/madwifi-ng-0.9.4.ebuild b/net-wireless/madwifi-ng/madwifi-ng-0.9.4.ebuild
new file mode 100644
index 000000000000..1d8620eb672f
--- /dev/null
+++ b/net-wireless/madwifi-ng/madwifi-ng-0.9.4.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit linux-mod
+
+MY_P=${PN/-ng/}-${PV}
+S="${WORKDIR}"/${MY_P}
+
+DESCRIPTION="Next Generation driver for Atheros based IEEE 802.11a/b/g wireless LAN cards"
+HOMEPAGE="http://www.madwifi-project.org/"
+SRC_URI="mirror://sourceforge/madwifi/madwifi-${PV}.tar.bz2"
+
+LICENSE="atheros-hal
+ || ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="injection"
+
+RDEPEND="!net-wireless/madwifi-old
+ net-wireless/wireless-tools
+ ~net-wireless/madwifi-ng-tools-${PV}"
+
+CONFIG_CHECK="CRYPTO WIRELESS_EXT SYSCTL KMOD"
+ERROR_CRYPTO="${P} requires Cryptographic API support (CONFIG_CRYPTO)."
+ERROR_WIRELESS_EXT="${P} requires CONFIG_WIRELESS_EXT selected by Wireless LAN drivers (non-hamradio) & Wireless Extensions"
+ERROR_SYSCTL="${P} requires Sysctl support (CONFIG_SYSCTL)."
+ERROR_KMOD="${F} requires CONFIG_KMOD to be set to y or m"
+BUILD_TARGETS="all"
+MODULESD_ATH_PCI_DOCS="README"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ MODULE_NAMES='ath_hal(net:"${S}"/ath_hal)
+ wlan(net:"${S}"/net80211)
+ wlan_acl(net:"${S}"/net80211)
+ wlan_ccmp(net:"${S}"/net80211)
+ wlan_tkip(net:"${S}"/net80211)
+ wlan_wep(net:"${S}"/net80211)
+ wlan_xauth(net:"${S}"/net80211)
+ wlan_scan_sta(net:"${S}"/net80211)
+ wlan_scan_ap(net:"${S}"/net80211)
+ ath_rate_amrr(net:"${S}"/ath_rate/amrr)
+ ath_rate_onoe(net:"${S}"/ath_rate/onoe)
+ ath_rate_sample(net:"${S}"/ath_rate/sample)
+ ath_rate_minstrel(net:"${S}"/ath_rate/minstrel)
+ ath_pci(net:"${S}"/ath)'
+
+ BUILD_PARAMS="KERNELPATH=${KV_OUT_DIR}"
+}
+
+src_unpack() {
+ unpack ${A}
+
+ cd "${S}"
+ epatch "${FILESDIR}"/${PN}-0.9.3-uudecode-gcda-fix.patch
+ if use injection; then epatch "${FILESDIR}"/${PN}-r1886.patch; fi
+ for dir in ath ath_hal net80211 ath_rate ath_rate/amrr ath_rate/minstrel ath_rate/onoe ath_rate/sample; do
+ convert_to_m "${S}"/${dir}/Makefile
+ done
+ epatch "${FILESDIR}"/madwifi-dfs-ieee80211-skb-update.patch
+ kernel_is ge 2 6 27 && epatch "${FILESDIR}/${P}-2.6.27-r3811.patch"
+ epatch "${FILESDIR}/${P}-request_module-build.patch"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc README THANKS docs/users-guide.pdf docs/WEP-HOWTO.txt
+}
+
+pkg_postinst() {
+ local moddir="${ROOT}/lib/modules/${KV_FULL}/net/"
+
+ linux-mod_pkg_postinst
+
+ einfo
+ einfo "Interfaces (athX) are now automatically created upon loading the ath_pci"
+ einfo "module."
+ einfo
+ einfo "The type of the created interface can be controlled through the 'autocreate'"
+ einfo "module parameter."
+ einfo
+ einfo "As of net-wireless/madwifi-ng-0.9.3 rate control module selection is done at"
+ einfo "module load time via the 'ratectl' module parameter. USE flags amrr and onoe"
+ einfo "no longer serve any purpose."
+
+ elog "Please note: This release is based off of 0.9.3.3 and NOT trunk."
+ elog "# No AR5007 support in this release;"
+ elog "experimental support is available for i386 (32bit) in #1679"
+ elog "# No AR5008 support in this release; support is available in trunk "
+ elog "No, we will not apply the patch from 1679, if you must, please do so
+ in an overlay on your system. That is upstreams ticket 1679, not Gentoo's."
+}
diff --git a/net-wireless/madwifi-ng/metadata.xml b/net-wireless/madwifi-ng/metadata.xml
new file mode 100644
index 000000000000..7891bc8cb095
--- /dev/null
+++ b/net-wireless/madwifi-ng/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>steev@gentoo.org</email>
+ <name>Steev Klimaszewski</name>
+ </maintainer>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <use>
+ <flag name="injection">Adds support for <pkg>net-wireless/aircrack-ng</pkg>
+ aireplay-ng packet injection</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">madwifi</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/madwimax/Manifest b/net-wireless/madwimax/Manifest
new file mode 100644
index 000000000000..b4d2bb6ec5ef
--- /dev/null
+++ b/net-wireless/madwimax/Manifest
@@ -0,0 +1 @@
+DIST madwimax-0.1.1.tar.gz 145526 SHA256 17ac297934654663586df837dcff2bd6d3bbabddd76efdffa26713b07e08ad5f SHA512 ec3bb91d0608855018bb5b18a87c6bff7ac7f60d3afed24dec05747573c7363001e89adf07b79bb43db3023e7171d3e2f3b9c5ad22359c1a0be24d9034389e59 WHIRLPOOL 102b586bbbd54a6840af34b547ea4052302573306a09f453f6ffdf3fe686bd118d55776a590ba2188259a85cd01c15e034207eea4f94a108804b8801c85d6d60
diff --git a/net-wireless/madwimax/madwimax-0.1.1-r1.ebuild b/net-wireless/madwimax/madwimax-0.1.1-r1.ebuild
new file mode 100644
index 000000000000..e24882caf98a
--- /dev/null
+++ b/net-wireless/madwimax/madwimax-0.1.1-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit autotools linux-info udev
+
+DESCRIPTION="A reverse-engineered Linux driver for mobile WiMAX devices based on Samsung CMC-730 chip"
+HOMEPAGE="http://code.google.com/p/madwimax/"
+SRC_URI="http://madwimax.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="doc"
+
+RDEPEND="virtual/libusb:1"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ )"
+
+CONFIG_CHECK="~TUN"
+
+src_prepare() {
+ sed -i -e "s:\(for name in docbook2\)x-man:\1man\.pl:" configure.ac || die
+ eautoreconf
+}
+
+src_configure() {
+ local myconf
+ use doc || myconf="--without-man-pages"
+ econf ${myconf}
+}
+
+src_install() {
+ emake DESTDIR="${D}" udevrulesdir="$(get_udevdir)"/rules.d install
+ mv "${ED}/$(get_udevdir)"/rules.d/{z60_,60-}madwimax.rules || die
+ dodoc README
+}
diff --git a/net-wireless/madwimax/metadata.xml b/net-wireless/madwimax/metadata.xml
new file mode 100644
index 000000000000..8baa280a7e36
--- /dev/null
+++ b/net-wireless/madwimax/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="google-code">madwimax</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/mdk/Manifest b/net-wireless/mdk/Manifest
new file mode 100644
index 000000000000..61de19d723bb
--- /dev/null
+++ b/net-wireless/mdk/Manifest
@@ -0,0 +1 @@
+DIST mdk3-v6.tar.bz2 213279 SHA256 4dac4d0ad54c4dbbf8857f527c573af6495a91d2e503774274b39c3ca8ed11dd SHA512 a5180fc231c2e041064467b9415d2d238ea680f19c88b2320983dd6dbe91a62af1a37da0fc548c1b0860ede046e1f9976dec729c919d8e6c0ab98231990dfec4 WHIRLPOOL 6d2321153841189bde7d7cd68e62330027e81ae66377b468d8d5d1ae92ff3327564fbdb5ee584435e12c8abad6c1c3ba53e3ef378ac834d62ad233ab03f9107f
diff --git a/net-wireless/mdk/files/3.6-makefile.patch b/net-wireless/mdk/files/3.6-makefile.patch
new file mode 100644
index 000000000000..8016c317b486
--- /dev/null
+++ b/net-wireless/mdk/files/3.6-makefile.patch
@@ -0,0 +1,37 @@
+--- Makefile 2007-07-18 16:16:54.000000000 +0200
++++ Makefile.new 2009-04-01 09:17:06.000000000 +0200
+@@ -1,8 +1,8 @@
+-CFLAGS = -g -O3 -Wall -Wextra
+-LINKFLAGS = -lpthread
++CFLAGS +=
++LINKFLAGS = $(LDFLAGS)
+
+ DESTDIR =
+-PREFIX = /usr/local
++PREFIX = /usr/
+ SBINDIR = $(PREFIX)/sbin
+
+ OSD = osdep
+--- Makefile 2009-04-01 09:24:46.000000000 +0200
++++ Makefile.new 2009-04-01 09:25:08.000000000 +0200
+@@ -6,7 +6,7 @@
+ SBINDIR = $(PREFIX)/sbin
+
+ OSD = osdep
+-LIBS = -L$(OSD) -l$(OSD)
++LIBS = -L$(OSD) -l$(OSD) -lpthread
+ LIBOSD = $(OSD)/lib$(OSD).so
+
+
+@@ -10,9 +10,9 @@
+ LIBOSD = $(OSD)/lib$(OSD).so
+
+
+-all: osd mdk3
++all: mdk3
+
+-osd:
++$(OSD)/libosdep.a:
+ $(MAKE) -C $(OSD)
+
+ $(LIBOSD):
diff --git a/net-wireless/mdk/files/fix_wids_mdk3_v5.patch b/net-wireless/mdk/files/fix_wids_mdk3_v5.patch
new file mode 100644
index 000000000000..6013a59b9b1a
--- /dev/null
+++ b/net-wireless/mdk/files/fix_wids_mdk3_v5.patch
@@ -0,0 +1,21 @@
+diff -ur mdk3-v5-orig/mdk3.c mdk3-v5/mdk3.c
+--- mdk3-v5-orig/mdk3.c 2008-11-10 21:45:02.000000000 +0100
++++ mdk3-v5/mdk3.c 2009-01-10 01:47:03.546875000 +0100
+@@ -1092,10 +1092,13 @@
+ {
+ struct clistwidsclient *first = c;
+
+- do {
+- if (!(memcmp(c->mac, mac, mac_len))) return c;
+- c = c->next;
+- } while (c != first);
++ if (c != NULL)
++ {
++ do {
++ if (c->mac != NULL && !(memcmp(c->mac, mac, mac_len))) return c;
++ c = c->next;
++ } while (c != NULL && c != first);
++ }
+
+ return NULL;
+ }
diff --git a/net-wireless/mdk/mdk-3.6-r1.ebuild b/net-wireless/mdk/mdk-3.6-r1.ebuild
new file mode 100644
index 000000000000..e620c164cd31
--- /dev/null
+++ b/net-wireless/mdk/mdk-3.6-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+inherit eutils toolchain-funcs
+
+MY_P="${PN}${PV/./-v}"
+DESCRIPTION="Wireless injection tool with various functions"
+HOMEPAGE="http://homepages.tu-darmstadt.de/~p_larbig/wlan"
+SRC_URI="${HOMEPAGE}/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PV}-makefile.patch
+ epatch "${FILESDIR}"/fix_wids_mdk3_v5.patch
+}
+
+src_compile() {
+ emake CC=$(tc-getCC)
+}
+
+src_install() {
+ emake DESTDIR="${ED}" install
+
+ insinto /usr/share/${PN}
+ doins -r useful_files
+
+ dohtml docs/*
+ dodoc AUTHORS CHANGELOG TODO
+}
diff --git a/net-wireless/mdk/metadata.xml b/net-wireless/mdk/metadata.xml
new file mode 100644
index 000000000000..2e6865b9dfa9
--- /dev/null
+++ b/net-wireless/mdk/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+</pkgmetadata>
+
diff --git a/net-wireless/metadata.xml b/net-wireless/metadata.xml
new file mode 100644
index 000000000000..e951a751b7e5
--- /dev/null
+++ b/net-wireless/metadata.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+ <longdescription lang="en">
+ The net-wireless category contains wireless networking software and
+ utilities.
+ </longdescription>
+ <longdescription lang="de">
+ Die Kategorie net-wireless enthält Treiber und Programme für Wireless-Netzwerke.
+ </longdescription>
+ <longdescription lang="es">
+ La categoría net-wireless contiene utilidades y programas relacionados
+ con las redes inalámbricas.
+ </longdescription>
+ <longdescription lang="ja">
+ net-wirelessカテゴリーにはワイヤレスネットワーキング・ソフトウェアと
+ ユーティリティが含まれています。
+ </longdescription>
+ <longdescription lang="nl">
+ De net-wireless categorie bevat applicaties en stuurprogramma's voor draadloze netwerken.
+ </longdescription>
+ <longdescription lang="vi">
+ Nhóm net-wireless chứa các phần mềm mạng không dây.
+ </longdescription>
+ <longdescription lang="it">
+ La categoria net-wireless contiene utilità e programmi per le reti wireless.
+ </longdescription>
+ <longdescription lang="pt">
+ A categoria net-wireless contém programas e utilitários para
+ redes sem fio (wireless).
+ </longdescription>
+ <longdescription lang="pl">
+ Kategoria net-wireless zawiera narzędzia do pracy w sieciach bezprzewodowych.
+ </longdescription>
+</catmetadata>
+
diff --git a/net-wireless/mfoc/Manifest b/net-wireless/mfoc/Manifest
new file mode 100644
index 000000000000..f302d4f809e1
--- /dev/null
+++ b/net-wireless/mfoc/Manifest
@@ -0,0 +1 @@
+DIST mfoc-0.10.7.tar.bz2 99596 SHA256 93d8ac4cb0aa6ed94855ca9732a2ffd898a9095c087f12f9402205443c2eb98c SHA512 fc2f5619374c575bf71083d7774fec2855255cd24de325fc33290c3375126173c83a198162cfdcec444d8a6fc393eae3d5bc61fb341bac79ec96ffa2b380506e WHIRLPOOL 0cbc7af16ce948169c4d562fae3251ade4110b4c0693994aa82c14d2e5e6851e4d9fa0d492d5eff1cff15d64f8887ed59ca523e22f82437b2e7bd0fa20a2958d
diff --git a/net-wireless/mfoc/metadata.xml b/net-wireless/mfoc/metadata.xml
new file mode 100644
index 000000000000..bfcb6974f1c4
--- /dev/null
+++ b/net-wireless/mfoc/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>mrueg@gentoo.org</email>
+ <name>Manuel Rüger</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/net-wireless/mfoc/mfoc-0.10.7.ebuild b/net-wireless/mfoc/mfoc-0.10.7.ebuild
new file mode 100644
index 000000000000..8c806f6624d6
--- /dev/null
+++ b/net-wireless/mfoc/mfoc-0.10.7.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools
+
+DESCRIPTION="Mifare Classic Offline Cracker"
+HOMEPAGE="https://code.google.com/p/mfoc"
+SRC_URI="https://mfoc.googlecode.com/files/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND=">=dev-libs/libnfc-1.7.0"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ eautoreconf
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+}
diff --git a/net-wireless/multimode/Manifest b/net-wireless/multimode/Manifest
new file mode 100644
index 000000000000..f013f9ed991e
--- /dev/null
+++ b/net-wireless/multimode/Manifest
@@ -0,0 +1,2 @@
+DIST multimode-1.4_p20140831.tar.xz 7648 SHA256 c16396cf5ae73426abe9c27b88003d25f90ab0d2eb542754b08e6beda276d31e SHA512 891428e6c049cfd94787bd7580a59b3a9eb488dbf97cd21a1d82be04648e5423c3ce73983d38c5a3c280519ebea73c9572e9b0cdc7df453114e6aa220a58eaff WHIRLPOOL 8b62fc6f207666d191d4b5515dbcf669c08fb219e5cde5e843adc14433fb8e6d3ee3eaea14c2180cf57d6f863916d10b82f3883c2da24dfa815637f6fa1b7338
+DIST multimode-r1.00.tar.gz 13931 SHA256 cac6ddc665953b8d705a92599f57090ccc7992ce462c077379d74890a9c31baa SHA512 9c224794139592622bc441a8d17265963eda56d691f45ebc0220ee3e3907e53b113dae0c8452330753fafd94964663d70bad2dce43cbe05a3abcd477112f3c98 WHIRLPOOL 702d49b441a03aedf3d2a329c44799882c43f1eb3a7b3cea8e9e843d65d3f07737a7ec960dc90d6eee9f31d91f4d4c2266b434f95c991abc0996b68d164766b3
diff --git a/net-wireless/multimode/metadata.xml b/net-wireless/multimode/metadata.xml
new file mode 100644
index 000000000000..50b2373a3fe9
--- /dev/null
+++ b/net-wireless/multimode/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>radio</herd>
+<maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+</maintainer>
+<longdescription lang="en">
+</longdescription>
+</pkgmetadata>
+
diff --git a/net-wireless/multimode/multimode-1.00-r2.ebuild b/net-wireless/multimode/multimode-1.00-r2.ebuild
new file mode 100644
index 000000000000..13df49f49361
--- /dev/null
+++ b/net-wireless/multimode/multimode-1.00-r2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT="python2_7"
+
+inherit python-single-r1
+
+DESCRIPTION="multimode radio decoder for rtl-sdr devices using gnuradio"
+HOMEPAGE="https://www.cgran.org/browser/projects/multimode/trunk"
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+if [[ ${PV} == "9999" ]] ; then
+ ESVN_REPO_URI="https://www.cgran.org/svn/projects/multimode/trunk"
+ inherit subversion
+ KEYWORDS=""
+else
+ SRC_URI="http://www.sbrac.org/files/${PN}-r${PV}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+ S="${WORKDIR}"
+fi
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ >=net-wireless/gr-osmosdr-0.0.1
+ <net-wireless/gnuradio-3.7:=[grc,utils,${PYTHON_USEDEP}]
+ >=net-wireless/rtl-sdr-0.5.0"
+
+src_compile() {
+ PYTHONPATH="${S}":"${PYTHONPATH}" emake
+}
+
+src_install() {
+ newbin ${PN}.py ${PN}
+ insinto $(python_get_sitedir)
+ doins ${PN}_helper.py
+ insinto /usr/share/${PN}
+ doins ${PN}.grc
+ python_fix_shebang "${ED}"/usr/bin
+}
diff --git a/net-wireless/multimode/multimode-1.4_p20140831-r1.ebuild b/net-wireless/multimode/multimode-1.4_p20140831-r1.ebuild
new file mode 100644
index 000000000000..97a8fbd06b3c
--- /dev/null
+++ b/net-wireless/multimode/multimode-1.4_p20140831-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT="python2_7"
+
+inherit python-single-r1
+
+DESCRIPTION="multimode radio decoder for rtl-sdr devices using gnuradio"
+HOMEPAGE="https://www.cgran.org/browser/projects/multimode/trunk"
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+if [[ ${PV} == "9999" ]] ; then
+ ESVN_REPO_URI="https://www.cgran.org/svn/projects/multimode/trunk"
+ inherit subversion
+ KEYWORDS=""
+else
+ #SRC_URI="http://www.sbrac.org/files/${PN}-r${PV}.tar.gz"
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+DEPEND=">=net-wireless/gnuradio-3.7:=[grc,utils,${PYTHON_USEDEP}]
+ >=net-wireless/gr-osmosdr-0.1.0:="
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ PYTHONPATH="${S}":"${PYTHONPATH}" emake
+}
+
+src_install() {
+ newbin ${PN}.py ${PN}
+ insinto $(python_get_sitedir)
+ doins ${PN}_helper.py
+ insinto /usr/share/${PN}
+ doins ${PN}.grc
+ python_fix_shebang "${ED}"/usr/bin
+}
diff --git a/net-wireless/multimode/multimode-9999.ebuild b/net-wireless/multimode/multimode-9999.ebuild
new file mode 100644
index 000000000000..26b61e05aa78
--- /dev/null
+++ b/net-wireless/multimode/multimode-9999.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT="python2_7"
+
+inherit python-single-r1
+
+DESCRIPTION="multimode radio decoder for rtl-sdr devices using gnuradio"
+HOMEPAGE="https://www.cgran.org/browser/projects/multimode/trunk"
+LICENSE="BSD"
+SLOT="0"
+IUSE=""
+
+if [[ ${PV} == "9999" ]] ; then
+ ESVN_REPO_URI="https://www.cgran.org/svn/projects/multimode/trunk"
+ inherit subversion
+ KEYWORDS=""
+else
+ #SRC_URI="http://www.sbrac.org/files/${PN}-r${PV}.tar.gz"
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+DEPEND="=net-wireless/gnuradio-9999:=[grc,utils,${PYTHON_USEDEP}]
+ =net-wireless/gr-osmosdr-9999:="
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ PYTHONPATH="${S}":"${PYTHONPATH}" emake
+}
+
+src_install() {
+ newbin ${PN}.py ${PN}
+ insinto $(python_get_sitedir)
+ doins ${PN}_helper.py
+ insinto /usr/share/${PN}
+ doins ${PN}.grc
+ python_fix_shebang "${ED}"/usr/bin
+}
diff --git a/net-wireless/ndiswrapper/Manifest b/net-wireless/ndiswrapper/Manifest
new file mode 100644
index 000000000000..b226aa14e47a
--- /dev/null
+++ b/net-wireless/ndiswrapper/Manifest
@@ -0,0 +1,2 @@
+DIST ndiswrapper-1.58.tar.gz 199065 SHA256 cbd225ecb0b835be7d05012483f61518fe97a52c67f20b35846412c692be24aa SHA512 161e87df13143841ff29f424e979cd9648a0022f0ad74c1189e398c832f5c4a77834fc9dde941c8202773064f2b312968c21b39c5023167fb67ae67ebd86795a WHIRLPOOL ffa5d625ddac2b58b45415eea0713666e77ec1806830921bf605c1f28a16239f367c78abe9af8d895647b577868e2f57581eb37d94e498d8a11c53afce586031
+DIST ndiswrapper-1.59.tar.gz 201257 SHA256 66a5d3ffb3fc8a63d87e381bbc627511597dfd25c4c37dda3b953ccf98f5d4bc SHA512 dd1d486b6178185e813217e4fff38f6ea6b21f8a3544c5cc25be9edbca60f34b21656e5d46b9d02cb1e43c8cc82856283aaa428964b8f85cb07146a41e40e44d WHIRLPOOL ae4dca59911625146de4e2da02b72bcf1b695e63c8d0d900a91ec9b0c5b7452c9ba0de37ad95129d330d96be16d9c4b488b5d40936f51af14dca2597281b7b84
diff --git a/net-wireless/ndiswrapper/files/ndiswrapper-1.56-cflags.patch b/net-wireless/ndiswrapper/files/ndiswrapper-1.56-cflags.patch
new file mode 100644
index 000000000000..480274e31c7f
--- /dev/null
+++ b/net-wireless/ndiswrapper/files/ndiswrapper-1.56-cflags.patch
@@ -0,0 +1,12 @@
+diff -ur ndiswrapper-1.56.orig/utils/Makefile ndiswrapper-1.56/utils/Makefile
+--- ndiswrapper-1.56.orig/utils/Makefile 2010-02-11 03:09:32.000000000 +0100
++++ ndiswrapper-1.56/utils/Makefile 2010-08-10 01:33:36.199000011 +0200
+@@ -5,7 +5,7 @@
+ DRIVER_DIR ?= ../driver
+
+ CC = gcc
+-CFLAGS = -g -Wall -I$(DRIVER_DIR)
++CFLAGS += -Wall -I$(DRIVER_DIR)
+
+ DISTFILES=Makefile ndiswrapper loadndisdriver.c ndiswrapper-buginfo
+
diff --git a/net-wireless/ndiswrapper/files/ndiswrapper-1.58-3.9.patch b/net-wireless/ndiswrapper/files/ndiswrapper-1.58-3.9.patch
new file mode 100644
index 000000000000..d9b7f3b58085
--- /dev/null
+++ b/net-wireless/ndiswrapper/files/ndiswrapper-1.58-3.9.patch
@@ -0,0 +1,32 @@
+diff --git a/driver/loader.c b/driver/loader.c
+index 406e6ba..6f2113f 100644
+--- a/driver/loader.c
++++ b/driver/loader.c
+@@ -575,7 +575,11 @@ static int load_user_space_driver(struct load_driver *load_driver)
+ } else {
+ printk(KERN_INFO "%s: driver %s (%s) loaded\n",
+ DRIVER_NAME, wrap_driver->name, wrap_driver->version);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
+ add_taint(TAINT_PROPRIETARY_MODULE);
++#else
++ add_taint(TAINT_PROPRIETARY_MODULE, LOCKDEP_STILL_OK);
++#endif
+ EXIT1(return 0);
+ }
+ }
+diff --git a/driver/wrapper.c b/driver/wrapper.c
+index f77c879..4fcbbe8 100644
+--- a/driver/wrapper.c
++++ b/driver/wrapper.c
+@@ -72,7 +72,11 @@ static void module_cleanup(void)
+ static int __init wrapper_init(void)
+ {
+ #ifdef TAINT_OOT_MODULE
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
+ add_taint(TAINT_OOT_MODULE);
++#else
++ add_taint(TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
++#endif
+ #endif
+ printk(KERN_INFO "%s version %s loaded (smp=%s, preempt=%s)\n",
+ DRIVER_NAME, DRIVER_VERSION,
diff --git a/net-wireless/ndiswrapper/files/ndiswrapper-1.59-3.14.patch b/net-wireless/ndiswrapper/files/ndiswrapper-1.59-3.14.patch
new file mode 100644
index 000000000000..9a696f8817f1
--- /dev/null
+++ b/net-wireless/ndiswrapper/files/ndiswrapper-1.59-3.14.patch
@@ -0,0 +1,48 @@
+Index: driver/crt.c
+===================================================================
+--- driver/crt.c (revision 3197)
++++ driver/crt.c (working copy)
+@@ -467,7 +467,7 @@
+ noregparm void WIN_FUNC(_win_srand,1)
+ (UINT seed)
+ {
+- net_srandom(seed);
++ prandom_seed(seed);
+ }
+
+ noregparm int WIN_FUNC(rand,0)
+Index: driver/ntoskernel.h
+===================================================================
+--- driver/ntoskernel.h (revision 3197)
++++ driver/ntoskernel.h (working copy)
+@@ -347,7 +347,7 @@
+ #define netdev_notifier_info_to_dev(x) ((struct net_device *)(x))
+ #endif
+
+-#ifdef INIT_COMPLETION
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0)
+ static inline void reinit_completion(struct completion *x)
+ {
+ INIT_COMPLETION(*x);
+@@ -354,6 +354,10 @@
+ }
+ #endif
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0)
++#define prandom_seed(seed) net_srandom(seed)
++#endif
++
+ /* TICK is 100ns */
+ #define TICKSPERSEC 10000000
+ #define TICKSPERMSEC 10000
+@@ -797,9 +801,8 @@
+ #define nt_spin_unlock_irqrestore(lock, flags) \
+ do { \
+ nt_spin_unlock(lock); \
+- preempt_enable_no_resched(); \
++ preempt_enable(); \
+ local_irq_restore(flags); \
+- preempt_check_resched(); \
+ } while (0)
+
+ static inline ULONG SPAN_PAGES(void *ptr, SIZE_T length)
diff --git a/net-wireless/ndiswrapper/files/ndiswrapper-1.59-cflags.patch b/net-wireless/ndiswrapper/files/ndiswrapper-1.59-cflags.patch
new file mode 100644
index 000000000000..25359c7c30c1
--- /dev/null
+++ b/net-wireless/ndiswrapper/files/ndiswrapper-1.59-cflags.patch
@@ -0,0 +1,13 @@
+diff --git a/utils/Makefile b/utils/Makefile
+index 0e763c6..d555dda 100644
+--- a/utils/Makefile
++++ b/utils/Makefile
+@@ -6,7 +6,7 @@ HEADERS = $(DRIVER_DIR)/loader.h $(DRIVER_DIR)/ndiswrapper.h
+
+ CC = gcc
+ HOSTCC = $(CC)
+-CFLAGS = -g -Wall -I$(DRIVER_DIR)
++CFLAGS += -I$(DRIVER_DIR)
+
+ DISTFILES=Makefile ndiswrapper loadndisdriver.c ndiswrapper-buginfo
+
diff --git a/net-wireless/ndiswrapper/metadata.xml b/net-wireless/ndiswrapper/metadata.xml
new file mode 100644
index 000000000000..ef0b1256a68d
--- /dev/null
+++ b/net-wireless/ndiswrapper/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>angelos@gentoo.org</email>
+ <name>Christoph Mende</name>
+ </maintainer>
+ <longdescription lang="en">ndiswrapper provides a kernel module and utility for
+ implementing the Windows(tm) NDIS API. This serves to provide drivers
+ for wireless cards that have no native support.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">ndiswrapper</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/ndiswrapper/ndiswrapper-1.58.ebuild b/net-wireless/ndiswrapper/ndiswrapper-1.58.ebuild
new file mode 100644
index 000000000000..3e7397acbab8
--- /dev/null
+++ b/net-wireless/ndiswrapper/ndiswrapper-1.58.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit base linux-mod toolchain-funcs
+
+DESCRIPTION="Wrapper for using Windows drivers for some wireless cards"
+HOMEPAGE="http://ndiswrapper.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/stable/${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="amd64 x86"
+IUSE="debug usb"
+
+DEPEND="sys-apps/pciutils"
+RDEPEND="${DEPEND}
+ net-wireless/wireless-tools"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.56-cflags.patch "${FILESDIR}"/${P}-3.9.patch )
+MODULE_NAMES="ndiswrapper(misc:${S}/driver)"
+BUILD_TARGETS="all"
+MODULESD_NDISWRAPPER_ALIASES=("wlan0 ndiswrapper")
+
+pkg_pretend() {
+ CONFIG_CHECK="~WEXT_PRIV"
+ use usb && CONFIG_CHECK="${CONFIG_CHECK} ~USB"
+ ERROR_USB="You need to enable USB support in your kernel to use usb support in ndiswrapper."
+ ERROR_WEXT_PRIV="Your kernel does not support WEXT_PRIV. To enable it you need to enable a wireless driver that enables it, for example PRISM54 or IPW2200"
+ linux-mod_pkg_setup
+}
+
+src_compile() {
+ local params
+
+ # Enable verbose debugging information
+ if use debug; then
+ params="DEBUG=3"
+ use usb && params="${params} USB_DEBUG=1"
+ fi
+
+ cd utils
+ emake CC=$(tc-getCC)
+
+ use usb || params="${params} DISABLE_USB=1"
+
+ BUILD_PARAMS="KSRC=${KV_DIR} KVERS=${KV_FULL} KBUILD='${KV_OUT_DIR}' ${params}"
+ linux-mod_src_compile
+}
+
+src_install() {
+ dodoc AUTHORS ChangeLog INSTALL README
+ doman ndiswrapper.8
+
+ keepdir /etc/ndiswrapper
+
+ linux-mod_src_install
+
+ cd utils
+ emake DESTDIR="${D}" install
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ echo
+ elog "NDISwrapper requires .inf and .sys files from a Windows(tm) driver"
+ elog "to function. Download these to /root for example, then"
+ elog "run 'ndiswrapper -i /root/foo.inf'. After that you can delete them."
+ elog "They will be copied to /etc/ndiswrapper/."
+ elog "Once done, please run 'update-modules'."
+ echo
+
+ elog "Please look at ${HOMEPAGE}"
+ elog "for the FAQ, HowTos, tips, configuration, and installation"
+ elog "information."
+ echo
+
+ for i in $(lspci -n | egrep '(0280|0200):' | cut -d' ' -f1)
+ do
+ i_desc=$(lspci -nn | grep "$i" | awk -F': ' '{print $2}' | awk -F'[' '{print $1}')
+ if [[ -n "${i_desc}" ]] ; then
+ elog "Possible hardware: ${i_desc}"
+ fi
+ done
+
+ echo
+ elog "NDISwrapper devs need support (_hardware_, cash)."
+ elog "Don't hesitate if you can help."
+ elog "See ${HOMEPAGE} for details."
+ echo
+
+ if [[ ${ROOT} == "/" ]]; then
+
+ einfo "Attempting to automatically reinstall any Windows drivers"
+ einfo "you might already have."
+ echo
+
+ local driver
+ for driver in $(ls /etc/ndiswrapper) ; do
+ einfo "Driver: ${driver}"
+ mv "/etc/ndiswrapper/${driver}" "${T}"
+ ndiswrapper -i "${T}/${driver}/${driver}.inf"
+ done
+ fi
+}
diff --git a/net-wireless/ndiswrapper/ndiswrapper-1.59.ebuild b/net-wireless/ndiswrapper/ndiswrapper-1.59.ebuild
new file mode 100644
index 000000000000..955d76b8ce7e
--- /dev/null
+++ b/net-wireless/ndiswrapper/ndiswrapper-1.59.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit base linux-mod toolchain-funcs
+
+DESCRIPTION="Wrapper for using Windows drivers for some wireless cards"
+HOMEPAGE="http://ndiswrapper.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/stable/${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="amd64 x86"
+IUSE="debug usb"
+
+DEPEND="sys-apps/pciutils"
+RDEPEND="${DEPEND}
+ net-wireless/wireless-tools"
+
+PATCHES=( "${FILESDIR}"/${P}-cflags.patch
+ "${FILESDIR}"/${P}-3.14.patch )
+MODULE_NAMES="ndiswrapper(misc:${S}/driver)"
+BUILD_TARGETS="all"
+MODULESD_NDISWRAPPER_ALIASES=("wlan0 ndiswrapper")
+
+pkg_pretend() {
+ CONFIG_CHECK="~WEXT_PRIV"
+ use usb && CONFIG_CHECK="${CONFIG_CHECK} ~USB"
+ ERROR_USB="You need to enable USB support in your kernel to use usb support in ndiswrapper."
+ ERROR_WEXT_PRIV="Your kernel does not support WEXT_PRIV. To enable it you need to enable a wireless driver that enables it, for example PRISM54 or IPW2200"
+ linux-mod_pkg_setup
+}
+
+src_compile() {
+ local params
+
+ # Enable verbose debugging information
+ if use debug; then
+ params="DEBUG=3"
+ use usb && params="${params} USB_DEBUG=1"
+ fi
+
+ cd utils
+ emake CC=$(tc-getCC)
+
+ use usb || params="${params} DISABLE_USB=1"
+
+ BUILD_PARAMS="KSRC=${KV_DIR} KVERS=${KV_FULL} KBUILD='${KV_OUT_DIR}' ${params}"
+ linux-mod_src_compile
+}
+
+src_install() {
+ dodoc AUTHORS ChangeLog INSTALL README
+ doman ndiswrapper.8
+
+ keepdir /etc/ndiswrapper
+
+ linux-mod_src_install
+
+ cd utils
+ emake DESTDIR="${D}" install
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ echo
+ elog "NDISwrapper requires .inf and .sys files from a Windows(tm) driver"
+ elog "to function. Download these to /root for example, then"
+ elog "run 'ndiswrapper -i /root/foo.inf'. After that you can delete them."
+ elog "They will be copied to /etc/ndiswrapper/."
+ elog "Once done, please run 'update-modules'."
+ echo
+
+ elog "Please look at ${HOMEPAGE}"
+ elog "for the FAQ, HowTos, tips, configuration, and installation"
+ elog "information."
+ echo
+
+ for i in $(lspci -n | egrep '(0280|0200):' | cut -d' ' -f1)
+ do
+ i_desc=$(lspci -nn | grep "$i" | awk -F': ' '{print $2}' | awk -F'[' '{print $1}')
+ if [[ -n "${i_desc}" ]] ; then
+ elog "Possible hardware: ${i_desc}"
+ fi
+ done
+
+ echo
+ elog "NDISwrapper devs need support (_hardware_, cash)."
+ elog "Don't hesitate if you can help."
+ elog "See ${HOMEPAGE} for details."
+ echo
+
+ if [[ ${ROOT} == "/" ]]; then
+
+ einfo "Attempting to automatically reinstall any Windows drivers"
+ einfo "you might already have."
+ echo
+
+ local driver
+ for driver in $(ls /etc/ndiswrapper) ; do
+ einfo "Driver: ${driver}"
+ mv "/etc/ndiswrapper/${driver}" "${T}"
+ ndiswrapper -i "${T}/${driver}/${driver}.inf"
+ done
+ fi
+}
diff --git a/net-wireless/neard/Manifest b/net-wireless/neard/Manifest
new file mode 100644
index 000000000000..8e12edc12663
--- /dev/null
+++ b/net-wireless/neard/Manifest
@@ -0,0 +1,3 @@
+DIST neard-0.11.tar.xz 330192 SHA256 6c802ac1f74051ea078e5aa0d1d01ee83fc2f8e5cd41444d76669a090d1b356d SHA512 485098e0eb2d3daecc9732cd134e14d874c2ace725251db1813d841e1949fac493b8dc7dde62079fd41f429eb76463733b7be8d7e4d7b441ea93c9b0161d3f05 WHIRLPOOL 811fcd1f7210798bf62b5a7a8db1607f8768707d4bfc204c855ef94b3df1d6486d20761140e2f233c37a9ba78ad1f0d7a2a48046bc9a775c6799226ff4cc6289
+DIST neard-0.13.tar.xz 342872 SHA256 f5b849b863e43b06fa6bbc5fefb6638dc426769738f43eee159c90e696ac20f5 SHA512 ae59c5b2cae553457151935273f604671e842cba6d239af6ae12be62c621240fb35bb70858d2ab87b7062ee041e21ba0af20c8bd6637cc2484b151bc56dd9982 WHIRLPOOL 713540c16bd915bcf2561e4f7b84fd43b61455cd7900583611222d5c5da11d6538eb4c090d729643823e13d6de17d97646fbebbd6664cc920a13d86e2e69197a
+DIST neard-0.15.tar.xz 368196 SHA256 651f6513d32cdaf8a426255d03aff38a6620a89b0567ec2b36606c6330a93353 SHA512 daaa001a305f0d200bb03bf614c938256fa5c07d480bf820d5e83da80d930e060b5bb6a09234f1c3f7ecbd3cb0af378a1de675dd4dcd99b728677430e0cd111d WHIRLPOOL e066ec628760275866ae0ba8d5dbea68784c00963dcc5f1dbea8352c45098b34835ce609665ded9f15b266998902069370c9c0a2947ee46cbd6220ae79c1e513
diff --git a/net-wireless/neard/files/neard.confd b/net-wireless/neard/files/neard.confd
new file mode 100644
index 000000000000..ca0474e6607f
--- /dev/null
+++ b/net-wireless/neard/files/neard.confd
@@ -0,0 +1,8 @@
+# conf.d file for neard
+#
+# Please check connmand --help for more information.
+# Useful options are:
+# -d, --debug=DEBUG: Specify debug options to enable
+# -p, --plugin=NAME: specify plugins to load.
+# -P, --noplugin=NAME: specify plugins not to load.
+NEARD_OPTS="" \ No newline at end of file
diff --git a/net-wireless/neard/files/neard.rc b/net-wireless/neard/files/neard.rc
new file mode 100644
index 000000000000..c2df4356fed1
--- /dev/null
+++ b/net-wireless/neard/files/neard.rc
@@ -0,0 +1,23 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Purpose License v2
+# $Id$
+
+name="NFC daemon"
+
+command="/usr/libexec/nfc/neard"
+command_args="${NEARD_OPTS}"
+
+start_stop_daemon_args="--exec /usr/libexec/nfc/neard"
+
+depend() {
+ need dbus
+}
+
+start_pre() {
+ if [ -e /proc/modules ] ; then
+ if ! grep -qs NFC_RAW /proc/net/protocols ; then
+ modprobe -q nfc
+ fi
+ fi
+}
diff --git a/net-wireless/neard/metadata.xml b/net-wireless/neard/metadata.xml
new file mode 100644
index 000000000000..4c62f47ff2df
--- /dev/null
+++ b/net-wireless/neard/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+ <email>vapier@gentoo.org</email>
+ <description>fix what you like</description>
+</maintainer>
+<use>
+ <flag name='tools'>build and install extra helper utilities</flag>
+</use>
+</pkgmetadata>
diff --git a/net-wireless/neard/neard-0.11.ebuild b/net-wireless/neard/neard-0.11.ebuild
new file mode 100644
index 000000000000..704a5a4fb56b
--- /dev/null
+++ b/net-wireless/neard/neard-0.11.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+DESCRIPTION="Near Field Communication (NFC) management daemon"
+HOMEPAGE="https://01.org/linux-nfc/"
+SRC_URI="mirror://kernel/linux/network/nfc/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="tools"
+
+RDEPEND=">=dev-libs/glib-2.28:2
+ dev-libs/libnl
+ >=sys-apps/dbus-1.2.24"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ econf $(use_enable tools)
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/${PN}.rc ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
diff --git a/net-wireless/neard/neard-0.13.ebuild b/net-wireless/neard/neard-0.13.ebuild
new file mode 100644
index 000000000000..4a16b82a94b0
--- /dev/null
+++ b/net-wireless/neard/neard-0.13.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Near Field Communication (NFC) management daemon"
+HOMEPAGE="https://01.org/linux-nfc/"
+SRC_URI="mirror://kernel/linux/network/nfc/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="tools"
+
+RDEPEND=">=dev-libs/glib-2.28:2
+ dev-libs/libnl
+ >=sys-apps/dbus-1.2.24"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ econf $(use_enable tools)
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/${PN}.rc ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
diff --git a/net-wireless/neard/neard-0.15.ebuild b/net-wireless/neard/neard-0.15.ebuild
new file mode 100644
index 000000000000..85c9e602cdad
--- /dev/null
+++ b/net-wireless/neard/neard-0.15.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Near Field Communication (NFC) management daemon"
+HOMEPAGE="https://01.org/linux-nfc/"
+SRC_URI="mirror://kernel/linux/network/nfc/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="tools systemd"
+
+RDEPEND=">=dev-libs/glib-2.28:2
+ dev-libs/libnl
+ systemd? ( sys-apps/systemd:0 )
+ >=sys-apps/dbus-1.2.24"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ econf $(use_enable systemd) $(use_enable tools)
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/${PN}.rc ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
diff --git a/net-wireless/openbsc/metadata.xml b/net-wireless/openbsc/metadata.xml
new file mode 100644
index 000000000000..12594d574d51
--- /dev/null
+++ b/net-wireless/openbsc/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+ <use>
+ <flag name="gprs">Support GPRS via OpenGGSN</flag>
+ </use>
+</pkgmetadata>
+
diff --git a/net-wireless/openbsc/openbsc-9999.ebuild b/net-wireless/openbsc/openbsc-9999.ebuild
new file mode 100644
index 000000000000..a8b11303a00a
--- /dev/null
+++ b/net-wireless/openbsc/openbsc-9999.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools git-2 eutils
+
+DESCRIPTION="OpenBSC, OsmoSGSN, OsmoBSC and other programs"
+HOMEPAGE="http://openbsc.osmocom.org/trac/wiki/OpenBSC"
+EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+EGIT_BRANCH="jolly/testing"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="+gprs"
+
+DEPEND="
+ gprs? ( net-wireless/openggsn )
+ net-libs/libosmocore
+ net-libs/libosmo-abis
+ dev-db/libdbi"
+RDEPEND="${DEPEND}
+ dev-db/libdbi-drivers[sqlite]
+ dev-db/sqlite:3"
+
+S="${WORKDIR}/${P}/${PN}"
+EGIT_SOURCEDIR="${WORKDIR}/${P}"
+
+src_prepare() {
+ epatch_user
+ eautoreconf
+}
diff --git a/net-wireless/openggsn/metadata.xml b/net-wireless/openggsn/metadata.xml
new file mode 100644
index 000000000000..c1b4dee070d2
--- /dev/null
+++ b/net-wireless/openggsn/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+</pkgmetadata>
+
diff --git a/net-wireless/openggsn/openggsn-9999.ebuild b/net-wireless/openggsn/openggsn-9999.ebuild
new file mode 100644
index 000000000000..63ef8dece113
--- /dev/null
+++ b/net-wireless/openggsn/openggsn-9999.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit git-2 autotools
+
+DESCRIPTION="Gateway GPRS Support Node"
+HOMEPAGE="http://openbsc.osmocom.org/trac/wiki/OpenBSC_GPRS"
+EGIT_REPO_URI="git://git.osmocom.org/openggsn"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ eautoreconf
+}
diff --git a/net-wireless/orinoco-fwutils/Manifest b/net-wireless/orinoco-fwutils/Manifest
new file mode 100644
index 000000000000..27959b0fa77a
--- /dev/null
+++ b/net-wireless/orinoco-fwutils/Manifest
@@ -0,0 +1,2 @@
+DIST orinoco-fwutils-0.1.tar.gz 5612 SHA256 4c4a40b105c3f0c2936ff3018f14645b644b098dc4b29d9e4230b03c038852f3
+DIST orinoco-fwutils-0.3.tar.gz 5802 SHA256 ad40ef45259367677fc526a4c607287fa4c8fcd004bad1171a6f2a7275c5f96d SHA512 5222c7e651170d34694fc77056042a535bd4c17fe6e806d9b2a1be38a828c58789e98566109f37dfb800efce5bd0b99f0e2ad98e0e72bfbc663b875b00ceb7e2 WHIRLPOOL fd4a3630d52a2d7848f031eea6078868842009aece87b497aa37c1b7a1f15d32754f02fe41b15ec542f785a26fc02f98a9ce2f66d2e5fb9f931ad6217e418c6f
diff --git a/net-wireless/orinoco-fwutils/metadata.xml b/net-wireless/orinoco-fwutils/metadata.xml
new file mode 100644
index 000000000000..5829a2106d33
--- /dev/null
+++ b/net-wireless/orinoco-fwutils/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>steev@gentoo.org</email>
+ <name>Stephen Klimaszweski</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">orinoco</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/orinoco-fwutils/orinoco-fwutils-0.1.ebuild b/net-wireless/orinoco-fwutils/orinoco-fwutils-0.1.ebuild
new file mode 100644
index 000000000000..b30b6d59f1e3
--- /dev/null
+++ b/net-wireless/orinoco-fwutils/orinoco-fwutils-0.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="ORiNOCO IEEE 802.11 wireless LAN firmware utilities"
+HOMEPAGE="http://www.nongnu.org/orinoco/"
+SRC_URI="mirror://sourceforge/orinoco/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="x86"
+
+IUSE=""
+RDEPEND="app-arch/unzip
+ dev-lang/perl
+ net-misc/wget
+ sys-apps/coreutils
+ sys-apps/sed"
+
+src_unpack() {
+ unpack ${A}
+
+ # fix paths
+ for file in "${S}"/get_*; do
+ sed -i \
+ -e "s:parse_:/usr/bin/parse_:g" \
+ -e "s:\./::g" \
+ ${file}
+ done
+}
+
+src_install() {
+ dobin get_* parse_*
+
+ dodoc README
+}
+
+pkg_postinst() {
+ einfo
+ einfo "After fetching the firmware using these tools you must place it in"
+ einfo "/lib/firmware/ for the kernel driver to be able to load it."
+ einfo
+}
diff --git a/net-wireless/orinoco-fwutils/orinoco-fwutils-0.3.ebuild b/net-wireless/orinoco-fwutils/orinoco-fwutils-0.3.ebuild
new file mode 100644
index 000000000000..4fb2d4717ea8
--- /dev/null
+++ b/net-wireless/orinoco-fwutils/orinoco-fwutils-0.3.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+DESCRIPTION="ORiNOCO IEEE 802.11 wireless LAN firmware utilities"
+HOMEPAGE="http://www.nongnu.org/orinoco/"
+SRC_URI="mirror://sourceforge/orinoco/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="x86"
+
+IUSE=""
+RDEPEND="app-arch/unzip
+ dev-lang/perl
+ net-misc/wget
+ sys-apps/coreutils
+ sys-apps/sed"
+DEPEND=""
+
+src_unpack() {
+ unpack ${A}
+
+ # fix paths
+ for file in "${S}"/get_*; do
+ sed -i \
+ -e "s:parse_:/usr/bin/parse_:g" \
+ -e "s:\./::g" \
+ ${file}
+ done
+}
+
+src_install() {
+ dobin get_* parse_*
+
+ dodoc README SHA1SUM
+}
+
+pkg_postinst() {
+ elog "After fetching the firmware using these tools you must place it in"
+ elog "/lib/firmware/ for the kernel driver to be able to load it."
+}
diff --git a/net-wireless/orinoco-usb/metadata.xml b/net-wireless/orinoco-usb/metadata.xml
new file mode 100644
index 000000000000..4538a68724a6
--- /dev/null
+++ b/net-wireless/orinoco-usb/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer><email>maintainer-needed@gentoo.org</email></maintainer>
+</pkgmetadata>
diff --git a/net-wireless/orinoco-usb/orinoco-usb-9999.ebuild b/net-wireless/orinoco-usb/orinoco-usb-9999.ebuild
new file mode 100644
index 000000000000..9c8daca9f5aa
--- /dev/null
+++ b/net-wireless/orinoco-usb/orinoco-usb-9999.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit linux-mod subversion
+
+ESVN_REPO_URI="http://orinoco.svn.sourceforge.net/svnroot/orinoco/branches/usb"
+
+DESCRIPTION="ORiNOCO IEEE 802.11 wireless LAN driver"
+HOMEPAGE="http://www.nongnu.org/orinoco/"
+SRC_URI=""
+
+LICENSE="GPL-2 MPL-1.1"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+RDEPEND="!net-wireless/orinoco-sn
+ net-wireless/wireless-tools
+ net-wireless/orinoco-fwutils"
+
+BUILD_TARGETS="all"
+
+CONFIG_CHECK="FW_LOADER WIRELESS_EXT USB"
+ERROR_FW_LOADER="${P} requires support for loading firmware (CONFIG_FWLOADER)."
+ERROR_WIRELESS_EXT="${P} requires support for Wireless LAN drivers (non-hamradio) & Wireless Extensions (CONFIG_WIRELESS_EXT)."
+ERROR_USB="${P} requires USB support (CONFIG_USB)."
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ if kernel_is lt 2 6 21; then
+ eerror "${P} requires kernel 2.6.21 or above."
+ die "Kernel version too old."
+ fi
+
+ MOD_PATH="/net/wireless"
+ MODULE_NAMES="orinoco(${MOD_PATH}:) orinoco_usb(${MOD_PATH}:)"
+ BUILD_PARAMS="KERNEL_PATH=${KV_OUT_DIR}"
+}
+
+# Don't have modified install in order to provide docs, since docs are too old
diff --git a/net-wireless/osmobts/metadata.xml b/net-wireless/osmobts/metadata.xml
new file mode 100644
index 000000000000..c1b4dee070d2
--- /dev/null
+++ b/net-wireless/osmobts/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+</pkgmetadata>
+
diff --git a/net-wireless/osmobts/osmobts-9999.ebuild b/net-wireless/osmobts/osmobts-9999.ebuild
new file mode 100644
index 000000000000..7f7a4e9eeb8f
--- /dev/null
+++ b/net-wireless/osmobts/osmobts-9999.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools git-2
+
+DESCRIPTION="Osmocom BTS-Side code (Abis, scheduling)"
+HOMEPAGE="http://openbsc.osmocom.org/trac/wiki/OsmoBTS"
+EGIT_REPO_URI="git://git.osmocom.org/osmo-bts.git"
+EGIT_BRANCH="jolly/trx"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND="net-libs/libosmocore net-libs/libosmo-abis"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ mkdir -p ../openbsc/openbsc/include/openbsc ../openbsc/openbsc/src/libcommon/ || die
+ wget -O ../openbsc/openbsc/include/openbsc/gsm_data_shared.h http://cgit.osmocom.org/openbsc/plain/openbsc/include/openbsc/gsm_data_shared.h?h=jolly/testing || die
+ wget -O ../openbsc/openbsc/src/libcommon/gsm_data_shared.c http://cgit.osmocom.org/openbsc/plain/openbsc/src/libcommon/gsm_data_shared.c?h=jolly/testing || die
+ eautoreconf
+}
+
+src_configure() {
+ econf --enable-trx
+}
diff --git a/net-wireless/osmocom-bb/metadata.xml b/net-wireless/osmocom-bb/metadata.xml
new file mode 100644
index 000000000000..27f6a806d767
--- /dev/null
+++ b/net-wireless/osmocom-bb/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+ <use>
+ <flag name="transmit">Enable transmission capabilities.</flag>
+ </use>
+</pkgmetadata>
+
diff --git a/net-wireless/osmocom-bb/osmocom-bb-9999.ebuild b/net-wireless/osmocom-bb/osmocom-bb-9999.ebuild
new file mode 100644
index 000000000000..c4de65f3adce
--- /dev/null
+++ b/net-wireless/osmocom-bb/osmocom-bb-9999.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit git-2 autotools flag-o-matic
+
+DESCRIPTION="OsmocomBB MS-side GSM Protocol stack (L1, L2, L3) excluding firmware"
+HOMEPAGE="http://bb.osmocom.org"
+EGIT_REPO_URI="git://git.osmocom.org/osmocom-bb.git"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="+transmit"
+
+DEPEND="net-libs/libosmocore"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ use transmit && append-cflags "-DCONFIG_TX_ENABLE"
+
+ cd src/host/osmocon && eautoreconf && cd ../../.. || die
+ cd src/host/gsmmap && eautoreconf && cd ../../.. || die
+ cd src/host/layer23 && eautoreconf && cd ../../.. || die
+}
+
+src_configure() {
+ cd src/host/osmocon && econf && cd ../../.. || die
+ cd src/host/gsmmap && econf && cd ../../.. || die
+ cd src/host/layer23 && econf && cd ../../.. || die
+}
+
+src_compile() {
+ cd src/host/osmocon && emake && cd ../../.. || die
+ cd src/host/gsmmap && emake && cd ../../.. || die
+ cd src/host/layer23 && emake && cd ../../.. || die
+
+}
+
+src_install() {
+ cd src/host/osmocon && emake install DESTDIR="${D}" && cd ../../.. || die
+ cd src/host/gsmmap && emake install DESTDIR="${D}" && cd ../../.. || die
+ cd src/host/layer23 && emake install DESTDIR="${D}" && cd ../../.. || die
+}
diff --git a/net-wireless/portapack-firmware/Manifest b/net-wireless/portapack-firmware/Manifest
new file mode 100644
index 000000000000..8413aa9a22dc
--- /dev/null
+++ b/net-wireless/portapack-firmware/Manifest
@@ -0,0 +1 @@
+DIST portapack-h1-firmware-20150722.tar.bz2 86962 SHA256 9692b9a4b3cc1fa1ed5192b594c21ef1fd14e0b7a3d9a61086e4660b14dd4698 SHA512 b5647f8ad5d954d91e087ce281585b0e9d5c0ba459fb16068ac93adfa130a50df0b3ac7111c742ac33bb9df5ab4fb30da55a265504e0c55e9b80726fd51da6c8 WHIRLPOOL 2c9c77b65678f06b083ca5f815b335f101facc64c96dd3d9cad2629f5969881a4ba6964b00696033621ae76a6b8c2db62198f1c8f0c9d23de90c45cf3e6aa82d
diff --git a/net-wireless/portapack-firmware/metadata.xml b/net-wireless/portapack-firmware/metadata.xml
new file mode 100644
index 000000000000..4b7209f1850c
--- /dev/null
+++ b/net-wireless/portapack-firmware/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="github">sharebrained/portapack-hackrf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/portapack-firmware/portapack-firmware-20150722.ebuild b/net-wireless/portapack-firmware/portapack-firmware-20150722.ebuild
new file mode 100644
index 000000000000..1f9450476754
--- /dev/null
+++ b/net-wireless/portapack-firmware/portapack-firmware-20150722.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+DESCRIPTION="Firmware and scripts for controlling the Portapack from Sharebrained"
+HOMEPAGE="https://github.com/sharebrained/portapack-hackrf/releases"
+SRC_URI="https://github.com/sharebrained/portapack-hackrf/releases/download/20150722/portapack-h1-firmware-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+PDEPEND=">=net-wireless/hackrf-tools-2015.07.2-r1
+ =app-mobilephone/dfu-util-0.7"
+
+S="${WORKDIR}"
+
+src_install() {
+ insinto /usr/share/hackrf
+ newins portapack-h1-firmware.bin portapack-h1-firmware-${PV}.bin
+ ln -s portapack-h1-firmware-${PV}.bin "${ED}/usr/share/hackrf/portapack-h1-firmware.bin"
+
+ cat << EOF > switch_to_portapack
+#!/bin/sh
+printf "Hold down the HackRF's DFU button (the button closest to the antenna jack)\n"
+printf "then plug the HackRF into a USB port on your computer.\n"
+printf "After the HackRF is plugged in, you may release the DFU button.\n"
+printf "Press any key to continue or ^c to abort\n"
+read
+dfu-util --device 1fc9:000c --download /usr/share/hackrf/hackrf_one_usb_ram.dfu --reset
+sleep 2s
+hackrf_spiflash -w /usr/share/hackrf/portapack-h1-firmware.bin
+EOF
+ dobin switch_to_portapack
+ cat << EOF > switch_to_hackrf
+#!/bin/sh
+printf "Hold down the HackRF's DFU button (the button closest to the antenna jack)\n"
+printf "then plug the HackRF into a USB port on your computer.\n"
+printf "After the HackRF is plugged in, you may release the DFU button.\n"
+printf "Press any key to continue or ^c to abort\n"
+read
+dfu-util --device 1fc9:000c --download /usr/share/hackrf/hackrf_one_usb_ram.dfu --reset
+sleep 2s
+hackrf_spiflash -w /usr/share/hackrf/hackrf_one_usb_rom_to_ram.bin
+EOF
+ dobin switch_to_hackrf
+}
diff --git a/net-wireless/pyrit/Manifest b/net-wireless/pyrit/Manifest
new file mode 100644
index 000000000000..054fffb3f295
--- /dev/null
+++ b/net-wireless/pyrit/Manifest
@@ -0,0 +1 @@
+DIST pyrit-0.4.0.tar.gz 191614 SHA256 eb1a21cb844b1ded3eab613a8e9d5e4ef901530b04668fb18fe82ed1b4afa7cc SHA512 8111b3f6f1a94319f5e146db6c184eb391c03ca554b20ea7227237afbc546a064898835ad16007333bb63aa725079046d413be11dfc3ecb76c77b6ac5096f7e9 WHIRLPOOL b4f3bd214e0fb7a96f0804d472ab3ad0876978a65ebce85dc7ab2dfa4de8f8e9850f025a9c70d920a697455ca871d7cebe43ec9e9cb753d71663a4cacf6a2413
diff --git a/net-wireless/pyrit/metadata.xml b/net-wireless/pyrit/metadata.xml
new file mode 100644
index 000000000000..947800281927
--- /dev/null
+++ b/net-wireless/pyrit/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<maintainer>
+ <email>oleg@kaa.org.ua</email>
+ <name>Oleg Kravchenko</name>
+</maintainer>
+<maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+</maintainer>
+<use>
+ <flag name="cuda">Enable CUDA support via <pkg>net-wireless/cpyrit-cuda</pkg></flag>
+ <flag name="opencl">Enable OpenCL support via <pkg>net-wireless/cpyrit-opencl</pkg></flag>
+</use>
+</pkgmetadata>
diff --git a/net-wireless/pyrit/pyrit-0.4.0-r1.ebuild b/net-wireless/pyrit/pyrit-0.4.0-r1.ebuild
new file mode 100644
index 000000000000..2f4509a962e3
--- /dev/null
+++ b/net-wireless/pyrit/pyrit-0.4.0-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="GPU-accelerated attack against WPA-PSK authentication"
+HOMEPAGE="http://code.google.com/p/pyrit/"
+SRC_URI="http://pyrit.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="cuda opencl test"
+
+DEPEND="dev-libs/openssl
+ net-libs/libpcap
+ test? ( >=net-analyzer/scapy-2[${PYTHON_USEDEP}] )"
+RDEPEND=">=net-analyzer/scapy-2
+ opencl? ( net-wireless/cpyrit-opencl )
+ cuda? ( net-wireless/cpyrit-cuda )"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_test() {
+ cd test
+ "${PYTHON}" test_pyrit.py
+}
diff --git a/net-wireless/python-wifi/Manifest b/net-wireless/python-wifi/Manifest
new file mode 100644
index 000000000000..1bf83c08e868
--- /dev/null
+++ b/net-wireless/python-wifi/Manifest
@@ -0,0 +1 @@
+DIST python-wifi-0.5.0.tar.bz2 69113 SHA256 3e3f645d37ab20450f60c785cec5f21b330f28a6c46c7c1b0898305dd7a34b26 SHA512 cbbb337b20f60bb28597dc6e3c90b8d20ddee9512cf000ca0107eb01d2bfde1b3047458d1a3f4dc4b9836ae283cbc24792ffb95c4747027896cd6e50a72151d8 WHIRLPOOL d31688208976d8b5e3ea44211fc9e752238723d86aeb3aae5e28ba2e977881cd2bd6be8267dcd1507ee0681fba3aa65d6dfdc8cb84226aef391461e225a37406
diff --git a/net-wireless/python-wifi/metadata.xml b/net-wireless/python-wifi/metadata.xml
new file mode 100644
index 000000000000..bb3d54433065
--- /dev/null
+++ b/net-wireless/python-wifi/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">python-wifi.berlios</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/python-wifi/python-wifi-0.5.0-r1.ebuild b/net-wireless/python-wifi/python-wifi-0.5.0-r1.ebuild
new file mode 100644
index 000000000000..d57d7a397a1b
--- /dev/null
+++ b/net-wireless/python-wifi/python-wifi-0.5.0-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.* *-jython"
+
+inherit distutils
+
+DESCRIPTION="Provides r/w access to a wireless network card's capabilities using the Linux Wireless Extensions"
+HOMEPAGE="http://pypi.python.org/pypi/python-wifi https://developer.berlios.de/projects/pythonwifi"
+SRC_URI="mirror://berlios/${PN/-}/${P}.tar.bz2"
+
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ~mips ppc ppc64 sparc x86"
+LICENSE="LGPL-2.1 examples? ( GPL-2 )"
+IUSE="examples"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools"
+
+DOCS="docs/AUTHORS docs/BUGS docs/DEVEL.txt docs/TODO"
+PYTHON_MODNAME="pythonwifi"
+
+src_install() {
+ distutils_src_install
+ if use examples; then
+ insinto /usr/share/${P}/
+ doins -r examples || die "no examples"
+ fi
+ rm -rvf "${ED}"/usr/{docs,examples,INSTALL,README} || die
+ mv -v "${ED}"/usr{,/share}/man || die
+}
diff --git a/net-wireless/python-wifi/python-wifi-0.5.0-r3.ebuild b/net-wireless/python-wifi/python-wifi-0.5.0-r3.ebuild
new file mode 100644
index 000000000000..3c8d88d41c99
--- /dev/null
+++ b/net-wireless/python-wifi/python-wifi-0.5.0-r3.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit distutils-r1
+
+DESCRIPTION="Provides r/w access to a wireless network card's capabilities using the Linux Wireless Extensions"
+HOMEPAGE="http://pypi.python.org/pypi/python-wifi"
+SRC_URI="mirror://sourceforge/${PN}.berlios/${P}.tar.bz2"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+LICENSE="LGPL-2.1 examples? ( GPL-2 )"
+IUSE="examples"
+
+RDEPEND=""
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+
+DOCS=( docs/AUTHORS docs/BUGS docs/DEVEL.txt docs/TODO )
+
+src_install() {
+ distutils-r1_src_install
+ use examples && dodoc -r examples
+ rm -rv "${ED}"/usr/{docs,examples,INSTALL,README} || die
+ if use examples; then
+ mv -v "${ED}"/usr{,/share}/man || die
+ else
+ rm -rv "${ED}"/usr/man || die
+ fi
+}
diff --git a/net-wireless/reaver/Manifest b/net-wireless/reaver/Manifest
new file mode 100644
index 000000000000..68b64f2ea50e
--- /dev/null
+++ b/net-wireless/reaver/Manifest
@@ -0,0 +1 @@
+DIST reaver-1.4.tar.gz 766603 SHA256 add3050a4a05fe0ab6bfb291ee2de8e9b8a85f1e64ced93ee27a75744954b22d SHA512 59f2d6f8aa6228988ce5d1c102d9a48b2a23e582ff3d9afe39d7c9717b7e4be059362fdd21a3e5f5d59948df1a7616acdaa6df20f139e9c5aa9bd673f764dfbc WHIRLPOOL 5b8a91fe97bf08d6dc544b41dd04baedb9488d574e9a0695d8babeb34a9fa5acc81cfc86899c600b12b445cb83887dfbb18517f2ebbd5d34ab27e8c9ce428e38
diff --git a/net-wireless/reaver/files/reaver-1.4_cflags.patch b/net-wireless/reaver/files/reaver-1.4_cflags.patch
new file mode 100644
index 000000000000..e4e1da718d64
--- /dev/null
+++ b/net-wireless/reaver/files/reaver-1.4_cflags.patch
@@ -0,0 +1,47 @@
+--- a/src/wps/Makefile
++++ b/src/wps/Makefile
+@@ -1,34 +1,34 @@
+-CC=gcc
++CC?=gcc
+ INC=-I../utils -I ../
+
+ all: wps_attr_build.o wps_attr_parse.o wps_attr_process.o wps.o wps_common.o wps_dev_attr.o wps_enrollee.o wps_registrar.o wps_ufd.o
+
+ wps_attr_build.o:
+- $(CC) $(INC) wps_attr_build.c -c
++ $(CC) $(CFLAGS) $(INC) wps_attr_build.c -c
+
+ wps_attr_parse.o:
+- $(CC) $(INC) wps_attr_parse.c -c
++ $(CC) $(CFLAGS) $(INC) wps_attr_parse.c -c
+
+ wps_attr_process.o:
+- $(CC) $(INC) wps_attr_process.c -c
++ $(CC) $(CFLAGS) $(INC) wps_attr_process.c -c
+
+ wps.o:
+- $(CC) $(INC) wps.c -c
++ $(CC) $(CFLAGS) $(INC) wps.c -c
+
+ wps_common.o:
+- $(CC) $(INC) wps_common.c -c
++ $(CC) $(CFLAGS) $(INC) wps_common.c -c
+
+ wps_dev_attr.o:
+- $(CC) $(INC) wps_dev_attr.c -c
++ $(CC) $(CFLAGS) $(INC) wps_dev_attr.c -c
+
+ wps_enrollee.o:
+- $(CC) $(INC) wps_enrollee.c -c
++ $(CC) $(CFLAGS) $(INC) wps_enrollee.c -c
+
+ wps_registrar.o:
+- $(CC) $(INC) wps_registrar.c -c
++ $(CC) $(CFLAGS) $(INC) wps_registrar.c -c
+
+ wps_ufd.o:
+- $(CC) $(INC) wps_ufd.c -c
++ $(CC) $(CFLAGS) $(INC) wps_ufd.c -c
+
+ clean:
+ rm -f *.o
diff --git a/net-wireless/reaver/files/reaver-1.4_memset.patch b/net-wireless/reaver/files/reaver-1.4_memset.patch
new file mode 100644
index 000000000000..782910a3f0f5
--- /dev/null
+++ b/net-wireless/reaver/files/reaver-1.4_memset.patch
@@ -0,0 +1,11 @@
+--- a/src/crypto/md5-internal.c
++++ b/src/crypto/md5-internal.c
+@@ -188,7 +188,7 @@
+ MD5Transform(ctx->buf, (u32 *) ctx->in);
+ byteReverse((unsigned char *) ctx->buf, 4);
+ os_memcpy(digest, ctx->buf, 16);
+- os_memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
++ os_memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */
+ }
+
+ /* The four core functions - F1 is optimized somewhat */
diff --git a/net-wireless/reaver/files/reaver-1.4_parallel-make.patch b/net-wireless/reaver/files/reaver-1.4_parallel-make.patch
new file mode 100644
index 000000000000..f880cd7562b4
--- /dev/null
+++ b/net-wireless/reaver/files/reaver-1.4_parallel-make.patch
@@ -0,0 +1,50 @@
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -16,22 +16,22 @@
+ $(CC) $(CFLAGS) $(INC) wpscrack.c *.o $(LDFLAGS) -o reaver
+
+ libwps.o:
+- (cd $(LIBWPS_DIR) && make)
++ (cd $(LIBWPS_DIR) && $(MAKE))
+
+ wps: libutils libcrypto
+- (cd wps && make)
++ (cd wps && $(MAKE))
+
+ libutils:
+- (cd utils && make)
++ (cd utils && $(MAKE))
+
+ libcrypto: libtls
+- (cd crypto && make)
++ (cd crypto && $(MAKE))
+
+ libtls:
+- (cd tls && make)
++ (cd tls && $(MAKE))
+
+ libiw:
+- (cd lwe && make BUILD_STATIC=y libiw.a)
++ (cd lwe && $(MAKE) BUILD_STATIC=y libiw.a)
+
+ init.o:
+ $(CC) $(CFLAGS) init.c -c
+@@ -93,12 +93,12 @@
+ clean:
+ rm -f *~ *.o reaver wash
+ rm -rf *.cache config.status config.log
+- (cd utils && make clean)
+- (cd tls && make clean)
+- (cd crypto && make clean)
+- (cd wps && make clean)
+- (cd lwe && make realclean)
+- (cd $(LIBWPS_DIR) && make clean)
++ (cd utils && $(MAKE) clean)
++ (cd tls && $(MAKE) clean)
++ (cd crypto && $(MAKE) clean)
++ (cd wps && $(MAKE) clean)
++ (cd lwe && $(MAKE) realclean)
++ (cd $(LIBWPS_DIR) && $(MAKE) clean)
+ rm -f Makefile config.h
+
+ cleanbin:
diff --git a/net-wireless/reaver/files/reaver-1.4_var_db.patch b/net-wireless/reaver/files/reaver-1.4_var_db.patch
new file mode 100644
index 000000000000..de4317b59ffc
--- /dev/null
+++ b/net-wireless/reaver/files/reaver-1.4_var_db.patch
@@ -0,0 +1,11 @@
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -3,7 +3,7 @@ LIBWPS_DIR=libwps
+ INC=-I$(LIBWPS_DIR)
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-CONFDIR=@sysconfdir@/@target@
++CONFDIR=/var/db/reaver
+ CFLAGS=-DCONF_DIR='"$(CONFDIR)"' -DREAVER_DATABASE='"$(CONFDIR)/reaver.db"' @CFLAGS@
+ LDFLAGS=$(LIBWPS_DIR)/*.o wps/*.o tls/bignum.o tls/libtls.a utils/libutils.a crypto/libcrypto.a lwe/libiw.a @LDFLAGS@
+
diff --git a/net-wireless/reaver/files/reaver-1.4_wps_registrar.patch b/net-wireless/reaver/files/reaver-1.4_wps_registrar.patch
new file mode 100644
index 000000000000..cc9fe6b774e8
--- /dev/null
+++ b/net-wireless/reaver/files/reaver-1.4_wps_registrar.patch
@@ -0,0 +1,11 @@
+--- a/wps/wps_registrar.c
++++ b/wps/wps_registrar.c
+@@ -1469,7 +1469,7 @@
+
+ wpa_printf(MSG_DEBUG, "WPS: Building Message M4");
+
+- wpa_printf(MSG_DEBUG, "WPS: Dev Password Len: %d", wps->dev_password_len);
++ wpa_printf(MSG_DEBUG, "WPS: Dev Password Len: %zd", wps->dev_password_len);
+ wpa_printf(MSG_DEBUG, "WPS: Dev Password: %s", wps->dev_password);
+
+ wps_derive_psk(wps, wps->dev_password, wps->dev_password_len);
diff --git a/net-wireless/reaver/metadata.xml b/net-wireless/reaver/metadata.xml
new file mode 100644
index 000000000000..81f3a278efce
--- /dev/null
+++ b/net-wireless/reaver/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>proxy-maintainers</herd>
+<maintainer>
+ <email>oleg@kaa.org.ua</email>
+ <name>Oleg Kravchenko</name>
+</maintainer>
+<maintainer>
+ <email>maksbotan@gentoo.org</email>
+ <name>Maxim Koltsov</name>
+</maintainer>
+</pkgmetadata>
diff --git a/net-wireless/reaver/reaver-1.4-r1.ebuild b/net-wireless/reaver/reaver-1.4-r1.ebuild
new file mode 100644
index 000000000000..43765d5fafdc
--- /dev/null
+++ b/net-wireless/reaver/reaver-1.4-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit autotools-utils
+
+DESCRIPTION="Brute force attack against Wifi Protected Setup"
+HOMEPAGE="http://code.google.com/p/reaver-wps/"
+SRC_URI="http://reaver-wps.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="net-libs/libpcap
+ dev-db/sqlite:3"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${P}/src"
+
+PATCHES=( "${FILESDIR}/${P}_var_db.patch" )
+
+src_install() {
+ dobin wash reaver
+
+ insinto "/var/db/reaver"
+ doins reaver.db
+
+ doman ../docs/reaver.1.gz
+ dodoc ../docs/README ../docs/README.REAVER ../docs/README.WASH
+}
diff --git a/net-wireless/reaver/reaver-1.4-r3.ebuild b/net-wireless/reaver/reaver-1.4-r3.ebuild
new file mode 100644
index 000000000000..0a19482117b4
--- /dev/null
+++ b/net-wireless/reaver/reaver-1.4-r3.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit autotools-utils
+
+DESCRIPTION="Brute force attack against Wifi Protected Setup"
+HOMEPAGE="http://code.google.com/p/reaver-wps/"
+SRC_URI="http://reaver-wps.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+ net-libs/libpcap
+ dev-db/sqlite:3
+"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${P}/src"
+
+PATCHES=(
+ "${FILESDIR}"/${P}_cflags.patch
+ "${FILESDIR}"/${P}_memset.patch
+ "${FILESDIR}"/${P}_parallel-make.patch
+ "${FILESDIR}"/${P}_var_db.patch
+ "${FILESDIR}"/${P}_wps_registrar.patch
+)
+
+src_compile() {
+ emake V=1
+}
+
+src_install() {
+ dobin wash reaver
+
+ insinto "/var/db/reaver"
+ doins reaver.db
+
+ doman ../docs/reaver.1.gz
+ dodoc ../docs/README ../docs/README.REAVER ../docs/README.WASH
+}
diff --git a/net-wireless/reaver/reaver-1.4.ebuild b/net-wireless/reaver/reaver-1.4.ebuild
new file mode 100644
index 000000000000..c161d8cb89f2
--- /dev/null
+++ b/net-wireless/reaver/reaver-1.4.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+
+inherit autotools-utils
+
+DESCRIPTION="Brute force attack against Wifi Protected Setup"
+HOMEPAGE="http://code.google.com/p/reaver-wps/"
+SRC_URI="http://reaver-wps.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="net-libs/libpcap
+ dev-db/sqlite:3"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${P}/src"
+
+src_install() {
+ dobin wash reaver
+
+ insinto "/etc/reaver"
+ doins reaver.db
+
+ doman ../docs/reaver.1.gz
+ dodoc ../docs/README ../docs/README.REAVER ../docs/README.WASH
+}
diff --git a/net-wireless/rfkill/Manifest b/net-wireless/rfkill/Manifest
new file mode 100644
index 000000000000..c47dd74fbe86
--- /dev/null
+++ b/net-wireless/rfkill/Manifest
@@ -0,0 +1 @@
+DIST rfkill-0.5.tar.xz 7776 SHA256 e0ae3004215e39a6c5c36e0726558740728d16f67ebdb8bea621250f6091d86a SHA512 6ad4d28e7bf7ec69ec6a600cd774b7b3c60e85849ae3fca0f5509ed6a283ed5656d37cfd770df45ff1ceca59edd814807d116b30e199fca303baf496441419d7 WHIRLPOOL 7f874d05b24f17d7926a8cabb85fad2c41ddad9085286527f8090144e2bc658e2332f9e197f26932770ba67f948e979402f7e8c0c6926f1e2244a0684551ebe8
diff --git a/net-wireless/rfkill/metadata.xml b/net-wireless/rfkill/metadata.xml
new file mode 100644
index 000000000000..6fb64561acb9
--- /dev/null
+++ b/net-wireless/rfkill/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chainsaw@gentoo.org</email>
+ <name>Tony Vroon</name>
+ </maintainer>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name> Rick Farina</name>
+ </maintainer>
+</pkgmetadata>
+
diff --git a/net-wireless/rfkill/rfkill-0.5.ebuild b/net-wireless/rfkill/rfkill-0.5.ebuild
new file mode 100644
index 000000000000..0c05937a4f77
--- /dev/null
+++ b/net-wireless/rfkill/rfkill-0.5.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit toolchain-funcs
+
+DESCRIPTION="Tool to read and control rfkill status through /dev/rfkill"
+HOMEPAGE="http://wireless.kernel.org/en/users/Documentation/rfkill"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND=""
+
+CC=$(tc-getCC)
+LD=$(tc-getLD)
+
+src_compile() {
+ emake V=1 || die "Failed to compile"
+}
+
+src_install() {
+ emake install V=1 DESTDIR="${D}" || die "Failed to install"
+}
diff --git a/net-wireless/rfswitch/Manifest b/net-wireless/rfswitch/Manifest
new file mode 100644
index 000000000000..b6eb0619f138
--- /dev/null
+++ b/net-wireless/rfswitch/Manifest
@@ -0,0 +1 @@
+DIST rfswitch-1.3.tar.gz 11719 SHA256 def90905fa317be81a6d7abb5c239483f9f6f9b561958570ea05b1d6350b202a SHA512 29270b99d99688e6ac438af5626e0d193e73c27fb6b8d35a607c7facbb70b3b77d547a70889827c2b9412721bd9780464c589a2b1cce27a2f87aa88012bdb10b WHIRLPOOL 9fda6844b8110aaa5b5191b0d0eccf7db31aaea79c22001973a17ac757f7c14a87c6b4a19cdc9e4cc0ce654341c9addd49dc6acbb0a73147f77711f12a12af39
diff --git a/net-wireless/rfswitch/metadata.xml b/net-wireless/rfswitch/metadata.xml
new file mode 100644
index 000000000000..bbdd5f1037a0
--- /dev/null
+++ b/net-wireless/rfswitch/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">rfswitch</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/rfswitch/rfswitch-1.3.ebuild b/net-wireless/rfswitch/rfswitch-1.3.ebuild
new file mode 100644
index 000000000000..fae046c0fa93
--- /dev/null
+++ b/net-wireless/rfswitch/rfswitch-1.3.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit linux-mod
+
+DESCRIPTION="Drivers for software based wireless radio switches"
+HOMEPAGE="http://rfswitch.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+BUILD_TARGETS="modules"
+
+MODULE_NAMES="av5100(net/wireless:)
+ pbe5(net/wireless:)"
+MODULESD_AV5100_DOCS="README"
+
+# Use the in-kernel ipw2100 modules
+CONFIG_CHECK="~IPW2100"
+ERROR_IPW2100="${P} requires support for ipw2100 (CONFIG_IPW2100)."
+
+pkg_setup() {
+ linux-mod_pkg_setup
+
+ if kernel_is 2 4; then
+ die "${P} does not support building against kernel 2.4.x"
+ fi
+
+ BUILD_PARAMS="KSRC=${KV_DIR}"
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ convert_to_m Makefile
+
+ sed -i \
+ -e '/depmod/d' \
+ -e '/include.*Rules.*make/d' \
+ Makefile || die
+
+ sed -i -e 's:&proc_root:NULL:' {av5100,pbe5}.c || die #270269
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc ISSUES README
+}
diff --git a/net-wireless/rtl-sdr/Manifest b/net-wireless/rtl-sdr/Manifest
new file mode 100644
index 000000000000..dd5e5a24c43a
--- /dev/null
+++ b/net-wireless/rtl-sdr/Manifest
@@ -0,0 +1,3 @@
+DIST rtl-sdr-0.5.0.tar.xz 401088 SHA256 d6781fd661b9cf81d05ab0313e2718719a3d6bb1e32c3ce51287e28e967997bd SHA512 5e561002b32b60d251cd0b859f19e104ad5b249e45043c759a7a4d28ba9efbeadb3cb1be42d4e9da425bbe2c4d642f03d2c0f5e4078e62f68b88057adf6482f4 WHIRLPOOL 21f81503c54290a5afd2e9049a630dce693ff81e464623fd0a1a809596b5e1109b0630c56f19d870c42b3bf178605645f3fd0a5286dc228edbfaac8464edf81e
+DIST rtl-sdr-0.5.3.tar.xz 98220 SHA256 7fa6558d318c9895df8b54106f6fc79841e3137aab8e67003b122933c23ea039 SHA512 e87c03d2f7754f59b346cc03ccd374bcb57a9bdc6c8a8fa4cafecb8cb429b161d5a63b9244298caaf654adfe4d6ed4456222f4acae3b98b7a79b5ab50da22900 WHIRLPOOL 3a22e5ccce852cb73d415dbeb1a630eb633583df5608d2f902f2cce12f3c554bd997df9a6b3cf20e0c1a1f44168e4a95244f0921b63c23e6ec3923f9ff070ef9
+DIST rtl-sdr-0.5.3_p20150730.tar.xz 485476 SHA256 814f9200c6b5d79403d6f8f839e1f0f7bade6b20e027be1943db653f6fffcb01 SHA512 b19e9ce6ebc1c63a26ad3d8b13ccdcac76d4dee317aba547a8cd760e59256251df59ecc3ff6f8cb42d9be8235d67bd280f3373e58acb64f553fae5e3c2d113a6 WHIRLPOOL 00832ae40c26cd2cfb9c5307f9d04be52f26800b1e2d9b93cff9435324268f4816d775919e50edf064843f7c2641e158eeece2d04c60b6466bd34b791aa66c75
diff --git a/net-wireless/rtl-sdr/metadata.xml b/net-wireless/rtl-sdr/metadata.xml
new file mode 100644
index 000000000000..c1b4dee070d2
--- /dev/null
+++ b/net-wireless/rtl-sdr/metadata.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+</pkgmetadata>
+
diff --git a/net-wireless/rtl-sdr/rtl-sdr-0.5.0.ebuild b/net-wireless/rtl-sdr/rtl-sdr-0.5.0.ebuild
new file mode 100644
index 000000000000..0e60c7de161a
--- /dev/null
+++ b/net-wireless/rtl-sdr/rtl-sdr-0.5.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit autotools
+
+DESCRIPTION="turns your Realtek RTL2832 based DVB dongle into a SDR receiver"
+HOMEPAGE="http://sdr.osmocom.org/trac/wiki/rtl-sdr"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-2
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+RDEPEND="virtual/libusb:1"
+DEPEND="${RDEPEND}"
+
+DOCS=( ${PN}.rules )
+
+src_unpack() {
+ if [[ ${PV} == 9999* ]]; then
+ git-2_src_unpack
+ else
+ default
+ mv ${PN} ${P} || die
+ fi
+}
+
+src_prepare() {
+ eautoreconf
+}
+
+pkg_postinst() {
+ local rulesfiles=( "${EPREFIX}"/etc/udev/rules.d/*${PN}.rules )
+ if [[ ! -f ${rulesfiles} ]]; then
+ elog "By default, only users in the usb group can capture."
+ elog "Just run 'gpasswd -a <USER> usb', then have <USER> re-login."
+ elog "Or the device can be WORLD readable and writable by installing ${PN}.rules"
+ elog "from the documentation directory to ${EPREFIX}/etc/udev/rules.d/"
+ fi
+}
diff --git a/net-wireless/rtl-sdr/rtl-sdr-0.5.3-r1.ebuild b/net-wireless/rtl-sdr/rtl-sdr-0.5.3-r1.ebuild
new file mode 100644
index 000000000000..b33b61593397
--- /dev/null
+++ b/net-wireless/rtl-sdr/rtl-sdr-0.5.3-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils multilib
+
+DESCRIPTION="turns your Realtek RTL2832 based DVB dongle into a SDR receiver"
+HOMEPAGE="http://sdr.osmocom.org/trac/wiki/rtl-sdr"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+DEPEND="virtual/libusb:1"
+RDEPEND="${DEPEND}"
+
+src_unpack() {
+ if [[ ${PV} == 9999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ fi
+}
+
+src_configure() {
+ #the udev rules are 666, we don't want that
+ mycmakeargs=(
+ -DINSTALL_UDEV_RULES=OFF
+ -DDETACH_KERNEL_DRIVER=ON
+ -DLIB_INSTALL_DIR=/usr/$(get_libdir)
+ )
+ cmake-utils_src_configure
+}
+
+pkg_postinst() {
+ elog "Only users in the usb group can capture."
+ elog "Just run 'gpasswd -a <USER> usb', then have <USER> re-login."
+}
diff --git a/net-wireless/rtl-sdr/rtl-sdr-0.5.3.ebuild b/net-wireless/rtl-sdr/rtl-sdr-0.5.3.ebuild
new file mode 100644
index 000000000000..238df4e7bd86
--- /dev/null
+++ b/net-wireless/rtl-sdr/rtl-sdr-0.5.3.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit autotools
+
+DESCRIPTION="turns your Realtek RTL2832 based DVB dongle into a SDR receiver"
+HOMEPAGE="http://sdr.osmocom.org/trac/wiki/rtl-sdr"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+RDEPEND="virtual/libusb:1"
+DEPEND="${RDEPEND}"
+
+DOCS=( ${PN}.rules )
+
+src_unpack() {
+ if [[ ${PV} == 9999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ sed -i "s:pkgdocdir:docdir:g" Makefile.am || die
+ eautoreconf
+}
+
+src_configure() {
+ econf --docdir="/usr/share/doc/${PF}"
+}
+
+pkg_postinst() {
+ local rulesfiles=( "${EPREFIX}"/etc/udev/rules.d/*${PN}.rules )
+ if [[ ! -f ${rulesfiles} ]]; then
+ elog "By default, only users in the usb group can capture."
+ elog "Just run 'gpasswd -a <USER> usb', then have <USER> re-login."
+ elog "Or the device can be WORLD readable and writable by installing ${PN}.rules"
+ elog "from the documentation directory to ${EPREFIX}/etc/udev/rules.d/"
+ fi
+}
diff --git a/net-wireless/rtl-sdr/rtl-sdr-0.5.3_p20150730.ebuild b/net-wireless/rtl-sdr/rtl-sdr-0.5.3_p20150730.ebuild
new file mode 100644
index 000000000000..b33b61593397
--- /dev/null
+++ b/net-wireless/rtl-sdr/rtl-sdr-0.5.3_p20150730.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils multilib
+
+DESCRIPTION="turns your Realtek RTL2832 based DVB dongle into a SDR receiver"
+HOMEPAGE="http://sdr.osmocom.org/trac/wiki/rtl-sdr"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+DEPEND="virtual/libusb:1"
+RDEPEND="${DEPEND}"
+
+src_unpack() {
+ if [[ ${PV} == 9999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ fi
+}
+
+src_configure() {
+ #the udev rules are 666, we don't want that
+ mycmakeargs=(
+ -DINSTALL_UDEV_RULES=OFF
+ -DDETACH_KERNEL_DRIVER=ON
+ -DLIB_INSTALL_DIR=/usr/$(get_libdir)
+ )
+ cmake-utils_src_configure
+}
+
+pkg_postinst() {
+ elog "Only users in the usb group can capture."
+ elog "Just run 'gpasswd -a <USER> usb', then have <USER> re-login."
+}
diff --git a/net-wireless/rtl-sdr/rtl-sdr-9999.ebuild b/net-wireless/rtl-sdr/rtl-sdr-9999.ebuild
new file mode 100644
index 000000000000..b33b61593397
--- /dev/null
+++ b/net-wireless/rtl-sdr/rtl-sdr-9999.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit cmake-utils multilib
+
+DESCRIPTION="turns your Realtek RTL2832 based DVB dongle into a SDR receiver"
+HOMEPAGE="http://sdr.osmocom.org/trac/wiki/rtl-sdr"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ SRC_URI=""
+ EGIT_REPO_URI="git://git.osmocom.org/${PN}.git"
+ KEYWORDS=""
+else
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+DEPEND="virtual/libusb:1"
+RDEPEND="${DEPEND}"
+
+src_unpack() {
+ if [[ ${PV} == 9999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ fi
+}
+
+src_configure() {
+ #the udev rules are 666, we don't want that
+ mycmakeargs=(
+ -DINSTALL_UDEV_RULES=OFF
+ -DDETACH_KERNEL_DRIVER=ON
+ -DLIB_INSTALL_DIR=/usr/$(get_libdir)
+ )
+ cmake-utils_src_configure
+}
+
+pkg_postinst() {
+ elog "Only users in the usb group can capture."
+ elog "Just run 'gpasswd -a <USER> usb', then have <USER> re-login."
+}
diff --git a/net-wireless/rtl8180/Manifest b/net-wireless/rtl8180/Manifest
new file mode 100644
index 000000000000..8dafb46506a8
--- /dev/null
+++ b/net-wireless/rtl8180/Manifest
@@ -0,0 +1 @@
+DIST rtl8180-0.22_pre20050528.tar.bz2 90275 SHA256 73b0e8a05800bf1ffc116c5c38cec2e84688b347d977ef7fe825d39870d28ac8
diff --git a/net-wireless/rtl8180/files/rtl8180-2.6.19.patch b/net-wireless/rtl8180/files/rtl8180-2.6.19.patch
new file mode 100644
index 000000000000..ccb89721d521
--- /dev/null
+++ b/net-wireless/rtl8180/files/rtl8180-2.6.19.patch
@@ -0,0 +1,145 @@
+diff -Nurp rtl8180-0.22_pre20050528.orig/ieee80211_crypt.c rtl8180-0.22_pre20050528/ieee80211_crypt.c
+--- rtl8180-0.22_pre20050528.orig/ieee80211_crypt.c 2006-02-15 21:52:10.000000000 +0100
++++ rtl8180-0.22_pre20050528/ieee80211_crypt.c 2006-12-25 11:31:18.000000000 +0100
+@@ -11,8 +11,12 @@
+ *
+ */
+ #ifndef CONFIG_IEEE80211_NOWEP
+-#include <linux/config.h>
+ #include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
++ #include <linux/config.h>
++#else
++ #include <linux/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/init.h>
+ #include <linux/slab.h>
+diff -Nurp rtl8180-0.22_pre20050528.orig/ieee80211_crypt_wep.c rtl8180-0.22_pre20050528/ieee80211_crypt_wep.c
+--- rtl8180-0.22_pre20050528.orig/ieee80211_crypt_wep.c 2006-02-15 21:52:10.000000000 +0100
++++ rtl8180-0.22_pre20050528/ieee80211_crypt_wep.c 2006-12-25 11:31:18.000000000 +0100
+@@ -12,8 +12,12 @@
+ * someoneelse-
+ */
+ #ifndef CONFIG_IEEE80211_NOWEP
+-#include <linux/config.h>
+ #include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
++ #include <linux/config.h>
++#else
++ #include <linux/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/init.h>
+ #include <linux/slab.h>
+diff -Nurp rtl8180-0.22_pre20050528.orig/ieee80211_module.c rtl8180-0.22_pre20050528/ieee80211_module.c
+--- rtl8180-0.22_pre20050528.orig/ieee80211_module.c 2006-02-15 21:52:10.000000000 +0100
++++ rtl8180-0.22_pre20050528/ieee80211_module.c 2006-12-25 11:31:18.000000000 +0100
+@@ -38,7 +38,12 @@
+ *******************************************************************************/
+ #include <linux/init.h>
+ #include <linux/compiler.h>
+-#include <linux/config.h>
++#include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
++ #include <linux/config.h>
++#else
++ #include <linux/autoconf.h>
++#endif
+ #include <linux/errno.h>
+ #include <linux/if_arp.h>
+ #include <linux/in6.h>
+@@ -53,7 +58,6 @@
+ #include <linux/slab.h>
+ #include <linux/tcp.h>
+ #include <linux/types.h>
+-#include <linux/version.h>
+ #include <linux/wireless.h>
+ #include <linux/etherdevice.h>
+ #include <asm/uaccess.h>
+diff -Nurp rtl8180-0.22_pre20050528.orig/ieee80211_rx.c rtl8180-0.22_pre20050528/ieee80211_rx.c
+--- rtl8180-0.22_pre20050528.orig/ieee80211_rx.c 2006-02-15 21:52:10.000000000 +0100
++++ rtl8180-0.22_pre20050528/ieee80211_rx.c 2006-12-25 11:31:18.000000000 +0100
+@@ -17,7 +17,12 @@
+ */
+
+ #include <linux/compiler.h>
+-#include <linux/config.h>
++#include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
++ #include <linux/config.h>
++#else
++ #include <linux/autoconf.h>
++#endif
+ #include <linux/errno.h>
+ #include <linux/if_arp.h>
+ #include <linux/in6.h>
+@@ -32,7 +37,6 @@
+ #include <linux/slab.h>
+ #include <linux/tcp.h>
+ #include <linux/types.h>
+-#include <linux/version.h>
+ #include <linux/wireless.h>
+ #include <linux/etherdevice.h>
+ #include <asm/uaccess.h>
+diff -Nurp rtl8180-0.22_pre20050528.orig/ieee80211_tx.c rtl8180-0.22_pre20050528/ieee80211_tx.c
+--- rtl8180-0.22_pre20050528.orig/ieee80211_tx.c 2006-02-15 21:52:10.000000000 +0100
++++ rtl8180-0.22_pre20050528/ieee80211_tx.c 2006-12-25 11:31:18.000000000 +0100
+@@ -31,7 +31,12 @@
+
+ ******************************************************************************/
+ #include <linux/compiler.h>
+-#include <linux/config.h>
++#include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
++ #include <linux/config.h>
++#else
++ #include <linux/autoconf.h>
++#endif
+ #include <linux/errno.h>
+ #include <linux/if_arp.h>
+ #include <linux/in6.h>
+@@ -46,7 +51,6 @@
+ #include <linux/slab.h>
+ #include <linux/tcp.h>
+ #include <linux/types.h>
+-#include <linux/version.h>
+ #include <linux/wireless.h>
+ #include <linux/etherdevice.h>
+ #include <asm/uaccess.h>
+diff -Nurp rtl8180-0.22_pre20050528.orig/r8180_core.c rtl8180-0.22_pre20050528/r8180_core.c
+--- rtl8180-0.22_pre20050528.orig/r8180_core.c 2006-12-25 11:20:09.000000000 +0100
++++ rtl8180-0.22_pre20050528/r8180_core.c 2006-12-25 11:32:04.000000000 +0100
+@@ -4038,7 +4038,14 @@ static int __devinit rtl8180_pci_probe(s
+ dev->do_ioctl = do_ioctl;
+ dev->set_multicast_list = r8180_set_multicast;
+ dev->set_mac_address = r8180_set_mac_adr;
+- dev->get_wireless_stats = r8180_get_wireless_stats;
++
++#if WIRELESS_EXT >= 12
++#if WIRELESS_EXT < 17
++ dev->get_wireless_stats = r8180_get_wireless_stats;
++#endif
++ dev->wireless_handlers = (struct iw_handler_def *) &r8180_wx_handlers_def;
++#endif
++
+ dev->type=ARPHRD_ETHER;
+
+ if (dev_alloc_name(dev, ifname) < 0){
+diff -Nurp rtl8180-0.22_pre20050528.orig/r8180.h rtl8180-0.22_pre20050528/r8180.h
+--- rtl8180-0.22_pre20050528.orig/r8180.h 2006-02-15 21:52:10.000000000 +0100
++++ rtl8180-0.22_pre20050528/r8180.h 2006-12-25 11:31:18.000000000 +0100
+@@ -26,7 +26,12 @@
+
+ #include <linux/module.h>
+ #include <linux/kernel.h>
+-#include <linux/config.h>
++#include <linux/version.h>
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
++ #include <linux/config.h>
++#else
++ #include <linux/autoconf.h>
++#endif
+ #include <linux/init.h>
+ #include <linux/ioport.h>
+ #include <linux/sched.h>
diff --git a/net-wireless/rtl8180/files/rtl8180-2.6.20.patch b/net-wireless/rtl8180/files/rtl8180-2.6.20.patch
new file mode 100644
index 000000000000..62de29090022
--- /dev/null
+++ b/net-wireless/rtl8180/files/rtl8180-2.6.20.patch
@@ -0,0 +1,32 @@
+Files rtl8180-0.22_pre20050528.orig/ieee80211_crypt.o and rtl8180-0.22_pre20050528/ieee80211_crypt.o differ
+diff -Nurp rtl8180-0.22_pre20050528.orig/ieee80211_crypt_wep.c rtl8180-0.22_pre20050528/ieee80211_crypt_wep.c
+--- rtl8180-0.22_pre20050528.orig/ieee80211_crypt_wep.c 2007-02-08 23:39:39.000000000 +0000
++++ rtl8180-0.22_pre20050528/ieee80211_crypt_wep.c 2007-02-08 23:42:48.000000000 +0000
+@@ -23,6 +23,7 @@
+ #include <linux/slab.h>
+ #include <linux/random.h>
+ #include <linux/skbuff.h>
++#include <linux/mm.h>
+ #include <asm/string.h>
+
+ #include "ieee80211.h"
+Files rtl8180-0.22_pre20050528.orig/ieee80211_module.o and rtl8180-0.22_pre20050528/ieee80211_module.o differ
+Files rtl8180-0.22_pre20050528.orig/ieee80211_rx.o and rtl8180-0.22_pre20050528/ieee80211_rx.o differ
+Files rtl8180-0.22_pre20050528.orig/ieee80211_tx.o and rtl8180-0.22_pre20050528/ieee80211_tx.o differ
+Files rtl8180-0.22_pre20050528.orig/ieee80211_wx.o and rtl8180-0.22_pre20050528/ieee80211_wx.o differ
+diff -Nurp rtl8180-0.22_pre20050528.orig/r8180_core.c rtl8180-0.22_pre20050528/r8180_core.c
+--- rtl8180-0.22_pre20050528.orig/r8180_core.c 2007-02-08 23:39:39.000000000 +0000
++++ rtl8180-0.22_pre20050528/r8180_core.c 2007-02-08 23:42:25.000000000 +0000
+@@ -2838,8 +2838,11 @@ short rtl8180_init(struct net_device *de
+ priv->workqueue = create_workqueue(DRV_NAME);
+ #endif
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
+ INIT_WORK(&priv->IBSS_work,(void(*)(void*)) rtl8180_IBSS_create_wq,dev);
+-
++#else
++ INIT_WORK(&priv->IBSS_work,dev);
++#endif
+ tasklet_init(&priv->irq_rx_tasklet,
+ (void(*)(unsigned long)) rtl8180_irq_rx_tasklet,
+ (unsigned long)priv);
diff --git a/net-wireless/rtl8180/metadata.xml b/net-wireless/rtl8180/metadata.xml
new file mode 100644
index 000000000000..4538a68724a6
--- /dev/null
+++ b/net-wireless/rtl8180/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer><email>maintainer-needed@gentoo.org</email></maintainer>
+</pkgmetadata>
diff --git a/net-wireless/rtl8180/rtl8180-0.22_pre20050528.ebuild b/net-wireless/rtl8180/rtl8180-0.22_pre20050528.ebuild
new file mode 100644
index 000000000000..cb8d7fc4df90
--- /dev/null
+++ b/net-wireless/rtl8180/rtl8180-0.22_pre20050528.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit linux-mod eutils
+
+DESCRIPTION="Driver for the rtl8180 wireless chipset"
+HOMEPAGE="http://rtl8180-sa2400.sourceforge.net"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+LICENSE="GPL-2"
+
+KEYWORDS="~x86 ~ppc"
+IUSE=""
+
+DEPEND="net-wireless/wireless-tools"
+
+MODULE_NAMES="ieee80211_crypt-r8180(net:) ieee80211_crypt_wep-r8180(net:)
+ ieee80211-r8180(net:) r8180(net:)"
+CONFIG_CHECK="WIRELESS_EXT CRYPTO CRYPTO_ARC4 CRC32"
+BUILD_TARGETS="all"
+
+pkg_setup() {
+ linux-mod_pkg_setup
+ BUILD_PARAMS="KSRC=${KV_OUT_DIR}"
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ sed -i -e 's:MODULE_PARM(\([^,]*\),"i");:module_param(\1, int, 0);:' \
+ -e 's:MODULE_PARM(\([^,]*\),"s");:module_param(\1, charp, 0);:' r8180_core.c
+ sed -i -e 's:MODVERDIR=$(PWD) ::' {,ieee80211/}Makefile
+
+ # 2.6.19 patch
+ epatch ${FILESDIR}/${PN}-2.6.19.patch
+
+ # 2.6.20 patch
+ epatch ${FILESDIR}/${PN}-2.6.20.patch
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dodoc AUTHORS CHANGES INSTALL README README.adhoc
+}
diff --git a/net-wireless/spectools/Manifest b/net-wireless/spectools/Manifest
new file mode 100644
index 000000000000..f63672baaeca
--- /dev/null
+++ b/net-wireless/spectools/Manifest
@@ -0,0 +1,2 @@
+DIST spectools-2011-08-R1.tar.gz 196001 SHA256 ce981cd2b86c6246dc7cb9c0166b85e586e5f5835d3ed147e8901ef18f00220e SHA512 92c80b34049055cec6d677db165fb2d06d75fbff9f04d41ab81fa57900f639936e6a9a01f06165aea863b35760964016f0984f17816859d054bc9d14353e847b WHIRLPOOL 89af3aa1f1e4033de3051bc6dd5b2d6f013c1270d588768fcfc08830a420f3ab3507494b0f5575b830a9d88abc885600e551ad78bc9931ab5bd061e74d7d27c8
+DIST spectools-2011-08-R1_p20140618.tar.xz 143644 SHA256 a4c22bc1be0b66dfeaeff37004e08ef4927d443a7e67bc893627d0569f6f3a2f SHA512 bf39953dc94815af1b670f079f7660d46cc8449adb379d0fc2755de5785c936730114aa66127f9cbd86f9a08b506382f5ec56f863d50d7d39f2597ba9b122330 WHIRLPOOL 7be4b1209b0a72a67b102f75ede813c3680d1222478bb507755af836b9ede6a2db4bf93ce2b5300d1aa16d0c422865924164fb021015651f750711a055e4700d
diff --git a/net-wireless/spectools/metadata.xml b/net-wireless/spectools/metadata.xml
new file mode 100644
index 000000000000..97e99311c4f5
--- /dev/null
+++ b/net-wireless/spectools/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ <description>maintainer, has access to all hardware as needed</description>
+ </maintainer>
+ <maintainer>
+ <email>steev@gentoo.org</email>
+ <name>Steev Klimaszewski</name>
+ <description>co-maintainer, CC him on bugs</description>
+ </maintainer>
+ <maintainer>
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ <description>Maintainer, has 1st gen WiSpy hardware for testing</description>
+ </maintainer>
+<use>
+ <flag name="debug">Build the raw output client for spectools. (for developers)</flag>
+ <flag name="ncurses">Build the ncurses based client for spectools</flag>
+ <flag name="gtk">Build the gtk-2 based client for spectools</flag>
+</use>
+</pkgmetadata>
diff --git a/net-wireless/spectools/spectools-2011.08.1-r2.ebuild b/net-wireless/spectools/spectools-2011.08.1-r2.ebuild
new file mode 100644
index 000000000000..bcb85310eac2
--- /dev/null
+++ b/net-wireless/spectools/spectools-2011.08.1-r2.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit udev toolchain-funcs
+
+MY_PN=${PN}
+MY_PV=${PV/\./-}
+MY_PV=${MY_PV/./-R}
+MY_P="${MY_PN}-${MY_PV}"
+S=${WORKDIR}/${MY_P}
+
+if [[ ${PV} == "9999" ]] ; then
+ ESVN_REPO_URI="https://www.kismetwireless.net/code/svn/tools/${PN}"
+ inherit subversion
+ KEYWORDS=""
+else
+ SRC_URI="http://www.kismetwireless.net/code/${MY_P}.tar.gz"
+ KEYWORDS="amd64 arm ppc x86"
+fi
+
+DESCRIPTION="Spectrum Analyzer for Meta-Geek Wi-Spy and GSG Ubertooth hardware"
+HOMEPAGE="http://www.kismetwireless.net/spectools/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="ncurses gtk"
+
+RDEPEND="virtual/libusb:0
+ ncurses? ( sys-libs/ncurses )
+ gtk? ( x11-libs/gtk+:2 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+# Upstream has still not migrated to the libusb-1 line.
+# Maemo: Add hildon and bbus
+
+# Please note that upstream removed the --with-gtk-version option
+# and GTK is now automagical. GTK1 support was also removed.
+src_compile() {
+ emake depend
+
+ emake spectool_net spectool_raw
+
+ if use ncurses; then
+ emake spectool_curses
+ fi
+
+ if use gtk; then
+ emake spectool_gtk
+ fi
+
+ #if use maemo; then
+ # emake spectool_hildon usbcontrol \
+ # || die "emake spectool_hildon usbcontrol failed"
+ #fi
+}
+
+src_install() {
+ dobin spectool_net spectool_raw
+ use ncurses && dobin spectool_curses
+ use gtk && dobin spectool_gtk
+
+ udev_dorules 99-wispy.rules
+ dodoc README
+
+ #if use maemo; then
+ # dobin spectool_hildon
+ # dosbin usbcontrol
+ #fi
+}
diff --git a/net-wireless/spectools/spectools-2011.08.1_p20140618.ebuild b/net-wireless/spectools/spectools-2011.08.1_p20140618.ebuild
new file mode 100644
index 000000000000..b30e6ce1f2e8
--- /dev/null
+++ b/net-wireless/spectools/spectools-2011.08.1_p20140618.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit udev toolchain-funcs
+
+MY_PN=${PN}
+MY_PV=${PV/\./-}
+MY_PV=${MY_PV/./-R}
+MY_P="${MY_PN}-${MY_PV}"
+S=${WORKDIR}/${MY_P}
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://www.kismetwireless.net/${PN}.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="https://dev.gentoo.org/~zerochaos/distfiles/${MY_P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~ppc ~x86"
+fi
+
+DESCRIPTION="Spectrum Analyzer for Meta-Geek Wi-Spy and GSG Ubertooth hardware"
+HOMEPAGE="http://www.kismetwireless.net/spectools/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="debug +ncurses +gtk"
+
+RDEPEND="virtual/libusb:0
+ ncurses? ( sys-libs/ncurses )
+ gtk? ( x11-libs/gtk+:2 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+# Upstream has still not migrated to the libusb-1 line.
+# Maemo: Add hildon and bbus
+
+# Please note that upstream removed the --with-gtk-version option
+# and GTK is now automagical. GTK1 support was also removed.
+src_compile() {
+ emake depend
+
+ emake spectool_net
+
+ use debug && emake spectool_raw
+
+ use ncurses && emake spectool_curses
+
+ use gtk && emake spectool_gtk
+
+ #if use maemo; then
+ # emake spectool_hildon usbcontrol \
+ # || die "emake spectool_hildon usbcontrol failed"
+ #fi
+}
+
+src_install() {
+ dobin spectool_net
+ use debug && dobin spectool_raw
+ use ncurses && dobin spectool_curses
+ use gtk && dobin spectool_gtk
+
+ udev_dorules 99-wispy.rules
+ dodoc README
+
+ #if use maemo; then
+ # dobin spectool_hildon
+ # dosbin usbcontrol
+ #fi
+}
diff --git a/net-wireless/spectools/spectools-9999.ebuild b/net-wireless/spectools/spectools-9999.ebuild
new file mode 100644
index 000000000000..e5c5de4b3fc6
--- /dev/null
+++ b/net-wireless/spectools/spectools-9999.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit udev toolchain-funcs
+
+MY_PN=${PN}
+MY_PV=${PV/\./-}
+MY_PV=${MY_PV/./-R}
+MY_P="${MY_PN}-${MY_PV}"
+S=${WORKDIR}/${MY_P}
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://www.kismetwireless.net/${PN}.git"
+ inherit git-r3
+ KEYWORDS=""
+else
+ SRC_URI="http://www.kismetwireless.net/code/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~ppc ~x86"
+fi
+
+DESCRIPTION="Spectrum Analyzer for Meta-Geek Wi-Spy and GSG Ubertooth hardware"
+HOMEPAGE="http://www.kismetwireless.net/spectools/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="debug +ncurses +gtk"
+
+RDEPEND="virtual/libusb:0
+ ncurses? ( sys-libs/ncurses )
+ gtk? ( x11-libs/gtk+:2 )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+# Upstream has still not migrated to the libusb-1 line.
+# Maemo: Add hildon and bbus
+
+# Please note that upstream removed the --with-gtk-version option
+# and GTK is now automagical. GTK1 support was also removed.
+src_compile() {
+ emake depend
+
+ emake spectool_net
+
+ use debug && emake spectool_raw
+
+ use ncurses && emake spectool_curses
+
+ use gtk && emake spectool_gtk
+
+ #if use maemo; then
+ # emake spectool_hildon usbcontrol \
+ # || die "emake spectool_hildon usbcontrol failed"
+ #fi
+}
+
+src_install() {
+ dobin spectool_net
+ use debug && dobin spectool_raw
+ use ncurses && dobin spectool_curses
+ use gtk && dobin spectool_gtk
+
+ udev_dorules 99-wispy.rules
+ dodoc README
+
+ #if use maemo; then
+ # dobin spectool_hildon
+ # dosbin usbcontrol
+ #fi
+}
diff --git a/net-wireless/ubertooth/Manifest b/net-wireless/ubertooth/Manifest
new file mode 100644
index 000000000000..2f20f68116a5
--- /dev/null
+++ b/net-wireless/ubertooth/Manifest
@@ -0,0 +1,2 @@
+DIST ubertooth-2014-04-R1.tar.xz 1762456 SHA256 0881b4bde755acea557851852bc830c100986801148ac1fcaf8ca898623edfaa SHA512 9cc415c7e7f4ce40703e7dcf916e8942325902ab3af470fb959de6bbe047a824ad62b41a09e95ead5a74a961674d2dd4d30e582db21e2ba47f648eb99462bf4a WHIRLPOOL 6c01402ebf004e782bbe4ad891c3b8ebee0040a5bfb6fcdeb2939a105646157b1786b90772a502b92e26a356a5674bafd6960ce83e3f81db819dd5575e6fc444
+DIST ubertooth-r534.tar.gz 2959832 SHA256 5e227872ee8c088fe2cdac936c4a30d1e12b8f7c6ac781c96004ad7528b44730 SHA512 b3e150b8f8a4335f65fd8b7b629316eae08cf0560269991af6632d48e360f17dd98742da975df33852760140cd5f4571f72f36d973fa5e6d8df47932561acfa6 WHIRLPOOL 7d7ea0db033b34cbf16f963ea42d05db9bf8f82f41d5d26dd6510a95ffe339dae3fef54f5cef5d71bfedb1e05531bf33998cbcabe88af611feeaecf1e22a7b10
diff --git a/net-wireless/ubertooth/files/40-ubertooth.rules b/net-wireless/ubertooth/files/40-ubertooth.rules
new file mode 100644
index 000000000000..e5537aa1f831
--- /dev/null
+++ b/net-wireless/ubertooth/files/40-ubertooth.rules
@@ -0,0 +1,5 @@
+ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0004", MODE="0660", GROUP="usb"
+ATTRS{idVendor}=="id50", ATTRS{idProduct}=="6000", MODE="0660", GROUP="usb"
+ATTRS{idVendor}=="id50", ATTRS{idProduct}=="6001", MODE="0660", GROUP="usb"
+ATTRS{idVendor}=="id50", ATTRS{idProduct}=="6002", MODE="0660", GROUP="usb"
+ATTRS{idVendor}=="id50", ATTRS{idProduct}=="6003", MODE="0660", GROUP="usb"
diff --git a/net-wireless/ubertooth/metadata.xml b/net-wireless/ubertooth/metadata.xml
new file mode 100644
index 000000000000..72fad34aa230
--- /dev/null
+++ b/net-wireless/ubertooth/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <longdescription lang="en">
+ </longdescription>
+ <use>
+ <flag name="bluez">use bluez to support clock following and scanning</flag>
+ <flag name="dfu">Install ubertooth-dfu (needed for read/write of firmware)</flag>
+ <flag name="pcap">Use libpcap for packet capture and read/write</flag>
+ <flag name="specan">Enable the ubertooth spectrum analyzer</flag>
+ <flag name="ubertooth0-firmware">Build/install ubertooth0-firmware</flag>
+ <flag name="ubertooth1-firmware">Build/install ubertooth1-firmware</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">greatscottgadgets/ubertooth</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/ubertooth/ubertooth-0.0_p534.ebuild b/net-wireless/ubertooth/ubertooth-0.0_p534.ebuild
new file mode 100644
index 000000000000..a9d2161179b5
--- /dev/null
+++ b/net-wireless/ubertooth/ubertooth-0.0_p534.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit multilib #flag-o-matic
+
+HOMEPAGE="http://ubertooth.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+dfu +specan ubertooth0-firmware +ubertooth1-firmware"
+REQUIRED_USE="ubertooth0-firmware? ( dfu )
+ ubertooth1-firmware? ( dfu )"
+DEPEND=""
+RDEPEND="specan? ( virtual/libusb:1 )
+ dfu? ( virtual/libusb:1 )
+ specan? ( >=dev-qt/qtgui-4.7.2:4
+ >=dev-python/pyside-1.0.2
+ >=dev-python/numpy-1.3 )
+ specan? ( >=dev-python/pyusb-1.0.0_alpha1 )
+ dfu? ( >=dev-python/pyusb-1.0.0_alpha1 )"
+
+if [[ ${PV} == "9999" ]] ; then
+ ESVN_REPO_URI="https://ubertooth.svn.sourceforge.net/svnroot/ubertooth/trunk/"
+ SRC_URI=""
+ inherit subversion
+ KEYWORDS=""
+ DEPEND="=net-libs/libbtbb-9999"
+ RDEPEND="${RDEPEND}
+ =net-libs/libbtbb-9999
+ ubertooth0-firmware? ( sys-devel/gcc-arm-embedded-bin )
+ ubertooth1-firmware? ( sys-devel/gcc-arm-embedded-bin )"
+else
+ MY_PV="${PV/p/r}"
+ MY_PV="${MY_PV/0.0_/}"
+ SRC_URI="mirror://sourceforge/${PN}/${PN}-${MY_PV}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}/${PN}-${MY_PV}/"
+ DEPEND=">=net-libs/libbtbb-0.8"
+ RDEPEND="${RDEPEND}
+ >=net-libs/libbtbb-0.8"
+fi
+DESCRIPTION="An open source wireless development platform suitable for Bluetooth experimentation"
+
+src_compile() {
+ #sometimes needed to build, remove when a release is made after r534 if not needed
+ #filter-ldflags -Wl,--as-needed
+ cd "${S}/host/bluetooth_rxtx" || die
+ emake
+
+ if [[ ${PV} == "9999" ]] ; then
+ cd "${S}"/firmware/bluetooth_rxtx || die
+ if use ubertooth0-firmware; then
+ SVN_REV_NUM="-D'SVN_REV_NUM'=${ESVN_WC_REVISION}" DFU_TOOL=/usr/bin/ubertooth-dfu BOARD=UBERTOOTH_ZERO emake -j1
+ mv bluetooth_rxtx.bin bluetooth_rxtx_U0.bin || die
+ emake clean
+ fi
+ if use ubertooth1-firmware; then
+ SVN_REV_NUM="-D'SVN_REV_NUM'=${ESVN_WC_REVISION}" DFU_TOOL=/usr/bin/ubertooth-dfu emake -j1
+ mv bluetooth_rxtx.bin bluetooth_rxtx_U1.bin || die
+ fi
+ fi
+}
+
+src_install() {
+ cd host || die
+ dobin bluetooth_rxtx/ubertooth-dump bluetooth_rxtx/ubertooth-lap \
+ bluetooth_rxtx/ubertooth-btle bluetooth_rxtx/ubertooth-uap \
+ bluetooth_rxtx/ubertooth-hop bluetooth_rxtx/ubertooth-util
+
+ use specan && dobin bluetooth_rxtx/ubertooth-specan specan_ui/specan.py specan_ui/ubertooth-specan-ui
+
+ use dfu && dobin usb_dfu/ubertooth-dfu usb_dfu/dfu_suffix.py
+
+ insinto /lib/firmware
+ cd "${S}"
+ if [[ ${PV} == "9999" ]] ; then
+ use ubertooth0-firmware && doins firmware/bluetooth_rxtx/bluetooth_rxtx_U0.bin
+ use ubertooth1-firmware && doins firmware/bluetooth_rxtx/bluetooth_rxtx_U1.bin
+ else
+ use ubertooth0-firmware && newins ubertooth-zero-firmware-bin/bluetooth_rxtx.bin bluetooth_rxtx_U0.bin
+ use ubertooth1-firmware && newins ubertooth-one-firmware-bin/bluetooth_rxtx.bin bluetooth_rxtx_U1.bin
+ fi
+
+ insinto /lib/udev/rules.d/
+ doins "${FILESDIR}"/40-ubertooth.rules
+
+ elog "Everyone can read from the ubertooth, but to talk to it"
+ elog "your user needs to be in the usb group."
+}
diff --git a/net-wireless/ubertooth/ubertooth-2014.04.1-r1.ebuild b/net-wireless/ubertooth/ubertooth-2014.04.1-r1.ebuild
new file mode 100644
index 000000000000..c005f55d080d
--- /dev/null
+++ b/net-wireless/ubertooth/ubertooth-2014.04.1-r1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_DEPEND="python? 2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit multilib distutils cmake-utils
+
+HOMEPAGE="http://ubertooth.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+bluez +dfu +specan +python +ubertooth1-firmware +udev"
+REQUIRED_USE="dfu? ( python )
+ specan? ( python )
+ ubertooth1-firmware? ( dfu )
+ python? ( || ( dfu specan ) )"
+DEPEND="bluez? ( net-wireless/bluez:= )
+ >=net-libs/libbtbb-2014.02.2:=
+ net-libs/libpcap:="
+RDEPEND="${DEPEND}
+ specan? ( virtual/libusb:1
+ >=dev-qt/qtgui-4.7.2:4
+ >=dev-python/pyside-1.0.2
+ >=dev-python/numpy-1.3
+ >=dev-python/pyusb-1.0.0_alpha1 )
+ dfu? ( virtual/libusb:1
+ >=dev-python/pyusb-1.0.0_alpha1 )
+ udev? ( virtual/udev )"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/greatscottgadgets/ubertooth.git"
+ inherit git-r3
+ KEYWORDS=""
+ S="${WORKDIR}/${P}/host"
+else
+ MY_PV=${PV/\./-}
+ MY_PV=${MY_PV/./-R}
+ S="${WORKDIR}/${PN}-${MY_PV}/host"
+ SRC_URI="https://github.com/greatscottgadgets/${PN}/releases/download/${MY_PV}/${PN}-${MY_PV}.tar.xz"
+ #re-add arm keyword after making a lib-only target
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+DESCRIPTION="An open source wireless development platform suitable for Bluetooth experimentation"
+
+#readd firmware building, but do it right
+#USE="-fortran -mudflap -nls -openmp -multilib" crossdev --without-headers --genv 'EXTRA_ECONF="--with-mode=thumb --with-cpu=cortex-m3 --with-float=soft"' -s4 -t arm-cortexm3-eabi
+
+pkg_setup() {
+ if use python; then
+ python_pkg_setup;
+ DISTUTILS_SETUP_FILES=()
+ if use dfu; then
+ DISTUTILS_SETUP_FILES+=("${S}/python/usb_dfu|setup.py")
+ PYTHON_MODNAME="dfu"
+ fi
+ if use specan; then
+ DISTUTILS_SETUP_FILES+=("${S}/python/specan_ui|setup.py")
+ PYTHON_MODNAME+=" specan"
+ fi
+ fi
+}
+
+src_prepare() {
+ cmake-utils_src_prepare
+ use python && distutils_src_prepare
+}
+
+src_configure() {
+ mycmakeargs=(
+ $(cmake-utils_use_enable bluez USE_BLUEZ)
+ -DDISABLE_PYTHON=true
+ )
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+
+ use python && distutils_src_compile
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ insinto /usr/share/${PN}
+ cd "${WORKDIR}/${PN}-${MY_PV}" || die
+ if [[ ${PV} == "9999" ]] ; then
+ ewarn "Firmware isn't available for git releases, we assume you are already"
+ ewarn "on the latest and/or can build your own."
+ else
+ use ubertooth1-firmware && newins ubertooth-one-firmware-bin/bluetooth_rxtx.dfu ${PN}-one-${PV}-bluetooth_rxtx.dfu
+ fi
+
+ if use udev; then
+ insinto /lib/udev/rules.d/
+ doins "${S}"/lib${PN}/40-${PN}.rules
+ fi
+
+ use python && distutils_src_install
+
+ elog "Everyone can read from the ubertooth, but to talk to it"
+ elog "your user needs to be in the usb group."
+}
+
+pkg_postinst() {
+ use python && distutils_pkg_postinst
+}
+
+pkg_postrm() {
+ use python && distutils_pkg_postrm
+}
diff --git a/net-wireless/ubertooth/ubertooth-9999.ebuild b/net-wireless/ubertooth/ubertooth-9999.ebuild
new file mode 100644
index 000000000000..ae358ea08dad
--- /dev/null
+++ b/net-wireless/ubertooth/ubertooth-9999.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+
+inherit multilib distutils-r1 cmake-utils udev
+
+HOMEPAGE="http://ubertooth.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+bluez +specan +pcap +ubertooth1-firmware +udev"
+REQUIRED_USE=" specan? ( ${PYTHON_REQUIRED_USE} )"
+DEPEND="bluez? ( net-wireless/bluez:= )
+ >=net-libs/libbtbb-${PV}:=
+ pcap? ( net-libs/libbtbb[pcap] )
+ specan? ( ${PYTHON_DEPS} )
+ virtual/libusb:1="
+RDEPEND="${DEPEND}
+ specan? ( >=dev-qt/qtgui-4.7.2:4
+ >=dev-python/pyside-1.0.2[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.3[${PYTHON_USEDEP}] )
+ udev? ( virtual/udev )"
+
+MY_PV=${PV/\./-}
+MY_PV=${MY_PV/./-R}
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/greatscottgadgets/ubertooth.git"
+ inherit git-r3
+ KEYWORDS=""
+ S="${WORKDIR}/${P}/host"
+else
+ S="${WORKDIR}/${PN}-${MY_PV}/host"
+ SRC_URI="https://github.com/greatscottgadgets/${PN}/releases/download/${MY_PV}/${PN}-${MY_PV}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+DESCRIPTION="An open source wireless development platform suitable for Bluetooth experimentation"
+
+#readd firmware building, but do it right
+#USE="-fortran -mudflap -nls -openmp -multilib" crossdev --without-headers --genv 'EXTRA_ECONF="--with-mode=thumb --with-cpu=cortex-m3 --with-float=soft"' -s4 -t arm-cortexm3-eabi
+
+src_prepare() {
+ cmake-utils_src_prepare
+ if use specan; then
+ pushd python/specan_ui || die
+ distutils-r1_src_prepare
+ popd
+ fi
+}
+
+src_configure() {
+ mycmakeargs=(
+ $(cmake-utils_use_enable bluez USE_BLUEZ)
+ $(cmake-utils_use pcap USE_PCAP)
+ $(cmake-utils_use_enable udev INSTALL_UDEV_RULES)
+ -DDISABLE_PYTHON=true
+ )
+ if use udev; then
+ mycmakeargs+=(
+ -DUDEV_RULES_GROUP=usb
+ -DUDEV_RULES_PATH="$(get_udevdir)/rules.d"
+ )
+ fi
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+
+ if use specan; then
+ pushd python/specan_ui || die
+ distutils-r1_src_compile
+ popd
+ fi
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ insinto /usr/share/${PN}
+ pushd "${WORKDIR}/${PN}-${MY_PV}" || die
+ if [[ ${PV} == "9999" ]] ; then
+ ewarn "Firmware isn't available for git releases, we assume you are already"
+ ewarn "on the latest and/or can build your own."
+ else
+ use ubertooth1-firmware && newins ubertooth-one-firmware-bin/bluetooth_rxtx.dfu ${PN}-one-${PV}-bluetooth_rxtx.dfu
+ fi
+ popd
+
+ if use specan; then
+ pushd python/specan_ui || die
+ distutils-r1_src_install
+ popd
+ fi
+
+ elog "Everyone can read from the ubertooth, but to talk to it"
+ elog "your user needs to be in the usb group."
+}
diff --git a/net-wireless/uhd/Manifest b/net-wireless/uhd/Manifest
new file mode 100644
index 000000000000..9745beb957bf
--- /dev/null
+++ b/net-wireless/uhd/Manifest
@@ -0,0 +1,2 @@
+DIST EttusResearch-UHD-3.8.2.tar.gz 2170233 SHA256 04fc1e42010560a5c74c714be2729a252b06bf46b982321a3e47ca5ed72a3bce SHA512 7a2939f883bd5445fc8f16e1e09d3fc3dc2b41481dfb4bdefd4a8e4f2c6c0d1c703f2a47e373b295d11419740b5c62d959557ed3fd880bf75977c9716316a844 WHIRLPOOL ff883bd01768d68b7bc20b97d92e38e7f8ee79571a2cc62917f435482fdd415af7166b3032d71b842cabf12a42c3d3da09ea962f68393b7dc723acce49db65d3
+DIST uhd-images_003.008.002-release.zip 24803095 SHA256 5e3df6bff5040276208d25848ad085e0ecbbd9f8c528be04f19f91d3b169a1ee SHA512 a2a970928f7f4e9bbf983f19c71bcf9b1b26a6f7bd66f1a171e6fc7d329a7107bff0e6425734299a88b639663951e27ec4a49efcb7731cb2f3e94c2cd4557e36 WHIRLPOOL 404bfe4f87e26e0f39b467abebd7735fef42833a117561b8a73917e36d59b20dc9d62fe89bfd19e9daa3d3e7069ec4b1e0a92808f835f8f5f17e8cccd153495a
diff --git a/net-wireless/uhd/metadata.xml b/net-wireless/uhd/metadata.xml
new file mode 100644
index 000000000000..25faa41d0ed4
--- /dev/null
+++ b/net-wireless/uhd/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <maintainer>
+ <email>zx2c4@gentoo.org</email>
+ <name>Jason A. Donenfeld</name>
+ </maintainer>
+ <longdescription lang="en">
+</longdescription>
+ <upstream>
+ <remote-id type="github">EttusResearch/uhd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/uhd/uhd-3.8.2.ebuild b/net-wireless/uhd/uhd-3.8.2.ebuild
new file mode 100644
index 000000000000..750ae0af048b
--- /dev/null
+++ b/net-wireless/uhd/uhd-3.8.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+inherit versionator python-single-r1 gnome2-utils cmake-utils multilib
+
+DESCRIPTION="Universal Software Radio Peripheral (USRP) Hardware Driver"
+HOMEPAGE="http://code.ettus.com/redmine/ettus/projects/uhd/wiki"
+
+image_version=uhd-images_00$(get_version_component_range 1).00$(get_version_component_range 2).00$(get_version_component_range 3)-release
+SRC_URI="https://github.com/EttusResearch/uhd/archive/release_00$(get_version_component_range 1)_00$(get_version_component_range 2)_00$(get_version_component_range 3).tar.gz -> EttusResearch-UHD-$(get_version_component_range 1).$(get_version_component_range 2).$(get_version_component_range 3).tar.gz \
+ http://files.ettus.com/binaries/images/${image_version}.zip"
+#https://github.com/EttusResearch/UHD-Mirror/tags
+#http://files.ettus.com/binaries/images/
+KEYWORDS="~amd64 ~arm ~x86"
+S="${WORKDIR}"/uhd-release_00$(get_version_component_range 1)_00$(get_version_component_range 2)_00$(get_version_component_range 3)/host
+
+LICENSE="GPL-3"
+SLOT="0/1"
+IUSE=""
+RDEPEND="virtual/libusb:1
+ dev-lang/orc
+ dev-libs/boost:=
+ sys-libs/ncurses
+ "
+DEPEND="${RDEPEND}
+ dev-python/cheetah
+ app-arch/unzip"
+
+src_prepare() {
+ gnome2_environment_reset #534582
+
+ #this may not be needed in 3.4.3 and above, please verify
+ sed -i 's#SET(PKG_LIB_DIR ${PKG_DATA_DIR})#SET(PKG_LIB_DIR ${LIBRARY_DIR}/uhd)#g' CMakeLists.txt || die
+}
+
+src_install() {
+ cmake-utils_src_install
+ python_fix_shebang "${ED}"/usr/$(get_libdir)/${PN}/utils/
+ insinto /lib/udev/rules.d/
+ doins "${S}"/utils/uhd-usrp.rules
+ insinto /usr/share/${PN}
+ doins -r "${WORKDIR}"/"${image_version}"/share/uhd/images
+}
diff --git a/net-wireless/wavemon/Manifest b/net-wireless/wavemon/Manifest
new file mode 100644
index 000000000000..f8f3eff1c275
--- /dev/null
+++ b/net-wireless/wavemon/Manifest
@@ -0,0 +1,2 @@
+DIST wavemon-0.7.5.tar.bz2 115617 SHA256 6dba1ba237833ba6c2e2345be21044ff4a1fef2a1c049508d74e64a500e82e2c SHA512 d97ff71bdbff06f7cd32db8d3695c656843c162ec9eef16ea430b498f5715e6c61384cfe791f20b75ae473a5d38d66a035a5b947020e1d60c70114dbb2a44e12 WHIRLPOOL bec900a0b38f5020bd0e4360c0a8989600a88b93c7d14501f5683adf3d7551be35704c8620132fe5f5b60237191aa4d3b5944bfc8e9234afb9ec0ca1a5fffb8f
+DIST wavemon-0.7.6.tar.bz2 116194 SHA256 de0c64fe5fa2d439417ca4fe0863c417ec59276a9c9aec5afac77f5edfa79ca1 SHA512 95f47204e50c1a44a2230e2d8cbed90d76e53f5e674f6f54f64ba6c99590c90213d9422e62951d55bcf4c8e2325e63e6a7c0c7d1b14a4120d5f0d291dc36cd68 WHIRLPOOL 2d3b9663b2fe0f9a513dda27c93c5ccad387c481b03f64b6d7b06d310736b517128a4921f70022d840444a293ad33576126681cf39162942c3a9b1037286c2ed
diff --git a/net-wireless/wavemon/files/wavemon-0.6.7-dont-override-CFLAGS.patch b/net-wireless/wavemon/files/wavemon-0.6.7-dont-override-CFLAGS.patch
new file mode 100644
index 000000000000..df98db7cd590
--- /dev/null
+++ b/net-wireless/wavemon/files/wavemon-0.6.7-dont-override-CFLAGS.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -9,8 +9,6 @@
+ AC_DEFINE_UNQUOTED([BUILD_DATE], ["`/bin/date`"],
+ [date wavemon was last configured and built])
+
+-CFLAGS="-O2 -Wall"
+-
+ # wavemon is only supported on Linux, warn user about futile compilations
+ AC_CANONICAL_HOST
+ case "$host_os" in
diff --git a/net-wireless/wavemon/files/wavemon-0.7.5-ncurses-tinfo.patch b/net-wireless/wavemon/files/wavemon-0.7.5-ncurses-tinfo.patch
new file mode 100644
index 000000000000..8c18c0f83c2a
--- /dev/null
+++ b/net-wireless/wavemon/files/wavemon-0.7.5-ncurses-tinfo.patch
@@ -0,0 +1,18 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -21,6 +21,7 @@ esac
+ AC_PROG_CC
+ AC_PROG_CPP
+ AC_PROG_INSTALL
++PKG_PROG_PKG_CONFIG
+
+ # Checks for header files.
+ AC_HEADER_STDC
+@@ -53,6 +54,6 @@ AC_HEADER_STDBOOL
+ # Tests involving libraries
+ AC_CHECK_LIB([m], [pow])
+-AC_CHECK_LIB([ncurses], [waddstr])
++PKG_CHECK_MODULES([ncurses], [ncurses], [LIBS="$LIBS $ncurses_LIBS"], AC_MSG_ERROR([ncurses is required but was not found]))
+ AC_CHECK_LIB([cap], [cap_get_flag])
+
+
diff --git a/net-wireless/wavemon/files/wavemon-0.7.6-ncurses-tinfo.patch b/net-wireless/wavemon/files/wavemon-0.7.6-ncurses-tinfo.patch
new file mode 100644
index 000000000000..e8d0af99587b
--- /dev/null
+++ b/net-wireless/wavemon/files/wavemon-0.7.6-ncurses-tinfo.patch
@@ -0,0 +1,19 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -21,6 +21,7 @@
+ AC_PROG_CC
+ AC_PROG_CPP
+ AC_PROG_INSTALL
++PKG_PROG_PKG_CONFIG
+
+ # Checks for header files.
+ AC_HEADER_STDC
+@@ -52,7 +53,7 @@
+
+ # Tests involving libraries
+ AC_CHECK_LIB([m], [pow], [], [AC_MSG_ERROR(math library not found)])
+-AC_CHECK_LIB([ncurses], [waddstr], [], [AC_MSG_ERROR(ncurses library not found)])
++PKG_CHECK_MODULES([ncurses], [ncurses], [LIBS="$LIBS $ncurses_LIBS"], AC_MSG_ERROR([ncurses is required but was not found]))
+ AC_CHECK_LIB([pthread], [pthread_create], [CFLAGS="$CFLAGS -pthread"],
+ [AC_MSG_ERROR(pthread library not found)])
+ AC_CHECK_LIB([cap], [cap_get_flag])
diff --git a/net-wireless/wavemon/metadata.xml b/net-wireless/wavemon/metadata.xml
new file mode 100644
index 000000000000..b6b8956cde34
--- /dev/null
+++ b/net-wireless/wavemon/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>pinkbyte@gentoo.org</email>
+ <name>Sergey Popov</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/net-wireless/wavemon/wavemon-0.7.5.ebuild b/net-wireless/wavemon/wavemon-0.7.5.ebuild
new file mode 100644
index 000000000000..267fd087e77d
--- /dev/null
+++ b/net-wireless/wavemon/wavemon-0.7.5.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+AUTOTOOLS_AUTORECONF=1
+AUTOTOOLS_IN_SOURCE_BUILD=1
+
+inherit autotools-utils
+
+DESCRIPTION="Ncurses based monitor for IEEE 802.11 wireless LAN cards"
+HOMEPAGE="http://eden-feed.erg.abdn.ac.uk/wavemon/"
+SRC_URI="http://eden-feed.erg.abdn.ac.uk/wavemon/stable-releases/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 arm hppa ppc sparc x86"
+
+IUSE="caps"
+RDEPEND="sys-libs/ncurses
+ caps? ( sys-libs/libcap )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+DOCS=( AUTHORS ChangeLog NEWS README THANKS )
+PATCHES=(
+ "${FILESDIR}/${PN}-0.6.7-dont-override-CFLAGS.patch"
+ "${FILESDIR}/${P}-ncurses-tinfo.patch"
+)
+
+src_prepare() {
+ # Do not install docs to /usr/share
+ sed -i -e '/^install:/s/install-docs//' Makefile.in || die 'sed on Makefile.in failed'
+
+ # automagic on libcap, discovered in bug #448406
+ use caps || export ac_cv_lib_cap_cap_get_flag=false
+
+ autotools-utils_src_prepare
+}
+
+src_install() {
+ autotools-utils_src_install
+ # Install man files manually(bug #397807)
+ doman wavemon.1
+ doman wavemonrc.5
+}
diff --git a/net-wireless/wavemon/wavemon-0.7.6.ebuild b/net-wireless/wavemon/wavemon-0.7.6.ebuild
new file mode 100644
index 000000000000..47c7d19b28ff
--- /dev/null
+++ b/net-wireless/wavemon/wavemon-0.7.6.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+AUTOTOOLS_AUTORECONF=1
+AUTOTOOLS_IN_SOURCE_BUILD=1
+
+inherit autotools-utils flag-o-matic toolchain-funcs
+
+DESCRIPTION="Ncurses based monitor for IEEE 802.11 wireless LAN cards"
+HOMEPAGE="http://eden-feed.erg.abdn.ac.uk/wavemon/"
+SRC_URI="http://eden-feed.erg.abdn.ac.uk/wavemon/stable-releases/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 arm hppa ppc sparc x86"
+
+IUSE="caps"
+RDEPEND="sys-libs/ncurses
+ caps? ( sys-libs/libcap )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+DOCS=( AUTHORS ChangeLog NEWS README THANKS )
+PATCHES=(
+ "${FILESDIR}/${PN}-0.6.7-dont-override-CFLAGS.patch"
+ "${FILESDIR}/${P}-ncurses-tinfo.patch"
+)
+
+src_prepare() {
+ # Do not install docs to /usr/share
+ sed -i -e '/^install:/s/install-docs//' Makefile.in || die 'sed on Makefile.in failed'
+
+ # automagic on libcap, discovered in bug #448406
+ use caps || export ac_cv_lib_cap_cap_get_flag=false
+
+ # Respect CC, fix linking
+ tc-export CC
+ append-ldflags -pthread
+
+ autotools-utils_src_prepare
+}
+
+src_install() {
+ autotools-utils_src_install
+ # Install man files manually(bug #397807)
+ doman wavemon.1
+ doman wavemonrc.5
+}
diff --git a/net-wireless/wepattack/Manifest b/net-wireless/wepattack/Manifest
new file mode 100644
index 000000000000..42a0a5551098
--- /dev/null
+++ b/net-wireless/wepattack/Manifest
@@ -0,0 +1 @@
+DIST WepAttack-0.1.3.tar.gz 25063 SHA256 4a251df5b68eb2724491470cddda699e8fabdfce3c4778a722fb9299e4dc21a2 SHA512 fe8d9843613fc29b7802f699311cb67fe3546a17a279ebc2e150cce155e726270dc937b1c941d9e9287b813febf171fe56053f6b010c4f2021e45e572f91fdf4 WHIRLPOOL fcbbf595fc35e3f6fcdbd8e5a5bc334d40e1603fd6c40bd008440617c092b80cf1d24189c5459145fc87b2e8b88c8b352ff6688546375e7b67118796dea5d920
diff --git a/net-wireless/wepattack/files/wepattack-0.1.3-filter-mac-address.patch b/net-wireless/wepattack/files/wepattack-0.1.3-filter-mac-address.patch
new file mode 100644
index 000000000000..63ba5f3473bb
--- /dev/null
+++ b/net-wireless/wepattack/files/wepattack-0.1.3-filter-mac-address.patch
@@ -0,0 +1,186 @@
+--- a/src/config.h
++++ b/src/config.h
+@@ -37,7 +37,7 @@
+ #define WEPKEYSTORE (WEPKEYSIZE * WEPKEYS)
+
+ #define DEBUG 0
+-#define VERSION "0.1.3"
++#define VERSION "0.1.3 (Gentoo patched)"
+
+
+ #endif
+--- a/src/log.c
++++ b/src/log.c
+@@ -73,7 +73,7 @@
+ fprintf(fp, "Cracking started: %s", ctime(&start_time));
+ fprintf(fp, "%s\t%s\n", word, in);
+
+- fprintf(fp, "\nBssid\tKeyNo\tWepKey\tASCII\tEncryption\tElapsed Time");
++ fprintf(fp, "\nBssid\t\t\tKeyNo\tWepKey\t\tASCII\tEncryption\tElapsed Time");
+ fclose(fp);
+ }
+
+@@ -120,7 +120,7 @@
+ fprintf(fp, "\n");
+ print_hex_array(fp, list->frame.bssid, 6);
+ fprintf(fp, "\t%d", list->frame.key);
+- fprintf(fp, "\tnot cracked\t\t%d sec",
++ fprintf(fp, "\tnot cracked\t\t\t\t%d sec",
+ (int)difftime(now, start_time));
+ }
+ list = list->next;
+--- a/src/misc.c
++++ b/src/misc.c
+@@ -40,10 +40,11 @@
+ fprintf(stdout,"WEPATTACK by Dominik Blunk and Alain ");
+ fprintf(stdout,"Girardet - Version %s\n", VERSION);
+ fprintf(stdout,"\nusage: wepattack -f dumpfile [-w wordfile]");
+- fprintf(stdout, " [-m mode] [-n network]\n");
++ fprintf(stdout, " [-m mode] [-b mac_address] [-n network]\n");
+ fprintf(stdout,"-f dumpfile \tnetwork dumpfile to read\n");
+ fprintf(stdout,"\t\t(in PCAP format as TCPDUMP or ETHEREAL uses)\n");
+ fprintf(stdout,"-w wordlist \twordlist to use (default: stdin)\n");
++ fprintf(stdout,"-b mac_address \tfilter the mac address from the dump file\n");
+ fprintf(stdout,"-m mode \trun wepattack in diffente modes (default: all)\n");
+ fprintf(stdout,"\t\tvalues: 64, 128, n64, n128\n");
+ fprintf(stdout,"-n network \tnetwork number to attack\n");
+--- a/src/wepattack.c
++++ b/src/wepattack.c
+@@ -4,6 +4,8 @@
+ * Author: Alain Girardet/Dominik Blunk
+ * Last Modified: 2002-10-24
+ *
++* Send me any suggestions about the patch to kirano_1@hotmail.com
++*
+ * Description: Read guessed passwords from stdin and applies RC4
+ * on sniffed encrypted 802.11 DATA packets
+ *
+@@ -57,6 +59,11 @@
+ // default mode (all modes sequential)
+ static unsigned char use_modes = 0x01;
+
++// to check bssid
++char* BSSID=NULL;
++wlan_packet_list* bssids_list=NULL;
++int is_bssid_set = 0;
++
+ void clean_up();
+
+ //
+@@ -64,7 +71,11 @@
+ //
+ void load_packets(char *infile, int network) {
+
+- int network_count = 0;
++ int network_count = 0;
++ wlan_packet_list* aux;
++ wlan_packet_list* aux_2;
++ wlan_packet_list* aux3;
++ char bssid_aux[18],bssid_aux2[13],bssid_aux3[18],bssid_aux4[13];
+
+ // load networks from file
+ list_packet_to_crack = get_packets(infile);
+@@ -77,17 +88,57 @@
+
+ current_packet = list_packet_to_crack;
+
+- // list all available networks
+- printf("\n\nFounded BSSID:");
+- while (current_packet->next != NULL) {
+- network_count++;
+- printf("\n%d) ", network_count);
+- print_hex_array(stdout, current_packet->frame.bssid, 6);
+- printf("/ Key %d", current_packet->frame.key);
+- current_packet = current_packet->next;
++ //Make another list with provided bssid
++ if (is_bssid_set){
++ for (aux=current_packet; aux!=NULL;aux=aux->next){
++ sprintf(bssid_aux,"%.2X:%.2X:%.2X:%.2X:%.2X:%.2X",aux->frame.bssid[0],aux->frame.bssid[1],aux->frame.bssid[2],aux->frame.bssid[3],aux->frame.bssid[4],aux->frame.bssid[5]);
++ sprintf(bssid_aux2,"%.2X%.2X%.2X%.2X%.2X%.2X",aux->frame.bssid[0],aux->frame.bssid[1],aux->frame.bssid[2],aux->frame.bssid[3],aux->frame.bssid[4],aux->frame.bssid[5]);
++ sprintf(bssid_aux3,"%.2x:%.2x:%.2x:%.2x:%.2x:%.2x",aux->frame.bssid[0],aux->frame.bssid[1],aux->frame.bssid[2],aux->frame.bssid[3],aux->frame.bssid[4],aux->frame.bssid[5]);
++ sprintf(bssid_aux4,"%.2x%.2x%.2x%.2x%.2x%.2x",aux->frame.bssid[0],aux->frame.bssid[1],aux->frame.bssid[2],aux->frame.bssid[3],aux->frame.bssid[4],aux->frame.bssid[5]);
++ if ((strncmp(bssid_aux,BSSID,17) == 0) || (strncmp(bssid_aux2,BSSID,12) == 0) || (strncmp(bssid_aux3,BSSID,17) == 0) || (strncmp(bssid_aux4,BSSID,12) == 0)){
++ aux_2 = malloc(sizeof(wlan_packet_list));
++ memcpy(&aux_2->frame.frameControl, aux->frame.frameControl, 2);
++ memcpy(&aux_2->frame.duration, aux->frame.duration, 2);
++ memcpy(&aux_2->frame.srcAddress, aux->frame.srcAddress, 6);
++ memcpy(&aux_2->frame.dstAddress, aux->frame.dstAddress, 6);
++ memcpy(&aux_2->frame.bssid, aux->frame.bssid, 6);
++ if(aux->frame.address4 > 0) {
++ memcpy(&aux_2->frame.address4, aux->frame.address4, 6);
++ }
++ memcpy(&aux_2->frame.sequenceControl, aux->frame.sequenceControl, 2);
++ memcpy(&aux_2->frame.iv, &aux->frame.iv, 3);
++ aux_2->frame.key=aux->frame.key;
++ memcpy(&aux_2->frame.payload, aux->frame.payload, (aux->framesize)- (aux->frame.limits_payload));
++ if (bssids_list == NULL){
++ aux3 = malloc(sizeof(wlan_packet_list));
++ aux3->next = NULL;
++ bssids_list = aux3;
++ }
++ aux_2->framesize = aux->framesize;
++ aux_2->next = bssids_list;
++ bssids_list = aux_2;
++ }
++ }
++ if (bssids_list != NULL){
++ //we must free the old list
++ delete_list(list_packet_to_crack);
++ list_packet_to_crack = bssids_list;
++ current_packet = list_packet_to_crack;
++ }
++ else printf("\n\nProvided BSSID not found. Cracking all networks");
+ }
++
++ // list all available networks
++ printf("\n\nFounded BSSID:");
++ while (current_packet->next != NULL) {
++ network_count++;
++ printf("\n%d) ", network_count);
++ print_hex_array(stdout, current_packet->frame.bssid, 6);
++ printf("/ Key %d", current_packet->frame.key);
++ current_packet = current_packet->next;
++ }
+
+- if (network > network_count)
++ if (network >= network_count)
+ network = 0;
+
+ // if only one should be attacked, remove the others from the list
+@@ -220,11 +272,15 @@
+
+ // process command line options
+ // program will terminate, if invalid options are passed
+- while((op = getopt(argc, argv, "n:m:f:w:?")) != -1) {
++ while((op = getopt(argc, argv, "n:b:m:f:w:?")) != -1) {
+ switch(op) {
+ case 'n':
+ network_arg = atoi(optarg);
+ break;
++ case 'b':
++ BSSID = optarg;
++ is_bssid_set = 1;
++ break;
+ // arg for packet file to read from
+ case 'f':
+ packet_file = optarg;
+--- a/src/wepattack.h
++++ b/src/wepattack.h
+@@ -38,6 +38,7 @@
+ unsigned char iv[3];
+ unsigned char key;
+ unsigned char payload[2400];
++ int limits_payload;
+ };
+
+ /*
+--- a/src/wepfilter.c
++++ b/src/wepfilter.c
+@@ -104,6 +103,7 @@
+ memcpy(&newframe->frame.key, data+limits.key, 1);
+ newframe->frame.key = newframe->frame.key >> 6;
+ memcpy(&newframe->frame.payload, data+limits.payload, length-limits.payload);
++ newframe->frame.limits_payload = limits.payload;
+ newframe->framesize = length;
+ newframe->next = *head;
+ *head = newframe;
diff --git a/net-wireless/wepattack/files/wepattack-0.1.3-missed-string.h-warnings-fix.patch b/net-wireless/wepattack/files/wepattack-0.1.3-missed-string.h-warnings-fix.patch
new file mode 100644
index 000000000000..b46220d0eff5
--- /dev/null
+++ b/net-wireless/wepattack/files/wepattack-0.1.3-missed-string.h-warnings-fix.patch
@@ -0,0 +1,30 @@
+--- a/src/modes.c
++++ b/src/modes.c
+@@ -20,6 +20,7 @@
+
+ #include <sys/types.h>
+ #include <stdio.h>
++#include <string.h>
+ #include "modes.h"
+ #include "rc4.h"
+ #include "wlan/wlan_compat.h"
+--- a/src/wepattack.c
++++ b/src/wepattack.c
+@@ -32,6 +32,7 @@
+ #include <zlib.h>
+ #include <math.h>
+ #include <signal.h>
++#include <string.h>
+ #include "wepattack.h"
+ #include "wepfilter.h"
+ #include "log.h"
+--- a/src/verify.c
++++ b/src/verify.c
+@@ -19,6 +19,7 @@
+
+ #include <stdio.h>
+ #include <zlib.h>
++#include <string.h> /* memcmp() */
+
+ int verify_crc32(unsigned char *data, int length, unsigned long* crc) {
+
diff --git a/net-wireless/wepattack/files/wepattack.conf b/net-wireless/wepattack/files/wepattack.conf
new file mode 100644
index 000000000000..2eb627da06c5
--- /dev/null
+++ b/net-wireless/wepattack/files/wepattack.conf
@@ -0,0 +1,9 @@
+# /etc/wepattack.conf
+#
+# Configuration for WEPATTACK
+# Dominik Blunk and Alain Girardet and Christoph Brill
+# 08-06-2005
+#
+
+JOHNDIR=/usr/sbin
+WORDLIST=/usr/share/john/password.lst
diff --git a/net-wireless/wepattack/metadata.xml b/net-wireless/wepattack/metadata.xml
new file mode 100644
index 000000000000..7d7e9c4af0ae
--- /dev/null
+++ b/net-wireless/wepattack/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>netmon</herd>
+ <longdescription lang="en">
+ WepAttack is a WLAN open source Linux tool for breaking 802.11 WEP keys.
+ This tool is based on an active dictionary attack that tests millions of
+ words to find the right key. Only one packet is required to start an
+ attack.
+ </longdescription>
+ <use>
+ <flag name="john">Build with <pkg>app-crypt/johntheripper</pkg>
+ support</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">wepattack</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/wepattack/wepattack-0.1.3-r3.ebuild b/net-wireless/wepattack/wepattack-0.1.3-r3.ebuild
new file mode 100644
index 000000000000..2e38482cb4fb
--- /dev/null
+++ b/net-wireless/wepattack/wepattack-0.1.3-r3.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils toolchain-funcs
+
+MY_P="WepAttack-${PV}"
+DESCRIPTION="WLAN tool for breaking 802.11 WEP keys"
+HOMEPAGE="http://wepattack.sourceforge.net/"
+SRC_URI="mirror://sourceforge/wepattack/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="john"
+
+DEPEND="
+ dev-libs/openssl
+ net-libs/libpcap
+ sys-libs/zlib
+"
+
+RDEPEND="${DEPEND}
+ john? ( app-crypt/johntheripper )"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-filter-mac-address.patch
+ epatch "${FILESDIR}"/${P}-missed-string.h-warnings-fix.patch
+ chmod +x src/wlan
+ sed -i \
+ -e "/^CFLAGS=/s:=:=${CFLAGS} :" \
+ -e 's:-fno-for-scope::g' \
+ -e "/^CC=/s:gcc:$(tc-getCC):" \
+ -e "/^LD=/s:gcc:$(tc-getCC):" \
+ -e 's:log.o\\:log.o \\:' \
+ src/Makefile || die
+ sed -i \
+ -e "s/wordfile:/-wordlist=/" \
+ run/wepattack_word || die
+}
+
+src_compile() {
+ emake -C src
+}
+
+src_install() {
+ dobin src/wepattack
+ if use john; then
+ dosbin run/wepattack_{inc,word}
+ insinto /etc
+ doins "${FILESDIR}"/wepattack.conf
+ fi
+ dodoc README
+}
diff --git a/net-wireless/wepdecrypt/Manifest b/net-wireless/wepdecrypt/Manifest
new file mode 100644
index 000000000000..def1634e3841
--- /dev/null
+++ b/net-wireless/wepdecrypt/Manifest
@@ -0,0 +1 @@
+DIST wepdecrypt-0.8.tar.gz 90260 SHA256 1c7cef077af4c162df1724d9149a15c231bf6c771380bb5789e66fb03f92c381 SHA512 68278e44055354eaf85640fdefc8d97a1155e6f022ed3d708db7d32e0fe8a8306a34fd80aae81eb9aa3ef51a069f8fe5ef060847163774184d4181c62853300f WHIRLPOOL 334c07e4f69bcaf78760a1c5991a1f527cfa0da63b1a583d0ab63bc779da6d775d702694aae4d2b739882c16debe8d45e14bd6a76fe653276526f09fc6aa4a62
diff --git a/net-wireless/wepdecrypt/files/wepdecrypt-0.8-buffer.patch b/net-wireless/wepdecrypt/files/wepdecrypt-0.8-buffer.patch
new file mode 100644
index 000000000000..528816f147b5
--- /dev/null
+++ b/net-wireless/wepdecrypt/files/wepdecrypt-0.8-buffer.patch
@@ -0,0 +1,11 @@
+--- src/wepclient.c 2006-07-08 19:48:08.000000000 -0400
++++ src/wepclient.c.new 2010-12-10 13:16:32.000000000 -0500
+@@ -75,7 +75,7 @@
+ int server_connection(unsigned char * server_host, int port, char * packet_file, unsigned char * init_key, unsigned char * end_key, unsigned char * decrypted_key, unsigned char * bssid, unsigned char * mode ,int option){
+ int sd, read_bytes, write_bytes, i, fd;
+ char file[11]="local.dump";
+- unsigned char buffer[149], digest[16];
++ unsigned char buffer[150], digest[16];
+ struct sockaddr_in dest;
+ struct in_addr *host_ip;
+ struct hostent *host;
diff --git a/net-wireless/wepdecrypt/files/wepdecrypt-0.8-build.patch b/net-wireless/wepdecrypt/files/wepdecrypt-0.8-build.patch
new file mode 100644
index 000000000000..5c13f87a7402
--- /dev/null
+++ b/net-wireless/wepdecrypt/files/wepdecrypt-0.8-build.patch
@@ -0,0 +1,20 @@
+diff -urNp wepdecrypt-0.8.org/src/Makefile wepdecrypt-0.8/src/Makefile
+--- wepdecrypt-0.8.org/src/Makefile 2006-07-09 02:48:08.000000000 +0300
++++ wepdecrypt-0.8/src/Makefile 2007-11-10 18:36:25.000000000 +0200
+@@ -6,15 +6,12 @@ include ../config.mak
+ wepdecrypt: wepdecrypt.o rc4.o wepfilter.o log.o modes.o misc.o verify.o keygen.o localkeygen.o wepserver.o wepclient.o md5_digest.o
+ $(LD) $(LDFLAGS) -o $@ wepdecrypt.o rc4.o wepfilter.o log.o \
+ modes.o misc.o md5_digest.o wepserver.o wepclient.o verify.o keygen.o localkeygen.o $(LIBS)
+- @if [ -f wepdecrypt.exe ]; then strip.exe wepdecrypt.exe; echo "strip.exe wepdecrypt.exe"; else strip wepdecrypt; echo "strip wepdecrypt"; fi
+
+ gwepdecrypt: gwepdecrypt.cpp
+ $(FLTK) --compile gwepdecrypt.cpp
+- @if [ -f gwepdecrypt.exe ]; then strip.exe gwepdecrypt.exe; echo "strip.exe gwepdecrypt.exe"; else strip gwepdecrypt; echo "strip gwepdecrypt"; fi
+
+ wkeygen: wkeygen.c
+- $(LD) $(LDFLAGS) $(CFLAGS) $(LIBS) -o $@ wkeygen.c
+- @if [ -f wkeygen.exe ]; then strip wkeygen.exe; echo "strip wkeygen.exe"; else strip wkeygen; echo "strip wkeygen"; fi
++ $(LD) $(LDFLAGS) $(CFLAGS) -o $@ wkeygen.c $(LIBS)
+
+ wepdecrypt.o: wepdecrypt.c wepdecrypt.h
+ $(CC) $(CFLAGS) -c -o $@ wepdecrypt.c
diff --git a/net-wireless/wepdecrypt/files/wepdecrypt-0.8-dyn.patch b/net-wireless/wepdecrypt/files/wepdecrypt-0.8-dyn.patch
new file mode 100644
index 000000000000..6fcdc578c729
--- /dev/null
+++ b/net-wireless/wepdecrypt/files/wepdecrypt-0.8-dyn.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Makefile b/src/Makefile
+index a779cb7..f32e65e 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -8,7 +8,7 @@ wepdecrypt: wepdecrypt.o rc4.o wepfilter.o log.o modes.o misc.o verify.o keygen
+ modes.o misc.o md5_digest.o wepserver.o wepclient.o verify.o keygen.o localkeygen.o $(LIBS)
+
+ gwepdecrypt: gwepdecrypt.cpp
+- $(FLTK) --compile gwepdecrypt.cpp
++ $(CXX) $(LDFLAGS) $(CFLAGS) -I. -o $@ gwepdecrypt.cpp $(shell fltk-config --cflags --ldflags) $(LIBS)
+
+ wkeygen: wkeygen.c
+ $(LD) $(LDFLAGS) $(CFLAGS) -o $@ wkeygen.c $(LIBS)
diff --git a/net-wireless/wepdecrypt/files/wepdecrypt-0.8-fltk.patch b/net-wireless/wepdecrypt/files/wepdecrypt-0.8-fltk.patch
new file mode 100644
index 000000000000..149c3eae32ad
--- /dev/null
+++ b/net-wireless/wepdecrypt/files/wepdecrypt-0.8-fltk.patch
@@ -0,0 +1,16 @@
+ configure | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/configure b/configure
+index 12fa395..258b157 100755
+--- a/configure
++++ b/configure
+@@ -2915,7 +2915,7 @@ fi
+ FIELD2=`$FLTK_CONFIG --version | awk -F . '{print $2}'`;
+ FIELD3=`$FLTK_CONFIG --version | awk -F . '{print $3}'`;
+
+- if test $FIELD1 -le 1 -a $FIELD3 -lt 6; then
++ if test $FIELD1 -le 1 -a $FIELD2 -lt 1; then
+ echo -e "\nconfigure: error: fltk-version must be 1.1.6 or greater!\n"; exit -1;
+ fi
+ if test $FIELD1 -lt 1; then
diff --git a/net-wireless/wepdecrypt/metadata.xml b/net-wireless/wepdecrypt/metadata.xml
new file mode 100644
index 000000000000..6b90830ce01a
--- /dev/null
+++ b/net-wireless/wepdecrypt/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>crypto</herd>
+ <upstream>
+ <remote-id type="sourceforge">wepdecrypt</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/wepdecrypt/wepdecrypt-0.8-r2.ebuild b/net-wireless/wepdecrypt/wepdecrypt-0.8-r2.ebuild
new file mode 100644
index 000000000000..473c8f2a2f0b
--- /dev/null
+++ b/net-wireless/wepdecrypt/wepdecrypt-0.8-r2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+inherit eutils
+
+DESCRIPTION="Enhanced version of WepAttack a tool for breaking 802.11 WEP keys"
+HOMEPAGE="http://wepdecrypt.sourceforge.net/"
+SRC_URI="mirror://sourceforge/wepdecrypt/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="X"
+RDEPEND="
+ dev-libs/openssl
+ net-libs/libpcap
+ sys-libs/zlib
+ X? ( x11-libs/fltk:1 )"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${P}-build.patch \
+ "${FILESDIR}"/${P}-fltk.patch
+
+ #Fix buffer size wrt bug 340148.
+ epatch "${FILESDIR}/${P}-buffer.patch"
+
+ epatch "${FILESDIR}/${P}-dyn.patch"
+
+ #Fix respect for jobserver
+ sed -i 's/make/$(MAKE)/g' Makefile || die "Sed failed"
+}
+
+src_configure() {
+ # build system is broken and --enabled-gui doesn't work
+ local myconf=""
+ ! use X && myconf="--disable-gui"
+
+ econf ${myconf}
+}
diff --git a/net-wireless/wifi-radar/Manifest b/net-wireless/wifi-radar/Manifest
new file mode 100644
index 000000000000..750cb05e470a
--- /dev/null
+++ b/net-wireless/wifi-radar/Manifest
@@ -0,0 +1 @@
+DIST wifi-radar-2.0.s08.tar.bz2 62781 SHA256 37479325556f1ce6d9309cb7906dcbd1b4e53e6e80616b6617556de7a6512f32 SHA512 8b14a227c4e1e60f05c981b51777dcb5318a1dda2026bc32e9fd761adb0a4243caabd7444768630ad54258f9f065f4c7cc73e9d8b17bc2ccd98f63f3119ce584 WHIRLPOOL c754028e32db1088c6311bb350fc6d591967391cd43cc8d24771e9c8333a2463e6c0877ff3133e2433a00c2bc4572540b4474f6bb6c59ac9ae113532c12dfe54
diff --git a/net-wireless/wifi-radar/metadata.xml b/net-wireless/wifi-radar/metadata.xml
new file mode 100644
index 000000000000..d9cd2cad66c2
--- /dev/null
+++ b/net-wireless/wifi-radar/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>maintainer-needed@gentoo.org</email>
+</maintainer>
+</pkgmetadata>
diff --git a/net-wireless/wifi-radar/wifi-radar-2.0.8-r2.ebuild b/net-wireless/wifi-radar/wifi-radar-2.0.8-r2.ebuild
new file mode 100644
index 000000000000..f7288586f76d
--- /dev/null
+++ b/net-wireless/wifi-radar/wifi-radar-2.0.8-r2.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils versionator python-single-r1 readme.gentoo
+
+MY_PV="$(get_version_component_range 1-2)"
+MY_PL="$(get_version_component_range 3)"
+MY_PL="s0${MY_PL}"
+MY_PV="${MY_PV}.${MY_PL}"
+
+DESCRIPTION="WiFi Radar is a Python/PyGTK2 utility for managing WiFi profiles"
+HOMEPAGE="http://wifi-radar.tuxfamily.org/"
+SRC_URI="${HOMEPAGE}pub/${PN}-${MY_PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE=""
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ app-admin/sudo
+ >=dev-python/pygtk-2.16.0-r1
+ >=net-wireless/wireless-tools-29
+ || ( net-misc/dhcpcd net-misc/dhcp net-misc/pump )
+"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Remember to edit configuration file /etc/${PN}.conf to suit your needs.
+To use ${PN} with a normal user (with sudo) add:
+%users ALL = /usr/sbin/${PN}
+in your /etc/sudoers. Also, find the line saying:
+Defaults env_reset
+and modify it as follows:
+Defaults env_keep=DISPLAY
+
+Then launch ${PN}.sh
+"
+
+src_prepare() {
+ sed -i "s:/etc/wpa_supplicant.conf:/etc/wpa_supplicant/wpa_supplicant.conf:" ${PN} || die
+ sed -i -e "s:/sbin/ifconfig:/bin/ifconfig:" ${PN} || die
+ python_fix_shebang .
+}
+
+src_install() {
+ dosbin ${PN}
+ dobin ${PN}.sh
+ doicon -s scalable pixmaps/${PN}.svg
+ doicon -s 32 pixmaps/wifi_radar_32x32.png
+ doicon pixmaps/${PN}.png
+ make_desktop_entry ${PN}.sh "WiFi Radar" ${PN} Network
+
+ doman man/man1/${PN}.1 man/man5/${PN}.conf.5
+
+ cd docs
+ dodoc BUGS CREDITS DEVELOPER_GUIDELINES HISTORY README README.WPA-Mini-HOWTO.txt TODO
+ keepdir /etc/${PN}
+
+ readme.gentoo_create_doc
+}
diff --git a/net-wireless/wireless-regdb/Manifest b/net-wireless/wireless-regdb/Manifest
new file mode 100644
index 000000000000..eae835137bc6
--- /dev/null
+++ b/net-wireless/wireless-regdb/Manifest
@@ -0,0 +1,4 @@
+DIST wireless-regdb-2013.02.13.tar.xz 12752 SHA256 314415cf9699b385e7f8fa770097069790987f9d5c6e5b944aceba3c0a3a29be SHA512 93e4ac80f420155ca08d15fee99c209d27c0d068dd3d3bc10cb26ebbe1d834b7ce495fe041d8b2dc0c9ba477c0252f9d5c24d42ed3da252af3e19deddeb2b739 WHIRLPOOL 36278fe7f865980552f025ca90e3dd44a6efc064f099b5c3f76094038f02a7eeaa840d5001a540d78b7ada1ad10397c9ea8e82283475de4219fb62250fd77052
+DIST wireless-regdb-2014.11.18.tar.xz 15036 SHA256 eab6b50f30748a8b0065ba38cf3df05aac161a5861ae0a6c3cfd01d38a71c9dd SHA512 a55b7d8b0917aa171fedcff53a58fcdf770721597628da1fe9ad22e2119a80773e06e12e21b21fc1b95c1a5969870415f3cc3c22b3580be07a6872777659a1c5 WHIRLPOOL a5d835af9298b14e0d2da7382b138cc66612e8a6d4872becaf673afee2d99ecf59d84f84d7506d6eabcc265d1d688c7fe1066dc42ecec775614622957921256c
+DIST wireless-regdb-2015.03.13.tar.xz 15116 SHA256 5e6f00b8e23391de9b068b2400ac3172324e5f590fc424018bb5a1389ffe6f84 SHA512 4215637bd8f242f172e1940cbfd05ac826f68ac76474a1587774e7e030bb5886cb47fef1f2bb6cd0a870275d44c5b5af487b44745e4ec87175ecdf75f1dfedb0 WHIRLPOOL f3d66a7f4e16cb38120963ff3f7a8e8d6d7f909f0da4ea8f3fafbe24fb54d21b9ede83f56aa6891e6977d9574b59109b83c3efa5f3115a9a3772c6ff85703f66
+DIST wireless-regdb-2015.06.05.tar.xz 15392 SHA256 69306cfd5ae97ae5f905e0e1e167b6ac8d28e49b58880621ad0024b59f4f8564 SHA512 91de8e6464f3f7cf01c79bf2169c4a25549c14f9f2f8d3806a02a97ec1b81dac0e12caff9bc8709d36f62486b5f43a947cbaf5ae7ec6db349d176caf8c2f8d11 WHIRLPOOL 5ae910b287816f82847ee079e886de0b371d6ca2d0b2e21d3e47f7a427ac87e2487fc21ad55d88baf3df1fd94cc695a3aa13187d15ea7bf87a3cedd4f059cb10
diff --git a/net-wireless/wireless-regdb/metadata.xml b/net-wireless/wireless-regdb/metadata.xml
new file mode 100644
index 000000000000..01ff6b9b61a1
--- /dev/null
+++ b/net-wireless/wireless-regdb/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>chainsaw@gentoo.org</email>
+ <name>Tony Vroon</name>
+ </maintainer>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <longdescription lang="en">
+ Regulatory rules database for wireless network cards
+ </longdescription>
+</pkgmetadata>
+
diff --git a/net-wireless/wireless-regdb/wireless-regdb-20130213.ebuild b/net-wireless/wireless-regdb/wireless-regdb-20130213.ebuild
new file mode 100644
index 000000000000..c23a86f4b28a
--- /dev/null
+++ b/net-wireless/wireless-regdb/wireless-regdb-20130213.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit multilib
+
+MY_P="wireless-regdb-${PV:0:4}.${PV:4:2}.${PV:6:2}"
+DESCRIPTION="Binary regulatory database for CRDA"
+HOMEPAGE="http://wireless.kernel.org/en/developers/Regulatory"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${MY_P}.tar.xz"
+LICENSE="ISC"
+SLOT="0"
+
+KEYWORDS="~alpha amd64 arm ~ia64 ~mips ppc ppc64 sparc x86"
+IUSE=""
+
+S="${WORKDIR}/${MY_P}"
+
+src_compile() {
+ einfo "Recompiling regulatory.bin from db.txt would break CRDA verify. Installing untouched binary version."
+}
+
+src_install() {
+ insinto /usr/$(get_libdir)/crda/
+ doins regulatory.bin
+
+ insinto /etc/wireless-regdb/pubkeys
+ doins linville.key.pub.pem
+
+ doman regulatory.bin.5
+ dodoc README db.txt
+}
diff --git a/net-wireless/wireless-regdb/wireless-regdb-20141118.ebuild b/net-wireless/wireless-regdb/wireless-regdb-20141118.ebuild
new file mode 100644
index 000000000000..ff649d9159c5
--- /dev/null
+++ b/net-wireless/wireless-regdb/wireless-regdb-20141118.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_P="wireless-regdb-${PV:0:4}.${PV:4:2}.${PV:6:2}"
+DESCRIPTION="Binary regulatory database for CRDA"
+HOMEPAGE="http://wireless.kernel.org/en/developers/Regulatory"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${MY_P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~mips ppc ~ppc64 ~sparc x86"
+IUSE=""
+
+S="${WORKDIR}/${MY_P}"
+
+src_compile() {
+ einfo "Recompiling regulatory.bin from db.txt would break CRDA verify. Installing unmodified binary version."
+}
+
+src_install() {
+ # This file is not ABI-specific, and crda itself always hardcodes
+ # this path. So install into a common location for all ABIs to use.
+ insinto /usr/lib/crda
+ doins regulatory.bin
+
+ insinto /etc/wireless-regdb/pubkeys
+ doins linville.key.pub.pem
+
+ doman regulatory.bin.5
+ dodoc README db.txt
+}
diff --git a/net-wireless/wireless-regdb/wireless-regdb-20150313.ebuild b/net-wireless/wireless-regdb/wireless-regdb-20150313.ebuild
new file mode 100644
index 000000000000..da2291ee3493
--- /dev/null
+++ b/net-wireless/wireless-regdb/wireless-regdb-20150313.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_P="wireless-regdb-${PV:0:4}.${PV:4:2}.${PV:6:2}"
+DESCRIPTION="Binary regulatory database for CRDA"
+HOMEPAGE="http://wireless.kernel.org/en/developers/Regulatory"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${MY_P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 ia64 ~mips ppc ppc64 sparc x86"
+IUSE=""
+
+S="${WORKDIR}/${MY_P}"
+
+src_compile() {
+ einfo "Recompiling regulatory.bin from db.txt would break CRDA verify. Installing unmodified binary version."
+}
+
+src_install() {
+ # This file is not ABI-specific, and crda itself always hardcodes
+ # this path. So install into a common location for all ABIs to use.
+ insinto /usr/lib/crda
+ doins regulatory.bin
+
+ insinto /etc/wireless-regdb/pubkeys
+ doins sforshee.key.pub.pem
+
+ doman regulatory.bin.5
+ dodoc README db.txt
+}
diff --git a/net-wireless/wireless-regdb/wireless-regdb-20150605.ebuild b/net-wireless/wireless-regdb/wireless-regdb-20150605.ebuild
new file mode 100644
index 000000000000..da2291ee3493
--- /dev/null
+++ b/net-wireless/wireless-regdb/wireless-regdb-20150605.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+MY_P="wireless-regdb-${PV:0:4}.${PV:4:2}.${PV:6:2}"
+DESCRIPTION="Binary regulatory database for CRDA"
+HOMEPAGE="http://wireless.kernel.org/en/developers/Regulatory"
+SRC_URI="https://www.kernel.org/pub/software/network/${PN}/${MY_P}.tar.xz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 ia64 ~mips ppc ppc64 sparc x86"
+IUSE=""
+
+S="${WORKDIR}/${MY_P}"
+
+src_compile() {
+ einfo "Recompiling regulatory.bin from db.txt would break CRDA verify. Installing unmodified binary version."
+}
+
+src_install() {
+ # This file is not ABI-specific, and crda itself always hardcodes
+ # this path. So install into a common location for all ABIs to use.
+ insinto /usr/lib/crda
+ doins regulatory.bin
+
+ insinto /etc/wireless-regdb/pubkeys
+ doins sforshee.key.pub.pem
+
+ doman regulatory.bin.5
+ dodoc README db.txt
+}
diff --git a/net-wireless/wireless-tools/Manifest b/net-wireless/wireless-tools/Manifest
new file mode 100644
index 000000000000..dec07191e717
--- /dev/null
+++ b/net-wireless/wireless-tools/Manifest
@@ -0,0 +1 @@
+DIST wireless_tools.30.pre9.tar.gz 348477 SHA256 abd9c5c98abf1fdd11892ac2f8a56737544fe101e1be27c6241a564948f34c63 SHA512 0561923bca075af4754d21e1be303cbd1ce3558cb6481c9c12bc7d330a353acf8ad81a822488570e859480287999c3bb2a698c993556a92f0699743e0a527ff1 WHIRLPOOL e4c1d0d2484b6336ece81019e6cc035103da22c82bab0473401af5c9c75d5a55af7e0eef5fbcbc0700077e09a92f21555862a706bce56b37a235b687775bcf5a
diff --git a/net-wireless/wireless-tools/files/wireless-tools-29-asneeded.patch b/net-wireless/wireless-tools/files/wireless-tools-29-asneeded.patch
new file mode 100644
index 000000000000..04f2d869b6d2
--- /dev/null
+++ b/net-wireless/wireless-tools/files/wireless-tools-29-asneeded.patch
@@ -0,0 +1,13 @@
+Index: wireless_tools.29/Makefile
+===================================================================
+--- wireless_tools.29.orig/Makefile
++++ wireless_tools.29/Makefile
+@@ -145,7 +145,7 @@ wireless.h:
+
+ # Compilation of the dynamic library
+ $(DYNAMIC): $(OBJS:.o=.so)
+- $(CC) -shared -o $@ -Wl,-soname,$@ $(STRIPFLAGS) $(LIBS) -lc $^
++ $(CC) $(LDFLAGS) -shared -o $@ -Wl,-soname,$@ $(STRIPFLAGS) $^ $(LIBS) -lc
+
+ # Compilation of the static library
+ $(STATIC): $(OBJS:.o=.so)
diff --git a/net-wireless/wireless-tools/metadata.xml b/net-wireless/wireless-tools/metadata.xml
new file mode 100644
index 000000000000..338d98ef1d4b
--- /dev/null
+++ b/net-wireless/wireless-tools/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <longdescription lang="en">
+ This package provides all the command line tools for configuring
+ wireless networking devices with drivers that implement the Linux
+ Wireless Extensions (almost all recent IEEE 802.11a/b/g drivers).
+ </longdescription>
+ <use>
+ <flag name='multicall'>Build the most commonly used tools as one
+ binary</flag>
+ </use>
+</pkgmetadata>
diff --git a/net-wireless/wireless-tools/wireless-tools-30_pre9.ebuild b/net-wireless/wireless-tools/wireless-tools-30_pre9.ebuild
new file mode 100644
index 000000000000..a9f979661aaa
--- /dev/null
+++ b/net-wireless/wireless-tools/wireless-tools-30_pre9.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit toolchain-funcs multilib eutils
+
+# The following works with both pre-releases and releases
+MY_P=${PN/-/_}.${PV/_/.}
+S="${WORKDIR}/${MY_P/\.pre*/}"
+
+DESCRIPTION="A collection of tools to configure IEEE 802.11 wireless LAN cards"
+HOMEPAGE="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html"
+SRC_URI="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 sh ~sparc x86"
+IUSE="linguas_cs linguas_fr multicall"
+
+DEPEND="sys-apps/sed"
+RDEPEND=""
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-29-asneeded.patch
+
+ sed -i \
+ -e "s:^\(CC\) = gcc:\1 = $(tc-getCC):" \
+ -e "s:^\(AR\) = ar:\1 = $(tc-getAR):" \
+ -e "s:^\(RANLIB\) = ranlib:\1 = $(tc-getRANLIB):" \
+ -e "s:^\(CFLAGS=-Os\):#\1:" \
+ -e "s:\(@\$(LDCONFIG).*\):#\1:" \
+ -e "s:^\(INSTALL_MAN= \$(PREFIX)\)/man:\1/usr/share/man:" \
+ -e "s:^\(INSTALL_LIB= \$(PREFIX)\)/lib:\1/$(get_libdir)/:" \
+ -e "s:^\(INSTALL_INC= \$(PREFIX)\)/include:\1/usr/include:" \
+ -e "s:^\(BUILD_STATIC = y\):#\1:" \
+ -e '/\$(CC)/s:-Wl,-s\>::' \
+ "${S}"/Makefile || die
+}
+
+src_compile() {
+ emake
+
+ use multicall && emake iwmulticall
+}
+
+src_install() {
+ emake PREFIX="${ED}" install
+
+ if use multicall; then
+ # 'make install-iwmulticall' will overwrite some of the tools
+ # with symlinks - this is intentional (brix)
+ emake PREFIX="${ED}" install-iwmulticall
+ fi
+
+ has cs ${LINGUAS} || rm -rf "${ED}"/usr/share/man/cs
+ has fr ${LINGUAS} || rm -rf "${ED}"/usr/share/man/fr.{ISO8859-1,UTF-8}
+
+ dodoc CHANGELOG.h HOTPLUG-UDEV.txt IFRENAME-VS-XXX.txt PCMCIA.txt README
+ has fr ${LINGUAS} && dodoc README.fr
+}
diff --git a/net-wireless/wpa_supplicant/Manifest b/net-wireless/wpa_supplicant/Manifest
new file mode 100644
index 000000000000..0e170b456f4c
--- /dev/null
+++ b/net-wireless/wpa_supplicant/Manifest
@@ -0,0 +1 @@
+DIST wpa_supplicant-2.4.tar.gz 2525648 SHA256 058dc832c096139a059e6df814080f50251a8d313c21b13364c54a1e70109122 SHA512 03d8199325b3910f77013ddb7edd803ab4444542230484e1cb465dc3df9372b39ee3307d823ce88730e8f5a5231ef3183954c54cf07297b70432f526e45aac2b WHIRLPOOL 092ae97e2c0f55d7055fd4e5d688e2ba538f785089a13c754129829854b20a98de832d9d0925dce5823a060d10a3bb5882b0bf3d6cf55f8de9bbc2b00fbb7392
diff --git a/net-wireless/wpa_supplicant/files/2015-1/0001-P2P-Validate-SSID-element-length-before-copying-it-C.patch b/net-wireless/wpa_supplicant/files/2015-1/0001-P2P-Validate-SSID-element-length-before-copying-it-C.patch
new file mode 100644
index 000000000000..de1964ca7697
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/2015-1/0001-P2P-Validate-SSID-element-length-before-copying-it-C.patch
@@ -0,0 +1,42 @@
+From 9ed4eee345f85e3025c33c6e20aa25696e341ccd Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@qca.qualcomm.com>
+Date: Tue, 7 Apr 2015 11:32:11 +0300
+Subject: [PATCH] P2P: Validate SSID element length before copying it
+ (CVE-2015-1863)
+
+This fixes a possible memcpy overflow for P2P dev->oper_ssid in
+p2p_add_device(). The length provided by the peer device (0..255 bytes)
+was used without proper bounds checking and that could have resulted in
+arbitrary data of up to 223 bytes being written beyond the end of the
+dev->oper_ssid[] array (of which about 150 bytes would be beyond the
+heap allocation) when processing a corrupted management frame for P2P
+peer discovery purposes.
+
+This could result in corrupted state in heap, unexpected program
+behavior due to corrupted P2P peer device information, denial of service
+due to process crash, exposure of memory contents during GO Negotiation,
+and potentially arbitrary code execution.
+
+Thanks to Google security team for reporting this issue and smart
+hardware research group of Alibaba security team for discovering it.
+
+Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
+---
+ src/p2p/p2p.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c
+index f584fae..a45fe73 100644
+--- a/src/p2p/p2p.c
++++ b/src/p2p/p2p.c
+@@ -778,6 +778,7 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
+ if (os_memcmp(addr, p2p_dev_addr, ETH_ALEN) != 0)
+ os_memcpy(dev->interface_addr, addr, ETH_ALEN);
+ if (msg.ssid &&
++ msg.ssid[1] <= sizeof(dev->oper_ssid) &&
+ (msg.ssid[1] != P2P_WILDCARD_SSID_LEN ||
+ os_memcmp(msg.ssid + 2, P2P_WILDCARD_SSID, P2P_WILDCARD_SSID_LEN)
+ != 0)) {
+--
+1.9.1
+
diff --git a/net-wireless/wpa_supplicant/files/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch b/net-wireless/wpa_supplicant/files/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch
new file mode 100644
index 000000000000..36b4ca294699
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch
@@ -0,0 +1,49 @@
+From 5acd23f4581da58683f3cf5e36cb71bbe4070bd7 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Tue, 28 Apr 2015 17:08:33 +0300
+Subject: [PATCH] WPS: Fix HTTP chunked transfer encoding parser
+
+strtoul() return value may end up overflowing the int h->chunk_size and
+resulting in a negative value to be stored as the chunk_size. This could
+result in the following memcpy operation using a very large length
+argument which would result in a buffer overflow and segmentation fault.
+
+This could have been used to cause a denial service by any device that
+has been authorized for network access (either wireless or wired). This
+would affect both the WPS UPnP functionality in a WPS AP (hostapd with
+upnp_iface parameter set in the configuration) and WPS ER
+(wpa_supplicant with WPS_ER_START control interface command used).
+
+Validate the parsed chunk length value to avoid this. In addition to
+rejecting negative values, we can also reject chunk size that would be
+larger than the maximum configured body length.
+
+Thanks to Kostya Kortchinsky of Google security team for discovering and
+reporting this issue.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/wps/httpread.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/wps/httpread.c b/src/wps/httpread.c
+index 2f08f37..d2855e3 100644
+--- a/src/wps/httpread.c
++++ b/src/wps/httpread.c
+@@ -533,6 +533,13 @@ static void httpread_read_handler(int sd, void *eloop_ctx, void *sock_ctx)
+ if (!isxdigit(*cbp))
+ goto bad;
+ h->chunk_size = strtoul(cbp, NULL, 16);
++ if (h->chunk_size < 0 ||
++ h->chunk_size > h->max_bytes) {
++ wpa_printf(MSG_DEBUG,
++ "httpread: Invalid chunk size %d",
++ h->chunk_size);
++ goto bad;
++ }
+ /* throw away chunk header
+ * so we have only real data
+ */
+--
+1.9.1
+
diff --git a/net-wireless/wpa_supplicant/files/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch b/net-wireless/wpa_supplicant/files/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch
new file mode 100644
index 000000000000..79c5af8906fa
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch
@@ -0,0 +1,41 @@
+From ef566a4d4f74022e1fdb0a2addfe81e6de9f4aae Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Wed, 29 Apr 2015 02:21:53 +0300
+Subject: [PATCH] AP WMM: Fix integer underflow in WMM Action frame parser
+
+The length of the WMM Action frame was not properly validated and the
+length of the information elements (int left) could end up being
+negative. This would result in reading significantly past the stack
+buffer while parsing the IEs in ieee802_11_parse_elems() and while doing
+so, resulting in segmentation fault.
+
+This can result in an invalid frame being used for a denial of service
+attack (hostapd process killed) against an AP with a driver that uses
+hostapd for management frame processing (e.g., all mac80211-based
+drivers).
+
+Thanks to Kostya Kortchinsky of Google security team for discovering and
+reporting this issue.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/ap/wmm.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/ap/wmm.c b/src/ap/wmm.c
+index 6d4177c..314e244 100644
+--- a/src/ap/wmm.c
++++ b/src/ap/wmm.c
+@@ -274,6 +274,9 @@ void hostapd_wmm_action(struct hostapd_data *hapd,
+ return;
+ }
+
++ if (left < 0)
++ return; /* not a valid WMM Action frame */
++
+ /* extract the tspec info element */
+ if (ieee802_11_parse_elems(pos, left, &elems, 1) == ParseFailed) {
+ hostapd_logger(hapd, mgmt->sa, HOSTAPD_MODULE_IEEE80211,
+--
+1.9.1
+
diff --git a/net-wireless/wpa_supplicant/files/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch b/net-wireless/wpa_supplicant/files/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch
new file mode 100644
index 000000000000..91627fb7b7f6
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch
@@ -0,0 +1,73 @@
+From dd2f043c9c43d156494e33d7ce22db96e6ef42c7 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Fri, 1 May 2015 16:37:45 +0300
+Subject: [PATCH 1/5] EAP-pwd peer: Fix payload length validation for Commit
+ and Confirm
+
+The length of the received Commit and Confirm message payloads was not
+checked before reading them. This could result in a buffer read
+overflow when processing an invalid message.
+
+Fix this by verifying that the payload is of expected length before
+processing it. In addition, enforce correct state transition sequence to
+make sure there is no unexpected behavior if receiving a Commit/Confirm
+message before the previous exchanges have been completed.
+
+Thanks to Kostya Kortchinsky of Google security team for discovering and
+reporting this issue.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_peer/eap_pwd.c | 29 +++++++++++++++++++++++++++++
+ 1 file changed, 29 insertions(+)
+
+diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c
+index f2b0926..a629437 100644
+--- a/src/eap_peer/eap_pwd.c
++++ b/src/eap_peer/eap_pwd.c
+@@ -355,6 +355,23 @@ eap_pwd_perform_commit_exchange(struct eap_sm *sm, struct eap_pwd_data *data,
+ BIGNUM *mask = NULL, *x = NULL, *y = NULL, *cofactor = NULL;
+ u16 offset;
+ u8 *ptr, *scalar = NULL, *element = NULL;
++ size_t prime_len, order_len;
++
++ if (data->state != PWD_Commit_Req) {
++ ret->ignore = TRUE;
++ goto fin;
++ }
++
++ prime_len = BN_num_bytes(data->grp->prime);
++ order_len = BN_num_bytes(data->grp->order);
++
++ if (payload_len != 2 * prime_len + order_len) {
++ wpa_printf(MSG_INFO,
++ "EAP-pwd: Unexpected Commit payload length %u (expected %u)",
++ (unsigned int) payload_len,
++ (unsigned int) (2 * prime_len + order_len));
++ goto fin;
++ }
+
+ if (((data->private_value = BN_new()) == NULL) ||
+ ((data->my_element = EC_POINT_new(data->grp->group)) == NULL) ||
+@@ -554,6 +571,18 @@ eap_pwd_perform_confirm_exchange(struct eap_sm *sm, struct eap_pwd_data *data,
+ u8 conf[SHA256_MAC_LEN], *cruft = NULL, *ptr;
+ int offset;
+
++ if (data->state != PWD_Confirm_Req) {
++ ret->ignore = TRUE;
++ goto fin;
++ }
++
++ if (payload_len != SHA256_MAC_LEN) {
++ wpa_printf(MSG_INFO,
++ "EAP-pwd: Unexpected Confirm payload length %u (expected %u)",
++ (unsigned int) payload_len, SHA256_MAC_LEN);
++ goto fin;
++ }
++
+ /*
+ * first build up the ciphersuite which is group | random_function |
+ * prf
+--
+1.9.1
+
diff --git a/net-wireless/wpa_supplicant/files/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch b/net-wireless/wpa_supplicant/files/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch
new file mode 100644
index 000000000000..5dca20b2771b
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch
@@ -0,0 +1,66 @@
+From e28a58be26184c2a23f80b410e0997ef1bd5d578 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Fri, 1 May 2015 16:40:44 +0300
+Subject: [PATCH 2/5] EAP-pwd server: Fix payload length validation for Commit
+ and Confirm
+
+The length of the received Commit and Confirm message payloads was not
+checked before reading them. This could result in a buffer read
+overflow when processing an invalid message.
+
+Fix this by verifying that the payload is of expected length before
+processing it. In addition, enforce correct state transition sequence to
+make sure there is no unexpected behavior if receiving a Commit/Confirm
+message before the previous exchanges have been completed.
+
+Thanks to Kostya Kortchinsky of Google security team for discovering and
+reporting this issue.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_server/eap_server_pwd.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/src/eap_server/eap_server_pwd.c b/src/eap_server/eap_server_pwd.c
+index 66bd5d2..3189105 100644
+--- a/src/eap_server/eap_server_pwd.c
++++ b/src/eap_server/eap_server_pwd.c
+@@ -656,9 +656,21 @@ eap_pwd_process_commit_resp(struct eap_sm *sm, struct eap_pwd_data *data,
+ BIGNUM *x = NULL, *y = NULL, *cofactor = NULL;
+ EC_POINT *K = NULL, *point = NULL;
+ int res = 0;
++ size_t prime_len, order_len;
+
+ wpa_printf(MSG_DEBUG, "EAP-pwd: Received commit response");
+
++ prime_len = BN_num_bytes(data->grp->prime);
++ order_len = BN_num_bytes(data->grp->order);
++
++ if (payload_len != 2 * prime_len + order_len) {
++ wpa_printf(MSG_INFO,
++ "EAP-pwd: Unexpected Commit payload length %u (expected %u)",
++ (unsigned int) payload_len,
++ (unsigned int) (2 * prime_len + order_len));
++ goto fin;
++ }
++
+ if (((data->peer_scalar = BN_new()) == NULL) ||
+ ((data->k = BN_new()) == NULL) ||
+ ((cofactor = BN_new()) == NULL) ||
+@@ -774,6 +786,13 @@ eap_pwd_process_confirm_resp(struct eap_sm *sm, struct eap_pwd_data *data,
+ u8 conf[SHA256_MAC_LEN], *cruft = NULL, *ptr;
+ int offset;
+
++ if (payload_len != SHA256_MAC_LEN) {
++ wpa_printf(MSG_INFO,
++ "EAP-pwd: Unexpected Confirm payload length %u (expected %u)",
++ (unsigned int) payload_len, SHA256_MAC_LEN);
++ goto fin;
++ }
++
+ /* build up the ciphersuite: group | random_function | prf */
+ grp = htons(data->group_num);
+ ptr = (u8 *) &cs;
+--
+1.9.1
+
diff --git a/net-wireless/wpa_supplicant/files/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch b/net-wireless/wpa_supplicant/files/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch
new file mode 100644
index 000000000000..4d2f9d8aefeb
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch
@@ -0,0 +1,52 @@
+From 477c74395acd0123340457ba6f15ab345d42016e Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sat, 2 May 2015 19:23:04 +0300
+Subject: [PATCH 3/5] EAP-pwd peer: Fix Total-Length parsing for fragment
+ reassembly
+
+The remaining number of bytes in the message could be smaller than the
+Total-Length field size, so the length needs to be explicitly checked
+prior to reading the field and decrementing the len variable. This could
+have resulted in the remaining length becoming negative and interpreted
+as a huge positive integer.
+
+In addition, check that there is no already started fragment in progress
+before allocating a new buffer for reassembling fragments. This avoid a
+potential memory leak when processing invalid message.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_peer/eap_pwd.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c
+index a629437..1d2079b 100644
+--- a/src/eap_peer/eap_pwd.c
++++ b/src/eap_peer/eap_pwd.c
+@@ -866,11 +866,23 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret,
+ * if it's the first fragment there'll be a length field
+ */
+ if (EAP_PWD_GET_LENGTH_BIT(lm_exch)) {
++ if (len < 2) {
++ wpa_printf(MSG_DEBUG,
++ "EAP-pwd: Frame too short to contain Total-Length field");
++ ret->ignore = TRUE;
++ return NULL;
++ }
+ tot_len = WPA_GET_BE16(pos);
+ wpa_printf(MSG_DEBUG, "EAP-pwd: Incoming fragments whose "
+ "total length = %d", tot_len);
+ if (tot_len > 15000)
+ return NULL;
++ if (data->inbuf) {
++ wpa_printf(MSG_DEBUG,
++ "EAP-pwd: Unexpected new fragment start when previous fragment is still in use");
++ ret->ignore = TRUE;
++ return NULL;
++ }
+ data->inbuf = wpabuf_alloc(tot_len);
+ if (data->inbuf == NULL) {
+ wpa_printf(MSG_INFO, "Out of memory to buffer "
+--
+1.9.1
+
diff --git a/net-wireless/wpa_supplicant/files/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch b/net-wireless/wpa_supplicant/files/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch
new file mode 100644
index 000000000000..7edef099eb59
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch
@@ -0,0 +1,50 @@
+From 3035cc2894e08319b905bd6561e8bddc8c2db9fa Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sat, 2 May 2015 19:26:06 +0300
+Subject: [PATCH 4/5] EAP-pwd server: Fix Total-Length parsing for fragment
+ reassembly
+
+The remaining number of bytes in the message could be smaller than the
+Total-Length field size, so the length needs to be explicitly checked
+prior to reading the field and decrementing the len variable. This could
+have resulted in the remaining length becoming negative and interpreted
+as a huge positive integer.
+
+In addition, check that there is no already started fragment in progress
+before allocating a new buffer for reassembling fragments. This avoid a
+potential memory leak when processing invalid message.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_server/eap_server_pwd.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/eap_server/eap_server_pwd.c b/src/eap_server/eap_server_pwd.c
+index 3189105..2bfc3c2 100644
+--- a/src/eap_server/eap_server_pwd.c
++++ b/src/eap_server/eap_server_pwd.c
+@@ -942,11 +942,21 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv,
+ * the first fragment has a total length
+ */
+ if (EAP_PWD_GET_LENGTH_BIT(lm_exch)) {
++ if (len < 2) {
++ wpa_printf(MSG_DEBUG,
++ "EAP-pwd: Frame too short to contain Total-Length field");
++ return;
++ }
+ tot_len = WPA_GET_BE16(pos);
+ wpa_printf(MSG_DEBUG, "EAP-pwd: Incoming fragments, total "
+ "length = %d", tot_len);
+ if (tot_len > 15000)
+ return;
++ if (data->inbuf) {
++ wpa_printf(MSG_DEBUG,
++ "EAP-pwd: Unexpected new fragment start when previous fragment is still in use");
++ return;
++ }
+ data->inbuf = wpabuf_alloc(tot_len);
+ if (data->inbuf == NULL) {
+ wpa_printf(MSG_INFO, "EAP-pwd: Out of memory to "
+--
+1.9.1
+
diff --git a/net-wireless/wpa_supplicant/files/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch b/net-wireless/wpa_supplicant/files/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch
new file mode 100644
index 000000000000..a601323f14da
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch
@@ -0,0 +1,32 @@
+From 28a069a545b06b99eb55ad53f63f2c99e65a98f6 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sat, 2 May 2015 19:26:28 +0300
+Subject: [PATCH 5/5] EAP-pwd peer: Fix asymmetric fragmentation behavior
+
+The L (Length) and M (More) flags needs to be cleared before deciding
+whether the locally generated response requires fragmentation. This
+fixes an issue where these flags from the server could have been invalid
+for the following message. In some cases, this could have resulted in
+triggering the wpabuf security check that would terminate the process
+due to invalid buffer allocation.
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_peer/eap_pwd.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c
+index 1d2079b..e58b13a 100644
+--- a/src/eap_peer/eap_pwd.c
++++ b/src/eap_peer/eap_pwd.c
+@@ -968,6 +968,7 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret,
+ /*
+ * we have output! Do we need to fragment it?
+ */
++ lm_exch = EAP_PWD_GET_EXCHANGE(lm_exch);
+ len = wpabuf_len(data->outbuf);
+ if ((len + EAP_PWD_HDR_SIZE) > data->mtu) {
+ resp = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_PWD, data->mtu,
+--
+1.9.1
+
diff --git a/net-wireless/wpa_supplicant/files/2015-5/0001-NFC-Avoid-misaligned-read-of-an-NDEF-field.patch b/net-wireless/wpa_supplicant/files/2015-5/0001-NFC-Avoid-misaligned-read-of-an-NDEF-field.patch
new file mode 100644
index 000000000000..d03eb484fc28
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/2015-5/0001-NFC-Avoid-misaligned-read-of-an-NDEF-field.patch
@@ -0,0 +1,29 @@
+From fc880b11ed70ff9dcf8be48621f75d354cc5094d Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Tue, 7 Jul 2015 15:33:55 +0300
+Subject: [PATCH] NFC: Avoid misaligned read of an NDEF field
+
+The 32-bit version of payload length field may not be 32-bit aligned in
+the message buffer, so use WPA_GET_BE32() to read it instead of ntohl().
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/wps/ndef.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/wps/ndef.c b/src/wps/ndef.c
+index 8d1ce1e..5604b0a 100644
+--- a/src/wps/ndef.c
++++ b/src/wps/ndef.c
+@@ -47,7 +47,7 @@ static int ndef_parse_record(const u8 *data, u32 size,
+ } else {
+ if (size < 6)
+ return -1;
+- record->payload_length = ntohl(*(u32 *)pos);
++ record->payload_length = WPA_GET_BE32(pos);
+ pos += sizeof(u32);
+ }
+
+--
+1.7.9.5
+
diff --git a/net-wireless/wpa_supplicant/files/2015-5/0002-NFC-Fix-payload-length-validation-in-NDEF-record-par.patch b/net-wireless/wpa_supplicant/files/2015-5/0002-NFC-Fix-payload-length-validation-in-NDEF-record-par.patch
new file mode 100644
index 000000000000..1f624c8dad46
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/2015-5/0002-NFC-Fix-payload-length-validation-in-NDEF-record-par.patch
@@ -0,0 +1,61 @@
+From df9079e72760ceb7ebe7fb11538200c516bdd886 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Tue, 7 Jul 2015 21:57:28 +0300
+Subject: [PATCH] NFC: Fix payload length validation in NDEF record parser
+
+It was possible for the 32-bit record->total_length value to end up
+wrapping around due to integer overflow if the longer form of payload
+length field is used and record->payload_length gets a value close to
+2^32. This could result in ndef_parse_record() accepting a too large
+payload length value and the record type filter reading up to about 20
+bytes beyond the end of the buffer and potentially killing the process.
+This could also result in an attempt to allocate close to 2^32 bytes of
+heap memory and if that were to succeed, a buffer read overflow of the
+same length which would most likely result in the process termination.
+In case of record->total_length ending up getting the value 0, there
+would be no buffer read overflow, but record parsing would result in an
+infinite loop in ndef_parse_records().
+
+Any of these error cases could potentially be used for denial of service
+attacks over NFC by using a malformed NDEF record on an NFC Tag or
+sending them during NFC connection handover if the application providing
+the NDEF message to hostapd/wpa_supplicant did no validation of the
+received records. While such validation is likely done in the NFC stack
+that needs to parse the NFC messages before further processing,
+hostapd/wpa_supplicant better be prepared for any data being included
+here.
+
+Fix this by validating record->payload_length value in a way that
+detects integer overflow. (CID 122668)
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/wps/ndef.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/wps/ndef.c b/src/wps/ndef.c
+index 5604b0a..50d018f 100644
+--- a/src/wps/ndef.c
++++ b/src/wps/ndef.c
+@@ -48,6 +48,8 @@ static int ndef_parse_record(const u8 *data, u32 size,
+ if (size < 6)
+ return -1;
+ record->payload_length = WPA_GET_BE32(pos);
++ if (record->payload_length > size - 6)
++ return -1;
+ pos += sizeof(u32);
+ }
+
+@@ -68,7 +70,8 @@ static int ndef_parse_record(const u8 *data, u32 size,
+ pos += record->payload_length;
+
+ record->total_length = pos - data;
+- if (record->total_length > size)
++ if (record->total_length > size ||
++ record->total_length < record->payload_length)
+ return -1;
+ return 0;
+ }
+--
+1.9.1
+
diff --git a/net-wireless/wpa_supplicant/files/wpa_cli.sh b/net-wireless/wpa_supplicant/files/wpa_cli.sh
new file mode 100644
index 000000000000..f363ba9c8853
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_cli.sh
@@ -0,0 +1,47 @@
+#!/bin/sh
+# Copyright 1999-2011 Gentoo Foundation
+# Written by Roy Marples <uberlord@gentoo.org>
+# Distributed under the terms of the GNU General Public License v2
+# Alternatively, this file may be distributed under the terms of the BSD License
+# $Id$
+
+if [ -z "$1" -o -z "$2" ]; then
+ logger -t wpa_cli "Insufficient parameters"
+ exit 1
+fi
+
+INTERFACE="$1"
+ACTION="$2"
+
+# Note, the below action must NOT mark the interface down via ifconfig, ip or
+# similar. Addresses can be removed, changed and daemons can be stopped, but
+# the interface must remain up for wpa_supplicant to work.
+
+if [ -f /etc/gentoo-release ]; then
+ EXEC="/etc/init.d/net.${INTERFACE} --quiet"
+else
+ logger -t wpa_cli "I don't know what to do with this distro!"
+ exit 1
+fi
+
+case ${ACTION} in
+ CONNECTED)
+ EXEC="${EXEC} start"
+ ;;
+ DISCONNECTED)
+ # Deactivated, since stopping /etc/init.d/net.wlanX
+ # stops the network completly.
+ EXEC="false ${EXEC} stop"
+ ;;
+ *)
+ logger -t wpa_cli "Unknown action ${ACTION}"
+ exit 1
+ ;;
+esac
+
+# ${EXEC} can use ${IN_BACKGROUND} so that it knows that the user isn't
+# stopping the interface and a background process - like wpa_cli - is.
+export IN_BACKGROUND=true
+
+logger -t wpa_cli "interface ${INTERFACE} ${ACTION}"
+${EXEC} || logger -t wpa_cli "executing '${EXEC}' failed"
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-dbus-path-fix.patch b/net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-dbus-path-fix.patch
new file mode 100644
index 000000000000..976d71b0ec39
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-dbus-path-fix.patch
@@ -0,0 +1,20 @@
+diff -aurp a/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in b/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in
+--- a/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in 2012-05-15 09:00:03.048545044 +0000
++++ b/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in 2012-05-15 09:01:19.759550509 +0000
+@@ -1,5 +1,5 @@
+ [D-BUS Service]
+ Name=fi.epitest.hostap.WPASupplicant
+-Exec=@BINDIR@/wpa_supplicant -u
++Exec=/usr/sbin/wpa_supplicant -u
+ User=root
+ SystemdService=wpa_supplicant.service
+diff -aurp a/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in b/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in
+--- a/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in 2012-05-15 09:00:03.048545044 +0000
++++ b/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in 2012-05-15 09:01:28.727551913 +0000
+@@ -1,5 +1,5 @@
+ [D-BUS Service]
+ Name=fi.w1.wpa_supplicant1
+-Exec=@BINDIR@/wpa_supplicant -u
++Exec=/usr/sbin/wpa_supplicant -u
+ User=root
+ SystemdService=wpa_supplicant.service
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-do-not-call-dbus-functions-with-NULL-path.patch b/net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-do-not-call-dbus-functions-with-NULL-path.patch
new file mode 100644
index 000000000000..bbff73e13d42
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-do-not-call-dbus-functions-with-NULL-path.patch
@@ -0,0 +1,60 @@
+diff -aurp a/wpa_supplicant/dbus/dbus_new_helpers.c b/wpa_supplicant/dbus/dbus_new_helpers.c
+--- a/wpa_supplicant/dbus/dbus_new_helpers.c 2012-05-15 07:28:37.616150164 +0000
++++ b/wpa_supplicant/dbus/dbus_new_helpers.c 2012-05-15 07:30:21.904157611 +0000
+@@ -882,7 +882,7 @@ void wpa_dbus_mark_property_changed(stru
+ const struct wpa_dbus_property_desc *dsc;
+ int i = 0;
+
+- if (iface == NULL)
++ if (iface == NULL || path == NULL)
+ return;
+
+ dbus_connection_get_object_path_data(iface->con, path,
+diff -aurp a/wpa_supplicant/dbus/dbus_old.c b/wpa_supplicant/dbus/dbus_old.c
+--- a/wpa_supplicant/dbus/dbus_old.c 2012-05-15 07:28:29.502149373 +0000
++++ b/wpa_supplicant/dbus/dbus_old.c 2012-05-15 07:30:48.859162441 +0000
+@@ -379,7 +379,7 @@ void wpa_supplicant_dbus_notify_scan_res
+ DBusMessage *_signal;
+
+ /* Do nothing if the control interface is not turned on */
+- if (iface == NULL)
++ if (iface == NULL || wpa_s->dbus_path == NULL)
+ return;
+
+ _signal = dbus_message_new_signal(wpa_s->dbus_path,
+@@ -419,7 +419,7 @@ void wpa_supplicant_dbus_notify_state_ch
+ if (wpa_s->global == NULL)
+ return;
+ iface = wpa_s->global->dbus;
+- if (iface == NULL)
++ if (iface == NULL || wpa_s->dbus_path == NULL)
+ return;
+
+ /* Only send signal if state really changed */
+@@ -478,7 +478,7 @@ void wpa_supplicant_dbus_notify_scanning
+ dbus_bool_t scanning = wpa_s->scanning ? TRUE : FALSE;
+
+ /* Do nothing if the control interface is not turned on */
+- if (iface == NULL)
++ if (iface == NULL || wpa_s->dbus_path == NULL)
+ return;
+
+ _signal = dbus_message_new_signal(wpa_s->dbus_path,
+@@ -513,7 +513,7 @@ void wpa_supplicant_dbus_notify_wps_cred
+ if (wpa_s->global == NULL)
+ return;
+ iface = wpa_s->global->dbus;
+- if (iface == NULL)
++ if (iface == NULL || wpa_s->dbus_path == NULL)
+ return;
+
+ _signal = dbus_message_new_signal(wpa_s->dbus_path,
+@@ -564,7 +564,7 @@ void wpa_supplicant_dbus_notify_certific
+ if (wpa_s->global == NULL)
+ return;
+ iface = wpa_s->global->dbus;
+- if (iface == NULL)
++ if (iface == NULL || wpa_s->dbus_path == NULL)
+ return;
+
+ _signal = dbus_message_new_signal(wpa_s->dbus_path,
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-generate-libeap-peer.patch b/net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-generate-libeap-peer.patch
new file mode 100644
index 000000000000..6f3605713353
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-2.4-generate-libeap-peer.patch
@@ -0,0 +1,353 @@
+diff -Naurp a/src/eap_peer/Makefile b/src/eap_peer/Makefile
+--- a/src/eap_peer/Makefile 2012-05-15 08:23:17.152386964 +0000
++++ b/src/eap_peer/Makefile 2012-05-15 08:23:57.403389760 +0000
+@@ -1,11 +1,192 @@
+-all:
+- @echo Nothing to be made.
++LIBEAP_NAME = libeap
++LIBEAP_CURRENT = 0
++LIBEAP_REVISION = 0
++LIBEAP_AGE = 0
++
++LIBEAP = $(LIBEAP_NAME).so.$(LIBEAP_CURRENT).$(LIBEAP_REVISION).$(LIBEAP_AGE)
++LIBEAP_SO = $(LIBEAP_NAME).so.$(LIBEAP_CURRENT)
++
++.PHONY: all clean install uninstall
++
++all: $(LIBEAP)
++
++ifndef CC
++CC=gcc
++endif
++
++ifndef CFLAGS
++CFLAGS = -MMD -O0 -Wall -g
++endif
++
++CONFIG_TLS=openssl
++
++INCLUDE_INSTALL_DIR=/usr/include/eap_peer
++
++# Got to use override all across the board, otherwise a 'make
++# CFLAGS=XX' will kill us because the command line's CFLAGS will
++# overwrite Make's and we'll loose all the infrastructure it sets.
++override CFLAGS += -I. -I.. -I../crypto -I../utils -I../common
++
++# at least for now, need to include config_ssid.h and config_blob.h from
++# wpa_supplicant directory
++override CFLAGS += -I ../../wpa_supplicant
++
++OBJS_both += ../utils/common.o
++OBJS_both += ../utils/os_unix.o
++OBJS_both += ../utils/wpa_debug.o
++OBJS_both += ../utils/base64.o
++OBJS_both += ../utils/wpabuf.o
++OBJS_both += ../utils/eloop.o
++ifneq ($(CONFIG_TLS), openssl)
++OBJS_both += ../crypto/md5.o
++OBJS_both += ../crypto/sha1.o
++endif
++OBJS_both += ../crypto/sha1-tlsprf.o
++OBJS_both += ../crypto/aes-encblock.o
++ifneq ($(CONFIG_TLS), openssl)
++OBJS_both += ../crypto/aes-wrap.o
++endif
++OBJS_both += ../crypto/aes-ctr.o
++OBJS_both += ../crypto/aes-eax.o
++OBJS_both += ../crypto/aes-omac1.o
++OBJS_both += ../crypto/ms_funcs.o
++OBJS_both += ../crypto/sha256.o
++OBJS_both += ../crypto/random.o
++
++
++OBJS_both += ../eap_common/eap_peap_common.o
++OBJS_both += ../eap_common/eap_psk_common.o
++OBJS_both += ../eap_common/eap_pax_common.o
++OBJS_both += ../eap_common/eap_sake_common.o
++OBJS_both += ../eap_common/eap_gpsk_common.o
++OBJS_both += ../eap_common/chap.o
++
++OBJS_peer += ../eap_peer/eap_tls.o
++OBJS_peer += ../eap_peer/eap_peap.o
++OBJS_peer += ../eap_peer/eap_ttls.o
++OBJS_peer += ../eap_peer/eap_md5.o
++OBJS_peer += ../eap_peer/eap_mschapv2.o
++OBJS_peer += ../eap_peer/mschapv2.o
++OBJS_peer += ../eap_peer/eap_otp.o
++OBJS_peer += ../eap_peer/eap_gtc.o
++OBJS_peer += ../eap_peer/eap_leap.o
++OBJS_peer += ../eap_peer/eap_psk.o
++OBJS_peer += ../eap_peer/eap_pax.o
++OBJS_peer += ../eap_peer/eap_sake.o
++OBJS_peer += ../eap_peer/eap_gpsk.o
++OBJS_peer += ../eap_peer/eap.o
++OBJS_peer += ../eap_common/eap_common.o
++OBJS_peer += ../eap_peer/eap_methods.o
++OBJS_peer += ../eap_peer/eap_tls_common.o
++
++override CFLAGS += -DEAP_TLS
++override CFLAGS += -DEAP_PEAP
++override CFLAGS += -DEAP_TTLS
++override CFLAGS += -DEAP_MD5
++override CFLAGS += -DEAP_MSCHAPv2
++override CFLAGS += -DEAP_GTC
++override CFLAGS += -DEAP_OTP
++override CFLAGS += -DEAP_LEAP
++override CFLAGS += -DEAP_PSK
++override CFLAGS += -DEAP_PAX
++override CFLAGS += -DEAP_SAKE
++override CFLAGS += -DEAP_GPSK -DEAP_GPSK_SHA256
++override CFLAGS += -DEAP_TLS_FUNCS
++
++override CFLAGS += -DIEEE8021X_EAPOL
++
++ifeq ($(CONFIG_TLS), openssl)
++override CFLAGS += -DEAP_TLS_OPENSSL
++OBJS_both += ../crypto/tls_openssl.o
++OBJS_both += ../crypto/crypto_openssl.o
++LIBS += -lssl -lcrypto
++override CFLAGS += -DINTERNAL_SHA256
++endif
++
++ifeq ($(CONFIG_TLS), internal)
++OBJS_both += ../crypto/tls_internal.o
++OBJS_both += ../tls/tlsv1_common.o ../../tls/tlsv1_record.o
++OBJS_both += ../tls/tlsv1_cred.o
++OBJS_both += ../tls/asn1.o ../../tls/x509v3.o
++OBJS_both += ../crypto/crypto_internal.o ../../tls/rsa.o ../../tls/bignum.o
++
++OBJS_peer += ../tls/tlsv1_client.o
++OBJS_peer += ../tls/tlsv1_client_write.o ../../tls/tlsv1_client_read.o
++override CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT
++
++OBJS_server += ../tls/tlsv1_server.o
++OBJS_server += ../tls/tlsv1_server_write.o ../../tls/tlsv1_server_read.o
++override CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER
++
++override CFLAGS += -DCONFIG_TLS_INTERNAL
++override CFLAGS += -DCONFIG_CRYPTO_INTERNAL
++override CFLAGS += -DCONFIG_INTERNAL_X509
++override CFLAGS += -DINTERNAL_AES
++override CFLAGS += -DINTERNAL_SHA1
++override CFLAGS += -DINTERNAL_SHA256
++override CFLAGS += -DINTERNAL_MD5
++override CFLAGS += -DINTERNAL_MD4
++override CFLAGS += -DINTERNAL_DES
++ifdef CONFIG_INTERNAL_LIBTOMMATH
++override CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH
++else
++LIBS += -ltommath
++endif
++endif
++
++ifndef LDO
++LDO=$(CC)
++endif
++
++
++OBJS_lib=$(OBJS_both) $(OBJS_peer)
++
++ #$(OBJS_server)
++
++override CFLAGS += -fPIC -DPIC
++LDFLAGS += -shared
++
++$(LIBEAP): $(OBJS_lib)
++ $(LDO) $(LDFLAGS) $(OBJS_lib) -Wl,-soname -Wl,$(LIBEAP_SO) -o $(LIBEAP) $(LIBS)
++
++
++UTIL_HEADERS = ../utils/includes.h ../utils/common.h \
++ ../utils/wpabuf.h ../utils/build_config.h \
++ ../utils/os.h ../utils/wpa_debug.h
++COMMON_HEADERS = ../common/defs.h
++EAP_COMMON_HEADERS = ../eap_common/eap_defs.h
++MAIN_HEADERS = eap.h eap_methods.h eap_config.h
++CRYPTO_HEADERS = ../crypto/tls.h
++
++install:
++
++ mkdir -p $(DESTDIR)/usr/lib
++# copy the lib file to std lib location
++ cp $(LIBEAP) $(DESTDIR)/usr/lib
++ ln -fs $(LIBEAP_SO) $(DESTDIR)/usr/lib/$(LIBEAP_NAME).so
++ ln -fs $(LIBEAP_NAME).so.0.0.0 $(DESTDIR)/usr/lib/$(LIBEAP_NAME).so.0
++
++# copy the headers reqd by apps using eap peer library in its own subfolder under /usr/include
++ mkdir -p \
++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/eap_common \
++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/common \
++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/util \
++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/crypto
++ install -m 0644 $(EAP_COMMON_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/eap_common
++ install -m 0644 $(COMMON_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/common
++ install -m 0644 $(CRYPTO_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/crypto
++ install -m 0644 $(UTIL_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/util
++ install -m 0644 $(MAIN_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/
++
++ mkdir -p $(DESTDIR)/usr/lib/pkgconfig
++ cp libeap0.pc $(DESTDIR)/usr/lib/pkgconfig
++
++uninstall:
++
++ rm $(DESTDIR)/usr/lib/$(LIBEAP)
++ rm -fr $(DESTDIR)/$(INCLUDE_INSTALL_DIR)
++ rm -f $(DESTDIR)/usr/lib/pkgconfig/libeap0.pc
+
+ clean:
+- rm -f *~ *.o *.so *.d *.gcno *.gcda *.gcov
++ rm -f *~ *.o *.so *.d *.gcno *.gcda *.gcov libeap.a $(LIBEAP) $(OBJS_lib)
+
+-install:
+- if ls *.so >/dev/null 2>&1; then \
+- install -d $(DESTDIR)$(LIBDIR)/wpa_supplicant && \
+- cp *.so $(DESTDIR)$(LIBDIR)/wpa_supplicant \
+- ; fi
+diff -Naurp a/src/eap_peer/eap_methods.c b/src/eap_peer/eap_methods.c
+--- a/src/eap_peer/eap_methods.c 2012-05-15 08:23:17.151386999 +0000
++++ b/src/eap_peer/eap_methods.c 2012-05-15 08:23:57.403389760 +0000
+@@ -336,6 +336,120 @@
+
+
+ /**
++ * eap_peer_register_methods - Register all known EAP peer methods
++ *
++ * This function is called at program start to register all compiled
++ * in EAP peer methods.
++ */
++int eap_peer_register_methods(void)
++{
++ int ret = 0;
++
++#ifdef EAP_MD5
++ if (ret == 0)
++ ret = eap_peer_md5_register();
++#endif /* EAP_MD5 */
++
++#ifdef EAP_TLS
++ if (ret == 0)
++ ret = eap_peer_tls_register();
++#endif /* EAP_TLS */
++
++#ifdef EAP_MSCHAPv2
++ if (ret == 0)
++ ret = eap_peer_mschapv2_register();
++#endif /* EAP_MSCHAPv2 */
++
++#ifdef EAP_PEAP
++ if (ret == 0)
++ ret = eap_peer_peap_register();
++#endif /* EAP_PEAP */
++
++#ifdef EAP_TTLS
++ if (ret == 0)
++ ret = eap_peer_ttls_register();
++#endif /* EAP_TTLS */
++
++#ifdef EAP_GTC
++ if (ret == 0)
++ ret = eap_peer_gtc_register();
++#endif /* EAP_GTC */
++
++#ifdef EAP_OTP
++ if (ret == 0)
++ ret = eap_peer_otp_register();
++#endif /* EAP_OTP */
++
++#ifdef EAP_SIM
++ if (ret == 0)
++ ret = eap_peer_sim_register();
++#endif /* EAP_SIM */
++
++#ifdef EAP_LEAP
++ if (ret == 0)
++ ret = eap_peer_leap_register();
++#endif /* EAP_LEAP */
++
++#ifdef EAP_PSK
++ if (ret == 0)
++ ret = eap_peer_psk_register();
++#endif /* EAP_PSK */
++
++#ifdef EAP_AKA
++ if (ret == 0)
++ ret = eap_peer_aka_register();
++#endif /* EAP_AKA */
++
++#ifdef EAP_AKA_PRIME
++ if (ret == 0)
++ ret = eap_peer_aka_prime_register();
++#endif /* EAP_AKA_PRIME */
++
++#ifdef EAP_FAST
++ if (ret == 0)
++ ret = eap_peer_fast_register();
++#endif /* EAP_FAST */
++
++#ifdef EAP_PAX
++ if (ret == 0)
++ ret = eap_peer_pax_register();
++#endif /* EAP_PAX */
++
++#ifdef EAP_SAKE
++ if (ret == 0)
++ ret = eap_peer_sake_register();
++#endif /* EAP_SAKE */
++
++#ifdef EAP_GPSK
++ if (ret == 0)
++ ret = eap_peer_gpsk_register();
++#endif /* EAP_GPSK */
++
++#ifdef EAP_WSC
++ if (ret == 0)
++ ret = eap_peer_wsc_register();
++#endif /* EAP_WSC */
++
++#ifdef EAP_IKEV2
++ if (ret == 0)
++ ret = eap_peer_ikev2_register();
++#endif /* EAP_IKEV2 */
++
++#ifdef EAP_VENDOR_TEST
++ if (ret == 0)
++ ret = eap_peer_vendor_test_register();
++#endif /* EAP_VENDOR_TEST */
++
++#ifdef EAP_TNC
++ if (ret == 0)
++ ret = eap_peer_tnc_register();
++#endif /* EAP_TNC */
++
++ return ret;
++}
++
++
++/**
+ * eap_peer_unregister_methods - Unregister EAP peer methods
+ *
+ * This function is called at program termination to unregister all EAP peer
+diff -Naurp a/src/eap_peer/eap_methods.h b/src/eap_peer/eap_methods.h
+--- a/src/eap_peer/eap_methods.h 2012-05-15 08:23:17.151386999 +0000
++++ b/src/eap_peer/eap_methods.h 2012-05-15 08:23:57.404389735 +0000
+@@ -26,6 +26,7 @@
+ const char * eap_get_name(int vendor, EapType type);
+ size_t eap_get_names(char *buf, size_t buflen);
+ char ** eap_get_names_as_string_array(size_t *num);
++int eap_peer_register_methods(void);
+ void eap_peer_unregister_methods(void);
+
+ #else /* IEEE8021X_EAPOL */
+diff -Naurp a/src/eap_peer/libeap0.pc b/src/eap_peer/libeap0.pc
+--- a/src/eap_peer/libeap0.pc 1970-01-01 00:00:00.000000000 +0000
++++ b/src/eap_peer/libeap0.pc 2012-05-15 08:23:57.404389735 +0000
+@@ -0,0 +1,10 @@
++prefix=/usr
++exec_prefix=/usr
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include/eap_peer
++
++Name: libeap0
++Description: EAP Peer Library API
++Version: 0.7.2
++Libs: -L${libdir} -leap
++Cflags: -I${includedir}
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-conf.d b/net-wireless/wpa_supplicant/files/wpa_supplicant-conf.d
new file mode 100644
index 000000000000..104b9dc5d8c3
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-conf.d
@@ -0,0 +1,6 @@
+# conf.d file for wpa_supplicant
+#
+# Please check man 8 wpa_supplicant for more information about the options
+# wpa_supplicant accepts.
+#
+wpa_supplicant_args=""
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant-init.d b/net-wireless/wpa_supplicant/files/wpa_supplicant-init.d
new file mode 100644
index 000000000000..8429a3733840
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant-init.d
@@ -0,0 +1,70 @@
+#!/sbin/runscript
+# Copyright (c) 2009 Roy Marples <roy@marples.name>
+# All rights reserved. Released under the 2-clause BSD license.
+
+command=/usr/sbin/wpa_supplicant
+: ${wpa_supplicant_conf:=/etc/wpa_supplicant/wpa_supplicant.conf}
+wpa_supplicant_if=${wpa_supplicant_if:+-i}$wpa_supplicant_if
+command_args="$wpa_supplicant_args -B -c$wpa_supplicant_conf $wpa_supplicant_if"
+name="WPA Supplicant Daemon"
+
+depend()
+{
+ need localmount
+ use logger
+ after bootmisc modules
+ before dns dhcpcd net
+ keyword -shutdown
+}
+
+find_wireless()
+{
+ local iface=
+
+ case "$RC_UNAME" in
+ Linux)
+ for iface in /sys/class/net/*; do
+ if [ -e "$iface"/wireless -o \
+ -e "$iface"/phy80211 ]
+ then
+ echo "${iface##*/}"
+ return 0
+ fi
+ done
+ ;;
+ *)
+ for iface in /dev/net/* $(ifconfig -l 2>/dev/null); do
+ if ifconfig "${iface##*/}" 2>/dev/null | \
+ grep -q "[ ]*ssid "
+ then
+ echo "${iface##*/}"
+ return 0
+ fi
+ done
+ ;;
+ esac
+
+ return 1
+}
+
+append_wireless()
+{
+ local iface= i=
+
+ iface=$(find_wireless)
+ if [ -n "$iface" ]; then
+ for i in $iface; do
+ command_args="$command_args -i$i"
+ done
+ else
+ eerror "Could not find a wireless interface"
+ fi
+}
+
+start_pre()
+{
+ case " $command_args" in
+ *" -i"*) ;;
+ *) append_wireless;;
+ esac
+}
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant.conf b/net-wireless/wpa_supplicant/files/wpa_supplicant.conf
new file mode 100644
index 000000000000..c3a29e50d9ca
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant.conf
@@ -0,0 +1,7 @@
+# This is a network block that connects to any unsecured access point.
+# We give it a low priority so any defined blocks are preferred.
+network={
+ key_mgmt=NONE
+ priority=-9999999
+}
+
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant.service b/net-wireless/wpa_supplicant/files/wpa_supplicant.service
new file mode 100644
index 000000000000..e1e75b129528
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=WPA supplicant
+
+[Service]
+Type=dbus
+BusName=fi.epitest.hostap.WPASupplicant
+ExecStart=/usr/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant.conf -u
+
+[Install]
+WantedBy=multi-user.target
+Alias=dbus-fi.epitest.hostap.WPASupplicant.service
diff --git a/net-wireless/wpa_supplicant/files/wpa_supplicant_at.service b/net-wireless/wpa_supplicant/files/wpa_supplicant_at.service
new file mode 100644
index 000000000000..af0cebfd691d
--- /dev/null
+++ b/net-wireless/wpa_supplicant/files/wpa_supplicant_at.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=WPA supplicant daemon (interface-specific version)
+
+# NetworkManager users will probably want the dbus version instead.
+
+[Service]
+Type=simple
+ExecStart=/usr/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant.conf -i%I
+
+[Install]
+Alias=multi-user.target.wants/wpa_supplicant@wlan0.service
diff --git a/net-wireless/wpa_supplicant/metadata.xml b/net-wireless/wpa_supplicant/metadata.xml
new file mode 100644
index 000000000000..27c3b642319e
--- /dev/null
+++ b/net-wireless/wpa_supplicant/metadata.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>gurligebis@gentoo.org</email>
+ <name>Bjarke Istrup Pedersen</name>
+ </maintainer>
+ <maintainer>
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <use>
+ <flag name='ap'>Add support for access point mode</flag>
+ <flag name='eap-sim'>Add support for EAP-SIM authentication algorithm</flag>
+ <flag name='fasteap'>Add support for FAST-EAP authentication algorithm</flag>
+ <flag name='hs2-0'>Add support for 802.11u and Passpoint for HotSpot 2.0</flag>
+ <flag name='p2p'>Add support for Wi-Fi Direct mode</flag>
+ <flag name='ps3'>Add support for ps3 hypervisor driven gelic wifi</flag>
+ <flag name='tdls'>Add support for Tunneled Direct Link Setup (802.11z)</flag>
+ <flag name='uncommon-eap-types'>Add support for Wi-Fi Protected Setup</flag>
+ <flag name='wps'>Add support for Wi-Fi Protected Setup</flag>
+ <flag name='wimax'>Add support for Wimax EAP-PEER authentication algorithm</flag>
+ <flag name='smartcard'>Add support for smartcards</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:wpa_supplicant:wpa_supplicant</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-wireless/wpa_supplicant/wpa_supplicant-2.4-r3.ebuild b/net-wireless/wpa_supplicant/wpa_supplicant-2.4-r3.ebuild
new file mode 100644
index 000000000000..98de2c069648
--- /dev/null
+++ b/net-wireless/wpa_supplicant/wpa_supplicant-2.4-r3.ebuild
@@ -0,0 +1,383 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils toolchain-funcs qt4-r2 systemd multilib
+
+DESCRIPTION="IEEE 802.1X/WPA supplicant for secure wireless transfers"
+HOMEPAGE="http://hostap.epitest.fi/wpa_supplicant/"
+SRC_URI="http://hostap.epitest.fi/releases/${P}.tar.gz"
+LICENSE="|| ( GPL-2 BSD )"
+
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~mips ppc ppc64 ~sparc x86 ~x86-fbsd"
+IUSE="ap dbus gnutls eap-sim fasteap +hs2-0 p2p ps3 qt4 readline selinux smartcard ssl tdls uncommon-eap-types wimax wps kernel_linux kernel_FreeBSD"
+REQUIRED_USE="fasteap? ( !gnutls !ssl ) smartcard? ( ssl )"
+
+CDEPEND="dbus? ( sys-apps/dbus )
+ kernel_linux? (
+ eap-sim? ( sys-apps/pcsc-lite )
+ dev-libs/libnl:3
+ net-wireless/crda
+ )
+ !kernel_linux? ( net-libs/libpcap )
+ qt4? (
+ dev-qt/qtcore:4
+ dev-qt/qtgui:4
+ dev-qt/qtsvg:4
+ )
+ readline? (
+ sys-libs/ncurses
+ sys-libs/readline:0
+ )
+ ssl? ( dev-libs/openssl:0 )
+ !ssl? ( gnutls? ( net-libs/gnutls ) )
+ !ssl? ( !gnutls? ( dev-libs/libtommath ) )
+"
+DEPEND="${CDEPEND}
+ virtual/pkgconfig
+"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-networkmanager )
+"
+
+S="${WORKDIR}/${P}/${PN}"
+
+Kconfig_style_config() {
+ #param 1 is CONFIG_* item
+ #param 2 is what to set it = to, defaulting in y
+ CONFIG_PARAM="${CONFIG_HEADER:-CONFIG_}$1"
+ setting="${2:-y}"
+
+ if [ ! $setting = n ]; then
+ #first remove any leading "# " if $2 is not n
+ sed -i "/^# *$CONFIG_PARAM=/s/^# *//" .config || echo "Kconfig_style_config error uncommenting $CONFIG_PARAM"
+ #set item = $setting (defaulting to y)
+ sed -i "/^$CONFIG_PARAM/s/=.*/=$setting/" .config || echo "Kconfig_style_config error setting $CONFIG_PARAM=$setting"
+ else
+ #ensure item commented out
+ sed -i "/^$CONFIG_PARAM/s/$CONFIG_PARAM/# $CONFIG_PARAM/" .config || echo "Kconfig_style_config error commenting $CONFIG_PARAM"
+ fi
+}
+
+pkg_setup() {
+ if use gnutls && use ssl ; then
+ elog "You have both 'gnutls' and 'ssl' USE flags enabled: defaulting to USE=\"ssl\""
+ fi
+}
+
+src_prepare() {
+ # net/bpf.h needed for net-libs/libpcap on Gentoo/FreeBSD
+ sed -i \
+ -e "s:\(#include <pcap\.h>\):#include <net/bpf.h>\n\1:" \
+ ../src/l2_packet/l2_packet_freebsd.c || die
+
+ # People seem to take the example configuration file too literally (bug #102361)
+ sed -i \
+ -e "s:^\(opensc_engine_path\):#\1:" \
+ -e "s:^\(pkcs11_engine_path\):#\1:" \
+ -e "s:^\(pkcs11_module_path\):#\1:" \
+ wpa_supplicant.conf || die
+
+ # Change configuration to match Gentoo locations (bug #143750)
+ sed -i \
+ -e "s:/usr/lib/opensc:/usr/$(get_libdir):" \
+ -e "s:/usr/lib/pkcs11:/usr/$(get_libdir):" \
+ wpa_supplicant.conf || die
+
+ if use dbus; then
+ epatch "${FILESDIR}/${P}-dbus-path-fix.patch"
+ fi
+
+ # systemd entries to D-Bus service files (bug #372877)
+ echo 'SystemdService=wpa_supplicant.service' \
+ | tee -a dbus/*.service >/dev/null || die
+
+ cd "${WORKDIR}/${P}"
+
+ if use wimax; then
+ # generate-libeap-peer.patch comes before
+ # fix-undefined-reference-to-random_get_bytes.patch
+ epatch "${FILESDIR}/${P}-generate-libeap-peer.patch"
+
+ # multilib-strict fix (bug #373685)
+ sed -e "s/\/usr\/lib/\/usr\/$(get_libdir)/" -i src/eap_peer/Makefile
+ fi
+
+ # bug (548742)
+ epatch "${FILESDIR}/2015-1/0001-P2P-Validate-SSID-element-length-before-copying-it-C.patch"
+ epatch "${FILESDIR}/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch"
+ epatch "${FILESDIR}/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch"
+ epatch "${FILESDIR}/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch"
+ epatch "${FILESDIR}/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch"
+ epatch "${FILESDIR}/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch"
+ epatch "${FILESDIR}/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch"
+ epatch "${FILESDIR}/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch"
+
+ # bug (320097)
+ epatch "${FILESDIR}/${P}-do-not-call-dbus-functions-with-NULL-path.patch"
+
+ # TODO - NEED TESTING TO SEE IF STILL NEEDED, NOT COMPATIBLE WITH 1.0 OUT OF THE BOX,
+ # SO WOULD BE NICE TO JUST DROP IT, IF IT IS NOT NEEDED.
+ # bug (374089)
+ #epatch "${FILESDIR}/${P}-dbus-WPAIE-fix.patch"
+}
+
+src_configure() {
+ # Toolchain setup
+ tc-export CC
+
+ cp defconfig .config
+
+ # Basic setup
+ Kconfig_style_config CTRL_IFACE
+ Kconfig_style_config BACKEND file
+ Kconfig_style_config IBSS_RSN
+ Kconfig_style_config IEEE80211W
+ Kconfig_style_config IEEE80211R
+
+ # Basic authentication methods
+ # NOTE: we don't set GPSK or SAKE as they conflict
+ # with the below options
+ Kconfig_style_config EAP_GTC
+ Kconfig_style_config EAP_MD5
+ Kconfig_style_config EAP_OTP
+ Kconfig_style_config EAP_PAX
+ Kconfig_style_config EAP_PSK
+ Kconfig_style_config EAP_TLV
+ Kconfig_style_config EAP_EXE
+ Kconfig_style_config IEEE8021X_EAPOL
+ Kconfig_style_config PKCS12
+ Kconfig_style_config PEERKEY
+ Kconfig_style_config EAP_LEAP
+ Kconfig_style_config EAP_MSCHAPV2
+ Kconfig_style_config EAP_PEAP
+ Kconfig_style_config EAP_TLS
+ Kconfig_style_config EAP_TTLS
+
+ # Enabling background scanning.
+ Kconfig_style_config BGSCAN_SIMPLE
+ Kconfig_style_config BGSCAN_LEARN
+
+ if use dbus ; then
+ Kconfig_style_config CTRL_IFACE_DBUS
+ Kconfig_style_config CTRL_IFACE_DBUS_NEW
+ Kconfig_style_config CTRL_IFACE_DBUS_INTRO
+ fi
+
+ # Enable support for writing debug info to a log file and syslog.
+ Kconfig_style_config DEBUG_FILE
+ Kconfig_style_config DEBUG_SYSLOG
+
+ if use hs2-0 ; then
+ Kconfig_style_config INTERWORKING
+ Kconfig_style_config HS20
+ fi
+
+ if use uncommon-eap-types; then
+ Kconfig_style_config EAP_GPSK
+ Kconfig_style_config EAP_SAKE
+ Kconfig_style_config EAP_GPSK_SHA256
+ Kconfig_style_config EAP_IKEV2
+ Kconfig_style_config EAP_EKE
+ fi
+
+ if use eap-sim ; then
+ # Smart card authentication
+ Kconfig_style_config EAP_SIM
+ Kconfig_style_config EAP_AKA
+ Kconfig_style_config EAP_AKA_PRIME
+ Kconfig_style_config PCSC
+ fi
+
+ if use fasteap ; then
+ Kconfig_style_config EAP_FAST
+ fi
+
+ if use readline ; then
+ # readline/history support for wpa_cli
+ Kconfig_style_config READLINE
+ else
+ #internal line edit mode for wpa_cli
+ Kconfig_style_config WPA_CLI_EDIT
+ fi
+
+ # SSL authentication methods
+ if use ssl ; then
+ Kconfig_style_config TLS openssl
+ elif use gnutls ; then
+ Kconfig_style_config TLS gnutls
+ Kconfig_style_config GNUTLS_EXTRA
+ else
+ Kconfig_style_config TLS internal
+ fi
+
+ if use smartcard ; then
+ Kconfig_style_config SMARTCARD
+ fi
+
+ if use tdls ; then
+ Kconfig_style_config TDLS
+ fi
+
+ if use kernel_linux ; then
+ # Linux specific drivers
+ Kconfig_style_config DRIVER_ATMEL
+ Kconfig_style_config DRIVER_HOSTAP
+ Kconfig_style_config DRIVER_IPW
+ Kconfig_style_config DRIVER_NL80211
+ Kconfig_style_config DRIVER_RALINK
+ Kconfig_style_config DRIVER_WEXT
+ Kconfig_style_config DRIVER_WIRED
+
+ if use ps3 ; then
+ Kconfig_style_config DRIVER_PS3
+ fi
+
+ elif use kernel_FreeBSD ; then
+ # FreeBSD specific driver
+ Kconfig_style_config DRIVER_BSD
+ fi
+
+ # Wi-Fi Protected Setup (WPS)
+ if use wps ; then
+ Kconfig_style_config WPS
+ Kconfig_style_config WPS2
+ # USB Flash Drive
+ Kconfig_style_config WPS_UFD
+ # External Registrar
+ Kconfig_style_config WPS_ER
+ # Universal Plug'n'Play
+ Kconfig_style_config WPS_UPNP
+ # Near Field Communication
+ Kconfig_style_config WPS_NFC
+ fi
+
+ # Wi-Fi Direct (WiDi)
+ if use p2p ; then
+ Kconfig_style_config P2P
+ Kconfig_style_config WIFI_DISPLAY
+ fi
+
+ # Access Point Mode
+ if use ap ; then
+ Kconfig_style_config AP
+ fi
+
+ # Enable mitigation against certain attacks against TKIP
+ Kconfig_style_config DELAYED_MIC_ERROR_REPORT
+
+ # If we are using libnl 2.0 and above, enable support for it
+ # Bug 382159
+ # Removed for now, since the 3.2 version is broken, and we don't
+ # support it.
+ if has_version ">=dev-libs/libnl-3.2"; then
+ Kconfig_style_config LIBNL32
+ fi
+
+ if use qt4 ; then
+ pushd "${S}"/wpa_gui-qt4 > /dev/null
+ eqmake4 wpa_gui.pro
+ popd > /dev/null
+ fi
+}
+
+src_compile() {
+ einfo "Building wpa_supplicant"
+ emake V=1 BINDIR=/usr/sbin
+
+ if use wimax; then
+ emake -C ../src/eap_peer clean
+ emake -C ../src/eap_peer
+ fi
+
+ if use qt4 ; then
+ pushd "${S}"/wpa_gui-qt4 > /dev/null
+ einfo "Building wpa_gui"
+ emake
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ dosbin wpa_supplicant
+ dobin wpa_cli wpa_passphrase
+
+ # baselayout-1 compat
+ if has_version "<sys-apps/baselayout-2.0.0"; then
+ dodir /sbin
+ dosym /usr/sbin/wpa_supplicant /sbin/wpa_supplicant
+ dodir /bin
+ dosym /usr/bin/wpa_cli /bin/wpa_cli
+ fi
+
+ if has_version ">=sys-apps/openrc-0.5.0"; then
+ newinitd "${FILESDIR}/${PN}-init.d" wpa_supplicant
+ newconfd "${FILESDIR}/${PN}-conf.d" wpa_supplicant
+ fi
+
+ exeinto /etc/wpa_supplicant/
+ newexe "${FILESDIR}/wpa_cli.sh" wpa_cli.sh
+
+ dodoc ChangeLog {eap_testing,todo}.txt README{,-WPS} \
+ wpa_supplicant.conf
+
+ newdoc .config build-config
+
+ doman doc/docbook/*.{5,8}
+
+ if use qt4 ; then
+ into /usr
+ dobin wpa_gui-qt4/wpa_gui
+ doicon wpa_gui-qt4/icons/wpa_gui.svg
+ make_desktop_entry wpa_gui "WPA Supplicant Administration GUI" "wpa_gui" "Qt;Network;"
+ fi
+
+ use wimax && emake DESTDIR="${D}" -C ../src/eap_peer install
+
+ if use dbus ; then
+ pushd "${S}"/dbus > /dev/null
+ insinto /etc/dbus-1/system.d
+ newins dbus-wpa_supplicant.conf wpa_supplicant.conf
+ insinto /usr/share/dbus-1/system-services
+ doins fi.epitest.hostap.WPASupplicant.service fi.w1.wpa_supplicant1.service
+ popd > /dev/null
+
+ # This unit relies on dbus support, bug 538600.
+ systemd_dounit systemd/wpa_supplicant.service
+ fi
+
+ systemd_dounit "systemd/wpa_supplicant@.service"
+ systemd_dounit "systemd/wpa_supplicant-nl80211@.service"
+ systemd_dounit "systemd/wpa_supplicant-wired@.service"
+}
+
+pkg_postinst() {
+ elog "If this is a clean installation of wpa_supplicant, you"
+ elog "have to create a configuration file named"
+ elog "/etc/wpa_supplicant/wpa_supplicant.conf"
+ elog
+ elog "An example configuration file is available for reference in"
+ elog "/usr/share/doc/${PF}/"
+
+ if [[ -e ${ROOT}etc/wpa_supplicant.conf ]] ; then
+ echo
+ ewarn "WARNING: your old configuration file ${ROOT}etc/wpa_supplicant.conf"
+ ewarn "needs to be moved to ${ROOT}etc/wpa_supplicant/wpa_supplicant.conf"
+ fi
+
+ # Mea culpa, feel free to remove that after some time --mgorny.
+ local fn
+ for fn in wpa_supplicant{,@wlan0}.service; do
+ if [[ -e "${ROOT}"/etc/systemd/system/network.target.wants/${fn} ]]
+ then
+ ebegin "Moving ${fn} to multi-user.target"
+ mv "${ROOT}"/etc/systemd/system/network.target.wants/${fn} \
+ "${ROOT}"/etc/systemd/system/multi-user.target.wants/
+ eend ${?} \
+ "Please try to re-enable ${fn}"
+ fi
+ done
+}
diff --git a/net-wireless/wpa_supplicant/wpa_supplicant-2.4-r4.ebuild b/net-wireless/wpa_supplicant/wpa_supplicant-2.4-r4.ebuild
new file mode 100644
index 000000000000..d52a6fb13284
--- /dev/null
+++ b/net-wireless/wpa_supplicant/wpa_supplicant-2.4-r4.ebuild
@@ -0,0 +1,387 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils toolchain-funcs qt4-r2 systemd multilib
+
+DESCRIPTION="IEEE 802.1X/WPA supplicant for secure wireless transfers"
+HOMEPAGE="http://hostap.epitest.fi/wpa_supplicant/"
+SRC_URI="http://hostap.epitest.fi/releases/${P}.tar.gz"
+LICENSE="|| ( GPL-2 BSD )"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="ap dbus gnutls eap-sim fasteap +hs2-0 p2p ps3 qt4 readline selinux smartcard ssl tdls uncommon-eap-types wimax wps kernel_linux kernel_FreeBSD"
+REQUIRED_USE="fasteap? ( !gnutls !ssl ) smartcard? ( ssl )"
+
+CDEPEND="dbus? ( sys-apps/dbus )
+ kernel_linux? (
+ eap-sim? ( sys-apps/pcsc-lite )
+ dev-libs/libnl:3
+ net-wireless/crda
+ )
+ !kernel_linux? ( net-libs/libpcap )
+ qt4? (
+ dev-qt/qtcore:4
+ dev-qt/qtgui:4
+ dev-qt/qtsvg:4
+ )
+ readline? (
+ sys-libs/ncurses
+ sys-libs/readline:0
+ )
+ ssl? ( dev-libs/openssl:0 )
+ !ssl? ( gnutls? ( net-libs/gnutls ) )
+ !ssl? ( !gnutls? ( dev-libs/libtommath ) )
+"
+DEPEND="${CDEPEND}
+ virtual/pkgconfig
+"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-networkmanager )
+"
+
+S="${WORKDIR}/${P}/${PN}"
+
+Kconfig_style_config() {
+ #param 1 is CONFIG_* item
+ #param 2 is what to set it = to, defaulting in y
+ CONFIG_PARAM="${CONFIG_HEADER:-CONFIG_}$1"
+ setting="${2:-y}"
+
+ if [ ! $setting = n ]; then
+ #first remove any leading "# " if $2 is not n
+ sed -i "/^# *$CONFIG_PARAM=/s/^# *//" .config || echo "Kconfig_style_config error uncommenting $CONFIG_PARAM"
+ #set item = $setting (defaulting to y)
+ sed -i "/^$CONFIG_PARAM/s/=.*/=$setting/" .config || echo "Kconfig_style_config error setting $CONFIG_PARAM=$setting"
+ else
+ #ensure item commented out
+ sed -i "/^$CONFIG_PARAM/s/$CONFIG_PARAM/# $CONFIG_PARAM/" .config || echo "Kconfig_style_config error commenting $CONFIG_PARAM"
+ fi
+}
+
+pkg_setup() {
+ if use gnutls && use ssl ; then
+ elog "You have both 'gnutls' and 'ssl' USE flags enabled: defaulting to USE=\"ssl\""
+ fi
+}
+
+src_prepare() {
+ # net/bpf.h needed for net-libs/libpcap on Gentoo/FreeBSD
+ sed -i \
+ -e "s:\(#include <pcap\.h>\):#include <net/bpf.h>\n\1:" \
+ ../src/l2_packet/l2_packet_freebsd.c || die
+
+ # People seem to take the example configuration file too literally (bug #102361)
+ sed -i \
+ -e "s:^\(opensc_engine_path\):#\1:" \
+ -e "s:^\(pkcs11_engine_path\):#\1:" \
+ -e "s:^\(pkcs11_module_path\):#\1:" \
+ wpa_supplicant.conf || die
+
+ # Change configuration to match Gentoo locations (bug #143750)
+ sed -i \
+ -e "s:/usr/lib/opensc:/usr/$(get_libdir):" \
+ -e "s:/usr/lib/pkcs11:/usr/$(get_libdir):" \
+ wpa_supplicant.conf || die
+
+ if use dbus; then
+ epatch "${FILESDIR}/${P}-dbus-path-fix.patch"
+ fi
+
+ # systemd entries to D-Bus service files (bug #372877)
+ echo 'SystemdService=wpa_supplicant.service' \
+ | tee -a dbus/*.service >/dev/null || die
+
+ cd "${WORKDIR}/${P}"
+
+ if use wimax; then
+ # generate-libeap-peer.patch comes before
+ # fix-undefined-reference-to-random_get_bytes.patch
+ epatch "${FILESDIR}/${P}-generate-libeap-peer.patch"
+
+ # multilib-strict fix (bug #373685)
+ sed -e "s/\/usr\/lib/\/usr\/$(get_libdir)/" -i src/eap_peer/Makefile
+ fi
+
+ # bug (548742)
+ epatch "${FILESDIR}/2015-1/0001-P2P-Validate-SSID-element-length-before-copying-it-C.patch"
+ epatch "${FILESDIR}/2015-2/0001-WPS-Fix-HTTP-chunked-transfer-encoding-parser.patch"
+ epatch "${FILESDIR}/2015-3/0001-AP-WMM-Fix-integer-underflow-in-WMM-Action-frame-par.patch"
+ epatch "${FILESDIR}/2015-4/0001-EAP-pwd-peer-Fix-payload-length-validation-for-Commi.patch"
+ epatch "${FILESDIR}/2015-4/0002-EAP-pwd-server-Fix-payload-length-validation-for-Com.patch"
+ epatch "${FILESDIR}/2015-4/0003-EAP-pwd-peer-Fix-Total-Length-parsing-for-fragment-r.patch"
+ epatch "${FILESDIR}/2015-4/0004-EAP-pwd-server-Fix-Total-Length-parsing-for-fragment.patch"
+ epatch "${FILESDIR}/2015-4/0005-EAP-pwd-peer-Fix-asymmetric-fragmentation-behavior.patch"
+
+ # bug (554860)
+ epatch "${FILESDIR}/2015-5/0001-NFC-Avoid-misaligned-read-of-an-NDEF-field.patch"
+ epatch "${FILESDIR}/2015-5/0002-NFC-Fix-payload-length-validation-in-NDEF-record-par.patch"
+
+ # bug (320097)
+ epatch "${FILESDIR}/${P}-do-not-call-dbus-functions-with-NULL-path.patch"
+
+ # TODO - NEED TESTING TO SEE IF STILL NEEDED, NOT COMPATIBLE WITH 1.0 OUT OF THE BOX,
+ # SO WOULD BE NICE TO JUST DROP IT, IF IT IS NOT NEEDED.
+ # bug (374089)
+ #epatch "${FILESDIR}/${P}-dbus-WPAIE-fix.patch"
+}
+
+src_configure() {
+ # Toolchain setup
+ tc-export CC
+
+ cp defconfig .config
+
+ # Basic setup
+ Kconfig_style_config CTRL_IFACE
+ Kconfig_style_config BACKEND file
+ Kconfig_style_config IBSS_RSN
+ Kconfig_style_config IEEE80211W
+ Kconfig_style_config IEEE80211R
+
+ # Basic authentication methods
+ # NOTE: we don't set GPSK or SAKE as they conflict
+ # with the below options
+ Kconfig_style_config EAP_GTC
+ Kconfig_style_config EAP_MD5
+ Kconfig_style_config EAP_OTP
+ Kconfig_style_config EAP_PAX
+ Kconfig_style_config EAP_PSK
+ Kconfig_style_config EAP_TLV
+ Kconfig_style_config EAP_EXE
+ Kconfig_style_config IEEE8021X_EAPOL
+ Kconfig_style_config PKCS12
+ Kconfig_style_config PEERKEY
+ Kconfig_style_config EAP_LEAP
+ Kconfig_style_config EAP_MSCHAPV2
+ Kconfig_style_config EAP_PEAP
+ Kconfig_style_config EAP_TLS
+ Kconfig_style_config EAP_TTLS
+
+ # Enabling background scanning.
+ Kconfig_style_config BGSCAN_SIMPLE
+ Kconfig_style_config BGSCAN_LEARN
+
+ if use dbus ; then
+ Kconfig_style_config CTRL_IFACE_DBUS
+ Kconfig_style_config CTRL_IFACE_DBUS_NEW
+ Kconfig_style_config CTRL_IFACE_DBUS_INTRO
+ fi
+
+ # Enable support for writing debug info to a log file and syslog.
+ Kconfig_style_config DEBUG_FILE
+ Kconfig_style_config DEBUG_SYSLOG
+
+ if use hs2-0 ; then
+ Kconfig_style_config INTERWORKING
+ Kconfig_style_config HS20
+ fi
+
+ if use uncommon-eap-types; then
+ Kconfig_style_config EAP_GPSK
+ Kconfig_style_config EAP_SAKE
+ Kconfig_style_config EAP_GPSK_SHA256
+ Kconfig_style_config EAP_IKEV2
+ Kconfig_style_config EAP_EKE
+ fi
+
+ if use eap-sim ; then
+ # Smart card authentication
+ Kconfig_style_config EAP_SIM
+ Kconfig_style_config EAP_AKA
+ Kconfig_style_config EAP_AKA_PRIME
+ Kconfig_style_config PCSC
+ fi
+
+ if use fasteap ; then
+ Kconfig_style_config EAP_FAST
+ fi
+
+ if use readline ; then
+ # readline/history support for wpa_cli
+ Kconfig_style_config READLINE
+ else
+ #internal line edit mode for wpa_cli
+ Kconfig_style_config WPA_CLI_EDIT
+ fi
+
+ # SSL authentication methods
+ if use ssl ; then
+ Kconfig_style_config TLS openssl
+ elif use gnutls ; then
+ Kconfig_style_config TLS gnutls
+ Kconfig_style_config GNUTLS_EXTRA
+ else
+ Kconfig_style_config TLS internal
+ fi
+
+ if use smartcard ; then
+ Kconfig_style_config SMARTCARD
+ fi
+
+ if use tdls ; then
+ Kconfig_style_config TDLS
+ fi
+
+ if use kernel_linux ; then
+ # Linux specific drivers
+ Kconfig_style_config DRIVER_ATMEL
+ Kconfig_style_config DRIVER_HOSTAP
+ Kconfig_style_config DRIVER_IPW
+ Kconfig_style_config DRIVER_NL80211
+ Kconfig_style_config DRIVER_RALINK
+ Kconfig_style_config DRIVER_WEXT
+ Kconfig_style_config DRIVER_WIRED
+
+ if use ps3 ; then
+ Kconfig_style_config DRIVER_PS3
+ fi
+
+ elif use kernel_FreeBSD ; then
+ # FreeBSD specific driver
+ Kconfig_style_config DRIVER_BSD
+ fi
+
+ # Wi-Fi Protected Setup (WPS)
+ if use wps ; then
+ Kconfig_style_config WPS
+ Kconfig_style_config WPS2
+ # USB Flash Drive
+ Kconfig_style_config WPS_UFD
+ # External Registrar
+ Kconfig_style_config WPS_ER
+ # Universal Plug'n'Play
+ Kconfig_style_config WPS_UPNP
+ # Near Field Communication
+ Kconfig_style_config WPS_NFC
+ fi
+
+ # Wi-Fi Direct (WiDi)
+ if use p2p ; then
+ Kconfig_style_config P2P
+ Kconfig_style_config WIFI_DISPLAY
+ fi
+
+ # Access Point Mode
+ if use ap ; then
+ Kconfig_style_config AP
+ fi
+
+ # Enable mitigation against certain attacks against TKIP
+ Kconfig_style_config DELAYED_MIC_ERROR_REPORT
+
+ # If we are using libnl 2.0 and above, enable support for it
+ # Bug 382159
+ # Removed for now, since the 3.2 version is broken, and we don't
+ # support it.
+ if has_version ">=dev-libs/libnl-3.2"; then
+ Kconfig_style_config LIBNL32
+ fi
+
+ if use qt4 ; then
+ pushd "${S}"/wpa_gui-qt4 > /dev/null
+ eqmake4 wpa_gui.pro
+ popd > /dev/null
+ fi
+}
+
+src_compile() {
+ einfo "Building wpa_supplicant"
+ emake V=1 BINDIR=/usr/sbin
+
+ if use wimax; then
+ emake -C ../src/eap_peer clean
+ emake -C ../src/eap_peer
+ fi
+
+ if use qt4 ; then
+ pushd "${S}"/wpa_gui-qt4 > /dev/null
+ einfo "Building wpa_gui"
+ emake
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ dosbin wpa_supplicant
+ dobin wpa_cli wpa_passphrase
+
+ # baselayout-1 compat
+ if has_version "<sys-apps/baselayout-2.0.0"; then
+ dodir /sbin
+ dosym /usr/sbin/wpa_supplicant /sbin/wpa_supplicant
+ dodir /bin
+ dosym /usr/bin/wpa_cli /bin/wpa_cli
+ fi
+
+ if has_version ">=sys-apps/openrc-0.5.0"; then
+ newinitd "${FILESDIR}/${PN}-init.d" wpa_supplicant
+ newconfd "${FILESDIR}/${PN}-conf.d" wpa_supplicant
+ fi
+
+ exeinto /etc/wpa_supplicant/
+ newexe "${FILESDIR}/wpa_cli.sh" wpa_cli.sh
+
+ dodoc ChangeLog {eap_testing,todo}.txt README{,-WPS} \
+ wpa_supplicant.conf
+
+ newdoc .config build-config
+
+ doman doc/docbook/*.{5,8}
+
+ if use qt4 ; then
+ into /usr
+ dobin wpa_gui-qt4/wpa_gui
+ doicon wpa_gui-qt4/icons/wpa_gui.svg
+ make_desktop_entry wpa_gui "WPA Supplicant Administration GUI" "wpa_gui" "Qt;Network;"
+ fi
+
+ use wimax && emake DESTDIR="${D}" -C ../src/eap_peer install
+
+ if use dbus ; then
+ pushd "${S}"/dbus > /dev/null
+ insinto /etc/dbus-1/system.d
+ newins dbus-wpa_supplicant.conf wpa_supplicant.conf
+ insinto /usr/share/dbus-1/system-services
+ doins fi.epitest.hostap.WPASupplicant.service fi.w1.wpa_supplicant1.service
+ popd > /dev/null
+
+ # This unit relies on dbus support, bug 538600.
+ systemd_dounit systemd/wpa_supplicant.service
+ fi
+
+ systemd_dounit "systemd/wpa_supplicant@.service"
+ systemd_dounit "systemd/wpa_supplicant-nl80211@.service"
+ systemd_dounit "systemd/wpa_supplicant-wired@.service"
+}
+
+pkg_postinst() {
+ elog "If this is a clean installation of wpa_supplicant, you"
+ elog "have to create a configuration file named"
+ elog "/etc/wpa_supplicant/wpa_supplicant.conf"
+ elog
+ elog "An example configuration file is available for reference in"
+ elog "/usr/share/doc/${PF}/"
+
+ if [[ -e ${ROOT}etc/wpa_supplicant.conf ]] ; then
+ echo
+ ewarn "WARNING: your old configuration file ${ROOT}etc/wpa_supplicant.conf"
+ ewarn "needs to be moved to ${ROOT}etc/wpa_supplicant/wpa_supplicant.conf"
+ fi
+
+ # Mea culpa, feel free to remove that after some time --mgorny.
+ local fn
+ for fn in wpa_supplicant{,@wlan0}.service; do
+ if [[ -e "${ROOT}"/etc/systemd/system/network.target.wants/${fn} ]]
+ then
+ ebegin "Moving ${fn} to multi-user.target"
+ mv "${ROOT}"/etc/systemd/system/network.target.wants/${fn} \
+ "${ROOT}"/etc/systemd/system/multi-user.target.wants/
+ eend ${?} \
+ "Please try to re-enable ${fn}"
+ fi
+ done
+}
diff --git a/net-wireless/yatebts/Manifest b/net-wireless/yatebts/Manifest
new file mode 100644
index 000000000000..cfff16a67450
--- /dev/null
+++ b/net-wireless/yatebts/Manifest
@@ -0,0 +1 @@
+DIST yate-bts-4.0.0-1.tar.gz 3311644 SHA256 0cf40839e81e1600b3bd7a184404249cca387d9a7413dda1db02f92d3b501c31 SHA512 802e765fb5dd1702b71c6e7a68f671dcfb82431d7c6defc4fea1494558b8824c0a4b61dc9b7b787bc8badf09752b12efb531d7435d6d32db60edd96fe32f850d WHIRLPOOL 67b983de759b0cf87ded1673c2fe41fef6f10ccb0848a5816cb37c9f20c48c6e11667f4098469d8b381a5e9a50d00c623d494d623227f879e0bf32e11bd447d3
diff --git a/net-wireless/yatebts/files/yatebts-4.0.0-dont-mess-with-cflags.patch b/net-wireless/yatebts/files/yatebts-4.0.0-dont-mess-with-cflags.patch
new file mode 100644
index 000000000000..b10eb57237ef
--- /dev/null
+++ b/net-wireless/yatebts/files/yatebts-4.0.0-dont-mess-with-cflags.patch
@@ -0,0 +1,13 @@
+diff -Naur yate-bts/configure.in yate-bts-sane/configure.in
+--- yate-bts/configure.in 2014-07-25 10:28:44.000000000 -0400
++++ yate-bts-sane/configure.in 2014-07-25 17:38:23.550069064 -0400
+@@ -36,9 +36,6 @@
+ AC_PROG_CC
+ AC_PROG_AWK
+
+-# Delete -g as we handle debug info at build time
+-CFLAGS=`echo "$CFLAGS" | sed 's/-g[[0-9]]* *//' 2>/dev/null`
+-
+ # Helper to check by pkgconfig including local paths
+ function pkgconfig_check()
+ {
diff --git a/net-wireless/yatebts/files/yatebts-bladeRF-transceiver_revert_init_order.patch b/net-wireless/yatebts/files/yatebts-bladeRF-transceiver_revert_init_order.patch
new file mode 100644
index 000000000000..83da1d58d29d
--- /dev/null
+++ b/net-wireless/yatebts/files/yatebts-bladeRF-transceiver_revert_init_order.patch
@@ -0,0 +1,86 @@
+diff --git a/mbts/TransceiverRAD1/bladeRFDevice.cpp b/mbts/TransceiverRAD1/bladeRFDevice.cpp
+index a2a3346..cfdb977 100644
+--- a/mbts/TransceiverRAD1/bladeRFDevice.cpp
++++ b/mbts/TransceiverRAD1/bladeRFDevice.cpp
+@@ -35,7 +35,6 @@
+
+ #include <Logger.h>
+
+-
+ #define MIN_OVERSAMPLING 4
+
+ #define HEALTH_BAD 10
+@@ -128,7 +127,36 @@ bool bladeRFDevice::open(const std::string &args, bool)
+ << "." << ver.patch << " (" << ver.describe << ")";
+
+ uint32_t val = 0;
+- bladerf_config_gpio_read(bdev, &val);
++
++ status = bladerf_sync_config(bdev,
++ BLADERF_MODULE_RX,
++ BLADERF_FORMAT_SC16_Q11,
++ DEFAULT_STREAM_RX_BUFFERS,
++ DEFAULT_STREAM_SAMPLES,
++ DEFAULT_STREAM_RX_XFERS,
++ DEFAULT_STREAM_TIMEOUT
++ );
++
++ if (status < 0) {
++ LOG(CRIT) << "Failed to intialize RX sync handle: " << bladerf_strerror(status);
++ checkHealth(mRxHealth, false);
++ }
++
++ status = bladerf_sync_config(bdev,
++ BLADERF_MODULE_TX,
++ BLADERF_FORMAT_SC16_Q11,
++ DEFAULT_STREAM_TX_BUFFERS,
++ DEFAULT_STREAM_SAMPLES,
++ DEFAULT_STREAM_TX_XFERS,
++ DEFAULT_STREAM_TIMEOUT
++ );
++
++ if (status < 0) {
++ LOG(CRIT) << "Failed to intialize TX sync handle: " << bladerf_strerror(status);
++ checkHealth(mTxHealth, false);
++ }
++
++ bladerf_config_gpio_read(bdev, &val);
+ val |= 0x10000; //enable timestamps, clears and resets everything on write
+ bladerf_config_gpio_write(bdev, val);
+ bladerf_config_gpio_read(bdev, &val);
+@@ -185,34 +213,6 @@ bool bladeRFDevice::open(const std::string &args, bool)
+ else
+ LOG(INFO) << "Actual bandwidth " << bw;
+
+- status = bladerf_sync_config(bdev,
+- BLADERF_MODULE_RX,
+- BLADERF_FORMAT_SC16_Q11,
+- DEFAULT_STREAM_RX_BUFFERS,
+- DEFAULT_STREAM_SAMPLES,
+- DEFAULT_STREAM_RX_XFERS,
+- DEFAULT_STREAM_TIMEOUT
+- );
+-
+- if (status < 0) {
+- LOG(CRIT) << "Failed to intialize RX sync handle: " << bladerf_strerror(status);
+- checkHealth(mRxHealth, false);
+- }
+-
+- status = bladerf_sync_config(bdev,
+- BLADERF_MODULE_TX,
+- BLADERF_FORMAT_SC16_Q11,
+- DEFAULT_STREAM_TX_BUFFERS,
+- DEFAULT_STREAM_SAMPLES,
+- DEFAULT_STREAM_TX_XFERS,
+- DEFAULT_STREAM_TIMEOUT
+- );
+-
+- if (status < 0) {
+- LOG(CRIT) << "Failed to intialize TX sync handle: " << bladerf_strerror(status);
+- checkHealth(mTxHealth, false);
+- }
+-
+ mRxGain1 = BLADERF_RXVGA1_GAIN_MAX;
+ mDcCorrect = true;
+ mRxMaxOffset = RX_OFFSET_ERROR * RX_AVERAGE_DAMPING;
+
diff --git a/net-wireless/yatebts/files/yatebts-sgsnggsn-inetutils-hostname-fix.diff b/net-wireless/yatebts/files/yatebts-sgsnggsn-inetutils-hostname-fix.diff
new file mode 100644
index 000000000000..46b4b1d1ba4d
--- /dev/null
+++ b/net-wireless/yatebts/files/yatebts-sgsnggsn-inetutils-hostname-fix.diff
@@ -0,0 +1,14 @@
+diff --git a/mbts/SGSNGGSN/iputils.cpp b/mbts/SGSNGGSN/iputils.cpp
+index 979ae3a..49bb0ff 100644
+--- a/mbts/SGSNGGSN/iputils.cpp
++++ b/mbts/SGSNGGSN/iputils.cpp
+@@ -466,7 +466,7 @@ EXPORT uint32_t *ip_findmyaddr()
+ const int maxaddrs = 5;
+ static uint32_t addrs[maxaddrs+1];
+ int n = 0;
+- int fd = runcmd("|/bin/hostname","hostname","-I", NULL);
++ int fd = runcmd("|/bin/hostname","hostname","-i", NULL);
+ if (fd < 0) {
+ failed:
+ addrs[0] = (unsigned) -1; // converts to all 1s
+
diff --git a/net-wireless/yatebts/metadata.xml b/net-wireless/yatebts/metadata.xml
new file mode 100644
index 000000000000..06a0a1f4e6a9
--- /dev/null
+++ b/net-wireless/yatebts/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>radio</herd>
+ <use>
+ <flag name="rad1">Build RAD1 transceiver</flag>
+ <flag name="usrp1">Build USRP1 transceiver</flag>
+ <flag name="uhd">Build UHD transceiver</flag>
+ <flag name="bladerf">Build bladeRF transceiver</flag>
+ </use>
+</pkgmetadata>
+
diff --git a/net-wireless/yatebts/yatebts-4.0.0-r1.ebuild b/net-wireless/yatebts/yatebts-4.0.0-r1.ebuild
new file mode 100644
index 000000000000..dca70f1d59c9
--- /dev/null
+++ b/net-wireless/yatebts/yatebts-4.0.0-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils autotools
+
+DESCRIPTION="The Yate GSM base station"
+HOMEPAGE="http://www.yatebts.com/"
+ESVN_REPO_URI="http://voip.null.ro/svn/yatebts/trunk"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="rad1 usrp1 uhd +bladerf cpu_flags_x86_sse3 cpu_flags_x86_sse4_1"
+
+RDEPEND="
+ >=net-voip/yate-5.4.0:=[gsm]
+ bladerf? ( net-wireless/bladerf:= )
+ uhd? ( net-wireless/uhd )
+ virtual/libusb:1"
+DEPEND="virtual/pkgconfig
+ ${RDEPEND}"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit subversion
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64 ~arm ~x86"
+ SRC_URI="http://yate.null.ro/tarballs/${PN}4/yate-bts-${PV}-1.tar.gz"
+ S="${WORKDIR}/yate-bts"
+fi
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-dont-mess-with-cflags.patch
+ epatch "${FILESDIR}"/${PN}-sgsnggsn-inetutils-hostname-fix.diff
+ epatch "${FILESDIR}"/${PN}-bladeRF-transceiver_revert_init_order.patch
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable rad1) \
+ $(use_enable usrp1) \
+ $(use_enable uhd) \
+ $(use_enable bladerf) \
+ $(use_enable cpu_flags_x86_sse3 sse3) \
+ $(use_enable cpu_flags_x86_sse4_1 sse41)
+
+}
diff --git a/net-wireless/yatebts/yatebts-9999.ebuild b/net-wireless/yatebts/yatebts-9999.ebuild
new file mode 100644
index 000000000000..b55fcf0ac308
--- /dev/null
+++ b/net-wireless/yatebts/yatebts-9999.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils autotools
+
+DESCRIPTION="The Yate GSM base station"
+HOMEPAGE="http://www.yatebts.com/"
+ESVN_REPO_URI="http://voip.null.ro/svn/yatebts/trunk"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="rad1 usrp1 uhd +bladerf cpu_flags_x86_sse3 cpu_flags_x86_sse4_1"
+
+RDEPEND="
+ =net-voip/yate-${PV}:=[gsm]
+ bladerf? ( net-wireless/bladerf:= )
+ uhd? ( net-wireless/uhd )
+ virtual/libusb:1"
+DEPEND="virtual/pkgconfig
+ ${RDEPEND}"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit subversion
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64 ~arm ~x86"
+ SRC_URI="http://yate.null.ro/tarballs/${PN}4/yate-bts-${PV}-1.tar.gz"
+ S="${WORKDIR}/yate-bts"
+fi
+
+src_prepare() {
+ #we need more patches or configure flags because things install in really wrong places per FHS
+ epatch "${FILESDIR}"/${PN}-sgsnggsn-inetutils-hostname-fix.diff
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable rad1) \
+ $(use_enable usrp1) \
+ $(use_enable uhd) \
+ $(use_enable bladerf) \
+ $(use_enable cpu_flags_x86_sse3 sse3) \
+ $(use_enable cpu_flags_x86_sse4_1 sse41)
+
+}