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
[EMAIL PROTECTED]
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: