Open-Source Software
Sommersemester 2015
Inhalt
Raum W3.03, 15:40 bis 18:50
Kurs in Moodle (bitte tragen Sie sich als Teilnehmer/Teilnehmerin ein)
1 Termine
- April
Siehe Abschnitt Erwartungen
- April
Tafelbilder: attachment:oss-2015-2a.jpg, attachment:oss-2015-2b.jpg
- April
Tafelbild: attachment:oss-2015-3.jpg
- April
Tafelbild: attachment:oss-22.4.15-a.jpg, attachment:oss-22.4.15-b.jpg
- April
Tafelbild: attachment:oss-29.4.15.jpg
- Mai (muss verschoben werden)
- Mai Pyramid
- Mai
- Mai
- Juni
- Juni
- Juni
- Juni
- Juli (muss verschoben werden)
- Juli (voraussichtlich)
2 Was erwarten Sie von der OSS Veranstaltung?
Umfrage in der Vorlesung am 1.4.15
- Sourcecode verstehen
- Wie startet man ein eigenes Projekt?
- Apache: sowohl verwenden als auch "wie kam es dazu?"
- Lizenzen verstehen
- Struktur eines konkreten OSS Projektes und wie kann man beitragen?
- Motive fuer Teilnahme
- Kooboo CMS, verlassen? abspalten?
- Wie bilden sich Gemeinschaften?
- Gescheiterte Projekte suchen und untersuchen. Was lief falsch?
- Ubuntu/Debian Pakete, die nicht kompatibel sind.
- Abwaegen proprietaer (=kommerziell) / offen
- Finanzierung freier Software
- Moeglichkeiten zum Beitragen
3 Hausaufgaben
26.3. bis 1.4.
1.4. bis 8.4. (gerne auch bis 15.4.)
https://moodle.hs-augsburg.de/course/view.php?id=2961#section-2
8.4. bis 15.4
https://moodle.hs-augsburg.de/course/view.php?id=2961#section-3
15.4. bis 22.4
https://moodle.hs-augsburg.de/course/view.php?id=2961#section-4
24.4. bis 29.4
Siehe diffpatch.
4 Diff/patch/git Hausaufgabe
Aufgaben vom 24. April 2015
Diffutils auf Linux installieren
Debian/Ubuntu: apt-get install diffutils
Dokumentation:
- Lokal: info diffutils (Schirm1)
- Online: https://www.gnu.org/software/diffutils/manual/diffutils.html
Diff und Patch kennenlernen
http://elk.informatik.hs-augsburg.de/oss-doc/aufgaben/index.html#diff-und-patch
Literatur (Login 'oss', pwd 'student')
Larry Ayers, Patch for beginners
Diff, Patch and Friends
http://elk.informatik.hs-augsburg.de/cdrom-oss/diff-patch.html
Patch anwenden
Holen Sie sich von http://ftp.gnu.org/gnu/hello/ das GNU Hello Paket hello-2.10.tar.gz und wenden Sie folgenden Patch an:
diff -Naur hello-2.10/src/hello.c hello-2.10-hh/src/hello.c --- hello-2.10/src/hello.c 2014-07-19 18:53:25.000000000 +0200 +++ hello-2.10-hh/src/hello.c 2015-04-24 12:52:53.310796435 +0200 @@ -57,7 +57,7 @@ #endif /* Having initialized gettext, get the default message. */ - greeting_msg = _("Hello, world!"); + greeting_msg = _("Hello, this is open-source!"); /* Even exiting has subtleties. On exit, if any writes failed, change the exit status. The /dev/full device on GNU/Linux can be used for
Machen Sie am besten eine Kopie des originalen Quelltext-Verzeichnis und wenden Sie den Patch darauf an. Kompilieren Sie das Programm und führen Sie es aus.
Patch erstellen
Machen Sie nun im Quelltext des gerade kompilierten Programmes eine weitere Änderung, fügen Sie z.B. eine Option -x ein, die eine Dummy-Nachricht ausgibt. Erzeugen Sie nun einen Patch gegen das originale Quelltextverzeichnis von hello-2.10.
Tipps:
Die diff Ausgabe wird wahrscheinlich einige Zeilen enthalten, die ungefähr so aussehen (meine Arbeitskopie heisst hello-2.10-hh):
Nur in hello-2.10-hh/lib: stdio.h. ...
Diese Meldungen sollten Sie entfernen, indem Sie z.B. dem diff Programm mitgeben, dass es bestimmte Dateien ignorieren soll (bitte die Info-Seite info diff oder die Manual-Seite man diff ansehen). Eine andere Möglichkeit ist es, mit make distclean den Dateibaum am Anfang wieder in den Ausgangszustand zu versetzen.