[Geany-Devel] OSX plugin development

Jiří Techet techet at xxxxx
Tue Oct 10 18:11:54 UTC 2017


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/20171010/fd7d2a56/attachment-0001.html>


More information about the Devel mailing list