This shows you the differences between two versions of the page.
mld:entwicklung:301_entwicklungsumgebung [2013/08/27 11:41] MarMic [Einführung in den Bau der MLD3] |
mld:entwicklung:301_entwicklungsumgebung [2013/08/27 07:59] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Hinweis: Dieser Artikel ist in das MLD-Wiki umgezogen und wird hier nicht mehr aktualisiert. | + | ====== Einführung in den Bau der MLD 3.0.1 ====== |
- | ==== Einführung in den Bau der MLD3 ==== | + | ===== Vorwort: ===== |
+ | Da wir immer nach neuen Mitstreitern suchen und einige sicher von der MLD angetan sind, aber doch verschreckt von der Entwicklungsumgebung möchte ich hiermit mal ein Step-by-Step Howto build for MLD3.x zusammentippen. Dieser Teil richtet sich nicht nur an potentielle Entwickler, sondern kann von jedem neuen User Schritt für Schritt nachgestellt werden um selbst die bereitgestellten Addons zu bauen. | ||
- | ===== Vorwort: ===== | ||
- | Da wir immer nach neuen Mitstreitern suchen und einige sicher von der MLD angetan sind, aber doch verschreckt von der Entwicklungsumgebung möchte ich hiermit mal ein Step-by-Step Howto build for MLD3.x zusammentippen. Dieser Teil richtet sich nicht nur an potentielle Entwickler, sondern kann von jedem neuen User Schritt für Schritt nachgestellt werden um selbst die bereitgestellten Addons zu bauen.\\ | ||
- | \\ | ||
===== Vorbereitung ===== | ===== Vorbereitung ===== | ||
- | Da MLD3.x auf Ubuntu basiert ist es sinnvoll auch ein neueres Ubuntu zum Entwickeln zu nutzen. Im Folgenden gehe ich auf den 3.0.1 Entwicklungszweig ein und deswegen wird ein Ubuntu **Oneiric(11.10)** Derivat benötigt. Hierbei ist es egal ob es Kubuntu, Ubuntu, Linux Mint usw… ist es muss einfach nur eine 32Bit Version sein und auf Version 11.10 aufbauen.\\ | + | Da MLD 3.0.1 auf Ubuntu basiert ist es sinnvoll auch ein neueres Ubuntu zum Entwickeln zu nutzen. Im Folgenden gehe ich auf den 3.0.1 Entwicklungszweig ein und deswegen wird ein Ubuntu **Oneiric(11.10)** Derivat benötigt. Hierbei ist es egal ob es Kubuntu, Ubuntu, Linux Mint usw… ist es muss einfach nur eine **32Bit** Version sein und auf Version 11.10 aufbauen. |
- | 1. Schritt Ubuntu 11.10 32Bit installieren (Desktop oder Minimal) | + | 1. Schritt Ubuntu 11.10 32Bit installieren (Desktop oder Minimal) |
Wie man ein System installiert muss ich hoffentlich nicht beschreiben, ansonsten ist man wohl falsch im Wiki abgebogen... | Wie man ein System installiert muss ich hoffentlich nicht beschreiben, ansonsten ist man wohl falsch im Wiki abgebogen... | ||
- | \\\\ | ||
===== Ubuntu vorbereiten ===== | ===== Ubuntu vorbereiten ===== | ||
- | Nach der Installation ist es wichtig Ubuntu auf den neusten Stand zu bringen. Das ist wichtig, da die Entwicklungsumgebung so auch Zugriff auf die neusten Libraries und Binaries hat. Also in der Shell oder im Terminal folgendes eingeben:\\ | + | Nach der Installation ist es wichtig Ubuntu auf den neusten Stand zu bringen. Das ist wichtig, da die Entwicklungsumgebung so auch Zugriff auf die neusten Libraries und Binaries hat. Also in der Shell oder im Terminal folgendes eingeben: |
- | 1. sudo apt-get update\\ | + | 1. sudo apt-get update |
- | 2. sudo apt-get dist-upgrade | + | |
- | Nun noch die zwei Basis Pakete installieren um an die Entwicklungsumgebung zu kommen:\\ | + | 2. sudo apt-get dist-upgrade |
- | 3. sudo apt-get install subversion make mercurial git-core | + | Nun noch die zwei Basis Pakete installieren um an die Entwicklungsumgebung zu kommen: |
- | \\ | + | 3. sudo apt-get install subversion make mercurial git-core |
===== Holen der Entwicklungsumgebung ===== | ===== Holen der Entwicklungsumgebung ===== | ||
- | So nun haben wir Ubuntu soweit vorbereitet für unsere Sachen und können anfangen uns die Entwicklungsumgebung zu holen. Die folgenden Befehle wieder in einer Shell oder Terminal ausführen.\\ | + | So nun haben wir Ubuntu soweit vorbereitet für unsere Sachen und können anfangen uns die Entwicklungsumgebung zu holen. Die folgenden Befehle wieder in einer Shell oder Terminal ausführen. |
- | Als erstes clonen wir die Entwicklungsumgebung\\ | + | Als erstes clonen wir die Entwicklungsumgebung |
- | 1. svn co http://minidvblinux.de/svn-3/MLD/branches/oneiric MLD | + | 1. svn co http://minidvblinux.de/svn-3/MLD/branches/oneiric MLD |
- | Wenn dabei etwas schief geht hat man sicherlich etwas bei Ubuntu vorbereiten vergessen\\ | + | Wenn dabei etwas schief geht hat man sicherlich etwas bei Ubuntu vorbereiten vergessen |
\\ | \\ | ||
- | Nun Wechseln wir in den Ordner MLD welcher schon die wichtigsten Werkzeuge für uns beinhaltet. Man könnte jetzt ein make starten dieses würde aber sofort abbrechen weil einige benötigte Ubuntu Pakete fehlen. Um nun nicht immer wieder weitere fehlende Ubuntu Pakete installieren zu müssen rate ich dazu sich erst einmal die ganze Entwicklungsumgebung zu laden und alle Beziehungen (ab sofort deps) aufzulösen. Klingt schlimmer als es ist. \\ | + | Nun Wechseln wir in den Ordner MLD welcher schon die wichtigsten Werkzeuge für uns beinhaltet. Man könnte jetzt ein make starten dieses würde aber sofort abbrechen weil einige benötigte Ubuntu Pakete fehlen. Um nun nicht immer wieder weitere fehlende Ubuntu Pakete installieren zu müssen rate ich dazu sich erst einmal die ganze Entwicklungsumgebung zu laden und alle Beziehungen (ab sofort deps) aufzulösen. Klingt schlimmer als es ist. |
- | 2. cd MLD | + | 2. cd MLD |
Nun holen wir erst mal alle Pakete: | Nun holen wir erst mal alle Pakete: | ||
- | 3. make checkout_all | + | 3. make checkout_all |
Da XBMC nicht aus dem Oneiric ppa ist müssen wir nun leider nochmal Hand anlegen: | Da XBMC nicht aus dem Oneiric ppa ist müssen wir nun leider nochmal Hand anlegen: | ||
- | 4. sudo apt-get install python-software-properties\\ | + | 4. sudo apt-get install python-software-properties |
- | 5. sudo add-apt-repository ppa:team-xbmc/unstable\\ | + | |
- | 6. sudo add-apt-repository ppa:wsnipex/xvba-dev\\ | + | 5. sudo add-apt-repository ppa:team-xbmc/unstable |
+ | |||
+ | 6. sudo add-apt-repository ppa:wsnipex/xvba-dev | ||
Für Vdrtranscode brauchen wir Handbrake zum Umwandeln verschiedener Video Formate aus folgendem PPA: | Für Vdrtranscode brauchen wir Handbrake zum Umwandeln verschiedener Video Formate aus folgendem PPA: | ||
- | 7. sudo add-apt-repository ppa:stebbins/handbrake-releases\\ | + | 7. sudo add-apt-repository ppa:stebbins/handbrake-releases |
Noch Medibuntu hinzufügen: | Noch Medibuntu hinzufügen: | ||
- | 8. make -C lib-xine add_medibuntu\\ | + | 8. make -C lib-xine add_medibuntu |
- | Als nächstes lassen wir die deps der Pakete auflösen.\\ | + | Als nächstes lassen wir die deps der Pakete auflösen. |
- | 9. sudo apt-get update | + | 9. sudo apt-get update |
- | 10. sudo apt-get install $(make deps) | + | |
- | Nachdem das durchgelaufen ist haben wir eine fertig eingerichtete Entwicklungsumgebung.\\ | + | 10. sudo apt-get install $(make deps) |
- | \\ | + | Nachdem das durchgelaufen ist haben wir eine fertig eingerichtete Entwicklungsumgebung. |
===== Einzelnes Addon/Plugin bauen: ===== | ===== Einzelnes Addon/Plugin bauen: ===== | ||
- | Die meisten wird wohl nur eins interessieren, wie baue ich einzelne Addons. Das ist ziemlich einfach, vor allem gibt es in der Entwicklungsumgebung Plugins/Addons, welche es aus unterschiedlichsten Gründen (z.B. Stabilität nicht auf die Website geschafft haben). Ich zeige nun anhand eines Beispiels das Bauen eines einzelnen Addons (hier nun dvb-usb).\\ | + | Die meisten wird wohl nur eins interessieren, wie baue ich einzelne Addons. Das ist ziemlich einfach, vor allem gibt es in der Entwicklungsumgebung Plugins/Addons, welche es aus unterschiedlichsten Gründen (z.B. Stabilität nicht auf die Website geschafft haben). Ich zeige nun anhand eines Beispiels das Bauen eines einzelnen Addons (hier nun dvb-usb). |
- | 1. cd dvb-usb\\ | + | 1. cd dvb-usb |
- | 2. make | + | |
- | So das war schon die Zauberei. Die Entwicklungsumgebung wird nun automatisch den Kernel laden (braucht die Header usw.) dann dvb bauen, weil da die dvb-usb Treiber drin sind und diese dann in ein schönes Addon schnüren und nach build/MLD/!_addons legen. Dieses muss man nur noch auf den VDR ablegen unter /etc/addons und per OSD aktivieren. Das kann man nun beliebig mit jedem Ordner (der übrigens immer ein Addon/Plugin repräsentiert) machen.\\ | + | 2. make |
- | \\ | + | So das war schon die Zauberei. Die Entwicklungsumgebung wird nun automatisch den Kernel laden (braucht die Header usw.) dann dvb bauen, weil da die dvb-usb Treiber drin sind und diese dann in ein schönes Addon schnüren und nach build/MLD/!_addons legen. Dieses muss man nur noch auf den VDR ablegen unter /etc/addons und per OSD aktivieren. Das kann man nun beliebig mit jedem Ordner (der übrigens immer ein Addon/Plugin repräsentiert) machen. |
- | Sollten einzelne Addons nicht bei den Quellen beiliegen, findet sich im Artikel [[MLD|3.0 - Addons erstellen]] eine Beschreibung, wie man neue Addons hinzufügt. | + | |
+ | Sollten einzelne Addons nicht bei den Quellen beiliegen, findet sich im Artikel [[mld/entwicklung/mld3_bauen_eines_addons|MLD 3 Bauen eines Addons]] eine Beschreibung, wie man neue Addons hinzufügt. | ||
===== Alles Bauen ===== | ===== Alles Bauen ===== | ||
Natürlich kann man auch mit einem Rutsch alles auf einmal bauen lassen. Je nach Maschine kann das zwischen 50min und 18h dauern. Man wechselt erstmal wieder nach build/MLD wenn man nicht sowieso schon da ist und nun:\\ | Natürlich kann man auch mit einem Rutsch alles auf einmal bauen lassen. Je nach Maschine kann das zwischen 50min und 18h dauern. Man wechselt erstmal wieder nach build/MLD wenn man nicht sowieso schon da ist und nun:\\ | ||
- | 1. make all | + | 1. make all |
- | und schon ist der Rechner eine Weile beschäftigt. Wenn er fertig ist hat man unter build/MLD/!_addons die ISO’s und alle Plugins/Addons liegen, die es bereits für die MLD in die Entwicklungsumgebung geschafft haben.\\ | + | und schon ist der Rechner eine Weile beschäftigt. Wenn er fertig ist hat man unter build/MLD/!_addons die ISO’s und alle Plugins/Addons liegen, die es bereits für die MLD in die Entwicklungsumgebung geschafft haben. |
- | \\ | + | |
===== ISO Bauen ===== | ===== ISO Bauen ===== | ||
- | So nun möchten wir uns nicht auf unseren Lorbeeren ausruhen, sondern natürlich ein Addon oder Iso bauen. Um die vorgefertigten Isos die es auch auf der Website gibt zu bauen reicht ein einfaches\\ | + | So nun möchten wir uns nicht auf unseren Lorbeeren ausruhen, sondern natürlich ein Addon oder Iso bauen. Um die vorgefertigten Isos die es auch auf der Website gibt zu bauen reicht ein einfaches |
- | 1. make | + | 1. make |
- | Man beachte dabei, dass wir weiterhin im build/MLD Ordner sind. Wenn man sein ISO individuell anpassen möchte, sollte man eine entsprechende Beschreibung in build/MLD/Makefile.config hinterlegen. Das kann dann so aussehen:\\ | + | Man beachte dabei, dass wir weiterhin im build/MLD Ordner sind. Wenn man sein ISO individuell anpassen möchte, sollte man eine entsprechende Beschreibung in build/MLD/Makefile.config hinterlegen. Das kann dann so aussehen: |
- | addon_lists = "devel = locales install network webserver alsa xorg vdr addons setup xinelib xineliboutput" | + | addon_lists = "devel = locales install network webserver alsa xorg vdr addons setup xinelib xineliboutput" |
- | \\ | + | |
===== Auf dem neusten Stand bleiben ===== | ===== Auf dem neusten Stand bleiben ===== | ||
- | Da wir immer mal wieder neue Sachen einchecken lohnt es sich immer wieder mal ein update der Entwicklungsumgebung zu machen. Dabei sollte man auf eine Sachen achten. Ersteinmal: \\ | + | Da wir immer mal wieder neue Sachen einchecken lohnt es sich immer wieder mal ein update der Entwicklungsumgebung zu machen. Dabei sollte man auf eine Sachen achten. Ersteinmal: |
- | 1. svn up\\ | + | 1. svn up |
- | 2. wenn sich hierbei die modules.list geändert hat (wird angezeigt) muss man 3. Machen ansonsten 4.\\ | + | |
- | 3. make checkout_all | + | 2. wenn sich hierbei die modules.list geändert hat (wird angezeigt) muss man 3. Machen ansonsten 4. |
+ | |||
+ | 3. make checkout_all | ||
Das Folgende braucht man NUR wenn modules.list sich nicht verändert hat. | Das Folgende braucht man NUR wenn modules.list sich nicht verändert hat. | ||
- | 4. make update_all | + | 4. make update_all |
Wenn sich durch checkout_all oder update_all Plugins/Addons ändern, werden diese automatisch sauber gemacht. Um nun noch sicherzustellen das wir beim nächsten Bauen keine Probleme bekommen sollten wir nochmal die deps auflösen lassen mit | Wenn sich durch checkout_all oder update_all Plugins/Addons ändern, werden diese automatisch sauber gemacht. Um nun noch sicherzustellen das wir beim nächsten Bauen keine Probleme bekommen sollten wir nochmal die deps auflösen lassen mit | ||
- | 5. sudo apt-get install $(make deps) | + | 5. sudo apt-get install $(make deps) |
- | Das ist zwar nicht nötig, stellt aber sicher, das ein make all ohne weitere Nachfragen durchläuft. Nun kann man wieder wie gewohnt (siehe Oben) bauen.\\ | + | Das ist zwar nicht nötig, stellt aber sicher, das ein make all ohne weitere Nachfragen durchläuft. Nun kann man wieder wie gewohnt (siehe Oben) bauen. |
- | \\ | + | |
===== OPTIONAL: Addon aus altem PPA bauen (Erfahrenere User) ===== | ===== OPTIONAL: Addon aus altem PPA bauen (Erfahrenere User) ===== | ||
Es mag Leute geben die sich ein Addon bauen wollen, welches nur in älteren ppas vorhanden ist. Ich erkläre hier am Beispiel von Dillo wie man bei sowas vorgeht. | Es mag Leute geben die sich ein Addon bauen wollen, welches nur in älteren ppas vorhanden ist. Ich erkläre hier am Beispiel von Dillo wie man bei sowas vorgeht. | ||
- | 1. sudo add-apt-repository ppa:d.filoni/dillo | + | 1. sudo add-apt-repository ppa:d.filoni/dillo |
- | Bei dillo fahren wir bewusst noch kein update, da das knallt. Dillo ist leider so alt das wir ein bisschen tricksen müssen und apt-get auf den lucid brunch umleiten müssen. Da ich eine Desktop Umgebung nutze geht das wie folgt:\\ | + | Bei dillo fahren wir bewusst noch kein update, da das knallt. Dillo ist leider so alt das wir ein bisschen tricksen müssen und apt-get auf den lucid brunch umleiten müssen. Da ich eine Desktop Umgebung nutze geht das wie folgt: |
- | 2. sudo gedit /etc/apt/sources.list.d/**d_filoni-dillo-natty.list** (Die *.list weicht natürlich ab für andere Addons)\\ | + | 2. sudo gedit /etc/apt/sources.list.d/**d_filoni-dillo-natty.list** (Die *.list weicht natürlich ab für andere Addons) |
- | 3. hier **tauschen** wir nun natty gegen lucid das sieht dann so aus:\\ | + | |
- | deb http://ppa.launchpad.net/d.filoni/dillo/ubuntu **lucid** main\\ | + | 3. hier **tauschen** wir nun natty gegen lucid das sieht dann so aus: |
- | deb-src http://ppa.launchpad.net/d.filoni/dillo/ubuntu **lucid** main\\ | + | deb http://ppa.launchpad.net/d.filoni/dillo/ubuntu **lucid** main |
- | 4. speichern und schließen\\ | + | deb-src http://ppa.launchpad.net/d.filoni/dillo/ubuntu **lucid** main |
- | 5. sudo apt-get update | + | |
- | So nun können wir aber wieder schön einfach mit make arbeiten. D.h. make deps durchführen und bauen wie unten beschrieben.\\ | + | 4. speichern und schließen |
- | \\ | + | |
+ | 5. sudo apt-get update | ||
+ | | ||
+ | So nun können wir aber wieder schön einfach mit make arbeiten. D.h. make deps durchführen und bauen wie unten beschrieben. | ||