summaryrefslogtreecommitdiff
path: root/net-analyzer/openbsd-netcat
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-06-20 14:45:01 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-06-20 14:45:01 +0100
commit34dea8e38f88007799629d0a56b12dec480b1d21 (patch)
tree6790873994b58030360328cf5897d934b3b03d16 /net-analyzer/openbsd-netcat
parent7932d472a02d4c016ff7dff4b7a5479ab9d1883d (diff)
gentoo resync : 20.06.2021
Diffstat (limited to 'net-analyzer/openbsd-netcat')
-rw-r--r--net-analyzer/openbsd-netcat/Manifest11
-rw-r--r--net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-darwin.patch84
-rw-r--r--net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-musl-b64_ntop.patch349
-rw-r--r--net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin.patch44
-rw-r--r--net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin13.patch54
-rw-r--r--net-analyzer/openbsd-netcat/files/openbsd-netcat-1.195-darwin.patch96
-rw-r--r--net-analyzer/openbsd-netcat/openbsd-netcat-1.105.ebuild37
-rw-r--r--net-analyzer/openbsd-netcat/openbsd-netcat-1.195-r1.ebuild (renamed from net-analyzer/openbsd-netcat/openbsd-netcat-1.105-r1.ebuild)30
8 files changed, 523 insertions, 182 deletions
diff --git a/net-analyzer/openbsd-netcat/Manifest b/net-analyzer/openbsd-netcat/Manifest
index 477218678d64..acd6b8723cc1 100644
--- a/net-analyzer/openbsd-netcat/Manifest
+++ b/net-analyzer/openbsd-netcat/Manifest
@@ -1,13 +1,12 @@
-AUX openbsd-netcat-1.105-darwin.patch 1570 BLAKE2B 543d1ed6cfb7c899423586647afbe1e87ff36d96531101458c90de43631fbd456f23125991558df395170369b624fb168162beb0851213530fb85874d62ba310 SHA512 dab238783cd2b67c42670c470bd02016049b73f447c19626f1df42739577296cad273cc20f6162e23d9e9ab0be3d09865356ec22323922275283b223497b6522
-AUX openbsd-netcat-1.190-darwin.patch 2806 BLAKE2B dcd54e828f78f038f00b8626c964e454bab3707f642450dc1118dd21e25cb79c993e6897b534f123a6d9eeda7f724e27c992f94c23ae8843eeb7457f687914aa SHA512 2d13d6541151adc045624c383ca8def21d067da28587fc7f55969205e18d9039b01e0c1b9c31cba3eaede4fe42fad95aa6c75445faa831379849b7b74910d663
-DIST netcat-openbsd_1.105-7.debian.tar.gz 31843 BLAKE2B 115eb2d0c0f35055eb26608746806ba97d15b9320954b5d531a73f3f76ed22238395797e90bc3e60dd9cf5b31e696eec59843f37001093013ed0ef82ae590126 SHA512 ec507c858a9f0e75f5a8d6ee8e60eef5200428e55091e831a7acba6c61d70f97af01103c9b65354b0ce773214b0758d957852af793debb70be8aab5b5900b3f6
-DIST netcat-openbsd_1.105.orig.tar.gz 14891 BLAKE2B 65119a4e2cb3d9cd7b2d7d346b827ff1c175cc3255f40d70bbd45213b438635d6b063b3cf210d27595e38b0d67339788221ae5c3737e6096782245fb573bca3a SHA512 1e515b5af83a12c6f270d6e8bede6406cc7c9f83ca0e316816508dfe2e2c49cda3fffb6b24a3922bf9908dc8b70d540eb8cc49e9cbfe867e49133c004d3f4703
+AUX openbsd-netcat-1.105-musl-b64_ntop.patch 12296 BLAKE2B 6c67948bc99aebe60e43dc960f123e245f46ffb14afdc2ff81f45e6786ab1044152d37997b5d3a18872a230e68073de343d3210ea4a584e378ee733bdee02d10 SHA512 65f00cbcef90d55967a2af70a963d8851292bf13affe4c69f02a508c1e9189591dd9b4d115b73337a46089c81b8503d5cf3281b113160c161b06a38b03421ce3
+AUX openbsd-netcat-1.190-darwin.patch 2045 BLAKE2B d2e0633b38eeb19d6e8dd3dfc6c11fc5b9e47898a5bd1a7793a29a19eff32eb2aa389d8056eb41749a2a75f9254c1bc39b19d29798eea0b9eb85a6a0cf828284 SHA512 527ec082c617e81aaa48e648d07437eddfb65f7dd8ba6e69042c53e00921ddeec53298e85421e847046bcfd7a93425deca5fccf6a9ff2d31b1bcddce3012ce40
+AUX openbsd-netcat-1.190-darwin13.patch 1055 BLAKE2B 9aa8cd60a0d36f58a2c10476e6a754c5961375bc3747dceb7ad7a000fa423f9d139be8f9e78986b15a72fbe20c0f48409e461719cff1a27f4fa1867466cf8941 SHA512 ccdafb9dc20e7f03dd54967d1abf9b0840a5c9dfe54bb33342eb8f70c41dea588a00d6a4b423663a83e26e87c685bc32c711587a53b76a53ec4eb45c361a4071
+AUX openbsd-netcat-1.195-darwin.patch 2312 BLAKE2B 3f3f463b7e438772522e6e8e64dda8be6feeb674b424326e2b3d4eac1031d455544d7c047336c4a64a9ab4c5982eae8d6269d0d8901f7f10df326cbe324847ba SHA512 31f3dd9713daad1844a96f3bb5691d6dfaaf69e81a8c6a67b985e65868365e3e4b8b7b67798d8a82e64f3c1f53a21c7cd7b4df6d94062bcf90022c741b1dad66
DIST netcat-openbsd_1.190-2.debian.tar.xz 34836 BLAKE2B 3ff4390c07d05e8d1a19c8696da12bdc6bba07c6e88281b04cd7915509f44a14dda66462128da768b255d92f3a02d008750a860db9290f9f8e0e0bb9dd66e01b SHA512 c33510ad6761627e0b7e564747f6ae82c7569157bdc91f6a282a97b038b2b0917c27fdfba137462c7c34d84fcfdfe8b6393204884d153e3d200a86f5c6657a9a
DIST netcat-openbsd_1.190.orig.tar.gz 22384 BLAKE2B c3e83106f53a0214f71c805b1dfe6b66718dfca217f713a0d7016cb0a3c75c78580fbdd277bd7b5324371145c4b986ebb867e6f779cd61ffecb8e732ebabcb84 SHA512 32310813391f63b8283dc4a63e52821e464ecbfcd0ea995e8e15047c6252a86b31eb4725dc69b778594c43d6ce0cc081aa0f00d7cda0587c91941f20b93a33fe
DIST netcat-openbsd_1.195-2.debian.tar.xz 35984 BLAKE2B eedac24eedc243ad1d58576be76f4f98392e1f455863fa3cdc06bde2714612819b7dfa98dd45c1739a65680469460410f5e4b2f4144f4c24fea04b59dda4d0da SHA512 2a5cc6d04112fdde007be4b9adb3aee44060570c0cb2ae0e33e54af3d37c0b2ff4d6c96edf1f16047365106c7c3720195b38417af3c332226c9be81d49caa552
DIST netcat-openbsd_1.195.orig.tar.gz 22480 BLAKE2B 53c750c168d7ea5dc2ca653598e42700e2b3ee888d946a09503a22fa3bcbc2c73658f38787314bef628d609ad370223f6889b7019760bf51817f73fc570e1dcc SHA512 ea95cda028f2759835ea8832db0174c178b002d5a917f4c51594445a5377a30d6114ac261071eea98d3d0b60ae1ec72102609db1625dbc5a6e57c67e28d2ff51
-EBUILD openbsd-netcat-1.105-r1.ebuild 1413 BLAKE2B da35a8c6a4dc193a967b8a4d506a160fbe3719fa60025478c5f3b6cb1de1a71ba542ada14d35b246c7df46f351b961cd565b297083403ca54930672a14bd03ec SHA512 14f79edc17ffeecf6533e30d9e8577e9d615b6b1903bbae241f75239cc0d115597448c35b90c05995a95010a10ce9a79e2b26d7402db2cda00367bb576d0bf90
-EBUILD openbsd-netcat-1.105.ebuild 1134 BLAKE2B c425b0d279ad20feb27a802264128cea191d8863a177f1844b467438110b6741611da891aae0ac6696f9bcbb187589176aac46c4539871462ab27fa7df7a4d30 SHA512 e589f9d09d36eed49ef88cffa0363f8244a0ade60710a043eed891d6c31c008e597b2df5ece4cd87e8ddc4d5078222aa8cff608d51c5ae02be0dccefca1b3a9b
EBUILD openbsd-netcat-1.190.ebuild 1536 BLAKE2B 37424499cff6a5e1dc811f96e1677f4efdb996be069f4474726387dd33bff2305c1cac3127a3330621bbd1cf111f181c4b0a7f47f4a7773d78ff4448f57f4c6e SHA512 b0f937130dacca550c89314f599c32bc6b36747bc90e884a58b4cfbda2a1f28fb2fd1fc66e5507b3412b26ce7c9039fa562cf53d123f92fb5cabe48fa7f24573
+EBUILD openbsd-netcat-1.195-r1.ebuild 1731 BLAKE2B 80f578352862419ba0adf7dda2dd6d4b1538460be152a354b0e8ee987fc9319a5668e5dcc53e747d9e583d0ab280627ad5d51328e4fc3411c27fc84aa44a62e6 SHA512 d535c9ed6fc4d7ff319ac723fa8f4ab5d4a69ffd2319b4285bb5c2b0e39a6aca60497c2838372b27715d5df538a36254025e91849e477a0c8c25c6b4f215188e
EBUILD openbsd-netcat-1.195.ebuild 1542 BLAKE2B 97c48f8f148eed200429efa52e13ef924d92be828bcbd0045e5ecde9664e0c71951254b0bef38bd9f738be2f59e49893218635c92e752ac45d9ab13f54a5fcff SHA512 a5696d2915e8dc5d11d9756917717420ac08fbb319aedee66171299290c13f4ac3e55775d9072cc24b31e15df01d7f9374b98cc2a9c22b6ffc7cd5d83b6a57d2
MISC metadata.xml 244 BLAKE2B 469b378b5a64e098c2f091fba31658d2193fbb4272f21d40e404757623bbe614474336eb8ef7d7820be4299cfdb6eb41d30fab05327993bafaaf52f9965dfafe SHA512 a8f913706b597ddb605f7e9ad505417dc7422a64037ba11e3a1826e60b882b9b5fac56ce9afd0a6c84380f2984e4079803d10ddc13e686025f65d7228063b59c
diff --git a/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-darwin.patch b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-darwin.patch
deleted file mode 100644
index a6f805af1a66..000000000000
--- a/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-darwin.patch
+++ /dev/null
@@ -1,84 +0,0 @@
---- a/netcat.c
-+++ b/netcat.c
-@@ -43,11 +43,13 @@
- #include <arpa/telnet.h>
- #include <arpa/inet.h>
-
-+#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 */
-
-@@ -96,8 +98,9 @@
- #include <unistd.h>
- #include <fcntl.h>
- #include <limits.h>
--#include <bsd/stdlib.h>
--#include <bsd/string.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <ctype.h>
- #include "atomicio.h"
-
- #ifndef SUN_LEN
-@@ -169,6 +172,43 @@
- socklen_t salen, int ctimeout);
- static void quit();
-
-+static char* strtonumerrs[] = {
-+ "too large",
-+ "too small",
-+ "invalid"
-+};
-+
-+static 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[])
- {
---- a/socks.c
-+++ b/socks.c
-@@ -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"
diff --git a/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-musl-b64_ntop.patch b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-musl-b64_ntop.patch
new file mode 100644
index 000000000000..a9603b38bc03
--- /dev/null
+++ b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-musl-b64_ntop.patch
@@ -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"
diff --git a/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin.patch b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin.patch
index a8453c09067c..72a3fe8ed9f5 100644
--- a/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin.patch
+++ b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin.patch
@@ -34,50 +34,6 @@ index a0fb51b..bbb5dd1 100644
#include "atomicio.h"
-@@ -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"
-+};
-+
-+static 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[])
- {
@@ -814,9 +814,8 @@
# endif
} else {
diff --git a/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin13.patch b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin13.patch
new file mode 100644
index 000000000000..216b8c207922
--- /dev/null
+++ b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin13.patch
@@ -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[])
+ {
diff --git a/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.195-darwin.patch b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.195-darwin.patch
new file mode 100644
index 000000000000..489eceedf6c0
--- /dev/null
+++ b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.195-darwin.patch
@@ -0,0 +1,96 @@
+Allow compilation on Darwin
+
+diff --git a/netcat.c b/netcat.c
+index a0fb51b..bbb5dd1 100644
+--- a/netcat.c
++++ b/netcat.c
+@@ -51,11 +51,16 @@
+ # 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
+
+@@ -108,8 +110,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 +814,8 @@
+ # endif
+ } else {
+ 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");
+ }
+@@ -1100,6 +1099,8 @@
+ return -1;
+ }
+ }
++ if (fcntl(s, F_SETFD, FD_CLOEXEC) == -1)
++ return -1;
+
+ memset(&s_un, 0, sizeof(struct sockaddr_un));
+ s_un.sun_family = AF_UNIX;
+@@ -1174,9 +1175,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)) < 0)
++ if ((s = socket(res->ai_family, res->ai_socktype,
++ res->ai_protocol)) < 0)
++ 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) {
+diff --git a/socks.c b/socks.c
+index 9068f39..68b68e3 100644
+--- a/socks.c
++++ b/socks.c
+@@ -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"
+--- a/socks.c
++++ b/socks.c
+@@ -53,5 +53,7 @@
+ #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);
+ int socks_connect(const char *, const char *, struct addrinfo,
diff --git a/net-analyzer/openbsd-netcat/openbsd-netcat-1.105.ebuild b/net-analyzer/openbsd-netcat/openbsd-netcat-1.105.ebuild
deleted file mode 100644
index 34432cdfd0dd..000000000000
--- a/net-analyzer/openbsd-netcat/openbsd-netcat-1.105.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="the OpenBSD network swiss army knife"
-HOMEPAGE="http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/nc/"
-SRC_URI="http://http.debian.net/debian/pool/main/n/netcat-openbsd/netcat-openbsd_${PV}.orig.tar.gz
- http://http.debian.net/debian/pool/main/n/netcat-openbsd/netcat-openbsd_${PV}-7.debian.tar.gz"
-LICENSE="BSD"
-SLOT="0"
-
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x64-macos"
-
-DEPEND="virtual/pkgconfig"
-RDEPEND="dev-libs/libbsd"
-
-S=${WORKDIR}/netcat-openbsd-${PV}
-
-PATCHES=( "${WORKDIR}/debian/patches" )
-
-src_install() {
- # avoid name conflict against net-analyzer/netcat
- newbin nc nc.openbsd
- newman nc.1 nc.openbsd.1
- cd "${WORKDIR}/debian"
- newdoc netcat-openbsd.README.Debian README
- dodoc -r examples
-}
-
-pkg_postinst() {
- if [[ ${KERNEL} = "linux" ]]; then
- ewarn "FO_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
-}
diff --git a/net-analyzer/openbsd-netcat/openbsd-netcat-1.105-r1.ebuild b/net-analyzer/openbsd-netcat/openbsd-netcat-1.195-r1.ebuild
index 9b84922f8b78..b7288f531c86 100644
--- a/net-analyzer/openbsd-netcat/openbsd-netcat-1.105-r1.ebuild
+++ b/net-analyzer/openbsd-netcat/openbsd-netcat-1.195-r1.ebuild
@@ -1,21 +1,22 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
inherit toolchain-funcs
DESCRIPTION="The OpenBSD network swiss army knife"
-HOMEPAGE="http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/nc/"
+HOMEPAGE="https://cvsweb.openbsd.org/src/usr.bin/nc/
+ https://salsa.debian.org/debian/netcat-openbsd"
SRC_URI="http://http.debian.net/debian/pool/main/n/netcat-openbsd/netcat-openbsd_${PV}.orig.tar.gz
- http://http.debian.net/debian/pool/main/n/netcat-openbsd/netcat-openbsd_${PV}-7.debian.tar.gz"
+ http://http.debian.net/debian/pool/main/n/netcat-openbsd/netcat-openbsd_${PV}-2.debian.tar.xz"
LICENSE="BSD"
SLOT="0"
IUSE="elibc_Darwin"
-KEYWORDS="~amd64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x64-macos"
-DEPEND="virtual/pkgconfig"
+BDEPEND="virtual/pkgconfig"
RDEPEND="!elibc_Darwin? ( dev-libs/libbsd )
!net-analyzer/netcat
!net-analyzer/netcat6
@@ -23,14 +24,21 @@ RDEPEND="!elibc_Darwin? ( dev-libs/libbsd )
S=${WORKDIR}/netcat-openbsd-${PV}
-PATCHES=( "${WORKDIR}/debian/patches" )
-
src_prepare() {
- default
+ for i_patch in $(<"${WORKDIR}"/debian/patches/series); do
+ eapply "${WORKDIR}"/debian/patches/"${i_patch}"
+ done
if [[ ${CHOST} == *-darwin* ]] ; then
# this undoes some of the Debian/Linux changes
- eapply "${FILESDIR}"/${P}-darwin.patch
+ eapply "${FILESDIR}"/${PN}-1.195-darwin.patch
+ if [[ ${CHOST##*-darwin} -lt 20 ]] ; then
+ eapply "${FILESDIR}"/${PN}-1.190-darwin13.patch
+ fi
fi
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/${PN}-1.105-musl-b64_ntop.patch
+ fi
+ default
}
src_compile() {
@@ -40,14 +48,14 @@ src_compile() {
src_install() {
dobin nc
doman nc.1
- cd "${WORKDIR}/debian"
+ cd "${WORKDIR}"/debian || die
newdoc netcat-openbsd.README.Debian README
dodoc -r examples
}
pkg_postinst() {
if [[ ${KERNEL} = "linux" ]]; then
- ewarn "FO_REUSEPORT is introduced in linux 3.9. If your running kernel is older"
+ 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