Solved Building nginx in a jail with ssl=base (without openssl port dependency)

Petr Fischer

Active Member

Reaction score: 7
Messages: 106

Hello, I am trying to build nginx from ports, but I don't want dependency to openssl from ports. I want "base" FreeBSD openssl.

Default nginx package has no dependency to external openssl package.
I am building in a jail.

I have this in make.conf:
Code:
WRKDIRPREFIX=           /var/ports
DISTDIR=                /var/ports/distfiles
PACKAGES=               /var/ports/packages
INDEXDIR=               /var/ports

DEFAULT_VERSIONS+=pgsql=9.5 ssl=base
When I call "make" in /usr/ports/www/nginx, this error occurs:
Code:
Dependency error: This port requires the OpenSSL library, which is part of
the FreeBSD crypto distribution, but not installed on your
machine. Please see the "OpenSSL" section in the handbook
(at "http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/openssl.html", for instance)
for instructions on how to obtain and install the FreeBSD
OpenSSL distribution.
*** Error code 1

Stop.
make[1]: stopped in /basejail/usr/ports/www/nginx
*** Error code 1

Stop.
make: stopped in /basejail/usr/ports/www/nginx
 

Beeblebrox

Aspiring Daemon

Reaction score: 147
Messages: 985

Is this a shell account or your own PC? Since you mention ezjail, I assume your own PC - so why on earth are you building apps within the jail? Think about it:
* You're filling the jail with useless compiling stuff
* ezjail critical folders are symlinks to read-only mount
* You have to re-build all dependent ports

Ever hear of # make package?
Ever read about ports-mgmt/poudriere?
Build the port(s) on host, then install them with pkg
# pkg -j <jail-name> install <port-name>
 
OP
OP
Petr Fischer

Petr Fischer

Active Member

Reaction score: 7
Messages: 106

What are you talking about?
I am building ports with "make" in port directory. I don't need poudiere.
I am buiding ports in a jail just because there is sometimes a ton of build dependencies and I simply don't want to install all build deps on my host!!! My host is a clean environment!!!
What the hell is wrong with building ports in a jail?
Yes, after "make", I am using "make package" and then distributing builded packages to many hosts.
I don't even want to build all dependnecies of port, I am installing port dependencies with pkg (in a jail) and then I build just given port (with tweaked config options for example).

Advantages:
- My host will be untouched by port compiling
- And yes, when I fill the jail with useless compiling stuff, I can just delete this jail and recreate it again, my host will be untouched by compiling and useless deps clutter

Everything is perfectly OK with this, man.

But there is some problem with detecting "openssl" - in a jail, I can't build nginx with "base" openssl (ssl=base make.conf option), I need to use "openssl" from package (ssl=openssl make.conf option). And I don't know why. Thats the only question.
 
OP
OP
Petr Fischer

Petr Fischer

Active Member

Reaction score: 7
Messages: 106

Not helpful at all. Poudiere also utilizes jails... If you know, why is port building under ezjail wrong, be specific and say why.
Reminder: topic is about "openssl dependency config".
 

SirDice

Administrator
Staff member
Administrator
Moderator

Reaction score: 6,971
Messages: 28,968

Apparently your jail is missing /usr/lib/libcrypto.so.
 
OP
OP
Petr Fischer

Petr Fischer

Active Member

Reaction score: 7
Messages: 106

That's it! Broken link to old libcrypto. Fixed. Everything is OK now. THANKS!
 
Top