0.7-CURRENT and 0.6-p2 contain new ZFS support for TRIM on solid state drives. It is enabled by default. The mport utility now supports locks in current. With this feature, you can disable delete or update commands on packages that are installed in the system. This can prevent accidents or upgrades during a system-wide update.
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.
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.
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.
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.
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.
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.
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 email@example.com . We are looking for programmers with all types of skills, port maintainers, documentation and website maintainers, and people interested in mirroring.
The project was originally available in cvs, then svn and now git. The legacy svn repos are still available for read-only use.
The operating system source code "src", mports and www are now located in git. Regular users may check these out over HTTPS.
git clone https://github.com/midnightbsd/src.git
To change to other branches
git checkout stable/3.0Developers (src):
git clone firstname.lastname@example.org:MidnightBSD/src.gitUsers (mports):
git clone https://github.com/midnightbsd/mports.gitDevelopers (mports):
git clone email@example.com:MidnightBSD/mports.gitUsers (www):
git clone https://github.com/midnightbsd/www.gitUsers (mport package manager):
git clone https://github.com/midnightbsd/mport.gitUsers (mport graphical package manager):
git clone https://github.com/midnightbsd/mport-manager.git
You can view code on GitHub
#0.6 svn co http://svn.midnightbsd.org/svn/src/stable/0.6 src # Current svn co http://svn.midnightbsd.org/svn/src/trunk srcDevelopers (src):
svn co svn+ssh://firstname.lastname@example.org/home/svn/repos/src/trunk srcUsers (mports):
svn co http://svn.midnightbsd.org/svn/mports/trunk mportsDevelopers (mports):
svn co svn+ssh://email@example.com/home/svn/repos/mports/trunk mportsDevelopers (www):
svn co svn+ssh://firstname.lastname@example.org/home/svn/repos/www/trunk www
To build MidnightBSD, checkout the source code as stated above and cd into the directory. e.g. cd /usr/src
Run make buildworld, make buildkernel, mergemaster -p, make installkernel, reboot, go into single user mode, make installworld, and finally mergemaster. If the kernel fails to boot, you can go back to the old kernel by booting it up from the loader and replacing kernel with kernel.old in the /boot directory.
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. 0.3 RELEASE brought in enhancements from FreeBSD 7.0 and 0.4 included an infusion of FreeBSD 9.1 sources. MidnightBSD 1.x included enhancements from FreeBSD 10.4 and MidnightBSD 2.x includes features from FreeBSD 11 stable (somewhere between 11.3 and 11.4).
With MidnightBSD 3.0, features from FreeBSD 12-stable (June 17, 2022) between FreeBSD 12.3 and 12.4 were imported.
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.
During the 2.0.x release cycle, we switched desktop environments to Xfce. This was in part due to user feedback that GNUstep + windowmaker was feeling dated and also some integration issues. We may change the default desktop in the future again, but currently have no plans to do so. GNUstep + windowmaker is still available for users who prefer that.
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.