# Ports "make install" works fine, but synth build fails



## ruizander (May 21, 2018)

Hello all! I've just installed FreeBSD 11.2-PRERELEASE, and I'm learning to use synth...

So, after a `portsnap fetch update`, I am trying to build firefox 60.0.1 with sndio. Then I would do a simple "make config", enable sndio option and disable alsa, jack and pulseaudio. And, indeed, if I "make install" this works perfectly fine - and the browser I'm using now and writing these lines was build this way!

But as I want to use synth and did a "synth build www/firefox", the process simply could not build firefox and I could see a serie of final errors on /var/log/synth/www___firefox.log :

```
/usr/bin/ld: warning: libssl3.so, needed by ../../toolkit/library/libxul.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libsmime3.so, needed by ../../toolkit/library/libxul.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libnss3.so, needed by ../../toolkit/library/libxul.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libnssutil3.so, needed by ../../toolkit/library/libxul.so, not found (try using -rpath or -rpath-link)
../../toolkit/library/libxul.so: undefined reference to `PK11_CheckUserPassword@NSS_3.2'
../../toolkit/library/libxul.so: undefined reference to `PK11_GetAllTokens@NSS_3.2'
../../toolkit/library/libxul.so: undefined reference to `CERT_FindCertIssuer@NSS_3.3'
../../toolkit/library/libxul.so: undefined reference to `PK11_SignatureLen@NSS_3.2'
../../toolkit/library/libxul.so: undefined reference to `SSL_ClearSessionCache@NSS_3.2'
../../toolkit/library/libxul.so: undefined reference to `PK11_CreateGenericObject@NSS_3.12'
../../toolkit/library/libxul.so: undefined reference to `NSS_CMSContentInfo_GetContent@NSS_3.2'
../../toolkit/library/libxul.so: undefined reference to `CERT_FindCertByIssuerAndSN@NSS_3.2'
../../toolkit/library/libxul.so: undefined reference to `SEC_SignData@NSS_3.2'
```
So, my question is: why synth was not able to build this port and a simple "make install" did it ok? Does synth use other independent ways to build the package besides the Makefile existent inside www/firefox? I can see the "libss3", "libsmime3" and "linbss3" warnings, but I was wandering how the ordinary process "make install" could resolve these without errors?

Is there something I could do to help find the error and fix it?

thanks in advance,
Ruizander


----------



## PacketMan (May 22, 2018)

Did you let ports-mgmt/synth  build the complete repository of all the ports installed by doing a `synth upgrade-system` first? Actually on a brand new fresh install system the very first port I install is Synth. Then I do this, although I believe only the upgrade command is needed.

`synth status
synth prepare-system
synth upgrade-system`

The above will cause Synth to build the complete repository of all the ports already installed on the system, which will be minimal.

Then after that is done I will use Synth to install the programs I require:
`portsnap fetch update
synth install /usr/home/wingnut/programs-list`

Where programs-list is a simple text file that lists the programs you want to install.

Try that first.


----------



## ruizander (May 27, 2018)

After doing these steps the error remains exactly the same. Seems that, when synth is building firefox, it does not link to dynamic libraries (perhaps the environment created by synth can't find them?)


```
/usr/bin/ld: warning: libssl3.so, needed by ../../toolkit/library/libxul.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libsmime3.so, needed by ../../toolkit/library/libxul.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libnss3.so, needed by ../../toolkit/library/libxul.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libnssutil3.so, needed by ../../toolkit/library/libxul.so, not found (try using -rpath or -rpath-link)
```

how can I follow the hint "try using -rpath os rpath-link"? Is there some special config synth uses besides the Makefile?


----------



## PacketMan (May 28, 2018)

Did you try building using Synth, and with using the default options, just to see what would happen.  There has been a few cases of Synth not being able to build a package, but interestingly enough (I understand) each time it has been shown to be a ports issue.  I'm actually running into a similiat issue with net-p2p/rslsync  (it builds find with `make install clean` yet fails to build/install using Synth) and am trying to troubleshoot it, just havn't had much time. Only difference is 'rslsync' doesn't have any options to configure.

Also consider deleting all of the package in the Synth repository folder (/var/synth/live_packages/All/ and try running Synth with configuration item [N] Fetch prebuilt packages set to "false".   I usually have mine set to "true" but in other threads it has been asked to try it set to "no'.


----------



## free-and-bsd (Aug 17, 2018)

I'm having the same problem now. Not only www/firefox, but also devel/gvfs, graphic/poppler  -- all over the same files as the OP. And it's 11.2 now.


----------



## free-and-bsd (Aug 21, 2018)

OK, there is a bug report on that. Recommends to update Synth to the latest version, and that fixed it.


----------



## ShelLuser (Aug 21, 2018)

Well, this is why I don't rely on 3rd party solutions for building but prefer to stick with vanilla commands  Although it might not automate everything you always remain in full control.


----------

