maintenance: active->dead
[www.jankratochvil.net.git] / project / captive / Index.pm
index f28a8ca..81e3c0d 100755 (executable)
@@ -33,15 +33,13 @@ our @ListItem=(
                "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>
@@ -76,23 +74,37 @@ my $W=project::Lib->init(
                                        .'<td>&bull;&nbsp;'.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>
@@ -104,67 +116,53 @@ print <<"HERE";
                <td>
                        <p>RPM i386 binary<br />tested for distributions:</p>
                        <table border="0"><tr><td align="left"><ul>
-                               <li>Red&nbsp;Hat&nbsp;9&nbsp;Shrike</li>
-                               <li>Red&nbsp;Hat&nbsp;8&nbsp;Psyche</li>
-                               <li>SuSE&nbsp;9.0</li>
-                               <li>SuSE&nbsp;9.1</li>
-                               <li>Mandrake&nbsp;9.1&nbsp;Bamboo</li>
+                               <li>Fedora&nbsp;Core&nbsp;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" ]}
@@ -224,56 +222,36 @@ problems.</p>
 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&nbsp;-q&nbsp;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
@@ -292,34 +270,16 @@ print <<"HERE";
 
 <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" ]}
@@ -333,7 +293,6 @@ print <<"HERE";
                <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>
@@ -345,7 +304,6 @@ print <<"HERE";
                                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'],