diff options
author | edwin <edwin@FreeBSD.org> | 2007-09-23 11:17:21 +0800 |
---|---|---|
committer | edwin <edwin@FreeBSD.org> | 2007-09-23 11:17:21 +0800 |
commit | 10c9f4430447718a87d59e5ef1c3c5ed6116fafb (patch) | |
tree | bc5db2717a6333c1d351827b464d9a8d750df564 | |
parent | 2b5d3d2e478ce0b73c0b5f2b6efd5fc42d44848d (diff) | |
download | freebsd-ports-gnome-10c9f4430447718a87d59e5ef1c3c5ed6116fafb.tar.gz freebsd-ports-gnome-10c9f4430447718a87d59e5ef1c3c5ed6116fafb.tar.zst freebsd-ports-gnome-10c9f4430447718a87d59e5ef1c3c5ed6116fafb.zip |
Update port: security/sfs, fix build with gcc42
The attached patch fixes security/sfs so it builds with
gcc42. The only change I made that I am wary of is commenting
out the LIBTOOL variable in ${WRKSRC}/sfsrwcd/Makefile.
However, this seems to work fine on both 7.0-CURRENT and
6.2-STABLE.
In addition, I would not mind maintaining the port.
PR: ports/116389
Submitted by: Dave Grochowski <malus.x@gmail.com>
-rw-r--r-- | security/sfs/Makefile | 48 | ||||
-rw-r--r-- | security/sfs/files/patch-agent_ssu.C | 22 | ||||
-rw-r--r-- | security/sfs/files/patch-arpc_rpctypes.h | 8 | ||||
-rw-r--r-- | security/sfs/files/patch-async_aiod.h | 12 | ||||
-rw-r--r-- | security/sfs/files/patch-async_daemonize.C | 37 | ||||
-rw-r--r-- | security/sfs/files/patch-async_suio_vuprintf.C | 51 | ||||
-rw-r--r-- | security/sfs/files/patch-crypt_getsysnoise.C | 87 | ||||
-rw-r--r-- | security/sfs/files/patch-rex_chan.C | 15 | ||||
-rw-r--r-- | security/sfs/files/patch-rex_rex.C | 20 | ||||
-rw-r--r-- | security/sfs/files/patch-rpcc_rpcc.C | 29 | ||||
-rw-r--r-- | security/sfs/files/patch-sfsmisc_suidgetfd.C | 20 |
11 files changed, 339 insertions, 10 deletions
diff --git a/security/sfs/Makefile b/security/sfs/Makefile index 4f2d26f7a67a..707aae6d8ad5 100644 --- a/security/sfs/Makefile +++ b/security/sfs/Makefile @@ -8,11 +8,11 @@ PORTNAME= sfs PORTVERSION= 0.7.2 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= security net MASTER_SITES= http://www.fs.net/sfswww/dist/ -MAINTAINER= ports@FreeBSD.org +MAINTAINER= malus.x@gmail.com COMMENT= Self-Certifying File System: A secure global network file system PLIST_SUB= SFS_VERSION=${PORTVERSION} @@ -36,10 +36,6 @@ LIB_DEPENDS+= gmp.7:${PORTSDIR}/math/libgmp4 IGNORE= nfsmounter component fails to execute correctly on ${ARCH} systems .endif -.if ${OSVERSION} >= 700042 -BROKEN= Does not compile with GCC 4.2 -.endif - MAN1= \ dirsearch.1 \ newaid.1 \ @@ -74,6 +70,46 @@ post-extract: @${FIND} -E ${WRKDIR} -type f -iregex ".*\.(C|h)" -print0 | \ ${XARGS} -0 ${REINPLACE_CMD} -e 's/template get/get/' + @${REINPLACE_CMD} -e 's/authsess::\(authsess\)/\1/' \ + ${WRKSRC}/agent/agent.h + + @${REINPLACE_CMD} -e 's/\(u_int32_t val\)/\1 = 0/' \ + ${WRKSRC}/arpc/xdrmisc.C + + @${REINPLACE_CMD} -e 's/\(errorbuf = \)""/\1const_cast<char *> ("")/' \ + ${WRKSRC}/async/parseopt.C + + @${REINPLACE_CMD} -e 's/, \(&dummy_len\)/, (socklen_t *)\1/' \ + ${WRKSRC}/rex/connect.c + + @${REINPLACE_CMD} -e 's/, \(&reslen\)/, (socklen_t *)\1/' \ + ${WRKSRC}/rex/listen.c + + @${REINPLACE_CMD} -e 's/ptyclient::\(ptyclient\)/\1/' \ + ${WRKSRC}/rex/ptyd.C + + @${REINPLACE_CMD} -e 's/\("ptyd"\)/const_cast<char *> (\1)/' \ + ${WRKSRC}/rex/rexd.C + + @${REINPLACE_CMD} -e 's/, &sn/, (socklen_t *)\&sn/' \ + ${WRKSRC}/rex/uasync.c + + @${REINPLACE_CMD} -e \ + 's/\(\\"" << cp->id << "\\"\)/const_cast<char *> (\1)/' \ + ${WRKSRC}/rpcc/gencfile.C + + @${REINPLACE_CMD} -e 's/= fhextra =/=/' ${WRKSRC}/sfscd/ctlnode.C + + @${REINPLACE_CMD} -e 's/\("-c"\)/const_cast<char *> (\1)/' \ + ${WRKSRC}/sfsmisc/agentmisc.C + + @${REINPLACE_CMD} -e 's/\("localhost"\)/const_cast<char *> (\1)/' \ + ${WRKSRC}/sfsrwsd/client.C + +post-configure: + @${REINPLACE_CMD} -e 's/^LIBTOOL =/#LIBTOOL =/' \ + ${WRKSRC}/sfsrwcd/Makefile + pre-install: PKG_PREFIX=${PREFIX} ${SH} pkg-install ${PKGNAME} PRE-INSTALL diff --git a/security/sfs/files/patch-agent_ssu.C b/security/sfs/files/patch-agent_ssu.C new file mode 100644 index 000000000000..b80055180494 --- /dev/null +++ b/security/sfs/files/patch-agent_ssu.C @@ -0,0 +1,22 @@ +--- agent/ssu.C.orig 2002-08-01 17:09:53.000000000 -0400 ++++ agent/ssu.C 2007-09-15 19:44:20.000000000 -0400 +@@ -87,7 +87,7 @@ + str cwdopt = getcwdopt (); + + vec<char *> av; +- av.push_back (PATH_SU); ++ av.push_back (const_cast<char *> (PATH_SU)); + + int ch; + while ((ch = getopt (argc, argv, "fmlc:")) != -1) +@@ -111,8 +111,8 @@ + if (argc) + usage (); + +- av.push_back ("root"); +- av.push_back ("-c"); ++ av.push_back (const_cast<char *> ("root")); ++ av.push_back (const_cast<char *> ("-c")); + { + strbuf cbuf ("exec "); + cbuf << fix_exec_path ("newaid") << " " << uidopt; diff --git a/security/sfs/files/patch-arpc_rpctypes.h b/security/sfs/files/patch-arpc_rpctypes.h index 4bd0ae3feebf..161224ca2a96 100644 --- a/security/sfs/files/patch-arpc_rpctypes.h +++ b/security/sfs/files/patch-arpc_rpctypes.h @@ -1,5 +1,5 @@ ---- arpc/rpctypes.h.orig Mon Oct 11 16:43:34 2004 -+++ arpc/rpctypes.h Mon Oct 11 16:39:35 2004 +--- arpc/rpctypes.h.orig 2002-05-28 06:29:15.000000000 -0400 ++++ arpc/rpctypes.h 2007-09-15 17:13:31.000000000 -0400 @@ -129,7 +129,7 @@ if (&v != this) \ assign (v) @@ -27,10 +27,10 @@ }; template<size_t n = RPC_INFINITY> struct rpc_bytes : rpc_vec<char, n> { - void setstrmem (const str &s) { set (s.cstr (), s.len (), NOFREE); } -+ void setstrmem (const str &s) { set (s.cstr (), s.len (), freemode::NOFREE); } ++ void setstrmem (const str &s) { this->set (s.cstr (), s.len (), freemode::NOFREE); } rpc_bytes &operator= (const str &s) - { setsize (s.len ()); memcpy (base (), s.cstr (), size ()); return *this; } -+ { setsize (s.len ()); memcpy (this->base (), s.cstr (), this->size ()); return *this; } ++ { this->setsize (s.len ()); memcpy (this->base (), s.cstr (), this->size ()); return *this; } template<size_t m> rpc_bytes &operator= (const rpc_vec<char, m> &v) { rpc_vec<char, n>::operator= (v); return *this; } template<size_t m> rpc_bytes &operator= (const array<char, m> &v) diff --git a/security/sfs/files/patch-async_aiod.h b/security/sfs/files/patch-async_aiod.h new file mode 100644 index 000000000000..c212a307a66a --- /dev/null +++ b/security/sfs/files/patch-async_aiod.h @@ -0,0 +1,12 @@ +--- async/aiod.h.orig 2002-10-29 01:29:02.000000000 -0500 ++++ async/aiod.h 2007-09-15 16:53:08.000000000 -0400 +@@ -30,6 +30,9 @@ + #include "ihash.h" + #include "aiod_prot.h" + ++class aiod; ++class aiofh; ++ + struct aiod_req; + + class aiobuf { diff --git a/security/sfs/files/patch-async_daemonize.C b/security/sfs/files/patch-async_daemonize.C new file mode 100644 index 000000000000..bfe371757d1f --- /dev/null +++ b/security/sfs/files/patch-async_daemonize.C @@ -0,0 +1,37 @@ +--- async/daemonize.C.orig 2002-10-10 13:20:16.000000000 -0400 ++++ async/daemonize.C 2007-09-15 17:00:51.000000000 -0400 +@@ -49,18 +49,19 @@ + const str &logfile, int flags, mode_t mode) + { + #ifdef PATH_LOGGER +- char *av[] = { PATH_LOGGER, "-p", NULL, "-t", NULL, NULL, NULL }; ++ char *av[] = { const_cast<char *> (PATH_LOGGER), const_cast<char *> ("-p"), ++ NULL, const_cast<char *> ("-t"), NULL, NULL, NULL }; + av[2] = const_cast<char *> (priority.cstr ()); + + if (line) + av[5] = const_cast<char *> (line.cstr ()); + else +- av[5] = "log started"; ++ av[5] = const_cast<char *> ("log started"); + + if (tag) + av[4] = const_cast<char *> (tag.cstr ()); + else +- av[4] = ""; ++ av[4] = const_cast<char *> (""); + + pid_t pid; + int status; +@@ -93,9 +94,9 @@ + start_logger () + { + #ifdef PATH_LOGGER +- char *av[] = { PATH_LOGGER, "-p", ++ char *av[] = { const_cast<char *> (PATH_LOGGER), const_cast<char *> ("-p"), + const_cast<char *> (syslog_priority.cstr ()), +- "-t", "", NULL}; ++ const_cast<char *> ("-t"), const_cast<char *> (""), NULL}; + int fds[2]; + + close (0); diff --git a/security/sfs/files/patch-async_suio_vuprintf.C b/security/sfs/files/patch-async_suio_vuprintf.C new file mode 100644 index 000000000000..6ab295532b05 --- /dev/null +++ b/security/sfs/files/patch-async_suio_vuprintf.C @@ -0,0 +1,51 @@ +--- async/suio_vuprintf.C.orig 2000-10-08 19:18:10.000000000 -0400 ++++ async/suio_vuprintf.C 2007-09-15 17:02:44.000000000 -0400 +@@ -139,7 +139,7 @@ + int dprec; /* a copy of prec if [diouxX], 0 otherwise */ + int realsz; /* field size expanded by dprec */ + int size; /* size of converted field or string */ +- char *xdigs = ""; /* digits for [xX] conversion */ ++ char *xdigs = const_cast<char *> (""); /* digits for [xX] conversion */ + + char buf[BUF]; /* space for %c, %[diouxX], %[eEfgG] */ + char ox[2]; /* space for 0x hex-prefix */ +@@ -392,7 +392,7 @@ + /* NOSTRICT */ + _uquad = (u_long) va_arg (ap, void *); + base = HEX; +- xdigs = "0123456789abcdef"; ++ xdigs = const_cast<char *> ("0123456789abcdef"); + flags |= HEXPREFIX; + ch = 'x'; + goto nosign; +@@ -403,7 +403,7 @@ + cp = va_arg (ap, char *); + gotcp: + if (cp == NULL) +- cp = "(null)"; ++ cp = const_cast<char *> ("(null)"); + if (prec >= 0) { + /* + * can't use strlen; can only look for the +@@ -434,10 +434,10 @@ + base = DEC; + goto nosign; + case 'X': +- xdigs = "0123456789ABCDEF"; ++ xdigs = const_cast<char *> ("0123456789ABCDEF"); + goto hex; + case 'x': +- xdigs = "0123456789abcdef"; ++ xdigs = const_cast<char *> ("0123456789abcdef"); + hex: + _uquad = UARG (); + base = HEX; +@@ -497,7 +497,7 @@ + break; + + default: +- cp = "bug in vfprintf: bad base"; ++ cp = const_cast<char *> ("bug in vfprintf: bad base"); + size = strlen (cp); + goto skipsize; + } diff --git a/security/sfs/files/patch-crypt_getsysnoise.C b/security/sfs/files/patch-crypt_getsysnoise.C new file mode 100644 index 000000000000..9a41364dff11 --- /dev/null +++ b/security/sfs/files/patch-crypt_getsysnoise.C @@ -0,0 +1,87 @@ +--- crypt/getsysnoise.C.orig 2002-02-08 09:27:51.000000000 -0500 ++++ crypt/getsysnoise.C 2007-09-15 17:30:39.000000000 -0400 +@@ -27,61 +27,61 @@ + #include <sys/resource.h> + + char *const noiseprogs[][5] = { +- { PATH_PS, "laxwww" }, +- { PATH_PS, "-al" }, +- { PATH_LS, "-nfail", "/tmp/." }, ++ { const_cast<char *> (PATH_PS), const_cast<char *> ("laxwww") }, ++ { const_cast<char *> (PATH_PS), const_cast<char *> ("-al") }, ++ { const_cast<char *> (PATH_LS), const_cast<char *> ("-nfail"), const_cast<char *> ("/tmp/.") }, + #ifdef PATH_NETSTAT +- { PATH_NETSTAT, "-s" }, +- { PATH_NETSTAT, "-an" }, +- { PATH_NETSTAT, "-in" }, ++ { const_cast<char *> (PATH_NETSTAT), const_cast<char *> ("-s") }, ++ { const_cast<char *> (PATH_NETSTAT), const_cast<char *> ("-an") }, ++ { const_cast<char *> (PATH_NETSTAT), const_cast<char *> ("-in") }, + #endif /* PATH_NETSTAT */ + #ifdef PATH_NTPQ +- { PATH_NTPQ, "-np" }, ++ { const_cast<char *> (PATH_NTPQ), const_cast<char *> ("-np") }, + #endif /* PATH_NTPQ */ + #ifdef PATH_W +- { PATH_W }, ++ { const_cast<char *> (PATH_W) }, + #endif /* PATH_W */ + #ifdef PATH_NFSSTAT +- { PATH_NFSSTAT }, ++ { const_cast<char *> (PATH_NFSSTAT) }, + #endif /* PATH_NFSSTAT */ + #ifdef PATH_VNSTAT +- { PATH_VMSTAT }, +- { PATH_VMSTAT, "-i" }, +- { PATH_VMSTAT, "-s" }, ++ { const_cast<char *> (PATH_VMSTAT) }, ++ { const_cast<char *> (PATH_VMSTAT), const_cast<char *> ("-i") }, ++ { const_cast<char *> (PATH_VMSTAT), const_cast<char *> ("-s") }, + #endif /* PATH_VNSTAT */ + #ifdef PATH_IOSTAT + #if defined (__linux__) || defined (__osf__) +- { PATH_IOSTAT }, ++ { const_cast<char *> (PATH_IOSTAT) }, + #else /* not linux or osf */ +- { PATH_IOSTAT, "-I" }, ++ { const_cast<char *> (PATH_IOSTAT), const_cast<char *> ("-I") }, + #endif /* not linux or osf */ + #endif /* PATH_IOSTAT */ + #ifdef PATH_LSOF +- { PATH_LSOF, "-bwn", ++ { const_cast<char *> (PATH_LSOF), const_cast<char *> ("-bwn"), + # ifdef LSOF_DEVCACHE +- "-Di" ++ const_cast<char *> ("-Di") + # endif /* LSOF_DEVCACHE */ + }, + #else /* no lsof */ + # ifdef PATH_FSTAT +- { PATH_FSTAT }, ++ { const_cast<char *> (PATH_FSTAT) }, + # endif /* PATH_FSTAT */ + # ifdef PATH_PSTAT +- { PATH_PSTAT, "-f" }, ++ { const_cast<char *> (PATH_PSTAT), const_cast<char *> ("-f") }, + # endif /* PATH_PSTAT */ + #endif /* no lsof */ + #ifdef PATH_PSTAT +- { PATH_PSTAT, "-t" }, ++ { const_cast<char *> (PATH_PSTAT), const_cast<char *> ("-t") }, + # if defined (__OpenBSD__) || defined (__NetBSD__) || defined (__FreeBSD__) +- { PATH_PSTAT, "-v" }, ++ { const_cast<char *> (PATH_PSTAT), const_cast<char *> ("-v") }, + # endif /* open/net/freebsd */ + #endif /* PATH_PSTAT */ + #ifdef PATH_NFSSTAT +- { PATH_NFSSTAT }, ++ { const_cast<char *> (PATH_NFSSTAT) }, + #endif /* PATH_NFSSTAT */ + #if 0 +- { PATH_RUP }, +- { PATH_RUSERS, "-l" }, ++ { const_cast<char *> (PATH_RUP) }, ++ { const_cast<char *> (PATH_RUSERS), const_cast<char *> ("-l") }, + #endif + { NULL } + }; diff --git a/security/sfs/files/patch-rex_chan.C b/security/sfs/files/patch-rex_chan.C new file mode 100644 index 000000000000..686a1f96d3d3 --- /dev/null +++ b/security/sfs/files/patch-rex_chan.C @@ -0,0 +1,15 @@ +--- rex/chan.C.orig 2007-09-15 19:54:59.000000000 -0400 ++++ rex/chan.C 2007-09-15 19:55:32.000000000 -0400 +@@ -366,10 +366,10 @@ + av.push_back (default_shell); + else { + warn ("SHELL not set, reverting to sh\n"); +- av.push_back ("sh"); ++ av.push_back (const_cast<char *> ("sh")); + } + if (argp->av.size () == 1) +- av.push_back ("-i"); ++ av.push_back (const_cast<char *> ("-i")); + } + else + av.push_back (const_cast<char *> (argp->av[0].cstr ())); diff --git a/security/sfs/files/patch-rex_rex.C b/security/sfs/files/patch-rex_rex.C new file mode 100644 index 000000000000..fe24d58ed631 --- /dev/null +++ b/security/sfs/files/patch-rex_rex.C @@ -0,0 +1,20 @@ +--- rex/rex.C.orig 2002-11-19 14:58:44.000000000 -0500 ++++ rex/rex.C 2007-09-15 19:48:38.000000000 -0400 +@@ -746,7 +746,7 @@ + vec<str> cmd2vec (str cmdstr) { + char *cmd = const_cast<char *> (cmdstr.cstr ()); + vec<str> cmdvec; +- char *word, *sep = "\t "; ++ char *word, *sep = const_cast<char *> ("\t "); + for (word = strtok(cmd, sep); word; word = strtok(NULL, sep)) + cmdvec.push_back (word); + return cmdvec; +@@ -962,7 +962,7 @@ + main (int argc, char **argv) + { + setprogname (argv[0]); +- putenv ("POSIXLY_CORRECT=1"); // Prevents Linux from reordering options ++ putenv (const_cast<char *> ("POSIXLY_CORRECT=1")); // Prevents Linux from reordering options + sfsconst_init (); + + int ch; diff --git a/security/sfs/files/patch-rpcc_rpcc.C b/security/sfs/files/patch-rpcc_rpcc.C new file mode 100644 index 000000000000..11e1886eeb7e --- /dev/null +++ b/security/sfs/files/patch-rpcc_rpcc.C @@ -0,0 +1,29 @@ +--- rpcc/rpcc.C.orig 2002-11-17 16:42:10.000000000 -0500 ++++ rpcc/rpcc.C 2007-09-15 17:04:18.000000000 -0400 +@@ -151,8 +151,8 @@ + void (*fn) (str) = NULL; + int len; + +- av.push_back (PATH_CPP); +- av.push_back ("-DRPCC"); ++ av.push_back (const_cast<char *> (PATH_CPP)); ++ av.push_back (const_cast<char *> ("-DRPCC")); + av.push_back (NULL); + + for (an = 1; an < argc; an++) { +@@ -196,13 +196,13 @@ + + switch (mode) { + case HEADER: +- av[2] = "-DRPCC_H"; ++ av[2] = const_cast<char *> ("-DRPCC_H"); + fn = genheader; + if (!outfile) + outfile = strbuf ("%.*sh", len - 1, basename); + break; + case CFILE: +- av[2] = "-DRPCC_C"; ++ av[2] = const_cast<char *> ("-DRPCC_C"); + fn = gencfile; + if (!outfile) + outfile = strbuf ("%.*sC", len - 1, basename); diff --git a/security/sfs/files/patch-sfsmisc_suidgetfd.C b/security/sfs/files/patch-sfsmisc_suidgetfd.C new file mode 100644 index 000000000000..c6a70e4c4f6c --- /dev/null +++ b/security/sfs/files/patch-sfsmisc_suidgetfd.C @@ -0,0 +1,20 @@ +--- sfsmisc/suidgetfd.C.orig 2001-02-07 02:48:01.000000000 -0500 ++++ sfsmisc/suidgetfd.C 2007-09-15 19:11:34.000000000 -0400 +@@ -42,7 +42,7 @@ + close_on_exec (fds[0]); + + str path = fix_exec_path ("suidconnect"); +- char *av[] = { "suidconnect", const_cast<char *> (prog.cstr ()), NULL }; ++ char *av[] = { const_cast<char *> ("suidconnect"), const_cast<char *> (prog.cstr ()), NULL }; + if (spawn (path, av, fds[1]) == -1) { + close (fds[0]); + close (fds[1]); +@@ -64,7 +64,7 @@ + close_on_exec (fds[0]); + + str path = fix_exec_path ("suidconnect"); +- char *av[] = { "suidconnect", const_cast<char *> (prog.cstr ()), NULL }; ++ char *av[] = { const_cast<char *> ("suidconnect"), const_cast<char *> (prog.cstr ()), NULL }; + if (spawn (path, av, fds[1]) == -1) + fatal << path << ": " << strerror (errno) << "\n"; + close (fds[1]); |