# Skype wants to build with incomaptible NVIDIA driver



## blackout24 (Mar 17, 2013)

Hello,

I am running:

```
FreeBSD freebsd 9.1-STABLE FreeBSD 9.1-STABLE #0 r248326: Fri Mar 15 18:28:46 CET 2013     root@freebsd:/usr/obj/usr/src/sys/GENERIC  amd64
```

I installed the latest available NVIDIA driver for my graphics card 304.64.

Now I wanted to install Skype and it asked me if I want to build it with NVIDIA libGL support.
Since I have it installed I enabled it. portmaster went on checking for configs with the dependencies and all of a sudden the curses based configuration for nvidia 310.32 popped up. I aborted the whole process and [CMD=""]cd[/CMD] to /usr/ports/net-im/skype and ran [CMD=""]make config[/CMD] end deselected "Build with NVIDIA support". portmaster presented me with every dependency needed, this time without x11-drivers/nvidia-driver-310. Instead I guess it uses graphics/linux-dri but fails to install it.


```
===>   Registering installation for linux-dri-7.4_1 as automatic
Installing linux-dri-7.4_1...pkg: linux-dri-7.4_1 conflicts with nvidia-driver-304.64 (installs files into the same place).  Problematic file: /compat/linux/usr/lib/libGL.so.1
*** [fake-pkg] Error code 70

Stop in /usr/ports/graphics/linux-dri74.

===>>> Installation of linux-dri-7.4_1 (graphics/linux-dri74) failed
===>>> Aborting update
```

Why can't it simply use my existing nvidia-driver as dependency.


----------



## cpm@ (Mar 19, 2013)

x11/nvidia-driver port overwrites the libGL.so.1 installed by graphics/linux-dri74, and vice versa. Current error will be fixed shortly, as reported here.


----------



## blackout24 (Mar 19, 2013)

Thank you. But that doesn't explain why it wants to build with x11/nvidia-driver-310 when x11/nvidia-driver-304 is installed. Doesn't FreeBSD have something like placeholders? 

On any Linux distribution if something depends on java-runtime it doesn't matter if you install jre7-openjdk or jre. They are all the same thing (java-runtime). Hardcoding dependencies kind of misses the point of having legacy branches when programs force you to install incompatible driver versions for no good reason.


----------



## cpm@ (Mar 19, 2013)

Well, note that nvidia-driver port version required to build, is declared in /usr/ports/net-im/skype/Makefile as follow:

```
RUN_DEPENDS+=   ${LINUXBASE}/usr/lib/libGL.so.1:${PORTSDIR}/x11/nvidia-driver
```


----------



## blackout24 (Mar 19, 2013)

I still don't see why this means it I have to install an unsupported driver after which I won't even be able to boot into X anymore...
I would appreciate if you could elaborate a bit more.


----------



## cpm@ (Mar 19, 2013)

You can always build the port against DISTVERSION=xxx.yy of your choice, adding following lines in your make.conf

```
# nvidia-driver 
.if ${.CURDIR:M/usr/ports/x11/nvidia-driver} 
DISTVERSION=            304.84
.endif 

.if ${.CURDIR:M/usr/ports/x11/nvidia-xsetting*} 
DISTVERSION=            304.84
.endif 

.if ${.CURDIR:M/usr/ports/x11/nvidia-config*} 
DISTVERSION=            304.84
.endif
```

To check versions availables, click http://www.nvidia.com/object/unix.html.


----------



## kpa (Mar 19, 2013)

When you build something from ports(7) the dependencies are set to what the Makefile of the port specificies. Unfortunately there are no placeholders or "meta" ports for every single feature there is so most of the dependencies are hard coded to specific versions in the compiled packages.


----------



## cpm@ (Mar 20, 2013)

Try this workaround: http://lists.freebsd.org/pipermail/freebsd-emulation/2010-September/008086.html.


----------

