[csw-devel] SF.net SVN: gar:[10214] csw/mgar/pkg/fam/trunk
dmichelsen at users.sourceforge.net
dmichelsen at users.sourceforge.net
Mon Jun 14 17:15:07 CEST 2010
Revision: 10214
http://gar.svn.sourceforge.net/gar/?rev=10214&view=rev
Author: dmichelsen
Date: 2010-06-14 15:15:06 +0000 (Mon, 14 Jun 2010)
Log Message:
-----------
fam: Add existing patches
Modified Paths:
--------------
csw/mgar/pkg/fam/trunk/Makefile
csw/mgar/pkg/fam/trunk/checksums
Added Paths:
-----------
csw/mgar/pkg/fam/trunk/files/fam-oss-01.patch
csw/mgar/pkg/fam/trunk/files/fam-oss-02.patch
Modified: csw/mgar/pkg/fam/trunk/Makefile
===================================================================
--- csw/mgar/pkg/fam/trunk/Makefile 2010-06-14 13:37:37 UTC (rev 10213)
+++ csw/mgar/pkg/fam/trunk/Makefile 2010-06-14 15:15:06 UTC (rev 10214)
@@ -14,6 +14,10 @@
MASTER_SITES = ftp://oss.sgi.com/projects/fam/download/stable/
DISTFILES = $(GARNAME)-$(GARVERSION).tar.gz
+# Taken from http://pkgbuild.svn.sourceforge.net/viewvc/pkgbuild/spec-files-extra/trunk/patches/
+PATCHFILES = fam-oss-01.patch
+PATCHFILES += fam-oss-02.patch
+
# We define upstream file regex so we can be notifed of new upstream software release
UFILES_REGEX = $(GARNAME)-(\d+(?:\.\d+)*).tar.gz
Modified: csw/mgar/pkg/fam/trunk/checksums
===================================================================
--- csw/mgar/pkg/fam/trunk/checksums 2010-06-14 13:37:37 UTC (rev 10213)
+++ csw/mgar/pkg/fam/trunk/checksums 2010-06-14 15:15:06 UTC (rev 10214)
@@ -1 +1,3 @@
1bf3ae6c0c58d3201afc97c6a4834e39 fam-2.7.0.tar.gz
+2126d989c423c9bd469ef36e1f84cbb8 fam-oss-01.patch
+c96f6c5f57e0baaa3d1c44fd4c8628b9 fam-oss-02.patch
Added: csw/mgar/pkg/fam/trunk/files/fam-oss-01.patch
===================================================================
--- csw/mgar/pkg/fam/trunk/files/fam-oss-01.patch (rev 0)
+++ csw/mgar/pkg/fam/trunk/files/fam-oss-01.patch 2010-06-14 15:15:06 UTC (rev 10214)
@@ -0,0 +1,800 @@
+--- fam-2.6.10/include/BTree.h.orig 2006-03-13 09:32:01.000000000 +0530
++++ fam-2.6.10/include/BTree.h 2006-03-13 09:32:40.000000000 +0530
+@@ -236,7 +236,7 @@
+ // to the right and returns them.
+
+ template <class Key, class Value>
+-BTree<Key, Value>::Closure
++struct BTree<Key, Value>::Closure
+ BTree<Key, Value>::Node::remove(unsigned j)
+ {
+ Key k = key[j];
+@@ -348,7 +348,7 @@
+ }
+
+ template <class Key, class Value>
+-BTree<Key, Value>::Closure
++struct BTree<Key, Value>::Closure
+ BTree<Key, Value>::Node::next(const Key& pred) const
+ {
+ if (!this)
+@@ -404,7 +404,7 @@
+ // nodes as necessary on the way back.
+
+ template <class Key, class Value>
+-BTree<Key, Value>::Closure
++struct BTree<Key, Value>::Closure
+ BTree<Key, Value>::insert(Node *p, const Key& key, const Value& value)
+ {
+ if (!p) return Closure(key, value, NULL);
+@@ -499,7 +499,7 @@
+ // Returns UNDER if node p is too small afterward, OK otherwise.
+
+ template <class Key, class Value>
+-BTree<Key, Value>::Status
++struct BTree<Key, Value>::Status
+ BTree<Key, Value>::underflow(Node *p, unsigned i)
+ {
+ assert(p);
+@@ -557,7 +557,7 @@
+
+
+ template <class Key, class Value>
+-BTree<Key, Value>::Closure
++struct BTree<Key, Value>::Closure
+ BTree<Key, Value>::remove_rightmost(Node *p)
+ {
+ int i = p->n;
+@@ -587,7 +587,7 @@
+ // back up.
+
+ template <class Key, class Value>
+-BTree<Key, Value>::Status
++struct BTree<Key, Value>::Status
+ BTree<Key, Value>::remove(Node *p, const Key& key)
+ {
+ if (!p)
+--- fam-2.6.10/include/fam.h.orig 2006-03-13 09:36:21.000000000 +0530
++++ fam-2.6.10/include/fam.h 2006-03-13 11:30:53.000000000 +0530
+@@ -308,6 +308,11 @@
+
+ int FAMDebugLevel(FAMConnection *fc, int debugLevel);
+
++#if defined(__sun) || defined(__sun__)
++#include <inttypes.h>
++typedef uint32_t u_int32_t;
++#endif
++
+ #ifdef __cplusplus
+ }
+ #endif
+--- fam-2.6.10/fam/ClientConnection.c++.orig 2006-03-13 11:13:44.000000000 +0530
++++ fam-2.6.10/fam/ClientConnection.c++ 2006-03-13 11:14:04.000000000 +0530
+@@ -57,7 +57,7 @@
+ }
+
+ void
+-ClientConnection::send_sockaddr_un(const sockaddr_un &sun)
++ClientConnection::send_sockaddr_un(const sockaddr_un &sun1)
+ {
+- mprintf("%s", sun.sun_path);
++ mprintf("%s", sun1.sun_path);
+ }
+--- fam-2.6.10/fam/ServerHost.h.orig 2006-03-13 13:59:35.000000000 +0530
++++ fam-2.6.10/fam/ServerHost.h 2006-03-13 14:00:57.000000000 +0530
+@@ -23,6 +23,11 @@
+ #ifndef ServerHost_included
+ #define ServerHost_included
+
++#include "config.h"
++#if defined(__sun) || defined(__sun__)
++#include <stdio.h>
++#endif
++
+ #include <limits.h>
+ #include "Boolean.h"
+ #include "ClientInterest.h"
+@@ -101,7 +106,11 @@
+ private:
+
+ Request myrequest;
++#if defined(__sun) || defined(__sun__)
++ char mypath[FILENAME_MAX];
++#else
+ char mypath[NAME_MAX];
++#endif
+
+ };
+
+--- fam-2.6.10/fam/NetConnection.h.orig 2006-03-13 11:15:25.000000000 +0530
++++ fam-2.6.10/fam/NetConnection.h 2006-03-13 11:16:09.000000000 +0530
+@@ -27,6 +27,10 @@
+ #include "Boolean.h"
+ #include <limits.h>
+
++#if defined(__sun) || defined(__sun__)
++typedef uint32_t u_int32_t;
++#endif
++
+ // NetConnection is an abstract base class that implements an event
+ // driven, flow controlled reliable datagram connection over an
+ // already open stream socket.
+--- fam-2.6.10/fam/LocalClient.h.orig 2006-03-13 13:49:51.000000000 +0530
++++ fam-2.6.10/fam/LocalClient.h 2006-03-13 13:50:08.000000000 +0530
+@@ -38,7 +38,7 @@
+
+ private:
+
+- struct sockaddr_un sun;
++ struct sockaddr_un sun1;
+
+ };
+
+--- fam-2.6.10/fam/DirectoryScanner.h.orig 2006-03-13 11:23:13.000000000 +0530
++++ fam-2.6.10/fam/DirectoryScanner.h 2006-03-13 11:28:59.000000000 +0530
+@@ -27,7 +27,12 @@
+
+ #include <stddef.h>
+ #include <sys/types.h>
++#if defined(__sun) || defined(__sun__)
++#include <dirent.h>
++#define direct dirent
++#else
+ #include <sys/dir.h>
++#endif
+
+ #include "Event.h"
+
+--- fam-2.6.10/fam/TCP_Client.h.orig 2006-03-13 14:01:27.000000000 +0530
++++ fam-2.6.10/fam/TCP_Client.h 2006-03-13 14:01:53.000000000 +0530
+@@ -53,7 +53,7 @@
+ virtual void enqueue_scanner(Scanner *);
+ virtual void suggest_insecure_compat(const char *path);
+
+- void send_sockaddr_un(sockaddr_un &sun) { conn.send_sockaddr_un(sun); }
++ void send_sockaddr_un(sockaddr_un &sun1) { conn.send_sockaddr_un(sun1); }
+
+ protected:
+ Cred cred; // if !is_valid, we believe the uid/gid in each client request.
+--- fam-2.6.10/fam/SmallTable.h.orig 2006-03-13 11:18:02.000000000 +0530
++++ fam-2.6.10/fam/SmallTable.h 2006-03-13 11:17:43.000000000 +0530
+@@ -98,7 +98,7 @@
+ }
+
+ template <class Tkey, class Tvalue>
+-SmallTable<Tkey, Tvalue>::Closure
++struct SmallTable<Tkey, Tvalue>::Closure
+ SmallTable<Tkey, Tvalue>::position(const Tkey& key) const
+ {
+ unsigned l = 0, r = n;
+--- fam-2.6.10/fam/Directory.c++.orig 2006-03-13 11:22:11.000000000 +0530
++++ fam-2.6.10/fam/Directory.c++ 2006-03-13 11:28:29.000000000 +0530
+@@ -21,12 +21,16 @@
+ // Temple Place - Suite 330, Boston MA 02111-1307, USA.
+
+ #include "Directory.h"
+-
+ #include <assert.h>
+ #include <errno.h>
+ #include <string.h>
+ #include <stdio.h>
++#if defined(__sun) || defined(__sun__)
++#include <dirent.h>
++#define direct dirent
++#else
+ #include <sys/dir.h>
++#endif
+ #include <sys/stat.h>
+ #include <sys/wait.h>
+ #include <unistd.h>
+--- fam-2.6.10/fam/FileSystem.h.orig 2006-03-13 12:15:17.000000000 +0530
++++ fam-2.6.10/fam/FileSystem.h 2006-03-13 13:14:31.000000000 +0530
+@@ -27,7 +27,14 @@
+ #include "Request.h"
+ #include "Set.h"
+
++#if defined(__sun) || defined(__sun__)
++struct mnttab;
++#define mntent mnttab
++
++#else
+ struct mntent;
++#endif
++
+ struct stat;
+
+ // FileSystem is the abstract base class for a per-filesystem object.
+--- fam-2.6.10/fam/FileSystem.c++.orig 2006-03-13 09:13:19.000000000 +0530
++++ fam-2.6.10/fam/FileSystem.c++ 2006-03-13 13:13:31.000000000 +0530
+@@ -22,7 +22,18 @@
+
+ #include "FileSystem.h"
+
+-#include <mntent.h>
++#if defined(__sun) || defined(__sun__)
++#include <stdio.h>
++#include <sys/mntent.h>
++#include <sys/mnttab.h>
++#define mnt_dir mnt_mountp
++#define mnt_fsname mnt_special
++#include <sys/mntent.h>
++
++#else
++#include <sys/mntent.h>
++#endif
++
+ #include <string.h>
+
+ #include "Event.h"
+--- fam-2.6.10/fam/NetConnection.c++.orig 2006-03-13 13:54:29.000000000 +0530
++++ fam-2.6.10/fam/NetConnection.c++ 2006-03-13 13:55:05.000000000 +0530
+@@ -33,6 +33,10 @@
+ #include <unistd.h>
+ #include <netinet/in.h>
+
++#if defined(__sun) || defined(__sun__)
++#include <sys/filio.h>
++#endif
++
+ #include "Log.h"
+ #include "Scheduler.h"
+
+--- fam-2.6.10/fam/ClientConnection.h.orig 2006-03-13 11:13:27.000000000 +0530
++++ fam-2.6.10/fam/ClientConnection.h 2006-03-13 11:13:32.000000000 +0530
+@@ -49,7 +49,7 @@
+ ClientConnection(int fd, InputHandler, UnblockHandler, void *closure);
+
+ void send_event(const Event&, Request, const char *name);
+- void send_sockaddr_un(const sockaddr_un &sun);
++ void send_sockaddr_un(const sockaddr_un &sun1);
+
+ protected:
+
+--- fam-2.6.10/fam/Scheduler.h.orig 2006-03-13 13:58:16.000000000 +0530
++++ fam-2.6.10/fam/Scheduler.h 2006-03-13 13:59:25.000000000 +0530
+@@ -23,6 +23,11 @@
+ #ifndef Scheduler_included
+ #define Scheduler_included
+
++#include "config.h"
++#if defined(__sun) || defined(__sun__)
++#include <memory.h>
++#endif
++
+ #include <sys/time.h>
+ #include <string.h>
+
+--- fam-2.6.10/fam/Log.c++.orig 2006-03-13 13:50:24.000000000 +0530
++++ fam-2.6.10/fam/Log.c++ 2006-03-13 13:52:08.000000000 +0530
+@@ -264,6 +264,8 @@
+ // New back end for assert() will log to syslog, put core file
+ // in known directory.
+
++// I'm taking this out on Solaris ... -- cK
++#if !defined(__sun) && !defined(__sun__)
+ void __assert(const char *msg, const char *file, int line)
+ {
+ char *dirname = new char[strlen(Log::getName()) + 20];
+@@ -283,6 +285,7 @@
+ delete[] dirname;
+ abort();
+ }
++#endif
+
+ #endif /* !NDEBUG */
+
+--- fam-2.6.10/fam/RPC_TCP_Connector.c++.orig 2006-03-13 13:55:29.000000000 +0530
++++ fam-2.6.10/fam/RPC_TCP_Connector.c++ 2006-03-13 15:45:21.000000000 +0530
+@@ -22,6 +22,10 @@
+
+ #include "RPC_TCP_Connector.h"
+
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ #include <errno.h>
+ #include <rpc/rpc.h>
+ #include <rpc/pmap_prot.h>
+@@ -31,6 +35,15 @@
+ #include <string.h>
+ #include <netdb.h> // for rresvport
+
++#if defined(__sun) || defined(__sun__)
++#include <sys/filio.h>
++#include <rpc/clnt_soc.h>
++#endif
++
++#ifdef __cplusplus
++}
++#endif
++
+ #include "Log.h"
+ #include "Scheduler.h"
+ #include "Cred.h" // for Cred::SuperUser
+@@ -101,7 +114,11 @@
+ deactivate();
+ return;
+ }
++#if defined(__sun) || defined(__sun__)
++ rc = connect(fd, (sockaddr *)&address, sizeof address);
++#else
+ rc = connect(fd, (const sockaddr *)&address, sizeof address);
++#endif
+ if (rc == 0)
+ { sockfd = fd;
+ write_handler(fd, this);
+@@ -123,7 +140,11 @@
+ (void) Scheduler::remove_write_handler(fd);
+ RPC_TCP_Connector *conn = (RPC_TCP_Connector *) closure;
+ assert(fd == conn->sockfd);
++#if defined(__sun) || defined(__sun__)
++ int rc = connect(fd, (sockaddr *)(&conn->address), sizeof conn->address);
++#else
+ int rc = connect(fd, (const sockaddr *)(&conn->address), sizeof conn->address);
++#endif
+ if (rc < 0 && errno != EISCONN)
+ {
+ Log::perror("connect");
+--- fam-2.6.10/fam/FileSystemTable.h.orig 2006-03-13 13:43:07.000000000 +0530
++++ fam-2.6.10/fam/FileSystemTable.h 2006-03-13 13:44:19.000000000 +0530
+@@ -27,6 +27,10 @@
+ #include "SmallTable.h"
+ #include "StringTable.h"
+
++#if defined(__sun) || defined(__sun__)
++#define MOUNTED MNTTAB
++#endif
++
+ class Cred;
+ class Event;
+ class FileSystem;
+--- fam-2.6.10/fam/Listener.c++.orig 2006-03-13 13:44:57.000000000 +0530
++++ fam-2.6.10/fam/Listener.c++ 2006-03-13 13:48:23.000000000 +0530
+@@ -37,6 +37,10 @@
+ #include <sys/un.h>
+ #include <unistd.h>
+
++#if defined(__sun) || defined(__sun__)
++#include <stdlib.h>
++#endif
++
+ #include <errno.h>
+
+ #include "Log.h"
+@@ -54,7 +58,7 @@
+ NegotiatingClient(int fd, uid_t u, struct sockaddr_un *s);
+ int sock;
+ uid_t uid;
+- struct sockaddr_un sun;
++ struct sockaddr_un sun1;
+ };
+
+ BTree<int, NegotiatingClient *> negotiating_clients;
+@@ -207,18 +211,18 @@
+
+ char *tmpfile = tempnam("/tmp", ".fam");
+ #if defined(__FreeBSD__)
+- sockaddr_un sun = { sizeof(sockaddr_un), AF_UNIX, "" };
++ sockaddr_un sun1 = { sizeof(sockaddr_un), AF_UNIX, "" };
+ #else
+- sockaddr_un sun = { AF_UNIX, "" };
++ sockaddr_un sun1 = { AF_UNIX, "" };
+ #endif
+- if(strlen(tmpfile) >= (sizeof(sun.sun_path) - 1))
++ if(strlen(tmpfile) >= (sizeof(sun1.sun_path) - 1))
+ {
+ Log::error("tmpnam() too long for sun_path (%d >= %d)!",
+- strlen(tmpfile), sizeof(sun.sun_path) - 1);
++ strlen(tmpfile), sizeof(sun1.sun_path) - 1);
+ free(tmpfile);
+ return;
+ }
+- strcpy(sun.sun_path, tmpfile);
++ strcpy(sun1.sun_path, tmpfile);
+ free(tmpfile);
+
+ Cred::SuperUser.become_user();
+@@ -229,22 +233,22 @@
+ }
+
+ Log::debug("client %s said uid %d; creating %s",
+- inet_client.name(), uid, sun.sun_path);
++ inet_client.name(), uid, sun1.sun_path);
+
+- unlink(sun.sun_path);
+- if (bind(client_sock, (sockaddr *) &sun, sizeof sun) != 0)
++ unlink(sun1.sun_path);
++ if (bind(client_sock, (sockaddr *) &sun1, sizeof sun1) != 0)
+ { Log::perror("localclient bind");
+ close(client_sock);
+ return;
+ }
+
+- if (chmod(sun.sun_path, 0600) != 0)
++ if (chmod(sun1.sun_path, 0600) != 0)
+ { Log::perror("localclient chmod");
+ close(client_sock);
+ return;
+ }
+
+- if (chown(sun.sun_path, uid, (gid_t)-1) != 0)
++ if (chown(sun1.sun_path, uid, (gid_t)-1) != 0)
+ { Log::perror("localclient chown");
+ close(client_sock);
+ return;
+@@ -252,7 +256,7 @@
+
+ // Since we're going to start listening on this socket, set a task
+ // to clean it up if we don't receive a connection within 60 seconds.
+- NegotiatingClient *nc = new NegotiatingClient(client_sock, uid, &sun);
++ NegotiatingClient *nc = new NegotiatingClient(client_sock, uid, &sun1);
+ negotiating_clients.insert(client_sock, nc);
+ timeval nto;
+ gettimeofday(&nto, NULL);
+@@ -267,9 +271,9 @@
+
+ Scheduler::install_read_handler(client_sock, accept_localclient, NULL);
+ Log::debug("listening for requests for uid %d on descriptor %d (%s)",
+- uid, client_sock, sun.sun_path);
++ uid, client_sock, sun1.sun_path);
+
+- inet_client.send_sockaddr_un(sun);
++ inet_client.send_sockaddr_un(sun1);
+ }
+
+ void
+@@ -281,12 +285,12 @@
+ // Get the new socket.
+
+ #if defined(__FreeBSD__)
+- struct sockaddr_un sun = { sizeof(sockaddr_un), AF_UNIX, "" };
++ struct sockaddr_un sun1 = { sizeof(sockaddr_un), AF_UNIX, "" };
+ #else
+- struct sockaddr_un sun = { AF_UNIX, "" };
++ struct sockaddr_un sun1 = { AF_UNIX, "" };
+ #endif
+- CONFIG_SOCKLEN_T sunlen = sizeof(sun);
+- int client_fd = accept(ofd, (struct sockaddr *) &sun, &sunlen);
++ CONFIG_SOCKLEN_T sunlen = sizeof(sun1);
++ int client_fd = accept(ofd, (struct sockaddr *) &sun1, &sunlen);
+ if (client_fd < 0)
+ {
+ Log::perror("failed to accept new client");
+@@ -297,9 +301,9 @@
+ Scheduler::remove_onetime_task(cleanup_negotiation, nc);
+
+ Log::debug("client fd %d is local/trusted (socket %s, uid %d).",
+- client_fd, nc->sun.sun_path, nc->uid);
++ client_fd, nc->sun1.sun_path, nc->uid);
+ Cred cred(nc->uid, client_fd);
+- new LocalClient(client_fd, &(nc->sun), cred);
++ new LocalClient(client_fd, &(nc->sun1), cred);
+ // We don't need a reference to this object. The constructor
+ // takes care of registering it with the Scheduler.
+
+@@ -349,7 +353,7 @@
+ #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" };
++ static sockaddr_un sun1 = { AF_UNIX, "/tmp/.fam_socket" };
+ #endif
+
+ int sock = socket(PF_UNIX, SOCK_STREAM, 0);
+@@ -359,10 +363,10 @@
+ }
+
+ struct stat sb;
+- if (lstat(sun.sun_path, &sb) == 0 &&
++ if (lstat(sun1.sun_path, &sb) == 0 &&
+ sb.st_uid == 0 && S_ISSOCK(sb.st_mode))
+ {
+- if (connect(sock, (sockaddr *) &sun, sizeof sun) == 0)
++ if (connect(sock, (sockaddr *) &sun1, sizeof sun1) == 0)
+ {
+ // Another fam is listening to /tmp/.fam_socket.
+ // Pass our rendezvous fd to the other fam and
+@@ -387,13 +391,13 @@
+ // We were unable to connect to another fam.
+ // We'll create our own dirty ugly hack socket and accept connections.
+
+- (void) unlink(sun.sun_path);
+- if (bind(sock, (sockaddr *) &sun, sizeof sun) != 0)
++ (void) unlink(sun1.sun_path);
++ if (bind(sock, (sockaddr *) &sun1, sizeof sun1) != 0)
+ { Log::perror("bind");
+ exit(1);
+ }
+
+- if (chmod(sun.sun_path, 0700) != 0)
++ if (chmod(sun1.sun_path, 0700) != 0)
+ { Log::perror("chmod");
+ exit(1);
+ }
+@@ -416,9 +420,9 @@
+
+ // Accept a new ugly connection.
+
+- struct sockaddr_un sun;
+- CONFIG_SOCKLEN_T sunlen = sizeof sun;
+- int sock = accept(ugly, (struct sockaddr *)(&sun), &sunlen);
++ struct sockaddr_un sun1;
++ CONFIG_SOCKLEN_T sunlen = sizeof sun1;
++ int sock = accept(ugly, (struct sockaddr *)(&sun1), &sunlen);
+ if (sock < 0)
+ { Log::perror("accept");
+ return;
+@@ -462,8 +466,8 @@
+ NegotiatingClient::NegotiatingClient(int fd, uid_t u, struct sockaddr_un *sunp)
+ : sock(fd), uid(u)
+ {
+- sun.sun_family = AF_UNIX;
+- strcpy(sun.sun_path, sunp->sun_path);
++ sun1.sun_family = AF_UNIX;
++ strcpy(sun1.sun_path, sunp->sun_path);
+ }
+
+ static void
+@@ -485,7 +489,7 @@
+ uid_t preveuid = geteuid();
+ if (preveuid) seteuid(0);
+ seteuid(nc->uid);
+- unlink(nc->sun.sun_path);
++ unlink(nc->sun1.sun_path);
+ if (nc->uid) seteuid(0);
+ seteuid(preveuid);
+
+--- fam-2.6.10/fam/LocalClient.c++.orig 2006-03-13 13:49:04.000000000 +0530
++++ fam-2.6.10/fam/LocalClient.c++ 2006-03-13 13:49:37.000000000 +0530
+@@ -33,13 +33,13 @@
+ : TCP_Client(LOCALHOST(), fd, cred)
+ {
+ assert(cred.is_valid());
+- sun.sun_family = AF_UNIX;
+- strncpy(sun.sun_path, addr->sun_path, sizeof(sun.sun_path));
+- sun.sun_path[sizeof(sun.sun_path) - 1] = '\0';
++ sun1.sun_family = AF_UNIX;
++ strncpy(sun1.sun_path, addr->sun_path, sizeof(sun1.sun_path));
++ sun1.sun_path[sizeof(sun1.sun_path) - 1] = '\0';
+ }
+
+ LocalClient::~LocalClient()
+ {
+ if (geteuid() != cred.uid()) cred.become_user();
+- unlink(sun.sun_path);
++ unlink(sun1.sun_path);
+ }
+--- fam-2.6.10/fam/FileSystemTable.c++.orig 2006-03-13 09:13:26.000000000 +0530
++++ fam-2.6.10/fam/FileSystemTable.c++ 2006-03-13 18:05:59.000000000 +0530
+@@ -23,7 +23,17 @@
+ #include <stddef.h>
+ #include "FileSystemTable.h"
+
+-#include <mntent.h>
++#if defined(__sun) || defined(__sun__)
++#include <stdio.h>
++#include <sys/mntent.h>
++#include <sys/mnttab.h>
++#define mnt_dir mnt_mountp
++#define mnt_fsname mnt_special
++#define mnt_type mnt_fstype
++#else
++#include <sys/mntent.h>
++#endif
++
+ #include <stdlib.h>
+ #include <string.h>
+
+@@ -106,7 +116,11 @@
+
+ // Read /etc/mtab.
+ Cred::SuperUser.become_user();
++#if defined(__sun) || defined(__sun__)
++ FILE *mtab = fopen(mtab_name, "r");
++#else
+ FILE *mtab = setmntent(mtab_name, "r");
++#endif
+ if(mtab == NULL)
+ {
+ Log::error("couldn't open %s for reading", mtab_name);
+@@ -114,8 +128,16 @@
+ return;
+ }
+ root = NULL;
++
++#if defined(__sun) || defined(__sun__)
++ struct mnttab mmp;
++ struct mnttab *mp = &mmp;
++ for ( ; (getmntent(mtab, mp) == 0); )
++ {
++#else
+ for (mntent *mp; ((mp = getmntent(mtab)) != NULL); )
+ {
++#endif
+ FileSystem *fs = fs_by_name ? fs_by_name->find(mp->mnt_dir) : NULL;
+ if (fs && fs->matches(*mp))
+ {
+@@ -172,7 +194,11 @@
+ if (!strcmp(mp->mnt_dir, "/"))
+ root = fs;
+ }
++#if defined(__sun) || defined(__sun__)
++ fclose(mtab);
++#else
+ endmntent(mtab);
++#endif
+
+ if(root == NULL)
+ {
+--- fam-2.6.10/fam/NFSFileSystem.c++.orig 2006-03-13 09:13:34.000000000 +0530
++++ fam-2.6.10/fam/NFSFileSystem.c++ 2006-03-13 14:16:45.000000000 +0530
+@@ -24,7 +24,16 @@
+ #include "NFSFileSystem.h"
+
+ #include <assert.h>
++#if defined(__sun) || defined(__sun__)
++#include <unistd.h>
++#include <sys/mnttab.h>
++#include <sys/mntent.h>
++#define mnt_fsname mnt_special
++#define mnt_opts mnt_mntopts
++#else
+ #include <mntent.h>
++#endif
++
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -45,6 +54,9 @@
+ : FileSystem(mnt)
+ {
+ // Extract the host name from the fs name.
++#if defined(__sun) || defined(__sun__)
++ long __name_max_ = sysconf(_SC_HOST_NAME_MAX);
++#endif
+
+ const char *fsname = mnt.mnt_fsname;
+ const char *colon = strchr(fsname, ':');
+@@ -55,13 +67,27 @@
+ assert(colon);
+ colon = fsname;
+ }
++
++#if defined(__sun) || defined(__sun__)
++ char hostname[__name_max_ + 1];
++#else
+ char hostname[NAME_MAX + 1];
++#endif
+ int hostnamelen = colon - fsname;
++
++#if defined(__sun) || defined(__sun__)
++ if(hostnamelen > __name_max_)
++ {
++ assert(hostnamelen <= __name_max_);
++ hostnamelen = __name_max_;
++ }
++#else
+ if(hostnamelen > NAME_MAX)
+ {
+ assert(hostnamelen <= NAME_MAX);
+ hostnamelen = NAME_MAX;
+ }
++#endif
+ strncpy(hostname, fsname, hostnamelen);
+ hostname[hostnamelen] = '\0';
+
+--- fam-2.6.10/libfam/Client.c++.orig 2006-03-13 11:11:23.000000000 +0530
++++ fam-2.6.10/libfam/Client.c++ 2006-03-13 11:12:23.000000000 +0530
+@@ -129,13 +129,13 @@
+ return;
+ }
+
+- struct sockaddr_un sun;
+- memset(&sun, 0, sizeof sun);
+- sun.sun_family = AF_UNIX;
++ struct sockaddr_un sun1;
++ memset(&sun1, 0, sizeof sun1);
++ sun1.sun_family = AF_UNIX;
+
+ // We will block here, waiting for response from fam.
+ unsigned int nread = 0;
+- char inbuf[sizeof(sun.sun_path)];
++ char inbuf[sizeof(sun1.sun_path)];
+ while(nread < sizeof(u_int32_t))
+ {
+ int rv = read(insock, inbuf + nread, sizeof(u_int32_t) - nread);
+@@ -150,7 +150,7 @@
+ u_int32_t mlen;
+ memcpy(&mlen, inbuf, sizeof(mlen));
+ mlen = ntohl(mlen);
+- if (mlen >= sizeof(sun.sun_path))
++ if (mlen >= sizeof(sun1.sun_path))
+ {
+ close(insock);
+ sock = -8;
+@@ -169,8 +169,8 @@
+ }
+ nread += rv;
+ }
+- strncpy(sun.sun_path, inbuf, mlen);
+- sun.sun_path[mlen] = '\0';
++ strncpy(sun1.sun_path, inbuf, mlen);
++ sun1.sun_path[mlen] = '\0';
+
+ // When we connected to the inet socket and told fam our UID, fam
+ // created a new UNIX domain socket and sent its name to us. Now
+@@ -182,7 +182,7 @@
+ sock = -10;
+ return;
+ }
+- if (connect(sock, (const struct sockaddr *)&sun, sizeof(sun)) < 0)
++ if (connect(sock, (const struct sockaddr *)&sun1, sizeof(sun1)) < 0)
+ {
+ close(sock);
+ close(insock);
+--- fam-2.6.10/libfam/fam.c++.orig 2006-03-13 09:33:42.000000000 +0530
++++ fam-2.6.10/libfam/fam.c++ 2006-03-13 09:37:19.000000000 +0530
+@@ -22,6 +22,9 @@
+
+ #include <sys/types.h>
+ #include <rpc/rpc.h>
++#if defined(__sun) || defined(__sun__)
++#include <rpc/rpcent.h>
++#endif
+ #include <sys/time.h>
+ #include <unistd.h>
+ #include <stdlib.h>
+--- fam-2.6.10/test/test.c++.orig 2006-03-13 14:04:55.000000000 +0530
++++ fam-2.6.10/test/test.c++ 2006-03-13 14:05:36.000000000 +0530
+@@ -10,6 +10,12 @@
+ //#include <fcntl.h>
+ #include "fam.h"
+ //#include "Boolean.h"
++
++#include "config.h"
++#if defined(__sun) || defined(__sun__)
++#include <memory.h>
++#endif
++
+ /*
+
+ FILE test.c - simple fam test program
+--- fam-2.6.10/configure.orig 2006-03-13 09:10:44.000000000 +0530
++++ fam-2.6.10/configure 2006-03-13 09:11:42.000000000 +0530
+@@ -9800,7 +9800,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+-#include <mntent.h>
++#include <sys/mntent.h>
+ int
+ main ()
+ {
+@@ -9849,7 +9849,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+-#include <mntent.h>
++#include <sys/mntent.h>
+ int
+ main ()
+ {
+@@ -9899,7 +9899,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+-#include <mntent.h>
++#include <sys/mntent.h>
+ int
+ main ()
+ {
+@@ -9949,7 +9949,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+-#include <mntent.h>
++#include <sys/mntent.h>
+ int
+ main ()
+ {
Added: csw/mgar/pkg/fam/trunk/files/fam-oss-02.patch
===================================================================
--- csw/mgar/pkg/fam/trunk/files/fam-oss-02.patch (rev 0)
+++ csw/mgar/pkg/fam/trunk/files/fam-oss-02.patch 2010-06-14 15:15:06 UTC (rev 10214)
@@ -0,0 +1,20 @@
+--- fam-2.6.10/Makefile.orig 2006-03-13 15:47:02.000000000 +0530
++++ fam-2.6.10/Makefile 2006-03-13 15:47:04.000000000 +0530
+@@ -480,7 +480,7 @@
+ "# fam, the File Alteration Monitor, http://oss.sgi.com/projects/fam/" \
+ "sgi_fam/1-2 stream rpc/tcp wait root $(DESTDIR)$(bindir)/fam fam"
+ @echo "Restarting inetd..."
+- - at killall -HUP inetd
++ - at kill -HUP inetd
+
+ # We don't remove $(libdir) from ld.so.conf here because we don't have
+ # a way to tell whether we're the ones who added it, and other things
+@@ -489,7 +489,7 @@
+ -@$(EDITCONF) rpc remove 391002
+ -@$(EDITCONF) inetd.conf remove '\b(fam|FAM)\b'
+ @echo "Restarting inetd..."
+- - at killall -HUP inetd
++ - at kill -HUP inetd
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list