FreeBSD Bugzilla – Attachment 17803 Details for
Bug 32231
Update port devel/fam
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 49.19 KB, created by
ishmael27
on 2001-11-23 17:10:00 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
ishmael27
Created:
2001-11-23 17:10:00 UTC
Size:
49.19 KB
patch
obsolete
>Index: Makefile >=================================================================== >RCS file: /home/ncvs/ports/devel/fam/Makefile,v >retrieving revision 1.1 >diff -u -r1.1 Makefile >--- Makefile 31 Mar 2001 02:45:55 -0000 1.1 >+++ Makefile 23 Nov 2001 16:54:43 -0000 >@@ -6,24 +6,55 @@ > # > > PORTNAME= fam >-PORTVERSION= 2.6.4 >-CATEGORIES= devel >+PORTVERSION= 2.6.6 >+CATEGORIES= sysutils > MASTER_SITES= ftp://oss.sgi.com/projects/fam/download/ >-DISTNAME= ${PORTNAME}-oss-${PORTVERSION} > > MAINTAINER= ishmael27@home.com > > USE_AUTOMAKE= yes >+AUTOMAKE_ARGS= --add-missing --copy --foreign --include-deps > USE_LIBTOOL= yes > USE_GMAKE= yes >-PATCH_STRIP= -p1 >+EXTRACT_AFTER_ARGS= | ${TAR} -xf - -C ${WRKSRC} > INSTALLS_SHLIB= yes > >-MAN1= fam.1m >-MAN3= fam.3x >+MAN3= fam.3 >+MAN8= fam.8 >+ >+do-extract: >+ @${RM} -rf ${WRKDIR} >+ @${MKDIR} ${WRKSRC} >+ @for file in ${EXTRACT_ONLY}; do \ >+ if ! (cd ${WRKDIR} && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/$$file ${EXTRACT_AFTER_ARGS});\ >+ then \ >+ exit 1; \ >+ fi \ >+ done >+.if !defined(EXTRACT_PRESERVE_OWNERSHIP) >+ @if [ `id -u` = 0 ]; then \ >+ ${CHMOD} -R ug-s ${WRKDIR}; \ >+ ${CHOWN} -R 0:0 ${WRKDIR}; \ >+ fi >+.endif >+ >+pre-configure: >+ @${MV} ${WRKSRC}/man/fam.1m.in ${WRKSRC}/man/fam.8.in >+ @${MV} ${WRKSRC}/man/fam.3x ${WRKSRC}/man/fam.3 >+ @${RM} -f ${WRKSRC}/install-sh ${WRKSRC}/missing \ >+ ${WRKSRC}/mkinstalldirs >+ @cd ${WRKSRC} && ${LOCALBASE}/bin/libtoolize --force --copy && \ >+ ${ACLOCAL} && ${AUTOHEADER} >+ >+post-configure: >+ @${FIND} ${WRKSRC} -name "Makefile" |xargs ${PERL} -pi -e '\ >+ s|^ACLOCAL =.*|ACLOCAL = ${ACLOCAL}| ; \ >+ s|^AUTOCONF =.*|AUTOCONF = ${AUTOCONF}| ; \ >+ s|^AUTOMAKE =.*|AUTOMAKE = ${AUTOMAKE}| ; \ >+ s|^AUTOHEADER =.*|AUTOHEADER = ${AUTOHEADER}|' > > post-install: >- @${INSTALL_SCRIPT} -m 751 ${FILESDIR}/fam.sh.sample ${PREFIX}/etc/rc.d/fam.sh.sample >+ @${INSTALL_SCRIPT} ${FILESDIR}/fam.sh.sample ${PREFIX}/etc/rc.d/fam.sh.sample > @${CAT} ${PKGMESSAGE} > > .include <bsd.port.mk> >Index: distinfo >=================================================================== >RCS file: /home/ncvs/ports/devel/fam/distinfo,v >retrieving revision 1.1 >diff -u -r1.1 distinfo >--- distinfo 31 Mar 2001 02:45:55 -0000 1.1 >+++ distinfo 23 Nov 2001 14:53:49 -0000 >@@ -1 +1 @@ >-MD5 (fam-oss-2.6.4.tar.gz) = d060919b3d9ede61a8b68eae1ded53ce >+MD5 (fam-2.6.6.tar.gz) = c1ecf4136b673e49fd0ea7a2e50d9885 >Index: pkg-plist >=================================================================== >RCS file: /home/ncvs/ports/devel/fam/pkg-plist,v >retrieving revision 1.2 >diff -u -r1.2 pkg-plist >--- pkg-plist 21 May 2001 07:13:05 -0000 1.2 >+++ pkg-plist 23 Nov 2001 16:15:46 -0000 >@@ -2,8 +2,6 @@ > etc/fam.conf > etc/rc.d/fam.sh.sample > include/fam.h >-lib/fam/editconf.perl > lib/libfam.a > lib/libfam.so > lib/libfam.so.0 >-@dirrm lib/fam >Index: files/patch-Makefile.am >=================================================================== >RCS file: /home/ncvs/ports/devel/fam/files/patch-Makefile.am,v >retrieving revision 1.1 >diff -u -r1.1 patch-Makefile.am >--- files/patch-Makefile.am 31 Mar 2001 02:45:55 -0000 1.1 >+++ files/patch-Makefile.am 23 Nov 2001 16:23:51 -0000 >@@ -1,6 +1,13 @@ >---- Makefile.am.orig Fri May 19 23:46:31 2000 >-+++ Makefile.am Mon Mar 19 11:51:05 2001 >-@@ -7,30 +7,3 @@ >+--- Makefile.am.orig Mon Oct 22 01:33:09 2001 >++++ Makefile.am Fri Nov 23 10:23:03 2001 >+@@ -1,36 +1,9 @@ >+ include $(top_srcdir)/common.am >+ >+-SUBDIRS = util include support libfam fam man test build >++SUBDIRS = include support libfam fam man >+ >+ EXTRA_DIST = common.am INSTALL.rpm >+ > rpm: dist > @cd build && $(MAKE) $(AM_MAKEFLAGS) rpm > >Index: files/patch-acconfig.h >=================================================================== >RCS file: files/patch-acconfig.h >diff -N files/patch-acconfig.h >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-acconfig.h 23 Nov 2001 15:54:25 -0000 >@@ -0,0 +1,11 @@ >+--- acconfig.h.orig Mon Oct 22 01:33:09 2001 >++++ acconfig.h Fri Nov 23 09:54:00 2001 >+@@ -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 >+ >Index: files/patch-common.am >=================================================================== >RCS file: files/patch-common.am >diff -N files/patch-common.am >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-common.am 7 Oct 2001 21:40:51 -0000 >@@ -0,0 +1,11 @@ >+--- common.am.orig Fri May 19 23:46:31 2000 >++++ common.am Sun Oct 7 16:40:38 2001 >+@@ -1,7 +1,7 @@ >+ # Since we're not always using gcc, we don't want to use dependency >+ # tracking. (It croaks non-GNU compilers.) Seems like this should be >+ # configurable through autoconf! >+-AUTOMAKE_OPTIONS=no-dependencies >++#AUTOMAKE_OPTIONS=no-dependencies >+ >+ # why couldn't CONFIG_ETC_CONFIG_PATH be defined in config.h??? >+ INCLUDES = @FAMPROTOINC@ -DCONFIG_ETC_CONFIG_PATH=\"@FAM_CONF@\" >Index: files/patch-config.h.in >=================================================================== >RCS file: files/patch-config.h.in >diff -N files/patch-config.h.in >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-config.h.in 7 Oct 2001 20:28:42 -0000 >@@ -0,0 +1,11 @@ >+--- config.h.in.orig Fri May 19 23:50:17 2000 >++++ config.h.in Sun Oct 7 15:22:17 2001 >+@@ -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.) >+ */ >Index: files/patch-configure.in >=================================================================== >RCS file: files/patch-configure.in >diff -N files/patch-configure.in >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-configure.in 23 Nov 2001 16:50:12 -0000 >@@ -0,0 +1,67 @@ >+--- configure.in.orig Sun Nov 4 23:31:30 2001 >++++ configure.in Fri Nov 23 10:50:04 2001 >+@@ -95,6 +95,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 >+@@ -310,10 +312,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. >+@@ -516,8 +518,8 @@ >+ >+ dnl >+ dnl This grief is for replacing XXX_FAM_CONF with $FAM_CONF >+-dnl in the fam(1M) man page. (Simply putting @FAM_CONF@ in >+-dnl fam.1m.in puts the string "$sysconfdir/fam.conf" in the >++dnl in the fam(8) man page. (Simply putting @FAM_CONF@ in >++dnl fam.8.in puts the string "$sysconfdir/fam.conf" in the >+ dnl man page, which isn't acceptable. Isn't there a way to make >+ dnl autoconf handle this??) >+ dnl >+@@ -529,7 +531,7 @@ >+ [ >+ TMPFILE=configure.tmp >+ for f in $CONFIG_FILES; do >+- if test `basename $f` != 'fam.1m'; then >++ if test `basename $f` != 'fam.8'; then >+ continue >+ fi >+ echo "replacing XXX_FAM_CONF with $FAM_CONF and removing maintainer comments in $f" >+@@ -554,19 +556,14 @@ >+ dnl >+ AC_OUTPUT( >+ Makefile >+- build/Makefile >+- build/rpm/Makefile >+- build/rpm/rpm.spec >+ fam/Makefile >+ fam/fam.conf >+ include/Makefile >+ libfam/Makefile >+ man/Makefile >+- man/fam.1m >++ man/fam.8 >+ support/Makefile >+ test/Makefile >+- util/Makefile >+- util/editconf/Makefile >+ ) >+ >+ dnl >Index: files/patch-fam::Client.h >=================================================================== >RCS file: files/patch-fam::Client.h >diff -N files/patch-fam::Client.h >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::Client.h 7 Oct 2001 20:22:45 -0000 >@@ -0,0 +1,10 @@ >+--- fam/Client.h.orig Fri May 19 23:46:31 2000 >++++ fam/Client.h Sun Oct 7 15:22:17 2001 >+@@ -23,6 +23,7 @@ >+ #ifndef Client_included >+ #define Client_included >+ >++#include <sys/types.h> >+ #include <netinet/in.h> // for in_addr >+ >+ #include "Activity.h" >Index: files/patch-fam::FileSystem.c++ >=================================================================== >RCS file: files/patch-fam::FileSystem.c++ >diff -N files/patch-fam::FileSystem.c++ >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::FileSystem.c++ 7 Oct 2001 20:23:29 -0000 >@@ -0,0 +1,11 @@ >+--- fam/FileSystem.c++.orig Fri May 19 23:46:31 2000 >++++ fam/FileSystem.c++ Sun Oct 7 15:22:17 2001 >+@@ -22,7 +22,7 @@ >+ >+ #include "FileSystem.h" >+ >+-#include <mntent.h> >++#include "mntent.h" >+ #include <string.h> >+ >+ #include "Event.h" >Index: files/patch-fam::FileSystemTable.c++ >=================================================================== >RCS file: files/patch-fam::FileSystemTable.c++ >diff -N files/patch-fam::FileSystemTable.c++ >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::FileSystemTable.c++ 7 Oct 2001 20:24:05 -0000 >@@ -0,0 +1,25 @@ >+--- fam/FileSystemTable.c++.orig Fri May 19 23:46:31 2000 >++++ fam/FileSystemTable.c++ Sun Oct 7 15:22:17 2001 >+@@ -21,9 +21,10 @@ >+ // Temple Place - Suite 330, Boston MA 02111-1307, USA. >+ >+ #include <stddef.h> >++#include <stdio.h> >+ #include "FileSystemTable.h" >+ >+-#include <mntent.h> >++#include "mntent.h" >+ #include <stdlib.h> >+ #include <string.h> >+ >+@@ -255,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(); >Index: files/patch-fam::IMon.c++ >=================================================================== >RCS file: files/patch-fam::IMon.c++ >diff -N files/patch-fam::IMon.c++ >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::IMon.c++ 7 Oct 2001 20:24:25 -0000 >@@ -0,0 +1,13 @@ >+--- fam/IMon.c++.orig Fri May 19 23:46:31 2000 >++++ fam/IMon.c++ Sun Oct 7 15:22:17 2001 >+@@ -34,7 +34,9 @@ >+ #endif >+ #endif >+ >+-#include <sys/sysmacros.h> >++#if !defined(__FreeBSD__) >++# include <sys/sysmacros.h> >++#endif >+ #include <unistd.h> >+ >+ #include "Interest.h" >Index: files/patch-fam::Interest.c++ >=================================================================== >RCS file: files/patch-fam::Interest.c++ >diff -N files/patch-fam::Interest.c++ >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::Interest.c++ 7 Oct 2001 20:24:54 -0000 >@@ -0,0 +1,13 @@ >+--- fam/Interest.c++.orig Fri May 19 23:46:31 2000 >++++ fam/Interest.c++ Sun Oct 7 15:22:17 2001 >+@@ -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> >Index: files/patch-fam::InternalClient.c++ >=================================================================== >RCS file: files/patch-fam::InternalClient.c++ >diff -N files/patch-fam::InternalClient.c++ >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::InternalClient.c++ 7 Oct 2001 20:25:13 -0000 >@@ -0,0 +1,12 @@ >+--- fam/InternalClient.c++.orig Fri May 19 23:46:31 2000 >++++ fam/InternalClient.c++ Sun Oct 7 15:22:17 2001 >+@@ -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); >+ } >+ >Index: files/patch-fam::Listener.c++ >=================================================================== >RCS file: files/patch-fam::Listener.c++ >diff -N files/patch-fam::Listener.c++ >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::Listener.c++ 23 Nov 2001 15:53:02 -0000 >@@ -0,0 +1,56 @@ >+--- fam/Listener.c++.orig Mon Oct 22 01:33:10 2001 >++++ fam/Listener.c++ Fri Nov 23 09:52:14 2001 >+@@ -22,6 +22,8 @@ >+ >+ #include "Listener.h" >+ >++#include <stdio.h> >++#include <stdlib.h> >+ #include <assert.h> >+ #include <fcntl.h> >+ #include <sys/types.h> >+@@ -205,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)!", >+@@ -239,7 +245,7 @@ >+ return; >+ } >+ >+- if (chown(sun.sun_path, uid, -1) != 0) >++ if (chown(sun.sun_path, uid, (gid_t)-1) != 0) >+ { Log::perror("localclient chown"); >+ close(client_sock); >+ return; >+@@ -275,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) >+@@ -337,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) >Index: files/patch-fam::Log.c++ >=================================================================== >RCS file: files/patch-fam::Log.c++ >diff -N files/patch-fam::Log.c++ >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::Log.c++ 7 Oct 2001 20:25:48 -0000 >@@ -0,0 +1,11 @@ >+--- fam/Log.c++.orig Fri May 19 23:46:31 2000 >++++ fam/Log.c++ Sun Oct 7 15:22:17 2001 >+@@ -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 <unistd.h> >Index: files/patch-fam::Makefile.am >=================================================================== >RCS file: files/patch-fam::Makefile.am >diff -N files/patch-fam::Makefile.am >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::Makefile.am 7 Oct 2001 21:27:24 -0000 >@@ -0,0 +1,16 @@ >+--- fam/Makefile.am.orig Fri May 19 23:46:31 2000 >++++ fam/Makefile.am Sun Oct 7 16:27:01 2001 >+@@ -72,11 +72,12 @@ >+ main.c++ \ >+ timeval.c++ \ >+ timeval.h \ >++ mntent_compat.c++ \ >+ @IMON_FUNCS@.c++ >+ >+ EXTRA_fam_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++ >+ >+ fam_LDADD = -lrpcsvc $(top_srcdir)/support/libsupport.a >+ >+-CLEANFILES += @MKDEPFILE@ ii_files/*.ii >++CLEANFILES = @MKDEPFILE@ ii_files/*.ii >+ sinclude @MKDEPFILE@ >Index: files/patch-fam::Scheduler.h >=================================================================== >RCS file: files/patch-fam::Scheduler.h >diff -N files/patch-fam::Scheduler.h >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::Scheduler.h 7 Oct 2001 20:26:25 -0000 >@@ -0,0 +1,10 @@ >+--- fam/Scheduler.h.orig Fri May 19 23:46:32 2000 >++++ fam/Scheduler.h Sun Oct 7 15:22:17 2001 >+@@ -24,6 +24,7 @@ >+ #define Scheduler_included >+ >+ #include <sys/time.h> >++#include <string.h> >+ >+ #include "Boolean.h" >+ >Index: files/patch-fam::StringTable.h >=================================================================== >RCS file: files/patch-fam::StringTable.h >diff -N files/patch-fam::StringTable.h >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::StringTable.h 7 Oct 2001 20:26:42 -0000 >@@ -0,0 +1,10 @@ >+--- fam/StringTable.h.orig Fri May 19 23:46:32 2000 >++++ fam/StringTable.h Sun Oct 7 15:22:17 2001 >+@@ -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 >Index: files/patch-fam::mntent.h >=================================================================== >RCS file: files/patch-fam::mntent.h >diff -N files/patch-fam::mntent.h >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::mntent.h 7 Oct 2001 20:27:09 -0000 >@@ -0,0 +1,59 @@ >+--- fam/mntent.h.orig Sun Oct 7 15:22:17 2001 >++++ fam/mntent.h Sun Oct 7 15:22:17 2001 >+@@ -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 */ >Index: files/patch-fam::mntent_compat.c++ >=================================================================== >RCS file: files/patch-fam::mntent_compat.c++ >diff -N files/patch-fam::mntent_compat.c++ >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-fam::mntent_compat.c++ 7 Oct 2001 20:27:32 -0000 >@@ -0,0 +1,154 @@ >+--- fam/mntent_compat.c++.orig Sun Oct 7 15:22:17 2001 >++++ fam/mntent_compat.c++ Sun Oct 7 15:22:17 2001 >+@@ -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 */ >Index: files/patch-freebsd >=================================================================== >RCS file: files/patch-freebsd >diff -N files/patch-freebsd >--- files/patch-freebsd 31 Mar 2001 02:45:55 -0000 1.1 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,490 +0,0 @@ >-diff -urN fam-oss-2.6.4/config.h.in fam-oss-2.6.4-freebsd/config.h.in >---- fam-oss-2.6.4/config.h.in Sat May 20 05:50:17 2000 >-+++ fam-oss-2.6.4-freebsd/config.h.in Sun Mar 18 00:02:38 2001 >-@@ -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 -urN fam-oss-2.6.4/configure.in fam-oss-2.6.4-freebsd/configure.in >---- fam-oss-2.6.4/configure.in Sat May 20 06:23:17 2000 >-+++ fam-oss-2.6.4-freebsd/configure.in Sun Mar 18 00:36:29 2001 >-@@ -95,6 +95,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 >-@@ -299,10 +301,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. >-diff -urN fam-oss-2.6.4/fam/Client.h fam-oss-2.6.4-freebsd/fam/Client.h >---- fam-oss-2.6.4/fam/Client.h Sat May 20 05:46:31 2000 >-+++ fam-oss-2.6.4-freebsd/fam/Client.h Sat Mar 17 00:14:35 2001 >-@@ -23,6 +23,7 @@ >- #ifndef Client_included >- #define Client_included >- >-+#include <sys/types.h> >- #include <netinet/in.h> // for in_addr >- >- #include "Activity.h" >-diff -urN fam-oss-2.6.4/fam/FileSystem.c++ fam-oss-2.6.4-freebsd/fam/FileSystem.c++ >---- fam-oss-2.6.4/fam/FileSystem.c++ Sat May 20 05:46:31 2000 >-+++ fam-oss-2.6.4-freebsd/fam/FileSystem.c++ Sat Mar 17 13:18:10 2001 >-@@ -22,7 +22,7 @@ >- >- #include "FileSystem.h" >- >--#include <mntent.h> >-+#include "mntent.h" >- #include <string.h> >- >- #include "Event.h" >-diff -urN fam-oss-2.6.4/fam/FileSystemTable.c++ fam-oss-2.6.4-freebsd/fam/FileSystemTable.c++ >---- fam-oss-2.6.4/fam/FileSystemTable.c++ Sat May 20 05:46:31 2000 >-+++ fam-oss-2.6.4-freebsd/fam/FileSystemTable.c++ Sat Mar 17 23:44:17 2001 >-@@ -21,9 +21,10 @@ >- // Temple Place - Suite 330, Boston MA 02111-1307, USA. >- >- #include <stddef.h> >-+#include <stdio.h> >- #include "FileSystemTable.h" >- >--#include <mntent.h> >-+#include "mntent.h" >- #include <stdlib.h> >- #include <string.h> >- >-@@ -255,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 -urN fam-oss-2.6.4/fam/IMon.c++ fam-oss-2.6.4-freebsd/fam/IMon.c++ >---- fam-oss-2.6.4/fam/IMon.c++ Sat May 20 05:46:31 2000 >-+++ fam-oss-2.6.4-freebsd/fam/IMon.c++ Sat Mar 17 14:06:17 2001 >-@@ -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 -urN fam-oss-2.6.4/fam/Interest.c++ fam-oss-2.6.4-freebsd/fam/Interest.c++ >---- fam-oss-2.6.4/fam/Interest.c++ Sat May 20 05:46:31 2000 >-+++ fam-oss-2.6.4-freebsd/fam/Interest.c++ Sat Mar 17 14:06:37 2001 >-@@ -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 -urN fam-oss-2.6.4/fam/InternalClient.c++ fam-oss-2.6.4-freebsd/fam/InternalClient.c++ >---- fam-oss-2.6.4/fam/InternalClient.c++ Sat May 20 05:46:31 2000 >-+++ fam-oss-2.6.4-freebsd/fam/InternalClient.c++ Sat Mar 17 23:20:15 2001 >-@@ -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 -urN fam-oss-2.6.4/fam/Listener.c++ fam-oss-2.6.4-freebsd/fam/Listener.c++ >---- fam-oss-2.6.4/fam/Listener.c++ Sat May 20 05:46:31 2000 >-+++ fam-oss-2.6.4-freebsd/fam/Listener.c++ Sat Mar 17 14:12:57 2001 >-@@ -22,6 +22,8 @@ >- >- #include "Listener.h" >- >-+#include <stdio.h> >-+#include <stdlib.h> >- #include <assert.h> >- #include <fcntl.h> >- #include <sys/types.h> >-@@ -202,7 +204,11 @@ >- // requested user and pass the name back to the client. >- >- 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)!", >-@@ -235,7 +241,7 @@ >- return; >- } >- >-- if (chown(sun.sun_path, uid, -1) != 0) >-+ if (chown(sun.sun_path, uid, (gid_t)-1) != 0) >- { Log::perror("localclient chown"); >- close(client_sock); >- return; >-@@ -271,7 +277,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) >-@@ -333,7 +343,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 -urN fam-oss-2.6.4/fam/Log.c++ fam-oss-2.6.4-freebsd/fam/Log.c++ >---- fam-oss-2.6.4/fam/Log.c++ Sat May 20 05:46:31 2000 >-+++ fam-oss-2.6.4-freebsd/fam/Log.c++ Sat Mar 17 14:14:31 2001 >-@@ -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 <unistd.h> >-diff -urN fam-oss-2.6.4/fam/Makefile.am fam-oss-2.6.4-freebsd/fam/Makefile.am >---- fam-oss-2.6.4/fam/Makefile.am Sat May 20 05:46:31 2000 >-+++ fam-oss-2.6.4-freebsd/fam/Makefile.am Sat Mar 17 18:12:17 2001 >-@@ -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 -urN fam-oss-2.6.4/fam/Scheduler.h fam-oss-2.6.4-freebsd/fam/Scheduler.h >---- fam-oss-2.6.4/fam/Scheduler.h Sat May 20 05:46:32 2000 >-+++ fam-oss-2.6.4-freebsd/fam/Scheduler.h Sat Mar 17 00:14:04 2001 >-@@ -24,6 +24,7 @@ >- #define Scheduler_included >- >- #include <sys/time.h> >-+#include <string.h> >- >- #include "Boolean.h" >- >-diff -urN fam-oss-2.6.4/fam/StringTable.h fam-oss-2.6.4-freebsd/fam/StringTable.h >---- fam-oss-2.6.4/fam/StringTable.h Sat May 20 05:46:32 2000 >-+++ fam-oss-2.6.4-freebsd/fam/StringTable.h Sat Mar 17 18:05:38 2001 >-@@ -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 -urN fam-oss-2.6.4/fam/mntent.h fam-oss-2.6.4-freebsd/fam/mntent.h >---- fam-oss-2.6.4/fam/mntent.h Thu Jan 1 01:00:00 1970 >-+++ fam-oss-2.6.4-freebsd/fam/mntent.h Sat Mar 17 18:11:08 2001 >-@@ -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 -urN fam-oss-2.6.4/fam/mntent_compat.c++ fam-oss-2.6.4-freebsd/fam/mntent_compat.c++ >---- fam-oss-2.6.4/fam/mntent_compat.c++ Thu Jan 1 01:00:00 1970 >-+++ fam-oss-2.6.4-freebsd/fam/mntent_compat.c++ Sat Mar 17 23:48:07 2001 >-@@ -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 -urN fam-oss-2.6.4/libfam/Client.c++ fam-oss-2.6.4-freebsd/libfam/Client.c++ >---- fam-oss-2.6.4/libfam/Client.c++ Sat May 20 05:46:32 2000 >-+++ fam-oss-2.6.4-freebsd/libfam/Client.c++ Sat Mar 17 00:12:01 2001 >-@@ -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 -urN fam-oss-2.6.4/libfam/fam.c++ fam-oss-2.6.4-freebsd/libfam/fam.c++ >---- fam-oss-2.6.4/libfam/fam.c++ Sat May 20 05:46:32 2000 >-+++ fam-oss-2.6.4-freebsd/libfam/fam.c++ Sat Mar 17 00:12:43 2001 >-@@ -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> >-diff -urN fam-oss-2.6.4/test/test.c++ fam-oss-2.6.4-freebsd/test/test.c++ >---- fam-oss-2.6.4/test/test.c++ Sat May 20 05:46:32 2000 >-+++ fam-oss-2.6.4-freebsd/test/test.c++ Sat Mar 17 18:39:23 2001 >-@@ -1,6 +1,7 @@ >- #include <sys/types.h> >- #include <sys/time.h> >- #include <stdio.h> >-+#include <string.h> >- #include <unistd.h> >- #include <signal.h> >- #include <errno.h> >---- fam-oss-2.6.4/acconfig.h Sat May 20 05:46:31 2000 >-+++ fam-oss-2.6.4-freebsd/acconfig.h Sun Mar 18 00:40:47 2001 >-@@ -44,6 +44,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 >- >Index: files/patch-libfam::Client.c++ >=================================================================== >RCS file: files/patch-libfam::Client.c++ >diff -N files/patch-libfam::Client.c++ >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-libfam::Client.c++ 7 Oct 2001 20:28:07 -0000 >@@ -0,0 +1,10 @@ >+--- libfam/Client.c++.orig Fri May 19 23:46:32 2000 >++++ libfam/Client.c++ Sun Oct 7 15:22:17 2001 >+@@ -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> >Index: files/patch-libfam::Makefile.am >=================================================================== >RCS file: files/patch-libfam::Makefile.am >diff -N files/patch-libfam::Makefile.am >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-libfam::Makefile.am 7 Oct 2001 21:28:53 -0000 >@@ -0,0 +1,8 @@ >+--- libfam/Makefile.am.orig Fri May 19 23:46:32 2000 >++++ libfam/Makefile.am Sun Oct 7 16:28:34 2001 >+@@ -11,4 +11,4 @@ >+ >+ EXTRA_DIST = fam.sym >+ >+-CLEANFILES += ii_files/*.ii >++CLEANFILES = ii_files/*.ii >Index: files/patch-libfam::fam.c++ >=================================================================== >RCS file: files/patch-libfam::fam.c++ >diff -N files/patch-libfam::fam.c++ >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-libfam::fam.c++ 7 Oct 2001 20:28:28 -0000 >@@ -0,0 +1,10 @@ >+--- libfam/fam.c++.orig Fri May 19 23:46:32 2000 >++++ libfam/fam.c++ Sun Oct 7 15:22:17 2001 >+@@ -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> >Index: files/patch-man::Makefile.am >=================================================================== >RCS file: files/patch-man::Makefile.am >diff -N files/patch-man::Makefile.am >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-man::Makefile.am 23 Nov 2001 16:49:32 -0000 >@@ -0,0 +1,12 @@ >+--- man/Makefile.am.orig Mon Oct 22 01:33:11 2001 >++++ man/Makefile.am Fri Nov 23 10:49:15 2001 >+@@ -1,5 +1,5 @@ >+-# This is a little weird because fam.1m is generated from fam.1m.in >++# This is a little weird because fam.8 is generated from fam.8.in >+ # at the end of the configure script. >+-man_MANS = fam.1m fam.3x >+-EXTRA_DIST = fam.1m.in fam.3x >+-CLEANFILES = fam.1m >++man_MANS = fam.8 fam.3 >++EXTRA_DIST = fam.8.in fam.3 >++CLEANFILES = fam.8 >Index: files/patch-man::fam.1m.in >=================================================================== >RCS file: files/patch-man::fam.1m.in >diff -N files/patch-man::fam.1m.in >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-man::fam.1m.in 23 Nov 2001 16:52:11 -0000 >@@ -0,0 +1,76 @@ >+--- man/fam.1m.in.orig Mon Oct 22 01:33:11 2001 >++++ man/fam.1m.in Fri Nov 23 10:51:54 2001 >+@@ -1,6 +1,6 @@ >+-.\"## fam.1m.in >++.\"## fam.8.in >+ .\"## >+-.\"## When configure.in generates fam.1m, lines starting with .\"## >++.\"## When configure.in generates fam.8, lines starting with .\"## >+ .\"## should be removed; when building on IRIX, lines starting with >+ .\"## .\"IRIX should have that part removed (uncommenting the rest >+ .\"## of the line). >+@@ -9,13 +9,13 @@ >+ .\"## separate files. >+ .\"## >+ .nr X >+-.if \nX=0 .ds x} fam 1M "Silicon Graphics" "\&" >++.if \nX=0 .ds x} fam 8 "Silicon Graphics" "\&" >+ .TH \*(x} >+ .SH NAME >+ fam \- file alteration monitor >+ .SH SYNOPSIS >+ .nf >+-\f3/usr/etc/fam\f1 [ \f3\-f\f1 | \f3\-v\f1 | \f3\-d\f1 ] [ \f3\-l\f1 | \c >++\f3fam\f1 [ \f3\-f\f1 | \f3\-v\f1 | \f3\-d\f1 ] [ \f3\-l\f1 | \c >+ \f3\-t\f1 \f2NFS_polling_interval\f1 ] >+ [ \f3\-T\f1 \f2idle_timeout\f1 ] [ \f3\-p\f1 \c >+ \f2program\f3.\f2version\f1 ] [ \f3\-L\f1 ] [ \f3-C\f1 ] >+@@ -24,22 +24,13 @@ >+ .SH DESCRIPTION >+ \f2fam\f1 is a server that tracks changes to the filesystem and >+ relays these changes to interested applications. >+-Applications such as >+-\f2fm\f1(1G) and \f2mailbox\f1(1) present an up-to-date view of the filesystem. >+-In the absence of \f2fam\f1, these applications and others like them >+-are forced to poll the filesystem to detect changes. >+-\f2fam\f1 is >+-more efficient. >+-.P >+ Applications can request \f2fam\f1 to monitor any files or directories in >+ any filesystem. >+ When \f2fam\f1 detects changes to monitored files, it notifies >+ the appropriate application. >+ The FAM API provides a programmatic interface to \f2fam\f1; see >+-.IR fam (3X). >++.IR fam (3). >+ .P >+-\f2fam\f1 is informed of filesystem changes as they happen by the >+-kernel through the \f2imon\f1(7M) pseudo device driver. >+ If asked to >+ monitor files on an NFS mounted filesystem, \f2fam\f1 tries to use >+ \f2fam\f1 on the NFS server to monitor files. >+@@ -47,9 +38,9 @@ >+ contact a remote \f2fam\f1, it polls the files instead. >+ \f2fam\f1 also polls special files. >+ .P >+-Normally, \f2fam\f1 is started by \f2inetd\f1(1M). >++Normally, \f2fam\f1 is started by \f2inetd\f1(8). >+ It is registered with >+-\f2portmap\f1(1M) as performing the sgi_fam service. >++\f2portmap\f1(8) as performing the sgi_fam service. >+ .SH OPTIONS >+ .TP 26 >+ \f3\-l\f1 >+@@ -196,9 +187,7 @@ >+ XXX_FAM_CONF >+ .SH "SEE ALSO" >+ .\"IRIX fm(1G), >+-inetd(1M), >++fam(3), >++inetd(8), >+ .\"IRIX mailbox(1), >+-portmap(1M), >+-fam(3X), >+-imon(7M), >+-stat(1M). >++portmap(8). >Index: files/patch-man::fam.3x >=================================================================== >RCS file: files/patch-man::fam.3x >diff -N files/patch-man::fam.3x >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-man::fam.3x 23 Nov 2001 16:52:23 -0000 >@@ -0,0 +1,38 @@ >+--- man/fam.3x.orig Mon Oct 22 01:33:11 2001 >++++ man/fam.3x Fri Nov 23 10:51:07 2001 >+@@ -1,9 +1,9 @@ >+ '\"macro stdmacro >+-.if n .pH g3x.fam @(#)fam 30.3 of 1/19/86 >++.if n .pH g3.fam @(#)fam 30.3 of 1/19/86 >+ .nr X >+-.if \nX=0 .ds x} FAM 3X "Specialized Libraries" "\&" >+-.if \nX=1 .ds x} FAM 3X "Specialized Libraries" >+-.if \nX=2 .ds x} FAM 3X "" "\&" >++.if \nX=0 .ds x} FAM 3 "Specialized Libraries" "\&" >++.if \nX=1 .ds x} FAM 3 "Specialized Libraries" >++.if \nX=2 .ds x} FAM 3 "" "\&" >+ .if \nX=3 .ds x} FAM "" "" "\&" >+ .TH \*(x} >+ .SH NAME >+@@ -65,10 +65,9 @@ >+ .PP >+ .SH DESCRIPTION >+ \fIFAM\fP monitors files and directories, notifying interested >+-applications of changes. Routines for communicating with the fam(1M) >++applications of changes. Routines for communicating with the fam(8) >+ server process are found in ``libfam.a'', which is loaded if the >+-option ``-lfam'' is used with cc(1) or ld(1). The library >+-``libC.a'' (``-lC'') must also be specified. >++option ``-lfam'' is used with cc(1) or ld(1). >+ .PP >+ An application calls routines described here to establish a list of >+ files for \fIfam \fPto monitor. \fIFam \fPgenerates events on a socket to >+@@ -282,7 +281,7 @@ >+ >+ >+ .SH SEE ALSO >+-fam(1M). >++fam(8). >+ .SH BUGS >+ The FAMMoved event is not currently supported. >+ .PP >Index: files/patch-support::Makefile.am >=================================================================== >RCS file: files/patch-support::Makefile.am >diff -N files/patch-support::Makefile.am >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-support::Makefile.am 7 Oct 2001 21:30:31 -0000 >@@ -0,0 +1,9 @@ >+--- support/Makefile.am.orig Fri May 19 23:46:32 2000 >++++ support/Makefile.am Sun Oct 7 16:30:05 2001 >+@@ -11,5 +11,5 @@ >+ libsupport_a_DEPENDENCIES = @snprintf_o@ @foo_o@ >+ libsupport_a_LIBADD = @snprintf_o@ @foo_o@ >+ >+-CLEANFILES += @MKDEPFILE@ ii_files/*.ii >++CLEANFILES = @MKDEPFILE@ ii_files/*.ii >+ sinclude @MKDEPFILE@ >Index: files/patch-test::Makefile.am >=================================================================== >RCS file: files/patch-test::Makefile.am >diff -N files/patch-test::Makefile.am >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-test::Makefile.am 7 Oct 2001 21:29:41 -0000 >@@ -0,0 +1,8 @@ >+--- test/Makefile.am.orig Fri May 19 23:46:32 2000 >++++ test/Makefile.am Sun Oct 7 16:29:21 2001 >+@@ -4,4 +4,4 @@ >+ test_SOURCES = test.c++ >+ test_LDADD = ../libfam/libfam.la >+ >+-CLEANFILES += ii_files/*.ii >++CLEANFILES = ii_files/*.ii >Index: files/patch-test::test.c++ >=================================================================== >RCS file: files/patch-test::test.c++ >diff -N files/patch-test::test.c++ >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-test::test.c++ 7 Oct 2001 20:27:46 -0000 >@@ -0,0 +1,10 @@ >+--- test/test.c++.orig Fri May 19 23:46:32 2000 >++++ test/test.c++ Sun Oct 7 15:22:17 2001 >+@@ -1,6 +1,7 @@ >+ #include <sys/types.h> >+ #include <sys/time.h> >+ #include <stdio.h> >++#include <string.h> >+ #include <unistd.h> >+ #include <signal.h> >+ #include <errno.h>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 32231
: 17803