FreeNAS 9.10 New Build System vs FreeNAS 9.3 Build System

Status
Not open for further replies.

Dennis Jensen

Dabbler
Joined
May 26, 2016
Messages
37
I have been looking and trying to find some documentation (or anything for that matter) that would outline how the New FreeNAS 9.10 Build System works (aka how does the engine work not how do I start the engine) or even better would be something that talked to the differences between FreeNAS 9.3 Build System to the New FreeNAS 9.10 Build System (aka the old cars used carburetors but the new cars use fuel-injection and this is how the fuel-injection system works and why it is better...)

For more detail as to where my specific problem resides: in FreeNAS 9.3 we made changes to these files (Makefile, build/nanobsd/nanobsd_funcs.sh, src/freenas-pgktools/lib/configuration.py, and src/freenas-pgktools/lib/__init__.py) and while there is a Makefile in the FreeNAS-Build repository and a Makefile.inc1 that seem to cover much of what was in the original Makefile in 9.3 there are elements of the original Makefile that are not within either of these 2 files and I am wondering if they were put somewhere else or were they simply no longer needed as they were replaced with something else and if so what was that something else (as an example the UPDATE_HOST?= variable in the 9.3 Makefile is in neither of the 2 new Makefiles).

All I have for a description of what was being done and why is here: https://bugs.pcbsd.org/issues/9041
And while I have gone through the commit history there in detail there does not seem to be a tie from there into either FreeNAS 9.3 or FreeNAS 9.10 or at least the few Commit Ids I looked up were in neither.

However from the description found there it sounded like what was remaining of the nanobsd stuff was going to be completely replaced by something else but it does not really go into detail about how that works. Further it sounded like this new system has been designed to be more Generic so that the various independent systems that are built from it can be built from it much more efficiently but again they do not go into any detail on how this was accomplished. Now it is rather obvious that certain things were deleted from FreeNAS 9.3 and while some of it was moved to the FreeNAS-Build 9.10 and other parts were moved somewhere else within FreeNAS 9.10 I do believe some parts were simply replaced by something else entirely but there is no roadmap as to how this was done. You cannot look at the commit history as there are 2 (or 3) separate commit histories and no map that shows how a commit in repository A affected repository B. So while yeah this stuff got deleted from FreeNAS 9.10 and this other stuff got added to FreeNAS-Build 9.10 if the names do not match how do you determine what is what. Or more importantly how do I plug into this new build system to tap into its efficiency or autonomy or whatever it is that they actually did to make it better.

Basically in short (or as a recap) I have been researching this in the hope that I can at least find something that will help me understand how to implement the changes we made to the Build System in FreeNAS 9.3 which no longer exists into the new FreeNAS 9.10 build system but it would be awesome to find something that explained how to capitalize on the new FreeNAS 9.10 build system and use it to its fullest -- but as of yet that information is not to be found.

So any insights or the like that you can share would probably prove most helpful not only for me but for anyone else faced with a similar situation

NOTE: We have already built a vanilla FreeNAS 9.10 system so getting the engine started we know how to do its the understanding how to attach our enhancement hardware to it that is proving to be a bit of bother
 
Last edited:
D

dlavigne

Guest
This would be good information to have in the build README. Please create a bug ticket at bugs.freenas.org and post the issue number here. Assign it to Suraj as he did most of the new build system work.
 

adrianwi

Guru
Joined
Oct 15, 2013
Messages
1,231
Not sure what you mean by 'build system' but my understanding is that 9.3.x is based on FreeBSD 9 whilst 9.10 is based on FreeBSD 10.
 

Dennis Jensen

Dabbler
Joined
May 26, 2016
Messages
37
By "Build System" I am referring to FreeNAS-Build 9.10 as opposed to FreeNAS 9.10 ... further by "Build System" if you look at the URL I reference in my first post you will get a much better understanding of what was and what potentially is the FreeNAS Build System. Originally in 9.3 the two piece were simply just FreeNAS however with the new rewrite of the build system they yanked nearly all the actually build processes out of FreeNAS and put them into FreeNAS-Build and they genericized it (from my understanding thus far) so that it would be much simpler to use it to build TrueNAS and FreeNAS and any OtherNAS that they might want to build with the basic system -- which was not how the original build system worked.

As a final note "Build System" is the part of FreeNAS that you use to get an operational version of FreeNAS up and running to do the things you need it to do. Its like a small pre-engine that was used on big diesel engines that was started in order to get the big diesel engine started. It does not matter what version of big diesel engine I have (whether its a FreeEngine or a TrueEngine) because I can attach my little pre-engine to it and crank up that big diesel engine and getter running like a champ.

Again check out that URL in my first post -- I think it will go a long way in making things a bit more clear for you.
 
Status
Not open for further replies.
Top