← Back to team overview

kicad-developers team mailing list archive

Best way to set up a canonical library path ?

 

Hi,
So while developing and setting up a new system, it is not really
clear to me how to set up all the paths. Right now I can't seem to
find a simple way, only something that feels a bit too complicated.

1) Installing libraries
(I do _not_ use the git-plugin but rather prefer local installation)

To get a fresh setup of libraries, I am running scripts/library-repos-install.sh
I am doing that with a custom path (WORKING_TREE=/usr/local/share/kicad)

under $WORKING_DIR, it creates library-repos, under which it unpacks

  $WORKING_TREE/library-repos/kicad-library
with schematic symbols and 3d packages
and unpacks all pretty directories in there as well:

  $WORKING_TREE/library-repos/*.pretty

so far so good.

2) setting the environment variables

Now running a freshly compiled KiCad does of course not find the
libraries. In fact, without any environment variables present, it
apparently assumes these:

KIGITHUB=https://github.com/KiCad
KISYS3DMOD=/usr/local/modules/packages3d
KISYSMOD=/usr/local/modules

(which it writes to ~/.config/kicad/kcad_common). This seems to be
bogus to me; I can imagine that it extracts that from the compile
PREFIX somehow, but I'd expect it to append a share/kicad or something
to it.

After copying the fp-lib-table and setting the enviroment variable as
suggested in the script

cp $WORKING_TREES/library-repos/kicad-library/template/fp-lib-table.for-pretty
~/.config/kicad/fp-lib-table
export KISYSMOD=$WORKING_TREES/library-repos

.. eeschema still does not find the libraries.

for that, I have found that I can set KICAD to that directory
export KICAD=$WORKING_TREES/library-repos/kicad-library

Now, 3D viewing _still_ does not work. Yet another environment
variable has to be set
export KISYS3DMOD=$WORKING_TREES/library-repos/kicad-library/modules/packages3d

3) Findings
Kicad only works with the libraries with a little of manual-work.
Three environment variables have to be set to get going. Given
WORKING_TREES as the chosen location in the install script, these are
the environment variables:

export KICAD=$WORKING_TREES/library-repos/kicad-library
export KISYSMOD=$WORKING_TREES/library-repos
export KISYS3DMOD=$WORKING_TREES/library-repos/kicad-library/modules/packages3d

4) Question
Am I am doing something wrong here, or is this really needed this way ?

5) Suggestion
I know I have not been actively developing recently, so I can't really
complain. But I would like to see it working this way:

    - We have a defined standard layout of how libraries are checked
out/installed locally. Say in $PREFIX/share/kicad. The install script
does already something like that, so that could be the defined
standard way (though some re-structuring might be useful).
    - There is only _one_ environment variable to be set, pointing to
the root of this directory (KICAD_SYSTEM_LIBS or something)
    - This environment variable is pre-set to $PREFIX/share/kicad (or
to the eqivalent path on where typically data files reside on other
platforms).

Would this be a good goal before a new, stable release ? I think it
will help users and make software-packagers happy.

Cheers,
  Henner.


Follow ups