Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Unable to create LXR::Lang::Generic Lang obj

Help
The1AZMan
2007-06-28
2013-01-02
  • The1AZMan
    The1AZMan
    2007-06-28

    I have the same problem, but the solutions provided here have not helped.  If anyone else has any ideas, I would greatly appreciate the assistance.  Below is the error I get after indexing with swish-e completes.  I have also included my lxr.conf file.  Thanks!

    ............
    ............
    &&& /ftl_pristine/isolinux/x86_64/vmlinuz 4.1.0.0
    &&& /ftl_pristine/lost+found/ 4.1.0.0
    &&& /ftl_pristine/rhel/ 4.1.0.0
    &&& /cscope.files 4.1.0.0
    &&& /cscope.in.out 4.1.0.0
    &&& /cscope.out 4.1.0.0
    &&& /cscope.po.out 4.1.0.0
    Removing very common words...
    no words removed.
    Writing main index...
    Sorting words ...
    Sorting 2,961,486 words alphabetically
    Writing header ...
    Writing index entries ...
      Writing word text: Complete
      Writing word hash: Complete
      Writing word data: Complete
    2,961,486 unique words indexed.
    4 properties sorted.
    1,580 files indexed.  140,986,291 total bytes.  25,953,390 total words.
    Elapsed time: 00:07:51 CPU time: 00:03:43
    Indexing done!
    *** / 4.1.0.0
    *** /ftl_RHAS/ 4.1.0.0
    *** /ftl_RHAS/lost+found/ 4.1.0.0
    *** /ftl_RHAS/lost+found/xorg-x11-6.8.2-Xnest-xkb-fix-bug177927.patch.a6bab6d99a9511db8ff0000bdb5549e7 4.1.0.0
    *** /ftl_cc/ 4.1.0.0
    *** /ftl_cc/lost+found/ 4.1.0.0
    *** /ftl_cc/src/ 4.1.0.0
    *** /ftl_cc/src/cc/ 4.1.0.0
    *** /ftl_cc/src/cc/Kbuild 4.1.0.0
    *** /ftl_cc/src/cc/Makefile 4.1.0.0
    Unable to create LXR::Lang::Generic Lang object, Can't call method "execute" on an undefined value at lib/LXR/Index/Mysql.pm line 315.

    lxr.conf:

    [root@phxsse-src lxr4.1_db]# cat lxr.conf
    # -*- mode: perl -*-
    # Configuration file
    #
    (
            {

                    # Global configuration

                    # Path to glimpse executables.
                    # Define this OR the swish-e variable depending which search engine you want to use.
                    # 'glimpsebin'   => '/usr/local/bin/glimpse',
                    # 'glimpseindex' => '/usr/local/bin/glimpseindex',

                    # Location of SWISH-E binary
                    'swishbin' => '/usr/local/bin/swish-e',

                    # Path to Exuberant Ctags executable
                    'ectagsbin' => '/usr/bin/ctags',

                    # Place where lxr can write temporary files
                    'tmpdir' => '/tmp',

                    # Location of the Generic.pm config file
                    'genericconf' => '/usr/local/lxr4.1_db/lib/LXR/Lang/generic.conf',

                    # Location of the ectags.conf file
                    'ectagsconf' => '/usr/local/lxr4.1_db/lib/LXR/Lang/ectags.conf',

                    # Paths for CVS module
                    'cvspath' => '/bin:/usr/local/bin:/usr/bin:/usr/sbin',

            },

            {

                    # Configuration for http://192.168.1.3/lxr.
                    # baseurl is used to select configuration block.

                    'baseurl' => 'http://phxsse-src.az.stratus.com/lxr4.1_db',    # Put your URL here
                         # baseurl_aliases allows other URLs to be used to reach the site
                         # comment this out if you do not want any aliases
                    # 'baseurl_aliases' => [ 'http://localhost/lxr', 'http://mydomain/lxr' ],
                    'virtroot'        => '/lxr4.1_db',                   # The bit after the / above

                    'variables' => {

                            # Define typed variable "v".  This is the list of versions to index.
                            'v' => {
                                    'name' => '4.1.0.0',

                                    # This can come from a file, a function or be explicitly
                                    # ennumerated.
                                    # From a file:
                                    # 'range' => [ readfile('src/versions') ],

                                    # Explicitly:
                                    'range' => [qw(4.1.0.0)],
                                    # If files within a tree can have different versions,
                                    # e.g in a CVS tree, 'range' can be specified as a
                                    # function to call for each file:
                                    #'range'   => sub { return
                                    #                       ($files->allreleases($LXR::Common::pathname),
                                    #                        $files->allrevisions($LXR::Common::pathname))
                                    #                       }, # deferred function call.

                                    # The default version to display
                                    'default' => '4.1.0.0'
                            },

                            # Define typed variable "a".  First value is default.
                            'a' => {
                                    'name'  => 'Architecture',
                                    'range' => [qw(i386 alpha arm m68k mips ppc sparc sparc64)]
                            },
                    },

                    # These do funky things to paths in the system - you probably don't need them.
                    'maps' => {
                            '/include/asm[^\/]*/' => '/include/asm-$a/',
                            '/arch/[^\/]+/'       => '/arch/$a/',
                    },

                    # Templates used for headers and footers
                    'htmlhead'       => 'html-head.html',
                    'htmltail'       => 'html-tail.html',
                    'htmldir'        => 'html-dir.html',
                    'htmlident'      => 'html-ident.html',
                    'htmlident_refs' => 'html-ident-refs.html',
                    'htmlfind'       => 'html-find.html',
                    'htmlsearch'     => 'html-search-swish.html',

                    'sourcehead'    => 'html-head.html',
                    'sourcedirhead' => 'html-head.html',
                    'stylesheet'    => 'lxr.css',

                    # sourceroot - where to get the source files from

                    # For ordinary directories, this specifies a directory which has each version as a
                    # subdirectory e.g.
                    #  indexed-src/version1/...
                    #  indexed-src/version2/...
                    # The names of the version directories must match the values for the Version
                    # variable above.
                    'sourceroot' => '/u/products/linux/4.1',

                    # Alternatively, this can specify a CVS repository by setting the value to "cvs:"
                    # followed by the path to the repository.  Note this must be file accessible - remote
                    # server access does NOT work.
                    #     'sourceroot'      => 'cvs:/hom/karsk/a/CVSROOT/linux',

                    # The name to display for this source tree
                    'sourcerootname' => 'ftSSS 4.1.X.X',

                    # The DBI identifier for the database to use
                    # For mysql, the format is dbi:mysql:dbname=<name>
                    # for Postgres, it is dbi:Pg:dbname=<name>
                    # for Oracle, it is dbi:Oracle:host=localhost;sid=DEVMMS;port=1521
                    'dbname' => 'dbi:mysql:dbname=lxr',

                    # If you need to specify the username or password for the database connection,
                    # uncomment the following two lines
                    'dbpass'                => 'password',
                    'dbuser'                => 'root',

                    # If you need multiple lxr configurations in one database, set different table
                    # prefixes for them.
                    'dbprefix' => 'lxr_41_',

                    # For using glimpse, the directory to store the .glimpse files in is required
                    # 'glimpsedir' => '/usr/local/lxr4.1_db/glimpse_db',

                    # Location of swish-e index database files if using swish-e
                    'swishdir' => '/usr/local/lxr4.1_db/swish-e_db',

                    # where to look for include files inside the sourcetree.  This is used to hyperlink
                    # to included files.
                    'incprefix' => [ '/include', '/include/linux' ],

                    # Which extensions to treat as images when browsing.  If a file is an image,
                    # it is displayed.
                    'graphicfile' => '(?i)\.(gif|jpg|jpeg|pjpg|pjpeg|xbm|png)$',    #'

                    # How to map files to languages
                    # Note that the string for the key and the first entry in the
                    # array MUST match
                    'filetype' => {

                            # Format is
                            # Language name, filepatten regexp, module to invoke,
                            # (optional )tabwidth
                            # Note that to have another language supported by Generic.pm,
                            # you must ensure that:
                            # a) exuberant ctags supports it
                            # b) generic.conf is updated to specify information about the language
                            # c) the name of the language given here matches the entry in generic.conf
                            'C' => [
                                    'C', '\.c$|\.pc$'    #'
                                    , 'LXR::Lang::Generic', '8'
                            ],
                            'C++' => [
                                    'C++',
                                    '\.C$|((?i)\.c\+\+$|\.cc$|\.cpp$|\.cxx$|\.h$|\.hh$|\.hpp$|\.hxx$|\.h\+\+$)'    #'
                                    , 'LXR::Lang::Generic', '8'
                            ],

                            # Some languages are commented out until the relevant entries in generic.conf are made
                            # The list here is the set supported by ctags 5.0.1
                            # 'Beta'    => [ 'Beta',   '(?i)\.bet$', 'LXR::Lang::Generic' ],
                            # 'Eiffel'  => [ 'Eiffel', '(?i)\.e$',   'LXR::Lang::Generic' ],
                            # 'Fortran' =>
                            #   [ 'Fortran', '(?i)\.f$|\.for$|\.ftn$|\.f77$|\.f90$|\.f95$', 'LXR::Lang::Generic' ],
                            'Cobol' => [ 'Cobol',  '(?i)\.cob$', 'LXR::Lang::Cobol' ],
                            'Java' => [ 'Java', '(?i)\.java$', 'LXR::Lang::Java', '4' ],

                            # 'Lisp' => [
                            #       'Lisp', '(?i)\.cl$|\.clisp$|\.el$|\.l$|\.lisp$|\.lsp$|\.ml$', 'LXR::Lang::Generic'
                            # ],

                            # No tabwidth specified here as an example
                            'Make' => [ 'Make', '(?i)\.mak$|(?i)\.mk$|makefile*', 'LXR::Lang::Generic' ],

                            # 'Pascal' => [ 'Pascal', '(?i)\.p$|\.pas$',                'LXR::Lang::Generic' ],
                            'Perl'   => [ 'Perl',   '(?i)\.pl$|\.pm$|\.perl$',     'LXR::Lang::Generic', '4' ],
                            'php'    => [ 'php',    '(?i)\.php$|\.php3$|\.phtml$', 'LXR::Lang::Generic', '2' ],
                            'Python' => [ 'Python', '(?i)\.py$|\.python$',         'LXR::Lang::Generic', '4' ],

                            # 'rexx'   => [ 'rexx',   '(?i)\.cmd$|\.rexx$|\.rx$',       'LXR::Lang::Generic' ],
                            # 'ruby'   => [ 'ruby',   '(?i)\.rb$',                      'LXR::Lang::Generic' ],
                            # 'scheme' => [ 'scheme', '(?i)\.sch$|\.scheme$|\.scm$|\.sm$', 'LXR::Lang::Generic' ],
                            'shell' => [ 'shell', '(?i)\.sh$|\.bsh$|\.bash$|\.ksh$|\.zsh$', 'LXR::Lang::Generic' ],

                            # 's-Lang' => [ 's-Lang', '(?i)\.sl$',                'LXR::Lang::Generic' ],
                            'SQL' => [ 'SQL', '(?i)\.sql$|\.pks$|\.pkb$',               'LXR::Lang::Generic' ],
                            'VB'  => [ 'VB',  '(?i)\.bas$|\.cls$|\.ctl$|\.frm$|\.vbs$', 'LXR::Lang::Generic' ],
                            #'tcl' => [ 'tcl', '(?i)\.tcl$|\.wish$',                     'LXR::Lang::Generic' ],
                    },

                    # Maps interpreter names to languages.  The format is:
                    #  regexp => langname
                    #   regexp is matched against the part after #! on the first line of a file
                    #   langname must match one of the keys in filetype above.
                    #
                    # This mapping is only used if the filename doesn't match a pattern above, so
                    # a shell script called shell.c will be recognised as a C file, not a shell file.

                    'interpreters' => {
                            'perl'   => 'Perl',
                            'bash'   => 'shell',
                            'csh'    => 'shell',
                            'python' => 'Python',
                            'ksh'    => 'shell',
                            'zsh'    => 'shell',
                            'sh'     => 'shell',
                            'ksh'    => 'shell',
                    },

                    # a link of the form (prefix)($filepath)(postfix) is generated when viewing a file
                    #   example for cvsweb:
                    #'cvswebprefix' => 'http://cvs.myhost.com/cgi-bin/cvsweb.cgi',
                    #'cvswebpostfix' => '?cvsroot=rootname',
                    #   example for viewcvs:
                    #'cvswebprefix' => 'http://cvs.myhost.com/cgi-bin/viewcvs.cgi/myroot',
                    #'cvswebpostfix' => '',

                    # choose to ignore certain directories
                    'ignoredirs' => ['CVSROOT', 'ftl_pristine/rhel'],    # 'CVS' dir is always ignored
            }
      )
    [root@phxsse-src lxr4.1_db]#