# ports doesn’t find installed dependencies anymore



## Vincent Habchi (Aug 31, 2018)

Hi folks,

My FreeBSD server has been going squirrelly (or rather headstrong) for two or three days now. When I try to compile a new port, it won’t recognize shared library installed dependencies, try to install them again, and fail because they are already installed.

Case in point:


```
cd /usr/ports/security/strongswan/
sudo make install
[…]
===>   strongswan-5.6.3 depends on package: pkgconf>=1.3.0_1 - found
===>   strongswan-5.6.3 depends on shared library: libcurl.so - not found
===>  License MIT accepted by the user
===>   curl-7.61.0_1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by curl-7.61.0_1 for building
===>  Extracting for curl-7.61.0_1
=> SHA256 Checksum OK for curl-7.61.0.tar.xz.
===>  Patching for curl-7.61.0_1
===>  Applying FreeBSD patches for curl-7.61.0_1
===>   curl-7.61.0_1 depends on executable: gmake - found
===>   curl-7.61.0_1 depends on package: pkgconf>=1.3.0_1 - found
===>   curl-7.61.0_1 depends on package: perl5>=5.26<5.27 - found
===>   curl-7.61.0_1 depends on shared library: libbrotlidec.so - not found
===>  License MIT accepted by the user
===>   brotli-1.0.5_1,1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by brotli-1.0.5_1,1 for building
===>  Extracting for brotli-1.0.5_1,1
[…]
===>  Installing for brotli-1.0.5_1,1
===>  Checking if brotli already installed
===>   brotli-1.0.5_1,1 is already installed
*** Error code 1

Stop.
```
But:

```
Server > pkg info | grep curl
curl-7.61.0_1                  Command line tool and library for transferring data with URLs

Server > ls -l /usr/local/lib/libcurl.*
-rw-r--r--  1 root  wheel  1026832 Aug 29 09:48 /usr/local/lib/libcurl.a
lrwxr-xr-x  1 root  wheel       16 Aug 29 09:48 /usr/local/lib/libcurl.so -> libcurl.so.4.5.0
lrwxr-xr-x  1 root  wheel       16 Aug 29 09:48 /usr/local/lib/libcurl.so.4 -> libcurl.so.4.5.0
-rwxr-xr-x  1 root  wheel   492464 Aug 29 09:48 /usr/local/lib/libcurl.so.4.5.0

Server > ls -l /usr/local/lib/libbrotlidec.*
-rw-r--r--  1 root  wheel  59432 Aug 29 09:34 /usr/local/lib/libbrotlidec.a
lrwxr-xr-x  1 root  wheel     21 Aug 29 09:34 /usr/local/lib/libbrotlidec.so -> libbrotlidec.so.1.0.5
lrwxr-xr-x  1 root  wheel     21 Aug 29 09:34 /usr/local/lib/libbrotlidec.so.1 -> libbrotlidec.so.1.0.5
-rwxr-xr-x  1 root  wheel  50552 Aug 29 09:34 /usr/local/lib/libbrotlidec.so.1.0.5
```

As you can see, detecting binary or package dependencies still works, but librairies fails. Any idea what could’ve gone wrong?

Thanks a bunch,
Vincent


----------



## SirDice (Aug 31, 2018)

BROTLI is off by default on ftp/curl. So the simplest solution is to turn it off.


----------



## Vincent Habchi (Aug 31, 2018)

SirDice said:


> BROTLI is off by default on ftp/curl. So the simplest solution is to turn it off.



Sure, but that doesn’t solve my quandary, as any library dependency used by any port fails. It’s a general problem.


----------



## ShelLuser (Aug 31, 2018)

Also: your examples don't prove anything. What does: `pkg which /usr/local/lib/libbrotlidec.so.1.0.5` tell you?

And of course the most important aspect of them all: you're only installing through building ports, and you never used `# pkg install ...` somewhere along the way? Because that can also explain a thing or two here.


----------



## Vincent Habchi (Aug 31, 2018)

ShelLuser said:


> Also: your examples don't prove anything. What does: `pkg which /usr/local/lib/libbrotlidec.so.1.0.5` tell you?
> 
> And of course the most important aspect of them all: you're only installing through building ports, and you never used `# pkg install ...` somewhere along the way? Because that can also explain a thing or two here.




```
Server > pkg which /usr/local/lib/libbrotlidec.so.1.0.5

/usr/local/lib/libbrotlidec.so.1.0.5 was installed by package brotli-1.0.5_1,1
```

I (almost) never use pkg, I use portmaster instead to update. 

Another example with lighttpd:


```
=> lighttpd-1.4.50.tar.xz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.50.tar.xz
lighttpd-1.4.50.tar.xz                        100% of  701 kB 4490 kBps 00m00s
===> Fetching all distfiles required by lighttpd-1.4.50 for building
===>  Extracting for lighttpd-1.4.50
=> SHA256 Checksum OK for lighttpd-1.4.50.tar.xz.
===>  Patching for lighttpd-1.4.50
===>   lighttpd-1.4.50 depends on package: autoconf>=2.69 - found
===>   lighttpd-1.4.50 depends on package: automake>=1.16.1 - found
===>   lighttpd-1.4.50 depends on executable: libtoolize - found
===>   lighttpd-1.4.50 depends on executable: gmake - found
===>   lighttpd-1.4.50 depends on package: pkgconf>=1.3.0_1 - found
===>   lighttpd-1.4.50 depends on shared library: libpcre.so - not found
[…]
===>  Installing for pcre-8.42
===>  Checking if pcre already installed
===>   pcre-8.42 is already installed
*** Error code 1
Server > pkg which /usr/local/lib/libpcre.so
/usr/local/lib/libpcre.so was installed by package pcre-8.42
```

Nonplussing, no?


----------

