Is this a bug against ledgersmb? (was: getting started with ledgersmb)
On Friday 02 May 2014 16:22:10 Thierry Chatelet wrote:
Hi list
Trying to install ledgersmb from sid I got error 404: no such file..., when
doing localhost/ledgersmb/setup.pl
I read the Debian doc a bit more and I found in file:
/usr/share/doc/ledgersmb/faq.html the following:
About installation
The easiest is to use the setup.pl script as root. You don't need to
know very much about....
So I did and got the following error:
perl setup.pl
Error: No workflow script specified
Compilation failed in require at setup.pl line 8.
Setup.pl :
#!/usr/bin/perl
use FindBin;
BEGIN {
lib->import($FindBin::Bin) unless $ENV{mod_perl}
}
require 'lsmb-request.pl';
So it's calling lsmb-request.pl at line 8
Here it is:
=head1 NAME
lsmb-request.pl - The LedgerSMB Request Handler
=head1 SYNOPSYS
This file receives the web request, instantiates the proper objects, and
passes
execution off to the appropriate workflow scripts. This is for use with
new
code only and should not be used with old SQL-Ledger(TM) code as it is
architecturally dissimilar.
=head1 COPYRIGHT
Copyright (C) 2007 The LedgerSMB Core Team
This file is licensed under the GNU General Public License (GPL) version
2 or
at your option any later version. A copy of the GNU GPL has been
included with
this software.
=cut
package LedgerSMB::Handler;
use LedgerSMB::Sysconfig;
use Digest::MD5;
use Error qw(:try);
$| = 1;
binmode (STDIN, ':bytes');
binmode (STDOUT, ':utf8');
use LedgerSMB::User;
use LedgerSMB;
use LedgerSMB::Locale;
use Data::Dumper;
use LedgerSMB::Log;
use LedgerSMB::CancelFurtherProcessing;
use LedgerSMB::App_State;
use strict;
LedgerSMB::App_State->zero();
my $logger = Log::Log4perl->get_logger('LedgerSMB::Handler');
Log::Log4perl::init(\$LedgerSMB::Sysconfig::log4perl_config);
$logger->debug("Begin");
# for custom preprocessing logic
eval { require "custom.pl"; };
$logger->debug("getting new LedgerSMB");
my $request = new LedgerSMB;
$logger->debug("Got \$request=$request");
$logger->trace("\$request=".Data::Dumper::Dumper($request));
$request->{action} = '__default' if (!$request->{action});
$ENV{SCRIPT_NAME} =~ m/([^\/\\]*.pl)\?*.*$/;
my $script = $1;
$logger->debug("\$ENV{SCRIPT_NAME}=$ENV{SCRIPT_NAME}
\$request->{action}=$request->{action} \$script=$script");
my $locale;
if ($request->{_user}){
$LedgerSMB::App_State::User = $request->{_user};
$locale = LedgerSMB::Locale->get_handle($request->{_user}-
>{language});
$LedgerSMB::App_State::Locale = $locale;
} else {
$locale = LedgerSMB::Locale->get_handle(
${LedgerSMB::Sysconfig::language} )
or $request->error( __FILE__ . ':' . __LINE__ . ": Locale not loaded:
$!\n" );
$LedgerSMB::App_State::Locale = $locale;
}
_________________________________________________________________________
if (!$script){
$request->error($locale->text('No workflow script specified'));
}
__________________________________________________________________________
$request->{_locale} = $locale;
$logger->debug("calling $script");
&call_script( $script, $request );
$logger->debug("after calling script=$script action=$request-
>{action} \$request->{dbh}=$request->{dbh}");
# Prevent flooding the error logs with undestroyed connection
warnings
$request->{dbh}->disconnect()
if defined $request->{dbh};
$logger->debug("End");
sub call_script {
my $script = shift @_;
my $request = shift @_;
try {
$request->{script} = $script;
eval { require "scripts/$script" }
|| $request->error($locale->text('Unable to open script') . ":
scripts/$script : $!");
$script =~ s/\.pl$//;
$script = "LedgerSMB::Scripts::$script";
$request->{_script_handle} = $script;
$script->can($request->{action})
|| $request->error($locale->text("Action Not Defined: ") . $request-
>{action});
$script->can( $request->{action} )->($request);
LedgerSMB::App_State->cleanup();
}
catch CancelFurtherProcessing with {
my $ex = shift;
$logger->debug("CancelFurtherProcessing \$ex=$ex");
$LedgerSMB::App_State::DBH->rollback if
$LedgerSMB::App_State::DBH;
LedgerSMB::App_State->cleanup();
};
}
1;
I put the code returning the error in between 2 lines so you can spot it
easily. And I am sure it come from these lines as I change the message
and ran setup.pl again and got my new message as and error. Now my
understanding of perl script is nowhere good enough for me to known
what's wrong.
Thank you for help; advices...
Thierry
Reply to: