+build-captive-static
[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                 "build-captive-static"=>"2003-12-14-00",
76                 );
77 my %has_devel=(map(($_=>1),qw(
78                 ntfsprogs
79                 )));
80 my %pkg_nosrc=(map(($_=>1),qw(
81                 captive-lufs
82                 captive-install
83                 ntfsprogs
84                 ntfsprogs-gnomevfs
85                 )));
86
87 my $case;
88 my $a_href_arch=sub ($$%)
89 {
90 my($file_base,$text,%args)=@_;
91
92         $text=~s/[._]\D.*$// if $case!=1 && $text!~/^[.]/;
93         return a_href $file_base,$text,"size"=>($case==1),%args;
94 };
95
96 my $ntfsprogs_after=sub ($) {
97         my($format)=@_;
98                 return () if $case!=1;
99                 return '<hr width="80%" />requirement: '
100                                 .a_href('http://linux-ntfs.sourceforge.net/downloads.html#downloads','ntfsprogs')
101                                 .' '.$format.' &ge; 1.8.0';
102         };
103
104 my @dist=(
105                 {
106                         "name"=>"Debian GNU/Linux<br />'unstable' i386",
107                         "id"=>"debian",
108                         "out"=>sub {
109                                 my($pkg,$version_base,$version_ext)=@_;
110                                         $version_ext=~s/^\d+//;
111                                         my $file="${pkg}_$version_base".($version_ext=~/^\d+$/ ? "" : $version_ext)."_i386.deb";
112                                         my $r=&$a_href_arch("dist/$file",$file);
113                                         (my $filedev=$file)=~s/^\Q$pkg\E_/${pkg}-dev_/;
114                                         $r.="<br />".&$a_href_arch("dist/$filedev",$filedev) if $has_devel{$pkg};
115                                         return $r;
116                                 },
117                         },
118                 {
119                         "name"=>"Sources (.tar.gz)",
120                         "id"=>"source",
121                         "out"=>sub {
122                                 my($pkg,$version_base,$version_ext)=@_;
123                                         return () if $pkg_nosrc{$pkg};
124                                         $version_ext=~s/^\d+//;
125                                         my $file="$pkg-$version_base".($version_ext=~/^\d+$/ ? "" : $version_ext).".tar.gz";
126                                         return $file,$file;
127                                 },
128                         "after"=>sub { return &{$ntfsprogs_after}(".tar.gz"); },
129                         },
130                 );
131
132 for my $dist (@dist) {
133         print "<a name=".$dist->{"id"}."><tr>";
134                 print "<td>".$dist->{"name"}."</td>";
135                 for my $casel (1,2,3) {
136                         $case=$casel;
137                         print "<td>";
138                         print join("<br />",map({ my $pkg=$_;
139                                 my($file,$text)=&{$dist->{"out"}}($pkg,@{$version{$pkg}});
140                                 (!defined $text ? ($file) || () : (&$a_href_arch("dist/$file",$text)));
141                                 } @{$pkg{$case}}),map({ (!$_ ? () : (&{$_}())); } $dist->{"after"}));
142                         print "</td>";
143                         }
144         print "</tr></a>\n";
145         }
146 print <<"HERE";
147         <tr>
148                 <td>'captive-static' build<br />system patches for Red Hat 9 Shrike<br />(never needed for a&nbsp;regular build)</td>
149                 <td colspan="3">
150 HERE
151 my $build_static_basename=(map("$_-".$version{$_}.".tar.gz","build-captive-static"))[0];
152 print a_href "dist/$build_static_basename",$build_static_basename;
153 print <<"HERE";
154                 </td>
155         </tr>
156 </table>
157
158 @{[ vskip "3ex" ]}
159
160
161 <h2>Pending Integrations</h2>
162
163 <dl>
164         <dt>@{[ a_href $W->{"project_viewcvs"}.'/lufs/','lufs-captive' ]}
165                         [@{[ a_href $W->{"project_viewcvs"}.'/*checkout*/lufs/NEWS.captive?rev=1.1.2.11','NEWS' ]}]
166         <dd>
167                 <p>@{[ a_href 'http://lufs.sourceforge.net/lufs/','LUFS' ]} still has not yet integrated
168                                 the Captive-developed patches. No integration schedule is currently known.</p>
169                 <ul>
170                         <li>Linux kernel module has implemented support for statfs(2)/df(1)</li>
171                         <li>Many fixes of the userland lufsd(8) daemon</li>
172                         <li>Scripts for unattended Linux kernel module prebuilds/compilation/installation</li>
173                 </ul>
174         </dd>
175         <dt>@{[ a_href $W->{"project_viewcvs"}.'/gnome-vfs-httpcaptive/?only_with_tag=captive','gnome-vfs-httpcaptive' ]}</dt>
176         <dd>
177                 <p>seek() function support for http:// handler was submitted as Gnome BugZilla
178                                 @{[ a_href 'http://bugzilla.gnome.org/show_bug.cgi?id=121194','Bug # 121194' ]}.
179                                 Bug is currently pending - vote for it, please. :-)</p>
180         </dd>
181         <dt>Debian ntfsprogs-200309071734-1captive1 (libntfs4/libntfs4-dev)</dt>
182         <dd>
183                 <p>Debian packaging is not yet up to date with the already released
184                                 @{[ a_href 'http://linux-ntfs.sourceforge.net/downloads.html#ntfs','version 1.8.0' ]}.</p>
185         </dd>
186         <dt>Debian @{[ a_href '/project/ntfsprogsgnomevfs/','ntfsprogs-gnomevfs' ]}</dt>
187         <dd>
188                 <p>Debian packaging is not yet up to date with the already released
189                                 @{[ a_href 'http://linux-ntfs.sourceforge.net/downloads.html#ntfs','version 1.8.0' ]}
190                                 containing the Captive-developed @{[ a_href '/project/ntfsprogsgnomevfs/','ntfsprogs-gnomevfs' ]} package.</p>
191         </dd>
192 </dl>
193
194
195 <h1>@{[ a_href './','Back to Captive Main Page' ]}</h1>
196
197 HERE
198
199
200 My::Web->footer();