# Having problems building dependencies (gobject-introspection) for i3wm



## Totaledcow (Apr 25, 2013)

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)


----------



## DutchDaemon (Apr 25, 2013)

Use pastebin.com for lots of output.


----------



## Totaledcow (Apr 25, 2013)

Couldn't figure out how to edit my post above (usually is pretty simple, but can't seem to find the option?), so here's the link to the pastebin output with relevant information (`uname -a`, make.conf, etc)

http://pastebin.com/1TrNw6wf


----------



## Totaledcow (Apr 25, 2013)

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.


----------



## Totaledcow (Apr 25, 2013)

Also,

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


```
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.


----------



## Totaledcow (Apr 25, 2013)

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.

```
# 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.


----------



## jozze (Apr 29, 2013)

Next time, you can just use ports-mgmt/portupgrade or ports-mgmt/portmaster, which have certain flags to try installing stuff by first recompiling all the dependencies, changing the configuration flags and pretty much all those ninja things you'd expect to be there.


----------

