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

49 KiB

Updates for SL 4 and SL 5.1

References

Introduction

The following text describes how regular Scientific Linux (SL) updates for SL51 and SL4, are performed.

A detailed standard procedure is exemplified for an SL 51 update on a 64 bit machine, but the same operation is followed for other SL releases <= SL51 and architectures. Deviations from the standard procedure are emphasized in the text.

General Remarks

Regular Linux Udpates are scheduled every first Wednesday in a month.

Create a new Testing Release one week in advance.

It is advised to create the new version for a release on the respective build system. For example for SL5 i386 do it on tux50 with your AFS account, for AFS ACLs see "Required File Permissions On AFS" below.

When you compile new kernel module RPMS then it's recommended to use build systems.

Reasons For Using Build Systems

  • Performance: Some scripts will just horribly slow down your desktop machine, making it almost impossible to work on it while the respective script is running. So, using a build system will not affect the performance of your desktop computer.
  • Version conflicts: Some versions of some tools such as yum, createrepo, etc., might be different in different SL releases, thus to avoid conflicts one should use the version of the tool that comes with the corresponding release. Other packages might be missing at all, e.g. some devel packages used when RPMS are built or tool like createrepo, which are not required on a default Desktop.
  • Compiling software: For compiling software, e.g. building kernels, kernel modules, etc., it first has to be on the right architecture, and second it's also recommended to do it in some clean default environment, which is a representative for the environments of productive systems.

Scientific Linux Mirror at PSI

RPMS are taken from our mirror at /afs/psi.ch/software/mirror/scientific/. The mirror is updated daily by a cronjob running on pxeserv01. (See also LinuxInstallationServer.):

# file pxeserv01:/etc/cron.d/mirror 

# Mirroring of rpm repositories at 07:00
#
00 07 * * * root /afs/psi.ch/software/mirror/scripts/mirror.sh > /dev/null 2>&1

The script /afs/psi.ch/software/mirror/scripts/mirror.sh reads /afs/psi.ch/software/mirror/scripts/mirror.conf to know about locations of ftp external software repositories and where to place the files on our local mirror.

E.g.: The archive ftp://ftp.scientificlinux.org/linux/scientific/46/i386 is locally mirrored at /afs/psi.ch/software/mirror/scientificlinux/46/i386.

Autoupdate in SL5

The script /usr/sbin/psi-auto-update is started via cron usually in the night and triggers the update, the latter is performed by scripts and Puppet. The update is released the first Wednesday of a month. Default Desktop computers will be updated during the night from Wednesday to Thursday.

Preparatory Work

Required File Permissions On AFS

Before starting with performing updates, you need the corresponding permissions to do things in the PSI linux repository directory at /afs/psi.ch/software/linux/dist/scientific/, which is on an AFS volume.

Check permissions using AFS commands and get the required AFS access. The unix commands ls -l etc. will work but not show you the relevant AFS permissions, instead use the AFS command fs.

E.g.: Type fs help to see a list of command attributes:

# fs listacl /afs/psi.ch/software/linux/
...
    or

# fs listacl /afs/psi.ch/software/mirror/
Access list for /afs/psi.ch/software/mirror is
Normal rights:
ait:sw_adm rlidwka
psi:nodes rl
system:authuser rl

To work in the linux distribution directories you need to be in the following AFS groups (output of pts mem AFS_USERNAME):

# pts mem gasser_m
Groups gasser_m (id: 2374) is a member of:
ait:sw_adm
linux:users
ait:users

Prepare Your Build Environment For Building RPMS

For building RPMS you have two possibilities:

  • build locally in your build directories
  • build on AFS in common build directories

Build locally

Before you start building RPMS you create the following directories on each build system.

Example for tux50-64:

# ssh gasser_m@tux50-64
# mkdir /scratch/gasser_m
# cd /scratch/gasser_m
# mkdir rpm_tmp  rpm_topdir
# cd rpm_topdir
# mkdir BUILD  RPMS  SOURCES  SPECS  SRPMS

Your build environment is set in "~/.rpmmacros":

%WORKDIR    %(echo "/scratch/$USER")
%_topdir    /scratch/gasser_m/rpm_topdir
%_tmppath       /scratch/gasser_m/rpm_tmp
%packager       Marc Gasser <marc.gasser@psi.ch>
%vendor     PSI Scientific Linux
%sl_site    slp
%sl_site_version    %(rpm -q --qf "%{v}" sl-release | cut -d"." -f1)
%os_release         %{sl_site}%{sl_site_version}
%dist           .%{os_release}
%rhel           %sl_site_version
%debug_package  %{nil}

The command rpmbuild is used to build RPMS. The built RPMS are found in the RPMS directory of your build environment on your build system.

Build on AFS

Change to /afs/psi.ch/project/linux/src/scientific/RPMS. There you will find separate subdirectories, each for one specific RPM.

Check that your .rpmmacros does not mess up the build environment for this kind of building. Change to the subdirectory of the RPM you want to build and use the script psi-rpmbuild, which sets up the build environment (thus .rpmmacros is not required at all). In the subdirectory run psi-rpmbuild -bb for building a binary package only for instance.

E.g.: To build the psi-desktop package version 2.x do the following on a build system:

# cd psi-desktop-2/
# psi-rpmbuild -bb

The built RPM can be found in the corresponding subdirectory in /afs/psi.ch/project/linux/dist/.

The big advantages of this procedure are, you don't have to install the sources on each build system, instead you install them once in AFS, and this centralized build environment can be shared among different users on different hosts.

Check Diskspace

Before starting the update check the diskspace left on your file systems involved.

  • For copying new RPMS from the mirror to the repositories

To be on the safe side there should be 1 G of free diskspace on the respctive AFS volumes, where RPMS are copied to:

[gasser_m@pc7377 tmp]$ fs lq /afs/psi.ch/software/linux/dist/scientific/305/
Volume Name           Quota      Used %Used   Partition
sw.dist.sl305          25000000  23317560   93%<<       88%    <<WARNING
[gasser_m@pc7377 tmp]$ fs lq /afs/psi.ch/software/linux/dist/scientific/46/
Volume Name           Quota      Used %Used   Partition
sw.dist.sl46           25000000  23465039   94%<<       84%    <<WARNING
[gasser_m@pc7377 tmp]$ fs lq /afs/psi.ch/software/linux/dist/scientific/51
Volume Name           Quota      Used %Used   Partition
sw.dist.sl51           30000000  25044971   83%     84%
  • For compiling kernel modules

    1G should be enough if you have to compile kernel modules locally on your respective build system, e.g. in the $USER@tux50:/scratch/... directory.

Update SL5 i386 and x86_64

Get Native Scientific Linux Updates

This section describes how the particular linux repositories are updated by looking for new RPMS in our mirror and copying them from there to the repositories.

Get the Latest Security Update RPMS

Get the latest security update RPMS from the local SL51 mirror for both architectures, i386 and x86_64 by invoking make update_all on tux50:

# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
# nohup ./run_make_update_all.sh &      # this will take some time

The upper make update_all command invokes the shell script /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_update_all. The script searches for new security update RPMS, which are not allready in the corresponding .../update.${ARCH}/all/ directory (e.g. /afs/psi.ch/software/linux/dist/scientific/51/update.i386/all/). Thus, when updating all SL versions (3, 4 and 5) you need to run this three times, each time from the corresponding .../scripts/ directory. Yet, you don't have to invoke it again and again for each architecture, as the script loops through all architectures set by $ARCHS in the respective dist-config file (e.g. /afs/psi.ch/software/linux/dist/scientific/51/scripts/dist-config).

Check for errors in the corresponding make update_all log:

# grep -i error ~/tmp/20090629-make-update_all.sl5.output
...

Then run make rpms_all. It will keep all symlinks up to date in the directory /afs/psi.ch/software/linux/dist/scientific/51/RPMS_all/ by removing dead links and creating new links to the new RPMS. This is basically not necessary for keeping up to date the yum repositories, rather it's just helpful to have a directory with the list of all RPMS of a distribution release:

# make rpms_all

Additional RPMs used in Scientific Linux PSI (SLP)

Reference: https://wiki.intranet.psi.ch/AIT/RPMSinSLP

Get manually other RPMS from other sources and put them to the particular all folders.

Afterwards, you should run createrepo on the directory where things were put into. Then run "make rpms_all" or create symlinks manually.

List of some all folders:

/afs/psi.ch/software/linux/dist/scientific/51/psi/all
/afs/psi.ch/software/linux/dist/scientific/51/others/all
/afs/psi.ch/software/linux/dist/scientific/51/nonfree/all
/afs/psi.ch/software/linux/dist/scientific/51/enhanced/all
/afs/psi.ch/software/linux/dist/scientific/51/cluster/all
...

acroread

Get acroread RPMS from e.g. RHEL network (https://rhn.redhat.com, login: psiaitora; passwd isrhn.ait.) and copy them into "/afs/psi.ch/software/linux/dist/scientific/51/nonfree/all/":

acroread-8.1.6-2.el5.i386.rpm
acroread-plugin-8.1.6-2.el5.i386.rpm

Write also the md5sums into a file and check them after downloading the packages.

Format of the md5sum file:

<md5sum><space><space><filename>

728d4109f520336bb6b5f595de9dd2db  acroread-8.1.6-2.el5.i386.rpm
fd1b8fb934140222460ed81c34420d90  acroread-plugin-8.1.6-2.el5.i386.rpm

# md5sum -c file.md5sum

Kernel Update SL5

This section describes the kernel update for SL51, 32 and 64 bit.

The SL5 kernel update procedure described here is basically the same for SL4. However, a lot of details such as names of files, kernel modules, build systems, etc., differ, thus the whole SL4 procedure is shown in its own section, too. See Kernel Update SL4.

The general remarks below are valid for SL4, too.

General Remarks Referring To Kernel Update

When a new SL kernel is released also a lot of corresponding kernel module packages are coming with this kernel to extend its functionality, e.g. kernel-module-xfs to facilitate Xfs support of the kernel.

Now, in case a new kernel has been released you have to build a set of kernel-module RPMS, which at PSI are provided in addition to those coming with the regular SL updates.

It's recommended to use dedicated build systems to build RPMS.

To compile kernel modules some prerequisites have to be met.

  • A build environment has to be set up on your build system (e.g. tux50-64 for SL5 x86_64), locally or on AFS as discussed before.
  • New kernel and kernel-devel RPMS have to be installed on your build system.
  • The particular kernel module source RPMS have to be installed on your build system.
  • About 1 G of free diskspace.
  • Note: For compiling new kernel modules the corresponding kernel has to be installed on your build system but must not be running and you can build the modules in a non-root environment.

Kernel Update SL5 32-bit

Follow the procedure shown in the 64-bit section below. Differences between building of the 32 and 64 bit kernel modules are pointed out.

The main difference is, first, that you have to build kernel, kernel-xen and kernel-PAE modules for 32 bit systems, while you build only kernel and kernel-xen modules for 64 bit. The GPFS kernel module is build for both, 32 and 64 bit systems.

Kernel Update SL5 64-bit

(Example for PSI update SL5 version 31, June 2009.)

Login to your build system and check which kernel packages are already installed:

# [gasser_m@tux50-64 ~]$ rpm -q kernel{,-xen,-devel,-xen-devel}

kernel-2.6.18-92.1.22.el5
kernel-2.6.18-128.1.1.el5
kernel-2.6.18-128.1.6.el5
kernel-xen-2.6.18-92.1.22.el5
kernel-xen-2.6.18-128.1.1.el5
kernel-xen-2.6.18-128.1.6.el5
kernel-devel-2.6.18-92.1.22.el5
kernel-devel-2.6.18-128.1.1.el5
kernel-devel-2.6.18-128.1.6.el5
kernel-xen-devel-2.6.18-92.1.22.el5
kernel-xen-devel-2.6.18-128.1.1.el5
kernel-xen-devel-2.6.18-128.1.6.el5

Check whether there is a newer kernel package in the repository:

# cd /afs/psi.ch/software/linux/dist/scientific/51/update.x86_64/all/
# ls -1 kernel*-2.* | grep -v module | get-latest-RPM-from-RPM-list.pl -
...
kernel-2.6.18-128.1.14.el5

Latest version of installed kernels is 2.6.18-128.1.6.el5 , latest version in the repository is 2.6.18-128.1.14.el5, i.e. new SLP kernel modules have to be built.

Check the diskspace of your build partition, 1G is ok:

# [gasser_m@tux50-64 all]$ df -hT /scratch
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
          ext3     14G   12G  1.6G  89% /

Is there a listing of all kernel module packages to be built?

Installation Of Kernel And Kernel-devel RPMS On 64 Bit SL5 Build System

Install new kernel and kernel-devel RPMS as root on tux50-64.

RPMS for the following kernels are required: kernel, kernel-xen:

# [root@tux50-64]
# cd /afs/psi.ch/software/linux/dist/scientific/51/update.x86_64/all/
# ls -1 kernel-{,devel-,xen-,xen-devel-}2.6.18-128.1.14.el5.x86_64.rpm
kernel-2.6.18-128.1.14.el5.x86_64.rpm
kernel-devel-2.6.18-128.1.14.el5.x86_64.rpm
kernel-xen-2.6.18-128.1.14.el5.x86_64.rpm
kernel-xen-devel-2.6.18-128.1.14.el5.x86_64.rpm

# rpm -ivh kernel-{,devel-,xen-,xen-devel-}2.6.18-128.1.14.el5.x86_64.rpm

warning: kernel-2.6.18-128.1.14.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 82fd17b2
Preparing...        ########################################### [100%]
   1:kernel-xen-devel       ########################################### [ 25%]
   2:kernel         ########################################### [ 50%]
   3:kernel-devel       ########################################### [ 75%]
   4:kernel-xen         warning: /etc/modprobe.d/blacklist-firewire created as /etc/modprobe.d/blacklist-firewire.rpmnew
########################################### [100%]
Installation Of Kernel And Kernel-devel RPMS On 32 Bit SL5 Build System

Again, login as root to your build system to install the kernel packages.

For the 32 bit system also the PAE kernel modules are required:

# [root@tukan50-32]
# cd /afs/psi.ch/software/linux/dist/scientific/51/update.i386/all/
# ls -1 kernel-{,devel-,PAE-,PAE-devel-,xen-,xen-devel-}2.6.18-128.1.14.el5.i686.rpm 
# rpm -ivh kernel-{,devel-,PAE-,PAE-devel-,xen-,xen-devel-}2.6.18-128.1.14.el5.i686.rpm 
Installation Of SL5 Kernel Module SRPMS On Build Systems

Do this on both, the 32 and 64 bit build system.

To build the kernel module RPMS the corresponding SRPMS have to be installed on your build system first.

List of SL5 kernel-module RPMS to be built for i686 and x86_64:

Name (without kernel version)   Release         Remarks 
kernel-module-airprime      2.6.18-1.slp5 
kernel-module-atl2          1.0.40.2-1.slp5 
kernel-module-aufs          0.20070210.cvs-4.slp5 
kernel-module-firewire      2.6.18-2.slp5 
kernel-module-gspcav1       01.00.20-1.slp5 
kernel-module-iwlwifi       1.2.25-1.slp5       currently not builded
kernel-module-ntfs          2.1.27-0.rr.10.0    currently not builded
kernel-module-openafs       1.4.6-73.slp5       no SRPM, build script provided by A. Gsell
kernel-module-qla2xxx       8.01.07.15-1.slp5 
kernel-module-uvcvideo      0.1.0-1.svn148.slp5 
kernel-module-VMwareTools       6530-29999.slp5     no SRPM, build script provided by A. Gsell
kernel-module-gpfs          texttext        64 bit only, no SRPM, build script provided by H.C. Stadler

Copy the PSI relevant source RPMS (SRPMS) to your build environment, except sources of kernel modules ntfs, openafs, gpfs and VMwareTools. They are built in their own environments.

The SRPMS of the following 7 modules are required:

aufs firewire gspcav1 uvcvideo qla2xxx atl2 airprime
(see variable specfiles in /afs/psi.ch/software/linux/dist/scientific/51/scripts/build_kernel_modules.)

They can be found in the directory:

/afs/psi.ch/software/linux/dist/scientific/51/psi/all/

Check for latest versions of required SRPMS:

# cd /afs/psi.ch/software/linux/dist/scientific/51/psi/all/
# ll {aufs,firewire,gspcav1,uvcvideo,qla2xxx,atl2,airprime}*.src.rpm

-rw-r--r-- 1 beyerle ait    7566 Apr 24 22:39 airprime-2.6.18-1.slp5.src.rpm
-rw-r--r-- 1 beyerle ait   56446 Apr  8 11:43 atl2-1.0.40.2-1.slp5.src.rpm
-rw-r--r-- 1 beyerle ait   77012 Apr  8 21:03 atl2-1.0.40.4-4.slp5.src.rpm
-rw-r--r-- 1 beyerle ait  136658 Oct  1  2007 aufs-0.20070210.cvs-4.slp5.src.rpm
-rw-r--r-- 1 beyerle ait  427554 Jul 16 10:48 aufs-0.20080605.cvs-5.slp5.src.rpm
-rw-r--r-- 1 beyerle ait  295158 Aug 21  2007 firewire-2.6.18-1.slp5.src.rpm
-rw-r--r-- 1 beyerle ait  295120 Jan 22  2008 firewire-2.6.18-2.slp5.src.rpm
-rw-r--r-- 1 beyerle ait  217470 May 15 10:36 gspcav1-01.00.20-1.slp5.src.rpm
-rw-r--r-- 1 beyerle ait  195078 Nov 12  2007 gspcav1-1.00.18-1.slp5.src.rpm
-rw-r--r-- 1 beyerle ait 2015550 Mar 10 22:04 qla2xxx-8.01.07.15-1.slp5.src.rpm
-rw-r--r-- 1 beyerle ait   91123 Dec  7  2007 uvcvideo-0.1.0-1.svn148.slp5.src.rpm

The following versions were taken as the latest: (This list can be found in the file tux50-64:/scratch/gasser_m/rpm_topdir/SRPMS/20090624-psi-src-rpms.list.):

airprime-2.6.18-1.slp5.src.rpm
atl2-1.0.40.4-4.slp5.src.rpm
#aufs-0.20080605.cvs-5.slp5.src.rpm     # kernel-module-aufs is in SL51update and SL54base now
firewire-2.6.18-2.slp5.src.rpm
gspcav1-01.00.20-1.slp5.src.rpm
qla2xxx-8.01.07.15-1.slp5.src.rpm
uvcvideo-0.1.0-1.svn148.slp5.src.rpm

For convenience copy them first to your $rpm_topdir/SRPMS/ and then unpack them, if not yet done (being still gasser_m@tux50-64):

# cd /afs/psi.ch/software/linux/dist/scientific/51/psi/all
# for i in `cat /scratch/gasser_m/rpm_topdir/SRPMS/20090624-psi-src-rpms.list` 
# do
#       cp $i /scratch/gasser_m/rpm_topdir/SRPMS/
# done

Then install them into your build environment:

# cd /scratch/gasser_m/rpm_topdir/SRPMS/
# rpm -ivh `cat 20090624-psi-src-rpms.list`

1:airprime           ########################################### [100%]
2:atl2           ########################################### [100%]
3:aufs           ########################################### [100%]
4:firewire           ########################################### [100%]
5:gspcav1        ########################################### [100%]
6:qla2xxx        ########################################### [100%]
7:uvcvideo           ########################################### [100%]

Before continuing with building the kernel modules check out the notes below referring to some of them.

Build SL5 PSI Kernel-module RPMS On The Build System

Now build the 64-bit modules:

# [gasser_m@tux50-64]
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
# ./build_kernel_modules  2.6.18-164.11.1.el5 > \
#       UPDATE_LOG/20100125-build_kernel_modules-2.6.18-164.11.1.el5.x86_64.log 2>&1

The following RPMS were built:

# cat ~/tmp/20090624-build_kernel_modules-2.6.18-128.1.14.el5.x86_64.output

...
---------------------------------------------------------------
List of built kernel-modules for kernel 2.6.18-128.1.14.el5:
---------------------------------------------------------------

/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-airprime-2.6.18-128.1.14.el5-2.6.18-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-airprime-2.6.18-128.1.14.el5xen-2.6.18-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-atl2-2.6.18-128.1.14.el5-1.0.40.4-4.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-atl2-2.6.18-128.1.14.el5xen-1.0.40.4-4.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-aufs-2.6.18-128.1.14.el5-0.20080605.cvs-5.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-aufs-2.6.18-128.1.14.el5xen-0.20080605.cvs-5.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-firewire-2.6.18-128.1.14.el5-2.6.18-2.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-firewire-2.6.18-128.1.14.el5xen-2.6.18-2.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-gspcav1-2.6.18-128.1.14.el5-01.00.20-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-gspcav1-2.6.18-128.1.14.el5xen-01.00.20-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-qla2xxx-2.6.18-128.1.14.el5-8.01.07.15-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-qla2xxx-2.6.18-128.1.14.el5xen-8.01.07.15-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-128.1.14.el5-0.2.0-1.svn255.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-128.1.14.el5xen-0.2.0-1.svn255.slp5.x86_64.rpm
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-gpfs-2.6.18-128.1.14.el5-3.2.1-12.3.slp5.psi.x86_64.rpm
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-openafs-2.6.18-128.1.14.el5-1.4.10-94.slp5.x86_64.rpm
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-openafs-2.6.18-128.1.14.el5xen-1.4.10-94.slp5.x86_64.rpm
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-VMwareTools-2.6.18-128.1.14.el5-6530-29999.slp5.x86_64.rpm

List of files saved in /tmp/rpms_for_2.6.18-128.1.14.el5 !
Note to Kernel Module Openafs

The openafs related build scripts are provided by Achim Gsell.

If the kernel version is increased, the kernel-module-openafs has to be built.

If the Openafs version is increased, the kernel-module-openafs AND the additional openafs RPMS (see list below) have to be built:

openafs
openafs-client
openafs-kpasswd
openafs-krb5

One can use the following standalone script to built openafs modules.

  • build-openafs.sl51.i386.sh

    Standalone script for building and copying 32 bit openafs modules

  • build-openafs.sl51.x86_64.sh

    Standalone script for building and copying 64 bit openafs modules

Note to Kernel Module Uvcvideo

If building fails, download the latest uvcvideo version and compile again:

# cd ~/tmp/
# svn checkout http://svn.berlios.de/svnroot/repos/linux-uvc/linux-uvc/trunk    # see also in specfile
# mv trunk uvcvideo-svn255
# tar cfzv uvcvideo-svn255.tar.gz uvcvideo-svn255/
# scp uvcvideo-svn255.tar.gz tux50-64:/scratch/gasser_m/rpm_topdir/SOURCES/
# ssh tux50-64
# cd /scratch/gasser_m/rpm_topdir/SPECS/
# vi uvcvideo.spec      # Version:    0.2.0
            # %define date    svn255 
# rpmbuild -ba --target x86_64  --define "kernel 2.6.18-92.1.13.el5" --define 'buildall 1' uvcvideo.spec

...
Wrote: /scratch/gasser_m/rpm_topdir/RPMS/x86_64/uvcvideo-0.2.0-1.svn255.slp5.src.rpm
Wrote: /scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-92.1.13.el5-0.2.0-1.svn255.slp5.x86_64.rpm 
...

# echo "/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-92.1.13.el5-0.2.0-1.svn255.slp5.x86_64.rpm" >> \
# /tmp/rpms_for_2.6.18-92.1.13.el5

Don't forget to copy all the new modules to /afs/psi.ch/software/linux/dist/scientific/51/psi/all/.

Check The Kernel Module Build Logs

Check the log files for errors and verify that all required modules were built:

# grep -i error ~/tmp/20090624-build_kernel_modules-2.6.18-128.1.14.el5.x86_64.output
...
checking your OS... configure: error: No usable linux headers found at /lib/modules/2.6.18-128.1.14.el5PAE/build
+ exit 1
error: Bad exit status from /scratch/gasser_m/rpm_tmp/rpm-tmp.69701 (%build)
    Bad exit status from /scratch/gasser_m/rpm_tmp/rpm-tmp.69701 (%build)
...

This error is ok, as there is no x86_64 PAE kernel at all:

# check-set-of-built-kernel-modules.bash /tmp/rpms_for_2.6.18-128.1.14.el5 \
#       KERNEL_MODULES_TO_BUILD/sl5.i386.kms-to-be-built
# Not all kernel module RPMS were built!
# Check RPM(s) for: 'VMwareTools'

/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-airprime-2.6.18-128.1.14.el5-2.6.18-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-airprime-2.6.18-128.1.14.el5xen-2.6.18-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-atl2-2.6.18-128.1.14.el5-1.0.40.4-4.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-atl2-2.6.18-128.1.14.el5xen-1.0.40.4-4.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-aufs-2.6.18-128.1.14.el5-0.20080605.cvs-5.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-aufs-2.6.18-128.1.14.el5xen-0.20080605.cvs-5.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-firewire-2.6.18-128.1.14.el5-2.6.18-2.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-firewire-2.6.18-128.1.14.el5xen-2.6.18-2.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-gspcav1-2.6.18-128.1.14.el5-01.00.20-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-gspcav1-2.6.18-128.1.14.el5xen-01.00.20-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-qla2xxx-2.6.18-128.1.14.el5-8.01.07.15-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-qla2xxx-2.6.18-128.1.14.el5xen-8.01.07.15-1.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-128.1.14.el5-0.2.0-1.svn255.slp5.x86_64.rpm
/scratch/gasser_m/rpm_topdir/RPMS/x86_64/kernel-module-uvcvideo-2.6.18-128.1.14.el5xen-0.2.0-1.svn255.slp5.x86_64.rpm
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-gpfs-2.6.18-128.1.14.el5-3.2.1-12.3.slp5.psi.x86_64.rpm
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-VMwareTools-2.6.18-128.1.14.el5-6530-29999.slp5.x86_64.rpm
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-openafs-2.6.18-128.1.14.el5-1.4.10-94.slp5.x86_64.rpm
/afs/psi.ch/project/linux/dist/slp5/RPMS/x86_64/kernel-module-openafs-2.6.18-128.1.14.el5xen-1.4.10-94.slp5.x86_64.rpm

This also seems to be ok, as there was never a VMWare kernel module in the repository for Xen and PAE kernel.

Copy The Kernel Module RPMS To The SL 5 Repository

Eventually, copy the built kernel module RPMS to the corresponding PSI-ALL repository:

# cp -av `cat /tmp/rpms_for_2.6.18-128.1.14.el5` /afs/psi.ch/software/linux/dist/scientific/51/psi/all/

Check whether the gpfs daemon and the gpfs kernel module RPMS were copied, too, and have corresponding versions.

Probably you have to build them first using e.g. build-gpfs.sl54.x86_64.sh on tux50-64:

# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
# ./build-gpfs.sl5x.x86_64.sh
# check-for-gpfs-occurence.bash 2.6.18-164.9.1.el5  3.2.1-16  4  51

# Begin checking for file occurence...
#/afs/psi.ch/software/linux/dist/scientific/51/nonfree/all/gpfs-3.2.1-16.4.slp5.psi.x86_64.rpm
# ok
#/afs/psi.ch/software/linux/dist/scientific/51/psi/all/kernel-module-gpfs-2.6.18-164.9.1.el5-3.2.1-16.4.slp5.psi.x86_64.rpm
# ok
#/afs/psi.ch/software/linux/dist/scientific/51/nonfree/all/gpfs-init-script-1.0-4.slp5.psi.x86_64.rpm
# ok
# End checking for file occurence.
Make The New Kernel Repository For SL5

The next two commands, make kernel_all and make kernel, will process both architectures, i386 and x86_64. So you can run it only once, after having built i386 and x86_64 kernel modules.

Running make kernel_all will copy the built kernel module RPMS and other kernel related RPMS from the corresponding ...-ALL to the KERNEL-ALL directories, e.g.:

from:   /afs/psi.ch/software/linux/dist/scientific/51/update.x86_64/all/
to:     /afs/psi.ch/software/linux/dist/scientific/51/kernel/all/       

Eventually make kernel will create the new kernel snapshot in `/afs/psi.ch/software/linux/dist/scientific/51/kernel/`:

# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
# make kernel_all > UPDATE_LOG/$(date +%Y-%m-%d)-make-kernel_all-2.6.18-164.11.1.el5.sl51.i386.x86_64.log 2>&1

# KERNEL_VER=2.6.18 KERNEL_REL=371.12.1.el5 make kernel

Follow the instructions at the end of the output of make kernel to update symlinks, e.g:

# rm /afs/psi.ch/software/linux/dist/scientific/51/kernel/testing
# ln -s 2.6.18-371.12.1.el5 /afs/psi.ch/software/linux/dist/scientific/51/kernel/testing

Create Snapshots of Repositories

Both architectures, i386 and x86_64, are treated by the following commands.

If new RPMS appear in a certain repository, which should be available for the next update, a new snapshot is created for this repository. The folder name of the snapshot will be equal to the current date.

Create all snapshots at once (gfa excluded as Heiner Billich and Rene Kapeller will create this snapshot). This can take up to one hour:

#[gasser_m@tux50]
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts
# nohup ./run_make_snapshots_all.sh &

As an alternative you could make a single snapshot of a certain repository only. E.g. to make a snapshot of the update and psi repos type:

# DIR=update make snapshot      # DIR=update will set: ALL_DIRS="update.i386 update.x86_64"
# DIR=psi make snapshot

make snapshot will execute /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_snapshot. The command createrepo invoked in the shell script .../mk_snapshot writes repodata for each snapshot to e.g. /afs/psi.ch/software/linux/dist/scientific/51/others/20090625/repodata/.

Release the snapshots for first level testing systems

The command make release_testing will update the respective symlinks .../testing to the latest snapshots in all repos (again, except gfa).

Note: Because make release_testing is interactive, you should not redirect the output to a file:

# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
# make release_testing

Before `make release_testing`:

Note: The output below originates not from the same update as above, this was 2008-08-27:

# [gasser_m@tux50]
# cd /afs/psi.ch/software/linux/dist/scientific/51/
# \ls -l */testing

lrwxr-xr-x 1 markushin ait  8 Aug  8 15:27 cluster/testing -> 20080808
lrwxr-xr-x 1 markushin ait  8 Aug  8 15:27 enhanced/testing -> 20080808
lrwxr-xr-x 1 billich   ait  8 Aug 27 14:40 gfa/testing -> 20080827
lrwxr-xr-x 1 markushin ait  8 Aug  8 15:27 kde-redhat/testing -> 20080808
lrwxr-xr-x 1 markushin ait 18 Aug  8 15:27 kernel/testing -> 2.6.18-92.1.10.el5
lrwxr-xr-x 1 markushin ait  8 Aug  8 15:27 nonfree/testing -> 20080808
lrwxr-xr-x 1 markushin ait  8 Aug  8 15:27 others/testing -> 20080808
lrwxr-xr-x 1 markushin ait  8 Aug 14 15:23 psi/testing -> 20080814
lrwxr-xr-x 1 markushin ait  8 Aug  8 15:27 update.i386/testing -> 20080808
lrwxr-xr-x 1 markushin ait  8 Aug  8 15:27 update.x86_64/testing -> 20080808

[gasser_m@tux50 51]$ \ls -l */current
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 cluster/current -> 20080808
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 enhanced/current -> 20080808
lrwxr-xr-x 1 billich  ait  8 Aug 27 14:40 gfa/current -> 20080827
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 kde-redhat/current -> 20080808
lrwxr-xr-x 1 gasser_m ait 18 Aug 14 16:37 kernel/current -> 2.6.18-92.1.10.el5
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 nonfree/current -> 20080808
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 others/current -> 20080808
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 psi/current -> 20080814
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 update.i386/current -> 20080808
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 update.x86_64/current -> 20080808

After `make release_testing`:

# [gasser_m@tux50]
# \ls -l */testing

lrwxr-xr-x 1 gasser_m ait  8 Aug 28 14:58 cluster/testing -> 20080827
lrwxr-xr-x 1 gasser_m ait  8 Aug 28 14:58 enhanced/testing -> 20080827
lrwxr-xr-x 1 billich  ait  8 Aug 27 14:40 gfa/testing -> 20080827
lrwxr-xr-x 1 gasser_m ait  8 Aug 28 14:58 kde-redhat/testing -> 20080827
lrwxr-xr-x 1 gasser_m ait 18 Aug 28 14:58 kernel/testing -> 2.6.18-92.1.10.el5
lrwxr-xr-x 1 gasser_m ait  8 Aug 28 14:58 nonfree/testing -> 20080827
lrwxr-xr-x 1 gasser_m ait  8 Aug 28 14:58 others/testing -> 20080827
lrwxr-xr-x 1 gasser_m ait  8 Aug 28 14:58 psi/testing -> 20080827
lrwxr-xr-x 1 gasser_m ait  8 Aug 28 14:58 update.i386/testing -> 20080827
lrwxr-xr-x 1 gasser_m ait  8 Aug 28 14:58 update.x86_64/testing -> 20080827

[gasser_m@tux50 51]$ \ls -l */current
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 cluster/current -> 20080808
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 enhanced/current -> 20080808
lrwxr-xr-x 1 billich  ait  8 Aug 27 14:40 gfa/current -> 20080827
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 kde-redhat/current -> 20080808
lrwxr-xr-x 1 gasser_m ait 18 Aug 14 16:37 kernel/current -> 2.6.18-92.1.10.el5
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 nonfree/current -> 20080808
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 others/current -> 20080808
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 psi/current -> 20080814
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 update.i386/current -> 20080808
lrwxr-xr-x 1 gasser_m ait  8 Aug 14 16:37 update.x86_64/current -> 20080808

Now, the testing symlinks point to the latest snapshots, while the current symlinks still point to the previous snapshots.

Make First Tests

Manually update selected testing hosts (see /etc/sysconfig/psi and /etc/yum.conf) with yum. The testing string is set in /etc/sysconfig/psi and /etc/yum.conf (i.e. your computer is looking for new RPMS in the testing snapshots):

# yum clean all
# yum update

If there's a new kernel, reboot into this new kernel and especially check whether the new kernel-module-openafs is working and AFS was mounted.

  • Note to the psi-update script

psi-update will not work at this point, because it's udpating only if the PSI version has changed, what will be done later (see "Create A New PSI Version Of SL51" below). psi-update will get the script yum_update from our master, pxeserv01, see also /etc/fstab. The script yum_update will be saved locally as /usr/sbin/psi-yum_update. Afterwards psi-yum_update will be executed locally.

Create A New PSI Version Of SL51 And Release It For Testing Systems

In this section a new PSI version is created and released for testing systems. By default, Green Testing PCs will be auto updated during the following night.

The procedure shown here has to be repeated for all SL5 class/subclass combinations. Contemporary there are three of them:

  1. Desktop/Stable
  2. Desktop/Enhanced
  3. Cnode/Stable

To get an overview list the classes directories:

# [gasser_m@pc7377 Stable]$ ll -rt /afs/psi.ch/software/linux/dist/scientific/51/classes/*

/afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop:
total 10
drwxr-xr-x  2 beyerle ait 2048 Jan 19  2008 StableTesting
drwxr-xr-x  2 beyerle ait 2048 Jan 19  2008 EnhancedTesting
drwxr-xr-x 15 beyerle ait 4096 Jul  2 17:11 Enhanced
drwxr-xr-x 15 beyerle ait 2048 Aug 11 14:19 Stable

/afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode:
total 4
drwxr-xr-x  2 beyerle ait 2048 Jan 19  2008 StableTesting
drwxr-xr-x 15 beyerle ait 2048 Jul  2 17:11 Stable

Note: To change the list of RPMS of a certain class edit the corresponding package list.

E.g.: To add RPMS in update version 19 of SL51 Desktop/Stable edit `list.Stable.v19`:

# vi /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/list.Stable.v19

IMPORTANT: If you add RPMS to the list, update also the RPM lists used in the kickstart installation:

# vi /afs/psi.ch/software/linux/dist/scientific/51/kickstart/custom/DesktopStablei386/yum_install.conf
# vi /afs/psi.ch/software/linux/dist/scientific/51/kickstart/custom/DesktopStablex86_64/yum_install.conf
  • Note: The following tasks can also be performed using the script create-new-psi-version.bash.

Desktop/Stable: Release Desktop Stable Testing

Create folder for Version 19 by running make class:

# cd /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/
# cp list.Stable.v18 list.Stable.v19

# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
# CLASS=Desktop SUBCLASS=Stable version=19 LIST=list.Stable.v19 make class

###{ begin output make class
Populating Class directory ...
TOP_DIR=/afs/psi.ch/software/linux/dist/scientific/51 \
    /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class

Configuration file /afs/psi.ch/software/linux/dist/scientific/51/scripts/dist-config
Running /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class ...
create version and release file
copy list.Stable.v19 to list
-------------------------------------------------------------------------------
 The directory /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMS-20080811 has been populated.

 RPMSv19 links to RPMS-20080811

 Please check 
   cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMS-20080811/version
   cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMS-20080811/release
   cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMS-20080811/list

 If you like to display a message for the user (one line) put it into
   emacs /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMS-20080811/message

 If you want to release `testing`, link RPMSTesting to RPMSv19:
   rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMSTesting
   ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMSTesting

-------------------------------------------------------------------------------
... End of /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class
###} end output make class

Now release it:

# rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMSTesting
# ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Stable/RPMSTesting

Desktop/Enhanced: Release Desktop Enhanced Testing (also a lot of nonfree etc. stuff)

Create folder for Version 19 by running `make class`:

# cd /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/
# cp list.Enhanced.v18 list.Enhanced.v19
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
# CLASS=Desktop SUBCLASS=Enhanced version=19 LIST=list.Enhanced.v19 make class

###{ begin output
Populating Class directory ...
TOP_DIR=/afs/psi.ch/software/linux/dist/scientific/51 \
    /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class

Configuration file /afs/psi.ch/software/linux/dist/scientific/51/scripts/dist-config
Running /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class ...
create version and release file
copy list.Enhanced.v19 to list
-------------------------------------------------------------------------------
 The directory /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMS-20080811 has been populated.

 RPMSv19 links to RPMS-20080811

 Please check 
   cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMS-20080811/version
   cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMS-20080811/release
   cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMS-20080811/list

 If you like to display a message for the user (one line) put it into
   emacs /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMS-20080811/message

 If you want to release "testing", link RPMSTesting to RPMSv19:
   rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMSTesting
   ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMSTesting

-------------------------------------------------------------------------------
... End of /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class
###} end output

Now release it:

# rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMSTesting
# ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Desktop/Enhanced/RPMSTesting

Cnode/Stable: Release Cnode Stable Testing

Create folder for Version 19 by running `make class`:

# cd /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/
# cp list.Stable.v18 list.Stable.v19
# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
# CLASS=Cnode SUBCLASS=Stable version=19 LIST=list.Stable.v19 make class

###{ begin output
Populating Class directory ...
TOP_DIR=/afs/psi.ch/software/linux/dist/scientific/51 \
    /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class

Configuration file /afs/psi.ch/software/linux/dist/scientific/51/scripts/dist-config
Running /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class ...
create version and release file
copy list.Stable.v19 to list
-------------------------------------------------------------------------------
 The directory /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMS-20080811 has been populated.

 RPMSv19 links to RPMS-20080811

 Please check 
   cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMS-20080811/version
   cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMS-20080811/release
   cat /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMS-20080811/list

 If you like to display a message for the user (one line) put it into
   emacs /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMS-20080811/message

 If you want to release "testing", link RPMSTesting to RPMSv19:
   rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMSTesting
   ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMSTesting

-------------------------------------------------------------------------------
... End of /afs/psi.ch/software/linux/dist/scientific/51/scripts/mk_class
###} end output 

Now release it:

# rm -f /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMSTesting
# ln -s RPMSv19 /afs/psi.ch/software/linux/dist/scientific/51/classes/Cnode/Stable/RPMSTesting

Test the Update On Testing Systems

On a testing system run:

[root@tux50]
# psi-update

Release The Update PSI Wide For Productive Systems

Run:

# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts/
# make current_equal_testing

Refresh symbolic links in the RPMS_all folder to all respective RPMS:

# cd /afs/psi.ch/software/linux/dist/scientific/51/scripts
# make rpms_all

Test The Update On Productive Systems

On a productive (=current) system run:

# psi-update

Update The Webpages

Reference

https://wiki.intranet.psi.ch/AIT/LinuxRegularUpdate#Update_the_Webpages

Possibly it's better to move the reference to the top Reference section. This section is still in a very sketch state anyway.

General Info to Webpages Providing SL Update Infos

The website is public to PSI.#??? or to everybody?

The site provides information about the SL update progress for users at PSI.

Location of the website:

On AFS: /afs/psi.ch/project/ait/www/services/linux/updates/ On WWW: http://ait.web.psi.ch/services/linux/updates/

Update the following Webpages:

Show the updated RPMS between current and the release before. Reduce amount of info to a reasonable minimum and represent clearly for users. Don't show RPMS, which are in the repository but will not be installed because of a newer version of this RPM in the same snapshot.

Script location: /afs/psi.ch/project/ait/www/services/linux/updates/

find_new_rpms_between 20080626 51 18 20080808 51 19 The command above will not yet work on SL5, because of directory layout changes between SL4 and SL5. For now we will take another procedure to prepare the HTML files.

The following command will show some first scratch of an alternative way to get the list with updated RPMS:

# cd /afs/psi.ch/software/linux/dist/scientific/51
# diff <( ls -1 */testing/ | sort ) <( ls -1 */current/ | sort ) | grep '^<' | sed -e 's/.i.86.rpm//' -e 's/.x86_64.rpm//' | uniq

What do we need? In SL5 we have the following classes/subclasses:

#

      ¦---Stable
      ¦-Cnode---¦
      ¦     ¦---StableTesting
      ¦
      ¦
sl5---¦
      ¦     ¦--Stable
      ¦     ¦
      ¦     ¦--StableTesting
      ¦-Desktop-¦
        ¦--Enhanced
        ¦
        ¦--EnhancedTesting


ls -1 */testing/ | grep -v testing | grep -v x86_64 | sort > ~/tmp/sl51-v19-ls-asterisk-testing-sort-out
ls -1 */current/ | grep -v current | grep -v x86_64 | sort > ~/tmp/sl51-v19-ls-asterisk-current-sort-out
/afs/psi.ch/user/g/gasser_m/tmp/
mengen.py -D sl51-v19-ls-asterisk-testing-sort-out sl51-v19-ls-asterisk-current-sort-out > sl51-v19-mengen-out
get-latest-RPM-from-RPM-list.pl sl51-v19-mengen-out > sl51-v19-updated-RPMS.list

From sl51-v19-updated-RPMS.list take the list to insert into the HTML update site. Edit file /afs/psi.ch/project/ait/www/services/linux/updates/update_sl5.html.

Are all clients up-to-date?

Login to pxeserv01.

Note to puppet and /etc/sysconfig/psi

Even puppet and not cfengine is running on SL5, latest copies of ANYHOST:/etc/sysconfig/psi from SL3, SL4 and SL5 systems are put to `pxeserv01:/opt/cfengine/sysconfig/`:

# cd /opt/cfengine/scripts
# ./find_hosts_with_old_version.sh 98 71 20

running...
./cfengine.lcmeg01:VERSION=70
./cfengine.lclth01:VERSION=70
./cfengine.lclev03:VERSION=70
./cfengine.pc7148:VERSION=18
./cfengine.lclev01:VERSION=70
./cfengine.lclth04:VERSION=70
./cfengine.pc6702:VERSION=69
./cfengine.lclth07:VERSION=70
./cfengine.pc3384:VERSION=97
./cfengine.slsnedi1:VERSION=17
./cfengine.pc5082:VERSION=91
./cfengine.lpc4358:VERSION=69
./cfengine.lclev05:VERSION=70
./cfengine.lclth08:VERSION=70
./cfengine.lclth02:VERSION=70
./cfengine.llc6:VERSION=69
./cfengine.lclrs11:VERSION=69
./cfengine.pc5835:VERSION=96
./cfengine.lclth06:VERSION=70
./cfengine.tux40e:VERSION=70
./cfengine.lclev02:VERSION=70
./cfengine.lclth03:VERSION=70
./cfengine.pc4426:VERSION=17
./cfengine.pcmic01:VERSION=70
./cfengine.lclth05:VERSION=70
done!

If a host is not up-to-date, login to the host and run manually:

# psi-update

You may also want to check the logs in /var/log/update/