Opened 7 years ago
Last modified 3 months ago
#55345 accepted defect
yelp @3.36.0 build failure: libyelp/yelp-help-list.c: 'gio/gdesktopappinfo.h' file not found
Reported by: | p-bro | Owned by: | dbevans (David B. Evans) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | jjstickel (Jonathan Stickel), iefdev (Eric F), michaellass (Michael Lass), mascguy (Christopher Nielsen), JDLH (Jim DeLaHunt) | |
Port: | yelp |
Description
yelp @3.22.0 fails to build after migration to High Sierra (10.13.1):
libtool: compile: /usr/bin/clang -DHAVE_CONFIG_H -I. -DDATADIR=\"/opt/local/share\" -DYELP_ICON_PATH=\"/opt/local/share/yelp-xsl/icons\" -DYELP_WEB_EXTENSIONS_DIR=\"/opt/local/lib/yelp/web-extensions\" -I./libyelp -I/opt/local/include -fno-strict-aliasing -Wall -D_REENTRANT -I/opt/local/include/gtk-3.0/unix-print -I/opt/local/include/webkitgtk-4.0 -I/opt/local/include/gtk-3.0 -I/opt/local/include/gio-unix-2.0/ -I/opt/local/include/cairo -I/opt/local/include/pango-1.0 -I/opt/local/include/harfbuzz -I/opt/local/include/pango-1.0 -I/opt/local/include/atk-1.0 -I/opt/local/include/cairo -I/opt/local/include/pixman-1 -I/opt/local/include/freetype2 -I/opt/local/include/libpng16 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/libpng16 -I/opt/local/include/libsoup-2.4 -I/opt/local/include/libxml2 -I/opt/local/include/webkitgtk-4.0 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -Wno-deprecated-declarations -pipe -Os -arch x86_64 -g -O0 -MT libyelp/libyelp_libyelp_la-yelp-help-list.lo -MD -MP -MF libyelp/.deps/libyelp_libyelp_la-yelp-help-list.Tpo -c libyelp/yelp-help-list.c -fno-common -DPIC -o libyelp/.libs/libyelp_libyelp_la-yelp-help-list.o .. libyelp/yelp-help-list.c:26:10: fatal error: 'gio/gdesktopappinfo.h' file not found #include <gio/gdesktopappinfo.h> ^~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. make[2]: *** [libyelp/libyelp_libyelp_la-yelp-help-list.lo] Error 1
Full log from port -d install yelp attached.
Attachments (1)
Change History (29)
Changed 7 years ago by p-bro
Attachment: | install_yelp.log added |
---|
comment:1 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | dbevans removed |
---|---|
Owner: | set to dbevans |
Status: | new → assigned |
This shouldn't be happening. yelp depends on gtk3 which depends on glib2 which provides /opt/local/include/gio-unix-2.0/gio/gdesktopappinfo.h. Does that file exist on your system?
comment:2 Changed 7 years ago by p-bro
No, file does not exist.
$ ll /opt/local/include/gio-unix-2.0/gio/ total 104 drwxr-xr-x 12 root admin 408 15 Nov 18:53 . drwxr-xr-x 3 root admin 102 15 Nov 18:53 .. -rw-r--r-- 1 root admin 2218 15 Nov 18:53 gfiledescriptorbased.h -rw-r--r-- 1 root admin 1911 15 Nov 18:53 gosxappinfo.h -rw-r--r-- 1 root admin 5761 15 Nov 18:53 gunixconnection.h -rw-r--r-- 1 root admin 3197 15 Nov 18:53 gunixcredentialsmessage.h -rw-r--r-- 1 root admin 4245 15 Nov 18:53 gunixfdlist.h -rw-r--r-- 1 root admin 3767 15 Nov 18:53 gunixfdmessage.h -rw-r--r-- 1 root admin 3018 15 Nov 18:53 gunixinputstream.h -rw-r--r-- 1 root admin 6803 15 Nov 18:53 gunixmounts.h -rw-r--r-- 1 root admin 3050 15 Nov 18:53 gunixoutputstream.h -rw-r--r-- 1 root admin 3424 15 Nov 18:53 gunixsocketaddress.h
glib2 is installed
pbro@francis:~/Computer$ port installed glib2 The following ports are currently installed: glib2 @2.54.2_0+quartz (active)
Is it the +quartz variant that does not contain the file?
comment:3 Changed 7 years ago by jenstroeger (Jens Troeger)
Confirmed on 10.11.6, and gdesktopappinfo.h is nowhere to be found. (glib2 @2.54.2_1+quartz (active))
comment:4 Changed 7 years ago by kencu (Ken)
comment:5 Changed 7 years ago by kencu (Ken)
so <gio/gdesktopappinfo.h>
looks like it's for X11 builds.
For +quartz builds, you would need to use <gio/gosxappinfo.h>
instead.
Changing the header is easy, but then you need to rewrite (at least) the GUI parts of yelp-help-list.c
to use it.
I tried digging in. Change GDesktopAppInfo
to GOsxAppInfo
in that file, and then g_desktop_app_info_new
to g_osx_app_info_new
, but it was not going to be that easy, and the application builds through, but just SegFaults, no doubt because I didn't initialize things correctly.
SO - AFAICT - yelp is +x11 only for the time being, until someone fixes this stuff up.
comment:7 Changed 6 years ago by dbevans (David B. Evans)
Status: | assigned → accepted |
---|
I'm working on an upgrade to yelp now so hopefully that will help. However, will look into a short term fix as well.
comment:8 Changed 5 years ago by jjstickel (Jonathan Stickel)
Cc: | jjstickel added |
---|
comment:9 Changed 5 years ago by jjstickel (Jonathan Stickel)
I made a pull request: https://github.com/macports/macports-ports/pull/4775
comment:10 Changed 5 years ago by jjstickel (Jonathan Stickel)
Ack, I see my PR does just what Ken tried (#comment:5). It builds fine, but segfaults. This seems to be the relevant ticket and discussion upstream: https://gitlab.gnome.org/GNOME/glib/issues/1263
Any help is appreciated. Most other gtk/gnome ports seem to work with +quartz, so this one should too.
comment:12 Changed 4 years ago by kencu (Ken)
Summary: | yelp @3.22.0 build failure: libyelp/yelp-help-list.c: 'gio/gdesktopappinfo.h' file not found → yelp @3.36.0 build failure: libyelp/yelp-help-list.c: 'gio/gdesktopappinfo.h' file not found |
---|
comment:13 Changed 4 years ago by kencu (Ken)
homebrew does not appear to have a yelp formulae -- suggesting they could not get it fixed on quartz either. At least so far ;>
comment:14 Changed 4 years ago by kencu (Ken)
see also 40116 which had some interesting potential patches for an older yelp version
comment:15 follow-up: 18 Changed 4 years ago by iefdev (Eric F)
Same issue here… I was just trying to update meld
, but it errored on yelp
. (3.38.0)
:info:build libyelp/yelp-help-list.c:26:10: fatal error: 'gio/gdesktopappinfo.h' file not found :info:build #include <gio/gdesktopappinfo.h> :info:build ^~~~~~~~~~~~~~~~~~~~~~~ :info:build 1 error generated.
comment:16 Changed 4 years ago by iefdev (Eric F)
Cc: | iefdev added |
---|
comment:17 Changed 4 years ago by michaellass (Michael Lass)
Cc: | michaellass added |
---|
comment:18 follow-up: 19 Changed 4 years ago by michaellass (Michael Lass)
Replying to iefdev:
Same issue here… I was just trying to update
meld
, but it errored onyelp
. (3.38.0)
Just to get yelp installed and meld updated, you can do something like the following:
port install glib2 -quartz +x11 port upgrade meld port install glib2 +quartz -x11
I'm not sure though what effect this has on the compiled result. However, yelp will at least build and meld also generally works afterwards.
comment:19 follow-up: 20 Changed 4 years ago by iefdev (Eric F)
Replying to michaellass:
Just to get yelp installed and meld updated, you can do something like the following:
port install glib2 -quartz +x11 port upgrade meld port install glib2 +quartz -x11I'm not sure though what effect this has on the compiled result. However, yelp will at least build and meld also generally works afterwards.
Thanks. I'll look at it, but meld
is also +quartz, so I'll have to rebuild that one as weel. Don't know how many of the 50+ xtra deps that the mew meld
wanted, that also needs quartz/x11, and I don't want to break any of the other ports I have that use quartz.
I've pegged the version of meld
I have installed, so there's no panic.
comment:20 Changed 4 years ago by michaellass (Michael Lass)
Replying to iefdev:
Thanks. I'll look at it, but
meld
is also +quartz, so I'll have to rebuild that one as weel. Don't know how many of the 50+ xtra deps that the mewmeld
wanted, that also needs quartz/x11, and I don't want to break any of the other ports I have that use quartz.
There would only be a issue if meld installs an additional new depenency that requires glib2+quartz-x11. In that case you can do:
port install glib2 -quartz +x11 port install yelp port install glib2 +quartz -x11 port upgrade meld
There is no need to change any other port to +x11 and the change for glib2 is only temporary to get yelp building.
comment:21 follow-up: 23 Changed 4 years ago by kencu (Ken)
I suggested to Dave that for quartz and for older systems, yelp should either be an empty port, or install a simple shell script that opens the browser to the main gnome help page (probably on the web, but maybe somehow to the local help files which are html).
It's been years, and upstream is not working on this, so it will never really be fixed, I think.
Here's the one I use on ppc:
<https://github.com/kencu/LeopardPorts/blob/master/gnome/yelp/Portfile>
comment:22 Changed 4 years ago by iefdev (Eric F)
Thanks. Yes, that sounds like a great idea. For meld (in my case), I'd be glad if I could run without yelp and search online instead – considered the amount deps it brings in (port rdeps yelp
). I mean, for meld… there are so many deps in yelp it could do without - like all the gstreamer*, plugins, etc. (unless meld can diff two mp3 files, and play the differences. :P)
I'll try with the solution in your file.
comment:23 Changed 4 years ago by iefdev (Eric F)
Replying to kencu:
Here's the one I use on ppc:
<https://github.com/kencu/LeopardPorts/blob/master/gnome/yelp/Portfile>
Thanks again Ken!! It worked great. Now the upgrade only installed 1 xtra port.
comment:25 Changed 3 years ago by mascguy (Christopher Nielsen)
Cc: | mascguy added |
---|
comment:26 follow-up: 27 Changed 7 months ago by christophecvr (christophecvr)
Yes problem still there today if you want to build with quartz on macos-10.13.6 (high sierra) But work around to install yelp works fine.
comment:27 Changed 7 months ago by mascguy (Christopher Nielsen)
Replying to christophecvr:
Yes problem still there today if you want to build with quartz on macos-10.13.6 (high sierra). But work around to install yelp works fine.
Yes... while the vast majority of ports work fine with quartz, there are a few that require the workaround. Another one is epiphany
.
comment:28 Changed 3 months ago by JDLH (Jim DeLaHunt)
Cc: | JDLH added |
---|
Output from port -d install yelp