# Ports - Quality Control



## Niatross (Feb 16, 2013)

I am ignorant on the quality control of the ports released in the FreeBSD Port Collection.

Take for instance "editors/libreoffice. I tried to compile this port with clang 3.0. I received an error and it wouldn't compile. Switched over to gcc 4.6. Compiled the same port and it compiled just fine.

My question is this:

Why doesn't the FreeBSD Ports team test every port with both compilers (clang and gcc)? Why doesn't the FreeBSD ports team make sure the clang and gcc (base system and port) compilers work with no errors when building a port in the FreeBSD Ports Collection?

BTW: I am currently using FreeeBSD 9.0-RELEASE-p4


----------



## fonz (Feb 16, 2013)

Niatross said:
			
		

> I tried to compile this port with clang 3.0. I received an error and it wouldn't compile. Switched over to gcc 4.6. Compiled the same port and it compiled just fine.
> [snip]
> BTW: I am currently using FreeeBSD 9.0-RELEASE-p4


The standard compiler for 9.X is still gcc(1). Trying to use a non-standard compiler is at your own risk.


----------



## Niatross (Feb 16, 2013)

Alright, let's just forget about the base system clang 3.0 and we'll just talk about gcc.

There are ports out there that will only compile with base system gcc 4.2.1 and then there are other ports that refuse to compile with the base system gcc 4.2.1... and require 4.6.

Explain that one to me.

Nothing is consistent when it comes to compiling ports in the FreeBSD port collection.

You can get a compile error on 4.2.1 and use 4.6 and a port will compile just fine.
You can get a compile error on 4.6 and use 4.2.1 and a port will compile just fine.

It's almost as if the individual that is adding the port to the tree only test the compiler that they are currently using on their system and they don't test other versions of gcc. It's never consistent.


----------



## Anonymous (Feb 16, 2013)

Niatross said:
			
		

> ... It's never consistent.



Maybe this has to do something with your expectations.

My perception on how things work is as follows:

If there are no special indications, then ports should build with gcc 4.2.1, if a given port does not build with it, then it is an error, and a PR should be filed, so that the maintainer can correct it.
.
If a port needs gcc 4.6 or has other special requirements for building, then these tools need to be listed in the $BUILD_DEPENDS variable of the Makefile of the respective port. If the port does not build with these indicated tools then it is an error, and a PR should be filed, so that the maintainer can correct it.
.
If a port does not build with the WikiGeeks C-- compiler and tool chain, then one may want to kindly ask the maintainer to consider support for C-- in a private message, explaining to him the strategical benefits of such a support.

Expecting this, and not more, I had very little problems with port installations, as a matter of fact only one in the past three years. I wrote a PR, and the next day it was resolved. IMHO, commercial support and QC could not be better.


----------



## wblock@ (Feb 16, 2013)

Niatross said:
			
		

> My question is this:
> 
> Why doesn't the FreeBSD Ports team test every port with both compilers (clang and gcc)?



They try.  Some infrastructure is just coming back after the security incident.  There is also a factorial combination of possibilities between all the compilers, all the versions of the operating system, 32- or 64-bit, and machine architectures.  And of course the biggest ports are the hardest ones to test because they take so long to build.



> Why doesn't the FreeBSD ports team make sure the clang and gcc (base system and port) compilers work with no errors when building a port in the FreeBSD Ports Collection?



See above.  Also remember that the "Ports team" is a loosely-affiliated group of volunteers around the world, many with limited time and limited access to all the different environments in which a port could be built.


----------

