summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devel/fam/Makefile13
-rw-r--r--devel/fam/distinfo2
-rw-r--r--devel/fam/files/fam-mntent.h56
-rw-r--r--devel/fam/files/fam-mntent.h.orig0
-rw-r--r--devel/fam/files/fam-mntent_compat.c++151
-rw-r--r--devel/fam/files/fam-mntent_compat.c++.orig0
-rw-r--r--devel/fam/files/patch-Makefile.am.orig (renamed from devel/fam/files/patch-Makefile.am)0
-rw-r--r--devel/fam/files/patch-acconfig.h12
-rw-r--r--devel/fam/files/patch-acconfig.h.orig0
-rw-r--r--devel/fam/files/patch-config.h.in12
-rw-r--r--devel/fam/files/patch-config.h.in.orig0
-rw-r--r--devel/fam/files/patch-configure.in36
-rw-r--r--devel/fam/files/patch-configure.in.orig0
-rw-r--r--devel/fam/files/patch-fam-FileSystem.c++12
-rw-r--r--devel/fam/files/patch-fam-FileSystem.c++.orig0
-rw-r--r--devel/fam/files/patch-fam-FileSystemTable.c++14
-rw-r--r--devel/fam/files/patch-fam-FileSystemTable.c++.orig0
-rw-r--r--devel/fam/files/patch-fam-IMon.c++14
-rw-r--r--devel/fam/files/patch-fam-IMon.c++.orig0
-rw-r--r--devel/fam/files/patch-fam-Interest.c++14
-rw-r--r--devel/fam/files/patch-fam-Interest.c++.orig0
-rw-r--r--devel/fam/files/patch-fam-InternalClient.c++13
-rw-r--r--devel/fam/files/patch-fam-InternalClient.c++.orig0
-rw-r--r--devel/fam/files/patch-fam-Listener.c++39
-rw-r--r--devel/fam/files/patch-fam-Listener.c++.orig0
-rw-r--r--devel/fam/files/patch-fam-Log.c++12
-rw-r--r--devel/fam/files/patch-fam-Log.c++.orig0
-rw-r--r--devel/fam/files/patch-fam-Makefile.am11
-rw-r--r--devel/fam/files/patch-fam-Makefile.am.orig0
-rw-r--r--devel/fam/files/patch-fam-Scheduler.h11
-rw-r--r--devel/fam/files/patch-fam-Scheduler.h.orig0
-rw-r--r--devel/fam/files/patch-fam-StringTable.h11
-rw-r--r--devel/fam/files/patch-fam-StringTable.h.orig0
-rw-r--r--devel/fam/files/patch-freebsd.orig (renamed from devel/fam/files/patch-freebsd)0
-rw-r--r--devel/fam/files/patch-libfam-Client.c++11
-rw-r--r--devel/fam/files/patch-libfam-Client.c++.orig0
-rw-r--r--devel/fam/files/patch-libfam-fam.c++20
-rw-r--r--devel/fam/files/patch-libfam-fam.c++.orig0
-rw-r--r--devel/fam/files/patch-test-test.c++11
-rw-r--r--devel/fam/files/patch-test-test.c++.orig0
-rw-r--r--devel/fam/pkg-plist3
41 files changed, 471 insertions, 7 deletions
diff --git a/devel/fam/Makefile b/devel/fam/Makefile
index 5db30a80704a..c558a198cae8 100644
--- a/devel/fam/Makefile
+++ b/devel/fam/Makefile
@@ -6,23 +6,28 @@
#
PORTNAME= fam
-PORTVERSION= 2.6.4
-PORTREVISION= 1
+PORTVERSION= 2.6.8
CATEGORIES= devel
MASTER_SITES= ftp://oss.sgi.com/projects/fam/download/
-DISTNAME= ${PORTNAME}-oss-${PORTVERSION}
MAINTAINER= ports@geeksrus.net
USE_AUTOMAKE_VER=14
USE_LIBTOOL= yes
USE_GMAKE= yes
-PATCH_STRIP= -p1
INSTALLS_SHLIB= yes
MAN1= fam.1m
MAN3= fam.3x
+pre-configure:
+ ${RM} -fr ${WRKSRC}/util
+ ${CP} ${FILESDIR}/fam-mntent.h ${WRKSRC}/fam/mntent.h
+ ${CP} ${FILESDIR}/fam-mntent_compat.c++ ${WRKSRC}/fam/mntent_compat.c++
+ ${MV} ${WRKSRC}/Makefile.am ${WRKSRC}/Makefile.am.orig
+ ${SED} -e s/util// -e /SUBDIRS/q \
+ <${WRKSRC}/Makefile.am.orig >${WRKSRC}/Makefile.am
+
post-install:
@${INSTALL_SCRIPT} -m 751 ${FILESDIR}/fam.sh.sample ${PREFIX}/etc/rc.d/fam.sh.sample
@${CAT} ${PKGMESSAGE}
diff --git a/devel/fam/distinfo b/devel/fam/distinfo
index f58f12f7033b..8962ebc6d61d 100644
--- a/devel/fam/distinfo
+++ b/devel/fam/distinfo
@@ -1 +1 @@
-MD5 (fam-oss-2.6.4.tar.gz) = d060919b3d9ede61a8b68eae1ded53ce
+MD5 (fam-2.6.8.tar.gz) = 2e02ae47d52122511d079b78b06ade4b
diff --git a/devel/fam/files/fam-mntent.h b/devel/fam/files/fam-mntent.h
new file mode 100644
index 000000000000..078b246cd02e
--- /dev/null
+++ b/devel/fam/files/fam-mntent.h
@@ -0,0 +1,56 @@
+/*
+ * mntent
+ * mntent.h - compatability header for FreeBSD
+ *
+ * Copyright (c) 2001 David Rufino <daverufino@btinternet.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if defined(HAVE_MNTENT_H)
+#include <mntent.h>
+#else
+#ifndef _MNTENT_H
+#define _MNTENT_H
+#include <stdio.h>
+
+#define MOUNTED "dummy"
+
+#define MNTTYPE_NFS "nfs"
+
+struct mntent {
+ char *mnt_fsname;
+ char *mnt_dir;
+ char *mnt_type;
+ char *mnt_opts;
+ int mnt_freq;
+ int mnt_passno;
+};
+
+#define setmntent(x,y) ((FILE *)0x1)
+struct mntent *getmntent __P ((FILE *fp));
+char *hasmntopt __P ((const struct mntent *mnt, const char *option));
+#define endmntent(x) ((int)1)
+
+#endif /* _MNTENT_H */
+#endif /* HAVE_MNTENT_H */
diff --git a/devel/fam/files/fam-mntent.h.orig b/devel/fam/files/fam-mntent.h.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/fam-mntent.h.orig
diff --git a/devel/fam/files/fam-mntent_compat.c++ b/devel/fam/files/fam-mntent_compat.c++
new file mode 100644
index 000000000000..e6c0bb877ef5
--- /dev/null
+++ b/devel/fam/files/fam-mntent_compat.c++
@@ -0,0 +1,151 @@
+/*
+ * Copyright (c) 1980, 1989, 1993, 1994
+ * The Regents of the University of California. All rights reserved.
+ * Copyright (c) 2001
+ * David Rufino <daverufino@btinternet.com>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* most of this was ripped from the mount(3) source */
+
+#include "config.h"
+#include "mntent.h"
+#if !defined(HAVE_MNTENT_H)
+#include <stdlib.h>
+#include <string.h>
+#include <sys/param.h>
+#include <sys/ucred.h>
+#include <sys/mount.h>
+
+static int pos = -1;
+static int mntsize = -1;
+static struct mntent _mntent;
+
+char *
+hasmntopt (const struct mntent *mnt, const char *option)
+{
+ int found;
+ char *opt, *optbuf;
+
+ optbuf = strdup(mnt->mnt_opts);
+ found = 0;
+ for (opt = optbuf; (opt = strtok(opt, " ")) != NULL; opt = NULL) {
+ if (!strcasecmp(opt, option)) {
+ opt = opt - optbuf + mnt->mnt_opts;
+ free (optbuf);
+ return (opt);
+ }
+ }
+ free (optbuf);
+ return (NULL);
+}
+
+static char *
+catopt (char *s0, const char *s1)
+{
+ size_t i;
+ char *cp;
+
+ if (s1 == NULL || *s1 == '\0')
+ return s0;
+ if (s0 && *s0) {
+ i = strlen(s0) + strlen(s1) + 1 + 1;
+ if ((cp = (char *)malloc(i)) == NULL)
+ return (NULL);
+ (void)snprintf(cp, i, "%s %s", s0, s1);
+ } else
+ cp = strdup(s1);
+
+ if (s0)
+ free(s0);
+ return (cp);
+}
+
+
+static char *
+flags2opts (int flags)
+{
+ char *res;
+ res = NULL;
+ res = catopt(res, (flags & MNT_RDONLY) ? "ro" : "rw");
+ if (flags & MNT_SYNCHRONOUS) res = catopt(res, "sync");
+ if (flags & MNT_NOEXEC) res = catopt(res, "noexec");
+ if (flags & MNT_NOSUID) res = catopt(res, "nosuid");
+ if (flags & MNT_NODEV) res = catopt(res, "nodev");
+ if (flags & MNT_UNION) res = catopt(res, "union");
+ if (flags & MNT_ASYNC) res = catopt(res, "async");
+ if (flags & MNT_NOATIME) res = catopt(res, "noatime");
+ if (flags & MNT_NOCLUSTERR) res = catopt(res, "noclusterr");
+ if (flags & MNT_NOCLUSTERW) res = catopt(res, "noclusterw");
+ if (flags & MNT_NOSYMFOLLOW) res = catopt(res, "nosymfollow");
+ if (flags & MNT_SUIDDIR) res = catopt(res, "suiddir");
+
+ return res;
+}
+
+static struct mntent *
+statfs_to_mntent (struct statfs *mntbuf)
+{
+ static char opts_buf[40], *tmp;
+
+ _mntent.mnt_fsname = mntbuf->f_mntfromname;
+ _mntent.mnt_dir = mntbuf->f_mntonname;
+ _mntent.mnt_type = mntbuf->f_fstypename;
+ tmp = flags2opts (mntbuf->f_flags);
+ if (tmp) {
+ opts_buf[sizeof(opts_buf)-1] = '\0';
+ strncpy (opts_buf, tmp, sizeof(opts_buf)-1);
+ free (tmp);
+ } else {
+ *opts_buf = '\0';
+ }
+ _mntent.mnt_opts = opts_buf;
+ _mntent.mnt_freq = _mntent.mnt_passno = 0;
+ return (&_mntent);
+}
+
+struct mntent *
+getmntent (FILE *fp)
+{
+ struct statfs *mntbuf;
+
+ if (pos == -1 || mntsize == -1)
+ mntsize = getmntinfo (&mntbuf, MNT_NOWAIT);
+
+ ++pos;
+ if (pos == mntsize) {
+ pos = mntsize = -1;
+ return (NULL);
+ }
+
+ return (statfs_to_mntent (&mntbuf[pos]));
+}
+
+#endif /* HAVE_MNTENT_H */
diff --git a/devel/fam/files/fam-mntent_compat.c++.orig b/devel/fam/files/fam-mntent_compat.c++.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/fam-mntent_compat.c++.orig
diff --git a/devel/fam/files/patch-Makefile.am b/devel/fam/files/patch-Makefile.am.orig
index f5657e4d6f37..f5657e4d6f37 100644
--- a/devel/fam/files/patch-Makefile.am
+++ b/devel/fam/files/patch-Makefile.am.orig
diff --git a/devel/fam/files/patch-acconfig.h b/devel/fam/files/patch-acconfig.h
new file mode 100644
index 000000000000..1c866e375c4a
--- /dev/null
+++ b/devel/fam/files/patch-acconfig.h
@@ -0,0 +1,12 @@
+diff -ruN acconfig.h acconfig.h
+--- acconfig.h Mon Apr 29 02:26:53 2002
++++ acconfig.h Sat Jun 8 16:31:07 2002
+@@ -47,6 +47,8 @@
+ ** Otherwise, we'll use MNTTYPE_NFS. */
+ #undef HAVE_FSID_NFS2
+
++#undef HAVE_MNTENT_H
++
+ /* Define if we have MNTTYPE_NFS2 */
+ #define HAVE_MNTTYPE_NFS2 0
+
diff --git a/devel/fam/files/patch-acconfig.h.orig b/devel/fam/files/patch-acconfig.h.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-acconfig.h.orig
diff --git a/devel/fam/files/patch-config.h.in b/devel/fam/files/patch-config.h.in
new file mode 100644
index 000000000000..1029b8ae3b4d
--- /dev/null
+++ b/devel/fam/files/patch-config.h.in
@@ -0,0 +1,12 @@
+diff -ruN config.h.in config.h.in
+--- config.h.in Sun Jun 2 22:08:52 2002
++++ config.h.in Sat Jun 8 16:31:07 2002
+@@ -12,6 +12,8 @@
+ /* Define if the system has imon and IMONIOC_ ioctl flags. */
+ #undef HAVE_IMON
+
++#undef HAVE_MNTENT_H
++
+ /* Define if the system has the struct revokdi and the IMONIOC_REVOKDI
+ ** ioctl flag. (IRIX 5.3 doesn't.)
+ */
diff --git a/devel/fam/files/patch-config.h.in.orig b/devel/fam/files/patch-config.h.in.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-config.h.in.orig
diff --git a/devel/fam/files/patch-configure.in b/devel/fam/files/patch-configure.in
new file mode 100644
index 000000000000..8128dce191ee
--- /dev/null
+++ b/devel/fam/files/patch-configure.in
@@ -0,0 +1,36 @@
+diff -ruN configure.in configure.in
+--- configure.in Mon Apr 29 03:55:42 2002
++++ configure.in Sat Jun 8 16:31:07 2002
+@@ -99,6 +99,8 @@
+ dnl AC_HEADER_SYS_WAIT
+ dnl AC_CHECK_HEADERS(fcntl.h limits.h sys/time.h syslog.h unistd.h)
+
++AC_CHECK_HEADER(mntent.h, AC_DEFINE(HAVE_MNTENT_H))
++
+ dnl
+ dnl See if imon is available; if so, is it IRIX or Linux?
+ dnl
+@@ -314,10 +316,10 @@
+ dnl If we don't have MNTTYPE_NFS , we croak.
+ dnl
+
+-FAM_DECL_IN_MNTENT(MNTTYPE_NFS, ,AC_MSG_ERROR(Didn't find MNTTYPE_NFS in mntent.h))
+-FAM_DECL_IN_MNTENT(MNTTYPE_NFS2, AC_DEFINE(HAVE_MNTTYPE_NFS2))
+-FAM_DECL_IN_MNTENT(MNTTYPE_NFS3, AC_DEFINE(HAVE_MNTTYPE_NFS3))
+-FAM_DECL_IN_MNTENT(MNTTYPE_CACHEFS, AC_DEFINE(HAVE_MNTTYPE_CACHEFS))
++dnl FAM_DECL_IN_MNTENT(MNTTYPE_NFS, ,AC_MSG_ERROR(Didn't find MNTTYPE_NFS in mntent.h))
++dnl FAM_DECL_IN_MNTENT(MNTTYPE_NFS2, AC_DEFINE(HAVE_MNTTYPE_NFS2))
++dnl FAM_DECL_IN_MNTENT(MNTTYPE_NFS3, AC_DEFINE(HAVE_MNTTYPE_NFS3))
++dnl FAM_DECL_IN_MNTENT(MNTTYPE_CACHEFS, AC_DEFINE(HAVE_MNTTYPE_CACHEFS))
+
+ dnl
+ dnl Test for bindresvport() prototype.
+@@ -569,8 +571,6 @@
+ man/fam.1m
+ support/Makefile
+ test/Makefile
+- util/Makefile
+- util/editconf/Makefile
+ )
+
+ dnl
diff --git a/devel/fam/files/patch-configure.in.orig b/devel/fam/files/patch-configure.in.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-configure.in.orig
diff --git a/devel/fam/files/patch-fam-FileSystem.c++ b/devel/fam/files/patch-fam-FileSystem.c++
new file mode 100644
index 000000000000..dfdcc0cef66c
--- /dev/null
+++ b/devel/fam/files/patch-fam-FileSystem.c++
@@ -0,0 +1,12 @@
+diff -ruN fam/FileSystem.c++ fam/FileSystem.c++
+--- fam/FileSystem.c++ Mon Apr 29 02:26:54 2002
++++ fam/FileSystem.c++ Sat Jun 8 16:31:07 2002
+@@ -22,7 +22,7 @@
+
+ #include "FileSystem.h"
+
+-#include <mntent.h>
++#include "mntent.h"
+ #include <string.h>
+
+ #include "Event.h"
diff --git a/devel/fam/files/patch-fam-FileSystem.c++.orig b/devel/fam/files/patch-fam-FileSystem.c++.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-fam-FileSystem.c++.orig
diff --git a/devel/fam/files/patch-fam-FileSystemTable.c++ b/devel/fam/files/patch-fam-FileSystemTable.c++
new file mode 100644
index 000000000000..bb90a40e5596
--- /dev/null
+++ b/devel/fam/files/patch-fam-FileSystemTable.c++
@@ -0,0 +1,14 @@
+diff -ruN fam/FileSystemTable.c++ fam/FileSystemTable.c++
+--- fam/FileSystemTable.c++ Wed May 29 00:17:42 2002
++++ fam/FileSystemTable.c++ Sat Jun 8 16:31:07 2002
+@@ -256,7 +256,10 @@
+ // create_fs_by_name initializes our "root" member variable.
+ if (!fs_by_name)
+ { create_fs_by_name();
++#if !defined(__FreeBSD__)
++ /* there is no mtab "file" in freebsd! */
+ mtab_watcher = new InternalClient(mtab_name, mtab_event_handler, NULL);
++#endif
+ }
+
+ cr.become_user();
diff --git a/devel/fam/files/patch-fam-FileSystemTable.c++.orig b/devel/fam/files/patch-fam-FileSystemTable.c++.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-fam-FileSystemTable.c++.orig
diff --git a/devel/fam/files/patch-fam-IMon.c++ b/devel/fam/files/patch-fam-IMon.c++
new file mode 100644
index 000000000000..f1e942971b30
--- /dev/null
+++ b/devel/fam/files/patch-fam-IMon.c++
@@ -0,0 +1,14 @@
+diff -ruN fam/IMon.c++ fam/IMon.c++
+--- fam/IMon.c++ Mon Apr 29 02:26:54 2002
++++ fam/IMon.c++ Sat Jun 8 16:31:07 2002
+@@ -34,7 +34,9 @@
+ #endif
+ #endif
+
+-#include <sys/sysmacros.h>
++#if !defined(__FreeBSD__)
++# include <sys/sysmacros.h>
++#endif
+ #include <unistd.h>
+
+ #include "Interest.h"
diff --git a/devel/fam/files/patch-fam-IMon.c++.orig b/devel/fam/files/patch-fam-IMon.c++.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-fam-IMon.c++.orig
diff --git a/devel/fam/files/patch-fam-Interest.c++ b/devel/fam/files/patch-fam-Interest.c++
new file mode 100644
index 000000000000..30e92b814c4c
--- /dev/null
+++ b/devel/fam/files/patch-fam-Interest.c++
@@ -0,0 +1,14 @@
+diff -ruN fam/Interest.c++ fam/Interest.c++
+--- fam/Interest.c++ Mon Apr 29 02:26:54 2002
++++ fam/Interest.c++ Sat Jun 8 16:31:07 2002
+@@ -25,7 +25,9 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <sys/param.h>
+-#include <sys/sysmacros.h>
++#if !defined(__FreeBSD__)
++# include <sys/sysmacros.h>
++#endif
+
+ #ifdef HAVE_IRIX_XTAB_VERIFICATION
+ #include <stdio.h>
diff --git a/devel/fam/files/patch-fam-Interest.c++.orig b/devel/fam/files/patch-fam-Interest.c++.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-fam-Interest.c++.orig
diff --git a/devel/fam/files/patch-fam-InternalClient.c++ b/devel/fam/files/patch-fam-InternalClient.c++
new file mode 100644
index 000000000000..04735c92a33a
--- /dev/null
+++ b/devel/fam/files/patch-fam-InternalClient.c++
@@ -0,0 +1,13 @@
+diff -ruN fam/InternalClient.c++ fam/InternalClient.c++
+--- fam/InternalClient.c++ Mon Apr 29 02:26:54 2002
++++ fam/InternalClient.c++ Sat Jun 8 16:31:07 2002
+@@ -35,8 +35,8 @@
+ {
+ assert(filename);
+ assert(h);
+- assert(filename[0] == '/');
+ Log::debug("%s watching %s", name(), filename);
++ assert(filename[0] == '/');
+ interest = new File(filename, this, Request(0), Cred::SuperUser);
+ }
+
diff --git a/devel/fam/files/patch-fam-InternalClient.c++.orig b/devel/fam/files/patch-fam-InternalClient.c++.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-fam-InternalClient.c++.orig
diff --git a/devel/fam/files/patch-fam-Listener.c++ b/devel/fam/files/patch-fam-Listener.c++
new file mode 100644
index 000000000000..382b20446b13
--- /dev/null
+++ b/devel/fam/files/patch-fam-Listener.c++
@@ -0,0 +1,39 @@
+diff -ruN fam/Listener.c++ fam/Listener.c++
+--- fam/Listener.c++ Wed May 29 00:19:26 2002
++++ fam/Listener.c++ Sat Jun 8 16:31:07 2002
+@@ -207,7 +207,11 @@
+ unsetenv("TMPDIR");
+
+ char *tmpfile = tempnam("/tmp", ".fam");
++#if defined(__FreeBSD__)
++ sockaddr_un sun = { sizeof(sockaddr_un), AF_UNIX, "" };
++#else
+ sockaddr_un sun = { AF_UNIX, "" };
++#endif
+ if(strlen(tmpfile) >= (sizeof(sun.sun_path) - 1))
+ {
+ Log::error("tmpnam() too long for sun_path (%d >= %d)!",
+@@ -277,7 +281,11 @@
+
+ // Get the new socket.
+
++#if defined(__FreeBSD__)
++ struct sockaddr_un sun = { sizeof(sockaddr_un), AF_UNIX, "" };
++#else
+ struct sockaddr_un sun = { AF_UNIX, "" };
++#endif
+ CONFIG_SOCKLEN_T sunlen = sizeof(sun);
+ int client_fd = accept(ofd, (struct sockaddr *) &sun, &sunlen);
+ if (client_fd < 0)
+@@ -339,7 +347,11 @@
+ void
+ Listener::dirty_ugly_hack()
+ {
++#if defined(__FreeBSD__)
++ static sockaddr_un sun = { sizeof (sockaddr_un), AF_UNIX, "/tmp/.fam_socket" };
++#else
+ static sockaddr_un sun = { AF_UNIX, "/tmp/.fam_socket" };
++#endif
+
+ int sock = socket(PF_UNIX, SOCK_STREAM, 0);
+ if (sock < 0)
diff --git a/devel/fam/files/patch-fam-Listener.c++.orig b/devel/fam/files/patch-fam-Listener.c++.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-fam-Listener.c++.orig
diff --git a/devel/fam/files/patch-fam-Log.c++ b/devel/fam/files/patch-fam-Log.c++
new file mode 100644
index 000000000000..b8caf257335b
--- /dev/null
+++ b/devel/fam/files/patch-fam-Log.c++
@@ -0,0 +1,12 @@
+diff -ruN fam/Log.c++ fam/Log.c++
+--- fam/Log.c++ Wed May 29 00:20:30 2002
++++ fam/Log.c++ Sat Jun 8 16:31:07 2002
+@@ -28,6 +28,8 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <syslog.h>
++#include <sys/time.h>
++#include <sys/types.h>
+ #include <sys/resource.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
diff --git a/devel/fam/files/patch-fam-Log.c++.orig b/devel/fam/files/patch-fam-Log.c++.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-fam-Log.c++.orig
diff --git a/devel/fam/files/patch-fam-Makefile.am b/devel/fam/files/patch-fam-Makefile.am
new file mode 100644
index 000000000000..697cef89d32d
--- /dev/null
+++ b/devel/fam/files/patch-fam-Makefile.am
@@ -0,0 +1,11 @@
+diff -ruN fam/Makefile.am fam/Makefile.am
+--- fam/Makefile.am Mon Apr 29 02:26:54 2002
++++ fam/Makefile.am Sat Jun 8 16:31:07 2002
+@@ -72,6 +72,7 @@
+ main.c++ \
+ timeval.c++ \
+ timeval.h \
++ mntent_compat.c++ \
+ @IMON_FUNCS@.c++
+
+ EXTRA_fam_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++
diff --git a/devel/fam/files/patch-fam-Makefile.am.orig b/devel/fam/files/patch-fam-Makefile.am.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-fam-Makefile.am.orig
diff --git a/devel/fam/files/patch-fam-Scheduler.h b/devel/fam/files/patch-fam-Scheduler.h
new file mode 100644
index 000000000000..0dd63338260d
--- /dev/null
+++ b/devel/fam/files/patch-fam-Scheduler.h
@@ -0,0 +1,11 @@
+diff -ruN fam/Scheduler.h fam/Scheduler.h
+--- fam/Scheduler.h Mon Apr 29 02:26:54 2002
++++ fam/Scheduler.h Sat Jun 8 16:31:07 2002
+@@ -24,6 +24,7 @@
+ #define Scheduler_included
+
+ #include <sys/time.h>
++#include <string.h>
+
+ #include "Boolean.h"
+
diff --git a/devel/fam/files/patch-fam-Scheduler.h.orig b/devel/fam/files/patch-fam-Scheduler.h.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-fam-Scheduler.h.orig
diff --git a/devel/fam/files/patch-fam-StringTable.h b/devel/fam/files/patch-fam-StringTable.h
new file mode 100644
index 000000000000..1bf31c9a35b8
--- /dev/null
+++ b/devel/fam/files/patch-fam-StringTable.h
@@ -0,0 +1,11 @@
+diff -ruN fam/StringTable.h fam/StringTable.h
+--- fam/StringTable.h Mon Apr 29 02:26:54 2002
++++ fam/StringTable.h Sat Jun 8 16:31:07 2002
+@@ -25,6 +25,7 @@
+
+ #include <assert.h>
+ #include <string.h>
++#include "mntent.h"
+
+ // A StringTable maps C strings onto values. It is a cheap O(n)
+ // implementation, suitable only for small tables that are
diff --git a/devel/fam/files/patch-fam-StringTable.h.orig b/devel/fam/files/patch-fam-StringTable.h.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-fam-StringTable.h.orig
diff --git a/devel/fam/files/patch-freebsd b/devel/fam/files/patch-freebsd.orig
index 3cdbe55c225d..3cdbe55c225d 100644
--- a/devel/fam/files/patch-freebsd
+++ b/devel/fam/files/patch-freebsd.orig
diff --git a/devel/fam/files/patch-libfam-Client.c++ b/devel/fam/files/patch-libfam-Client.c++
new file mode 100644
index 000000000000..0d337798007b
--- /dev/null
+++ b/devel/fam/files/patch-libfam-Client.c++
@@ -0,0 +1,11 @@
+diff -ruN libfam/Client.c++ libfam/Client.c++
+--- libfam/Client.c++ Mon Apr 29 02:26:55 2002
++++ libfam/Client.c++ Sat Jun 8 16:31:07 2002
+@@ -20,6 +20,7 @@
+ // with this program; if not, write the Free Software Foundation, Inc., 59
+ // Temple Place - Suite 330, Boston MA 02111-1307, USA.
+
++#include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <netinet/in.h>
diff --git a/devel/fam/files/patch-libfam-Client.c++.orig b/devel/fam/files/patch-libfam-Client.c++.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-libfam-Client.c++.orig
diff --git a/devel/fam/files/patch-libfam-fam.c++ b/devel/fam/files/patch-libfam-fam.c++
new file mode 100644
index 000000000000..170b4c6b0fdb
--- /dev/null
+++ b/devel/fam/files/patch-libfam-fam.c++
@@ -0,0 +1,20 @@
+diff -ruN libfam/fam.c++ libfam/fam.c++
+--- libfam/fam.c++.orig Mon Apr 29 02:26:55 2002
++++ libfam/fam.c++ Sat Jun 8 16:54:04 2002
+@@ -21,6 +21,7 @@
+ // Temple Place - Suite 330, Boston MA 02111-1307, USA.
+
+ #include <sys/types.h>
++#include <rpc/rpc.h>
+ #include <sys/time.h>
+ #include <unistd.h>
+ #include <stdlib.h>
+@@ -80,7 +81,7 @@
+ fc->client = new Client(LOCALHOSTNUMBER, famnumber, famversion);
+ fc->fd = ((Client *)fc->client)->getSock();
+ if (fc->fd < 0) {
+- delete fc->client;
++ delete (Client *)fc->client;
+ fc->client = NULL;
+ return(-1);
+ }
diff --git a/devel/fam/files/patch-libfam-fam.c++.orig b/devel/fam/files/patch-libfam-fam.c++.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-libfam-fam.c++.orig
diff --git a/devel/fam/files/patch-test-test.c++ b/devel/fam/files/patch-test-test.c++
new file mode 100644
index 000000000000..04963d000745
--- /dev/null
+++ b/devel/fam/files/patch-test-test.c++
@@ -0,0 +1,11 @@
+diff -ruN test/test.c++ test/test.c++
+--- test/test.c++ Mon Apr 29 02:26:55 2002
++++ test/test.c++ Sat Jun 8 16:31:07 2002
+@@ -1,6 +1,7 @@
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <signal.h>
diff --git a/devel/fam/files/patch-test-test.c++.orig b/devel/fam/files/patch-test-test.c++.orig
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/devel/fam/files/patch-test-test.c++.orig
diff --git a/devel/fam/pkg-plist b/devel/fam/pkg-plist
index a427fd997e05..7a0226c8b49d 100644
--- a/devel/fam/pkg-plist
+++ b/devel/fam/pkg-plist
@@ -2,9 +2,8 @@ bin/fam
etc/fam.conf
etc/rc.d/fam.sh.sample
include/fam.h
-lib/fam/editconf.perl
lib/libfam.a
+lib/libfam.la
lib/libfam.so
lib/libfam.so.0
-@dirrm lib/fam
@unexec rm -f %D/etc/rc.d/fam.sh || true