Text Document Icon mports Documentation


mports is the MidnightBSD ports collection. It contains hundreds of ported software applications ready to use on MidnightBSD. mports simplifies installing software packages on your desktop system.

In the future, mports will also include precompiled packages to speed up the installation process. An automated software update system is planned. There are a few precompiled software packages on the MidnightBSD FTP server.

Using mports

You can install mports during the installation of MidnightBSD. If you forgot to do so, you may download the latest mports by using cvsup or cvs. Execute the command
cvsup /usr/share/examples/cvsup/mports-supfile
to download the mports. Alternatively, you can use
mkdir /usr/mports
cd /usr
cvs -z 7 -d anoncvs@stargazer.midnightbsd.org:/home/cvs co mports

Updating mports periodically is recommended. New versions of software and additional software are added all the time. Keeping up to date will help you maintain best security practices and possibly give you new features and functionality or bug fixes.

To install an mport, simply do the following:
cd /usr/mports
Pick a category from the file system list or use make search key=term where term is what you want to search for. Once you have the mport, you can type make install clean to install it and clean up the compiling mess.

It is recommended that you install mports/sysutils/portupgrade at your convenience. It will allow you to upgrade mports and install mports much easier. You can simply type portinstall portname to install a port called portname. It can speed up the process considerably.

To uninstall a port, simply goto the directory of the mport and type make deinstall

There are also utilities like pkg_add, pkg_delete and so forth included in the base system. pkg_add -r portname can fetch a precompiled package from the MidnightBSD server and install it for you. You can also install your own packages. There are many possibilities.


MidnightBSD uses the FreeBSD ports collection. Over time it has begun to diverge. Several projects have been influential in the design of the mports system, notably OpenBSD.

The initial import of mports was done by our security officer, archite. mports maintainership was transfered to wintellect after some initial work by laffer1. A massive restructuring of the mports system was done by Chris Reinhardt (ctriv). Now the entire system creates ports in a staging directory called the fake dir. A port is built in the working directory work/ inside the ports directory. Then during the faking stage (before install occurs) it is "installed" into the fake dir which is a combination of the word fake the target arch and a few other nits. It is the job of the mports maintainer to fix any bugs with this faking procedure. It is more work up front, but it means that all ports are installed from packages and therefore all packages must work. This is quite innovative compared to the FreeBSD maybe it works as a package approach, but other projects like OpenBSD have been doing something similar for quite some time.

Currently, all commiters have access to add and modify mports. You may contact any commiter about mports problems or additions. For infrastructure questions or concerns, direct them to ctriv. (use the alias at midnightbsd.org)

Differences Between FreeBSD's ports and mports

FreeBSD's ports install directly into the system at install time, mports however uses a process called "fake" to make a package and then installs that package. This simplifies the logic of the ports system. Code does not need to be duplicated for installation from the port and installation from the package. The change is very recent, and at this time we are still testing the port tree to insure that all ports function properly under the "fake" system.

For information on common reasons for "fake" errors, see the fake transition page.

Mport is endeavoring to be more standardized than the FreeBSD ports tree. See the policy page for information on current port standards.

MidnightBSD introduced the LICENSE variable years before FreeBSD's new LICENSE framework for ports. We got the idea from some of the other BSD projects. Our system does not handle multiple license types as yet (we have an agg type), and ours is indexed into the build cluster software so that our mport tools can later display licensing information with mport info pkgname.

Future Directions

The libmport and mport tools were imported into 0.3-CURRENT for testing. As of 0.4-CURRENT (os version 4004), mport tools support fetching packages, updating, upgrade of all system packages, deleting packages, listing packages needing to be updated, search, and info on a package. The new system will allow us to update packages after a release. Discussion on generating new packages or branching the mports tree to only provide security updates has yet to occur.

blog comments powered by Disqus