summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2024-06-15 14:59:21 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2024-06-15 15:03:05 -0700
commit69ef13ef2d97eecefe30c83a4dfcca76732c0f71 (patch)
tree7509814e0abc35e37195c434930ffcb1fc813c12 /net-mail/safecat
parentdev-libs/ptexenc: Stabilize 1.4.3_p20230311 amd64, #934375 (diff)
downloadgentoo-69ef13ef2d97eecefe30c83a4dfcca76732c0f71.tar.gz
gentoo-69ef13ef2d97eecefe30c83a4dfcca76732c0f71.tar.bz2
gentoo-69ef13ef2d97eecefe30c83a4dfcca76732c0f71.zip
net-mail/safecat: EAPI 8 bump, some fixes
This does not include a full suite of Clang fixes, due to upstream's C coding style: significant work to fix all of the prototypes in this code base, and align with modern types. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> Closes: https://bugs.gentoo.org/show_bug.cgi?id=725030 Closes: https://bugs.gentoo.org/show_bug.cgi?id=836088
Diffstat (limited to 'net-mail/safecat')
-rw-r--r--net-mail/safecat/files/safecat-1.13-dup-obj-makefile.patch39
-rw-r--r--net-mail/safecat/files/safecat-1.13-include.patch97
-rw-r--r--net-mail/safecat/safecat-1.13-r1.ebuild51
-rw-r--r--net-mail/safecat/safecat-1.13.ebuild7
4 files changed, 190 insertions, 4 deletions
diff --git a/net-mail/safecat/files/safecat-1.13-dup-obj-makefile.patch b/net-mail/safecat/files/safecat-1.13-dup-obj-makefile.patch
new file mode 100644
index 000000000000..b276bb7ff709
--- /dev/null
+++ b/net-mail/safecat/files/safecat-1.13-dup-obj-makefile.patch
@@ -0,0 +1,39 @@
+https://bugs.gentoo.org/740798
+https://cgit.freebsd.org/ports/plain/sysutils/safecat/files/patch-Makefile
+
+ sysutils/safecat: avoid duplicating object files in library
+
+ Previously byte_copy.o and str_len.o were added to str.a, and then
+ specified as objects on the safecat link command line along with str.
+ When linking with lld this produces duplicate symbol errors like:
+
+ /usr/bin/ld: error: duplicate symbol: byte_copy
+ >>> defined at byte_copy.c
+ >>> byte_copy.o:(byte_copy) in archive str.a
+ >>> defined at byte_copy.c
+ >>> byte_copy.o(.text+0x0)
+
+ As these symbols are provided by str.a just avoid listing the object
+ files as well.
+--- safecat-1.13/Makefile.orig 2004-08-16 20:50:09.000000000 -0400
++++ safecat-1.13/Makefile 2017-11-23 16:49:00.505811000 -0500
+@@ -219,14 +219,14 @@
+
+ safecat: \
+ load safecat.o getln.a str.a stralloc.a strerr.a substdio.a alloc.o \
+-alloc_re.o byte_copy.o byte_cr.o envread.o error.o error_str.o fmt_uint64.o \
+-hostname.o sig.o stat_dir.o str_diffn.o str_len.o substdio_copy.o \
++alloc_re.o byte_cr.o envread.o error.o error_str.o fmt_uint64.o \
++hostname.o sig.o stat_dir.o str_diffn.o substdio_copy.o \
+ substdi.o substdio.o taia_fmtfrac.o taia_now.o taia_tai.o tempfile.o \
+ writefile.o
+- ./load safecat getln.a str.a stralloc.a strerr.a substdio.a \
+- alloc.o alloc_re.o byte_copy.o byte_cr.o envread.o error.o \
++ ./load safecat getln.a stralloc.a strerr.a substdio.a str.a \
++ alloc.o alloc_re.o byte_cr.o envread.o error.o \
+ error_str.o fmt_uint64.o hostname.o sig.o stat_dir.o str_diffn.o \
+- str_len.o substdi.o substdio.o substdio_copy.o taia_fmtfrac.o \
++ substdi.o substdio.o substdio_copy.o taia_fmtfrac.o \
+ taia_now.o taia_tai.o tempfile.o writefile.o
+
+ safecat.0: \
diff --git a/net-mail/safecat/files/safecat-1.13-include.patch b/net-mail/safecat/files/safecat-1.13-include.patch
new file mode 100644
index 000000000000..f59f2a45d230
--- /dev/null
+++ b/net-mail/safecat/files/safecat-1.13-include.patch
@@ -0,0 +1,97 @@
+diff '--color=auto' -Nuar safecat-1.13.orig/install.c safecat-1.13/install.c
+--- safecat-1.13.orig/install.c 2000-02-28 20:10:12.000000000 -0800
++++ safecat-1.13/install.c 2024-06-15 14:40:24.142699634 -0700
+@@ -1,3 +1,10 @@
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <errno.h>
++#include <fcntl.h>
++#include <signal.h>
++#include <stdlib.h>
++#include <unistd.h>
+ #include "substdio.h"
+ #include "strerr.h"
+ #include "error.h"
+diff '--color=auto' -Nuar safecat-1.13.orig/instcheck.c safecat-1.13/instcheck.c
+--- safecat-1.13.orig/instcheck.c 2000-02-28 20:10:12.000000000 -0800
++++ safecat-1.13/instcheck.c 2024-06-15 14:40:27.502696776 -0700
+@@ -1,5 +1,12 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <errno.h>
++#include <fcntl.h>
++#include <signal.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <sys/types.h>
++#include <sys/stat.h>
+ #include "strerr.h"
+ #include "error.h"
+ #include "readwrite.h"
+diff '--color=auto' -Nuar safecat-1.13.orig/safecat.c safecat-1.13/safecat.c
+--- safecat-1.13.orig/safecat.c 2004-08-16 18:14:34.000000000 -0700
++++ safecat-1.13/safecat.c 2024-06-15 14:40:17.246038832 -0700
+@@ -23,6 +23,7 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <signal.h>
++#include <stdlib.h>
+ #include <unistd.h>
+
+ /* Support for large files (on Linux systems, if the appropriate
+--- safecat-1.13.orig/alloc.c 2000-02-28 20:10:12.000000000 -0800
++++ safecat-1.13/alloc.c 2024-06-15 14:41:26.985979033 -0700
+@@ -1,7 +1,6 @@
++#include <stdlib.h>
+ #include "alloc.h"
+ #include "error.h"
+-extern char *malloc();
+-extern void free();
+
+ #define ALIGNMENT 16 /* XXX: assuming that this alignment is enough */
+ #define SPACE 4096 /* must be multiple of ALIGNMENT */
+@@ -18,7 +17,7 @@
+ char *x;
+ n = ALIGNMENT + n - (n & (ALIGNMENT - 1)); /* XXX: could overflow */
+ if (n <= avail) { avail -= n; return space + avail; }
+- x = malloc(n);
++ x = (char*)malloc(n);
+ if (!x) errno = error_nomem;
+ return x;
+ }
+--- safecat-1.13.orig/readwrite.h 2024-06-15 14:46:41.472362482 -0700
++++ safecat-1.13/readwrite.h 2024-06-15 14:46:21.755714187 -0700
+@@ -1,7 +1,8 @@
+ #ifndef READWRITE_H
+ #define READWRITE_H
+
+-extern int read();
+-extern int write();
++#include <unistd.h>
++//extern int read();
++//extern int write();
+
+ #endif
+--- safecat-1.13/stralloc.h 2000-02-28 20:10:12.000000000 -0800
++++ safecat-1.13/stralloc.h 2024-06-15 14:55:46.678492988 -0700
+@@ -7,14 +7,14 @@
+
+ extern int stralloc_ready();
+ extern int stralloc_readyplus();
+-extern int stralloc_copy();
+-extern int stralloc_cat();
++extern int stralloc_copy(stralloc *sato, stralloc *safrom);
++extern int stralloc_cat(stralloc *sato, stralloc *safrom);
+ extern int stralloc_copys();
+-extern int stralloc_cats();
+-extern int stralloc_copyb();
+-extern int stralloc_catb();
++extern int stralloc_cats(stralloc *sa, char *s);
++extern int stralloc_copyb(stralloc *sa, char *s, unsigned int n);
++extern int stralloc_catb(stralloc *sa, char *s, unsigned int n);
+ extern int stralloc_append(); /* beware: this takes a pointer to 1 char */
+-extern int stralloc_starts();
++extern int stralloc_starts(stralloc *sa, char *s);
+
+ #define stralloc_0(sa) stralloc_append(sa,"")
+
diff --git a/net-mail/safecat/safecat-1.13-r1.ebuild b/net-mail/safecat/safecat-1.13-r1.ebuild
new file mode 100644
index 000000000000..5ceefb07bb67
--- /dev/null
+++ b/net-mail/safecat/safecat-1.13-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Safecat implements qmail's maildir algorithm, safely copying standard input"
+HOMEPAGE="http://www.jeenyus.net/linux/software/safecat.html"
+SRC_URI="http://www.jeenyus.net/linux/software/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~mips ~ppc ~sparc ~x86"
+RESTRICT="test"
+
+DEPEND="sys-apps/groff"
+
+PATCHES=(
+ # applying maildir-patch
+ "${FILESDIR}"/safecat-1.11-gentoo.patch
+ # Fix parallel make errors
+ "${FILESDIR}"/${P}-makefile.patch
+ # Fix POSIX head/tail syntax
+ "${FILESDIR}"/${P}-head-tail-POSIX.patch
+ # Fix dup objects
+ "${FILESDIR}"/${P}-dup-obj-makefile.patch
+ # Headers
+ "${FILESDIR}"/${P}-include.patch
+)
+
+src_prepare() {
+ default
+
+ sed -ni '/man\|doc/!p' hier.c || die
+}
+
+src_configure() {
+ echo "/usr" > conf-root || die
+ echo "$(tc-getCC) ${CFLAGS}" > conf-cc || die
+ echo "$(tc-getCC) ${LDFLAGS}" > conf-ld || die
+ echo "$(tc-getAR)" > conf-ar || die
+}
+
+src_install() {
+ # ${D} is not valid in src_configure
+ echo "${D}/usr" > conf-root || die
+ emake setup check
+ einstalldocs
+ doman maildir.1 safecat.1
+}
diff --git a/net-mail/safecat/safecat-1.13.ebuild b/net-mail/safecat/safecat-1.13.ebuild
index 7dbf9cc60c48..f8fa413f269e 100644
--- a/net-mail/safecat/safecat-1.13.ebuild
+++ b/net-mail/safecat/safecat-1.13.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -12,11 +12,9 @@ SRC_URI="http://www.jeenyus.net/linux/software/${PN}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 ~hppa ~mips ppc ~sparc x86"
-IUSE=""
RESTRICT="test"
DEPEND="sys-apps/groff"
-RDEPEND=""
PATCHES=(
# applying maildir-patch
@@ -37,12 +35,13 @@ src_prepare() {
}
src_configure() {
- echo "${D}/usr" > conf-root || die
+ echo "/usr" > conf-root || die
echo "$(tc-getCC) ${CFLAGS}" > conf-cc || die
echo "$(tc-getCC) ${LDFLAGS}" > conf-ld || die
}
src_install() {
+ echo "${D}/usr" > conf-root || die
emake setup check
einstalldocs
doman maildir.1 safecat.1