501ea06728ac49a1f514b5ab357725ac50235228
[feed/packages.git] / net / nmap / Makefile
1 #
2 # Copyright (C) 2006-2017 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6
7 #TODO
8 #
9 # * uClibcpp not supported, performance +100x slower. libstdcpp is being used. https://bugs.busybox.net/show_bug.cgi?id=2545
10 # * liblua is still not recognized/blindly accepted. Impossible to compile with support
11 #
12
13 include $(TOPDIR)/rules.mk
14
15 PKG_NAME:=nmap
16 PKG_VERSION:=7.93
17 PKG_RELEASE:=4
18 PKG_MAINTAINER:=Nuno Gonçalves <nunojpg@gmail.com>
19
20 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
21 PKG_SOURCE_URL:=https://nmap.org/dist/
22 PKG_HASH:=55bcfe4793e25acc96ba4274d8c4228db550b8e8efd72004b38ec55a2dd16651
23 PKG_LICENSE:=NPSL-0.94-or-NPSL-0.95
24 PKG_LICENSE_FILES:=LICENSE
25 PKG_CPE_ID:=cpe:/a:nmap:nmap
26
27 PKG_BUILD_PARALLEL:=1
28 PKG_INSTALL:=1
29 PYTHON3_PKG_BUILD:=0
30 PYTHON3_PKG_FORCE_DISTUTILS_SETUP:=1
31
32 include $(INCLUDE_DIR)/package.mk
33 include ../../lang/python/python3-package.mk
34
35 NMAP_DEPENDS:=+libpcap +libstdcpp +zlib +libpcre
36 NCAT_DEPENDS:=+libpcap
37 NPING_DEPENDS:=+libpcap +libpthread +libstdcpp
38 SSL_DEPENDS:=+libopenssl +ca-certs
39
40 define Package/nmap/default
41 SUBMENU:=NMAP Suite
42 SECTION:=net
43 CATEGORY:=Network
44 URL:=https://nmap.org/
45 endef
46
47 define Package/nmap
48 $(call Package/nmap/default)
49 DEPENDS:=$(NMAP_DEPENDS)
50 VARIANT:=nossl
51 TITLE:=Utility for network exploration or security auditing
52 endef
53
54 define Package/nmap-ssl
55 $(call Package/nmap/default)
56 DEPENDS:=$(NMAP_DEPENDS) $(SSL_DEPENDS)
57 VARIANT:=ssl
58 TITLE:=Nmap (with OpenSSL support)
59 endef
60
61 define Package/nmap-full
62 $(call Package/nmap/default)
63 DEPENDS:=$(NMAP_DEPENDS) $(SSL_DEPENDS) +liblua5.3 +libssh2
64 VARIANT:=full
65 TITLE:=Nmap (with OpenSSL and scripting support)
66 endef
67
68 define Package/ncat
69 $(call Package/nmap/default)
70 DEPENDS:=$(NCAT_DEPENDS)
71 VARIANT:=nossl
72 TITLE:=Much-improved reimplementation of Netcat
73 endef
74
75 define Package/ncat-ssl
76 $(call Package/nmap/default)
77 DEPENDS:=$(NCAT_DEPENDS) $(SSL_DEPENDS)
78 VARIANT:=ssl
79 TITLE:=Ncat (with OpenSSL support)
80 endef
81
82 define Package/ncat-full
83 $(call Package/nmap/default)
84 DEPENDS:=$(NCAT_DEPENDS) $(SSL_DEPENDS) +liblua5.3
85 VARIANT:=full
86 TITLE:=Ncat (with OpenSSL and scripting support)
87 endef
88
89 define Package/nping
90 $(call Package/nmap/default)
91 DEPENDS:=$(NPING_DEPENDS)
92 VARIANT:=nossl
93 TITLE:=Network packet generation tool / ping utility
94 endef
95
96 define Package/nping-ssl
97 $(call Package/nmap/default)
98 DEPENDS:=$(NPING_DEPENDS) $(SSL_DEPENDS)
99 VARIANT:=ssl
100 TITLE:=Nping (with OpenSSL support)
101 endef
102
103 define Package/ndiff
104 $(call Package/nmap/default)
105 DEPENDS:=+python3-light +python3-xml
106 TITLE:=Utility to compare the results of Nmap scans
107 endef
108
109 CONFIGURE_ARGS += \
110 --with-libdnet=included \
111 --with-liblinear=included \
112 --with-libpcap="$(STAGING_DIR)/usr" \
113 --with-libpcre="$(STAGING_DIR)/usr" \
114 --with-libz="$(STAGING_DIR)/usr" \
115 --with-ncat \
116 --without-localdirs \
117 --without-ndiff \
118 --without-zenmap
119 # --with-libnbase=included
120 # --with-libnsock=included
121
122 ifeq ($(BUILD_VARIANT),full)
123 CONFIGURE_ARGS += \
124 --with-liblua="$(STAGING_DIR)/usr" \
125 --with-libssh2="$(STAGING_DIR)/usr" \
126 --with-openssl="$(STAGING_DIR)/usr" \
127 --without-nping
128
129 else ifeq ($(BUILD_VARIANT),ssl)
130 CONFIGURE_ARGS += \
131 --with-nping \
132 --with-openssl="$(STAGING_DIR)/usr" \
133 --without-liblua \
134 --without-libssh2
135
136 else # nossl
137 CONFIGURE_ARGS += \
138 --with-nping \
139 --without-liblua \
140 --without-libssh2 \
141 --without-openssl
142 endif
143
144 CONFIGURE_VARS += \
145 ac_cv_dnet_bsd_bpf=no
146
147 PYTHON3_PKG_SETUP_DIR:=ndiff
148 PYTHON3_PKG_SETUP_ARGS:=
149
150 define Build/Compile
151 $(call Build/Compile/Default,)
152 $(call Py3Build/Compile)
153 endef
154
155 define Build/Install
156 $(call Build/Install/Default,)
157 $(call Py3Build/Install)
158 endef
159
160 define Package/nmap/install
161 $(INSTALL_DIR) $(1)/usr/bin
162 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nmap $(1)/usr/bin/
163 $(INSTALL_DIR) $(1)/usr/share/nmap
164 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/nmap/nmap* $(1)/usr/share/nmap/
165 endef
166
167 Package/nmap-ssl/install=$(Package/nmap/install)
168
169 define Package/nmap-full/install
170 $(call Package/nmap/install,$(1))
171 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/nmap/nse_main.lua $(1)/usr/share/nmap/
172 $(CP) $(PKG_INSTALL_DIR)/usr/share/nmap/{nselib,scripts} $(1)/usr/share/nmap/
173 endef
174
175 define Package/ncat/install
176 $(INSTALL_DIR) $(1)/usr/bin
177 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ncat $(1)/usr/bin/
178 endef
179
180 define Package/ncat-ssl/install
181 $(call Package/ncat/install,$(1))
182 $(INSTALL_DIR) $(1)/usr/share/ncat
183 endef
184
185 Package/ncat-full/install=$(Package/ncat-ssl/install)
186
187 define Package/nping/install
188 $(INSTALL_DIR) $(1)/usr/bin
189 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nping $(1)/usr/bin/
190 endef
191
192 Package/nping-ssl/install=$(Package/nping/install)
193
194 define Py3Package/ndiff/install
195 $(INSTALL_DIR) $(1)/usr/bin
196 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ndiff $(1)/usr/bin/
197 endef
198
199 $(eval $(call BuildPackage,nmap))
200 $(eval $(call BuildPackage,nmap-ssl))
201 $(eval $(call BuildPackage,nmap-full))
202 $(eval $(call BuildPackage,ncat))
203 $(eval $(call BuildPackage,ncat-ssl))
204 $(eval $(call BuildPackage,ncat-full))
205 $(eval $(call BuildPackage,nping))
206 $(eval $(call BuildPackage,nping-ssl))
207
208 $(eval $(call Py3Package,ndiff))
209 $(eval $(call BuildPackage,ndiff))
210 $(eval $(call BuildPackage,ndiff-src))