Bijlage A. FreeBSD verkrijgen

A.1. CD-ROM en DVD uitgevers

A.1.1. Winkelproducten in doos

FreeBSD is beschikbaar in een doos (FreeBSD CD-ROMs, additionele software en gedrukte documentatie) bij verschillende verkopers:

A.1.2. CD-ROMs en DVD’s

FreeBSD CD-ROMs en DVD’s zijn te koop bij veel online winkels:

A.1.3. Distributeurs

Wederverkopers die FreeBSD CD-ROM producten willen verkopen kunnen contact opnemen met een distributeur:

A.2. FTP sites

De officiële broncode voor FreeBSD is beschikbaar via anoniem toegankelijke FTP in de hele wereld via vele mirrorsites. De site ftp://ftp.FreeBSD.org/pub/FreeBSD/ heeft een goede verbinding en staat veel verbindingen toe, maar het is waarschijnlijk beter om een mirrorsite te zoeken die "dichterbij" is (zeker als het doel is ook een soort mirrorsite op te zetten).

FreeBSD is beschikbaar via de onderstaande anonieme FTP mirror sites. Bij het kiezen van anonieme FTP voor het verkrijgen van FreeBSD wordt aangeraden een site die dichtbij ligt te kiezen. De mirrorsites die in de lijst staan als "Primaire Mirrorsites" hebben meestal het complete FreeBSD archief (alle beschikbare versies voor alle architecturen) maar downloads zijn waarschijnlijk sneller van een site die in het land of de regio van de gebruiker staat. De regionale sites hebben de meeste recente versies voor de meest populaire architecturen, maar hebben wellicht niet het complete archief. Alle sites geven toegang via anonieme FTP, maar een aantal sites hebben ook andere toegangsmogelijkheden. De toegangsmogelijkheden voor iedere site staan tussen haakjes achter de hostnaam.

(as of UTC)

Central Servers

Primary Mirror Sites

In case of problems, please contact the hostmaster <mirror-admin@FreeBSD.org> for this domain.

Armenia

In case of problems, please contact the hostmaster <hostmaster@am.FreeBSD.org> for this domain.

Australia

In case of problems, please contact the hostmaster <hostmaster@au.FreeBSD.org> for this domain.

Austria

In case of problems, please contact the hostmaster <hostmaster@at.FreeBSD.org> for this domain.

Brazil

In case of problems, please contact the hostmaster <hostmaster@br.FreeBSD.org> for this domain.

Czech Republic

In case of problems, please contact the hostmaster <hostmaster@cz.FreeBSD.org> for this domain.

Denmark

In case of problems, please contact the hostmaster <hostmaster@dk.FreeBSD.org> for this domain.

Estonia

In case of problems, please contact the hostmaster <hostmaster@ee.FreeBSD.org> for this domain.

Finland

In case of problems, please contact the hostmaster <hostmaster@fi.FreeBSD.org> for this domain.

France

In case of problems, please contact the hostmaster <hostmaster@fr.FreeBSD.org> for this domain.

Germany

In case of problems, please contact the hostmaster <de-bsd-hubs@de.FreeBSD.org> for this domain.

Greece

In case of problems, please contact the hostmaster <hostmaster@gr.FreeBSD.org> for this domain.

Hong Kong

Ireland

In case of problems, please contact the hostmaster <hostmaster@ie.FreeBSD.org> for this domain.

Japan

In case of problems, please contact the hostmaster <hostmaster@ie.FreeBSD.org> for this domain.

Korea

In case of problems, please contact the hostmaster <hostmaster@kr.FreeBSD.org> for this domain.

Latvia

In case of problems, please contact the hostmaster <hostmaster@lv.FreeBSD.org> for this domain.

Lithuania

In case of problems, please contact the hostmaster <hostmaster@lt.FreeBSD.org> for this domain.

Netherlands

In case of problems, please contact the hostmaster <hostmaster@nl.FreeBSD.org> for this domain.

New Zealand

Norway

In case of problems, please contact the hostmaster <hostmaster@no.FreeBSD.org> for this domain.

Poland

In case of problems, please contact the hostmaster <hostmaster@pl.FreeBSD.org> for this domain.

Russia

In case of problems, please contact the hostmaster <hostmaster@ru.FreeBSD.org> for this domain.

Saudi Arabia

In case of problems, please contact the hostmaster <ftpadmin@isu.net.sa> for this domain.

Slovenia

In case of problems, please contact the hostmaster <hostmaster@si.FreeBSD.org> for this domain.

South Africa

In case of problems, please contact the hostmaster <hostmaster@za.FreeBSD.org> for this domain.

Spain

In case of problems, please contact the hostmaster <hostmaster@es.FreeBSD.org> for this domain.

Sweden

In case of problems, please contact the hostmaster <hostmaster@se.FreeBSD.org> for this domain.

Switzerland

In case of problems, please contact the hostmaster <hostmaster@ch.FreeBSD.org> for this domain.

Taiwan

In case of problems, please contact the hostmaster <hostmaster@tw.FreeBSD.org> for this domain.

Ukraine

United Kingdom

In case of problems, please contact the hostmaster <hostmaster@uk.FreeBSD.org> for this domain.

United States of America

In case of problems, please contact the hostmaster <hostmaster@us.FreeBSD.org> for this domain.

A.3. BitTorrent

De ISO-afbeeldingen voor de basis-CD’s van de uitgaven zijn beschikbaar via BitTorrent. Een verzameling torrent-bestanden om de afbeeldingen binnen te halen is beschikbaar op http://torrents.freebsd.org:8080

De software voor de BitTorrent-cliënt is beschikbaar via de port net-p2p/py-bittorrent, of als voorgecompileerd pakket.

Nadat de ISO-afbeelding met BitTorrent is gedownload, kan het op CD of DVD gebrand worden zoals beschreven in [burncd].

A.4. Subversion-sites

Sinds juli 2012 gebruikt FreeBSD Subversion als het primaire versiebeheersysteem om alle broncode van FreeBSD, de documentatie, en de Portscollectie op te slaan.

Subversion is hoofdzakelijk een gereedschap voor ontwikkelaars. De meeste gebruikers dienen FreeBSD Update te gebruiken om het basissysteem van FreeBSD bij te werken, en Portsnap om de FreeBSD Portscollectie bij te werken.

Het spiegelsite-netwerk voor Subversion van FreeBSD bevindt zich nog in de beginfase en zal waarschijnlijk veranderen. Reken er niet op dat deze lijst van spiegelsites statisch is. In het bijzonder zullen de SSL-certificaten van de servers op een gegeven moment veranderen.

In Subversion worden URLs gebruikt om een depot aan te duiden in de vorm van protocol://hostnaam/pad. Spiegelsites kunnen verschillende protocollen ondersteunen zoals hieronder is gespecificeerd. Het eerste gedeelte van het pad is het FreeBSD-depot wat benaderd moet worden. Er zijn drie verschillende depots, base voor de broncode van het basissysteem van FreeBSD, ports voor de Portscollectie, en doc voor de documentatie. De URL svn://svn0.us-east.FreeBSD.org/ports/head/ specificeert de hoofdtak van het ports-depot op de spiegelsite svn0.us-east.FreeBSD.org, gebruikmakend van het svn-protocol.

Alle spiegelsites bevatten alle depots.

De FreeBSD Subversion hoofdserver, svn.FreeBSD.org, is publiekelijk toegankelijk als alleen-lezen. Dit kan in de toekomst veranderen, dus gebruikers worden aangeraden om een van de officiële spiegelsites te gebruiken. Gebruik http://svnweb.FreeBSD.org om de Subversion-depots van FreeBSD met een webbrowser te bekijken.

NaamProtocollenLocatieSSL-vingerafdruk

svn0.us-west.FreeBSD.org

svn, http, https

Verenigde Staten, Californië

SHA1 79:35:8F:CA:6D:34:D9:30:44:D1:00:AF:33:4D:E6:11:44:4D:15:EC

svn0.us-east.FreeBSD.org

svn, http, https

Verenigde Staten, New Jersey

SHA1 06:D1:23:DE:5E:7A:F7:2B:7A:7E:74:95:5F:54:8D:5C:B0:D6:2E:8F

A.5. Anonieme CVS

A.5.1. Inleiding

Anonieme CVS (of ook wel bekend als anoncvs) is een functie die beschikbaar is met de hulpprogramma’s die bij FreeBSD zitten om te synchroniseren met een elders aanwezig CVS depot. Het staat gebruikers van FreeBSD onder andere toe om zonder bijzondere rechten alleen-lezen operaties uit te voeren op een van de officiële anoncvs servers van het FreeBSD project. Om het te kunnen gebruiken dient de omgevingsvariabele CVSROOT zo ingesteld te worden dat hij wijst naar de gewenste anoncvs server, dient het bekende wachtwoord "anoncvs" bij het commando cvs login opgegeven te worden en kan daarna cvs(1) gebruikt worden om het te benaderen als ieder lokaal aanwezig depot.

Het commando cvs login slaat de wachtwoorden die voor aanmelden bij de CVS server op in een bestand met de naam .cvspass in de map HOME. Als dit bestand niet bestaat, is het mogelijk dat er een foutmelding wordt gegeven als cvs login de eerste keer wordt gebruikt. Dat kan opgelost worden door een leeg bestand .cvspass te maken en dan opnieuw aan te melden.

Hoewel de diensten CVSup en anoncvs beiden vrijwel dezelfde functie invullen, zijn er redenen die de keuze voor de synchronisatiemethode beïnvloeden. In een notendop is CVSup veel efficiënter in het gebruik van netwerkbronnen en is het de meest geavanceerde van de twee, maar daar staat iets tegenover. Voor het gebruik van CVSup moet eerst een speciale client geïnstalleerd en ingesteld worden voordat er bits kunnen gaan stromen en dat kan dan alleen in de redelijk grote brokken die in CVSup_collections_ heten.

Anoncvs kan daarentegen gebruikt worden om alles te bekijken van een individueel bestand tot aan een specifiek programma (als ls of grep) door aan de naam van de CVS module te refereren. Ook anoncvs is alleen geschikt voor alleen-lezen operaties op het CVS depot, dus als het de bedoeling is om lokaal ontwikkelwerk en hetzelfde depot met delen uit het FreeBSD project te combineren, dan biedt alleen CVSup daar een oplossing voor.

A.5.2. Anonieme CVS gebruiken

Het instellen van cvs(1) om gebruik te maken van een Anoniem CVS depot is een kwestie van het instellen van de omgevingsvariabele CVSROOT op een van de anoncvs servers van het FreeBSD project. Op het moment van schrijven zijn de volgende servers beschikbaar:

  • Frankrijk: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (Gebruik cvs login voor pserver-modus en voer het wachtwoord "anoncvs" in wanneer het gevraagd wordt. Voor ssh is geen wachtwoord nodig.)

  • Taiwan: :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs (Gebruik cvs login voor pserver-modus en voer elk willekeurig wachtwoord in wanneer het gevraagd wordt. Voor ssh is geen wachtwoord nodig.)

    SSH2 HostKey: 1024 02:ed:1b:17:d6:97:2b:58:5e:5c:e2:da:3b:89:88:26 /etc/ssh/ssh_host_rsa_key.pub
    SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub

Omdat met CVS vrijwel iedere versie die ooit beschikbaar is geweest "uitgecheckt" kan worden, is het van belang op de hoogte te zijn van de cvs(1) vlag voor revisie (-r) en welke waarden zie zoal kan aannemen in het FreeBSD Project depot.

Er zijn twee soorten labels (tags): revisielabels en taklabels (branch). Een revisielabel refereert aan een specifieke revisie. De betekenis blijft van dag tot dag gelijk. Aan de andere kant refereert een taklabel aan de laatste revisie in een bepaalde ontwikkellijn op een bepaald moment. Omdat een taklabel niet refereert aan een specifieke revisie, kan die morgen anders zijn dan vandaag.

CVS labels bevat revisielabels waar gebruikers in geïnteresseerd kunnen zijn. Nogmaals: deze zijn allemaal niet geldig voor de Portscollectie omdat de Portscollectie geen meerdere ontwikkel takken kent.

Als een specifiek taklabel wordt aangegeven, worden als alles goed gaat, de laatste revisies uit een bepaalde ontwikkellijn ontvangen. Als er een oudere versie opgehaald moet worden, kan dat door met de vlag -D datum een datum aan te geven. In cvs(1) staan meer details.

A.5.3. Voorbeelden

Hoewel het sterk wordt aangeraden eerst de hulppagina’s voor cvs(1) grondig door te lezen, volgen hier een aantal snelle voorbeelden die feitelijk aangeven hoe Anonieme CVS gebruikt kan worden.

Voorbeeld 1. SSH gebruiken om de src/ tree uit te checken:
% cvs -d anoncvs@anoncvs1.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs1.freebsd.org (216.87.78.137)' can't be established.
DSA key fingerprint is 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs1.freebsd.org' (DSA) to the list of known hosts.
Voorbeeld 2. Iets uitchecken uit -CURRENT (ls(1)):
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
Op de prompt, voer een willekeurig wachtwoord in “wachtwoord”.
% cvs co ls
Voorbeeld 3. SSH gebruiken om de src/ structuur uit te checken:
% cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.
Voorbeeld 4. De versie van ls(1) in de 8-STABLE tak uitchecken:
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
Op de prompt, voer een willekeurig wachtwoord in “wachtwoord”.
% cvs co -rRELENG_8 ls
Voorbeeld 5. Een lijst wijzigingen maken (als unified diffs) voor ls(1)
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
Op de prompt, voer een willekeurig wachtwoord in “wachtwoord”.
% cvs rdiff -u -rRELENG_8_0_0_RELEASE -rRELENG_8_1_0_RELEASE ls
Voorbeeld 6. Uitzoeken welke modulenamen gebruikt kunnen worden:
% setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
% cvs login
Op de prompt, voer een willekeurig wachtwoord in “wachtwoord”.
% cvs co modules
% more modules/modules

A.5.4. Andere bronnen

De volgende bronnen kunnen bijdragen aan een beter begrip van CVS:

  • CVS Tutorial van California Polytechnic State University.

  • CVS Home, de CVS gemeenschap voor ontwikkeling en ondersteuning.

  • CVSweb is de FreeBSD Project webinterface voor CVS.

A.6. CTM gebruiken

CTM is een methode om een map elders gesynchroniseerd te houden met een centrale. Het is ontwikkeld voor gebruik met de FreeBSD broncode, hoewel sommigen het ook voor andere doeleinden handig vinden. Er bestaat op dit moment weinig tot geen documentatie over het proces van het maken van delta’s. Voor informatie over het gebruik van CTM kan het beste contact gezocht worden met de ctm-users-desc mailinglijst.

A.6.1. Waarom CTM gebruiken?

CTM geeft een lokale kopie van de FreeBSD broncode. Die is in een aantal "smaken" beschikbaar. Of het gaat om slechts één tak of de complete CVS structuur, CTM kan het bieden. CTM is gewoon gemaakt voor actieve ontwikkelaars die met FreeBSD werken, maar geen of een slechte Internetverbinding hebben of gewoon automatisch de laatste wijzigingen willen ontvangen. De meest actieve takken kennen op z’n hoogst drie delta’s per dag. Het is het overwegen waard om ze per automatische mail te laten sturen. De grootte van de updates wordt altijd zo klein mogelijk gehouden. Meestal kleiner dan 5 K en soms (in tien procent van de gevallen) is het 10-50 K. In uitzonderlijke gevallen komt het voor dat een mail van 100 K of meer wordt gestuurd.

Het is wel van belang op de hoogte te zijn van de valkuilen die een rol spelen bij het direct werken met broncode in plaats van met een voorverpakte release. Dit geldt nog meer als wordt gewerkt met de "current" code. Het lezen van Bijblijven met FreeBSD wordt sterk aangeraden.

A.6.2. Wat is er nodig om CTM te gebruiken?

Voor het gebruik van CTM zijn twee dingen nodig: het CTM programma en de initiële delta’s om de applicatie te voeden en naar een "current" niveau te komen.

CTM is al onderdeel van FreeBSD sinds versie 2.0 is uitgebracht en is te vinden in /usr/src/usr.sbin/ctm, als de broncode aanwezig is.

De "delta’s" voor CTM kunnen op twee manieren komen: met FTP of per e-mail. De volgende FTP sites bieden ondersteuning voor CTM:

Er staan er nog meer in de paragraaf mirrors.

FTP de relevante map en download het bestand README vanaf daar.

Voor delta’s via e-mail:

Er dient een abonnement genomen te worden op een van de CTM distributielijsten. ctm-src-cur-desc ondersteunt de complete Subversion structuur. ctm-src-cur-desc ondersteunt het hoofd van de ontwikkeltak. ctm-src-9-desc ondersteunt de 9.X release tak, enzovoort. Om te abonneren kan geklikt worden op de bovenstaande links of via http://lists.freebsd.org/mailman/listinfo kan in een lijst geklikt worden op de lijst waarvoor een abonnement gewenst is. De lijstpagina bevat instructies over hoe te abonneren.

Na het ontvangen van CTM updates per mail, kan ctm_rmail gebruikt worden voor het uitpakken en verwerken. ctm_rmail kan zelfs direct vanuit /etc/aliases gebruikt worden om het proces volledig automatisch te laten verlopen. In de hulppagina van ctm_rmail staan meer details.

Welke methode ook gebruikt wordt voor de CTM delta’s, het is belangrijk een abonnement te nemen op de ctm-announce-desc mailinglijst. In de toekomst worden alleen op die lijst aankondigingen gedaan over het CTM systeem. Abonneren kan door op de link hierboven te klikken en de instructies te volgen.

A.6.3. CTM de eerste keer gebruiken

Voordat de CTM delta’s gebruikt kunnen worden, moet er een startpunt voor bepaald worden.

Eerst moet bepaald worden wat er al is. Het is mogelijk te beginnen vanuit een "lege" map. Dan moet een initiële "Empty" delta gebruikt worden om een door CTM ondersteunde structuur te starten. Het is de bedoeling dat deze "start" delta’s ooit voor het gemak op de CD-ROM komen te staan, maar dit is nog niet het geval.

Omdat de structuren tientallen megabytes groot zijn, heeft het de voorkeur om al met iets te beginnen. Als er een -RELEASE CD-ROM beschikbaar is, kan de initiële broncode gekopieerd of uitgepakt worden. Dit bespaart nogal wat dataverkeer.

De "start" delta’s kunnen herkend worden aan de X die aan het nummer is toegevoegd (bijvoorbeeld src-cur.3210XEmpty.gz). De nummering achter de X komt overeen met de oorsprong van het initiële "zaad". Empty is een lege map. Er wordt in het algemeen iedere honderd delta’s een basistransitie voor Empty gemaakt. Die zijn trouwens groot: 70 tot 80 Megabytes gzip data is normaal voor de XEmpty delta’s.

Als er een delta als startpunt is gekozen, zijn ook alle delta’s met hogere volgnummers nodig.

A.6.4. CTM in het dagelijks leven gebruiken

Om de delta’s toe te passen:

# cd /where/ever/you/want/the/stuff
# ctm -v -v /where/you/store/your/deltas/src-xxx.*

CTM begrijpt delta’s in gzip formaat, dus het niet nodig om eerst gunzip te gebruiken. Dat spaart diskruimte.

Tenzij het zeker is van de veiligheid van het proces, doet CTM niets met de structuur. Om een delta te verifiëren kan ook de vlag -c gebruikt worden en dan komt CTM ook niet aan een structuur. Dan wordt alleen de integriteit van de delta gecontroleerd en of die zonder problemen op de huidige structuur kan worden toegepast.

CTM kent nog meer opties die in de hulppagina’s worden besproken.

Meer is er niet. Iedere keer dat er een delta wordt ontvangen, moet die door CTM gehaald worden om de broncode bijgewerkt te houden.

Delta’s kunnen het beste niet verwijderd worden als het lastig is ze opnieuw te downloaden. Dan kunnen ze het beste bewaard worden voor het geval er eens iets gebeurt. Zelfs als er alleen floppy’s beschikbaar zijn, is het wellicht verstandig die te gebruiken met fdwrite.

A.6.5. Lokale wijzigingen behouden

Een ontwikkelaar wil graag experimenteren met bestanden in de structuur en die bestanden veranderen. CTM ondersteunt lokale wijzigingen in beperkte mate: alvorens te kijken of bestand foo bestaat, zoekt het eerst naar foo.ctm. Als dat bestand bestaat, past CTM de wijzigigen daarop toe in plaats van op foo.

Dit gedrag biedt een eenvoudige mogelijkheid om lokale wijzigingen bij te houden. Dat kan dus door bestanden die gewijzigd gaan worden te kopiëren naar een bestand met dezelfde naam met de toevoeging .ctm. Dan kan er vrijelijk gespeeld worden met de code, terwijl CTM het bestand .ctm bijwerkt.

A.6.6. Andere interessante mogelijkheden van CTM

A.6.6.1. Uitvinden wat precies wordt veranderd met bijwerken

Het is mogelijk een lijst met wijzigingen te maken die CTM zou maken op het broncodedepot met de optie -l.

Dit is nuttig als het gewenst is om een logboek bij te houden van de wijzigingen, de te wijzigen bestanden voor- of na te bewerken op welke manier dan ook, of als de gebruiker gewoon een beetje paranoïde is.

A.6.6.2. Back-ups maken vóór bijwerken

Soms kan het wenselijk zijn om een back-up te maken van alle bestanden die gewijzigd gaan worden door een CTM update.

Met -B back-upbestand back-upt CTM alle bestanden die gewijzigd gaan worden door een CTM delta naar back-upbestand.

A.6.6.3. Te wijzigen bestanden door bijwerken beperken

Soms is het wenselijk de reikwijdte voor een CTM update te beperken of kan het wenselijk zijn om maar een paar bestanden bij te werken uit een aantal delta’s.

Een lijst met bestanden die CTM mag bewerken kan aangegeven worden met de opties -e en -x en het opgeven van regular expressions.

Om bijvoorbeeld een bijgewerkte kopie van lib/libc/Makefile te maken uit de verzameling met opgeslagen CTM delta’s, kan het volgende commando uitgevoerd worden:

# cd /where/ever/you/want/to/extract/it/
# ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*

Voor ieder te wijzigen bestand in een CTM delta worden de opties -e en -x toegepast in de volgorde waarin ze op de commandoregel staan. Het bestand wordt alleen door CTM verwerkt als het passend is bevonden na het toepassen van alle parameters in -e en -x.

A.6.7. Toekomstige plannen voor CTM

Die zijn er:

  • Een of andere vorm van authenticatie in het CTM systeem bouwen zodat vervalste CTM updates afgevangen kunnen worden;

  • De opties voor CTM opruimen omdat ze verwarrend zijn geworden.

A.6.8. Nog meer

Er zijn ook delta’s voor de `ports`collectie, maar daar is nog niet zo veel belangstelling voor.

A.6.9. CTM mirrors

CTM/FreeBSD is op de volgende mirrorsites via anonieme FTP beschikbaar. Als voor CTM anonieme FTP wordt gebruikt, heeft het de voorkeur een site die in geografische zin dichtbij is te gebruiken.

Bij problemen kan contact gezocht worden met de ctm-users-desc mailinglijst.

Als er geen mirror dichtbij is of als die incompleet is, kan een zoekmachine als alltheweb gebruikt worden.

A.7. CVSup gebruiken

A.7.1. Inleiding

CVSup is een softwarepakket voor het verspreiden en bijwerken van broncodestructuren vanaf een master CVS depot op een andere server. De FreeBSD broncode wordt beheerd in een broncode depot op een centrale ontwikkelmachine in Californië. Met CVSup kunnen FreeBSD gebruikers op eenvoudige wijze hun broncode bijwerken.

CVSup gebruikt een zogenaamd pull model voor het bijwerken. In het pull-model vraagt iedere client de server om updates als die nodig zijn. De server wacht passief op een verzoek om updates van zijn clients. Alle updates worden dus op initiatief van de client gedaan. De server stuurt nooit ongevraagde updates. Gebruikers moeten de CVSup client handmatig draaien om te updaten of een cron taak instellen om op regelmatige basis bij te werken.

De term CVSup, op de gegeven wijze geschreven, doelt op het complete softwarepakket. De belangrijkste componenten zijn de client cvsup, die op de machine van een gebruiker draait, en de server cvsupd, die op alle FreeBSD mirrorsites draait.

In de FreeBSD documentatie en op de mailinglijsten zijn referenties aan sup te vinden. Sup was de voorloper van CVSup en diende hetzelfde doel. CVSup wordt op dezelfde manier gebruikt als sup en gebruikt zelfs bestanden met instellingen die ook te gebruiken zijn met sup. Sup wordt niet langer gebruikt in het FreeBSD project omdat CVSup sneller en flexibeler is.

De csup applicatie is een herschreven versie van CVSup in de C taal. Het grootste voordeel ervan is dat het sneller is en dat het niet afhankelijk is van de Modula-3 taal, dus dat hoeft niet geïnstalleerd te worden als afhankelijkheid. Sterker nog de applicatie wordt standaard meegeleverd. als ervoor gekozen is om csup te gebruiken, sla dan de installatie stappen voor CVSup over en vervang de referenties naar CVSup met csup terwijl de rest van het artikel gevolgd wordt.

A.7.2. Installatie

De meest eenvoudige wijze van installatie van CVSup is met het voorgecompileerde pakket net/cvsup uit de FreeBSD pakkettencollectie. Als het gewenst is, kan CVSup ook uit de broncode gebouwd worden in net/cvsup. De port net/cvsup is afhankelijk van het Modula-3 systeem en dat kan wel even duren en er is ook nogal wat schijfruimte voor nodig om het te downloaden en te bouwen.

Als CVSup gebruikt gaat worden op een machine waarop geen Xorg staat, zoals een server, dan dient de port waar geen CVSupGUI bij zit geïnstalleerd te worden: net/cvsup-without-gui.

A.7.3. CVSup instellingen

De werking van CVSup wordt gestuurd door een bestand met instellingen met de naam supfile. Er staan een aantal supfiles als voorbeeld in de map /usr/shared/examples/cvsup/.

De informatie in een supfile beantwoordt de volgende vragen voor CVSup:

In de volgende paragrafen wordt een supfile bestand opgebouwd door achtereenvolgens alle gestelde vragen te beantwoorden. Als eerste wordt de algemene structuur van een supfile beschreven.

Een supfile is een tekstbestand. Commentaar begint met een # en loopt tot het einde van de regel. Lege regels en regels die alleen commentaar bevatten worden genegeerd.

Iedere regel die overblijft slaat op een groep bestanden die ontvangen moet worden. De regel begint met de naam van een "collectie", een logische groep bestanden op de server. De naam van de collectie geeft de server aan welke bestanden er gestuurd moeten worden. Na de naam van de collectie komen er geen of meer velden die gescheiden worden door witruimte. Die velden beantwoorden de hierboven gestelde vragen. Er zijn twee soorten velden: vlagvelden en waardevelden. Een vlagveld bestaat uit een alleenstaand sleutelwoord, bijvoorbeeld delete of compress. Een waardeveld begint ook met een sleutelwoord, maar het sleutelwoord wordt direct (zonder witruimte) gevolgd door = en een tweede woord. release=cvs is bijvoorbeeld een waardeveld.

In een supfile wordt meestal aangegeven dat er meerdere collecties ontvangen moeten worden. Het is mogelijk om een supfile te structureren door expliciet alle relevante velden aan te geven voor iedere collectie, maar dat maakt de regels in de supfile nogal lang en het is onhandig omdat de meeste velden hetzelfde zijn voor alle collecties in een supfile. CVSup biedt een systeem met standaardinstellingen om dit probleem te omzeilen. Regels die beginnen met de speciale pseudo-collectienaam *default kunnen gebruikt worden om standaarden in te stellen voor de collecties die er in de supfile achteraan komen. Een standaardwaarde kan voor individuele collecties overschreven worden door een andere waarde in de collectie zelf aan te geven. Standaarden kunnen ook middenin het bestand gewijzigd of aangevuld worden met extra *default regels.

Na deze achtergronden wordt er nu een supfile samengesteld voor het ontvangen en bijwerken van de hoofd broncodestructuur van FreeBSD-CURRENT.

  • Welke bestanden moeten ontvangen worden?

    De bestanden die via CVSup beschikbaar zijn, zijn beschikbaar in groepen die "collecties" heten. De beschikbare collecties staan beschreven in de volgende paragraaf. In dit voorbeeld is het de bedoeling dat de hele hoofd broncodestructuur voor FreeBSD wordt ontvangen. Daar is één grote collectie voor: src-all. De eerste stap in het maken van een supfile is het opsommen van de gewenste collecties, één per regel (in dit geval maar één regel):

    src-all
  • Welke versies daarvan moeten ontvangen worden?

    Met CVSup kan vrijwel iedere versie van de broncode die ooit heeft bestaan opgehaald worden. Dat kan omdat de cvsupd server direct vanaf het CVS depot werkt, dat alle versies bevat. Er kan aangegeven welke ontvangen moeten worden met de waardevelden tag= en date=.

    Voorzichtigheid is geboden bij het correct aangeven van velden met tag=. Sommige labels zijn alleen geldig voor bepaalde collecties of bestanden. Als ze incorrect worden aangeven of als er een spelfout wordt gemaakt in een label, verwijdert CVSup bestanden waarvan dat waarschijnlijk niet de bedoeling is. Het label tag=. dient eigenlijk alleen gebruikt te worden voor de ports-* collecties.

    Het veld tag= benoemt een symbolisch label in het depot. Er zijn twee soorten labels: revisielabels en taklabels. Een revisielabel refereert aan een specifieke revisie. De betekenis blijft altijd hetzelfde. Een taklabel refereert echter aan de laatste revisie van een gegeven ontwikkellijn op een gegeven moment. Omdat een taklabel niet refereert aan een specifieke revisie, kan het morgen iets anders betekenen dan vandaag.

    CVS labels beschrijft de meest interessante taklabels. Als er in het instellingenbestand van CVSup een label wordt aangegeven, moet dat vooraf gegaan worden door tag= (RELENG_8 zal tag=RELENG_8 worden). Voor de Portscollectie is alleen tag=. relevant.

    Labels dienen exact zo ingegeven te worden als ze staan beschreven. CVSup kan geen onderscheid maken tussen geldige en ongeldige labels. Als er een spelfout in een label wordt gemaakt, doet CVSup alsof er een geldig label is ingegeven dat aan geen enkel bestand refereert. Dan zal CVSup de bestaande broncode wissen.

    Bij het aangeven van een taklabel wordt meestal de laatste versie van de bestanden voor een bepaalde ontwikkellijn ontvangen. Om een oudere versie te ontvangen kan in het veld date= een datum opgegeven worden. In cvsup(1) staat hoe dat werkt.

    Om bijvoorbeeld FreeBSD-CURRENT te ontvangen dient het volgende aan het begin van supfile toegevoegd te worden:

    *default tag=.

    Er ontstaat een belangrijk speciaal geval als er geen velden met tag= of date= worden aangegeven. In dat geval worden de eigenlijke RCS bestanden direct uit het CVS depot van de server ontvangen in plaats van dat een bepaalde versie wordt ontvangen. Ontwikkelaars geven in het algemeen de voorkeur aan deze optie. Door zelf een kopie van de broncode op hun systeem te hebben, krijgen ze de mogelijkheid om zelf door eerdere versies van bestanden te bladeren en de geschiedenis ervan te bekijken. Dit voordeel kost wel veel schijfruimte.

  • Waar moeten ze vandaan komen?

    Het veld host= wordt gebruikt om cvsup aan te geven waar de updates vandaan moeten komen. Dat kan van elke CVSup mirrorsite, hoewel er wordt aangeraden een site die geografisch dichtbij ligt te kiezen. In dit voorbeeld wordt een fictieve FreeBSD distributiesite gebruikt, cvsup99.FreeBSD.org:

    *default host=cvsup99.FreeBSD.org

    In een werkelijke situatie dient de hostnaam gewijzigd te worden in een host die echt bestaat voordat CVSup gaat draaien. Iedere keer dat cvsup wordt gestart, kan er een andere host op de commandoregel opgegeven worden met de optie -h_hostname_.

  • Waar moeten ze komen te staan?

    Het veld prefix= geeft cvsup aan waar de ontvangen bestanden terecht moeten komen. In dit voorbeeld worden de bestanden direct in de hoofd broncodestructuur /usr/src geplaatst. De map src is al impliciet in de gekozen collecties, vandaar dat het onderstaande de juiste instelling is:

    *default prefix=/usr
  • Waar moet cvsup zijn statusbestanden bijhouden?

    De CVSup client houdt statusbestanden bij in een map die "base" wordt genoemd. Die bestanden helpen CVSup efficiënter te werken door bij te houden welke updates al eerder zijn ontvangen. Hier wordt de standaard basemap gebruikt, /var/db:

    *default base=/var/db

    De bovenstaande instelling wordt standaard gebruikt als die niet wordt aangegeven in de supfile, dus hij is eigenlijk niet nodig.

    Als de basemap niet al bestaat, moet die gemaakt worden. De cvsup client weigert te draaien als de basemap niet bestaat.

  • Allerlei supfile instellingen:

    Er is nog een regel die in een supfile moet staan:

    *default release=cvs delete use-rel-suffix compress

    release=cvs geeft de server aan dat de informatie uit het FreeBSD hoofd CVS depot moet komen. Dat is eigenlijk altijd het geval, maar er zijn mogelijkheden die buiten het bereik van dit handboek vallen.

    delete geeft CVSup het recht om bestanden te verwijderen. Dit moet altijd aangegeven worden zodat CVSup de broncode altijd kan bijwerken. CVSup gaat voorzichtig om met het verwijderen van bestanden waar het verantwoordelijk voor is. Extra bestanden in de structuur worden met rust gelaten.

    use-rel-suffix is nogal geheimzinnig. Voor de nieuwsgierigen staat er meer over in cvsup(1). Anders kan het gewoon ingesteld worden zonder erover na te denken.

    compress schakelt het gebruikt van gzip compressie in voor het communicatiekanaal. Als de verbinding een E1 of sneller is, hoeft er geen compressie gebruikt te worden. Anders helpt het aanzienlijk.

  • Alles combinerend:

    Hieronder staat de hele supfile uit het voorbeeld:

    *default tag=.
    *default host=cvsup99.FreeBSD.org
    *default prefix=/usr
    *default base=/var/db
    *default release=cvs delete use-rel-suffix compress
    
    src-all

A.7.3.1. Het bestand refuse

Zoals hierboven al is aangegeven, gebruikt CVSup een pull methode. Dat betekent eigenlijk dat er een verbinding wordt gemaakt met de CVSup server en die zegt dan: "Dit kan er van mij gedownload worden…​", en dan antwoordt de client met: "Oké, ik wil dit en dat en zus en zo." Met de standaardinstellingen haalt de CVSup client alle bestanden die bij een collectie en het label horen dat in het bestand met de instellingen is opgegeven. Maar dat is niet altijd wenselijk, in het bijzonder als de doc, ports of www structuren worden gesynchroniseerd. De meeste mensen kunnen geen vier of vijf talen lezen en die hebben de taalspecifieke bestanden dus niet nodig. Als de Portscollectie met CVSup wordt opgehaald, is het mogelijk om iedere collectie apart aan te geven (bijvoorbeeld ports-astrology, ports-biology, enzovoort, in plaats van eenvoudigweg ports-all). Maar omdat de doc en www structuren geen taalspecifieke collecties hebben, moet er gebruik gemaakt worden van een van de vele mooie mogelijkheden van CVSup: het bestand refuse.

Het bestand refuse geeft CVSup in feite aan dat niet ieder bestand uit een collectie opgehaald moet worden. Het geeft dus aan dat de client bepaalde bestanden van de server moet weigeren. Het bestand refuse staat in (of kan gemaakt worden in) base/sup/. base staat ingesteld in supfile. De standaardlocatie voor base is /var/db. De standaardplaats voor refuse is dus /var/db/sup/refuse.

Het bestand refuse heeft een erg eenvoudige opmaak. Het bevat de namen van de bestanden die niet gedownload mogen worden. Als een gebruiker bijvoorbeeld geen andere talen spreekt dan Engels en Nederlands, maar de Nederlandse vertaling van de documentatie hoeft niet binnengehaald te worden, dan kan het volgende in het bestand refuse gezet worden:

doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/hu_*
doc/it_*
doc/ja_*
doc/mn_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*

Dit gaat zo door voor de andere talen. De volledige lijst staat in het FreeBSD CVS depot.

Met deze handige eigenschap kunnen gebruikers met langzamere verbindingen of zij die per minuut voor hun Internetverbinding betalen waardevolle tijd besparen omdat er geen bestanden meer gedownload worden die nooit gebruikt worden. Meer informatie over refuse bestanden en andere leuke mogelijkheden van CVSup staat in de handleiding.

A.7.4. CVSup draaien

Nu kan het bijwerken beginnen. Het commando is best wel eenvoudig:

# cvsup supfile

De supfile is de naam van het supfile bestand dat gebruikt moet worden. Aangenomen dat er X11 draait op een machine, toont cvsup een GUI venster met wat knoppen om de bekende acties uit te voeren. Het proces start na het klikken op de knop btn[go].

Omdat in dit voorbeeld de werkelijke structuur in /usr/src wordt bijgewerkt, moet het programma als root uitgevoerd worden, zodat cvsup de rechten heeft die het nodig heeft om de bestanden bij te werken. Het is voorstelbaar dat de benodigde rechten, het net gemaakte bestand met instellingen en het voor de eerste keer draaien van een programma zorgt voor wat onrust. Daarom is het mogelijk proef te draaien zonder dat er bestanden gewijzigd worden. Dat kan door ergens een lege map te maken en een extra argument mee te geven op de commandoregel:

# mkdir /var/tmp/dest
# cvsup supfile /var/tmp/dest

De opgegeven map is de bestemming voor alle bestandsupdates. CVSup bekijkt wel de bestanden in /usr/src, maar wijzigt ze niet. Alle updates belanden in /var/tmp/dest/usr/src. CVSup werkt ook de statusbestanden niet bij als het op deze wijze wordt uitgevoerd. De nieuwe versies van de bestanden worden naar de aangegeven map geschreven. Als er maar leestoegang is tot /usr/src, hoeft een gebruiker zelfs geen root te zijn bij het uitvoeren van dit experiment.

Als er geen X11 draait of als het niet wenselijk is een GUI te gebruiken, dan kunnen daarvoor opties op de commandoregel meegegeven worden bij het draaien van cvsup:

# cvsup -g -L 2 supfile

De optie -g geeft CVSup aan dat de GUI niet gebruikt hoeft te worden. Dit gebeurt automatisch als X11 niet draait, maar anders moet het aangegeven worden.

De optie -L 2 geeft CVSup aan dat details getoond moeten worden over alle bestanden die bijgewerkt worden. Er zijn drie niveaus van uitvoerigheid, van -L 0 tot -L 2. Standaard is het 0, wat betekent dat er geen enkel bericht wordt getoond, met uitzondering van foutmeldingen.

Er zijn nog veel andere opties beschikbaar. Met cvsup -H wordt een lijst met korte uitleg getoond. Beschrijvingen met meer details staan in de handleiding.

Als het bijwerken op de gewenste manier loopt, kan het regulier draaien van CVSup met cron(8) ingesteld worden. Natuurlijk hoort CVSup zonder GUI te draaien als het programma vanuit de cron(8) draait.

A.7.5. CVSup bestandscollecties

De via CVSup beschikbare bestandscollecties zijn hiërarchisch georganiseerd. Er zijn een paar grote collecties en die zijn opgedeeld in kleinere subcollecties. Het ontvangen van een collectie is hetzelfde als het ontvangen van alle subcollecties. De hiërarchische relatie tussen de collecties wordt hieronder aangegeven door het niveau van inspringen.

De meest gebruikte collecties zijn src-all en ports-all. De andere collecties worden door kleine groepen mensen gebruikt voor bijzondere doeleinden en sommige mirrorsites hebben ze niet allemaal.

cvs-all release=cvs

Het FreeBSD CVS hoofddepot, inclusief de cryptografische code.

distrib release=cvs

Bestanden die betrekking hebben op het verspreiden en spiegelen van FreeBSD.

ports-all release=cvs

De FreeBSD Portscollectie.

Als ports-all (het complete portssysteem) niet bijgewerkt hoeft te worden, maar enkele van de onderstaande subcollecties, dan moet altijd ook de ports-base subcollectie bijgewerkt worden! Als er iets wijzigt in de infrastructuur van de ports waar ports-base voor staat, is het vrijwel zeker dat die wijzigingen heel snel door "echte" ports gebruikt gaan worden. Dus als alleen de "echte" ports bijgewerkt worden en als die gebruik maken van nieuwe mogelijkheden, dan is de kans groot dat het bouwen daarvan foutloopt met een vage foutmelding. Het eerste dat gedaan moeten worden is ervoor zorgen dat de ports-base subcollectie is bijgewerkt.

Bij het zelf bouwen van een lokale kopie van ports/INDEXmoet`ports-all` geaccepteerd worden (de hele port structuur). Het bouwen van ports/INDEX met een gedeeltelijke structuur wordt niet ondersteund. Zie ook de FAQ.

ports-accessibility release=cvs

Software voor minder valide gebruikers.

ports-arabic release=cvs

Ondersteuning voor de Arabische taal.

ports-archivers release=cvs

Archiveringshulpmiddelen.

ports-astro release=cvs

Astronomie ports.

ports-audio release=cvs

Geluidsondersteuning.

ports-base release=cvs

De infrastructuur van de Portscollectie. Bestanden uit de mappen Mk/ en Tools/ van /usr/ports.

Zie ook de belangrijke waarschuwing hierboven: deze subcollectie dient altijd bijgewerkt te worden als er een onderdeel van de FreeBSD Portscollectie wordt bijgewerkt!

ports-benchmarks release=cvs

Benchmarks.

ports-biology release=cvs

Biologie.

ports-cad release=cvs

Computer aided design programma’s.

ports-chinese release=cvs

Ondersteuning voor de Chinese taal.

ports-comms release=cvs

Communicatiesoftware.

ports-converters release=cvs

Karaktercode omzetters.

ports-databases release=cvs

Databases.

ports-deskutils release=cvs

Dingen die op een bureaublad stonden voordat computers waren uitgevonden.

ports-devel release=cvs

Ontwikkelhulpmiddelen.

ports-dns release=cvs

DNS gerelateerde software.

ports-editors release=cvs

Editors.

ports-emulators release=cvs

Emulatoren voor besturingssystemen.

ports-finance release=cvs

Monetaire, financiële en gerelateerde applicaties.

ports-ftp release=cvs

FTP client en server programma’s.

ports-games release=cvs

Spelletjes.

ports-german release=cvs

Ondersteuning voor de Duitse taal.

ports-graphics release=cvs

Grafische programma’s.

ports-hebrew release=cvs

Ondersteuning voor de Hebreeuwse taal.

ports-hungarian release=cvs

Ondersteuning voor de Hongaarse taal.

ports-irc release=cvs

Internet Relay Chat hulpprogramma’s.

ports-japanese release=cvs

Ondersteuning voor de Japanse taal.

ports-java release=cvs

Java™ programma’s.

ports-korean release=cvs

Ondersteuning voor de Koreaanse taal.

ports-lang release=cvs

Programmeertalen.

ports-mail release=cvs

Mailsoftware.

ports-math release=cvs

Numerieke rekensoftware.

ports-misc release=cvs

Verschillende programma’s.

ports-multimedia release=cvs

Multimedia software.

ports-net release=cvs

Netwerksoftware.

ports-net-im release=cvs

Berichtenuitwisseling.

ports-net-mgmt release=cvs

Netwerkbeheersoftware.

ports-net-p2p release=cvs

Peer to Peer Netwerken

ports-news release=cvs

USENET news software.

ports-palm release=cvs

Softwareondersteuning voor Palm™ apparatuur.

ports-polish release=cvs

Ondersteuning voor de Poolse taal.

ports-ports-mgmt release=cvs

Programma’s om ports en pakketten te beheren.

ports-portuguese release=cvs

Ondersteuning voor de Portugese taal.

ports-print release=cvs

Printsoftware.

ports-russian release=cvs

Ondersteuning voor de Russische taal.

ports-science release=cvs

Wetenschappelijk.

ports-security release=cvs

Beveiligingsprogramma’s.

ports-shells release=cvs

Commandoregelshells.

ports-sysutils release=cvs

Systeemprogramma’s.

ports-textproc release=cvs

Tekstverwerkingsprogramma’s (zonder desktop publishing).

ports-ukrainian release=cvs

Ondersteuning voor de Oekraïense taal.

ports-vietnamese release=cvs

Ondersteuning voor de Viëtnamese taal.

ports-www release=cvs

Software gerelateerd aan het Wereldwijde Web.

ports-x11 release=cvs

Ports voor het X windowsysteem.

ports-x11-clocks release=cvs

X11 klokken.

ports-x11-drivers release=cvs

X11-stuurprogramma’s

ports-x11-fm release=cvs

X11 bestandsbeheerders.

ports-x11-fonts release=cvs

X11 lettertypen en lettertypeprogramma’s.

ports-x11-toolkits release=cvs

X11 hulpprogramma’s.

ports-x11-servers release=cvs

X11 servers.

ports-x11-themes

X11 thema’s.

ports-x11-wm release=cvs

X11 vensterbeheerprogramma’s.

projects-all release=cvs

Broncode’s voor de FreeBSD projecten repository.

src-all release=cvs

De hoofdbroncode van FreeBSD, inclusief de cryptografische code.

src-base release=cvs

Verschillende bestanden bovenin de /usr/src structuur.

src-bin release=cvs

Gebruikersprogramma’s die wellicht nodig zijn in single-user modus (/usr/src/bin).

src-cddl release=cvs

Programma’s en bibliotheken die uitgegeven zijn onder de CDDL licentie (/usr/src/cddl).

src-contrib release=cvs

Programma’s en bibliotheken van buiten het FreeBSD project die vrijwel ongewijzigd gebruikt worden (/usr/src/contrib).

src-crypto release=cvs

Cryptografische programma’s en bibliotheken van buiten het FreeBSD project, die vrijwel ongewijzigd worden gebruikt (/usr/src/crypto).

src-eBones release=cvs

Kerberos en DES (/usr/src/eBones). Niet gebruikt in recente uitgaves van FreeBSD.

src-etc release=cvs

Bestanden met systeeminstellingen (/usr/src/etc).

src-games release=cvs

Spelletjes (/usr/src/games).

src-gnu release=cvs

Programma’s die onder de GNU Public License vallen (/usr/src/gnu).

src-include release=cvs

Headerbestanden (/usr/src/include).

src-kerberos5 release=cvs

Kerberos5 beveiligingspakket (/usr/src/kerberos5).

src-kerberosIV release=cvs

KerberosIV beveiligingspakket (/usr/src/kerberosIV).

src-lib release=cvs

Bibliotheken (/usr/src/lib).

src-libexec release=cvs

Systeemprogramma’s die meestal door andere programma’s worden uitgevoerd (/usr/src/libexec).

src-release release=cvs

Bestanden die nodig zijn voor het maken van een FreeBSD release (/usr/src/release).

src-release release=cvs

Statisch gelinkte programma’s voor nood onderhoud, zie rescue(8) (/usr/src/rescue).

src-sbin release=cvs

Systeemprogramma’s voor single-user modus (/usr/src/sbin).

src-secure release=cvs

Cryptografische bibliotheken en commando’s (/usr/src/secure).

src-share release=cvs

Bestanden die tussen meerdere systemen gedeeld kunnen worden (/usr/src/share).

src-sys release=cvs

De kernel (/usr/src/sys).

src-sys-crypto release=cvs

Cryptografische kernelcode (/usr/src/sys/crypto).

src-tools release=cvs

Verschillende hulpprogramma’s voor het onderhoud van FreeBSD (/usr/src/tools).

src-usrbin release=cvs

Gebruikersprogramma’s (/usr/src/usr.bin).

src-usrsbin release=cvs

Systeemprogramma’s (/usr/src/usr.sbin).

distrib release=self

De instellingenbestanden van de CVSup server zelf. Gebruikt door de CVSup mirrorsites.

gnats release=current

De GNATS bug-tracking database.

mail-archive release=current

FreeBSD mailinglijstarchief.

www release=current

De voorbewerkte FreeBSD websitebestanden (niet de broncode). Gebruikt door WWW mirrorsites.

A.7.6. Voor meer informatie

De CVSup FAQ en andere informatie over CVSup is te vinden op De CVSup Homepage.

De meeste FreeBSD-gerelateerde discussie over CVSup vindt plaats op de FreeBSD technische discussie mailinglijst. Daar worden nieuwe versies van de software aangekondigd, net als op de FreeBSD aankondigingen mailinglijst.

Voor vragen en foutrapporten moet een kijkje genomen worden op de CVSup FAQ

A.7.7. CVSup sites

CVSup servers voor FreeBSD draaien op de onderstaande sites.

A.8. CVS labels

Bij het ophalen of bijwerken van broncode met cvs of CVSup moet een revisielabel meegegeven worden. Een revisielabel refereert aan een specifieke lijn in de FreeBSD ontwikkeling of aan een specifiek moment in de tijd. Het eerste type heet "taklabel" (branch tag) en het tweede type heet "releaselabel" (release tag).

A.8.1. Taklabels

Deze zijn, met uitzondering van HEAD (dat altijd een geldig label is), alleen van toepassing op de src/ structuur. De ports/, doc/ en www/ structuren kennen geen takken.

HEAD

Symbolische naam voor de hoofdlijn van FreeBSD-CURRENT. Ook de standaard als geen revisie is aangegeven.

In CVSup wordt dit label aangegeven met een . (dat is dus geen interpunctie, maar een echt . karakter).

In CVS is dit de standaard als er geen revisielabel is aangegeven. Het is meestal geen goed idee om een checkout of update van CURRENT broncode op een STABLE machine te doen, tenzij dat expliciet de bedoeling is.

RELENG_9

De ontwikkellijn voor FreeBSD-9.X, ook bekend als FreeBSD 9-STABLE.

RELENG_9_0

De uitgavetak voor FreeBSD-9.0, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_8

De ontwikkellijn voor FreeBSD-8.X, ook bekend als FreeBSD 8-STABLE.

RELENG_8_3

De uitgavetak voor FreeBSD-8.3, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_8_2

De uitgavetak voor FreeBSD-8.2, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_8_1

De uitgavetak voor FreeBSD-8.1, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_8_0

De uitgavetak voor FreeBSD-8.0, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_7

De ontwikkellijn voor FreeBSD-7.X, ook bekend als FreeBSD 7-STABLE.

RELENG_7_4

De uitgavetak voor FreeBSD-7.3, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_7_3

De uitgavetak voor FreeBSD-7.3, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_7_2

De uitgavetak voor FreeBSD-7.2, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_7_1

De uitgavetak voor FreeBSD-7.1, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_7_0

De uitgavetak voor FreeBSD-7.0, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_6

De ontwikkellijn voor FreeBSD-6.X, ook bekend als FreeBSD 6-STABLE.

RELENG_6_4

De uitgavetak voor FreeBSD-6.4, alleen gebruikt voor beveiligingsadviezen en andere kritieke reparaties.

RELENG_6_3

De uitgavetak voor FreeBSD-6.3, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_6_2

De releasetak voor FreeBSD-6.2, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_6_1

De releasetak voor FreeBSD-6.1, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_6_0

De releasetak voor FreeBSD-6.0, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_5

De ontwikkellijn voor FreeBSD-5.X, ook bekend als FreeBSD 5-STABLE.

RELENG_5_5

De releasetak voor FreeBSD-5.5, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_5_4

De releasetak voor FreeBSD-5.4, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_5_3

De releasetak voor FreeBSD-5.3, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_5_2

De releasetak voor FreeBSD-5.2 en FreeBSD-5.2.1, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_5_1

De releasetak voor FreeBSD-5.1, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_5_0

De releasetak voor FreeBSD-5.0, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_4

De ontwikkellijn voor FreeBSD-4.X, ook bekend als FreeBSD 4-STABLE.

RELENG_4_11

De releasetak voor FreeBSD-4.11, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_4_10

De releasetak voor FreeBSD-4.10, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_4_9

De releasetak voor FreeBSD-4.9, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_4_8

De releasetak voor FreeBSD-4.8, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_4_7

De releasetak voor FreeBSD-4.7, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_4_6

De releasetak voor FreeBSD-4.6 en FreeBSD-4.6.2, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_4_5

De releasetak voor FreeBSD-4.5, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_4_4

De releasetak voor FreeBSD-4.4, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_4_3

De releasetak voor FreeBSD-4.3, alleen gebruikt voor beveiligingswaarschuwingen en andere kritische aanpassingen.

RELENG_3

De ontwikkellijn voor FreeBSD-3.X, ook bekend als 3.X-STABLE.

RELENG_2_2

De ontwikkellijn voor FreeBSD-2.2.X, ook bekend als 2.2-STABLE. Deze tak is sterk verouderd.

A.8.2. Releaselabels

Deze labels refereren aan een specifiek moment in de tijd waarop een versie van FreeBSD is uitgegeven. Het proces om tot een release te komen is gedetailleerder beschreven in de Release Engineering Informatie en Release Proces documenten. De src structuur gebruikt labelnamen die beginnen met RELENG_ labels. De ports en doc structuren gebruiken labels waarvan de naam begint met het label RELEASE. De www tenslotte, is niet gemarkeerd met een bijzondere naam bij uitgaven.

RELENG_9_0_0_RELEASE

FreeBSD 9.0

RELENG_8_3_0_RELEASE

FreeBSD 8.3

RELENG_8_2_0_RELEASE

FreeBSD 8.2

RELENG_8_1_0_RELEASE

FreeBSD 8.1

RELENG_8_0_0_RELEASE

FreeBSD 8.0

RELENG_7_4_0_RELEASE

FreeBSD 7.4

RELENG_7_3_0_RELEASE

FreeBSD 7.3

RELENG_7_2_0_RELEASE

FreeBSD 7.2

RELENG_7_1_0_RELEASE

FreeBSD 7.1

RELENG_7_0_0_RELEASE

FreeBSD 7.0

RELENG_6_4_0_RELEASE

FreeBSD 6.4

RELENG_6_3_0_RELEASE

FreeBSD 6.3

RELENG_6_2_0_RELEASE

FreeBSD 6.2

RELENG_6_1_0_RELEASE

FreeBSD 6.1

RELENG_6_0_0_RELEASE

FreeBSD 6.0

RELENG_5_5_0_RELEASE

FreeBSD 5.5

RELENG_5_4_0_RELEASE

FreeBSD 5.4

RELENG_4_11_0_RELEASE

FreeBSD 4.11

RELENG_5_3_0_RELEASE

FreeBSD 5.3

RELENG_4_10_0_RELEASE

FreeBSD 4.10

RELENG_5_2_1_RELEASE

FreeBSD 5.2.1

RELENG_5_2_0_RELEASE

FreeBSD 5.2

RELENG_4_9_0_RELEASE

FreeBSD 4.9

RELENG_5_1_0_RELEASE

FreeBSD 5.1

RELENG_4_8_0_RELEASE

FreeBSD 4.8

RELENG_5_0_0_RELEASE

FreeBSD 5.0

RELENG_4_7_0_RELEASE

FreeBSD 4.7

RELENG_4_6_2_RELEASE

FreeBSD 4.6.2

RELENG_4_6_1_RELEASE

FreeBSD 4.6.1

RELENG_4_6_0_RELEASE

FreeBSD 4.6

RELENG_4_5_0_RELEASE

FreeBSD 4.5

RELENG_4_4_0_RELEASE

FreeBSD 4.4

RELENG_4_3_0_RELEASE

FreeBSD 4.3

RELENG_4_2_0_RELEASE

FreeBSD 4.2

RELENG_4_1_1_RELEASE

FreeBSD 4.1.1

RELENG_4_1_0_RELEASE

FreeBSD 4.1

RELENG_4_0_0_RELEASE

FreeBSD 4.0

RELENG_3_5_0_RELEASE

FreeBSD-3.5

RELENG_3_4_0_RELEASE

FreeBSD-3.4

RELENG_3_3_0_RELEASE

FreeBSD-3.3

RELENG_3_2_0_RELEASE

FreeBSD-3.2

RELENG_3_1_0_RELEASE

FreeBSD-3.1

RELENG_3_0_0_RELEASE

FreeBSD-3.0

RELENG_2_2_8_RELEASE

FreeBSD-2.2.8

RELENG_2_2_7_RELEASE

FreeBSD-2.2.7

RELENG_2_2_6_RELEASE

FreeBSD-2.2.6

RELENG_2_2_5_RELEASE

FreeBSD-2.2.5

RELENG_2_2_2_RELEASE

FreeBSD-2.2.2

RELENG_2_2_1_RELEASE

FreeBSD-2.2.1

RELENG_2_2_0_RELEASE

FreeBSD-2.2.0

A.9. rsync sites

De volgende sites bieden FreeBSD aan via het protocol rsync. Het programma rsync werkt vrijwel hetzelfde als rcp(1), maar kent meer mogelijkheden en gebruikt het rsync remote-update protocol, dat alleen verschillen tussen twee groepen bestanden overbrengt, waardoor het synchroniseren via een netwerk drastisch wordt versneld. Dit kan het beste gedaan worden als er een mirrorsite voor de FreeBSD FTP server of het FreeBSD CVS depot draait. De rsync suite is voor veel besturingssystemen beschikbaar. Voor FreeBSD kan het pakket of de port uit net/rsync geïnstalleerd worden.

Tsjechië

rsync://ftp.cz.FreeBSD.org/

Beschikbare collecties:

  • ftp: een gedeeltelijke mirror van de FreeBSD FTP server.

  • FreeBSD: een volledige mirror van de FreeBSD FTP server.

Nederland

rsync://ftp.nl.FreeBSD.org/

Beschikbare collecties:

  • FreeBSD: een volledige mirror van de FreeBSD FTP server.

Rusland

rsync://ftp.mtu.ru/

Beschikbare collecties:

  • FreeBSD: een volledige spiegel van de FTP-server van FreeBSD.

  • FreeBSD-gnats: De GNATS bug-tracking database.

  • FreeBSD-archief: spiegel van de FreeBSD Archive FTP-server.

Zweden

rsync://ftp4.se.freebsd.org/

Beschikbare verzamelingen:

  • FreeBSD: een volledige spiegel van de FTP-server van FreeBSD.

Taiwan

rsync://ftp.tw.FreeBSD.org/

rsync://ftp2.tw.FreeBSD.org/

rsync://ftp6.tw.FreeBSD.org/

Beschikbare collecties:

  • FreeBSD: een volledige mirror van de FreeBSD FTP server.

Verenigd Koninkrijk

rsync://rsync.mirrorservice.org/

Beschikbare collecties:

  • sites/ftp.freebsd.org: een volledige mirror van de FreeBSD FTP server.

Verenigde Staten van Amerika

rsync://ftp-master.FreeBSD.org/

Deze server mag alleen gebruikt worden door FreeBSD primaire mirrorsites.

Beschikbare collecties:

  • FreeBSD: het masterarchief van de FreeBSD FTP server.

  • acl: de FreeBSD master ACL lijst.

    rsync://ftp13.FreeBSD.org/

    Beschikbare collecties:

  • FreeBSD: een volledige mirror van de FreeBSD FTP server.


All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.