We’ve just released the long-awaited KiCad stable release, version 4.0.0! The announcement can be read on the developer’s mailing list archive.
Version 4.0.0 is made from the product branch BZR 6336. This is 148 commits after the last release...

You should really consider updating, that’s where you will get the most support.

With grain of salt:
Those paths looks alright, I think you have a problem in the fp-lib table, which builds up on those paths and tries to access libraries that don’t exist anymore…
In Windows 7 it’s located here:

C:\Users\JohnDoe\AppData\Roaming\kicad\fp-lib-table

Check it’s content and see if you can find the libraries listed there with your internet browser. Any 404 message means, you should remove that entry from the fp-lib table… or run with local libs like I do (just remove all internet links in that file and replace them with paths to local libs):

I’ve run the Footprints Library Wizard and added all local modules. Getting close though. Thanks for all the help so far.

EDIT: Stranger still, in Pcbnew I can clearly see the footprints in the footprint viewer. But I see no .cmp file is getting produced when I save CvPcb. That’s probably the problem, but I dunno why it’s not saving.

EDIT: Stranger still, in Pcbnew I can clearly see the footprints in the footprint viewer. But I see no .cmp file is getting produced when I save CvPcb. That’s probably the problem, but I dunno why it’s not saving.

With 4.0.1 it looks like footprint information is in the .net netlist, like so:

Actually, one thing further: This completely the wrong way to use Git.

If you want to have GitHub as a master repo for libraries, then you should always clone to a local copy. The program can keep libraries in sync. Then you simply keep a changeset number with the part instance(s) in the layout. When upstream changes, the user can be prompted, but the editor itself never never accesses the repo (except to do that pull, which you can give the user a few choices of auto, or fully manual).

This is what distributed version control is all about (it’s not just a better CVS) but I’ve seen so many people misunderstand this, and work directly on/in GitHub. They miss the distributed part.

Noooooo! This may be fine for hobbyists, how do I completely remove this functionality? It is completely unacceptable to have a design that can change out from under me, for -any- reason at all.

The footprints you use in a design are not updated automatically. They are copied into the header of the pcb_new file. You need to trigger the update of footprints in a design or add new footprints to it to get new files from github.
But if you make a new design, new footprints are used which means that it can happen that a footprint you successfully used in one design suddenly has problems in a new design.
This is why it might be a good idea to use the kicad libs only as a starting point for you personal verified library.

Donnie.j:

Actually, one thing further: This completely the wrong way to use Git.

Kicad does not really use git. It uses the github api do download a zip archive. Don’t ask why. (I think @SchrodingersGat mentioned that someone in the development team is quite attached to the github plugin. A real git plugin would be nice.)

Which is what I started out this mess trying to solve. Removing the offending library from fp-lib-table and making a new project doesn’t solve this. Therefore, the question at the top stated another way: Why is this information about the BGA library persistent?

Not sure what is going there, it looks like it is trying to parse a folder as a file. Slightly confusingly, the “KiCad” Plugin type field in fp-lib-table means a pretty folder on disk, “github” means a zipped pretty folder retrieved directly from github (to memory?). If you have pretty folders on disk, you should be using the “fp-lib-table-for-pretty” as a template.

I think that footprints downloaded from github are stored in memory, I can’t find any disk cache.

…

Not sure what is going there, it looks like it is trying to parse a folder as a file. Slightly confusingly, the “KiCad” Plugin type field in fp-lib-table means a pretty folder on disk, “github” means a zipped pretty folder retrieved directly from github (to memory?). If you have pretty folders on disk, you should be using the “fp-lib-table-for-pretty” as a template.

Yeah, I couldn’t find anywhere it was storing anything either, which is why I asked.

As for the parse error, it did that before I started hacking on this, with a fresh install from the latest official OS X disk images. It isn’t new or a result of anything I did. The larger problem, perhaps, is actually that… nothing I do affects this error, so that means I’m still not understanding where either the library config or cache is!

A clean install may not overwrite the gobal fp-lib-table if there is already one present. The only other place it could be is in a project specific fp-lib-table. Exactly when do you get the error? What do the other errors look like?

I think if there was a general bug with 4.0.6 on MacOS, someone would have reported it, but I guess you may be the unlucky pioneer.

move the fp-lib-table.* (which only appear in templates?) to a directory as backup locatoipn

On windows there is a user folder for application settings where KiCAD stores all it’s stuff, inclusive this global fp-lib-table file.The one in the program folder under templates is not being used in my experience.

On windows there is a user folder for application settings where KiCAD stores all it’s stuff, inclusive this global fp-lib-table file.

So others don’t have to go looking… On OS X there is one in your Users directory, specifically: ~/Library/Preferences/kicad/fp-lib-table This is likely copied from the /Library/Application\ Support\kicad\template\fp-lib-table (note no ~ this is the globally installed copy) when first run, but I don’t see what triggers it to be updated.

There are no more copies of fp-lib-table that I can find. This is the copy CvPcb uses, and since it appears the code is common likely everything else…

or directly via the preferences menu, there should be an automatism there that will scourge the KiCAD github repo for footprint libs and put them into that list.
If you want to start fresh - remove all libs in there beforehand.

If you run local libs, you don’t want to do that, unless you want to run the github libs locally, then follow @bobc 's guide on that.
In all other cases, you modify the fp-lib-table filer either in above dialog your self (and set it up to look on your harddrive for your local self-managed libraries) or you edit it outside of KiCAD with a text editor.

PS: as you can see, I run them locally, using the KISYSMOD environment variable, pointing at a folder on my E: drive. All libs then use this varaible as part of the path and are located there.
If I use another computer, I can move the whole lot and just change the path variable and be done.

No. Of course I can use the GU and cause it to find the librariesI, but I don’t care if I can do something that way. I have to be able to find where that information is stored, how it gets its defaults, what uses it, when it is updated and why.

This is just table stakes for using this tool in a work environment. The library issues have stopped our evaluation of this tool as is, and I have moved on to trying to figure out what it would take to clean up things like this. The problem is, it appears to actively be moving in the wrong direction… it is actively trying to do nonsense on GitHub and force the use of preinstalled libraries… that is fine for a toy but not for real work.

The code is not very complex, it should be easy to fix and add proper functionality for repositories. But my concern is as was pointed out

someone in the development team is quite attached to the github plugin

I’m not interested in doing the work if it isn’t going to go upstream. Let’s see if I can figure out what is really going on with all these paths, variables, tables and ‘plugins’, and how much actual work it would be to really make it rational (that is, not lead to nasty surprises) and functional (that is, actually provide versioned, repo backed library management) first…

In that case I’d suggest get in contact with the developers on the mailing list or IRC.
They will be able to pinpoint you most exactly to what/where to look.
Especially if you want to have this included in future versions.
I’m just a user who moderates a bit here on the forum.

PS: we had someone on the forum some time ago that did set up a classroom environment for KiCAD. But I don’t think he was using KiCAD for the repo/versioning, rather external tools.

PPS: if you really going to introduce versioned repo backed library management you definitely have to get in contact with the developers.

So others don’t have to go looking… On OS X there is one in your Users directory, specifically: ~/Library/Preferences/kicad/fp-lib-table This is likely copied from the /Library/Application\ Support\kicad\template\fp-lib-table (note no ~ this is the globally installed copy) when first run, but I don’t see what triggers it to be updated.

There are no more copies of fp-lib-table that I can find. This is the copy CvPcb uses, and since it appears the code is common likely everything else…

On the Mac, the user’s fp-lib-table lives in ~/Library/Preferences/kicad and when you’re in the footprint library editor or in pcbnew, when you invoke Preferences | Footprint Libraries Manager, at the top you can see the full path to the library table in use.