Build Service

De openSUSE Build-service is een open en compleet distributie-ontwikkelplatform dat voorziet in een infrastructuur om openSUSE distributies te ontwikkelen.

De service biedt softwareontwikkelaars een hulpmiddel om opensource-software gemakkelijk te maken en uit te geven voor openSUSE en andere Linux distributies, op verschillende hardware architecturen en voor een breed publiek. Gebruikers kunnen gemakkelijk de nieuwste door hen gezochte opensource pakketten vinden en deze aanpassen. Dit levert een brug tussen ontwikkelaars en gebruikers met terugkoppeling en waarderingsfunctie. Voor ontwikkelaars is het door het projectmodel een efficiënte plek om een groep op te bouwen en samen te werken.

Inhoud


Mogelijkheden


In de introductie hierboven vertelden we dat de Build-service een compleet distributie-ontwikkelplatform is die een infrastructuur creëert die benodigd is voor het ontwikkelen van toekomstige op openSUSE gebaseerde distributies.

Het systeem heeft ook de mogelijkheid om software te compileren en te verpakken voor andere Linux distributies zoals Fedora, Debian, Ubuntu, en vele andere.

OpenSUSE gebruikers kunnen eenvoudig door de gebruikerszijde van de webinterface bladeren op http://software.opensuse.org/ en daar de laatste pakketten downloaden.

Open interfaces maken het mogelijk dat andere diensten (zoals SourceForge) en webpagina's contact kunnen leggen met de Build Service om zo ook van de diensten gebruik te kunnen maken.

In een gevorderd stadium zal het toegankelijk zijn voor iedereen voorzien van gebruiks/vertrouwensrelatie en het zal mogelijk zijn verdere bouwdoelen te maken (zoals LSB en Xen images).

Voordelen


voor gebruikers

  • Het verkrijgen van de nieuwste software versies voor hun distributie. Door een vertrouwensrelatie in de build-service kan de gebruiker aangeven "Ik vertrouw het project xy". Daarna kan hij alleen pakketten van dit project installeren.
  • Het verkrijgen van upgrades voor oudere distributies. (Zoals het verkrijgen van KDE 3.5.7 voor SL 10.0)
  • Meer eenheid tussen de verschillende distributies. Pakketten uit de build-service kan mensen bij elkaar brengen door de gedachte "Waarom doen zij zoiets? Waarom gebruiken zij die mappen? Ik wil dit ook voor mijn distributie". (maar dat is iets voor de toekomst... :-)
  • U kunt gemakkelijk software vinden en installeren via de Eindgebruiker-interface. Bovendien kunt u ook handmatig installeren via een pakketbeheerder, zie hier voor gedetailleerde instructies.

Kijk naar de video.

voor ontwikkelaars

openSUSE Build Service Developer Web Interface
Enlarge
openSUSE Build Service Developer Web Interface
  • Er zijn geen "compileer boerderijen" of andere soorten hardware nodig om een pakket voor verschillende architecturen te maken.
  • Maak betere software: sommige softwareprojecten gebruiken nog steeds 16bit processen en vragen zich af waarom hun code niet compileert op 32bit of 64bit platvormen.
  • Het automatisch oplossen van afhankelijkheden tot andere pakketten. Als een pakket afhankelijk is van een ander pakket zal dit eerste pakket automatisch voor een herbouw in aanmerking komen als deze afhankelijkheid opnieuw wordt gebouwd.
  • Linken naar andere projecten: Patches kunnen worden getest met de nieuwste pakketten van andere projecten. Bijvoorbeeld: een ontwikkelaar heeft een patch voor Amarok en wil dat testen in een speciale omgeving. Hij kan een link naar het KDE project leggen en deze als ruimte voor zijn eigen testen gebruiken. Het resultaat: zijn gepatchte versie van Amarok zal altijd opnieuw worden gebouwd als het KDE project een nieuwe bouwversie voorbereid.
  • Bouw uw software voor meervoudige Linux-distributies.

Voor ingebedde ontwikkelaars

De OBS versie die kruisontwikkeling ondersteunt met de qemu-emulator is uitgegeven in de normale OBS-code. Ook ondersteuning voor arm is geactiveerd in de publieke OBS. Het gebruik van de lokale bouw mogelijkheid via osc/build is ook volledig ondersteund. Voor technische informatie lees de kruisontwikkeling concepten en voorbeeld. Gebruik van QEMU ARM tot ARMv7 EABI en VFPv3 is in een bruikbare staat. Er bestaan drie klassen in de planning voor arm: armv4l, armv5el en armv7el.

Er is een tweede benadering die is gebruikt voor powerpc-architectures. PowerPC is een goed ondersteunde serverarchitectuur en de OBS ondersteunt ook het gebruik van op powerpc-machines. Vanwege beveiligingsbeperkingen zijn de powerpc-werkers in de publieke OBS nog niet beschikbaar voor openbaar gebruik. Zie de OBS-route voor meer details over wat er ontbreekt en wanneer het beschikbaar zal zijn. Niettemin kan powerpc nu gebruikt worden in de privé OBS installaties als u een powerpc-machine met Linux hebt draaien voor de OBS-werkers of het lokale bouwproces (chrooted OBS-werkers, lokale builds).

voor distributeurs

  • De build-service kan het eenvoudig bouwen van complete distributies of aangepaste images doen om te worden gebruikt op verschillende manieren. De eerste versie van KIWI om images voor het booten via een netwerk of het gebruik in Xen of VMware image is al vrijgegeven.

Route


We hebben een build-service-route en we onderhouden ook een logboek van kleinere veranderingen alsook enige groene weiden concepten.

Een lijst van voorgestelde mogelijkheden is beschikbaar in openFATE.

Hoe te gebruiken


De Build-service handleiding is online beschikbaar en nu nog een werk in uitvoering. De DocBook broncode voor de handleiding is via SVN beschikbaar (zie onder) en patches zijn welkom.

openSUSE Build Service Developer Web Interface
Enlarge
openSUSE Build Service Developer Web Interface

De build-service kan worden gebruikt via het Web Interface, via de commandoregelhulpmiddel of door enig ander hulpmiddel gebruik makend van de publieke API. Verpakkers zouden misschien ook de kruisdistributiepakket-inleiding en de build-service-inleiding willen lezen.

Om in te loggen in de build-service moet u beschikken over een Novell account. Voor meer informatie lees de login-sectie in de build-service-inleiding.

Enkele hints kunnen worden gevonden op de build-service tips & trucs site.

Google Summer of Code


Er zijn een paar voorstellen voor projecten gerelateerd aan de build-service voor Google's Summer of Code 2009. Zie de Build Service ideas on the GSoc pagina.

Projecten uit voorgaande jaren:

Build service broncode


SVN installatiebron

De bron en documentatie van het build-service hulpmiddel zijn gehost op forge.novell.com. Deze installatiebron bevat de bronnen voor client hulpmiddelen alsook voor de servers.

Gebruik het volgende commando voor het bekijken van de broncode: svn co https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice

Pakketten

Pakketten zijn aanwezig in de build-server. De pakketten kunnen worden gevonden in de openSUSE:/Tools repository. Zoek naar pakketten genaamd obs-* (openSUSE Build-Server).

Hoe mee te doen

Zoals met de meeste openbron projecten, start met het schrijven van patches of een concept van wat je van plan bent te gaan ontwikkelen. Mensen die hebben bewezen dat ze werkende code afleveren krijgen toegang tot de SVN verzamelplaats.

Er zijn een paar kleinere projecten die een goede start zijn voor het ontdekken van de code en het meedoen met het ontwikkelteam.

Documentatie

  • De build-service-inleiding wiki-pagina laat de eerste stappen zien in het maken van uw eigen projecten en pakketten.
  • We hebben twee presentaties van FOSDEM over de build service. De eerste geeft een overzicht van het idee van de build service en zijn architectuur. De tweede beschrijft het projectmodel in detail en legt uit hoe je moet bouwen voor meerdere distributies, waaronder openSUSE, Fedora, Mandriva en Debian.
  • Een belangrijk stuk in de documentatie over de API. De API is een simpele en generieke interface om te werken met de build-server. Je kan het gebruiken om het te integreren in je hulpmiddel om code-updates te sturen, de huidige status van je projecten te controleren of iets totaal anders.
  • Vind je de Web Frontend of het commandoregelhulpmiddel niet mooi? Je kan het verbeteren of je eigen versie ervan schrijven. De broncode voor beide is beschikbaar in de forge verzamelbak.

Contact

Meld je aan voor de opensuse-buildservice mailinglijst (archief). Feedback is welkom, nog meer welkom zijn patches, nieuwe hulpmiddelen en nieuwe ideeën.

Enkelen van ons hangen ook rond op het #openSUSE-buildservice kanaal van freenode.

U kunt bugs rapporteren voor de build-service middels Bugzilla.

Uw openSUSE Build-service Team

Build-service-clients


De architectuur die gebaseerd is op de REST API staat toe gemakkelijk verschillende clients te schrijven. Dat geeft ons de kans om aan de wensen van gebruikers met verschillende ervaringen te voldoen.

Web Client

De Web-gebaseerde cliënt voor de openSUSE Build-service geeft op een gemakkelijke manier toegang tot de Build-service en is de meest complete grafische interface.

Commandoregel-clients

De osc commandoregelcliënt geeft toegang tot alle functies in de Build-service en is het meest complete commandoregelinterface:

Indien u een build-service ontwikkelaar bent kan het zijn dat u geinteresseerd bent in het gebruik van de build-service REST API direct via curl:

KDE Rich Client

Er is een Google Summer of Code-project geweest dat begonnen is met de implementatie van een KDE Rich Client. Voor meer informatie zie Rich Client

Grafisch gebruikersinterface en framework MonoOSC-projectlogo van Robert Lihm <rlihm@suse.de>


openSUSE Build-service grafisch gebruikersinterface voor de ontwikkelaar

MonoOSC is project dat bestaat uit twee delen. Een CSharp, C#, bibliotheek voor toegang tot de openSUSE Build-service, OBS. Het tweede gedeelte is een mooie GUI die hiervan gebruik maakt. MonoOSC vereist de Mono 2.1 versie van de distributie. Meer informatie is hier (ontwikkeling in uitvoering) : http://sourceforge.net/projects/monoosc/ openSUSE pakketbron voor Build-service : http://download.opensuse.org/repositories/home:/surfzoid/

Door/voor gebruikers

Build_Service/PoweredBy - lijst van mensen die een lokale versie van de openSUSE Build-service draaien. Voeg uzelf of uw bedrijf toe als u een lokale versie van de openSUSE Build-service draait.

Projectsamenwerkingsmodel

Build_Service/Collaboration - De Build-service verschillende manieren van samenwerking die in deze wiki zijn vermeld.

Afkomstig van openSUSE NL, de Vrije Encyclopedie. "http://nl.opensuse.org/Build_Service"