Proposal: removeDirectoryRecursive should not follow symlinks

Edward Z. Yang ezyang at mit.edu
Tue Jan 6 20:43:14 UTC 2015


I did a quick check, and all references in Cabal implicitly assume there
will be no symlinks in the directory being deleted.

Edward

Excerpts from Erik Hesselink's message of 2015-01-06 12:39:22 -0800:
> Does cabal rely on this behavior?
> 
> Erik
> 
> On Tue, Jan 6, 2015 at 9:37 PM, Johan Tibell <johan.tibell at gmail.com> wrote:
> > Who volunteers to fix the breakages in Cabal and add all the needed CPP?
> >
> > On Tue, Jan 6, 2015 at 2:45 PM, David Feuer <david.feuer at gmail.com> wrote:
> >>
> >> This seems reasonable, but if we have a deprecation cycle, the old name
> >> should (temporarily) be a synonym for the new one, and the deprecation
> >> warning should indicate that code intended to work with older versions needs
> >> to be audited.
> >>
> >> On Jan 6, 2015 2:40 PM, "Gabriel Gonzalez" <gabriel439 at gmail.com> wrote:
> >>>
> >>> I think it's safer to remove the old function altogether (perhaps after
> >>> one deprecation cycle) and provide a new one under a different name, rather
> >>> than modify it in place.
> >>>
> >>> Modifying it in place risks the behavior that others mentioned where your
> >>> program is unsafe to compile against older library versions.  Yes, the user
> >>> could explicitly enforce that by putting a lower bound on the library, but
> >>> most users won't even realize that they need to do that.
> >>>
> >>>
> >>> On 1/6/15, 11:37 AM, Edward Kmett wrote:
> >>>
> >>> I'm +1 for fixing this, in place, on the current function.
> >>>
> >>> The specification we have here is doing a very very bad thing and needs
> >>> to be fixed, not slavishly copied forward because someone sometime once made
> >>> a mistake.
> >>>
> >>> The current behavior grievously violates the expectations of anyone who
> >>> would be in a situation to go and reach for it and has any prior experience
> >>> with any other such tool.
> >>>
> >>> -Edward
> >>>
> >>>
> >>>
> >>> On Tue, Jan 6, 2015 at 11:14 AM, Malcolm Wallace <malcolm.wallace at me.com>
> >>> wrote:
> >>>>
> >>>>
> >>>> On 6 Jan 2015, at 14:59, Bardur Arantsson wrote:
> >>>>
> >>>> > On 2015-01-06 14:57, Mike Meyer wrote:
> >>>> >> On Tue, Jan 6, 2015 at 7:48 AM, Johan Tibell <johan.tibell at gmail.com>
> >>>> >> wrote:
> >>>> >>
> >>>> >>> This is not a bugfix. A bug is failing to follow the functions
> >>>> >>> specification, which *does* include following symlinks.
> >>>> >>>
> >>>> >>
> >>>> >> It's a bug in the design, not the code.
> >>>>
> >>>> > Because *nobody* wants to follow symlinks when doing "rm -rf". Even if
> >>>> > they think they do, they *really* don't.
> >>>>
> >>>> I agree 100%.  Even time I use this function, I worry briefly about
> >>>> whether it follows symlinks, then think to myself "no, no-one would be so
> >>>> stupid to implement that deliberately in a publically available API".  So it
> >>>> was a real shock to discover in this thread that I was wrong, and
> >>>> furthermore that the function is documented as doing the wrong thing.  We
> >>>> should fix both spec and implementation, as soon as possible.
> >>>>
> >>>> Regards,
> >>>>     Malcolm
> >>>> _______________________________________________
> >>>> Libraries mailing list
> >>>> Libraries at haskell.org
> >>>> http://www.haskell.org/mailman/listinfo/libraries
> >>>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Libraries mailing list
> >>> Libraries at haskell.org
> >>> http://www.haskell.org/mailman/listinfo/libraries
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Libraries mailing list
> >>> Libraries at haskell.org
> >>> http://www.haskell.org/mailman/listinfo/libraries
> >>>
> >>
> >> _______________________________________________
> >> Libraries mailing list
> >> Libraries at haskell.org
> >> http://www.haskell.org/mailman/listinfo/libraries
> >>
> >
> >
> > _______________________________________________
> > Libraries mailing list
> > Libraries at haskell.org
> > http://www.haskell.org/mailman/listinfo/libraries
> >


More information about the Libraries mailing list