Craig A. Berry wrote:
At 8:25 AM -0500 7/29/07, John E. Malmberg wrote:

In VMS 8.3, support for symbolic links has been added to the CRTL.

Unfortunately the support is broken for the unlink(), remove(),
delete(), and probably rmdir() and rename() unless one of the Posix
compliant modes is activated.

This patch works around this issue for remove() and rmdir() by
using the RMS erase call.

The extra code in vms.c to make remove() and rmdir() behave
according to  the UNIX security model needed modifications so that
it would put the ACL on the symbolic link and not the link target.


I see a lot of ACL-handling code being removed, but I don't yet see what replaces it. Do we still modify the ACL if that's what's needed to delete a file? In other words, are we preserving existing behavior for cases where there is no link involved?

There previously were two sections doing the kill_file function. One to handle rmdir() and one to handle remove(). They were mostly duplicates, except for special handling for the then future Posix Compliant Mode needing a special case.

With the change to to use SYS$ERASE() the special PCP stuff is eliminated, which means that the two sections would be duplicated.

I was always intending on eventually merging them into one.

Another fix in that patch is that the directories where limited to paths of 255 characters.

It looks like we need to see if the UNIX delete of write protected files is being tested for.


Also added a logical name PERL_VMS_UNLINK_ALL_VERSIONS which allows
a runtime setting of the feature.

TODO: Add a wrapper to rename so that it will handle symbolic links
correctly if that bug is present, and to also remove the extra
versions of the file.

With this patch, 107 tests now are passed or skipped in t/op/stat.t

I think there are probably quite a few things that now need to be sandwiched between calls to decc$feature_set.

Right now I am trying to get blead to pass all the tests with VMS in the default mode. I have 47 test failures to investigate under VMS 8.3 with symbolic links enabled in the build.

Because of bugs in my rsync partial port, every time I do a major update using rsync, a few files get corrupted, so I still have to see if I have found all of the ones that were corrupted this time.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to