← Back to team overview

kicad-developers team mailing list archive

Re: Local Variables

 

Hi Marco,

I'm glad you agree that .pkg is not a good option.  How do you suggest we
get data into /Library/Application\ Support/kicad?  Should we have users
drag a folder into there?

Adam Wolf
Wayne and Layne, LLC


On Mon, Mar 17, 2014 at 10:03 AM, Marco Serantoni <marco.serantoni@xxxxxxxxx
> wrote:

> Adam,
> 1) is the approach we will have dmg/zip file.
> 2) there was a package manager, but becomes an hell to configure put in
> bzr that forced us to remove few years ago.
> 3) Requires 1), applications are downloaded from a bundle.
>
> Jean-Paul, /opt is something that should be used for command line
> applications, not for GUI ones, try to interact with that will lead you in
> different behaviour of Finder between versions.
> Command line binaries related to Kicad should be placed in the bundle,
> like happens for Xcode with the compiler/SDKs.
>
> The
> /Library/Application Support/kicad is the path where the executables
> expect to find their data.
>
> Wayne is a common error, OSX is POSIX and have the BSD API but is not BSD
> in its organization.
> OSX has a mach kernel (not a BSD one) in which there is the BSD subsystem,
> like in the past NT had a POSIX subsystem.
> Like each distro have completelly different approach in package manager
> and organization for configuration files.
> I've already tried to explain why, that neither the pure wxStandardPaths
> before the K-way will work.
>
>
>
> --
> Marco
>
>
> On Mon, Mar 17, 2014 at 2:11 PM, Adam Wolf <adamwolf@xxxxxxxxxxxxxxxxxxxx>wrote:
>
>> I think that'll work for users who want to compile their own.  From a
>> packaging and distribution standpoint:  I'm excited for kiways.
>>  Distributed Mac applications come in 3 types:
>>
>> 1) a DMG that contains a .app bundle that you drag to /Applications.
>>  This is basically what installing to /Applications does, except minus the
>> packaging step (which I already scripted)
>> 2) a .pkg installer.  These can install files all over your system, but
>> then uninstalling means running the .pkg again.  Users don't like these as
>> much as #1.
>> 3) from the Mac App Store. (Probably not a short term solution for us
>> right now--hopefully someday!)
>>
>> If we can set it up so that everything is contained in the .app, then we
>> can do #1 for distribution.  What's stopping us now from doing that is that
>> multiple .apps want to refer to the same libraries, so we have to have a
>> place outside of the .app that is common.  Once we have kiways, this should
>> be doable, right?
>>
>> Other Mac folks, what do you think?  (Other non-Mac folks too...)
>>
>> Adam Wolf
>> Wayne and Layne, LLC
>>
>>
>> On Mon, Mar 17, 2014 at 12:22 AM, Jean-Paul Louis <louijp@xxxxxxxxx>wrote:
>>
>>> Wayne,
>>>
>>> Thank you for your detailed reply.
>>> I will add -DCMAKE_INSTALL_PREFIX=/Applications/Kicad/ to my script,
>>> and the library files in /Library/Application Support/Kicad/ from my
>>> clone of github.
>>>
>>> I do not understand why we need two different repositories (bazaar for
>>> the software, and github for the data), but I can live with that.
>>>
>>> Anyway, every component used in my designs is always copied to a custom
>>> library that store only the components that I use.
>>> That way, I do not worry about anything related to my design being
>>> overwritten by an update, and I do not have to browse through hundred of
>>> files to find what I need.
>>>
>>> I will try this on my next build after renaming my current Kicad to
>>> kicad_old,
>>> and will post my results.
>>>
>>> Jean-Paul
>>>
>>>
>>> On Mar 16, 2014, at 7:14 PM, Wayne Stambaugh <stambaughw@xxxxxxxxxxx>
>>> wrote:
>>>
>>> > On 3/14/2014 9:17 PM, Jean-Paul Louis wrote:
>>> >> Wayne,
>>> >>
>>> >> OS X is a strange beast.
>>> >> Apps are installed in more than one place.
>>> >> /usr/local/ is not visible from the finder, but /opt/local/ is.
>>> >> When I got a package prebuilt, it was installed in
>>> /Applications/KiCad/, which was fine.
>>> >
>>> > It sounds to me like the default install location for OSX installers is
>>> > /Applications.  I'm not sure why CMake is not using that as the default
>>> > install prefix.  It uses the correct paths on Windows and Linux.
>>> >>
>>> >> When I build from source with minimum interaction (cake, make, make
>>> install),
>>> >> /demos and /templates ends-up in /usr/local/share/kicad/.
>>> >
>>> > You can always override CMake's default install path by using
>>> > -DCMAKE_INSTALL_PREFIX=install_path to get KiCad installed where you
>>> > want it installed.
>>> >
>>> >>
>>> >> kicad is in several places
>>> >>
>>> >> Jean-Pauls-MacBook-Pro:kicad jean-paullouis$ sudo find / -name kicad
>>> >> Password:
>>> >> /Applications/KiCad/kicad.app/Contents/MacOS/kicad
>>> >> ...
>>> >> /usr/local/bin/kicad.app/Contents/MacOS/kicad
>>> >> /usr/local/lib/kicad
>>> >> /usr/local/share/doc/kicad
>>> >> /usr/local/share/kicad
>>> >>
>>> >> I am trying to find a way to have all the *.app under the
>>> /Applications/KiCad/,
>>> >> and all the data under the home directory, so I can update/upgrade
>>> without touching the data.
>>> >> ~/Documents/ would be acceptable, I would prefer ~/Data/.
>>> >> Github is OK for storage, but local storage is better for
>>> efficiency/load.
>>> >
>>> > I would not put the component or footprint libraries in your ~/ folder.
>>> > This will remove the temptation of modifying them only to have them
>>> > overwritten the next time you update them.  It's best to create new
>>> > libraries and leave the default libraries unchanged.
>>> >
>>> >>
>>> >> What is the best route to do just that?
>>> >
>>> > You should be able use git to create your own branch form
>>> > https://github.com/KiCad/kicad-library.  The CMake installer file is
>>> > still there so you can run cmake -DCMAKE_INSTALL_PREFIX=path_to_intall
>>> > and then make install.  I'm guessing you will have to have admin
>>> > privileges to install them in the system paths so the sudo command
>>> > should work.  If you choose this option, you will have to periodically
>>> > pull the changes from github to keep your libraries up to date.
>>> >
>>> > Wayne
>>> >
>>> >>
>>> >> Regards,
>>> >> Jean-Paul (AC9GH)
>>> >>
>>> >>
>>> >>
>>> >> On Mar 14, 2014, at 7:08 PM, Wayne Stambaugh <stambaughw@xxxxxxxxxxx>
>>> wrote:
>>> >>
>>> >>> On 3/14/2014 5:32 PM, Marco Serantoni wrote:
>>> >>>>
>>> >>>> On 14/mar/2014, at 20:00, Wayne Stambaugh <stambaughw@xxxxxxxxxxx>
>>> wrote:
>>> >>>>>>
>>> >>>>>> The idea of keeping Kicad libs in Github is great, but if the
>>> >>>>>> first-time-ever user has to set it up in some system config files
>>> or run
>>> >>>>>> bash scripts (think of Windows users!), it will ruin his
>>> experience
>>> >>>>>> (sorry for sounding Steve Jobs-ish...). Eagle, DesignSpark and
>>> Altium
>>> >>>>>> have libraries working out-of-the box. Why we shouldn't?
>>> >>>>>>
>>> >>>>>> My proposal is add a configuration window (see attachment) that
>>> appears
>>> >>>>>> the first time freshly installed Kicad is launched. What do you
>>> think of
>>> >>>>>> this approach?
>>> >>>>>
>>> >>>>> Hey Tom,
>>> >>>>>
>>> >>>>> Yes I agree that it should just work and it should.  The problem
>>> is not
>>> >>>>> in the code AFAICT.  The problem appears to be in the location
>>> where the
>>> >>>>> default fp_lib_table file is installed on OSX.  When either CvPcb
>>> or
>>> >>>>> Pcbnew are run for the first time without a define fp_lib_table
>>> file in
>>> >>>>> the user's platform dependent home folder, an attempt is made to
>>> copy
>>> >>>>> the default fp_lib_table file to the user's home folder.  On Linux
>>> the
>>> >>>>> default fp_lib_table file is stored in /usr/share/kicad/template
>>> and
>>> >>>>> copied to ~/.  If the default file cannot be found, then there is
>>> no
>>> >>>>> choice but to create an empty fp_lib_table file which is what
>>> appears to
>>> >>>>> be happening on OSX.  The path(s) searched for the default
>>> fp_lib_table
>>> >>>>> are defined in EDA_APP::FindLibraryPath().  If the path that the
>>> OSX
>>> >>>>> installer is placing the default fp_lib_table is not in the list of
>>> >>>>> paths, then that is the problem or there is potentially a file
>>> >>>>> permission problem preventing the file from being copied.  This
>>> used to
>>> >>>>> work fine on both Windows and Linux so if no one changed it, it
>>> should
>>> >>>>> still work.
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>> Wayne the problem is not the code and this is CLEAR.
>>> >>>> The problem is that there isn't an installer to install programs
>>> under OSX, that can be placed by the user anywhere under /Applications
>>> directory.
>>> >>>> The other issue is that the /Applications directory is not supposed
>>> to guest "support files", so the combination of the two things doesn't
>>> allow me to hardcode it on FindLibraryPath.
>>> >>>> I've also tried to think an arrangement on that, but interacting
>>> with Dick on ticket  #1267911, i've understood with error that EDA_APP is
>>> gone, letting me wait Kiway.
>>> >>>> </code>
>>> >>>
>>> >>> Where do the KiCad template files get installed on OSX when you
>>> install
>>> >>> KiCad using the OSX bundle?  That is where the the path should point
>>> to
>>> >>> when attempting to copy the default fp_lib_table file to the users
>>> home
>>> >>> folder.  I would prefer not use EDA_APP::FindLibraryPath() but rather
>>> >>> wxStandardPaths::GetDataDir() with the appropriate subfolders added
>>> so
>>> >>> this works out to be:
>>> >>>
>>> >>> Windows: path_to_kicad_binary/../share/templates
>>> >>> Linux: prefix/share/kicad/templates
>>> >>> OSX: kicad.app/Contents/SharedSupport/templates
>>> >>>
>>> >>> This is valid for windows and linux.  Is this not valid for OSX or
>>> are
>>> >>> you saying that you cannot copy a file from the application install
>>> >>> folder to the user's home folder?  I really am confused because I
>>> >>> thought OSX was essentially BSD which should be posix compliant.
>>> >>>
>>> >>>>
>>> >>>> <user_interaction>
>>> >>>> The limit of the previous approach is that the developer/packager
>>> choose for the user if use the old libraries or the GitHub approach, not
>>> letting the user choose what is better for him.
>>> >>>> Probably the "startup configuration window/wizard" could be a mayor
>>> enhancement for the user and solve also the other issue in a single move.
>>> >>>> This was also the spirit that I had when the 31/12/2013 on the ML
>>> i've asked a button to "fill in" the table starting from the old legacy
>>> library path.
>>> >>>>
>>> >>>>
>>> >>>> --
>>> >>>> Marco
>>> >>>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> _______________________________________________
>>> >>> 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
>>> >>
>>> >>
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > 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
>>>
>>>
>>> _______________________________________________
>>> 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
>>>
>>>
>>
>> _______________________________________________
>> 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