This page describes how you can contribute to MINIX.
See the Wishlist for areas where we could use help.
Patches are pieces of code that solve an existing issue. In fact, patches describe the changes between a before and after state. Patches will need to be created against the latest development version of MINIX3 from Git (or from the official mirror on GitHub).
We prefer patches in the form of pull requests on GitHub. If for some reason you are not able to create a GitHub pull request for your patch, you can send it to the MINIX3 Google Group instead, but merging patches is a bit more work for us that way.
Also see the wiki page on tracking MINIX3-current.
Send your pkgsrc patch to the MINIX 3 Google Group. Before generating it, make sure you have updated your pkgsrc git repository.
If you modified the program's source code, please send your MINIX-specific patch to the original authors of the program.
Also see PortingGuide.
MINIX 3 is licensed under the BSD license, so we absolutely require contributions to our base system, drivers, and the like, to be BSD-licensed. If you are porting code to MINIX from another OS, please port BSD-licensed code. For instance, if you are porting a driver to MINIX, you might start with a FreeBSD or NetBSD driver. There are a few exceptions in the MINIX3 base system, such as the external/ and gnu/ source tree subdirectories, which have their own rules in this regard. For example, any required GNU-licensed code must be downloaded on demand rather than be part of the actual base system. We follow NetBSD's lead here. In any case, the MINIX3 source code is to be free of license violations, and we will simply reject patches that introduce problems in that department.
On that note: we assume that unless specified otherwise, code that is submitted to us has the proper license (i.e., is BSD-licensed or directly compatible). In other words, we will not require explicit copyright sign-over for as long as the project is not getting into trouble over this. This is a “good faith” assumption that keeps the wheels turning right now.
The MINIX 3 ports use the BSD license for port metadata (build scripts, etc.), but modifications to the original program should use the license of the ported program.