From Mageia wiki
Revision as of 14:52, 3 February 2014 by Boklm (talk | contribs) (Fork the distribution on packages svn)
Jump to: navigation, search

This page gives some infos about the things that needs be done on sysadmin part when releasing a new version of Mageia.

Tools

Some script and tools can be found in this directory : http://gitweb.mageia.org/software/infrastructure/release/

Update MGA::Mirrors

The mirrorslist needs to be updated. The mirror list for the new release should now point to the stable tree (it was pointing to cauldron before the release). The mirror list for the next release should be added.

Add the next release

The next release needs to be added, pointing to the cauldron tree. This is done by accessing the SQL database on alamut, using the password from /etc/mga-mirrors.ini :
$ psql -U mirrors -h localhost -W

Check what are the distributions currently defined in the database :
SELECT * FROM distributions;

Then instert the new distribution for all architectures (Mageia 2 on i586 and x86_64 in this example) :
INSERT INTO distributions (version, arch, relpath, relfile) VALUES ('2', 'i586', '/distrib/cauldron/i586', 'VERSION');
INSERT INTO distributions (version, arch, relpath, relfile) VALUES ('2', 'x86_64', '/distrib/cauldron/x86_64', 'VERSION');

Update the new stable release

Update the relpath for the new stable release (in this example Mageia 2) :

 UPDATE distributions SET relpath = '/distrib/2/i586' where version = '2' and arch = 'i586';
 UPDATE distributions SET relpath = '/distrib/2/x86_64' where version = '2' and arch = 'x86_64';

Add the new release in bugzilla

https://bugs.mageia.org/editversions.cgi?product=Mageia

Update release api

Update release api for mgaonline : http://svnweb.mageia.org/web/releases/api/a/

Add a line like this :

 version=2,release_date=20120522,name="Mageia 2",desktop-update-end=20131221,basic-update-end=20131221,url=http://www.mageia.org/

Do not add obsoleted_by= unless the previous distribution is no longer supported.

Fork the distribution on mirrors

Before forking, check that the repository is clean, using youri-check. Some cleaning may be needed.

Forking the distributions on mirrors is done using the script fork-distribution from soft/release/trunk. It's taking as argument the source path, and destination path.

We fork both /distrib/bootstrap and /distrib/mirror.

Forking for Mageia 2 :

 [root@valstar ~]# /root/release/fork-distribution /distrib/bootstrap/distrib/cauldron /distrib/bootstrap/distrib/2
 [root@valstar ~]# /root/release/fork-distribution /distrib/mirror/distrib/cauldron /distrib/mirror/distrib/2

If modifying something in/distrib/bootstrap, we need to mirror it to /distrib/mirror :

 [root@valstar ~]# /usr/bin/rsync -avlH --delete --exclude infra_1 /distrib/bootstrap/distrib/ /distrib/mirror/distrib/

Fork the distribution on packages svn

First, disable commit from all users except umeabot :

Index: puppet/deployment/repositories/manifests/subversion.pp
===================================================================
--- puppet/deployment/repositories/manifests/subversion.pp      (revision 2757)
+++ puppet/deployment/repositories/manifests/subversion.pp      (revision 2758)
@@ -44,8 +44,10 @@
     subversion::repository { '/svn/packages/':
         group       => 'mga-packagers-committers',
         no_binary   => true,
-        commit_mail => ["packages-commits@ml.$::domain"],
+       #commit_mail => ["packages-commits@ml.$::domain"],
+       commit_mail => false,
         cia_module  => 'packages',
+       restricted_to_user => 'umeabot',
     }
 
     file { '/svn/binrepos/':

Now all svn commit commands should be run as umeabot user.

Create the updates/4/ directory on svn :

$ svn mkdir -m 'create directory for Mageia 4' file:///svn/packages/updates/4

In the release scripts directory, edit the config file for the new release. You will need to update the datadir, srpms_synthesis, svn_branch_path, svn_branch_commit_msg options.

Then you can run the prepare-new-release-branch script (in a screen because it takes some time). After running that script, you should have two files in the datadir directory: the not_branched file containing the packages for which there was a problem. And the branch_cmds which is the script you need to run to branch all packages.

Add support for the new release in the buildsystem

This is done with puppet : http://svnweb.mageia.org/adm?view=revision&revision=3199

Unfreeze cauldron

To reopen cauldron :

  • increase version in media.cfg for cauldron
  • increase version in mageia-release and lsb-release packages
  • unfreeze cauldron in youri