[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]

[patch@34044] Enable getgrgid on VMS



Even though configure.com was detecting the getgrgid and friends, they 
were not being configured because HAS_GROUPS was not defined in vmsish.h.

Even though the functions are now active, the perl tests do not work 
because VMS does not have either an id or groups command.

The GNV package has an id command, and when GNV is better integrated 
with Perl this will have to be addressed.

On VMS, there is no way for a non-privileged user to directly get a list 
of the users or the groups for verifying the function.  A non-privileged 
user can lookup a specific username, uid, gid, or group name.

-John
wb8tyw@qsl.net
Personal Opinion Only
--- /rsync_root/perl/vms/vmsish.h	Thu Feb 21 18:20:57 2008
+++ vms/vmsish.h	Thu Jun 12 08:34:47 2008
@@ -448,8 +448,15 @@
  *	This symbol, if defined, indicates that the getgrnam() and
  *	getgrgid() routines are available to get group entries.
  *	The getgrent() has a separate definition, HAS_GETGRENT.
+ *
+ *	These have been available in VMS for a while, but configure.com
+ *	only checks for the recursive versions.
  */
+#if defined HAS_GETGRNAM_R || defined HAS_GETGRGID_R
+#define HAS_GROUP		/**/
+#else
 #undef HAS_GROUP		/**/
+#endif
 
 /* HAS_PASSWD
  *	This symbol, if defined, indicates that the getpwnam() and
--- /rsync_root/perl/t/op/groups.t	Wed Apr 30 10:20:16 2008
+++ t/op/groups.t	Thu Jun 12 18:47:18 2008
@@ -1,7 +1,7 @@
 #!./perl
 
 $ENV{PATH} ="/bin:/usr/bin:/usr/xpg4/bin:/usr/ucb" .
-    exists $ENV{PATH} ? ":$ENV{PATH}" : "";
+    exists $ENV{PATH} ? ":$ENV{PATH}" : "" unless $^O eq 'VMS';
 $ENV{LC_ALL} = "C"; # so that external utilities speak English
 $ENV{LANGUAGE} = 'C'; # GNU locale extension
 
@@ -27,7 +27,8 @@
     exit 0;
 }
 
-quit() if (($^O eq 'MSWin32' || $^O eq 'NetWare') or $^O =~ /lynxos/i);
+quit() if (($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'VMS')
+           or $^O =~ /lynxos/i);
 
 # We have to find a command that prints all (effective
 # and real) group names (not ids).  The known commands are:

Follow-Ups from:
"Craig A. Berry" <craig.a.berry@gmail.com>

[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]