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