# Firefox will not build because of pixman



## EmeraldBot (Nov 1, 2013)

I'm trying to build firefox 25 for my machine, but it fails to build because it is missing pixman-1.so.9:

```
===>  Installing for firefox-25.0,1
===>   firefox-25.0,1 depends on executable: zip - found
===>   firefox-25.0,1 depends on file: /usr/local/lib/alsa-lib/libasound_module_pcm_oss.so - found
===>   firefox-25.0,1 depends on executable: gcc46 - found
===>   firefox-25.0,1 depends on file: /usr/local/libdata/pkgconfig/sm.pc - found
===>   firefox-25.0,1 depends on file: /usr/local/libdata/pkgconfig/xt.pc - found
===>   firefox-25.0,1 depends on file: /usr/local/libdata/pkgconfig/xi.pc - found
===>   firefox-25.0,1 depends on file: /usr/local/libdata/pkgconfig/xext.pc - found
===>   firefox-25.0,1 depends on file: /usr/local/libdata/pkgconfig/x11.pc - found
===>   firefox-25.0,1 depends on file: /usr/local/libdata/pkgconfig/xinerama.pc - found
===>   firefox-25.0,1 depends on file: /usr/local/libdata/pkgconfig/ice.pc - found
===>   firefox-25.0,1 depends on file: /usr/local/libdata/pkgconfig/xproto.pc - found
===>   firefox-25.0,1 depends on package: gstreamer-plugins-good>=0.10.0 - found
===>   firefox-25.0,1 depends on package: gstreamer-ffmpeg>=0.10.0 - found
===>   firefox-25.0,1 depends on executable: update-desktop-database - found
===>   firefox-25.0,1 depends on shared library: libv4l2.so - found
===>   firefox-25.0,1 depends on shared library: libiconv.so.3 - found
===>   firefox-25.0,1 depends on shared library: libGL.so - found
===>   firefox-25.0,1 depends on shared library: cairo - found
===>   firefox-25.0,1 depends on shared library: event-2.0 - found
===>   firefox-25.0,1 depends on shared library: ffi - found
===>   firefox-25.0,1 depends on shared library: hunspell-1.3 - found
===>   firefox-25.0,1 depends on shared library: icui18n - found
===>   firefox-25.0,1 depends on shared library: jpeg - found
===>   firefox-25.0,1 depends on shared library: nspr4 - found
===>   firefox-25.0,1 depends on shared library: png15 - found
===>   firefox-25.0,1 depends on shared library: sqlite3 - found
===>   firefox-25.0,1 depends on shared library: vpx - found
===>   firefox-25.0,1 depends on shared library: dbus-glib-1.2 - found
===>   firefox-25.0,1 depends on shared library: notify.4 - found
===>   firefox-25.0,1 depends on shared library: startup-notification-1.0 - found
===>   firefox-25.0,1 depends on shared library: asound.2 - found
===>   firefox-25.0,1 depends on shared library: atk-1.0 - found
===>   firefox-25.0,1 depends on shared library: glib-2.0 - found
===>   firefox-25.0,1 depends on shared library: pcre - found
===>   firefox-25.0,1 depends on shared library: gtk-x11-2.0.0 - found
===>   firefox-25.0,1 depends on shared library: IDL-2.0 - found
===>   firefox-25.0,1 depends on shared library: pango-1.0 - found
gmake[1]: Entering directory `/usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd9.1/browser/installer'
OMNIJAR_NAME=omni.ja \
/usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd9.1/_virtualenv/bin/python ../../../toolkit/mozapps/installer/packager.py -DMOZ_GLUE_IN_PROGRAM -DNO_NSPR_10_SUPPORT -DAB_CD=en-US -DMOZ_APP_NAME=firefox -DPREF_DIR=defaults/preferences -DMOZ_ENABLE_GNOME_COMPONENT=1 -DMOZ_GTK=1 -DMOZ_NATIVE_NSPR=1 -DJAREXT= -DMOZ_CHILD_PROCESS_NAME=plugin-container -DMOZ_JSDEBUGGER -DNECKO_WIFI -DDLL_PREFIX=lib -DDLL_SUFFIX=.so -DBIN_SUFFIX= -DBINPATH=bin \
	--format omni \
	--removals ../../../browser/installer/removed-files.in \
	 \
	 \
	 \
	--optimizejars \
	 \
	package-manifest ../../dist ../../dist/firefox \
	
gmake[1]: Leaving directory `/usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd9.1/browser/installer'
*** [gecko-pre-install] Error code 2

Stop in /usr/ports/www/firefox.
*** [install] Error code 1

Stop in /usr/ports/www/firefox.
```
And here is the output of `uname -a`: \

```
FreeBSD alex-FreeBSD 9.1-RELEASE-p7 FreeBSD 9.1-RELEASE-p7 #0: Mon Sep  9 21:23:37 UTC
 2013     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386
```
I have built pixman, but it says version 0.30.2. Does anyone have a suggestion for how to get an older version of the library, or perhaps if I'm chasing after the wrong problem? Thanks!


----------



## wblock@ (Nov 1, 2013)

You're chasing the wrong problem.  Something else is looking for an old version of pixman.  This usually indicates that someone has not been following /usr/ports/UPDATING before upgrading or installing new ports.

Install sysutils/bsdadminscripts, then run `pkg_libchk` to find installed ports that depend on missing libraries.  Then rebuild those ports, then update Firefox.


----------



## EmeraldBot (Nov 1, 2013)

Thanks! I've run `pkg_libchk`, and attached it as a gz file because it is _huge_. I also got these statements:

```
pkg_info: corrupted record for package gnome-screensaver-2.30.2_3 (pkgdep line without argument), ignoring
pkg_info: corrupted record for package gnome2-2.32.1_4 (pkgdep line without argument), ignoring
pkg_info: corrupted record for package gnome2-2.32.1_4 (pkgdep line without argument), ignoring
```
Do they mean anything important?
 I know that Firefox has many dependencies, and it never finished, so are all these missing packages because of that? Sorry, still trying to wrap my head around the ports system. I know the fix is too recompile all ports that depend on it, but would it be possible to recompile only _installed ports_ that depend on it? It's pulling in many packages to compile such as GNOME 2 which is huge, and this machine is pretty weak.


----------



## wblock@ (Nov 1, 2013)

> I know the fix is too recompile all ports that depend on it, but would it be possible to recompile only installed ports that depend on it?



Those two are the same thing.  pkg_libchk only checks ports that are installed, and those are the only ones that need to be rebuilt--or _can_ be rebuilt.


----------



## rtwingfield (Nov 2, 2013)

Similar problem with /usr/local/lib/libpixman-1.so.9 and `startx` assoc/w /usr/ports/x11/xorg (see http://forums.freebsd.org/showthread.php?t=42470)

I've just run `pkg_libchk -q > to-be-rebuilt.2.txt` and (in my case) the only object listed is net-snmp-5.7.2_3

Run without the -q flag, the details are:
	
	



```
[INDENT]
net-snmp-5.7.2_3: /usr/local/bin/agentxtrap misses libperl.so
net-snmp-5.7.2_3: /usr/local/bin/agentxtrap misses libperl.so
net-snmp-5.7.2_3: /usr/local/bin/agentxtrap misses libperl.so
net-snmp-5.7.2_3: /usr/local/lib/libnetsnmpagent.so.30 misses libperl.so
net-snmp-5.7.2_3: /usr/local/lib/libnetsnmpmibs.so.30 misses libperl.so
net-snmp-5.7.2_3: /usr/local/lib/libnetsnmpmibs.so.30 misses libperl.so
net-snmp-5.7.2_3: /usr/local/lib/libnetsnmptrapd.so.30 misses libperl.so
net-snmp-5.7.2_3: /usr/local/lib/libnetsnmptrapd.so.30 misses libperl.so
net-snmp-5.7.2_3: /usr/local/lib/libnetsnmptrapd.so.30 misses libperl.so
net-snmp-5.7.2_3: /usr/local/sbin/snmpd misses libperl.so
net-snmp-5.7.2_3: /usr/local/sbin/snmpd misses libperl.so
net-snmp-5.7.2_3: /usr/local/sbin/snmpd misses libperl.so
net-snmp-5.7.2_3: /usr/local/sbin/snmptrapd misses libperl.so
net-snmp-5.7.2_3: /usr/local/sbin/snmptrapd misses libperl.so
net-snmp-5.7.2_3: /usr/local/sbin/snmptrapd misses libperl.so
net-snmp-5.7.2_3: /usr/local/sbin/snmptrapd misses libperl.so
```
[/INDENT]

The only things revealed by `pkg version -l "<"` is

```
en-freebsd-doc-39278,1             <
freeipmi-1.3.2                     <
```

. . .and yesterday, I updated freeipmi, evidenced as follows:

```
===>>> Creating a backup package for old version freeipmi-1.3.2
Creating package for freeipmi-1.3.2

===>   Registering installation for freeipmi-1.3.3
pkg-static: lstat(/usr/ports/sysutils/freeipmi/work/stage/var/log/freeipmi/): No such file or directory
Installing freeipmi-1.3.3... done
===>>> Delete freeipmi-1.3.2.tar.gz? y/n [n] y
===>>> Upgrade of freeipmi-1.3.2 to freeipmi-1.3.3 complete
```

This libpixman-1.so.9 scenario is not as simple as seems it should be, and is not unique to FireFox.


----------



## wblock@ (Nov 2, 2013)

Neither of those packages are installed here.  When rebuilding ports with missing libraries, it's important to do them all at once so portmaster can sort and rebuild them in the right order, in case one depends on another.

Beyond that, I don't know what to suggest.  Firefox built and ran here yesterday.  The new version built and runs today.


----------



## EmeraldBot (Nov 3, 2013)

*Thanks!*

After attempting to compile all ports that depend on pixman, I've given up, because there are dark and mysterious forces (or my inexperience and mismanagement ) at work, and every 1 out of 3 ports or so would fail to build for whatever reason, requiring me to look up a solution, and a few ports were spitting out errors about requiring an older version of this library and some wanted the new one. I've decided just to reinstall FreeBSD, which will give me a fresh start. Lessons learned - Never use packages and ports together, and *always* read /usr/ports/UPDATING. Thanks for the help, wblock@!


----------



## rtwingfield (Nov 3, 2013)

*Resolving the libpixman-1.so.30 vs. libpixman-1.so.9 conflict.*

In a nutshell, this scenario has resolved my problems with the libpixman-1.so.30 vs. libpixman-1.so.9 conflict.

# cd /usr/ports/tmp   [font="Arial"]_. . .my personal preference_[/font]
# pkg_libchk -q > pkg_libchk-v._n_.txt  [font="Arial"]_. . .I use an integer ([font="Courier New"]n[/font]) to designate before-and-after tests._[/font]
# portmaster `cat pkg_libchk-v._n_.txt`[font="Arial"]_. . .note back-ticks_[/font]​
I'm completing a writeup regarding the same, with thanks to Warren Block.


----------

