Vorlage:Infos

Aus TuxBoxWIKI
Wechseln zu: Navigation, Suche

TuxboxWIKI Weblinks

Der Begriff Infos ist im TuxboxWIKI selber nicht erklärt. Wir haben aber einige Internetlinks zusammengestellt, wo weitere Informationen zu Infos zu finden sind.

@Dbt: Schau mal drüber und lösche oder verschiebe es, wenns hier nicht hin passt. (naicheben)

Exemplarisch wird hier mal der unfsd und die Makros / Umgebungsvariablen erklärt. Hier der Quellcode der Datei ~/buildsystem-cs/make/unfsd.mk:

  298 $(D)/unfsd: $(D)/libflex $(D)/portmap $(ARCHIVE)/unfs3-$(UNFS3-VER).tar.gz
  299         $(UNTAR)/unfs3-$(UNFS3-VER).tar.gz
  300         cd $(BUILD_TMP)/unfs3-$(UNFS3-VER) && \
  301                 $(CONFIGURE) --build=$(BUILD) --host=$(TARGET) --target=$(TARGET) \
  302                         --prefix= --mandir=/.remove && \
  303                 $(MAKE) && \
  304                 $(MAKE) install DESTDIR=$(TARGETPREFIX)
  305         rm -f -r $(TARGETPREFIX)/.remove
  306         rm -rf $(PKGPREFIX)
  307         mkdir -p $(PKGPREFIX)/sbin
  308         install -m 755 -D $(SCRIPTS)/nfsd.init $(TARGETPREFIX)/etc/init.d/nfsd
  309         install -m 755 -D $(SCRIPTS)/nfsd.init $(PKGPREFIX)/etc/init.d/nfsd
  310         ln -s nfsd $(PKGPREFIX)/etc/init.d/S99nfsd # needs to start after modules are loaded
  311         ln -s nfsd $(PKGPREFIX)/etc/init.d/K01nfsd
  312         cp -a $(TARGETPREFIX)/sbin/{unfsd,portmap} $(PKGPREFIX)/sbin
  313         $(OPKG_SH) $(CONTROL_DIR)/unfsd
  314         $(REMOVE)/unfs3-$(UNFS3-VER) $(PKGPREFIX)
  315         touch $@

Dabei bedeuten: $(BASE_DIR) = da wo das Buildsystem hin installiert ist, also ~/cs-neutrino zum Beispiel.

$(PKGPREFIX) = $(BASE_DIR)/build_tmp/pkg das Verzeichnis, in dem die Dateien für das Paket liegen

$(CONTROL_DIR) = $(BASE_DIR)/pkgs/control : Paketinformationen

$(TARGETPREFIX) = $(BASE_DIR)/root : hier installiert "make install" die Binärdateien

$(SCRIPTS) = $(BASE_DIR)/scripts/target : hier liegen Skripte wie zum Beispiel in /etc/init.d/


298-303: Das Sourcepaket wird also nach build_tmp entpackt und kompiliert.

304: Dann wird es nach cs-neutrino/root "installiert".

305: $(TARGETPREFIX)/.remove Dorthin wurde die Doku gebaut, die nimmt natürlich zu viel Platz und muss weg

306: löscht das temporäre Paketverzeichnis

307: erstellt ein temporäres Paketverzeichnis ("-p" erstellt /sbin gleich mit ohne meckern)

308+309: kopieren das init-skript sowohl in das root-fs als auch in das temporäre Paketverzeichnis

310+311: legen symbolische Links im temporären Paketverzeichnis an

312: kopiert die binaries ins temporäre Paketverzeichnis

313: endlich wird das Paket gebaut.

Der Rest ist Aufräumen.


Also macht opkg.sh alles in ein ar-Archive, was in $(PKGPREFIX) ist (plus control.tar.gz) ?

opkg.sh braucht ein paar Umgebungsvariablen, deswegen wird es als $(OPKG_SH) aufgerufen, da werden die alle gesetzt. opkg.sh checkt auch gleich, ob es das paket schon gibt, und ob das neue paket identisch zum alten wäre (dann wird einfach das alte behalten). Wenn es sich unterscheidet, dann wird die Releasenummer hochgezählt und es neu eingepackt, das Alte wird weggesichert.


Weitere Informationen zu dem Begriff "Infos" findet Ihr unter: