fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2011-11-07 10:27 am

[dw-free] move cgi-bin/lj*.pl files into proper modules (in cgi-bin/LJ)

[commit: http://hg.dwscoalition.org/dw-free/rev/b9043502017a]

http://bugs.dwscoalition.org/show_bug.cgi?id=1726

lj-bml-init.pl => LJ/GLobal/BMLInit.pm

Patch by [personal profile] kareila.

Files modified:
  • cgi-bin/LJ/Global/BMLInit.pm
  • cgi-bin/lj-bml-init.pl
  • htdocs/_config.bml
  • t/00-compile.t
--------------------------------------------------------------------------------
diff -r 1dc28b858eb4 -r b9043502017a cgi-bin/LJ/Global/BMLInit.pm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cgi-bin/LJ/Global/BMLInit.pm	Mon Nov 07 18:28:01 2011 +0800
@@ -0,0 +1,101 @@
+#!/usr/bin/perl
+#
+# This code was forked from the LiveJournal project owned and operated
+# by Live Journal, Inc. The code has been modified and expanded by
+# Dreamwidth Studios, LLC. These files were originally licensed under
+# the terms of the license supplied by Live Journal, Inc, which can
+# currently be found at:
+#
+# http://code.livejournal.org/trac/livejournal/browser/trunk/LICENSE-LiveJournal.txt
+#
+# In accordance with the original license, this code and all its
+# modifications are provided under the GNU General Public License.
+# A copy of that license can be found in the LICENSE file included as
+# part of this distribution.
+
+use strict;
+use lib "$LJ::HOME/cgi-bin";
+use Errno qw(ENOENT);
+use LJ::Config;
+LJ::Config->load;
+use Apache::BML;
+
+foreach (@LJ::LANGS, @LJ::LANGS_IN_PROGRESS) {
+    BML::register_isocode(substr($_, 0, 2), $_);
+    BML::register_language($_);
+}
+
+# set default path/domain for cookies
+BML::set_config( "CookieDomain" => $LJ::COOKIE_DOMAIN );
+BML::set_config( "CookiePath"   => "/" );
+
+BML::register_hook("startup", sub {
+    my $r = BML::get_request();
+    my $uri = "bml" . $r->uri;
+    unless ($uri =~ s/\.bml$//) {
+        $uri .= ".index";
+    }
+    $uri =~ s!/!.!g;
+    $r->notes->{"codepath"} = $uri;
+});
+
+BML::register_hook("codeerror", sub {
+    my $msg = shift;
+
+    my $err = LJ::errobj($msg)       or return;
+    $err->log;
+    $msg = $err->as_html;
+
+    chomp $msg;
+    $msg .= " \@ $LJ::SERVER_NAME" if $LJ::SERVER_NAME;
+    warn "$msg\n";
+
+    my $remote = LJ::get_remote();
+    if (($remote && $remote->show_raw_errors) || $LJ::IS_DEV_SERVER) {
+        return "<b>[Error: $msg]</b>";
+    } else {
+        return $LJ::MSG_ERROR || "Sorry, there was a problem.";
+    }
+});
+
+if ($LJ::UNICODE) {
+    BML::set_config("DefaultContentType", "text/html; charset=utf-8");
+}
+
+# register BML multi-language hook
+BML::register_hook("ml_getter", \&LJ::Lang::get_text);
+
+# include file handling
+BML::register_hook('include_getter', sub {
+    # simply call LJ::load_include, as it does all the work of hitting up
+    # memcache/db for us and falling back to disk if necessary...
+    my ($file, $source) = @_;
+    $$source = LJ::load_include($file);
+    return 1;
+});
+
+# Allow scheme override to be defined as a code ref or an explicit string value
+BML::register_hook('default_scheme_override', sub {
+    my $current_scheme = shift;
+
+    my $override = $LJ::BML_SCHEME_OVERRIDE{$current_scheme};
+    return LJ::conf_test($override) if defined $override;
+
+    return LJ::conf_test($LJ::SCHEME_OVERRIDE);
+});
+
+# extra perl to insert at the beginning of a code block
+# compilation
+BML::register_hook("codeblock_init_perl", sub {
+    return q{*errors = *BMLCodeBlock::errors;};
+});
+
+# now apply any local behaviors which may be defined
+eval "use LJ::Local::BMLInit;";
+die $@ if $@ && $! != ENOENT;
+
+# if the old local filename is in use, log an error.
+warn "NOTE: Found lj-bml-init-local.pl, please rename to cgi-bin/LJ/Local/BMLInit.pm"
+    if -e "$LJ::HOME/cgi-bin/lj-bml-init-local.pl";
+
+1;
diff -r 1dc28b858eb4 -r b9043502017a cgi-bin/lj-bml-init.pl
--- a/cgi-bin/lj-bml-init.pl	Mon Nov 07 17:46:20 2011 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-#!/usr/bin/perl
-#
-# This code was forked from the LiveJournal project owned and operated
-# by Live Journal, Inc. The code has been modified and expanded by
-# Dreamwidth Studios, LLC. These files were originally licensed under
-# the terms of the license supplied by Live Journal, Inc, which can
-# currently be found at:
-#
-# http://code.livejournal.org/trac/livejournal/browser/trunk/LICENSE-LiveJournal.txt
-#
-# In accordance with the original license, this code and all its
-# modifications are provided under the GNU General Public License.
-# A copy of that license can be found in the LICENSE file included as
-# part of this distribution.
-
-use strict;
-use lib "$LJ::HOME/cgi-bin";
-use Errno qw(ENOENT);
-use LJ::Config;
-LJ::Config->load;
-use Apache::BML;
-
-foreach (@LJ::LANGS, @LJ::LANGS_IN_PROGRESS) {
-    BML::register_isocode(substr($_, 0, 2), $_);
-    BML::register_language($_);
-}
-
-# set default path/domain for cookies
-BML::set_config( "CookieDomain" => $LJ::COOKIE_DOMAIN );
-BML::set_config( "CookiePath"   => "/" );
-
-BML::register_hook("startup", sub {
-    my $r = BML::get_request();
-    my $uri = "bml" . $r->uri;
-    unless ($uri =~ s/\.bml$//) {
-        $uri .= ".index";
-    }
-    $uri =~ s!/!.!g;
-    $r->notes->{"codepath"} = $uri;
-});
-
-BML::register_hook("codeerror", sub {
-    my $msg = shift;
-
-    my $err = LJ::errobj($msg)       or return;
-    $err->log;
-    $msg = $err->as_html;
-
-    chomp $msg;
-    $msg .= " \@ $LJ::SERVER_NAME" if $LJ::SERVER_NAME;
-    warn "$msg\n";
-
-    my $remote = LJ::get_remote();
-    if (($remote && $remote->show_raw_errors) || $LJ::IS_DEV_SERVER) {
-        return "<b>[Error: $msg]</b>";
-    } else {
-        return $LJ::MSG_ERROR || "Sorry, there was a problem.";
-    }
-});
-
-if ($LJ::UNICODE) {
-    BML::set_config("DefaultContentType", "text/html; charset=utf-8");
-}
-
-# register BML multi-language hook
-BML::register_hook("ml_getter", \&LJ::Lang::get_text);
-
-# include file handling
-BML::register_hook('include_getter', sub {
-    # simply call LJ::load_include, as it does all the work of hitting up
-    # memcache/db for us and falling back to disk if necessary...
-    my ($file, $source) = @_;
-    $$source = LJ::load_include($file);
-    return 1;
-});
-
-# Allow scheme override to be defined as a code ref or an explicit string value
-BML::register_hook('default_scheme_override', sub {
-    my $current_scheme = shift;
-
-    my $override = $LJ::BML_SCHEME_OVERRIDE{$current_scheme};
-    return LJ::conf_test($override) if defined $override;
-
-    return LJ::conf_test($LJ::SCHEME_OVERRIDE);
-});
-
-# extra perl to insert at the beginning of a code block
-# compilation
-BML::register_hook("codeblock_init_perl", sub {
-    return q{*errors = *BMLCodeBlock::errors;};
-});
-
-# now apply any local behaviors which may be defined
-eval { require "lj-bml-init-local.pl" };
-die $@ if $@ && $! != ENOENT;
-
-1;
diff -r 1dc28b858eb4 -r b9043502017a htdocs/_config.bml
--- a/htdocs/_config.bml	Mon Nov 07 17:46:20 2011 +0800
+++ b/htdocs/_config.bml	Mon Nov 07 18:28:01 2011 +0800
@@ -4,7 +4,7 @@
 IncludePath inc/
 
 AllowOldSyntax 0
-ExtraConfig _config-local.bml, $LJHOME/cgi-bin/lj-bml-init.pl
+ExtraConfig _config-local.bml, $LJHOME/cgi-bin/LJ/Global/BMLInit.pm
 AllowCode 1
 AllowTemplateCode 1
 MildXSSProtection 1
diff -r 1dc28b858eb4 -r b9043502017a t/00-compile.t
--- a/t/00-compile.t	Mon Nov 07 17:46:20 2011 +0800
+++ b/t/00-compile.t	Mon Nov 07 18:28:01 2011 +0800
@@ -16,7 +16,7 @@
     'Data/ObjectDriver/Driver/DBD/SQLite.pm' => 'Bareword "DBI::SQL_BLOB"',
     'Data/ObjectDriver/Driver/DBD/Oracle.pm' => 'no Oracle',
 
-    'cgi-bin/lj-bml-init.pl' => 'BML::register_isocode called from non-conffile context',
+    'LJ/Global/BMLInit.pm' => 'BML::register_isocode called from non-conffile context',
     'cgi-bin/lj-bml-blocks.pl' => 'BML::register_block called from non-lookfile context',
 );
 
@@ -66,7 +66,7 @@
 }
 
 # Bail out if any of the tests failed
-BAIL_OUT("Aborting test suite") if scalar 
+BAIL_OUT("Aborting test suite") if scalar
     grep { not $_->{ok} } Test::More->builder->details;
 
 
--------------------------------------------------------------------------------
ninetydegrees: Art & Text: heart with aroace colors, "you are loved" (Default)

[personal profile] ninetydegrees 2011-11-09 08:46 pm (UTC)(link)
I get [ml_getter not defined] on Post Entry, Edit Entry, Edit Entries, success pages instead of the usual title. It's the only non-live change where ml_getter is mentioned so...
kareila: (Default)

[personal profile] kareila 2011-11-10 05:45 am (UTC)(link)
Thanks for noticing this! I've reproduced it and it requires a fix in the BML repository. I'll submit it shortly.
ninetydegrees: Art: chibi me (chibi)

[personal profile] ninetydegrees 2011-11-10 12:09 pm (UTC)(link)
You're most welcome!