-
+
- Why did I install Microsoft Windows and write such a disgusting piece of code?
- Expecting @{[ a_href $W->{"resume_url"},"yet another challenging task" ]}!
+ Looking for a challenging job: @{[ a_href $W->{"resume_url"},"My resume" ]}
|
+HERE
-@{[ vskip "3ex" ]}
+my %version=(
+ map(($_=>["1.1.4","0"]),qw(captive captive-lufs captive-install)),
+ "lufs"=>["0.9.7","1captive8"],
+ );
+
+print <<"HERE";
+Download
+
+Choose the one preferred installation format:
+
+
+
+
+
+ RPM i386 binary
+ tested for distributions:
+
+ - Red Hat 9 Shrike
+ - Red Hat 8 Psyche
+ - Mandrake 9.1 Bamboo
+ |
+ |
+ @{[ a_href 'dist/captive-static-'.$version{"captive"}[0].'-'.$version{"captive"}[1].'.i386.rpm',
+ undef(),"size"=>1,"basename"=>1 ]} |
+
+
+ .tar.gz i386 binary (for non-RPM distributions) |
+ @{[ a_href 'dist/captive-static-'.$version{"captive"}[0].'.tar.gz',undef(),"size"=>1,"basename"=>1 ]} |
+
+
+ Debian .deb binaries |
+ @{[ a_href 'CVS.html.pl#debian','download link' ]} |
+
+
+ Source archives |
+ @{[ a_href 'CVS.html.pl#source','download link' ]} |
+
+
+ |
+@{[ vskip "3ex" ]}
-NEWS
+NEWS
- - captive-1.0.1 (2003-10-28)
+ - captive-1.1.4 (2003-12-13) [@{[ a_href $W->{"project_viewcvs"}.'/*checkout*/captive/NEWS?rev=HEAD','archive' ]}]
-
- - Fixed (harmless) crash/hang of lufsd during post-unmount cleanup
- - Fixed captive-install-acquire Gnome UI responsiveness during network outage
- - Support for LUFS options such as uid/gid/fmask/dmask
- - Improved performance
+ - Unicode/UTF8 localized filenames conversion for GNU/Linux is now supported
+ - Various GNU/Linux distributions compatibility fixes
+ - Fixed omitted captive-install-acquire(1) --microsoft-com progress bar
+ - Fixed captive-install-acquire(1) --scan-disks* memory leaks (Steve Wampler)
+ - Fixed captive-install-acquire(1) --scan-disks* performance
+ - lufs-0.9.7captive8 (2003-12-06) [@{[ a_href $W->{"project_viewcvs"}.'/*checkout*/lufs/NEWS.captive?rev=1.1.2.11','archive' ]}]
+@{[ vskip "3ex" ]}
-@{[ vskip "1ex" ]}
-
-
-Distribution |
- Installation Case #1 Filesystem and installer (recommended) |
- Installation Case #2 Manual installation (filesystem, expert user) |
- Installation Case #3 Command-line client (no filesystem access) |
-HERE
-my %pkg=(
- 1=>[qw(captive captive-lufs captive-install lufs gnome-vfs-httpcaptive ntfsprogs ntfsprogs-gnomevfs)],
- 2=>[qw(captive captive-lufs lufs)],
- 3=>[qw(captive)],
- );
-my %reqpkg=(
- 1 =>[qw(glib2 gnome-vfs2 ORBit2 libxml2 openssl popt readline libgnomeui)],
- 23=>[qw(glib2 gnome-vfs2 ORBit2 libxml2 openssl popt readline)],
- );
-my %version=(
- map(($_=>["1.0.1","0"]),qw(captive captive-lufs captive-install)),
- "lufs"=>["0.9.6","1captive6"],
- "gnome-vfs-httpcaptive"=>["2.3.8captive2","0"],
- "ntfsprogs"=>["200309071734","1captive1"],
- "ntfsprogs-gnomevfs"=>["1.0.2","0"],
- );
-my %has_rh8=(map(($_=>1),qw(
- gnome-vfs-httpcaptive
- captive
- captive-lufs
- captive-install
- )));
-my %has_mdk91=(map(($_=>1),qw(
- gnome-vfs-httpcaptive
- lufs
- captive
- captive-lufs
- captive-install
- )));
-my %has_devel=(map(($_=>1),qw(
- ntfsprogs
- )));
-my %pkg_nosrc=(map(($_=>1),qw(
- captive-lufs
- captive-install
- )));
-
-my $case;
-my $a_href_arch=sub ($$%)
-{
-my($file_base,$text,%args)=@_;
-
- $text=~s/[._]\D.*$// if $case!=1 && $text!~/^[.]/;
- return a_href $file_base,$text,"size"=>($case==1),%args;
-};
-
-my @libxml2_rh8_pkgs=qw(libxml2-2.5.4-1.i386.rpm libxml2-python-2.5.4-1.i386.rpm libxml2-devel-2.5.4-1.i386.rpm);
-
-my $ntfsprogs_after=sub ($) {
- my($format)=@_;
- return () if $case!=1;
- return ' requirement: '
- .a_href('http://linux-ntfs.sourceforge.net/downloads.html#downloads','ntfsprogs')
- .' '.$format.' ≥ 1.8.0';
- };
-
-my @dist=(
- {
- "name"=>"Red Hat 9 Shrike i386",
- "out"=>sub {
- my($pkg,$version_base,$version_ext)=@_;
- return () if $pkg eq "ntfsprogs";
- my $file="$pkg-$version_base-$version_ext.i386.rpm";
- my $r=&$a_href_arch("dist/$file",$file);
- (my $filedev=$file)=~s/^\Q$pkg\E-/${pkg}-devel-/;
- $r.=" ".&$a_href_arch("dist/$filedev",$filedev) if $has_devel{$pkg};
- return $r;
- },
- "after"=>sub { return &{$ntfsprogs_after}(".i386.rpm"); },
- },
- {
- "name"=>"Red Hat 8 Psyche i386 "
- ."(".a_href("#libxml2_rh8","libxml2 upgrade note").")",
- "out"=>sub {
- my($pkg,$version_base,$version_ext)=@_;
- return () if $pkg eq "ntfsprogs";
- my $file="$pkg-$version_base-$version_ext".(!$has_rh8{$pkg} ? "" : "rh8").".i386.rpm";
- my $r=&$a_href_arch("dist/$file",$file);
- (my $filedev=$file)=~s/^\Q$pkg\E-/${pkg}-devel-/;
- $r.=" ".&$a_href_arch("dist/$filedev",$filedev) if $has_devel{$pkg};
- if ($pkg eq "captive-install") {
- for (@libxml2_rh8_pkgs) {
- $r.=" ".&$a_href_arch('ftp://ftp.redhat.com/pub/redhat/linux/9/en/os/i386/RedHat/RPMS/'.$_,$_)." of Red Hat 9";
- }
- }
- return $r;
- },
- "after"=>sub { return &{$ntfsprogs_after}(".i386.rpm"); },
- },
- {
- "name"=>'Mandrake 9.1 Bamboo i586 Mandrake 9.2 TBA i586',
- "out"=>sub {
- my($pkg,$version_base,$version_ext)=@_;
- return () if $pkg eq "ntfsprogs";
- my $file="$pkg-$version_base-$version_ext".(!$has_mdk91{$pkg} ? ".i386.rpm" : "mdk91.i586.rpm");
- my $r=&$a_href_arch("dist/$file",$file);
- (my $filedev=$file)=~s/^\Q$pkg\E-/${pkg}-devel-/;
- $r.=" ".&$a_href_arch("dist/$filedev",$filedev) if $has_devel{$pkg};
- return $r;
- },
- "after"=>sub { return &{$ntfsprogs_after}(".i386.rpm"); },
- },
- {
- "name"=>"Debian GNU/Linux 'unstable' i386",
- "out"=>sub {
- my($pkg,$version_base,$version_ext)=@_;
- $version_ext=~s/^\d+//;
- my $file="${pkg}_$version_base".($version_ext=~/^\d+$/ ? "" : $version_ext)."_i386.deb";
- my $r=&$a_href_arch("dist/$file",$file);
- (my $filedev=$file)=~s/^\Q$pkg\E_/${pkg}-dev_/;
- $r.=" ".&$a_href_arch("dist/$filedev",$filedev) if $has_devel{$pkg};
- return $r;
- },
- },
- {
- "name"=>"Sources (.tar.gz)",
- "out"=>sub {
- my($pkg,$version_base,$version_ext)=@_;
- return () if $pkg_nosrc{$pkg};
- $version_ext=~s/^\d+//;
- my $file="$pkg-$version_base".($version_ext=~/^\d+$/ ? "" : $version_ext).".tar.gz";
- return $file,$file;
- },
- "after"=>sub { return &{$ntfsprogs_after}(".tar.gz"); },
- },
- {
- "name"=>"Sources (.src.rpm) (Red Hat 9 - Shrike)",
- "out"=>sub {
- my($pkg,$version_base,$version_ext)=@_;
- return () if $pkg eq "ntfsprogs";
- return () if $pkg_nosrc{$pkg};
- my $file="$pkg-$version_base-$version_ext.src.rpm";
- return $file,$file;
- },
- "after"=>sub { return &{$ntfsprogs_after}(".i386.rpm (incl. -devel)"); },
- },
- );
-
-for my $dist (@dist) {
- print "";
- print "".$dist->{"name"}." | ";
- for my $casel (1,2,3) {
- $case=$casel;
- print "";
- print join(" ",map({ my $pkg=$_;
- my($file,$text)=&{$dist->{"out"}}($pkg,@{$version{$pkg}});
- (!defined $text ? ($file) || () : (&$a_href_arch("dist/$file",$text)));
- } @{$pkg{$case}}),map({ (!$_ ? () : (&{$_}())); } $dist->{"after"}));
- print " | ";
- }
- print " \n";
- }
-print " \n";
-print "";
- print "Package Requirements | ";
- for my $case (1,23) {
- print "";
- print join(", ",map("$_",@{$reqpkg{$case}}));
- print " | ";
- }
-print " \n";
-print <<"HERE";
-
+Captive NTFS Testimonials
-
- Red Hat 8 Psyche upgrade of libxml2 package:
- Upgrade only the packages already installed on your system to prevent
- many dependency requirements - do not use "rpm -U ",
- use "rpm -F " instead:
-
- rpm -F @{[ join(" ",@libxml2_rh8_pkgs) ]}
-
-
+
+ - Derek J Witt
+
I commend you for this project. I am currently using this on my XP NTFS
+ partitions and I am impressed that I can actually move, edit, and remove files
+ and directories with no apparent ill effects. This is very nice indeed.
+ I initially was skeptical because it uses wine and parts of ReactOS
+ (I have messed with this OS a few times), but you have proved me wrong. I have
+ noticed no lag on my system. I do notice the initial mounting process does
+ take slightly longer than the Linux-NTFS project. But, once I'm past that, it's
+ quite transparent.
+ [ technical question cut ]
+
+ - James Van't Slot
+
Just wanted to drop you a note and say "Excellent work!"
+ I just installed captive and it worked as advertized right out of the
+ rpm. Thanks, I've been holding off recompiling my kernel until NTFS is
+ supported out of the box for Redhat. Now I don't have to bother.
+ Thanks again and keep up the great work.
+
+
@{[ vskip "3ex" ]}
-Installation Notes
+Installation Notes
You should first run captive-install-acquire command to check your
available Microsoft Windows drivers versions. Now you can execute:
@@ -295,10 +171,6 @@ available Microsoft Windows drivers versions. Now you can execute:
Overview
-'captive' is the base package. It contains debugging 'captive-cmdline' client.
-'captive-lufs' permits mounting NTFS as regular filesystem. It needs 'lufs'.
-'lufs' is a daemon to enable userland process to provide filesystem functions.
-
Any errors from 'captive-lufs' are written to '/var/log/messages'.
Needed drivers (at least ntoskrnl.exe+ntfs.sys) must be in '/var/lib/captive'.
@@ -306,18 +178,6 @@ available Microsoft Windows drivers versions. Now you can execute:
'captive' package creates 'captive' user and 'captive' group on your system.
-Package Version Conflicts
-
-
-
-- @{[ a_href 'http://lufs.sourceforge.net/lufs/','lufs' ]}
-'captive' version required: Although you may already have the
-original package installed you must replace it by the local 'captive'-marked
-version containing some 'captive'-essential fixes and extensions.
-
-
-
-
LUFS Kernel Driver Module
@{[ a_href 'http://lufs.sourceforge.net/lufs/','LUFS' ]} (Linux Userland File
@@ -374,8 +234,8 @@ print <<"HERE";
| User support, bug reports |
Development |
-