FreeBSD 10.x support

rootbsd

Verified User
Joined
Sep 25, 2008
Messages
29
Hello,

FreeBSD 10.0-RELEASE is out and is quite popular now with lots of new features.

We're available to test DirectAdmin installs and such, but didn't see it as an option yet for OS in licensing system.
 
Because it hasnt been tested yet. Give it more time.
 
Started development on it.

First impressions.. they've changed a huge amount in it.. this may take longer than expected.
1) They've dropped pkg_add, replaced with "pkg".. so we'll need to re-learn how to create packages and re-do our installer (probably not too far off of the old method).
2) They've dropped gcc/g++ due to GPL issues, and replaced with "clang". Things compile differently now, extra hoops to jump through.
3) Dropped bind for ldns, not familiar with it. Likely still able to install it from ports, or via "pkg" (we have no plans to stop using bind)

I've just scratched the surface, not fully versed on it yet.
But have basically hit roadblocks at nearly every step thus far, as the old ways are not setup for it.
This will be a very challenging OS for us to support due the large number of changes.
More understanding in the new few weeks will likely give us a clearer picture as to what it will look like when finished :)

John
 
1) They've dropped pkg_add, replaced with "pkg".. so we'll need to re-learn how to create packages and re-do our installer (probably not too far off of the old method).
That's actually great news as the current setup script messes the ports database for people who have migrated to PKG NG.
This would also be a great opportunity to maybe have a custombuild configurator which would let the user decide whether CB will compile the services or if they're available from ports, before installing DA.

2) They've dropped gcc/g++ due to GPL issues, and replaced with "clang". Things compile differently now, extra hoops to jump through.
Maybe you could make lang/gcc48 a requirement? Clang is not a 100% compatible with ports.

EDIT: This would also force CB to finally be compatible with gcc from ports by calling the proper gcc and cflags instead of using the ones from base which are outdated and conservative.

3) Dropped bind for ldns, not familiar with it. Likely still able to install it from ports, or via "pkg" (we have no plans to stop using bind)
Code:
# cd /usr/ports/dns/bind99/ && make install clean
or
Code:
# portmaster dns/bind99
or if you really want to avoid compilation
Code:
# pkg install bind99
 
Last edited:
Use CLANG

Please use CLang and not gcc 4.8.

Clang is preferred because is used to build freebsd base and ports. I mean a FreeBSD admin (using 10.x) would rather prefer clang because from now on FreeBSD ports will work with Clang and even if are still some ports that cannot build right now with clang, in the near future they won't work with gcc.

Regarding bind, you can still use it, nobody care if is from base or port. It will be like the other apps that are from ports like mysql or apache.
 
Please use CLang and not gcc 4.8.

Clang is preferred because is used to build freebsd base and ports. I mean a FreeBSD admin (using 10.x) would rather prefer clang because from now on FreeBSD ports will work with Clang and even if are still some ports that cannot build right now with clang, in the near future they won't work with gcc.

Regarding bind, you can still use it, nobody care if is from base or port. It will be like the other apps that are from ports like mysql or apache.
Unless Clang is a 100% compatible, it's totally unnecessary for DA to switch. It's just more work for nothing.
Ports will always compile using GCC. GCC is not going anywhere as that's what Linux distros use and that's what most libraries are developed on. Some FreeBSD patches in the future might only provide platform adjustment using clang specific options, but that should be easily fixable.
 
why CLANG

Unless Clang is a 100% compatible, it's totally unnecessary for DA to switch. It's just more work for nothing.
Ports will always compile using GCC. GCC is not going anywhere as that's what Linux distros use and that's what most libraries are developed on. Some FreeBSD patches in the future might only provide platform adjustment using clang specific options, but that should be easily fixable.

As you might (or might not) notice, I am talking about FreeBSD 10.x.

Let me explain. FreeBSD 10.x has CLANG/LLVM as default compiler. So there's no switch. There is by default. If I install a minimal FreeBSD 10.x server then I have CLANG already installed. On that I would like to install DirectAdmin and maybe rebuild DirectAdmin Packages from source (using CLANG).

The switch you are talking about would be to use GCC (which is not default). And then what GCC you will use: 4.2.x (which is used in FreeBSD 9.x series) and which yeld poor performance than GCC 4.8.x (which is only available from ports but not installed default because of license issues).

So, many of us will have CLANG on our fresh installed FreeBSD 10.x.

Do you think by switching to GCC 4.8.x would make FreeBSD's ports more compatible since CLANG is default compiler under FreeBSD 10.x?

Or should GCC 4.2.x be used, which is slower and older? (The ports that took me three days to compile using FreeBSD 9.x and GCC 4.2 were compiled on FreeBSD 10.x in just one day. And is not just about compile time, but the binaries run faster.)

Since FreeBSD 10.x made the switch to CLANG, I thing the best is to go with FreeBSD's way and just use CLANG. The whole FreeBSD kernel and world was compiled using CLANG.
 
Note, the DA binaries were the easy part, they're all done.. the clang switch there had 0 issues for the DA binaries.
The issues are with other areas (all currently on hold), including custombuild compile failures (have not looked at it too hard yet), and the fact that our package building scripts will likely need to be rewritten, as the format has changed.
We're going to be focusing on the current release of DirectAdmin 1.45.0 for the time being.

John
 
As you might (or might not) notice, I am talking about FreeBSD 10.x.
You misunderstood my post. I'm not talking about FreeBSD 10 users switching to CLANG, but about the extra work required by the DA team to make their scripts and apps work with Clang. That extra work is unnecessary as everything will always compile on GCC which is available via ports. And let's compare available compilers, not just what's in base. Clang 3.3 compiles some apps faster, but generates slower binaries than GCC 4.8, especially when compiling apps which require parallel processing. FreeBSD's move was purely motivated by GCC's license change, not because of performance issues.
 
Silly question, but is 10.x support available to beta test? as I see there is a folder in the files area.
 
Not at this time. The new DA release took priority, and the road blocks made us put it aside until we had more time to really dig in.
The DA binaries do work though, if anyone really wants an update.tar.gz for it.. but that's where the "working" bits come to an end.
 
Not at this time. The new DA release took priority, and the road blocks made us put it aside until we had more time to really dig in.
The DA binaries do work though, if anyone really wants an update.tar.gz for it.. but that's where the "working" bits come to an end.

No problem, thank you for the update :)
 
Hi gang, I've been experimenting with a 100% ports-based installation system that co-exists with DirectAdmin for over 2 years now. I started working on a deployment script about 8-9 months ago, but recently took a pause on it as other projects took up my time. Basically, it replaces CustomBuild entirely and uses the FreeBSD Ports system to install services like Apache, exim, Dovecot and more. Additionally, I also plan to add multiple server setup & management in the future, where web & email servers are redundant (or load balancing) for a robust DirectAdmin-based solution, with very little modifications involved to DA's core.

Please don't take this as an official announcement, but I plan to call it PortsBuild and release it to the public when I've got something to show. :)
 
Forgot to add: I've had a test system working with FreeBSD 9.2 for a while now, and plan to experiment with version 10 "soon". And yes, I will be releasing my work as open source to the community.
 
Forgot to add: I've had a test system working with FreeBSD 9.2 for a while now, and plan to experiment with version 10 "soon". And yes, I will be releasing my work as open source to the community.

That sounds great! Let us know when we can give it a look.
 
[...] That extra work is unnecessary as everything will always compile on GCC which is available via ports.

I am not sure that in the future everything will always compile on GCC since they've switched to CLang.

FreeBSD's move was purely motivated by GCC's license change, not because of performance issues.

Yes and no. Yes, they've switched because of license. But because of license they're stuck with old version of GCC which is inferior in terms of compile time and running time performance to newer GCC (the one available from ports) and to Clang.

If some time in the future (hopefully soon) everything from ports will compile with Clang there a possibility that some would not compile with GCC.

For me it does not matter the thing GCC vs Clang, but it would be very usefull to just get a FreeBSD and compile ports and rebuild DirectAdmin just using the compiled just came with FreeBSD.
 
I am not sure that in the future everything will always compile on GCC since they've switched to CLang.
The FreeBSD foundation has, but the rest of the world (mostly) hasn't. Most software in ports is created by 3rd parties who check that their software compiles on the most used compiler: gcc.

What might happen at some point is that some freebsd specific patch in a port is only updated to work with clang, but this won't happen before FreeBSD 9 is EOL.

For me it does not matter the thing GCC vs Clang, but it would be very usefull to just get a FreeBSD and compile ports and rebuild DirectAdmin just using the compiled just came with FreeBSD.
I agree, it would be nice, but that represents a lot of extra work to get CB to work with Clang, when sysadmins simply can install lang/gcc48 and get everything working out of the box right now.
 
Hi gang, I've been experimenting with a 100% ports-based installation system that co-exists with DirectAdmin for over 2 years now. I started working on a deployment script about 8-9 months ago, but recently took a pause on it as other projects took up my time. Basically, it replaces CustomBuild entirely and uses the FreeBSD Ports system to install services like Apache, exim, Dovecot and more. Additionally, I also plan to add multiple server setup & management in the future, where web & email servers are redundant (or load balancing) for a robust DirectAdmin-based solution, with very little modifications involved to DA's core.

Please don't take this as an official announcement, but I plan to call it PortsBuild and release it to the public when I've got something to show. :)
Portsbuild sound interesting :)
How do you inject all the extra required patches into ports? Via make.conf?
 
FreeBSD 10 was released on January 20, 2014. FreeBSD 10 represents a big shift in more ways than just the compiler. It is unlikely that FreeBSD releases will incorporate change of anywhere near this magnitude for quite some time. I can't imagine an in-place upgrade from 9.x to 10.x going well. Are we saying that I need to install what FreeBSD terms as a legacy build, to run DA?
 
There is no reason at all you cannot upgrade from 9 to 10. Ive done it on over 100 systems already.
 
Back
Top