"priority"=>666,
"summary"=>"The first free NTFS read/write filesystem for GNU/Linux",
"license"=>"GPL",
- "maintenance"=>"update",
+ "maintenance"=>"dead",
"language"=>"i386 asm, C, Perl",
- "icon"=>"captive-install-acquire-icon",
+ "icon"=>"captive-install-acquire-icon.png",
"cvs-of main tree"=>"captive",
"cvs-of branched ReactOS subdir"=>"reactos:captive",
- "cvs-of branched LUFS"=>"lufs:captive",
- "cvs-of 'httpcaptive://' method"=>"gnome-vfs-httpcaptive:captive",
- "cvs-of 'libntfs://' method"=>"ntfsprogs-gnomevfs",
"description"=>sub { return <<"HERE"; },
+<p><b>This project is no longer maintained.</b></p>
<p>Project implements the first full read/write free access to NTFS disk drives.
You can mount your Microsoft Windows NT, 200x or XP partition as
a transparently accessible volume for your GNU/Linux.</p>
.'<td>• '.a_href('#seealso','See Also').'</td>'
.'</tr></table>'
},
+ "project::Lib-init-hook"=>sub {
+ if (my $file=$W->{"args"}{"file"}) {
+ My::Web::header("Refresh"=>"1;url=".path_web("./dist/$file","abs"=>1));
+ }
+ },
);
-print <<"HERE" if !$W->{"no_job"};
-@{[ vskip "3ex" ]}
+&{$_}() for reverse @{$W->{"footing_delimit_sub_push"}};
-<table border="0" style="margin: 3ex; padding: 2ex; background: #bb8888;" class="margin-center">
- <tr><td style="font-size: larger;">
- Looking for a challenging job: @{[ a_href $W->{"resume_url"},"My resume" ]}
- </td></tr>
-</table>
-HERE
+my $version="1.1.7";
+my $revision="0";
-my %version=(
- map(($_=>["1.1.5","0"]),qw(captive captive-lufs captive-install)),
- "lufs"=>["0.9.7","1captive8"],
- );
+my $survey_enable=0; # Temporarily forced, enough data so far.
+
+Wrequire 'project::captive::DriverSurvey';
+my $survey_want=$survey_enable;
+$survey_want=0 if $W->{"args"}{"file"};
+$survey_want=0 if project::captive::DriverSurvey::cookie();
+
+local *download=sub($)
+{
+my($name)=@_;
+
+ # Do not: ,"attr"=>'target="_blank"'
+ # as it would require Framed XHTML.
+ my $real="dist/$name";
+ return a_href './DriverSurvey.pm?file='.$name,$name,"size"=>$real
+ if $survey_want;
+ return a_href $real,$name,"size"=>1;
+};
print <<"HERE";
<h2 id="download">Download</h2>
<td>
<p>RPM i386 binary<br />tested for distributions:</p>
<table border="0"><tr><td align="left"><ul>
- <li>Red Hat 9 Shrike</li>
- <li>Red Hat 8 Psyche</li>
- <li>SuSE 9.0</li>
- <li>SuSE 9.1</li>
- <li>Mandrake 9.1 Bamboo</li>
+ <li>Fedora Core 4</li>
</ul></td></tr></table>
</td>
- <td>@{[ a_href 'dist/captive-static-'.$version{"captive"}[0].'-'.$version{"captive"}[1].'.i386.rpm',
- undef(),"size"=>1,"basename"=>1 ]}</td>
+ <td>@{[ download("captive-static-$version-$revision.i386.rpm") ]}</td>
</tr>
<tr>
<td>
<p>.tar.gz i386 binary<br />(for non-RPM distributions)</p>
</td>
- <td>@{[ a_href 'dist/captive-static-'.$version{"captive"}[0].'.tar.gz',undef(),"size"=>1,"basename"=>1 ]}</td>
+ <td>@{[ download("captive-static-$version.tar.gz") ]}</td>
</tr>
<tr>
<td>Source archives</td>
<td>@{[ a_href 'CVS.pm#source','download link' ]}</td>
</tr>
</table>
+HERE
-<h4>Development Status</h4>
-
-<p>Project is no longer developed. The key functionality is reached
-by the latest released version. All its resources are available
-@{[ a_href 'CVS.pm#source','here' ]} for download.</p>
-
-<h4>Known Issue</h4>
-
-<p>Captive was written to interface with the Linux kernel via
-@{[ a_href 'http://lufs.sourceforge.net/lufs/','LUFS' ]}.
-Unfortunately, this project is no longer being maintained by its author.
-Mounting of NTFS devices usually works, but is no longer supported by the
-author of Captive. Always unmount the device by umount(8) command before shutting
-down your GNU/Linux system.</p>
+if ($survey_enable && !$survey_want) {
+ print <<"HERE";
+<p>@{[ a_href 'DriverSurvey.pm','Linux Drivers Availability survey' ]} link
+- if you already answered before.</p>
+HERE
+ }
-<p>A port of Captive to the newer
-@{[ a_href 'http://fuse.sourceforge.net/','FUSE' ]}
-interface has not yet been implemented.
-There is an experimental LUFS-FUSE bridge called
-@{[ a_href 'http://sourceforge.net/project/showfiles.php?group_id=121684','lufis' ]}
-that can be used in the meanwhile.
-Also, the captive-cmdline(1) interface will get around any kernel compatibility
-problems.</p>
+print <<"HERE";
+<p>You may like to use whole bootable CD standalone distribution featuring Captive like:
+@{[ a_href 'http://trinityhome.org/trk/','Trinity Rescue Kit' ]}</p>
@{[ vskip "3ex" ]}
<h2 id="news">NEWS</h2>
<dl>
- <dt>captive-1.1.5 (2004-01-18) [@{[ a_href $W->{"project_viewcvs"}.'/*checkout*/captive/NEWS?rev=HEAD','archive' ]}]</dt>
+ <dt>captive-1.1.7 (2006-01-26) [@{[ a_href $W->{"project_viewcvs"}.'captive/NEWS?rev=HEAD','archive' ]}]</dt>
<dd>
<ul>
- <li>Fixed ignorance of the file truncate operation via LUFS (Matthias R.)</li>
- <li>Support for reading of HIDDEN SYSTEM NTFS files via LUFS</li>
- <li>Fixed refusal to mount some NT4.0 NTFSes (Nerijus Baliunas, Scott Chevalley)</li>
- <li>Support <code>/dev/ataraid</code> devices (Ivan Tonov)</li>
+ <li>Fixed sandbox restarting looking like disconnected mounts (FUSE client only)</li>
+ <li>Workarounded no FUSE/Linux-kernel charset support - fixes locale filenames</li>
+ <li>Fixed multiple issues of captive-install-acquire(1) to run at all again</li>
+ <li>Fixed general operations refusal on invalid errnos</li>
+ <li>Fixed invalid file timestamps (FUSE client only)</li>
+ <li>Workarounded FUSE/Linux-kernel user mounts (FUSE only)</li>
+ <li>Workarounded FUSE/Linux-kernel modprobe(8)ing (FUSE only)</li>
+ <li>(static .tar.gz build only) Debian now a bit more compatible</li>
</ul>
</dd>
- <dt>lufs-0.9.7captive8 (2003-12-06) [@{[ a_href $W->{"project_viewcvs"}.'/*checkout*/lufs/NEWS.captive?rev=1.1.2.11','archive' ]}]</dt>
</dl>
@{[ vskip "3ex" ]}
available Microsoft Windows drivers versions. Now you can execute:</p>
<blockquote>
- <p class="quote" style="white-space: pre;"
-># captive-cmdline \\
- --load-module=/var/lib/captive/ntoskrnl.exe \\
- --filesystem=/var/lib/captive/ntfs.sys \\
- --sandbox-server=/usr/sbin/captive-sandbox-server \\
- --bug-pathname=/tmp/captive-bug-%FT%T.captivebug.xml.gz \\
- --disk --rw /dev/hda1
-# Now you can use ftp(1)-like command-line interface for the NTFS disk access.</p
- >
- <p>(Backslash end-of-line characters '\\' to be omitted for line continuation.)</p>
+ <p class="quote">
+ # mkdir /mnt/dosc<br />
+ # mount -t captive-ntfs /dev/hda1 /mnt/dosc
+ </p>
</blockquote>
<h2>Overview</h2>
-<p>Any errors from '<b>captive-lufs</b>' are written to '<b>/var/log/messages</b>'.</p>
+<p>Any errors from '<b>captive-fuse</b>' are written to '<b>/var/log/messages</b>'.</p>
<p>Needed drivers (at least ntoskrnl.exe+ntfs.sys) must be in '<b>/var/lib/captive</b>'.</p>
<p>'<b>captive</b>' package creates '<b>captive</b>' user and '<b>captive</b>' group on your system.</p>
-<h2>LUFS Kernel Driver Module</h2>
-
-<p>@{[ a_href 'http://lufs.sourceforge.net/lufs/','LUFS' ]} (Linux Userland File
-System) needs Linux kernel module driver (<i>lufs.o</i>) compatible with your
-running Linux kernel. The binary driver is supplied already precompiled for many
-Linux kernel versions in the binary packages above (<b>.i386.rpm</b> and
-<b>_i386.deb</b> archives).</p>
+<h2>FUSE Kernel Driver Module</h2>
-<p>If you cannot <b>mount</b>(8) your NTFS filesystem you should run <span
-class="quote">/usr/share/lufs/prepmod</span> to see the reasons. It is always
-recommended to upgrade to the latest stable kernel supplied by your GNU/Linux
-distribution vendor. You may need to install package
-<b>kernel-source</b> (Red Hat) or <b>kernel-headers</b> (Debian) matching your
-Linux kernel version (<b>rpm -q kernel</b>) and re-run <span
-class="quote">/usr/share/lufs/prepmod</span>.</p>
+<p>@{[ a_href 'http://fuse.sourceforge.net/','FUSE' ]} (Filesystem in Userspace)
+needs Linux kernel module driver (<i>fuse.ko</i>) compatible with your
+running Linux kernel.</p>
-<p><b>WARNING:</b> This 'captive' package may modify your Linux kernel
-sources matching your currently running kernel version. These minor
-modifications may include a dependencies rebuild, compiling build tools, fixes of
-several include files, etc. All the modifications are done at the mount(8) time
-by the automatically executed <span class="quote">/usr/share/lufs/prepmod</span> script.
-This behavior was not present in the original
-@{[ a_href 'http://lufs.sourceforge.net/lufs/','LUFS' ]} distribution
-by @{[ a_href 'http://www.malinux.net/main/','Florin Malita' ]}.</p>
+<p>If you cannot <b>mount</b>(8) your NTFS filesystem you should check your
+Linux kernel is based on version at least 2.6.14 where
+@{[ a_href 'http://fuse.sourceforge.net/','FUSE' ]} got imported. You should
+also check the module is enabled or even built-in.</p>
HERE
-print rightimg <<"HERE",'reactos','ReactOS',"a_href"=>'http://www.reactos.com/';
+print rightimg <<"HERE",'reactos.png','ReactOS',"a_href"=>'http://www.reactos.com/';
<h2>The First Open Source MS-Windows Kernel API for Free OS</h2>
<p>Compatibility with the existing binary Microsoft Windows file system drivers has been
<h2 id="lists">Mailing Lists</h2>
-<form action="@{[ uri_escaped(path_web "/Mailman.pm") ]}" @{[ form_method "post" ]}>
- <table border="1" class="mailman" style="border-collapse: collapse; border-style: solid; border-width: 1px;">
- <tr>@{[ map('<th>'.$_.'@jankratochvil.net</th>',@lists) ]}</tr>
- <tr><td>New version announcements<br />
- (low traffic, recommended)</td>
- <td>User support,<br />bug reports</td>
- <td>Development</td>
- </tr>
- <tr>@{[ map({ "<td>".a_href($W->{"mailman_url"}."listinfo/$_",'Mailman Infopage')."</td>"; } @lists) ]}</tr>
- <tr>@{[ map({ "<td>".a_href($W->{"pipermail_url"}."$_",'Archive')."</td>"; } @lists) ]}</tr>
- <tr>@{[
- map(('<td><input type="checkbox" name="list" value="'.$_.'"'
- .($_ ne "captive-announce-list" ? '' : ' checked="checked"')
- .' /> Subscribe?</td>'),@lists)
- ]}</tr>
- <tr><td colspan="3">
- <table border="0" style="text-align: left;">
- <tr><td>Email address: </td><td><input type="text" name="email" size="30" /></td></tr>
- <tr><td>Your new Mailman password:</td><td><input type="password" name="pw" size="15" /></td></tr>
- <tr><td>Reenter your password: </td><td><input type="password" name="pw-conf" size="15" /></td></tr>
- </table>
- <p>
- <input type="hidden" name="back" value="/project/captive/#lists" />
- <input type="submit" name="email-button" value="Subscribe me" />
- </p>
- </td></tr>
- </table>
-</form>
+<p>The mailing list were closed. You can only access their archive.</p>
+
+<table border="1" class="mailman" style="border-collapse: collapse; border-style: solid; border-width: 1px;">
+ <tr>@{[ map('<th>'.$_.'@jankratochvil.net</th>',@lists) ]}</tr>
+ <tr><td>New version announcements</td>
+ <td>User support,<br />bug reports</td>
+ <td>Development</td>
+ </tr>
+ <tr>@{[ map({ "<td>".a_href($W->{"pipermail_url"}."$_",'Archive')."</td>"; } @lists) ]}</tr>
+</table>
@{[ vskip "3ex" ]}
<li>@{[ a_href 'doc/Architecture.pm#law','Laws and Licensing Conditions' ]}</li>
<li>@{[ a_href 'doc/Details.pm#sandbox','Sandboxing of W32 Filesystem' ]}</li>
<li>@{[ a_href 'doc/TODO.pm#todo_fsck','TODO: Fsck of NTFS' ]}</li>
- <li>@{[ a_href 'doc/TODO.pm#todo_surprise','TODO: NTFS Support for Partition Surprise' ]}</li>
<li>@{[ a_href 'doc/Related.pm#LinuxNTFScompet','Related Projects - Linux NTFS' ]}</li>
<li>@{[ a_href 'doc/Related.pm#vmware','Related Projects - VMware Workstation' ]}</li>
<li>@{[ a_href 'doc/LinuxNTFS.pm',"Re: 7.7 Can't we write a wrapper for Windows' driver?" ]}</li>
my @mans=(
'captive'=>[7,'Microsoft Windows NT kernel emulation for NTFS disk access'],
'mount.captive'=>[8,'mount(8) interface for NTFS disk access'],
- 'lufs-captivefs'=>[7,'Linux Userland File System module for NTFS as filesystem'],
'captive-cmdline'=>[1,'Command-line client for captive(7) NTFS disk access'],
### 'captive-sandbox-server'=>[1,'Security+safety wrapper for NTFS disk access'],
'captive-install-acquire'=>[1,'Find MS Windows XP driver files for NTFS'],