Wuse 'project::captive::ListItem';
+# Redirect foreign visitors to our root with that disgusting introduction ad.
+{
+ my $r=Apache->request();
+ if (my $referer=$r->header_in("Referer")) {
+ Wuse 'WebConfig';
+ require URI;
+ my $refuri=URI->new_abs($referer,$r->uri());
+ if (1
+ && $refuri->host() ne "localhost"
+ && $refuri->host() ne &{$WebConfig::WebConfig{"web_hostname_sub"}}) {
+ use Apache::Constants qw(REDIRECT);
+ $r->status(REDIRECT);
+ $r->header_out("Location"=>"http://".&{$WebConfig::WebConfig{"web_hostname_sub"}}());
+ exit 0;
+ }
+ }
+ }
+
+
my $W=My::Project->init_project(
"__PACKAGE__"=>__PACKAGE__,
"ListItem"=>\@project::captive::ListItem::ListItem,
.reqpkg { font-style: italic; }
.stuff { font-style: italic; font-size: larger; margin-left: 20%; margin-right: 10%; }
.re { font-style: italic; }
+table.mailman > * /* FIXME: What is it? */ > tr > th,
+table.mailman > * /* FIXME: What is it? */ > tr > td { padding: 1ex; text-align: center; }
",
);
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 can be just One Man Show?",
+ "A lot of people claim to be Windows Programmers.\n"
+ ." Now, I can join them at last - I have also written my own Microsoft Windows.",
+ "Why do they need ".a_href('http://www.winsupersite.com/reviews/winserver2k3_gold2.asp','5,000 developers')
+ ." to write Microsoft Windows when it can be just a One Man Show?",
print <<"HERE";
+
+@{[ vskip "3ex" ]}
+
+<p class="stuff">
+ Why did I install Microsoft Windows and write such a disgusting piece of code?<br />
+ Expecting @{[ a_href $W->{"resume_url"},"yet another challenging task" ]}!
+</p>
+
@{[ vskip "3ex" ]}
+
<table border="1" align="center" style="text-align: center;" width="100%"><tr><th>Distribution</th>
<th>Installation Case #1<br />Filesystem and installer<br />(recommended)</th>
<th>Installation Case #2<br />Manual installation<br />(filesystem, expert user)</th>
3=>[qw(captive)],
);
my %reqpkg=(
- 1=>[qw(glib2 gnome-vfs2 ORBit2 libxml2 openssl popt libgnomeui)],
- 2=>[qw(glib2 gnome-vfs2 ORBit2 libxml2 openssl popt)],
- 3=>[qw(glib2 gnome-vfs2 ORBit2 libxml2 openssl popt readline)],
+ 1 =>[qw(glib2 gnome-vfs2 ORBit2 libxml2 openssl popt readline libgnomeui)],
+ 23=>[qw(glib2 gnome-vfs2 ORBit2 libxml2 openssl popt readline)],
);
my %version=(
map(($_=>["0.9.7","0"]),qw(captive captive-lufs captive-install)),
- "lufs"=>["0.9.6","1captive5"],
+ "lufs"=>["0.9.6","1captive6"],
"gnome-vfs-httpcaptive"=>["2.3.8captive2","0"],
"ntfsprogs"=>["200309071734","1captive1"],
"ntfsprogs-gnomevfs"=>["1.0.1","0"],
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 @dist=(
{
"name"=>"Red Hat 9<br />Shrike i386",
},
},
{
- "name"=>"Red Hat 8<br />Psyche i386",
+ "name"=>"Red Hat 8<br />Psyche i386<br />"
+ ."(".a_href("#libxml2_rh8","libxml2 upgrade note").")",
"out"=>sub {
my($pkg,$version_base,$version_ext)=@_;
my $file="$pkg-$version_base-$version_ext".(!$has_rh8{$pkg} ? "" : "rh8").".i386.rpm";
(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 libxml2-devel-2.5.4-1.i386.rpm)) {
+ for (@libxml2_rh8_pkgs) {
$r.="<br />".&$a_href_arch('ftp://ftp.redhat.com/pub/redhat/linux/9/en/os/i386/RedHat/RPMS/'.$_,$_)." of Red Hat 9";
}
}
}
print "</tr>\n";
}
-print <<'HERE';
+print "<tr style=\"height: 2ex;\"></tr>\n";
+print "<tr>";
+ print "<td>Package Requirements</td>";
+ for my $case (1,23) {
+ print "<td".($case==23 ? ' colspan="2"' : '').">";
+ print join(", ",map("<span class=\"reqpkg\">$_</span>",@{$reqpkg{$case}}));
+ print "</td>";
+ }
+print "</tr>\n";
+print <<"HERE";
</table>
-HERE
-print vskip "3ex";
+<blockquote>
+ <p><a name="libxml2_rh8"><b><i>Red Hat 8 Psyche</i> upgrade of <i>libxml2</i> package:</b></a>
+ Upgrade only the packages already installed on your system to prevent
+ many dependency requirements - do not use "<code>rpm -U</code>",
+ use "<code>rpm -F</code>" instead:</p>
+ <blockquote><p class="quote">
+ <code>rpm -F @{[ join(" ",@libxml2_rh8_pkgs) ]}</code>
+ </p></blockquote>
+</blockquote>
-print <<"HERE";
-<h1>Installation notes</h1>
+@{[ vskip "3ex" ]}
+
+
+<h1>Installation Notes</h1>
<p>You should first run <b>captive-install-acquire</b> command to check your
available Microsoft Windows drivers versions. Now you can execute:</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>
+<h2>Package Version Conflicts</h2>
<dl>
<dt>@{[ a_href 'http://linux-ntfs.sourceforge.net/','ntfsprogs' ]}</dt>
<dd><p><b>Original version >=200309071734 sufficient</b>:
-The package downloadable here has no code patches - you can freely use the
-original version instead. Unfortunately the last public release is
+The package which is downloadable from here, has no code patches - you can freely use the
+original version instead. Unfortunately, the last public release is
<b>1.7.1</b> while this project requires at least
@{[ a_href 'http://linux-ntfs.sourceforge.net/snapshots/','snapshot' ]} version
<b>@{[ a_href 'http://linux-ntfs.sourceforge.net/snapshots/ntfsprogs-200309071734.tar.bz2','200309071734' ]}</b>
</dl>
-<h2>LUFS kernel driver module</h2>
+<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. Binary driver is supplied already precompiled for many
+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>
Linux kernel version (<b>rpm -q kernel</b>) and re-run <span
class="quote">/usr/share/lufs/prepmod</span>.</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>
+
HERE
print rightimg <<"HERE",'reactos','ReactOS',"a_href"=>'http://www.reactos.com/';
<h2>The First Open Source MS-Windows Kernel API for Free OS</h2>
- <p>Compatibility with existing binary Microsoft Windows file system drivers was
+ <p>Compatibility with the existing binary Microsoft Windows file system drivers has been
reached. Microsoft Windows kernel system components required by these drivers
- were analyzed and successfuly emulated in the GNU/Linux operating system.
- Project brings Microsoft Windows kernel emulation framework to support even
- other types Microsoft Windows drivers in the future.
- <span class="productname">@{[ a_href 'http://www.reactos.com/','ReactOS' ]}</span>
- code base made a big asset for this functionality.</p>
+ were analyzed and successfully emulated in the GNU/Linux operating system.
+ The project brings the Microsoft Windows kernel emulation framework to support even
+ other types of Microsoft Windows drivers in the future.
+ The <span class="productname">@{[ a_href 'http://www.reactos.com/','ReactOS' ]}</span>
+ code base proved to be a big asset for this functionality.</p>
HERE
+my @lists=qw(captive-announce-list captive-list captive-devel-list);
+
print <<"HERE";
+<a name="lists"><h2>Mailing Lists</h2></a>
+
+<form action="@{[ top_dir("/Mailman.pl") ]}" method="post">
+ <table border="1" class="mailman" style="border-collapse: collapse; border-style: solid; border-width: 1px;">
+ <tr>@{[ map("<th>$_</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_sub"}}()."/listinfo/$_",'Mailman Infopage')."</td>"; } @lists) ]}</tr>
+ <tr>@{[ map({ "<td>".a_href(&{$W->{"pipermail_url_sub"}}()."/$_",'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="submit" name="email-button" value="Subscribe me" /></p>
+ </td></tr>
+ </table>
+<input type="hidden" name="back" value="/project/captive/#lists" />
+</form>
+
+
@{[ vskip "3ex" ]}
-<h1>See also</h1>
+<h1>See Also</h1>
<ul>
<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/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>
+ <li>@{[ a_href 'http://cvs.jankratochvil.net/viewcvs/*checkout*/captive/TODO?rev=HEAD','Known Bugs' ]}</li>
+ <li>Man Pages<ul>
@{[
do {
my @mans=(
<li>@{[ a_href 'Resources.html.pl','Related Pages' ]}</li>
<li>@{[ a_href 'Thanks.html.pl','Thanks' ]}</li>
</ul>
-
-@{[ vskip "3ex" ]}
-
-<p class="stuff">
- Why did I install Microsoft Windows and wrote such disgusting piece of code?<br />
- Expecting @{[ a_href $W->{"resume_url"},"yet another challenging task" ]}!
-</p>
HERE