d27e0b4093a64948229f30fc5538507a27bb0c97
[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.94
17 PKG_RELEASE:=1
18 PKG_MAINTAINER:=Nuno Gonçalves <nunojpg@gmail.com>
19
20 # Restore PKG_VERSION and revert to using release as soon as NMAP publish a new
21 # version that supports PCRE2.
22 # PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
23 # PKG_SOURCE_URL:=https://nmap.org/dist/
24 # PKG_HASH:=d71be189eec43d7e099bac8571509d316c4577ca79491832ac3e1217bc8f92cc
25
26 PKG_SOURCE_PROTO:=git
27 PKG_SOURCE_URL=https://github.com/nmap/nmap
28 PKG_SOURCE_DATE:=2023-08-28
29 PKG_SOURCE_VERSION:=7dcea0187a9b8bccd552487de91512c97c791e3d
30 PKG_MIRROR_HASH:=3a086013df4759f394c93a23254689fddd2dcbb06574d4898ea276bdabdf5bff
31
32 PKG_LICENSE:=NPSL-0.94-or-NPSL-0.95
33 PKG_LICENSE_FILES:=LICENSE
34 PKG_CPE_ID:=cpe:/a:nmap:nmap
35
36 PKG_BUILD_PARALLEL:=1
37 PKG_INSTALL:=1
38 PYTHON3_PKG_BUILD:=0
39 PYTHON3_PKG_FORCE_DISTUTILS_SETUP:=1
40
41 include $(INCLUDE_DIR)/package.mk
42 include ../../lang/python/python3-package.mk
43
44 NMAP_DEPENDS:=+libpcap +libstdcpp +zlib +libpcre2
45 NCAT_DEPENDS:=+libpcap
46 NPING_DEPENDS:=+libpcap +libpthread +libstdcpp
47 SSL_DEPENDS:=+libopenssl +ca-certs
48
49 define Package/nmap/default
50 SUBMENU:=NMAP Suite
51 SECTION:=net
52 CATEGORY:=Network
53 URL:=https://nmap.org/
54 endef
55
56 define Package/nmap
57 $(call Package/nmap/default)
58 DEPENDS:=$(NMAP_DEPENDS)
59 VARIANT:=nossl
60 TITLE:=Utility for network exploration or security auditing
61 endef
62
63 define Package/nmap-ssl
64 $(call Package/nmap/default)
65 DEPENDS:=$(NMAP_DEPENDS) $(SSL_DEPENDS)
66 VARIANT:=ssl
67 TITLE:=Nmap (with OpenSSL support)
68 endef
69
70 define Package/nmap-full
71 $(call Package/nmap/default)
72 DEPENDS:=$(NMAP_DEPENDS) $(SSL_DEPENDS) +liblua5.4 +libssh2
73 VARIANT:=full
74 TITLE:=Nmap (with OpenSSL and scripting support)
75 endef
76
77 define Package/ncat
78 $(call Package/nmap/default)
79 DEPENDS:=$(NCAT_DEPENDS)
80 VARIANT:=nossl
81 TITLE:=Much-improved reimplementation of Netcat
82 endef
83
84 define Package/ncat-ssl
85 $(call Package/nmap/default)
86 DEPENDS:=$(NCAT_DEPENDS) $(SSL_DEPENDS)
87 VARIANT:=ssl
88 TITLE:=Ncat (with OpenSSL support)
89 endef
90
91 define Package/ncat-full
92 $(call Package/nmap/default)
93 DEPENDS:=$(NCAT_DEPENDS) $(SSL_DEPENDS) +liblua5.4
94 VARIANT:=full
95 TITLE:=Ncat (with OpenSSL and scripting support)
96 endef
97
98 define Package/nping
99 $(call Package/nmap/default)
100 DEPENDS:=$(NPING_DEPENDS)
101 VARIANT:=nossl
102 TITLE:=Network packet generation tool / ping utility
103 endef
104
105 define Package/nping-ssl
106 $(call Package/nmap/default)
107 DEPENDS:=$(NPING_DEPENDS) $(SSL_DEPENDS)
108 VARIANT:=ssl
109 TITLE:=Nping (with OpenSSL support)
110 endef
111
112 define Package/ndiff
113 $(call Package/nmap/default)
114 DEPENDS:=+python3-light +python3-xml
115 TITLE:=Utility to compare the results of Nmap scans
116 endef
117
118 CONFIGURE_ARGS += \
119 --with-libdnet=included \
120 --with-liblinear=included \
121 --with-libpcap="$(STAGING_DIR)/usr" \
122 --with-libpcre="$(STAGING_DIR)/usr" \
123 --with-libz="$(STAGING_DIR)/usr" \
124 --with-ncat \
125 --without-localdirs \
126 --without-ndiff \
127 --without-zenmap
128 # --with-libnbase=included
129 # --with-libnsock=included
130
131 ifeq ($(BUILD_VARIANT),full)
132 CONFIGURE_ARGS += \
133 --with-liblua="$(STAGING_DIR)/usr" \
134 --with-libssh2="$(STAGING_DIR)/usr" \
135 --with-openssl="$(STAGING_DIR)/usr" \
136 --without-nping
137
138 else ifeq ($(BUILD_VARIANT),ssl)
139 CONFIGURE_ARGS += \
140 --with-nping \
141 --with-openssl="$(STAGING_DIR)/usr" \
142 --without-liblua \
143 --without-libssh2
144
145 else # nossl
146 CONFIGURE_ARGS += \
147 --with-nping \
148 --without-liblua \
149 --without-libssh2 \
150 --without-openssl
151 endif
152
153 CONFIGURE_VARS += \
154 ac_cv_dnet_bsd_bpf=no
155
156 PYTHON3_PKG_SETUP_DIR:=ndiff
157 PYTHON3_PKG_SETUP_ARGS:=
158
159 define Build/Compile
160 $(call Build/Compile/Default,)
161 $(call Py3Build/Compile)
162 endef
163
164 define Build/Install
165 $(call Build/Install/Default,)
166 $(call Py3Build/Install)
167 endef
168
169 define Package/nmap/install
170 $(INSTALL_DIR) $(1)/usr/bin
171 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nmap $(1)/usr/bin/
172 $(INSTALL_DIR) $(1)/usr/share/nmap
173 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/nmap/nmap* $(1)/usr/share/nmap/
174 endef
175
176 Package/nmap-ssl/install=$(Package/nmap/install)
177
178 define Package/nmap-full/install
179 $(call Package/nmap/install,$(1))
180 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/nmap/nse_main.lua $(1)/usr/share/nmap/
181 $(CP) $(PKG_INSTALL_DIR)/usr/share/nmap/{nselib,scripts} $(1)/usr/share/nmap/
182 endef
183
184 define Package/ncat/install
185 $(INSTALL_DIR) $(1)/usr/bin
186 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ncat $(1)/usr/bin/
187 endef
188
189 define Package/ncat-ssl/install
190 $(call Package/ncat/install,$(1))
191 $(INSTALL_DIR) $(1)/usr/share/ncat
192 endef
193
194 Package/ncat-full/install=$(Package/ncat-ssl/install)
195
196 define Package/nping/install
197 $(INSTALL_DIR) $(1)/usr/bin
198 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nping $(1)/usr/bin/
199 endef
200
201 Package/nping-ssl/install=$(Package/nping/install)
202
203 define Py3Package/ndiff/install
204 $(INSTALL_DIR) $(1)/usr/bin
205 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ndiff $(1)/usr/bin/
206 endef
207
208 $(eval $(call BuildPackage,nmap))
209 $(eval $(call BuildPackage,nmap-ssl))
210 $(eval $(call BuildPackage,nmap-full))
211 $(eval $(call BuildPackage,ncat))
212 $(eval $(call BuildPackage,ncat-ssl))
213 $(eval $(call BuildPackage,ncat-full))
214 $(eval $(call BuildPackage,nping))
215 $(eval $(call BuildPackage,nping-ssl))
216
217 $(eval $(call Py3Package,ndiff))
218 $(eval $(call BuildPackage,ndiff))
219 $(eval $(call BuildPackage,ndiff-src))