original in en Georges Tarbouriech
en to nl Guus Snijders
Georges is al lang een Unix gebruiker. Als een fan van NeXSTEP is hij dol op vrije projecten die de look & feel (en nog veel meer) van dit fantastische systeem proberen te evenaren.
GNUMail.app is een kloon van NeXT Mail.app en draait onder GNUstep en Mac OS X. Het ontwerp staat het gebruik van dezelfde broncode op zeer verschillende platformen toe. Al met al is dit fantastische stuk software een absoluut bewijs van portabiliteit tussen GNUstep en Mac OS X.
Tegen het einde van de jaren 80 verscheen er een nieuw besturingssysteem,
genaamd NeXTSTEP. Dit OS (Operating System - besturingssysteem) bood dingen die
we nog nooit eerder hadden gezien. Zo bood het (onder andere) de eerste
grafische e-mail client, Mail.app. Behalve dat het grafish was, kon het ook
overweg met andere vormen van data: plaatjes, geluiden, etc!
Een paar jaar later besloot NeXt om NeXTSTEP ook beschikbaar te maken voor
andere systemen (te porteren): Open Step was geboren.
Vanaf toen begonnen mensen te werken aan vrije software procecten met
dezelfde filosofie. Het grootste project is natuurlijk GNUstep, dat zich ten doel heeft gesteld
een vrije implementatie van Open Step te ontwikkelen. De mensen van GNUstep
doen fantastisch werk, zeker als je je bedenkt hoeveel werk zo'n project met
zich meebrengt.
Een ander mooi project is Window
Maker. Deze window manager is onderdeel van het GNUstep project. Op hun
beider websites is alles te vinden over deze prachtige, vrije producten. Je kunt ook
een blik werpen op deze "ouwe" LinuxFocus artikelen:
Window Maker, de geest van NeXTStep en
GNUstep, de open source OpenStep
(Voor de "fundamentalisten" onder ons, de titel was alleen om een beetje met het woord
"open" te spelen: zoals we allen weten is GNUstep vrije software!).
Om een einde aan dit geschiedenishoofdstuk te breien, nog de toevoeging dat
de oprichter van NeXTSTEP nooit vergat hoe geavanceerd z'n "kind" was. Hij
verkocht het aan Apple (dat hij mee opgericht had...), kwam terug "naar huis",
en werd Apple's "tijdelijke" baas. Dit bracht ons Mac OS X , wat NeXTSTEP is in een
Apple smaak. En hier zijn we: Gnustep en Mac OS X hebben veel overeenkomsten.
Daardoor kan compatibiliteit tussen applicaties, broncode, worden verwacht.
Daar GNUstep beschikbaar is voor veel platformen (op een min of meer stabiele
manier), maakt het portabiliteit mogelijk. Ter informatie, Gnustep werkt
met de meeste BSD's, met de meeste Linux distro's, Solaris, Irix.... en zelfs
op Windos.
Sommige andere projecten zijn onderweg: de port van Darwin (de kern van OS X) voor
de ix86 architectuur. Zie http://gnu-darwin.sourceforge.net/.
Je kunt ook kijken op http://www.linuxstep.org. De naam zegt
het al.
Ook is er Simply GNUstep, een volledig ISO image, waarmee je kunt booten
vanaf cd: in andere woorden, je hoeft niets te installeren. Te vinden op:
http://simplygnustep.sourceforge.net/
NOOT: Op Mac OS X heb je GNUstep of het X Window System niet nodig!
Ik weet het, dit lijkt voor de hand te liggen, maar omdat sommige mensen het
vroegen, zeg ik het nog maar eens. ;-)
Dit is het belangrijkste punt: portabiliteit onder X is iets waarvan je
iedere dag kunt genieten, tijdens het gebruik van vele verschillende Unix
smaken. Dat wil zeggen, je kunt applicaties compileren en gebruiken onder
welke Unix je ook gebruikt: vrije, commerci�le, BSD, System V... Ze delen
allemaal iets: het X Window Systeem. Ondanks de naam, heeft Mac OS X (X
betekent 10, niet X Window System) niet het X Window Systeem: het heeft een
prachtige GUI, Aqua genaamd, dat in de plaats daarvan gebaseerd is op Quartz,
OpenGL en Quick Time. Als gevolg worden de dingen die met X vanzelfsprekend zijn,
een stuk gecompliceerder met zo'n afwijkend grafisch subsysteem.
Tussen haakjes, als je het X Window System onder Mac OS X wilt, dan kan dit:
je kunt het bijvoorbeeld downloaden van Apples' website
(http://www.apple.com/downloads/macosx/unix_apps_utilities/.
Als er 1 ding is om aan te denken als het over GNUstep gaat, is het wel
"portabiliteit". En, eindelijk, komen we zo bij de kern van het onderwerp:
GNUMail.app. Als je nog een bewijs zoekt, dit is het!
GNUMail.app is het werk van Ludovic Marcotte (en vrienden) en is
beschikbaar gesteld onder de GPL. Het artistieke gedeelte (pictogrammen) is
het werk van Andrew Lindesaw. Op de GNUstep website zijn de prachtige
pictogrammen die Andrew cre�erde voor GNUstep te zien (in de User Apps
sectie).
Zoals reeds gezegd is GNUMail.app een e-mail client, een kloon van de NeXT
Mail.app (of, meer recent, kloon van Apple Mac OS X Mail.app). Hier is de
hele familie: van links naar rechts, de vader, de zoon... en de neefjes.
GnuMail.app voelt aan als NeXT Mail.app, en ziet er ook zo uit. Zeker, er zijn ook andere
mailclients geweest met de NeXTSTEP look & feel, vooral bedoeld om te
werken onder Window Maker. Zoals bijvoorbeeld Postilion op
http://www.postilion.org/ of Aileron op
http://ucsu.colorado.edu/~nwanua/Aileron/.
Deze kun je beschouwen als gestopte projecten: beide auteurs geloven dat
GNUMail.app de volgende 'Step' is.
GNUMail.app is iets anders: het is geschreven in Objective C, gebruikt Apple
(NeXT) ontwikkelaarstools zoals InterfaceBuilder en ProjectBuilder aan de Mac
kant, en zou binnenkort gebruik moeten kunnen maken van Gorm of
ProjectCenter aan de GNUstep zijde (beide zijn beschikbaar op de GNUstep
website, in de Developer apps sectie). Het belangrijkste is echter dat je
dezelfde broncode kunt gebruiken om het te compileren, of het nu onder MacOS
X is of GNUstep. De huidige versie (op het moment van schrijven) is 1.0.0.
Eén van de benodigdheden is Pantomime, welke een framework is voor mail
connecties (SMTP, POP, IMAP...). De huidige versie hiervan is 1.0.2, en
nogmaals, het is een en dezelfde voor MacOS X en GNUstep. Beide archieven
zijn te downloaden op http://www.collaboration-world.com/gnumail/
Mogelijkheden
Ik zal niet proberen het wiel opnieuw uit te vinden, hier is wat je kunt
lezen op de GNUMail.app website:
- Meerdere POP3 (met APOP ondersteuning) accounts met lokale cache
ondersteuning (om de berichten op de server te laten);
- Meerdere 'delivery agents' (SMTP of lokale mailer);
- Ondersteuning van mail spool bestand voor het ontvangen;
- Goede IMAP ondersteuning met lokale cache;
- Volledige ondersteuning van RFC822 en RFC2822;
- Lezen, schrijven, weigeren, beantwoorden en doorsturen van mails; - Mailbox
management (cre�ren, verwijderen, vastzetten van, (etc). berichten) mbv het
Berkely mbox formaat;
- Persoonlijke voorkeuren management;
- MIME ondersteuning (decoderen en encoderen);
- Een volledige MIME types manager;
- qouted printbare en BASE64 codering ondersteuning;
- Adresboek met groepen;
- Zoekpaneel met reguliere expressies;
- Automatisch of handmatig ophalen van berichten (keus van gebruiker);
- Krachtige filters die reguliere expressies ondersteunen;
Ludovic hoopt binnenkort meer mogelijkheden toe te voegen, zoals een
nieuw voorkeurmenu of GPG ondersteuning. En je kunt hem vertrouwen, zeker
als je weet hoe snel hij werkt!
Dit zou je er zeker toe moeten brengen de GNUMail.app website te bezoeken.
;-)
GnuMail.app is beschikbaar als broncode voor MacOS X en Linux, net als
Pantomime (onthoud: beide zijn nodig). Enkel Linux vermelden lijkt beperkend.
Ten slotte, van GNUMail.app is bekend dat het draait onder FreeBSD,
NetBSD...
Binaire versies voor MacOS X zijn ook beschikbaar, als je er niet zoveel
voor voelt om het zelf te compileren. Hier zullen we het verder echter niet over
hebben.
Om GNUMail.app te compileren en gebruiken, zijn er nog meer benodigdheden.
Onder MacOS X heb je vanzelfsprekend de ontwikkelaarstools nodig. Onder
GNUstep, heb je nodig... GNUstep. De installatie van GNUstep valt buiten het
bereik van dit artikel, maar alles wat je nodig hebt is te vinden op de
GNUstep website. Gcc versie 3.0 en hoger zijn aan te raden om een paar
problemen met compileren te voorkomen. Ook zijn de GNUstep "unstable" versies
(1.3.0), base (1.3.0), gui (0.7.6), en xgps (0.7.6) benodigd. Geen zorgen, ze
heten "unstable", maar doen hun werk goed.
Allereerst, als je de FAQ niet leest, let op dat je de archieven mbv de
command line met zoiets als tar zxvf archive.tar.gz uitpakt. Het
gebruik van automatische tools zoals Stuff-it, zal sommige bestanden in het
archief aanpassen en dan zul je ze achteraf moeten hernoemen.
In het README bestand van het archief staat beschreven hoe het compileren en
installeren in z'n werk gaat (Pantomime moet als eerste gecompileerd worden).
Het volgen van de stappen levert je een splinternieuwe GNUMail executable op.
Als je de voorkeur geeft aan de commandoregel, kun je pbxbuild en
pbxbuild install gebruiken. Als je (nog) niet bekend bent met pbxbuild
kan de ProjectBuilder online Help je alles vertellen over deze tool.
Als een kort voorbeeld, je kan een doel niet installeren vanuit
ProjectBuilder: je moet in plaats daarvan gebruikmaken van pbxbuild
install. Vergeet niet de executable die je van ProjectBuilder krijgt is
gelinkt aan de directory waar de applicatie was gecompileerd. Als je de
executable verplaats en de directory met de broncode verwijdert, zal de
applicatie niet meer goed werken. Als je de broncode (waarmee je hebt
gecompileerd) wilt verwijderen en een werkende applicatie wilt overhouden,
ligt het gebruik van pxbuild install voor de hand.
Als je klaar bent, volstaat het om op het GNUMail pictogram te klikken om het te
starten.
Als GNUstep draait, is het tijd om de archieven uit te pakken. Dit kan met
hetzelfde commando als hierboven. Vervolgens nog een 'make' en een 'make
install' (hou er wel rekening mee dat Pantomime voor GNUMail.app moet zijn
gecompileerd). Typ het commando openapp GNUMail.app en aanschouw de
magie: een prachtige mail client op je scherm.
Als je up-to-date wilt zijn, kun je CVS versies van GNUMail.app (en
Pantomime) gebruiken. Ludovic en zijn vrienden werken zeer hard en zorgen
bijna iedere dag voor nieuw, verbeterd spul. Het is dus wel de moeite waard
om de broncode die je hebt gebruikt om de eerste versie te compileren, te
bewaren. Het kan ook zijn dat een update van GNUstep (en CVS) nodig is, of
een Developer Tools update van Apple, indien beschikbaar. Voor deze laatste
moet je geregistreerd staan als ontwikkelaar (geen zorgen: het is gratis!).
Nu je zo'n mooie applicatie hebt, wil je er waarschijnlijk ook gebruik van
maken.
GNUMail.app beschikt over een fraai menu met instellingen, waarmee de het
configuratieproces heel eenvoudig wordt. Dit paneel is verdeeld in
verschillende secties: persoonlijk, lezen, verzenden, ontvangen, opstellen,
lettertypes, MIME en filters.
Zoals de naam al aangeeft bevat de persoonlijke sectie de persoonlijke
gegevens: naam, e-mail adres, signature.
De lees sectie is gericht op het defini�ren van de headers die moeten
weergeven worden in berichten en het markeren van URL's in het bericht.
De verzending sectie gaat over... verzendingsmethodes. Hier kun je de
transportmethode instellen, je gebruikersnaam, wachtwoord, enz.
De ontvangstsectie gaat over hoe mail te ontvangen. Hier kun je de
server(s) voor inkomende e-mail instellen.
Het deel over het schrijven van mail definieert dingen als de positie van de handtekening, de
regelbreedte, enz.
In het lettertypepaneel kun je de lettertypes selecteren die gebruikt
worden om berichten weer te geven.
Het MIME paneel stelt je in staat in te stellen welke data je als attachments
wilt zien (plaatjes, documenten zoals PDF...)
En het filterpaneel tenslotte, is de plaats waar je de regels voor het
fiteren kunt instellen.
Zoals je ziet is het configuratieproces eenvoudig en gebruikersvriendelijk.
Het idee was natuurlijk om je te laten zien hoe het eruit ziet onder GNUstep
en MacOS X.
Het gebruik van GNUMail.app is zo vanzelfsprekend, dat er geen apart
hoofdstuk voor nodig is. Onder MacOS X kun je gewoon op het GNUMail pictogram
klikken in de 'Finder', en dat is alles. Uiteraard kun je ook een nieuw
pictogram in de 'dock' plaatsen. Als de applicatie draait is het voldoende om
te klikken op de pictogrammen die zich boven de geopende mailbox
(standaard de inbox) bevinden, om een bericht te wissen, mail op te halen of
te verzenden, andere mailboxen te openen, een mailtje op te stellen, een bericht te
beantwoorden of door te sturen of om je mailboxen te doorzoeken.
Het 'main menu' biedt dezelfde mogelijkheden plus nog een paar andere. De
belangrijkste opties hebben sneltoetsen. Dit menu werkt ook als een popup
menu.
Onder GNUstep verschilt alleen de methode om het programma de eerste keer op te
starten. Als je gewend bent aan GNUstep, weet je dat je het commando
openapp in combinatie met het pad moet gebruiken. Als je Window Maker
als voorkeurs window manager hebt staan (aan te raden!), krijg je een
appicon: slepen naar de dock volstaat... daarna hoef je geen commando's meer
te typen om GNUmail.app te starten.
Het belangrijkste lijkt te zijn dat GNUMail.app zeer stabiel is geworden. Er
is een behoorlijk verschil te merken ten opzichte van eerdere versies,
vooral onder GNUstep. Na een paar weken gebruik, heb ik nog geen enkele crash
meegemaakt. GNUMail.app is nu perfect bruikbaar als alledaags mailprogramma.
Onder MacOS X was het al stabiel voor versie 1.0.
GNUMail.app kunnen we beschouwen als een experiment van portabiliteit.
Maar het is een werkend experiment! Zeker, vele andere mail clients
beschikken over meer features. Aan de andere kant is GNUMail.app de eerste
echte applicatie die draait onder zulk verschillende omgevingen als MacOS X
en GNUstep met de absoluut dezelfde broncode. Ludovic werkt ook aan een ander
project, dat minder geavanceerd, maar zeker interessant is.
Het draagt de naam Affiche, en is een "post-it" implementatie, ook weer voor
zowel MacOS X als GNUstep. De website bevat ook EasyDiff, een grafische diff
van Pierre-Yves Rivaille, en draait alleen onder GNUstep, op dit
moment tenminste.
Indien veel mensen sceptisch waren over portabiliteit tussen MacOS X en
GNUstep, dan heeft Ludovic het bewijs geleverd. Uiteraard is er nog een lange weg te
gaan voordat GNUstep compleet is, maar desalniettemin gaat het ontwikkelen
constant door. We moeten iedereen feliciteren die heeft bijgedragen aan
GNUstep. De belangrijkste reden is de enorme hoeveelheid werk die een
dergelijk project oplevert en de tweede is het feit dat er maar een paar
personen bij betrokken zijn. Hartelijk dank aan Adam Fedor en vrienden voor
een dit prachtige stuk software.
Nogmaals, het moge duidelijk zijn dat iedere ontwikkeling afhankelijk is van
de vooruitgang van GNUstep. Op dit moment zijn er veel werkende toepassingen,
hoewel de meeste nog in de beginfase zitten. De omgekeerde weg zou het
proces gunstig kunnen be�nvloeden: dat wil zeggen, het meeste werk gebeurt
momenteel onder GNUstep, maar we kunnen hopen op meer ontwikkeling onder
MacOS X met overdraagbaarheid in het achterhoofd. Trouwens, dit zou ook een
fantastisch beginpunt kunnen zijn voor echt multi-platform applicaties.
In een tijd waar het klonen van Windos de regel lijkt te zijn, is een alternatief
als dit een zegen. Als het modewoord van vandaag
open is, dan is GNUstep het model.
Een deel van de Linux gemeenschap wacht op het moment dat hun systeem is
verspreid over de desktops... of zelfs de "wereld dominatie"!!! Kom op, een
monopolie, vrij of niet, blijf een monopolie... en naast andere dingen,
moedigt een monopolie niet echt aan tot creativiteit. Diversiteit is
belangrijker, het moedigt bijv. rivaliteit aan, en dus niet het "klonen" van
een pseudo standaard (en diens applicaties), alsof de ontwikkelaar de waarheid in
pacht had en zijn programma een abolute referentie zou zijn.
Zo'n 15 jaar geleden ontketende NeXTSTEP een revolutie in de Unix wereld: het
stelde mensen in staat Unix te gebruiken zonder gehinderd te worden door
enige kennis ervan! Net als vandaag de dag MacOS X. In feite is Linux nog ver van
dit punt verwijderd, zelfs met het klonen van het "verkeerde" voorbeeld. Je hebt
misschien opgemerkt dat GNUstep GEEN Windos kloon is (eindelijk, ik heb het
gezegd!). Het is een vrije implementatie van de "zoon" (Openstep) van het
meest innovatieve OS ooit (NeXTSTEP).
Om verwarring te voorkomen: GNUstep is een soort geraamte, een framework, en wordt
een (lichte) destkopomgeving zodra je apliclicaties toevoegt... zoals GNUMail.app.
Nog belangrijker, GNUstep is niet beperkt tot Linux.
Tijdens de jaren '80, waren er veel, sterk verschillende OS'en. Nu bestaat de
keus uit Unix of Windos: het is jammer. Niettemin, ik geef de voorkeur aan
een wereld waarin we kunnen kiezen uit voldoende systemen: hoe meer hoe
beter.
Al met al hebben we geluk: we hebben veel verschillende Unixen, en de meeste
daarvan zijn in staat GNUstep te draaien!
Tot zover het gebruikelijke off topic gedeelte, welke overigens alleen mijn
mening weergeeft.
Terug naar GNUMail.app, kunnen we hopen dat het veel ontwikkelaars zal
inspireren. Gebruikers van MacOS X hebben geluk met hulpmiddelen zoals
InterfaceBuilder (en ProjectBuilder). Het gebruik van deze tools kan hun
leven veranderen. In de zeer nabije toekomst kunnen we verwachten dat Gorm en
ProjectCenter hetzelfde doen als hun voorbeelden, en zo GNUstep tot "must have"
maken.
Met dank aan Ludovic voor het tonen van de juiste weg.
Had ik reeds verteld in wat voor geweldige tijd we leven?
Het thuis van GNUMail.app:
http://www.collaboration-world.com/gnumail/
Alles over GNUstep: http://www.gnustep.org
Nog meer over GNUstep: http://www.gnustep.net
Toepassingen, turorials en HOWTOS door Nicola Pero en Pierre-Yves Rivaille: http://www.gnustep.it
Apple MacOS X Ontwikkelaar Tools: http://developer.apple.com/tools/macosxtools.html