aircrack-ng-1.2.ebuild (3103B)
1 # Copyright 1999-2018 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI="6"
5
6 PYTHON_COMPAT=( python2_7 )
7 DISTUTILS_OPTIONAL=1
8
9 inherit toolchain-funcs distutils-r1 flag-o-matic autotools
10
11 DESCRIPTION="WLAN tools for breaking 802.11 WEP/WPA keys"
12 HOMEPAGE="http://www.aircrack-ng.org"
13
14 MY_PV=${PV/_/-}
15 SRC_URI="http://download.${PN}.org/${PN}-${MY_PV}.tar.gz"
16 KEYWORDS="~amd64 ~arm ~ppc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
17
18 LICENSE="GPL-2"
19 SLOT="0"
20
21 IUSE="+airdrop-ng +airgraph-ng kernel_linux kernel_FreeBSD libressl +netlink +pcre +sqlite +experimental"
22
23 DEPEND="net-libs/libpcap
24 !libressl? ( dev-libs/openssl:0= )
25 libressl? ( dev-libs/libressl:0= )
26 netlink? ( dev-libs/libnl:3 )
27 pcre? ( dev-libs/libpcre )
28 airdrop-ng? ( ${PYTHON_DEPS} )
29 airgraph-ng? ( ${PYTHON_DEPS} )
30 experimental? ( sys-libs/zlib )
31 sqlite? ( >=dev-db/sqlite-3.4 )"
32 RDEPEND="${DEPEND}"
33 PDEPEND="kernel_linux? (
34 net-wireless/iw
35 net-wireless/wireless-tools
36 sys-apps/ethtool
37 sys-apps/usbutils
38 sys-apps/pciutils )
39 sys-apps/hwids
40 airdrop-ng? ( net-wireless/lorcon[python,${PYTHON_USEDEP}] )"
41
42 REQUIRED_USE="airdrop-ng? ( ${PYTHON_REQUIRED_USE} )
43 airgraph-ng? ( ${PYTHON_REQUIRED_USE} )"
44
45 S="${WORKDIR}/${PN}-${MY_PV}"
46
47 pkg_setup() {
48 MAKE_COMMON=(
49 CC="$(tc-getCC)" \
50 CXX="$(tc-getCXX)" \
51 AR="$(tc-getAR)" \
52 LD="$(tc-getLD)" \
53 RANLIB="$(tc-getRANLIB)" \
54 DESTDIR="${ED}"
55 )
56 }
57
58 src_prepare() {
59 epatch "${FILESDIR}"/aircrack-ng-1.2-no-force-stack-protector.patch
60 eapply_user
61 eautoreconf
62 }
63
64 src_configure() {
65 econf \
66 --disable-asan \
67 $(use_enable netlink libnl) \
68 $(use_with experimental) \
69 $(use_with sqlite sqlite3) \
70 --enable-shared \
71 --disable-static \
72 --without-opt
73 }
74
75 src_compile() {
76 if [[ $($(tc-getCC) --version) == clang* ]] ; then
77 #https://bugs.gentoo.org/show_bug.cgi?id=472890
78 filter-flags -frecord-gcc-switches
79 fi
80
81 emake "${MAKE_COMMON[@]}"
82
83 if use airgraph-ng; then
84 cd "${S}/scripts/airgraph-ng"
85 distutils-r1_src_compile
86 fi
87 if use airdrop-ng; then
88 cd "${S}/scripts/airdrop-ng"
89 distutils-r1_src_compile
90 fi
91 }
92
93 src_test() {
94 emake "${MAKE_COMMON[@]}" check
95 }
96
97 src_install() {
98 einstalldocs
99 emake "${MAKE_COMMON[@]}" install
100
101 if use airgraph-ng; then
102 cd "${S}/scripts/airgraph-ng"
103 distutils-r1_src_install
104 fi
105 if use airdrop-ng; then
106 cd "${S}/scripts/airdrop-ng"
107 distutils-r1_src_install
108 fi
109
110 #we don't need aircrack-ng's oui updater, we have our own
111 rm "${ED}"/usr/sbin/airodump-ng-oui-update
112 }
113
114 pkg_postinst() {
115 # Message is (c) FreeBSD
116 # http://www.freebsd.org/cgi/cvsweb.cgi/ports/net-mgmt/aircrack-ng/files/pkg-message.in?rev=1.5
117 if use kernel_FreeBSD ; then
118 einfo "Contrary to Linux, it is not necessary to use airmon-ng to enable the monitor"
119 einfo "mode of your wireless card. So do not care about what the manpages say about"
120 einfo "airmon-ng, airodump-ng sets monitor mode automatically."
121 echo
122 einfo "To return from monitor mode, issue the following command:"
123 einfo " ifconfig \${INTERFACE} -mediaopt monitor"
124 einfo
125 einfo "For aireplay-ng you need FreeBSD >= 7.0."
126 fi
127 }