Compare commits

...

No commits in common. "c8s" and "c9s" have entirely different histories.
c8s ... c9s

18 changed files with 303 additions and 573 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

6
.gitignore vendored
View File

@ -1 +1,5 @@
SOURCES/nmap-7.70.tar.bz2
/nmap-*.tar.bz2
/nmap-7.91.tar.bz2.asc
/nmap_gpgkeys.txt
/nmap-7.80.tar.bz2.asc
/nmap-7.92.tar.bz2.asc

View File

@ -1 +1,2 @@
71057361a0953bba5967dc0385de77f3eed792de SOURCES/nmap-7.70.tar.bz2
62342a9a6641833c5c16b7a24ced4bace68c60fb nmap-7.92.tar.bz2
de1eb387fb5f659cd1edc7ffef162db30f9730bc nmap-7.92.tar.bz2.asc

View File

@ -1,13 +0,0 @@
diff --git a/ncat/ncat_connect.c b/ncat/ncat_connect.c
index 0968601..447aeb1 100644
--- a/ncat/ncat_connect.c
+++ b/ncat/ncat_connect.c
@@ -353,7 +353,7 @@ static const char *sock_to_url(char *host_str, unsigned short port)
Snprintf(buf, sizeof(buf), "%s:%hu", host_str, port);
break;
case 2:
- Snprintf(buf, sizeof(buf), "[%s]:%hu]", host_str, port);
+ Snprintf(buf, sizeof(buf), "[%s]:%hu", host_str, port);
}
return buf;

View File

@ -1,369 +0,0 @@
diff --git a/ncat/ncat_core.c b/ncat/ncat_core.c
index 649e478..21eca9e 100644
--- a/ncat/ncat_core.c
+++ b/ncat/ncat_core.c
@@ -458,7 +458,7 @@ int ncat_broadcast(fd_set *fds, const fd_list_t *fdlist, const char *msg, size_t
ret = 0;
for (i = 0; i <= fdlist->fdmax; i++) {
- if (!FD_ISSET(i, fds))
+ if (!checked_fd_isset(i, fds))
continue;
fdn = get_fdinfo(fdlist, i);
diff --git a/ncat/ncat_listen.c b/ncat/ncat_listen.c
index 5c4bb33..bb779cf 100644
--- a/ncat/ncat_listen.c
+++ b/ncat/ncat_listen.c
@@ -312,10 +312,10 @@ static int ncat_listen_stream(int proto)
unblock_socket(listen_socket[num_sockets]);
/* setup select sets and max fd */
- FD_SET(listen_socket[num_sockets], &master_readfds);
+ checked_fd_set(listen_socket[num_sockets], &master_readfds);
add_fd(&client_fdlist, listen_socket[num_sockets]);
- FD_SET(listen_socket[num_sockets], &listen_fds);
+ checked_fd_set(listen_socket[num_sockets], &listen_fds);
num_sockets++;
}
@@ -368,7 +368,7 @@ static int ncat_listen_stream(int proto)
*/
for (i = 0; i <= client_fdlist.fdmax && fds_ready > 0; i++) {
/* Loop through descriptors until there's something to read */
- if (!FD_ISSET(i, &readfds) && !FD_ISSET(i, &writefds))
+ if (!checked_fd_isset(i, &readfds) && !checked_fd_isset(i, &writefds))
continue;
if (o.debug > 1)
@@ -376,30 +376,30 @@ static int ncat_listen_stream(int proto)
#ifdef HAVE_OPENSSL
/* Is this an ssl socket pending a handshake? If so handle it. */
- if (o.ssl && FD_ISSET(i, &sslpending_fds)) {
+ if (o.ssl && checked_fd_isset(i, &sslpending_fds)) {
struct fdinfo *fdi = NULL;
- FD_CLR(i, &master_readfds);
- FD_CLR(i, &master_writefds);
+ checked_fd_clr(i, &master_readfds);
+ checked_fd_clr(i, &master_writefds);
fdi = get_fdinfo(&client_fdlist, i);
ncat_assert(fdi != NULL);
switch (ssl_handshake(fdi)) {
case NCAT_SSL_HANDSHAKE_COMPLETED:
/* Clear from sslpending_fds once ssl is established */
- FD_CLR(i, &sslpending_fds);
+ checked_fd_clr(i, &sslpending_fds);
post_handle_connection(*fdi);
break;
case NCAT_SSL_HANDSHAKE_PENDING_WRITE:
- FD_SET(i, &master_writefds);
+ checked_fd_set(i, &master_writefds);
break;
case NCAT_SSL_HANDSHAKE_PENDING_READ:
- FD_SET(i, &master_readfds);
+ checked_fd_set(i, &master_readfds);
break;
case NCAT_SSL_HANDSHAKE_FAILED:
default:
SSL_free(fdi->ssl);
Close(fdi->fd);
- FD_CLR(i, &sslpending_fds);
- FD_CLR(i, &master_readfds);
+ checked_fd_clr(i, &sslpending_fds);
+ checked_fd_clr(i, &master_readfds);
rm_fd(&client_fdlist, i);
/* Are we in single listening mode(without -k)? If so
then we should quit also. */
@@ -410,7 +410,7 @@ static int ncat_listen_stream(int proto)
}
} else
#endif
- if (FD_ISSET(i, &listen_fds)) {
+ if (checked_fd_isset(i, &listen_fds)) {
/* we have a new connection request */
handle_connection(i);
} else if (i == STDIN_FILENO) {
@@ -490,7 +490,7 @@ static void handle_connection(int socket_accept)
int i;
for (i = 0; i < num_listenaddrs; i++) {
Close(listen_socket[i]);
- FD_CLR(listen_socket[i], &master_readfds);
+ checked_fd_clr(listen_socket[i], &master_readfds);
rm_fd(&client_fdlist, listen_socket[i]);
}
}
@@ -528,9 +528,9 @@ static void handle_connection(int socket_accept)
#ifdef HAVE_OPENSSL
if (o.ssl) {
/* Add the socket to the necessary descriptor lists. */
- FD_SET(s.fd, &sslpending_fds);
- FD_SET(s.fd, &master_readfds);
- FD_SET(s.fd, &master_writefds);
+ checked_fd_set(s.fd, &sslpending_fds);
+ checked_fd_set(s.fd, &master_readfds);
+ checked_fd_set(s.fd, &master_writefds);
/* Add it to our list of fds too for maintaining maxfd. */
if (add_fdinfo(&client_fdlist, &s) < 0)
bye("add_fdinfo() failed.");
@@ -563,10 +563,10 @@ static void post_handle_connection(struct fdinfo sinfo)
} else {
/* Now that a client is connected, pay attention to stdin. */
if (!stdin_eof)
- FD_SET(STDIN_FILENO, &master_readfds);
+ checked_fd_set(STDIN_FILENO, &master_readfds);
if (!o.sendonly) {
/* add to our lists */
- FD_SET(sinfo.fd, &master_readfds);
+ checked_fd_set(sinfo.fd, &master_readfds);
/* add it to our list of fds for maintaining maxfd */
#ifdef HAVE_OPENSSL
/* Don't add it twice (see handle_connection above) */
@@ -578,7 +578,7 @@ static void post_handle_connection(struct fdinfo sinfo)
}
#endif
}
- FD_SET(sinfo.fd, &master_broadcastfds);
+ checked_fd_set(sinfo.fd, &master_broadcastfds);
if (add_fdinfo(&broadcast_fdlist, &sinfo) < 0)
bye("add_fdinfo() failed.");
@@ -603,7 +603,7 @@ int read_stdin(void)
logdebug("EOF on stdin\n");
/* Don't close the file because that allows a socket to be fd 0. */
- FD_CLR(STDIN_FILENO, &master_readfds);
+ checked_fd_clr(STDIN_FILENO, &master_readfds);
/* Buf mark that we've seen EOF so it doesn't get re-added to the
select list. */
stdin_eof = 1;
@@ -656,14 +656,14 @@ int read_socket(int recv_fd)
}
#endif
close(recv_fd);
- FD_CLR(recv_fd, &master_readfds);
+ checked_fd_clr(recv_fd, &master_readfds);
rm_fd(&client_fdlist, recv_fd);
- FD_CLR(recv_fd, &master_broadcastfds);
+ checked_fd_clr(recv_fd, &master_broadcastfds);
rm_fd(&broadcast_fdlist, recv_fd);
conn_inc--;
if (get_conn_count() == 0)
- FD_CLR(STDIN_FILENO, &master_readfds);
+ checked_fd_clr(STDIN_FILENO, &master_readfds);
return n;
}
@@ -753,7 +753,7 @@ static int ncat_listen_dgram(int proto)
logdebug("do_listen(\"%s\"): %s\n", inet_ntop_ez(&listenaddrs[i].storage, sizeof(listenaddrs[i].storage)), socket_strerror(socket_errno()));
continue;
}
- FD_SET(sockfd[num_sockets].fd, &listen_fds);
+ checked_fd_set(sockfd[num_sockets].fd, &listen_fds);
add_fd(&listen_fdlist, sockfd[num_sockets].fd);
sockfd[num_sockets].addr = listenaddrs[i];
num_sockets++;
@@ -773,14 +773,14 @@ static int ncat_listen_dgram(int proto)
if (fdn != -1) {
/*remove socket descriptor which is burnt */
- FD_CLR(sockfd[fdn].fd, &listen_fds);
+ checked_fd_clr(sockfd[fdn].fd, &listen_fds);
rm_fd(&listen_fdlist, sockfd[fdn].fd);
/* Rebuild the udp socket which got burnt */
sockfd[fdn].fd = do_listen(SOCK_DGRAM, proto, &sockfd[fdn].addr);
if (sockfd[fdn].fd == -1)
bye("do_listen: %s", socket_strerror(socket_errno()));
- FD_SET(sockfd[fdn].fd, &listen_fds);
+ checked_fd_set(sockfd[fdn].fd, &listen_fds);
add_fd(&listen_fdlist, sockfd[fdn].fd);
}
@@ -818,7 +818,7 @@ static int ncat_listen_dgram(int proto)
*/
for (i = 0; i <= listen_fdlist.fdmax && fds_ready > 0; i++) {
/* Loop through descriptors until there is something ready */
- if (!FD_ISSET(i, &fds))
+ if (!checked_fd_isset(i, &fds))
continue;
/* Check each listening socket */
@@ -905,8 +905,8 @@ static int ncat_listen_dgram(int proto)
continue;
}
- FD_SET(socket_n, &read_fds);
- FD_SET(STDIN_FILENO, &read_fds);
+ checked_fd_set(socket_n, &read_fds);
+ checked_fd_set(STDIN_FILENO, &read_fds);
fdmax = socket_n;
/* stdin -> socket and socket -> stdout */
@@ -926,7 +926,7 @@ static int ncat_listen_dgram(int proto)
if (fds_ready == 0)
bye("Idle timeout expired (%d ms).", o.idletimeout);
- if (FD_ISSET(STDIN_FILENO, &fds)) {
+ if (checked_fd_isset(STDIN_FILENO, &fds)) {
nbytes = Read(STDIN_FILENO, buf, sizeof(buf));
if (nbytes <= 0) {
if (nbytes < 0 && o.verbose) {
@@ -934,7 +934,7 @@ static int ncat_listen_dgram(int proto)
} else if (nbytes == 0 && o.debug) {
logdebug("EOF on stdin\n");
}
- FD_CLR(STDIN_FILENO, &read_fds);
+ checked_fd_clr(STDIN_FILENO, &read_fds);
if (nbytes < 0)
return 1;
continue;
@@ -958,7 +958,7 @@ static int ncat_listen_dgram(int proto)
tempbuf = NULL;
}
}
- if (FD_ISSET(socket_n, &fds)) {
+ if (checked_fd_isset(socket_n, &fds)) {
nbytes = recv(socket_n, buf, sizeof(buf), 0);
if (nbytes < 0) {
loguser("%s.\n", socket_strerror(socket_errno()));
@@ -1034,7 +1034,7 @@ static void read_and_broadcast(int recv_fd)
/* Don't close the file because that allows a socket to be
fd 0. */
- FD_CLR(recv_fd, &master_readfds);
+ checked_fd_clr(recv_fd, &master_readfds);
/* But mark that we've seen EOF so it doesn't get re-added to
the select list. */
stdin_eof = 1;
@@ -1061,14 +1061,14 @@ static void read_and_broadcast(int recv_fd)
}
#endif
close(recv_fd);
- FD_CLR(recv_fd, &master_readfds);
+ checked_fd_clr(recv_fd, &master_readfds);
rm_fd(&client_fdlist, recv_fd);
- FD_CLR(recv_fd, &master_broadcastfds);
+ checked_fd_clr(recv_fd, &master_broadcastfds);
rm_fd(&broadcast_fdlist, recv_fd);
conn_inc--;
if (conn_inc == 0)
- FD_CLR(STDIN_FILENO, &master_readfds);
+ checked_fd_clr(STDIN_FILENO, &master_readfds);
if (o.chat)
chat_announce_disconnect(recv_fd);
@@ -1099,7 +1099,7 @@ static void read_and_broadcast(int recv_fd)
/* Send to everyone except the one who sent this message. */
broadcastfds = master_broadcastfds;
- FD_CLR(recv_fd, &broadcastfds);
+ checked_fd_clr(recv_fd, &broadcastfds);
ncat_broadcast(&broadcastfds, &broadcast_fdlist, outbuf, n);
free(chatbuf);
@@ -1114,7 +1114,7 @@ static void shutdown_sockets(int how)
int i;
for (i = 0; i <= broadcast_fdlist.fdmax; i++) {
- if (!FD_ISSET(i, &master_broadcastfds))
+ if (!checked_fd_isset(i, &master_broadcastfds))
continue;
fdn = get_fdinfo(&broadcast_fdlist, i);
@@ -1139,7 +1139,7 @@ static int chat_announce_connect(int fd, const union sockaddr_u *su)
union sockaddr_u su;
socklen_t len = sizeof(su.storage);
- if (i == fd || !FD_ISSET(i, &master_broadcastfds))
+ if (i == fd || !checked_fd_isset(i, &master_broadcastfds))
continue;
if (getpeername(i, &su.sockaddr, &len) == -1)
diff --git a/ncat/ncat_posix.c b/ncat/ncat_posix.c
index 3b01936..59e801e 100644
--- a/ncat/ncat_posix.c
+++ b/ncat/ncat_posix.c
@@ -273,8 +273,8 @@ void netexec(struct fdinfo *info, char *cmdexec)
int r, n_r;
FD_ZERO(&fds);
- FD_SET(info->fd, &fds);
- FD_SET(child_stdout[0], &fds);
+ checked_fd_set(info->fd, &fds);
+ checked_fd_set(child_stdout[0], &fds);
r = fselect(maxfd + 1, &fds, NULL, NULL, NULL);
if (r == -1) {
@@ -283,7 +283,7 @@ void netexec(struct fdinfo *info, char *cmdexec)
else
break;
}
- if (FD_ISSET(info->fd, &fds)) {
+ if (checked_fd_isset(info->fd, &fds)) {
int pending;
do {
@@ -293,7 +293,7 @@ void netexec(struct fdinfo *info, char *cmdexec)
write_loop(child_stdin[1], buf, n_r);
} while (pending);
}
- if (FD_ISSET(child_stdout[0], &fds)) {
+ if (checked_fd_isset(child_stdout[0], &fds)) {
char *crlf = NULL, *wbuf;
n_r = read(child_stdout[0], buf, sizeof(buf));
if (n_r <= 0)
diff --git a/ncat/ncat_proxy.c b/ncat/ncat_proxy.c
index d7227fc..e060e3e 100644
--- a/ncat/ncat_proxy.c
+++ b/ncat/ncat_proxy.c
@@ -234,7 +234,7 @@ int ncat_http_server(void)
unblock_socket(listen_socket[num_sockets]);
/* setup select sets and max fd */
- FD_SET(listen_socket[num_sockets], &listen_fds);
+ checked_fd_set(listen_socket[num_sockets], &listen_fds);
add_fd(&listen_fdlist, listen_socket[num_sockets]);
num_sockets++;
@@ -267,7 +267,7 @@ int ncat_http_server(void)
for (i = 0; i <= listen_fdlist.fdmax && fds_ready > 0; i++) {
/* Loop through descriptors until there is something ready */
- if (!FD_ISSET(i, &read_fds))
+ if (!checked_fd_isset(i, &read_fds))
continue;
/* Check each listening socket */
@@ -525,8 +525,8 @@ static int handle_connect(struct socket_buffer *client_sock,
maxfd = client_sock->fdn.fd < s ? s : client_sock->fdn.fd;
FD_ZERO(&m);
- FD_SET(client_sock->fdn.fd, &m);
- FD_SET(s, &m);
+ checked_fd_set(client_sock->fdn.fd, &m);
+ checked_fd_set(s, &m);
errno = 0;
@@ -540,7 +540,7 @@ static int handle_connect(struct socket_buffer *client_sock,
zmem(buf, sizeof(buf));
- if (FD_ISSET(client_sock->fdn.fd, &r)) {
+ if (checked_fd_isset(client_sock->fdn.fd, &r)) {
do {
do {
len = fdinfo_recv(&client_sock->fdn, buf, sizeof(buf));
@@ -556,7 +556,7 @@ static int handle_connect(struct socket_buffer *client_sock,
} while (fdinfo_pending(&client_sock->fdn));
}
- if (FD_ISSET(s, &r)) {
+ if (checked_fd_isset(s, &r)) {
do {
len = recv(s, buf, sizeof(buf), 0);
} while (len == -1 && socket_errno() == EINTR);

1
ci.fmf Normal file
View File

@ -0,0 +1 @@
resultsdb-testcase: separate

9
gating.yaml Normal file
View File

@ -0,0 +1,9 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tedude.validation}

31
ncat-proxy.patch Normal file
View File

@ -0,0 +1,31 @@
commit 169d7e5a922ef8e63b51ee2bdf4fd4ad60ed2689
Author: dmiller <dmiller@e0a8ed71-7df4-0310-8962-fdc924857419>
Date: Thu Nov 19 17:34:24 2020 +0000
Restore call to post_connect in non-ssl case. Fixes #2149
diff --git a/ncat/ncat_connect.c b/ncat/ncat_connect.c
index 606eac412..f59dd4372 100644
--- a/ncat/ncat_connect.c
+++ b/ncat/ncat_connect.c
@@ -1064,12 +1064,17 @@ int ncat_connect(void)
bye("Failed to set hostname on iod.");
if (o.ssl)
{
+ /* connect_handler creates stdin_nsi and calls post_connect */
nsock_reconnect_ssl(mypool, cs.sock_nsi, connect_handler, o.conntimeout, NULL, NULL);
}
+ else
+ {
+ /* Create IOD for nsp->stdin */
+ if ((cs.stdin_nsi = nsock_iod_new2(mypool, 0, NULL)) == NULL)
+ bye("Failed to create stdin nsiod.");
- /* Create IOD for nsp->stdin */
- if ((cs.stdin_nsi = nsock_iod_new2(mypool, 0, NULL)) == NULL)
- bye("Failed to create stdin nsiod.");
+ post_connect(mypool, cs.sock_nsi);
+ }
}
/* connect */

View File

@ -2,29 +2,22 @@
#supports sctp (grep sctp /usr/include/dnet.h)
%global _hardened_build 1
%if 0%{?fedora} && 0%{?fedora} <= 28
%global with_frontend 1
%else
%global with_frontend 0
%endif
Summary: Network exploration tool and security scanner
Name: nmap
Epoch: 2
Version: 7.70
Epoch: 3
Version: 7.92
#global prerelease TEST5
Release: 8%{?dist}
Release: 1%{?dist}
Summary: Network exploration tool and security scanner
URL: http://nmap.org/
# Uses combination of licenses based on GPL license, but with extra modification
# so it got its own license tag rhbz#1055861
License: Nmap
Group: Applications/System
Requires: %{name}-ncat = %{epoch}:%{version}-%{release}
Source0: http://nmap.org/dist/%{name}-%{version}%{?prerelease}.tar.bz2
%if %{with_frontend}
Source1: zenmap.desktop
Source2: zenmap-root.pamd
Source3: zenmap.appdata.xml
%endif
Source1: https://nmap.org/dist/sigs/%{name}-%{version}.tar.bz2.asc
Source2: https://svn.nmap.org/nmap/docs/nmap_gpgkeys.txt
#prevent possible race condition for shtool, rhbz#158996
Patch1: nmap-4.03-mktemp.patch
@ -33,28 +26,29 @@ Patch1: nmap-4.03-mktemp.patch
Patch2: nmap-4.52-noms.patch
# upstream provided patch for rhbz#845005, not yet in upstream repository
Patch5: ncat_reg_stdin.diff
Patch6: nmap-6.25-displayerror.patch
Patch7: nmap-safe_fd_functions.patch
Patch3: ncat_reg_stdin.diff
Patch4: nmap-6.25-displayerror.patch
# https://github.com/nmap/nmap/pull/2247
Patch8: nmap_resolve_config.patch
Patch5: nmap_resolve_config.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2120294
Patch9: nmap-ipv6_literal_proxy.patch
URL: http://nmap.org/
BuildRequires: automake make
BuildRequires: autoconf
BuildRequires: gcc-c++
BuildRequires: openssl-devel, gtk2-devel, lua-devel, libpcap-devel, pcre-devel
BuildRequires: desktop-file-utils, dos2unix
BuildRequires: libtool, automake, autoconf, gettext-devel
BuildRequires: gettext-devel
BuildRequires: libpcap-devel
%if 0%{?fedora}
BuildRequires: libssh2-devel
%endif
BuildRequires: libtool
BuildRequires: lua-devel
BuildRequires: openssl-devel
BuildRequires: pcre-devel
BuildRequires: zlib-devel
BuildRequires: gnupg2
Requires: %{name}-ncat = %{epoch}:%{version}-%{release}
%if ! %{with_frontend}
Obsoletes: nmap-frontend
Obsoletes: nmap-ndiff
%endif
%define pixmap_srcdir zenmap/share/pixmaps
@ -70,33 +64,10 @@ data transfer, redirection, and debugging tool (netcat utility ncat), a utility
for comparing scan results (ndiff), and a packet generation and response
analysis tool (nping).
%if %{with_frontend}
%package frontend
Summary: The GTK+ front end for nmap
Group: Applications/System
Requires: nmap = %{epoch}:%{version} gtk2 python2 >= 2.5 pygtk2 usermode
Requires: nmap-ndiff = %{epoch}:%{version}
BuildRequires: python2-devel pygtk2-devel libpng-devel
BuildArch: noarch
%description frontend
This package includes zenmap, a GTK+ front end for nmap. The nmap package must
be installed before installing nmap front end.
%package ndiff
Summary: Ndiff is a tool to aid in the comparison of Nmap scans
Group: Applications/System
BuildRequires: python2 >= 2.5
Requires: nmap = %{epoch}:%{version}
BuildArch: noarch
%description ndiff
%{summary}
%endif
%package ncat
Group: Applications/System
Summary: Nmap's Netcat replacement
Requires(post): %{_sbindir}/alternatives
Requires(preun): %{_sbindir}/alternatives
Obsoletes: nc < 1.109.20120711-2
Obsoletes: nc6 < 1.00-22
Provides: nc nc6
@ -110,48 +81,31 @@ applications and users. Ncat will not only work with IPv4 and IPv6
but provides the user with a virtually limitless number of potential
uses.
%if 0%{?rhel} && 0%{?rhel} >= 0
Requires(post): %{_sbindir}/update-alternatives
Requires(postun): %{_sbindir}/update-alternatives
%endif
%prep
%autosetup -p1 -n %{name}-%{version}%{?prerelease}
%{gpgverify} --keyring=%{SOURCE2} --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup -p1
#be sure we're not using tarballed copies of some libraries
#rm -rf liblua libpcap libpcre macosx mswin32 ###TODO###
rm -rf libpcap libpcre macosx mswin32 libssh2 libz
# for aarch64 support, not needed with autotools 2.69+
for f in acinclude.m4 configure.ac nping/configure.ac
do
sed -i -e 's/\(AC_DEFINE([^,)]*\))/\1, 1, [Description])/' -e 's/\(AC_DEFINE([^,]*,[^,)]*\))/\1, [Description])/' $f
done
autoreconf -I . -fiv --no-recursive
cd nping; autoreconf -I .. -fiv --no-recursive; cd ..
%if %{with_frontend}
#fix locale dir
mv zenmap/share/zenmap/locale zenmap/share
sed -i -e "s|^locale_dir =.*$|locale_dir = os.path.join('share','locale')|" \
-e 's|join(self.install_data, data_dir)|join(self.install_data, "share")|' zenmap/setup.py
sed -i 's|^LOCALE_DIR = .*|LOCALE_DIR = join(prefix, "share", "locale")|' zenmap/zenmapCore/Paths.py
%endif
%build
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
### TODO ## configure --with-libpcap=/usr ###TODO###
### TODO if 0%{%fedora} --with-libsssh
%configure --with-libpcap=yes --with-liblua=included \
%if ! %{with_frontend}
--without-zenmap \
--without-ndiff \
--without-zenmap --without-ndiff \
%if 0%{?fedora}
--with-libssh2=yes \
%else
--with-libssh2=no \
%endif
--enable-dbus --without-libssh2
make %{?_smp_mflags}
--enable-dbus
%make_build
#fix man page (rhbz#813734)
sed -i 's/-md/-mf/' nping/docs/nping.1
@ -164,72 +118,23 @@ make DESTDIR=%{buildroot} STRIP=true install
rm -f %{buildroot}%{_datadir}/ncat/ca-bundle.crt
rmdir %{buildroot}%{_datadir}/ncat
%if 0%{?fedora} && 0%{?fedora} >= 0
# we provide 'nc' replacement
# Do not create symlinks on manpages on rhel because of
# rhbz#1578776
ln -s ncat.1.gz %{buildroot}/%{_mandir}/man1/nc.1.gz
ln -s ncat %{buildroot}/%{_bindir}/nc
%endif
%if %{with_frontend}
rm -f %{buildroot}%{_bindir}/uninstall_zenmap
#do not include uninstall script
rm -f %{buildroot}%{_bindir}/uninstall_ndiff
rm -f %{buildroot}%{_datadir}/applications/zenmap*.desktop
mkdir -p %{buildroot}%{_sysconfdir}/pam.d
install -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/pam.d/zenmap-root
cp docs/zenmap.1 %{buildroot}%{_mandir}/man1/
gzip %{buildroot}%{_mandir}/man1/* || :
pushd %{buildroot}%{_mandir}/man1
ln -s zenmap.1.gz nmapfe.1.gz
ln -s zenmap.1.gz xnmap.1.gz
popd
desktop-file-install --vendor nmap \
--dir %{buildroot}%{_datadir}/applications \
--add-category X-Red-Hat-Base \
%{SOURCE1};
mkdir -p %{buildroot}/%{_datadir}/metainfo/
install -p -m 0644 %SOURCE3 %{buildroot}/%{_datadir}/metainfo/
#for .desktop and app icon
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/256x256/apps
ln -s ../../../../zenmap/pixmaps/zenmap.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps
# fix end-of-line
pushd %{buildroot}
for fe in ./%{python_sitelib}/zenmapCore/Paths.py
do
dos2unix <$fe >$fe.new
touch -r $fe $fe.new
mv -f $fe.new $fe
done
popd
%find_lang zenmap
%endif
%find_lang nmap --with-man
#we provide 'nc' replacement (#1653119)
touch %{buildroot}%{_mandir}/man1/nc.1.gz
touch %{buildroot}%{_bindir}/nc
%find_lang nmap --with-man
%post ncat
%{_sbindir}/update-alternatives --install %{_bindir}/nc \
%{name} %{_bindir}/ncat 10 \
--slave %{_mandir}/man1/nc.1.gz ncman %{_mandir}/man1/ncat.1.gz
%{_sbindir}/alternatives --install %{_bindir}/nc nc %{_bindir}/ncat 10 \
--slave %{_mandir}/man1/nc.1.gz nc-man %{_mandir}/man1/ncat.1.gz
## ln -s ncat.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/nc.1.gz
%postun ncat
if [ $1 -eq 0 ] ; then
%{_sbindir}/update-alternatives --remove %{name} %{_bindir}/ncat
%preun ncat
if [ $1 -eq 0 ]; then
%{_sbindir}/alternatives --remove nc %{_bindir}/ncat
fi
%files -f nmap.lang
%doc COPYING*
%license LICENSE
%doc docs/README
%doc docs/nmap.usage.txt
%{_bindir}/nmap
@ -239,59 +144,100 @@ fi
%{_datadir}/nmap
%files ncat
%doc COPYING ncat/docs/AUTHORS ncat/docs/README ncat/docs/THANKS ncat/docs/examples
%if 0%{?fedora} && 0%{?fedora} >= 0
%{_bindir}/nc
%{_mandir}/man1/nc.1.gz
%else
%license LICENSE
%doc ncat/docs/AUTHORS ncat/docs/README ncat/docs/THANKS ncat/docs/examples
%ghost %{_bindir}/nc
%ghost %{_mandir}/man1/nc.1.gz
%endif
%{_bindir}/ncat
%ghost %{_mandir}/man1/nc.1.gz
%{_mandir}/man1/ncat.1.gz
%if %{with_frontend}
%files ndiff
%{_bindir}/ndiff
%{python_sitelib}/ndiff.py
%{python_sitelib}/ndiff.py?
%{_mandir}/man1/ndiff.1.gz
%files frontend -f zenmap.lang
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/pam.d/zenmap-root
%{_bindir}/zenmap
%{_bindir}/nmapfe
%{_bindir}/xnmap
%{python_sitelib}/radialnet
%{python_sitelib}/zenmap*
%{_datadir}/applications/nmap-zenmap.desktop
%{_datadir}/icons/hicolor/256x256/apps/*
%{_datadir}/zenmap
%{_mandir}/man1/zenmap.1.gz
%{_mandir}/man1/nmapfe.1.gz
%{_mandir}/man1/xnmap.1.gz
%{_datadir}/metainfo/zenmap.appdata.xml
%endif
%changelog
* Tue Aug 23 2022 Martin Osvald <mosvald@redhat.com> - 2:7.70-8
- Resolves: #2120294 - wrong connect format
* Tue Mar 21 2023 Martin Osvald <mosvald@redhat.com> - 3:7.92-1
- New version 7.92
- Resolves: #2180330 - Rebase nmap for TLS v1.3 support
- Resolves: #2164833 - Remove duplicate tests
* Wed May 04 2022 Martin Osvald <mosvald@redhat.com> - 2:7.70-7
- Do not listen on ipv6 if it's disabled (#1899824)
* Tue Jan 10 2023 Martin Osvald <mosvald@redhat.com> - 3:7.91-12
- Enhanced TMT testing for centos-stream (#2159206)
* Wed Jul 21 2021 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-6
- Use safe variants of FD_ functions (#1914733)
* Fri Nov 25 2022 Martin Osvald <mosvald@redhat.com> - 3:7.91-11
- ncat does not work with --proxy (#2140101)
* Thu Mar 28 2019 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-5
- Resolves: #1653119 - Manage nc symlink using alternatives
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 3:7.91-10
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Mon Sep 17 2018 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-4
- Resolves: #1627053 - Obsolete python2 packages
* Wed Jul 28 2021 Florian Weimer <fweimer@redhat.com> - 3:7.91-9
- Rebuild to pick up OpenSSL 3.0 Beta ABI (#1984097)
* Mon Jun 4 2018 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-3
- Disable build with libssh in RHEL (#1584704)
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 3:7.91-8
- Rebuilt for RHEL 9 BETA for openssl 3.0
Related: rhbz#1971065
* Wed May 5 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.91-7
- Fix crash with unix sockets
* Fri Apr 16 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.91-6
- Bumping release because brew is ignorant of such innovative concept as RPM Epochs
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3:7.91-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Thu Apr 8 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.91-1
- Bring 7.91 back
* Sun Mar 07 2021 Robert Scheck <robert@fedoraproject.org> - 3:7.80-11
- Manage nc symlink using alternatives (#1653119)
* Wed Feb 10 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.80-10
- Do not listen on ipv6 if it's disabled
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3:7.80-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jan 13 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.80-8
- Replace FD_ functions with safe implementation (#1914734)
* Sun Jan 10 2021 Pavel Zhukov <pzhukov@redhat.com> - 3:7.80-7
- Drop nmap >= 7.90
* Thu Aug 20 2020 Pavel Zhukov <pzhukov@redhat.com> - 2:7.80-6
- Drop libssh from eln
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.80-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue May 19 2020 Pavel Zhukov <pzhukov@redhat.com> - 2:7.80-4
- Do not assert on unsolicited ARP response (#1836989)
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.80-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Aug 13 2019 Peter Robinson <pbrobinson@fedoraproject.org> 2:7.80-2
- Re-provide nc, clearly 7 years isn't enough
* Mon Aug 12 2019 Peter Robinson <pbrobinson@fedoraproject.org> 2:7.80-1
- Update to 7.80
- Drop features conditionals from old releases
- Use %%license, package cleanups
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.70-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu May 2 2019 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-7
- Fix double free when ssh connections fails
* Tue Feb 5 2019 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-6
- Fix ipv6 literals parsing in proxy connection
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.70-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Sep 10 2018 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-4
- Obsolete frontend packages in f29+ (#1626804)
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2:7.70-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Apr 19 2018 Pavel Zhukov <pzhukov@redhat.com> - 2:7.70-2
- Do not build zenmap and ndiff because of python2 deprecation

95
nmap_gpgkeys.txt Normal file
View File

@ -0,0 +1,95 @@
GPG detached signatures and MD5/SHA-1 hashes for each Nmap release are
available from https://nmap.org/dist/sigs/?C=M;O=D . The
releases are signed by the Nmap project GPG key (KeyId 6B9355D0).
Some messages to Nmap mailing lists may be signed by Nmap author and
maintainer Fyodor. Fyodor's KeyID is 33599B5F. Those two keys and
their fingerprints are reproduced below. The latest version of this
file is always available at
https://nmap.org/data/nmap_gpgkeys.txt .
To verify a file with GPG, obtain and import the keys with a command
such as "gpg --import nmap_gpgkeys.txt" and then verify the obtained
files as shown in this example:
> gpg --verify nmap-3.81.tar.bz2.gpg.txt nmap-3.81.tar.bz2
gpg: Signature made Sat 23 Apr 2005 11:34:32 PM PDT using DSA key ID 6B9355D0
gpg: Good signature from "Nmap Project Signing Key (http://www.insecure.org/)"
Here are the GPG keys for the Nmap Project and Fyodor:
pub 1024D/6B9355D0 2005-04-24
Key fingerprint = 436D 66AB 9A79 8425 FDA0 E3F8 01AF 9F03 6B93 55D0
uid Nmap Project Signing Key (http://www.insecure.org/)
sub 2048g/A50A6A94 2005-04-24
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
mQGiBEJrBfgRBADogo5DEoGsm2C3OC3NoKBQ0J7Ixp/cymuMeGQmDhqP6Vfmxmso
BGln4nhDr3WMDW76Q2p6dHTZEbWx3NAna8q3wa3PrPTVRcmEgEgUd8y086I33NqW
BV5Fz4bvPWtSGc/4MxXwac+XqrGY+iTkaO3sd4/eEKa/KkJlXpIGAbGbZwCgq9HS
bHctYmUWmvz1YXJmFlQvnTsD/RRyTlnQ/AOpq2XPYy5AlUzHMWAef2Dt+wXYKSjp
zvqVWtl8QigrWSOP3ia39v+rDUF/CHb1U8mmx9XzRpy9KgS99Wi4IUnBCYM/e/IP
K5ReAoNoPMjLmLU4cxYzOxF1yzuSFvhXiKVy/QW6Qo9AP9YdlhlxxXrJA+HrAcXb
UE/SBACsoJRsIEyzcfm7Y/KA11enEhxo2nVZ/HpJCq8RHcaXxWFaCglKlydNaw1S
vlZkLggRXQrig6aHgVva3WC+gSYMk+SPtzYNrjWiDE+v+DoEFdNEuO8DXScTMGmB
pmUtZNWGoK9ewo9kE/ccGDl6lmrxfC9x2nYFHlCvV/PJrbTbfLQzTm1hcCBQcm9q
ZWN0IFNpZ25pbmcgS2V5IChodHRwOi8vd3d3Lmluc2VjdXJlLm9yZy8piF4EExEC
AB4FAkJrBfgCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQAa+fA2uTVdBGbACf
e4qpukKV23yZjlbjEzJeCN8Gyh4AniXrbP7M+ul6zzWTFBgB6heYjKT8iEYEEBEC
AAYFAkJrGVAACgkQGvbsUDNZm1+kXgCfbBGI8UxrwiKRbtgYHOUYd6u5qdwAnRFZ
ryKFEzkuQGBQWfd6ys6ygjgtuQINBEJrBfoQCADUNWhc7n68jANoWAWl38itVGqI
qZEEvchV3m/uslVD0BSn/KRSY9/cZbMTX2hV8eemlGV2suJW4jWB0cQXjZQap4OL
WmMexeFA+q1YE803k0X4XgzRuJXkLaX3isCJGbgFRF6IfWmK38/gXz4YVBQXFQXy
4M2Y/o2GBsq8cQVgRAZNTQvN5oh2u8WN0wANk+iKySKqBG3Twgh4BbTaoajidSFR
hv3xFPw6dQFTd3fYyDlMcOQQcAdzzlS6hTyZuZLOXLdWckilnlP2/orQ5wUs6nXd
QeWuxME56z2vwNNeufoLWqNUlR1/IyRAfownDuvdjxYeIgsDd4DP+jInCpPzAAMG
CACZ8ewQdpWJ/4CgC7OT865DurNIQH0udm/CSB0mb3v0IxuuXMJml2yMi2NkJh8X
KMaluTznz2x8kpPXgmhu+qosAi+YUbdbP+/ilY6+WqLVQewSr7GmxJy6EWW5s2+S
3V7yneiDQXBUBMr4WwjfOxX7m/+Io7RSLQaWNq82C2fSukqpootVgLV7CaVJMHvZ
iA+3AL32N1d6O6h8bUqEyfOw3kIr19e0OhqWSpQrZs3tkUpwH7/vn/4NkAxjodkP
JChf1Y89pU98GBC9JxF+mc2mnDVUnUs31S8kQ/6PhZP8ldn47W2CakHSA3S/M99A
gltKiG6MR2z018fqD8FJC3tLiEkEGBECAAkFAkJrBfoCGwwACgkQAa+fA2uTVdBM
QgCfciVPJeohzn5mJ4WGE/6B1CyCOIYAn2ghTW1IKTP+tfOgxVg/p8HJOoiz
=18Dk
-----END PGP PUBLIC KEY BLOCK-----
pub 1024D/33599B5F 2005-04-24
Key fingerprint = BB61 D057 C0D7 DCEF E730 996C 1AF6 EC50 3359 9B5F
uid Fyodor <fyodor@insecure.org>
sub 2048g/D3C2241C 2005-04-24
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
mQGiBEJrBG4RBADfjVQenTh2v1NK2N0Wi83pGMm0u/IDDX8eT8lxSR+XdevdcK+F
bRhVh+tMhTo1T2OoZkBfYj+OVCWsBZlIxZtGycWaGAwn3MbUEiUJD0YVv4pm4KVk
HEZSOYEkzUFIw3IP03Cv6wBDrhk5lAu99+sK0iQGeHGw+gBhIuA3axSeBwCgn86p
r+C4P3w61musiflp1SosfSsEALwyE7o60S105UTijAn5tswqecZlumQAxQ+DIeC+
9F8mSujIZn8xb1wJtaZb2F0HU0vd67BaOIDXqO7KVe6Tx6JKf5zup2vaGRvUspNv
V8CLuSbT7WnnvTBM5dfBMTJw6xLjOsSTk65Q24xcTJ3f2efnYy9imAMl7EzhalBE
11pfBADVLuhe6rUpRrhaMJRXZJLdE9A2zcHWtM0X3DDe6QhaWU94JivtORKtleGv
atGu4or9jwIhXixeBsvu7RP3bWog5jiLgUWJrvJNeLcFQqIWTtIdh5iuInzezxbg
Fvst2YIdUrT+QdcYKKTnJNyUgXQBGKQ18ra8oMvakgUqVjrPnbQcRnlvZG9yIDxm
eW9kb3JAaW5zZWN1cmUub3JnPoheBBMRAgAeBQJCawRuAhsDBgsJCAcDAgMVAgMD
FgIBAh4BAheAAAoJEBr27FAzWZtfZwcAn0iGnn1p6wXuBTj7VQSdglTtJd46AJ9T
Gt51/ZUT2yiFG9vsc5CZn5WiRYicBBMBAgAGBQJCaxEpAAoJEM4dPqJTWH2VO4oE
AKso+R5gSO9jhtTiCIMoh9CqeboQCbBKzEwDhy7S7gChAHOz6HeOdcsyfnprwsiH
I+FjufxvdtmiIENSzyjqGxbMdO+Zoz5JMx1RtzrkjkE4GLVq0c6NzL/36MUtAjEU
tCTFXYZW6Lvu6SgnmlmelrAjqs10vZoOrbOlB/l9mn/EuQINBEJrBHIQCACUlrH2
qhVekDKeK9zQlBK2dxcIyPSwP6Tqv+rWvKEzHRUVNBcDSruuNVBNvJC3VQAj0oTA
XI+xoWGNx5CInX7qKFaGd9/MlsrEyjasRcY75lkr3QyTSk92q0luX1j+V1uumDWs
pacyki0Zt/9FhssjdkljFBPpDRPURxjJdJ6TCq6G0wPjelKsekRNvipIYcrcIs7I
EBtqsDCvQBRKgYzjUuziudOMoNFAn6eQHBu/B7RNtRzqTL1ugCjs0AEhLRKw+Ag6
bP3lTjmiR33wxajAuUPKe8abe7CfVPrGmihJSJaqULeldSHTugnf84/hTh9BQKYd
EZd3QlF72wRmCcnjAAMGB/4oXK4/BXExfnZ+QbmTIyQGJb/OcWa7Dc9WA6DnaE58
1BeZgYrKFQMdVpAhUMTxeqPIL4EVc6N+BkSk7JHf5+6DoK8KDJ1RJCCgYmdx7zdT
/GAZlUFDiYOs4sx75UZZGFcEEDmIHFC4s7B2HPuSfMoq5vBr0qi6pD1HCgyJV0aG
jhQdmfkp+fYEibPWrIGTsayQnYiCrVo3W7C7ZplekoAJkcN0rnfJeV1+kj694XSe
U6oYj9RaNoTV1xt1lx5Rwl00HwEYHWAsGmT6+pWmbXo5PT7N7OfcmtclICBsrcjC
hKcn6WdTitUR+uOXgL+86Th4W/FYdIXAyyC9KTXhMDmfiEkEGBECAAkFAkJrBHIC
GwwACgkQGvbsUDNZm19xAgCeNmaeak8iviUmHje1YAePwEFGleEAn26n8sNrVole
NtNX5k7XyTWBQUdG
=cBzb
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,8 +1,8 @@
diff --git a/ncat/ncat_core.c b/ncat/ncat_core.c
index 21eca9e..c45a04e 100644
index b76d5ea..9f0b0cf 100644
--- a/ncat/ncat_core.c
+++ b/ncat/ncat_core.c
@@ -287,6 +287,7 @@ int resolve(const char *hostname, unsigned short port,
@@ -289,6 +289,7 @@ int resolve(const char *hostname, unsigned short port,
int result;
flags = 0;

7
plans/public.fmf Normal file
View File

@ -0,0 +1,7 @@
summary: Test plan that runs all tests from tests repo.
discover:
how: fmf
url: https://src.fedoraproject.org/tests/nmap.git
execute:
how: tmt

15
plans/tier1-internal.fmf Normal file
View File

@ -0,0 +1,15 @@
summary: CI plan, picks Tier1 tests, runs in beakerlib.
discover:
- name: rhel
how: fmf
filter: 'tier: 1'
url: git://pkgs.devel.redhat.com/tests/nmap
- name: fedora
how: fmf
filter: 'tier: 1'
url: "https://src.fedoraproject.org/tests/nmap.git"
execute:
how: tmt
adjust:
enabled: false
when: distro == centos-stream-9

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (nmap-7.92.tar.bz2) = 7828367f9dc76ff4d1e8c821260e565fb0c3cb6aba0473d24759133a3006cdf2cb087574f0dd7d2ba47a63754ba4f72e0b78cdae1333a58f05c41d428b56ad59
SHA512 (nmap-7.92.tar.bz2.asc) = 300a22ab097bbff67de354de6b22a8e3287f95dd6318fcabd546ba52158e9589b19ede175587c6e31518c47bc118c7dd05db43755def075d810b16945b65e05a