# Source Mage

Source Mage is a source-based Linux distribution descended from Sorcerer. Components of this operating system are downloaded as source code and compiled locally on the user's computer.

## Notable features

Source Mage is a source-based Linux distribution. Instead of delivering binaries to users, the source code is compiled locally on the users computer. This practice enables greater control over the software than other distributions that precompile software for users do, 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. 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. 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, while in turn lacking the potentially necessary patches that projects like Gentoo and Debian apply.

## History

In 2001, 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.

## Compiling

Source Mage's tagline is "Linux so advanced, it may as well be magic" (a reference to Clarke's third law), and its commands have a "sorcerous theme". The instructions to each package is called a "spell", and its package management program is called "sorcery". 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.
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.

## 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. 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).
Besides POSIX-compliant tools, core components require only bash, sed and either gawk or mawk, instead of more heavyweight languages like Perl or Python. This makes Source Mage suitable for a small installation.