|
|
Subscribe / Log in / New account

About Source Mage

August 3, 2005

This article was contributed by The Source Mage Project

In a Nutshell

Source Mage is a source-based distribution intended for power users, system administrators, and hobbyists, who would like an easy way to custom-configure every application and to have each application maintain its configuration through upgrades. All distributed code consists of a package manager called "Sorcery" and a collection of packages, called "Spells". Sorcery and Spells together are known as the "Grimoire". Spells are kept as close to the upstream authors' code as possible and are designed for maximum choice in configuring a system. System commands such as "cast" and "dispel" are consistent with the "sorcerous theme".

All Source-Mage-maintained code is written in BASH and GNU-based POSIX utilities, designed to be as minimalistic as possible. For example, GCC doesn't need to build with G++ (the C++ compiler) unlike Gentoo, which requires it for Python. GNU Sed and Awk are used liberally, however Perl is not. This makes Source Mage suitable for small installs and the use of shell script is highly advantageous to a new user.

Of Modest Beginnings

In 2001, Kyle Sallee created a source-based linux distribution called Sorcerer GNU/Linux and released it under the GPL. In late 2001 due to differences with Kyle on how to run the project, a fork was created called Lunar Penguin, now known as Lunar Linux. As a result of confrontations with the Lunar developers, Kyle took Sorcerer off the web one night and nobody could update.

Many of the developers tried to talk Kyle back into continuing the project, but failed. Ryan Abrams and Eric Schabell took over the GPL'd sources and put up a temporary website. At the request of Kyle, the name was changed, and after a vote, Source Mage GNU/Linux was born. On April 4, 2002, sourcemage.org was registered and website content was put up.

A short while later Kyle rewrote much of his code and released it under a non-GPL license that prevents forking. These three distributions have continued since, however the rest of this article concerns Source Mage.

System Layout and Organizational Structure as of June 2005

Project Leader: Eric Sandall: Source Mage has adopted a social structure similar to Debian GNU/Linux, with a Social Contract and a developocratic system that allows developers to vote for team leaders. Team leaders, in turn, vote and appoint developers.

Project Divisions

Sorcery Lead: Andrew Stitt: Sorcery is the package manager. Similar to Gentoo's Portage, although developed concurrently to Gentoo and vastly different in approaches and philosophies. Sorcery is intended to be light-weight, well-designed, and a solid core upon which spells and grimoire libraries can function. Sorcery is mature and feature-competitive with Gentoo's Portage or a BSD-style ports collection. Very little of Kyle's original code remains, and it's often in vestigial sections.

Grimoire Lead: Arwed von Merkatz: The Grimoire is the collection of spells that are called by sorcery (via the "cast" command). Section maintainers called "gurus", keep the Grimoire up-to-date, typically with a version bump and in many cases an md5 of the source (or the upstream author's PGP signature). The main Grimoire is kept in devel, test, stable-rc, and stable versions. There are also auxiliary Games, Z-rejected, and Hardened grimoires for games, binary spells and those that don't meet FSF license approval (note: not the same as Debian's DFSG), and security-hardened spells.

Cauldron Lead: David Kowis: The Cauldron is the code that creates and involves the installer. The Cauldron is undergoing rapid development at this stage, as the original installer inherited from Sorcerer has undergone some bit-rot. The new version of the installer is on track for stable release concurrent with our overall 1.0 release.

Additional General Structures

Security Lead: Thomas Houssin: The Security Team manages the Hardened grimoire and is responsible for handling security updates, especially to spells in the Grimoire.

Quality Assurance Lead: Seth Woolley: The QA Team is responsible for vetting the quality of the various sub-projects before release and is directly responsible for Stable Grimoire releases. Quantitative and qualitative processes are followed to ensure stability.

Web Team Lead: Adam Clark: The Web Team is responsible for providing a public face for the project and keeping it up-to-date.

Public Relations Lead: Alex Smith: Alex is the reason you're reading this article and is responsible for other aspects of our relations with the public. As our developers are dark, dank, and don't clean up well in public, we chose Alex to represent us.

Developer and Codebase Maturity

Since we are relatively unheard of, it will help for potential new users to understand how much work has gone into Source Mage already and that we aren't the next fad distro with a short burst of resources and then a fading away after fifteen minutes of fame.

Major Contributors (more than a dozen patches)

  • 18 major contributors to Sorcery
  • 92 major contributors to Grimoire
  • 37 current part-time developers

Approximate Project Size

  • 10,000 enhancements, features, and bugs handled in Bugzilla
  • 60,000 code commits with a 95MB repository averaging 50 commits per day
  • 4,000 spells in 295,000 source lines and 85,000 patch lines in the Grimoires (14MB)
  • 36,000 source lines in Sorcery (1.2MB)
  • 90% of the source code is new since taking over from Sorcerer

Where We Are and What to Expect

We are nearing a 1.0 ISO release. The install and initial setup, which involves compiling and configuring the correct drivers, is probably the most difficult part of using Source Mage GNU/Linux. However, if you are an experienced Linux user, or even somebody without experience who wishes to gain it, you should expect friendly IRC chat rooms and mailing lists that can help you get setup in very little time. Any Gentoo user should be familiar enough with the fundamentals to get Source Mage installed easily.

Where the Future Lies

We're mainly focused on ISO development and stability-proofing the existing code. The Second-System effect is mostly through and we're looking forward to many new users that haven't heard of us because we were busy rewriting everything.

About the Author

Seth Woolley is the current Source Mage GNU/Linux Quality Assurance Lead and has been a developer since September 2002 and a user since the project's inception.


Index entries for this article
GuestArticlesSource Mage Project


to post comments

Web Team missing

Posted Aug 3, 2005 6:32 UTC (Wed) by SourceMage (guest, #31381) [Link]

I neglected to include the "Web Team" in the article. As we now have a completely redone website thanks to it, it may seem as a glaring omission. In any case, Adam Clark is our Web Team leader, just so he doesn't feel left out. ;) -- Seth

Added by editor - ris

Name misspelling

Posted Aug 3, 2005 15:26 UTC (Wed) by SourceMage (guest, #31381) [Link]

The correct spelling for Thomas' name (our Security Team Lead) is "Thomas Houssin" -sandalle

Fixed by editor - ris

About Source Mage

Posted Aug 4, 2005 2:00 UTC (Thu) by lordsutch (guest, #53) [Link] (1 responses)

Since when has Python been written in C++?

About Source Mage

Posted Aug 4, 2005 3:27 UTC (Thu) by danielthaler (guest, #24764) [Link]

It isn't.
However some other part of the gentoo base system is (but I've forgotten which) because I recall having to rebuild gcc with c++ during the 'emerge system' part of a gentoo install.

Architectures ?

Posted Aug 4, 2005 11:45 UTC (Thu) by kenmoffat (subscriber, #4807) [Link] (2 responses)

Sounds interesting, but is this x86 only ?

Architectures ?

Posted Aug 4, 2005 12:10 UTC (Thu) by SourceMage (guest, #31381) [Link] (1 responses)

Source Mage GNU/Linux currently supports x86 and PPC. We have plans to bring support for other architectures, pending the availability of other platforms.

Architectures ?

Posted Aug 4, 2005 14:05 UTC (Thu) by SourceMage (guest, #31381) [Link]

There is also support for 64 bit processors.

About Source Mage

Posted Aug 4, 2005 14:22 UTC (Thu) by komarek (guest, #7295) [Link] (5 responses)

After searching high and low for a distro (having used GNU/Linux since the early 90s), I had used Sorceror for one month and loved it. Then Kyle went berserk and wiped out the ibiblio archive (I think that was where it was). Things were messy for a while, I gave up, and switched to Gentoo. I've used gentoo since.

Gentoo *still* doesn't compete with Sorceror for simplicity, ease of adding a package, visibility of and ability to manipulate the build queue, and ease of maintenance. Gentoo's USE flags come straight from hell, and I usually have to build an application a few times to get things they way I wanted -- ufed is terrible, but emerge --verbose can be helpful. Sorcerer's build system is simply the best I've seen.

I'm glad to see that sourcemage is still going after all this time. Maybe I'll switch back the next time I reinstall.

About Source Mage

Posted Aug 4, 2005 23:31 UTC (Thu) by Duncan (guest, #6647) [Link] (4 responses)

> Gentoo's USE flags come straight from hell[.]

Interesting comment, particularly when Gentoo is being compared to a
distribution that calls its package manager "sorcery", and "casts spells"
to install stuff. In context, therefore, it would seem to be a
compliment. =8^)

Honestly, I've never used ufed so can't speak to it, but after reading the
Gentoo Handbook (all sections, not just installation), and using the
use.desc descriptions to help me set up my USE flags at initial install,
I've had no issues with USE flags. They've functioned just fine, here.
Of course, I quickly set up aliases for emerge --verbose --pretend (and
--ask), as ea (and ep), with corresponding --update --deep world aliases,
plus others, but that's just because I'm lazy and don't want to type out
the long forms. I suppose most folks come up with similar command line
shortcuts, customized to the way they work, in time. Anyway, thru my
shortcuts, I always use pretend or ask, to see what portage is going to
do, before I let it proceed, but that's only common sense, and I haven't
had any problems with it.

...

Back to Source Mage... the article doesn't answer one question. Is
Sorcery a "package manager" like Red Hat's RPM, in terms of dependencies,
or like Gentoo's portage? That is, does it just tell you what's missing
and leave you in dependency hell, or does it actually figure out the best
package that fills the dependency and install it as part of the
installation of the requested package?

Duncan

About Source Mage

Posted Aug 5, 2005 3:03 UTC (Fri) by komarek (guest, #7295) [Link]

Sorceror is a proper package management system that handles deps automatically. Perhaps I would like USE flags if I hadn't used sorceror first. But my favorite part of sorceror is the simplicity of the package descriptions (makes ebuilds look Baroque), coupled with the "modify as little as possible" philosophy.

-Paul Komarek

Gentoo FAQ

Posted Aug 11, 2005 6:47 UTC (Thu) by sethwoolley (guest, #31738) [Link]

feature-by-feature comparison (as much as that is possible).

http://www.sourcemage.org/Gentoo

Useful mostly for people using the two systems to know how the two use terms differently. We get a lot of Gentoo converts that wonder, "How do I do X that I used to do in Gentoo with Y?"

About Source Mage

Posted Aug 15, 2005 15:42 UTC (Mon) by Zenith (guest, #24899) [Link] (1 responses)

> Of course, I quickly set up aliases for emerge --verbose --pretend (and
> --ask), as ea (and ep), with corresponding --update --deep world aliases,
> plus others, but that's just because I'm lazy and don't want to type out
> the long forms. I suppose most folks come up with similar command line
> shortcuts, customized to the way they work, in time.

You mean such as "emerge -avuDN world" ?
a = ask
v = verbose
u = update
D = deep
N = new use

Why make your own aliases when "man emerge" will show you shorthands for just about all the commands there are?
An oversight on your part? Or are you just tired of having to write "emerge " :-)

About Source Mage

Posted Aug 15, 2005 16:38 UTC (Mon) by komarek (guest, #7295) [Link]

Heh, that's all you need, emerge -avuDN. =-) This thread kind of makes a point about Gentoo usability. Things you want all the time are made more difficult than they should be. Other points:

o Sometimes you need -U, so that it won't undo updates you have made.
o Sometimes packages block emerge, and you have to manually remove them (even though they will be automatically replaced)
o Emerging by path is far, far easier than editing the stuff /etc/make.profile (which is not that well documented anyway). Of course, emerging by path is *deprecated* and you get *nasty warnings* when you do it, and you have to *wait 10 seconds* before it starts, just to find out that it won't automatically suck in other masked deps.

There are a lot of good reasons to use Gentoo. But I sometimes feel as though the developers must not be using it themselves, since they (as a group) continue to make decisions that make using Gentoo unpleasant.

About Source Mage

Posted Aug 11, 2005 19:04 UTC (Thu) by sergey (guest, #31763) [Link]

Some things I'd like to mention that are asked often in my private conversations with people:
  1. Dependency system in sorcery is powerful but flexible at the same time; it's integrated with configuration of spells (aka packages) and allows for mandatory, optional, or configuration-specific dependencies; example.
  2. SMGL would support an RPM-based or other binary package if the only way to install it is from RPM, on case by case basis. Support includes integrity checking of binaries and may also include providing required version of GCC's runtime. Alternatively, users' spells can be maintained in private grimoires (aka package collections) for user-specific installations. For example, SMGL would try to support RPM-based Oracle or WebLogic installation if there's user interest, and provides tools to support them in a private grimoire. SMGL supports binary installation of Sun's Java now, provided that a user downloads the binary themselves. Perforce is also supported as an example of package that needs GCC 3.3 runtime while test and stable grimoires are at 3.4 and development grimoire is at 4.0.
  3. For those who like their kernels customized with patches or coming from other kernel developers' source trees, many patches and branches are already supported "out of the box", are presented in a visual interface, and will be carried forward should the kernel be updated. If there's a GPL patch you need, it should be easy to include it in the "linux" spell, recently streamlined and vastly improved by SMGL developer David Brown.


Copyright © 2005, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds