From 19c5ad8e26ac320516b8427c416a9195ce4fea48 Mon Sep 17 00:00:00 2001 From: short <> Date: Sun, 21 Aug 2005 07:27:56 +0000 Subject: [PATCH] Initial mod_perl-2.0 port. --- .htaccess | 85 +++-- Contact.css | 22 ++ Contact.html.pl => Contact.pm | 45 ++- Index.html.pl => Index.pm | 23 +- Mailman.pl => Mailman.pm | 14 +- Makefile-head.am | 32 +- Makefile.am | 30 +- Redirect.pl => Redirect.pm | 20 +- SendMsg.pl | 59 ---- WebConfig.pm | 104 +++--- autogen.pl | 2 + configure.ac | 19 +- etmms/{Index.html.pl => Index.pm} | 30 +- etmms/Makefile.am | 4 +- have_js.js.pl => have_js.pm | 18 +- html-test.pl | 70 ++++ httpd.conf.pl | 50 +++ project/332/{Index.html.pl => Index.pm} | 34 +- project/332/ListItem.pm | 49 --- project/332/Makefile.am | 6 +- project/AutoGen/Index.html.pl | 39 --- project/AutoGen/{ListItem.pm => Index.pm} | 17 +- project/AutoGen/Makefile.am | 6 +- project/CasioA/Index.html.pl | 47 --- project/CasioA/{ListItem.pm => Index.pm} | 25 +- project/CasioA/Makefile.am | 8 +- project/{ChangeLog.txt.pl => ChangeLog.pm} | 23 +- project/FordFulk/Index.html.pl | 51 --- project/FordFulk/{ListItem.pm => Index.pm} | 27 +- project/FordFulk/Makefile.am | 6 +- project/Heat/Index.html.pl | 51 --- project/Heat/{ListItem.pm => Index.pm} | 27 +- project/Heat/Makefile.am | 6 +- project/{Index.html.pl => Index.pm} | 29 +- project/Islet/Index.html.pl | 49 --- project/Islet/{ListItem.pm => Index.pm} | 25 +- project/Islet/Makefile.am | 6 +- project/LaserGame/Index.html.pl | 47 --- project/LaserGame/{ListItem.pm => Index.pm} | 25 +- project/LaserGame/Makefile.am | 8 +- project/Lib.css | 20 ++ project/Lib.pm | 383 +++++++++++++++++++++ project/{List.html.pl => List.pm} | 34 +- project/Makefile.am | 18 +- project/MyWeb/Index.html.pl | 39 --- project/MyWeb/{ListItem.pm => Index.pm} | 20 +- project/MyWeb/Makefile.am | 6 +- project/Nokia61/Index.html.pl | 55 --- project/Nokia61/{ListItem.pm => Index.pm} | 33 +- project/Nokia61/Makefile.am | 10 +- project/PerlMail/Index.html.pl | 57 --- project/PerlMail/{ListItem.pm => Index.pm} | 37 +- project/PerlMail/Makefile.am | 6 +- project/{Pod2Html.html.pl => Pod2Html.pm} | 20 +- project/PortDiag/Index.html.pl | 43 --- project/PortDiag/{ListItem.pm => Index.pm} | 21 +- project/PortDiag/Makefile.am | 8 +- project/QueryDev/Index.html.pl | 39 --- project/QueryDev/{ListItem.pm => Index.pm} | 16 +- project/QueryDev/Makefile.am | 6 +- project/{Rel.pl => Rel.pm} | 32 +- project/ResRAM/Index.html.pl | 39 --- project/ResRAM/{ListItem.pm => Index.pm} | 14 +- project/ResRAM/Makefile.am | 6 +- project/SClock/Index.html.pl | 39 --- project/SClock/{ListItem.pm => Index.pm} | 16 +- project/SClock/Makefile.am | 6 +- project/ShortRel/Index.html.pl | 39 --- project/ShortRel/{ListItem.pm => Index.pm} | 16 +- project/ShortRel/Makefile.am | 10 +- project/TraceFS/Index.html.pl | 47 --- project/TraceFS/{ListItem.pm => Index.pm} | 25 +- project/TraceFS/Makefile.am | 6 +- project/badblock_guess/Index.html.pl | 51 --- project/badblock_guess/{ListItem.pm => Index.pm} | 27 +- project/badblock_guess/Makefile.am | 6 +- project/captive/{CVS.html.pl => CVS.pm} | 57 +-- project/captive/Index.css | 26 ++ project/captive/{Index.html.pl => Index.pm} | 204 +++++------ project/captive/Lib.css | 20 ++ project/captive/ListItem.pm | 64 ---- project/captive/Makefile.am | 16 +- project/captive/{Press.html.pl => Press.pm} | 24 +- project/captive/Preview.css | 21 ++ project/captive/{Preview.html.pl => Preview.pm} | 38 +- .../captive/{Resources.html.pl => Resources.pm} | 16 +- ...unoSantos.html.pl => TestimonialBrunoSantos.pm} | 23 +- project/captive/{Thanks.html.pl => Thanks.pm} | 23 +- .../captive/doc/{APITypes.html.pl => APITypes.pm} | 130 +++---- project/captive/doc/{About.html.pl => About.pm} | 27 +- .../doc/{Architecture.html.pl => Architecture.pm} | 34 +- .../doc/{CacheManager.html.pl => CacheManager.pm} | 46 +-- .../captive/doc/{CallType.html.pl => CallType.pm} | 46 +-- .../doc/{Components.html.pl => Components.pm} | 43 +-- .../captive/doc/{Details.html.pl => Details.pm} | 90 ++--- project/captive/doc/Index.html.pl | 164 --------- project/captive/doc/Index.pm | 164 +++++++++ .../doc/{LinuxNTFS.html.pl => LinuxNTFS.pm} | 16 +- project/captive/doc/Macros.css | 29 ++ project/captive/doc/Macros.pm | 116 +++---- project/captive/doc/Makefile.am | 17 +- .../captive/doc/{Related.html.pl => Related.pm} | 38 +- .../captive/doc/{Reverse.html.pl => Reverse.pm} | 26 +- project/captive/doc/{TODO.html.pl => TODO.pm} | 24 +- project/checkstatic/Index.html.pl | 39 --- project/checkstatic/{ListItem.pm => Index.pm} | 16 +- project/checkstatic/Makefile.am | 6 +- project/cvsbranchdiff/Index.html.pl | 39 --- project/cvsbranchdiff/{ListItem.pm => Index.pm} | 16 +- project/cvsbranchdiff/Makefile.am | 6 +- project/cvsutil/Index.html.pl | 47 --- project/cvsutil/{ListItem.pm => Index.pm} | 19 +- project/cvsutil/Makefile.am | 6 +- project/d1xnet/Index.html.pl | 39 --- project/d1xnet/{ListItem.pm => Index.pm} | 22 +- project/d1xnet/Makefile.am | 6 +- project/doswatch/Index.html.pl | 39 --- project/doswatch/{ListItem.pm => Index.pm} | 18 +- project/doswatch/Makefile.am | 6 +- project/energie/Index.html.pl | 39 --- project/energie/{ListItem.pm => Index.pm} | 26 +- project/energie/Makefile.am | 6 +- project/etherealmmse/Index.html.pl | 39 --- project/etherealmmse/{ListItem.pm => Index.pm} | 20 +- project/etherealmmse/Makefile.am | 6 +- project/etherealwsp/Index.html.pl | 39 --- project/etherealwsp/{ListItem.pm => Index.pm} | 20 +- project/etherealwsp/Makefile.am | 6 +- project/fixhtml/{Index.html.pl => Index.pm} | 33 +- project/fixhtml/ListItem.pm | 47 --- project/fixhtml/Makefile.am | 6 +- project/gladewsrc/Index.html.pl | 46 --- project/gladewsrc/{ListItem.pm => Index.pm} | 28 +- project/gladewsrc/Makefile.am | 6 +- project/gsmperl/Index.html.pl | 39 --- project/gsmperl/{ListItem.pm => Index.pm} | 27 +- project/gsmperl/Makefile.am | 6 +- project/int13sniff/Index.html.pl | 43 --- project/int13sniff/{ListItem.pm => Index.pm} | 21 +- project/int13sniff/Makefile.am | 6 +- project/ircon/{Index.html.pl => Index.pm} | 43 ++- project/ircon/ListItem.pm | 51 --- project/ircon/Makefile.am | 6 +- project/kewensis/Index.html.pl | 49 --- project/kewensis/{ListItem.pm => Index.pm} | 31 +- project/kewensis/Makefile.am | 6 +- project/kix/{Index.html.pl => Index.pm} | 30 +- project/kix/ListItem.pm | 46 --- project/kix/Makefile.am | 6 +- project/kware/Index.html.pl | 47 --- project/kware/{ListItem.pm => Index.pm} | 28 +- project/kware/Makefile.am | 6 +- project/libtool/{Index.html.pl => Index.pm} | 30 +- project/libtool/ListItem.pm | 46 --- project/libtool/Makefile.am | 6 +- project/libxml2reader/Index.html.pl | 45 --- project/libxml2reader/{ListItem.pm => Index.pm} | 23 +- project/libxml2reader/Makefile.am | 6 +- project/line9k/Index.html.pl | 52 --- project/line9k/{ListItem.pm => Index.pm} | 28 +- project/line9k/Makefile.am | 14 +- project/lynxilla/Index.html.pl | 39 --- project/lynxilla/{ListItem.pm => Index.pm} | 24 +- project/lynxilla/Makefile.am | 6 +- project/mdsms/Index.html.pl | 49 --- project/mdsms/{ListItem.pm => Index.pm} | 37 +- project/mdsms/Makefile.am | 6 +- project/middleman/Index.html.pl | 39 --- project/middleman/{ListItem.pm => Index.pm} | 29 +- project/middleman/Makefile.am | 6 +- project/mod_auth_tacacs/Index.html.pl | 39 --- project/mod_auth_tacacs/{ListItem.pm => Index.pm} | 30 +- project/mod_auth_tacacs/Makefile.am | 6 +- project/mot2as/Index.html.pl | 47 --- project/mot2as/{ListItem.pm => Index.pm} | 25 +- project/mot2as/Makefile.am | 6 +- project/muttsort/Index.html.pl | 45 --- project/muttsort/{ListItem.pm => Index.pm} | 25 +- project/muttsort/Makefile.am | 6 +- project/netstat/{Index.html.pl => Index.pm} | 37 +- project/netstat/ListItem.pm | 48 --- project/netstat/Makefile.am | 6 +- project/ntfsprogsgnomevfs/Index.html.pl | 46 --- .../ntfsprogsgnomevfs/{ListItem.pm => Index.pm} | 36 +- project/ntfsprogsgnomevfs/Makefile.am | 6 +- project/oslik/Index.html.pl | 43 --- project/oslik/{ListItem.pm => Index.pm} | 21 +- project/oslik/Makefile.am | 6 +- project/patchd2/Index.html.pl | 39 --- project/patchd2/{ListItem.pm => Index.pm} | 22 +- project/patchd2/Makefile.am | 6 +- project/pgsqlsubstr/Index.html.pl | 46 --- project/pgsqlsubstr/{ListItem.pm => Index.pm} | 24 +- project/pgsqlsubstr/Makefile.am | 6 +- project/phphash/Index.html.pl | 39 --- project/phphash/{ListItem.pm => Index.pm} | 18 +- project/phphash/Makefile.am | 6 +- project/pipebuf/Index.html.pl | 48 --- project/pipebuf/{ListItem.pm => Index.pm} | 24 +- project/pipebuf/Makefile.am | 6 +- project/postget/{Index.html.pl => Index.pm} | 45 ++- project/postget/ListItem.pm | 57 --- project/postget/Makefile.am | 6 +- project/ppp9k/Index.html.pl | 39 --- project/ppp9k/{ListItem.pm => Index.pm} | 28 +- project/ppp9k/Makefile.am | 6 +- project/redirector_ad/Index.html.pl | 39 --- project/redirector_ad/{ListItem.pm => Index.pm} | 18 +- project/redirector_ad/Makefile.am | 6 +- project/smbfs/{Index.html.pl => Index.pm} | 31 +- project/smbfs/ListItem.pm | 47 --- project/smbfs/Makefile.am | 6 +- project/sshpatch/Index.html.pl | 53 --- project/sshpatch/{ListItem.pm => Index.pm} | 37 +- project/sshpatch/Makefile.am | 6 +- project/ssht/{Index.html.pl => Index.pm} | 41 ++- project/ssht/ListItem.pm | 51 --- project/ssht/Makefile.am | 6 +- project/step/Index.html.pl | 39 --- project/step/{ListItem.pm => Index.pm} | 18 +- project/step/Makefile.am | 6 +- project/surprise/Index.html.pl | 43 --- project/surprise/{ListItem.pm => Index.pm} | 25 +- project/surprise/Makefile.am | 6 +- project/tac_plus/{Index.html.pl => Index.pm} | 43 ++- project/tac_plus/ListItem.pm | 55 --- project/tac_plus/Makefile.am | 6 +- project/tcp_rto/{Index.html.pl => Index.pm} | 39 ++- project/tcp_rto/ListItem.pm | 49 --- project/tcp_rto/Makefile.am | 6 +- project/tcpdump/{Index.html.pl => Index.pm} | 33 +- project/tcpdump/ListItem.pm | 47 --- project/tcpdump/Makefile.am | 6 +- project/timeplan/Index.html.pl | 39 --- project/timeplan/{ListItem.pm => Index.pm} | 16 +- project/timeplan/Makefile.am | 6 +- project/udpgate/Index.html.pl | 39 --- project/udpgate/{ListItem.pm => Index.pm} | 16 +- project/udpgate/Makefile.am | 6 +- project/vblib/Index.html.pl | 39 --- project/vblib/{ListItem.pm => Index.pm} | 16 +- project/vblib/Makefile.am | 6 +- project/wayback/Index.html.pl | 39 --- project/wayback/{ListItem.pm => Index.pm} | 18 +- project/wayback/Makefile.am | 6 +- project/winvnc/{Index.html.pl => Index.pm} | 56 ++- project/winvnc/ListItem.pm | 56 --- project/winvnc/Makefile.am | 6 +- project/wllib/Index.html.pl | 39 --- project/wllib/{ListItem.pm => Index.pm} | 16 +- project/wllib/Makefile.am | 6 +- project/xbill/Index.html.pl | 48 --- project/xbill/{ListItem.pm => Index.pm} | 28 +- project/xbill/Makefile.am | 6 +- resume/.htaccess | 4 +- resume/Makefile.am | 14 +- resume/ResumeJanKratochvil.css | 28 ++ ...e-JanKratochvil.pdf => ResumeJanKratochvil.pdf} | Bin 46813 -> 46813 bytes ...anKratochvil.html.pl => ResumeJanKratochvil.pm} | 98 +++--- ...e-JanKratochvil.tex => ResumeJanKratochvil.tex} | 0 ...e-JanKratochvil.txt => ResumeJanKratochvil.txt} | 0 robots.txt | 2 +- 262 files changed, 3248 insertions(+), 4807 deletions(-) create mode 100644 Contact.css rename Contact.html.pl => Contact.pm (53%) mode change 100755 => 100644 rename Index.html.pl => Index.pm (70%) mode change 100755 => 100644 rename Mailman.pl => Mailman.pm (84%) mode change 100755 => 100644 rename Redirect.pl => Redirect.pm (73%) mode change 100755 => 100644 delete mode 100755 SendMsg.pl rename etmms/{Index.html.pl => Index.pm} (91%) mode change 100755 => 100644 rename have_js.js.pl => have_js.pm (85%) mode change 100755 => 100644 create mode 100755 html-test.pl create mode 100755 httpd.conf.pl rename project/332/{Index.html.pl => Index.pm} (75%) mode change 100755 => 100644 delete mode 100755 project/332/ListItem.pm delete mode 100755 project/AutoGen/Index.html.pl rename project/AutoGen/{ListItem.pm => Index.pm} (86%) mode change 100755 => 100644 delete mode 100755 project/CasioA/Index.html.pl rename project/CasioA/{ListItem.pm => Index.pm} (79%) mode change 100755 => 100644 rename project/{ChangeLog.txt.pl => ChangeLog.pm} (77%) delete mode 100755 project/FordFulk/Index.html.pl rename project/FordFulk/{ListItem.pm => Index.pm} (73%) mode change 100755 => 100644 delete mode 100755 project/Heat/Index.html.pl rename project/Heat/{ListItem.pm => Index.pm} (74%) mode change 100755 => 100644 rename project/{Index.html.pl => Index.pm} (74%) delete mode 100755 project/Islet/Index.html.pl rename project/Islet/{ListItem.pm => Index.pm} (74%) mode change 100755 => 100644 delete mode 100755 project/LaserGame/Index.html.pl rename project/LaserGame/{ListItem.pm => Index.pm} (80%) mode change 100755 => 100644 create mode 100644 project/Lib.css create mode 100644 project/Lib.pm rename project/{List.html.pl => List.pm} (84%) delete mode 100755 project/MyWeb/Index.html.pl rename project/MyWeb/{ListItem.pm => Index.pm} (77%) mode change 100755 => 100644 delete mode 100755 project/Nokia61/Index.html.pl rename project/Nokia61/{ListItem.pm => Index.pm} (69%) mode change 100755 => 100644 delete mode 100755 project/PerlMail/Index.html.pl rename project/PerlMail/{ListItem.pm => Index.pm} (60%) mode change 100755 => 100644 rename project/{Pod2Html.html.pl => Pod2Html.pm} (79%) delete mode 100755 project/PortDiag/Index.html.pl rename project/PortDiag/{ListItem.pm => Index.pm} (82%) mode change 100755 => 100644 delete mode 100755 project/QueryDev/Index.html.pl rename project/QueryDev/{ListItem.pm => Index.pm} (86%) mode change 100755 => 100644 rename project/{Rel.pl => Rel.pm} (75%) delete mode 100755 project/ResRAM/Index.html.pl rename project/ResRAM/{ListItem.pm => Index.pm} (91%) mode change 100755 => 100644 delete mode 100755 project/SClock/Index.html.pl rename project/SClock/{ListItem.pm => Index.pm} (86%) mode change 100755 => 100644 delete mode 100755 project/ShortRel/Index.html.pl rename project/ShortRel/{ListItem.pm => Index.pm} (87%) mode change 100755 => 100644 delete mode 100755 project/TraceFS/Index.html.pl rename project/TraceFS/{ListItem.pm => Index.pm} (76%) mode change 100755 => 100644 delete mode 100755 project/badblock_guess/Index.html.pl rename project/badblock_guess/{ListItem.pm => Index.pm} (69%) mode change 100755 => 100644 rename project/captive/{CVS.html.pl => CVS.pm} (79%) create mode 100644 project/captive/Index.css rename project/captive/{Index.html.pl => Index.pm} (69%) create mode 100644 project/captive/Lib.css delete mode 100755 project/captive/ListItem.pm rename project/captive/{Press.html.pl => Press.pm} (92%) create mode 100644 project/captive/Preview.css rename project/captive/{Preview.html.pl => Preview.pm} (72%) rename project/captive/{Resources.html.pl => Resources.pm} (90%) rename project/captive/{TestimonialBrunoSantos.html.pl => TestimonialBrunoSantos.pm} (90%) rename project/captive/{Thanks.html.pl => Thanks.pm} (88%) rename project/captive/doc/{APITypes.html.pl => APITypes.pm} (83%) rename project/captive/doc/{About.html.pl => About.pm} (88%) rename project/captive/doc/{Architecture.html.pl => Architecture.pm} (91%) rename project/captive/doc/{CacheManager.html.pl => CacheManager.pm} (91%) rename project/captive/doc/{CallType.html.pl => CallType.pm} (86%) rename project/captive/doc/{Components.html.pl => Components.pm} (89%) rename project/captive/doc/{Details.html.pl => Details.pm} (87%) delete mode 100755 project/captive/doc/Index.html.pl create mode 100755 project/captive/doc/Index.pm rename project/captive/doc/{LinuxNTFS.html.pl => LinuxNTFS.pm} (89%) create mode 100644 project/captive/doc/Macros.css rename project/captive/doc/{Related.html.pl => Related.pm} (80%) rename project/captive/doc/{Reverse.html.pl => Reverse.pm} (90%) rename project/captive/doc/{TODO.html.pl => TODO.pm} (85%) delete mode 100755 project/checkstatic/Index.html.pl rename project/checkstatic/{ListItem.pm => Index.pm} (86%) mode change 100755 => 100644 delete mode 100755 project/cvsbranchdiff/Index.html.pl rename project/cvsbranchdiff/{ListItem.pm => Index.pm} (85%) mode change 100755 => 100644 delete mode 100755 project/cvsutil/Index.html.pl rename project/cvsutil/{ListItem.pm => Index.pm} (81%) mode change 100755 => 100644 delete mode 100755 project/d1xnet/Index.html.pl rename project/d1xnet/{ListItem.pm => Index.pm} (74%) mode change 100755 => 100644 delete mode 100755 project/doswatch/Index.html.pl rename project/doswatch/{ListItem.pm => Index.pm} (86%) mode change 100755 => 100644 delete mode 100755 project/energie/Index.html.pl rename project/energie/{ListItem.pm => Index.pm} (67%) mode change 100755 => 100644 delete mode 100755 project/etherealmmse/Index.html.pl rename project/etherealmmse/{ListItem.pm => Index.pm} (77%) mode change 100755 => 100644 delete mode 100755 project/etherealwsp/Index.html.pl rename project/etherealwsp/{ListItem.pm => Index.pm} (75%) mode change 100755 => 100644 rename project/fixhtml/{Index.html.pl => Index.pm} (66%) mode change 100755 => 100644 delete mode 100755 project/fixhtml/ListItem.pm delete mode 100755 project/gladewsrc/Index.html.pl rename project/gladewsrc/{ListItem.pm => Index.pm} (71%) mode change 100755 => 100644 delete mode 100755 project/gsmperl/Index.html.pl rename project/gsmperl/{ListItem.pm => Index.pm} (68%) mode change 100755 => 100644 delete mode 100755 project/int13sniff/Index.html.pl rename project/int13sniff/{ListItem.pm => Index.pm} (80%) mode change 100755 => 100644 rename project/ircon/{Index.html.pl => Index.pm} (71%) mode change 100755 => 100644 delete mode 100755 project/ircon/ListItem.pm delete mode 100755 project/kewensis/Index.html.pl rename project/kewensis/{ListItem.pm => Index.pm} (67%) mode change 100755 => 100644 rename project/kix/{Index.html.pl => Index.pm} (70%) mode change 100755 => 100644 delete mode 100755 project/kix/ListItem.pm delete mode 100755 project/kware/Index.html.pl rename project/kware/{ListItem.pm => Index.pm} (74%) mode change 100755 => 100644 rename project/libtool/{Index.html.pl => Index.pm} (76%) mode change 100755 => 100644 delete mode 100755 project/libtool/ListItem.pm delete mode 100755 project/libxml2reader/Index.html.pl rename project/libxml2reader/{ListItem.pm => Index.pm} (78%) mode change 100755 => 100644 delete mode 100755 project/line9k/Index.html.pl rename project/line9k/{ListItem.pm => Index.pm} (68%) mode change 100755 => 100644 delete mode 100755 project/lynxilla/Index.html.pl rename project/lynxilla/{ListItem.pm => Index.pm} (80%) mode change 100755 => 100644 delete mode 100755 project/mdsms/Index.html.pl rename project/mdsms/{ListItem.pm => Index.pm} (73%) mode change 100755 => 100644 delete mode 100755 project/middleman/Index.html.pl rename project/middleman/{ListItem.pm => Index.pm} (61%) mode change 100755 => 100644 delete mode 100755 project/mod_auth_tacacs/Index.html.pl rename project/mod_auth_tacacs/{ListItem.pm => Index.pm} (64%) mode change 100755 => 100644 delete mode 100755 project/mot2as/Index.html.pl rename project/mot2as/{ListItem.pm => Index.pm} (71%) mode change 100755 => 100644 delete mode 100755 project/muttsort/Index.html.pl rename project/muttsort/{ListItem.pm => Index.pm} (75%) mode change 100755 => 100644 rename project/netstat/{Index.html.pl => Index.pm} (67%) mode change 100755 => 100644 delete mode 100755 project/netstat/ListItem.pm delete mode 100755 project/ntfsprogsgnomevfs/Index.html.pl rename project/ntfsprogsgnomevfs/{ListItem.pm => Index.pm} (61%) mode change 100755 => 100644 delete mode 100755 project/oslik/Index.html.pl rename project/oslik/{ListItem.pm => Index.pm} (80%) mode change 100755 => 100644 delete mode 100755 project/patchd2/Index.html.pl rename project/patchd2/{ListItem.pm => Index.pm} (72%) mode change 100755 => 100644 delete mode 100755 project/pgsqlsubstr/Index.html.pl rename project/pgsqlsubstr/{ListItem.pm => Index.pm} (76%) mode change 100755 => 100644 delete mode 100755 project/phphash/Index.html.pl rename project/phphash/{ListItem.pm => Index.pm} (81%) mode change 100755 => 100644 delete mode 100755 project/pipebuf/Index.html.pl rename project/pipebuf/{ListItem.pm => Index.pm} (71%) mode change 100755 => 100644 rename project/postget/{Index.html.pl => Index.pm} (61%) mode change 100755 => 100644 delete mode 100755 project/postget/ListItem.pm delete mode 100755 project/ppp9k/Index.html.pl rename project/ppp9k/{ListItem.pm => Index.pm} (76%) mode change 100755 => 100644 delete mode 100755 project/redirector_ad/Index.html.pl rename project/redirector_ad/{ListItem.pm => Index.pm} (80%) mode change 100755 => 100644 rename project/smbfs/{Index.html.pl => Index.pm} (73%) mode change 100755 => 100644 delete mode 100755 project/smbfs/ListItem.pm delete mode 100755 project/sshpatch/Index.html.pl rename project/sshpatch/{ListItem.pm => Index.pm} (63%) mode change 100755 => 100644 rename project/ssht/{Index.html.pl => Index.pm} (67%) mode change 100755 => 100644 delete mode 100755 project/ssht/ListItem.pm delete mode 100755 project/step/Index.html.pl rename project/step/{ListItem.pm => Index.pm} (83%) mode change 100755 => 100644 delete mode 100755 project/surprise/Index.html.pl rename project/surprise/{ListItem.pm => Index.pm} (83%) mode change 100755 => 100644 rename project/tac_plus/{Index.html.pl => Index.pm} (61%) mode change 100755 => 100644 delete mode 100755 project/tac_plus/ListItem.pm rename project/tcp_rto/{Index.html.pl => Index.pm} (64%) mode change 100755 => 100644 delete mode 100755 project/tcp_rto/ListItem.pm rename project/tcpdump/{Index.html.pl => Index.pm} (72%) mode change 100755 => 100644 delete mode 100755 project/tcpdump/ListItem.pm delete mode 100755 project/timeplan/Index.html.pl rename project/timeplan/{ListItem.pm => Index.pm} (86%) mode change 100755 => 100644 delete mode 100755 project/udpgate/Index.html.pl rename project/udpgate/{ListItem.pm => Index.pm} (87%) mode change 100755 => 100644 delete mode 100755 project/vblib/Index.html.pl rename project/vblib/{ListItem.pm => Index.pm} (86%) mode change 100755 => 100644 delete mode 100755 project/wayback/Index.html.pl rename project/wayback/{ListItem.pm => Index.pm} (84%) mode change 100755 => 100644 rename project/winvnc/{Index.html.pl => Index.pm} (68%) mode change 100755 => 100644 delete mode 100755 project/winvnc/ListItem.pm delete mode 100755 project/wllib/Index.html.pl rename project/wllib/{ListItem.pm => Index.pm} (89%) mode change 100755 => 100644 delete mode 100755 project/xbill/Index.html.pl rename project/xbill/{ListItem.pm => Index.pm} (72%) create mode 100644 resume/ResumeJanKratochvil.css rename resume/{Resume-JanKratochvil.pdf => ResumeJanKratochvil.pdf} (89%) rename resume/{Resume-JanKratochvil.html.pl => ResumeJanKratochvil.pm} (85%) mode change 100755 => 100644 rename resume/{Resume-JanKratochvil.tex => ResumeJanKratochvil.tex} (100%) rename resume/{Resume-JanKratochvil.txt => ResumeJanKratochvil.txt} (100%) diff --git a/.htaccess b/.htaccess index 131b503..77c69b2 100644 --- a/.htaccess +++ b/.htaccess @@ -1,60 +1,53 @@ -DirectoryIndex Index.html.pl + + 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 + -AddType text/html .shtml AddHandler server-parsed .shtml +AddHandler cgi-script .cgi + AddType "text/html; charset=us-ascii" .html AddType "text/html; charset=us-ascii" .shtml AddType "text/plain; charset=us-ascii" .txt AddType "text/plain; charset=us-ascii" .asc -Options Indexes Includes FollowSymLinks - - RemoveEncoding .gz .Z .bz .bz2 .zip - AddType application/x-gzip .gz - AddType application/x-compress .Z - AddType application/x-bzip .bz - AddType application/x-bzip2 .bz2 - AddType application/zip .zip - - -AddHandler cgi-script .cgi -IndexOptions NameWidth=* AddType application/x-rpm .rpm AddType application/x-nokia-9000-communicator-add-on-software .aos - + +RemoveEncoding .gz .Z .bz .bz2 .zip +AddType application/x-gzip .gz +AddType application/x-compress .Z +AddType application/x-bzip .bz +AddType application/x-bzip2 .bz2 +AddType application/zip .zip + + php_flag short_open_tag off php_flag magic_quotes_gpc off php_flag magic_quotes_runtime off - - RewriteEngine on - RewriteRule ^(/home/short/www/www.jankratochvil.net/)?kocky/*(.*)$ http://kocky.vellum.cz/$2 [R=301] [L] - - - RewriteEngine on - RewriteRule ^(/home/short/www/www.jankratochvil.net/)?(4cinfo|4c)/*(.*)$ http://4c.jankratochvil.net/$3 [R=301] [L] - - - RewriteEngine on - # $1 $2$3 $4 - RewriteRule ^(/home/short/www/www.jankratochvil.net/)?cgi/viewcvs(/(.*))?([?].*)?$ http://cvs.jankratochvil.net/viewcvs/$3$4 [R=301] [L] - RewriteRule ^(/home/short/www/www.jankratochvil.net/)?cgi/*(.*)$ http://www.jankratochvil.net/cgi-bin/$2 [R=301] [L] - - + + # Do not: [R=301] [L] + # as any non-1st brackets' contents would get ignored! RewriteEngine on - RewriteRule ^(/home/short/www/www.jankratochvil.net/)?sw/*(.*)$ http://www.jankratochvil.net/project/ [R=301] [L] - - - RewriteEngine on - RewriteRule ^(/home/short/www/www.jankratochvil.net/)?projects/*(.*)$ http://www.jankratochvil.net/project/$2 [R=301] [L] - - - - - RewriteEngine on - RewriteRule ^.*?/www[.]jankratochvil[.]net/(.*)$ http://localhost:7680/$1 [P] - - - - Options +ExecCGI - + RewriteRule ^kocky(|/.*)$ http://kocky.vellum.cz/$1 [R=301,L] + RewriteRule ^(4cinfo|4c)(|/.*)$ http://4c.jankratochvil.net/$2 [R=301,L] + RewriteRule ^sw(|/.*)$ http://%{SERVER_NAME}/project$1 [R=301,L] + RewriteRule ^projects(|/.*)$ http://%{SERVER_NAME}/project$1 [R=301,L] + + RewriteRule ^(.*)[.]html[.]pl$ http://%{SERVER_NAME}/$1.pm [R=301,L] + RewriteRule ^(.*?)/+Index[.]pm$ http://%{SERVER_NAME}/$1/ [R=301,L] + RewriteCond %{REQUEST_FILENAME}/Index.pm -f + RewriteRule ^(.*?)/+$ http://localhost:7680/$1/Index.pm [P,L] + RewriteRule ^(.*[.]pm)$ http://localhost:7680/$1 [P,L] + + diff --git a/Contact.css b/Contact.css new file mode 100644 index 0000000..2a6409a --- /dev/null +++ b/Contact.css @@ -0,0 +1,22 @@ +/* $Id$ + * CSS of Contact page + * Copyright (C) 2003-2005 Jan Kratochvil + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; exactly version 2 of June 1991 is required + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +table.contact td { vertical-align: top; } +table.contact { border-collapse: collapse; border-style: solid; border-width: 1px; margin: 8px; } +table.contact A[href] { text-decoration: inherit; /* revoke underline */ } diff --git a/Contact.html.pl b/Contact.pm old mode 100755 new mode 100644 similarity index 53% rename from Contact.html.pl rename to Contact.pm index a6d6a22..0a5c947 --- a/Contact.html.pl +++ b/Contact.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Contact page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -26,37 +24,48 @@ $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; +Wrequire 'resume::ResumeJanKratochvil'; +use Carp qw(confess cluck); +sub handler +{ my $W=My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>"Contact", "section"=>"Contact", - "head_css"=>" -table.contact td { vertical-align: top; } -table.contact { border-collapse: collapse; border-style: solid; border-width: 1px; margin: 8px; } -table.contact A[href] { text-decoration: inherit; /* revoke underline */ } -", + "head"=><<"HERE", + +HERE ); My::Web->heading(); -my $mailme=(map({ a_href("mailto:$_",$_); } 'web@jankratochvil.net'))[0]; - print <<"HERE";
- - - - +HERE +my @contact=resume::ResumeJanKratochvil->Contact(); +my %keys=map(($_=>1),qw(Name eMail Projects OpenPGP)); +while (@contact) { + my $key=shift @contact; + my $val=shift @contact; + next if !$keys{$key}; + delete $keys{$key}; + print <<"HERE"; + + + $val + +HERE + } +cluck join(" ","Not found keys:",keys(%keys)) if keys(%keys); +print <<"HERE";
Name Jan Kratochvil
e-mail $mailme
WWW @{[ a_href('http://www.jankratochvil.net/') ]}
OpenPGP @{[ a_href '/pgp-JanKratochvil.txt','' - .'pub 1024D/44FC7632 2002-10-07 Jan Kratochvil <pgp-44FC7632@jankratochvil.net>
' - .'sub 2048g/D9F5F44B 2002-10-07 [expires 2004-10-06]' ]}
$key
HERE My::Web->footer(); +} +1; diff --git a/Index.html.pl b/Index.pm old mode 100755 new mode 100644 similarity index 70% rename from Index.html.pl rename to Index.pm index 888d663..576b2de --- a/Index.html.pl +++ b/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Main page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,14 +23,23 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -use Apache::Constants qw(MOVED); +use Apache2::Const qw(HTTP_MOVED_TEMPORARILY); + +our $HTML_TEST=0; +sub handler +{ my $W=My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "header_only"=>1, ); -$W->{"r"}->status(MOVED); -$W->{"r"}->header_out("Location"=>"http://".&{$W->{"web_hostname_sub"}}."/project/"); + + +$W->{"r"}->status(HTTP_MOVED_TEMPORARILY); +$W->{"r"}->headers_out()->{"Location"}="http://".$W->{"web_hostname"}."/project/"; + + +exit 0; +} +1; diff --git a/Mailman.pl b/Mailman.pm old mode 100755 new mode 100644 similarity index 84% rename from Mailman.pl rename to Mailman.pm index acd5c3d..3b5f39d --- a/Mailman.pl +++ b/Mailman.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Mailman page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -26,15 +24,17 @@ $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; use URI::Escape; require LWP::Simple; +our $HTML_TEST=0; + +sub handler +{ my $W=My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>"Mailman Interface", "no_job"=>1, "args_check"=>{ @@ -50,7 +50,7 @@ My::Web->heading(); for my $list (@{$W->{"args"}{"list"}}) { print "

List $list

\n"; - my $url_base=&{$W->{"mailman_url_sub"}}()."/subscribe/$list"; + my $url_base=$W->{"mailman_url"}."/subscribe/$list"; my $t=LWP::Simple::get("$url_base?" .join('&', "list=$list", @@ -67,3 +67,5 @@ if ($W->{"args"}{"back"}) { My::Web->footer(); +} +1; diff --git a/Makefile-head.am b/Makefile-head.am index 40656bc..d31c09c 100644 --- a/Makefile-head.am +++ b/Makefile-head.am @@ -19,30 +19,36 @@ # Set all needed variables to their empty values to prevent "variable `...' not defined" # Any further settings should be done exclusively by += operator EXTRA_DIST= -BUILT_SOURCES= CLEANFILES= MAINTAINERCLEANFILES= -noinst_DATA= +TESTS= # Force delete of target file if command fails. # Generally better behaviour but it requires GNU make. Harmless otherwise. .DELETE_ON_ERROR: -%.ppm: %.fig Makefile - fig2dev -L ppm -S4 -m1.75 -b10 $< | pnmgamma 0.4 >$@ +# This target is used for "httpd.conf.pl" generator. +MODPERL_PM= +EXTRA_DIST+=$(MODPERL_PM) +MODPERL_PM-print: $(MODPERL_PM) + @echo "MODPERL_PM:$(subdir):$(MODPERL_PM)" + @for subdir in . $(SUBDIRS);do \ + if test "$$subdir" = . -o "$$subdir" = intl -o "$$subdir" = po -o "$$subdir" = m4;then :;else \ + (cd "$$subdir" && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ + fi; \ + done -%.gif: %.ppm - ppmquant -quiet 256 $< | ppmtogif -quiet -sort >$@ +# PiNG is our exchange format. Prevent: make: Circular %.ppm <- %.EXT dependency dropped. -# Prevent: make: Circular %.ppm <- %.gif dependency dropped. -#%.ppm: %.gif -# giftopnm $< >$@ +# Prevent gs(1) EPIPE as it writes about 2x more data out: ( ... ;cat >/dev/null) +%.png: %.fig Makefile + $(PATH_FIG2DEV) -L ppm -S4 -m1.75 -b10 $< | ($(PATH_PNMGAMMA) 0.4;cat >/dev/null) | $(PATH_PNMTOPNG) >$@ -%.png: %.ppm - pnmtopng $< >$@ +%.png: %-badgamma.ppm + $(PATH_PNMGAMMA) 0.4 <$< | $(PATH_PNMTOPNG) >$@ -%.ppm: %.png - pngtopnm $< >$@ +%.gif: %.png + $(PATH_PNGTOPNM) $< | $(PATH_PPMQUANT) -quiet 256 | $(PATH_PPMTOGIF) -quiet -sort >$@ %.png: %.dia $(top_srcdir)/dia-w.sh $(top_srcdir)/dia-w.sh --nosplash --export $@ $< diff --git a/Makefile.am b/Makefile.am index cf27f8b..13a1c8a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -53,12 +53,26 @@ ChangeLog: endif +CLEANFILES+=httpd.conf +EXTRA_DIST+=httpd.conf.pl + +httpd.conf: httpd.conf.pl Makefile project/Makefile + perl -I$$PWD ./$< >$@ + +TESTS+=html-test + +html-test: + ./$@.pl + EXTRA_DIST+= \ - Index.html.pl \ - WebConfig.pm \ - Redirect.pl \ - have_js.js.pl \ - robots.txt \ - SendMsg.pl \ - Contact.html.pl \ - Mailman.pl + WebConfig.pm \ + robots.txt \ + html-test.pl + +MODPERL_PM+= \ + Index.pm \ + Contact.pm \ + have_js.pm \ + Redirect.pm \ + Mailman.pm + diff --git a/Redirect.pl b/Redirect.pm old mode 100755 new mode 100644 similarity index 73% rename from Redirect.pl rename to Redirect.pm index 327ef14..463718a --- a/Redirect.pl +++ b/Redirect.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # URL redirector of &My::Web::a_href Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,23 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -use Apache::Constants qw(MOVED); +use Apache2::Const qw(HTTP_MOVED_TEMPORARILY); + +our $HTML_TEST=0; +sub handler +{ my $W=My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "header_only"=>1, "args_check"=>{ "location"=>'^\w+://', }, ); -$W->{"r"}->status(MOVED); -$W->{"r"}->header_out("Location"=>$W->{"args"}{"location"}); +$W->{"r"}->status(HTTP_MOVED_TEMPORARILY); +$W->{"r"}->headers_out()->{"Location"}=$W->{"args"}{"location"}; + +exit 0; +} +1; diff --git a/SendMsg.pl b/SendMsg.pl deleted file mode 100755 index 1f7b4fb..0000000 --- a/SendMsg.pl +++ /dev/null @@ -1,59 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Quick Send Message -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package SendMsg; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -use Apache::Constants qw(HTTP_NO_CONTENT); -require Mail::Send; - - -my $W=My::Web->init( - "__PACKAGE__"=>__PACKAGE__, - "header_only"=>1, - "args_check"=>{ - "msgscript"=>'', # If 'text/javascript' is supported. - "msghtml"=>'', # No 'text/javascript' available. - }, - ); -my $msg=$W->{"args"}{"msghtml"} || $W->{"args"}{"msgscript"}; -if ($msg) { - - my $subject=$msg.' @'.$W->{"r"}->uri(); - print STDERR "Message: $subject\n"; - - my $send=Mail::Send->new(); - $send->to(split /,/,$W->{"SendMsg_to"}); - $send->subject($subject); - my $fh=$send->open(); - print $fh "$subject\n\n"; - for (sort keys %ENV) { - print $fh $_."=".$ENV{$_}."\n"; - } - $fh->close(); # send it here - - } -$W->{"r"}->status(HTTP_NO_CONTENT); diff --git a/WebConfig.pm b/WebConfig.pm index 76a2970..81d3fa2 100644 --- a/WebConfig.pm +++ b/WebConfig.pm @@ -35,12 +35,12 @@ use My::Web; require CGI; -my $resume_url="/resume/Resume-JanKratochvil.html.pl/Resume-JanKratochvil.html"; +my $resume_url="/resume/Resume-JanKratochvil.pm/Resume-JanKratochvil.html"; +# Only to be used privately by My::Web ! our %WebConfig=( "admin_mail"=>'web-www.jankratochvil.net@jankratochvil.net', - "SendMsg_to"=>'web-www.jankratochvil.net@jankratochvil.net', - "cvs_id_author"=>sub { + "cvs_id_author_sub"=>sub { my($name)=@_; return My::Web::a_href("http://www.jankratochvil.net/","Jan Kratochvil") if 0 || $name eq "short" @@ -49,68 +49,62 @@ our %WebConfig=( }, "viewcvs"=>"http://cvs.jankratochvil.net/viewcvs/www/www.jankratochvil.net/", "title_prefix"=>"Jan Kratochvil", - "footer_mailme"=>0, "project_viewcvs"=>"http://cvs.jankratochvil.net/viewcvs/", "pserver"=>':pserver:pserver:@cvs.jankratochvil.net', "pserver_path"=>"/cvs", "resume_url"=>$resume_url, - "web_hostname_sub"=>sub () { return "www.jankratochvil.net"; }, # $My::Web::W->{"r"}->hostname() - "mailman_url_sub" =>sub () { return "http://".&{$My::Web::W->{"web_hostname_sub"}}."/mailman/"; }, - "pipermail_url_sub"=>sub () { return "http://".&{$My::Web::W->{"web_hostname_sub"}}."/pipermail/"; }, + "web_hostname"=>sub { return "www.jankratochvil.net"; }, # $My::Web::W->{"r"}->hostname() + "mailman_url" =>sub { return "http://".$My::Web::W->{"web_hostname"}."/mailman/"; }, + "pipermail_url"=>sub { return "http://".$My::Web::W->{"web_hostname"}."/pipermail/"; }, "heading"=>sub () { - print ''."\n"; -# print ''."\n"; -# print ''."\n"; -# print ''."\n"; - print ''."\n"; - print '
'."\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; + $r.=''."\n"; + $r.='
'."\n"; - print 'Jan Kratochvil'; -# print My::Web::a_href('http://www.jankratochvil.net/','Jan Kratochvil', + my $r=""; + $r.='
'."\n"; + $r.=''."\n"; + # Do not: + # as the constant are always bad. + $r.=''."\n"; - print ''."\n"; - print ''."\n"; - print '
'."\n"; + $r.='' + .''."\n"; - print ''."\n"; - print '
'."\n"; + $r.='Jan Kratochvil'; +# $r.=My::Web::a_href('http://www.jankratochvil.net/','Jan Kratochvil', # "attr"=>'style="text-decoration: inherit; /* revoke underline */;"'); - print '
'; - print '
'."\n"; - print ''."\n"; - print ''."\n"; - my @sections=( - "/project/"=>"Projects", - "http://cvs.jankratochvil.net/"=>"CVS", -# "/News.html.pl"=>"News", - $resume_url=>"Resume", - "/Contact.html.pl"=>"Contact", - ); - while (@sections) { - my $section_path=shift @sections; - my $section_name=shift @sections; - print '\n"; - } - print ''."\n"; - print '
'; - print(($My::Web::W->{"section"} || "") eq $section_name ? "$section_name" - : My::Web::a_href($section_path,$section_name, - "attr"=>'style="text-decoration: inherit; /* revoke underline */;"')); - print "
'."\n"; - print '
'."\n"; - if (!$My::Web::W->{"WebConfig::heading_novskip"}) { - print "
\n"; - print My::Web::vskip("6ex"); + $r.='
'; + $r.='
'."\n"; + $r.='' + .''."\n"; + my @sections=( + "/project/"=>"Projects", + "http://cvs.jankratochvil.net/"=>"CVS", +# "/News.pm"=>"News", + $resume_url=>"Resume", + "/Contact.pm"=>"Contact", + ); + while (@sections) { + my $section_path=shift @sections; + my $section_name=shift @sections; + $r.='\n"; + } + $r.='
'; + $r.=(($My::Web::W->{"section"} || "") eq $section_name ? "$section_name" + : My::Web::a_href($section_path,$section_name, + "attr"=>'style="text-decoration: inherit; /* revoke underline */;"')); + $r.="
'."\n"; + $r.='
'."\n"; + $r.='
'."\n"; + if (!$My::Web::W->{"heading_novskip"}) { + $r.="
\n"; + $r.=My::Web::vskip("6ex"); } + return $r; }, - "footing"=>sub () { -# print "

footing

\n"; - }, + ###"footing"=>"

footing

\n", "footing_delimit"=>sub () { return if $My::Web::W->{"no_job"}; - print <<"HERE"; + return <<"HERE"; "; + if ($tableit->{"text"}) { + $r.=""; + } + if ($tableit->{"format"}) { + do { $val=$_ if defined $_; } for (&{$tableit->{"format"}}($val,$key)); + } + return join("",map("\n",@$val)) + if ref $val; + $r.=""; + $r.="\n"; +} + + my %used_key; + print '
A programmer for hire: diff --git a/autogen.pl b/autogen.pl index d1c9fc2..a9675f8 100755 --- a/autogen.pl +++ b/autogen.pl @@ -38,8 +38,10 @@ AutoGen->run( "clean"=>[qw( .xvpics ./ChangeLog.bak + ./httpd.conf ./INSTALL ./dia-w.sh + ./project/SUBDIRS ./project/Nokia61/Nokia61 ./project/Nokia61/Nokia61_23.cache ./project/line9k/line9k.png diff --git a/configure.ac b/configure.ac index 57922d6..d129551 100644 --- a/configure.ac +++ b/configure.ac @@ -16,13 +16,26 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -AC_INIT(./Makefile-head.am) +AC_INIT(./project/ChangeLog.pm) AM_INIT_AUTOMAKE(www.jankratochvil.net,1.0cvs) AM_MAINTAINER_MODE +AC_DEFUN([PATH_PROG_CHECKED], +[ + AC_PATH_PROG($1,$2) + eval 'echo $'$1|grep >/dev/null . || AC_MSG_ERROR([Program '$2' not found.]) +]) + AC_PATH_PROG(PATH_XVNC,Xvnc) AC_PATH_PROG(PATH_BC,bc) -AC_PATH_PROG(PATH_DIA,dia) +PATH_PROG_CHECKED(PATH_DIA,dia) +PATH_PROG_CHECKED(PATH_FLOCK,flock) +PATH_PROG_CHECKED(PATH_FIG2DEV,fig2dev) +PATH_PROG_CHECKED(PATH_PPMQUANT,ppmquant) +PATH_PROG_CHECKED(PATH_PPMTOGIF,ppmtogif) +PATH_PROG_CHECKED(PATH_PNMTOPNG,pnmtopng) +PATH_PROG_CHECKED(PATH_PNGTOPNM,pngtopnm) +PATH_PROG_CHECKED(PATH_PNMGAMMA,pnmgamma) dnl "Makefile" output files MUST have pathnames incl./excl. "./" prefix as specified! AC_OUTPUT([ @@ -30,6 +43,8 @@ Makefile ./dia-w.sh ./macros/Makefile ./My/Makefile +./My/Hash/Makefile +./My/Hash/Sub/Makefile ./resume/Makefile ./etmms/Makefile ./project/Makefile diff --git a/etmms/Index.html.pl b/etmms/Index.pm old mode 100755 new mode 100644 similarity index 91% rename from etmms/Index.html.pl rename to etmms/Index.pm index 3481e7d..eb7e12b --- a/etmms/Index.html.pl +++ b/etmms/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Contact page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package Contact; +package etmms::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway use vars qw($VERSION $CVS_ID); $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; @@ -26,14 +24,14 @@ $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; -Wrequire 'My::Project'; +Wrequire 'project::Lib'; +sub handler +{ my $W=My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>"MMS Center Debugging", ); My::Web->heading(); @@ -43,8 +41,8 @@ sub project ($) { my($name)=@_; - my %name_item=( My::Project->one_item_list_read($name) ); - return a_href "/project/$name/",$name_item{"name"}.': '.$name_item{"summary"}; + my $name_item=project::Lib->name_to_hashref($name); + return a_href "/project/$name/",$name_item->{"name"}.': '.$name_item->{"summary"}; }; @@ -149,19 +147,9 @@ MMS definition file URL decoded out of the data stream above:
  • @{[ project 'etherealwsp' ]}
  • - - - - - - - - - - - - HERE My::Web->footer(); +} +1; diff --git a/etmms/Makefile.am b/etmms/Makefile.am index 920c2bf..1416e64 100644 --- a/etmms/Makefile.am +++ b/etmms/Makefile.am @@ -18,4 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= +MODPERL_PM+= \ + Index.pm + diff --git a/have_js.js.pl b/have_js.pm old mode 100755 new mode 100644 similarity index 85% rename from have_js.js.pl rename to have_js.pm index efc19d4..1dffea2 --- a/have_js.js.pl +++ b/have_js.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # JavaScript detection scriptlet Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,16 +23,20 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; +our $HTML_TEST=0; + +sub handler +{ my $W=My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Homepage of Jan Kratochvil', ); + + # Do not: My::Web->heading(); -$W->{"r"}->send_http_header("text/javascript"); +$W->{"r"}->content_type("text/javascript"); # Prevent redirection of some top (referring) foreign webpage as it # may not pass "have_js=1" to us anyway. (for example Google cache) @@ -61,4 +63,8 @@ print <<'HERE'; } HERE + # Do not: My::Web->footer(); +exit 0; +} +1; diff --git a/html-test.pl b/html-test.pl new file mode 100755 index 0000000..aa09b81 --- /dev/null +++ b/html-test.pl @@ -0,0 +1,70 @@ +#! /usr/bin/perl +# +# $Id$ + + +use strict; +use warnings; +use My::ModPerlPm; +require LWP::UserAgent; +require HTTP::Status; +require LWP; +use Carp qw(confess cluck); +use Getopt::Long; +use Sys::Hostname::Long; +use URI::Escape; + + +my $URL_BASE="http://".hostname_long().":7680"; +my $URL_VALIDATOR_BASE="http://validator.w3.org/check?uri="; + + +my $opt_validate; +die if !GetOptions( + "validate!",\$opt_validate, + ); + +my($first_pattern)=@ARGV; +die if @ARGV>=2; + + +$|=1; + +my $UA=LWP::UserAgent->new(); +$UA->env_proxy(); + +my $first_seen=!$first_pattern; +My::ModPerlPm->list("sub"=>sub { + my($p)=@_; + require $p->{"file"}; + eval 'require '.$p->{"module"}.'; 1;' + or cluck "Error loading module ".$p->{"module"}.": $@"; + my $result=eval '$'.$p->{"module"}.'::HTML_TEST;'; + return if defined $result && !$result; + my $url=$URL_BASE.$p->{"url"}; + my $url_matches=1 if $first_pattern && $url=~/$first_pattern/o; + die "Pattern amiguous on: $url\n" if $first_seen && $url_matches; + if (!$first_seen && !($first_seen=($url=~/$first_pattern/o))) { + print "_"; + return; + } + print "."; + if ($opt_validate) { + $url=$URL_VALIDATOR_BASE.uri_escape($url); + } + my $request=HTTP::Request->new("GET",$url); + $request->header("Cache-control"=>"no-cache"); + my $response=$UA->request($request); + if ($response->code()==HTTP::Status::RC_OK()) { + return if !$opt_validate; + local $_=$response->content(); + my $valid=/\bclass="valid"\s*>/; + my $invalid=/\bclass="invalid"\s*>/; + die "\nUnexpected response: $url\n" if $valid==$invalid; + return if $valid; + die "\n$url\n"; + } + die "\n$url: ".$response->code()."\n"; + }); +print "\n"; +die "Nothing seen for: $first_pattern\n" if !$first_seen; diff --git a/httpd.conf.pl b/httpd.conf.pl new file mode 100755 index 0000000..7746866 --- /dev/null +++ b/httpd.conf.pl @@ -0,0 +1,50 @@ +#! /usr/bin/perl +# +# $Id$ + + +use strict; +use warnings; +use My::ModPerlPm; + + +print <<"HERE"; +# Auto-generated from: @{[ '$Id$' ]} +# DO NOT EDIT! + + +PerlOptions +GlobalRequest + +HERE +print <<'HERE'; + + use Carp qw(confess cluck); + $SIG{"__WARN__"}=sub { $_[0]=~/\n./ ? warn @_ : cluck @_; }; + $SIG{"__DIE__" }=sub { $_[0]=~/\n./ ? die @_ : confess @_; }; + + + + Order Allow,Deny + Deny from all + +HERE + + +My::ModPerlPm->list("sub"=>sub { + my($p)=@_; + print <<"HERE" + +PerlModule @{[ $p->{"module"} ]} +{"url"} ]}"> + SetHandler modperl + PerlResponseHandler @{[ $p->{"module"} ]} + Order Deny,Allow + Allow from localhost + +HERE + }); + +print <<"HERE"; + +# EOF +HERE diff --git a/project/332/Index.html.pl b/project/332/Index.pm old mode 100755 new mode 100644 similarity index 75% rename from project/332/Index.html.pl rename to project/332/Index.pm index 63000a9..0d29408 --- a/project/332/Index.html.pl +++ b/project/332/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Main page of 'My::Project::332' -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,18 +23,34 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wuse 'My::Project'; -Wuse 'project::332::ListItem'; +Wuse 'project::Lib'; -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::332::ListItem::ListItem, +our @ListItem=( + "name"=>"332", + "platform"=>"unixdevel", + "priority"=>630, + "icon"=>"332-front-icon.jpeg", + # FIXME: Relative 'download': + "download-sources without patched core"=>"/project/332/332-noexec.tar.gz", + "summary"=>"AmigaOS kernel port to embedded Motorola 68332", + "license"=>"PD", + "maintenance"=>"ready", + "sponsorship"=>sub { return a_href('http://www.geoinvest.cz/','Geoinvest'); }, + "language"=>"680x0 asm, C", + "description"=><<"HERE", +

    Core of the AmigaOS kernel (exec.library) ported to embedded Motorola 68332 computer. +Reusable as OS for your embedded device suitable for developers with AmigaOS experience.

    +HERE ); +sub handler +{ +project::Lib->init(); + + print <<"HERE";

    Project was destined as the kernel for GPS-tracking device. Used Motorola 68332 computer features 1.25MB of RAM and 512KB of FlashEPROM. @@ -70,3 +84,5 @@ HERE My::Web->footer(); +} +1; diff --git a/project/332/ListItem.pm b/project/332/ListItem.pm deleted file mode 100755 index 264204f..0000000 --- a/project/332/ListItem.pm +++ /dev/null @@ -1,49 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Definition of 'My::Project::332' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::332::ListItem; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -use My::Web; - - -our @ListItem=( - "name"=>"332", - "platform"=>"unixdevel", - "priority"=>630, - "icon"=>"332-front-icon.jpeg", - # FIXME: Relative 'download': - "download-sources without patched core"=>"/project/332/332-noexec.tar.gz", - "summary"=>"AmigaOS kernel port to embedded Motorola 68332", - "license"=>"PD", - "maintenance"=>"ready", - "sponsorship"=>@{[ a_href('http://www.geoinvest.cz/','Geoinvest') ]}, - "language"=>"680x0 asm, C", - "description"=><<"HERE", -

    Core of the AmigaOS kernel (exec.library) ported to embedded Motorola 68332 computer. -Reusable as OS for your embedded device suitable for developers with AmigaOS experience.

    -HERE - ); - -1; diff --git a/project/332/Makefile.am b/project/332/Makefile.am index 5a40374..7c8b48c 100644 --- a/project/332/Makefile.am +++ b/project/332/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/AutoGen/Index.html.pl b/project/AutoGen/Index.html.pl deleted file mode 100755 index ffdf9b6..0000000 --- a/project/AutoGen/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::AutoGen' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::AutoGen::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::AutoGen::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::AutoGen::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/AutoGen/ListItem.pm b/project/AutoGen/Index.pm old mode 100755 new mode 100644 similarity index 86% rename from project/AutoGen/ListItem.pm rename to project/AutoGen/Index.pm index 28f0f75..3835835 --- a/project/AutoGen/ListItem.pm +++ b/project/AutoGen/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::AutoGen' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::AutoGen' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::AutoGen::ListItem; +package project::AutoGen::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -33,7 +32,7 @@ our @ListItem=( "platform"=>"unixdevel", "priority"=>540, "cvs"=>"macros", - "link-Documentation"=>'/project/Pod2Html.html.pl?cvs=macros/AutoGen.pm', + "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", "summary"=>"autogen.sh while supporting CVS/.rpm/.deb", @@ -66,4 +65,10 @@ This project has some additional features:

    HERE ); +sub handler +{ +project::Lib->init(); + +My::Web->footer(); +} 1; diff --git a/project/AutoGen/Makefile.am b/project/AutoGen/Makefile.am index a5a52c7..8a0ba99 100644 --- a/project/AutoGen/Makefile.am +++ b/project/AutoGen/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/CasioA/Index.html.pl b/project/CasioA/Index.html.pl deleted file mode 100755 index d2c5930..0000000 --- a/project/CasioA/Index.html.pl +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::CasioA' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::CasioA::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::CasioA::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::CasioA::ListItem::ListItem, - ); - - -print <<"HERE"; -@{[ centerimg "Casio-A","Casio-A Snapshot" ]} -@{[ vskip "1ex" ]} -@{[ centerimg "CasioSchema","Casio-A Interface Scheme" ]} -HERE - - -My::Web->footer(); diff --git a/project/CasioA/ListItem.pm b/project/CasioA/Index.pm old mode 100755 new mode 100644 similarity index 79% rename from project/CasioA/ListItem.pm rename to project/CasioA/Index.pm index 2d6d088..9972334 --- a/project/CasioA/ListItem.pm +++ b/project/CasioA/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::CasioA' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::CasioA' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::CasioA::ListItem; +package project::CasioA::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -39,7 +38,7 @@ our @ListItem=( "license"=>"PD", "maintenance"=>"obsolete-Casio SF-A10 diary and AmigaOS are no longer being used.", "language"=>"680x0 asm", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    Casio-A is a software for backup/restore of Casio SF-A10 personal digital diary. Its development involved reverse-engineering the Casio communication protocol by sniffing serial communication of the vendor's MS-DOS backup tool.

    @@ -48,4 +47,18 @@ protocol by sniffing serial communication of the vendor's MS-DOS backup tool.

    init(); + + +print <<"HERE"; +@{[ centerimg "Casio-A","Casio-A Snapshot" ]} +@{[ vskip "1ex" ]} +@{[ centerimg "CasioSchema","Casio-A Interface Scheme" ]} +HERE + + +My::Web->footer(); +} 1; diff --git a/project/CasioA/Makefile.am b/project/CasioA/Makefile.am index 544d810..fed041e 100644 --- a/project/CasioA/Makefile.am +++ b/project/CasioA/Makefile.am @@ -18,7 +18,9 @@ include $(top_srcdir)/Makefile-head.am +MODPERL_PM+= \ + Index.pm + EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl \ - Casio-A.png + Casio-A.png + diff --git a/project/ChangeLog.txt.pl b/project/ChangeLog.pm similarity index 77% rename from project/ChangeLog.txt.pl rename to project/ChangeLog.pm index 6c85224..47d2bd4 100755 --- a/project/ChangeLog.txt.pl +++ b/project/ChangeLog.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # URL redirector of &My::Web::a_href Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,25 +23,32 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -use Apache::Constants qw(MOVED); +our $HTML_TEST=0; + +sub handler +{ my $W=My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "header_only"=>1, "args_check"=>{ "cvs"=>'^[\w\d][\w\d/.]*$', }, ); -$W->{"r"}->send_http_header("text/plain"); + +$W->{"r"}->content_type("text/plain"); local *F; open F,"" ."cvs -n -q -d ".$W->{"pserver"}.":".$W->{"pserver_path"}." 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 ".top_dir_disk()."/cvs2cl-usermap" + ." |cvs2cl --stdin --stdout --window 3600 --separate-header --no-wrap --usermap ".path_abs_disk("/cvs2cl-usermap") ." |"; -print while ; +print $_ while ; close F; + + +exit 0; +} +1; diff --git a/project/FordFulk/Index.html.pl b/project/FordFulk/Index.html.pl deleted file mode 100755 index d2ab68d..0000000 --- a/project/FordFulk/Index.html.pl +++ /dev/null @@ -1,51 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::FordFulk' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::FordFulk::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::FordFulk::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::FordFulk::ListItem::ListItem, - ); - - -print <<"HERE"; - - -@{[ vskip "3ex" ]} - -@{[ centerimg "FordFulk","Applet Screenshot" ]} -HERE - - -My::Web->footer(); diff --git a/project/FordFulk/ListItem.pm b/project/FordFulk/Index.pm old mode 100755 new mode 100644 similarity index 73% rename from project/FordFulk/ListItem.pm rename to project/FordFulk/Index.pm index 9d929b4..0857f43 --- a/project/FordFulk/ListItem.pm +++ b/project/FordFulk/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::FordFulk' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::FordFulk' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::FordFulk::ListItem; +package project::FordFulk::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -43,4 +42,22 @@ our @ListItem=( HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; + +

    @{[ a_href 'FordFulk/','Program on-line.' ]}

    + + +@{[ vskip "3ex" ]} + +@{[ centerimg "FordFulk","Applet Screenshot" ]} +HERE + + +My::Web->footer(); +} 1; diff --git a/project/FordFulk/Makefile.am b/project/FordFulk/Makefile.am index 0c1658b..8579d4f 100644 --- a/project/FordFulk/Makefile.am +++ b/project/FordFulk/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/Heat/Index.html.pl b/project/Heat/Index.html.pl deleted file mode 100755 index ff2caad..0000000 --- a/project/Heat/Index.html.pl +++ /dev/null @@ -1,51 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::Heat' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::Heat::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::Heat::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::Heat::ListItem::ListItem, - ); - - -print <<"HERE"; - - -@{[ vskip "3ex" ]} - -@{[ centerimg "Heat","Applet Screenshot" ]} -HERE - - -My::Web->footer(); diff --git a/project/Heat/ListItem.pm b/project/Heat/Index.pm old mode 100755 new mode 100644 similarity index 74% rename from project/Heat/ListItem.pm rename to project/Heat/Index.pm index 592efd7..44a9cbb --- a/project/Heat/ListItem.pm +++ b/project/Heat/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::Heat' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::Heat' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::Heat::ListItem; +package project::Heat::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -43,4 +42,22 @@ our @ListItem=( HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; + +

    @{[ a_href 'Heat/','Program on-line.' ]}

    + + +@{[ vskip "3ex" ]} + +@{[ centerimg "Heat","Applet Screenshot" ]} +HERE + + +My::Web->footer(); +} 1; diff --git a/project/Heat/Makefile.am b/project/Heat/Makefile.am index 88d647c..794cf21 100644 --- a/project/Heat/Makefile.am +++ b/project/Heat/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/Index.html.pl b/project/Index.pm similarity index 74% rename from project/Index.html.pl rename to project/Index.pm index 9a207a1..1dcb08d 100755 --- a/project/Index.html.pl +++ b/project/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # List of projects Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,33 +23,32 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wrequire 'My::Project'; +Wrequire 'project::Lib'; +use Carp qw(confess cluck); +sub handler +{ My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Project List', "section"=>"Projects", -# "rel_up"=>top_dir(), # TODO:homepage -# "rel_start"=>top_dir(), # TODO:homepage +# "rel_up"=>"/", # TODO:homepage +# "rel_start"=>"/", # TODO:homepage "footer_ids"=>0, ); My::Web->heading(); -print My::Project->views("Detailed"); -print My::Project->platforms(undef(),"novskip"=>1); +print(project::Lib->views("Detailed")); +print(project::Lib->platforms(undef(),"novskip"=>1)); -my %item=( My::Project::item_hash_read() ); +my %item=project::Lib->name_to_hashref(); -my @platforms=@My::Project::platforms; +my @platforms=@project::Lib::platforms; while (@platforms) { my $platform_sym =shift @platforms; my $platform_name=shift @platforms; - print ''; - print "

    $platform_name

    "; - print '
    '."\n"; + print '

    '.$platform_name.'

    '."\n"; my @projects=sort { ($item{$b}{"priority"} <=> $item{$a}{"priority"}) or @@ -77,3 +74,5 @@ while (@platforms) { My::Web->footer(); +} +1; diff --git a/project/Islet/Index.html.pl b/project/Islet/Index.html.pl deleted file mode 100755 index 731a9bc..0000000 --- a/project/Islet/Index.html.pl +++ /dev/null @@ -1,49 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::Islet' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::Islet::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::Islet::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::Islet::ListItem::ListItem, - ); - - -print <<"HERE"; - - -@{[ centerimg "Islet","Applet demo screen" ]} -HERE - - -My::Web->footer(); diff --git a/project/Islet/ListItem.pm b/project/Islet/Index.pm old mode 100755 new mode 100644 similarity index 74% rename from project/Islet/ListItem.pm rename to project/Islet/Index.pm index e3cc9c3..4f4d262 --- a/project/Islet/ListItem.pm +++ b/project/Islet/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::Islet' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::Islet' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::Islet::ListItem; +package project::Islet::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -43,4 +42,20 @@ our @ListItem=( HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; + +

    @{[ a_href 'Islet/','Program on-line.' ]}

    + + +@{[ centerimg "Islet","Applet demo screen" ]} +HERE + + +My::Web->footer(); +} 1; diff --git a/project/Islet/Makefile.am b/project/Islet/Makefile.am index d71feb9..54adb9f 100644 --- a/project/Islet/Makefile.am +++ b/project/Islet/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/LaserGame/Index.html.pl b/project/LaserGame/Index.html.pl deleted file mode 100755 index 412d472..0000000 --- a/project/LaserGame/Index.html.pl +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::LaserGame' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::LaserGame::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::LaserGame::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::LaserGame::ListItem::ListItem, - ); - - -print <<"HERE"; -@{[ centerimg "hw.jpeg","LaserGame Hardware" ]} -@{[ vskip "1ex" ]} -@{[ centerimg "LaserComm","LaserComm Utility" ]} -HERE - - -My::Web->footer(); diff --git a/project/LaserGame/ListItem.pm b/project/LaserGame/Index.pm old mode 100755 new mode 100644 similarity index 80% rename from project/LaserGame/ListItem.pm rename to project/LaserGame/Index.pm index a0f2c8f..973c1c1 --- a/project/LaserGame/ListItem.pm +++ b/project/LaserGame/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::LaserGame' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::LaserGame' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::LaserGame::ListItem; +package project::LaserGame::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -39,7 +38,7 @@ our @ListItem=( "license"=>"PD", "maintenance"=>"obsolete-Config tool is written for the discontinued Amiga platform.", "language"=>"i8051 asm, 680x0 asm", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    LaserGame is a clone of commercial shoot'n'run game. Each player has its own hardware with multiple infra detecting sensor and one laser/infra gun. Shooting is visually targeting by red laser diode while the shooting @@ -51,4 +50,18 @@ also capable of remote hardware configuration.

    HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +@{[ centerimg "hw.jpeg","LaserGame Hardware" ]} +@{[ vskip "1ex" ]} +@{[ centerimg "LaserComm","LaserComm Utility" ]} +HERE + + +My::Web->footer(); +} 1; diff --git a/project/LaserGame/Makefile.am b/project/LaserGame/Makefile.am index c848438..28867ce 100644 --- a/project/LaserGame/Makefile.am +++ b/project/LaserGame/Makefile.am @@ -18,7 +18,9 @@ include $(top_srcdir)/Makefile-head.am +MODPERL_PM+= \ + Index.pm + EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl \ - LaserGame.png + LaserGame.png + diff --git a/project/Lib.css b/project/Lib.css new file mode 100644 index 0000000..3c1dd92 --- /dev/null +++ b/project/Lib.css @@ -0,0 +1,20 @@ +/* $Id$ + * CSS of project functions for HTML/XHTML output generation + * Copyright (C) 2003-2005 Jan Kratochvil + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; exactly version 2 of June 1991 is required + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +table.print_project td { vertical-align: top; } diff --git a/project/Lib.pm b/project/Lib.pm new file mode 100644 index 0000000..9259361 --- /dev/null +++ b/project/Lib.pm @@ -0,0 +1,383 @@ +# $Id$ +# Common functions for HTML/XHTML output generation +# Copyright (C) 2003 Jan Kratochvil +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; exactly version 2 of June 1991 is required +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +package project::Lib; +require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway +our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; +our $CVS_ID=q$Id$; +use strict; +use warnings; + +use My::Web; +require CGI; +use Carp qw(cluck confess); + +use Exporter; +our @EXPORT=qw(); +our @ISA=qw(My::Web Exporter); +Wuse 'My::Hash::Sub'; +Wuse 'My::Hash::Sub::Readonly'; + + +sub LIST_FILENAME() +{ + # Do not: path_abs_disk("/project/SUBDIRS"); + # as we would need $W->{"r"} for the possibly relative path resolving. + return My::Web::dir_top_abs_disk()."/project/SUBDIRS"; +} + + +sub print_project +{ +my($class,$ListItem,%args)=@_; + + print "

    ".$W->{"title"}."

    \n"; + do { print $_ if $_; } for ($args{"project_text_after_title"}); + print $ListItem->{"description"}; + print "
    \n"; + print($args{"before_project_data"}||""); + return if $args{"no_project_data"}; + my @table=( + {"key"=>"summary","text"=>"Summary"}, + {"key"=>"license","text"=>"License","format"=>sub ($) { + my %known=( + "PD"=>"Public Domain", + "GPL"=>a_href("http://www.gnu.org/licenses/gpl.html","GNU General Public License"), + "LGPL"=>a_href("http://www.gnu.org/licenses/lgpl.html","GNU Lesser General Public License"), + "com"=>"Commercial" + ); + return $known{$_[0]}; + }}, + {"key"=>"maintenance","text"=>"State","format"=>sub ($) { + my %known=( + "active"=>"Ready to use. Project is now actively developed.", + "ready"=>"Ready to use. Maintained.", + "dead"=>"Dead code, no longer supported.", + "merge"=>"Functions belong to existing other project.", + "obsolete"=>"Obsoleted.", + "update"=>"Package needs updating to recent software.", + "accepted"=>"This patch got already integrated by the original package maintainer.", + "pending"=>"Patch is ready to be applied to the mainstream.", + "ignored"=>"Patch was ignored. It is not applied in the mainstream.", + ""=>"", + ); + my @r; + for ($known{($_[0]=~/^([^-]*)-?/)[0] || ""}) { + push @r,$_ if $_; + push @r," $'" if $'; + } + return join(" ",@r); + }}, + {"key"=>"aminet","text"=>a_href('http://www.aminet.net/','Aminet'),"format"=>sub ($) { + return join(" ", + a_href('http://www.aminet.net/'.$_[0].".lha",$_[0].".lha"), + "(".a_href('http://www.aminet.net/'.$_[0].".readme","readme").")"); + }}, + {"key"=>qr(^download\b),"text"=>sub ($) { + $_[0]=~s/^download//; + $_[0]=~s/^-/ /; + return "Download".$_[0]; + }, + "format"=>sub ($) { + return a_href($_[0],CGI::escapeHTML(File::Basename::basename($_[0])),"size"=>2); + }}, + {"key"=>qr(^link\b),"text"=>sub ($) { + $_[0]=~s/^link-//; + return $_[0]; + }, + "format"=>sub ($) { + return($_[0]=~/^qr(^cvs\b),"text"=>sub ($) { + $_[0]=~s/^cvs//; + $_[0]=~s/^-/ /; + return "CVS".$_[0]; + }, + "format"=>sub ($$) { + my($val,$key)=@_; + $key=~s/^cvs//; + $key=~s/^-/ /; + my $branch=""; + $branch=$1 if $val=~s/:(.*)//; + return join("
    \n\t\t", + CGI::escapeHTML("cvs -d ".$W->{"pserver"}.":".$W->{"pserver_path"}." -z3" + ." checkout".(!$branch ? "" : " -r $branch -kk") + .($val!~m#/# ? "" : " -d ".File::Basename::basename($val)) + ." $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"]))); + }}, + {"key"=>"ownership","text"=>"Ownership"}, + {"key"=>"sponsorship","text"=>"Sponsorship"}, + {"key"=>"language","text"=>"Programming language","format"=>sub ($) { + return a_href("http://java.sun.com/",CGI::escapeHTML($_[0])) + if $_[0]=~/^Java\b/; + return a_href("http://www.php.net/",CGI::escapeHTML($_[0])) + if $_[0]=~/^PHP\b/; + return undef(); + }}, + ); + +sub tableit_func +{ +my($tableit,$val,$key,$ListItem)=@_; + + my $r=""; + $r.="
    "; + $r.=(!ref $_ ? $_ : &{$_}($key)) for ($tableit->{"text"}); + $r.="
    ".$_->[0]."".$_->[1]."
    $val
    '."\n"; + for my $tableit (@table) { + if (!ref $tableit->{"key"}) { + print tableit_func($tableit,$ListItem->{$tableit->{"key"}},$tableit->{"key"},$ListItem) + if $ListItem->{$tableit->{"key"}} && !$used_key{$tableit->{"key"}}++; + } + else { + for my $key (@{$ListItem->{"keys_array"}}) { + my $keyregex=$tableit->{"key"}; + next if $key!~/$keyregex/; + print tableit_func($tableit,$ListItem->{$key},$key,$ListItem); + } + } + } + print "\n"; + print vskip; +} + +sub hashlikearray_get_keys(@) +{ +my(@hashlikearray)=@_; + + my @r; + while (@hashlikearray) { + push @r,shift @hashlikearray; # key + shift @hashlikearray; # val + } + return @r; +} + +sub project_arrayref_to_hashref($$) +{ +my($self,$arrayref)=@_; + + my $r={}; + tie %$r,"My::Hash::Sub::Readonly",( + @$arrayref, + "keys_array"=>[ hashlikearray_get_keys(@$arrayref) ], + ); + return $r; +} + +sub title ($$) +{ +my($class,$hashref)=@_; + + cluck if !$hashref->{"name"} || !$hashref->{"summary"}; + return $hashref->{"name"}.": ".$hashref->{"summary"}, +} + +# Returns: hashref if !wantarray(), list if wantarray(). +sub list($) +{ +my($self)=@_; + + our %list_cache; + our @list_cache; + if (!@list_cache) { + My::Web->make_file(LIST_FILENAME()); + local *F; + open F,LIST_FILENAME() or do { + cluck "Error opening \"".LIST_FILENAME()."\": $!"; + return; + }; + my @r=split(" ",do { undef $/; ; }); + close F or cluck "Error closing \"".LIST_FILENAME()."\": $!"; + cluck "No projects found?" if !@r; + @list_cache=@r; + %list_cache=map(($_=>1),@list_cache); + } + return \%list_cache if !wantarray(); + return @list_cache; +} + +# Returns: hashlist of hashrefs if !$name. +sub name_to_hashref($;$) +{ +my($class,$name)=@_; + + cluck if !wantarray() && !$name; + # Do not cache the result to get all the items &Wrequire-mapped. + return map(($_=>$class->name_to_hashref($_)),$class->list()) if !$name; + cluck join(" ","Project name \"$name\" not listed in 'list_cache':",$class->list()) + if !$class->list()->{$name}; + # Do not cache &Wrequire to gets its $Id$ markers / usage map. + Wrequire "project::${name}::Index"; + our %cache; + if (!$cache{$name}) { + my $arrayref=eval('\@project::'.$name.'::Index::ListItem'); + do { warn "Broken project/$name/Index.pm"; return undef(); } if !@$arrayref; + $cache{$name}=$class->project_arrayref_to_hashref($arrayref); + } + return $cache{$name}; +} + +# $args{"ListItem"}=\%...; +sub init($%) +{ +my($class,%args)=@_; + + $args{"__PACKAGE__"}||=caller(); + $args{"project_name"}||=($args{"__PACKAGE__"}=~/^project::(\w+)::Index$/)[0] + or cluck "Error finding project name of the package: ".$args{"__PACKAGE__"}; + my $ListItem=$class->name_to_hashref($args{"project_name"}); + my $W=$class->SUPER::init( + "title"=>$class->title($ListItem), + map(("rel_$_"=>'/project/Rel.pm?rel='.$_.'&project='.$args{"project_name"}),qw(prev next)), + "rel_up"=>'/project/', +# "rel_start"=>"/", # TODO:homepage + %args, + "head"=>($args{"head"}||"").<<"HERE", + +HERE + "heading_novskip"=>1, + ); + $class->heading(); + print $class->platforms($ListItem->{"platform"}); + $class->print_project($ListItem,%args); + return $W; +} + +our @platforms=( + "unixuser"=>"UNIX", + "unixdevel"=>"UNIX-devel", + "web"=>"Web", + "amiga"=>"Amiga", + "w32"=>"MS-Windows", + "dos"=>"MS-DOS", + "patch"=>"Patches", + ); + +sub views ($$) +{ +my($class,$view_selected)=@_; + + my $view=sub ($$) + { + my($current,$href,$content)=@_; + + return a_href($href,$content) if $current ne $view_selected; + return "".$content." (current)"; + }; + + return <<"HERE"; +

    Project List of @{[ a_href 'http://www.jankratochvil.net/','Jan Kratochvil' ]}

    + +
      +
    • @{[ &{$view}('Detailed' ,'/project/','Detailed project listing per platform') ]}
    • +
    • @{[ &{$view}('BriefPlatform','/project/List.pm?platform=platform', + 'Brief project listing per platform') ]}
    • +
    • @{[ &{$view}('BriefUnified' ,'/project/List.pm', + 'Unified brief project listing') ]}
    • +
    +@{[ vskip "1ex" ]} +HERE +} + +sub platforms ($;$%) +{ +my($class,$platform_selected,%args)=@_; + + my $r=""; + $r.='
    '."\n"; + $r.=''."\n"; + $r.=''; + $r.=''."\n"; + $r.='
    '; + $r.=''."\n"; + $r.=''."\n"; + $r.=''."\n"; + $r.=''."\n"; + $r.='
    '."\n"; + $r.='Projects'; + $r.='
    '; + $r.='
    '; + $r.=''."\n"; + $r.=''."\n"; + my @platforms=@platforms; + while (@platforms) { + my $platform_sym =shift @platforms; + my $platform_name=shift @platforms; + my $chosen=($platform_selected && $platform_selected eq $platform_sym); + $r.='\n"; + } + $r.=''."\n"; + $r.='
    '; + $r.=a_href((!$platform_selected ? "" : "/project/").'#'.$platform_sym,$platform_name, + "attr"=>($chosen + ? 'style="text-decoration: underline; font-weight: bold;"' + : 'style="text-decoration: inherit; /* revoke underline */"')); + $r.="
    '."\n"; + $r.='
    '."\n"; + $r.='
    '."\n"; + if (!$args{"novskip"}) { + $r.="
    \n"; + $r.=My::Web::vskip "6ex"; + } + return $r; +} + +sub section ($$) +{ +my($class,$name)=@_; + + my $item=$class->name_to_hashref($name); + my $title=$class->title($item); + my $r=""; + + print $class->platforms($item->{"platform"},"novskip"=>1); + + $r.='
    '."\n"; + $r.=''."\n"; + $r.=''."\n"; + $r.='
    '."\n"; + $r.=a_href "/project/$name/",$title; + $r.='
    '."\n"; + $r.='
    '."\n"; + $r.=vskip "1ex"; + return $r; +} + +1; diff --git a/project/List.html.pl b/project/List.pm similarity index 84% rename from project/List.html.pl rename to project/List.pm index fc149c9..73d5eb8 100755 --- a/project/List.html.pl +++ b/project/List.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # List of projects Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,30 +23,31 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; -Wrequire 'My::Project'; +Wrequire 'project::Lib'; +sub handler +{ My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Project List', "args_check"=>{ "platform"=>'^(?:platform)?$', }, -# "rel_up"=>top_dir(), # TODO:homepage -# "rel_start"=>top_dir(), # TODO:homepage +# "rel_up"=>"/", # TODO:homepage +# "rel_start"=>"/", # TODO:homepage "footer_ids"=>0, ); My::Web->heading(); + my $CGI=CGI->new(); -print My::Project->views(($W->{"args"}{"platform"} ? "BriefPlatform" : "BriefUnified")); -print My::Project->platforms(undef(),"novskip"=>1) if $W->{"args"}{"platform"}; +print(project::Lib->views(($W->{"args"}{"platform"} ? "BriefPlatform" : "BriefUnified"))); +print(project::Lib->platforms(undef(),"novskip"=>1)) if $W->{"args"}{"platform"}; -my %item=( My::Project::item_hash_read() ); +my %item=project::Lib->name_to_hashref(); # $col{"name"}{"show"}=1 # $col{"name"}{"format"}=sub { "<".$_[0].">"; } @@ -62,10 +61,11 @@ my %col; sub format_url ($) { return (!$_[0] ? "" : 'X'); } $col{"name"}{"format"}=sub { - $_[0]=~s#]*>([^<]*)#$1#g; + local $_=$_[0]; + s#]*>([^<]*)#$1#g; return "" .(!$My::Web::W->{"args"}{"W"} ? "" : $item{$_[1]}{"priority"}.":") - .$_[0].""; + .$_.""; }; $col{"license"}{"format"}=sub { @@ -148,16 +148,16 @@ if (!$W->{"args"}{"platform"}) { &{$print_one_platform}(undef()); } else { - my @platforms=@My::Project::platforms; + my @platforms=@project::Lib::platforms; while (@platforms) { my $platform_sym =shift @platforms; my $platform_name=shift @platforms; - print ''; - print "

    $platform_name

    "; - print '
    '."\n"; + print '

    '.$platform_name.'

    '."\n"; &{$print_one_platform}($platform_sym); } } My::Web->footer(); +} +1; diff --git a/project/Makefile.am b/project/Makefile.am index 5691c1d..71cf3b8 100644 --- a/project/Makefile.am +++ b/project/Makefile.am @@ -88,9 +88,17 @@ SUBDIRS= \ ntfsprogsgnomevfs \ udpgate +SUBDIRS: Makefile + @echo $(SUBDIRS) >$@ + +MODPERL_PM+= \ + Index.pm \ + ChangeLog.pm \ + Pod2Html.pm \ + List.pm \ + Rel.pm + EXTRA_DIST+= \ - Index.html.pl \ - ChangeLog.txt.pl \ - Pod2Html.html.pl \ - List.html.pl \ - Rel.pl + Lib.pm \ + checkListItem.pl + diff --git a/project/MyWeb/Index.html.pl b/project/MyWeb/Index.html.pl deleted file mode 100755 index 2f48d0c..0000000 --- a/project/MyWeb/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::MyWeb' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::MyWeb::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::MyWeb::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::MyWeb::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/MyWeb/ListItem.pm b/project/MyWeb/Index.pm old mode 100755 new mode 100644 similarity index 77% rename from project/MyWeb/ListItem.pm rename to project/MyWeb/Index.pm index e9b9bec..c2aa4f1 --- a/project/MyWeb/ListItem.pm +++ b/project/MyWeb/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::MyWeb' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::MyWeb' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::MyWeb::ListItem; +package project::MyWeb::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -35,8 +34,8 @@ our @ListItem=( "cvs"=>"MyWeb", "cvs-for mod_perl2"=>"MyWeb:apache2", "cvs-of example web"=>"www/www.jankratochvil.net", - "link-Example web"=>a_href('http://www.jankratochvil.net/'), - "summary"=>a_href('http://www.perl.org/','Perl')." web framework", + "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", "maintenance"=>"ready", "language"=>"Perl", @@ -47,4 +46,11 @@ it.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/MyWeb/Makefile.am b/project/MyWeb/Makefile.am index abc4f09..1321d93 100644 --- a/project/MyWeb/Makefile.am +++ b/project/MyWeb/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/Nokia61/Index.html.pl b/project/Nokia61/Index.html.pl deleted file mode 100755 index 82b1953..0000000 --- a/project/Nokia61/Index.html.pl +++ /dev/null @@ -1,55 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::Nokia61' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::Nokia61::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::Nokia61::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::Nokia61::ListItem::ListItem, - ); - -do { My::Web::make("make -s $_") if ! -f $_; } for ("./Nokia61"); -print <<"HERE"; - - - - - - - -
    - - @{[ img 'Nokia61.jpeg','Illustration' ]}
    -HERE - -My::Web->footer(); diff --git a/project/Nokia61/ListItem.pm b/project/Nokia61/Index.pm old mode 100755 new mode 100644 similarity index 69% rename from project/Nokia61/ListItem.pm rename to project/Nokia61/Index.pm index d5b717a..e2ef85c --- a/project/Nokia61/ListItem.pm +++ b/project/Nokia61/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::Nokia61' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::Nokia61' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::Nokia61::ListItem; +package project::Nokia61::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -47,4 +46,28 @@ in rows.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->make_file(path_abs_disk("Nokia61")); +print <<"HERE"; + + + + + + + +
    + +

    @{[ a_href 'Nokia61.php?base=.%2F','Program on-line.' ]}

    + +
    @{[ img 'Nokia61.jpeg','Illustration' ]}
    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/Nokia61/Makefile.am b/project/Nokia61/Makefile.am index a7798b9..b9d78b3 100644 --- a/project/Nokia61/Makefile.am +++ b/project/Nokia61/Makefile.am @@ -18,13 +18,13 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm Nokia61: Nokia61.c gcc -Wall -ggdb3 -o $@ $< CLEANFILES+= \ - Nokia61 \ - Nokia61_23.cache + Nokia61 \ + Nokia61_23.cache + diff --git a/project/PerlMail/Index.html.pl b/project/PerlMail/Index.html.pl deleted file mode 100755 index f9048f7..0000000 --- a/project/PerlMail/Index.html.pl +++ /dev/null @@ -1,57 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::PerlMail' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::PerlMail::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::PerlMail::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::PerlMail::ListItem::ListItem, - ); - - -print <<"HERE"; -

    Features list

    -
      -
    • Powerful filtering by @{[ a_href 'http://www.perl.org/','Perl' ]} rules
    • -
    • Safe mails transfer to remote user workstation while using possibly dynamic IP
    • -
    • Event driven immediate response, no polling (IMAP/POP3 poll)
    • -
    • No risk of SMTP error mails during remote workstation connection problems
    • -
    • SMS-forwarder featuring - @{[ a_href 'http://search.cpan.org/author/JARIAALTO/Lingua-EN-Squeeze-1998.1204/','Lingua::EN::Squeeze' ]}, - MIME decoding, HTML conversion
    • -
    • Outgoing mail headers mangling by per-recipient rules
    • -
    • @{[ a_href 'http://www.mutt.org/','Mutt' ]} mailer integration
    • -
    • @{[ a_href 'http://www.nokia.com/phones/9110i','Nokia Communicator' ]} contacts directory conversion
    • -
    -HERE - - -My::Web->footer(); diff --git a/project/PerlMail/ListItem.pm b/project/PerlMail/Index.pm old mode 100755 new mode 100644 similarity index 60% rename from project/PerlMail/ListItem.pm rename to project/PerlMail/Index.pm index c0bb03b..9fbd8d4 --- a/project/PerlMail/ListItem.pm +++ b/project/PerlMail/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::PerlMail' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::PerlMail' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::PerlMail::ListItem; +package project::PerlMail::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -35,11 +34,11 @@ our @ListItem=( "cvs"=>"PerlMail", # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} "link-README"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/PerlMail/README?rev=HEAD", - "summary"=>"Perl mail processor - ".a_href('http://www.procmail.org/','procmail')."(1) successor", + "summary"=>sub { return "Perl mail processor - ".a_href('http://www.procmail.org/','procmail')."(1) successor"; }, "license"=>"GPL", "maintenance"=>"ready", "language"=>"Perl", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    Successor to @{[ a_href 'http://www.procmail.org/','procmail' ]}(1) and @{[ a_href 'http://search.cpan.org/author/SIMON/Mail-Audit-2.1/','Mail::Audit' ]}. It supports @{[ a_href 'http://www.perl.org/','Perl' ]}-rules filtering, dynamic client IP, @@ -51,4 +50,28 @@ mobile SMS forwarding, @{[ a_href 'http://www.mutt.org/','Mutt' ]} integration, HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    Features list

    +
      +
    • Powerful filtering by @{[ a_href 'http://www.perl.org/','Perl' ]} rules
    • +
    • Safe mails transfer to remote user workstation while using possibly dynamic IP
    • +
    • Event driven immediate response, no polling (IMAP/POP3 poll)
    • +
    • No risk of SMTP error mails during remote workstation connection problems
    • +
    • SMS-forwarder featuring + @{[ a_href 'http://search.cpan.org/author/JARIAALTO/Lingua-EN-Squeeze-1998.1204/','Lingua::EN::Squeeze' ]}, + MIME decoding, HTML conversion
    • +
    • Outgoing mail headers mangling by per-recipient rules
    • +
    • @{[ a_href 'http://www.mutt.org/','Mutt' ]} mailer integration
    • +
    • @{[ a_href 'http://www.nokia.com/phones/9110i','Nokia Communicator' ]} contacts directory conversion
    • +
    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/PerlMail/Makefile.am b/project/PerlMail/Makefile.am index 5b04f16..394ea7e 100644 --- a/project/PerlMail/Makefile.am +++ b/project/PerlMail/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/Pod2Html.html.pl b/project/Pod2Html.pm similarity index 79% rename from project/Pod2Html.html.pl rename to project/Pod2Html.pm index 7214962..1918d20 100755 --- a/project/Pod2Html.html.pl +++ b/project/Pod2Html.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # URL redirector of &My::Web::a_href Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,22 +23,30 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; +our $HTML_TEST=0; + +sub handler +{ my $W=My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "header_only"=>1, "args_check"=>{ "cvs"=>'^[\w\d][\w\d/.]*$', }, ); -$W->{"r"}->send_http_header("text/html"); + +$W->{"r"}->content_type("text/html"); local *F; open F,"lynx -source ".$W->{"project_viewcvs"}."*checkout*/".$W->{"args"}{"cvs"}."?rev=HEAD" ." |pod2html -" ." |"; -print while ; +print $_ while ; close F; + + +exit 0; +} +1; diff --git a/project/PortDiag/Index.html.pl b/project/PortDiag/Index.html.pl deleted file mode 100755 index 12d64e8..0000000 --- a/project/PortDiag/Index.html.pl +++ /dev/null @@ -1,43 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::PortDiag' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::PortDiag::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::PortDiag::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::PortDiag::ListItem::ListItem, - ); - - -print centerimg "PortDiag","PortDiag Snapshot"; - - -My::Web->footer(); diff --git a/project/PortDiag/ListItem.pm b/project/PortDiag/Index.pm old mode 100755 new mode 100644 similarity index 82% rename from project/PortDiag/ListItem.pm rename to project/PortDiag/Index.pm index 29da200..73d8ed9 --- a/project/PortDiag/ListItem.pm +++ b/project/PortDiag/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::PortDiag' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::PortDiag' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::PortDiag::ListItem; +package project::PortDiag::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -40,7 +39,7 @@ our @ListItem=( "license"=>"PD", "maintenance"=>"ready", "language"=>"680x0 asm", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    PortDiag is generally used for low-level hardware watching and modifying. It has support for all the bits of the four CIA ports, digital and analog parts of the game ports, serial port TXD and RXD signals and selective system @@ -50,4 +49,14 @@ allocation of this hardware.

    HERE ); +sub handler +{ +project::Lib->init(); + + +print centerimg "PortDiag","PortDiag Snapshot"; + + +My::Web->footer(); +} 1; diff --git a/project/PortDiag/Makefile.am b/project/PortDiag/Makefile.am index 08328cd..fd90aaf 100644 --- a/project/PortDiag/Makefile.am +++ b/project/PortDiag/Makefile.am @@ -18,7 +18,9 @@ include $(top_srcdir)/Makefile-head.am +MODPERL_PM+= \ + Index.pm + EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl \ - PortDiag.png + PortDiag.png + diff --git a/project/QueryDev/Index.html.pl b/project/QueryDev/Index.html.pl deleted file mode 100755 index 498db71..0000000 --- a/project/QueryDev/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::QueryDev' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::QueryDev::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::QueryDev::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::QueryDev::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/QueryDev/ListItem.pm b/project/QueryDev/Index.pm old mode 100755 new mode 100644 similarity index 86% rename from project/QueryDev/ListItem.pm rename to project/QueryDev/Index.pm index e00b521..5eb6e99 --- a/project/QueryDev/ListItem.pm +++ b/project/QueryDev/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::QueryDev' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::QueryDev' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::QueryDev::ListItem; +package project::QueryDev::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -47,4 +46,11 @@ device name to the specified variable.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/QueryDev/Makefile.am b/project/QueryDev/Makefile.am index b4a1946..220f914 100644 --- a/project/QueryDev/Makefile.am +++ b/project/QueryDev/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/Rel.pl b/project/Rel.pm similarity index 75% rename from project/Rel.pl rename to project/Rel.pm index fd39944..196326a 100755 --- a/project/Rel.pl +++ b/project/Rel.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # List of projects Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,21 +16,23 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::Index; +package project::Rel; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -use Apache::Constants qw(MOVED); -Wrequire 'My::Project'; +use Apache2::Const qw(HTTP_MOVED_TEMPORARILY); +Wrequire 'project::Lib'; + +our $HTML_TEST=0; +sub handler +{ my $W=My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "header_only"=>1, "args_check"=>{ "rel"=>'^(?:prev|next)$', @@ -40,8 +40,9 @@ my $W=My::Web->init( }, ); -my %item=( My::Project::item_hash_read() ); -my @platforms=@My::Project::platforms; + +my %item=project::Lib->name_to_hashref(); +my @platforms=@project::Lib::platforms; my @projects=(); # Do not sort by platforms: # while (@platforms) @@ -65,7 +66,12 @@ for (0..$#projects) { last if $target; } -$W->{"r"}->status(MOVED); -$W->{"r"}->header_out("Location"=>"http://".&{$W->{"web_hostname_sub"}}() +$W->{"r"}->status(HTTP_MOVED_TEMPORARILY); +$W->{"r"}->headers_out()->{"Location"}="http://".$W->{"web_hostname"} # .":7680" # DEBUG - ."/project/".(!$target ? "" : "$target/")); + ."/project/".(!$target ? "" : "$target/"); + + +exit 0; +} +1; diff --git a/project/ResRAM/Index.html.pl b/project/ResRAM/Index.html.pl deleted file mode 100755 index 5280008..0000000 --- a/project/ResRAM/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::ResRAM' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::ResRAM::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::ResRAM::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::ResRAM::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/ResRAM/ListItem.pm b/project/ResRAM/Index.pm old mode 100755 new mode 100644 similarity index 91% rename from project/ResRAM/ListItem.pm rename to project/ResRAM/Index.pm index 6fc4ef0..b206cb0 --- a/project/ResRAM/ListItem.pm +++ b/project/ResRAM/Index.pm @@ -1,7 +1,5 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::ResRAM' for list.cgi.pl +# Main page of 'My::Project::ResRAM' # Copyright (C) 2003 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::ResRAM::ListItem; +package project::ResRAM::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -47,4 +46,11 @@ memory and a reset-surviving resident module is installed.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/ResRAM/Makefile.am b/project/ResRAM/Makefile.am index 587004a..c298a2e 100644 --- a/project/ResRAM/Makefile.am +++ b/project/ResRAM/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/SClock/Index.html.pl b/project/SClock/Index.html.pl deleted file mode 100755 index 8d24758..0000000 --- a/project/SClock/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::SClock' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::SClock::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::SClock::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::SClock::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/SClock/ListItem.pm b/project/SClock/Index.pm old mode 100755 new mode 100644 similarity index 86% rename from project/SClock/ListItem.pm rename to project/SClock/Index.pm index 8e048d5..d1d8047 --- a/project/SClock/ListItem.pm +++ b/project/SClock/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::SClock' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::SClock' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::SClock::ListItem; +package project::SClock::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -49,4 +48,11 @@ but SClock has no need for the TCP: device, the inet-handler and is much faster HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/SClock/Makefile.am b/project/SClock/Makefile.am index 14bf2ee..ad9bcc7 100644 --- a/project/SClock/Makefile.am +++ b/project/SClock/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/ShortRel/Index.html.pl b/project/ShortRel/Index.html.pl deleted file mode 100755 index ff9f832..0000000 --- a/project/ShortRel/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::ShortRel' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::ShortRel::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::ShortRel::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::ShortRel::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/ShortRel/ListItem.pm b/project/ShortRel/Index.pm old mode 100755 new mode 100644 similarity index 87% rename from project/ShortRel/ListItem.pm rename to project/ShortRel/Index.pm index 7d9e8ac..1c76b0e --- a/project/ShortRel/ListItem.pm +++ b/project/ShortRel/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::ShortRel' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::ShortRel' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::ShortRel::ListItem; +package project::ShortRel::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -49,4 +48,11 @@ from 32-bit to 16-bit relocations saves 2 bytes per each one.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/ShortRel/Makefile.am b/project/ShortRel/Makefile.am index ec2c257..3ec1888 100644 --- a/project/ShortRel/Makefile.am +++ b/project/ShortRel/Makefile.am @@ -18,8 +18,10 @@ include $(top_srcdir)/Makefile-head.am +MODPERL_PM+= \ + Index.pm + EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl \ - ShrotRel.lha \ - ShortRel.asm + ShortRel.lha \ + ShortRel.asm + diff --git a/project/TraceFS/Index.html.pl b/project/TraceFS/Index.html.pl deleted file mode 100755 index 6a6fe6b..0000000 --- a/project/TraceFS/Index.html.pl +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::TraceFS' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::TraceFS::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::TraceFS::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::TraceFS::ListItem::ListItem, - ); - - -print <<"HERE"; -@{[ centerimg "/project/captive/doc/ntdebug-windbg-boot","TraceFS Initialization" ]} -@{[ vskip "1ex" ]} -@{[ centerimg "/project/captive/doc/dia/TraceFS","TraceFS Hooking" ]} -HERE - - -My::Web->footer(); diff --git a/project/TraceFS/ListItem.pm b/project/TraceFS/Index.pm old mode 100755 new mode 100644 similarity index 76% rename from project/TraceFS/ListItem.pm rename to project/TraceFS/Index.pm index eaae33c..48e1fae --- a/project/TraceFS/ListItem.pm +++ b/project/TraceFS/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::TraceFS' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::TraceFS' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::TraceFS::ListItem; +package project::TraceFS::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -34,7 +33,7 @@ our @ListItem=( "priority"=>610, "icon"=>"TraceFS-icon", "cvs"=>"captive/src/TraceFS", - "link-Documentation"=>"/project/captive/doc/CacheManager.html.pl#TraceFS", + "link-Documentation"=>"/project/captive/doc/CacheManager.pm#TraceFS", "summary"=>"Microsoft Windows Kernel API Tracer", "license"=>"GPL", "maintenance"=>"ready", @@ -50,4 +49,18 @@ mangling of messages while running by multiple threads at once.

    HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +@{[ centerimg "/project/captive/doc/ntdebug-windbg-boot","TraceFS Initialization" ]} +@{[ vskip "1ex" ]} +@{[ centerimg "/project/captive/doc/dia/TraceFS","TraceFS Hooking" ]} +HERE + + +My::Web->footer(); +} 1; diff --git a/project/TraceFS/Makefile.am b/project/TraceFS/Makefile.am index c561b56..3aa6dd2 100644 --- a/project/TraceFS/Makefile.am +++ b/project/TraceFS/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/badblock_guess/Index.html.pl b/project/badblock_guess/Index.html.pl deleted file mode 100755 index c2122e6..0000000 --- a/project/badblock_guess/Index.html.pl +++ /dev/null @@ -1,51 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::badblock_guess' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::badblock_guess::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::badblock_guess::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::badblock_guess::ListItem::ListItem, - ); - -print <<'HERE'; -

    It is similiar to:

    -
    -dd if=<src_dev> of=<dst_dev> bs=512 conv=noerror,sync -
    -

    but dd(1) solution can last for many weeks/months on heavily -corrupted disk.

    -

    This program will not recover data of any sector with failing read command. -If dd(1) command above finishes for you in a reasonable time, you -do not need this program.

    -HERE - -My::Web->footer(); diff --git a/project/badblock_guess/ListItem.pm b/project/badblock_guess/Index.pm old mode 100755 new mode 100644 similarity index 69% rename from project/badblock_guess/ListItem.pm rename to project/badblock_guess/Index.pm index 37ea617..9e735e7 --- a/project/badblock_guess/ListItem.pm +++ b/project/badblock_guess/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::badblock_guess' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::badblock_guess' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::badblock_guess::ListItem; +package project::badblock_guess::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -48,4 +47,22 @@ while trying to prevent disk read retrying head recalibrations.

    HERE ); +sub handler +{ +project::Lib->init(); + +print <<'HERE'; +

    It is similiar to:

    +
    +

    dd if=<src_dev> of=<dst_dev> bs=512 conv=noerror,sync

    +
    +

    but dd(1) solution can last for many weeks/months on heavily +corrupted disk.

    +

    This program will not recover data of any sector with failing read command. +If dd(1) command above finishes for you in a reasonable time, you +do not need this program.

    +HERE + +My::Web->footer(); +} 1; diff --git a/project/badblock_guess/Makefile.am b/project/badblock_guess/Makefile.am index c759b6b..9433837 100644 --- a/project/badblock_guess/Makefile.am +++ b/project/badblock_guess/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/captive/CVS.html.pl b/project/captive/CVS.pm similarity index 79% rename from project/captive/CVS.html.pl rename to project/captive/CVS.pm index ffcc660..1b6f952 100755 --- a/project/captive/CVS.html.pl +++ b/project/captive/CVS.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # CVS page of 'My::Project::captive' -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,17 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wuse 'My::Project'; -Wuse 'project::captive::ListItem'; +Wuse 'project::Lib'; +Wuse 'project::captive::Index'; -my $W=My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::captive::ListItem::ListItem, +sub handler +{ +my $W=project::Lib->init( + "project_name"=>"captive", "before_project_data"=> - '

    '.a_href('./','Captive Main Page').'

    '."\n", + '

    '.a_href('./','Captive Main Page').'

    '."\n", ); @@ -56,7 +54,8 @@ make

    Download

    - +
    Distribution
    "; + print ''; print ""; for my $casel (1,2,3) { $case=$casel; @@ -128,19 +130,20 @@ for my $dist (@dist) { } @{$pkg{$case}}),map({ (!$_ ? () : (&{$_}())); } $dist->{"after"})); print ""; } - print "\n"; + print "\n"; } print <<"HERE"; - - - + + - -
    + @@ -95,10 +94,13 @@ my($file_base,$text,%args)=@_; my $ntfsprogs_after=sub ($) { my($format)=@_; - return () if $case!=1; - return '
    requirement: ' - .a_href('http://linux-ntfs.sourceforge.net/downloads.html#downloads','ntfsprogs') - .' '.$format.' ≥ 1.8.0'; + return if $case!=1; + return '
    Distribution Installation Case #1
    Filesystem and installer
    (recommended)
    Installation Case #2
    Manual installation
    (filesystem, expert user)
    Installation Case #3
    Command-line client
    (no filesystem access)
    ' + .'
    requirement: ' + .a_href('http://linux-ntfs.sourceforge.net/downloads.html#downloads','ntfsprogs') + .' '.$format.' ≥ 1.8.0' + .'
    ' + .'
    '; }; my @dist=( @@ -117,7 +119,7 @@ my @dist=( ); for my $dist (@dist) { - print "
    ".$dist->{"name"}."
    'captive-static' build
    system patches for Red Hat 9 Shrike
    (never needed for a regular build)
    +
    'captive-static' build
    system patches for Red Hat 9 Shrike
    (never needed for a regular build)
    HERE my $build_static_basename=(map("$_-".$version{$_}.".tar.gz","build-captive-static"))[0]; print a_href "dist/$build_static_basename",$build_static_basename; print <<"HERE"; -
    + + + + @{[ vskip "3ex" ]} @@ -148,8 +151,10 @@ print <<"HERE";

    Pending Integrations

    -
    @{[ a_href $W->{"project_viewcvs"}.'/lufs/','lufs-captive' ]} - [@{[ a_href $W->{"project_viewcvs"}.'/*checkout*/lufs/NEWS.captive?rev=1.1.2.11','NEWS' ]}] +
    + @{[ a_href $W->{"project_viewcvs"}.'/lufs/','lufs-captive' ]} + [@{[ a_href $W->{"project_viewcvs"}.'/*checkout*/lufs/NEWS.captive?rev=1.1.2.11','NEWS' ]}] +

    @{[ a_href 'http://lufs.sourceforge.net/lufs/','LUFS' ]} still has not yet integrated the Captive-developed patches. No integration schedule is currently known.

    @@ -170,3 +175,5 @@ HERE My::Web->footer(); +} +1; diff --git a/project/captive/Index.css b/project/captive/Index.css new file mode 100644 index 0000000..70ae72c --- /dev/null +++ b/project/captive/Index.css @@ -0,0 +1,26 @@ +/* $Id$ + * CSS of main page of 'My::Project::captive' + * Copyright (C) 2003-2005 Jan Kratochvil + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; exactly version 2 of June 1991 is required + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +.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; } +table.download td { padding: 8px; } +table.navigate td { padding-bottom: 1ex; padding-left: 15px; padding-right: 15px; } diff --git a/project/captive/Index.html.pl b/project/captive/Index.pm similarity index 69% rename from project/captive/Index.html.pl rename to project/captive/Index.pm index ce69391..68e3114 100755 --- a/project/captive/Index.html.pl +++ b/project/captive/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Main page of 'My::Project::captive' -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,32 +23,51 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wuse 'My::Project'; -Wuse 'project::captive::ListItem'; - - -my $lang=""; -# do { $lang="de" if $_ && /^de/i; } for ($ENV{"HTTP_ACCEPT_LANGUAGE"}); - +Wuse 'project::Lib'; + + +our @ListItem=( + "name"=>"Captive", + "platform"=>"unixuser", + "priority"=>666, + "summary"=>"The first free NTFS read/write filesystem for GNU/Linux", + "license"=>"GPL", + "maintenance"=>"update", + "language"=>"i386 asm, C, Perl", + "icon"=>"captive-install-acquire-icon", + "cvs-of main tree"=>"captive", + "cvs-of branched ReactOS subdir"=>"reactos:captive", + "cvs-of branched LUFS"=>"lufs:captive", + "cvs-of 'httpcaptive://' method"=>"gnome-vfs-httpcaptive:captive", + "cvs-of 'libntfs://' method"=>"ntfsprogs-gnomevfs", + "description"=>sub { return <<"HERE"; }, +

    Project implements the first full read/write free access to NTFS disk drives. +You can mount your Microsoft Windows NT, 200x or XP partition as +a transparently accessible volume for your GNU/Linux.

    +

    This compatibility was achieved in +the @{[ a_href 'http://www.winehq.com/','Wine' ]} way by using the original +Microsoft Windows ntfs.sys driver. It emulates the required subsystems of +the Microsoft Windows kernel by reusing one of the original +ntoskrnl.exe, @{[ a_href 'http://www.reactos.com/','ReactOS' ]} parts, or +this project's own reimplementations, on a case by case basis. +Project includes the first open source MS-Windows kernel API for Free operating systems. +Involvement of the original driver files was chosen to achieve the best +and unprecedented filesystem compatibility and safety.

    +

    As opposed to other projects this is currently the only software supporting the full +read/write access including the possibility to create/delete files, modify directories +etc.

    +HERE + ); -my $W=My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::captive::ListItem::ListItem, +sub handler +{ +my $W=project::Lib->init( "no_project_data"=>1, - "head_css"=>" -.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; } -table.download td { padding: 8px; } -table.navigate td { padding-bottom: 1ex; padding-left: 15px; padding-right: 15px; } -", + "head"=><<"HERE", + +HERE "project_text_after_title"=>"" - .($lang ne "de" ? "" : "

    Captive:" - ." Das erste kostenlose Programm um auf ein NTFS Dateisystem unter GNU/Linux zu lesen und zu schreiben

    ") .'
    ' .'' .'' @@ -62,11 +79,10 @@ table.navigate td { padding-bottom: 1ex; padding-left: 15px; padding-right: 15px .'' .'' .'
    ', - ($lang eq "" ? () : ("force_charset"=>"utf-8")), ); -print <<"HERE" if !$WebConfig::WebConfig{"no_job"}; +print <<"HERE" if !$W->{"no_job"}; @{[ vskip "3ex" ]}
    @@ -84,49 +100,35 @@ my %version=( ); print <<"HERE"; -

    Download

    +

    Download

    Choose the one preferred installation format:

    -
    - +
    + +

    .tar.gz i386 binary
    (for non-RPM distributions)

    + - +
    -HERE - if ($lang eq "") { - print "RPM i386 binary
    tested for distributions:"; - } - if ($lang eq "de") { - print "RPM i386 Binärcode
    getestet für den Betrieb unter:"; - } -print <<"HERE"; -
      -
    • Red Hat 9 Shrike
    • -
    • Red Hat 8 Psyche
    • -
    • SuSE 9.0
    • -
    • SuSE 9.1
    • -
    • Mandrake 9.1 Bamboo
    • -
    +

    RPM i386 binary
    tested for distributions:

    +
      +
    • Red Hat 9 Shrike
    • +
    • Red Hat 8 Psyche
    • +
    • SuSE 9.0
    • +
    • SuSE 9.1
    • +
    • Mandrake 9.1 Bamboo
    • +
    @{[ a_href 'dist/captive-static-'.$version{"captive"}[0].'-'.$version{"captive"}[1].'.i386.rpm', undef(),"size"=>1,"basename"=>1 ]}
    -HERE - if ($lang eq "") { - print ".tar.gz i386 binary
    (for non-RPM distributions)"; - } - if ($lang eq "de") { - print ".tar.gz i386 Binärcode
    (für Linux Versionen ohne RPM z.B. Knoppix)"; - } -print <<"HERE"; -
    @{[ a_href 'dist/captive-static-'.$version{"captive"}[0].'.tar.gz',undef(),"size"=>1,"basename"=>1 ]}
    Source archives@{[ a_href 'CVS.html.pl#source','download link' ]}@{[ a_href 'CVS.pm#source','download link' ]}
    @@ -135,7 +137,7 @@ print <<"HERE";

    Project is no longer developed. The key functionality is reached by the latest released version. All its resources are available -@{[ a_href 'CVS.html.pl#source','here' ]} for download.

    +@{[ a_href 'CVS.pm#source','here' ]} for download.

    Known Issue

    @@ -157,7 +159,7 @@ problems.

    @{[ vskip "3ex" ]} -

    NEWS

    +

    NEWS

    captive-1.1.5 (2004-01-18) [@{[ a_href $W->{"project_viewcvs"}.'/*checkout*/captive/NEWS?rev=HEAD','archive' ]}]
    @@ -174,7 +176,7 @@ problems.

    @{[ vskip "3ex" ]} -

    Captive NTFS Testimonials

    +

    Captive NTFS Testimonials

    • Hospital of Castelo Branco - Bruno Santos @@ -187,7 +189,7 @@ problems.

      requires some administrator interaction). So, we want to install windows2000 without pressing a key.

      -

      @{[ a_href 'TestimonialBrunoSantos.html.pl','[ more ]' ]}

      +

      @{[ a_href 'TestimonialBrunoSantos.pm','[ more ]' ]}

    • @{[ a_href 'http://www.amunra.co.uk/','Dave "AmunRa" Rigby' ]}

      Ok, I'm impressed (@{[ a_href 'http://www.amunra.co.uk/archives/000028.php','Captive Review' ]})

      @@ -219,35 +221,14 @@ problems.

    -

    @{[ a_href 'Press.html.pl','Internet Press' ]}

    +

    @{[ a_href 'Press.pm','Internet Press' ]}

    @{[ vskip "3ex" ]} -

    -HERE - if ($lang eq "") { - print "Installation Notes"; - } - if ($lang eq "de") { - print "Installationsanleitung"; - } -print <<"HERE"; -

    -HERE - if ($lang eq "") { - print <<"EOF"; +

    Installation Notes

    You should first run captive-install-acquire command to check your available Microsoft Windows drivers versions. Now you can execute:

    -EOF - } - if ($lang eq "de") { - print <<"EOF"; -

    Sie sollten als erstes den Befehl captive-install-acquire -ausführen um ihre Windows Treiber Version zu überprüfen. Nun können sie folgenden Befehl ausführen:

    -EOF - } -print <<"HERE";

    -HERE - if ($lang eq "") { - print <<"EOF";

    Overview

    Any errors from 'captive-lufs' are written to '/var/log/messages'.

    Needed drivers (at least ntoskrnl.exe+ntfs.sys) must be in '/var/lib/captive'.

    'captive' package creates 'captive' user and 'captive' group on your system.

    -EOF - } - if ($lang eq "de") { - print <<"EOF"; -

    Übersicht

    - -

    Jegliche Fehler des 'captive-lufs' werden im Ordner '/var/log/messages' aufgelistet.

    -

    Die Dateien ntoskrnl.exe und ntfs.sys müssen in den '/var/lib/captive'-Ordner kopiert werden. -(Empfehlendswert über ein Wechseldatenträger [CD-ROM, Diskette].)

    -

    Das 'captive' Packet erstellt einen 'captive' Benutzer und eine 'captive' Gruppe auf Ihrem System.

    -

    Übersetzung von Botond Beres.

    -EOF - } -print <<"HERE";

    LUFS Kernel Driver Module

    @@ -333,9 +297,9 @@ my @lists=qw(captive-announce-list captive-list captive-devel-list); print <<"HERE"; -

    Mailing Lists

    +

    Mailing Lists

    -
    + @{[ map('',@lists) ]} - @{[ map({ ""; } @lists) ]} - @{[ map({ ""; } @lists) ]} + @{[ map({ ""; } @lists) ]} + @{[ map({ ""; } @lists) ]}@{[ map(('
    '.$_.'@jankratochvil.net
    New version announcements
    @@ -343,8 +307,8 @@ print <<"HERE";
    User support,
    bug reports
    Development
    ".a_href(&{$W->{"mailman_url_sub"}}()."listinfo/$_",'Mailman Infopage')."
    ".a_href(&{$W->{"pipermail_url_sub"}}()."$_",'Archive')."
    ".a_href($W->{"mailman_url"}."listinfo/$_",'Mailman Infopage')."
    ".a_href($W->{"pipermail_url"}."$_",'Archive')."
    Your new Mailman password:
    Reenter your password:
    -

    +

    + + +

    - @{[ vskip "3ex" ]} -

    See Also

    +

    See Also

      -
    • @{[ a_href 'Preview.html.pl','Technology Preview' ]}
    • -
    • @{[ a_href 'CVS.html.pl','Download Sources, CVS Repository' ]}
    • +
    • @{[ a_href 'Preview.pm','Technology Preview' ]}
    • +
    • @{[ a_href 'CVS.pm','Download Sources, CVS Repository' ]}
    • @{[ a_href 'doc/','Developer Documentation' ]}; highlights:
        -
      • @{[ a_href 'doc/About.html.pl#versions','Microsoft Windows Versions Compatibility' ]}
      • -
      • @{[ a_href 'doc/Architecture.html.pl#law','Laws and Licensing Conditions' ]}
      • -
      • @{[ a_href 'doc/Details.html.pl#sandbox','Sandboxing of W32 Filesystem' ]}
      • -
      • @{[ a_href 'doc/TODO.html.pl#todo_fsck','TODO: Fsck of NTFS' ]}
      • -
      • @{[ a_href 'doc/TODO.html.pl#todo_surprise','TODO: NTFS Support for Partition Surprise' ]}
      • -
      • @{[ a_href 'doc/Related.html.pl#LinuxNTFScompet','Related Projects - Linux NTFS' ]}
      • -
      • @{[ a_href 'doc/Related.html.pl#vmware','Related Projects - VMware Workstation' ]}
      • -
      • @{[ a_href 'doc/LinuxNTFS.html.pl',"Re: 7.7 Can't we write a wrapper for Windows' driver?" ]}
      • +
      • @{[ a_href 'doc/About.pm#versions','Microsoft Windows Versions Compatibility' ]}
      • +
      • @{[ a_href 'doc/Architecture.pm#law','Laws and Licensing Conditions' ]}
      • +
      • @{[ a_href 'doc/Details.pm#sandbox','Sandboxing of W32 Filesystem' ]}
      • +
      • @{[ a_href 'doc/TODO.pm#todo_fsck','TODO: Fsck of NTFS' ]}
      • +
      • @{[ a_href 'doc/TODO.pm#todo_surprise','TODO: NTFS Support for Partition Surprise' ]}
      • +
      • @{[ a_href 'doc/Related.pm#LinuxNTFScompet','Related Projects - Linux NTFS' ]}
      • +
      • @{[ a_href 'doc/Related.pm#vmware','Related Projects - VMware Workstation' ]}
      • +
      • @{[ a_href 'doc/LinuxNTFS.pm',"Re: 7.7 Can't we write a wrapper for Windows' driver?" ]}
    • @{[ a_href $W->{"project_viewcvs"}.'/*checkout*/captive/TODO?rev=HEAD','Known Bugs' ]}
    • Man Pages
        @@ -402,10 +368,12 @@ print <<"HERE"; } ]}
    • -
    • @{[ a_href 'Resources.html.pl','Related Pages' ]}
    • -
    • @{[ a_href 'Thanks.html.pl','Thanks' ]}
    • +
    • @{[ a_href 'Resources.pm','Related Pages' ]}
    • +
    • @{[ a_href 'Thanks.pm','Thanks' ]}
    HERE My::Web->footer(); +} +1; diff --git a/project/captive/Lib.css b/project/captive/Lib.css new file mode 100644 index 0000000..e213507 --- /dev/null +++ b/project/captive/Lib.css @@ -0,0 +1,20 @@ +/* $Id$ + * Common CSS for project Captive + * Copyright (C) 2003-2005 Jan Kratochvil + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; exactly version 2 of June 1991 is required + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +.name { font-style: italic; } diff --git a/project/captive/ListItem.pm b/project/captive/ListItem.pm deleted file mode 100755 index df82de5..0000000 --- a/project/captive/ListItem.pm +++ /dev/null @@ -1,64 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Definition of 'My::Project::captive' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::captive::ListItem; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -use My::Web; - - -our @ListItem=( - "name"=>"Captive", - "platform"=>"unixuser", - "priority"=>666, - "summary"=>"The first free NTFS read/write filesystem for GNU/Linux", - "license"=>"GPL", - "maintenance"=>"update", - "language"=>"i386 asm, C, Perl", - "icon"=>"captive-install-acquire-icon", - "cvs-of main tree"=>"captive", - "cvs-of branched ".a_href('http://www.reactos.com/','reactos')." subdir"=>"reactos:captive", - "cvs-of branched ".a_href('http://lufs.sourceforge.net/lufs/','lufs')=>"lufs:captive", - "cvs-of 'httpcaptive://' method"=>"gnome-vfs-httpcaptive:captive", - "cvs-of 'libntfs://' method"=>"ntfsprogs-gnomevfs", - "description"=><<"HERE", -

    Project implements the first full read/write free access to NTFS disk drives. -You can mount your Microsoft Windows NT, 200x or XP partition as -a transparently accessible volume for your GNU/Linux.

    -

    This compatibility was achieved in -the @{[ a_href 'http://www.winehq.com/','Wine' ]} way by using the original -Microsoft Windows ntfs.sys driver. It emulates the required subsystems of -the Microsoft Windows kernel by reusing one of the original -ntoskrnl.exe, @{[ a_href 'http://www.reactos.com/','ReactOS' ]} parts, or -this project's own reimplementations, on a case by case basis. -Project includes the first open source MS-Windows kernel API for Free operating systems. -Involvement of the original driver files was chosen to achieve the best -and unprecedented filesystem compatibility and safety.

    -

    As opposed to other projects this is currently the only software supporting the full -read/write access including the possibility to create/delete files, modify directories -etc.

    -HERE - ); - -1; diff --git a/project/captive/Makefile.am b/project/captive/Makefile.am index f22b373..e8826ef 100644 --- a/project/captive/Makefile.am +++ b/project/captive/Makefile.am @@ -21,11 +21,11 @@ include $(top_srcdir)/Makefile-head.am SUBDIRS= \ doc -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl \ - Thanks.html.pl \ - Resources.html.pl \ - Preview.html.pl \ - CVS.html.pl \ - Press.html.pl +MODPERL_PM+= \ + Index.pm \ + Thanks.pm \ + Resources.pm \ + Preview.pm \ + CVS.pm \ + Press.pm + diff --git a/project/captive/Press.html.pl b/project/captive/Press.pm similarity index 92% rename from project/captive/Press.html.pl rename to project/captive/Press.pm index 0b0e51c..134d65e 100755 --- a/project/captive/Press.html.pl +++ b/project/captive/Press.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project Press page Perl template. -# Copyright (C) 2004 Jan Kratochvil +# Copyright (C) 2004-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,22 +23,23 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wrequire 'My::Project'; +Wrequire 'project::Lib'; +sub handler +{ My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Internet Press', - "head_css"=>" -.name { font-style: italic; } -", - "WebConfig::heading_novskip"=>1, + "head"=><<"HERE", + +HERE + "heading_novskip"=>1, "no_job"=>1, + "force_charset"=>"utf-8", ); My::Web->heading(); -print My::Project->section("captive"); +print(project::Lib->section("captive")); print <<'HERE'; @@ -112,4 +111,7 @@ while (@URLs) { print "\t
  • ...
  • \n"; print "\n"; + My::Web->footer(); +} +1; diff --git a/project/captive/Preview.css b/project/captive/Preview.css new file mode 100644 index 0000000..3d25d3a --- /dev/null +++ b/project/captive/Preview.css @@ -0,0 +1,21 @@ +/* $Id$ + * CSS of Captive project Preview page. + * Copyright (C) 2003-2005 Jan Kratochvil + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; exactly version 2 of June 1991 is required + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +td { padding: 10px; text-align: center; } +table { border-collapse: collapse; border-style: solid; } diff --git a/project/captive/Preview.html.pl b/project/captive/Preview.pm similarity index 72% rename from project/captive/Preview.html.pl rename to project/captive/Preview.pm index ca49f1d..ad82a68 100755 --- a/project/captive/Preview.html.pl +++ b/project/captive/Preview.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project Preview page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,22 +23,22 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wrequire 'My::Project'; +Wrequire 'project::Lib'; +sub handler +{ My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Technology Preview', - "head_css"=>" -td { padding: 10px; text-align: center; } -table { border-collapse: collapse; border-style: solid; } -", - "WebConfig::heading_novskip"=>1, + "head"=><<"HERE", + +HERE + "heading_novskip"=>1, ); My::Web->heading(); -print My::Project->section("captive"); +print(project::Lib->section("captive")); + print "

    Captive NTFS Technology Preview

    \n"; @@ -49,18 +47,20 @@ sub preview_img ($$;$) my($file_base,$text,$comment)=@_; return <<"HERE"; - - - -
    @{[ img $file_base,$text ]}
    $text@{[ map((!$_ ? "" : "
    $_"),$comment) ]}
    +
    + + + +
    @{[ img $file_base,$text ]}
    $text@{[ map((!$_ ? "" : "
    $_"),$comment) ]}
    +
    @{[ vskip "3ex" ]} HERE } print preview_img 'doc/ntdebug-ntfs','WinDbg Remote NT Kernel NTFS Debugging'; print preview_img 'doc/dia/arch-all','Captive Components Architecture','' - .'Red color indicates Captive components for the most common LUFS use case.
    ' - .'Violet color indicates system components for the most common LUFS use case.'; + .'Red color indicates Captive components for the most common LUFS use case.
    ' + .'Violet color indicates system components for the most common LUFS use case.'; print preview_img 'doc/arch-captive','Captive Subsystems Architecture'; print preview_img 'doc/arch-W32','Original Microsoft Windows Subsystems Architecture'; print preview_img 'doc/ratio','Functions Reusal Ratio'; @@ -74,3 +74,5 @@ print preview_img 'captive-install-acquire','Captive Microsoft Windows Drivers A My::Web->footer(); +} +1; diff --git a/project/captive/Resources.html.pl b/project/captive/Resources.pm similarity index 90% rename from project/captive/Resources.html.pl rename to project/captive/Resources.pm index eb6aacb..1af3c8d 100755 --- a/project/captive/Resources.html.pl +++ b/project/captive/Resources.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project Resources page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,18 +23,18 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wrequire 'My::Project'; +Wrequire 'project::Lib'; +sub handler +{ My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Internet Resources', - "WebConfig::heading_novskip"=>1, + "heading_novskip"=>1, ); My::Web->heading(); -print My::Project->section("captive"); +print(project::Lib->section("captive")); print "

    Captive NTFS Internet Resources

    \n"; @@ -76,3 +74,5 @@ print "\n"; My::Web->footer(); +} +1; diff --git a/project/captive/TestimonialBrunoSantos.html.pl b/project/captive/TestimonialBrunoSantos.pm similarity index 90% rename from project/captive/TestimonialBrunoSantos.html.pl rename to project/captive/TestimonialBrunoSantos.pm index 1521798..69f4dcc 100755 --- a/project/captive/TestimonialBrunoSantos.html.pl +++ b/project/captive/TestimonialBrunoSantos.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project TestimonialBrunoSantos page Perl template. -# Copyright (C) 2004 Jan Kratochvil +# Copyright (C) 2004-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,22 +23,22 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wrequire 'My::Project'; +Wrequire 'project::Lib'; +sub handler +{ My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS - Hospital of Castelo Branco', - "head_css"=>" -.name { font-style: italic; } -", - "WebConfig::heading_novskip"=>1, + "head"=><<"HERE", + +HERE + "heading_novskip"=>1, "no_job"=>1, ); My::Web->heading(); -print My::Project->section("captive"); +print project::Lib->section("captive"); print <<'HERE'; @@ -99,4 +97,7 @@ Av. Pedro Alvares Cabral
    6000-085 Castelo Branco

    HERE + My::Web->footer(); +} +1; diff --git a/project/captive/Thanks.html.pl b/project/captive/Thanks.pm similarity index 88% rename from project/captive/Thanks.html.pl rename to project/captive/Thanks.pm index 3bf92b9..198d271 100755 --- a/project/captive/Thanks.html.pl +++ b/project/captive/Thanks.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project Thanks page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,22 +23,22 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wrequire 'My::Project'; +Wrequire 'project::Lib'; +sub handler +{ My::Web->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Thanks', - "head_css"=>" -.name { font-style: italic; } -", - "WebConfig::heading_novskip"=>1, + "head"=><<"HERE", + +HERE + "heading_novskip"=>1, "no_job"=>1, ); My::Web->heading(); -print My::Project->section("captive"); +print(project::Lib->section("captive")); print <<'HERE'; @@ -89,4 +87,7 @@ print <<'HERE'; HERE + My::Web->footer(); +} +1; diff --git a/project/captive/doc/APITypes.html.pl b/project/captive/doc/APITypes.pm similarity index 83% rename from project/captive/doc/APITypes.html.pl rename to project/captive/doc/APITypes.pm index 9c0476c..60aea6f 100755 --- a/project/captive/doc/APITypes.html.pl +++ b/project/captive/doc/APITypes.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc APITypes page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,24 +23,24 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; BEGIN { Wuse 'project::captive::doc::Macros'; } +sub handler +{ project::captive::doc::Macros->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Developer Documentation: API Functions', - "rel_prev"=>'Details.html.pl', - "rel_next"=>'CallType.html.pl', + "rel_prev"=>'Details.pm', + "rel_next"=>'CallType.pm', ); print <<"HERE"; -

    API Function Implementation Choices

    +

    API Function Implementation Choices

    For each function exported by W32 ntoskrnl.exe and imported and called by the @@ -50,14 +48,14 @@ print <<"HERE"; functionality. Currently implemented functionality statistics are provided below:

    - - - - - - +
    Function type ItemsPortion
    @{[ a_href 'APITypes.html.pl#functype_pass','pass' ]} 81 26%
    @{[ a_href 'APITypes.html.pl#functype_wrap','wrap' ]} 2 0%
    @{[ a_href 'APITypes.html.pl#functype_native_reactos','native-ReactOS' ]} 113 36%
    @{[ a_href 'APITypes.html.pl#functype_native_libcaptive','native-own' ]} 116 38%
    + + + + +
    -
    Function Implementation Types Statistics
    +
    Function type ItemsPortion
    @{[ a_href 'APITypes.pm#functype_pass','pass' ]} 81 26%
    @{[ a_href 'APITypes.pm#functype_wrap','wrap' ]} 2 0%
    @{[ a_href 'APITypes.pm#functype_native_reactos','native-ReactOS' ]} 113 36%
    @{[ a_href 'APITypes.pm#functype_native_libcaptive','native-own' ]} 116 38%
    @{[ doc_img 'ratio','Functions Reusal Ratio' ]} @@ -71,8 +69,8 @@ print <<"HERE"; contain already prepared content at the runtime. There is a problem with patched libraries where it is necessary to also fully implement the data symbol as - @{[ a_href 'APITypes.html.pl#functype_native','native implementation' ]} since there is no - possibility to @{[ a_href 'APITypes.html.pl#functype_pass','pass' ]} the data symbol instead of + @{[ a_href 'APITypes.pm#functype_native','native implementation' ]} since there is no + possibility to @{[ a_href 'APITypes.pm#functype_pass','pass' ]} the data symbol instead of the original W32 data location and therefore there will be two instances of such data variable place. As there will be also the uncaught references for such W32 data location from the patched @@ -94,10 +92,11 @@ print <<"HERE"; captivesym-specific source file syntax please see its documentation: @{[ a_href - '/project/Pod2Html.html.pl?cvs=captive/src/libcaptive/ke/captivesym.pl', + '/project/Pod2Html.pm?cvs=captive/src/libcaptive/ke/captivesym.pl', 'src/libcaptive/ke/captivesym.pl' ]} +

    -

    Direct Pass to Original "ntoskrnl.exe"

    +

    Direct Pass to Original "ntoskrnl.exe"

    Simple (standalone) functions such as RtlTimeToSecondsSince1970() can be simply @@ -109,11 +108,11 @@ print <<"HERE"; GenericTable subsystem or LargeMcb handling.

    -

    Pass from UNIX Code

    +

    Pass from UNIX Code

    Control flow begins in some standard UNIX code. Such code is always - using @{[ a_href 'CallType.html.pl#calltype_cdecl','cdecl call type' ]} for all its - intracalls. Native functions + using @{[ a_href 'CallType.pm#calltype_cdecl','cdecl call type' ]} for all its + intracalls. Native functions compiled from ReactOS sources use their own @{[ a_href '#calltype','cdecl/stdcall/fastcall' ]} declarations but these call type modifications are discarded during compilation for @@ -186,15 +185,15 @@ print <<"HERE"; will return to the UNIX jump table relay which will debug dump the return value and it will finally pass the control back to the UNIX caller in the standard UNIX - @{[ a_href 'CallType.html.pl#calltype_cdecl','cdecl call type' ]}.

    + @{[ a_href 'CallType.pm#calltype_cdecl','cdecl call type' ]}.

    @{[ doc_img 'fig/functype_patched_pass_fromunix', 'Function Type: pass from UNIX Code' ]} -

    Pass from W32 Code

    +

    Pass from W32 Code

    This function type is similiar to the - @{[ a_href 'APITypes.html.pl#functype_pass_fromunix','previous one' ]} with the exception + @{[ a_href 'APITypes.pm#functype_pass_fromunix','previous one' ]} with the exception of more complicated entry point. Unfortunately W32 libraries call their own functions directly, using the call instructions without any patchable jump table. Even the @@ -202,7 +201,7 @@ print <<"HERE"; according to the relocation table record as such library intra-call instruction has no relocation due to its relative argument offset on i386. This time the double-breakpoint - mechanism @{[ a_href 'APITypes.html.pl#functype_pass_fromunix','described above' ]} gets + mechanism @{[ a_href 'APITypes.pm#functype_pass_fromunix','described above' ]} gets handy since it will catch the entry point when the function gets called. SIGSEGV handler gets invoked by the hlt instruction and it will @@ -224,8 +223,8 @@ print <<"HERE";

    The jump table relay used for the callers from W32 code is a different one than the relay being used for the callers - @{[ a_href 'APITypes.html.pl#functype_pass_fromunix','from UNIX code' ]}. UNIX code always - uses relay with external @{[ a_href 'CallType.html.pl#calltype_cdecl','cdecl call type' ]} + @{[ a_href 'APITypes.pm#functype_pass_fromunix','from UNIX code' ]}. UNIX code always + uses relay with external @{[ a_href 'CallType.pm#calltype_cdecl','cdecl call type' ]} but in this case a relay with the appropriate @{[ a_href '#calltype','cdecl/stdcall/fastcall call type' ]} is used.

    @@ -234,24 +233,24 @@ print <<"HERE"; @{[ vskip() ]} - +
    + - -
    Function Type pass Characteristics
    captivesym keywordpass
    Native code function name (no implementation)
    W32 traced code from UNIX function name FUNCNAME
    W32 traced code from W32 function name FUNCNAME_cdecl/_stdcall/_fastcall
    Entry/exit debug tracing from UNIX code yes
    Entry/exit debug tracing from W32 code yes
    Function Type pass Characteristics
    +
    -

    Wrap of the Original "ntoskrnl.exe" Function

    +

    Wrap of the Original "ntoskrnl.exe" Function

    -

    Wrapping of Call from UNIX Code

    +

    Wrapping of Call from UNIX Code

    The code control flow has no special hardcore features since it is - very similiar to the direct pass to + very similiar to the direct pass to W32 function from UNIX code. All the wrapping is done in the - standard UNIX @{[ a_href 'CallType.html.pl#calltype_cdecl','cdecl call type' ]} manner. + standard UNIX @{[ a_href 'CallType.pm#calltype_cdecl','cdecl call type' ]} manner. Jump table debug dumping relays are provided twice — the "outer" one to trace the parameters from the function caller and the "inner" one to trace the call from the wrapper to the @@ -262,11 +261,11 @@ print <<"HERE"; @{[ doc_img 'fig/functype_patched_wrap_fromunix', 'Function Type: wrap from UNIX Code' ]} -

    Wrapping of Call from W32 Code

    +

    Wrapping of Call from W32 Code

    This scheme is a combination of the - previous wrap of a call from - UNIX code and the direct pass from + previous wrap of a call from + UNIX code and the direct pass from the W32 code. The control is caught and redirected by SIGSEGV handler from the breakpoint placed at the entry to the original W32 function code. The second entry @@ -281,7 +280,7 @@ print <<"HERE"; @{[ vskip() ]} -

    Some functions can be passed to the original +

    Some functions can be passed to the original code but they need their parameters to be checked/prepared. Currently, such wrapping is only needed for the ExAllocateFromPagedLookasideList() function @@ -298,7 +297,8 @@ print <<"HERE"; differ across different ntoskrnl.exe versions.

    - +
    + @@ -306,12 +306,11 @@ print <<"HERE"; - -
    Function Type wrap Characteristics
    captivesym keywordwrap
    Native UNIX wrapping code function name FUNCNAME_wrap
    W32 traced wraping code from UNIX func. name FUNCNAME
    W32 traced original code function name FUNCNAME_orig
    Entry/exit debug tracing from UNIX code yes
    Entry/exit debug tracing from W32 code yes
    Function Type wrap Characteristics
    +
    -

    Native Implementation

    +

    Native Implementation

    -

    Native Implementation Called from UNIX Code

    +

    Native Implementation Called from UNIX Code

    This is the simplest case of a function call as it is fully handled only by the compiler and/or linker.

    @@ -328,13 +327,14 @@ print <<"HERE"; the callee are provided with full source file debug information for the debugger. Also the callee usually debug dumps its entry/exit parameters by custom debug dumps in the - ReactOS implementations. + ReactOS implementations. +

    @{[ doc_img 'fig/functype_native_fromunix', 'Function Type: native from UNIX Code' ]} -

    Native Implementation of - "unpatched" Library Function Called from W32 Code

    +

    Native Implementation of + "unpatched" Library Function Called from W32 Code

    @{[ doc_img 'fig/functype_unpatched_native_fromw32', 'Function Type: native of unpatched from W32 Code' ]} @@ -358,20 +358,20 @@ print <<"HERE"; code with the appropriate @{[ a_href '#calltype','cdecl/stdcall/fastcall call type' ]} while the relay will call the implementation of the native function in the - standard UNIX @{[ a_href 'CallType.html.pl#calltype_cdecl','cdecl call type' ]} manner.

    + standard UNIX @{[ a_href 'CallType.pm#calltype_cdecl','cdecl call type' ]} manner.

    -

    Native Implementation of "patched" Library Function Called from W32 Code

    +

    Native Implementation of "patched" Library Function Called from W32 Code

    @{[ doc_img 'fig/functype_patched_native_fromw32', 'Function Type: native of patched from W32 Code' ]}

    The calling scheme is similiar to the - previous call of + previous call of unpatched library function from W32 code but the call control is redirected from the entry point of the original W32 binary implementation by the breakpoint and its SIGSEGV handler as in - the case of passing control from W32 + the case of passing control from W32 call.

    The original W32 function implementation located in the original @@ -392,12 +392,12 @@ print <<"HERE"; project is running pure W32 kernel space environment (in $gnulinux user space!).

    -

    Native Implementation - - ReactOS

    +

    Native Implementation + - ReactOS

    Some functions are already implemented in the $ReactOS project and they can be used as they are. Although it would be - possible to pass some function calls to the + possible to pass some function calls to the original code it is more handy to provide native implementation as there is better control of the data handling during debugging sessions due to the provided debugging symbols.

    @@ -417,18 +417,18 @@ print <<"HERE";

    Functions that were not possible to - @{[ a_href 'APITypes.html.pl#functype_pass','pass' ]} were reimplemented by this project + @{[ a_href 'APITypes.pm#functype_pass','pass' ]} were reimplemented by this project and placed in the project's implementation directories @{[ a_href '#reactos_nocare','instead of extending' ]} $ReactOS code.

    -

    Native Implementation – Wine

    +

    Native Implementation – Wine

    Even though $Wine only implements the Microsoft Windows NT user space, there still are some common functions which could be copied from the $Wine project.

    -

    Native Implementation – Project Specific

    +

    Native Implementation – Project Specific

    As the last resort it was necessary to provide completely own implementation of some API functions such as PC hardware dependent @@ -436,16 +436,16 @@ print <<"HERE"; @{[ vskip() ]} - +
    + - -
    Function Type native Characteristics
    captivesym keyword(none; just the symbol name)
    Native code function name FUNCTIONNAME
    Native traced code from W32 code func. name FUNCTIONNAME_cdecl/_std...
    Entry/exit debug tracing from UNIX code no
    Entry/exit debug tracing from W32 code yes
    Function Type native Characteristics
    +
    -

    Undefined Function

    +

    Undefined Function

    Functions not defined by any of the previous function types cannot be called by any W32 code including the code of the library implementing @@ -464,17 +464,19 @@ print <<"HERE"; undef type to prevent unresolved symbol reference.

    - +
    + - -
    Function Type undef Characteristics
    captivesym keywordundef
    Native code function name (no implementation)
    Native traced code function name FUNCTIONNAME_cdecl/_stdcall/_fastcall
    Debug tracing message from UNIX code yes
    Debug tracing message from W32 code yes
    Function Type undef Characteristics
    +
    HERE project::captive::doc::Macros->footer(); +} +1; diff --git a/project/captive/doc/About.html.pl b/project/captive/doc/About.pm similarity index 88% rename from project/captive/doc/About.html.pl rename to project/captive/doc/About.pm index 444d98d..17a9445 100755 --- a/project/captive/doc/About.html.pl +++ b/project/captive/doc/About.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc About page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,18 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; BEGIN { Wuse 'project::captive::doc::Macros'; } +sub handler +{ project::captive::doc::Macros->init( "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Developer Documentation: About', - "rel_prev"=>'Index.html.pl', - "rel_next"=>'Architecture.html.pl', + "rel_prev"=>'./', + "rel_next"=>'Architecture.pm', ); @@ -44,7 +43,7 @@ print <<"HERE";

    About

    -

    Reasons for the Implementation

    +

    Reasons for the Implementation

    Currently there is no possibility to any of the available $freespeech ($freespeech used in the following text in the meaning of @@ -63,13 +62,13 @@ print <<"HERE"; and XP as NT-5.1.) based operating systems NTFS is the default - disk file system type for vendor preinstalled Microsoft Windows. + disk file system type for vendor preinstalled Microsoft Windows.

    Unfortunately the NTFS filesystem has too complex data structure to allow a complete reverse enginnering process in reasonable time. Currently available $freespeech solutions such as $LinuxNTFS filesystem have already implemented reliable reverse - engineered read-only access. However reliabile + engineered read-only access. However reliabile read-write part of the access would require much better knowledge of the NTFS data structures. Currently only rewriting of already existing file data blocks is supported @@ -78,9 +77,9 @@ print <<"HERE"; would require another major reverse engineering effort.

    -

    Challenges of the Project

    +

    Challenges of the Project

    -

    The ultimate goal of this project is definitely the +

    The ultimate goal of this project is definitely the free implementation of @{[ a_href '#reliability','reliable' ]} read-write NTFS filesystem driver. This project chose to solve this problem in the style of $Wine project by using the original binary @@ -98,7 +97,7 @@ print <<"HERE"; part of W32.

    -

    Microsoft Windows Versions Compatibility

    +

    Microsoft Windows Versions Compatibility

    Currently this project supports only driver files of Microsoft Windows XP (NT-5.1) @@ -128,7 +127,7 @@ print <<"HERE"; Microsoft Windows XP as they are freely downloadable at: @{[ a_href 'http://www.microsoft.com/WindowsXP/pro/downloads/servicepacks/sp1/checkedbuild.asp' ]}

    - There may be @{[ a_href 'Architecture.html.pl#law','legal reasons' ]} you would not be allowed +

    There may be @{[ a_href 'Architecture.pm#law','legal reasons' ]} you would not be allowed to use there files if you own license to a different version of Microsoft Windows. Legal rights will very depending on your country.

    @@ -138,3 +137,5 @@ HERE project::captive::doc::Macros->footer(); +} +1; diff --git a/project/captive/doc/Architecture.html.pl b/project/captive/doc/Architecture.pm similarity index 91% rename from project/captive/doc/Architecture.html.pl rename to project/captive/doc/Architecture.pm index 3054c6a..ae9f170 100755 --- a/project/captive/doc/Architecture.html.pl +++ b/project/captive/doc/Architecture.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc Architecture page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,17 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; BEGIN { Wuse 'project::captive::doc::Macros'; } +sub handler +{ project::captive::doc::Macros->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Developer Documentation: Architecture', - "rel_prev"=>'About.html.pl', - "rel_next"=>'Components.html.pl', + "rel_prev"=>'About.pm', + "rel_next"=>'Components.pm', ); @@ -52,7 +50,7 @@ print <<"HERE"; @{[ doc_img 'arch-W32','Microsoft Windows Subsystems Architecture' ]} @{[ doc_img 'arch-captive','Captive Subsystems Architecture' ]} -

    Existing Emulation Projects

    +

    Existing Emulation Projects

    There were two well-known $freespeech projects emulating W32 subsystems to reach the compatibility with various W32 components: @@ -60,7 +58,8 @@ print <<"HERE"; very well into any role in those two ones. Therefore this project went its own way of emulation:

    - +
    + @@ -79,21 +78,20 @@ print <<"HERE"; - + - -
    Emulation Projects Characteristics
    @{[ a_href '#guestosnote','Guest-OS' ]} @{[ a_href '#hostosnote' ,'Host-OS' ]}W32 kernel and user space ntoskrnl.exe
    this project $gnulinux W32 kernel ntoskrnl.exe
    Emulation Projects Characteristics
    +
    -
    Guest-OS
    +
    Guest-OS
    @{[ a_href 'http://www.vmware.com/support/reference/common/glossary/#guestos','Guest OS' ]}: An operating system that runs inside a virtual machine.
    -
    Host OS
    +
    Host OS
    @{[ a_href 'http://www.vmware.com/support/reference/common/glossary/#hostos' ,'Host OS' ]}: An operating system that runs on the host machine.
    @@ -106,7 +104,7 @@ print <<"HERE"; which better suits the needs of this project by its already implemented W32 kernel space emulation.

    -

    The original reasons for developing +

    The original reasons for developing $ReactOS still make no sense to the author of this project. Free implementation of W32 platform standalone running on the machine hardware is no longer free as most od the W32 applications are usually closed source @@ -151,7 +149,7 @@ print <<"HERE"; i486, ...).

    -

    Laws and Licensing Conditions

    +

    Laws and Licensing Conditions

    If you are an authorized user of Microsoft Windows NT the laws in some @@ -160,7 +158,7 @@ print <<"HERE"; to agree with the product license forbidding such disassembly as the country laws override any such license agreement.

    -

    Microsoft Service Pack

    +

    Microsoft Service Pack

    Sometimes you may have the legal license for Microsoft Windows NT @@ -208,3 +206,5 @@ HERE project::captive::doc::Macros->footer(); +} +1; diff --git a/project/captive/doc/CacheManager.html.pl b/project/captive/doc/CacheManager.pm similarity index 91% rename from project/captive/doc/CacheManager.html.pl rename to project/captive/doc/CacheManager.pm index ba02996..82197bc 100755 --- a/project/captive/doc/CacheManager.html.pl +++ b/project/captive/doc/CacheManager.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc Cache Manager page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,24 +23,24 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; BEGIN { Wuse 'project::captive::doc::Macros'; } +sub handler +{ project::captive::doc::Macros->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Developer Documentation: NT Cache Manager', - "rel_prev"=>'Reverse.html.pl', - "rel_next"=>'Details.html.pl', + "rel_prev"=>'Reverse.pm', + "rel_next"=>'Details.pm', ); print <<"HERE"; -

    NT Cache Manager

    +

    NT Cache Manager

    Although there exist some 3rd party documents about NT Cache Manager W32 subsystem such as @@ -65,7 +63,7 @@ print <<"HERE"; (ImageSectionObject), insufficient system resources from NT Memory Manager or general effort to perform caching features for system performance.

    - NT Cache Manager of this project has much +

    NT Cache Manager of this project has much simpler goal - it just needs to provide compatible NT Cache Manager functionality while the other goals of its W32 counterpart are left to be successfuly handled @@ -108,7 +106,7 @@ print <<"HERE"; it is permitted to extend mapped size even in the case of existing (and dirty) Map or Pin mappings.

    -

    PCACHE_MANAGER_CALLBACKS argument can be +

    PCACHE_MANAGER_CALLBACKS argument can be safely ignored:

    @@ -147,8 +145,8 @@ print <<"HERE"; as it may be locked by existing ImageSectionObject of some file being executed etc. - It is fatal to destroy - SharedCacheMap + It is fatal to destroy + SharedCacheMap in the moment you see no other references to it as the driver will access it for some moment even after CcUninitializeCacheMap(). @@ -158,7 +156,7 @@ print <<"HERE"; Fortunately it is safe to never destroy SharedCacheMap and leave it leaked - everything gets clean in the - @{[ a_href 'Details.html.pl#sandbox','sandboxed environment' ]} soon anyway.

    + @{[ a_href 'Details.pm#sandbox','sandboxed environment' ]} soon anyway.

    There exist Map and Pin type objects for each SharedCacheMap although they look very similiar. @@ -190,16 +188,16 @@ print <<"HERE";

    Pin

    Pin mapping always represents just one physical page - (PAGE_SIZE &nspan; 4096 for i386). + (PAGE_SIZE – 4096 for i386). Its base offset/length can be safely extended to be aligned to the requested page.

    Pin can have associated pair of oldest and newest - LSN (Linear Sequence Number). It can be set by CcSetDirtyPinnedData() and Cache Manager always tracks the lowest and highest - reported LSN is assumed to be + reported LSN for each page. + LSN is assumed to be 0 if not set.

    Any existing Pin mapping will be reused for further mappings @@ -212,10 +210,10 @@ print <<"HERE"; There can exist multiple Pin mappings of the same page (although sharing the same memory space). This detaching must be implemented even in the - @{[ a_href 'Details.html.pl#synchronous','single-threaded' ]} W32 implementation + @{[ a_href 'Details.pm#synchronous','single-threaded' ]} W32 implementation of this project as it is affecting the behaviour of Cache Manager. It was never - @{[ a_href 'CacheManager.html.pl#TraceFS','seen' ]} how to behave if multiple dirty Pin + @{[ a_href 'CacheManager.pm#TraceFS','seen' ]} how to behave if multiple dirty Pin mappings of the same page exist.

    @@ -235,14 +233,14 @@ print <<"HERE"; their last unreferencing (in opposite of @{[ a_href '#sharedcachemap_leak','leaked SharedCacheMap' ]}). Despite it any dirty pages may still be held as the pages - (including their LSNs) are cached associated with SharedCacheMap. It may be also possible original Microsoft Windows Cache Manager postpones Pin mapping destroy to later time but it does not matter.

    -

    TraceFS NT Cache Manager Tracer

    +

    TraceFS NT Cache Manager Tracer

    @{[ a_href '#cache_manager','Cache Manager behaviour' ]} would be hard to analyze just by @{[ a_href '#reverse','reverse engineering' ]} as it @@ -275,7 +273,7 @@ print <<"HERE";

    You can now pray a bit and snap the resulting Cache Manager tracing from WinDbg by - @{[ a_href 'Reverse.html.pl#WinDbg','W32 remote kernel debugging' ]}:

    + @{[ a_href 'Reverse.pm#WinDbg','W32 remote kernel debugging' ]}:

    @{[ doc_img 'ntdebug-windbg-boot','Successfuly connected WinDbg' ]} @@ -297,7 +295,7 @@ print <<"HERE"; @{[ captive_srcfile './src/TraceFS/checktrace.pl' ]} Perl Cache Manager validator.

    -

    TraceFS for general API tracing

    +

    TraceFS for general API tracing

    Although TraceFS was up to now used only for tracing of NT Cache Manager it can be easily @@ -327,3 +325,5 @@ HERE project::captive::doc::Macros->footer(); +} +1; diff --git a/project/captive/doc/CallType.html.pl b/project/captive/doc/CallType.pm similarity index 86% rename from project/captive/doc/CallType.html.pl rename to project/captive/doc/CallType.pm index d1e3049..8f80e99 100755 --- a/project/captive/doc/CallType.html.pl +++ b/project/captive/doc/CallType.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc Calling Types page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,27 +23,27 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; BEGIN { Wuse 'project::captive::doc::Macros'; } +sub handler +{ project::captive::doc::Macros->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Developer Documentation: API Calling Conventions', - "rel_prev"=>'APITypes.html.pl', - "rel_next"=>'TODO.html.pl', + "rel_prev"=>'APITypes.pm', + "rel_next"=>'TODO.pm', ); print <<"HERE"; -

    API Function Calling Conventions

    +

    API Function Calling Conventions

    Standard UNIX code compiled by GCC (GNU C Compiler) running on host - $gnulinux always uses @{[ a_href 'CallType.html.pl#calltype_cdecl','cdecl' ]} ABI (Application + $gnulinux always uses @{[ a_href 'CallType.pm#calltype_cdecl','cdecl' ]} ABI (Application Binary Interface) calling convention. This calling convention is also the default declaration type of UNIX functions.

    @@ -75,7 +73,7 @@ print <<"HERE"; occurs the calling type presented between the caller and callee should be checked.

    -

    W32 Calling Convention "cdecl"

    +

    W32 Calling Convention "cdecl"

    The only calling convention in the UNIX world. The default one for all the compilers. All the arguments are passed on the stack, no arguments @@ -86,15 +84,15 @@ print <<"HERE"; @{[ doc_img 'fig/calltype_cdecl', 'W32 Calling Convention cdecl Scheme' ]} - +
    + - -
    Calling Convention cdecl Characteristics
    Arguments freed by caller
    Arguments on the stack #0 ... #(n-1)
    Arguments in the registers none
    GCC attribute __attribute__((__cdecl__)) (default)
    Calling Convention cdecl Characteristics
    +
    -

    W32 Calling Convention "stdcall"

    +

    W32 Calling Convention "stdcall"

    @{[ doc_img 'fig/calltype_stdcall', 'W32 Calling Convention stdcall Scheme' ]} @@ -104,18 +102,18 @@ print <<"HERE"; arguments are cleaned by the callee. Possible inconsistencies in the number of function arguments with the function prototype used by the caller will result in fatal crash. Variable arguments lists cannot be - passed by this convention – use @{[ a_href 'CallType.html.pl#calltype_cdecl','cdecl' ]} + passed by this convention – use @{[ a_href 'CallType.pm#calltype_cdecl','cdecl' ]} instead.

    - +
    + - -
    Calling Convention stdcall Characteristics
    Arguments freed by callee
    Arguments on the stack #0 ... #(n-1)
    Arguments in the registers none
    GCC attribute __attribute__((__stdcall__))
    Calling Convention stdcall Characteristics
    +
    -

    W32 Calling Convention "fastcall"

    +

    W32 Calling Convention "fastcall"

    Convention never used in the UNIX world. It needs to be specified for W32 compilers. Convention used in the W32 world for its low calling @@ -125,7 +123,7 @@ print <<"HERE"; EDX respectively. Possible inconsistencies in the number of function arguments with the function prototype used by the caller will result in fatal crash. Variable arguments lists cannot be - passed by this convention – use @{[ a_href 'CallType.html.pl#calltype_cdecl','cdecl' ]} + passed by this convention – use @{[ a_href 'CallType.pm#calltype_cdecl','cdecl' ]} instead.

    GCC (GNU C Compiler) native support for this calling convention @@ -145,7 +143,8 @@ print <<"HERE"; @{[ doc_img 'fig/calltype_fastcall', 'W32 Calling Convention fastcall Scheme' ]} - +
    + - -
    Calling Convention fastcall Characteristics
    Arguments freed by callee
    Arguments on the stack #2 ... #(n-1)
    Arguments in the registers ECX=#0, @@ -153,11 +152,12 @@ print <<"HERE";
    GCC ≥3.4 attribute __attribute__((__fastcall__))
    GCC <3.4 attr. emulation__attribute__((__stdcall__))
    __attribute__((__regparm__(3) /* EAX,EDX,ECX */))
    Calling Convention fastcall Characteristics
    +
    HERE project::captive::doc::Macros->footer(); +} +1; diff --git a/project/captive/doc/Components.html.pl b/project/captive/doc/Components.pm similarity index 89% rename from project/captive/doc/Components.html.pl rename to project/captive/doc/Components.pm index 03183d6..4234b9a 100755 --- a/project/captive/doc/Components.html.pl +++ b/project/captive/doc/Components.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc Components page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,18 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; BEGIN { Wuse 'project::captive::doc::Macros'; } +sub handler +{ project::captive::doc::Macros->init( "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Developer Documentation: Components', - "rel_prev"=>'Architecture.html.pl', - "rel_next"=>'Reverse.html.pl', + "rel_prev"=>'Architecture.pm', + "rel_next"=>'Reverse.pm', ); @@ -82,13 +81,13 @@ print <<"HERE"; file:///dev/hda3#captive-fastfat:/autoexec.bat

    - captive-bug-replay serves just for debugging +

    captive-bug-replay serves just for debugging purposes — you can 'replay' existing file.captivebug.xml.gz automatically being generated during W32 filesystem failure. This bugreport file will contain all the touched data blocks of the device used in the moment of the failure. captive-bug-replay will therefore - emulate internal virtual writable device out of these bugreported data. + emulate internal virtual writable device out of these bugreported data.

    If the passed device reference is requested by the user to be accessed either in --ro (read-only) mode or in the @@ -98,12 +97,12 @@ print <<"HERE"; read-write device on top of the real read-only device by the method of non-persistent memory buffering of all the possible write requests.

    - sandbox commit buffer is involved only in the - case @{[ a_href 'Details.html.pl#sandbox','sandboxing feature' ]} is active. It will +

    sandbox commit buffer is involved only in the + case @{[ a_href 'Details.pm#sandbox','sandboxing feature' ]} is active. It will buffer any writes to the device during the sandbox run to prevent filesystem damage if the driver would fail in the meantime. If the filesystem gets finally successfully unmounted this sandbox buffer can be - safely flushed + safely flushed to its underlying physical media. The buffer will be dropped in the case of filesystem failure, of course. The filesystem should be unmounted from time to time — it can be transparently unmounted and mounted @@ -117,7 +116,7 @@ print <<"HERE"; Now we need to transparently @{[ captive_srcfile 'src/libcaptive/sandbox/sandbox.idl','connect' ]} the device interface of GIOChannel type through - @{[ a_href 'Details.html.pl#sandbox','CORBA/ORBit' ]} to the sandboxed slave. + @{[ a_href 'Details.pm#sandbox','CORBA/ORBit' ]} to the sandboxed slave.

    Such device is still only a UNIX style GLib GIOChannel type at this point. As we need to supply it @@ -145,14 +144,14 @@ print <<"HERE";

    The filesystem driver is called by the core W32 kernel implementation of libcaptive in - @{[ a_href 'Details.html.pl#synchronous','synchronous way' ]} in single-shot manner instead of + @{[ a_href 'Details.pm#synchronous','synchronous way' ]} in single-shot manner instead of the several reentrancies while waiting for the disk I/O completions as can be seen in the original Microsoft Windows NT. This single-shot synchronous behaviour is possible since all the needed resources (disk blocks etc.) can be always presented as instantly ready as - their acquirement is solved by @{[ a_href 'Architecture.html.pl#hostosnote','Host-OS' ]} outside of - the W32 emulated @{[ a_href 'Architecture.html.pl#guestosnote','Guest-OS' ]} environment. + their acquirement is solved by @{[ a_href 'Architecture.pm#hostosnote','Host-OS' ]} outside of + the W32 emulated @{[ a_href 'Architecture.pm#guestosnote','Guest-OS' ]} environment. For several cases needed only by ntfs.sys there had to be supported asynchronous access — parallel execution is emulated by GLib g_idle_add_full() @@ -178,7 +177,7 @@ print <<"HERE"; a custom application accessing the W32 filesystem driver.

    -

    @{[ a_href 'Details.html.pl#sandbox','CORBA/ORBit' ]} hits us again – we need to +

    @{[ a_href 'Details.pm#sandbox','CORBA/ORBit' ]} hits us again – we need to @{[ captive_srcfile 'src/libcaptive/sandbox/sandbox.idl','translate' ]} the @{[ a_href '#client_interface','custom filesystem API interface' ]} out of the sandboxed slave to the UNIX space.

    @@ -186,10 +185,10 @@ print <<"HERE";

    captive sandbox master provides the functionality of covering any possible sandboxed slave restarts and its communication. It is also capable of - demultiplexing single API operations + demultiplexing single API operations to multiple its connected sandbox slaves in transparent way as each of them handles - @{[ a_href 'Details.html.pl#mounted_one','just one filesystem device' ]}.

    + @{[ a_href 'Details.pm#mounted_one','just one filesystem device' ]}.

    The rest of the story is not much special for this project since this is a common UNIX problem how to offer user space implemented UNIX filesystem @@ -202,7 +201,7 @@ print <<"HERE";

    Custom client

    One possibility would be to write - a custom client application + a custom client application for this project such as file manager or a shell. Although it would implement the most appropriate user interface to the set of functions offered by this project (and W32 filesystem API) it has the @@ -225,7 +224,7 @@ print <<"HERE"; needs multiple operating threads (each UNIX kernel operation needs one free lufsd slot/thread to not to fail immediately). As libcaptive is - @{[ a_href 'Details.html.pl#synchronous','single-threaded' ]} all the operations + @{[ a_href 'Details.pm#synchronous','single-threaded' ]} all the operations get always synchronized by liblufs-captivefs before their pass over to libcaptive.

    @@ -262,7 +261,7 @@ print <<"HERE";
    Custom NFS server

    The common approach - of filesystem implementations + of filesystem implementations outside UNIX OS kernel were custom NFS servers usually running on the same machine as the NFS-connected client as such NFS server is usually an ordinary UNIX user space process. It would be possible to implement @@ -277,3 +276,5 @@ HERE project::captive::doc::Macros->footer(); +} +1; diff --git a/project/captive/doc/Details.html.pl b/project/captive/doc/Details.pm similarity index 87% rename from project/captive/doc/Details.html.pl rename to project/captive/doc/Details.pm index bb6522f..f0c1d81 100755 --- a/project/captive/doc/Details.html.pl +++ b/project/captive/doc/Details.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc Details page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,18 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; BEGIN { Wuse 'project::captive::doc::Macros'; } +sub handler +{ project::captive::doc::Macros->init( "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Developer Documentation: Implementation Details', - "rel_prev"=>'CacheManager.html.pl', - "rel_next"=>'APITypes.html.pl', + "rel_prev"=>'CacheManager.pm', + "rel_next"=>'APITypes.pm', ); @@ -44,13 +43,13 @@ print <<"HERE";

    Implementation Details

    -

    Choice of the Emulation Methods

    +

    Choice of the Emulation Methods

    The intent of the project was to get reliable read-write access to NTFS partition. There are several possible ways to achieve that:

    -

    Virtualmachine Running the Original W32 Subsystem

    +

    Virtualmachine Running the Original W32 Subsystem

    Creating virtual-hardware PC and running the original W32 binaries including their boot-loader etc. Disk device access would be passed as @@ -70,7 +69,7 @@ print <<"HERE"; requirement of fully installed Microsoft Windows NT product.

    -

    "ntoskrnl.exe" Inside Virtual Address Space

    +

    "ntoskrnl.exe" Inside Virtual Address Space

    This solution was chosen by the project. Binary filesystem driver and also ntoskrnl.exe binary file are required. @@ -79,12 +78,12 @@ print <<"HERE"; emulation, therefore such instructions must be trapped and emulated/ignored from case to case.

    -

    Also the initialization code of ntoskrnl.exe is not executed by this project since +

    Also the initialization code of ntoskrnl.exe is not executed by this project since it expects to get full PC hardware access privileges and thus some datastructures do not get initialized by it (need to be trapped later at runtime stage). Some of the missing initializations are solved by - @{[ a_href 'APITypes.html.pl#functype_wrap','API functions wrapping' ]}. + @{[ a_href 'APITypes.pm#functype_wrap','API functions wrapping' ]}.

    pros: Lightweight, easier to debug.

    @@ -92,12 +91,12 @@ print <<"HERE"; ntoskrnl.exe parts, missing documentation needed for the implementation.

    -

    Filesystem Driver Inside Virtual Address Space

    +

    Filesystem Driver Inside Virtual Address Space

    -

    Unlike @{[ a_href 'Details.html.pl#method_ntoskrnl','previous method' ]} here we do not use +

    Unlike @{[ a_href 'Details.pm#method_ntoskrnl','previous method' ]} here we do not use even ntoskrnl.exe as the complete kernel part of - W32 is emulated from the project source - files. cdfs.sys driver was successfuly ran + W32 is emulated from the project source + files. cdfs.sys driver was successfuly ran in this manner in the former versions of this project but the possibility to run without ntoskrnl.exe was dropped since it had no licensing gains (you need the original @@ -112,23 +111,24 @@ print <<"HERE"; ntoskrnl.exe, its missing documentation.

    -

    API Function Implementation Choices

    +

    API Function Implementation Choices

    During the initial point of the project development all the API functions were defined as unimplemented, of course. Any call of such unimplemented function is fatal and results in program termination. When we need to implement any required API function we have multiple choices to do so: - @{[ a_href 'APITypes.html.pl#functype_pass','Direct pass to original ntoskrnl.exe' ]}, - @{[ a_href 'APITypes.html.pl#functype_wrap','Wrap of the original ntoskrnl.exe function' ]}, - @{[ a_href 'APITypes.html.pl#functype_native_reactos','Native implementation – $ReactOS' ]}, - @{[ a_href 'APITypes.html.pl#functype_native_wine','Native implementation – $Wine' ]} + @{[ a_href 'APITypes.pm#functype_pass','Direct pass to original ntoskrnl.exe' ]}, + @{[ a_href 'APITypes.pm#functype_wrap','Wrap of the original ntoskrnl.exe function' ]}, + @{[ a_href 'APITypes.pm#functype_native_reactos','Native implementation – $ReactOS' ]}, + @{[ a_href 'APITypes.pm#functype_native_wine','Native implementation – $Wine' ]} or - @{[ a_href 'APITypes.html.pl#functype_native_libcaptive','Native implementation – project specific' ]}. - + @{[ a_href 'APITypes.pm#functype_native_libcaptive','Native implementation – project specific' ]}. + +

    -

    Sandboxing of W32 Filesystem

    +

    Sandboxing of W32 Filesystem

    The emulated W32 environment running the original W32 filesystem driver is separated from the rest of UNIX OS. It achieves the following goals:

    @@ -166,7 +166,7 @@ print <<"HERE"; peers.

    -

    "patched" vs. "unpatched" Libraries

    +

    "patched" vs. "unpatched" Libraries

    Library is called patched if we require loading its original binary code file. Project needs to patch it to be able @@ -176,7 +176,7 @@ print <<"HERE";

    Library is called unpatched if no original binary code is needed since all of its functions are completely emulated by - @{[ a_href 'APITypes.html.pl#functype_native','the native implementations' ]} of this project. + @{[ a_href 'APITypes.pm#functype_native','the native implementations' ]} of this project. The typical unpatched representative is hal.dll as it specializes on the hardware dependent code and therefore it must be completely replaced by this project @@ -185,7 +185,7 @@ print <<"HERE"; native implementation of ntoskrnl.exe but it no longer applies.

    -

    Memory Management

    +

    Memory Management

    Original Microsoft Windows NT architecture uses two address space areas – user space and kernel space. @@ -209,7 +209,7 @@ print <<"HERE"; moving operations between W32 kernel space and W32 user space memory areas (such as MmSafeCopyToUser()).

    -

    Unicode Strings and Characters

    +

    Unicode Strings and Characters

    W32 platform uses 16-bit type wchar_t while $gnulinux uses a 32-bit one. This can be problem during GCC (GNU C Compiler) @@ -249,7 +249,7 @@ print <<"HERE"; -

    Supported Binary Formats

    +

    Supported Binary Formats

    The native W32 binary format is identified as PE-32 (Portable Executable 32-bit), such @@ -283,8 +283,8 @@ print <<"HERE"; PE-32 use the appropriate W32 specific @{[ a_href '#calltype','cdecl/stdcall/fastcall call types' ]}, .so must be completely compiled in the standard - UNIX @{[ a_href 'CallType.html.pl#calltype_cdecl','cdecl call type semantics' ]}. - @{[ a_href 'APITypes.html.pl#functype_native','Native function implementations' ]} do not need + UNIX @{[ a_href 'CallType.pm#calltype_cdecl','cdecl call type semantics' ]}. + @{[ a_href 'APITypes.pm#functype_native','Native function implementations' ]} do not need to be explicitely exported by captivesym as they are resolved automatically by the UNIX dynamic system linker. It may be surprising you will have to fix all such missing symbol exports if you @@ -293,7 +293,7 @@ print <<"HERE"; original PE-32 binary file.

    -

    At Most One Mounted Filesystem

    +

    At Most One Mounted Filesystem

    The project technically supports only one (exactly one...) mounted filesystem device and only one filesystem driver. There is nothing @@ -303,7 +303,7 @@ print <<"HERE"; itself. It was considered as a more sane way to support multiple W32 mounted disks by completely separately running project instances in a different UNIX processes communicating from their sandboxes via - @{[ a_href 'Details.html.pl#sandbox','CORBA sandbox interface' ]}. This sandboxing + @{[ a_href 'Details.pm#sandbox','CORBA sandbox interface' ]}. This sandboxing feature is not yet deployed although its code is already prepared.

    The project also does not support any state cleanup to be able to load @@ -317,18 +317,18 @@ print <<"HERE"; captive_shutdown() the process address space is no longer usable for any further project operations and the process is expected to be terminated in the manner compatible with its driving - @{[ a_href 'Details.html.pl#sandbox','CORBA sandbox interface' ]} control master.

    + @{[ a_href 'Details.pm#sandbox','CORBA sandbox interface' ]} control master.

    Each sandbox executing the untrusted W32 binary filesystem driver code is connected through its - @{[ a_href 'Details.html.pl#sandbox','CORBA sandbox interface' ]} at the point of upper + @{[ a_href 'Details.pm#sandbox','CORBA sandbox interface' ]} at the point of upper layer libcaptive-specific filesystem API, at the point of the bottom layer of GIOChannel device access and also for transfers of GLib logging messages/warnings/errors out of the sandbox to the user.

    -

    Multithreading and Multiple Processors

    +

    Multithreading and Multiple Processors

    W32 platform stands on its thorough architecture parallelism. It must lock all its objects to maintain coherence in presence of @@ -355,7 +355,7 @@ print <<"HERE"; g_idle_add_full() with g_main_context_iteration() called during KeWaitForSingleObject().

    - Since there is a possibility a real W32 parallel threading would +

    Since there is a possibility a real W32 parallel threading would be yet needed in the future all the code that would be hit by W32 multithreading capability is marked by TODO:thread comment.

    @@ -376,7 +376,7 @@ print <<"HERE"; is done during cleanup of the project's execution by captive_shutdown().

    -

    Paranoia Checks

    +

    Paranoia Checks

    A general approach of software projects development is to implement many internal sanity checks during the development stage but to produce the @@ -426,19 +426,19 @@ print <<"HERE"; has to be fixed, of course.

    -

    STATUS_LOG_FILE_FULL

    +

    STATUS_LOG_FILE_FULL

    After writing approx. 1MB of data on NTFS test partition NTFS driver returns for any further write requests - STATUS_LOG_FILE_FULL error code. + STATUS_LOG_FILE_FULL error code. Apparently it is caused by the fact this project is - @{[ a_href 'Details.html.pl#synchronous','single-threaded' ]} and it ignores the spawn + @{[ a_href 'Details.pm#synchronous','single-threaded' ]} and it ignores the spawn of parallel journalling thread during ntfs.sys initialization.

    Fortunately ntfs.sys will clear its journalling log file during filesystem unmount. This project will therefore - remount the volume if STATUS_LOG_FILE_FULL + remount the volume if STATUS_LOG_FILE_FULL is detected to workaround missing journalling thread.

    Similiar behaviour can be seen during write of compressed files — @@ -446,10 +446,10 @@ print <<"HERE"; during the final filesystem unmount.

    For these reasons it was mandatory to support - @{[ a_href 'Details.html.pl#parent_connector','transparent volume remounting' ]}.

    + @{[ a_href 'Details.pm#parent_connector','transparent volume remounting' ]}.

    -

    ParentConnector volume remounter

    +

    ParentConnector volume remounter

    The sandbox master component of this project has control of restarting its sandbox slaves containing the W32 filesystem. Target goal of @@ -504,3 +504,5 @@ HERE project::captive::doc::Macros->footer(); +} +1; diff --git a/project/captive/doc/Index.html.pl b/project/captive/doc/Index.html.pl deleted file mode 100755 index 501f472..0000000 --- a/project/captive/doc/Index.html.pl +++ /dev/null @@ -1,164 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Captive project doc Index page Perl template. -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::captive::doc::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -require CGI; -BEGIN { Wuse 'project::captive::doc::Macros'; } - - -project::captive::doc::Macros->init( - "__PACKAGE__"=>__PACKAGE__, - "title"=>'Captive NTFS Developer Documentation', - "rel_next"=>'About.html.pl', - "rel_up"=>top_dir("/project/captive/"), - ); - - -print <<"HERE"; - - -

    Captive NTFS Developer Documentation

    - - - - -HERE - - -project::captive::doc::Macros->footer(); diff --git a/project/captive/doc/Index.pm b/project/captive/doc/Index.pm new file mode 100755 index 0000000..a424be9 --- /dev/null +++ b/project/captive/doc/Index.pm @@ -0,0 +1,164 @@ +# $Id$ +# Captive project doc Index page Perl template. +# Copyright (C) 2003-2005 Jan Kratochvil +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; exactly version 2 of June 1991 is required +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +package project::captive::doc::Index; +require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway +our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; +our $CVS_ID=q$Id$; +use strict; +use warnings; + +use My::Web; +require CGI; +BEGIN { Wuse 'project::captive::doc::Macros'; } + + +sub handler +{ +project::captive::doc::Macros->init( + "title"=>'Captive NTFS Developer Documentation', + "rel_next"=>'About.pm', + "rel_up"=>"..", + ); + + +print <<"HERE"; + + +

    Captive NTFS Developer Documentation

    + + + + +HERE + + +project::captive::doc::Macros->footer(); +} +1; diff --git a/project/captive/doc/LinuxNTFS.html.pl b/project/captive/doc/LinuxNTFS.pm similarity index 89% rename from project/captive/doc/LinuxNTFS.html.pl rename to project/captive/doc/LinuxNTFS.pm index 7d2393d..3a022c5 100755 --- a/project/captive/doc/LinuxNTFS.html.pl +++ b/project/captive/doc/LinuxNTFS.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc LinuxNTFS page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,16 +23,16 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; BEGIN { Wuse 'project::captive::doc::Macros'; } +sub handler +{ project::captive::doc::Macros->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Developer Documentation: Captive vs. Linux-NTFS', - "rel_prev"=>'Related.html.pl', + "rel_prev"=>'Related.pm', ); @@ -54,7 +52,7 @@ print <<"HERE";

    > It would have to run as part of the kernel which would mean that if it went wrong it could crash the machine. With no source, we might not be able to work around the problem.
    - @{[ a_href 'Details.html.pl#sandbox','Nope' ]}, + @{[ a_href 'Details.pm#sandbox','Nope' ]}, @{[ a_href 'http://lufs.sourceforge.net/lufs/','Linux Userland File System (LUFS)' ]} moves the filesystem implementation to UNIX userland where the Microsoft Windows filesystem is completely unarmed by Captive jail of chroot(2), @@ -81,10 +79,12 @@ print <<"HERE"; the other kernel coders would not investigate any problems if someone had used the NTFS wrapper.
    It does not apply to this project due to the implemented - @{[ a_href 'Details.html.pl#sandbox','filesystem separation' ]}.

    + @{[ a_href 'Details.pm#sandbox','filesystem separation' ]}.

    HERE project::captive::doc::Macros->footer(); +} +1; diff --git a/project/captive/doc/Macros.css b/project/captive/doc/Macros.css new file mode 100644 index 0000000..d479f78 --- /dev/null +++ b/project/captive/doc/Macros.css @@ -0,0 +1,29 @@ +/* $Id$ + * CSS of Captive project doc macros. + * Copyright (C) 2003-2005 Jan Kratochvil + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; exactly version 2 of June 1991 is required + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +.productname { font-family: cursive; } +.fname { font-family: monospace; } +.constant { font-family: monospace; } +.author { font-family: cursive; } +.stuff { font-style: italic; font-size: larger; margin-left: 20%; margin-right: 10%; } +.function { font-family: monospace; } +.type { font-family: monospace; } +.command { font-family: monospace; } +.instruction { font-style: italic; } +caption { caption-side: bottom; } diff --git a/project/captive/doc/Macros.pm b/project/captive/doc/Macros.pm index a7ba65c..007c15e 100755 --- a/project/captive/doc/Macros.pm +++ b/project/captive/doc/Macros.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc macros. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -32,39 +30,12 @@ our @EXPORT=qw( ); our @ISA=qw(Exporter); -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; -Wrequire 'My::Project'; +Wrequire 'project::Lib'; -sub init ($%) -{ -my($class,%args)=@_; - - %args=( - "rel_start"=>top_dir("/project/captive/"), - "rel_up"=>top_dir("/project/captive/doc/"), - %args); - My::Web->init( - "head_css"=>" -.productname { font-family: cursive; } -.fname { font-family: monospace; } -.constant { font-family: monospace; } -.author { font-family: cursive; } -.stuff { font-style: italic; font-size: larger; margin-left: 20%; margin-right: 10%; } -.function { font-family: monospace; } -.type { font-family: monospace; } -.command { font-family: monospace; } -.instruction { font-style: italic; } -", - "WebConfig::heading_novskip"=>1, - %args, - ); - My::Web->heading(); - print My::Project->section("captive"); - $class->navigate(); -} +our $HTML_TEST=0; sub footer ($) { @@ -79,23 +50,26 @@ sub navigate ($;$) { my($class,$where)=@_; - print ''."\n"; - print ''."\n" for (qw(10 20 40 20 10)); - print ''."\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - print '
    '; - print img "/My/arrow-left" ,"Previous document","a_href"=>$My::Web::W->{"rel_prev"} - if $My::Web::W->{"rel_prev"}; - print ''; - print img "/My/arrow-up" ,"Parent","a_href"=>$My::Web::W->{"rel_up"} - if $My::Web::W->{"rel_up"} && !($where && $where eq "footer"); - print ''; - print img "/My/arrow-right","Next document","a_href"=>$My::Web::W->{"rel_next"} - if $My::Web::W->{"rel_next"}; - print '
    '."\n"; + print ''."\n"; + # FIXME: print ''."\n" for (qw(10 20 40 20 10)); + # causes whole invisible icons in: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20050719 Galeon/1.3.21 + print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''."\n"; + print '
    '; + print img "/My/arrow-left" ,"Previous document","a_href"=>$My::Web::W->{"rel_prev"} + if $My::Web::W->{"rel_prev"}; + print ''; + print img "/My/arrow-up" ,"Parent","a_href"=>$My::Web::W->{"rel_up"} + if $My::Web::W->{"rel_up"} && !($where && $where eq "footer"); + print ''; + print img "/My/arrow-right","Next document","a_href"=>$My::Web::W->{"rel_next"} + if $My::Web::W->{"rel_next"}; + print '
    '."\n"; } sub doc_img ($$) @@ -103,9 +77,9 @@ sub doc_img ($$) my($img_base,$caption)=@_; my $r=""; - $r.=''."\n"; - $r.="\t\n"; + $r.='
    ".img($img_base,$caption)."
    '."\n"; $r.="\t\n"; + $r.="\t".'\n"; $r.='
    $caption
    '.img($img_base,$caption)."
    '."\n"; $r.=vskip "2ex"; return $r; @@ -119,21 +93,43 @@ my($filename,$text)=@_; ($text || $filename); } -our $freespeech=a_href 'http://www.gnu.org/philosophy/free-sw.html','Free'; -our $freebeer=a_href 'http://www.gnu.org/philosophy/free-sw.html','free (as in beer)'; - sub productname { my($url,$name)=@_; return ''.a_href($url,CGI::escapeHTML($name)).''; } -our $Wine=productname 'http://www.winehq.com/','Wine'; -our $ReactOS=productname 'http://www.reactos.com/','ReactOS'; -our $LinuxNTFS=productname 'http://linux-ntfs.sourceforge.net/','Linux NTFS'; -our $GnomeVFS=productname 'http://developer.gnome.org/doc/API/gnome-vfs/','Gnome-VFS'; -our $GnomeVFSmodule=productname 'http://developer.gnome.org/doc/API/gnome-vfs/modules.html','Gnome-VFS-module'; -our $gnulinux='GNU/Linux'; +our($Wine,$ReactOS,$LinuxNTFS,$GnomeVFS,$GnomeVFSmodule,$gnulinux,$freespeech,$freebeer); + +sub init ($%) +{ +my($class,%args)=@_; + + %args=( + "rel_start"=>"..", + "rel_up"=>".", + %args); + My::Web->init( + "head"=><<"HERE", + +HERE + "heading_novskip"=>1, + %args, + ); + + $Wine=productname 'http://www.winehq.com/','Wine'; + $ReactOS=productname 'http://www.reactos.com/','ReactOS'; + $LinuxNTFS=productname 'http://linux-ntfs.sourceforge.net/','Linux NTFS'; + $GnomeVFS=productname 'http://developer.gnome.org/doc/API/gnome-vfs/','Gnome-VFS'; + $GnomeVFSmodule=productname 'http://developer.gnome.org/doc/API/gnome-vfs/modules.html','Gnome-VFS-module'; + $gnulinux='GNU/Linux'; + $freespeech=a_href 'http://www.gnu.org/philosophy/free-sw.html','Free'; + $freebeer=a_href 'http://www.gnu.org/philosophy/free-sw.html','free (as in beer)'; + + My::Web->heading(); + print(project::Lib->section("captive")); + $class->navigate(); +} 1; diff --git a/project/captive/doc/Makefile.am b/project/captive/doc/Makefile.am index 3b62801..9657f33 100644 --- a/project/captive/doc/Makefile.am +++ b/project/captive/doc/Makefile.am @@ -22,8 +22,21 @@ SUBDIRS= \ fig \ dia -EXTRA_DIST+= \ - Index.html.pl +MODPERL_PM+= \ + Index.pm \ + APITypes.pm \ + About.pm \ + Architecture.pm \ + CacheManager.pm \ + CallType.pm \ + Components.pm \ + Details.pm \ + LinuxNTFS.pm \ + Macros.pm \ + Related.pm \ + Reverse.pm \ + TODO.pm CLEANFILES+= \ *.gif + diff --git a/project/captive/doc/Related.html.pl b/project/captive/doc/Related.pm similarity index 80% rename from project/captive/doc/Related.html.pl rename to project/captive/doc/Related.pm index 1e8a813..6a39a51 100755 --- a/project/captive/doc/Related.html.pl +++ b/project/captive/doc/Related.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc Related Projects page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,17 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; BEGIN { Wuse 'project::captive::doc::Macros'; } +sub handler +{ project::captive::doc::Macros->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Developer Documentation: Related Projects', - "rel_prev"=>'TODO.html.pl', - "rel_next"=>'LinuxNTFS.html.pl', + "rel_prev"=>'TODO.pm', + "rel_next"=>'LinuxNTFS.pm', ); @@ -51,7 +49,7 @@ print <<"HERE"; very comfortable as you never have access to all the files of the other operating system.

    -

    $LinuxNTFS

    +

    $LinuxNTFS

    Although this project takes a completely different approach and has a different architecture, the final goal is the same as for this @@ -70,8 +68,8 @@ print <<"HERE"; cdfs.sys files from the user's NTFS partition.

    -

    - Paragon @{[ a_href 'http://www.ntfs-linux.com/','NTFS for Linux' ]}

    +

    + Paragon @{[ a_href 'http://www.ntfs-linux.com/','NTFS for Linux' ]}

    Real competition: Closed-source read/write @{[ '$69.95' ]} equivalent.

    @@ -85,16 +83,16 @@ print <<"HERE";

    This closed-source product also means loosing the security of your GNU/Linux system by running closed-source software product.

    -

    @{[ a_href 'http://www.cgsecurity.org/ntfs.html', - 'NTPwd NTFS Driver' ]}

    +

    @{[ a_href 'http://www.cgsecurity.org/ntfs.html', + 'NTPwd NTFS Driver' ]}

    DOS based @{[ a_href 'http://www.gnu.org/licenses/gpl.html','GPL-2.0' ]} read-write NTFS driver. Filesystem structures are reverse engineered in the - way of @{[ a_href 'Related.html.pl#LinuxNTFScompet','Linux-NTFS Project' ]}. As it is not very + way of @{[ a_href 'Related.pm#LinuxNTFScompet','Linux-NTFS Project' ]}. As it is not very actively maintained it reaches a lower level of NTFS compatibility.

    -

    @{[ a_href 'http://www.vmware.com/download/workstation.html','VMware Workstation' ]}

    +

    @{[ a_href 'http://www.vmware.com/download/workstation.html','VMware Workstation' ]}

    Real competition: Closed-source read/write @{[ '$299' ]} equivalent.

    @@ -103,15 +101,15 @@ print <<"HERE"; a network file sharing through a VMware virtual network card.

    You need @{[ '$299' ]} for this product and you need to - give up your system security by running un@{[ a_href 'Details.html.pl#sandbox','sandbox' ]}ed + give up your system security by running un@{[ a_href 'Details.pm#sandbox','sandbox' ]}ed closed-source program in your GNU/Linux.

    -

    @{[ a_href 'http://www.winehq.com/','Wine Project' ]}

    +

    @{[ a_href 'http://www.winehq.com/','Wine Project' ]}

    No code could be shared – Wine emulates only Microsoft Windows userland. Filesystem drivers completely belong to Microsoft Windows kernelland.

    - @{[ a_href 'http://www.sysinternals.com/ntw2k/freeware/ntfswin98.shtml','NTFS for Windows 98' ]} +

    @{[ a_href 'http://www.sysinternals.com/ntw2k/freeware/ntfswin98.shtml','NTFS for Windows 98' ]}

    Closed-source read-only-crippled @{[ '$0' ]} equivalent for Microsoft Windows.

    @@ -121,8 +119,8 @@ print <<"HERE"; Windows 98 as the same company also sells the following product sharing the same codebase:

    -

    @{[ a_href 'http://www.winternals.com/products/repairandrecovery/ntfsdospro.asp', - 'NTFSDOS Professional' ]}

    +

    @{[ a_href 'http://www.winternals.com/products/repairandrecovery/ntfsdospro.asp', + 'NTFSDOS Professional' ]}

    Closed-source read/write @{[ '$299' ]} equivalent for MS-DOS.

    @@ -135,3 +133,5 @@ HERE project::captive::doc::Macros->footer(); +} +1; diff --git a/project/captive/doc/Reverse.html.pl b/project/captive/doc/Reverse.pm similarity index 90% rename from project/captive/doc/Reverse.html.pl rename to project/captive/doc/Reverse.pm index d444c87..d048b20 100755 --- a/project/captive/doc/Reverse.html.pl +++ b/project/captive/doc/Reverse.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc Reverse Engineering page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,24 +23,24 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; BEGIN { Wuse 'project::captive::doc::Macros'; } +sub handler +{ project::captive::doc::Macros->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Developer Documentation: Reverse Engineering', - "rel_prev"=>'Components.html.pl', - "rel_next"=>'CacheManager.html.pl', + "rel_prev"=>'Components.pm', + "rel_next"=>'CacheManager.pm', ); print <<"HERE"; -

    Reverse Engineering

    +

    Reverse Engineering

    This project has no intentions to reverse engineer and document the filesystem data structures themselves since they are being encapsulated by @@ -86,7 +84,7 @@ print <<"HERE"; interpret debug symbols from W32 .PDB (Program DataBase) debug information files.

    -

    dumpbin.exe

    +

    dumpbin.exe

    You should use the following options for dumpbin.exe:

    @@ -101,7 +99,7 @@ print <<"HERE";

    PDB file found at '.\\FILENAME.pdb'

    -

    WinDbg Windows NT kernel debugging

    +

    WinDbg Windows NT kernel debugging

    WinDbg is downloadable from: @{[ a_href 'http://www.microsoft.com/whdc/ddk/debugging/installx86.mspx' ]}

    @@ -123,7 +121,7 @@ print <<"HERE"; hardware and you can connect them by a virtual serial port provided by VMware.

    -

    WinDbg side setup

    +

    WinDbg side setup

    @{[ doc_img 'ntdebug-vmware-windbg', 'VMware virtual serial port' @@ -135,7 +133,7 @@ print <<"HERE"; @{[ doc_img 'ntdebug-windbg-port','Port settings of WinDbg' ]} @{[ doc_img 'ntdebug-windbg-sym','Symbols files location of WinDbg' ]} - Symbols should point to the directory where +

    Symbols should point to the directory where reside files extracted from the symbol archive for your version of Microsoft Windows. In the case of the recommended Microsoft Windows XP Service Pack 1 Checked Build @@ -161,7 +159,7 @@ print <<"HERE"; @{[ doc_img 'ntdebug-windbg-boot','Successfuly connected WinDbg' ]} -

    Setup of the side being kernel-debugged

    +

    Setup of the side being kernel-debugged

    @{[ doc_img 'ntdebug-vmware-xpdebug', 'VMware virtual serial port' @@ -186,3 +184,5 @@ HERE project::captive::doc::Macros->footer(); +} +1; diff --git a/project/captive/doc/TODO.html.pl b/project/captive/doc/TODO.pm similarity index 85% rename from project/captive/doc/TODO.html.pl rename to project/captive/doc/TODO.pm index 3329a14..61cf08c 100755 --- a/project/captive/doc/TODO.html.pl +++ b/project/captive/doc/TODO.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Captive project doc TODO page Perl template. -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,24 +23,24 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; require CGI; BEGIN { Wuse 'project::captive::doc::Macros'; } +sub handler +{ project::captive::doc::Macros->init( - "__PACKAGE__"=>__PACKAGE__, "title"=>'Captive NTFS Developer Documentation: TODO', - "rel_prev"=>'CallType.html.pl', - "rel_next"=>'Related.html.pl', + "rel_prev"=>'CallType.pm', + "rel_next"=>'Related.pm', ); print <<"HERE"; -

    TODO: Fsck of NTFS

    +

    TODO: Fsck of NTFS

    Currently this project does not support checking of data structures of NTFS volume as being provided by chkdsk.exe @@ -54,17 +52,17 @@ print <<"HERE"; @{[ a_href 'http://www.sysinternals.com/ntw2k/source/fmifs.shtml', 'Chkdskx and Formatx' ]} by @{[ a_href 'http://www.sysinternals.com/aboutus.shtml', - 'Mark Russinovich' ]}. + 'Mark Russinovich' ]}.

    I assume its execution falls completely - @{[ a_href 'Architecture.html.pl#existing_emulation','out of scope' ]} + @{[ a_href 'Architecture.pm#existing_emulation','out of scope' ]} of this project as it is W32 userland.

    This possibility was not yet investigated in any way.

    -

    TODO: NTFS Support for - @{[ a_href '/project/surprise/','Partition Surprise' ]}

    +

    TODO: NTFS Support for + @{[ a_href '/project/surprise/','Partition Surprise' ]}

    There already exists @{[ a_href 'http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html','ntfsresize' ]} @@ -94,3 +92,5 @@ HERE project::captive::doc::Macros->footer(); +} +1; diff --git a/project/checkstatic/Index.html.pl b/project/checkstatic/Index.html.pl deleted file mode 100755 index 938f4fe..0000000 --- a/project/checkstatic/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::checkstatic' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::checkstatic::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::checkstatic::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::checkstatic::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/checkstatic/ListItem.pm b/project/checkstatic/Index.pm old mode 100755 new mode 100644 similarity index 86% rename from project/checkstatic/ListItem.pm rename to project/checkstatic/Index.pm index f8ada4e..782f372 --- a/project/checkstatic/ListItem.pm +++ b/project/checkstatic/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::checkstatic' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::checkstatic' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::checkstatic::ListItem; +package project::checkstatic::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -47,4 +46,11 @@ a big package for embedded resource-limited machines.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/checkstatic/Makefile.am b/project/checkstatic/Makefile.am index c1c4634..7112e73 100644 --- a/project/checkstatic/Makefile.am +++ b/project/checkstatic/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/cvsbranchdiff/Index.html.pl b/project/cvsbranchdiff/Index.html.pl deleted file mode 100755 index 58410d2..0000000 --- a/project/cvsbranchdiff/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::cvsbranchdiff' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::cvsbranchdiff::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::cvsbranchdiff::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::cvsbranchdiff::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/cvsbranchdiff/ListItem.pm b/project/cvsbranchdiff/Index.pm old mode 100755 new mode 100644 similarity index 85% rename from project/cvsbranchdiff/ListItem.pm rename to project/cvsbranchdiff/Index.pm index 7902d22..2f17f24 --- a/project/cvsbranchdiff/ListItem.pm +++ b/project/cvsbranchdiff/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::cvsbranchdiff' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::cvsbranchdiff' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::cvsbranchdiff::ListItem; +package project::cvsbranchdiff::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -45,4 +44,11 @@ new or removed files, this simple tool will take care of them.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/cvsbranchdiff/Makefile.am b/project/cvsbranchdiff/Makefile.am index cffb9e2..fe9e1d9 100644 --- a/project/cvsbranchdiff/Makefile.am +++ b/project/cvsbranchdiff/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/cvsutil/Index.html.pl b/project/cvsutil/Index.html.pl deleted file mode 100755 index f3f2bf3..0000000 --- a/project/cvsutil/Index.html.pl +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::cvsutil' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::cvsutil::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::cvsutil::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::cvsutil::ListItem::ListItem, - ); - - -print <<"HERE"; -

    There already exists package @{[ a_href 'http://www.red-bean.com/cvsutils/','CVS Utilities' ]} -with similiar features - this utility should be merged into it. -Pointed out by the courtesy of Jesse Glick.

    -HERE - - -My::Web->footer(); diff --git a/project/cvsutil/ListItem.pm b/project/cvsutil/Index.pm old mode 100755 new mode 100644 similarity index 81% rename from project/cvsutil/ListItem.pm rename to project/cvsutil/Index.pm index d4b8e86..62ed570 --- a/project/cvsutil/ListItem.pm +++ b/project/cvsutil/Index.pm @@ -1,7 +1,7 @@ #! /usr/bin/perl # # $Id$ -# Definition of 'My::Project::cvsutil' for list.cgi.pl +# Main page of 'My::Project::cvsutil' # Copyright (C) 2003 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::cvsutil::ListItem; +package project::cvsutil::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +26,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -47,4 +48,18 @@ can serve a handy prevention of grepping built files: HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    There already exists package @{[ a_href 'http://www.red-bean.com/cvsutils/','CVS Utilities' ]} +with similiar features - this utility should be merged into it. +Pointed out by the courtesy of Jesse Glick.

    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/cvsutil/Makefile.am b/project/cvsutil/Makefile.am index 63108f5..29db25a 100644 --- a/project/cvsutil/Makefile.am +++ b/project/cvsutil/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/d1xnet/Index.html.pl b/project/d1xnet/Index.html.pl deleted file mode 100755 index 02e3ecd..0000000 --- a/project/d1xnet/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::d1xnet' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::d1xnet::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::d1xnet::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::d1xnet::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/d1xnet/ListItem.pm b/project/d1xnet/Index.pm old mode 100755 new mode 100644 similarity index 74% rename from project/d1xnet/ListItem.pm rename to project/d1xnet/Index.pm index 20a86b7..afb7a7d --- a/project/d1xnet/ListItem.pm +++ b/project/d1xnet/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::d1xnet' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::d1xnet' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::d1xnet::ListItem; +package project::d1xnet::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,23 +24,31 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://d1x.warpcore.org/','D1X').' TCP/IP', + "name"=>sub { return a_href('http://d1x.warpcore.org/','D1X').' TCP/IP'; }, "platform"=>"patch", "priority"=>200, "icon"=>"exit03.jpeg", "download"=>"d1x-tcpip-0.99.1.diff.gz", - "summary"=>a_href('http://d1x.warpcore.org/','D1X').' native TCP/IP support patch', + "summary"=>sub { return a_href('http://d1x.warpcore.org/','D1X').' native TCP/IP support patch'; }, "license"=>"PD", "maintenance"=>"accepted", "language"=>"C module", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    No further mess with @{[ a_href 'ftp://linux.kali.net/outgoing/kalinix/','KaliNix' ]}, KIX or any other IPX layer convertor. This patch adds true TCP/IP networking capability to @{[ a_href 'http://d1x.warpcore.org/','D1X' ]} version 1.30.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/d1xnet/Makefile.am b/project/d1xnet/Makefile.am index c75fd5d..404c042 100644 --- a/project/d1xnet/Makefile.am +++ b/project/d1xnet/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/doswatch/Index.html.pl b/project/doswatch/Index.html.pl deleted file mode 100755 index fc056af..0000000 --- a/project/doswatch/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::doswatch' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::doswatch::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::doswatch::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::doswatch::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/doswatch/ListItem.pm b/project/doswatch/Index.pm old mode 100755 new mode 100644 similarity index 86% rename from project/doswatch/ListItem.pm rename to project/doswatch/Index.pm index 9ee46d9..51faffb --- a/project/doswatch/ListItem.pm +++ b/project/doswatch/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::doswatch' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::doswatch' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::doswatch::ListItem; +package project::doswatch::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -37,7 +36,7 @@ our @ListItem=( "license"=>"PD", "maintenance"=>"ready", "language"=>"i386 asm", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    Resident program which displays all the file (and other) DOS function calls access on the secondary console. Useful for many failure discoveries for weird software packages with broken file/directory access.

    @@ -53,4 +52,11 @@ for weird software packages with broken file/directory access.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/doswatch/Makefile.am b/project/doswatch/Makefile.am index df5a81d..86d0ca1 100644 --- a/project/doswatch/Makefile.am +++ b/project/doswatch/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/energie/Index.html.pl b/project/energie/Index.html.pl deleted file mode 100755 index d9b5d90..0000000 --- a/project/energie/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::energie' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::energie::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::energie::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::energie::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/energie/ListItem.pm b/project/energie/Index.pm old mode 100755 new mode 100644 similarity index 67% rename from project/energie/ListItem.pm rename to project/energie/Index.pm index 1c01fcb..6540b47 --- a/project/energie/ListItem.pm +++ b/project/energie/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::energie' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::energie' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::energie::ListItem; +package project::energie::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -33,11 +32,13 @@ our @ListItem=( "platform"=>"web", "priority"=>240, "cvs"=>"www/www.energie.vellum.cz", - "link-Example web"=>a_href('http://www.energie.vellum.cz/'), - "summary"=>a_href('http://www.php.net/','PHP')." web framework", + "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", - "maintenance"=>"obsolete-".a_href('http://www.php.net/','PHP')." is deprecated in favor of " - .a_href('http://www.perl.org/','Perl')." - use ".a_href("/project/MyWeb/","My::Web"), + "maintenance"=>sub { + return "obsolete-".a_href('http://www.php.net/','PHP')." is deprecated in favor of " + .a_href('http://www.perl.org/','Perl')." - use ".a_href("/project/MyWeb/","My::Web"); + }, "language"=>"PHP", "description"=><<"HERE",

    Each web author has his own web framework reusable for other web developers @@ -46,4 +47,11 @@ it.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/energie/Makefile.am b/project/energie/Makefile.am index b04d980..b3293cb 100644 --- a/project/energie/Makefile.am +++ b/project/energie/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/etherealmmse/Index.html.pl b/project/etherealmmse/Index.html.pl deleted file mode 100755 index f475ac6..0000000 --- a/project/etherealmmse/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::etherealmmse' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::etherealmmse::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::etherealmmse::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::etherealmmse::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/etherealmmse/ListItem.pm b/project/etherealmmse/Index.pm old mode 100755 new mode 100644 similarity index 77% rename from project/etherealmmse/ListItem.pm rename to project/etherealmmse/Index.pm index e56dc84..122a212 --- a/project/etherealmmse/ListItem.pm +++ b/project/etherealmmse/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::etherealmmse' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::etherealmmse' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::etherealmmse::ListItem; +package project::etherealmmse::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,10 +24,11 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://www.ethereal.com/','Ethereal').' MMSE fix', + "name"=>sub { return a_href('http://www.ethereal.com/','Ethereal').' MMSE fix'; }, "platform"=>"patch", "priority"=>360, "icon"=>"elogo3d100x100", @@ -38,11 +37,18 @@ our @ListItem=( "download-patch"=>'http://www.ethereal.com/cgi-bin/viewcvs.cgi/ethereal/packet-mmse.c.diff?r2=1.15&r1=1.14&diff_format=u', "license"=>"GPL", "maintenance"=>"accepted", - "sponsorship"=>a_href('http://www.atspraha.cz/','Advanced Telecom Services'), + "sponsorship"=>sub { return a_href('http://www.atspraha.cz/','Advanced Telecom Services'); }, "language"=>"C patch", "description"=><<"HERE",

    Fixed a tiny bug in MMS Encapsulation protocol decoding.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/etherealmmse/Makefile.am b/project/etherealmmse/Makefile.am index 0bf001f..b4aa902 100644 --- a/project/etherealmmse/Makefile.am +++ b/project/etherealmmse/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/etherealwsp/Index.html.pl b/project/etherealwsp/Index.html.pl deleted file mode 100755 index 6aef2ee..0000000 --- a/project/etherealwsp/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::etherealwsp' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::etherealwsp::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::etherealwsp::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::etherealwsp::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/etherealwsp/ListItem.pm b/project/etherealwsp/Index.pm old mode 100755 new mode 100644 similarity index 75% rename from project/etherealwsp/ListItem.pm rename to project/etherealwsp/Index.pm index 35a5616..0813ca0 --- a/project/etherealwsp/ListItem.pm +++ b/project/etherealwsp/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::etherealwsp' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::etherealwsp' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::etherealwsp::ListItem; +package project::etherealwsp::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,10 +24,11 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://www.ethereal.com/','Ethereal').' WSP patch', + "name"=>sub { return a_href('http://www.ethereal.com/','Ethereal').' WSP patch'; }, "platform"=>"patch", "priority"=>350, "icon"=>"elogo3d100x100", @@ -37,7 +36,7 @@ our @ListItem=( "download-patch"=>'ethereal-2002-08-03-packet-wsp.c-contentlocation.diff', "license"=>"GPL", "maintenance"=>"ignored", - "sponsorship"=>a_href('http://www.atspraha.cz/','Advanced Telecom Services'), + "sponsorship"=>sub { return a_href('http://www.atspraha.cz/','Advanced Telecom Services'); }, "language"=>"C patch", "description"=><<"HERE",

    Extended decoded headers for 'Content-Location'. This header @@ -45,4 +44,11 @@ is used for MMS encoding in WSP.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/etherealwsp/Makefile.am b/project/etherealwsp/Makefile.am index 03e6153..ad96517 100644 --- a/project/etherealwsp/Makefile.am +++ b/project/etherealwsp/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/fixhtml/Index.html.pl b/project/fixhtml/Index.pm old mode 100755 new mode 100644 similarity index 66% rename from project/fixhtml/Index.html.pl rename to project/fixhtml/Index.pm index bf399dc..0bb3da3 --- a/project/fixhtml/Index.html.pl +++ b/project/fixhtml/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Main page of 'My::Project::fixhtml' -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,32 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wuse 'My::Project'; -Wuse 'project::fixhtml::ListItem'; +Wuse 'project::Lib'; -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::fixhtml::ListItem::ListItem, +our @ListItem=( + "name"=>"fixhtml", + "platform"=>"unixuser", + "trivia"=>1, + "priority"=>20, + "download"=>"fixhtml", + "summary"=>"Convert HTML files URLs to relative", + "license"=>"PD", + "maintenance"=>sub { + return "obsolete-".a_href('http://wget.sunsite.dk/','Wget')." option --convert-links does the same."; + }, + "language"=>"Perl", + "description"=><<"HERE", +

    Program translates the URL references in your downloaded web pages to be relative +and therefore browsable without Internet access.

    +HERE ); +sub handler +{ +project::Lib->init(); + print <<"HERE";

    If you download/grab the whole (or its part) of some web site (for example @@ -47,3 +60,5 @@ HERE My::Web->footer(); +} +1; diff --git a/project/fixhtml/ListItem.pm b/project/fixhtml/ListItem.pm deleted file mode 100755 index dde81f4..0000000 --- a/project/fixhtml/ListItem.pm +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Definition of 'My::Project::fixhtml' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::fixhtml::ListItem; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -use My::Web; - - -our @ListItem=( - "name"=>"fixhtml", - "platform"=>"unixuser", - "trivia"=>1, - "priority"=>20, - "download"=>"fixhtml", - "summary"=>"Convert HTML files URLs to relative", - "license"=>"PD", - "maintenance"=>"obsolete-".a_href('http://wget.sunsite.dk/','Wget')." option --convert-links does the same.", - "language"=>"Perl", - "description"=><<"HERE", -

    Program translates the URL references in your downloaded web pages to be relative -and therefore browsable without Internet access.

    -HERE - ); - -1; diff --git a/project/fixhtml/Makefile.am b/project/fixhtml/Makefile.am index 555f1b1..722129d 100644 --- a/project/fixhtml/Makefile.am +++ b/project/fixhtml/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/gladewsrc/Index.html.pl b/project/gladewsrc/Index.html.pl deleted file mode 100755 index 3b73d5c..0000000 --- a/project/gladewsrc/Index.html.pl +++ /dev/null @@ -1,46 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::gladewsrc' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::gladewsrc::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::gladewsrc::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::gladewsrc::ListItem::ListItem, - ); - - -print <<"HERE"; -

    Patch got integrated to glade/main.c revision 1.10 (although -modified by Damon Chaplin).

    -HERE - - -My::Web->footer(); diff --git a/project/gladewsrc/ListItem.pm b/project/gladewsrc/Index.pm old mode 100755 new mode 100644 similarity index 71% rename from project/gladewsrc/ListItem.pm rename to project/gladewsrc/Index.pm index dced5dd..6f4e514 --- a/project/gladewsrc/ListItem.pm +++ b/project/gladewsrc/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::gladewsrc' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::gladewsrc' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::gladewsrc::ListItem; +package project::gladewsrc::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,10 +24,11 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://glade.gnome.org/','Glade').' -w', + "name"=>sub { return a_href('http://glade.gnome.org/','Glade').' -w'; }, "platform"=>"patch", "priority"=>310, "icon"=>"glade-icon", @@ -38,12 +37,25 @@ our @ListItem=( "link-ChangeLog entry"=>'http://cvs.gnome.org/bonsai/cvslog.cgi?file=glade%2Fglade/main.c&root=/cvs/gnome#1.10', "license"=>"GPL", "maintenance"=>"accepted", - "sponsorship"=>a_href('http://www.suse.com/','SuSE'), + "sponsorship"=>sub { return a_href('http://www.suse.com/','SuSE'); }, "language"=>"C patch", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    Automatically generate {interface,support}.[ch] and other source files by @{[ a_href 'http://glade.gnome.org/','Glade' ]}.

    HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    Patch got integrated to glade/main.c revision 1.10 (although +modified by Damon Chaplin).

    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/gladewsrc/Makefile.am b/project/gladewsrc/Makefile.am index f5f5772..bc74dc1 100644 --- a/project/gladewsrc/Makefile.am +++ b/project/gladewsrc/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/gsmperl/Index.html.pl b/project/gsmperl/Index.html.pl deleted file mode 100755 index 3eecdc9..0000000 --- a/project/gsmperl/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::gsmperl' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::gsmperl::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::gsmperl::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::gsmperl::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/gsmperl/ListItem.pm b/project/gsmperl/Index.pm old mode 100755 new mode 100644 similarity index 68% rename from project/gsmperl/ListItem.pm rename to project/gsmperl/Index.pm index 8aae4bb..4752f78 --- a/project/gsmperl/ListItem.pm +++ b/project/gsmperl/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::gsmperl' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::gsmperl' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::gsmperl::ListItem; +package project::gsmperl::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,24 +24,33 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://www.tektonica.com/projects/gsmsms/','GSM::SMS').' patch', + "name"=>sub { return a_href('http://www.tektonica.com/projects/gsmsms/','GSM::SMS').' patch'; }, "platform"=>"patch", "priority"=>520, "cvs"=>"gsmperl/GSM:lace", - "summary"=>'Extension of '.a_href('http://www.tektonica.com/projects/gsmsms/','GSM::SMS') - .' for EMS+Alcatel', + "summary"=>sub { + return 'Extension of '.a_href('http://www.tektonica.com/projects/gsmsms/','GSM::SMS').' for EMS+Alcatel'; + }, "license"=>"PD", "maintenance"=>"pending", - "sponsorship"=>a_href('http://www.atspraha.cz/','Advanced Telecom Services'), + "sponsorship"=>sub { return a_href('http://www.atspraha.cz/','Advanced Telecom Services'); }, "language"=>"Perl", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    Patch extends @{[ a_href 'http://www.tektonica.com/projects/gsmsms/','GSM::SMS' ]} package by EMS and Alcatel-proprietary formats. Only picture/animations have been implemented now, EMS/Alcatel ringtones are not yet supported.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/gsmperl/Makefile.am b/project/gsmperl/Makefile.am index 9d0b0b0..3dac6a4 100644 --- a/project/gsmperl/Makefile.am +++ b/project/gsmperl/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/int13sniff/Index.html.pl b/project/int13sniff/Index.html.pl deleted file mode 100755 index 1d3c9c5..0000000 --- a/project/int13sniff/Index.html.pl +++ /dev/null @@ -1,43 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::int13sniff' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::int13sniff::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::int13sniff::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::int13sniff::ListItem::ListItem, - ); - - -print centerimg "int13sniff-snap","Boot Snapshot"; - - -My::Web->footer(); diff --git a/project/int13sniff/ListItem.pm b/project/int13sniff/Index.pm old mode 100755 new mode 100644 similarity index 80% rename from project/int13sniff/ListItem.pm rename to project/int13sniff/Index.pm index 3f0cbac..b0cec3b --- a/project/int13sniff/ListItem.pm +++ b/project/int13sniff/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::int13sniff' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::int13sniff' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::int13sniff::ListItem; +package project::int13sniff::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -39,7 +38,7 @@ our @ListItem=( "link-parent Surprise project"=>"/project/surprise/", "license"=>"GPL", "maintenance"=>"ready", - "sponsorship"=>a_href('http://www.suse.com/','SuSE'), + "sponsorship"=>sub { return a_href('http://www.suse.com/','SuSE'); }, "language"=>"i386 asm", "description"=><<"HERE",

    Developer tool for PC boot loading analysis. Report all sectors being read @@ -47,4 +46,14 @@ to display, back to its own floppy disk and/or to serial port(s).

    HERE ); +sub handler +{ +project::Lib->init(); + + +print centerimg "int13sniff-snap","Boot Snapshot"; + + +My::Web->footer(); +} 1; diff --git a/project/int13sniff/Makefile.am b/project/int13sniff/Makefile.am index 9bffbd2..3105908 100644 --- a/project/int13sniff/Makefile.am +++ b/project/int13sniff/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/ircon/Index.html.pl b/project/ircon/Index.pm old mode 100755 new mode 100644 similarity index 71% rename from project/ircon/Index.html.pl rename to project/ircon/Index.pm index da7c831..6208908 --- a/project/ircon/Index.html.pl +++ b/project/ircon/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Main page of 'My::Project::ircon' -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,35 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wuse 'My::Project'; -Wuse 'project::ircon::ListItem'; +Wuse 'project::Lib'; -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::ircon::ListItem::ListItem, +our @ListItem=( + "name"=>"IRCon", + "platform"=>"unixuser", + "priority"=>580, + "icon"=>"ircon-icon.jpeg", + "download"=>"ircon.tar.gz", + "link-index of scanned images"=>"ircon-img/", + "download-all scanned images"=>"ircon-img.tar", + "summary"=>"InfraRed remote control hardware", + "license"=>"PD", + "maintenance"=>sub { return "obsolete-Superseded by ".a_href('http://www.lirc.org/','LIRC'); }, + "language"=>"C, Java", + "description"=><<"HERE", +

    Software package for custom simple hardware connected to PC parallel port +and transmitting infrared singals to fake real remote TV/video controllers. Hardware +is also equipped with receiver which is only used during development to grab and decode +original signals.

    +HERE ); +sub handler +{ +project::Lib->init(); + + print <<"HERE";

    Package consists of:

      @@ -43,8 +59,8 @@ print <<"HERE";
    • Daemon to provide service for easy remote use over network
    • Multifunction decoder for singal analysis
    • Database of all the buttons (including some secret!) for supported devices
    • -
    • Set of CGIs for WWW interface operation support
    • -
    • Java 1.0 applet for more comforable WWW control from remote (not required, static HTML used if Java not available)
    • +
    • Set of CGIs for WWW interface operation support
    • +
    • Java 1.0 applet for more comforable WWW control from remote (not required, static HTML used if Java not available)
    • Software for complete tune-up of Maspro SRE-100R as set in text database (not useful, see last notice)

    Currently supported/decoded devices:

    @@ -57,7 +73,7 @@ print <<"HERE";
  • Toshiba V-800SZ video
  • Sharp VL-N1S handy video camera
  • -

    Last code touches were done in summer 1997 and it's not in use for now. In fact the hardware +

    Last code touches were done in summer 1997 and it's not in use for now. In fact the hardware should be more intelligent and generate the signal itself as PC hardware simply is too slow to keep up strictly with the original frequencies and so in about 1 of 30 button presses it misses. Due to this the automatic Maspro tuning software (generating hundreds of button presses) is not usable.

    @@ -68,4 +84,7 @@ tuning software (generating hundreds of button presses) is not usable.

    ]} HERE + My::Web->footer(); +} +1; diff --git a/project/ircon/ListItem.pm b/project/ircon/ListItem.pm deleted file mode 100755 index 51b2f0b..0000000 --- a/project/ircon/ListItem.pm +++ /dev/null @@ -1,51 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Definition of 'My::Project::ircon' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::ircon::ListItem; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -use My::Web; - - -our @ListItem=( - "name"=>"IRCon", - "platform"=>"unixuser", - "priority"=>580, - "icon"=>"ircon-icon.jpeg", - "download"=>"ircon.tar.gz", - "link-index of scanned images"=>"ircon-img/", - "download-all scanned images"=>"ircon-img.tar", - "summary"=>"InfraRed remote control hardware", - "license"=>"PD", - "maintenance"=>"obsolete-Superseded by ".a_href('http://www.lirc.org/','LIRC'), - "language"=>"C, Java", - "description"=><<"HERE", -

    Software package for custom simple hardware connected to PC parallel port -and transmitting infrared singals to fake real remote TV/video controllers. Hardware -is also equipped with receiver which is only used during development to grab and decode -original signals.

    -HERE - ); - -1; diff --git a/project/ircon/Makefile.am b/project/ircon/Makefile.am index b7bf197..3bbfb48 100644 --- a/project/ircon/Makefile.am +++ b/project/ircon/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/kewensis/Index.html.pl b/project/kewensis/Index.html.pl deleted file mode 100755 index cf4f889..0000000 --- a/project/kewensis/Index.html.pl +++ /dev/null @@ -1,49 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::kewensis' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::kewensis::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::kewensis::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::kewensis::ListItem::ListItem, - ); - - -print <<"HERE"; - -@{[ vskip "3ex" ]} - -HERE - - -My::Web->footer(); diff --git a/project/kewensis/ListItem.pm b/project/kewensis/Index.pm old mode 100755 new mode 100644 similarity index 67% rename from project/kewensis/ListItem.pm rename to project/kewensis/Index.pm index ad74f7f..7777477 --- a/project/kewensis/ListItem.pm +++ b/project/kewensis/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::kewensis' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::kewensis' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::kewensis::ListItem; +package project::kewensis::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -33,11 +32,11 @@ our @ListItem=( "platform"=>"web", "priority"=>120, "cvs"=>"kewensis", - "summary"=>a_href('http://www.ipni.org/','Plant Name Index').' custom engine', + "summary"=>sub { return a_href('http://www.ipni.org/','Plant Name Index').' custom engine'; }, "license"=>"PD", "maintenance"=>"ready", "language"=>"PHP, Perl", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    @{[ a_href 'http://www.ipni.org/','International Plant Name Index' ]} provides information about plants in duplicated and unconveniently searchable pages. You can download their database and run your own engine on it locally.

    @@ -46,4 +45,22 @@ plants and it groups synonyms of the same plant.

    HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; + +

    @{[ a_href 'out-list.html','Output listing illustration.' ]}

    + +@{[ vskip "3ex" ]} + +

    @{[ a_href 'out-edit.html','Record editing illustration.' ]}

    + +HERE + + +My::Web->footer(); +} 1; diff --git a/project/kewensis/Makefile.am b/project/kewensis/Makefile.am index 89d572f..580dce9 100644 --- a/project/kewensis/Makefile.am +++ b/project/kewensis/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/kix/Index.html.pl b/project/kix/Index.pm old mode 100755 new mode 100644 similarity index 70% rename from project/kix/Index.html.pl rename to project/kix/Index.pm index 6522d39..b555d24 --- a/project/kix/Index.html.pl +++ b/project/kix/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Main page of 'My::Project::kix' -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,29 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wuse 'My::Project'; -Wuse 'project::kix::ListItem'; +Wuse 'project::Lib'; -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::kix::ListItem::ListItem, +our @ListItem=( + "name"=>"KIX", + "platform"=>"unixuser", + "priority"=>110, + "download"=>"kix.c", + "summary"=>sub { return "Free protocol-compatible ".a_href('http://www.kali.net/','Kali').' server equivalent'; }, + "license"=>"PD", + "maintenance"=>"ready", + "language"=>"C", + "description"=>sub { return <<"HERE"; }, +

    Server used on GNU/Linux as a replacement for proprietary +@{[ a_href 'ftp://linux.kali.net/outgoing/kalinix/','KaliNix' ]} network game server.

    +HERE ); +sub handler +{ +project::Lib->init(); + print <<"HERE";

    You no longer need to run any foreign binaries on your system and connect @@ -50,3 +60,5 @@ HERE My::Web->footer(); +} +1; diff --git a/project/kix/ListItem.pm b/project/kix/ListItem.pm deleted file mode 100755 index 3a209d3..0000000 --- a/project/kix/ListItem.pm +++ /dev/null @@ -1,46 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Definition of 'My::Project::kix' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::kix::ListItem; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -use My::Web; - - -our @ListItem=( - "name"=>"KIX", - "platform"=>"unixuser", - "priority"=>110, - "download"=>"kix.c", - "summary"=>"Free protocol-compatible ".a_href('http://www.kali.net/','Kali').' server equivalent', - "license"=>"PD", - "maintenance"=>"ready", - "language"=>"C", - "description"=><<"HERE", -

    Server used on GNU/Linux as a replacement for proprietary -@{[ a_href 'ftp://linux.kali.net/outgoing/kalinix/','KaliNix' ]} network game server.

    -HERE - ); - -1; diff --git a/project/kix/Makefile.am b/project/kix/Makefile.am index fecdcd8..ce0ff09 100644 --- a/project/kix/Makefile.am +++ b/project/kix/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/kware/Index.html.pl b/project/kware/Index.html.pl deleted file mode 100755 index e980c65..0000000 --- a/project/kware/Index.html.pl +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::kware' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::kware::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::kware::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::kware::ListItem::ListItem, - ); - - -print <<"HERE"; -

    Currently only a few functions are implemented and the code is rather -an ugly hack than professional solution. I do not expect to ever develop -it into some clean software, take it as it is, improve it or let it be.

    -HERE - - -My::Web->footer(); diff --git a/project/kware/ListItem.pm b/project/kware/Index.pm old mode 100755 new mode 100644 similarity index 74% rename from project/kware/ListItem.pm rename to project/kware/Index.pm index 45a5869..226d2eb --- a/project/kware/ListItem.pm +++ b/project/kware/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::kware' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::kware' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::kware::ListItem; +package project::kware::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -35,8 +34,9 @@ our @ListItem=( "download"=>"kware.tar.gz", "summary"=>"Linux kernel drivers in userland for their debugging", "license"=>"PD", - "maintenance"=>"obsolete-" - .a_href('http://user-mode-linux.sourceforge.net/','The User-mode Linux Kernel')." is much more useful now.", + "maintenance"=>sub { return "obsolete-" + .a_href('http://user-mode-linux.sourceforge.net/','The User-mode Linux Kernel')." is much more useful now."; + }, "language"=>"C", "description"=><<"HERE",

    Do you also find debugging of Linux kernel drivers a nightmare? Would you @@ -50,4 +50,18 @@ KernelWare and you will get standard executable.

    HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    Currently only a few functions are implemented and the code is rather +an ugly hack than professional solution. I do not expect to ever develop +it into some clean software, take it as it is, improve it or let it be.

    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/kware/Makefile.am b/project/kware/Makefile.am index 60305f8..8bcab9d 100644 --- a/project/kware/Makefile.am +++ b/project/kware/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/libtool/Index.html.pl b/project/libtool/Index.pm old mode 100755 new mode 100644 similarity index 76% rename from project/libtool/Index.html.pl rename to project/libtool/Index.pm index 641b135..9462796 --- a/project/libtool/Index.html.pl +++ b/project/libtool/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Main page of 'My::Project::libtool' -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,29 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wuse 'My::Project'; -Wuse 'project::libtool::ListItem'; +Wuse 'project::Lib'; -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::libtool::ListItem::ListItem, +our @ListItem=( + "name"=>sub { return a_href('http://www.gnu.org/software/libtool/libtool.html','GNU Libtool').' fix'; }, + "platform"=>"patch", + "priority"=>620, + "summary"=>'Handle duplicate object file names', + "download-patch"=>'http://savannah.gnu.org/cgi-bin/cvsweb/libtool/ltmain.in.diff?r1=1.320&r2=1.321', + "license"=>"GPL", + "maintenance"=>"accepted", + "language"=>"sh patch", + "description"=><<"HERE", +

    Patch fixes linking of convenience libraries (.a) containing two +conflicting name objects.

    +HERE ); +sub handler +{ +project::Lib->init(); + print <<"HERE";

    When you include convenience library (.a) containing two conflicting name @@ -63,3 +73,5 @@ HERE My::Web->footer(); +} +1; diff --git a/project/libtool/ListItem.pm b/project/libtool/ListItem.pm deleted file mode 100755 index 32700cc..0000000 --- a/project/libtool/ListItem.pm +++ /dev/null @@ -1,46 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Definition of 'My::Project::libtool' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::libtool::ListItem; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -use My::Web; - - -our @ListItem=( - "name"=>a_href('http://www.gnu.org/software/libtool/libtool.html','GNU Libtool').' fix', - "platform"=>"patch", - "priority"=>620, - "summary"=>'Handle duplicate object file names', - "download-patch"=>'http://savannah.gnu.org/cgi-bin/cvsweb/libtool/ltmain.in.diff?r1=1.320&r2=1.321', - "license"=>"GPL", - "maintenance"=>"accepted", - "language"=>"sh patch", - "description"=><<"HERE", -

    Patch fixes linking of convenience libraries (.a) containing two -conflicting name objects.

    -HERE - ); - -1; diff --git a/project/libtool/Makefile.am b/project/libtool/Makefile.am index 58fc29f..72245eb 100644 --- a/project/libtool/Makefile.am +++ b/project/libtool/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/libxml2reader/Index.html.pl b/project/libxml2reader/Index.html.pl deleted file mode 100755 index 7a3ac83..0000000 --- a/project/libxml2reader/Index.html.pl +++ /dev/null @@ -1,45 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::libxml2reader' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::libxml2reader::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::libxml2reader::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::libxml2reader::ListItem::ListItem, - ); - - -print <<"HERE"; -

    Patch got integrated to xmlreader.c revision 1.50.

    -HERE - - -My::Web->footer(); diff --git a/project/libxml2reader/ListItem.pm b/project/libxml2reader/Index.pm old mode 100755 new mode 100644 similarity index 78% rename from project/libxml2reader/ListItem.pm rename to project/libxml2reader/Index.pm index 6d098b7..40f1b18 --- a/project/libxml2reader/ListItem.pm +++ b/project/libxml2reader/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::libxml2reader' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::libxml2reader' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::libxml2reader::ListItem; +package project::libxml2reader::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,10 +24,11 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://www.xmlsoft.org/','libxml2').' fix', + "name"=>sub { return a_href('http://www.xmlsoft.org/','libxml2').' fix'; }, "platform"=>"patch", "priority"=>365, "summary"=>'Fixed incomplete XML text nodes reading', @@ -45,4 +44,16 @@ real content. The remaining part of such text node is lost.

    HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    Patch got integrated to xmlreader.c revision 1.50.

    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/libxml2reader/Makefile.am b/project/libxml2reader/Makefile.am index 92c727a..f18a96d 100644 --- a/project/libxml2reader/Makefile.am +++ b/project/libxml2reader/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/line9k/Index.html.pl b/project/line9k/Index.html.pl deleted file mode 100755 index b16bbb7..0000000 --- a/project/line9k/Index.html.pl +++ /dev/null @@ -1,52 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::line9k' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::line9k::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::line9k::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::line9k::ListItem::ListItem, - ); - - -print <<"HERE"; -

    Scheme for battery charger. Review/fixes by the courtesy of Pavouk. -Connect serial port (such as /dev/ttyS0) to RS232 pins, -your original mobile phone charge to AC pins. PS/2 keyboard -fork of +5V/GND pins are required to power this hardware switch.

    - -@{[ centerimg "charger.jpeg","AC Switch Photo" ]} -@{[ vskip "3ex" ]} -@{[ centerimg "line9k","AC Switch Scheme" ]} -HERE - - -My::Web->footer(); diff --git a/project/line9k/ListItem.pm b/project/line9k/Index.pm old mode 100755 new mode 100644 similarity index 68% rename from project/line9k/ListItem.pm rename to project/line9k/Index.pm index 0e62897..a5012c1 --- a/project/line9k/ListItem.pm +++ b/project/line9k/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::line9k' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::line9k' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::line9k::ListItem; +package project::line9k::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -46,4 +45,23 @@ It keeps the Nokia battery fit by automatically controlled battery charging cycl HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    Scheme for battery charger. Review/fixes by the courtesy of Pavouk. +Connect serial port (such as /dev/ttyS0) to RS232 pins, +your original mobile phone charge to AC pins. PS/2 keyboard +fork of +5V/GND pins are required to power this hardware switch.

    + +@{[ centerimg "charger.jpeg","AC Switch Photo" ]} +@{[ vskip "3ex" ]} +@{[ centerimg "line9k","AC Switch Scheme" ]} +HERE + + +My::Web->footer(); +} 1; diff --git a/project/line9k/Makefile.am b/project/line9k/Makefile.am index 1945b4b..a4d3a21 100644 --- a/project/line9k/Makefile.am +++ b/project/line9k/Makefile.am @@ -18,12 +18,14 @@ include $(top_srcdir)/Makefile-head.am +MODPERL_PM+= \ + Index.pm + EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl \ - line9k.fig + line9k.fig CLEANFILES+= \ - line9k.fig.bak \ - line9k.png \ - line9k.gif + line9k.fig.bak \ + line9k.png \ + line9k.gif + diff --git a/project/lynxilla/Index.html.pl b/project/lynxilla/Index.html.pl deleted file mode 100755 index 2d971c9..0000000 --- a/project/lynxilla/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::lynxilla' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::lynxilla::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::lynxilla::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::lynxilla::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/lynxilla/ListItem.pm b/project/lynxilla/Index.pm old mode 100755 new mode 100644 similarity index 80% rename from project/lynxilla/ListItem.pm rename to project/lynxilla/Index.pm index cbdc9f4..ac37359 --- a/project/lynxilla/ListItem.pm +++ b/project/lynxilla/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::lynxilla' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::lynxilla' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::lynxilla::ListItem; +package project::lynxilla::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -35,12 +34,14 @@ our @ListItem=( "priority"=>460, # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} "download"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/nethome/.userContent.css?rev=HEAD", - "summary"=>a_href('http://lynx.isc.org/','Lynx').' look&feel with ' - .a_href('http://www.mozilla.org/','Mozilla').' web compatibility', + "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", "language"=>"CSS", - "description"=><<"HERE", + "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 @@ -51,4 +52,11 @@ as your local file: @{[ '$HOME/.mozilla/$USER/*/chrome/userContent.css' ]}

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/lynxilla/Makefile.am b/project/lynxilla/Makefile.am index bc638eb..ce60a63 100644 --- a/project/lynxilla/Makefile.am +++ b/project/lynxilla/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/mdsms/Index.html.pl b/project/mdsms/Index.html.pl deleted file mode 100755 index 1a71f44..0000000 --- a/project/mdsms/Index.html.pl +++ /dev/null @@ -1,49 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::mdsms' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::mdsms::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::mdsms::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::mdsms::ListItem::ListItem, - ); - - -print <<"HERE"; -

    This software should be general-UNIX compatible. Please wait a minute when -you run it, under various UNIXes it may take some time to finish.

    -

    GSM network codes: GSM network code needs to be given as parameter during -sending of operator logo. Nice list of the codes you will find -@{[ a_href 'http://kbs.cs.tu-berlin.de/~jutta/gsm/gsm-list.html','here' ]}.

    -HERE - - -My::Web->footer(); diff --git a/project/mdsms/ListItem.pm b/project/mdsms/Index.pm old mode 100755 new mode 100644 similarity index 73% rename from project/mdsms/ListItem.pm rename to project/mdsms/Index.pm index b807a5a..152e290 --- a/project/mdsms/ListItem.pm +++ b/project/mdsms/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::mdsms' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::mdsms' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::mdsms::ListItem; +package project::mdsms::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -39,18 +38,20 @@ our @ListItem=( "download-sources .tar.Z"=>"dist/mdsms-1.5.3.tar.Z", "download-logos from KESSLER Wireless Design"=>"http://www.kessler-design.com/wireless/samples.php3", "cvs"=>"mdsms", - "link-".a_href('http://freshmeat.net/','Freshmeat')=> - a_href('http://freshmeat.net/projects/mdsms/','Mobile Device SMS tool'), + "link-Freshmeat"=>sub { + return a_href('http://freshmeat.net/projects/mdsms/','Mobile Device SMS tool'); + }, "summary"=>"Mobile Device SMS Tool", "license"=>"GPL", "maintenance"=>"ready", - "sponsorship"=>join(", ", + "sponsorship"=>sub { return join(", ", a_href('http://www.tencom.cz/','TENcom Trade') .'/'.a_href('http://www.sme.cz/default.asp?lng=en&ver=html','SME'), a_href('http://www.readynote.com/','ReadyNote'), - a_href('http://www.atspraha.cz/','Advanced Telecom Services')), + a_href('http://www.atspraha.cz/','Advanced Telecom Services')); + }, "language"=>"C", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    Program sends NOL or NGG files as Nokia operator logo or group graphics through @{[ a_href 'http://www.nokia.com/','Nokia' ]} @{[ a_href 'http://www.communicator.org/','Communicator' ]} 9110 (@{[ a_href 'http://www.nokia.com/phones/9000i','9000/9000i' ]} @@ -62,4 +63,20 @@ FaxModem capability of 9110.

    HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    This software should be general-UNIX compatible. Please wait a minute when +you run it, under various UNIXes it may take some time to finish.

    +

    GSM network codes: GSM network code needs to be given as parameter during +sending of operator logo. Nice list of the codes you will find +@{[ a_href 'http://kbs.cs.tu-berlin.de/~jutta/gsm/gsm-list.html','here' ]}.

    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/mdsms/Makefile.am b/project/mdsms/Makefile.am index 8eb2d05..3018040 100644 --- a/project/mdsms/Makefile.am +++ b/project/mdsms/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/middleman/Index.html.pl b/project/middleman/Index.html.pl deleted file mode 100755 index e73a31a..0000000 --- a/project/middleman/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::middleman' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::middleman::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::middleman::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::middleman::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/middleman/ListItem.pm b/project/middleman/Index.pm old mode 100755 new mode 100644 similarity index 61% rename from project/middleman/ListItem.pm rename to project/middleman/Index.pm index 3504565..ce26271 --- a/project/middleman/ListItem.pm +++ b/project/middleman/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::middleman' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::middleman' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::middleman::ListItem; +package project::middleman::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,24 +24,31 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://middle-man.sourceforge.net/','Middleman').' port', + "name"=>sub { return a_href('http://middle-man.sourceforge.net/','Middleman').' port'; }, "platform"=>"unixuser", "priority"=>60, "cvs"=>"middleman:lace", - "summary"=>'HTTP proxy ported to ' - .a_href('http://www.freebsd.org/','FreeBSD'), + "summary"=>sub { return 'HTTP proxy ported to '.a_href('http://www.freebsd.org/','FreeBSD'); }, "license"=>"PD", "maintenance"=>"ready", - "sponsorship"=>a_href('http://www.jklabs.cz/','JKLabs'), + "sponsorship"=>sub { return a_href('http://www.jklabs.cz/','JKLabs'); }, "language"=>"C patch", - "description"=><<"HERE", -HTTP proxy server @{[ a_href 'http://middle-man.sourceforge.net/','Middleman' ]} + "description"=>sub { return <<"HERE"; }, +

    HTTP proxy server @{[ a_href 'http://middle-man.sourceforge.net/','Middleman' ]} capable of returned data mangling has been ported to -@{[ a_href 'http://www.freebsd.org/','FreeBSD' ]}. +@{[ a_href 'http://www.freebsd.org/','FreeBSD' ]}.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/middleman/Makefile.am b/project/middleman/Makefile.am index 152d864..d397558 100644 --- a/project/middleman/Makefile.am +++ b/project/middleman/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/mod_auth_tacacs/Index.html.pl b/project/mod_auth_tacacs/Index.html.pl deleted file mode 100755 index 1f1b1b3..0000000 --- a/project/mod_auth_tacacs/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::mod_auth_tacacs' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::mod_auth_tacacs::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::mod_auth_tacacs::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::mod_auth_tacacs::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/mod_auth_tacacs/ListItem.pm b/project/mod_auth_tacacs/Index.pm old mode 100755 new mode 100644 similarity index 64% rename from project/mod_auth_tacacs/ListItem.pm rename to project/mod_auth_tacacs/Index.pm index e9a2b94..94e25a9 --- a/project/mod_auth_tacacs/ListItem.pm +++ b/project/mod_auth_tacacs/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::mod_auth_tacacs' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::mod_auth_tacacs' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::mod_auth_tacacs::ListItem; +package project::mod_auth_tacacs::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,26 +24,36 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://sourceforge.net/projects/mod-auth-tacacs/','mod_auth_tacacs').' client', + "name"=>sub { return a_href('http://sourceforge.net/projects/mod-auth-tacacs/','mod_auth_tacacs').' client'; }, "platform"=>"patch", "priority"=>260, "icon"=>"cisco-icon.jpeg", "download"=>"mod_auth_tacacs-2.0.2-gts1-checkout.diff.gz", "link-mod_auth_tacacs homepage"=>"http://sourceforge.net/projects/mod-auth-tacacs/", - "summary"=>a_href('http://www.cisco.com/warp/public/614/7.html','Cisco TACACS+') - .' testing/debugging client for ' - .a_href('http://sourceforge.net/projects/mod-auth-tacacs/','mod_auth_tacacs'), + "summary"=>sub { + return a_href('http://www.cisco.com/warp/public/614/7.html','Cisco TACACS+') + .' testing/debugging client for ' + .a_href('http://sourceforge.net/projects/mod-auth-tacacs/','mod_auth_tacacs'); + }, "license"=>"PD", "maintenance"=>"accepted", "language"=>"C patch", "description"=><<"HERE", -Patch implements: command-line client, dropped Makefile.in +

    Patch implements: command-line client, dropped Makefile.in in favor of Makefile.am, --with-apache works now -(whole configure.in rewritten) +(whole configure.in rewritten)

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/mod_auth_tacacs/Makefile.am b/project/mod_auth_tacacs/Makefile.am index a08b8cf..fcc216c 100644 --- a/project/mod_auth_tacacs/Makefile.am +++ b/project/mod_auth_tacacs/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/mot2as/Index.html.pl b/project/mot2as/Index.html.pl deleted file mode 100755 index 94dff41..0000000 --- a/project/mot2as/Index.html.pl +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::mot2as' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::mot2as::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::mot2as::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::mot2as::ListItem::ListItem, - ); - - -print <<"HERE"; -

    Specifically it will care about: equ operation, dc.b strings, -; comments, @{[ '$' ]} for hex-radix, % for bin-radix, -local labels, : for label termination.

    -HERE - - -My::Web->footer(); diff --git a/project/mot2as/ListItem.pm b/project/mot2as/Index.pm old mode 100755 new mode 100644 similarity index 71% rename from project/mot2as/ListItem.pm rename to project/mot2as/Index.pm index 917aba0..b94e097 --- a/project/mot2as/ListItem.pm +++ b/project/mot2as/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::mot2as' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::mot2as' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::mot2as::ListItem; +package project::mot2as::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -37,7 +36,7 @@ our @ListItem=( "license"=>"PD", "maintenance"=>"ready", "language"=>"C", - "sponsorship"=>a_href('http://www.princip.cz/','Princip, a.s.'), + "sponsorship"=>sub { return a_href('http://www.princip.cz/','Princip, a.s.'); }, "description"=><<"HERE",

    Do you need to compile under UNIX assembly sources for Motorola 68k family of processors? You have probably already found out that original Motorola @@ -46,4 +45,18 @@ style) syntax. Using this very simple program you can convert between these two. HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    Specifically it will care about: equ operation, dc.b strings, +; comments, @{[ '$' ]} for hex-radix, % for bin-radix, +local labels, : for label termination.

    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/mot2as/Makefile.am b/project/mot2as/Makefile.am index 3ee15d4..0694ce4 100644 --- a/project/mot2as/Makefile.am +++ b/project/mot2as/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/muttsort/Index.html.pl b/project/muttsort/Index.html.pl deleted file mode 100755 index 13e0596..0000000 --- a/project/muttsort/Index.html.pl +++ /dev/null @@ -1,45 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::muttsort' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::muttsort::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::muttsort::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::muttsort::ListItem::ListItem, - ); - - -print <<"HERE"; -

    Patch got integrated to thread.c revision 2.16.

    -HERE - - -My::Web->footer(); diff --git a/project/muttsort/ListItem.pm b/project/muttsort/Index.pm old mode 100755 new mode 100644 similarity index 75% rename from project/muttsort/ListItem.pm rename to project/muttsort/Index.pm index 81218d5..7fb8f4c --- a/project/muttsort/ListItem.pm +++ b/project/muttsort/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::muttsort' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::muttsort' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::muttsort::ListItem; +package project::muttsort::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,10 +24,11 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://www.mutt.org/','Mutt').' speedup', + "name"=>sub { return a_href('http://www.mutt.org/','Mutt').' speedup'; }, "platform"=>"patch", "priority"=>430, "icon"=>"mutt_button", @@ -41,8 +40,20 @@ our @ListItem=( "description"=><<"HERE",

    Mutt is pretty slow when opening a mailbox. Phase "Reading..." is hard to speedup but "Sorting mailbox..." was rewritten from (n^2) complexity -to (n*log(n)). +to (n*log(n)).

    HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    Patch got integrated to thread.c revision 2.16.

    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/muttsort/Makefile.am b/project/muttsort/Makefile.am index 7d61eaf..6a3558e 100644 --- a/project/muttsort/Makefile.am +++ b/project/muttsort/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/netstat/Index.html.pl b/project/netstat/Index.pm old mode 100755 new mode 100644 similarity index 67% rename from project/netstat/Index.html.pl rename to project/netstat/Index.pm index 3296463..21d53eb --- a/project/netstat/Index.html.pl +++ b/project/netstat/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Main page of 'My::Project::netstat' -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,35 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wuse 'My::Project'; -Wuse 'project::netstat::ListItem'; +Wuse 'project::Lib'; -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::netstat::ListItem::ListItem, +our @ListItem=( + "name"=>"netstat -p", + "platform"=>"patch", + "priority"=>400, + "download"=>"net-tools-1.50-progname.diff.gz", + "summary"=>sub { + return "Program name display for ".a_href('http://www.inka.de/sites/lina/linux/NetTools/','net-tools-1.50') + .'/netstat'; + }, + "license"=>"PD", + "maintenance"=>"accepted", + "language"=>"C patch", + "description"=><<"HERE", +

    After answering several questions on the mailing lists and several from +my friends personally, I decided that there is missing some tool for GNU/Linux +which would display PID (or simply the process) of the owner of some socket, +either listening or communicating.

    +HERE ); +sub handler +{ +project::Lib->init(); + + print <<'HERE';

    The typical problem is that some port is allocated and no one knows which program is holding it. Output of the @@ -51,4 +67,7 @@ tcp 0 0 lemming.ericsson:domain *:* LISTEN HERE + My::Web->footer(); +} +1; diff --git a/project/netstat/ListItem.pm b/project/netstat/ListItem.pm deleted file mode 100755 index 24b94a7..0000000 --- a/project/netstat/ListItem.pm +++ /dev/null @@ -1,48 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Definition of 'My::Project::netstat' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::netstat::ListItem; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -use My::Web; - - -our @ListItem=( - "name"=>"netstat -p", - "platform"=>"patch", - "priority"=>400, - "download"=>"net-tools-1.50-progname.diff.gz", - "summary"=>"Program name display for ".a_href('http://www.inka.de/sites/lina/linux/NetTools/','net-tools-1.50').'/netstat', - "license"=>"PD", - "maintenance"=>"accepted", - "language"=>"C patch", - "description"=><<"HERE", -

    After answering several questions on the mailing lists and several from -my friends personally, I decided that there is missing some tool for GNU/Linux -which would display PID (or simply the process) of the owner of some socket, -either listening or communicating.

    -HERE - ); - -1; diff --git a/project/netstat/Makefile.am b/project/netstat/Makefile.am index 6ca5708..e1d359c 100644 --- a/project/netstat/Makefile.am +++ b/project/netstat/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/ntfsprogsgnomevfs/Index.html.pl b/project/ntfsprogsgnomevfs/Index.html.pl deleted file mode 100755 index 305d391..0000000 --- a/project/ntfsprogsgnomevfs/Index.html.pl +++ /dev/null @@ -1,46 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::ntfsprogsgnomevfs' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::ntfsprogsgnomevfs::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::ntfsprogsgnomevfs::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::ntfsprogsgnomevfs::ListItem::ListItem, - ); - - -print <<"HERE"; -

    Module got integrated to -@{[ a_href 'http://sourceforge.net/forum/forum.php?forum_id=327273','ntfsprogs-1.8.0beta2' ]}.

    -HERE - - -My::Web->footer(); diff --git a/project/ntfsprogsgnomevfs/ListItem.pm b/project/ntfsprogsgnomevfs/Index.pm old mode 100755 new mode 100644 similarity index 61% rename from project/ntfsprogsgnomevfs/ListItem.pm rename to project/ntfsprogsgnomevfs/Index.pm index e303a81..1171398 --- a/project/ntfsprogsgnomevfs/ListItem.pm +++ b/project/ntfsprogsgnomevfs/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::ntfsprogsgnomevfs' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::ntfsprogsgnomevfs' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::ntfsprogsgnomevfs::ListItem; +package project::ntfsprogsgnomevfs::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,17 +24,22 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://linux-ntfs.sourceforge.net/','Linux NTFS').' ' - .a_href('http://www.gnome.org/softwaremap/projects/GnomeVFS','GnomeVFS'), + "name"=>sub { + return a_href('http://linux-ntfs.sourceforge.net/','Linux NTFS').' ' + .a_href('http://www.gnome.org/softwaremap/projects/GnomeVFS','GnomeVFS'); + }, "platform"=>"patch", "priority"=>475, "icon"=>"ntfs-icon.jpeg", - "summary"=>a_href('http://www.gnome.org/softwaremap/projects/GnomeVFS','GnomeVFS') - .' interface for '.a_href('http://linux-ntfs.sourceforge.net/','Linux NTFS') - .' library', + "summary"=>sub { + return a_href('http://www.gnome.org/softwaremap/projects/GnomeVFS','GnomeVFS') + .' interface for '.a_href('http://linux-ntfs.sourceforge.net/','Linux NTFS') + .' library'; + }, "cvs"=>"ntfsprogs-gnomevfs", "license"=>"GPL", "maintenance"=>"accepted", @@ -47,4 +50,17 @@ our @ListItem=( HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    Module got integrated to +@{[ a_href 'http://sourceforge.net/forum/forum.php?forum_id=327273','ntfsprogs-1.8.0beta2' ]}.

    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/ntfsprogsgnomevfs/Makefile.am b/project/ntfsprogsgnomevfs/Makefile.am index ef7cabb..d324395 100644 --- a/project/ntfsprogsgnomevfs/Makefile.am +++ b/project/ntfsprogsgnomevfs/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/oslik/Index.html.pl b/project/oslik/Index.html.pl deleted file mode 100755 index 8c8c379..0000000 --- a/project/oslik/Index.html.pl +++ /dev/null @@ -1,43 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::oslik' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::oslik::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::oslik::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::oslik::ListItem::ListItem, - ); - -print <<"HERE"; -

    Currently the documentation is written only in Czech language.

    -HERE - -My::Web->footer(); diff --git a/project/oslik/ListItem.pm b/project/oslik/Index.pm old mode 100755 new mode 100644 similarity index 80% rename from project/oslik/ListItem.pm rename to project/oslik/Index.pm index 3f18c9c..0a5548a --- a/project/oslik/ListItem.pm +++ b/project/oslik/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::oslik' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::oslik' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::oslik::ListItem; +package project::oslik::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -45,4 +44,16 @@ both in C and Prolog for comparation.

    HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    Currently the documentation is written only in Czech language.

    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/oslik/Makefile.am b/project/oslik/Makefile.am index 997d8eb..8dc2721 100644 --- a/project/oslik/Makefile.am +++ b/project/oslik/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/patchd2/Index.html.pl b/project/patchd2/Index.html.pl deleted file mode 100755 index 3890e7f..0000000 --- a/project/patchd2/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::patchd2' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::patchd2::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::patchd2::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::patchd2::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/patchd2/ListItem.pm b/project/patchd2/Index.pm old mode 100755 new mode 100644 similarity index 72% rename from project/patchd2/ListItem.pm rename to project/patchd2/Index.pm index 6d2dad1..e22cc7c --- a/project/patchd2/ListItem.pm +++ b/project/patchd2/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::patchd2' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::patchd2' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::patchd2::ListItem; +package project::patchd2::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,22 +24,30 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://www.descent2.com/','Descent 2').' no-CD', + "name"=>sub { return a_href('http://www.descent2.com/','Descent 2').' no-CD'; }, "platform"=>"dos", "priority"=>160, "icon"=>"d2-icon.jpeg", "download"=>"patchd2.zip", - "summary"=>a_href('http://www.descent2.com/','Descent 2').' patch to avoid CD-ROM requirement', + "summary"=>sub { return a_href('http://www.descent2.com/','Descent 2').' patch to avoid CD-ROM requirement'; }, "license"=>"PD", "maintenance"=>"ready", "language"=>"i386 asm patch", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    Use this @{[ a_href 'http://www.calderathin.com/products/drdos/','DOS' ]} program to patch/unpatch Descent 2 to not require CD-ROM to run.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/patchd2/Makefile.am b/project/patchd2/Makefile.am index 5d19d4c..f9b718b 100644 --- a/project/patchd2/Makefile.am +++ b/project/patchd2/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/pgsqlsubstr/Index.html.pl b/project/pgsqlsubstr/Index.html.pl deleted file mode 100755 index 81f807f..0000000 --- a/project/pgsqlsubstr/Index.html.pl +++ /dev/null @@ -1,46 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::pgsqlsubstr' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::pgsqlsubstr::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::pgsqlsubstr::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::pgsqlsubstr::ListItem::ListItem, - ); - - -print <<"HERE"; -

    Although the patch is noted by Thomas G. Lockhart he is referring in me in -that text, believe me. :-)

    -HERE - - -My::Web->footer(); diff --git a/project/pgsqlsubstr/ListItem.pm b/project/pgsqlsubstr/Index.pm old mode 100755 new mode 100644 similarity index 76% rename from project/pgsqlsubstr/ListItem.pm rename to project/pgsqlsubstr/Index.pm index dff23d9..cce5aa6 --- a/project/pgsqlsubstr/ListItem.pm +++ b/project/pgsqlsubstr/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::pgsqlsubstr' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::pgsqlsubstr' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::pgsqlsubstr::ListItem; +package project::pgsqlsubstr::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,10 +24,11 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://www.postgresql.org/','PostgreSQL').'-6.3 fix', + "name"=>sub { a_href('http://www.postgresql.org/','PostgreSQL').'-6.3 fix'; }, "platform"=>"patch", "priority"=>290, "icon"=>"postgresql", @@ -45,4 +44,17 @@ PostgreSQL engine.

    HERE ); +sub handler +{ +project::Lib->init(); + + +print <<"HERE"; +

    Although the patch is noted by Thomas G. Lockhart he is referring in me in +that text, believe me. :-)

    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/pgsqlsubstr/Makefile.am b/project/pgsqlsubstr/Makefile.am index 76e087c..362a5c6 100644 --- a/project/pgsqlsubstr/Makefile.am +++ b/project/pgsqlsubstr/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/phphash/Index.html.pl b/project/phphash/Index.html.pl deleted file mode 100755 index 3d28ad7..0000000 --- a/project/phphash/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::phphash' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::phphash::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::phphash::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::phphash::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/phphash/ListItem.pm b/project/phphash/Index.pm old mode 100755 new mode 100644 similarity index 81% rename from project/phphash/ListItem.pm rename to project/phphash/Index.pm index 58b5543..90ab1e1 --- a/project/phphash/ListItem.pm +++ b/project/phphash/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::phphash' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::phphash' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::phphash::ListItem; +package project::phphash::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,10 +24,11 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( - "name"=>a_href('http://www.php.net/','PHP').'-3.0b6 fix', + "name"=>sub { return a_href('http://www.php.net/','PHP').'-3.0b6 fix'; }, "platform"=>"patch", "priority"=>300, "icon"=>"php", @@ -45,4 +44,11 @@ being deleted.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/phphash/Makefile.am b/project/phphash/Makefile.am index 57e201b..d660f39 100644 --- a/project/phphash/Makefile.am +++ b/project/phphash/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/pipebuf/Index.html.pl b/project/pipebuf/Index.html.pl deleted file mode 100755 index e3850af..0000000 --- a/project/pipebuf/Index.html.pl +++ /dev/null @@ -1,48 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::pipebuf' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::pipebuf::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::pipebuf::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::pipebuf::ListItem::ListItem, - ); - - -print <<"HERE"; -

    Progarm is implemented as two processes (no threads - no pthread libraries -needed, only IPC communication used). Features custom buffer sizes, prefill -(start writing of the first byte only after the WHOLE buffer has beel filled -up) and warning messages when buffer is getting emptied.

    -HERE - - -My::Web->footer(); diff --git a/project/pipebuf/ListItem.pm b/project/pipebuf/Index.pm old mode 100755 new mode 100644 similarity index 71% rename from project/pipebuf/ListItem.pm rename to project/pipebuf/Index.pm index 1b12092..cd61d0c --- a/project/pipebuf/ListItem.pm +++ b/project/pipebuf/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::pipebuf' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::pipebuf' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::pipebuf::ListItem; +package project::pipebuf::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -44,4 +43,19 @@ its cache and also in the same time writes as fast as possible to the output.

    init(); + + +print <<"HERE"; +

    Progarm is implemented as two processes (no threads - no pthread libraries +needed, only IPC communication used). Features custom buffer sizes, prefill +(start writing of the first byte only after the WHOLE buffer has beel filled +up) and warning messages when buffer is getting emptied.

    +HERE + + +My::Web->footer(); +} 1; diff --git a/project/pipebuf/Makefile.am b/project/pipebuf/Makefile.am index 8646788..d8f1884 100644 --- a/project/pipebuf/Makefile.am +++ b/project/pipebuf/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/postget/Index.html.pl b/project/postget/Index.pm old mode 100755 new mode 100644 similarity index 61% rename from project/postget/Index.html.pl rename to project/postget/Index.pm index f97a35e..61f2181 --- a/project/postget/Index.html.pl +++ b/project/postget/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Main page of 'My::Project::postget' -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,42 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wuse 'My::Project'; -Wuse 'project::postget::ListItem'; +Wuse 'project::Lib'; -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::postget::ListItem::ListItem, +our @ListItem=( + "name"=>"postget", + "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", + "summary"=>sub { + return "Bookmark ".a_href('http://www.w3.org/TR/html4/interact/forms.html#h-17.13.1','POST') + .' forms, hide passwords'; + }, + "license"=>"PD", + "maintenance"=>"ready", + "language"=>"PHP", + "description"=>sub { return <<"HERE"; }, +

    You cannot bookmark pre-filled forms to your browser bookmarks. Although +browsers support storing of form data you still have to load the form page and +click its submit button. This script will allow you to:

    +
      +
    • Store all @{[ a_href 'http://www.w3.org/TR/html4/interact/forms.html#h-17.13.1','POST' ]}ed + form data as @{[ a_href 'http://www.w3.org/TR/html4/interact/forms.html#h-17.13.1','GET' ]} data + (after '?' URL delimiter).
    • +
    • Replace all sensitive passwords by indirect references to your priv directory + to allow you to make your bookmark file itself public.
    • +
    +HERE ); +sub handler +{ +project::Lib->init(); + print <<"HERE"; @@ -47,7 +70,7 @@ print <<"HERE";
  • Edit path to your priv directory in the stored - @{[ a_href $W->{"project_viewcvs"}."*checkout*/nethome/WWW/cgi-bin/postget.php?rev=HEAD",'postget.php' ]}. + @{[ a_href $W->{"project_viewcvs"}."*checkout*/nethome/WWW/cgi-bin/postget.php?rev=HEAD",'postget.php' ]}.

  • Bookmark the following @{[ a_href 'http://freshmeat.net/','Freshmeat' ]} URL: @@ -70,3 +93,5 @@ HERE My::Web->footer(); +} +1; diff --git a/project/postget/ListItem.pm b/project/postget/ListItem.pm deleted file mode 100755 index ff499b8..0000000 --- a/project/postget/ListItem.pm +++ /dev/null @@ -1,57 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Definition of 'My::Project::postget' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::postget::ListItem; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -use My::Web; - - -our @ListItem=( - "name"=>"postget", - "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", - "summary"=>"Bookmark ".a_href('http://www.w3.org/TR/html4/interact/forms.html#h-17.13.1','POST') - .' forms, hide passwords', - "license"=>"PD", - "maintenance"=>"ready", - "language"=>"PHP", - "description"=><<"HERE", -

    You cannot bookmark pre-filled forms to your browser bookmarks. Although -browsers support storing of form data you still have to load the form page and -click its submit button. This script will allow you to:

    -
      -
    • Store all @{[ a_href 'http://www.w3.org/TR/html4/interact/forms.html#h-17.13.1','POST' ]}ed - form data as @{[ a_href 'http://www.w3.org/TR/html4/interact/forms.html#h-17.13.1','GET' ]} data - (after '?' URL delimiter).
    • -
    • Replace all sensitive passwords by indirect references to your priv directory - to allow you to make your bookmark file itself public.
    • -
    -HERE - ); - -1; diff --git a/project/postget/Makefile.am b/project/postget/Makefile.am index 58d0cb5..395bf65 100644 --- a/project/postget/Makefile.am +++ b/project/postget/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/ppp9k/Index.html.pl b/project/ppp9k/Index.html.pl deleted file mode 100755 index e056c4b..0000000 --- a/project/ppp9k/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::ppp9k' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::ppp9k::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::ppp9k::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::ppp9k::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/ppp9k/ListItem.pm b/project/ppp9k/Index.pm old mode 100755 new mode 100644 similarity index 76% rename from project/ppp9k/ListItem.pm rename to project/ppp9k/Index.pm index 1fbeb5d..4dfe6c0 --- a/project/ppp9k/ListItem.pm +++ b/project/ppp9k/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::ppp9k' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::ppp9k' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::ppp9k::ListItem; +package project::ppp9k::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -34,18 +33,27 @@ our @ListItem=( "priority"=>410, # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} "download"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/nethome/bin/ppp9k?rev=HEAD", - "summary"=>"Connect " - .a_href('http://www.nokia.com/phones/9110i','Nokia Communicator') - ." by serial PPP to your LAN", + "summary"=>sub { + return "Connect " + .a_href('http://www.nokia.com/phones/9110i','Nokia Communicator') + ." by serial PPP to your LAN"; + }, "license"=>"PD", "maintenance"=>"ready", "language"=>"bash", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },

    Script will connect Nokia Communicator @{[ a_href 'http://www.nokia.com/phones/9000i','9000i' ]} or @{[ a_href 'http://www.nokia.com/phones/9110i','9110i' ]} through your local GNU/Linux PC Internet connection. You will also need -Nokia Communicator utility @{[ a_href 'http://www.mgroeber.de/nokia.htm','Advanced PPP Settings' ]}. +Nokia Communicator utility @{[ a_href 'http://www.mgroeber.de/nokia.htm','Advanced PPP Settings' ]}.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/ppp9k/Makefile.am b/project/ppp9k/Makefile.am index dadec1d..f2a7e87 100644 --- a/project/ppp9k/Makefile.am +++ b/project/ppp9k/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/redirector_ad/Index.html.pl b/project/redirector_ad/Index.html.pl deleted file mode 100755 index 9a33401..0000000 --- a/project/redirector_ad/Index.html.pl +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::redirector_ad' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::redirector_ad::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::redirector_ad::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::redirector_ad::ListItem::ListItem, - ); - -My::Web->footer(); diff --git a/project/redirector_ad/ListItem.pm b/project/redirector_ad/Index.pm old mode 100755 new mode 100644 similarity index 80% rename from project/redirector_ad/ListItem.pm rename to project/redirector_ad/Index.pm index 17c9e6f..4c76d7d --- a/project/redirector_ad/ListItem.pm +++ b/project/redirector_ad/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::redirector_ad' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::redirector_ad' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::redirector_ad::ListItem; +package project::redirector_ad::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -34,7 +33,7 @@ our @ListItem=( "priority"=>340, "icon"=>"cnet-icon", "cvs"=>"redirector-ad", - "summary"=>'Banner killer as '.a_href('http://www.squid-cache.org/','Squid').' redirector filter', + "summary"=>sub { return 'Banner killer as '.a_href('http://www.squid-cache.org/','Squid').' redirector filter'; }, # FIXME: 'http://cvs.jankratochvil.net/viewcvs/' -> $W->{"project_viewcvs"} "link-README"=>'http://cvs.jankratochvil.net/viewcvs/'."*checkout*/redirector-ad/README?rev=HEAD", "license"=>"PD", @@ -47,4 +46,11 @@ is no need for separate administration of another daemon.

    HERE ); +sub handler +{ +project::Lib->init(); + + +My::Web->footer(); +} 1; diff --git a/project/redirector_ad/Makefile.am b/project/redirector_ad/Makefile.am index 21cfd3a..8275a66 100644 --- a/project/redirector_ad/Makefile.am +++ b/project/redirector_ad/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/smbfs/Index.html.pl b/project/smbfs/Index.pm old mode 100755 new mode 100644 similarity index 73% rename from project/smbfs/Index.html.pl rename to project/smbfs/Index.pm index 68ace61..7e0d1b1 --- a/project/smbfs/Index.html.pl +++ b/project/smbfs/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ # Main page of 'My::Project::smbfs' -# Copyright (C) 2003 Jan Kratochvil +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,17 +23,30 @@ our $CVS_ID=q$Id$; use strict; use warnings; -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } use My::Web; -Wuse 'My::Project'; -Wuse 'project::smbfs::ListItem'; +Wuse 'project::Lib'; -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::smbfs::ListItem::ListItem, +our @ListItem=( + "name"=>"smbfs patch", + "platform"=>"unixuser", + "trivia"=>1, + "priority"=>80, + "download"=>"smbfs-2.1.132-blocksize.diff", + "summary"=>'Linux kernel smbfs acceleration patch', + "license"=>"PD", + "maintenance"=>"ready", + "language"=>"C patch", + "description"=><<"HERE", +

    Accelerate twice the copying transfer rate for client GNU/Linux from SMB +server share (Microsoft Windows).

    +HERE ); +sub handler +{ +project::Lib->init(); + print <<"HERE";

    Simple patch to increase virtual block size of SMB filesytem in Linux @@ -50,3 +61,5 @@ HERE My::Web->footer(); +} +1; diff --git a/project/smbfs/ListItem.pm b/project/smbfs/ListItem.pm deleted file mode 100755 index d499dff..0000000 --- a/project/smbfs/ListItem.pm +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Definition of 'My::Project::smbfs' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::smbfs::ListItem; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -use My::Web; - - -our @ListItem=( - "name"=>"smbfs patch", - "platform"=>"unixuser", - "trivia"=>1, - "priority"=>80, - "download"=>"smbfs-2.1.132-blocksize.diff", - "summary"=>'Linux kernel smbfs acceleration patch', - "license"=>"PD", - "maintenance"=>"ready", - "language"=>"C patch", - "description"=><<"HERE", -

    Accelerate twice the copying transfer rate for client GNU/Linux from SMB -server share (Microsoft Windows). -HERE - ); - -1; diff --git a/project/smbfs/Makefile.am b/project/smbfs/Makefile.am index 2f7332f..31747fe 100644 --- a/project/smbfs/Makefile.am +++ b/project/smbfs/Makefile.am @@ -18,6 +18,6 @@ include $(top_srcdir)/Makefile-head.am -EXTRA_DIST+= \ - ListItem.pm \ - Index.html.pl +MODPERL_PM+= \ + Index.pm + diff --git a/project/sshpatch/Index.html.pl b/project/sshpatch/Index.html.pl deleted file mode 100755 index 9f75b3c..0000000 --- a/project/sshpatch/Index.html.pl +++ /dev/null @@ -1,53 +0,0 @@ -#! /usr/bin/perl -# -# $Id$ -# Main page of 'My::Project::sshpatch' -# Copyright (C) 2003 Jan Kratochvil -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; exactly version 2 of June 1991 is required -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -package project::sshpatch::Index; -require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway -our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; -our $CVS_ID=q$Id$; -use strict; -use warnings; - -BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } -use My::Web; -Wuse 'My::Project'; -Wuse 'project::sshpatch::ListItem'; - - -My::Project->init_project( - "__PACKAGE__"=>__PACKAGE__, - "ListItem"=>\@project::sshpatch::ListItem::ListItem, - ); - -print <<'HERE'; -

    This patch will enahance your SSH with two new options, their detailed description you will -find in the updated man pages after you install this offered patch:

    -
      -
    • KeepAliveData: Some broken hosts potentially gatewaying/masquerading the data (between ssh -client-server) forget and reject connections with too much idle time. Use this option to -workaround it.
    • -
    • OnDemandForward: Forces client to wait until the first connection to locally forwarded port is -made. When user enables this option, SSH client initially only starts listening on specified local ports for -forwarding. Only after the first connection to such local port is made, SSH will -start the connection and authentication to the server.
    • -
    -HERE - -My::Web->footer(); diff --git a/project/sshpatch/ListItem.pm b/project/sshpatch/Index.pm old mode 100755 new mode 100644 similarity index 63% rename from project/sshpatch/ListItem.pm rename to project/sshpatch/Index.pm index 4d21c55..15fd4ae --- a/project/sshpatch/ListItem.pm +++ b/project/sshpatch/Index.pm @@ -1,8 +1,6 @@ -#! /usr/bin/perl -# # $Id$ -# Definition of 'My::Project::sshpatch' for list.cgi.pl -# Copyright (C) 2003 Jan Kratochvil +# Main page of 'My::Project::sshpatch' +# Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +16,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -package project::sshpatch::ListItem; +package project::sshpatch::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; @@ -26,6 +24,7 @@ use strict; use warnings; use My::Web; +Wuse 'project::Lib'; our @ListItem=( @@ -37,9 +36,11 @@ our @ListItem=( "download-SSH-1, version 1.2.30, .tar.gz"=>"ftp://ftp.fi.muni.cz/pub/ssh/ssh-1.2.30.tar.gz", "summary"=>"SSH-1 KeepAliveData and OnDemandForward features", "license"=>"PD", - "maintenance"=>"obsolete-".a_href('http://www.openssh.com/','OpenSSH').' now contains equivalent features.', + "maintenance"=>sub { + return "obsolete-".a_href('http://www.openssh.com/','OpenSSH').' now contains equivalent features.'; + }, "language"=>"C patch", - "description"=><<"HERE", + "description"=>sub { return <<"HERE"; },