360611ae4b26805ac62b50e261a0af92e03337cf
[www.jankratochvil.net.git] / project / captive / CVS.html.pl
1 #! /usr/bin/perl
2
3 # $Id$
4 # CVS page of 'My::Project::captive'
5 # Copyright (C) 2003 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
6
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; exactly version 2 of June 1991 is required
10
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
20
21 package project::captive::CVS;
22 require 5.6.0;  # at least 'use warnings;' but we need some 5.6.0+ modules anyway
23 our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
24 our $CVS_ID=q$Id$;
25 use strict;
26 use warnings;
27
28 BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,<F>)[0]]}; eval "use lib '$top_dir'"; close F; }
29 use My::Web;
30 Wuse 'My::Project';
31 Wuse 'project::captive::ListItem';
32
33
34 my $W=My::Project->init_project(
35                 "__PACKAGE__"=>__PACKAGE__,
36                 "ListItem"=>\@project::captive::ListItem::ListItem,
37                 "before_project_data"=>
38                                 '<h2 align="center">'.a_href('./','Captive Main Page').'</h2>'."\n",
39                 );
40
41
42 print <<"HERE";
43 <h2>CVS Checkout Instructions</h2>
44 <pre>
45 cvs -d :pserver:pserver@{[ '@' ]}cvs.jankratochvil.net:/cvs login
46         Just hit ENTER (empty password)
47 cvs -d :pserver:pserver@{[ '@' ]}cvs.jankratochvil.net:/cvs -z3 checkout captive
48 cd captive
49 cvs -d :pserver:pserver@{[ '@' ]}cvs.jankratochvil.net:/cvs -z3 checkout -r captive -kk reactos
50 ./autogen.pl
51 make
52 ./src/client/cmdline/captive-cmdline --load-module=/var/lib/captive/ntoskrnl.exe --filesystem=/var/lib/captive/ntfs.sys --disk --blind /dev/hda1
53 </pre>
54
55 @{[ vskip "3ex" ]}
56
57 <h2>Download</h2>
58
59 <table border="1" align="center" style="text-align: center;" width="100%"><tr><th>Distribution</th>
60                 <th>Installation Case #1<br />Filesystem and installer<br />(recommended)</th>
61                 <th>Installation Case #2<br />Manual installation<br />(filesystem, expert user)</th>
62                 <th>Installation Case #3<br />Command-line client<br />(no filesystem access)</th></tr>
63 HERE
64 my %pkg=(
65                 1=>[qw(captive captive-lufs captive-install lufs gnome-vfs-httpcaptive ntfsprogs ntfsprogs-gnomevfs)],
66                 2=>[qw(captive captive-lufs                 lufs)],
67                 3=>[qw(captive)],
68                 );
69 my %version=(
70                 map(($_=>["1.1.4","0"]),qw(captive captive-lufs captive-install)),
71                 "lufs"=>["0.9.7","1captive8"],
72                 "gnome-vfs-httpcaptive"=>["2.3.8captive2","0"],
73                 "ntfsprogs"=>["200309071734","1captive1"],
74                 "ntfsprogs-gnomevfs"=>["1.0.2","0"],
75                 );
76 my %has_devel=(map(($_=>1),qw(
77                 ntfsprogs
78                 )));
79 my %pkg_nosrc=(map(($_=>1),qw(
80                 captive-lufs
81                 captive-install
82                 ntfsprogs
83                 ntfsprogs-gnomevfs
84                 )));
85
86 my $case;
87 my $a_href_arch=sub ($$%)
88 {
89 my($file_base,$text,%args)=@_;
90
91         $text=~s/[._]\D.*$// if $case!=1 && $text!~/^[.]/;
92         return a_href $file_base,$text,"size"=>($case==1),%args;
93 };
94
95 my $ntfsprogs_after=sub ($) {
96         my($format)=@_;
97                 return () if $case!=1;
98                 return '<hr width="80%" />requirement: '
99                                 .a_href('http://linux-ntfs.sourceforge.net/downloads.html#downloads','ntfsprogs')
100                                 .' '.$format.' &ge; 1.8.0';
101         };
102
103 my @dist=(
104                 {
105                         "name"=>"Debian GNU/Linux<br />'unstable' i386",
106                         "id"=>"debian",
107                         "out"=>sub {
108                                 my($pkg,$version_base,$version_ext)=@_;
109                                         $version_ext=~s/^\d+//;
110                                         my $file="${pkg}_$version_base".($version_ext=~/^\d+$/ ? "" : $version_ext)."_i386.deb";
111                                         my $r=&$a_href_arch("dist/$file",$file);
112                                         (my $filedev=$file)=~s/^\Q$pkg\E_/${pkg}-dev_/;
113                                         $r.="<br />".&$a_href_arch("dist/$filedev",$filedev) if $has_devel{$pkg};
114                                         return $r;
115                                 },
116                         },
117                 {
118                         "name"=>"Sources (.tar.gz)",
119                         "id"=>"source",
120                         "out"=>sub {
121                                 my($pkg,$version_base,$version_ext)=@_;
122                                         return () if $pkg_nosrc{$pkg};
123                                         $version_ext=~s/^\d+//;
124                                         my $file="$pkg-$version_base".($version_ext=~/^\d+$/ ? "" : $version_ext).".tar.gz";
125                                         return $file,$file;
126                                 },
127                         "after"=>sub { return &{$ntfsprogs_after}(".tar.gz"); },
128                         },
129                 );
130
131 for my $dist (@dist) {
132         print "<a name=".$dist->{"id"}."><tr>";
133                 print "<td>".$dist->{"name"}."</td>";
134                 for my $casel (1,2,3) {
135                         $case=$casel;
136                         print "<td>";
137                         print join("<br />",map({ my $pkg=$_;
138                                 my($file,$text)=&{$dist->{"out"}}($pkg,@{$version{$pkg}});
139                                 (!defined $text ? ($file) || () : (&$a_href_arch("dist/$file",$text)));
140                                 } @{$pkg{$case}}),map({ (!$_ ? () : (&{$_}())); } $dist->{"after"}));
141                         print "</td>";
142                         }
143         print "</tr></a>\n";
144         }
145 print <<"HERE";
146 </table>
147
148 @{[ vskip "3ex" ]}
149
150
151 <h2>Pending Integrations</h2>
152
153 <dl>
154         <dt>@{[ a_href $W->{"project_viewcvs"}.'/lufs/','lufs-captive' ]}
155                         [@{[ a_href $W->{"project_viewcvs"}.'/*checkout*/lufs/NEWS.captive?rev=1.1.2.11','NEWS' ]}]
156         <dd>
157                 <p>@{[ a_href 'http://lufs.sourceforge.net/lufs/','LUFS' ]} still has not yet integrated
158                                 the Captive-developed patches. No integration schedule is currently known.</p>
159                 <ul>
160                         <li>Linux kernel module has implemented support for statfs(2)/df(1)</li>
161                         <li>Many fixes of the userland lufsd(8) daemon</li>
162                         <li>Scripts for unattended Linux kernel module prebuilds/compilation/installation</li>
163                 </ul>
164         </dd>
165         <dt>@{[ a_href $W->{"project_viewcvs"}.'/gnome-vfs-httpcaptive/?only_with_tag=captive','gnome-vfs-httpcaptive' ]}</dt>
166         <dd>
167                 <p>seek() function support for http:// handler was submitted as Gnome BugZilla
168                                 @{[ a_href 'http://bugzilla.gnome.org/show_bug.cgi?id=121194','Bug # 121194' ]}.
169                                 Bug is currently pending - vote for it, please. :-)</p>
170         </dd>
171         <dt>Debian ntfsprogs-200309071734-1captive1 (libntfs4/libntfs4-dev)</dt>
172         <dd>
173                 <p>Debian packaging is not yet up to date with the already released
174                                 @{[ a_href 'http://linux-ntfs.sourceforge.net/downloads.html#ntfs','version 1.8.0' ]}.</p>
175         </dd>
176         <dt>Debian @{[ a_href '/project/ntfsprogsgnomevfs/','ntfsprogs-gnomevfs' ]}</dt>
177         <dd>
178                 <p>Debian packaging is not yet up to date with the already released
179                                 @{[ a_href 'http://linux-ntfs.sourceforge.net/downloads.html#ntfs','version 1.8.0' ]}
180                                 containing the Captive-developed @{[ a_href '/project/ntfsprogsgnomevfs/','ntfsprogs-gnomevfs' ]} package.</p>
181         </dd>
182 </dl>
183
184
185 <h1>@{[ a_href './','Back to Captive Main Page' ]}</h1>
186
187 HERE
188
189
190 My::Web->footer();