<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.uugrn.org/index.php?action=history&amp;feed=atom&amp;title=UUGRN%3ADienste%2FFreeBSD_Buildsystem</id>
	<title>UUGRN:Dienste/FreeBSD Buildsystem - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.uugrn.org/index.php?action=history&amp;feed=atom&amp;title=UUGRN%3ADienste%2FFreeBSD_Buildsystem"/>
	<link rel="alternate" type="text/html" href="https://wiki.uugrn.org/index.php?title=UUGRN:Dienste/FreeBSD_Buildsystem&amp;action=history"/>
	<updated>2026-04-24T15:10:20Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in UUGRN</subtitle>
	<generator>MediaWiki 1.42.5</generator>
	<entry>
		<id>https://wiki.uugrn.org/index.php?title=UUGRN:Dienste/FreeBSD_Buildsystem&amp;diff=12248&amp;oldid=prev</id>
		<title>Rabe: übernommen von UUGRN:Jails/uug fbsd9</title>
		<link rel="alternate" type="text/html" href="https://wiki.uugrn.org/index.php?title=UUGRN:Dienste/FreeBSD_Buildsystem&amp;diff=12248&amp;oldid=prev"/>
		<updated>2014-06-22T13:30:50Z</updated>

		<summary type="html">&lt;p&gt;übernommen von &lt;a href=&quot;/UUGRN:Jails/uug_fbsd9&quot; title=&quot;UUGRN:Jails/uug fbsd9&quot;&gt;UUGRN:Jails/uug fbsd9&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Das {{FreeBSD Buildsystem}} dient der Wartung und Pflege von FreeBSD auf den Servern der UUGRN. &lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste Dienste}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Server ==&lt;br /&gt;
Dieser Dienst wird derzeit ausgeführt auf {{fbsd9.uugrn.org}}.&lt;br /&gt;
&lt;br /&gt;
== Tägliche Updates ==&lt;br /&gt;
Täglich morgens um 03:30 Uhr wird ein Script ausgeführt, welcher folgende Tasks erledigt:&lt;br /&gt;
&lt;br /&gt;
;sourcen updaten: &amp;#039;&amp;#039;svn update&amp;#039;&amp;#039; in /freebsd/upstream/src/9.1-RELEASE/ (= http://freebsd.uugrn.lan/upstream/src/9.1-RELEASE/)&lt;br /&gt;
;sourcen als tarball: tar von /freebsd/upstream/src/9.1-RELEASE/ nach /freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-src.tar (= http://freebsd.uugrn.lan/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-src.tar)&lt;br /&gt;
;ports updaten: &amp;#039;&amp;#039;portsnap&amp;#039;&amp;#039; in /freebsd/upstream/ports/ (= http://freebsd.uugrn.lan/upstream/ports/)&lt;br /&gt;
;ports als tarball: tar von /freebsd/upstream/ports/ in /freebsd/upstream/images/ports.tar (= http://freebsd.uugrn.lan/upstream/images/ports.tar)&lt;br /&gt;
;vanilla image aus aktuellen sourcen erzeugen: &lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;make buildworld installworld distribution&amp;#039;&amp;#039;&amp;#039; in /freebsd/upstream/src/9.1-RELEASE/ (= http://freebsd.uugrn.lan/upstream/src/9.1-RELEASE/)&lt;br /&gt;
: und einpacken als /freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar (= http://freebsd.uugrn.lan/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar)&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;falls&amp;#039;&amp;#039;&amp;#039; /freebsd/upstream/src/9.1-RELEASE/UPDATING neuer als /freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar&lt;br /&gt;
;uugrn image aus aktuellem vanilla image bauen:&lt;br /&gt;
:* vanilla image entpacken&lt;br /&gt;
:* überflüssige Verzeichnisse entfernen&lt;br /&gt;
:* Anlegen von /alternatives/, /data/ports/&lt;br /&gt;
:* konfigurieren und patchen von /etc/motd, /etc/resolv.conf, /etc/profile, /etc/rc.conf, /etc/periodic.conf, /etc/localtime, /etc/mail/, /etc/crontab, /etc/login.conf, &lt;br /&gt;
:* root-Passwort non-empty setzen&lt;br /&gt;
:* alles einpacken unter /freebsd/uugrn/nightly/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn.tar (= http://freebsd.uugrn.lan/uugrn/nightly/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn.tar)&lt;br /&gt;
&lt;br /&gt;
== Package-Builds ==&lt;br /&gt;
Package-Builds erzeugen für ausgewählte Ports passende Binär-Packages basierend auf den aktuellen Ports. Jeder Build wird dabei bei Bedarf mit einem Script (/build/tools/new_build.sh) in ein komplett eigenständiges Build-Verzeichnis gebootstrappt. Das Buildverzeichnis liegt unter /build/YYYYMMDDHHMMSS/.&lt;br /&gt;
&lt;br /&gt;
Das Buildverzeichnis enthält eine Kopie der aktuellen Buildscripte und ein Unterverzeichnis namens buildroot, welches durch folgende nightly-Tagrballs gebootstrappt wird:&lt;br /&gt;
* vanilla.tar: aktuelles Userland-Image basierend auf aktellsten Sourcen (direkt in .../buildroot/)&lt;br /&gt;
* src.tar: aktuellste Sourcen in .../buildroot/usr/src/&lt;br /&gt;
* ports.tar: aktueller Portsbaum in .../buildroot/usr/ports/&lt;br /&gt;
&lt;br /&gt;
Außerdem wird in .../buildroot/build/ alles an Scripten und Konfiguration abgelegt, was für den Build *innerhalb* dieses chroot() erforderlich ist, u.a. das .../buildroot/build/build.sh, welches mehr oder weniger den vollständugen Build durchführt. &lt;br /&gt;
&lt;br /&gt;
Nach Ende des (erfolgreichen) Builds innerhalb des buildroot/ werden die im Buildroot erzeugten Packages aus &amp;quot;herausgeholt&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Das buildroot wird für alle weiteren Steps nicht mehr weiter verwendet, alle folgenden Schritte basieren ausschließlich auf einem frischen Bootstrap unter der Verwendung der vorkompilierten Pakete.&lt;br /&gt;
&lt;br /&gt;
== Jail-Flavours ==&lt;br /&gt;
Basierend dem aktuellen nightly-Buildworld (/freebsd/upstream/images/9.1-RELEASE/FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar) werden verschiedene Geschmacksrichtungen und typische Konfigurationen für Jails erzeugt, jeweils aufeinander aufbauend. Dabei werden zunächst lokale Standardeinstellungen vorgenomen und dann nach und nach Packages (und deren Abhängigkeiten) installiert:&lt;br /&gt;
&lt;br /&gt;
;uugrn/tiny (uugrn/core): &lt;br /&gt;
: Hier wird die nicht weiter konfigurtierte Standard-&amp;#039;&amp;#039;world&amp;#039;&amp;#039; (&amp;#039;&amp;#039;vanilla.tar&amp;#039;&amp;#039;) angepasst für den Betrieb als Jail bei UUGRN&lt;br /&gt;
: Es werden hier *keine* Packages installiert&lt;br /&gt;
;uugrn/small (uugrn/basic): &lt;br /&gt;
: Enthält ein Minimalset an Tools, die in jedem Jail vorhanden sein sollten.&lt;br /&gt;
: Wird aus tiny.tar erzeugt &lt;br /&gt;
: Packages: &amp;#039;&amp;#039;bash coreutils sudo gsed findutils nano screen portupgrade pkg_cutleaves portaudit&amp;#039;&amp;#039;&lt;br /&gt;
;uugrn/medium: &lt;br /&gt;
: Enthält erweiterte Tools und typische Textconsolen-Anwendungen wie Editoren, E-Mail, ..&lt;br /&gt;
: Wird erzeugt aus small.tar&lt;br /&gt;
: Packages: &amp;#039;&amp;#039;vim-lite emacs-nox11 mc gnupg mutt slrn tin irssi lynx w3m wget rsync procmail figlet fetchmail&amp;#039;&amp;#039;&lt;br /&gt;
;uugrn/large:&lt;br /&gt;
: Enthält mehr Tools und Serversoftware&lt;br /&gt;
: Wird aus medium.tar erzeugt&lt;br /&gt;
: Packages: &amp;#039;&amp;#039;links rar unrar zip zsh gawk ksh93 pwgen muh climm dovecot2 apache22 mod_php5 php5-extensions&amp;#039;&amp;#039;&lt;br /&gt;
;uugrn/huge:&lt;br /&gt;
: Enthält sehr viele Grafik und Multimediaibliotheken und Tools&lt;br /&gt;
: Wird aus large.tar erzeugt&lt;br /&gt;
: Packages (diese ziehen jeweils sehr viele Abhängikeiten mit): &amp;#039;&amp;#039;graphviz ImageMagick&amp;#039;&amp;#039;&lt;br /&gt;
;uugrn/www:&lt;br /&gt;
: Für ein Betrieb eines einfachen Webservers&lt;br /&gt;
: Wird aus small.tar erzeugt&lt;br /&gt;
: Packages: &amp;#039;&amp;#039;apache22&amp;#039;&amp;#039;&lt;br /&gt;
;uugrn/wwwphp:&lt;br /&gt;
: Webserver mit Apache + PHP5&lt;br /&gt;
: Wird aus www.tar erzeugt&lt;br /&gt;
: Packages: &amp;#039;&amp;#039;mod_php5 php5-extensions&amp;#039;&amp;#039;&lt;br /&gt;
;uugrn/mediawiki:&lt;br /&gt;
: Enthält alles, was man für den Betrieb von MediaWiki oder PHP5 basierte CMS-Systeme benötigt&lt;br /&gt;
: wird aus wwwphp.tar erzeugt&lt;br /&gt;
: Packages: (sieht sehr viele Abhängigkeiten nach): &amp;#039;&amp;#039;ImageMagick&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die hier resultierenden Tarballs heißen vollständig dann z.B. FreeBSD-9.1-RELEASE-amd64-image-uugrn-medium.tar&lt;br /&gt;
&lt;br /&gt;
== Images (tarballs) ==&lt;br /&gt;
Am Ende des Build-Vorgangs wird alles jeweils in tarballs verpackt und für die Veröffentlichung vorbereitet. &lt;br /&gt;
&lt;br /&gt;
Ein typisches images/-Verzeichnis enthält folgende Tarballs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-rw-r--r--  1 root  wheel  2818033664 Jun  8 00:29 FreeBSD-9.1-RELEASE-amd64-image-buildroot-noports-nosrc.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel         167 Jun  8 00:30 FreeBSD-9.1-RELEASE-amd64-image-buildroot-noports-nosrc.tar.sha256&lt;br /&gt;
-rw-r--r--  1 root  wheel   671779840 Jun  8 00:31 FreeBSD-9.1-RELEASE-amd64-image-buildroot-packages.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel        6935 Jun  8 00:31 FreeBSD-9.1-RELEASE-amd64-image-buildroot-packages.tar.origins&lt;br /&gt;
-rw-r--r--  1 root  wheel         162 Jun  8 00:31 FreeBSD-9.1-RELEASE-amd64-image-buildroot-packages.tar.sha256&lt;br /&gt;
-rw-r--r--  1 root  wheel  2204937216 Jun  8 00:32 FreeBSD-9.1-RELEASE-amd64-image-buildroot-ports-full.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel         164 Jun  8 00:33 FreeBSD-9.1-RELEASE-amd64-image-buildroot-ports-full.tar.sha256&lt;br /&gt;
-rw-r--r--  1 root  wheel  1347032576 Jun  8 00:52 FreeBSD-9.1-RELEASE-amd64-image-uugrn-huge.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel  1037542912 Jun  8 00:50 FreeBSD-9.1-RELEASE-amd64-image-uugrn-large.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel  1068101120 Jun  8 00:56 FreeBSD-9.1-RELEASE-amd64-image-uugrn-mediawiki.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel   837196800 Jun  8 00:47 FreeBSD-9.1-RELEASE-amd64-image-uugrn-medium.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel   496647168 Jun  8 00:46 FreeBSD-9.1-RELEASE-amd64-image-uugrn-small.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel   342000640 Jun  8 00:46 FreeBSD-9.1-RELEASE-amd64-image-uugrn-tiny.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel   563835392 Jun  8 00:53 FreeBSD-9.1-RELEASE-amd64-image-uugrn-www.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel   662937088 Jun  8 00:54 FreeBSD-9.1-RELEASE-amd64-image-uugrn-wwwphp.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel   341968384 Jun  6 22:59 FreeBSD-9.1-RELEASE-amd64-image-vanilla.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel  1438161920 Jun  6 22:59 FreeBSD-9.1-RELEASE-src.tar&lt;br /&gt;
-rw-r--r--  1 root  wheel   382213632 Jun  6 22:59 ports.tar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verwendung der Images ===&lt;br /&gt;
; FreeBSD-9.1-RELEASE-amd64-image-buildroot*.tar: enthält jeweils eine Auswahl des buildroots, mit dem die Packages gebaut wurden. Das dient vor allem Debugging- und Analysezwecken und allgemein als Referenz für die Herkunft der Packages (d.h. unter welchen konkreten Bedingungen sie gebaut wurden)&lt;br /&gt;
;FreeBSD-9.1-RELEASE-amd64-image-buildroot-ports-full.tar: /usr/ports mit /usr/ports/distfiles/ und /usr/ports/packages/ jedoch ohne /var/db/ports/ (persistiertes &amp;#039;&amp;#039;make config&amp;#039;&amp;#039; der Ports, die das supporten)&lt;br /&gt;
; FreeBSD-9.1-RELEASE-amd64-image-uugrn-*.tar: Fertige Jail-Images, die einfach mittels &amp;quot;tar xf&amp;quot; im Hauptverzeichnis eines *neuen* (leeren) Jails entpackt werden können. Ein neues Jail läst sich dann sinngemäß so anlegen und starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# (jail.conf anpassen)&lt;br /&gt;
# zfs create zroot/jails/uug/foo&lt;br /&gt;
# cd /jails/uug/foo &amp;amp;&amp;amp; tar xf /freebsd/uugrn/live/images/FreeBSD-9.1-RELEASE-amd64-image-uugrn-small.tar&lt;br /&gt;
# jail -c uug_foo (gemäß jail.conf::uug_foo{})&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
; FreeBSD-9.1-RELEASE-src.tar und ports.tar: &lt;br /&gt;
: sind die zum Zeitpunkt, an dem der Build angelegt wurde aktuellen Sourcen und Ports von FreeBSD. Dienen als Referenz und werden als stabile Version in den Jails verwendet.&lt;br /&gt;
: Werden /freebsd/uugrn/{dev,qa,live}/src/ und /freebsd/uugrn/{dev,qa,live}/ports/ abgelegt und sollten via /alternatives/ports und /alternatives/src in den Jails entsprechend unter /usr/src und /usr/ports (read-only) zugreifbar sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lrwxr-xr-x   1 root  wheel  19 Jun 14  2013 /usr/ports -&amp;gt; /alternatives/ports&lt;br /&gt;
lrwxr-xr-x   1 root  wheel  25 May  9  2013 /alternatives/ports -&amp;gt; /freebsd/uugrn/live/ports&lt;br /&gt;
drwxr-xr-x  70 root  wheel  86 Jun  6 23:40 /freebsd/uugrn/live/ports&lt;br /&gt;
drwxr-xr-x  70 root  wheel  86 Jun  6 23:40 /freebsd/uugrn/20140606225918/ports&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Veröffentlichung ==&lt;br /&gt;
=== Lokal in /freebsd ===&lt;br /&gt;
Ein Build wird unter /freebsd/uugrn/ veröffentlicht und enthält sieht zB so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -la /freebsd/uugrn/20140606225918/&lt;br /&gt;
total 19&lt;br /&gt;
drwxr-xr-x   5 root  wheel   5 Jun  8 00:56 .&lt;br /&gt;
drwxr-xr-x   7 root  wheel  14 Jun  8 11:02 ..&lt;br /&gt;
drwxr-xr-x   2 root  wheel  20 Jun  8 00:55 images&lt;br /&gt;
drwxr-xr-x  70 root  wheel  86 Jun  6 23:40 ports&lt;br /&gt;
drwxr-xr-x  22 root  wheel  31 Jun  6 22:59 src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;images/: enthält eine &amp;#039;&amp;#039;&amp;#039;Kopie&amp;#039;&amp;#039;&amp;#039; er in /build/20140606225918/images/ erzeugten Tarballs&lt;br /&gt;
;ports/ und src/: enthalten exakt den Stand von FreeBSD-Sourcen und FreeBSD-Ports, wie sie innerhalb des Builds aktuell waren und genutzt wurden&lt;br /&gt;
 &lt;br /&gt;
=== FTP-Server ===&lt;br /&gt;
;Distfiles: Beim Build benötigte (heruntergeladene) Distfiles werden auf den FTP-Server hochgeladen und werden dort unter http://ftp.uugrn.org/pub/FreeBSD/ports/distfiles/ gesammelt. Hier befinden sind üblicherweise auch älte Versionen der jeweiligen Distfiles, z.B. verschiedene Releases von Perl 5.12 bis 5.16 in http://ftp.uugrn.org/pub/FreeBSD/ports/distfiles/perl/&lt;br /&gt;
&lt;br /&gt;
; Packages: Gebaute Packages werden auf dem FTP-Server an der Stelle abgelegt, wo &amp;quot;pkg_add -r&amp;quot; sie suchen würde: http://ftp.uugrn.org/pub/FreeBSD/ports/amd64/packages-9.1-release/. Hat man in seinem Jail die Variable &amp;#039;&amp;#039;&amp;#039;PACKAGEROOT=&amp;quot;http://ftp.uugrn.lan&amp;quot;&amp;#039;&amp;#039;&amp;#039; gesetzt (und exportiert), dann wird &amp;#039;&amp;#039;&amp;#039;pkg_add -r&amp;#039;&amp;#039;&amp;#039; die jeweiligen Packages auf dem FTP-Server automatisch an der passenden Stelle finden. Das geht auch externen Systemen aus, die keinen Zugriff auf /freebsd/ oder http://freebsd.uugrn.lan/ haben.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* {{uug_fbsd9}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:UUGRN:Dienst]]&lt;br /&gt;
[[Kategorie:FreeBSD]]&lt;/div&gt;</summary>
		<author><name>Rabe</name></author>
	</entry>
</feed>