Development/Tasks/Packaging/Roles/Maintainer

From Mandriva Community Wiki

Jump to: navigation, search

Contents

New Maintainer

When your maintainer account has been created, don't forget to :

  • Check if your new email address, yourlogin@mandriva.org is correctly forwarded to your real email address
  • update your bugzilla email address to your mandriva.org email address, so that the bugs on the packages you maintain are automatically assigned to you
  • update your http://my.mandriva.com/ account email address to your mandriva.org email address to be able to login to https://maint.mandriva.com/
  • subscribe to the maintainers mailling list by sending an email to sympa@mandrivalinux.org with "subscribe maintainers" in the body.

Bookmarks

The important URLs are :

Process overview

The package releasing process depends on several factors:

  • branches (cooker, 2006.0, 10.2, etc...)
  • section (main, contrib)
  • repository
  • architecture

Cooker is the dedicated development branch. All maintainers can freely release new updated packages in the contrib section. The main section is more restricted, only some maintainers can release updated packages, and new packages upon permission only. Usually packages should be uploaded to the /release repository of the appropriate section. The /testing repository is available for testing particularly dangerous changes.

The /release repositories of stable releases are frozen, meaning you can't upload packages there. The /testing and /updates repositories of the main section are used for issuing official security updates according to the Post-Release Support Policy (basically, you upload to /testing and pass the baton to the QA and security teams, who will take care of moving it to /updates). The contrib section is similar except the security and QA teams have no involvement, you will upload to /updates directly. The /backports repositories of both main and contrib are available for non-bugfix or security related updates.

Concerning architectures, the two officialy supported ones are i586 and x86_64. You have to make sure your package builds correctly on all of them. There are also other architectures, either developed internally or by the community. See Ports for details.

Technical details

Configuring your environment

The first thing you have to do is to set up your RPM build environment, following RPM Howto. There is no need to set up a GPG signature, however, as your packages will automatically get resigned with the official MDK keys when they will be uploaded.

Building on an NFS-mounted directory may cause troubles:

  • locking problems
  • slower read/write access

As a consequence, you'd better always build from the node where your home dir is located. When you don't have the choice, such as for the x86_64 arch, you may redefine the relevant rpm macro:

%_builddir      %(if [ "$(hostname -a)" == "deborah" ]; then echo -n "/export/$HOME/rpm/BUILD"; else echo -n "%{_topdir}/BUILD"; fi)

Installing packages

On cooker systems, binary package installation is done through the rurpmi command, via sudo:

  • sudo rurpmi foo to install or update foo package
  • sudo rurpme foo to remove foo package

On the stable systems, binary package installation is done through standard urpm* commands, via sudo:

  • sudo urpmi foo to install or update foo package
  • sudo urpme foo to remove foo package

On all systems, source package installation can be done from the /SRPMS directory.

Building packages

You can either use rpm directly to build your package within your rpm build tree, or use iurt to build your package in a clean chroot: see Iurt Howto for details.

Your packages will be rebuilt anyway by iurt after submission, and you will receive a mail if something goes wrong.

For a step by step walkthrough about building a package for cooker and using svn, please see Repository System Quickstart. A quick reference page is also available at Build System Quickref.

Building packages for older distributions

You must use Iurt if you want to compile your packages on older version.

sudo iurt2006 package.src.rpm to build on a 2006.0 sudo iurt2007 package.src.rpm to build on a 2007.0

If you just want a chroot, use sudo iurt<version> --shell

Uploading packages

Please see Repository System Quickstart -- Submitting.

The queue is processed approximately every 5 minutes. All packages undergo some basic checks, such as existence of newer release existence, lack of continuity in history, etc... If any of those checks fails, the upload is canceled, and you get the errors list. Otherwise, the package is either put in a compilation queue, waiting for the build bot to recompile them. If the rebuild failed, you get a warning mail; if it succeeds, the packages are pushed to the upload server. A notification mail is then sent to the changelog mailing list. The changelog mail is only triggered by the source package file.

You have an overview of the compilation queue at http://kenobi.mandriva.com/bs/queue.php

Uploading a package during version freeze

During the freeze period, if you want to upload a package:

  • You are not sure of your fix and you want it to be tested

Upload it with:

mdv-youri-submit --define section={main,contrib}/testing cooker <package>

It will appear on the media that are publicly available, and everybody will be able to test it and give you feedback. Once uploaded, you are encouraged to send a mail on cooker asking for tests.

You MUST include a bugzilla bug ID in your changelog. If there is no associated bug, try to explain clearly what was the bug and if possible how to reproduce it.

You must only provide the Source package, it will be recompiled by iurt and uploaded if the build succeeded.

You can see the current queue status from the cluster on http://svn.mandriva.com (this is quite raw but there is nothing better right now).

  • You have really tested your fix, and this package is critically needed

Please ask a distrib-admin (mailto:distrib-admin@mandrivalinux.org?&cc=maintainers@mandriva.com?subject=upload request) to upload your package via using on the cluster:

mdv-youri-submit --define section={main,contrib}/release <package>


Orphaning Packages

When Mandriva maintainers do not want or are not able to maintain a package any longer, they can orphan the package.

Maintainers can manage their package maintainership by login into http://maintainers.mandriva.com/

Personal tools
Looking for a job?