Merge pull request #2079 from flatcar/krnowak/drop-nmap

Replace nmap netcat with openbsd netcat
This commit is contained in:
Krzesimir Nowak 2024-08-09 14:13:06 +02:00 committed by GitHub
commit db9fa0fd16
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
36 changed files with 653 additions and 1211 deletions

View File

@ -202,7 +202,6 @@ dev-go/go-md2man
dev-lang/duktape
dev-lang/go-bootstrap
dev-lang/lua
dev-lang/nasm
dev-lang/perl
dev-lang/python
@ -474,8 +473,8 @@ licenses
media-libs/libpng
net-analyzer/openbsd-netcat
net-analyzer/netperf
net-analyzer/nmap
net-analyzer/traceroute
net-dns/bind-tools

View File

@ -0,0 +1 @@
- Replace nmap netcat with openbsd variant. The license didn't get an exception from CNCF. Something about the definition of "derivative works" being too broad.

View File

@ -8,7 +8,7 @@ EGIT_REPO_URI="https://github.com/flatcar/init.git"
if [[ "${PV}" == 9999 ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
else
EGIT_COMMIT="ed0ce5ab08d77ff8fa775975961987ae2704fb34" # flatcar-master
EGIT_COMMIT="52eebc03e02f399d91dad5a2a4fece70608a94df" # flatcar-master
KEYWORDS="amd64 arm arm64 x86"
fi

View File

@ -126,7 +126,7 @@ RDEPEND="${RDEPEND}
dev-util/bpftool
dev-util/bsdiff
dev-vcs/git
net-analyzer/nmap
net-analyzer/openbsd-netcat
net-analyzer/tcpdump
net-analyzer/traceroute
net-dns/bind-tools

View File

@ -0,0 +1,3 @@
cros_post_src_install_ncat_symlink() {
ln -sfn nc "${D}/usr/bin/ncat"
}

View File

@ -11,10 +11,6 @@ USE_EXPAND="${USE_EXPAND} GO_VERSION"
# Extra use flags for CoreOS SDK
USE="${USE} cros_host expat -cracklib -introspection -cups -tcpd -berkdb"
# Only net-analyzer/nmap uses lua and it's compatible only with lua5-4.
LUA_SINGLE_TARGET="lua5-4"
LUA_TARGETS="lua5-4"
# Use Python 3 as the default version
USE="${USE} -python_single_target_python2_7 python_single_target_python3_11"
USE="${USE} -python_targets_python2_7 python_targets_python3_11"

View File

@ -21,9 +21,6 @@ sys-libs/gdbm berkdb
dev-vcs/git -perl -iconv
# symlink: to add a link between ncat and nc
net-analyzer/nmap ncat symlink
# removes mta dependencies
app-admin/sudo -sendmail

View File

@ -20,14 +20,6 @@ INSTALL_MASK="${INSTALL_MASK}
/usr/src
"
# Exclude nmap from OEM ACI, we just want ncat/nping in there.
# Also remove ncat's second ca-bundle.crt, just use the system's.
INSTALL_MASK="${INSTALL_MASK}
/usr/bin/nmap
/usr/share/ncat
/usr/share/nmap
"
# Remove files which depend on interpreters not present in boards.
INSTALL_MASK="${INSTALL_MASK}
/usr/share/git/contrib/*

View File

@ -15,6 +15,3 @@ app-eselect/eselect-iptables-20200508
# pulled in by app-admin/sudo
app-misc/editor-wrapper-4
# pulled in by dev-lang/lua
app-eselect/eselect-lua-4

View File

@ -24,14 +24,6 @@ INSTALL_MASK="${INSTALL_MASK}
/usr/src
"
# Exclude nmap from prod image, we just want ncat/nping in there
# Also remove ncat's second ca-bundle.crt, just use the system's
INSTALL_MASK="${INSTALL_MASK}
/usr/bin/nmap
/usr/share/ncat
/usr/share/nmap
"
# Remove files which depend on interpreters not present in boards.
INSTALL_MASK="${INSTALL_MASK}
/usr/lib*/systemd/system/xfs_scrub_all*

View File

@ -1,3 +0,0 @@
DIST lua-5.1.5.tar.xz 397416 BLAKE2B ef3880d78be1def383a9db6753b7aec4160f6fa8719529c2ea6266015771a23a1be81424520de10bb087a86081f1ec48c58c36eb8b24bff53adb6bd8d791e31b SHA512 bd827cb2e63cd71d15d846eb29c8745bf869e7b70e12c565ce173623d1fcd29dabf4d33a99c48f294151bb580d830c112cf178e2d80a5a5c36acc7b3bfcd7d24
DIST lua-5.3.6.tar.xz 541220 BLAKE2B c356cec06b14cdcbb29e382c951491432a3189618f9fd8c8832bdc8c831640fbcb9e212db05b61a577633c5fe9831e75a158cb97720c1e51cab27544526c9e24 SHA512 9a632a90806fa71398d70be7d38769065c1258fd94709cef72236753b42131b8d30da2a5dd28c74211ef8d04b0c30f52d0c593d49c2e8686568c8896b69577d7
DIST lua-5.4.6.tar.xz 608376 BLAKE2B bec47685a24be429fa930ac02e6930300ad77105c56d970d3f1a9a6241c23da5ea77b863e9eca36b6c20e1ef1dc90f3635afe9b09dc4221f1e5dd72ce951df38 SHA512 8e7f6bd9d7fdf9327134f7eb01a78df87141989ea0d95f331eb0e71acdbf7c7b7d908da95e16cd91b3f9bad1b496e3b4db2380a851557f29cdc53f4f5255cda5

View File

@ -1,20 +0,0 @@
https://salsa.debian.org/lua-team/lua5.1/-/blob/master/debian/patches/0003-extern_C.patch
From: "John V. Belmonte" <jbelmonte@debian.org>
Date: Tue, 26 Aug 2014 16:20:49 +0200
Subject: extern_C
--- a/src/luaconf.h.in
+++ b/src/luaconf.h.in
@@ -168,7 +168,11 @@
#else
+#ifdef __cplusplus
+#define LUA_API extern "C"
+#else
#define LUA_API extern
+#endif
#endif

View File

@ -1,17 +0,0 @@
https://salsa.debian.org/lua-team/lua5.1/-/blob/master/debian/patches/0004-Fix-stack-overflow-in-vararg-functions.patch
From: Enrico Tassi <gareuselesinge@debian.org>
Date: Tue, 26 Aug 2014 16:20:55 +0200
Subject: Fix stack overflow in vararg functions (CVE-2014-5461)
--- a/src/ldo.c
+++ b/src/ldo.c
@@ -274,7 +274,7 @@ int luaD_precall (lua_State *L, StkId func, int nresults) {
CallInfo *ci;
StkId st, base;
Proto *p = cl->p;
- luaD_checkstack(L, p->maxstacksize);
+ luaD_checkstack(L, p->maxstacksize + p->numparams);
func = restorestack(L, funcr);
if (!p->is_vararg) { /* no varargs? */
base = func + 1;

View File

@ -1,11 +0,0 @@
--- a/test/sieve.lua
+++ b/test/sieve.lua
@@ -14,7 +14,7 @@
while 1 do
local n = g()
if n == nil then return end
- if math.mod(n, p) ~= 0 then coroutine.yield(n) end
+ if math.fmod(n, p) ~= 0 then coroutine.yield(n) end
end
end)
end

View File

@ -1,44 +0,0 @@
https://github.com/lua/lua/commit/6baee9ef9d5657ab582c8a4b9f885ec58ed502d0
https://bugs.gentoo.org/914562
From 6baee9ef9d5657ab582c8a4b9f885ec58ed502d0 Mon Sep 17 00:00:00 2001
From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Fri, 8 Sep 2023 16:19:21 -0300
Subject: [PATCH] Removed test for "corrupted binary dump"
Test is too non portable. (For instance, it does not work for
different number types.)
--- a/src/lundump.c
+++ b/src/lundump.c
@@ -81,7 +81,7 @@ static size_t loadUnsigned (LoadState *S, size_t limit) {
static size_t loadSize (LoadState *S) {
- return loadUnsigned(S, ~(size_t)0);
+ return loadUnsigned(S, MAX_SIZET);
}
--- a/tests/calls.lua
+++ b/tests/calls.lua
@@ -342,20 +342,6 @@ do -- another bug (in 5.4.0)
end
-do -- another bug (since 5.2)
- -- corrupted binary dump: list of upvalue names is larger than number
- -- of upvalues, overflowing the array of upvalues.
- local code =
- "\x1b\x4c\x75\x61\x54\x00\x19\x93\x0d\x0a\x1a\x0a\x04\x08\x08\x78\x56\z
- \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x77\x40\x00\x86\x40\z
- \x74\x65\x6d\x70\x81\x81\x01\x00\x02\x82\x48\x00\x02\x00\xc7\x00\x01\z
- \x00\x80\x80\x80\x82\x00\x00\x80\x81\x82\x78\x80\x82\x81\x86\x40\x74\z
- \x65\x6d\x70"
-
- assert(load(code)) -- segfaults in previous versions
-end
-
-
x = string.dump(load("x = 1; return x"))
a = assert(load(read1(x), nil, "b"))
assert(a() == 1 and _G.x == 1)

View File

@ -1,50 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit libtool optfeature
DESCRIPTION="A powerful light-weight programming language designed for extending applications"
HOMEPAGE="https://www.lua.org/"
# tarballs produced from ${PV} branches in https://gitweb.gentoo.org/proj/lua-patches.git
SRC_URI="https://dev.gentoo.org/~soap/distfiles/${P}.tar.xz"
LICENSE="MIT"
SLOT="5.1"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="+deprecated readline"
DEPEND="
>=app-eselect/eselect-lua-3
readline? ( sys-libs/readline:= )
!dev-lang/lua:0"
RDEPEND="${DEPEND}"
BDEPEND="virtual/pkgconfig"
PATCHES=( "${FILESDIR}"/${SLOT} )
src_prepare() {
! use deprecated && PATCHES+=(
"${FILESDIR}"/${PN}-5.1.4-test.patch
)
default
elibtoolize
}
src_configure() {
econf \
$(use_enable deprecated) \
$(use_with readline)
}
src_install() {
default
find "${ED}" -name '*.la' -delete || die
}
pkg_postinst() {
eselect lua set --if-unset "${PN}${SLOT}"
optfeature "Lua support for Emacs" app-emacs/lua-mode
}

View File

@ -1,51 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic libtool optfeature
DESCRIPTION="A powerful light-weight programming language designed for extending applications"
HOMEPAGE="https://www.lua.org/"
# tarballs produced from ${PV} branches in https://gitweb.gentoo.org/proj/lua-patches.git
SRC_URI="https://dev.gentoo.org/~soap/distfiles/${P}.tar.xz"
LICENSE="MIT"
SLOT="5.3"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="+deprecated readline"
DEPEND="
>=app-eselect/eselect-lua-3
readline? ( sys-libs/readline:= )
!dev-lang/lua:0"
RDEPEND="${DEPEND}"
BDEPEND="virtual/pkgconfig"
src_prepare() {
default
elibtoolize
if use elibc_musl; then
# locales on musl are non-functional (#834153)
# https://wiki.musl-libc.org/open-issues.html#Locale-limitations
sed -e 's|os.setlocale("pt_BR") or os.setlocale("ptb")|false|g' \
-i tests/literals.lua || die
fi
}
src_configure() {
use deprecated && append-cppflags -DLUA_COMPAT_5_1 -DLUA_COMPAT_5_2
econf $(use_with readline)
}
src_install() {
default
find "${ED}" -name '*.la' -delete || die
}
pkg_postinst() {
eselect lua set --if-unset "${PN}${SLOT}"
optfeature "Lua support for Emacs" app-emacs/lua-mode
}

View File

@ -1,56 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic libtool optfeature
DESCRIPTION="A powerful light-weight programming language designed for extending applications"
HOMEPAGE="https://www.lua.org/"
# tarballs produced from ${PV} branches in https://gitweb.gentoo.org/proj/lua-patches.git
SRC_URI="https://dev.gentoo.org/~soap/distfiles/${P}.tar.xz"
LICENSE="MIT"
SLOT="5.4"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="+deprecated readline"
DEPEND="
>=app-eselect/eselect-lua-3
readline? ( sys-libs/readline:= )
!dev-lang/lua:0"
RDEPEND="${DEPEND}"
BDEPEND="virtual/pkgconfig"
PATCHES=(
# Backported variant of upstream patch to fix sparc tests, bug #914562
"${FILESDIR}"/${PN}-5.4.6-sparc-tests.patch
)
src_prepare() {
default
elibtoolize
if use elibc_musl; then
# locales on musl are non-functional (#834153)
# https://wiki.musl-libc.org/open-issues.html#Locale-limitations
sed -e 's|os.setlocale("pt_BR") or os.setlocale("ptb")|false|g' \
-i tests/literals.lua || die
fi
}
src_configure() {
use deprecated && append-cppflags -DLUA_COMPAT_5_3
econf $(use_with readline)
}
src_install() {
default
find "${ED}" -name '*.la' -delete || die
}
pkg_postinst() {
eselect lua set --if-unset "${PN}${SLOT}"
optfeature "Lua support for Emacs" app-emacs/lua-mode
}

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>robbat2@gentoo.org</email>
<name>Robin H. Johnson</name>
</maintainer>
<use>
<flag name="deprecated">make deprecated data structures/routines available</flag>
</use>
<upstream>
<remote-id type="github">lua/lua</remote-id>
</upstream>
</pkgmetadata>

View File

@ -1,6 +0,0 @@
DIST nmap-7.94-patches.tar.xz 4112 BLAKE2B 0720242bf507f2a1502cf854592d94a57a33d5ac1e520c752e548092f91bbffeb0f6f762f4da27ff445419ff3845060242aa43aba53d0161ae2bebccf728cc97 SHA512 d47e2215e1923af65e3a392c3d990d650e68135f139013c311a26d12cfd0b27d9d5c3cbc27bb8583251a353a6284fb9d518373f17624db242be7060b8bfa0ba5
DIST nmap-7.94.tar.bz2 11102195 BLAKE2B 5819b458b50e33f6a507ad3c32a731c13e730c40d31a61731c3cfcd41fad8e3fdfcbb721ef46b05a80e406d0a646d0966d4b645551711144822551ef374a443a SHA512 a55cddf9c1d9272243d01251eb3315b26f232d0596818857083222a385398618b428dc2bd8282c3e832527e135a74aeb020ca8609d83d8337342f5d8a04d7f2c
DIST nmap-7.94.tar.bz2.asc 198 BLAKE2B 38a363499fe236f675238ecf015a7e597d66cdd84eef13bed4986b4081c4f1f7a288121e3666e0f31a9282fd84f30cbceb65341f1c173086c7421a8ea719afe9 SHA512 dcbaf88e9ead21f303a7ee5390de0d2bd67477c2628858dc3380b0ac7d73d4d1b330f3b303ff32b0cb9a22eaa37af535bd7aa622531451e404a8c9a256a98eec
DIST nmap-7.95-patches-2.tar.xz 5740 BLAKE2B 860e7702e2ae1211c4eeeb8f869730de2279a305389f54317f883d2094bfbb1efb9031a761af93bfa8ab56e06bea774dea5807d134dd64f94c2191340a21113b SHA512 e4fb7350ea7e7f2e62f089129c0962652e556fb3bdf272d78c834db299f7f92c3238344c8bd50fea7d1360460ca4768ddad7367ecfcaefdb51125c66cd6981dd
DIST nmap-7.95.tar.bz2 11717069 BLAKE2B 4ab4912468f6c1cf7517090bc94b1bb34e665fe1b3db973e1c7bb2d05cb885545cdf3ca5c7fb548ff0012b800f5dd60ed2f2010fc9fb62ba7d6a28537287193c SHA512 fd95a8bc627a2b8b507353f761dc9fdc8e880a0dd2d75a51b9cb3ec664318796af9bb16a6ff9a1358bd77ad669c2a54e333be630f201f69287692a7d2d41c17e
DIST nmap-7.95.tar.bz2.asc 181 BLAKE2B 31db32cb5ad42be25d4b87d8619e0865d7089618839311ada9a2c1e0c9bc89f82ca6253e8151930f152c3fac7ad820ca747ed8427d008f9b04ad2b9e0a0e2b71 SHA512 ce56893796def1b7e8ae96cce90dda073ad84d657cd15d980ee14562a07f7522d438a40ac58422b6f6de7201a9f2678413018633529cb8dcc4e580cfe678c092

View File

@ -1,32 +0,0 @@
# nls.m4 serial 5 (gettext-0.18)
dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
dnl by the GNU Library General Public License, and the rest of the GNU
dnl gettext package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
dnl Authors:
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
AC_PREREQ([2.50])
AC_DEFUN([AM_NLS],
[
AC_MSG_CHECKING([whether NLS is requested])
dnl Default is enabled NLS
AC_ARG_ENABLE([nls],
[ --disable-nls do not use Native Language Support],
USE_NLS=$enableval, USE_NLS=yes)
AC_MSG_RESULT([$USE_NLS])
AC_SUBST([USE_NLS])
])

View File

@ -1,33 +0,0 @@
https://github.com/nmap/nmap/pull/2763
https://bugs.gentoo.org/920712
--- a/libdnet-stripped/config/acinclude.m4
+++ b/libdnet-stripped/config/acinclude.m4
@@ -201,6 +201,8 @@
dnl
AC_DEFUN(AC_DNET_IOCTL_ARP,
[AC_MSG_CHECKING(for arp(7) ioctls)
+ AC_PROG_EGREP
+ AC_PROG_CPP
AC_CACHE_VAL(ac_cv_dnet_ioctl_arp,
AC_EGREP_CPP(werd, [
# include <sys/types.h>
--- a/libdnet-stripped/configure.in
+++ b/libdnet-stripped/configure.in
@@ -211,7 +211,7 @@
AC_REPLACE_FUNCS(err strlcpy strsep)
dnl Checks for other system-specific jonks.
-if test "$CYGWIN" != yes ; then
+AS_IF([test "$CYGWIN" != yes], [
AC_DNET_BSD_BPF
AC_DNET_LINUX_PROCFS
AC_DNET_LINUX_PF_PACKET
@@ -221,7 +221,7 @@
AC_DNET_RAWIP_HOST_OFFLEN
AC_DNET_RAWIP_COOKED
AC_DNET_GETKERNINFO
-fi
+])
dnl Check for arp interface.
if test "$ac_cv_header_Iphlpapi_h" = yes ; then

View File

@ -1,31 +0,0 @@
https://bugs.gentoo.org/918874
https://github.com/nmap/nmap/issues/2655
https://github.com/nmap/nmap/issues/2679
https://github.com/nmap/nmap/commit/edad9c059ca45bccab8c0f41fe6fc6546c60153a
From edad9c059ca45bccab8c0f41fe6fc6546c60153a Mon Sep 17 00:00:00 2001
From: dmiller <dmiller@e0a8ed71-7df4-0310-8962-fdc924857419>
Date: Thu, 20 Jul 2023 16:21:23 +0000
Subject: [PATCH] Add missing braces. Fixes #2679
---
services.cc | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/services.cc b/services.cc
index a0899c7509..2a709dca97 100644
--- a/services.cc
+++ b/services.cc
@@ -496,9 +496,10 @@ void gettoppts(double level, const char *portlist, struct scan_lists * ports, co
if (sctpmax && strcmp(current->s_proto, "sctp") == 0
&& (!ptsdata_initialized ||
is_port_member(ptsdata.sctp_ports, ptsdata.sctp_count, current))
- )
+ ) {
ports->sctp_ports[ports->sctp_count++] = current->s_port;
- sctpmax--;
+ sctpmax--;
+ }
break;
default:
break;

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>sam@gentoo.org</email>
<name>Sam James</name>
</maintainer>
<maintainer type="person">
<email>dilfridge@gentoo.org</email>
<name>Andreas K. Hüttel</name>
</maintainer>
<use>
<flag name="libssh2">Enable SSH support through <pkg>net-libs/libssh2</pkg></flag>
<flag name="ncat">Install the ncat utility</flag>
<flag name="ndiff">Install the ndiff utility</flag>
<flag name="nping">Install the nping utility</flag>
<flag name="nse">Include support for the Nmap Scripting Engine (NSE)</flag>
<flag name="symlink">Install symlink to nc</flag>
<flag name="zenmap">Install the GTK+ based nmap GUI, zenmap</flag>
</use>
<upstream>
<remote-id type="github">nmap/nmap</remote-id>
</upstream>
</pkgmetadata>

View File

@ -1,189 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
LUA_COMPAT=( lua5-4 )
LUA_REQ_USE="deprecated"
PYTHON_COMPAT=( python3_{10..11} )
PLOCALES="de es fr hi hr hu id it ja pl pt_BR pt_PR ro ru sk zh"
PLOCALE_BACKUP="en"
inherit autotools lua-single plocale python-single-r1 toolchain-funcs
DESCRIPTION="Network exploration tool and security / port scanner"
HOMEPAGE="https://nmap.org/"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/nmap/nmap"
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nmap.asc
inherit verify-sig
SRC_URI="https://nmap.org/dist/${P}.tar.bz2"
SRC_URI+=" verify-sig? ( https://nmap.org/dist/sigs/${P}.tar.bz2.asc )"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
fi
SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-7.94-patches.tar.xz"
# https://github.com/nmap/nmap/issues/2199
LICENSE="NPSL-0.95"
SLOT="0"
IUSE="ipv6 libssh2 ncat ndiff nping nls +nse ssl symlink zenmap"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
nse? ( ${LUA_REQUIRED_USE} )
symlink? ( ncat )
"
RDEPEND="
dev-libs/liblinear:=
dev-libs/libpcre
net-libs/libpcap
ndiff? ( ${PYTHON_DEPS} )
libssh2? (
net-libs/libssh2[zlib]
sys-libs/zlib
)
nls? ( virtual/libintl )
nse? (
${LUA_DEPS}
sys-libs/zlib
)
ssl? ( dev-libs/openssl:= )
symlink? (
ncat? (
!net-analyzer/netcat
!net-analyzer/openbsd-netcat
)
)
zenmap? (
${PYTHON_DEPS}
$(python_gen_cond_dep '
dev-python/pygobject:3[${PYTHON_USEDEP}]
')
)
"
DEPEND="${RDEPEND}"
# Python is always needed at build time for some scripts
BDEPEND="
${PYTHON_DEPS}
virtual/pkgconfig
nls? ( sys-devel/gettext )
"
if [[ ${PV} != *9999* ]] ; then
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-nmap )"
fi
PATCHES=(
"${WORKDIR}"/${PN}-7.94-patches
"${FILESDIR}"/${PN}-7.94-autoconf-2.72.patch
"${FILESDIR}"/${PN}-7.94-topport.patch
)
pkg_setup() {
python-single-r1_pkg_setup
use nse && lua-single_pkg_setup
}
src_unpack() {
if [[ ${PV} == *9999 ]] ; then
git-r3_src_unpack
elif use verify-sig ; then
# Needed for downloaded patch (which is unsigned, which is fine)
verify-sig_verify_detached "${DISTDIR}"/${P}.tar.bz2{,.asc}
fi
default
}
src_prepare() {
default
# Drop bundled libraries
rm -r liblinear/ libpcap/ libpcre/ libssh2/ libz/ || die
cat "${FILESDIR}"/nls.m4 >> "${S}"/acinclude.m4 || die
delete_disabled_locale() {
# Force here as PLOCALES contains supported locales for man
# pages and zenmap doesn't have all of those
rm -rf zenmap/share/zenmap/locale/${1} || die
rm -f zenmap/share/zenmap/locale/${1}.po || die
}
plocale_for_each_disabled_locale delete_disabled_locale
sed -i \
-e '/^ALL_LINGUAS =/{s|$| id|g;s|jp|ja|g}' \
Makefile.in || die
cp libdnet-stripped/include/config.h.in{,.nmap-orig} || die
eautoreconf
if [[ ${CHOST} == *-darwin* ]] ; then
# We need the original for a Darwin-specific fix, bug #604432
mv libdnet-stripped/include/config.h.in{.nmap-orig,} || die
fi
}
src_configure() {
export ac_cv_path_PYTHON="${PYTHON}"
export am_cv_pathless_PYTHON="${EPYTHON}"
local myeconfargs=(
$(use_enable ipv6)
$(use_enable nls)
$(use_with libssh2)
$(use_with ncat)
$(use_with ndiff)
$(use_with nping)
$(use_with nse liblua)
$(use_with ssl openssl)
$(use_with zenmap)
$(usex libssh2 --with-zlib)
$(usex nse --with-zlib)
--cache-file="${S}"/config.cache
# The bundled libdnet is incompatible with the version available in the
# tree, so we cannot use the system library here.
--with-libdnet=included
--with-pcre="${ESYSROOT}"/usr
--without-dpdk
)
econf "${myeconfargs[@]}"
}
src_compile() {
local directory
for directory in . libnetutil nsock/src $(usev ncat) $(usev nping) ; do
emake -C "${directory}" makefile.dep
done
emake \
AR="$(tc-getAR)" \
RANLIB="$(tc-getRANLIB)"
}
src_install() {
# See bug #831713 for return of -j1
LC_ALL=C emake \
-j1 \
DESTDIR="${D}" \
STRIP=: \
nmapdatadir="${EPREFIX}"/usr/share/nmap \
install
dodoc CHANGELOG HACKING docs/README docs/*.txt
if use ndiff || use zenmap ; then
python_optimize
fi
use symlink && dosym /usr/bin/ncat /usr/bin/nc
}

View File

@ -1,188 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
LUA_COMPAT=( lua5-4 )
LUA_REQ_USE="deprecated"
PYTHON_COMPAT=( python3_{10..11} )
PLOCALES="de es fr hi hr hu id it ja pl pt_BR pt_PR ro ru sk zh"
PLOCALE_BACKUP="en"
inherit autotools lua-single plocale python-single-r1 toolchain-funcs
DESCRIPTION="Network exploration tool and security / port scanner"
HOMEPAGE="https://nmap.org/"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/nmap/nmap"
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nmap.asc
inherit verify-sig
SRC_URI="https://nmap.org/dist/${P}.tar.bz2"
SRC_URI+=" verify-sig? ( https://nmap.org/dist/sigs/${P}.tar.bz2.asc )"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
fi
SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-7.94-patches.tar.xz"
# https://github.com/nmap/nmap/issues/2199
LICENSE="NPSL-0.95"
SLOT="0"
IUSE="ipv6 libssh2 ncat ndiff nping nls +nse ssl symlink zenmap"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
nse? ( ${LUA_REQUIRED_USE} )
symlink? ( ncat )
"
RDEPEND="
dev-libs/liblinear:=
dev-libs/libpcre
net-libs/libpcap
ndiff? ( ${PYTHON_DEPS} )
libssh2? (
net-libs/libssh2[zlib]
sys-libs/zlib
)
nls? ( virtual/libintl )
nse? (
${LUA_DEPS}
sys-libs/zlib
)
ssl? ( dev-libs/openssl:= )
symlink? (
ncat? (
!net-analyzer/netcat
!net-analyzer/openbsd-netcat
)
)
zenmap? (
${PYTHON_DEPS}
$(python_gen_cond_dep '
dev-python/pygobject:3[${PYTHON_USEDEP}]
')
)
"
DEPEND="${RDEPEND}"
# Python is always needed at build time for some scripts
BDEPEND="
${PYTHON_DEPS}
virtual/pkgconfig
nls? ( sys-devel/gettext )
"
if [[ ${PV} != *9999* ]] ; then
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-nmap )"
fi
PATCHES=(
"${WORKDIR}"/${PN}-7.94-patches
"${FILESDIR}"/${PN}-7.94-autoconf-2.72.patch
)
pkg_setup() {
python-single-r1_pkg_setup
use nse && lua-single_pkg_setup
}
src_unpack() {
if [[ ${PV} == *9999 ]] ; then
git-r3_src_unpack
elif use verify-sig ; then
# Needed for downloaded patch (which is unsigned, which is fine)
verify-sig_verify_detached "${DISTDIR}"/${P}.tar.bz2{,.asc}
fi
default
}
src_prepare() {
default
# Drop bundled libraries
rm -r liblinear/ libpcap/ libpcre/ libssh2/ libz/ || die
cat "${FILESDIR}"/nls.m4 >> "${S}"/acinclude.m4 || die
delete_disabled_locale() {
# Force here as PLOCALES contains supported locales for man
# pages and zenmap doesn't have all of those
rm -rf zenmap/share/zenmap/locale/${1} || die
rm -f zenmap/share/zenmap/locale/${1}.po || die
}
plocale_for_each_disabled_locale delete_disabled_locale
sed -i \
-e '/^ALL_LINGUAS =/{s|$| id|g;s|jp|ja|g}' \
Makefile.in || die
cp libdnet-stripped/include/config.h.in{,.nmap-orig} || die
eautoreconf
if [[ ${CHOST} == *-darwin* ]] ; then
# We need the original for a Darwin-specific fix, bug #604432
mv libdnet-stripped/include/config.h.in{.nmap-orig,} || die
fi
}
src_configure() {
export ac_cv_path_PYTHON="${PYTHON}"
export am_cv_pathless_PYTHON="${EPYTHON}"
local myeconfargs=(
$(use_enable ipv6)
$(use_enable nls)
$(use_with libssh2)
$(use_with ncat)
$(use_with ndiff)
$(use_with nping)
$(use_with nse liblua)
$(use_with ssl openssl)
$(use_with zenmap)
$(usex libssh2 --with-zlib)
$(usex nse --with-zlib)
--cache-file="${S}"/config.cache
# The bundled libdnet is incompatible with the version available in the
# tree, so we cannot use the system library here.
--with-libdnet=included
--with-pcre="${ESYSROOT}"/usr
--without-dpdk
)
econf "${myeconfargs[@]}"
}
src_compile() {
local directory
for directory in . libnetutil nsock/src $(usev ncat) $(usev nping) ; do
emake -C "${directory}" makefile.dep
done
emake \
AR="$(tc-getAR)" \
RANLIB="$(tc-getRANLIB)"
}
src_install() {
# See bug #831713 for return of -j1
LC_ALL=C emake \
-j1 \
DESTDIR="${D}" \
STRIP=: \
nmapdatadir="${EPREFIX}"/usr/share/nmap \
install
dodoc CHANGELOG HACKING docs/README docs/*.txt
if use ndiff || use zenmap ; then
python_optimize
fi
use symlink && dosym /usr/bin/ncat /usr/bin/nc
}

View File

@ -1,206 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
LUA_COMPAT=( lua5-4 )
LUA_REQ_USE="deprecated"
DISTUTILS_OPTIONAL=1
DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..12} )
PLOCALES="de es fr hi hr hu id it ja pl pt_BR pt_PR ro ru sk zh"
PLOCALE_BACKUP="en"
inherit autotools distutils-r1 lua-single plocale toolchain-funcs
DESCRIPTION="Network exploration tool and security / port scanner"
HOMEPAGE="https://nmap.org/"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/nmap/nmap"
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nmap.asc
inherit verify-sig
SRC_URI="https://nmap.org/dist/${P}.tar.bz2"
SRC_URI+=" verify-sig? ( https://nmap.org/dist/sigs/${P}.tar.bz2.asc )"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
fi
SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-7.95-patches-2.tar.xz"
# https://github.com/nmap/nmap/issues/2199
LICENSE="NPSL-0.95"
SLOT="0"
IUSE="ipv6 libssh2 ncat ndiff nping nls +nse ssl symlink zenmap"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
nse? ( ${LUA_REQUIRED_USE} )
symlink? ( ncat )
"
RDEPEND="
dev-libs/liblinear:=
dev-libs/libpcre2
net-libs/libpcap
ndiff? ( ${PYTHON_DEPS} )
libssh2? (
net-libs/libssh2[zlib]
sys-libs/zlib
)
nls? ( virtual/libintl )
nse? (
${LUA_DEPS}
sys-libs/zlib
)
ssl? ( dev-libs/openssl:= )
symlink? (
ncat? (
!net-analyzer/netcat
!net-analyzer/openbsd-netcat
)
)
zenmap? (
${PYTHON_DEPS}
$(python_gen_cond_dep '
dev-python/pygobject:3[${PYTHON_USEDEP}]
')
)
"
DEPEND="${RDEPEND}"
# Python is always needed at build time for some scripts
BDEPEND="
${PYTHON_DEPS}
virtual/pkgconfig
nls? ( sys-devel/gettext )
zenmap? ( ${DISTUTILS_DEPS} )
"
if [[ ${PV} != *9999* ]] ; then
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-nmap )"
fi
PATCHES=(
"${WORKDIR}"/${PN}-7.95-patches-2
)
pkg_setup() {
use nse && lua-single_pkg_setup
}
src_unpack() {
if [[ ${PV} == *9999 ]] ; then
git-r3_src_unpack
elif use verify-sig ; then
# Needed for downloaded patch (which is unsigned, which is fine)
verify-sig_verify_detached "${DISTDIR}"/${P}.tar.bz2{,.asc}
fi
default
}
src_prepare() {
default
# Drop bundled libraries
rm -r liblinear/ libpcap/ libpcre/ libssh2/ libz/ || die
cat "${FILESDIR}"/nls.m4 >> "${S}"/acinclude.m4 || die
delete_disabled_locale() {
# Force here as PLOCALES contains supported locales for man
# pages and zenmap doesn't have all of those
rm -rf zenmap/share/zenmap/locale/${1} || die
rm -f zenmap/share/zenmap/locale/${1}.po || die
}
plocale_for_each_disabled_locale delete_disabled_locale
sed -i \
-e '/^ALL_LINGUAS =/{s|$| id|g;s|jp|ja|g}' \
Makefile.in || die
cp libdnet-stripped/include/config.h.in{,.nmap-orig} || die
eautoreconf
if [[ ${CHOST} == *-darwin* ]] ; then
# We need the original for a Darwin-specific fix, bug #604432
mv libdnet-stripped/include/config.h.in{.nmap-orig,} || die
fi
}
src_configure() {
export ac_cv_path_PYTHON="${PYTHON}"
export am_cv_pathless_PYTHON="${EPYTHON}"
python_setup
local myeconfargs=(
$(use_enable ipv6)
$(use_enable nls)
$(use_with libssh2)
$(use_with ncat)
$(use_with ndiff)
$(use_with nping)
$(use_with nse liblua)
$(use_with ssl openssl)
$(use_with zenmap)
$(usex libssh2 --with-zlib)
$(usex nse --with-zlib)
--cache-file="${S}"/config.cache
# The bundled libdnet is incompatible with the version available in the
# tree, so we cannot use the system library here.
--with-libdnet=included
--with-pcre="${ESYSROOT}"/usr
--without-dpdk
)
econf "${myeconfargs[@]}"
}
src_compile() {
local directory
for directory in . libnetutil nsock/src $(usev ncat) $(usev nping) ; do
emake -C "${directory}" makefile.dep
done
emake \
AR="$(tc-getAR)" \
RANLIB="$(tc-getRANLIB)"
if use zenmap ; then
cd zenmap || die
distutils-r1_src_compile
fi
}
src_test() {
local -x PATH="${S}:${PATH}"
default
}
src_install() {
# See bug #831713 for return of -j1
LC_ALL=C emake \
-j1 \
DESTDIR="${D}" \
STRIP=: \
nmapdatadir="${EPREFIX}"/usr/share/nmap \
install
dodoc CHANGELOG HACKING docs/README docs/*.txt
use symlink && dosym /usr/bin/ncat /usr/bin/nc
if use ndiff ; then
python_optimize
fi
if use zenmap ; then
distutils-r1_src_install
fi
}

View File

@ -1,206 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
LUA_COMPAT=( lua5-4 )
LUA_REQ_USE="deprecated"
DISTUTILS_OPTIONAL=1
DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..12} )
PLOCALES="de es fr hi hr hu id it ja pl pt_BR pt_PR ro ru sk zh"
PLOCALE_BACKUP="en"
inherit autotools distutils-r1 lua-single plocale toolchain-funcs
DESCRIPTION="Network exploration tool and security / port scanner"
HOMEPAGE="https://nmap.org/"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/nmap/nmap"
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nmap.asc
inherit verify-sig
SRC_URI="https://nmap.org/dist/${P}.tar.bz2"
SRC_URI+=" verify-sig? ( https://nmap.org/dist/sigs/${P}.tar.bz2.asc )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
fi
SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-7.95-patches-2.tar.xz"
# https://github.com/nmap/nmap/issues/2199
LICENSE="NPSL-0.95"
SLOT="0"
IUSE="ipv6 libssh2 ncat ndiff nping nls +nse ssl symlink zenmap"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
nse? ( ${LUA_REQUIRED_USE} )
symlink? ( ncat )
"
RDEPEND="
dev-libs/liblinear:=
dev-libs/libpcre2
net-libs/libpcap
ndiff? ( ${PYTHON_DEPS} )
libssh2? (
net-libs/libssh2[zlib]
sys-libs/zlib
)
nls? ( virtual/libintl )
nse? (
${LUA_DEPS}
sys-libs/zlib
)
ssl? ( dev-libs/openssl:= )
symlink? (
ncat? (
!net-analyzer/netcat
!net-analyzer/openbsd-netcat
)
)
zenmap? (
${PYTHON_DEPS}
$(python_gen_cond_dep '
dev-python/pygobject:3[${PYTHON_USEDEP}]
')
)
"
DEPEND="${RDEPEND}"
# Python is always needed at build time for some scripts
BDEPEND="
${PYTHON_DEPS}
virtual/pkgconfig
nls? ( sys-devel/gettext )
zenmap? ( ${DISTUTILS_DEPS} )
"
if [[ ${PV} != *9999* ]] ; then
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-nmap )"
fi
PATCHES=(
"${WORKDIR}"/${PN}-7.95-patches-2
)
pkg_setup() {
use nse && lua-single_pkg_setup
}
src_unpack() {
if [[ ${PV} == *9999 ]] ; then
git-r3_src_unpack
elif use verify-sig ; then
# Needed for downloaded patch (which is unsigned, which is fine)
verify-sig_verify_detached "${DISTDIR}"/${P}.tar.bz2{,.asc}
fi
default
}
src_prepare() {
default
# Drop bundled libraries
rm -r liblinear/ libpcap/ libpcre/ libssh2/ libz/ || die
cat "${FILESDIR}"/nls.m4 >> "${S}"/acinclude.m4 || die
delete_disabled_locale() {
# Force here as PLOCALES contains supported locales for man
# pages and zenmap doesn't have all of those
rm -rf zenmap/share/zenmap/locale/${1} || die
rm -f zenmap/share/zenmap/locale/${1}.po || die
}
plocale_for_each_disabled_locale delete_disabled_locale
sed -i \
-e '/^ALL_LINGUAS =/{s|$| id|g;s|jp|ja|g}' \
Makefile.in || die
cp libdnet-stripped/include/config.h.in{,.nmap-orig} || die
eautoreconf
if [[ ${CHOST} == *-darwin* ]] ; then
# We need the original for a Darwin-specific fix, bug #604432
mv libdnet-stripped/include/config.h.in{.nmap-orig,} || die
fi
}
src_configure() {
export ac_cv_path_PYTHON="${PYTHON}"
export am_cv_pathless_PYTHON="${EPYTHON}"
python_setup
local myeconfargs=(
$(use_enable ipv6)
$(use_enable nls)
$(use_with libssh2)
$(use_with ncat)
$(use_with ndiff)
$(use_with nping)
$(use_with nse liblua)
$(use_with ssl openssl)
$(use_with zenmap)
$(usex libssh2 --with-zlib)
$(usex nse --with-zlib)
--cache-file="${S}"/config.cache
# The bundled libdnet is incompatible with the version available in the
# tree, so we cannot use the system library here.
--with-libdnet=included
--with-pcre="${ESYSROOT}"/usr
--without-dpdk
)
econf "${myeconfargs[@]}"
}
src_compile() {
local directory
for directory in . libnetutil nsock/src $(usev ncat) $(usev nping) ; do
emake -C "${directory}" makefile.dep
done
emake \
AR="$(tc-getAR)" \
RANLIB="$(tc-getRANLIB)"
if use zenmap ; then
cd zenmap || die
distutils-r1_src_compile
fi
}
src_test() {
local -x PATH="${S}:${PATH}"
default
}
src_install() {
# See bug #831713 for return of -j1
LC_ALL=C emake \
-j1 \
DESTDIR="${D}" \
STRIP=: \
nmapdatadir="${EPREFIX}"/usr/share/nmap \
install
dodoc CHANGELOG HACKING docs/README docs/*.txt
use symlink && dosym /usr/bin/ncat /usr/bin/nc
if use ndiff ; then
python_optimize
fi
if use zenmap ; then
distutils-r1_src_install
fi
}

View File

@ -0,0 +1,4 @@
DIST netcat-openbsd_1.218-5.debian.tar.xz 52052 BLAKE2B 38ccde34bfa6f1873a8e38fa7355f94bc74cdeb125fd4081fd68819a685d49a4c8a6cc7ed243d49df2d38c7536f4ac680d598bd4c28a938bc4750c89376d2961 SHA512 a230eb143e32fe80ee108325bb81c4e163d48982b484bf4a93ef266e9eed12890e7e294c2fe3dd2ce91fe5aec7de2f1407bf25dc938c2565bfb3e0759555dddc
DIST netcat-openbsd_1.218.orig.tar.gz 22964 BLAKE2B 2dba29cc93ef5295ec24db7632454564fa640fba139116d2732aff465c9a4b37238f65d51ad727f9b29d304b73ce05282b82ec468444c63f5611a90a1384ac62 SHA512 a830f0e3efdff01ba1bb0b344f49d545b9c184001cd641e523a6d24670b97d52dc723318660a5ec8f3215cb57ebe62ca4c06387000b6c8b6495a5c653a4206c6
DIST netcat-openbsd_1.219-1.debian.tar.xz 52048 BLAKE2B 62c2e4a6446fbdb01ea34a70c10dc72a980e62b4d8e06e4564f05932b9fb291be73558a1b8c11f448c509b0fc3c5fe42381a1a9f0a14bba0c2e087dd1e6da9f1 SHA512 badc1afbe8a467c068fa1d3bf12817d568eae5bb9774f9f11d3b30c065eb3a8b39724bb456329d7153ea3160cd10fab159a6756f7eeafd9bfc8c5d78114f7da6
DIST netcat-openbsd_1.219.orig.tar.gz 22940 BLAKE2B 4e871124a22fec2ba572f2a614b7eb5134565acd5d952973f7e7f76ead6b22d0811efcc916726da1e7719c5d3014f94ea53ad09804a77b55c4b15fc571bf0e95 SHA512 9f6d531d33410457b8f1e6a3eb0d105dbd819d5e4fe9753d32d7fd4583680ceba102a60307a8b5ef26b47047492b207388742b725da3708d30d360d4a196f115

View File

@ -0,0 +1,349 @@
diff -Naur netcat-openbsd-1.105.orig/Makefile netcat-openbsd-1.105/Makefile
--- netcat-openbsd-1.105.orig/Makefile 2017-06-18 09:01:44.293852659 -0700
+++ netcat-openbsd-1.105/Makefile 2017-06-18 09:04:35.566687655 -0700
@@ -1,7 +1,7 @@
# $OpenBSD: Makefile,v 1.6 2001/09/02 18:45:41 jakob Exp $
PROG= nc
-SRCS= netcat.c atomicio.c socks.c
+SRCS= netcat.c atomicio.c socks.c compat/base64.c
LIBS= `pkg-config --libs libbsd` -lresolv
OBJS= $(SRCS:.c=.o)
diff -Naur netcat-openbsd-1.105.orig/compat/base64.c netcat-openbsd-1.105/compat/base64.c
--- netcat-openbsd-1.105.orig/compat/base64.c 1969-12-31 16:00:00.000000000 -0800
+++ netcat-openbsd-1.105/compat/base64.c 2017-06-18 09:01:31.288700637 -0700
@@ -0,0 +1,315 @@
+/* $OpenBSD: base64.c,v 1.8 2015/01/16 16:48:51 deraadt Exp $ */
+
+/*
+ * Copyright (c) 1996 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/*
+ * Portions Copyright (c) 1995 by International Business Machines, Inc.
+ *
+ * International Business Machines, Inc. (hereinafter called IBM) grants
+ * permission under its copyrights to use, copy, modify, and distribute this
+ * Software with or without fee, provided that the above copyright notice and
+ * all paragraphs of this notice appear in all copies, and that the name of IBM
+ * not be used in connection with the marketing of any product incorporating
+ * the Software or modifications thereof, without specific, written prior
+ * permission.
+ *
+ * To the extent it has a right to do so, IBM grants an immunity from suit
+ * under its patents, if any, for the use, sale or manufacture of products to
+ * the extent that such products are used for performing Domain Name System
+ * dynamic updates in TCP/IP networks by means of the Software. No immunity is
+ * granted for any product per se or for any other function of any product.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
+ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
+ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <arpa/nameser.h>
+
+#include <ctype.h>
+#include <resolv.h>
+#include <stdio.h>
+
+#include <stdlib.h>
+#include <string.h>
+
+static const char Base64[] =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+static const char Pad64 = '=';
+
+/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
+ The following encoding technique is taken from RFC 1521 by Borenstein
+ and Freed. It is reproduced here in a slightly edited form for
+ convenience.
+
+ A 65-character subset of US-ASCII is used, enabling 6 bits to be
+ represented per printable character. (The extra 65th character, "=",
+ is used to signify a special processing function.)
+
+ The encoding process represents 24-bit groups of input bits as output
+ strings of 4 encoded characters. Proceeding from left to right, a
+ 24-bit input group is formed by concatenating 3 8-bit input groups.
+ These 24 bits are then treated as 4 concatenated 6-bit groups, each
+ of which is translated into a single digit in the base64 alphabet.
+
+ Each 6-bit group is used as an index into an array of 64 printable
+ characters. The character referenced by the index is placed in the
+ output string.
+
+ Table 1: The Base64 Alphabet
+
+ Value Encoding Value Encoding Value Encoding Value Encoding
+ 0 A 17 R 34 i 51 z
+ 1 B 18 S 35 j 52 0
+ 2 C 19 T 36 k 53 1
+ 3 D 20 U 37 l 54 2
+ 4 E 21 V 38 m 55 3
+ 5 F 22 W 39 n 56 4
+ 6 G 23 X 40 o 57 5
+ 7 H 24 Y 41 p 58 6
+ 8 I 25 Z 42 q 59 7
+ 9 J 26 a 43 r 60 8
+ 10 K 27 b 44 s 61 9
+ 11 L 28 c 45 t 62 +
+ 12 M 29 d 46 u 63 /
+ 13 N 30 e 47 v
+ 14 O 31 f 48 w (pad) =
+ 15 P 32 g 49 x
+ 16 Q 33 h 50 y
+
+ Special processing is performed if fewer than 24 bits are available
+ at the end of the data being encoded. A full encoding quantum is
+ always completed at the end of a quantity. When fewer than 24 input
+ bits are available in an input group, zero bits are added (on the
+ right) to form an integral number of 6-bit groups. Padding at the
+ end of the data is performed using the '=' character.
+
+ Since all base64 input is an integral number of octets, only the
+ -------------------------------------------------
+ following cases can arise:
+
+ (1) the final quantum of encoding input is an integral
+ multiple of 24 bits; here, the final unit of encoded
+ output will be an integral multiple of 4 characters
+ with no "=" padding,
+ (2) the final quantum of encoding input is exactly 8 bits;
+ here, the final unit of encoded output will be two
+ characters followed by two "=" padding characters, or
+ (3) the final quantum of encoding input is exactly 16 bits;
+ here, the final unit of encoded output will be three
+ characters followed by one "=" padding character.
+ */
+
+int
+b64_ntop(src, srclength, target, targsize)
+ u_char const *src;
+ size_t srclength;
+ char *target;
+ size_t targsize;
+{
+ size_t datalength = 0;
+ u_char input[3];
+ u_char output[4];
+ int i;
+
+ while (2 < srclength) {
+ input[0] = *src++;
+ input[1] = *src++;
+ input[2] = *src++;
+ srclength -= 3;
+
+ output[0] = input[0] >> 2;
+ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
+ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
+ output[3] = input[2] & 0x3f;
+
+ if (datalength + 4 > targsize)
+ return (-1);
+ target[datalength++] = Base64[output[0]];
+ target[datalength++] = Base64[output[1]];
+ target[datalength++] = Base64[output[2]];
+ target[datalength++] = Base64[output[3]];
+ }
+
+ /* Now we worry about padding. */
+ if (0 != srclength) {
+ /* Get what's left. */
+ input[0] = input[1] = input[2] = '\0';
+ for (i = 0; i < srclength; i++)
+ input[i] = *src++;
+
+ output[0] = input[0] >> 2;
+ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
+ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
+
+ if (datalength + 4 > targsize)
+ return (-1);
+ target[datalength++] = Base64[output[0]];
+ target[datalength++] = Base64[output[1]];
+ if (srclength == 1)
+ target[datalength++] = Pad64;
+ else
+ target[datalength++] = Base64[output[2]];
+ target[datalength++] = Pad64;
+ }
+ if (datalength >= targsize)
+ return (-1);
+ target[datalength] = '\0'; /* Returned value doesn't count \0. */
+ return (datalength);
+}
+
+/* skips all whitespace anywhere.
+ converts characters, four at a time, starting at (or after)
+ src from base - 64 numbers into three 8 bit bytes in the target area.
+ it returns the number of data bytes stored at the target, or -1 on error.
+ */
+
+int
+b64_pton(src, target, targsize)
+ char const *src;
+ u_char *target;
+ size_t targsize;
+{
+ int tarindex, state, ch;
+ u_char nextbyte;
+ char *pos;
+
+ state = 0;
+ tarindex = 0;
+
+ while ((ch = (unsigned char)*src++) != '\0') {
+ if (isspace(ch)) /* Skip whitespace anywhere. */
+ continue;
+
+ if (ch == Pad64)
+ break;
+
+ pos = strchr(Base64, ch);
+ if (pos == 0) /* A non-base64 character. */
+ return (-1);
+
+ switch (state) {
+ case 0:
+ if (target) {
+ if (tarindex >= targsize)
+ return (-1);
+ target[tarindex] = (pos - Base64) << 2;
+ }
+ state = 1;
+ break;
+ case 1:
+ if (target) {
+ if (tarindex >= targsize)
+ return (-1);
+ target[tarindex] |= (pos - Base64) >> 4;
+ nextbyte = ((pos - Base64) & 0x0f) << 4;
+ if (tarindex + 1 < targsize)
+ target[tarindex+1] = nextbyte;
+ else if (nextbyte)
+ return (-1);
+ }
+ tarindex++;
+ state = 2;
+ break;
+ case 2:
+ if (target) {
+ if (tarindex >= targsize)
+ return (-1);
+ target[tarindex] |= (pos - Base64) >> 2;
+ nextbyte = ((pos - Base64) & 0x03) << 6;
+ if (tarindex + 1 < targsize)
+ target[tarindex+1] = nextbyte;
+ else if (nextbyte)
+ return (-1);
+ }
+ tarindex++;
+ state = 3;
+ break;
+ case 3:
+ if (target) {
+ if (tarindex >= targsize)
+ return (-1);
+ target[tarindex] |= (pos - Base64);
+ }
+ tarindex++;
+ state = 0;
+ break;
+ }
+ }
+
+ /*
+ * We are done decoding Base-64 chars. Let's see if we ended
+ * on a byte boundary, and/or with erroneous trailing characters.
+ */
+
+ if (ch == Pad64) { /* We got a pad char. */
+ ch = (unsigned char)*src++; /* Skip it, get next. */
+ switch (state) {
+ case 0: /* Invalid = in first position */
+ case 1: /* Invalid = in second position */
+ return (-1);
+
+ case 2: /* Valid, means one byte of info */
+ /* Skip any number of spaces. */
+ for (; ch != '\0'; ch = (unsigned char)*src++)
+ if (!isspace(ch))
+ break;
+ /* Make sure there is another trailing = sign. */
+ if (ch != Pad64)
+ return (-1);
+ ch = (unsigned char)*src++; /* Skip the = */
+ /* Fall through to "single trailing =" case. */
+ /* FALLTHROUGH */
+
+ case 3: /* Valid, means two bytes of info */
+ /*
+ * We know this char is an =. Is there anything but
+ * whitespace after it?
+ */
+ for (; ch != '\0'; ch = (unsigned char)*src++)
+ if (!isspace(ch))
+ return (-1);
+
+ /*
+ * Now make sure for cases 2 and 3 that the "extra"
+ * bits that slopped past the last full byte were
+ * zeros. If we don't check them, they become a
+ * subliminal channel.
+ */
+ if (target && tarindex < targsize &&
+ target[tarindex] != 0)
+ return (-1);
+ }
+ } else {
+ /*
+ * We ended by seeing the end of the string. Make sure we
+ * have no partial bytes lying around.
+ */
+ if (state != 0)
+ return (-1);
+ }
+
+ return (tarindex);
+}
diff -Naur netcat-openbsd-1.105.orig/compat/base64.h netcat-openbsd-1.105/compat/base64.h
--- netcat-openbsd-1.105.orig/compat/base64.h 1969-12-31 16:00:00.000000000 -0800
+++ netcat-openbsd-1.105/compat/base64.h 2017-06-18 09:09:02.057554167 -0700
@@ -0,0 +1,3 @@
+#include <sys/types.h>
+int b64_ntop(u_char const* src, size_t srclength, char *target, size_t targsize);
+int b64_pton(char const* src, u_char *target, size_t targsize);
diff -Naur netcat-openbsd-1.105.orig/socks.c netcat-openbsd-1.105/socks.c
--- netcat-openbsd-1.105.orig/socks.c 2017-06-18 09:01:44.293852659 -0700
+++ netcat-openbsd-1.105/socks.c 2017-06-18 09:09:21.105757665 -0700
@@ -40,6 +40,7 @@
#include <resolv.h>
#include <bsd/readpassphrase.h>
#include "atomicio.h"
+#include "compat/base64.h"
#define SOCKS_PORT "1080"
#define HTTP_PROXY_PORT "3128"

View File

@ -0,0 +1,54 @@
strtonum isn't available on <Darwin-11
however, it is in the header files on systems like 10.15 with an
availability clause, so don't define strtonum static such that it
matches the prototype from stdlib.h
diff --git a/netcat.c b/netcat.c
index a0fb51b..bbb5dd1 100644
--- a/netcat.c
+++ b/netcat.c
@@ -240,6 +243,43 @@ static int connect_with_timeout(int fd, const struct sockaddr *sa,
static void quit();
+static char* strtonumerrs[] = {
+ "too large",
+ "too small",
+ "invalid"
+};
+
+long long
+strtonum(
+ const char *nptr,
+ long long minval,
+ long long maxval,
+ const char **errstr)
+{
+ long long val;
+
+ while (*nptr != '\0' && isspace(*nptr))
+ nptr++;
+ if (*nptr == '\0') {
+ if (errstr != NULL)
+ *errstr = strtonumerrs[2];
+ return 0;
+ }
+ val = atoll(nptr);
+ if (val < minval) {
+ if (errstr != NULL)
+ *errstr = strtonumerrs[1];
+ return 0;
+ }
+ if (val > maxval) {
+ if (errstr != NULL)
+ *errstr = strtonumerrs[0];
+ return 0;
+ }
+ *errstr = NULL;
+ return val;
+}
+
int
main(int argc, char *argv[])
{

View File

@ -0,0 +1,95 @@
Allow compilation on Darwin, reverting parts of Linux/Debian patch
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
--- a/netcat.c 2023-09-26 15:04:51.169658537 +0200
+++ b/netcat.c 2023-09-26 15:07:00.270929256 +0200
@@ -50,13 +50,18 @@
# include <bsd/readpassphrase.h>
#endif
+#ifndef IPTOS_LOWCOST
+# define IPTOS_LOWCOST 0x02
+#endif
#ifndef IPTOS_LOWDELAY
# define IPTOS_LOWDELAY 0x10
# define IPTOS_THROUGHPUT 0x08
# define IPTOS_RELIABILITY 0x04
-# define IPTOS_LOWCOST 0x02
# define IPTOS_MINCOST IPTOS_LOWCOST
#endif /* IPTOS_LOWDELAY */
+#ifndef SOCK_CLOEXEC
+# define SOCK_CLOEXEC 0
+#endif
# ifndef IPTOS_DSCP_AF11
# define IPTOS_DSCP_AF11 0x28
@@ -108,8 +113,9 @@
# include <tls.h>
#endif
#include <unistd.h>
-#include <bsd/stdlib.h>
-#include <bsd/string.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
#include "atomicio.h"
@@ -814,9 +820,8 @@
int connfd;
len = sizeof(cliaddr);
- connfd = accept4(s, (struct sockaddr *)&cliaddr,
- &len, SOCK_NONBLOCK);
- if (connfd == -1) {
+ connfd = accept(s, (struct sockaddr *)&cliaddr, &len);
+ if (connfd == -1 || fcntl(connfd, F_SETFL, O_NONBLOCK) == -1) {
/* For now, all errnos are fatal */
err(1, "accept");
}
@@ -1069,6 +1074,8 @@
} else
err(1, "poll failed");
}
+ if (fcntl(s, F_SETFD, FD_CLOEXEC) == -1)
+ return -1;
return ret;
}
@@ -1218,9 +1225,13 @@
port, gai_strerror(error));
for (res = res0; res; res = res->ai_next) {
- if ((s = socket(res->ai_family, res->ai_socktype |
- SOCK_NONBLOCK, res->ai_protocol)) == -1)
+ if ((s = socket(res->ai_family, res->ai_socktype,
+ res->ai_protocol)) == -1)
continue;
+ if (fcntl(s, F_SETFL, O_NONBLOCK) == -1) {
+ close(s);
+ continue;
+ }
/* Bind to a local port or source address if specified. */
if (sflag || pflag) {
--- a/socks.c 2023-09-26 15:04:51.085185645 +0200
+++ b/socks.c 2023-09-26 15:07:30.947097100 +0200
@@ -38,7 +38,7 @@
#include <string.h>
#include <unistd.h>
#include <resolv.h>
-#include <bsd/readpassphrase.h>
+#include <readpassphrase.h>
#include "atomicio.h"
#define SOCKS_PORT "1080"
@@ -53,6 +53,8 @@
#define SOCKS_DOMAIN 3
#define SOCKS_IPV6 4
+#define explicit_bzero(S,L) bzero(S,L)
+
int remote_connect(const char *, const char *, struct addrinfo, char *);
int socks_connect(const char *, const char *, struct addrinfo,
const char *, const char *, struct addrinfo, int,

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>heroxbd@gentoo.org</email>
<name>Benda Xu</name>
</maintainer>
</pkgmetadata>

View File

@ -0,0 +1,68 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit toolchain-funcs
MY_PV=$(ver_cut 1-2)
DESCRIPTION="The OpenBSD network swiss army knife"
HOMEPAGE="https://cvsweb.openbsd.org/src/usr.bin/nc/ https://salsa.debian.org/debian/netcat-openbsd"
SRC_URI="
mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}.orig.tar.gz
mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}-$(ver_cut 4).debian.tar.xz
"
S="${WORKDIR}"/netcat-openbsd-${MY_PV}
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ~ppc ppc64 ~riscv x86 ~amd64-linux ~x64-macos"
RDEPEND="
!net-analyzer/netcat
!elibc_Darwin? ( dev-libs/libbsd )
"
BDEPEND="virtual/pkgconfig"
src_prepare() {
local i
for i in $(<"${WORKDIR}"/debian/patches/series) ; do
PATCHES+=( "${WORKDIR}"/debian/patches/${i} )
done
if [[ ${CHOST} == *-darwin* ]] ; then
# This undoes some of the Debian/Linux changes
PATCHES+=( "${FILESDIR}"/${PN}-1.219-darwin.patch )
if [[ ${CHOST##*-darwin} -lt 20 ]] ; then
PATCHES+=( "${FILESDIR}"/${PN}-1.190-darwin13.patch )
fi
fi
if use elibc_musl ; then
PATCHES+=( "${FILESDIR}"/${PN}-1.105-musl-b64_ntop.patch )
fi
default
}
src_compile() {
emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
}
src_install() {
dobin nc
doman nc.1
cd "${WORKDIR}"/debian || die
newdoc netcat-openbsd.README.Debian README
dodoc -r examples
}
pkg_postinst() {
if use kernel_linux ; then
ewarn "SO_REUSEPORT is introduced in linux 3.9. If your running kernel is older"
ewarn "and kernel header is newer, nc will not listen correctly. Matching the header"
ewarn "to the running kernel will do. See bug #490246 for details."
fi
}

View File

@ -0,0 +1,68 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit toolchain-funcs
MY_PV=$(ver_cut 1-2)
DESCRIPTION="The OpenBSD network swiss army knife"
HOMEPAGE="https://cvsweb.openbsd.org/src/usr.bin/nc/ https://salsa.debian.org/debian/netcat-openbsd"
SRC_URI="
mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}.orig.tar.gz
mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}-$(ver_cut 4).debian.tar.xz
"
S="${WORKDIR}"/netcat-openbsd-${MY_PV}
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86 ~amd64-linux ~arm64-macos ~x64-macos"
RDEPEND="
!net-analyzer/netcat
!elibc_Darwin? ( dev-libs/libbsd )
"
BDEPEND="virtual/pkgconfig"
src_prepare() {
local i
for i in $(<"${WORKDIR}"/debian/patches/series) ; do
PATCHES+=( "${WORKDIR}"/debian/patches/${i} )
done
if [[ ${CHOST} == *-darwin* ]] ; then
# This undoes some of the Debian/Linux changes
PATCHES+=( "${FILESDIR}"/${PN}-1.219-darwin.patch )
if [[ ${CHOST##*-darwin} -lt 20 ]] ; then
PATCHES+=( "${FILESDIR}"/${PN}-1.190-darwin13.patch )
fi
fi
if use elibc_musl ; then
PATCHES+=( "${FILESDIR}"/${PN}-1.105-musl-b64_ntop.patch )
fi
default
}
src_compile() {
emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" PKG_CONFIG="$(tc-getPKG_CONFIG)"
}
src_install() {
dobin nc
doman nc.1
cd "${WORKDIR}"/debian || die
newdoc netcat-openbsd.README.Debian README
dodoc -r examples
}
pkg_postinst() {
if use kernel_linux ; then
ewarn "SO_REUSEPORT is introduced in linux 3.9. If your running kernel is older"
ewarn "and kernel header is newer, nc will not listen correctly. Matching the header"
ewarn "to the running kernel will do. See bug #490246 for details."
fi
}