Cooker

From Mandriva Community Wiki

Jump to: navigation, search
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.
Please note!
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

2011 is the latest 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.

Please note!
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

  • Know how to use the shell.
  • Know how to use the tools provided by Mandriva (especially urpmi).

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.

Please note!
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.

Caution !
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 :

  1. First, remove media for the stable release : urpmi.removemedia -a
  2. Add the required media for Cooker : urpmi.addmedia --distrib --mirrorlist 'http://api.mandriva.com/mirrors/basic.cooker.$ARCH.list'
  3. Update all installed packages : urpmi --auto-update

You will probably need to reboot due to low level packages updated (kernel, udev, ...)

Tip !
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 :


Note: After you boot up with the boot.iso, if you choose to install from a public repository that is accessible by ftp or http, you will get prompted to provide the ftp or http address. Unfortunately, the installer doesn't give you any instructions about the syntax of the information that must be provided. For instance, when it asks for the ftp address, it's not clear whether you should type "ftp://some.address" or just "some.address".


Follow the model below and you will be fine. For example, if you want to install the 64-bit Cooker from the USA repository ftp://carroll.cac.psu.edu, you would enter the following information :


  • carroll.cac.psu.edu
  • pub/linux/distributions/mandrivalinux/devel/2012/x86_64


DO NOT add any extra slashes in url or path or the installer will fail. For a public repository, leave the username and password blank!

By chroot (quick & safe)

Another way to accomplish this is to use the capabilities offered by chroot and urpmi.

  • It is certainly the fastest method of installing cooker, using simply urpmi.
  • It is also the easiest method, as it does not bind you to using any specific package medium, and it allows you to install the basic packages first, after which you can choose to install any other packages you want.
  • It is the longest method to describe, but the fastest to use.
Please note!
You should already have another version of Mandriva installed with its own /boot

These are the steps you need to perform:

  • Boot your Mandriva system.
  • Change your software media sources to point to the Cooker repositories only (they must remain like this during the entire installation process). For details see Cooker#By_modifying_the_sources_.28quick.29.
  • Using Drakdisk, format the partition on which you wish to install Cooker. Then mount the new root partition (which is going to become / for the new system) to a folder, for example /chroot.
  • Create and mount the special filesystems in /chroot:
mkdir /chroot/dev
mkdir /chroot/sys
mkdir /chroot/proc
mount -o bind /dev /chroot/dev
mount -o bind /sys /chroot/sys
mount -o bind /proc /chroot/proc
  • Install basesystem in /chroot.
urpmi basesystem --root /chroot

You will be asked to choose the basic packages. The choices are between:

  • different kernel versions (kernel manbo, old mdv kernel, vanilla kernel, Thomas' kernel, rt kernel)
  • iputils or arping
  • log system (syslog-ng, rsyslog or sysklogd)
  • the Mandriva release (free, one, powerpack)
  • your flavor of VI :) (vim-enhanced, minimal, or x11-vim)
  • the bootloader (grub or lilo).

Validate your choices and launch the process. In case you are not familiar with the options, it may be helpful to find out which package is currently used on your system. For example, to see if you currently have sysklogd installed, you can run from another shell:

rpm -qa | grep sysklogd

Some errors will most likely be displayed regarding your locales (language, keyboard etc). For now, you can ignore them, they will be fixed later. Wait until the base system installation finishes. After the installation is finished, copy the DNS configuration from your system to Cooker:

cp -L /etc/resolv.conf /chroot/etc/resolv.conf

Make sure URPMI is installed in chroot:

urpmi --root /chroot urpmi
  • Copy vmlinuz and its initrd from /chroot/boot/ to /boot.
  • Modify menu.lst from /boot/grub by adding a new entry for cooker, and make it point to the partition on which cooker is installed.

To finalize the installation you have to chroot into the new system:

  • Start a shell in the new system through chroot:
chroot /chroot /bin/bash
  • Create a coherent /chroot/etc/fstab file (in your chrooted shell, it is seen as /etc/fstab). For finding the UUIDs of your partitions you can use:
ls -lh /dev/disk/by-uuid
  • Set the cooker media sources for the Main, Contrib and Non-Free repositories (# urpmi.addmedia main ....)
  • Install all the other packages you need, for example:
urpmi locales-en drakxtools drakconf task-x11 task-kde gpm dhcp-client
  • Finally, change your locale with draklocale, and install the language packages you need (firefox-fr for example). Other basic configurations you might need to perform are setting up the X server (run drakx11) and networking (run drakconnect).

You should now remove the Cooker media sources from the host system. You can now boot your Cooker system. Use drakboot --boot from Cooker if you wish to adjust grub entries or other options.

Please note!
This method can be applied for any version and any type of package media (installation DVD, local network, 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

  1. First, remove media for the stable release : urpmi.removemedia -a
  2. Add the required media for Cooker : urpmi.addmedia --distrib --mirrorlist 'http://api.mandriva.com/mirrors/basic.cooker.$ARCH.list'
  3. 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 :

Image:Konsole.png
[root@computer ~]# urpmi --auto-update

or you can activate in Image:drakrpm-edit-media-icon.png 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.


References

Personal tools