solaris' rm works, gnu's not
$ /usr/gnu/bin/rm --version
rm (GNU coreutils) 6.7


On Sun, Aug 10, 2008 at 10:48 AM, Szabolcs Szakacsits <szaka at ntfs-3g.org> 
wrote:
>
> On Sun, 10 Aug 2008, Andras Barna wrote:
>> On Sun, Aug 10, 2008 at 12:53 AM, Szabolcs Szakacsits <szaka at ntfs-3g.org> 
>> wrote:
>> >
>> > On Fri, 8 Aug 2008, Andras Barna wrote:
>> >
>> >> am cc'ing desktopdiscuss, since we are talking now about autotools
>> >
>> > Thanks.
>> >
>> >> i applied the patch, seems ok and also i must add AM_PROG_LIBTOOL to
>> >> configure.ac coz: [0]
>> >
>> > Well, you shouldn't add it because it already should be there when needed.
>> >
>> > The problem is with this recent patch:
>> >
>> >  
>> > http://mercurial.creo.hu/repos/ntfs-3g-hg/index.cgi/diff/a05ab13955c8/configure.ac
>> >
>> >> a minor error: ./configure: line 19337: LT_INIT: command not found
>> >>
>> >> i have no idea about the other problems. sorry
>> >>
>> >> [0]
>> >> libfuse-lite/Makefile.am:5: Libtool library used but `LIBTOOL' is 
>> >> undefined
>> >> libfuse-lite/Makefile.am:5:   The usual way to define `LIBTOOL' is to
>> >> add `AC_PROG_LIBTOOL'
>> >> libfuse-lite/Makefile.am:5:   to `configure.ac' and run `aclocal' and
>> >> `autoconf' again.
>> >> libfuse-lite/Makefile.am:5:   If `AC_PROG_LIBTOOL' is in
>> >> `configure.ac', make sure
>> >> libfuse-lite/Makefile.am:5:   its definition is in aclocal's search path.
>> >> libntfs-3g/Makefile.am:6: Libtool library used but `LIBTOOL' is undefined
>> >> libntfs-3g/Makefile.am:6:   The usual way to define `LIBTOOL' is to
>> >> add `AC_PROG_LIBTOOL'
>> >> libntfs-3g/Makefile.am:6:   to `configure.ac' and run `aclocal' and
>> >> `autoconf' again.
>> >> libntfs-3g/Makefile.am:6:   If `AC_PROG_LIBTOOL' is in `configure.ac', 
>> >> make sure
>> >> libntfs-3g/Makefile.am:6:   its definition is in aclocal's search path.
>> >
>> > Apparently your autoconf doesn't like the 'ifdef' construct in configure.ac
>> > What's the version (autoconf --version)? Minimum 2.59 is needed (enforced
>> > by configure.ac) and 2.61 is known to be ok (at least on Linux).
>> >
>>
>> it's 2.61
>
> Interesting.
>
>> > About the "rm: cannot remove directory `foo': Directory not empty" problem.
>> >
>> > Is it always reproducible?
>>
>> uhm yes
>>
>> on opensolaris the PATH begins with /usr/gnu/bin, so we are talking
>> about the GNU rm see:
>> (sorry for this i always get lost in PATH's)
>>
>> sartek at osol:/tmp/a# mkdir -p
>> asdasd/asd/as/d/asd/asd/asd/asd/asdasd/as/das/das/da/sdas/das/das/da/sd/asd/asd/asd/as/das/d/asd/asd/asd/asd/as/das/d/asd/asd/asd/
>> sartek at osol:/tmp/a# which rm
>> /usr/gnu/bin/rm
>> sartek at osol:/tmp/a# rm -rf asdasd
>> rm: cannot remove directory `asdasd': Directory not empty
>> sartek at osol:/tmp/a# /usr/bin/rm -rf asdasd
>> sartek at osol:/tmp/a#
>
> I can't reproduce this either on Linux.
>
> Do you have the same problem using the Solaris 'rm' command as well?
>
> If not, then what's the output of 'rm --version'?
>
> Thanks,
>            Szaka
>
>
>> > I grepped the Solaris rm(1) code and it doesn't deal with ENOTEMPTY/EEXIST
>> > (no need for it). So the problem was (is?) something else.
>> >
>> > The ntfs-3g driver can also return ENOTEMPTY if a removed file/directory
>> > has an open file descriptor and its parent directory tried to be removed
>> > (this is a fuse high-level api issue).
>> >
>> > Three potential explanations:
>> >
>> > 1. rm "leaks" file descriptors during recursive removal. But it doesn't
>> > look like to be so by a quick look at the code. A tracing could confirm
>> > this pretty fast.
>> >
>> > 2. a child and removed file/directory was still in use (opened by at least
>> > one process). Then the error message is the expected one.
>> >
>> > 3. a Solaris fuse issue.
>> >
>> > Regards,
>> >           Szaka
>> >
>> > --
>> > NTFS-3G:  http://ntfs-3g.org
>> >
>> >> On Fri, Aug 8, 2008 at 12:48 AM, Szabolcs Szakacsits <szaka at 
>> >> ntfs-3g.org> wrote:
>> >> >
>> >> > Hi,
>> >> >
>> >> > On Tue, 5 Aug 2008, Andras Barna wrote:
>> >> >
>> >> >> i'm on opensolaris 94
>> >> >> i just want to confirm that it works with gcc, but with 
>> >> >> sunstudioexpress.
>> >> >> i attach a log
>> >> >
>> >> > Thank you very much.
>> >> >
>> >> > It seems the only major problem is the lack of anonymous struct/union
>> >> > support in the Sun Studio compiler.
>> >> >
>> >> > Is it possible somehow to detect the Sun Studio compler in configure.ac?
>> >> > Then users could be advised to install gcc.
>> >> >
>> >> > Another improvement could be this patch
>> >> >
>> >> > ------------------------------------------------>
>> >> > diff -u -r1.78 configure.ac
>> >> > --- configure.ac        17 Jul 2008 15:04:23 -0000      1.78
>> >> > +++ configure.ac        7 Aug 2008 20:53:57 -0000
>> >> > @@ -117,7 +117,7 @@
>> >> >  AC_GNU_SOURCE
>> >> >
>> >> >  # Programs
>> >> > -AC_PROG_CC
>> >> > +AC_PROG_CC(gcc cc)
>> >> >  AC_PROG_LN_S
>> >> >  AM_PROG_CC_C_O
>> >> >
>> >> > <------------------------------------------------
>> >> >
>> >> > which in theory would always prefer and use the gcc compiler over Sun
>> >> > Studio if both are installed. This way there would be no need to 
>> >> > manually
>> >> > set CC before compilation.
>> >> >
>> >> > Could somebody test the patch please?
>> >> >
>> >> >        unset CC
>> >> >        ./autogen.sh
>> >> >        ./configure
>> >> >        make
>> >> >
>> >> > The anonymous struct/union issue is keep being solved by developers 
>> >> > using
>> >> > old gcc and other compilers (it can be done in a few hours) but a 
>> >> > solution
>> >> > can be applied to upstream ntfs-3g only if it's completely 
>> >> > non-intrusive to
>> >> > all existing users.
>> >> >
>> >> > Two good solutions are
>> >> >
>> >> >  1. Detect compiler anonymous struct/union ability, set a macro 
>> >> > accordingly,
>> >> >    use it to conditionally (and smartly) define structs/unions and 
>> >> > convert
>> >> >    all relevant, direct struc/union member accesses to use get and set
>> >> >    helper functions/macros.
>> >> >
>> >> >  2. Eliminate anonymous struct/union usage and demonstrate that the
>> >> >    generated machine codes are equivalent on the byte level. I very much
>> >> >    doubt this would be true.
>> >> >
>> >> > Andras, I've seen your problem on HUP, namely something like this:
>> >> >
>> >> >  mkdir -p foo/bar/baz
>> >> >  rm -rf foo
>> >> >  rm: cannot remove directory `foo': Directory not empty
>> >> >
>> >> > Apparently Solaris's rm(8) checks only for EEXIST. ENOTEMPTY is also 
>> >> > valid
>> >> > in the above case according to POSIX. In the past ntfs-3g's rmdir(2)
>> >> > returned EEXIST but it was changed to ENOTEMPTY because most (Linux)
>> >> > programs expect ENOTEMPTY.
>> >> >
>> >> > If somebody could confirm the above then we would change the driver to 
>> >> > use
>> >> > EEXIST instead of ENOTEMPTY on Solaris.
>> >> >
>> >> > Thanks,
>> >> >           Szaka
>> >> >
>> >> > --
>> >> > NTFS-3G: http://ntfs-3g.org
>> >> >
>> >> >
>> >> >> On Tue, Aug 5, 2008 at 8:29 PM, Szabolcs Szakacsits <szaka at 
>> >> >> ntfs-3g.org> wrote:
>> >> >> >
>> >> >> > On Tue, 5 Aug 2008, Mark Phalan wrote:
>> >> >> >> On Tue, 2008-08-05 at 15:02 +0200, Mark Phalan wrote:
>> >> >> >> > On Mon, 2008-07-21 at 12:33 +0300, Szabolcs Szakacsits wrote:
>> >> >> >> > > On Thu, 17 Jul 2008, Szabolcs Szakacsits wrote:
>> >> >> >> > > >
>> >> >> >> > > > Could somebody please quickly try whether the below package, 
>> >> >> >> > > > integrating
>> >> >> >> > > > all the ideas we discussed here, compiles now on Solaris 
>> >> >> >> > > > without any
>> >> >> >> > > > patching and if not then what's the problem?
>> >> >> >> > > >
>> >> >> >> > > >         http://ntfs-3g.org/ntfs-3g-1.2717.tgz
>> >> >> >> > > >
>> >> >> >> > > > The usual './configure && make && make install' should work 
>> >> >> >> > > > but
>> >> >> >> > > > 'CFLAGS=-D__SOLARIS__  ./configure && ...' may be needed for 
>> >> >> >> > > > FUSE.
>> >> >> >> > >
>> >> >> >> > > Any success or failure?
>> >> >> >> >
>> >> >> >> > I just compiled ntfs-3g-1.2717 on the latest version of 
>> >> >> >> > Nevada/Solaris.
>> >> >> >> > It compiled without any problems!
>> >> >> >> >
>> >> >> >> > I haven't tested it yet though.
>> >> >> >>
>> >> >> >> Just tested it now with a Windows XP install. Reading and writing 
>> >> >> >> seem
>> >> >> >> to work!
>> >> >> >
>> >> >> > Thanks for testing.
>> >> >> >
>> >> >> >> Thanks for making the necessary changes to ntfs-3g :)
>> >> >> >>
>> >> >> >> One thing to note is that ntfs-3g doesn't compile well with the Sun
>> >> >> >> Studio compiler gcc must be used. In the future I'd like to be able 
>> >> >> >> to
>> >> >> >> compile it with Sun Studio too. I'll take a look and see what needs 
>> >> >> >> to
>> >> >> >> be changed.
>> >> >> >
>> >> >> > I think the below patch is needed. Maybe something else too?
>> >> >> >
>> >> >> > ---------------------------------------------------------------------->
>> >> >> > --- configure.ac        17 Jul 2008 15:04:23 -0000      1.78
>> >> >> > +++ configure.ac        5 Aug 2008 17:22:12 -0000
>> >> >> > @@ -277,8 +277,10 @@
>> >> >> >  ])
>> >> >> >  AC_SYS_LARGEFILE
>> >> >> >
>> >> >> > -# We add -Wall to enable some compiler warnings.
>> >> >> > -CFLAGS="${CFLAGS} -Wall"
>> >> >> > +if test "$GCC" = "yes" ; then
>> >> >> > +       # We add -Wall to enable some compiler warnings.
>> >> >> > +       CFLAGS="${CFLAGS} -Wall"
>> >> >> > +fi
>> >> >> >
>> >> >> >  if test "${enable_pedantic}" = "yes"; then
>> >> >> >        enable_warnings="yes"
>> >> >> > <---------------------------------------------------------------------
>> >> >> >
>> >> >> > Thanks again,
>> >> >> >                Szaka
>> >> >> >
>> >> >> > --
>> >> >> > NTFS-3G:  http://ntfs-3g.org
>> >> >> >
>> >> >> > _______________________________________________
>> >> >> > fuse-discuss mailing list
>> >> >> > fuse-discuss at opensolaris.org
>> >> >> > http://mail.opensolaris.org/mailman/listinfo/fuse-discuss
>> >> >>
>> >> >> --
>> >> >> Andy
>> >> >> http://blog.sartek.net
>> >>
>> >> --
>> >> Andy
>> >> http://blog.sartek.net
>> >
>>
>>
>>
>> --
>> Andy
>> http://blog.sartek.net
>>
>
> --
> NTFS-3G:  http://ntfs-3g.org
>
>



-- 
Andy
http://blog.sartek.net

Reply via email to