wiki:Documentatie/Ontwikkelaar/Procedures/Starterkit

Version 4 (modified by peter, 6 years ago) (diff)

--

TOC(heading=Procedures, sectionindex, compact, depth=3, allactive, Documentatie/Ontwikkelaar/Procedures/)? TOC(heading=Ontwikkelaar, sectionindex, compact, depth=2, allactive, Documentatie/Ontwikkelaar/)? TOC(heading=Documentatie, sectionindex, compact, depth=1, allactive, Documentatie/)?

Starterkit

De starterkit wordt gemaakt met NSIS (NullSoft Scriptable Installation System). NSIS heeft een beperkt script-taaltje; daarmee kan je een paar configuratie-vragen stellen en vervolgens OpenAC met een specifieke configuratie op een bepaalde plek installeren.

Vanaf OpenAC v2.016 kan er ook met WiX toolset een MSI installer gemaakt. Deze installer integreert volledig met het Windows Add/Remove Programs concept en is wellicht makkelijker te integreren in automatische roll-outs.

Algemeen

De starterkit wordt gemaakt door het script bin/starterkit.py. Gebruik --help voor configuratie-opties bij het maken van de starterkit. Gebruik -v om een OpenAC versie op te geven en -r voor een specifieke revisie. Als je geen -r doet, dan doet hij de nieuwste revisie van dat moment.

De versie die je bij -v opgeeft, is de naam van een inmiddels aangemaakte release/ branch is. De "v" in een versie-nummer is optioneel, dus -v 2.002 is hetzelfde als -v v2.002. Er wordt een checkout gemaakt van die versie, samen met de Python runtime, dan wordt van de template NSIS-file een specifiek installer-script gemaakt en met makensis tot een starterkit.exe gemaakt. Op de OpenAC server duurt dit ongeveer 20 minuten in totaal.

De resulterende executable mag naar de downloads folder worden gekopieerd. Er worden MD5 en SHA1 checksums geprint voor gebruik in de release notes en op de pagina over de starterkit in de beheershandleiding.

Verdere command-line opties voor starterkit.py zijn:

  • --debug om debug-logging aan te zetten en de sessie-log weg te schrijven naar sessie.log in de huidige directory.
  • --skip-nsis om geen NSIS (installer-executable) te maken ook al zou dat kunnen.
  • --skip-wix om geen WiX (MSI installer) te maken ook al zou dat kunnen.
  • --skip-checkout om geen nieuwe checkout te doen; dit is alleen handig in combinatie met --workdir, en dan vooral als je de tools aan het aanpassen bent zodat je niet steeds ook op het netwerk en de checkout hoeft te wachten.
  • --workdir (of -d) om aan te geven waar gewerkt moet worden in plaats van in een tijdelijke directory. Geef een pad op dat al bestaat; checkouts worden in de workdir gedaan.

NSIS

Op de OpenAC server is makensis geinstalleerd. Soms zijn er Linux packages voor; op SourceForge is in ieder geval een setup.exe beschikbaar voor Windows. Installeer NSIS en zorg dat je vanuit de shell makensis aan kunt roepen. Om een starterkit te maken heb je verder een checkout van development nodig (of in ieder geval development/bin), makensis en een shell.

Op dit moment is de procedure op de NSIS starterkit te bouwen alleen op de FENAC server (Dit werkt nog niet op de Ubuntu dev-server 02-02-2018):

stap 1. Inloggen via root op fenac.nl

stap 2. Kijk of de directory /home/<usernaam> bestaat zo niet maak deze als root aan.

Geef deze directory recursief de ownership <usernaam> group fenac of users. Dit kan via mc => file. In deze directory gaan we de checkout doen van de setup-build tools

stap 3. su naar bob (Men heeft bewust gekozen om normale track users geen bash omgeving te geven. Dit is geloof ik via ssh config ingesteld)

stap 4. Doe een df. Kijk of er 2200 Mb beschikbaar is, zo niet

  • Kijk of je /home/adriaan/<versie> kunt deleten of die van een andere user.
  • Kijk of je logfiles kunt deleten. Een versie sourcetree is 990Mb in Windows anno 02-02-2018.

stap 5. Ga nu de bin/starterkit build omgeving binnen halen (z.g.n. bin checkout doen)

Voer het volgende in je bash/ssh

SVN=https://svn.openac.fenac.nl/
svn co $SVN/development/bin  

stap 6. Start de build van een setup

python bin/starterkit.py -v 2.XXX

Na verloop van tijd krijg je wat output, die vertelt waar de resulterende starterkit-executable staat. Er wordt ook een standaard release-blurb getoond die je naar de starterkit-pagina kunt kopieren. De laatste stappen die je nu kunt uitvoeren:

stap 7. Wijzig de huidige "normale" user naar root zodat je meer rechten hebt voor de volgende bash commando's. (Een normale user toevoegen aan de sudogroup gaat nog kan nog niet op deze server waardoor sudo <username> niet werkt.)

stap 8. "Age" de vorige exe door oude file te hernoemen naar .old of .old.2

   cd /srv/www/static/openac-downloads
   mv openac-v2.100-starterkit.exe openac-v2.100-starterkit.exe.old

stap 9. Verplaats de aangemaakte setup exe naar de download directory. Gebruik mark + copy en plak actie in bash windows om de filebron goed te plakken in het commando. (. is de active directory van de bash.)

mv /tmp/<tmpxyzrandom>/openac-v2.100-starterkit.exe .

stap 10. Maak de ownership van deze exe file als

chown trac:fenac openac-v2.100-starterkit.exe

stap 11. Controleer de grootte en eigenaar van de file in /srv/www/static/openac-downloads

  ls -al *v2.1* 

stap 12. Kopieer de blurp-tekst die de starterkit heeft gegeven naar de starterkit in de beheershandleiding. Voorbeeld van de script output: (De blurp-tekst staat tussen de dubbele begin en eind brackets)

[2018-02-02 11:55:03]:INFO:root:Release blurb:

[[NoteBox(download, Download [/downloads/openac-v2.100-starterkit.exe hier] de starterkit voor versie 2.100. 
Als je de download wilt controleren, dan is de hash SHA256:`4f2ea861f440fd95e6ce1b3f7a47d8aa2486a0857fbe0021a653dd33c09a8b48`, 
en de grootte is 230522611 bytes. Deze starterkit geeft OpenAC v2.100 r44418 van 02 februari 2018. Bijwerken na installatie.)]]

WiX

De WiX toolset draait onder Windows. Installeer het vanaf de WiX toolset pagina. Versie 3.11 is de courante versie en het starterkit-script verwacht dat het geinstalleerd is en in het pad van de command-prompt te vinden is.

De WiX tools werken vanaf een of meer XML bestanden (.wxs) als een compiler chain: .wxs wordt eerst gecompileerd naar een object-file (.wixobj) en dan worden een of meer object-files samengevoegd tot een MSI installer.

De toolset raadt zelf aan om de XML bestanden met de hand te schrijven. Een deel daarvan is nodig, maar voor zoiets als de Python runtime is het ondoenlijk. Er zijn ook tools om uit een geinstalleerde mappen-structuur een .wxs te genereren. Het diagram laat zien hoe het (schematisch) werkt.

No image "wixtools.png" attached to Documentatie/Ontwikkelaar/Procedures/Starterkit

Het starterkit.py script gebruikt heat.exe om voor de OpenAC sources en voor de Python runtime een .wxs te maken, en compileert die; ook de handgeschreven starterkit.wxs wordt gecompileerd, en het geheel samengevoegd tot een installer.

Er staat versie-informatie in starterkit.wxs. In het bijzonder is het absoluut noodzakelijk om een nieuwe upgrade-code (regel 5) te maken als je een nieuwe installer maakt (niet vergeten om die nieuwe UUID te committen!) omdat je anders geen upgrade pad hebt en je eerst OpenAC moet deinstalleren voordat je de MSI kunt installeren.

Het uitgeven van nieuwe MSI installers is dus een zwaardere, en duurdere, operatie dan de starterkit executable.