Opened 10 years ago

Closed 7 years ago

#44616 closed defect (worksforme)

Glom will not build with +quartz option

Reported by: m.rick@… Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.3.1
Keywords: Cc: mathsmac@…, wdc@…, su-v
Port: glom

Description

Glom will not build with the +quartz option because it depends of Yelp which is needing gnome-desktop which has GTK2 X11 dependencies. But building GTK2 X11 will occurs errors for the other ports which are built with GTK quartz like GTK3, since yelp is needing webkit-gtk3 which is is using GTK3 quartz …

It seems to be unsolvable to get it working with quartz and should be mentioned somewhere. Yelp is it really necessary to run the application? Any other GTK based applications can use Yelp, but it is enabled as an option, not using it allow to build the port normally with quartz.

No problem to build Gimp, Gnumeric or Viking with the +quartz option.

Attachments (8)

Capture d’écran 2015-12-15 à 16.33.32.png (320.6 KB) - added by m.rick@… 8 years ago.
Capture d’écran 2015-12-15 à 16.34.22.png (326.8 KB) - added by m.rick@… 8 years ago.
Capture d’écran 2015-12-15 à 16.38.07.png (184.2 KB) - added by m.rick@… 8 years ago.
Capture d’écran 2015-12-15 à 16.40.02.png (411.6 KB) - added by m.rick@… 8 years ago.
Capture d’écran 2015-12-15 à 16.52.14.png (117.0 KB) - added by m.rick@… 8 years ago.
Capture d’écran 2015-12-15 à 17.01.55.png (103.7 KB) - added by m.rick@… 8 years ago.
Capture d’écran 2015-12-15 à 16.38.41.png (253.6 KB) - added by m.rick@… 8 years ago.
Capture d’écran 2015-12-15 à 16.38.52.png (63.0 KB) - added by m.rick@… 8 years ago.

Download all attachments as: .zip

Change History (25)

comment:1 Changed 10 years ago by mf2k (Frank Schima)

Owner: changed from macports-tickets@… to landonf@…
Port: glom added

In the future, please fill in the Port field and Cc the port maintainers (port info --maintainers glom).

comment:2 Changed 10 years ago by dbevans (David B. Evans)

I'm not surprised that glom does not build using gtk3 +quartz and yelp may just be the beginning of your problems.

GNOME ports (this is one), in general, are designed to build for X11 and may or may not at the upstream developers discretion be suitable for Quartz either because of their own unconditional use of X11 specific API or because of one of their dependencies.

In this case, yelp is not suitable for Quartz builds because of its use of X11 API. It is declared as a runtime dependency because without it, use of the Help menu fails. This is true for most GNOME applications. GIMP is not a GNOME but rather a pure GTK+ application and as such does not depend on yelp, gnumeric IS a GNOME app but uses the optional approach to yelp (and help support).

So the bottom line is, for GNOME apps, you should not expect that they should build with Quartz and if they do you should be appreciative that the upstream developers are OS X friendly.

As far as I know, the current version of glom has not been tested for Quartz compatibility (other than by you). If you would like to try further just comment out the yelp dependency and probably the gnome-settings-daemon as well (this will disable GNOME theming support) and try again. Be sure that all of your dependencies are built with +quartz -x11. Things will probably fail as you have described if you try to combine X11 and Quartz built applications.

As you find problems with Quartz compatibility you should report the problem to the upstream developers via GNOME's bugzilla. They may help but often the reply is "send a patch and we'll think about it."

I'll leave this ticket open for now but it might be better to discuss this sort of issue on macports-users mail list. Good luck!

comment:3 Changed 10 years ago by dbevans (David B. Evans)

As an example take a look at #41839 which deals with port gcr and its X11 only problems, the report to the upstream developers and their reply.

comment:4 in reply to:  3 Changed 10 years ago by m.rick@…

Replying to devans@…:

As an example take a look at #41839 which deals with port gcr and its X11 only problems, the report to the upstream developers and their reply.

Hi !

Well …

I got it working with quartz !

That wasn't easy though …

These are the detailed steps to reproduce, this precise order must be respected exactly. I tried several times with different combinations before getting the right one. It was very long and took me all day for this one.

There are 2 parts.

The first part is to build Glom with X11 and all its dependency normally.

1 - port install python27 (bzip2 db46 db_select gettext expat libiconv ncurses libedit openssl zlib python_select sqlite3)

2 - port install gnome-desktop (desktop-file-utils glib2 libffi pkgconfig popt gnome-common gnome-themes-standard gtk2 atk gobject-introspection cairo fontconfig freetype libpng libpixman xorg-libXext xorg-libX11 xorg-bigreqsproto xorg-inputproto xorg-kbproto xorg-libXau xorg-xproto xorg-libXdmcp xorg-libxcb xorg-libpthread-stubs xorg-xcb-proto libxml2 xorg-util-macros xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xtrans xorg-xcb-util xrender xorg-renderproto gdk-pixbuf2 jasper jpeg tiff gtk-doc docbook-xml docbook-xml-4.1.2 docbook-xml-4.2 xmlcatmgr docbook-xml-4.3 docbook-xml-4.4 docbook-xml-4.5 docbook-xml-5.0 docbook-xsl fop itstool gawk readline py27-libxml2 libxslt openjade opensp vim hicolor-icon-theme pango Xft2 harfbuzz graphite2 cmake curl curl-ca-bundle libidn libarchive lzo2 shared-mime-info intltool p5.16-getopt-long p5.16-pathtools p5.16-scalar-list-utils p5.16-xml-parser xorg-libXcomposite xorg-compositeproto xorg-libXfixes xorg-fixesproto xorg-libXcursor xorg-libXdamage xorg-damageproto xorg-libXi xorg-libXinerama xorg-xineramaproto xorg-libXrandr xorg-randrproto gtk3 at-spi2-atk at-spi2-core dbus dbus-glib xorg-libXevie xorg-evieproto xorg-libXtst xorg-recordproto xorg-libice xorg-libsm dbus-python27 librsvg libcroco vala gsettings-desktop-schemas gsed iso-codes xkeyboard-config xkbcomp xorg-libxkbfile)

3 - port install yelp (gnome-getting-started-docs gnome-icon-theme icon-naming-utils p5.16-xml-simple p5.16-xml-namespacesupport p5.16-xml-sax p5.16-xml-sax-base p5.16-xml-sax-expat gnome-icon-theme-symbolic gnome-settings-daemon geoclue2 gpsd scons json-glib libsoup glib-networking gnutls gmp libtasn1 nettle p11-kit gsettings-desktop-schemas gsed libproxy geocode-glib gnome-desktop iso-codes xkeyboard-config xkbcomp xorg-libxkbfile lcms2 libcanberra gstreamer1 bison flex gzip texinfo help2man p5.16-locale-gettext libvorbis libogg libgweather libnotify pulseaudio fftw-3-single fftw-3 json-c libsamplerate libsndfile flac orc speex upower policykit gnome-doc-utils rarian getopt gnome-user-docs webkit-gtk3 enchant aspell hunspell geoclue gmake gstreamer1-gst-plugins-base libtheora xorg-libXv xorg-videoproto harfbuzz-icu icu libsecret libgcrypt libgpg-error mesa makedepend xorg-dri2proto xorg-glproto xorg-libXmu xorg-libXt webp yelp-xsl)

4 - port install … databases (postresql93 + mysql55) This step is optional since it will be done automatically with the next step. I didn't use it though.

5 - port install glom (boost doxygen evince libspectre ghostscript jbig2dec libpaper poppler openjpeg15 jbigkit poppler-data t1lib texlive-bin libzzip xmlto coreutils findutils texlive-common xorg-libXaw groff netpbm psutils xpm xorg-libXp xorg-printproto yelp-tools gnome-keyring gcr gnupg libusb-compat libusb openldap cyrus-sasl2 kerberos5 libcomerr tcp_wrappers goocanvasmm2 goocanvas2 py27-gobject3 py27-cairo py27-numpy py27-nose nosetests_select py27-setuptools gtkmm3 atkmm glibmm libsigcxx2 mm-common wget pcre cairomm pangomm graphviz gd2 libvpx yasm gts libLASi urw-fonts gtksourceviewmm3 gtksourceview3 libepc avahi libdaemon libglade2 py27-gdbm py27-pygtk py27-gobject ossp-uuid libgda5 db51 postgresql93 postgresql_select libgdamm5 libxmlxx2 py27-sphinx py27-docutils py27-roman py27-jinja2 py27-markupsafe py27-pygments sphinx_select)

This is the end of the first step. At this moment you can launch glom as well and it'll run perfectly with X11 or XQuartz intalled.

Second step to get Quartz options. It is tricky.

1 - port clean -f gtk3

2 - port clean -f glom

3 - port uninstall -f gtk3

4 - port install -f cairo +quartz

Here it'll rebuild everything even GTK3, but just don't care go ahead with the following steps anyway.

5 - port install -f pango +quartz

6 - port install -f gtk3 +quartz

7 - port install -f cairomm +quartz

8 - port install -f pangomm +quartz

9 - port install -f gtkmm3 +quartz

10 - port install -f glom +quartz

Here you are!

Enjoy!

I don't know if you close or leave open the ticket.

http://imagizer.imageshack.us/v2/150x100q90/904/6k39gb.pnghttp://imageshack.com/f/p46k39gbp

comment:5 Changed 10 years ago by dbevans (David B. Evans)

OK, so what happens now when you select Help->Contents with glom?

comment:6 in reply to:  5 Changed 10 years ago by m.rick@…

Replying to devans@…:

OK, so what happens now when you select Help->Contents with glom?

It's not working, of course, a message is displayed saying that it is not supported.

But …

When I was first trying the X11 version, Yelp was launching if I launched it manually, but getting help from Glom i got the same error message … So … The same happens with Gnumeric, but Yelp is an option.

The idea on Mac OS X would be to use the built-in Help, dunno how to do though. I did a script once for Gimp, but I can't manage to get it back. Gimp uses a different system to call the help service. But a shell script called Yelp and calling the Mac OS X help should work. The help files must be indexed first with Help Indexer, it can open HTML or PDF. I downloaded the helps files from Gnuemric with a web sniffer, used Help Indexer to index the folder, and opened nicely the root index file in Help with all the links working.

Anyway, all the Yelp dependencies are useless. The final port is 4 Gb large, but ¾ of them are useless.

I use esoteric paths for my builds when they are working in the way of the Bottles for Wines or CrossOver. Like this the ports are not conflicting together.

Last edited 10 years ago by m.rick@… (previous) (diff)

comment:7 Changed 10 years ago by mathsmac@…

Cc: mathsmac@… added

Cc Me!

comment:8 Changed 10 years ago by m.rick@…

Some news

Well, launching the application from a 10.6 ~ or 10.7 Mac OS, you will need to create a script and set LANG=C With 10.9 no need to use it and works out of the box. There are a few bugs, but the software remains highly usable.

The theme is Gnome-Cupertino but it's not very beautiful, but at least it is easier to use than the native one despite of a bug with the windows bar.

Just missing the native OS X menus, but I don't how to do this part.

https://imagizer.imageshack.us/v2/779x487q90/912/pm9Zdk.png

https://imagizer.imageshack.us/v2/779x487q90/538/3yoMUt.png

comment:9 Changed 10 years ago by wdc@…

Cc: wdc@… added

Cc Me!

comment:10 Changed 10 years ago by wdc@…

Does this mean that there is a well-established substitute for yelp that can, for example, be incorporated into meld? meld works fine under quartz (except for no help capability) if you disable yelp.

comment:11 Changed 10 years ago by m.rick@…

This is just a simple shell script I wrote and called Yelp I put in the Bin folder. It also tests the language settings. But I had to extract the help from the website because it is in HTML, the provided one is in an XML format and Mac OS X help is unable to read this format. Once done, it is is necessary to index the help folder with a little software called Help Indexer.app provided by Apple.

It can be used for any GTK apps as well, excepting GIMP which uses something specific, but maybe it can be done with some tricks, but does work well with Gnumeric too.

Once the menus using the Mac OS X menu barre have been done and the software packaged like a native Mac OS X application package, you get a good alternative to Filemaker Pro since this software is more versatile when using open databases, especially with PostgreSQL which Filemaker is still unable to connect with despite the long time demand by users… Plus, Filemaker is unable to export blobs fields or connect with blobs in a MySQL database.

#!/bin/sh
#
#Use native Mac OS X Help in GTK softwares

name=$(basename "$0")
echo $name

dirn=$(dirname "$0")
echo $dirn

bundle=$(cd "$dirn/../../" && pwd)
bundle_res="$bundle/Resources"
HelpViewer="/System/Library/CoreServices/HelpViewer.app/Contents/MacOS/HelpViewer"

help="$bundle_res/share/help"
locale=$LANG
short=${locale:0:2}
locale=$short

if [ -d /$help/$locale ]
then
    $HelpViewer $help/$locale/index.html
else
    $HelpViewer $help/en/index.html
fi

Last edited 10 years ago by m.rick@… (previous) (diff)

comment:12 Changed 10 years ago by su-v

Cc: suv-sf@… added

Cc Me!

comment:13 Changed 9 years ago by murrayc@…

This commit should disable use of yelp when you pass --disable-documentation to configure: https://git.gnome.org/browse/glom/commit/?id=6de5b81ca85f597b47b15a28054a94f03b3de45a

Is that helpful? If so, I can put that in a stable 1.28.x release for you.

comment:14 in reply to:  13 Changed 9 years ago by m.rick@…

Replying to murrayc@…:

This commit should disable use of yelp when you pass --disable-documentation to configure: https://git.gnome.org/browse/glom/commit/?id=6de5b81ca85f597b47b15a28054a94f03b3de45a

Is that helpful? If so, I can put that in a stable 1.28.x release for you.

Thank you Murray I tried running /opt/local/bin/port install glom +quartz +no_x11 --disable-documentation but Yelp is still present in the dependencies

comment:15 Changed 8 years ago by m.rick@…

I reorganized the Quartz native installation tutorial.

After trying to upgrade to GTK3 3.8.16 and Glom 1.28.5, I got all my Glom installation completely messed-up. So this is how to proceed.

  1. python27
  2. postgresql94 +python27
  3. doxygen

Apply the patches as described here before installing doxygen https://trac.macports.org/ticket/49881

  1. gtk3 +x11
  2. gcr
  3. gnome-desktop
  4. yelp
  5. glom
  1. From here, before going ahead, make a back-up of your Glom installation. You can use a prefix installation if needed before building everything if you don’t want to get your MacPorts installation getting messed-up. For the steps further, do not care with errors if your modifications finish with ---> No broken files found. Maybe it’ll be needed to decompose some of the following tasks above.
  1. port clean -f cairo cairomm pango pangomm gtk3 gtkmm3 gtksourceviewmm3 goocanvasmm2 evince avahi glom
  2. port uninstall -f cairo cairomm
  3. port install -f cairo cairomm +quartz -x11
  4. port uninstall -f pango pangomm
  5. port install -f pango pangomm +quartz -x11
  6. port uninstall -f gtk3
  7. port install -f gtk3 +quartz -x11
  8. port uninstall -f goocanvasmm2 gtkmm3 gtksourceviewmm3
  9. port install -f goocanvasmm2 gtkmm3 gtksourceviewmm3 +quartz -x11
  10. port uninstall -f avahi evince glom
  11. port install -f avahi evince glom +quartz -x11

That’s it! You get a native Quartz native Glom working installation. You’ll get an error with LibGDA5:

sys:1: PyGIWarning: Gda was imported without specifying a version first. Use gi.require_version('Gda', '5.0') before import to ensure that the right version gets loaded.
bool GlomBakery::Document::write_to_disk(): m_file_uri is empty.

I don’t know how to correct it, but it doesn’t forbid Glom to work.

Do not update or upgrade it, otherwise, you’re likely to get errors! To update or upgrade, replace your installation with the previously backed-up one in step 9 and repeat all the tasks from 10 to 20.

Optionally you can perform additional tasks as well, like converting to Quartz the Yelp installation if needed by another port by doing so:

  1. port clean -f webkit-gtk3 yelp
  2. port uninstall -f webkit-gtk3 yelp
  3. port install -f yelp +quartz -x11

And you’ll get a Quartz native Yelp working installation. But to be used with Glom only is useless since Yelp will not launch in any cases.

Globally, Glom 1.28.5 with the latest GTK3 update work really better and is very stable compared to the versions 1.26.x/1.27.x It makes a nice form application for your PostgreSQL databases.

Enjoy!

Last edited 8 years ago by m.rick@… (previous) (diff)

Changed 8 years ago by m.rick@…

Changed 8 years ago by m.rick@…

Changed 8 years ago by m.rick@…

Changed 8 years ago by m.rick@…

Changed 8 years ago by m.rick@…

Changed 8 years ago by m.rick@…

Changed 8 years ago by m.rick@…

Changed 8 years ago by m.rick@…

comment:16 Changed 7 years ago by mf2k (Frank Schima)

Owner: landonf@… deleted
Status: newassigned

comment:17 Changed 7 years ago by mf2k (Frank Schima)

Resolution: worksforme
Status: assignedclosed

I'm closing this ticket since I don't see what can be fixed in the port.

Note: See TracTickets for help on using tickets.