← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Add remote lib retrieval to SCH_LEGACY_PLUGIN_CACHE

 

I think you misunderstood what I was implying.  You should not be
looking for a different symbol library header.  This is a change that I
would reject since you are effectively changing the library file format.
 What I suggested was that you create new plugin that reads from a
remote url similar to the github plugin used for footprint libraries.

I also do not like the idea of a separate LoadRemote() method being
added to the SCH_PLUGIN object.  There is no reason to add it.  All of
the symbol library methods take a wxString which could be a url instead
of a file name.  It is not limited to files and up to the plugin type to
handle it correctly.  My preference is that you create a new plugin for
remote files similar in concept to the github plugin.  That is the whole
point of the current plugin interface.  Take a look at the board plugins
to see the preferred method of creating plugins.

I never really intended for the legacy symbol file format to have
multiple plugins like the kicad board and footprint library file formats
so I didn't create separate parser and formatter objects like I did with
the board file formats.  Nothing is preventing that from happening with
the current schematic and symbol library file formats.  I would not have
any objection to splitting the parser out of the SCH_LEGACY_PLUGIN_CACHE
object.  I am planning on make the parsers and formatters for the new
schematic and symbol library file format code separate so it can be used
by any plugin.

Cheers,

Wayne

On 8/13/2017 3:26 PM, Badr Hack&Invent wrote:
> Hi,
> 
> Here in the attachment the patch that add the remote lib retrieval.
> 
> Badr
> Le 2017-08-13 17:29, Badr Hack&Invent a écrit :
>> Hi,
>>
>> Those couple of days I was checking how to update EESCHEMA to add
>> remote libraries retrieval function.
>>
>> Since am familiar with legacy format, I updated the plugin:
>> SCH_LEGACY_PLUGIN_CACHE in charge of parsing the *.lib files.
>>
>> The idea was to create a new type of library EESchema-REMOTELIBRARY (I
>> put an example in the attachment)
>> The content of this library is the following:
>> EESchema-REMOTELIBRARY Version 1.0
>> URL https://www.example.com/mylib1.lib
>> URL https://www.example.com/mylib2.lib
>> ...
>>
>> This lib file is saved localy and specify the path of each remote
>> library you want to retrieve.
>>
>> The updated code seemlessly check the type of the library, if it is
>> EESchema-LIBRARY it parse it like always, else if it is
>> EESchema-REMOTELIBRARY it download each remote lib and parse it when
>> it is EESchema-LIBRARY (no recusivity with EESchema-REMOTELIBRARY).
>>
>> The impacted files are:  sch_legacy_plugin.cpp and sch_legacy_plugin.h
>> -> I implemented the algo and made some tweeks to use LINE_READER
>> instead of FILE_LINE_READER as argument to manage to use
>> STRING_LINE_READER
>>
>> I also modified KICAD_CURL_EASY::KICAD_CURL_EASY() to set the option
>> CURLOPT_SSL_VERIFYHOST to 0 to disable ssl certificate checking in
>> https requests. This modification is not required, but was useflul for
>> our case where our server is behind ssl without certificate on the
>> domaine, just ip addresses.
>>
>> I made a prototype in the attachment, it is woring.
>>
>> I don't know if this modification is inline with the arachitecture of
>> kicad?
>>
>> Badr
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 



Follow ups

References