[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