Developer Welcome to MidnightBSD Development

Update: (November 2013)

Post 0.4-RELEASE, several issues were detected with mport tools. We're working on several improvements to these for 0.5. We're also working on some changes to mports to facilitate easier installation of desktop environments. This is the most common feature request we've received in relation to 0.4.

We've moved mports and our website into subversion recently. The src module will move by the end of the year.

Users running 0.4-RELEASE should pull changes from CVS on the RELENG_0_4 branch and rebuild. This fixes bugs with mport and also includes security patches.

Update: (February 2012)

Our current big project is replacing sysinstall with a modified version of bsdinstall from FreeBSD 9.0-RELEASE. As part of this project, several major changes have been made to GEOM in the kernel. MidnightBSD now supports it's own GPT partition schemes, and understands GPT types from several other operating systems including Microsoft Windows, Apple Mac OS X (and Apple TV), Linux, FreeBSD and NetBSD.

mport has had several improvements. An article on mport tools appeared in the February 2012 issue of BSD Magazine.

The OpenBSD sensors framework code was updated to use fine grain locking along with many sysctl's in 0.4-CURRENT. This should improve performance.

Apple's mDNSResponder 330.10 was recently imported.

Several stability problems have been corrected in the 0.4-CURRENT kernel introduced in November. CURRENT kernels now have WITNESS and INVARIANTS enabled by default. This slows down performance, but allows us to catch a lot of subtle problems. Historically, this was disabled after a buggy patch was introduced to the TCP network stack years ago. This code was replaced during development of 0.3.

The release building architecture is undergoing significant changes to work with the new installer. Current documentation on this process is out of date and one should look at the src/Makefile, src/Makefile.inc1 and release/* for the current procoess.

Update: (September 2011)

ctriv@ started the libmport project several years ago. Today, we have a functioning replacement for pkg_tools on MidnightBSD. We're in the bug fixing phase for the next release.

Perl has been updated to 5.14 in CURRENT. We've got most of Gnome 2.32 working, KDE 3.5.10, X.org 7.4 (plus some updates), and I'm in the process of updating GNUstep to the latest version. Several Etoile ports are now on 0.4.1. Opera 11.51, Linux versions of Firefox 6 and Thunderbird 6 work on current with some minor problems, Flash 10, Chrome 5 (needs updating badly), and openjdk 6.

MidnightBSD gained a new search tool called msearch. This uses sqlite3 to index files on the system. It contains a list of files that can be searched with sql queries using sqlite3 or on the command line and a full text index of files on the system. The indexer runs out of periodic as nobody so really sensitive files can be hidden as necessary by changing the permissions. While gzip compression is used with the full text index and some logic with libmagic helps us avoid indexing some files, the database sizes can be rather large on some systems. It's recommended that one only use this if they have a large /var partition over 5GB.

Update: (March 2011)

MidnightBSD 0.3-RELEASE was shipped a little over a month ago. Since then, we've focused on getting contributed software up-to-date as well as work on mport tools. 0.4 will be the first release with mport tools as default.

Update: (May 2009)

ctriv@ has been testing libmport and the mport tools for the 0.3 release. We're currently working on importing GCC 4.2.1 into src. We now use bsdcpio and bsdtar, sudo 1.6.9p20, OpenSSH 5.2, OpenSSL .98, ZFS version 6, gjournal, pcc .99, Perl 5.10

With mports, we now have KDE 3.5.10 (still in progress for some parts), X.org 7.4, Gnome 2.20, GNUstep is working again, Etoile 0.2 (although this needs to be updated), unbranded F* browser as www/browser, Midori + webkit.

Update: (October 2007)

Seirei@ has imported Etoile 0.2 into our mports collection. You can test the window manager and many other features. We also offer KDE 3.5.4 and WindowMaker among other environments. About half of Gnome is in as well. We still plan to focus on GNUstep + Etoile.

0.1 Release shipped with WindowMaker and KDE on the CD as well as GNUstep. The installer did not automatically install the ports though. 0.1.1 Release will fix some bugs with the packages as well as enable "mports" by default. Work has begun on bringing X.org 7.3 into the tree, although 0.1.1 will continue to use 6.9.

Update: (March 2007)

We are planning on using WindowMaker until the Etoile Project is farther along with their work. Etoile is in mports as are many other GNUstep based software packages.

If you are interested in joining the MidnightBSD project, please contact questions@midnightbsd.org . We are looking for programmers with all types of skills, port maintainers, documentation and website maintainers, and people interested in mirroring.

Developer Resources

The CVS server for MidnightBSD is stargazer.midnightbsd.org. This is where you can do your checkouts, commits, etc. To checkout anonymously, use anoncvs (with password anoncvs):

cvs -z7 -d anoncvs@stargazer.midnightbsd.org:/home/cvs co src
anoncvs@stargazer.midnightbsd.org's password:
cvs checkout: Updating src
U src/COPYRIGHT
U src/MAINTAINERS
...

Or to checkout as a MidnightBSD developer with your username and password:

cvs -z7 -d username@stargazer.midnightbsd.org:/home/cvs co src
username@stargazer.midnightbsd.org's password:
cvs checkout: Updating src
U src/COPYRIGHT
U src/MAINTAINERS
...

mports and www are now located in SVN. Regular users may check these out over HTTP. Developers will need to use svn+ssh. Replace mports with www in the examples below to checkout the website instead.

Users:

svn co http://svn.midnightbsd.org/svn/mports/trunk mports

Developers:

svn co svn+ssh://username@stargazer.midnightbsd.org/home/svn/repos/mports/trunk mports

Source code and mports can also be viewed using ViewVC, CVSWeb, and OpenGrok.

Background

MidnightBSD is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.

Goals

  • Create an easy to use desktop environment with basic functionality and a full graphical administration interface.
  • Create a unique window manager designed with ease of use in mind. We will not use full blown desktop environments like KDE or Gnome.
  • Integrate GNUstep into the system, but maintain BSD licensing on our own code whenever possible. The kernel and most userland software must be BSD licensed.
  • Incorperate new technologies from other BSD projects that may interest desktop users. OpenBSD's OpenNTPD, OpenSSH, and wireless drivers are examples.
  • Create our own ports system based on FreeBSD's ports. The system would have a graphical interface and existing utilities would be merged into a library so identical functionality is maintained on the gui and command line.
  • Setup a binary update system so that users do no need to compile patches or new releases to get security updates or bug fixes.
  • Listen to user feedback to improve the system. At times, many open source projects fail to listen to users making systems more difficult to use and decreasing scope.

Initially for 1.0 release, I'd like to have a new installer (wheither it be DragonFlyBSD's or a new one) along with a basic graphical environment. WindowMaker, Firefox, Thunderbird, and a few other applications. From there, based on user feedback, I'd like to build on the solid base of FreeBSD.

To clarify, this is a fork of FreeBSD. I'm not creating a distro* like DesktopBSD or PC-BSD.

* distro is often used in the Linux community. Some BSD folks hate that term applied to other projects. My working definition is a system with core componets (kernel, large parts of userland) that are not developed by the entity releasing the operating environment. It is a collection of software grouped together possibly with an installer. This can be applied to Live CD projects, BSD firewall projects, PC-BSD, DesktopBSD, and non BSD projects like Fedora, Gentoo, and so on.