Development/Howto/Participate
Aus Mandriva Community Wiki
Aktueller Status: Entwicklung in Arbeit 2010.2 ist die aktuelle, stabile Ausgabe von Mandriva Linux. Cooker (so wird die unfertige Distribution bezeichnet) als nächste stabile Ausgabe von Mandriva Linux befindet sich momentan in der Entwicklung. Für die kommende Version 2011 gibt die russische Partnerfirma von Mandriva S.A. (ROSALabs) sogenannte "Daily Builds" heraus, so dass sich Tester mit diesem "Schnappschuss" des Cookers selbst einen Eindruck verschaffen können. Die Builds sind unter folgender Adresse zu erreichen. (http://downloads.rosalab.ru/iso/ROSA.Desktop/Mandriva.Daily/) HintergrundEine der größten Kritikpunkte am Entwicklungsprozess von Mandriva ist, dass nicht mehr genug Zeit zur Verfügung steht, Benutzer (User) mit in den Entwicklungsprozess einzubeziehen, bevor die nächste Ausgabe die Entwickler-PC verlässt. Nach vielen starken Diskussionen auf der Cooker-Mailing-Liste über dieses Thema, kamen viele User in der Mandriva Community wahrscheinlich zu falschen Schlussfolgerungen über den Entwicklungsprozess und die Abhängigkeiten der neuen Ausgabe. In Wahrheit ist die Testphase immer 3 Monate lang, aber die meisten Benutzer wollen sich in das Ende der Testphase nicht involvieren lassen. Sie kommen dann, wenn Probleme auftreten, zu dem Schluss, die Testphase sei zu kurz. Die Aufgabe dieses Dokumentes ist es, interessierten, normalen Benutzern die Informationen zu vermitteln, die sie benötigen, um vor dem geplanten Erscheinungstermin die neue Ausgabe (Release) testen zu können. Dadurch erhalten die Entwickler Rückmeldungen in einem sinnvollen Zeitfenster. Dabei wird ausnahmslos der RC2 (second release candidate) installiert. Dann werden von den Usern alle Nachrichten auf der Cooker-Mailing-Liste und in der Bugzilla-Database entgegengenommen (mancher Report kann sehr zeitintensiv sein). Dies ist wichtig, um die Besonderheiten des neuen Release kennenzulernen. In dieser Phase ist es viel zu spät, neue Programme oder sonstige Funktionen in die neue Ausgabe zu integrieren. Haben wir Interesse geweckt? Dann wird dieses Dokument eine Hilfe sein. Was der Cooker ist...Mandrivas Entwicklerversion des nächsten Mandriva-Linux-Release (Version) nennt sich Cooker. Absicht ist es, die Mandriva-Linux-Distribution über den Cooker durch eine bessere Interaktion zwischen den Entwicklern und den Usern zu verbessern. Dabei geht es darum, Fehler zu finden und neue Funktionen hinzuzufügen. Es geht dabei um die gesamte Distribution, die sich konstant in der Entwicklung befindet, dabei kann es manchmal vorkommen, dass sich der Cooker nicht installieren läßt oder nicht funktioniert, weil Kompatibilitätsprobleme auftreten. Vorsicht: Der Begriff Cooker ist austauschbar, er gilt immer für die noch nicht offiziell erschienene nächste Ausgabe der Distribution; nähere Informationen hierzu finden sich in der Mailing-Liste und in den RPM-Datenbanken (Repositories oder kurz Repos genannt). ...und was der Cooker nicht istCooker ist nicht der Ort, an dem man für die aktuellste stabile (offizielle) Ausgabe Aktualisierungen oder Software bekommt. Es ist nicht sinnvoll, Cooker-Pakete auf eine offizielle stabile Release zu installieren: die Pakete können inkompatibel sein, benötigen gegebenenfalls Bibliotheken, die für diese Version nicht existieren oder unerwünschte Systemveränderungen hervorrufen. Dazu kommt noch, dass viele der Softwarepakete Fehler enthalten, die von der Software selbst kommen können. Wege, um teilzuhabenEs gibt viele Wege, um am Cooker-Projekt teilzunehmen. Der am meisten genutzte Weg ist das Installieren eines der ISOs (Images) aus dem Beta-Testzyklus. Man kann aber auch an der Software mitarbeiten oder beim Übersetzerteam (siehe Überstzungen) mitwirken. Man kann außerdem als angemeldeter Benutzer an vielen Diskussionen teilhaben wie zum Beispiel im Überblick an der "Cooker diskussion mailing-list", der "changelog mailing-list" oder einer der vielen anderen Mailinglisten, die es zu vielen speziellen Themen wie zum Beispiel AMD64, i18n, Server oder Spezialentwicklung, gibt. ErwartungenAls erstes: niemals vergessen, dass der Cooker eine Entwicklerversion ist. Das bedeutet im einzelnen, das er noch nicht richtig getestet wurde, man somit Datenverlust erleiden und mühevoll erarbeitete Konfigurationen verlieren kann. So gut auch ein realitätsnaher Test ist: Warnung NIEMALS in echten Produktionsumgebungen einsetzen!!! !! Ein typisches Beispiel für den Verlust einer gesamten Konfiguration ist es, wenn man zum Cooker (aus einer offiziellen Version) updatet. Die Probleme beginnen meist dann, wenn der Kernel geupdatet wird. Hier müssen dann oft die Treiber von Drittanbietern neu kompiliert werden. Die am meisten gemeldeten unechten Fehler sind daher die von Grafikkarte (dabei liegen Karten von NVIDIA weit vorn). Diese Probleme haben aber eine ganz einfache Ursache: der Linux-Kernel ist gewachsen und somit wurden auch seine Schnittstellen verändert, man kann dann aus den alten Treibern keinen Rebuild (also keine angepasste Version) erstellen. Die Treiberanbieter sind dann natürlich auch überfordert, da es sich beim Cooker ja um eine sich in der Entwicklung befindliche Distribution handelt. Den Cooker auf dem PC installiert zu haben ist spannend, gehört man doch zu den Ersten, die in neue Erweiterungen der Distribution eingeführt werden. Gibt man dann ein Feedback über die Erfahrungen mit Cooker, entweder über das Bug-Report-System oder die Mailing-List, gehört man zu den Leuten, die die Entwicklung der nächsten Mandriva-Ausgabe beeinflusst haben. Cooker installierenDer erste Schritt, um am Projekt mitzuwirken, ist es, den Cooker zu installieren. Wie bei jeder anderen Linux- Distribution gibt es dazu verschiedene Wege. Man kann Cooker auch in einer virtuellen Maschine installieren. virtual machine installation[en]. Via FTP von einem öffentlichen Server (Public Mirror)Hierzu erstellt man einfach eine boot- CD aus der boot.iso-Datei. Die Datei ist auf vielen öffentlichen Cooker-Servern verfügbar. Man findet die Datei im cooker/i586/install/images/ Verzeichnis unter den Entwickler-(also Devel-)Versionen auf dem Server (mirror). Installation aus einer ISO AusgabeDie ISO-Ausgaben (releases) (das sind Abbilder einer CD, auch 'Images' genannt) des Cooker lassen sich auf CD brennen. Sie sind Momentaufnamen, die im Abstand von ungefähr 2 Wochen vor der Fertigstellung der Ausgabe erscheinen. Den ungefähren Zeitplan kann man hier einsehen. Viele Leute installieren und testen über die ISO-Releases, ohne zu wissen, welche Versionen existieren. Wenn man wirklich an der Entwicklung teilhaben will, ist es wichtig die aktuellste Version zu benutzen. Dabei ist der Zeitrhythmus nicht unbedingt bindend, es kann erforderlich sein, einen zusätzlichen RC (Testkandidat, oftmals als RC1, RC2, etc. bezeichnet) ins Rennen zu schicken bevor aus dem Cooker eine Finalversion wird. So gab es bei Mandrake-Linux 9.1 und 9.2 zwei RCs, bei 9.0 waren es 3. Man findet diese ISOs auf den meisten Mandriva-Linux-Spiegelservern (Mirror) im mandriva-iso Unterverzeichnis oder wenn man BitTorrent nutzt von jedem anderen Server über die Peer-to-peer-Verbindung. Am besten ist es, auf der Hauptseite nach einem Link zu einer offiziellen BitTorrent-Datei zu suchen und die Instruktionen dazu nachzuschlagen. Bei Problemen mit BitTorrent kann man hier: Bittorrent FAQ oder dort: Mandriva Club nachsehen. ISOs ohne Komplettdownload auf aktuellem Stand haltenWenn man die ISO-Ausgabe benutzt, ist es erforderlich, sich etwa alle 2 Wochen ein komplettes Set von ISOs (Images) herunterzuladen. Dafür kann eine Verbindung mit hoher Bandbreite und viel Traffic (Datendurchsatz) erforderlich sein. Diese Methode ist für Benutzer des Einwahlverfahrens (ISDN/Modem etc.) daher nicht geeignet. Der Datenstrom lässt sich aber drastisch reduzieren, wenn man ein Tool wie rsync verwendet. Von einem lokalen ServerWenn man etwas mehr als 6 GB freien Festplattenplatz zur Verfügung hat, geht es schneller und ist es einfacher, von einem lokalen (Spiegel-)Server zu installieren. Dann sind auch gleich die Skripte verfügbar, die man benötigt, um aus den ISO-Images (CD-Abbildern) eine ganz normale Installations-CD/DVD zu machen. Um einen solchen lokalen Spiegelserver aufzusetzen, benutzt man am besten Hilfsmittel wie fmirror und/oder rsync. An dieser Stelle sei darauf verwiesen, dass die Dokumentation sich noch im Aufbau befindet und man sich über diese beiden Tools (Werkzeuge) evtl. aus anderen Quellen informieren muss. Zu Installation des rpmsync-Hilfsmittels für Cooker (Konsole mit Root- Rechten): # urpmi rpmsync Starten von gendistribWenn man einen lokalen Mirror betreibst, werden häufig die hd-Listen durcheinander gebracht. Deshalb ist es eine gute Idee, ein Skript namens gendistrib durchlaufen zu lassen, bevor man die urpmi-Quellen aktualisierst. Um das Script erfolgreich laufen zu lassen, ist es erforderlich Schreibrechte in dem Verzeichnis zu besitzen, welches die Dateien der Distribution enthält (Dist Tree). Dann in das Hauptverzeichnis der Distribution navigieren und folgenden Code eingeben/ ausführen: $ gendistrib --distrib Via NFS über das lokale NetzwerkDazu benutzt man das network.img Image um eine Bootdiskette mit den oben erwähnten Methoden zu erstellen, nur muß man dann NFS wählen, anstelle von ftp. Festplatteninstallation von einem lokalen SpiegelserverWenn sich der lokale Server auf der gleichen Maschime befindet, auf der man den Cooker installieren möchte, benutzt man am besten das hd_grub.img Disketten (Floppy) image um eine Bootdiskette zu erstellen. Die Datei sollte sich auf einem der Spiegelsever (mirror) im install/images Verzeichnis befinden. Anschließend sollte man den Instruktionen auf http://qa.mandriva.com/hd_grub.cgi folgen um ein GRUB Startmenü zu erstellen. Via Festplatte oder Netzwerk ohne CD/ DiskettenlaufwerkManche Neueren Computer besitzen kein CD- oder Diskettenlaufwerk. Dies ist nicht nur bei Netbooks der Fall, sonern auch auf Client- PC´s üblich. Auch dafür gibt es eine Lösung. Man kopiert die benötigten Dateien aus dem isolinux Verzeichnis nach /boot/ $ cd /path/to/mirror/isolinux/alt0/ $ cp vmlinuz /boot/vmlinuz-all $ cp all.rdz /boot macht dann einen Eintrag in der /etc/lilo.conf (wenn man LILO verwendet) oder /boot/grub/menu.lst (wenn man GRUB verwendet) (Bootloader= Systemstarter) Beispiel für LILO bootloader
image=/boot/vmlinuz-all
label=all-install
root=/dev/ram3
initrd=/boot/all.rdz
append="ramdisk_size=32000"
vga=791
read-only
Anmerkung bei einigen Ausgaben (Mandrake 10.1beta2 z.B.) muss man die Größe der Ramdisk (virtuelle Festplatte im Arbeitsspeicher)angeben, wenn man den Wert auf 700000 einstellt, kann man sicher sein, das es funktioniert. Wenn man mit dem Ändern der Konfigurationsdatei /etc/lilo.conf fertig ist, muss man /sbin/lilo LILO starten bevor die Änderungen übernommen werden. Beispiel für GRUB bootloader
title all-install
kernel (hd0,0)/boot/vmlinuz-all root=/dev/ram3 ramdisk_size=32000 vga=791
initrd (hd0,0)/boot/all.rdz
Festplatteninstallation von ISO ImagesDas Festplatteninstallationstool kannn auch ISO Images (ISO`s) benutzen. Alle ISO`s müssen sich dafür im selben Verzeichnis befinden. Hier sind einige Wege aufgelisted:
Hier ein Beispiel, ein ISO- Abbild (Image) als root zu mounten (ins Dateisystem einhängen) $ mount -t iso9660 mandrakelinux-10.0-CD1.i586.iso /mnt/iso/ -o loop (siehe auch Via Festplatte oder Netzwerk ohne CD/ Diskettenlaufwerk) Wenn der Installer gestartet ist, wird er nach der Festplatte, der Partition und dem Verzeichnis fragen, in das installiert werden soll. Ist im Quellverzeichnis mehr als ein ISO Image vorhanden, wird der Installer noch zusätzlich fragen, welches Image er benutzen soll. CDs erstellen mit mkcdmkcd sit das Mandriva Programm um Distributions- CDs zu erstellen. Um das zu tuen startet man mkcd -a /cooker_path/. Wenn man einen lokalen (Cooker-) Spiegel (-Server) hat, ist dies schnell und einfach zu machen. Hinweis: MakeCD ist ein Konsolenwerkzeug und funktioniert nicht unter der Grafischen (installations-) Oberfläche Siehe auch [en]: Mkcd & mkcd Howto. Wenn Bootdisketten wichtige Treiber nicht enthaltenEs gibt 2 Hauptprobleme (und mehr...): Wenn man einen alten SCSI- Adapter besitzt und der Treiber für diesen nicht auf der Bootdiskette enthalten ist, so kann man nicht vom SCSI-CD-Rom booten (ein älteres SCSI Bios unterstützut diese Funktion nicht). Ebenso kann es problematisch sein, wenn man einen propritären Netzwerk oder SCSI Treiber benötigt. Das Problem kann aber auf diesem Weg gelöst werden: als erstes
# mke2fs /dev/fd0
$ zcat /lib/modules/<kernel-version>BOOT/kernel/3rdparty/dc395x_trm/dc395x_trm.o.gz \ > /mnt/floppy/dc395x_trm.o
Via USB StickSeit dem 27/01/2005 (nicht vorhanden in 10.2 beta2), ist ein neues Image zum booten von USB- Sticks verfügbar. Die Datei all.img ist ein fat16-Abbild, das mit Hilfe von dd (dd ist ein kleines Kommandozeilenwerkzeug) auf eine Partition (für die meisten USB-Sticks wahrscheinlich sda1) geschrieben wird. Es gibt aber einige Vorbehalte:
$ dd if=/dev/zero of=/dev/sda bs=1 count=446"
$ dd if=/usr/lib/extipl/aldebaran.bin of=/dev/sda Via PXE bootVielleicht einer der einfachsten Wege für Administratoren. Dazu braucht man eine Netzwerkarte neueren Datums (PXE1.5 oder höher) Die Benutzung von PXE<=1 Karten ist ebenfalls möglich aber sehr mühsam und setzt gute Kenntnisse in diesem Bereich voraus. Dazu installiert man einen PXE (Peboot eXecution Enviroment) Server, dafür hat Mandriva etliche Pakete, und sichert (backup) die dhcp.conf. In der pxelinux.cfg/default Datei, fügt man folgendes hinzu:
label 10-1-OE
KERNEL vmlinuz
APPEND initrd=all.rdz ramdisk_size=128000 acpi=ht vga=788
und dann muß man noch vmlinuz und all.rdz im eigenen tftp ergänzen Via urpmiMöglicherweise der einzige Weg, einen Neustart zu vermeiden. Notwendig ist ein CD/Floppy-Laufwerk und eine Unterbrechung des TV-/Musik-Genusses. Als erstes müssen die Main und die Contrib Quellen (Sources) mittels urpmi in die bestehende Distribution eingebunden werden: # urpmi.removemedia -a Auf die Seite http://easyurpmi.zarb.org gehen, Cooker Distribution auswählen, den Anweisungen auf dem Bildschirm folgen und dann mittels kopieren/ einfügen die generierten Komandozeilen auf einer Konsole mit Rootrechten eintragen, und den Cooker installieren: # mount --bind /proc /mnt/your_new_root/proc # urpmi --root=/mnt/your_new_root basesystem locales-XX urpmi kernel # urpmi --root=/mnt/your_new_root all_package_you_want # chroot /mnt/your_new_root [hier einfügen] # exit Setup the new distribution (remember to edit the cooker's /etc/fstab to swap the devices corresponding to / and the /mnt/your_new_root mount point): # cp /etc/fstab /mnt/your_new_root/etc/ Add the kernel in lilo's owner distribution : # cp /mnt/your_new_root/boot/vmlinuz /boot/vmlinuz-cooker # cp /mnt/your_new_root/boot/initrd.img /boot/initrd-cooker.img If the /mnt/your_new_root/boot/initrd.img doesn't exist, just do the following step. If you need some special modules to be able to access hard disk contempt, add --preload module_name to mkinitrd command. # chroot /mnt/your_new_root # KVERSION=$(ls /boot/vmlinuz-* | cut -c 15- | head -n 1); mkinitrd /boot/initrd-$KVERSION.img $KVERSION # exit # cp /mnt/your_new_root/boot/initrd.img /boot/initrd-cooker.img Then add the following config lines in lilo.conf file : image=/boot/vmlinuz-cooker label="linux-cooker" root=/dev/your_new_root_dev_file initrd=/boot/initrd-cooker.img append="PROFILE=default" Then run lilo to store the config : # lilo You are now able to boot your cooker, do not forget to install the packages needed to have internet in (ppp-pppoe and rp-pppoe for example), xorg and other before rebooting. ;) Cooker Installation aktuell haltenohne URPMI geht nichtsDefining a cooker urpmi source One of the most useful tools developed for the Mandriva Linux distribution is the easy urpmi script that was written by Oliver Thauvin. It can be found at http://easyurpmi.zarb.org. You can also use a GUI, called urpmi.setup. Install the package urpmi.setup, and launch it. It will query the list of mirror on a website, and then allow you to choose the mediums to add to urpmi. In order to save bandwidth, you should use a rsync enabled mirror (their url begins with rsync://). If you have a favorite mirror that is not listed in the easyurpmi script, or if you have a local mirror, you can create the command line yourself with the following syntax: # urpmi.addmedia <name> <source> You can find a complete list of the up-to-date and broken mirrors at http://manu.agat.net/mandrake/mirrors_state.html Once you have urpmi sources set up for your Cooker installation, you can keep the package lists in the individual repositories updated by running the urpmi.update command. This is handy for the stable releases when the only thing that changes is the updates repository. Try: # urpmi.update <repository name> It is easier on a Cooker system, where all the repositories change daily, to keep all of them up to date by running urpmi.update with the -a switch. This updates all package sources. # urpmi.update -a This updates your urpmi configuration files with the updated hdlist.cz files that will be available on the mirrors. If you do not do this step, urpmi will not know about any of the package changes that have taken place on the mirror and you may get an error like "everything already installed" even thought you know there were lots of package changes on the mirrors. Once the sources are updated, run: # urpmi --auto-select to update all installed packages. Essentially, urpmi checks all installed packages and determines if there is a newer package in one of the source repositories. If a newer version of the package exists, it will be installed along with any required dependencies that may have been created. Starting with version 4.4, urpmi supports transactions. This means that packages are downloaded and installed in small related groups, instead of all at once. You will no longer have to resort to dirty tricks when you have a small /var partition. Also, since version 4.4-41mdk, urpmi updates itself first and restarts before updating any other packages. You can also use the --auto and --no-uninstall switch ( on a recent urpmi version, > 4.3-13mdk ) to do a fully automated upgrade. Nothing will be uninstalled, and all questions will be skipped ( with a good default answer ). The kernel-source package is used to be upgraded automatically but to update your kernel you have to run: # urpmi kernel This is required because the name of each kernel is unique so a previous kernel is never uninstalled when installing a new one. The last step is to update the configuration. During the update several* .rpmnew files might have been created (you normally get a warning, but one easily misses those). etc-update can help you updating those config files. Sinnvolles Bug ReportingIf you think you have found a bug, there are some steps to take before reporting it into the Bugzilla database. First, make sure that you are up to date with Cooker for the relevant packages, this will allow you to see if it has already been fixed. Cooker changes daily, so if you think you find a bug in beta2, and it is a week post release, there is a good chance that the package has been updated several times since the iso release. The easiest way to update to the latest packages is to make sure you have your urpmi sources set up properly and and either urpmi packagename, or make sure the entire system is current with urpmi --auto-select. Detailed instructions on this are contained in the previous paragraphs. Second, make sure it is a reproducible problem. The developers will often dismiss a reproducible problem as a user error or a configuration problem. Therefore, if you can reproduce the problem, even on another machine, it will be very helpful in getting your bug report looked at. Third, search through the Cooker mailing list archives and Bugzilla to see if the bug has already been reported. If it has been reported, you can add additional information to the existing report to help sort it out. There is no sense in adding a duplicate bug report to the database. As for the role of the Cooker mailing list in comparison with the role of Bugzilla, use the Cooker mailing list to discuss whether something is a bug or not, use Bugzilla to report it. Good bug report etiquette states that you need to be precise in bug reporting. Putting "Package XYZ is broken!" without giving a clear description is not wise. Give the failing package's name, a brief description of the problem, and some revelant information about your host, and anything that we need to do to reproduce the problem on our boxes. Also provide whatever other information that you may think is useful, including, but not limited to, configuration files of the package.
Wie man Bugzilla benutztErläuterungen findet man auf der Bugzilla Howto wiki Seite. Die Cooker-MailinglisteThe List is where discussions take place on how to implement things, the results of testing or whether something is a bug or not. Bug reports themselves should be reported in Bugzilla. Because the cooker mailing list is a very high volume mailing list (it will often get over 1000 messages a day late in the development cycle) it is important that you be careful about how and when you post to the list. To reduce the noise level, it is a good idea to search the list archives for your issue prior to posting. To maximize the chances of your message being seen, help minimize the level of noise on the list by keeping idle chatter down and restraining yourself from making offtopic posts. Consult the Development Mailinglists wiki page for details. Testzilla HowtoThrough Testzilla, you can follow procedures to report successes or bugs on Bugzilla components. Consult the Testzilla Howto wiki page for details. Patches beisteuernWenn Sie einen Patch zur Behebung eines Softwarebugs in einen der von Mandriva entwickelten Werkzeuge entdecken, senden Sie Ihren Patch an die Cooker Mailingliste und an den Verwalter (Maintainer) des Pakets. Wenn Sie einen Patch für eine Softwareanwendung schreiben, die paketiert wurde und in Mandriva Linux enthalten ist, senden Sie Ihren Patch an den Verwalter des Pakets und senden Sie es an das Softwareprojekt selbst. Mandriva Paketierer patchen selbst oft die Quellen um gravierende Fehler zu beheben aber die Quellen sollten von dem Projekt selbst aktualisiert werden. Nicht alle Softwareprojekte haben Mandriva Angestellen, die mit CVS arbeiten. Somit bedeutet es nicht, dass ein an Mandriva gesendeter Patch seinen Weg automatisch in die Quellen des Projektes findet. ReferenzenHinweis: Zentrale Begriffe dieses Artikels sind auch im Glossar nachzulesen. |

