Move project parameters to separate page.
[www.jankratochvil.net.git] / project / captive / Index.html.pl
index 474ab42..8ff2221 100755 (executable)
@@ -27,13 +27,14 @@ use warnings;
 
 BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,<F>)[0]]}; eval "use lib '$top_dir'"; close F; }
 use My::Web;
-use My::Project;
-use project::captive::ListItem;
+Wuse 'My::Project';
+Wuse 'project::captive::ListItem';
 
 
 my $W=My::Project->init_project(
                "__PACKAGE__"=>__PACKAGE__,
                "ListItem"=>\@project::captive::ListItem::ListItem,
+               "no_project_data"=>1,
                "head_css"=>"
 .reqpkg { font-style: italic; }
 .stuff  { font-style: italic; font-size: larger; margin-left: 20%; margin-right: 10%; }
@@ -46,14 +47,14 @@ print vskip("10ex")."<h1 align=\"center\">!!! DO NOT DISCLOSE !!!</h1>\n".vskip(
 
 print <<"HERE";
 <h1>The First Read/Write NTFS for Free Operating Systems</h1>
-<h1>The First Free Microsoft Windows Kernel API Emulation</h1>
+<h1>The First Open Source MS-Windows Kernel API for Free OS</h1>
 HERE
 
 my @stuff=(
                "A lot of people claim themselves as Windows Programmers.\n"
                                ." Now I can finally join them - I also wrote my own Microsoft Windows.",
                "Why do they need ".a_href('http://www.winsupersite.com/reviews/winserver2k3_gold2.asp','5000 developers')
-                               ." to write Microsoft Windows when it is just One Man Show task?",
+                               ." to write Microsoft Windows when it can be just One Man Show?",
 
 
 
@@ -72,8 +73,10 @@ print <<"HERE";
                <td align="left">
                        @{[ map("<p class=\"stuff\">$_</p>\n",($stuff[int rand @stuff])) ]}
                </td>
-               <td align="right">@{[ a_href My::Web::img_src('captive-install-acquire'),
-                               img('captive-install-acquire-small','[ Captive Microsoft Windows Drivers Acquire Illustration ]') ]}</td>
+               <td align="right">@{[
+                               img 'captive-install-acquire-small','[ Captive Microsoft Windows Drivers Acquire Illustration ]',
+                                               "a_href_img"=>'captive-install-acquire'
+                               ]}</td>
        </tr>
 </table>
 
@@ -95,8 +98,8 @@ my %reqpkg=(
                3=>[qw(glib2 gnome-vfs2 ORBit2 libxml2 openssl popt readline)],
                );
 my %version=(
-               map(($_=>["0.9.2","0"]),qw(captive captive-lufs captive-install)),
-               "lufs"=>["0.9.6","1captive2"],
+               map(($_=>["0.9.6","0"]),qw(captive captive-lufs captive-install)),
+               "lufs"=>["0.9.6","1captive5"],
                "gnome-vfs-httpcaptive"=>["2.3.8captive2","0"],
                "ntfsprogs"=>["200309071734","1captive1"],
                "ntfsprogs-gnomevfs"=>["1.0.1","0"],
@@ -152,7 +155,7 @@ my @dist=(
                                        (my $filedev=$file)=~s/^\Q$pkg\E-/${pkg}-devel-/;
                                        $r.="<br />".&$a_href_arch("dist/$filedev",$filedev) if $has_devel{$pkg};
                                        if ($pkg eq "captive-install") {
-                                               for (qw(libxml2-2.5.4-1.i386.rpm libxml2-python-2.5.4-1.i386.rpm)) {
+                                               for (qw(libxml2-2.5.4-1.i386.rpm libxml2-python-2.5.4-1.i386.rpm libxml2-devel-2.5.4-1.i386.rpm)) {
                                                        $r.="<br />".&$a_href_arch('ftp://ftp.redhat.com/pub/redhat/linux/9/en/os/i386/RedHat/RPMS/'.$_,$_)." of Red Hat 9";
                                                        }
                                                }
@@ -230,9 +233,26 @@ print <<"HERE";
 available Microsoft Windows drivers versions. Now you can execute:</p>
 
 <blockquote>
-<p class="quote"># mount -t captive-ntfs /dev/hda1 /mnt/dosc</p>
+       <p class="quote">
+               # mkdir /mnt/dosc<br />
+               # mount -t captive-ntfs /dev/hda1 /mnt/dosc
+       </p>
 </blockquote>
 
+
+<h2>Overview</h2>
+
+<p>'<b>captive</b>' is the base package. It contains debugging '<b>captive-cmdline</b>' client.<br />
+'<b>captive-lufs</b>' permits mounting NTFS as regular filesystem. It needs '<b>lufs</b>'.<br />
+'<b>lufs</b>' is a daemon to enable userland process to provide filesystem functions.</p>
+
+<p>Any errors from '<b>captive-lufs</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>Package version conflicts</h2>
 
 <dl>
@@ -277,7 +297,7 @@ class="quote">/usr/share/lufs/prepmod</span>.</p>
        <col width="0*" />
        <tr>
                <td align="left">
-                       <h2>The First Free Microsoft Windows Kernel API Emulation</h2>
+                       <h2>The First Open Source MS-Windows Kernel API for Free OS</h2>
 
                        <p>Compatibility with existing binary Microsoft Windows file system drivers was
                        reached. Microsoft Windows kernel system components required by these drivers
@@ -287,7 +307,7 @@ class="quote">/usr/share/lufs/prepmod</span>.</p>
                        <span class="productname">@{[ a_href 'http://www.reactos.com/','ReactOS' ]}</span>
                        code base made a big asset for this functionality.</p>
                </td>
-               <td align="right">@{[ a_href 'http://www.reactos.com/',img('reactos','ReactOS') ]}</td>
+               <td align="right">@{[ img 'reactos','ReactOS',"a_href"=>'http://www.reactos.com/' ]}</td>
        </tr>
 </table>
 
@@ -296,9 +316,41 @@ class="quote">/usr/share/lufs/prepmod</span>.</p>
 
 <h1>See also</h1>
 <ul>
-       <li>@{[ a_href 'Preview.html.pl','Technology Preview' ]}</li>
-       <li>@{[ a_href 'doc/','Developer Documentation' ]}</li>
+       <li>@{[ a_href 'Preview.html.pl','<span style="font-size: larger;">Technology Preview</span>' ]}</li>
+       <li>@{[ a_href 'CVS.html.pl','CVS Repository' ]}</li>
+       <li>@{[ a_href 'doc/','Developer Documentation' ]}; highlights:<ul>
+               <li>@{[ a_href 'doc/About.html.pl#versions','Microsoft Windows Versions Compatibility' ]}</li>
+               <li>@{[ a_href 'doc/Architecture.html.pl#law','Laws and Licensing Conditions' ]}</li>
+               <li>@{[ a_href 'doc/Details.html.pl#sandbox','Sandboxing of W32 Filesystem' ]}</li>
+               <li>@{[ a_href 'doc/TODO.html.pl#todo_fsck','TODO: Fsck of NTFS' ]}</li>
+               <li>@{[ a_href 'doc/TODO.html.pl#todo_surprise','TODO: NTFS Support for Partition Surprise' ]}</li>
+               <li>@{[ a_href 'doc/Related.html.pl#LinuxNTFScompet','Related Projects - Linux NTFS' ]}</li>
+               <li>@{[ a_href 'doc/Related.html.pl#vmware','Related Projects - VMware Workstation' ]}</li>
+               <li>@{[ a_href 'doc/LinuxNTFS.html.pl',"Re: 7.7 Can't we write a wrapper for Windows' driver?" ]}</li>
+               </ul></li>
        <li>@{[ a_href 'http://cvs.jankratochvil.net/viewcvs/*checkout*/priv/captive/TODO?rev=HEAD','Known Bugs' ]}</li>
+       <li>Man pages<ul>
+               @{[
+                       do {
+                               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'],
+###                                            'captive-install-fstab'=>[1,'Manage captive-ntfs /etc/fstab entries'],
+                                               );
+                               my @r;
+                               while (@mans) {
+                                       my $file=shift @mans;
+                                       my($section,$name)=@{shift @mans};
+                                       push @r,"<li>".a_href("man/$file.pod.html",$file)."($section) - $name</li>\n";
+                                       }
+                               @r;
+                               }
+                       ]}
+               </ul></li>
        <li>@{[ a_href 'Resources.html.pl','Related Pages' ]}</li>
        <li>@{[ a_href 'Thanks.html.pl','Thanks' ]}</li>
 </ul>
@@ -307,7 +359,7 @@ class="quote">/usr/share/lufs/prepmod</span>.</p>
 
 <p class="stuff">
        Why did I install Microsoft Windows and wrote such disgusting piece of code?<br />
-       I expect @{[ a_href top_dir()."/CV.html.pl","yet another challenging task" ]}, !
+       Expecting @{[ a_href $W->{"resume_url"},"yet another challenging task" ]}!
 </p>
 HERE