Captive release update: 1.1.6.1
[www.jankratochvil.net.git] / project / captive / Index.pm
index 7b8a029..ae5a1b9 100755 (executable)
@@ -33,14 +33,11 @@ our @ListItem=(
                "priority"=>666,
                "summary"=>"The first free NTFS read/write filesystem for GNU/Linux",
                "license"=>"GPL",
-               "maintenance"=>"update",
+               "maintenance"=>"active",
                "language"=>"i386 asm, C, Perl",
                "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>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
@@ -76,15 +73,35 @@ 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));
+                               }
+                       },
                );
 
 
 &{$_}() for reverse @{$W->{"footing_delimit_sub_push"}};
 
-my %version=(
-               map(($_=>["1.1.5","0"]),qw(captive captive-lufs captive-install)),
-               "lufs"=>["0.9.7","1captive8"],
-               );
+my $version="1.1.6.1";
+my $revision="0";
+
+Wrequire 'project::captive::DriverSurvey';
+my $survey_want=1;
+$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>
@@ -96,67 +113,47 @@ 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>
-
-<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>
+if (!$survey_want) {
+       print <<"HERE";
+<p>@{[ a_href 'DriverSurvey.pm','Linux Drivers Availability survey' ]} link
+- if you already answered before.</p>
+HERE
+       }
 
+print <<"HERE";
 @{[ 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.6.1 (2005-12-29) [@{[ 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>New FUSE interface, deprecated LUFS - improve compatibility of Linux kernel</li>
+                       <li>Provided script for proper NTFS unmounts during GNU/Linux OS shutdown</li>
+                       <li>Updates for recent Microsoft installed binaries and files for download</li>
+                       <li>Hopefully survives reading of many small files like on XMMS scanning</li>
+                       <li>Improved recent GNU/Linux build environment compatibility</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" ]}
@@ -216,50 +213,30 @@ 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
@@ -337,7 +314,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'],