Files
gitea-pages/admin-guide/legacy/misc/prepareanewslrelease.rst
2021-05-05 14:24:27 +02:00

5.7 KiB

Prepare a new release

Introduction

This document describes the preparation of a new SLP major or minor release for SL >= 5.4.

Requirements

Before you start you need a clean copy of the original SL repositories of interest from http://www.scientificlinux.org.

The SL repositories shall be mirrored to our AFS mirror on its own volume, e.g. /afs/psi.ch/software/mirror/scientific/54/ is on AFS volume sw.mirror.sl54.nb.

However, the mirror is usually made automatically by the script /afs/psi.ch/software/mirror/scripts/mirror.sh which is run by cron on pxeserv01. To add a new distribution to the mirror script you have to edit the file /afs/psi.ch/software/mirror/scripts/mirror.conf.

You also need a separate AFS distribution volume, e.g. sw.dist.sl54 for /afs/psi.ch/software/linux/dist/scientific/54.

Once this is done, you're ready to start with the Procedure section.

Procedure

  1. Go to the SL distribution B<top> directory, change to the subdirectory scripts and run the following scripts:

    # cd /afs/psi.ch/software/linux/dist/scientific/
    # cd scripts/Sl60/
    # sh 1-create_the_new_dist-config_file.sh <new_osversion>
    # sh 2-copy_the_kernel_and_initrd_for_tftp_boot.sh
    # sh 3-copy_the_puppet_environment_for_desktop.sh       # If a new one should be used,
                                                            # usually only for major release
                                                            # changes
                            # Note: Some of the files might need some manual customization, e.g.
                            # 
                            # module_gdm (pictures)
                            # module_splash (pictures)
                            # module_background_image (pictures)
                            # module_buildsystem
    
    
    # sh 4-create_new_dist_directory_structure.sh <new_osversion> <pre_osversion>
    
                            ### Check and edit the new files if necessary, especially the following ones:
                            # scripts/dist-config
                            # scripts/KERNEL_MODULES_TO_BUILD/sl6.i386.kms-to-be-built
                            # scripts/KERNEL_MODULES_TO_BUILD/sl6.x86_64.kms-to-be-built
                            # scripts/build-gpfs.sl6x.sh
                            # scripts/build-openafs.sl6x.i686.sh
                            # scripts/build-openafs.sl6x.x86_64.sh
                            # scripts/copy_the_sl_base_repos_from_the_local_mirror.sh
                            # scripts/rsync_security_updates_to_all_directories.sh

    <pre_osversion> is the distribution which serves as a template for <new_osversion>.

    The scripts will prepare most of the stuff automatically based on the previous version. Some of the new files, however, still have to be edited manually.

  2. Go to the SL distribution directory, change to the subdirectory scripts and run the following scripts:

    # cd /afs/psi.ch/software/linux/dist/scientific/60/scripts/

    2.1 Copy the SL Base Repos

    The script below copies the sl6base repository from the mirror on AFS to the dist SL6 directory taking into account the rsync_exclude.rpmlist, i.e. not all RPMS will be copied. To keep the repodata consistent with the RPMS in the Packages directory, the repodata has to be updated, too, by running the second script shown here:

    # sh copy_the_sl_base_repos_from_the_local_mirror.sh
    # sh run_createrepo_on_base_i386.sh     #sl64: still to do
    # sh run_createrepo_on_base_x86_64.sh   #sl64: still to do

    2.2 Copy the Security Updates:

    # sh rsync_security_updates_to_all_directories.sh

    2.3 Build kernel module if minor release

    If you prepare a new major release skip this section.

    If you prepare a new minor release you already have build systems where you can build kernel modules.

    Thus check whether you have to build at least the openafs and the gpfs modules. If the kernel versions of this and the previous SL minor versions do not differ you should already have the modules copied to e.g. the nonfree and psi repos, then there's nothing to do here.

    2.4 Update The Symbolic Links in RPMS_all:

    # sh update_symlinks_in_RPMS_all.sh
  3. Create new snaphots, release UNSTABLE and set the initial PSI version.

    # ./create_new_snapshots.sh alldirs > # INITIAL_LOG/2011-02-25-create_new_snapshots.log 2>&1 # ./release_unstable.sh # ./create_new_psi_version.sh # ./create_file_psiversion-info.sh

  4. Write the new kickstart conig files.

    Goto the kickstart config directory and use one of the old kickstart config files as a template:

    # cd /afs/psi.ch/software/linux/kickstart/configs/
  5. Make the new entries in the tftpd file.

    Goto the tftpd directory and edit the file default:

    # cd /afs/psi.ch/service/linux/tftpboot/pxelinux.cfg/
    # vi default
    
    #<<< sl64: hereiam:
    #<<< to do: fix /usr/bin/psi-fix_file_permission, module_localadmin
  6. Now perform first installation tests and debug where necessary.

  7. If you prepare a new major release, install new build systems.

  8. If you prepare a new major release, go to /afs/psi.ch/project/linux/dist and create the directory structure below for the RPM build environment:

    slp6
    |-- RPMS/
    |   |-- i386/
    |   |-- i486/
    |   |-- i586/
    |   |-- i686/
    |   |-- noarch/
    |   `-- x86_64/
    `-- SRPMS/
  9. Build kernel modules.

  10. Also get new software versions for non SL repos (psi, others, etc.).

  11. Again create new snapshots and a new PSI version.

  12. Now perform the second test installation and debugging suite.