Package: rdist
Version: 6.1.5-11
Severity: normal
Tags: patch
Hello,
The nodescend options is described in the rdist manpage as:
nodescend
Do not descend into a directory. Normally rdist will recursively check
directories. If this option is enabled, then any files listed in the file
list in the distfile that are directories are not recursively scanned. Only
the existence, ownership, and mode of the directory are checked.
Given this description I expected that if I had a distfile like this:
/tmp/DIR1/ -> ( localhost )
install -onodescend /tmp/rdist/DIR1 ;
rdist would create a directory /tmp/rdist/DIR1 with the same permissions as
/tmp/DIR1 but would not copy files from /tmp/DIR1 into the new directory.
This was not the case. AFAICS this is a real issue because in the alpha
version 7.0 of rdist at http://www.magnicomp.com/ this problem is fixed.
A simple patch to ensure expected behaviour could be:
--- src/client.c.orig 2006-05-15 15:56:21.000000000 +0300
+++ src/client.c 2006-05-15 16:44:39.000000000 +0300
@@ -573,35 +573,35 @@
int destdir;
{
DIRENTRY *dp;
DIR *d;
char *optarget, *cp;
int len;
int didupdate = 0;
- /*
- * Don't descend into directory
- */
- if (IS_ON(opts, DO_NODESCEND))
- return(0);
-
if ((d = opendir(target)) == NULL) {
error("%s: opendir failed: %s", target, SYSERR);
return(-1);
}
/*
* Send recvdir command in recvit() format.
*/
(void) sendcmd(C_RECVDIR, "%o %04o 0 0 0 %s %s %s",
opts, stb->st_mode & 07777, user, group, rname);
if (response() < 0)
return(-1);
+ /*
+ * Don't descend into directory
+ */
+ if (IS_ON(opts, DO_NODESCEND))
+ return(0);
+
if (IS_ON(opts, DO_REMOVE))
if (rmchk(opts) > 0)
++didupdate;
optarget = ptarget;
len = ptarget - target;
while (dp = readdir(d)) {
if (!strcmp(dp->d_name, ".") ||
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15
Versions of packages rdist depends on:
ii libc6 2.3.6-7 GNU C Library: Shared libraries
rdist recommends no packages.
-- no debconf information
Thanks.
--
Kornilios Kourtis
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]