From: Szabolcs S. <sz...@nt...> - 2008-01-21 14:45:33
|
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 |