kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #20504
Re: Paths on the Windows 4.0.0 RC1
-
From:
Wayne Stambaugh <stambaughw@xxxxxxxxx>
-
Date:
Mon, 21 Sep 2015 10:47:04 -0400
-
Cc:
KiCad Developers <kicad-developers@xxxxxxxxxxxxxxxxxxx>
-
In-reply-to:
<CAKLXgruNqhH-v1QEJk-Uesz_XpLovzqfsmKO4ZL_A9VrL9P=eQ@mail.gmail.com>
-
User-agent:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0
Hey Brian,
I went ahead an committed my patch to the product branch since you are
on holiday until the 28th. I want to get an rc2 out soonish and I
didn't want to wait. Hopefully this resolves the issue. Enjoy your
holiday.
Cheers,
Wayne
On 9/18/2015 4:51 PM, Brian Sidebotham wrote:
> Hey Wayne,
>
> Thanks for those. My timescales may not match when you want to achieve
> RC2. Basically I'm on holiday from tomorrow until the 28th so can't work
> on this until then. If RC2 is not planned until after that then I can
> work on this as soon as I get back.
>
> If you need it done quicker, or are just itching to fix with other path
> fixes please do go ahead, otherwise I'll pick it up as soon as I'm back
> off hols...
>
> Best Regards,
>
> Brian.
>
> On 18 Sep 2015 15:46, "Wayne Stambaugh" <stambaughw@xxxxxxxxx
> <mailto:stambaughw@xxxxxxxxx>> wrote:
>
> On 9/18/2015 7:59 AM, Mark Roszko wrote:
> > Speaking of paths, there's invalid default paths(%PROGRAM
> > FILES%/KiCad) being used for Save and Open dialogs thoroughout KiCad
> > which need to be changed to the user's document folder. Wayne said he
> > was working on it awhile ago but its something to fix.
>
> I'm still am working on it. I hope to commit it tomorrow. As soon as
> Brian gets the help search path stuff fixed I'll roll out rc2 unless
> some other major bug pops up.
>
> @Brian, attached are patches for search_stack.cpp and
> searchhelpfilefullpath.cpp which should solve the help problem.
> Actually, some of the changes should be moved into the system search
> stack which should solve all of the search path issues not just the help
> path. Feel free to cherry pick these changes or ignore them. One thing
> that is broken in both cases is that the KICAD env var is not always the
> first entry in the search stack when it's defined and it should be.
> User defined paths should *always* take precedence.
>
> >
> > On Fri, Sep 18, 2015 at 6:03 AM, Brian Sidebotham
> > <brian.sidebotham@xxxxxxxxx <mailto:brian.sidebotham@xxxxxxxxx>>
> wrote:
> >> GetExecutablePath() has a fallback which is poor but not too
> >> unreasonable:
> https://github.com/wxWidgets/wxWidgets/blob/master/src/common/stdpbase.cpp#L67
> >>
> >> For Linux it grabs /proc/self/exe which seems reasonable(ish):
> >>
> https://github.com/wxWidgets/wxWidgets/blob/master/src/unix/stdpaths.cpp#L120
> >>
> >> For Windows it uses the Module path which is fine:
> >>
> https://github.com/wxWidgets/wxWidgets/blob/master/src/msw/stdpaths.cpp#L343
> >>
> https://github.com/wxWidgets/wxWidgets/blob/master/include/wx/msw/private.h#L894
> >>
> >> For OSX the code looks ok, though I can't test it at all:
> >>
> https://github.com/wxWidgets/wxWidgets/blob/master/src/osx/core/stdpaths_cf.cpp#L142
> >>
> >> The only problem I see if the BSD range of OS, which is basically
> >> where /proc/self/exe is not available because that will fall back to
> >> the base implementation. Although the base implementation is not too
> >> bad either. We could do a pull request for wxWidgets to fix up
> >> GetExecutablePath() for those by testing for /proc/curproc/exe and
> >> /proc/curproc/file and using if one exists - that should cover
> most of
> >> the BSD range better.
> >>
> >> I think GetExecutablePath() is accurate enough for us to use without
> >> problem. It's so common to tie installed files relative the
> executable
> >> path it's virtually standard for me. This means we can run sandboxed
> >> versions, i.e. without having to have a global config file which is
> >> awkward when you're trying to test different things at once.
> Otherwise
> >> a /etc/kicad.conf would be perfect, but has no equivalent on Windows.
> >>
> >> Best Regards,
> >>
> >> Brian.
> >>
> >> On 18 September 2015 at 00:40, Cirilo Bernardo
> >> <cirilo.bernardo@xxxxxxxxx <mailto:cirilo.bernardo@xxxxxxxxx>> wrote:
> >>>
> >>>
> >>> On Fri, Sep 18, 2015 at 8:20 AM, Brian Sidebotham
> >>> <brian.sidebotham@xxxxxxxxx <mailto:brian.sidebotham@xxxxxxxxx>>
> wrote:
> >>>>
> >>>> As mentioned in the bug report here
> >>>> https://bugs.launchpad.net/kicad/4.0/+bug/1496049 there's a problem
> >>>> with paths on the Windows 4.0.0-RC1.
> >>>>
> >>>> So far the paths that don't work:
> >>>>
> >>>> (1) Searching for help files fails
> >>>> (2) Default paths in the "Path configuration" dialog all
> point to
> >>>> places in c:\msys64\mingw64, etc.
> >>>> (3) Python footprint wizards don't load
> >>>>
> >>>> and probably more. Needless to say, the KiCad experience out of the
> >>>> box because of this is very poor.
> >>>>
> >>>> We need to fix up the path search which started with the help
> in the
> >>>> bug report. The current consensus is to have (yet another) env var
> >>>> called something like KIHELP which can default on Windows to the
> >>>> literal string "${KICAD}\share\doc\kicad\help" which alleviates the
> >>>> previous problem of trying to guess the install path at compile
> time
> >>>> which is clearly flawed.
> >>>>
> >>>
> >>> There are problems for sure but I don't believe in adding yet
> another
> >>> env var if it can be helped, but this may be a complex enough
> issue that
> >>> an env var would be the best option for the release. On MSWin
> documents
> >>> and such should go into an appropriate one of MSWin's Known
> Folders -
> >>> the question then is can we access these folder names via some
> library
> >>> in MSys/MinGW?
> >>>
> >>>
> >>>> My personal preference would have just to have checked
> >>>> "BINDIR\..\share\doc\kicad\help" where BINDIR is gathered from
> >>>> ::wxStandardPaths::Get().GetExecutablePath();
> >>>>
> >>>
> >>> I have my doubts here; there are too many ways that
> GetExecutablePath()
> >>> can give you the wrong result - certainly on *NIX there is no
> guarantee
> >>> what result you will get (but on Linux there are tricks to get
> it right -
> >>> assuming wxWidgets has a good implementation), but I'm not so
> sure of
> >>> the behavior on MSWin. Short story: inspect the wx implementation
> >>> before believing the results.
> >>>
> >>>>
> >>>> However, the decision appears to be to add another configurable
> path.
> >>>>
> >>>> While adding the new KIHELP env var solves part of the problem, the
> >>>> Windows installer should be updated to set the KICAD env var to the
> >>>> chosen install path while installing. et. voila, paths fixed.
> >>>>
> >>>> Best Regards,
> >>>>
> >>>> Brian.
> >>>>
> >>>
> >>> I think a well-known path is preferable to yet another
> configurable path;
> >>> this is true for all platforms. In my 3D refactoring branch
> there is some
> >>> code which attempts to find a plugins directory using a number of
> >>> known paths. I think for all items specifically associated with the
> >>> kicad install, known paths should be used. For other items like
> >>> 3D models some user configuration should be supported (though
> >>> any 3D models installed by a kicad installer should be put into a
> >>> known path).
> >>>
> >>> - Cirilo
> >>
> >> _______________________________________________
> >> Mailing list: https://launchpad.net/~kicad-developers
> >> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto: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
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
References