ports/142149: Same as: misc/133957: /usr/ports/security/gnome-keyring fails to build

Ronald F.Guilmette rfg at tristatelogic.com
Tue Dec 29 23:30:06 UTC 2009

>Number:         142149
>Category:       ports
>Synopsis:       Same as: misc/133957: /usr/ports/security/gnome-keyring fails to build
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Dec 29 23:30:05 UTC 2009
>Originator:     Ronald F. Guilmette
>Release:        FreeBSD 7.0-RELEASE i386
Infinite Monkeys & Co.
System: FreeBSD segfault.tristatelogic.com 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Tue Aug 5 02:38:40 PDT 2008 root at segfault.monkeys.com:/usr/src/sys/i386/compile/rfg20080805 i386

	This is essentially the exact same bug as misc/133957.

	I also got the exact same errors as shown in that bugreport when
	trying to build gnome-keyring-2.28.2 using portupgrade.

	Please note that misc/133957 was closed by request of the original
	submitter, however that was only because he managed to get
	gnome-keyring to build by using portmaster rather than portupgrade.
	However this is most definitely NOT a solution, and it only shows
	that the original submitter didn't really understand the problem.
	(Neither do I, entirely, but I _am_ quite completely sure that it
	_is_ (still) a problem.)

	Evidently, the file gcr/gcr-importer.h contains a number of function
	declarations that have parameters whose types are defined _only_
	when one first includes the <gio/gio.h> file (which is a part of
	the "glib" package).  I have the (current) port for glib-2.22.3
	installed on my system, but apparently that is not enough to insure
	that <gio/gio.h> will be properly #included prior to the function
	declarations within the gcr/gcr-importer.h file.

	I have no idea why other people aren't seeing this exact same problem,
	but I put it down to some sort of version skew relating to the exact
	set of packages I have installed.  Still, this problem _should_ be
	fixed so that other people similarly situated will not also come to
	grief when trying to build gnome-keyring-2.28.2 (or subsequent).


	portupgrade gnome-keyring

	or alternatively:

	cd /usr/ports/security/gnome-keyring; make

	Note:  Obviously, for a lot of people with different sets of ports
	installed, the above commands will not reproduce the problem.  However,
	if you cannot reproduce this bug on your own system, then please DO
	(1) make a "make" log of _your_ build of gnome-keyring-2.28.2 and
	(2) chop out just the command that compiles gcr-certificate.c, and
	(3) put that in a file preceded by #!/bin/sh and with "-c" changed
	to "-E" (to generate preprocessor output) and then (4) execute the
	resulting shell script and save the stdout output to a file.  When
	you have that file, please e-mail it to me so that I can maybe see
	why/how YOU are getting <gio/gio.h> into the compilation stream
	prior to gcr/gcr-importer.h (whereas I am definitely NOT getting it...
	unless I use the patch provided below).


	The following trivial patch worked for me.  After applying this,
	gnome-keyring-2.28.2 built and installed without any significant

	NOTE:  I _do not_ claim that this is in any sense either the "best"
	or the "most correct" fix for this bug.  I suspect that only the
	primary gnome-keyring developer/maintainer can make a determination
	of how best to resolve this bug.  All I do know is that this works,
	and it is an utterly benign workaround (i.e. causes no harm) and can
	be useful until such time as a proper fix is developed.

*** gnome-keyring-2.28.2/gcr/gcr.h-	Mon Nov  9 18:01:21 2009
--- gnome-keyring-2.28.2/gcr/gcr.h	Tue Dec 29 14:44:11 2009
*** 24,27 ****
--- 24,28 ----
  #include <glib.h>
+ #include <gio/gio.h>
  #include "gcr-certificate.h"

More information about the freebsd-ports-bugs mailing list