unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
From: phodina <phodina@protonmail.com>
To: Efraim Flashner <efraim@flashner.co.il>
Cc: help-guix <help-guix@gnu.org>
Subject: Re: Plugins for Kicad and other programs
Date: Mon, 04 Oct 2021 17:42:53 +0000	[thread overview]
Message-ID: <r-H8_ICWjcthxfz5HaC5FD6q6KXIvJmDxjLs3-EVqPBsbuLKGlMQdJvWScc8ulcuTfcCwhDONTmFFV18AitO-vkWNUk4fo0jnaxWWKMSf-0=@protonmail.com> (raw)
In-Reply-To: <YVnqRxpXTyyWLRRF@3900XT>

On Sunday, October 3rd, 2021 at 7:37 PM, Efraim Flashner <efraim@flashner.co.il> wrote:

> On Sun, Oct 03, 2021 at 11:31:40AM +0000, phodina via wrote:
>
> > Hi Guix,
> >
> > Lots of programs now allow users to extend their features through plugins.
> >
> > On non Guix distros where the user does not have the root priviledges they place
> >
> > the the content of their plugin in the configuration directory in home directory.
> >
> > Here's example for Kicad:
> >
> > ~/.kicad_plugins/
> >
> > ~/.kicad/scripting/
> >
> > ~/.kicad/scripting/plugins/
> >
> > To further complicate things they can have their own plugin manager (e.g. Freecad).
> >
> > In some cases they contain just some raw data or configs. However, large amount has
> >
> > some code embedded like shell scripts, python which needs special handling on Guix.
> >
> > Therefore my question is how to integrate them?
> >
> > What I propose is with the merge of home services [2], there is now possibility to:
> >
> > -   create package defintion of the plugin
> > -   create home service that will link the plugin into the correct location
> >
> >     within the home dir
> >
> > There is also an alternative.
> >
> > I searched the Kicad forum for plugin installation and installation into system dirs
> >
> > (under /usr) is not recommended [2]. The plugin could be linked into the plugin
> >
> > location under the /gnu/store/xxx-package. This could be done by inheriting kicad
> >
> > package and adding the plugins to the input. That approach wouldn't be very flexible,
> >
> > as it would create to many package combinations.
> >
> > Also I never installed plugins into system directories on distibutions used before
> >
> > Guix system so I don't know if it would work.
> >
> > [1] commit 6ae4644984608b7eff7ab54d3a5787c661d85b2e
> >
> > [2] https://forum.kicad.info/t/plugin-location-ubuntu-refresh-solved/24396
>
> Following down that thread, I came across this other bit too:
>
> Can you follow the instruction in the document you linked to:
>
> Open Tools -> Scripting Console in pcbnew
>
>     type import pcbnew; print pcbnew.PLUGIN_DIRECTORIES_SEARCH
>
>
> What does it tell?
>
> v3xX
>
> Aug 2020
>
> /usr/share/kicad/scripting
>
> /usr/share/kicad/scripting/plugins
>
> /home//.config/kicad/scripting
>
> /home//.config/kicad/scripting/plugins
>
> /home//.kicad_plugins
>
> /home//.kicad/scripting
>
> /home//.kicad/scripting/plugins
>
> it looks like it should search in this folders.
>
> so it looks like kicad could have a search-path of 'share/kicad' or
>
> 'share/kicad/scripting' and the plugins installed to
>
> %out/share/kicad/scripting for each plugin.
>

I checked the output in the scripting console as you suggested and got similar output:

>>> import pcbnew
>>> print pcbnew.PLUGIN_DIRECTORIES_SEARCH
/gnu/store/nvjsh0xdg6r1kkz9n8a3kx4lrg0s1dc3-kicad-5.1.6/share/kicad/scripting
/gnu/store/nvjsh0xdg6r1kkz9n8a3kx4lrg0s1dc3-kicad-5.1.6/share/kicad/scripting/plugins
/home/user/.config/kicad/scripting
/home/user/.config/kicad/scripting/plugins
/home/user/.kicad_plugins
/home/user/.kicad/scripting
/home/user/.kicad/scripting/plugins

So that means the plugins can be installed into the /gnu/store, right?

The question now is how do you symlink the plugin into the kicad plugin directory?

Does it mean the definition of the kicad package has to be modified? By that I mean create a new package definition, inherit kicad and add the plugin to the inputs? Don't think this approach will scale nicely.

It would be better to let the plugins create the symlinks themselves but this creates the problem that the outputs in /gnu/store are read-only. Therefore plugin package won't create a symlink into the directory inside kicad package.

Or create symlink in the user home directory?

>
> Efraim Flashner efraim@flashner.co.il רנשלפ םירפא
>
> GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
>
> Confidentiality cannot be guaranteed on emails sent or received unencrypted


      reply	other threads:[~2021-10-04 17:43 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-03 11:31 Plugins for Kicad and other programs phodina via
2021-10-03 17:37 ` Efraim Flashner
2021-10-04 17:42   ` phodina [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='r-H8_ICWjcthxfz5HaC5FD6q6KXIvJmDxjLs3-EVqPBsbuLKGlMQdJvWScc8ulcuTfcCwhDONTmFFV18AitO-vkWNUk4fo0jnaxWWKMSf-0=@protonmail.com' \
    --to=phodina@protonmail.com \
    --cc=efraim@flashner.co.il \
    --cc=help-guix@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).