genxref error > Cannot open src/versions

Help
Hetul
2004-11-24
2013-01-02
  • Hetul

    Hetul - 2004-11-24

    Hello,

    I am trying to install lxr-0.9.3 under fedora core1. following the INSTALL help file.

    When executing with following command.

    ./genxref --url=/var/www/cgi-bin/
    [Wed Nov 24 19:13:39 2004] fatal: LXR::Config, line 47: Config: cannot open src/versions

    [@INC lib /usr/lib/perl5/5.8.1/i386-linux-thread-multi /usr/lib/perl5/5.8.1 /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl . $0 ./genxref./genxref --url=/var/www/cgi-bin/

    Here is the lxr.conf file details...

    ---------------------------------------------------------------------
    # -*- 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/bin/glimpse',
            'glimpseindex' => '/usr/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/lib/perl5/site_perl/LXR/Lang/generic.conf',

            # Location of the ectags.conf file
            'ectagsconf' => '/usr/lib/perl5/site_perl/LXR/Lang/ectags.conf',

        },

        {

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

            'baseurl' => 'http://x.x.x.x/lxr',    # 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://x.x.x.x/lxr' ],
            'virtroot'        => '/lxr',                   # The bit after the / above

            'variables' => {

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

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

                    # Explicitly:
                    # 'range' => [qw(v1 v2 v3.1 v4 experimental)],
                    # 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' => '1.0.6'
                },

                # 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' => '/home/sourceroot/',

            # 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' => 'Example',

            # 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'        => '',
              'dbuser'        => 'root',

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

            # For using glimpse, the directory to store the .glimpse files in is required
            'glimpsedir' => '/home/glimpse/databases',

            # Location of swish-e index database files if using swish-e
            #'swishdir' => '/a/directory/here/',

            # 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'],    # 'CVS' dir is always ignored
        }
      )
    ----------------------------------------------------------------
    Please help...

     
    • aquacielo

      aquacielo - 2004-12-23

      Hi,

      I don't know where Fedora installs things.  Is the versions file really in a 'src' subdirectory immediately below wherever genxref is installed?  Did you try using a full path name instead of a relative one?

      Also, I've always used the actual URL in my genxref calls.  For example:  genxref --url=http://localhost/lxr  (wherever the baseurl parameter says).  I've no idea if that matters or not, it just stood out.

       
    • Toshiharu Harada

      Hi,

      change the following line of your lxr.conf

      > 'range' => [ readfile('src/versions') ],

      to

      'range' => [ readfile('/usr/local/lxr/src/versions') ],

      then you'll not see the error message ('/usr/local/lxr/src/versions' should be actual path of your env).

      'versions' file should contain something like:
      linux-2.4.28
      ...
      linux-2.6.XX

       

Log in to post a comment.