Als iemand die cross-platform software levert, kan ik daar een toelichting op geven.
Ten eerste kan je van Windowsgebruikers niet verwachten dat ze een compiler, CMake, Qt, etc... geïnstalleerd hebben op hun systeem. Dus eventjes een hoop source code met een CMakeList dumpen en zeggen "trek je plan" is niet zo evident op Windows (ook al omdat het proces een stuk moeilijker is dan op Linux), terwijl op Linux "installeer cmake en libqt4-dev, doe cmake . && make && make install" al een pak eenvoudiger en alledaagser is.
Ten tweede is het maken van een installer op Windows papgemakkelijk. Ik kan knus vanuit mijn vertrouwde OS en editor (OS X en Vim respectievelijk) iets in elkaar kwakken wat hier op lijkt:
https://github.com/SeySayux/mmm/blob/master/mmm.nsi . Zoals je kan zien niet meer dan een opsomming van alle bestanden.
Wil ik voor pakweg Ubuntu een pakket maken en op een PPA zetten, moet ik het volgende doen:
• Start mijn Ubuntu VM of erger, switch naar een andere computer.
• Check de broncode uit.
• Installeer een of ander dubieus scriptje, laat dat er over draaien — dit maakt een map "/debian" aan met een hoop metadata.
• Bouw en installeer het programma. Kijk waar bestanden worden geïnstalleerd. Kwak die lijst in een bestand onder /debian.
• Schrijf een file die vertelt wat de versie is van het programma, veranderingen aan het programma in deze versie, dependencies, build dependencies, reproduceerbare build-instructies en een hoop andere metadata. Waarschijnlijk mag je ook nog eventjes je stuk software in 2-3 pakketen splitsen (dev, lib en bin), doe dat voor die alle 3.
• Kijk of het werkt. Bouw het deb-pakket. Installeer het. Okee, ziet er goed uit.
• Download één of andere Ubuntu-only tool om je pakket naar de server van Launchpad te sturen. Vloek nog een beetje omdat je eerst nog een ssh-key en wat andere prul moet opzetten. Vloek nog wat omdat de instructies erg outdated waren en omdat twee verschillende sites verschillende instructies hebben. Tar alles up, en naar Launchpad.
• Krijg een mail van launchpad: build mislukt. Oeps, dependency vergeten, Launchpad heeft een iets andere build-environment, build-instructie lichtjes incorrect, or all of the above. Fix de bug, maak een nieuwe versie van het programma (maak hiervoor een entry in de changelog!), en probeer opnieuw.
• Herhaal totdat launchpad je programma built of totdat je opgeeft.
Proficiat, je hebt nu een installer voor 1 versie van Ubuntu! Nu nog voor de andere ondersteunde versies, x86 en x64 (probeer maar eens een x86-pakket op x64 te gebruiken) en misschien ook nog Mint, Fedora, SuSE, Mandriva, Debian, Gentoo...
Op dat moment zeg je "screw it, dit is de installatieprodedure voor Linux: git clone
http://github.com/SeySayux/libsylph.git; cd libsylph; cmake . && make && make install"
Dit is een waargebeurd verhaal.
- SeySayux