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

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 :
Code:
/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
 
Last edited by a moderator:
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.
 
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?)

Code:
/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?
 
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'.
 
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.
 
Back
Top