# Compiling PhantomJS on Shared Host with FreeBSD 9.1



## Teno (Oct 22, 2018)

Hi,

I'm trying to build PhantomJS on a shared host which uses FreeBSD 9.1, without an admin privilege.  I followed this instruction and build failed when typing `python build.py` with the following error.


```
Creating qmake...
.........................Done.
Running configuration tests...
 Turn on verbose messaging (-v) to /home/{user name}/www/tests/phantomjs/src/qt/qtbase/configure to see the final report.
 If you believe this message is in error you may use the fontinue
 switch (-continue) to /home/{user name}/www/tests/phantomjs/src/qt/qtbase/configure to continue.
 
ERROR: Failed to build PhantomJS! Congiration of Qt Base failed.
```

With this information, I tried, 

```
% git submodule foreach git clean -ddfx
% python build.py --qt-config "-I /usr/local/include/ -L /usr/local/lib/"
... very long outputs ...
/local/lib/ -I../../include -I../../include/QtCore -I../../include/QtCore/5.5.1 -I../../include/QtCore/5.5.1/QtCore -Iglobal -I../3rdparty/pcre -I../3rdparty/harfbuzz/src -I../3rdparty/md5 -I../3rdparty/md4 -I../3rdparty/sha3 -I../3rdparty/forkfd -I.moc -I/usr/local/include -I../../mkspecs/freebsd-g++ -o .obj/forkfd_qt.o io/forkfd_qt.cpp
g++ -c -include .pch/Qt5Core -pipe -O3 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -pthread -D_THREAD_SAFE -DQT_NO_MTDEV -DQT_NO_LIBUDEV -DQT_NO_EVDEV -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DQT_NO_GRAPHICSVIEW -DQT_NO_GRAPHICSEFFECT -DQT_NO_STYLESHEET -DQT_NO_STYLE_CDE -DQT_NO_STYLE_CLEANLOOKS -DQT_NO_STYLE_MOTIF -DQT_NO_STYLE_PLASTIQUE -DQT_NO_PRINTPREVIEWDIALOG -DQT_NO_USING_NAMESPACE -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_USE_ICU -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -I. -I../3rdparty/zlib -I\ /usr/local/include/\ -L\ /usr/local/lib/ -I../../include -I../../include/QtCore -I../../include/QtCore/5.5.1 -I../../include/QtCore/5.5.1/QtCore -Iglobal -I../3rdparty/pcre -I../3rdparty/harfbuzz/src -I../3rdparty/md5 -I../3rdparty/md4 -I../3rdparty/sha3 -I../3rdparty/forkfd -I.moc -I/usr/local/include -I../../mkspecs/freebsd-g++ -o .obj/qstandardpaths_unix.o io/qstandardpaths_unix.cpp
In file included from io/forkfd_qt.cpp:80:
io/../../3rdparty/forkfd/forkfd.c: In function 'int create_pipe(int*, int)':
io/../../3rdparty/forkfd/forkfd.c:474: error: 'pipe2' was not declared in this scope
*** [.obj/forkfd_qt.o] Error code 1
1 error
*** [sub-corelib-make_first] Error code 2
1 error
*** [sub-src-make_first] Error code 2
1 error

ERROR: Failed to build PhantomJS! Building Qt Base failed.
```

Does anybody know what this means and what to try?

As side notes,

```
% python --version
Python 2.7.6
```


```
% pkg
The package management tool is not yet installed on your system.
The mechanism for doing this is not secure on FreeBSD 9.1. To securely install
pkg(8), use ports from a portsnap checkout:
  # portsnap fetch extract
  # make -C /usr/ports/ports-mgmt/pkg install clean
Do you still want to fetch and install it now? [y/N]:
```


```
% uname -a 
FreeBSD {host name} 9.1-RELEASE-p24 FreeBSD 9.4-RELEASE-p24 #0: {date} {host name} /usr/obj/usr/src/sys/{some name} amd64
```

I could make it possible for this loged-in user to use the git command by doing the following and editing .cshrc file to add the path. So I suppose it is possible to make a binary even for a non-privileged user. 

```
% wget https://github.com/git/git/archive/v2.19.1.tar.gz
% tar xjvf v2.8.0-rc4.tar.gz
% cd git-2.8.0-rc4/
% gmake configure
% ./configure --prefix=$HOME/local
% gmake all install
```


----------



## SirDice (Oct 22, 2018)

FreeBSD 9.1 has been End-of-Life since December 2014 and is not supported any more. Upgrade to a supported version.

Topics about unsupported FreeBSD versions
https://www.freebsd.org/security/unsupported.html


----------

