# Why FEH has CURL dependency?



## rhish (Feb 7, 2014)

Does anyone know why `feh` has a `curl` dependency?

`feh` is an image viewer. 
`curl` is for retreiving url's. 

I can see how its used, but dont understand why its a dependency?

Im not saying "It shouldn't be a dependency!"
Im asking, trying to figure out, why its a dependency.

When installing from ports, I didnt get a Config prompt asking to build with or without support for `curl`.


----------



## jrm@ (Feb 7, 2014)

From the feh man page: 





> To view images from URLs such as http://, you need feh compiled with libcurl support (enabled by default).


----------



## rhish (Feb 7, 2014)

Yeah, but if you go to graphics/feh and run `make config` it says
`===> No options to configure.`

So, is it mandatory "support for"?
Or am I not realizing how to turn it off?
Im a novice user.


----------



## rhish (Feb 7, 2014)

The man also says "Compile-time switches: libcurl support enabled..."

There should be a switch then, to turn it off? or does that mean No, you cant turn it off?


----------



## jrm@ (Feb 7, 2014)

There is a switch for the feh build, but there aren't any options to configure for the FreeBSD port because the port creator didn't build them in.  If you really don't want the dependency on curl, you could contact the maintainer.  He might be able to add that configure option.  You could also try editing the port yourself.  In that case, you will have to edit the Makefile to remove the the dependency on curl.  You will also have to ensure the actual build doesn't pull in curl.  From the documentation on the github project page it says to make it with `make curl=0`.  Substitute `gmake` for `make`.  The porter's handbook is required reading if you're going to start working with ports.


----------



## kpa (Feb 7, 2014)

The port has no options to configure, this can witnessed by reading the Makefile of the port. Looks like the libcurl support is mandatory.


----------



## rhish (Feb 7, 2014)

Yeah, looks like it.

Is there a way to differentiate between things the port Needs, and, Optional things to install with a port?

I was thinking "Dependency" means the port "Needs" it to function correctly.
Whereas some config options for a port could be "optionally" installed?

What terminology is used, to differentiate "things the port Needs, to function correctly" versus "Things you can Optionally build support for"?


----------



## rhish (Feb 7, 2014)

I think I found what I'm looking for, thanks JRM for the Porters Handbook reference.

http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-depend.html


----------



## kpa (Feb 7, 2014)

Some times the dependency can be made optional by just adding a suitable option to the port. Some times it's impossible because the upstream author of the software has decided otherwise. From the looks of it this could be of the first kind.


----------

