Opened 6 years ago

Last modified 2 years 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)
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)

install_yelp.log (49.4 KB) - added by p-bro 6 years ago.
Output from port -d install yelp

Download all attachments as: .zip

Change History (26)

Changed 6 years ago by p-bro

Attachment: install_yelp.log added

Output from port -d install yelp

comment:1 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: dbevans removed
Owner: set to dbevans
Status: newassigned

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 6 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 6 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))

Last edited 6 years ago by jenstroeger (Jens Troeger) (previous) (diff)

comment:4 Changed 6 years ago by kencu (Ken)

see 54981 and 53911 and 54379 for other ports with this same issue, and how it was approached in those cases.

comment:5 Changed 6 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:6 Changed 5 years ago by kencu (Ken)

has duplicate 57635

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

Status: assignedaccepted

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)

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:11 Changed 4 years ago by kencu (Ken)

Still fails with yelp @3.36.0.

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 foundyelp @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 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 in reply to:  15 ; Changed 4 years ago by michaellass (Michael Lass)

Replying to iefdev:

Same issue here… I was just trying to update meld, but it errored on yelp. (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 in reply to:  18 ; 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 -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.

Thanks. I'll look at it, but meldis 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 in reply to:  19 Changed 4 years ago by michaellass (Michael Lass)

Replying to iefdev:

Thanks. I'll look at it, but meldis 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.

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 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 in reply to:  21 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:24 Changed 3 years ago by p-bro

Error persists on 10.15.7 (Catalina) and yelp @3.38.1

comment:25 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added
Note: See TracTickets for help on using tickets.