Cooker
From Mandriva Community Wiki
Be careful: the term Cooker is used interchangeably for the Cooker Mailing List (as discussed on Cooker), the Cooker Distribution (I'm running Cooker), the RPM repository (that package is in Cooker) and the Cooker Way of Life (I'm a Cooker, which may lead to an early demise due to the bleeding edge style).
Current Status: Development in progress
2009.1 is the current stable release for Mandriva Linux. Cooker is under active development for the next Mandriva Linux release.
Contents |
Background
One of the most common criticisms of the Mandriva Linux development process is that there is not enough time during the beta testing process for users to get involved in the process before the next release is rushed out the door. After much discussion of this subject on the Cooker mailing list, it quickly became apparent that there is a lack of understanding in the general Mandriva Community about how the Cooker process works. The truth of the matter is that the Mandriva beta testing period is almost three months long, but most users don't get involved until the very end of the process, and therefore are under the impression that the testing phase is too short.
The purpose of this document is to give interested ordinary users the information they need to get involved in testing the next Mandriva Linux release earlier in the release timeline. This will allow feedback from those users to make it back to the Mandriva developers within a timeframe that is useful.
What Cooker Is
Mandriva's development version of the next Mandriva Linux release is called Cooker. The purpose of Cooker is to improve the Mandriva Linux distribution by permitting a better interaction between the development team and the Mandriva Linux users, both for debugging and adding new features. It is an entire distribution unto itself, that is constantly in progress and sometimes cannot even be installed because it is broken itself because of incompatibilities.
The term Cooker is used interchangeably for the Cooker Mailing List (as discussed on Cooker), the Cooker Distribution (I'm running Cooker), the RPM repository (that package is in Cooker) and the Cooker Way of Life (I'm a Cooker, which may lead to an early demise due to the bleeding edge style).
What Cooker Isn't
Cooker is not the place to get all the latest releases of software for the stable release. You should not try to install Cooker packages on a stable release. Cooker RPMs are incompatible because they are compiled against libraries that are not available on your stable release installation. In addition to being incompatible, many of the packages may be very buggy because of packaging errors or the software itself.
Who can use it?
Cooker is not recommended for beginners, but you do not necessarily need to be a developper or a Linux boss since 5 years for you to use cooker : an advanced Linux user is able to use it well.
The knowledge you need or that are highly recommended
You also need a high-speed Internet access since there are everyday a lot of package updates for Cooker. Remember : it is a constantly evolving version.
Also, the system may crash. Some minor bugs can be solved in mid-term before a stable release. However Cooker is still usable most of the time (except when it is voluntarily broken). the corruption or loss of data is rare, but always possible.
Finally, the aim of Cooker is not to solve your problems. This is why you should suggest constructive solutions (patches, precise improvement ideas, new packages...) instead of giving your opinion on this version and asking for help : there are many other ways for you to get help.
Ways To Participate
There are many ways in which one can participate in the Cooker project. The most common way is to install one of the ISO releases during the beta test cycle, but you may also contribute software, translations to your language (see Translating) and ideas.
You will also certainly enjoy to subscribe to the Cooker discussion mailing-list, the changelog mailing-list, or one of the various mailing-lists related to a specific development or topic such as AMD64, i18n, server and so on.
Invariably, users install the second release candidate, and then post all kinds of messages for the Cooker mailing list and into the Bugzilla database requesting (sometimes demanding) new features for the current release. Unfortunately, at that point it is far too late to add features or new applications to the distro.
Expectations
First of all, you need to remember that Cooker is a development distribution that is not well tested and is likely not to run properly most of the time. If you run it, it may mess up data, configurations, etc. It is not meant for a production environment. You have been warned.
A typical example in which upgrading to cooker means losing configuration is the kernel update. In such an upgrade you need to rebuild your third party drivers. The most INVALID reported bug is about video cards (NVIDIA first of all), since the linux kernel is growing up and changing interfaces quickly, the most common problem is that you cannot rebuild your old drivers, and since we are in developer phase you should ask to third party developers for patches.
Running Cooker is exciting, though, because you get to be the first to see the new enhancements that are being introduced into the distribution. If you give feedback on your experiences with running Cooker, either through bug reporting or through the Cooker mailing list, you will be influencing the development of the next Mandriva Linux release.
Installing Cooker
The first step in participating in the Cooker is to get it installed, and as with any GNU/Linux distribution, there are multiple ways of doing this. You can even use a virtual machine installation.
By modifying the sources (quick)
To migrate to Cooker in a very easy way, here is how you can proceed :
- First, remove media for the stable release : urpmi.removemedia -a
- Add the required media for Cooker : urpmi.addmedia --distrib --mirrorlist 'http://api.mandriva.com/mirrors/basic.cooker.$ARCH.list'
- Update all installed packages : urpmi --auto-update
You will probably need to reboot due to low level packages updated (kernel, udev, ...)
Another solution is to use Easy URPMI.
By using a boot.iso (safe)
Another way of proceeding consists in downloading a bootable version of the Mandriva install program. Burn this image on a CD-ROM and reboot your computer with the CD in. the installation process will be done by downloading the packages from the Internet, by choosing a FTP or HTTP server.
You can download two versions of the cooker boot image :
- boot.iso (32bit) for the i586 architecture
- boot.iso (64bit) for the x86_64 architecture
By chroot (quick & safe)
Une autre façon de faire consiste à se servir des fonctions et possibilités offertes autour du concept de chroot.
- C'est certainement la manière la plus rapide d'installer une cooker, grâce à urpmi.
- C'est aussi la manière la plus agréable, car elle ne vous lie pas avec un quelconque support et elle permet de choisir même les paquetages de base, avant toute chose, puis de n'installer strictement que ceux que vous souhaitez.
- C'est la façon la plus à longue à décrire, mais la plus rapide à réaliser.
Il est recommandé d'avoir déjà une version de Mandriva installée avec une partition /boot séparée
- Bootez sur votre système Mandriva.
- Indiquez au système d'utiliser les dépôts Cooker, et seulement eux, le temps de la manipulation d'installation.
- Avec Drakdisk, formatez la partie qui accueillera cooker (par exemple 3 partitions). Puis montez la partition (celle qui deviendra /) dans /chroot, par exemple.
- Installez basesystem dans votre chroot.
urpmi basesystem --root /chroot
Ceci va vous demander de choisir des paquetages de base. Vous aurez à choisir entre :
- différentes versions de kernel (kernel manbo, old kernel mdv, kernel vanille, kernel de Thomas, kernel rt)
- iputils ou arping
- systemes de log (syslog-ng, rsyslog ou le bon vieux sysklogd)
- la release mandriva (free, one, powerpack)
- votre type de VI :) (vim-enhanced, minimal, ou x11-vim)
- et le bootloader (grub ou lilo).
Validez vos choix et lancez le process. Vous aurez certainement des affichages d'erreurs concernant vos locales (choix de langue, clavier, etc). On ne s'en occupe pas pour le moment. Laissez-le finir d'installer le système de base. Une fois le système de base installé sur votre chroot, ouvrez la partition /proc à l' intérieur du système chrooté :
mount -t proc none /chroot/proc
Maintenant copiez les informations réseau sur les serveurs DNS dans votre chroot
cp -L /etc/resolv.conf /chroot/etc/resolv.conf
Installez URPMI dans votre chroot :
urpmi --root /chroot urpmi
- Copiez vmlinuz et son initrd depuis /chroot/boot/ de cooker vers /boot.
- Modifiez menu.lst du grub pour y ajouter l'entrée du noyau de cooker, et faites-la pointer vers la partition d'installation de cooker.
Complétez cette installation en vous déplaçant dans le chroot : afin d'utiliser l'environnement.
- Placer-vous avec un shell actif dans le chroot
chroot /chroot /bin/bash
- Créez un fichier /chroot/etc/fstab cohérent (/etc/fstab vu de votre shell chrooté).
- Ajoutez les médias cooker au système # urpmi.addmedia main ....
- Répetez l' opération pour le Média Contrib et éventuellement le Non_Free
- Installez maintenant votre choix de paquetages, par exemple :
urpmi locales-fr drakxtools task-kde gpm kde-i18n-fr drakconf
- Enfin réglez vos locales avec draklocale, et installez certains paquetages de langues (comme mozilla-firefox-fr par exemple).
Enlevez les références aux dépôts cooker pour le système actif, si vous souhaitez le conserver. Vous pouvez rebooter : sur la nouvelle Cooker. Utilisez drakboot --boot depuis la cooker si vous souhaitez mettre à jour le design de grub et enlever ou éditer certaines entrées.
Cette méthode peux être appliquée à toutes les versions et pour tout types de support initial (DVD d' installation, réseau local, internet)
Via Hard Disk or Network with no CD-ROM
Some machines nowadays do not have a floppy drive or a CD-ROM drive. We have found a solution for that too.
Copy the necessary files from the isolinux directory to /boot/
$ cd /path/to/mirror/isolinux/alt0/ $ cp vmlinuz /boot/vmlinuz-all $ cp all.rdz /boot
Example entry for GRUB bootloader
title all-install
kernel (hd0,0)/boot/vmlinuz-all root=/dev/ram3 ramdisk_size=700000 vga=791
initrd (hd0,0)/boot/all.rdz
Via PXE boot
Probably one of the easiest way for webadmins. You must have recent network card (PXE1.5 or greater), PXE<=1 can be used but this is a pain for some of them. Install a PXE server, Mandriva has some packages, but backup your dhcp.conf. In the pxelinux.cfg/default file, add the line:
label 10-1-OE
KERNEL vmlinuz
APPEND initrd=all.rdz ramdisk_size=128000 acpi=ht vga=788
and add the vmlinuz and all.rdz in your tftp server
Upgrading from a stable release
- First, remove media for the stable release : urpmi.removemedia -a
- Add the required media for Cooker : urpmi.addmedia --distrib --mirrorlist 'http://api.mandriva.com/mirrors/basic.cooker.$ARCH.list'
- Update all installed packages : urpmi --auto-update
You will probably need to reboot due to low level packages updated (kernel, udev, ...)
Stay up-to-date
It is extremely important to keep your Cooker installation up-to-date to avoid reporting bugs that have already been fixed.
You must regularly run the following command :
or you can activate in
drakrpm-edit-media the main media as update as well to have immediate notifications about new updates.
You can create a cron task that can update your distribution every hour, the only condition is to place the task in /etc/cron.hourly. you won't even have to think about it any more. but you should also think about integrating a log function in your script to get a report.
The Cooker Mailing List
The 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 Howto
Through Testzilla, you can follow procedures to report successes or bugs on Bugzilla components.
Consult the Testzilla Howto wiki page for details.
Contributing Patches
If you write a patch to fix a bug in one of the tools developed by Mandriva, send your patch to the Cooker mailing list and to the maintainer of the package.
If you write a patch for a software application that is packaged and included in the Mandriva Linux distribution, send your patch to the maintainer of the package and also submit it upstream to the software project itself. Mandriva packagers often patch sources to fix major bugs, but the sources themselves should be fixed by the project. Not all software projects have Mandriva employees that work on CVS, so submitting a patch to Mandriva does not guarantee that the fix will find its way into the project sources.
Glossary of Terms
- Alpha Release - Also referred to as a cooker snapshot. It is probably broken and most likely quite badly but would really like you to test it as an assembly (distinct from testing the parts). The developers are still willing to make significant changes (bumping versions etc) to make everything work well, so now is the time to squawk loudly if your pet package or feature looks like being left out.
- Beta Release - a beta is an ISO release of Cooker that is meant to test the functionality that has been or is being added to various components of the distribution. It's probably got some serious bugs, so you don't want to use it in production but please feel free to use it for light duties. At this point, the package maintainers are generally unwilling to nudge package versions but will do so to fix problems. Minor problems that a lot of effort to be fixed and/or may upset other things in the fixing are now at risk of being left as they are.
- Release Candidate - a release candidate, or RC, is an ISO release of the distribution that is released for the purpose of finding show-stopper bugs in the features and packages that have been included. During the release candidate phase, no new packages or features may be added, but bug fixes may be committed if they are major. Please subject it to very heavy testing. If it works well, it will be blessed and submitted to the publisher for manufacturing the boxed sets and the iso images and distribution tree will posted to the mirrors for immediate download. The package maintainers won't nudge versions at all except as necessary to fix a showstopper. We won't fix anything if it's much less than a showstopper or security update unless it's dead easy and carries no risk of breaking anything else. It is useless to make a feature request at this time as *no new features can be added.
- Contrib - packages that are not part of the main distro, but that are important because someone has packaged them and contributed them.
- Freeze - no feature adds can be made to any Mandriva software and no updates can be made to packages except for major bugfixes.
- Deep Freeze - Only showstopper bugfixes and security flaws can be upgraded.

