This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Multiple eCos repositories in ECOS_REPOSITORY


On Wed, Aug 09, 2006 at 10:31:21PM +0200, ?yvind Harboe wrote:
> Does anyone feel like sharing a bit about how multiple eCos
> repositories work w/ECOS_REPOSITORY?
> 
> Is there any documentation anywhere?
> 
> Will there be one ecos.db for each repository?

This feature was added thus:

2003-03-26  Bart Veer  <bartv@ecoscentric.com>

        * cdl.hxx, config.cxx.cxx, package.cxx:
        Update derived classes now that the repository is per-loadable
        rather than per-toplevel. Also turn ECOS_REPOSITORY into a
        path rather than a single directory, updating all affected
        database and config code.

Searching ecos-patches i found an email from Bart:

http://ecos.sourceware.org/ml/ecos-patches/2003-03/msg00195.html

which says:

----------------------------------------------------------------------

These patches turn the ECOS_REPOSITORY environment variable into a
path rather than a single directory, e.g. you can have:

  export ECOS_REPOSITORY=<private>:<anoncvs>:<last release>:...

Each repository must have its own ecos.db database and its own pkgconf
subdirectory. Effectively libcdl merges each repository into a single
one. The repositories are scanned in order. If there are duplicates,
e.g. version "current" of CYGPKG_KERNEL occurs in two separate
repositories, then the first entry found will be used and the latter
will be inaccessible. The repositories may contain completely separate
packages/targets/templates. For example you can have an entry in the
path for ports which are not in the public tree, with the appropriate
HAL packages and target entries in the corresponding ecos.db file.

With command-line ecosconfig --srcdir still overrides ECOS_REPOSITORY
completely. Arguably the --srcdir value should be prepended to
ECOS_REPOSITORY instead, but I think that could lead to more confusing
behaviour. There is a potential incompatibility: previously under
cygwin you could set ECOS_REPOSITORY to a windows-like directory
e.g. c:/ecos/packages. Now that will be interpreted as a path with
two entries, c and /ecos/packages. There is no easy way to cope with
this, so from now on ECOS_REPOSITORY has to use cygwin paths. The
generated /opt/ecos/ecosenv.sh already does this.

The changes have not been tested with the GUI tool yet. They'll
probably just work, as long as you don't then use the GUI to change
the repository. In theory the GUI needs to be updated to allow you to
add/remove/rearrange path entries, rather than define a single
directory. There may also be problems with a VC++ build of the Windows
configtool, but hopefully that will go away real soon.

These changes are for the trunk only. They are non-trivial and I don't
want to destabilize the 2.0 release.

----------------------------------------------------------------------

Somewhere there is an email from John saying making configtool support
this is non-trivial, but 20s of googling didn't find it. Digging
deeper should find it if you are interested.

       Andrew

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]