Karsten Böddeker 4c3d27bf90 build.sh: I should test changes first | 8 years ago | |
---|---|---|
docker | 9 years ago | |
versions | 8 years ago | |
.gitignore | 8 years ago | |
LICENSE | 8 years ago | |
Makefile | 8 years ago | |
ReadMe.md | 8 years ago | |
build-version.sh | 8 years ago | |
build.sh | 8 years ago | |
docker-build.sh | 8 years ago | |
functions.sh | 8 years ago |
Dieses Repository beherbergt die Skripte, um die Firmware von Freifunk Paderborn zu bauen. Die Inhalte dieses Repositories werden unter einer "2-clause BSD" Lizenz veröffentlicht, Details sind der Datei LICENSE zu entnehmen.
Beim Bauen der Firmware werden weitere Git-Repositories heruntergeladen und benutzt:
Es gibt zwei Möglichkeiten, die Firmware zu bauen. Entweder in einem Docker-Container oder "nativ" auf einem Debian/Ubuntu-System. Der Weg über Docker ist der empfohlene Weg für alle, die die Firmware nur nachbauen wollen - der Docker-Weg ermöglicht vergleichbare Builds.
Hinweis für MacOS-Nutzer: derzeit scheint die Volume-Mount-Funktionalität defekt zu sein (siehe auch docker issue #4023), bis ein Workaround existiert wird die Nutzung von Linux empfohlen.
Man benötigt Docker, gawk und git:
sudo apt-get install gawk git
sudo apt-get install docker.io || wget -qO- https://get.docker.com/ | sh
docker pull ffpb/build
Das Docker-Repository ffpb/build
kann auch selbst erstellt werden: docker build -t ffpb/build docker
(wenn das Git-Repository, in dem diese ReadMe liegt, ausgecheckt wurde)
Als Requirements sind die allgemeinen Build-Tools sowie libfaketime nötig. Zum Bauen des gcc in der Toolchain sind noch drei weitere Bibliotheken notwendig:
sudo apt-get install build-essential git gawk python subversion unzip p7zip-full \
faketime lib{gmp,mpfr,mpc}-dev zlib1g-dev ncurses-dev
Klone das Repository in dem diese ReadMe liegt, falls noch nicht geschehen und wechsle in das Verzeichnis:
git clone https://git.c3pb.de/freifunk-pb/firmware.git
cd firmware
Rufe build.sh
bzw. docker-build.sh
auf und übergebe folgende Umgebungsvariablen:
optional:
make dirclean
ausgeführt, falls "clean" wird make clean
ausgeführt, ansonsten keins von beidem (BRANCH=stable/testing default: "dirclean", BRANCH=experimental default: "clean")# Baut eine testing-Firmware auf Basis von Gluon 2014.4
BASE=v2014.4 BRANCH=testing VERSION=0.6~rc1 ./build.sh
# Baut eine experimental-Firmware auf Basis des aktuellen Gluon-Master (nur für Experten)
BASE=master BRANCH=experimental ./build.sh
Nach erfolgreichem Build-Vorgang liegt die Firmware fertig paketiert im output/
Verzeichnis und in versions/
wurde (außer bei BRANCH=experimental) eine Versions-Informationsdatei abgelegt. Mit dieser (nur der Name) kann build-version.sh
die gegebene Version erneut bauen.
Klone das Repository in dem diese ReadMe liegt, falls noch nicht geschehen und wechsle in das Verzeichnis:
git clone https://git.c3pb.de/freifunk-pb/firmware.git
cd firmware
Im Verzeichnis versions
liegen alle bekannten Firmware-Versionen. Durch Aufruf von build-version.sh
und Übergabe des Dateinamens (ohne Pfad) wird diese Version erneut gebaut. Es werden zwei Umgebungsvariablen unterstützt:
build.sh
statt docker-build.sh
zum BauDie Nutzung von Docker zur Überprüfung von Builds wird dringend empfohlen, da Docker Unterschiede zwischen den Build-Rechnern ausgleicht und die Binaries so einfacher überprüfbar werden.
./build_version.sh 0.6.1_stable # baut Version '0.6.1_stable' erneut
NO_DOCKER=1 ./build_version.sh 0.6.1_stable # ohne Docker-Umgebung erneut bauen