wiki:GettingSource

Version 8 (modified by kris, 6 months ago) (diff)

--

Getting the Source Code

PC-BSD uses a GitHub repository, in which all source code is stored. There are a number of create tutorials on using git, please take a look at the Git Book as a good getting started guide.

Checking out the code is easy. Make sure you have the git client installed, then run one of the following commands to get a local copy of the desired source:

PC-BSD (Our active branch of development, where new features and ideas are committed and pushed out to users)
% git clone git://github.com/pcbsd/pcbsd.git

Projects (Source for work-in-progress projects before they go into the mainline pcbsd repo)
% git clone git://github.com/pcbsd/pcbsd-projects.git

PBI (Location of modules and scripts used to build PBI files on PC-BSD)
% git clone git://github.com/pcbsd/pbi.git

Once you have the repo checked out, you're free to browse it on your local filesystem. To update the repo to any new revisions however, you need to issue the "pull" command.

cd /path/to/repository
git pull

Compiling the Source Tree

Most of the PC-BSD source code is going to fall into two sub-categories within the git repo:

src-sh/ <--- Shell / C programs which do NOT include GUIs (Used in TrueOS/PC-BSD or the sysutils/pcbsd-utils port in FreeBSD)

src-qt4/ <--- Qt4 Based GUIs (Used in PC-BSD or the sysutils/pcbsd-utils-qt4 port in FreeBSD)

To compile source in src-sh, you can do this:

% cd src-sh % make

To compile sources in src-qt4, you will need to use qmake-qt4 first

% cd src-qt4 % qmake-qt4 % make

Making Changes

First, take a look at the GitHub guide on how to "Fork" a repo:

Fork A Repo

With your repo now forked, it is possible to make changes and commit these back upstream to your repo. With the changes made, you can then issue a "Pull Request" back to the PC-BSD project.

Using Pull Requests

Once the changes have been reviewed, they will be committed, or sent back with suggestions. As usual, make sure you are signed up on the Developers mailing list to discuss changes and patches:

Dev Mailing List