# Dependency loop detected



## tuaris (Dec 6, 2018)

While running ports-mgmt/poudriere I am running into a dependency loop.  I don't explicitly list this packages in my list of packages, so they are getting pulled in as dependencies.


```
Error: Dependency loop detected:
These packages depend on each other: cmake-3.13.1 curl-7.62.0 libnghttp2-1.35.0 llvm60-6.0.1_3
```

How would I begin to troubleshoot this issue?


----------



## ShelLuser (Dec 6, 2018)

I don't use Poudriere myself but I do wonder if this isn't a false positive (not sure of course). See, I also have all those ports installed and I never noticed any issues:


```
peter@zefiris:/home/peter $ pkg info -dx cmake-3 curl-7 libnghttp llvm60
cmake-3.13.1:
    expat-2.2.6_1
    rhash-1.3.5
    curl-7.62.0
    libuv-1.24.0
    jsoncpp-1.8.1_4
    libarchive-3.3.3,1
curl-7.62.0:
    libnghttp2-1.35.0
    openssl-1.0.2q,1
    heimdal-7.5.0_3
    ca_root_nss-3.40.1
libnghttp2-1.35.0:
llvm60-6.0.1_3:
    libxml2-2.9.7
    python27-2.7.15
    perl5-5.26.2_2
    libedit-3.1.20170329_2,1
```
So I'd start with this command, check the actual dependencies. Or `make all-depends-list` within the port directory. Also be sure to check build options for possible issues.


----------



## SirDice (Dec 6, 2018)

You can create loops if you pick the wrong options on one or more of those ports. So, reset the options back to default and see if you still have a dependency loop. This isn't specific to Poudriere, it can happen using plain ports too.


----------



## tuaris (Dec 6, 2018)

There is just one port on that dependencies list that is using a custom option:


```
ca_root_nss_UNSET+=ETCSYMLINK
```

I do have custom options setup for several other ports so it must be one of those creating the loop.  Is trial and error the way to go?  (go through each one of about 100 lines and disable each one by one).


----------



## tuaris (Dec 6, 2018)

I removed all custom options from the make.conf file I'm using to build the pkg repo and the same error occurred.  So it seems there is a package with it's default options that causing the problem.


----------



## SirDice (Dec 6, 2018)

tuaris said:


> I removed all custom options from the make.conf file I'm using to build the pkg repo and the same error occurred.


No, I meant the port options. You know, those blueish option screens that allow you to enable/disable a port's features, i.e. `make config`. Look in /usr/local/etc/poudriere.d, look in the saved option directory. If all else fails remove the whole option directory and re-run `poudriere options {....}`.


tuaris said:


> So it seems there is a package with it's default options that causing the problem.


All four mentioned ports build without issue here. No loops.


----------

