[[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 ([http://nsis.sourceforge.net/Main_Page 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 [http://wixtoolset.org/documentation/ 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 [wiki:Documentatie/Beheerder/Installeren/StarterKit 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/ bestaat zo niet maak deze als root aan. Geef deze directory recursief de ownership 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/ 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 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//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 [wiki:Documentatie/Beheerder/Installeren/StarterKit 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. [[Image(wixtools.png, align=center, class=inline)]] 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.