Update CSM Product Stream

The software included in the CSM product stream is released in more than one way. The initial product release may be augmented with patches, documentation updates, or hotfixes after the release.

The CSM documentation is included within the CSM product release tarball inside the docs-csm RPM. After the RPM has been installed, the documentation will be available at /usr/share/doc/csm.

Download and extract CSM product release

Acquire a CSM software release tarball for installation on the HPE Cray EX supercomputer.

The following procedure should work on any Linux system. If directed here from another procedure, then that source procedure should indicate on which system the CSM release should be downloaded and extracted.

  1. (linux#) Set the ENDPOINT variable to the URL of the server hosting the CSM tarball.

    ENDPOINT=URL_SERVER_Hosting_tarball
    
  2. (linux#) Set the CSM_RELEASE variable to the version of CSM software to be downloaded.

    CSM_RELEASE=x.y.z
    
  3. (linux#) Download the CSM software release tarball.

    NOTE: CSM does NOT support the use of proxy servers for anything other than downloading artifacts from external endpoints. Using http_proxy or https_proxy in any way other than the following examples will cause many failures in subsequent steps.

    • Without proxy:

      wget "${ENDPOINT}/csm-${CSM_RELEASE}.tar.gz"
      
    • With HTTPS proxy:

      https_proxy=https://example.proxy.net:443 wget "${ENDPOINT}/csm-${CSM_RELEASE}.tar.gz"
      
    • With HTTP proxy:

      http_proxy=http://example.proxy.net:80 wget "${ENDPOINT}/csm-${CSM_RELEASE}.tar.gz"
      
  4. (linux#) Extract the release distribution.

    tar -xzvf "csm-${CSM_RELEASE}.tar.gz"
    
  5. (linux#) Only for CSM 1.3.2: Update canu RPM.

    NOTE this package provides a network device configuration and firmware utility.

    cp -v csm-${CSM_RELEASE}/rpm/cray/csm/sle-15sp4/x86_64/canu-*.rpm csm-${CSM_RELEASE}/rpm/cray/csm/sle-15sp3/x86_64
    
  6. Before using this software release, check for any patches available for it.

    If patches are available, see Apply patch to CSM release.

Apply patch to CSM release

Apply a CSM update patch to the expanded CSM release tarball, and then create a new tarball which contains the patched release. This ensures that the latest CSM product artifacts are installed on the HPE Cray EX supercomputer.

Apply patch to CSM release: Prerequisites

The following requirements must be met on the system where the procedure is being followed.

  • The expanded CSM release tarball is present.

    Because the patch is applied to the expanded CSM release tarball, it is simplest to perform this procedure on the same system where the Download and extract CSM product release procedure was followed.

  • (linux#) Git version 2.16.5 or higher must be installed.

    git version
    

    Example output:

    git version 2.26.2
    

    If the Git version is less than 2.16.15, then update Git to at least that version.

Apply patch to CSM release: Procedure

  1. (linux#) Set the ENDPOINT variable to the URL of the server hosting the CSM patch file.

    ENDPOINT=URL_SERVER_Hosting_patch
    
  2. (linux#) Set the CSM_RELEASE variable to the version of CSM software to be patched.

    CSM_RELEASE=x.y.z
    
  3. (linux#) Set the PATCH_RELEASE variable to the version of CSM patch.

    PATCH_RELEASE=x.z.a
    
  4. (linux#) Download the compressed CSM software package patch file.

    The file name will be of the form csm-x.y.z-x.z.a.patch.gz. Be sure to modify the following example with the appropriate values.

    NOTE: CSM does NOT support the use of proxy servers for anything other than downloading artifacts from external endpoints. Using http_proxy or https_proxy in any way other than the following examples will cause many failures in subsequent steps.

    • Without proxy:

      wget "${ENDPOINT}/csm-${CSM_RELEASE}-${PATCH_RELEASE}.patch.gz"
      
    • With HTTPS proxy:

      https_proxy=https://example.proxy.net:443 wget "${ENDPOINT}/csm-${CSM_RELEASE}-${PATCH_RELEASE}.patch.gz"
      
    • With HTTP proxy:

      http_proxy=http://example.proxy.net:80 wget "${ENDPOINT}/csm-${CSM_RELEASE}-${PATCH_RELEASE}.patch.gz"
      
  5. (linux#) Uncompress the patch.

    gunzip -v "csm-${CSM_RELEASE}-${PATCH_RELEASE}.patch.gz"
    
  6. (linux#) Apply the patch.

    git apply -p2 --whitespace=nowarn --directory="csm-${CSM_RELEASE}" "csm-${CSM_RELEASE}-${PATCH_RELEASE}.patch"
    
  7. (linux#) Set a variable to reflect the new version.

    NEW_CSM_RELEASE="$(./csm-${CSM_RELEASE}/lib/version.sh)"
    
  8. (linux#) Update the name of the CSM release distribution directory.

    mv -v "csm-${CSM_RELEASE}" "csm-${NEW_CSM_RELEASE}"
    
  9. (linux#) Create a tarball from the patched release distribution.

    tar -cvzf "csm-${NEW_CSM_RELEASE}.tar.gz" "csm-${NEW_CSM_RELEASE}/"
    

This tarball can now be used in place of the original CSM software release tarball.

Check for latest documentation

Acquire the latest documentation RPM. This may include updates, corrections, and enhancements that were not available until after the software release.

NOTE: CSM does NOT support the use of proxy servers for anything other than downloading artifacts from external endpoints. Using http proxies in any way other than the following examples will cause many failures in subsequent steps.

  1. (linux#) Check the version of the currently installed CSM documentation and CSM library.

    rpm -q docs-csm libcsm
    
  2. (linux#) Set the CSM_RELEASE variable to the installed version of CSM.

    CSM_RELEASE=x.y.z
    
  3. (linux#) Download and upgrade the latest documentation RPM and CSM library.

    • Without proxy:

      wget "https://release.algol60.net/$(awk -F. '{print "csm-"$1"."$2}' <<< ${CSM_RELEASE})/docs-csm/docs-csm-latest.noarch.rpm" -O /root/docs-csm-latest.noarch.rpm
      wget "https://release.algol60.net/lib/sle-$(awk -F= '/VERSION=/{gsub(/["-]/, "") ; print tolower($NF)}' /etc/os-release)/libcsm-latest.noarch.rpm" -O /root/libcsm-latest.noarch.rpm 
      
    • With HTTPS proxy:

      https_proxy=https://example.proxy.net:443 wget "https://release.algol60.net/$(awk -F. '{print "csm-"$1"."$2}' <<< ${CSM_RELEASE})/docs-csm/docs-csm-latest.noarch.rpm" \
          -O /root/docs-csm-latest.noarch.rpm
      https_proxy=https://example.proxy.net:443 wget "https://release.algol60.net/lib/sle-$(awk -F= '/VERSION=/{gsub(/["-]/, "") ; print tolower($NF)}' /etc/os-release)/libcsm-latest.noarch.rpm" \
          -O /root/libcsm-latest.noarch.rpm
      
    • If this machine does not have direct internet access, then this RPM will need to be externally downloaded and copied to the system.

      • If the node receiving libcsm is reachable, use this to resolve the SLES version:

        SLES_VERSION=$(ssh ncn-m001 'awk -F= '\''/VERSION=/{gsub(/["-]/, "") ; print tolower($NF)}'\'' /etc/os-release')
        
      • If the node receiving libcsm is unreachable, set the SLES version of that node by hand:

        SLES_VERSION=15sp4
        
      curl -O "https://release.algol60.net/$(awk -F. '{print "csm-"$1"."$2}' <<< ${CSM_RELEASE})/docs-csm/docs-csm-latest.noarch.rpm"
      curl -O "https://release.algol60.net/lib/sle-${SLES_VERSION}/libcsm-latest.noarch.rpm"
      scp docs-csm-latest.noarch.rpm libcsm-latest.noarch.rpm ncn-m001:/root
      ssh ncn-m001
      
  4. (linux#) Install the documentation RPM and CSM library.

    rpm -Uvh --force /root/docs-csm-latest.noarch.rpm /root/libcsm-latest.noarch.rpm
    
  5. Repeat the first step in this procedure to display the version of the CSM documentation after the update.

Check for field notices about hotfixes

Collect all available field notices about hotfixes which should be applied to this CSM software release. Check with HPE Cray service for more information.