[Geany-Devel] OSX plugin development

Jiří Techet techet at xxxxx
Wed Oct 11 20:26:56 UTC 2017


Wouldn't moving

gtk_widget_grab_focus(GTK_WIDGET(entry));

to quick_search() help? You could try to call it before/after you show the
dialog to see if it helps.

Jiri

On Wed, Oct 11, 2017 at 9:56 PM, <steve8track at yahoo.com> wrote:

> Thanks for telling me about the update on the status of ctags/libgit2.
>
>
>
> So I have an inline search plugin that opens a non-decorated dialog with a
> keyboard shortcut, much like searching text in popular browsers like Chrome
> or Firefox.
>
>
>
> The problem is, when I hit my keyboard shortcut, I don’t get focus in the
> GtkEntry like I used to on linux.  However, I was also using an older
> version of geany at the time I worked on this plugin last on linux.
>
>
>
> Here is the source code for my plugin:  https://github.com/sblatnick/
> geany-plugins/blob/dev/quick-search/src/quick-search.c
>
>
>
> Thanks,
>
>
>
> Steve
>
>
>
> *From:* Jiří Techet [mailto:techet at gmail.com]
> *Sent:* Wednesday, October 11, 2017 12:18 PM
>
> *To:* Steven Blatnick <steve8track at yahoo.com>
> *Cc:* Geany development list <devel at lists.geany.org>
> *Subject:* Re: [Geany-Devel] OSX plugin development
>
>
>
> I don't remember doing anything special regarding focus with Geany. What
> exactly happens?
>
>
>
> By the way the jhbuild modules have been updated upstream with the new
> ctags version so when you rebuild ctags, libgit2 should be compiled alright.
>
>
>
> Jiri
>
>
>
> On Wed, Oct 11, 2017 at 6:28 PM, <steve8track at yahoo.com> wrote:
>
> THANK YOU.  I just built and used one of my plugins 😊
>
>
>
> For some reason, the focus is messed up on this plugin.  Do I need to
> handle window focus differently on mac perhaps?
>
>
>
> Thanks,
>
>
>
> Steve
>
>
>
> *From:* Jiří Techet [mailto:techet at gmail.com]
> *Sent:* Tuesday, October 10, 2017 12:12 PM
>
> *To:* Steven Blatnick <steve8track at yahoo.com>
> *Cc:* Geany development list <devel at lists.geany.org>
> *Subject:* Re: [Geany-Devel] OSX plugin development
>
>
>
> Hi Steve,
>
>
>
> it sounds to me like this bug in cmake:
>
>
>
> https://gitlab.kitware.com/cmake/cmake/merge_requests/1295
>
>
>
> You might be able to fix it by updating cmake to the latest version. Check
>
>
>
> Source/jhbuild/modulesets/bootstrap.modules
>
>
>
> and update cmake to the latest release. The modules file also contains
> some patch to cmake - not sure if it's needed even with the latest release
> and if it applies - you might need to remove it.
>
>
>
> Alternatively using XCode 8 should help too in this case as it doesn't
> contain the new function and shouldn't confuse cmake.
>
>
>
> I'll report the issue to gtk-osx so it gets updated in the project.
>
>
>
> By the way, this error happens in Geany plugins dependency which means
> Geany is already built at this point. You should be able to run it from
> jhbuild shell and be also able to test your plugin. You could also edit the
> geany.modules file and remove the libgit2 dependency. This means you won't
> be able to compile the git-changebar plugin but everything else should
> compile fine.
>
>
>
> Jiri
>
>
>
> On Tue, Oct 10, 2017 at 6:27 PM, <steve8track at yahoo.com> wrote:
>
> So I tried again with a clean directory after removing libgit2 from
> homebrew, but it appears geany-osx is intended to build with 10.13 and I’m
> using 10.12.6.  I’m still getting stuck on libgit2 somehow.
>
>
>
> Here is what I’m seeing:
>
>
>
> ~/projects/geany/geany-osx master$ jhbuild -m geany.modules build
> geany-bundle
>>
> /Users/sblatnick/gtk/source/libgit2-0.24.3/src/unix/posix.h:77:9:
> warning: 'futimens' is only available on macOS 10.13 or newer
> [-Wunguarded-availability-new]
>
>         return futimens(f, s);
>
>                ^~~~~~~~
>
> /Applications/Xcode.app/Contents/Developer/Platforms/
> MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/stat.h:373:5:
> note: 'futimens' has been explicitly marked partial here
>
> int     futimens(int __fd, const struct timespec __times[2])
> __API_AVAILABLE(macosx(10.13), ios(11.0), tvos(11.0), watchos(4.0));
>
>         ^
>
> /Users/sblatnick/gtk/source/libgit2-0.24.3/src/unix/posix.h:77:9: note:
> enclose 'futimens' in a __builtin_available check to silence this warning
>
>         return futimens(f, s);
>
>                ^~~~~~~~
>
> 1 warning generated.
>
> [100%] Linking C executable libgit2_clar
>
> [100%] Built target libgit2_clar
>
> make: *** [all] Error 2
>
> *** Error during phase build of libgit2: ########## Error running make -j
> 9  *** [14/26]
>
>
>
>   [1] Rerun phase build
>
>   [2] Ignore error and continue to install
>
>   [3] Give up on module
>
>   [4] Start shell
>
>   [5] Reload configuration
>
>   [6] Go to phase "wipe directory and start over"
>
> choice: ^CInterrupted
>
>
>
> These are my homebrew and macport packages currently installed:
>
>
>
> ~/projects/geany/geany-osx master$ brew list
>
> adns            gdbm            gobject-introspection jq
> libssh2              nettle               pango           readline
>
> atk             gdk-pixbuf      graphite2       libassuan
> libtasn1           nmap            pcre            ruby-build
>
> autoconf        gettext              harfbuzz        libffi
> libtiff              npth            pinentry        shared-mime-info
>
> cairo           glib            hicolor-icon-theme    libgcrypt
> libunistring          oniguruma       pixman               sqlite
>
> colordiff       gmp             icu4c           libgpg-error
> libusb               openssl              pkg-config
> the_silver_searcher
>
> fontconfig      gnupg           intltool        libksba
> libxml2              openssl at 1.1           python               wget
>
> freetype        gnutls               jpeg            libpng
> mariadb              p11-kit              rbenv           xz
>
>
>
> ~/projects/geany/geany-osx master$ port installed
>
> Warning: port definitions are more than two weeks old, consider updating
> them by running 'port selfupdate'.
>
> The following ports are currently installed:
>
>   at-spi2-atk @2.26.0_0 (active)
>
>   at-spi2-core @2.26.0_0 (active)
>
>   atk @2.26.0_0 (active)
>
>   autoconf @2.69_5 (active)
>
>   autoconf-archive @2017.03.21_0 (active)
>
>   automake @1.15.1_0 (active)
>
>   bzip2 @1.0.6_0 (active)
>
>   cairo @1.14.10_0+quartz+x11 (active)
>
>   db48 @4.8.30_4 (active)
>
>   dbus @1.10.20_0 (active)
>
>   expat @2.2.4_0 (active)
>
>   fontconfig @2.12.5_0 (active)
>
>   freetype @2.8_0 (active)
>
>   gawk @4.1.4_3 (active)
>
>   gdbm @1.13_3 (active)
>
>   gdk-pixbuf2 @2.36.10_1+x11 (active)
>
>   gettext @0.19.8.1_0 (active)
>
>   glib2 @2.54.0_0+x11 (active)
>
>   gnome-common @3.18.0_0 (active)
>
>   gobject-introspection @1.54.0_0 (active)
>
>   graphite2 @1.3.9_0 (active)
>
>   harfbuzz @1.5.1_0 (active)
>
>   hicolor-icon-theme @0.17_0 (active)
>
>   intltool @0.51.0_3 (active)
>
>   itstool @2.0.2_2 (active)
>
>   jasper @2.0.14_0 (active)
>
>   jpeg @9b_0 (active)
>
>   libedit @20170329-3.1_1 (active)
>
>   libepoxy @1.4.3_1+python36 (active)
>
>   libffi @3.2.1_0 (active)
>
>   libiconv @1.15_0 (active)
>
>   libidn @1.33_0 (active)
>
>   libpixman @0.34.0_0 (active)
>
>   libpng @1.6.32_0 (active)
>
>   libtool @2.4.6_3 (active)
>
>   libxml2 @2.9.5_0 (active)
>
>   libxslt @1.1.29_1 (active)
>
>   mesa @17.1.6_0+osmesa+python27 (active)
>
>   ncurses @6.0-20170916_0 (active)
>
>   openssl @1.0.2l_0 (active)
>
>   p5.24-encode-locale @1.50.0_0 (active)
>
>   p5.24-file-listing @6.40.0_1 (active)
>
>   p5.24-getopt-long @2.500.0_0 (active)
>
>   p5.24-html-form @6.30.0_1 (active)
>
>   p5.24-html-parser @3.720.0_0 (active)
>
>   p5.24-html-tagset @3.200.0_4 (active)
>
>   p5.24-http-cookies @6.40.0_0 (active)
>
>   p5.24-http-daemon @6.10.0_1 (active)
>
>   p5.24-http-date @6.20.0_1 (active)
>
>   p5.24-http-message @6.130.0_0 (active)
>
>   p5.24-http-negotiate @6.10.0_1 (active)
>
>   p5.24-io-html @1.1.0_0 (active)
>
>   p5.24-io-socket-ssl @2.51.0_0 (active)
>
>   p5.24-libwww-perl @6.260.0_0 (active)
>
>   p5.24-lwp-mediatypes @6.20.0_1 (active)
>
>   p5.24-lwp-protocol-https @6.70.0_0 (active)
>
>   p5.24-mozilla-ca @20160104_0 (active)
>
>   p5.24-net-http @6.170.0_0 (active)
>
>   p5.24-net-libidn @0.120.0_4 (active)
>
>   p5.24-net-ssleay @1.810.0_0 (active)
>
>   p5.24-pathtools @3.620.0_0 (active)
>
>   p5.24-scalar-list-utils @1.490.0_0 (active)
>
>   p5.24-sub-name @0.210.0_0 (active)
>
>   p5.24-sub-uplevel @0.280.0_0 (active)
>
>   p5.24-test-exception @0.430.0_0 (active)
>
>   p5.24-test-nowarnings @1.40.0_1 (active)
>
>   p5.24-test-warn @0.320.0_0 (active)
>
>   p5.24-try-tiny @0.280.0_0 (active)
>
>   p5.24-uri @1.720.0_0 (active)
>
>   p5.24-www-robotrules @6.20.0_1 (active)
>
>   p5.24-xml-parser @2.440.0_0 (active)
>
>   pango @1.40.12_0+quartz+x11 (active)
>
>   pcre @8.41_0 (active)
>
>   perl5.24 @5.24.2_0 (active)
>
>   pkgconfig @0.29.2_0 (active)
>
>   py-libxml2 @2.9.5_0 (active)
>
>   py27-beaker @1.8.1_0 (active)
>
>   py27-libxml2 @2.9.5_0 (active)
>
>   py27-mako @1.0.7_0 (active)
>
>   py27-markupsafe @0.23_0 (active)
>
>   py27-setuptools @36.5.0_0 (active)
>
>   python2_select @0.0_2 (active)
>
>   python27 @2.7.13_1 (active)
>
>   python_select @0.3_7 (active)
>
>   readline @7.0.003_1 (active)
>
>   shared-mime-info @1.7_2 (active)
>
>   sqlite3 @3.20.1_0 (active)
>
>   tiff @4.0.8_0 (active)
>
>   Xft2 @2.3.2_0 (active)
>
>   xorg-compositeproto @0.4.2_0 (active)
>
>   xorg-damageproto @1.2.1_0 (active)
>
>   xorg-dri2proto @2.8_0 (active)
>
>   xorg-fixesproto @5.0_0 (active)
>
>   xorg-glproto @1.4.17_0 (active)
>
>   xorg-inputproto @2.3.2_0 (active)
>
>   xorg-kbproto @1.0.7_0 (active)
>
>   xorg-libice @1.0.9_0 (active)
>
>   xorg-libpthread-stubs @0.3_0 (active)
>
>   xorg-libsm @1.2.2_0 (active)
>
>   xorg-libX11 @1.6.5_0 (active)
>
>   xorg-libXau @1.0.8_0 (active)
>
>   xorg-libxcb @1.12_2+python27 (active)
>
>   xorg-libXcomposite @0.4.4_0 (active)
>
>   xorg-libXcursor @1.1.14_0 (active)
>
>   xorg-libXdamage @1.1.4_0 (active)
>
>   xorg-libXdmcp @1.1.2_0 (active)
>
>   xorg-libXext @1.3.3_0 (active)
>
>   xorg-libXfixes @5.0.3_0 (active)
>
>   xorg-libXi @1.7.8_0 (active)
>
>   xorg-libXinerama @1.1.3_0 (active)
>
>   xorg-libXmu @1.1.2_0 (active)
>
>   xorg-libXrandr @1.5.1_0 (active)
>
>   xorg-libXt @1.1.5_1 (active)
>
>   xorg-libXtst @1.2.3_0 (active)
>
>   xorg-libXxf86vm @1.1.4_0 (active)
>
>   xorg-randrproto @1.5.0_0 (active)
>
>   xorg-recordproto @1.14.2_0 (active)
>
>   xorg-renderproto @0.11.1_0 (active)
>
>   xorg-xcb-proto @1.12_1+python27 (active)
>
>   xorg-xcb-util @0.4.0_0 (active)
>
>   xorg-xextproto @7.3.0_0 (active)
>
>   xorg-xf86vidmodeproto @2.3.1_0 (active)
>
>   xorg-xineramaproto @1.2.1_0 (active)
>
>   xorg-xproto @7.0.31_0 (active)
>
>   xrender @0.9.10_0 (active)
>
>   xz @5.2.3_0 (active)
>
>   zlib @1.2.11_0 (active)
>
>
>
> Sorry for the inconvenience, but any suggestions?
>
>
>
> Thanks,
>
>
>
> Steve
>
>
>
> *From:* Jiří Techet [mailto:techet at gmail.com]
> *Sent:* Sunday, October 1, 2017 3:35 AM
> *To:* Steven Blatnick <steve8track at yahoo.com>
> *Cc:* Geany development list <devel at lists.geany.org>
>
>
> *Subject:* Re: [Geany-Devel] OSX plugin development
>
>
>
> Hi Steve,
>
>
>
> yeah, I meant a different login.
>
>
>
> Oh, you use MacPorts too. I had some problems with MacPorts and jhuild in
> the past so that definitely could be it as well.
>
>
>
> Jiri
>
>
>
> On Sun, Oct 1, 2017 at 6:56 AM, Steven Blatnick <steve8track at yahoo.com>
> wrote:
>
> Thanks again for the quick reply.
>
> When you say to use a separate account, do you mean a different login to
> osx? I'm not sure I can do that since this is a laptop I was issued from
> work that I wish to use geany plugins on. I think my best bet is to
> uninstall any homebrew (and macport?) gtk libraries and try again.
>
> Sorry I made you repeat your initial advice. I should have mentioned I
> didn't think I could try another account. If removing homebrew and deleting
> the gtk directory don't fix it, I suppose using jhbuild python is my next
> best option from your original email.
>
> Thanks,
>
> Steve
>
>
>
> -------- Original Message --------
> From:Jiří Techet
> Sent:Sat, 30 Sep 2017 13:15:16 -0600
> To:Geany development list
> Subject:Re: [Geany-Devel] OSX plugin development
>
> Hi Steve,
>
>
>
> I found this issue
>
>
>
> https://gitlab.kitware.com/cmake/cmake/issues/17101
>
>
>
> not sure if it's related.
>
>
>
> In your case I suspect either some clash with Homebrew (in this case I
> recommend building in a separate account) or that you built part of the
> dependencies on previous macOS system and then upgraded to High Sierra
> where symbols in system libraries may differ. In this case I'd suggest
> deleting the whole gtk directory and starting over to make sure everything
> is built on the new system.
>
>
>
> Jiri
>
>
>
>
>
>
>
> On Sat, Sep 30, 2017 at 1:09 AM, <steve8track at yahoo.com> wrote:
>
> Ok, so I got through the dependencies (meta-gtk-osx-core), and ran:
>
>
>
> export LC_ALL=en_US.UTF-8
>
> export LANG=en_US.UTF-8
>
> jhbuild -m geany.modules build geany-bundle
>
>>
> *** Building libgit2 *** [14/26]
>
> make -j 9
>
> [  0%] Linking C shared library libgit2.dylib
>
> [ 79%] Built target libgit2_clar
>
> dyld: lazy symbol binding failed: Symbol not found: _utimensat
>
>   Referenced from: /Users/sblatnick/gtk/inst/bin/cmake
>
>   Expected in: /usr/lib/libSystem.B.dylib
>
>
>
> dyld: Symbol not found: _utimensat
>
>   Referenced from: /Users/sblatnick/gtk/inst/bin/cmake
>
>   Expected in: /usr/lib/libSystem.B.dylib
>
>
>
> make[2]: *** [libgit2.dylib] Abort trap: 6
>
> make[2]: *** Deleting file `libgit2.dylib'
>
> make[1]: *** [CMakeFiles/git2.dir/all] Error 2
>
> make: *** [all] Error 2
>
> *** Error during phase build of libgit2: ########## Error running make -j
> 9  *** [14/26]
>
>
>
>   [1] Rerun phase build
>
>   [2] Ignore error and continue to install
>
>   [3] Give up on module
>
>   [4] Start shell
>
>   [5] Reload configuration
>
>   [6] Go to phase "wipe directory and start over"
>
>
>
> I’m not sure what is going wrong with building geany itself.
>
>
>
> Thanks,
>
>
>
> Steve
>
>
>
> *From:* Devel [mailto:devel-bounces at lists.geany.org] *On Behalf Of *Jirí
> Techet
> *Sent:* Friday, September 22, 2017 3:02 AM
> *To:* Geany development list <devel at lists.geany.org>
> *Subject:* Re: [Geany-Devel] OSX plugin development
>
>
>
> Hi Steve,
>
>
>
> I slightly remember I got an error like this one in the past but I don't
> remember what exactly the problem was. Anyway, it's not good to mix
> dependencies from homebrew and jhbuild. If you have some environment
> variables set up to link against homebrew libraries, this is what could
> cause problems. I created a separate account on my machine from which I do
> the Geany build to be sure nothing like that is set up.
>
>
>
> If you keep getting the error, you might also consider building python as
> part of the build process which is then used instead of the system python
> for the rest of the build. This means running
>
>
>
> jhbuild bootstrap
>
> jhbuild python
>
> jhbuild build meta-gtk-osx-bootstrap
>
> jhbuild build meta-gtk-osx-core
>
>
>
> When doing a change like that, it's best to remove the gtk directory
> because it changes dependencies and basically everything has to be rebuilt.
>
>
>
> Apart from that everything else should work as described here:
>
>
>
> https://github.com/geany/geany-osx
>
>
>
> When al the dependencies are built, you should be able to use the same
> stuff you use under linux for building your plugin. But be sure to run the
> build within a jhbuild shell - you need to run
>
>
>
> jhbuild shell
>
>
>
> which sets up the environment variables to use the dependencies built by
> jhbuild after you should be able to build your plugin in a normal way.
>
>
>
> Let me know if you run into more problems.
>
>
>
> Cheers,
>
>
>
> Jiri
>
>
>
> On Fri, Sep 22, 2017 at 12:00 AM, <steve8track at yahoo.com> wrote:
>
> I’m trying to build plugins in OSX, and I’m a bit out of my element.
>
>
>
> (I’ve had problems with my yahoo email not getting through to this list,
> but I haven’t had a chance to switch email accounts.  I hope this makes it.)
>
>
>
> I’m following the guide on https://github.com/geany/geany-osx
>
>
>
> I get stuck running in step 6:
>
> jhbuild build meta-gtk-osx-bootstrap
>>
> checking for python module libxml2... ./configure: line 2422: 83400
> Done                    echo "import $py_module"
>
>      83401 Abort trap: 6           | python - >&/dev/null
>
> not found
>
> configure: error: Python module libxml2 is needed to run this package
>
> *** Error during phase configure of itstool: ########## Error running
> ../configure --prefix /Users/steve/gtk/inst    *** [7/12]
>
>
>
>   [1] Rerun phase configure
>
>   [2] Ignore error and continue to build
>
>   [3] Give up on module
>
>   [4] Start shell
>
>   [5] Reload configuration
>
>   [6] Go to phase "wipe directory and start over"
>
>   [7] Go to phase "clean"
>
>   [8] Go to phase "distclean"
>
>
>
> I’ve installed libxml2 via homebrew, and py-libxml2 and py27-libxml2 via
> macports to no avail.
>
>
>
> I figured out how to build the .o file for one of my plugins:
>
>
>
> gcc -c quick-search.c -fPIC -std=c99 -DGTK -I /Users/steve/projects/geany/geany/plugins/
> -I /Users/steve/projects/geany/geany/src/ -I /Users/steve/projects/geany/geany/tagmanager/src/
> -I /Users/steve/projects/geany/geany/scintilla/include/ `pkg-config
> --cflags glib-2.0` `pkg-config --cflags gtk+-2.0` -I
> /Users/steve/projects/geany/geany/scintilla/
>
>
>
> But not the .....so file.
>
>
>
> Thanks for any help,
>
>
>
> Steve
>
>
> _______________________________________________
> Devel mailing list
> Devel at lists.geany.org
> https://lists.geany.org/cgi-bin/mailman/listinfo/devel
>
>
>
>
> _______________________________________________
> Devel mailing list
> Devel at lists.geany.org
> https://lists.geany.org/cgi-bin/mailman/listinfo/devel
>
>
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/devel/attachments/20171011/88bbf075/attachment-0001.html>


More information about the Devel mailing list