GettingStartedDE
Dev Week -- Getting Started -- German -- Mon, Jan 19
dholbach Willkommen bei der Ubuntu Developer Week!
holloway Yiha!
marktrix hallo
co0lingFir3 hiho
riot_le hi Daniel
F30 servus
PatrickBic hi
crazyTron hi
dholbach Für alle von Euch, für die das ganze neu ist, der Zeitplan für die ganze Woche ist auf: https://wiki.ubuntu.com/UbuntuDeveloperWeek
und die Logs werden da nach und nach auf auftauchen (die Links sind schon da)
Wenn ihr Fragen habt, bitte fragt!
Wenn möglich, fragt bitte in #ubuntu-classroom-de-chat
OK... gibt's schon erste Fragen? :)
holloway Wo gibts Bier? -g-
bullgard4 Wo steht denn, aus welchen Komponenten ein DEB-Programmpaket zusammengebaut wird?
dholbach Das war ein Test: nicht bestanden. ;-)
holloway Argh
dholbach War nur Spaß - in Zukunft fragt nur bitte in #ubuntu-classroom-de-chat :-)
thekorn /j #ubuntu-classroom-de-chat
dholbach <holloway> Wo gibts Bier? -g-
thekorn upps, ich auch nicht ;)
dholbach holloway: vielleicht beim Berlin Bug Jam am Donnerstag? :-)
<bullgard4> Wo steht denn, aus welchen Komponenten ein DEB-Programmpaket zusammengebaut wird?
holloway dholbach: Da hatte ich vor zu kommen :)
dholbach holloway: super
bullgard4: das werde ich in der nächsten Session (Packaging 101) in #ubuntu-classroom im Detail beantworten
<afflux> drüben gabs grade: "Ich kann C/C++, wie kann ich helfen?"
bullgard4 dholbach: Gut!
dholbach afflux: darüber werden wir uns gleich im Detail unterhalten :-)
dholbach zuerst werden wir uns aber eine "Entwicklungs-Umgebung" zusammenstellen, das dauert ein klein wenig länger, danach werde ich auch wieder mehr Fragen beantworten
<benste> so mal ne ganz einfache frage, wie werden die nächsten zwei stunden hier ablaufen?
benste: Du hast recht, erstmal ein kleiner Überblick
benste thanks
dholbach wie schon gerade angekündigt: wir werden uns eine Entwicklungsumgebung erstellen, dh. nötige Tools installieren, ich werd erzaehlen wofuer die da sind und ein paar Dinge einstellen, die uns das Leben einfacher machen
danach wolle ich einen Überblick über Ubuntu Entwicklung geben, dh. der Release-Zyklus, wie man am besten "mit machen" kann
und wir werden mit den Tools, die wir gleich installieren, ein wenig spielen
super, legen wir los
dholbach als erstes würde ich Euch bitten die folgenden Pakete zu installieren: gnupg devscripts pbuilder
also einfach
sudo apt-get install gnupg devscripts pbuilder
<holloway> FRAGE: Sollte vielleicht erwaehnt werden, dass wir Jaunty benutzen sollten, oder ist das egal?
holloway: gute Frage - intrepid wird hier erst einmal ausreichen
trotzdem will ich auf https://wiki.ubuntu.com/UbuntuDevelopment/UsingDevelopmentReleases hinweisen
es ist extrem nützlich z.B. eine virtuelle Maschine oder ein Chroot oder eine Partition mit dem aktuellen Entwicklungsrelease zu haben, wenn man ordentlich testen und entwickeln will
<legate> FRAGE: Wie viel Sinn macht es eigentlich, sich so viel mit der Ubuntu-Entwicklung zu beschäftigen? Wie viel von Ubuntu ist denn eigentlich Ubuntu selber? Ubuntu basiert schließlich auf Debian und hat als Display Manager GNOME.
dholbach legate: wenn Du aktiv Ubuntu verbessern willst, dann ist diese Woche spannend für Dich
<co0lingFir3> FRAGE: wenn ich pakete übers terminal installiere, werden sie nicht in der synaptic-chronik aufgelistet oder?
co0lingFir3: Du kannst auch gerne synaptic benutzen
OK
so... was haben wir jetzt installiert?
GPG (gnupg) ist ein Tool, mit dem man Nachrichten (und Dateien) verschlüsseln und signieren kann
Warum brauchen wir das?
F30 Zum signieren der pakete
dholbach weil wir damit ausweisen können, dass WIR (und niemand anderes) diese bearbeitet haben
F30: sehr gut
diese Technik wird z.B. beim Hochladen der Pakete benutzt
F30 danke^^
dholbach wenn der Schlüssel des Uploaders (sorry für das Englisch hier :-)) nicht im Keyring enthalten ist, wirft die Build Maschine es einfach weg
darüber gleich mehr
devscripts enthält Dutzende von Tools die Paketieren sehr sehr einfach machen
besonders Aufgaben, die immer wieder auf einen zukommen, z.B. das bearbeiten eines ChangeLogs
pbuilder ist ein exzellentes Werkzeug um Pakete test-zu-kompilieren
dholbach es baut eine separate minimale Umgebung auf und kompiliert darin das Paket
das hat mindestens zwei Vorteile: 1) ich brauch nicht alle Pakete zu installieren, die für das Bauen nötig sind, 2) ich teste damit, ob es in einer "sauberen" Umgebung auch baut
Könnt ihr bitte jetzt eine Datei namens ~/.pbuilderrc anlegen
und folgendes hereinschreiben:
COMPONENTS="main universe multiverse restricted"
dann einfach abspeichern
<F30> FRAGE: Wie unterscheidet sich die pbuilder-Umgebung von der Haupt-Umgebung, was ist getrennt und was gemeinsam?
F30: sie lebt einzig und allein in /var/cache/pbuilder - soweit ich weiß wird 'chroot' für die Interna verwendet
man chroot (chroot(8)) hat mehr Informationen darüber
<legate> FRAGE: Wie kann man denn ein Paket bauen (selbst in einer separaten Umgebung), ohne alle dafür nötigen Pakete zu besitzen?
legate: die Build-Dependencies (Pakete, die für das Bauen gebraucht werden) werden nur in pbuilder selbst installiert und nicht lokal
<co0lingFir3> FRAGE: wie kann man eine neue datei übers Terminal anlegen?
co0lingFir3: nano ~/.pbuilderrc zum Beispiel
gedit oder jeder andere Editor tut es auch
sobald das erledigt ist, führt bitte
sudo pbuilder create
aus
das wird dann ein wenig dauern, es müssen Pakete dafür herunter geladen werden usw.
wir machen in der Zwischenzeit mit anderen Dingen weiter :)
dholbach sorry, hat gerade an der Tür geklingelt - bin wieder da
benste ;-)
co0lingFir3 ^^
dholbach OK
danach editiert bitte noch ~/.bashrc
und fügt am Ende etwas in der Art wie
export DEBFULLNAME='Daniel Holbach'
export DEBEMAIL='daniel.holbach@ubuntu.com'
an
danach speichert bitte die Datei und führt folgendes aus:
source ~/.bashrc
(oder started einfach das Terminal neu)
<legate> FRAGE: Wofür ist .bashrc denn da?
legate: ~/.bashrc enthält Einstellungen für die Standard-Shell für neue Benutzer
dholbach wir setzen dort obige beiden Variablen, damit wir im weiteren nicht 100mal unseren Namen und unsere Emailaddresse von Hand eintippen müssen
dholbach <F30> FRAGE: Für alle Benutzer? Liegt doch in meinem Home?
F30: die Standard-Shell für alle Benutzer
~/.bashrc ist für jeden einzelnen Benutzer, sorry
<co0lingFir3> FRAGE: also ist die bashrc so eine datei, wo variablen drin stehen, auf die das terminal zugreift?
co0lingFir3: unter anderem - sie enthält auch andere Skripte die aufgerufen werden etc.
als nächstes führt bitte das hier aus:
gpg --gen-key
damit werden wir einen neuen GPG Key erzeugen
benste hate vorhin ne frage gestellt!
dholbach wenn ihr schon einen habt, könnt ihr dies ueberspringen
benste: eins nach dem anderen :)
benste k
dholbach <benste> soll da der eigenen name oder nur nen paste rein
dholbach benste: Dein eigener Name und Deine eigene Mailaddresse
benste k
dholbach beim GPG Key belasst einfach alles beim Standardwert
"DSA and Elgamal" und "2048" sind gut
die Standardwerte sind dahinter in Klammern
danach gebt, wenn ihr danach gefragt werdet bitte Euren Namen und Eure Mailaddresse ein
bitte auch die, die ihr oben verwented habt (DEBFULLNAME und DEBEMAIL)
verwendet
dann gebt bitte einen Passphrase ein (nicht zu einfach)
danach muss GPG ein wenig nachdenken, wird dann aber einen Key für Euch ausspucken :)
<legate> Bekomme Frage: "Key is valid for?"
Nimm einfach "0" den Standardwert
das heißt soviel wie: der Key verliert niemals seine Gültigkeit
Super, jetzt lassen wir pbuilder und gnupg mal noch ein wenig rummachen und widmen uns ein wenig der Ubuntu Entwicklung
"Wie kann ich mitmachen?" werde ich sehr oft gefragt
https://wiki.ubuntu.com/MOTU/GettingStarted hat einen schnellen Überblick über die wichtigsten Webseiten
Alle wichtigen Links sind dort vorhanden
- der Packaging Guide
- Ubuntu Entwickler Dokumentation (Prozesse - wie werden Dinge gemacht?)
- MOTU Videos
- einfache Bugs zum loslegen, wenn man sich mit den Tools ein wenig vertraut gemacht hat
ja, es ist alles auf Englisch
<legate> Was ist das? "Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy! (Need 283 more bytes)"
legate: gpg braucht noch ein wenig mehr Zufallsdaten um den Key zu erzeugen - lass es einfach mal vor sich hin arbeiten
Leider kann ich nicht die gesamte Entwicklerwelt auf Deutsch umstellen - Englisch ist die Lingua France
ich kann Euch nur raten, Euch an ein paar deutsche Entwickler zu halten, wenn ihr Fragen wegen der Sprache oder Einzelheiten habt, aber bleibt dabei: probiert es einfach
der Link den ich eben gegeben hab, enthält MOTU
weiß einer was MOTU heißt?
benste mentoring ...
legate Master of the Universe
dAnjou message of the irgendwas?
dholbach legate: excellent! :)
legate die universe repository-packager
benste MOTU project (which stands for Masters Of The Universe)
dholbach genau, das sind die Masters of the Universe
die heißen so, weil die Mitglieder nach Universe und Multiverse hochladen dürfen
benste lol
dholbach die "Core Developer" können Pakete aller Teile von Ubuntu hochladen
viel wichtiger ist aber jetzt: wie kann ich mitmachen, wenn ich jetzt noch kein MOTU oder core-dev bin?
dafür haben wir Sponsoring
angenommen ihr habt Euch einen Bug herausgepickt, ihn behoben und wollt, dass der Patch von jemand anderem (der das schon kann) hochgeladen wird
dann hängt ihr den Patch einfach an den Bugreport in Launchpad an
und subscribed entweder ubuntu-main-sponsors oder ubuntu-universe-sponsors
und die prüfen das dann und laden es dann für Euch hoch
nach dem ihr einige Zeit mit den Sponsors zusammengearbeitet habt und die Euch täglich auf die Schulter klopfen, sollte ihr vielleicht eine 'Bewerbung' an das MOTU Council schicken, die Euch dann in das Team aufnehmen werden
https://wiki.ubuntu.com/SponsorshipProcess und https://wiki.ubuntu.com/UbuntuDeveloper erläutern das näher, aber die sind auch von der Getting Started Seite verlinkt
die erste Frage sollte also nicht sein: "wie werd ich in das Team aufgenommen?" sondern "Wie lern ich, wie ich Patches schreibe und wie finde ich einfache Bugs?"
Das erklär ich dann am Mittwoch um 17:00 UTC in "Fixing Bugs in Ubuntu" :-)
<holloway> FRAGE: Mit ubuntu-main-sponsors oder ubuntu-universe-sponsors meinst du die Mailinglisten?
holloway: das sind Teams in Launchpad
einfach auf "subscribe someone else" klicken, und das Team eintragen
damit gerät Dein Patch/Bug auf deren "Review Liste"
noch irgendwelche Fragen dazu? :))
holloway Nein :)
dholbach Super, weiter gehts
Eine Frage, die ich immer wieder gestellt bekomme ist: "Ich kann KEIN C und C++, kann ich trotzdem mitmachen?"
Die Antwort ist: ja, definitiv!
dholbach Das spannende am Entwicklungsmodell von Ubuntu ist, dass wir alles als Team machen.
dholbach D.h. es gibt keinen "Maintainer" für jedes Paket, der eventuell blockieren kann, alles ist Teamwork bei uns.
Und es gibt genug zu tun.
Natürlich respektiert jeder, wenn jemand im Team besonders viel Ahnung von etwas hat, klar. :-)
Wenn man sich jetzt ein bestimmtes Paket heraussucht, um das man sich ein wenig kümmern will, dann vergleiche ich das gerne mit einer "Botschafter-Rolle"
dholbach man kommuniziert nämlich zwischen Benutzern, anderen Entwicklern, den Software-Autoren, Betreuern anderer Distributionen und so weiter
selbst wenn man den Quellcode nicht 100% nachvollzieht, kann man z.B. eine neuere Version paketieren
dholbach oder Bugreports an die Autoren der Software weiterleiten und wenn die einen Patch geschrieben haben, diesen Patch einpflegen
dabei lernt man schnell eine ganze Menge
<maix> FRAGE: angenommen ihr habt Euch einen Bug herausgepickt, ihn behoben und wollt, dass der Patch von jemand anderem (der das schon kann) hochgeladen wird -> öh was davon hab ich dann gemacht? nur den patch gesucht?
dholbach maix: wenn Du den Patch einfach finden kannst, statt ihn selbst zu schreiben: umso besser :)
dholbach oftmals lohnt es sich, ein bißchen Detektiv-Arbeit zu leisten
und im Upstream-Bugtracker nachzuschauen
maix ah kanns sein dass nach behoben oder stehen sollte statt und?
dholbach oder im Upstream-Versionskontrollsystem
maix: aehm, ich glaub ich verstehe nicht ganz
dholbach <maix> dholbach: angenommen ihr habt Euch einen Bug herausgepickt, ihn behoben ODER wollt, dass der Patch von jemand anderem (der das schon kann) hochgeladen wird
mit "behoben" meinte ich: eine Lösung für das Problem gefunden
also Fix vorhanden, aber noch nicht hoch geladen
machen wir mal 5 Minuten Pause
benste danke :-)
dholbach vielleicht bin ich danach wieder etwas klarer :)
holloway dholbach: Kaffee? -g-
* juliux reicht dholbach eine mate
dholbach juliux: Danke, genau was ich brauchte :)
* F30 denkt mate ist ne gute idee und schließt sich an^^
F30 ab in den keller...
afflux asac kommt auch aus -de?
dholbach afflux: jap, der wohnt in Hamburg
afflux wieder was gelernt
dholbach OK, meine Freunde - weiter gehts
sind noch weitere Fragen aufgetaucht?
war alles stimmig so weit? :)
<legate> ist sichergestellt, dass bugs in launchpad nicht besser in debian gepatcht werden sollen?
legate: ausgezeichnete Frage
heute um 19.00 UTC wird es eine Session genau zu dem Thema geben
hier meine kurze Antwort: ich bin Ubuntu Entwickler und arbeite ausschließlich an Ubuntu und verwende es ausschließlich
ich mache aber mein Leben wesentlich leichter (und bin ein guter Nachbar), wenn ich den Patch nach Debian (und die Softwaren Autoren des jeweiligen Projekts) weiterleite
dholbach Ich werde gleich etwas über Merges, Syncs usw. erzählen - alles Themen, die sich um Ubuntu und Debian drehen.
<Brot>1 woher weiß ich welche informationen ich bei einem bugreport angeben muss bzw. wie ich zu den informationen komme?
Brot1: das ist schwer allgemein zu beantworten, sehr wichtig ist: Programm- und Ubuntu-Version und genaue Schritte, wie Du reproduzieren kannst
das ist allgemein und überall gleich
die jeweiligen BugSquad Mitglieder und Paket-Betreuer werden dann spezifischere Fragen danach stellen
afflux *wink*
dholbach https://wiki.ubuntu.com/DebuggingProcedures hat weitere Informationen für spezielle Paketklassen
<F30> FRAGE: Warum holt sich pbuilder die Pakete von jaunty, obwohl ich intrepid benutze?
F30: das ist eine interessante Frage - benutzt Du intrepid-backports?
F30 jep
dholbach es könnte vielleicht wegen debootstrap aus -backports sein
schau Dir die manpage von pbuilder vielleicht mal an
man kann es auch explizit angeben
oder https://wiki.ubuntu.com/PbuilderHowto
dholbach OK, weiter gehts
F30 laut manpage ist pbuilder " used for creating
and maintaining chroot environment and building Debian package in the
chroot environment." Vermutl. erstellt er deshalb eine passende Entwicklungsumgebung?
dholbach F30: vielleicht ist 'jaunty' der Standardwert im debootstrap aus 'intrepid-backports'
zum herumspielen ist das jetzt erstmal so OK
F30 ok
dholbach jreinhardt FRAGE:Mein pbuilder scheint für Hardy zu sein, zumindest steht da: HardyDistribution is hardy.jreinhardt FRAGE:Mein pbuilder scheint für Hardy zu sein, zumindest steht da: HardyDistribution is hardy.
jreinhardt: das ist OK so
machen wir weiter
ich wollte was über Merges und Syncs erklären
dazu müssen wir ein wenig über den Release Zyklus reden
wie ihr wisst kommt alle 6 Monate ein neuer Ubuntu Release heraus
und der Grund warum das (bis auf einen einzigen Fall) so gut klappt ist weil wir einen sehr rigiden Release Zyklus haben
der jetzige (Jaunty) ist hier abrufbar: https://wiki.ubuntu.com/JauntyReleaseSchedule
was passiert also wenn die neue Distro "geöffnet wird"?
erst einmal wird die Toolchain hochgeladen, d.h. wichtige Pakete wie gcc, glibc, binutils, usw
ohne die geht erstma garnix :)
wie ihr auf der Wikiseite seht: da ist alles grün
das heißt "alles geht"
zu dieser Zeit verwendet kein vernünftiger Benutzer die Distribution
da ist erstmal alles kaputt
die Pakete die wir nicht abgeändert haben (verglichen mit Debianpaketen), werden automatisch gesynct
was heißt das?
benste abgeglichen?
dAnjou automatisch aktualisiert, wenn veraltet
sdx23 Von Debian übernommen?
dholbach benste: wenn wir ein unverändertes Debian-Source-Paket (den Quellcode des Pakets) haben und es in Debian eine neuere Version gibt, dann wird die automatisch "gesynced"
das heißt das Quellpaket wird von Debian heruntergeladen und auf den Build-Servern gebaut
dAnjou Wäre "synchronisiert" nicht ein besserer Begriff?
dholbach dAnjou: synchronisiert geht definitiv, "the package got synced" ist der englische gängige Begriff
daher mein "gesynced" :)
dholbach wenn das Ubuntu-Source-Paket modifiziert wurde, dann müssen die Änderungen des neuen Debian-Source-Pakets "gemerged" werden
d.h manuell müssen die Änderungen übertragen werden
dholbach semi-manuell sollte ich vielleicht sagen
dholbach https://wiki.ubuntu.com/UbuntuDevelopment/Merging hat mehr Information darüber, wie ein Tool namens Merge-o-Matic (MoM) dabei hilft
dholbach an dieser Stelle wird bereits klar: je weniger Änderungen gegenüber dem Debian-Paket desto einfach das "Mergen"
wenn ich also alle meine Patches nach Debian weiterleite
... und diese akzeptiert werden, kann ich das neue Paket von Debian "syncen" lassen
macht das Sinn?
* dAnjou findet es so besser.
manueld ich würde ganz klar sagen, ja
dholbach Rock'n'Roll
weiter im Release-Schedule
als nächstes taucht Debian Import Freeze auf
dholbach ab diesem Zeitpunkt wird der "automatische Sync Prozess für unveränderte Pakete" abgestellt
das wird gemacht, damit wir relativ früh anfangen zu stabilisieren
das heißt dann noch nicht, dass nicht noch neue Änderungen von Debian manuell gesynced werden dürfen, nur der automatische Importer ist aus
je dunkler die Farben, desto weniger ist erlaubt
ab Feature Freeze sollte die Arbeit an Features weitgehend "im Kasten" sein
natürlich wird es noch Bugs geben, aber die Funktionalität sollte da sein
nach und nach wird das Artwork "eingefroren", der Kernel, die Übersetzungen und so weiter
Feature Freeze ist für die Betreuungsarbeit interessant, weil neuere Upstream Versionen vom Release Team abgesegnet werden müssen
wenn man aber belegen kann, dass die neue Version hauptsächlich Bugs behebt, geht das in Ordnung
wieder: mehr Stabilität, weniger "Action" :)
<jreinhardt> FRAGE: ab Feature Freeze also keine neuen Pakete? Das gilt auch für uni- und multiverse?
jreinhardt: alle Regeln gelten für alle Teile von Ubuntu - was meinst Du mit "neue Pakete"?
jreinhardt noch nicht in Ubuntu befindliche
dholbach ah ok
die fallen auch unter die Regel, aber dafür kann man sich auch eine "Genehmigung" holen, wenn man zeigt, dass es superviel Nutzen bringt
die Überlegung hierbei ist, dass man will dass alle Beteiligten sich auf das Bugfixen konzentrieren
und nicht auf die Review neuer Pakete usw.
<legate> Der Kernel wird nach den Featuren eingefroren? Macht das Sinn? Der Kernel ist doch quasi die abolute Grundlage.
legate: das schließt Bugfixes ein
legate ach so, dann macht es sinn
dholbach bis dahin sollte der Kernel absolut im Kasten sein, keine "letzte Minute"-Bugfixes mehr
das wird gemacht, weil der Kernel sehr viele Auswirkungen auf den Installer hat
d.h. neue CD Images müssen gebaut werden und alle Images in allen Test-Varianten neu getestet werden
https://wiki.ubuntu.com/FreezeExceptionProcess beschreibt, wie man sich die "Freeze Genehmigungen" holt
weitere Fragen? über den Release Zyklus, über Zusammenarbeit mit Debian? Ubuntu Entwicklung allgemein?
<co0lingFir3> FRAGE: übernimmt debian auch irgendwas von ubuntu?
co0lingFir3: ja, lass mich den Link schnell heraussuchen
http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ubuntu-patch;users=ubuntu-devel@lists.ubuntu.com ist eine (unglücklicherweise sehr unvollständige) Liste von Patches die mit einem bestimmen Tool nach Debian weitergeleitet wurden
sehr sehr viele davon sind angenommen worden
co0lingFir3 ok danke
dholbach nicht jeder der weitergeleiteten Patches wurde jedoch mit dem speziellen Tag bedacht
<benste> Frage: werden alle pakete also z.B. auch die des Gnome Projekts aus Debian heraus gesynct ?
benste: am Anfang wurden alle gesynced
an manchen Stellen, GNOME ist so ein Beispiel, haben wir uns entschieden eine neuere Version zu verwenden
benste k
dholbach z.B. ist in Debian unstable gerade 2.22.3 (habe das Paket gnome-desktop als Beispiel genommen)
in Jaunty ist es 2.25.4
benste :-)
dholbach das Packaging selbst ist sehr sehr dicht an dem von Debian dran
mit Packaging meine ich: die Änderungen die notwendig sind, um das Paket auf Ubuntu/Debian-Weise bauen zu lassen
das mergen wir regel,äßig
regelmäßig
weil wir aber unterschiedliche Release-Zyklen haben, treffen wir manchmal unterschiedliche Entscheidungen
davon profitiert immer der andere
wenn wir ein neueres GNOME haben, testen das Benutzer, wir beheben Bugs zusammen mit den Software-Autoren
Debian bekommt die Fixes später
und umgekeht
ein paar Worte über Packaging
wenn man ein Paket bastelt, dann fängt man mit dem .tar.gz (dem Tarball) von der Webseite des Projektes an
dann fügt man ein Verzeichnis im Quellcode mit dem Namen "debian" hinzu
da hinein kommen all die Anweisungen, und Beschreibungen, um daraus nachher ein Paket zu bauen
in "Packaging 101" um 18:00 UTC in #ubuntu-classroom mehr darüber
benste z.B.
k
dholbach jetzt nur mal so viel dazu:
das tolle in der Debian und Ubuntu Welt ist: wir haben einen Bau-Prozess, der für alle Sorten Pakete funktioniert
sei es ein C Projekt, ein Perl Projekt, ein Python Projekt, ein paar PHP Skripte oder nur ein Haufen Artwork, der an die richtige Stelle gesteckt werden muss
der Vorteil ist offensichtlich: wir müssen für den gesamten Bauprozess mit all den Abläufen nur einmal Tools schreiben
machen wir mal ein Beispiel
ist der pbuilder bei Euch allen installiert und fertig?
benste jo
co0lingFir3 jep
jreinhardt ja
dholbach super
dann schaut mal schnell in eurer /etc/apt/sources.list nach, ob so ein Eintrag darin vorkommt:
dholbach deb-src http://archive.ubuntu.com/ubuntu/ intrepid restricted main multiverse universe
benste nö
dholbach wenn ihr GNOME verwendet könnt ihr das unter System -> System-Verwaltung -> Software-Paketquellen -> Quelltext hinzufügen
maix nö
gehts auch mit gutsy? *duck*
dholbach maix: sollte glaub ich
ansonsten halt per Hand einen ähnliche Eintrag hinzufügen
deb-src http://archive.ubuntu.com/ubuntu/ intrepid restricted main multiverse universe
maix nur für kurz?
dholbach und dann sudo apt-get update aufrufen
maix: kannst Du nachher auch wieder rausnehmen
maix ok
dholbach prima
dann bitte folgendes ausführen
apt-get source hello
das ist das magische Kommando um das Quellpaket für 'hello' herunterzuladen
also den Quelltext (plus das 'Packaging') für ein Softwarepaket das nicht viel mehr macht als "Hallo Welt!" auf den Bildschirm zu schreiben
es ist Teil des GNU Projekts um gutes C (und Tools 'aussenrum') zu lernen :-)
ich habe jetzt 3 Dateien herumliegen: hello_2.2-2.diff.gz hello_2.2-2.dsc hello_2.2.orig.tar.gz
hello_2.2.orig.tar.gz ist der unmodifizierte Tarball von der GNU Webseite, er hat jetzt nur einen neuen Dateinamen
hello_2.2-2.diff.gz ist der komprimierte Patch, um das Paket nach Ubuntu und Debian Richtlinien bauen zu können (das Packaging)
bullgard4 FRAGE: /etc/apt/sources.list enthält nicht 'deb-src http://archive.ubuntu.com/ubuntu/ intrepid restricted main multiverse universe', weil ich Hardy habe.
dholbach hello_2.2-2.dsc enthält Metadaten wie md5 Summen und so weiter - eine Textdatei
bullgard4: dann ersetz intrepid durch hardy
bullgard4: dann ersetz 'intrepid' durch 'hardy'
oops
danach sudo apt-get update; apt-get source hello
prima
dann ist da noch ein Verzeichnis namens hello-2.2
apt-get source hat den Tarball ausgepackt und den Patch für uns angewendet
jetzt führt bitte mal
sudo pbuilder build hello_2.2-2.dsc
aus
das wird das Paket im pbuilder für Euch bauen
dholbach <maix> FRAGE: also es hat `tar -xf hello_2.2.orig.tar.gz; gunzip hello_2.2-2.diff.gz | patch` gemacht?
maix: tar xfz hello_2.2.orig.tar.gz; cd hello-2.2; zcat ../hello_2.2-2.diff.gz | patch -p1
... würde ich sagen
aber ja, nach dem Prinzip
das fertige Paket sollte dann in /var/cache/pbuilder/result liegen
TAAAAAATAAAAAAAAAA!
<co0lingFir3> FRAGE: woher kommt das diff-file wenn wir noch keine änderungen gemacht haben?
maix dholbach: hups stimmt gunzip -c natürlich
dholbach co0lingFir3: das hat der Debian-/Ubuntu-Entwickler gemacht, der hat das Packaging "geschrieben"
co0lingFir3: mehr darüber gleich in der "Packaging 101" Session in #ubuntu-classroom
co0lingFir3 k
dholbach weitere Fragen? :)
jreinhardt ls
dholbach also das .orig.tar.gz plus das .dsc plus das .diff.gz nennt man "source package"
und mit apt-get source <paket> kriegt man den Quellcode jedes Ubuntu-Pakets
benste so und wie rümt man hinterher alles auf?
sorry falscher channel
dholbach benste: pbuilder deinstallieren und /var/cache/pbuilder/ löschen, wenn Du ihn nicht mehr haben willst
benste ne pbuilder schon
aber nur das neue helle nicht
benste ist das nur in dem cache und im home?
dholbach benste: einfach rm -r hello*
benste: genau
benste k
dholbach weitere Fragen? über Ubuntu Entwicklung im allgemeinen? über mich? wie man mitmachen kann?
manueld FRAGE: wie war dein werdegang, wie bist du zu canonical gekommen?
dholbach <co0lingFir3> FRAGE: wie lange bist du eigentlich schon bei der ubuntu-entwicklung dabei, daniel?
hehe
ich habe Ubuntu schon vor warty benutzt und hab Pakete geupdated, weil ich neuere Versionen für meine Diplomarbeit gebraucht habe
ich hab einfach Fragen gestellt und es gab immer liebe Leute, die mir weitergeholfen haben
weil das ganze natürlich spannender war als die Diplomarbeit selbst, hab ich am Anfang mitorganisiert
wir waren ein sehr kleines Team und es war sehr viel "Pionier-Atmosphäre"
eines Tages habe ich mich mit Mark im IRC unterhalten und er hat mich gefragt, was ich über die Community denke
glücklicherweise hat er mich dann für das nächste UDS (Ubuntu Developer Summit) eingeladen
wo ich dann ein Bewerbungsgespräch hatte :)
<benste> FRAGE: Wie stehst du zu dem Vorwurf, das Ubuntu Entwickler sich meist nur an anderen Projekten bereichern, und selbst viel zu wenige Patchs bereitstellen würden?
benste: Ubuntu ist eine sehr junge Distribution und wir haben ein kleineres Team, als z.B. Debian
wir haben aber exzellente Beziehungen mit vielen Upstream-Projekten
"bereichern" halte ich persönlich für unsinnig
perfekt ist sicherlich vieles noch nicht, ich denke aber wir sind definitiv "gute Nachbarn"
https://edge.launchpad.net/ubuntu/+upstreamreport z.B. ist etwas, das andere Distributionen noch nicht haben
es zeigt, wie gut unsere Zusammenarbeit mit großen Upstreamprojekten mit Bugs ist
<schmiedc> Frage: wie sind denn die Teams organisiert und wie kann man so einem Team joinen?
dholbach schmiedc: schau Dir einfach mal https://wiki.ubuntu.com/MOTU/GettingStarted und https://wiki.ubuntu.com/Teams an
dholbach sorry, mehr Zeit haben wir nicht
schmiedc np
afflux ich kann da gerne noch was zu sagen
dholbach ich hoffe, ihr seid nachher alle in #ubuntu-classroom
legate hängt vom thema ab, mal nachsehen...
dholbach vielen Dank für die tolle Session und eine tolle Ubuntu Developer Week Euch allen!
F30 danke, dir auch!
zerwas Ich danke auch!
schmiedc danke !
afflux *applaus*
maix danke, aber ich komm mit rüber ;)
afflux super session!
dholbach :-)))))
F30 ciao
* sdx23 claps
benste JO echt vieln dank für deine vielen infos, besonders dann wenn du bestimmt merkst, das dein gegenüber keine ahnung hat :-)
co0lingFir3 danke!!! war echt super!
afflux schmiedc: soll ich noch ein wörtchen zu den teams verlieren?
dholbach benste: einfach fragen
:-)
benste jo
bis demnächst mal
Mitwoch vielleichtMeetingLogs/devweek0901/GettingStartedDE (last edited 2009-01-19 19:48:42 by i59F707BB)