Happy New Year!!!
The last year has been an absolutely fantastic one for the NTFS-3G project.
The main focus was to achieve and keep ensuring stability, usability, and
implement the most needed functionalities. But with Your help the project
has managed to perform so much more!
Big thanks to all of You sending the valuable feedbacks, bug reports,
helping users and developers to solve the problems, writing news,
installation and usage documents, extensively testing and using the driver,
developing incredible new features and fixes, packaging the software for
easy use, nicely integrating the driver into over 100 distributions for
smooth interoperability, tirelessly porting and maintaining the driver
on all the supported platforms, vividly taking care about the projects
operational infrastructure, and donating, sponsoring or supporting the
project in any other direct or indirect way!
The year 2008 seems to be even more exciting. The plan is to implement
the still missing most needed features, fully and reliably integrate
improvements, most importantly the new permission and ownership support,
finish porting Pawel Jakub Dawidek's POSIX test suite to Linux, start
seriously working on the performance improvements, keep extending and
improving the quality test suite, and further stabilize the driver on
the non-Linux platforms.
Let's start with this release candidate. The big change this time is the
built-in, integrated FUSE support on Linux and consequently a much
improved, completely rewritten, backwards compatible build system, big
thanks to Alon Bar-Lev!
What does the integrated FUSE support mean? It means that NTFS-3G has no
FUSE runtime user space, or compilation time dependency on Linux anymore.
Developers and users must only ensure that the FUSE kernel driver is
available for the running kernel, which is basically a standard nowadays.
Why was this needed? There were quite many reasons for over a year and it
was under strong consideration for over half a year.
Despite NTFS-3G being available directly for over 130 distributions, there
are still daily 931 source code downloads in average. The FUSE code, what
NTFS-3G utilizes, is about only 5% of the NTFS-3G driver, still over 50% of
the problem reports, some very serious ones, is related to FUSE. We're
actively addressing all these problems but solutions aren't always coming
fast enough or ever to satisfy the rapid NTFS-3G development and adoption
rate. Some major examples:
- Troublesome source code based installations. NTFS-3G required FUSE
installed and often FUSE upgrade for fixes or new functionality.
The more complex upgrade scenario often failed due to several reasons.
The official FUSE upgrade release cycle is also four times slower in
average than the NTFS-3G one. FUSE installation and runtime version
conflicts have been seen also too often.
- NTFS-3G gets a lot of attention from embedded device and appliance
users and vendors who often use custom system libraries. Due to the
way FUSE was engineered, it didn't work reliable with these libraries
and we were getting a lot mysterious, hard to debug problems, not in
our code. Repeated attempts to get these fixed quickly in FUSE failed.
We have fixed these problems and starting from this NTFS-3G release
we can ensure the same quality using custom (e.g. uClibc) system
libraries and more rapidly make enhanced stable releases.
- Quality testing NTFS-3G with and supporting several FUSE versions
requires much more resources than anybody in the world could have.
Moreover, typically always the latest FUSE release is the recommended
one to use. With the usage of the built-in FUSE support we can ensure
the same quality anywhere.
- If a package manager stopped upgrading FUSE then NTFS-3G users
had a deficient driver. Now one only needs to upgrade NTFS-3G
and the needed, quality tested FUSE upgrade is included.
- NTFS-3G doesn't need 90% of the FUSE functionality but on the other
hand it does need ones which are not included yet. Spending time
resolving issues with the unneeded FUSE functionality kept slowing
down NTFS-3G development. From now on, we can focus on and support
only what we really need.
Thankfully FUSE lead developer, Miklos Szeredi, also thought a stripped
down FUSE library is a good idea and was supporting with his comments.
The integrated FUSE library (fuse-lite) currently is 50% of its original
size but this expected to shrink to 10-15% in the future. The NTFS-3G
source package increased by only 12% but the compiled NTFS-3G driver is
15% smaller now.
The fuse-lite library is always linked into libntfs-3g when it's used.
Linux uses this by default. The --with-fuse=external configure option makes
ntfs-3g to be compiled with the external FUSE library. For FreeBSD, OS X
and NetBSD this is the default and the only option.
Compilation modes:
configure: fuse-lite linked into shared libntfs-3g
configure --disable-library: fuse-lite & libntfs-3g linked into ntfs-3g
configure --enable-really-static: fully static ntfs-3g with fuse-lite
configure --with-fuse=external: same with the old way
default compilation
configure --with-fuse=external --disable-library: libntfs-3g linked
into ntfs-3g
configure --with-fuse=external --enable-really-static: fully static ntfs-3g
with external fuse
All the tests were positive so far on general purpose Linux systems using
x86, ARM, MIPS CPUs. Any feedback from FreeBSD, OS X and NetBSD would be
very welcome since we couldn't test those yet.
The new build system should be fully backwards compatible, minus the
default fuse-lite use on Linux and 'make install-strip' should be used
instead of 'make strip && make install'.
This release candidate has a new ntfs-3g.probe utility which probes a
volume for read-only or read-write mountability. The exit code is unique
and they are documented in the ntfs-3g.probe manual page. The NTFS-3G
driver started to use the same exit codes (e.g. not ntfs, corrupt ntfs,
hibernated windows, unclean volume, etc).
An important signal handling related FUSE fix from Miklos Szeredi is
included which prevents potential system hang, e.g. during shutdown
(FUSE 2.7.2 has the same fix).
Jean-Pierre Andre has made available the release candidate of the NTFS-3G
driver with file ownership and permissions. Please give us your feedback:
http://pagesperso-orange.fr/b.andre/security.html
The NTFS-3G release candinate can be downloaded from
http://ntfs-3g.org/
The changelog is at
http://ntfs-3g.org/releases.html
If no major problem is reported then the stable NTFS-3G release can be
expected earliest after three days.
Many thanks to Alon Bar-Lev, Jean-Pierre Andre, Erik Larsson, Miklos
Szeredi, Dominique L Bouix, Csaba Henk, Alejandro Pulver, Bernhard Kaindl,
Andrzej Szelachowski, Sergei Mozhaisky, and Vang Be Pha.
Enjoy,
Szabolcs
-------------------------------------------------------------------------
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