Hi Georg,

On Sun, 18 May 2008, Georg Lukas wrote:

> * Szabolcs Szakacsits <[EMAIL PROTECTED]> [2008-05-17 19:49]:
> > On Sat, 17 May 2008, Georg Lukas wrote:
> > > Actually I did not intend to do so, $(rootsbindir) is automatically set
> > > to /usr/sbin somewhere deep in the OpenEmbedded build system.
> > /usr/sbin can break mountability in certain circumstances, e.g. if /usr is 
> > a separate partition.
> 
> That might be true, especially for people having their /usr on NTFS.

Everything (ntfs-3g, fuse libraries, utilities, the dependent libraries, 
locale, etc) must be on the root file system to be able to always 
successfully mount during boot and work correctly (filename conversion, 
etc).

In case of in-kernel file system drivers this is always ensured: either the 
drivers are fully in the kernel already or the modules are on the root file 
system. 

The same must be ensured for ntfs-3g and any other fuse file system if a 
user wants to (flawlessly) mount during early boot.

> However, I think that having a $(rootsbindir) should not do any harm,

$(rootsbindir) is an ntfs-3g internal variable. I think your build process 
uses sbindir=/usr/sbin what ntfs-3g uses, if it's defined, instead of the 
default /sbin.

$sbindir can be anything but if it's not on the root file system then boot 
time automounts may fail.

Your problem was that the $(DESTDIR)/sbin isn't created by the ntfs-3g 
build process where the mount.ntfs-3g mount helper symlink must be created 
for mount(8).

> > > The DESTDIR is usually set to an empty directory for creating an ipkg
> > > package, lets say /tmp/ipk/
> > > 
> > > My problem was, that the install -d line creates a directory
> > > $(DESTDIR)$(rootsbindir), which is /tmp/ipk/usr/sbin then.
> > > After that, a symlink to /sbin/ntfs-3g is created in /tmp/ipk/sbin, but
> > > /tmp/ipk/sbin does not exist. 
> > I see. So we should create that directory too if it's missing.
> 
> We should only create the directory we are using. 

/sbin is used. mount.ntfs-3g must be there. mount(8) calls 
/sbin/mount.ntfs-3g when one enters 'mount -t ntfs-3g ....'.

> In current stable, we create $(rootsbindir) and use /sbin. 

Above you wrote $(rootsbindir) (or $sbindir) is set to /usr/sbin.
If it were set to /sbin then everything would work fine.

> Therefore I submitted the patch to use $(rootsbindir) instead of hard 
> coded /sbin, making the install process self-consistent.

ntfs-3g can be "anywhere", for the price that mount may fail. mount.ntfs-3g 
can not be anywhere. $(rootsbindir) (or $sbindir) defines where ntfs-3g is 
installed. mount.ntfs-3g must be in /sbin.
 
> If you think that it is bad to give the user (or rather package
> maintainer) the choice of overriding that directory, you should hard
> code both lines to /sbin and not use the $(rootsbindir) variable at all.

mount.ntfs-3g is hard coded. ntfs-3g can be anywhere if it's on the root 
file system. The correct place would be actually /bin because users can 
also mount image files or devices if they have the needed permissions.
 
> > The below should work:
> > 
> >     ./configure --sbindir=/sbin 
> 
> What is the point in having a config variable with only one working
> value?

ntfs-3g can be anywhere if it's on the root file system.

I gave you the above example as a trick because it will create the missing 
directory for the mount helper which caused your problem, so you don't need 
to wait for the "create $(DESTDIR)/sbin before making the mount helper 
symlink" patch.

Regards,
            Szaka

--
NTFS-3G:  http://ntfs-3g.org

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
ntfs-3g-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ntfs-3g-devel

Reply via email to