Building pfSense
-
I have been working with pfSense for a while and am a true believer but new to developing for it. I have rebuilt the vHosts package for 2.3.2 and am now preparing to try and have it added to the repository.
As I have been working with pfSense, I have found a few minor bugs which I would be happy to fix but I can't figure out what the process is. I went to the portal and signed the license agreement to be a developer but that did not change my access in Github. I have searched relentlessly in the forum for how to build pfSense for development testing–which I know must be pretty easy--but I have not found a clear description of the process. Most people trying to are having great trouble and mostly getting warnings about patent infringement. That seems odd given pfSense is "open source" but whatever.
I would like to make some contributions. I have no interest in creating my own product and calling it "pfSense". I just want to be able to test my fixes before doing pull requests so my changes can be considered for inclusion. I love the product and promise to only make it better. :)
I am learning the ways of Github but am unclear how I can create a development virtual machine and build pfSense. Does anyone have a set of simple instructions on how to a) become a pfSense developer, b) have access to the tools for building, and c) a list of steps for building pfSense and packages for pfSense?
-
Most of the code is just interpreted PHP and bash scripts… So just use the normal installers to install a VM. Then you can GitSync it (see the console menu pfSense tools option, palyback gitsync...)
You can then edit files however you like (for small things, I just use the Diagnostics->Edit in the GUI, and cut-paste from a "real" editor on my laptop).
Then submit the changes to a git clone branch and make a pull request (lots of ways to achieve this - e.g. I have a fork on GitHub, cloned to my laptop, make branches on the laptop, push them up to GitHub when they are good, then make the pull request).
For the most unusual case that you need to compile something, then you will have to work out how to have a "real" build environment.