From: Ian Jackson Date: Mon, 18 Feb 2013 16:57:21 +0000 (+0000) Subject: automatic agpl compliance: wip fixes X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=cgi-auth-flexible.git;a=commitdiff_plain;h=7474e250f15af4708e7576c759e3941fa56e9080 automatic agpl compliance: wip fixes --- diff --git a/CGI/Auth/AGPLv3 b/CGI/Auth/AGPLv3 new file mode 120000 index 0000000..97d4185 --- /dev/null +++ b/CGI/Auth/AGPLv3 @@ -0,0 +1 @@ +../../AGPLv3 \ No newline at end of file diff --git a/cgi-auth-flexible.pm b/cgi-auth-flexible.pm index 4dd6daf..a462bf8 100644 --- a/cgi-auth-flexible.pm +++ b/cgi-auth-flexible.pm @@ -200,15 +200,15 @@ sub gen_plain_footer_html ($$) { #---------- licence and source code ---------- -sub srcdump_dump_thing ($$$) { - my ($c,$r, $thing, $outfn) = @_; +sub srcdump_dump ($$$) { + my ($c,$r, $thing) = @_; die if $thing =~ m/\W/ || $thing !~ m/\w/; my $path = $r->_get_path('srcdump'); my $ctf = new IO::File "$path/$thing.ctype", 'r' or die "$path/$thing.ctype $!"; my $ct = <$ctf>; chomp $ct or die "$path/$thing ?"; - $ct->close or die "$path/$thing $!"; + $ctf->close or die "$path/$thing $!"; my $df = new IO::File "$path/$thing.data", 'r' or die "$path/$thing.data $!"; $r->_ch('dump', $ct, $df); @@ -216,7 +216,7 @@ sub srcdump_dump_thing ($$$) { sub dump_plain ($$$$) { my ($c, $r, $ct, $df) = @_; - $r->_print($c->header(-type $ct)); + $r->_print($c->header('-type' => $ct)); my $buffer; for (;;) { my $got = read $df, $buffer, 65536; @@ -268,7 +268,7 @@ sub srcdump_byvcs_git ($$$$$) { "); } -sub scrdump_dir_cpio ($$$$$) { +sub srcdump_dir_cpio ($$$$$) { my ($c,$v,$dumpdir,$dir,$tarballcounter,$script) = @_; my $outfile = "$dumpdir/$$tarballcounter.tar"; my $pid = fork(); @@ -296,11 +296,12 @@ sub scrdump_dir_cpio ($$$$$) { sub srcdump_dirscan_prepare ($$) { my ($c, $v) = @_; my $dumpdir = $v->_get_path('srcdump'); + mkdir $dumpdir or $!==&EEXIST or die "mkdir $dumpdir $!"; my $lockf = new IO::File "$dumpdir/generate.lock", 'w+' or die "$dumpdir/generate.lock $!"; flock $lockf, LOCK_EX or die "$dumpdir/generate.lock $!"; my $needlicence = "$dumpdir/licence.tmp"; - unlink $needlicence || $!==&ENOENT or die "rm $needlicence $!"; + unlink $needlicence or $!==&ENOENT or die "rm $needlicence $!"; if (defined $v->{S}{srcdump_licence_path}) { copy($v->{S}{srcdump_licence_path}, $needlicence) or die "$v->{S}{srcdump_licence_path} $!"; @@ -309,7 +310,7 @@ sub srcdump_dirscan_prepare ($$) { my $srctarballcounter = 'aaa'; my %dirsdone; my @srcfiles = ("$dumpdir/licence.data"); - foreach my $incdir ($v->_ch('getsource_includedirs')) { + foreach my $incdir ($v->_ch('srcdump_includedirs')) { if (defined $needlicence) { foreach my $try (@{ $v->{S}{srcdump_licence_files} }) { last if copy("$incdir/$try", $needlicence); @@ -394,11 +395,13 @@ sub new_verifier { gen_login_form => \&gen_plain_login_form, gen_login_link => \&gen_plain_login_link, gen_postmainpage_form => \&gen_postmainpage_form, - srcdump_dump_thing => \&srcdump_dump_thing, + srcdump_dump => \&srcdump_dump, srcdump_prepare => \&srcdump_dirscan_prepare, srcdump_licence_path => undef, srcdump_licence_files => [qw(AGPLv3 CGI/Auth/Flexible/AGPLv3)], + srcdump_includedirs => sub { return @INC; }, srcdump_system_dir => sub { $_[2] =~ m#^/etc/|^/usr/(?!local/)#; }, + srcdump_process_dir => \&srcdump_process_dir, srcdump_vcs_dirs => [qw(.git .hg .svn CVS)], srcdump_byvcs_git => \&srcdump_byvcs_git, srcdump_byvcs_hg => \&srcdump_byvcs_hg, @@ -406,6 +409,7 @@ sub new_verifier { srcdump_byvcs_cvs => \&srcdump_byvcs_cvs, srcdump_novcs => \&srcdump_novcs, srcdump_excludes => [qw(*~ *.bak *.tmp), '#*#'], + dump => \&dump_plain, gettext => sub { gettext($_[2]); }, print => sub { print $_[2] or die $!; }, debug => sub { }, # like print; msgs contain trailing \n @@ -419,6 +423,7 @@ sub new_verifier { } bless $verifier, $class; $verifier->_dbopen(); + $verifier->_ch('srcdump_prepare'); return $verifier; } @@ -979,7 +984,7 @@ sub check_ok ($) { my $cookie = $r->construct_cookie($cookiesecret); if ($kind =~ m/^SRCDUMP-(\w+)$/) { - $r->_ch('srcdump_dump_thing', (lc $1)); + $r->_ch('srcdump_dump', (lc $1)); return 0; }