Having problems building dependencies (gobject-introspection) for i3wm

Howdy,

I'm building a test run for my next workstation, in which I'll be switching to using FreeBSD rather than Linux on my desktop. In the process, I'm giving a few of the newer tiling window managers a try. While attempting to build i3wm from ports, I had a failure on one of the dependencies, gobject-introspection.

I have ccache installed and I also installed GCC 4.8 (latest stable) from ports and had it in my make.conf. I commented out the use of GCC 4.8 thinking it may be breaking something, however I reach a stop error at the same point. It appears to be due to something tied to pthread, which was installed as a base dependency for other packages previously (I believe Perl).

Anybody have any suggestions for how I can fix this? If I rebuild pthread using some other parameters to resolve this, do I need to rebuild all packages which depend on it? Thanks in advance.

PS: I have the relevant information below (post character limit hit)
 
I found several others having the same issues when I was searching before asking the question, but they didn't get any response. The closest I've found to a guiding solution is at http://www.mailinglistarchive.com/html/freebsd-gnome@freebsd.org/2013-04/msg00010.html which suggests that PTH_CFLAGS are being set when not appropriate in the build process, but I'm not familiar with how make determines which flags to use in a specific port (i.e. what is the order of precedence for determining a set of flags to use as build-time). It's obvious these flags are necessary for some parts of building this package (gobject-introspection), but probably not for every piece of it.
 
Also,

I did the following procedure to try to determine if it was something being passed as part of the dependency build process:

Code:
cd /usr/ports/devel/gobject-introspection
make clean
make rmconfig
make config
make install clean

I received the same error, so it's specific to this port.
 
Well, I've solved the issue, but I'm not sure why the solution works. Can anybody shed a light on the difference between pth and pth-hard in ports? The solution, for those other curious who may find this is as follows:

Remove pth and install pth-hard. When I did the deinstall of pth, I got a list of packages depending on it, which need to be rebuilt.
Code:
# make deinstall
===>  Deinstalling for devel/pth
===>   Deinstalling pth-2.0.7
pkg_delete: package 'pth-2.0.7' is required by these other packages
and may not be deinstalled (but I'll delete it anyway):
cairo-1.10.2_5,2
gamin-0.1.10_5
gio-fam-backend-2.34.3
glib-2.34.3
python27-2.7.3_6
xcb-proto-1.7.1

The two big ones everybody will need to rebuild are glib and python27, I did glib first, then I rebuilt gio-fam, xcb-proto, cairo, gamin, and last I did python27.

Then afterwards I directly installed gobject-introspection through its respective port, which succeeded this time.

As I said above though, this doesn't really make sense to me. What specifically about pth-hard differs from pth, and if it's required for success, why would pth default as a depends instead of pth-hard, when both suit as dependencies for packages which rely on them?

Thanks.
 
Back
Top