Contents

Notable features

Source Mage is, as its name suggests, a source-based Linux distribution. Instead of delivering binaries to users, the source code is compiled.[1] This method allows greater control over the software than precompiled distributions, such as Ubuntu. Individual dependencies can be selected or deselected, saving valuable hard drive space and freeing RAM and CPU cycles. For instance, OpenSSH can be compiled without support for X11 sharing. One can choose to set cflags, cxxflags, and ldflags specific to their situation.[2] Using a source-based distribution is one way to unlock the full performance of a computer, as many binary distros compile their software for a wide audience, not a particular group, such as users of a specific processor. When a Source Mage spell is "cast", the latest stable release is downloaded from the developer's site rather than Source Mage's. This allows for the most up-to-date system, unlike Gentoo, another popular source-based distribution, which maintains its own customized cache of packages.[3] SMGL changes as little as possible in packages (only to fit to bare standards such as the Filesystem Hierarchy Standard), so it is more immune from the kind of errors resulting from distribution developers tampering.

In 2000, Kyle Sallee released a Linux distribution named Sorcerer GNU/Linux. Due to several issues, in 2002, Chuck S. Mead forked Sorcerer into Lunar Linux. Soon afterwards, Kyle Sallee took Sorcerer GNU/Linux offline. The remaining Sorcerer GNU/Linux development team brought it back online and continued development. A month later, Kyle Sallee brought his version of Sorcerer back online with a new license that prevented forking, dropping GNU/Linux from the name. Consequently, at the request of Sallee, the Sorcerer GNU/Linux team renamed their project Source Mage.[4][5]

Compiling

Source Mage's tagline is “Linux so advanced, it may as well be magic”,[6] and its commands have a “sorcerous theme”. Each package is called a “spell”, and its package management program is called “sorcery”.[6] To install a package the user must “cast” that spell. Casting a spell consists of downloading the source code (if it is not already downloaded), checking for dependencies, casting them if necessary, compiling the program, and installing it. A set of available spells is called a “grimoire”. To uninstall a package the user must “dispel” the spell.

Social contract

Source Mage has established a distribution commitment, Source Mage Social Contract establishes its basic rules, which are similar though not identical to Debian's. The first part of the contract ensures the freedom of Source Mage:

We promise to keep the Source Mage GNU/Linux Distribution entirely free (as in freedom). This means that all software we release will be licensed under the GNU General Public License as defined by the Free Software Foundation (fsf.org). All of our documentation will be released under the GNU Free Documentation License.[7]

Source Mage does not restrict the user's choice of software to only free software:

We acknowledge that some of our users require the use of programs that don't conform to the strict SMGL Licensing Guidelines. While SMGL will never rely on non-free software, we do not limit a user's choice of software. We will provide the tools for a user to make their own informed decisions, via each spell's "LICENSE" field, and the sorcery spell filter. Thus, although non-free software isn't a part of Source Mage, we support its use, and we provide infrastructure (such as our bug-tracking system and mailing lists, as well as spells) for non-free software packages.[7]

Installation

Installing Source Mage involves first creating a minimal installation with a kernel (so it can run), the GCC C compiler, a network connection, and a few other basic tools to support downloading and compiling source code.[8] This enables the system to download, compile, and install all the other components, and the compilation results can be tailored for that specific system.

Portability

All Source Mage-maintained code is designed to presume a minimal system, and the base system doesn't explicitly require a C++ compiler (Only GCC 4.x+ does, but can be replaced).