From 886ab9c87febce040d1ccfb7b991212c49e2a080 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Sun, 6 Jan 2019 17:12:26 +0100 Subject: [PATCH] sync --- .htaccess | 62 ++- WebConfig.pm | 19 +- html-test.pl | 4 +- httpd.conf.pl | 12 +- pgp-JanKratochvil.txt | 426 ++++++++++++++++----- product/mms2/Index.pm | 3 +- project/AutoGen/Index.pm | 3 +- project/ChangeLog.pm | 6 +- project/FordFulk/FordFulk/.htaccess | 2 +- .../FordFulk/{FordFulk.shtml => FordFulk.html} | 0 project/Heat/Heat/.htaccess | 2 +- project/Heat/Heat/{Heat.shtml => Heat.html} | 0 project/Islet/Islet/.htaccess | 2 +- project/Islet/Islet/{Islet.shtml => Islet.html} | 0 project/Lib.pm | 16 +- project/MyWeb/Index.pm | 2 +- project/PerlMail/Index.pm | 3 +- project/TraceFS/Index.pm | 2 +- project/badblock_guess/Index.pm | 3 +- project/captive/Index.pm | 24 +- project/checkstatic/Index.pm | 3 +- project/cvsbranchdiff/Index.pm | 3 +- project/cvsutil/Index.pm | 3 +- project/energie/Index.pm | 2 +- project/fixhtml/Index.pm | 3 +- project/gsmperl/Index.pm | 2 +- project/harpy/Index.pm | 3 +- project/inetdmx/Index.pm | 3 +- project/int13sniff/Index.pm | 2 +- project/line9k/Index.pm | 3 +- project/lynxilla/Index.pm | 7 +- project/netdnsspoof/Index.pm | 3 +- project/oslik/oslik/.htaccess | 4 +- project/oslik/oslik/{index.shtml => index.html} | 8 +- project/postget/Index.pm | 8 +- project/ppp9k/Index.pm | 3 +- project/redirector_ad/Index.pm | 3 +- project/staticbuild/Index.pm | 2 +- project/tac_plus/Index.pm | 8 +- project/tcpoverudp/Index.pm | 3 +- project/xbelnormalize/Index.pm | 4 +- resume/ResumeJanKratochvil.pm | 13 +- resume/ResumeJanKratochvil.txt | 2 +- 43 files changed, 482 insertions(+), 204 deletions(-) rename project/FordFulk/FordFulk/{FordFulk.shtml => FordFulk.html} (100%) rename project/Heat/Heat/{Heat.shtml => Heat.html} (100%) rename project/Islet/Islet/{Islet.shtml => Islet.html} (100%) rename project/oslik/oslik/{index.shtml => index.html} (97%) diff --git a/.htaccess b/.htaccess index 97a08e3..1a88392 100644 --- a/.htaccess +++ b/.htaccess @@ -1,16 +1,23 @@ - DirectoryIndex _NOTEXISTS +# DirectoryIndex _NOTEXISTS IndexOptions NameWidth=* Options None - +# +# Options +Indexes # For "*.shtml" as "./project/Islet/Islet/Islet.shtml" etc. Options +Includes # Prevent: Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden Options +SymLinksIfOwnerMatch - +# +# + +# +# ExpiresActive On +# ExpiresDefault "access plus 1 hours" +# AddHandler server-parsed .shtml AddHandler cgi-script .cgi @@ -22,6 +29,7 @@ AddType "text/plain; charset=us-ascii" .asc AddType application/x-rpm .rpm AddType application/x-nokia-9000-communicator-add-on-software .aos AddType application/vnd.symbian.install .sis +AddType video/ogg .ogv RemoveEncoding .gz .Z .bz .bz2 .zip AddType application/x-gzip .gz @@ -29,6 +37,7 @@ AddType application/x-compress .Z AddType application/x-bzip .bz AddType application/x-bzip2 .bz2 AddType application/zip .zip +AddType video/webm .webm # Do not: text/javascript # as it does not look as registered, at least according to: MIME::Types $VERSION 1.15 @@ -43,6 +52,10 @@ AddType application/javascript .js +# RewriteRule ^(mailman|pipermail)(|/.*)$ http://host1.jankratochvil.net/$1$2?${unescape:%{QUERY_STRING}} [P,L] + #RewriteRule ^priv/(photo)(|/.*)$ http://www.jankratochvil.net/$1$2?${unescape:%{QUERY_STRING}} [R=301,L] + RewriteRule ^(priv/)?photo(|/.*)$ http://gallery.jankratochvil.net/$2?${unescape:%{QUERY_STRING}} [R=301,L] + RewriteRule ^priv/evelina(|/.*)$ http://gallery.jankratochvil.net/evelina$2?${unescape:%{QUERY_STRING}} [R=301,L] # Do not: [R=301] [L] # as any non-1st brackets' contents would get ignored! # Use always suffix: ?${unescape:%{QUERY_STRING}} @@ -50,19 +63,42 @@ AddType application/javascript .js # FIXME: Should be applied also for the "P" rules? # WARNING: Requires server/virtualhost definition: RewriteMap unescape int:unescape RewriteEngine on - RewriteRule ^kocky(|/.*)$ http://kocky.vellum.cz/$1?${unescape:%{QUERY_STRING}} [R=301,L] - RewriteRule ^(4cinfo|4c)(|/.*)$ http://4c.jankratochvil.net/$2?${unescape:%{QUERY_STRING}} [R=301,L] - RewriteRule ^sw(|/.*)$ http://%{SERVER_NAME}/project$1?${unescape:%{QUERY_STRING}} [R=301,L] - RewriteRule ^(project|product)s(|/.*)$ http://%{SERVER_NAME}/$1$2?${unescape:%{QUERY_STRING}} [R=301,L] - RewriteRule ^(mailman|pipermail|phorum|akra)(|/.*)$ http://www2.jankratochvil.net/$1$2?${unescape:%{QUERY_STRING}} [R=302,L] - + + # http://www.askapache.com/htaccess/http-https-rewriterule-redirect.html + RewriteCond %{HTTPS} =on + RewriteRule ^(.*)$ - [env=ps:https] + RewriteCond %{HTTPS} !=on + RewriteRule ^(.*)$ - [env=ps:http] + +# RewriteRule ^kocky(|/.*)$ http://kocky.vellum.cz/$1?${unescape:%{QUERY_STRING}} [R=301,L] +# RewriteRule ^(4cinfo|4c)(|/.*)$ http://4c.jankratochvil.net/$2?${unescape:%{QUERY_STRING}} [R=301,L] +# RewriteRule ^sw(|/.*)$ http://%{SERVER_NAME}/project$1?${unescape:%{QUERY_STRING}} [R=301,L] + # Referenced by resume/: + RewriteRule ^(project|product)s(|/.*)$ %{ENV:ps}://%{SERVER_NAME}/$1$2?${unescape:%{QUERY_STRING}} [R=301,L] + # |phorum + # mailman|pipermail +# RewriteRule ^(akra)(|/.*)$ http://www2.jankratochvil.net/$1$2?${unescape:%{QUERY_STRING}} [R=302,L] +# RewriteRule ^(akra2)(|/.*)$ http://vellum.cz/~akra$2?${unescape:%{QUERY_STRING}} [R=302,L] + # +# +# RewriteRule ^favicon[.]ico$ /My/Status.pm?code=404 [R=301,L] RewriteRule ^favicon[.]ico$ /My/Status.pm?code=404 [P,L] RewriteRule ^(.*)[.](html|txt)[.]pl(|/.*)$ /$1.pm$3?${unescape:%{QUERY_STRING}} [R=301,L] RewriteRule ^resume/Resume-JanKratochvil.pm(|/.*)$ /resume/ResumeJanKratochvil.pm$1?${unescape:%{QUERY_STRING}} [R=301,L] - RewriteRule ^(.*?)/+Index[.]pm$ /$1/?${unescape:%{QUERY_STRING}} [R=301,L] +# RewriteRule ^(.*?)/+Index[.]pm$ /$1/?${unescape:%{QUERY_STRING}} [R=301,L] RewriteCond %{REQUEST_FILENAME}/Index.pm -f # It may be "" for the root directory: - RewriteRule ^(|(.*?/)/*)$ http://localhost:7680/$2Index.pm [P,L] - RewriteRule ^(.*[.]pm(|/.*))$ http://localhost:7680/$1 [P,L] - +# RewriteRule ^(|(.*?/)/*)$ /$2Index.pm [R=301,L] + # Do not /$2Index.pm due to: SSL Proxy requested for www.jankratochvil.net:443 but not enabled [Hint: SSLProxyEngine] + # Do not: http://www.jankratochvil.net/$2Index.pm as the My::Web redirects would not detect HTTPS. + RewriteRule ^(|(.*?/)/*)$ /$2Index.pm [P,L] +# RewriteRule ^(|(.*?/)/*)$ http://localhost:7680/$2Index.pm [P,L] +# RewriteRule ^(.*[.]pm(|/.*))$ http://localhost:7680/$1 [P,L] +#RewriteCond %{REQUEST_URI} !^/*(thelaytons)(|/.*)$ +#RewriteRule ^/*(thelaytons)(|/.*)$ /${tolower:$1}$2 [NC,L,R=301] + # +# + RewriteRule ^/*cam$ http://host2/cgi-bin/motion-jpeg.cgi [P,L] + RewriteRule ^/*campng$ http://host2/cgi-bin/motion-png.cgi [P,L] + RewriteRule ^/*superb/*$ http://gallery.jankratochvil.net/z2015-11-23-superb-crash/x/ [R=301,L] diff --git a/WebConfig.pm b/WebConfig.pm index d4ef2b0..514da55 100644 --- a/WebConfig.pm +++ b/WebConfig.pm @@ -48,15 +48,18 @@ our %WebConfig=( || $name eq "lace"; return escapeHTML($name); }, - "viewcvs_My"=>"http://cvs.jankratochvil.net/viewcvs/MyWeb/", - "viewcvs"=>"http://cvs.jankratochvil.net/viewcvs/www/www.jankratochvil.net/", +# "viewcvs_My"=>"http://cvs.jankratochvil.net/viewcvs/MyWeb/", +# "viewcvs"=>"http://cvs.jankratochvil.net/viewcvs/www/www.jankratochvil.net/", + "viewcvs_My"=>"http://git.jankratochvil.net/?p=MyWeb.git;a=blob;hb=HEAD;f=", + "viewcvs"=>"http://git.jankratochvil.net/?p=www.jankratochvil.net.git;a=blob;hb=HEAD;f=", "title_prefix"=>"Jan Kratochvil", - "project_viewcvs"=>"http://cvs.jankratochvil.net/viewcvs/", - "pserver"=>':pserver:pserver:@cvs.jankratochvil.net', - "pserver_path"=>"/cvs", +# "project_viewcvs"=>"http://cvs.jankratochvil.net/viewcvs/", + "project_viewcvs"=>"http://git.jankratochvil.net/", +# "pserver"=>':pserver:pserver:@cvs.jankratochvil.net', +# "pserver_path"=>"/cvs", "resume_url"=>$resume_url, - "mailman_url" =>sub { return "http://".$My::Web::W->{"web_hostname"}."/mailman/"; }, - "pipermail_url"=>sub { return "http://".$My::Web::W->{"web_hostname"}."/pipermail/"; }, +# "mailman_url" =>sub { return "http://".$My::Web::W->{"web_hostname"}."/mailman/"; }, +# "pipermail_url"=>sub { return "http://".("www2.jankratochvil.net"||$My::Web::W->{"web_hostname"})."/pipermail/"; }, "heading"=>sub () { my $r=""; $r.=''."\n"; @@ -78,7 +81,7 @@ our %WebConfig=( my @sections=( "/project/"=>"Projects", "/product/"=>"Products", - "http://cvs.jankratochvil.net/"=>"CVS", + "http://git.jankratochvil.net/"=>"GIT", # "/News.pm"=>"News", $resume_url=>"Resume", "/Contact.pm"=>"Contact", diff --git a/html-test.pl b/html-test.pl index 043ad5d..4f86344 100755 --- a/html-test.pl +++ b/html-test.pl @@ -15,7 +15,8 @@ use Sys::Hostname::Long; use URI::Escape; -my $URL_BASE="http://".hostname_long().":7680"; +#my $URL_BASE="http://".hostname_long().":7680"; +my $URL_BASE="http://www.jankratochvil.net"; my $URL_VALIDATOR_BASE="http://validator.w3.org/check?uri="; my $URL_VALIDATOR_BASE_LOCAL="http://localhost/cgi-bin/check.cgi?uri="; @@ -61,6 +62,7 @@ for (0,($opt_validate ? 1 : ())) { if ($validate) { $url=($opt_local ? $URL_VALIDATOR_BASE_LOCAL : $URL_VALIDATOR_BASE).uri_escape($url); } +$url=~s{\Q/Index.pm\E$}{/}; my $request=HTTP::Request->new("GET",$url); $request->header("Cache-control"=>"no-cache"); # Do not: ...->request(...); diff --git a/httpd.conf.pl b/httpd.conf.pl index 7746866..82eaa6a 100755 --- a/httpd.conf.pl +++ b/httpd.conf.pl @@ -23,11 +23,11 @@ print <<'HERE'; $SIG{"__DIE__" }=sub { $_[0]=~/\n./ ? die @_ : confess @_; }; - - Order Allow,Deny - Deny from all - HERE +# +# Order Allow,Deny +# Deny from all +# My::ModPerlPm->list("sub"=>sub { @@ -38,10 +38,10 @@ PerlModule @{[ $p->{"module"} ]} {"url"} ]}"> SetHandler modperl PerlResponseHandler @{[ $p->{"module"} ]} - Order Deny,Allow - Allow from localhost HERE +# Order Deny,Allow +# Allow from localhost }); print <<"HERE"; diff --git a/pgp-JanKratochvil.txt b/pgp-JanKratochvil.txt index cca579a..0f60fde 100644 --- a/pgp-JanKratochvil.txt +++ b/pgp-JanKratochvil.txt @@ -1,95 +1,337 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.7 (GNU/Linux) +Version: GnuPG v1 -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 -=keh6 +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 +7XfUvDESSfXsVjyxOLca/L2dWFPldfAkglwGXw== +=RGAT -----END PGP PUBLIC KEY BLOCK----- diff --git a/product/mms2/Index.pm b/product/mms2/Index.pm index 7e628a0..e78ae5d 100644 --- a/product/mms2/Index.pm +++ b/product/mms2/Index.pm @@ -52,7 +52,8 @@ my $ListItem=product::Lib->name_to_hashref("mms2"); my %www_mms2_site=( "CZ"=>"www.mms2.cz", "SK"=>"www.mms2.cz", - ""=>"www.mms2.org", + ""=>"www.mms2.cz", +# ""=>"www.mms2.org", ); my $www_mms2_site=text_cc \%www_mms2_site; $_="http://$_/" for values(%www_mms2_site); diff --git a/project/AutoGen/Index.pm b/project/AutoGen/Index.pm index a08cbfa..04ebfa1 100644 --- a/project/AutoGen/Index.pm +++ b/project/AutoGen/Index.pm @@ -33,8 +33,7 @@ our @ListItem=( "priority"=>540, "cvs"=>"macros", "link-Documentation"=>'/project/Pod2Html.pm?cvs=macros/AutoGen.pm', - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "link-Source file"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/macros/AutoGen.pm?rev=HEAD", + "link-Source file"=>'http://git.jankratochvil.net/?p=macros.git;a=blob_plain;hb=HEAD;f=AutoGen.pm', "summary"=>"autogen.sh while supporting CVS/.rpm/.deb", "license"=>"GPL", "maintenance"=>"active", diff --git a/project/ChangeLog.pm b/project/ChangeLog.pm index 4cae2ac..a5aa3b4 100755 --- a/project/ChangeLog.pm +++ b/project/ChangeLog.pm @@ -44,7 +44,11 @@ My::Web->heading(); local *F; open F,"" - ."cvs -n -q -d ".$W->{"pserver"}.":".$W->{"pserver_path"}." rlog ".$W->{"args"}{"cvs"} + +#pserver: +# ."cvs -n -q -d ".$W->{"pserver"}.":".$W->{"pserver_path"}." rlog ".$W->{"args"}{"cvs"} + ."cvs -n -q -d "."/home/lace/pserver/cvs"." rlog ".$W->{"args"}{"cvs"} + ." |perl -p -e 's#^RCS file: ".$W->{"pserver_path"}.'/(.*?)(?:/Attic/|/)?([^/]*),v$#$&\nWorking file: $1/$2#;'."'" ." |cvs2cl --stdin --stdout --window 3600 --separate-header --no-wrap --usermap ".path_abs_disk("/cvs2cl-usermap") ." |"; diff --git a/project/FordFulk/FordFulk/.htaccess b/project/FordFulk/FordFulk/.htaccess index e1931a8..6242464 100644 --- a/project/FordFulk/FordFulk/.htaccess +++ b/project/FordFulk/FordFulk/.htaccess @@ -1 +1 @@ -DirectoryIndex FordFulk.shtml +DirectoryIndex FordFulk.html diff --git a/project/FordFulk/FordFulk/FordFulk.shtml b/project/FordFulk/FordFulk/FordFulk.html similarity index 100% rename from project/FordFulk/FordFulk/FordFulk.shtml rename to project/FordFulk/FordFulk/FordFulk.html diff --git a/project/Heat/Heat/.htaccess b/project/Heat/Heat/.htaccess index d53f6ce..d11412f 100644 --- a/project/Heat/Heat/.htaccess +++ b/project/Heat/Heat/.htaccess @@ -1 +1 @@ -DirectoryIndex Heat.shtml +DirectoryIndex Heat.html diff --git a/project/Heat/Heat/Heat.shtml b/project/Heat/Heat/Heat.html similarity index 100% rename from project/Heat/Heat/Heat.shtml rename to project/Heat/Heat/Heat.html diff --git a/project/Islet/Islet/.htaccess b/project/Islet/Islet/.htaccess index 1e0cfba..882af6d 100644 --- a/project/Islet/Islet/.htaccess +++ b/project/Islet/Islet/.htaccess @@ -1 +1 @@ -DirectoryIndex Islet.shtml +DirectoryIndex Islet.html diff --git a/project/Islet/Islet/Islet.shtml b/project/Islet/Islet/Islet.html similarity index 100% rename from project/Islet/Islet/Islet.shtml rename to project/Islet/Islet/Islet.html diff --git a/project/Lib.pm b/project/Lib.pm index 6041704..e439ece 100644 --- a/project/Lib.pm +++ b/project/Lib.pm @@ -99,7 +99,7 @@ my($class,$ListItem)=@_; {"key"=>qr(^cvs\b),"text"=>sub ($) { $_[0]=~s/^cvs//; $_[0]=~s/^-/ /; - return "CVS".$_[0]; + return "GIT".$_[0]; }, "format"=>sub ($$) { my($val,$key)=@_; @@ -115,11 +115,15 @@ my($class,$ListItem)=@_; # ." $val"), join(" | \n\t\t", map({ a_href($_->[1],$_->[0]); } - ["ViewCVS CVS repository",$W->{"project_viewcvs"}.$val."/".(!$branch ? "" : '?only_with_tag='.$branch)], - ["Download CVS snapshot" , - $W->{"project_viewcvs"}.$val."/".File::Basename::basename($val).".tar.gz?tarball=1" - .(!$branch ? "" : '&only_with_tag='.$branch)], - ["CVS ChangeLog" ,"/project/ChangeLog.pm?cvs=$val"]))); +# ["ViewCVS CVS repository",$W->{"project_viewcvs"}.$val."/".(!$branch ? "" : '?only_with_tag='.$branch)], +# ["Download CVS snapshot" , +# $W->{"project_viewcvs"}.$val."/".File::Basename::basename($val).".tar.gz?tarball=1" +# .(!$branch ? "" : '&only_with_tag='.$branch)], +##FIXME: ["CVS ChangeLog" ,"/project/ChangeLog.pm?cvs=$val"] + ["GIT repository",$W->{"project_viewcvs"}."?p=$val.git;a=tree".(!$branch ? "" : ";hb=$branch")], + ["Download GIT snapshot",$W->{"project_viewcvs"}."?p=$val.git;a=snapshot;sf=tgz;h=".(!$branch ? "HEAD" : "$branch")], + ["GIT shortlog",$W->{"project_viewcvs"}."?p=$val.git;a=shortlog".(!$branch ? "" : ";h=refs/heads/$branch")] + ))); }}, {"key"=>"ownership","text"=>"Ownership"}, {"key"=>"sponsorship","text"=>"Sponsorship"}, diff --git a/project/MyWeb/Index.pm b/project/MyWeb/Index.pm index 87f203d..e9e5f80 100644 --- a/project/MyWeb/Index.pm +++ b/project/MyWeb/Index.pm @@ -32,7 +32,7 @@ our @ListItem=( "platform"=>"web", "priority"=>250, "cvs"=>"MyWeb", - "cvs-of example web"=>"www/www.jankratochvil.net", + "cvs-of a sample web"=>"www.jankratochvil.net", "link-Example web"=>sub { return a_href('http://www.jankratochvil.net/'); }, "summary"=>sub { return a_href('http://www.perl.org/','Perl')." web framework"; }, "license"=>"GPL", diff --git a/project/PerlMail/Index.pm b/project/PerlMail/Index.pm index a25cf62..11b9d84 100644 --- a/project/PerlMail/Index.pm +++ b/project/PerlMail/Index.pm @@ -32,8 +32,7 @@ our @ListItem=( "platform"=>"unixuser", "priority"=>640, "cvs"=>"PerlMail", - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "link-README"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/PerlMail/README?rev=HEAD", + "link-README"=>'http://git.jankratochvil.net/?p=PerlMail.git;a=blob_plain;hb=HEAD;f=README', "summary"=>sub { return "Perl mail processor - ".a_href('http://www.procmail.org/','procmail')."(1) successor"; }, "license"=>"GPL", "maintenance"=>"ready", diff --git a/project/TraceFS/Index.pm b/project/TraceFS/Index.pm index 154f63c..277524a 100644 --- a/project/TraceFS/Index.pm +++ b/project/TraceFS/Index.pm @@ -32,7 +32,7 @@ our @ListItem=( "platform"=>"w32", "priority"=>610, "icon"=>"TraceFS-icon.png", - "cvs"=>"captive/src/TraceFS", + "link-GIT subtree"=>'http://git.jankratochvil.net/?p=captive.git;a=tree;f=src/TraceFS', "link-Documentation"=>"/project/captive/doc/CacheManager.pm#TraceFS", "summary"=>"Microsoft Windows Kernel API Tracer", "license"=>"GPL", diff --git a/project/badblock_guess/Index.pm b/project/badblock_guess/Index.pm index aab774e..3eafa9e 100644 --- a/project/badblock_guess/Index.pm +++ b/project/badblock_guess/Index.pm @@ -35,8 +35,7 @@ our @ListItem=( "download-compiled static binary"=>"badblock-guess", "download-gzipped compiled static binary"=>"badblock-guess.gz", "cvs"=>"badblock-guess", - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "link-README"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/badblock-guess/README?rev=HEAD", + "link-README"=>'http://git.jankratochvil.net/?p=badblock-guess.git;a=blob_plain;hb=HEAD;f=README', "summary"=>"Data recovery from a damaged disk", "license"=>"GPL", "maintenance"=>"ready", diff --git a/project/captive/Index.pm b/project/captive/Index.pm index 81e3c0d..b3f44b2 100755 --- a/project/captive/Index.pm +++ b/project/captive/Index.pm @@ -270,17 +270,21 @@ print <<"HERE";

Mailing Lists

-

The mailing list were closed. You can only access their archive.

- -
- @{[ map('',@lists) ]} - - - - - @{[ map({ ""; } @lists) ]} -
'.$_.'@jankratochvil.net
New version announcementsUser support,
bug reports
Development
".a_href($W->{"pipermail_url"}."$_",'Archive')."
+

The mailing list were closed.

+HERE +#

The mailing list were closed. You can only access their archive.

+# +# +# @{[ map('',@lists) ]} +# +# +# +# +# @{[ map({ ""; } @lists) ]} +#
'.$_.'@jankratochvil.net
New version announcementsUser support,
bug reports
Development
".a_href($W->{"pipermail_url"}."$_",'Archive')."
+ +print <<"HERE"; @{[ vskip "3ex" ]} diff --git a/project/checkstatic/Index.pm b/project/checkstatic/Index.pm index 6d36dd0..35ed9c7 100644 --- a/project/checkstatic/Index.pm +++ b/project/checkstatic/Index.pm @@ -31,8 +31,7 @@ our @ListItem=( "name"=>"checkstatic", "platform"=>"unixdevel", "priority"=>510, - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "download"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/nethome/bin/checkstatic?rev=HEAD", + "download"=>'http://git.jankratochvil.net/?p=nethome.git;a=blob_plain;hb=HEAD;f=bin/checkstatic', "summary"=>"C sources symbol attributes checker", "license"=>"PD", "maintenance"=>"ready", diff --git a/project/cvsbranchdiff/Index.pm b/project/cvsbranchdiff/Index.pm index 3b00ead..111567f 100644 --- a/project/cvsbranchdiff/Index.pm +++ b/project/cvsbranchdiff/Index.pm @@ -31,8 +31,7 @@ our @ListItem=( "name"=>"cvsbranchdiff", "platform"=>"unixdevel", "priority"=>490, - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "download"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/nethome/bin/cvsbranchdiff?rev=HEAD", + "download"=>'http://git.jankratochvil.net/?p=nethome.git;a=blob_plain;hb=HEAD;f=bin/cvsbranchdiff', "summary"=>"CVS Branching Utility", "license"=>"PD", "maintenance"=>"ready", diff --git a/project/cvsutil/Index.pm b/project/cvsutil/Index.pm index a380ebb..ae40547 100644 --- a/project/cvsutil/Index.pm +++ b/project/cvsutil/Index.pm @@ -33,8 +33,7 @@ our @ListItem=( "name"=>"cvsutil", "platform"=>"unixdevel", "priority"=>500, - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "download"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/nethome/bin/cvsutil?rev=HEAD", + "download"=>'http://git.jankratochvil.net/?p=nethome.git;a=blob_plain;hb=HEAD;f=bin/cvsutil', "summary"=>"Clean CVS checkout working files or safely change CVS/Root", "license"=>"PD", "maintenance"=>"merge", diff --git a/project/energie/Index.pm b/project/energie/Index.pm index f562f0c..995cb0d 100644 --- a/project/energie/Index.pm +++ b/project/energie/Index.pm @@ -31,7 +31,7 @@ our @ListItem=( "name"=>"PHP Web", "platform"=>"web", "priority"=>240, - "cvs"=>"www/www.energie.vellum.cz", + "cvs"=>"www.energie.vellum.cz", "link-Example web"=>sub { return a_href('http://www.energie.vellum.cz/'); }, "summary"=>sub { return a_href('http://www.php.net/','PHP')." web framework"; }, "license"=>"GPL", diff --git a/project/fixhtml/Index.pm b/project/fixhtml/Index.pm index b74f7c2..094454b 100644 --- a/project/fixhtml/Index.pm +++ b/project/fixhtml/Index.pm @@ -32,8 +32,7 @@ our @ListItem=( "platform"=>"unixuser", "trivia"=>1, "priority"=>20, - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "link-Source file"=>'http://cvs.jankratochvil.net/viewcvs/'."nethome/bin/fixhtml?rev=HEAD", + "link-Source file"=>'http://git.jankratochvil.net/?p=nethome.git;a=blob_plain;hb=HEAD;f=bin/fixhtml', "summary"=>"Convert HTML files URLs to relative ones", "license"=>"PD", "maintenance"=>sub { diff --git a/project/gsmperl/Index.pm b/project/gsmperl/Index.pm index 19b905a..07d210f 100644 --- a/project/gsmperl/Index.pm +++ b/project/gsmperl/Index.pm @@ -31,7 +31,7 @@ our @ListItem=( "name"=>sub { return a_href('http://www.tektonica.com/projects/gsmsms/','GSM::SMS').' patch'; }, "platform"=>"patch", "priority"=>520, - "cvs"=>"gsmperl/GSM:lace", + "cvs"=>"gsmperl:lace", "summary"=>sub { return 'Extension of '.a_href('http://www.tektonica.com/projects/gsmsms/','GSM::SMS').' for EMS+Alcatel'; }, diff --git a/project/harpy/Index.pm b/project/harpy/Index.pm index e1ec273..620c3fa 100644 --- a/project/harpy/Index.pm +++ b/project/harpy/Index.pm @@ -33,8 +33,7 @@ our @ListItem=( "platform"=>"unixuser", "priority"=>486, "cvs"=>"harpy", - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "link-Source file"=>'http://cvs.jankratochvil.net/viewcvs/'."harpy/harpy?rev=HEAD", + "link-Source file"=>'http://git.jankratochvil.net/?p=harpy.git;a=blob_plain;hb=HEAD;f=harpy', "summary"=>"ARP spoofer of nonexisting ethernet addresses", "license"=>"GPL", "maintenance"=>"ready", diff --git a/project/inetdmx/Index.pm b/project/inetdmx/Index.pm index 4232519..f2052b8 100644 --- a/project/inetdmx/Index.pm +++ b/project/inetdmx/Index.pm @@ -33,8 +33,7 @@ our @ListItem=( "platform"=>"unixuser", "priority"=>435, "cvs"=>"inetdmx", - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "link-Source file"=>'http://cvs.jankratochvil.net/viewcvs/'."inetdmx/inetdmx.c?rev=HEAD", + "link-Source file"=>'http://git.jankratochvil.net/?p=inetdmx.git;a=blob_plain;hb=HEAD;f=inetdmx.c', "summary"=>"xinetd(8)/inetd(8) on-demand servers multiplexor", "license"=>"GPL", "maintenance"=>"ready", diff --git a/project/int13sniff/Index.pm b/project/int13sniff/Index.pm index 8a87556..e5292c2 100644 --- a/project/int13sniff/Index.pm +++ b/project/int13sniff/Index.pm @@ -33,7 +33,7 @@ our @ListItem=( "priority"=>370, "icon"=>"int13sniff-icon.png", "summary"=>'Trace PC bootloader disk operations', - "download-source"=>'http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/surprise/surprise/misc/int13sniff.S?rev=HEAD', + "download-source"=>'http://surprise.cvs.sourceforge.net/viewvc/surprise/surprise/misc/int13sniff.S?content-type=text/plain', "download-gzip(1)ped floppy image head"=>'int13sniff.bin.gz', "link-parent Surprise project"=>"/project/surprise/", "license"=>"GPL", diff --git a/project/line9k/Index.pm b/project/line9k/Index.pm index 4d09723..ab2186c 100644 --- a/project/line9k/Index.pm +++ b/project/line9k/Index.pm @@ -32,8 +32,7 @@ our @ListItem=( "platform"=>"unixuser", "priority"=>420, "icon"=>"charger-icon.jpeg", - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "download"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/nethome/bin/line9k?rev=HEAD", + "download"=>'http://git.jankratochvil.net/?p=nethome.git;a=blob_plain;hb=HEAD;f=bin/line9k', "summary"=>"Modem / Nokia 9110 GSM data gateway control, charger", "license"=>"PD", "maintenance"=>"ready", diff --git a/project/lynxilla/Index.pm b/project/lynxilla/Index.pm index 39721ad..7edab7f 100644 --- a/project/lynxilla/Index.pm +++ b/project/lynxilla/Index.pm @@ -32,21 +32,20 @@ our @ListItem=( "platform"=>"web", "trivia"=>1, "priority"=>460, - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "download"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/nethome/.userContent.css?rev=HEAD", + "download"=>'http://git.jankratochvil.net/?p=nethome.git;a=blob_plain;hb=HEAD;f=.userContent.css', "summary"=>sub { return a_href('http://lynx.isc.org/','Lynx').' look&feel with ' .a_href('http://www.mozilla.org/','Mozilla').' web compatibility'; }, "license"=>"PD", - "maintenance"=>"ready", + "maintenance"=>"dead-Gecko is no longer capable of .userContent.css processing", "language"=>"CSS", "description"=>sub { return <<"HERE"; },

@{[ a_href 'http://lynx.isc.org/','Lynx' ]} brings unified colors and fonts of all web pages. Unfortunately it is not the one of those two browsers respected by broken websites. To get back the unified look and feel of all the web pages while retaining the web compatibility you can override CSS settings of your @{[ a_href 'http://www.mozilla.org/','Mozilla' ]} by placing -@{[ a_href 'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/nethome/.userContent.css?rev=HEAD", +@{[ a_href 'http://dyn.jankratochvil.net/nethome/'.".userContent.css?rev=HEAD", 'userContent.css' ]} as your local file: @{[ '$HOME/.mozilla/$USER/*/chrome/userContent.css' ]}

HERE diff --git a/project/netdnsspoof/Index.pm b/project/netdnsspoof/Index.pm index 7a58a86..45eed69 100644 --- a/project/netdnsspoof/Index.pm +++ b/project/netdnsspoof/Index.pm @@ -33,8 +33,7 @@ our @ListItem=( "platform"=>"unixuser", "priority"=>483, "cvs"=>"netdnsspoof", - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "link-Source file"=>'http://cvs.jankratochvil.net/viewcvs/'."netdnsspoof/netdnsspoof?rev=HEAD", + "link-Source file"=>'http://git.jankratochvil.net/?p=netdnsspoof.git;a=blob_plain;hb=HEAD;f=netdnsspoof', "summary"=>"Network DNS proxy spoofing any nonexisting names", "license"=>"GPL", "maintenance"=>"ready", diff --git a/project/oslik/oslik/.htaccess b/project/oslik/oslik/.htaccess index 86849bf..8557a82 100644 --- a/project/oslik/oslik/.htaccess +++ b/project/oslik/oslik/.htaccess @@ -1,3 +1,3 @@ -DirectoryIndex index.shtml -AddType "text/html; charset=iso-8859-2" .shtml +DirectoryIndex index.html +AddType "text/html; charset=iso-8859-2" .html #SourceCzechCodePageLocal CISO8859-2 diff --git a/project/oslik/oslik/index.shtml b/project/oslik/oslik/index.html similarity index 97% rename from project/oslik/oslik/index.shtml rename to project/oslik/oslik/index.html index 79da9e5..2eb58e8 100644 --- a/project/oslik/oslik/index.shtml +++ b/project/oslik/oslik/index.html @@ -5,10 +5,10 @@

Pou¾itý software:

Jako interpretr prologu jsem pou¾il -SWI-Prolog, +SWI-Prolog, který je dodáván s vcelku pøijatelnými licenèními podmínkami (a zdrojové kódy jsou souèástí). Pøikládám krátký patch, aby -SWI-Prolog +SWI-Prolog nepoèítal percentuální podíly funkcí pøi profilování a vypnutí automatického garbage collectoru.

Díval jsem se také na BinProlog, ale zdrojové @@ -186,7 +186,7 @@ predik - +
Datum:30. 12. 1998
Autor:Jan Kratochvíl
Kontakt:e-mail short@ucw.cz
Kontakt:e-mail web@jankratochvil.net
Licence:Public domain

Tento software je poskytnut bez jakýchkoliv záruk a autor nenese ¾ádnou zodpovìdnost diff --git a/project/postget/Index.pm b/project/postget/Index.pm index 1612228..34794e1 100644 --- a/project/postget/Index.pm +++ b/project/postget/Index.pm @@ -32,8 +32,8 @@ our @ListItem=( "platform"=>"web", "trivia"=>1, "priority"=>380, - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "download"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/nethome/WWW/cgi-bin/postget.php?rev=HEAD", +# "download"=>'http://git.jankratochvil.net/?p=nethome.git;a=blob_plain;hb=HEAD;f=WWW/cgi-bin/postget.php', + "download"=>"postget.php", "summary"=>sub { return "Bookmark ".a_href('http://www.w3.org/TR/html4/interact/forms.html#h-17.13.1','POST') .' forms, hide passwords'; @@ -65,12 +65,12 @@ print <<"HERE";

HERE diff --git a/project/tcpoverudp/Index.pm b/project/tcpoverudp/Index.pm index 540ee40..c84c811 100644 --- a/project/tcpoverudp/Index.pm +++ b/project/tcpoverudp/Index.pm @@ -33,8 +33,7 @@ our @ListItem=( "platform"=>"unixuser", "priority"=>555, "cvs"=>"tcpoverudp", - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "link-Source file"=>'http://cvs.jankratochvil.net/viewcvs/'."tcpoverudp/tcpoverudp?rev=HEAD", + "link-Source file"=>'http://git.jankratochvil.net/?p=tcpoverudp.git;a=blob_plain;hb=HEAD;f=tcpoverudp', "summary"=>"Forward TCP connections over UDP without root", "license"=>"GPL", "maintenance"=>"ready", diff --git a/project/xbelnormalize/Index.pm b/project/xbelnormalize/Index.pm index bf6f98e..a23f293 100644 --- a/project/xbelnormalize/Index.pm +++ b/project/xbelnormalize/Index.pm @@ -32,9 +32,7 @@ our @ListItem=( "name"=>"xbelnormalize", "platform"=>"unixuser", "priority"=>585, - "cvs"=>"nethome/bin/xbelnormalize", - # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} - "link-Source file"=>'http://cvs.jankratochvil.net/viewcvs/'."nethome/bin/xbelnormalize?rev=HEAD", + "link-Source file"=>'http://git.jankratochvil.net/?p=nethome.git;a=blob_plain;hb=HEAD;f=bin/xbelnormalize', "summary"=>"Bookmarks .xbel file normalizator", "license"=>"GPL", "maintenance"=>"ready", diff --git a/resume/ResumeJanKratochvil.pm b/resume/ResumeJanKratochvil.pm index 363310b..134c8fa 100644 --- a/resume/ResumeJanKratochvil.pm +++ b/resume/ResumeJanKratochvil.pm @@ -25,7 +25,6 @@ use strict; use warnings; use My::Web; -require Crypt::Rot13; Wrequire 'project::Lib'; Wrequire 'product::Lib'; @@ -46,7 +45,7 @@ my($self)=@_; a_href('/resume/ResumeJanKratochvil.pdf','PDF'), a_href('/resume/ResumeJanKratochvil.txt','text'), )." ]", - "OpenPGP" =>a_href('/pgp-JanKratochvil.txt','4D2089DB'), + "OpenPGP" =>a_href('/pgp-JanKratochvil.txt','1F0D6D7B'), ); } @@ -129,9 +128,8 @@ my($mail,$fullname)=@_; $r.=''; $r.=$fullname; if (lc($W->{"args"}{"referees"}) eq "referees") { - my $rot13=Crypt::Rot13->new(); - $rot13->charge($mail); - $mail=($rot13->rot13())[0]; + # &Crypt::Rot13::rot13 + $mail=~tr/a-zA-Z/n-za-mN-ZA-M/; $r.=' <'.a_href("mailto:$mail").'>'; } $r.=''; @@ -168,7 +166,8 @@ print <<"HERE"; @{[ vskip "2ex" ]} -

Not looking for a new job.

+@{[ #

Not looking for a new job.

+]} @{[ vskip "2ex" ]} @@ -338,7 +337,7 @@ print <<"HERE"; Protocols GSM SMS/PDU/Nokia Smart Messaging/EMS/WAP/WTP/WSP/MMSE/SMIL/WML/AMR/ETSI stds/3GPP stds, IPv4, HTTP, SMTP/RFC822/MIME, FTP, SSH, DHCP, POP3, IMAP4, NFS v2/v3, PPP/LCP/IPCP,... Filesystems ext2, FAT, AmigaFFS, ISO-9660 -Certificates @{[ a_href('https://www.redhat.com/wapps/training/certification/verify.html?certNumber=805008572734652','RHCE') ]} +Certificates @{[ a_href('https://www.redhat.com/rhtapps/certification/verify/?certId=110-518-099','RHCE 110-518-099') ]} @{[ vskip "2ex" ]} diff --git a/resume/ResumeJanKratochvil.txt b/resume/ResumeJanKratochvil.txt index cf40aa5..99a7559 100644 --- a/resume/ResumeJanKratochvil.txt +++ b/resume/ResumeJanKratochvil.txt @@ -154,7 +154,7 @@ Protocols: Filesystems: ext2, FAT, AmigaFFS, ISO-9660 Certificates: - RHCE 805008572734652 + RHCE 110-518-099 $Id$ -- 1.8.3.1