V7 to 8.0.5 upgrade with odd library results (Linux)

Bare-bones upgrade, nothing used, nothing changed yet.
But opening the “Manage symbol libraries” I get this:


Somehow there’s a disconnect between the path substitution and the library.
Is there an explanation?

When KiCad sees KICAD7_BLAH, and it hasn’t been defined by the user, it uses KICAD8_BLAH. (I think BLAH has to be one of the defined names.) And will do similar for KICAD9 next year. This is so that old links will continue to work otherwise the libraries would have to be updated in one swell foop.

I don’t understand your BLAH explanation.
The path substitution for KICAD8 points to the standard library in /usr/share.
But the substitution for KICAD7 points to - well, nothing. Although all the paths in the library list point to KICAD7.

The V8 upgrade doesn’t feel good. This is the second issue I’ve run into without even using V8 for serious work yet.

:person_shrugging: Upgrade #worksforme

Maybe someone else can explain it better. It a holiday here so I’m not in the mood to delve into it more.

Well, bully for you.

I think you will have to forgive that “banana bender” from up north. The comment “swell foop” should read as “fell swoop”, meaning “all at once”. The backwardness (in this case, the spelling) is often regarded as as an overall trait by those living “down here” about those living “up there”, on our continent. :rofl:

Does this section of the Kicad Documents, in particular, the information box, help with your understanding?

PS. I think their holiday, up there, is for a rugby match.

Yeah in particular that ⓘ box re 7 and 8 substitutions.

Digression: the fell in fell swoop is the same fel in felon. Thus one fell swoop is a great criminal act . You can thank Shakespeare for using it in Macbeth.

And we can also thank him for using the second person singular “yea” and plural “ye”. That is much better than the current “you” for both.

And is your holiday for rugby? We had one for footy last week. :roll_eyes:

It’s the Labour Day long weekend.

An attempt to get back on topic:

I am also a bit confused by the KICAD7* versus KICAD8 environment variables. I think it uses KICAD7* when upgrading and KICAD8 for a clean install, and I think these are normally equivalent.

I guess that this is the problem:

Because the KICAD7* exists, KiCad probably attempts to use it, which results in faulty filenames. If you remove that empty variable KiCad probably does the V7/V8 substitution thing.

1 Like

Also if this is the state of your library table after firing up v8 for the first time, then you have taken a non-recommended option. The recommended option to create a new table would have resulted in KICAD8_SYMBOL_DIR in that screenshot.

I find that the best way to upgrade the library tables (symbol and footprint) is to accept the recommended and default option to create a new table containing only the system libraries, and then to add the personal libraries. In the past I have suggested the software be modified so that system and user rows in the table are stored separatedly instead of being mingled.

But even if you opt to port over the table from the previous version, you will still get a working table, provided you don’t define KICAD7_SYMBOL_DIR, as the automatic substitution would take care of that.

I’ve been running V7 for a long time and decided to upgrade. I followed the instructions here (Ubuntu Stable) to the letter:

That went quite well this time. I even rebooted my machine (normally not necessary in Linux, but just to be safe).
Starting KiCAD, it now shows V8 and runs normally.
So this reply makes no sense to me:

There are NO options, recommended or not. It just starts and runs. Period.

I’ve not opted to port anything anywhere.
I assumed that a new install would also upgrade the libraries in /usr/share/kicad
Wrong. A complete system “apt upgrade” was necessary to get the new libraries loaded. They now contain the info “8.0”.

But that STILL doesn’t explain why the path replacements are wrong. I smell a bug.
I can live with it with an uneasy feeling, being an experienced user. But try explaining it to a newcomer.

This is my symbol lib table. It uses KICAD8_SYMBOL_DIR, as expected. And no sign of KICAD7_SYMBOL_DIR.

So yours is not the usual outcome.

Obviously not. I wonder if I’m alone in the world here. Investigating further…

Maybe something to do with that you installed the upgrade packages in two rounds. Maybe you upgraded the application package, ran it, then upgraded the library packages.

I’ve found the problem.
Apparently, when KiCAD stores the library lists (footprints and symbols), it does it in the local user’s configuration area ( $USER/.config/kicad/8.0/fp-lib-table and $USER/.config/kicad/8.0/sym-lib-table ).
Deleting those files and restarting KiCAD will give you the dialog box asking how to merge/import the libraries.
No matter what you do, your personal libraries will disappear and have to be reimported in the “Manage symbol…” and “Manage footprint…” menu under “Preferences”.
Not a nice solution and plenty of unnecessary work.

I wonder how a newbie would deal with this one.

1 Like

Yes, this has been the case for a long time, and what you did is in fact the remedy for a few KiCad versions now a whole bunch of forum leaders have been instructing people who end up with messed up tables.

It all comes back to that those user tables (and they have to be user-specific for multi-user OSes) contain both system library and user library entries.

1 Like

Yes. And they’re unnecessary IMO, as KiCAD builds them from scratch first time you invoke a library during editing. So why store them? Or if they need to be stored, put them in /temp, where they’ll disappear after use anyway.
Useless functionality from way back, I think.

PS: Wait, I get the issue now. But in that case, just store the personal libraries in the $USER config files. That’ll build the library list just as well.

The system entries have to be in a writable user table so that Active and Visible can be toggled. Otherwise some other means should be provided to store these toggles.

By all means write up a proposal for an improved library table system to replace the current slightly brittle one.

I’ve made my peace with the current system. I take the default option, then import my user libraries using a text editor.

My personal library lists (both in schematic and PCB) I created with V4 are with me since then and I have never had to recreate them. I use only my libraries.
What I had to do was to copy files containing those lists to a free accessible directory before first running the new version as it was asking to point the file containing library list and opened for this task a window (I am in Windows) in which system or hidden files can’t be selected.
I don’t know Linux (never run it). I supposed Linux users have not restricted access to files so they should not even have to copy this lists before first run of new version.