About Source Mage
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 | |
---|---|
GuestArticles | Source Mage Project |
Posted Aug 3, 2005 6:32 UTC (Wed)
by SourceMage (guest, #31381)
[Link]
Added by editor - ris
Posted Aug 3, 2005 15:26 UTC (Wed)
by SourceMage (guest, #31381)
[Link]
Fixed by editor - ris
Posted Aug 4, 2005 2:00 UTC (Thu)
by lordsutch (guest, #53)
[Link] (1 responses)
Posted Aug 4, 2005 3:27 UTC (Thu)
by danielthaler (guest, #24764)
[Link]
Posted Aug 4, 2005 11:45 UTC (Thu)
by kenmoffat (subscriber, #4807)
[Link] (2 responses)
Posted Aug 4, 2005 12:10 UTC (Thu)
by SourceMage (guest, #31381)
[Link] (1 responses)
Posted Aug 4, 2005 14:05 UTC (Thu)
by SourceMage (guest, #31381)
[Link]
Posted Aug 4, 2005 14:22 UTC (Thu)
by komarek (guest, #7295)
[Link] (5 responses)
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.
Posted Aug 4, 2005 23:31 UTC (Thu)
by Duncan (guest, #6647)
[Link] (4 responses)
Posted Aug 5, 2005 3:03 UTC (Fri)
by komarek (guest, #7295)
[Link]
-Paul Komarek
Posted Aug 11, 2005 6:47 UTC (Thu)
by sethwoolley (guest, #31738)
[Link]
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?"
Posted Aug 15, 2005 15:42 UTC (Mon)
by Zenith (guest, #24899)
[Link] (1 responses)
You mean such as "emerge -avuDN world" ?
Why make your own aliases when "man emerge" will show you shorthands for just about all the commands there are?
Posted Aug 15, 2005 16:38 UTC (Mon)
by komarek (guest, #7295)
[Link]
o Sometimes you need -U, so that it won't undo updates you have made.
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.
Posted Aug 11, 2005 19:04 UTC (Thu)
by sergey (guest, #31763)
[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. ;) -- SethWeb Team missing
The correct spelling for Thomas' name (our Security Team Lead) is "Thomas Houssin" -sandalleName misspelling
Since when has Python been written in C++?About Source Mage
It isn't.About Source Mage
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.
Sounds interesting, but is this x86 only ?Architectures ?
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 ?
There is also support for 64 bit processors.Architectures ?
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.About Source Mage
> Gentoo's USE flags come straight from hell[.] About Source Mage
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
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.About Source Mage
feature-by-feature comparison (as much as that is possible).Gentoo FAQ
> Of course, I quickly set up aliases for emerge --verbose --pretend (and About Source Mage
> --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.
a = ask
v = verbose
u = update
D = deep
N = new use
An oversight on your part? Or are you just tired of having to write "emerge " :-)
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:About Source Mage
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.
Some things I'd like to mention that are asked often in my private conversations with people:
About Source Mage