tnet-wireless/aircrack-ng: Add musl-libc patch. - parlay - yet another gentoo overlay HTML git clone https://git.parazyd.org/parlay DIR Log DIR Files DIR Refs DIR README --- DIR commit 5e489fe40912ca2395bddb56803afd1aedfec479 DIR parent 7eaaaa0c586aa19e78b0bcb08fe148a4ea16e64a HTML Author: parazyd <parazyd@dyne.org> Date: Wed, 5 Oct 2016 10:27:09 +0200 net-wireless/aircrack-ng: Add musl-libc patch. Diffstat: A net-wireless/aircrack-ng/aircrack-… | 151 +++++++++++++++++++++++++++++++ A net-wireless/aircrack-ng/files/000… | 55 +++++++++++++++++++++++++++++++ 2 files changed, 206 insertions(+), 0 deletions(-) --- DIR diff --git a/net-wireless/aircrack-ng/aircrack-ng-1.2_rc4-r99.ebuild b/net-wireless/aircrack-ng/aircrack-ng-1.2_rc4-r99.ebuild t@@ -0,0 +1,151 @@ +# Copyright 1999-2016 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 libressl" + +DEPEND="net-libs/libpcap + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl: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_configure() { + epatch "${FILESDIR}/0001-fix-musl-build.patch" +} + +src_compile() { + if [[ $($(tc-getCC) --version) == clang* ]] ; then + #https://bugs.gentoo.org/show_bug.cgi?id=472890 + filter-flags -frecord-gcc-switches + fi + + if [[ ${PV} == "9999" ]] ; then + liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}" + fi + + emake \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + 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 +} DIR diff --git a/net-wireless/aircrack-ng/files/0001-fix-musl-build.patch b/net-wireless/aircrack-ng/files/0001-fix-musl-build.patch t@@ -0,0 +1,55 @@ +From b4451ca5bc4bde26f10f12c304c90cfc484e3b3e Mon Sep 17 00:00:00 2001 +From: Romain Naour <romain.naour@openwide.fr> +Date: Wed, 29 Jul 2015 19:38:46 +0200 +Subject: [PATCH] fix musl build + +aircrack-ng doesn't build with a musl toolchain due to +cdefs.h internal glibc header being used in internal +ethernet.h. + +Signed-off-by: Romain Naour <romain.naour@openwide.fr> +--- + src/include/ethernet.h | 24 +++++++++++++----------- + 1 file changed, 13 insertions(+), 11 deletions(-) + +diff --git a/src/include/ethernet.h b/src/include/ethernet.h +index 10abf64..59de6b2 100644 +--- a/src/include/ethernet.h ++++ b/src/include/ethernet.h +@@ -385,20 +385,22 @@ struct mbuf *ether_vlanencap(struct mbuf *, uint16_t); + + #else /* _KERNEL */ + +-#include <sys/cdefs.h> +- + /* + * Ethernet address conversion/parsing routines. + */ +-__BEGIN_DECLS +-struct ether_addr *ether_aton(const char *); +-struct ether_addr *ether_aton_r(const char *, struct ether_addr *); +-int ether_hostton(const char *, struct ether_addr *); +-int ether_line(const char *, struct ether_addr *, char *); +-char *ether_ntoa(const struct ether_addr *); +-char *ether_ntoa_r(const struct ether_addr *, char *); +-int ether_ntohost(char *, const struct ether_addr *); +-__END_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif ++ struct ether_addr *ether_aton(const char *); ++ struct ether_addr *ether_aton_r(const char *, struct ether_addr *); ++ int ether_hostton(const char *, struct ether_addr *); ++ int ether_line(const char *, struct ether_addr *, char *); ++ char *ether_ntoa(const struct ether_addr *); ++ char *ether_ntoa_r(const struct ether_addr *, char *); ++ int ether_ntohost(char *, const struct ether_addr *); ++#ifdef __cplusplus ++} ++#endif + + #endif /* !_KERNEL */ + +-- +2.4.3 +