From bc7c52add6f0e1a7ba555ccf8083ccd84442dd36 Mon Sep 17 00:00:00 2001 From: Laszlo Valko Date: Mon, 20 Mar 2023 04:27:27 +0100 Subject: [PATCH] Added fixed version of package sys-apps/ucspi-tcp-0.88-r19. --- sys-apps/ucspi-tcp/Manifest | 20 + sys-apps/ucspi-tcp/files/0.88-ar-ranlib.patch | 27 + sys-apps/ucspi-tcp/files/0.88-bigendian.patch | 18 + .../files/0.88-implicit-int-ipv6.patch | 11 + .../ucspi-tcp/files/0.88-implicit-int.patch | 261 +++++++++ .../files/0.88-large-responses.patch | 26 + .../ucspi-tcp/files/0.88-protos-ipv6.patch | 89 +++ .../ucspi-tcp/files/0.88-protos-no-ipv6.patch | 36 ++ .../ucspi-tcp/files/0.88-protos-rblspp.patch | 11 + sys-apps/ucspi-tcp/files/0.88-protos.patch | 544 ++++++++++++++++++ .../0.88-rblsmtpd-ignore-on-RELAYCLIENT.patch | 25 + sys-apps/ucspi-tcp/files/0.88-tcprules.patch | 16 + .../ucspi-tcp/files/0.88-uint-headers.patch | 133 +++++ sys-apps/ucspi-tcp/files/tcprules-Makefile | 11 + sys-apps/ucspi-tcp/metadata.xml | 13 + sys-apps/ucspi-tcp/ucspi-tcp-0.88-r19.ebuild | 79 +++ 16 files changed, 1320 insertions(+) create mode 100644 sys-apps/ucspi-tcp/Manifest create mode 100644 sys-apps/ucspi-tcp/files/0.88-ar-ranlib.patch create mode 100644 sys-apps/ucspi-tcp/files/0.88-bigendian.patch create mode 100644 sys-apps/ucspi-tcp/files/0.88-implicit-int-ipv6.patch create mode 100644 sys-apps/ucspi-tcp/files/0.88-implicit-int.patch create mode 100644 sys-apps/ucspi-tcp/files/0.88-large-responses.patch create mode 100644 sys-apps/ucspi-tcp/files/0.88-protos-ipv6.patch create mode 100644 sys-apps/ucspi-tcp/files/0.88-protos-no-ipv6.patch create mode 100644 sys-apps/ucspi-tcp/files/0.88-protos-rblspp.patch create mode 100644 sys-apps/ucspi-tcp/files/0.88-protos.patch create mode 100644 sys-apps/ucspi-tcp/files/0.88-rblsmtpd-ignore-on-RELAYCLIENT.patch create mode 100644 sys-apps/ucspi-tcp/files/0.88-tcprules.patch create mode 100644 sys-apps/ucspi-tcp/files/0.88-uint-headers.patch create mode 100644 sys-apps/ucspi-tcp/files/tcprules-Makefile create mode 100644 sys-apps/ucspi-tcp/metadata.xml create mode 100644 sys-apps/ucspi-tcp/ucspi-tcp-0.88-r19.ebuild diff --git a/sys-apps/ucspi-tcp/Manifest b/sys-apps/ucspi-tcp/Manifest new file mode 100644 index 0000000..ec35efb --- /dev/null +++ b/sys-apps/ucspi-tcp/Manifest @@ -0,0 +1,20 @@ +AUX 0.88-ar-ranlib.patch 545 BLAKE2B c0b9b9c67e7e9682cbf1aefd194c0a590bbe17592a242bd7e140cd0e3cd201197f3cedb2d79cbaad2a647da0c804944f6b4dc84f7f373f7f2d94bffb3c133871 SHA512 9788fff2aaa01f24ae101a1fd45512218dd5032946614eb73ab033d839b21ce9fa9ff967593eb7add15ba4735dd5656e67f79beaaee720d2a2cae1fe8889b7e9 +AUX 0.88-bigendian.patch 458 BLAKE2B 940a5aba8b3aa103d8cf2e64ce3d9dd09464f1fe643f6ca194198db3d2dd4ed23205cacc9ab05e1551b04542c582d6ecb54acd65b83116231daeb9cf7ca6e22e SHA512 042d2810a8fc968cc8b456216465a349bbde19402a26a64204fb3c9bd2621dfda8ceed1283b11812df8d33ba0eb2f4133de289306ef906060b9a9f5775db3918 +AUX 0.88-implicit-int-ipv6.patch 182 BLAKE2B 99675e559fb924c1bdebe8d0bc21c4ab0209d7dc116a7a0e45fc4d0c8c4825a5881ec95837ee43dddca36ffd48a4e9f237c722eed6cd69b6f5217aff2e7db47b SHA512 deb42bac6eed4ee67333968bb5a8fb18831a55c55560268a4bee49d678d042cea66ad81271a77b00263fbb547d7adcb83f279594433bf20dcfc0fe7a2e504e02 +AUX 0.88-implicit-int.patch 4299 BLAKE2B f93ef5874043d94345453ea5f9bb4b34e8d891ff5ccaea0684c73957a5da1f97e2a024efc83b447737392096426a95dc2d39006cb09307179b6d95cf451fcb8a SHA512 ea7d94ae1c2888f9266b7a9c6efde1e6bd6ea54bf0fa7cb3bb94657dbc51f72d33a59e2ffe207b5dd43a2db5331e6f872ebb2df4916b9012bb904100dfb847ae +AUX 0.88-large-responses.patch 772 BLAKE2B 6c1cfc91d76094a282e4cd2a4084e52409b3a4193dff8f89fdb477ef54fcb2bd102b082128eed906422ca87f7a1ef0ea018ea1e9ad297c4390395ad7a1e049f1 SHA512 d429065d9fa232207e21c6fb1c2359b0e7d35ac0142ed28ee6b00e150b0b3c5756e7eb684ee1b8aea35236986bdb046eff529e127c9c09994c4ced41370c26b7 +AUX 0.88-protos-ipv6.patch 2127 BLAKE2B fbef8e74c8ea24246db9d09e26c4b3e4af50ce8ff43ea3efc8f3203d7760d53012d46cd6546efc3ce88cac349e3083bc680429338300402c968d35d1813ac1b9 SHA512 953b3a53246ad16636276f679c84c5f1b86f3dc49a910017fa9c05b175d25a184ed870a920437f4305e2b54021ee2aa2a1d6fa8b7e8d5a367bbc060617b3eb8f +AUX 0.88-protos-no-ipv6.patch 671 BLAKE2B d0c052a53833d9034b92d6ace244aad487c30c17fec5778b9df474aed9de194e92061f496216c50667da41b9dbbf88c8ef439ebbdb0be3c4001fba16425ef3f5 SHA512 56557365c1951e437b6a6b0b8c80d865adc16e2d1fb464a85b367af2d43fbce99e64a6e5a6c8fd4aa0cff53025db6c1ed25458f96316b3c51189d20c5688c0ed +AUX 0.88-protos-rblspp.patch 214 BLAKE2B aaa6b2ff1e2acd5caf753b4621bd0d662fb17ccd264bc780823961829395e53157efbbf91cb953043f6a0d8f370cffcc6b970dac0225dade03ddc324c218e3ba SHA512 f207ff2e03a0d2088b4a00ff224cc4678fbb2bee7289d6d9cc1b8034cdbc7013f3e94a336694ddf6ec599bc86c799caeb1e194f2e44598add909b9ffe37436f1 +AUX 0.88-protos.patch 12339 BLAKE2B 6998ab4d53f709df7d0c6052f7e17318c956ee19cdb40f3e293272e6103600b7de55d70b22d9d027983a997f0ad1de6d7472e6911aaf83af2d471f3fa70fc64c SHA512 af68c2307a1246d1854662a8ee2bcb60d40ff78b8619f62399739d252588152a896ca3955951908b635a5e04ffc17021c06a9b58eea95101afc8104f13f33fea +AUX 0.88-rblsmtpd-ignore-on-RELAYCLIENT.patch 392 BLAKE2B 14f87e385d673b79bfdab44f86cdbf6163aaa11771d1a28b0b6dd669712a60f4825a9f499f4376a39a947e3fc00d47a837ca65d70c763529817e3e7792bea38e SHA512 6d9229011dca513bd2524da52bea06fb6b18fc38ecb99c9885f04d8ebb1221d5df59398363d34d322592f68979eec3f7cd1c095cc88dfd31ee81a19105624fc4 +AUX 0.88-tcprules.patch 483 BLAKE2B 851f22f3064237c94c6e1939a2c3d46fb3e937afc8a7f139b0ff4e99894a16c33f96bcb87fc3a012249f145e74e1e4f6d067e6c63335271a7a8ab326742606ce SHA512 94f83a23de742695c77ea05cf88ef0a1215d6bade587951104b70693a1217c0a2e2e1dc519e4b1c5abad03324fb3d42cc13adb6f15c9455869d5ed6417db4f8a +AUX 0.88-uint-headers.patch 3100 BLAKE2B b3ae425066a313b58cbd95a977b3dd08134b469f2b3393d2713a3b500af96b5556f9e1d458d39446aeb0dae2734b9553b184453d7f5ac780c796d5300437d5dc SHA512 515ab4a81a420697b955578986f544bec082ca42a4384d7795f26e197d6948ded810862d500536ce431e2e7e8dccc8874ffc38c0f1fdea193e9c9e843535f5f6 +AUX tcprules-Makefile 168 BLAKE2B a2fcda7ef405c4c588d7b97815f21e8188d7f0d8d28a8dd28e52c58aaa32d314c3c2ccb8bfc3b24948aed8a679af3974bbc0d446a0ad7eafc115d0a4c578b26c SHA512 b119ef421dee61a939cb05407481d5a9c109c88cca86271c045d27a5c1b22f2cb73cd28d541d17bca6b13ab6f50c568be95fa8d4554a11a7b29653947a006a18 +DIST ucspi-rss.diff 1828 BLAKE2B 1ac6f97791425b2ad4f912f4773f60d85494c52417d28ef9b8059dd78850637b5d2f70ccdfdeebc60fdb5ad0f02fa681dab7fcb1ec752a96928f1061b7d3a611 SHA512 643514c57570fc0b4e817b07e6d26e831cec5b4657c3d1b9948bd90267fe370a340b911897d575eb94192e24ba71a03ac68ceb2774ef7c0e7ff819c5b4285bc3 +DIST ucspi-tcp-0.88-ipv6.diff20.bz2 22088 BLAKE2B faa6cf37b828241fe8b0365aadc912465ed811b28cd6a02eef638afe5d8ec2d18a0635e756c4e5ed65e5dc13d49afee37a255e229f2cb2713628e6e8eb57d6ec SHA512 f8d3ae49adec2b6a643458958679b712e803b0e4609b4395ff9c4fd13b5a29b6f9fc35aee59f2928b892908d37ed83b708c67346a4a42ec21e05e7782bff215b +DIST ucspi-tcp-0.88-man.tar.gz 7562 BLAKE2B 8b6326665cb48dd37683a50f3fe4cb65eb2fe3c28dc90ed1461b5bd878e7a7713f01d654d7d93df63e3f7a113baa4b6abfb6eeb65fdfb820051192b36070eccc SHA512 e779d6d6b24a3af0edc362def229c657c704143e5f1dfba8d16d26b3e6bcacb9c8ceaabcccac61485a4719221c144bc0c36ebca5182985dca85a6d72101d4146 +DIST ucspi-tcp-0.88-rblspp.patch 6565 BLAKE2B abf13c4c7cc25d555c57e29e45ead89340f01c5ddee4cc27a7acfdfd51f1dfae441d3b82b79d792f6acbc78b4d82843f5af34f0a166f4b7eeee44711cd39b26a SHA512 f3212d9d3bb59ec3b1f2b2bd09a80dce1eeeaf082dea68f18350a3aef818ef221eccfeb4dc7afff5c3f9e59003ec40f5e37fff86a2a5ab3145be1fe81297c990 +DIST ucspi-tcp-0.88.tar.gz 53019 BLAKE2B 3327de31e225c851b43e40ae9d8c5e4d3b93e2c15ed6ef993ad9f4105d60f322c56797c45a37363258e7cd9a8d52a315d6a8d65686c5cd45d4be19781e40c233 SHA512 44efbd477dacf31d39fc970e2d2f74526dc815b905742f6127f0d5c80928ecc7e743089eaab0492386a58d5b97905113fbe8bbc7214ae179b7be27966b7566c7 +EBUILD ucspi-tcp-0.88-r19.ebuild 2514 BLAKE2B 50bfbd70a073cad506cc86d39f9dd3f232ca8437b4ddf354f0a61bf26163848eed7332b190a867b9eb12854fa89534a5fc04f5e18d4a40071fe7c41b5b3e4bd3 SHA512 f7bbc328aabe58f4d9eed2024f6b2e5172a1616e992d125e579677f7840fcc4fa24b3752e8d274867389356fde62de6384276b7957bbaf82771326624de04c55 +MISC metadata.xml 601 BLAKE2B f93f353c688147d0f0430e176de1f75e22321b6ddd621a8be45efba153a70ac697a2c383aec03a7ce860d79fffa7a3f3f5eed084d1ddf48c23c31fbf8d0ad3cf SHA512 41f81dd288b2ec4b48830876a7fc16f7361038803707e8f5f93fc4dfa6e8fb58c7836e762147917102621a2eb76cefd293d0cf260df6638d9b4427a261597214 diff --git a/sys-apps/ucspi-tcp/files/0.88-ar-ranlib.patch b/sys-apps/ucspi-tcp/files/0.88-ar-ranlib.patch new file mode 100644 index 0000000..e6c8ba3 --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-ar-ranlib.patch @@ -0,0 +1,27 @@ +--- a/Makefile ++++ b/Makefile +@@ -394,12 +394,14 @@ + ) > load + chmod 755 load + ++AR ?= ar ++RANLIB ?= ranlib + makelib: \ + warn-auto.sh systype + ( cat warn-auto.sh; \ + echo 'main="$$1"; shift'; \ + echo 'rm -f "$$main"'; \ +- echo 'ar cr "$$main" $${1+"$$@"}'; \ ++ echo '$(AR) cr "$$main" $${1+"$$@"}'; \ + case "`cat systype`" in \ + sunos-5.*) ;; \ + unix_sv*) ;; \ +@@ -408,7 +410,7 @@ + dgux-*) ;; \ + hp-ux-*) ;; \ + sco*) ;; \ +- *) echo 'ranlib "$$main"' ;; \ ++ *) echo '$(RANLIB) "$$main"' ;; \ + esac \ + ) > makelib + chmod 755 makelib diff --git a/sys-apps/ucspi-tcp/files/0.88-bigendian.patch b/sys-apps/ucspi-tcp/files/0.88-bigendian.patch new file mode 100644 index 0000000..c5884b8 --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-bigendian.patch @@ -0,0 +1,18 @@ +https://bugs.gentoo.org/18892 + +patch by Michael Hanselmann + +--- a/tcpserver.c ++++ b/tcpserver.c +@@ -422,7 +422,11 @@ + se = getservbyname(x,"tcp"); + if (!se) + strerr_die3x(111,FATAL,"unable to figure out port number for ",x); ++#if __BYTE_ORDER == __BIG_ENDIAN || BYTE_ORDER == BIG_ENDIAN ++ localport = ntohs(se->s_port); ++#else + uint16_unpack_big((char*)&se->s_port,&localport); ++#endif + } + + if (!*argv) usage(); diff --git a/sys-apps/ucspi-tcp/files/0.88-implicit-int-ipv6.patch b/sys-apps/ucspi-tcp/files/0.88-implicit-int-ipv6.patch new file mode 100644 index 0000000..aee400d --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-implicit-int-ipv6.patch @@ -0,0 +1,11 @@ +--- a/tryip6.c ++++ b/tryip6.c +@@ -2,7 +2,7 @@ + #include + #include + +-main() { ++int main() { + struct sockaddr_in6 sa; + sa.sin6_family = PF_INET6; + } diff --git a/sys-apps/ucspi-tcp/files/0.88-implicit-int.patch b/sys-apps/ucspi-tcp/files/0.88-implicit-int.patch new file mode 100644 index 0000000..b2e39ab --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-implicit-int.patch @@ -0,0 +1,261 @@ +--- a/addcr.c ++++ b/addcr.c +@@ -1,7 +1,7 @@ + #include "buffer.h" + #include "exit.h" + +-main() ++int main() + { + register int n; + register char *x; +--- a/argv0.c ++++ b/argv0.c +@@ -1,7 +1,7 @@ + #include "pathexec.h" + #include "strerr.h" + +-main(int argc,char **argv,char **envp) ++int main(int argc,char **argv,char **envp) + { + if (argc < 3) + strerr_die1x(100,"argv0: usage: argv0 realname program [ arg ... ]"); +--- a/auto-str.c ++++ b/auto-str.c +@@ -11,7 +11,7 @@ void puts(char *s) + if (buffer_puts(&b,s) == -1) _exit(111); + } + +-main(int argc,char **argv) ++int main(int argc,char **argv) + { + char *name; + char *value; +--- a/chkshsgr.c ++++ b/chkshsgr.c +@@ -1,7 +1,7 @@ + #include + #include "exit.h" + +-main() ++int main() + { + gid_t x[4]; + +--- a/delcr.c ++++ b/delcr.c +@@ -1,7 +1,7 @@ + #include "buffer.h" + #include "exit.h" + +-main() ++int main() + { + register int n; + register char *x; +--- a/fixcrio.c ++++ b/fixcrio.c +@@ -127,7 +127,7 @@ void doit(int fdleft,int fdright) + _exit(0); + } + +-main(int argc,char **argv,char **envp) ++int main(int argc,char **argv,char **envp) + { + int piin[2]; + int piout[2]; +--- a/install.c ++++ b/install.c +@@ -138,7 +138,7 @@ int mode; + strerr_die6sys(111,FATAL,"unable to chmod .../",subdir,"/",file,": "); + } + +-main() ++int main() + { + fdsourcedir = open_read("."); + if (fdsourcedir == -1) +--- a/instcheck.c ++++ b/instcheck.c +@@ -101,7 +101,7 @@ int mode; + perm("",home,"/",file,S_IFREG,uid,gid,mode); + } + +-main() ++int main() + { + hier(); + _exit(0); +--- a/mconnect-io.c ++++ b/mconnect-io.c +@@ -19,7 +19,7 @@ ssize_t myread(int fd,char *buf,int len) + return read(fd,buf,len); + } + +-main() ++int main() + { + int pid; + int wstat; +--- a/rblsmtpd.c ++++ b/rblsmtpd.c +@@ -191,7 +191,7 @@ void rblsmtpd(void) + _exit(0); + } + +-main(int argc,char **argv,char **envp) ++int main(int argc,char **argv,char **envp) + { + int flagwantdefaultrbl = 1; + char *x; +--- a/rblspp.c ++++ b/rblspp.c +@@ -165,7 +165,7 @@ void rblspp(void) + _exit(0); + } + +-main(int argc,char **argv,char **envp) ++int main(int argc,char **argv,char **envp) + { + char *x; + int opt; +--- a/recordio.c ++++ b/recordio.c +@@ -142,7 +142,7 @@ void doit(int fdleft,int fdright) /* copy 0 -> fdleft, copy fdright -> 1 */ + _exit(0); + } + +-main(int argc,char **argv,char **envp) ++int main(int argc,char **argv,char **envp) + { + int piin[2]; + int piout[2]; +--- a/tcpclient.c ++++ b/tcpclient.c +@@ -70,7 +70,7 @@ char ipstr[IP6_FMT]; + + char seed[128]; + +-main(int argc,char **argv) ++int main(int argc,char **argv) + { + int fakev4=0; + unsigned long u; +--- a/tcprules.c ++++ b/tcprules.c +@@ -90,7 +90,7 @@ void doaddressdata(void) + if (cdb_make_add(&c,address.s,address.len,data.s,data.len) == -1) die_write(); + } + +-main(int argc,char **argv) ++int main(int argc,char **argv) + { + int colon; + char *x; +--- a/tcprulescheck.c ++++ b/tcprulescheck.c +@@ -34,7 +34,7 @@ void found(char *data,unsigned int datalen) + _exit(0); + } + +-main(int argc,char **argv) ++int main(int argc,char **argv) + { + char *fnrules; + int fd; +--- a/tcpserver.c ++++ b/tcpserver.c +@@ -323,7 +323,7 @@ void sigchld() + } + } + +-main(int argc,char **argv) ++int main(int argc,char **argv) + { + char *hostname; + char *portname; +--- a/trycpp.c ++++ b/trycpp.c +@@ -1,4 +1,4 @@ +-main() ++int main() + { + #ifdef NeXT + printf("nextstep\n"); exit(0); +--- a/trylsock.c ++++ b/trylsock.c +@@ -1,4 +1,4 @@ +-main() ++int main() + { + ; + } +--- a/trypoll.c ++++ b/trypoll.c +@@ -2,7 +2,7 @@ + #include + #include + +-main() ++int main() + { + struct pollfd x; + +--- a/trysgact.c ++++ b/trysgact.c +@@ -1,6 +1,6 @@ + #include + +-main() ++int main() + { + struct sigaction sa; + sa.sa_handler = 0; +--- a/trysgprm.c ++++ b/trysgprm.c +@@ -1,6 +1,6 @@ + #include + +-main() ++int main() + { + sigset_t ss; + +--- a/tryshsgr.c ++++ b/tryshsgr.c +@@ -1,4 +1,4 @@ +-main() ++int main() + { + short x[4]; + +--- a/tryvfork.c ++++ b/tryvfork.c +@@ -1,4 +1,4 @@ +-main() ++int main() + { + vfork(); + } +--- a/trywaitp.c ++++ b/trywaitp.c +@@ -1,7 +1,7 @@ + #include + #include + +-main() ++int main() + { + waitpid(0,0,0); + } +--- a/x86cpuid.c ++++ b/x86cpuid.c +@@ -5,7 +5,7 @@ void nope() + exit(1); + } + +-main() ++int main() + { + unsigned long x[4]; + unsigned long y[4]; diff --git a/sys-apps/ucspi-tcp/files/0.88-large-responses.patch b/sys-apps/ucspi-tcp/files/0.88-large-responses.patch new file mode 100644 index 0000000..65fd8f5 --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-large-responses.patch @@ -0,0 +1,26 @@ +12 Aug 2003; Robin H. Johnson : + +allow larger responses + +--- a/rblsmtpd.c ++++ b/rblsmtpd.c +@@ -163,7 +163,7 @@ void rblsmtpd(void) + else + if (!stralloc_copys(&message,"553 ")) nomem(); + +- if (text.len > 200) text.len = 200; ++ if (text.len > 500) text.len = 500; + if (!stralloc_cat(&message,&text)) nomem(); + for (i = 0;i < message.len;++i) + if ((message.s[i] < 32) || (message.s[i] > 126)) +--- a/rblspp.c ++++ b/rblspp.c +@@ -142,7 +142,7 @@ void rblspp(void) + else + if (!stralloc_copys(&message,"E553 ")) nomem(); + +- if (text.len > 200) text.len = 200; ++ if (text.len > 500) text.len = 500; + if (!stralloc_cat(&message,&text)) nomem(); + for (i = 0;i < message.len;++i) + if ((message.s[i] < 32) || (message.s[i] > 126)) diff --git a/sys-apps/ucspi-tcp/files/0.88-protos-ipv6.patch b/sys-apps/ucspi-tcp/files/0.88-protos-ipv6.patch new file mode 100644 index 0000000..7faa512 --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-protos-ipv6.patch @@ -0,0 +1,89 @@ +rely on standard POSIX headers to fix globs of warnings + +requires 0.88-protos.patch first + +--- a/FILES ++++ b/FILES +@@ -222,7 +222,6 @@ dns_nd6.c + dns_sortip6.c + fmt_xlong.c + ip6_fmt.c +-ip6_scan.c + scan_0x.c + socket_accept6.c + socket_bind6.c +--- a/TARGETS ++++ b/TARGETS +@@ -177,7 +177,6 @@ dns_nd6.o + dns_sortip6.o + fmt_xlong.o + ip6_fmt.o +-ip6_scan.o + scan_0x.o + socket_accept6.o + socket_bind6.o +--- a/ip6.h ++++ b/ip6.h +@@ -4,10 +4,10 @@ + #include "byte.h" + + extern unsigned int scan_ip6(const char *src,char *ip); +-extern unsigned int fmt_ip6(char *dest,const char *ip); ++extern unsigned int ip6_fmt(char *dest,char ip[16]); + + extern unsigned int scan_ip6_flat(const char *src,char *); +-extern unsigned int fmt_ip6_flat(char *dest,const char *); ++extern unsigned int ip6_fmt_flat(char *dest,char[16]); + + /* + ip6 address syntax: (h = hex digit), no leading '0' required +--- a/remoteinfo6.c ++++ b/remoteinfo6.c +@@ -1,3 +1,4 @@ ++#include + #include "fmt.h" + #include "buffer.h" + #include "socket.h" +@@ -5,11 +6,12 @@ + #include "iopause.h" + #include "timeoutconn.h" + #include "remoteinfo.h" ++#include "readwrite.h" + + static struct taia now; + static struct taia deadline; + +-static int mywrite(int fd,char *buf,int len) ++static ssize_t mywrite(int fd,char *buf,int len) + { + iopause_fd x; + +@@ -27,7 +29,7 @@ static int mywrite(int fd,char *buf,int len) + return write(fd,buf,len); + } + +-static int myread(int fd,char *buf,int len) ++static ssize_t myread(int fd,char *buf,int len) + { + iopause_fd x; + +--- a/socket_tcp6.c ++++ b/socket_tcp6.c +@@ -3,6 +3,7 @@ + #include + #include + #include ++#include + #include "ndelay.h" + #include "socket.h" + #include "haveip6.h" +--- a/dns.h ++++ b/dns.h +@@ -87,6 +87,7 @@ extern int dns_ip4_qualify(stralloc *,stralloc *,const stralloc *); + extern int dns_ip6_qualify_rules(stralloc *,stralloc *,const stralloc *,const stralloc *); + extern int dns_ip6_qualify(stralloc *,stralloc *,const stralloc *); + ++extern int dns_name6(stralloc *,char [16]); + extern int dns_name6_domain(char *,char *); + #define DNS_NAME6_DOMAIN (4*16+11) + diff --git a/sys-apps/ucspi-tcp/files/0.88-protos-no-ipv6.patch b/sys-apps/ucspi-tcp/files/0.88-protos-no-ipv6.patch new file mode 100644 index 0000000..328f036 --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-protos-no-ipv6.patch @@ -0,0 +1,36 @@ +rely on standard POSIX headers to fix globs of warnings + +fixes that overlap with the ipv6 patch + +--- a/error.h ++++ b/error.h +@@ -1,7 +1,7 @@ + #ifndef ERROR_H + #define ERROR_H + +-extern int errno; ++#include + + extern int error_intr; + extern int error_nomem; +--- a/dns_random.c ++++ b/dns_random.c +@@ -1,3 +1,4 @@ ++#include + #include "dns.h" + #include "taia.h" + #include "uint32.h" +--- a/dns_rcrw.c ++++ b/dns_rcrw.c +@@ -1,3 +1,4 @@ ++#include + #include "taia.h" + #include "env.h" + #include "byte.h" +--- a/dns_transmit.c ++++ b/dns_transmit.c +@@ -1,3 +1,4 @@ ++#include + #include "socket.h" + #include "alloc.h" + #include "error.h" diff --git a/sys-apps/ucspi-tcp/files/0.88-protos-rblspp.patch b/sys-apps/ucspi-tcp/files/0.88-protos-rblspp.patch new file mode 100644 index 0000000..8007ce1 --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-protos-rblspp.patch @@ -0,0 +1,11 @@ +rely on standard POSIX headers to fix globs of warnings + +requires 0.88-protos.patch first + +--- a/rblspp.c ++++ b/rblspp.c +@@ -1,3 +1,4 @@ ++#include + #include "byte.h" + #include "str.h" + #include "scan.h" diff --git a/sys-apps/ucspi-tcp/files/0.88-protos.patch b/sys-apps/ucspi-tcp/files/0.88-protos.patch new file mode 100644 index 0000000..050fd1d --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-protos.patch @@ -0,0 +1,544 @@ +rely on standard POSIX headers to fix globs of warnings + +--- a/tcprulescheck.c ++++ b/tcprulescheck.c +@@ -1,3 +1,5 @@ ++#include ++ + #include "byte.h" + #include "buffer.h" + #include "strerr.h" +--- a/buffer.c ++++ b/buffer.c +@@ -1,6 +1,6 @@ + #include "buffer.h" + +-void buffer_init(buffer *s,int (*op)(),int fd,char *buf,unsigned int len) ++void buffer_init(buffer *s,ssize_t (*op)(),int fd,char *buf,unsigned int len) + { + s->x = buf; + s->fd = fd; +--- a/buffer.h ++++ b/buffer.h +@@ -1,6 +1,8 @@ + #ifndef BUFFER_H + #define BUFFER_H + ++#include ++ + typedef struct buffer { + char *x; + unsigned int p; +@@ -13,7 +15,7 @@ typedef struct buffer { + #define BUFFER_INSIZE 8192 + #define BUFFER_OUTSIZE 8192 + +-extern void buffer_init(buffer *,int (*)(),int,char *,unsigned int); ++extern void buffer_init(buffer *,ssize_t (*)(),int,char *,unsigned int); + + extern int buffer_flush(buffer *); + extern int buffer_put(buffer *,char *,unsigned int); +--- a/exit.h ++++ b/exit.h +@@ -1,6 +1,6 @@ + #ifndef EXIT_H + #define EXIT_H + +-extern void _exit(); ++#include + + #endif +--- a/install.c ++++ b/install.c +@@ -1,3 +1,4 @@ ++#include + #include "buffer.h" + #include "strerr.h" + #include "error.h" +--- a/readwrite.h ++++ b/readwrite.h +@@ -1,7 +1,6 @@ + #ifndef READWRITE_H + #define READWRITE_H + +-extern int read(); +-extern int write(); ++#include + + #endif + +--- a/auto-str.c ++++ b/auto-str.c +@@ -5,6 +5,7 @@ + char bspace[256]; + buffer b = BUFFER_INIT(write,1,bspace,sizeof bspace); + ++#define puts _puts + void puts(char *s) + { + if (buffer_puts(&b,s) == -1) _exit(111); +--- a/buffer.h ++++ b/buffer.h +@@ -8,7 +8,7 @@ typedef struct buffer { + unsigned int p; + unsigned int n; + int fd; +- int (*op)(); ++ ssize_t (*op)(); + } buffer; + + #define BUFFER_INIT(op,fd,buf,len) { (buf), 0, (len), (fd), (op) } +--- a/fd_copy.c ++++ b/fd_copy.c +@@ -1,4 +1,5 @@ + #include ++#include + #include "fd.h" + + int fd_copy(int to,int from) +--- a/fd_move.c ++++ b/fd_move.c +@@ -1,3 +1,4 @@ ++#include + #include "fd.h" + + int fd_move(int to,int from) +--- a/socket_tcp.c ++++ b/socket_tcp.c +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include +--- a/chkshsgr.c ++++ b/chkshsgr.c +@@ -1,8 +1,9 @@ ++#include + #include "exit.h" + + main() + { +- short x[4]; ++ gid_t x[4]; + + x[0] = x[1] = 0; + if (getgroups(1,x) == 0) if (setgroups(1,x) == -1) _exit(1); +--- a/prot.c ++++ b/prot.c +@@ -1,10 +1,10 @@ + #include "hasshsgr.h" + #include "prot.h" + +-int prot_gid(int gid) ++int prot_gid(gid_t gid) + { + #ifdef HASSHORTSETGROUPS +- short x[2]; ++ gid_t x[2]; + x[0] = gid; x[1] = 73; /* catch errors */ + if (setgroups(1,x) == -1) return -1; + #else +@@ -13,7 +13,7 @@ int prot_gid(int gid) + return setgid(gid); /* _should_ be redundant, but on some systems it isn't */ + } + +-int prot_uid(int uid) ++int prot_uid(uid_t uid) + { + return setuid(uid); + } +--- a/prot.h ++++ b/prot.h +@@ -1,7 +1,10 @@ + #ifndef PROT_H + #define PROT_H + +-extern int prot_gid(int); +-extern int prot_uid(int); ++#include ++#include ++ ++extern int prot_gid(gid_t); ++extern int prot_uid(uid_t); + + #endif +--- a/fixcrio.c ++++ b/fixcrio.c +@@ -6,6 +6,7 @@ + #include "exit.h" + #include "iopause.h" + #include "pathexec.h" ++#include "fd.h" + + #define FATAL "fixcrio: fatal: " + +--- a/hier.c ++++ b/hier.c +@@ -1,5 +1,9 @@ + #include "auto_home.h" + ++extern void h(char *, int, int, int); ++extern void d(char *, char *, int, int, int); ++extern void c(char *, char *, char *, int, int, int); ++ + void hier() + { + h(auto_home,-1,-1,02755); +--- a/mconnect-io.c ++++ b/mconnect-io.c +@@ -1,3 +1,4 @@ ++#include + #include "sig.h" + #include "wait.h" + #include "fork.h" +@@ -12,7 +13,7 @@ buffer bout; + char inbuf[512]; + buffer bin; + +-int myread(int fd,char *buf,int len) ++ssize_t myread(int fd,char *buf,int len) + { + buffer_flush(&bout); + return read(fd,buf,len); +--- a/tcprules.c ++++ b/tcprules.c +@@ -1,3 +1,4 @@ ++#include + #include "strerr.h" + #include "stralloc.h" + #include "getln.h" +@@ -6,6 +7,8 @@ + #include "fmt.h" + #include "byte.h" + #include "cdb_make.h" ++#include "open.h" ++#include "scan.h" + + #define FATAL "tcprules: fatal: " + +--- a/pathexec_run.c ++++ b/pathexec_run.c +@@ -1,3 +1,4 @@ ++#include + #include "error.h" + #include "stralloc.h" + #include "str.h" +--- a/recordio.c ++++ b/recordio.c +@@ -8,6 +8,7 @@ + #include "fmt.h" + #include "iopause.h" + #include "pathexec.h" ++#include "fd.h" + + #define FATAL "recordio: fatal: " + +--- a/seek_set.c ++++ b/seek_set.c +@@ -1,7 +1,6 @@ ++#include + #include + #include "seek.h" + +-#define SET 0 /* sigh */ +- + int seek_set(int fd,seek_pos pos) +-{ if (lseek(fd,(off_t) pos,SET) == -1) return -1; return 0; } ++{ if (lseek(fd,(off_t) pos,SEEK_SET) == -1) return -1; return 0; } +--- a/socket_udp.c ++++ b/socket_udp.c +@@ -2,6 +2,7 @@ + #include + #include + #include ++#include + #include "ndelay.h" + #include "socket.h" + +--- a/tcprulescheck.c ++++ b/tcprulescheck.c +@@ -5,6 +5,7 @@ + #include "strerr.h" + #include "env.h" + #include "rules.h" ++#include "open.h" + + void found(char *data,unsigned int datalen) + { + +the prototypes are added near the top to avoid conflicts w/ipv6 patch + +--- a/socket.h ++++ b/socket.h +@@ -3,6 +3,9 @@ + #ifndef SOCKET_H + #define SOCKET_H + ++extern int socket_tcpnodelay(int); ++extern int socket_ipoptionskill(int); ++ + #include "uint16.h" + + extern int socket_tcp(void); +--- a/remoteinfo.c ++++ b/remoteinfo.c +@@ -1,3 +1,4 @@ ++#include + #include "fmt.h" + #include "buffer.h" + #include "socket.h" +@@ -5,11 +6,12 @@ + #include "iopause.h" + #include "timeoutconn.h" + #include "remoteinfo.h" ++#include "readwrite.h" + + static struct taia now; + static struct taia deadline; + +-static int mywrite(int fd,char *buf,int len) ++static ssize_t mywrite(int fd,char *buf,int len) + { + iopause_fd x; + +@@ -27,7 +29,7 @@ static int mywrite(int fd,char *buf,int len) + return write(fd,buf,len); + } + +-static int myread(int fd,char *buf,int len) ++static ssize_t myread(int fd,char *buf,int len) + { + iopause_fd x; + +--- a/alloc.c ++++ b/alloc.c +@@ -1,7 +1,5 @@ + #include "alloc.h" + #include "error.h" +-extern char *malloc(); +-extern void free(); + + #define ALIGNMENT 16 /* XXX: assuming that this alignment is enough */ + #define SPACE 2048 /* must be multiple of ALIGNMENT */ +--- a/alloc.h ++++ b/alloc.h +@@ -1,8 +1,10 @@ + #ifndef ALLOC_H + #define ALLOC_H + +-extern /*@null@*//*@out@*/char *alloc(); +-extern void alloc_free(); ++#include ++ ++extern /*@null@*//*@out@*/char *alloc(unsigned int); ++extern void alloc_free(char *); + extern int alloc_re(); + + #endif +--- a/buffer_0.c ++++ b/buffer_0.c +@@ -1,7 +1,7 @@ + #include "readwrite.h" + #include "buffer.h" + +-int buffer_0_read(fd,buf,len) int fd; char *buf; int len; ++ssize_t buffer_0_read(fd,buf,len) int fd; char *buf; int len; + { + if (buffer_flush(buffer_1) == -1) return -1; + return read(fd,buf,len); +--- a/buffer_get.c ++++ b/buffer_get.c +@@ -2,7 +2,7 @@ + #include "byte.h" + #include "error.h" + +-static int oneread(int (*op)(),int fd,char *buf,unsigned int len) ++static int oneread(ssize_t (*op)(),int fd,char *buf,unsigned int len) + { + int r; + +--- a/buffer_put.c ++++ b/buffer_put.c +@@ -3,7 +3,7 @@ + #include "byte.h" + #include "error.h" + +-static int allwrite(int (*op)(),int fd,char *buf,unsigned int len) ++static int allwrite(ssize_t (*op)(),int fd,char *buf,unsigned int len) + { + int w; + +--- a/case.h ++++ b/case.h +@@ -4,7 +4,7 @@ + extern void case_lowers(char *); + extern void case_lowerb(char *,unsigned int); + extern int case_diffs(char *,char *); +-extern int case_diffb(char *,unsigned int,char *); ++extern int case_diffb(const char *,unsigned int,const char *); + extern int case_starts(char *,char *); + extern int case_startb(char *,unsigned int,char *); + +--- a/case_diffb.c ++++ b/case_diffb.c +@@ -1,6 +1,6 @@ + #include "case.h" + +-int case_diffb(register char *s,register unsigned int len,register char *t) ++int case_diffb(register const char *s,register unsigned int len,const register char *t) + { + register unsigned char x; + register unsigned char y; +--- a/open.h ++++ b/open.h +@@ -1,10 +1,10 @@ + #ifndef OPEN_H + #define OPEN_H + +-extern int open_read(char *); +-extern int open_excl(char *); +-extern int open_append(char *); +-extern int open_trunc(char *); +-extern int open_write(char *); ++extern int open_read(const char *); ++extern int open_excl(const char *); ++extern int open_append(const char *); ++extern int open_trunc(const char *); ++extern int open_write(const char *); + + #endif +--- a/open_read.c ++++ b/open_read.c +@@ -2,5 +2,5 @@ + #include + #include "open.h" + +-int open_read(char *fn) ++int open_read(const char *fn) + { return open(fn,O_RDONLY | O_NDELAY); } +--- a/open_trunc.c ++++ b/open_trunc.c +@@ -2,5 +2,5 @@ + #include + #include "open.h" + +-int open_trunc(char *fn) ++int open_trunc(const char *fn) + { return open(fn,O_WRONLY | O_NDELAY | O_TRUNC | O_CREAT,0644); } +--- a/open_write.c ++++ b/open_write.c +@@ -2,5 +2,5 @@ + #include + #include "open.h" + +-int open_write(char *fn) ++int open_write(const char *fn) + { return open(fn,O_WRONLY | O_NDELAY); } +--- a/openreadclose.c ++++ b/openreadclose.c +@@ -3,7 +3,7 @@ + #include "readclose.h" + #include "openreadclose.h" + +-int openreadclose(char *fn,stralloc *sa,unsigned int bufsize) ++int openreadclose(const char *fn,stralloc *sa,unsigned int bufsize) + { + int fd; + fd = open_read(fn); +--- a/openreadclose.h ++++ b/openreadclose.h +@@ -3,6 +3,6 @@ + + #include "stralloc.h" + +-extern int openreadclose(char *,stralloc *,unsigned int); ++extern int openreadclose(const char *,stralloc *,unsigned int); + + #endif +--- a/stralloc.h ++++ b/stralloc.h +@@ -7,7 +7,7 @@ GEN_ALLOC_typedef(stralloc,char,s,len,a) + + extern int stralloc_ready(stralloc *,unsigned int); + extern int stralloc_readyplus(stralloc *,unsigned int); +-extern int stralloc_copy(stralloc *,stralloc *); ++extern int stralloc_copy(stralloc *,const stralloc *); + extern int stralloc_cat(stralloc *,stralloc *); + extern int stralloc_copys(stralloc *,const char *); + extern int stralloc_cats(stralloc *,const char *); +--- a/stralloc_copy.c ++++ b/stralloc_copy.c +@@ -1,7 +1,7 @@ + #include "byte.h" + #include "stralloc.h" + +-int stralloc_copy(stralloc *sato,stralloc *safrom) ++int stralloc_copy(stralloc *sato,const stralloc *safrom) + { + return stralloc_copyb(sato,safrom->s,safrom->len); + } +--- a/taia.h ++++ b/taia.h +@@ -19,7 +19,7 @@ extern double taia_frac(struct taia *); + extern void taia_add(struct taia *,struct taia *,struct taia *); + extern void taia_sub(struct taia *,struct taia *,struct taia *); + extern void taia_half(struct taia *,struct taia *); +-extern int taia_less(struct taia *,struct taia *); ++extern int taia_less(const struct taia *,const struct taia *); + + #define TAIA_PACK 16 + extern void taia_pack(char *,struct taia *); +--- a/taia_less.c ++++ b/taia_less.c +@@ -2,7 +2,7 @@ + + /* XXX: breaks tai encapsulation */ + +-int taia_less(struct taia *t,struct taia *u) ++int taia_less(const struct taia *t,const struct taia *u) + { + if (t->sec.x < u->sec.x) return 1; + if (t->sec.x > u->sec.x) return 0; +--- a/uint32.h1 ++++ b/uint32.h1 +@@ -5,7 +5,7 @@ typedef unsigned int uint32; + + extern void uint32_pack(char *,uint32); + extern void uint32_pack_big(char *,uint32); +-extern void uint32_unpack(char *,uint32 *); +-extern void uint32_unpack_big(char *,uint32 *); ++extern void uint32_unpack(const char *,uint32 *); ++extern void uint32_unpack_big(const char *,uint32 *); + + #endif +--- a/uint32.h2 ++++ b/uint32.h2 +@@ -5,7 +5,7 @@ typedef unsigned long uint32; + + extern void uint32_pack(char *,uint32); + extern void uint32_pack_big(char *,uint32); +-extern void uint32_unpack(char *,uint32 *); +-extern void uint32_unpack_big(char *,uint32 *); ++extern void uint32_unpack(const char *,uint32 *); ++extern void uint32_unpack_big(const char *,uint32 *); + + #endif +--- a/uint32_unpack.c ++++ b/uint32_unpack.c +@@ -1,6 +1,6 @@ + #include "uint32.h" + +-void uint32_unpack(char s[4],uint32 *u) ++void uint32_unpack(const char s[4],uint32 *u) + { + uint32 result; + +@@ -15,7 +15,7 @@ void uint32_unpack(char s[4],uint32 *u) + *u = result; + } + +-void uint32_unpack_big(char s[4],uint32 *u) ++void uint32_unpack_big(const char s[4],uint32 *u) + { + uint32 result; + diff --git a/sys-apps/ucspi-tcp/files/0.88-rblsmtpd-ignore-on-RELAYCLIENT.patch b/sys-apps/ucspi-tcp/files/0.88-rblsmtpd-ignore-on-RELAYCLIENT.patch new file mode 100644 index 0000000..ccf6341 --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-rblsmtpd-ignore-on-RELAYCLIENT.patch @@ -0,0 +1,25 @@ +--- a/rblsmtpd.c ++++ b/rblsmtpd.c +@@ -195,6 +195,7 @@ + { + int flagwantdefaultrbl = 1; + char *x; ++ char *y; + int opt; + + ip_init(); +@@ -213,6 +214,13 @@ + } + } + ++ y = env_get("RELAYCLIENT"); ++ if (y) { ++ if (!*y) { ++ decision = 1; ++ } ++ } ++ + while ((opt = getopt(argc,argv,"bBcCt:r:a:")) != opteof) + switch(opt) { + case 'b': flagrblbounce = 1; break; + diff --git a/sys-apps/ucspi-tcp/files/0.88-tcprules.patch b/sys-apps/ucspi-tcp/files/0.88-tcprules.patch new file mode 100644 index 0000000..2986fde --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-tcprules.patch @@ -0,0 +1,16 @@ +https://bugs.gentoo.org/90679 + +patch by Michael Hanselmann + +--- a/tcprules.c ++++ b/tcprules.c +@@ -127,6 +127,9 @@ + for (;;) { + int tmp; + tmp = byte_chr(x + colon,len - colon,':'); ++ if (colon == 0 && tmp == len) { ++ strerr_die2x(111, FATAL, "Unable to find colon on non-empty line."); ++ } + colon += tmp; + if (colon == len) continue; + if (byte_equal(x+colon+1,4,"deny") || byte_equal(x+colon+1,5,"allow")) break; diff --git a/sys-apps/ucspi-tcp/files/0.88-uint-headers.patch b/sys-apps/ucspi-tcp/files/0.88-uint-headers.patch new file mode 100644 index 0000000..3b637f5 --- /dev/null +++ b/sys-apps/ucspi-tcp/files/0.88-uint-headers.patch @@ -0,0 +1,133 @@ +use stdint.h rather than hand guessing the underlying size + +--- a/tryulong32.c ++++ /dev/null +@@ -1,11 +0,0 @@ +-main() +-{ +- unsigned long u; +- u = 1; +- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; +- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; +- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; +- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; +- if (!u) _exit(0); +- _exit(1); +-} +--- a/tryulong64.c ++++ /dev/null +@@ -1,11 +0,0 @@ +-main() +-{ +- unsigned long u; +- u = 1; +- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; +- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; +- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; +- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; +- if (!u) _exit(1); +- _exit(0); +-} +--- a/uint32.h1 ++++ /dev/null +@@ -1,11 +0,0 @@ +-#ifndef UINT32_H +-#define UINT32_H +- +-typedef unsigned int uint32; +- +-extern void uint32_pack(char *,uint32); +-extern void uint32_pack_big(char *,uint32); +-extern void uint32_unpack(const char *,uint32 *); +-extern void uint32_unpack_big(const char *,uint32 *); +- +-#endif +--- a/uint32.h2 ++++ /dev/null +@@ -1,11 +0,0 @@ +-#ifndef UINT32_H +-#define UINT32_H +- +-typedef unsigned long uint32; +- +-extern void uint32_pack(char *,uint32); +-extern void uint32_pack_big(char *,uint32); +-extern void uint32_unpack(const char *,uint32 *); +-extern void uint32_unpack_big(const char *,uint32 *); +- +-#endif +--- a/uint64.h1 ++++ /dev/null +@@ -1,8 +0,0 @@ +-#ifndef UINT64_H +-#define UINT64_H +- +-/* sysdep: -ulong64 */ +- +-typedef unsigned long long uint64; +- +-#endif +--- a/uint64.h2 ++++ /dev/null +@@ -1,8 +0,0 @@ +-#ifndef UINT64_H +-#define UINT64_H +- +-/* sysdep: +ulong64 */ +- +-typedef unsigned long uint64; +- +-#endif +--- /dev/null ++++ b/uint32.h +@@ -0,0 +1,12 @@ ++#ifndef UINT32_H ++#define UINT32_H ++ ++#include ++typedef uint32_t uint32; ++ ++extern void uint32_pack(char *,uint32); ++extern void uint32_pack_big(char *,uint32); ++extern void uint32_unpack(const char *,uint32 *); ++extern void uint32_unpack_big(const char *,uint32 *); ++ ++#endif +--- /dev/null ++++ b/uint64.h +@@ -0,0 +1,8 @@ ++#ifndef UINT64_H ++#define UINT64_H ++ ++#include ++ ++typedef uint64_t uint64; ++ ++#endif +--- a/Makefile ++++ b/Makefile +@@ -788,13 +788,6 @@ uint16_unpack.o: \ + compile uint16_unpack.c uint16.h + ./compile uint16_unpack.c + +-uint32.h: \ +-tryulong32.c compile load uint32.h1 uint32.h2 +- ( ( ./compile tryulong32.c && ./load tryulong32 && \ +- ./tryulong32 ) >/dev/null 2>&1 \ +- && cat uint32.h2 || cat uint32.h1 ) > uint32.h +- rm -f tryulong32.o tryulong32 +- + uint32_pack.o: \ + compile uint32_pack.c uint32.h + ./compile uint32_pack.c +@@ -803,10 +796,6 @@ uint32_unpack.o: \ + compile uint32_unpack.c uint32.h + ./compile uint32_unpack.c + +-uint64.h: \ +-choose compile load tryulong64.c uint64.h1 uint64.h2 +- ./choose clr tryulong64 uint64.h1 uint64.h2 > uint64.h +- + unix.a: \ + makelib alloc.o alloc_re.o buffer.o buffer_0.o buffer_1.o buffer_2.o \ + buffer_copy.o buffer_get.o buffer_put.o env.o error.o error_str.o \ diff --git a/sys-apps/ucspi-tcp/files/tcprules-Makefile b/sys-apps/ucspi-tcp/files/tcprules-Makefile new file mode 100644 index 0000000..dc686f2 --- /dev/null +++ b/sys-apps/ucspi-tcp/files/tcprules-Makefile @@ -0,0 +1,11 @@ +-include Makefile.* +.PHONY: all +.SUFFIXES: +.SUFFIXES: .cdb + +all: $(CDBS) + @echo = CDBLIST: $(CDBS) + +%.cdb:: % + @echo + Rebuilding $* from $< + tcprules $@ $@.tmp < $< diff --git a/sys-apps/ucspi-tcp/metadata.xml b/sys-apps/ucspi-tcp/metadata.xml new file mode 100644 index 0000000..8bccd58 --- /dev/null +++ b/sys-apps/ucspi-tcp/metadata.xml @@ -0,0 +1,13 @@ + + + + + + ucspi-tcp is a replacement for inetd. It consists of tcpserver and + tcpclient. tcpserver can listen on sockets and start programs in an + inetd like fashion except that information like the IP address and + remote port are communicated via environment variables. tcpclient makes + a TCP connection and runs a program of your choice. It sets up the same + environment variables as tcpserver. + + diff --git a/sys-apps/ucspi-tcp/ucspi-tcp-0.88-r19.ebuild b/sys-apps/ucspi-tcp/ucspi-tcp-0.88-r19.ebuild new file mode 100644 index 0000000..55154b8 --- /dev/null +++ b/sys-apps/ucspi-tcp/ucspi-tcp-0.88-r19.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit qmail toolchain-funcs + +DESCRIPTION="Collection of tools for managing UNIX services" +HOMEPAGE="https://cr.yp.to/ucspi-tcp.html" +SRC_URI=" + https://cr.yp.to/${PN}/${P}.tar.gz + mirror://qmail/ucspi-rss.diff + http://smarden.org/pape/djb/manpages/${P}-man.tar.gz + http://xs3.b92.net/tomislavr/${P}-rblspp.patch + ipv6? ( https://www.fefe.de/ucspi/${P}-ipv6.diff20.bz2 )" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris" +IUSE="ipv6 qmail-spp selinux" +RESTRICT="test" + +RDEPEND=" + !app-doc/ucspi-tcp-man + selinux? ( sec-policy/selinux-ucspitcp )" + +src_prepare() { + eapply "${FILESDIR}"/${PV}-protos.patch + if use ipv6; then + eapply "${WORKDIR}"/${P}-ipv6.diff20 + eapply "${FILESDIR}"/${PV}-protos-ipv6.patch + eapply "${FILESDIR}"/${PV}-tcprules.patch #135571 + eapply "${FILESDIR}"/${PV}-bigendian.patch #18892 + eapply "${FILESDIR}"/${PV}-implicit-int-ipv6.patch + else + eapply "${FILESDIR}"/${PV}-protos-no-ipv6.patch + fi + eapply "${DISTDIR}"/ucspi-rss.diff + eapply "${FILESDIR}"/${PV}-rblsmtpd-ignore-on-RELAYCLIENT.patch + eapply "${DISTDIR}"/${P}-rblspp.patch + eapply "${FILESDIR}"/${PV}-protos-rblspp.patch + eapply "${FILESDIR}"/${PV}-large-responses.patch + eapply "${FILESDIR}"/${PV}-uint-headers.patch + eapply "${FILESDIR}"/${PV}-ar-ranlib.patch + eapply "${FILESDIR}"/${PV}-implicit-int.patch + + eapply_user +} + +src_configure() { + local cc=$(head -n 1 ./conf-cc | sed -e "s#^g\?cc\s\+\(-O2\)\?#$(tc-getCC) #") + local ld=$(head -n 1 ./conf-ld | sed -e "s#^g\?cc\s\+\(-s\)\?#$(tc-getCC) #") + + echo "${cc} ${CFLAGS} ${CPPFLAGS}" > ./conf-cc || die 'Patching conf-cc failed.' + echo "${ld} ${LDFLAGS}" > ./conf-ld || die 'Patching conf-ld failed.' + + # The AR/RANLIB logic probably should get moved to the qmail eclass. + # See also the patch above for generating the "makelib" script. + tc-export AR RANLIB + + echo "${EPREFIX}/usr/" > conf-home || die +} + +src_install() { + dobin tcpserver tcprules tcprulescheck argv0 recordio tcpclient *\@ \ + tcpcat mconnect mconnect-io addcr delcr fixcrio rblsmtpd + + if use qmail-spp; then + insinto "${QMAIL_HOME}"/plugins + insopts -m 755 + doins rblspp + fi + + doman "${WORKDIR}"/${P}-man/*.[1-8] + dodoc CHANGES FILES README SYSDEPS TARGETS TODO VERSION + + insinto /etc/tcprules.d + newins "${FILESDIR}"/tcprules-Makefile Makefile +}