Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Bugs, vulnerabilities and availability of patches are communicated with the SOS Change Management System.
  • The article provides information about how to apply patches to the Controller.
    Display feature availability
    StartingFromRelease2.3.0
  • The article explains how to manually apply patches. For automated patching see JS7 - Automated Installation and Update.

...

Find the following examples for a patch:

The patch examples will not impact a Controller installation and are used for instructional purposes only. For details see JS-1984.

...

Before applying patches users might want to verify the integrity and authenticity of downloaded patch files, see JS7 - Verifying releases.

...

The patch examples will not impact a Controller installation and are used for instructional purposes only. For details see JS-1984.

Note: The Controller has to be stopped before applying patches.

Applying Patch on Unix

Manual Patching

Code Block
languagebash
titleExample how to apply a patch from a .jar file to a Controller for Unix
linenumberstrue
# invoke shell and switch to the user account that owns the Controller's home directory

# navigate to the targethome directory for patches
cd /opt/sos-berlin.com/js7/controller/lib/patches

# download the .jar patch file
curl https://download.sos-berlin.com/patches/2.2.3-patch/js7_controller.2.2.3-PATCH.JS-1984.jar -O
Code Block
languagebash
titleExample how to apply a patch from a .tar.gz archive to a Controller for Unix
linenumberstrue
collapsetrue
# invoke shell and switch to the user account that owns the Controller's home directory

# navigate to the targethome directory for patches
cd /opt/sos-berlin.com/js7/controller/lib/patches

# download the .tar.gz patch archive
curl https://download.sos-berlin.com/patches/2.2.3-patch/js7_controller.2.2.3-PATCH.JS-1984.tar.gz -O

# extract the .tar.gz patch archive that includes .jar files
tar -xvzfxvpozf js7_controller.2.2.3-PATCH.JS-1984.tar.gz

# remove the .tar.gz patch archive
rm js7_controller.2.2.3-PATCH.JS-1984.tar.gz

Automated Patching

Code Block
languagebash
titleExample how to apply a patch from a .jar file to a Controller for Unix
linenumberstrue
# invoke shell and switch to the user account that owns the Controller's home directory

# download the .jar patch file
curl https://download.sos-berlin.com/patches/2.2.3-patch/js7_controller.2.2.3-PATCH.JS-1984.jar -O

# apply the patch
./js7_install_controller.sh \
    --patch-jar=js7_controller.2.2.3-PATCH.JS-1984.jar \
    --patch=JS-1984 \
    --home=/opt/sos-berlin.com/js7/controller \
    --controller-id=controller
Code Block
languagebash
titleExample how to apply a patch from a .tar.gz archive to a Controller for Unix
linenumberstrue
collapsetrue
# invoke shell and switch to the user account that owns the Controller's home directory

# download the .tar.gz patch archive
curl https://download.sos-berlin.com/patches/2.2.3-patch/js7_controller.2.2.3-PATCH.JS-1984.tar.gz -O

# apply the patch
./js7_install_controller.sh \
    --tarball=js7_controller.2.2.3-PATCH.JS-1984.tar.gz \
    --patch=JS-1984 \
    --home=/home/sos/controller \
    --controller-id=controller

Applying Patch on Windows

Manual Patching

Code Block
languagebash
titleExample how to apply a patch from a .jar file to a Controller for Windows
linenumberstrue
@rem invoke Windows shell and switch to the user account that owns the Controller's home directory

@rem navigate to the targethome directory for patches
cd %ProgramFiles%\sos-berlin.com\js7\controller\<controller-id>\lib\patches

@rem download from URL https://download.sos-berlin.com/patches/2.2.3-patch/js7_controller.2.2.3-PATCH.JS-1984.jar
@rem copy from download location (could be different from this example)
copy %USERPROFILE%\Downloads\js7_controller.2.2.3-PATCH.JS-1984.jar .
Code Block
languagebash
titleExample how to apply a patch from a .tar.gz archive to a Controller for Windows
linenumberstrue
collapsetrue
@rem invoke Windows shell and switch to the user account that owns the Controller's home directory

@rem navigate to the targethome directory for patches
cd %ProgramFiles%\sos-berlin.com\js7\controller\lib\patches

@rem download from URL https://download.sos-berlin.com/patches/2.2.3-patch/js7_controller.2.2.3-PATCH.JS-1984.tar.gz
@rem copy from download location (could be different from this example)
copy %USERPROFILE%\Downloads\js7_controller.2.2.3-PATCH.JS-1984.tar.gz .

@rem extract the .tar.gz patch archive that includes .jar files
tar.exe -xfxzf js7_controller.2.2.3-PATCH.JS-1984.tar.gz
 
@rem remove the .tar.gz patch archive
del js7_controller.2.2.3-PATCH.JS-1984.tar.gz

Automated Patching

Code Block
languagepowershell
titleExample how to apply a patch from a .jar file to a Controller for Windows
linenumberstrue
# invoke PowerShell and switch to the user account that owns the Controller's home directory

# download from URL
Invoke-WebRequest `
    -Uri 'https://download.sos-berlin.com/patches/2.2.3-patch/js7_controller.2.2.3-PATCH.JS-1984.jar' `
    -Outfile js7_controller.2.2.3-PATCH.JS-1984.jar

# apply patch
./Install-JS7Controller.ps1 `
    -PatchJar js7_controller.2.2.3-PATCH.JS-1984.jar `
    -Patch JS-1984 `
    -HomeDir $env:ProgramFiles\sos-berlin.com\js7\controller `
    -ControllerId controller `
    -HttpPort 4444
Code Block
languagepowershell
titleExample how to apply a patch from a .tar.gz archive to a Controller for Windows
linenumberstrue
collapsetrue
# invoke PowerShell and switch to the user account that owns the Controller's home directory

# download from URL
Invoke-WebRequest `
    -Uri 'https://download.sos-berlin.com/patches/2.2.3-patch/js7_controller.2.2.3-PATCH.JS-1984.tar.gz' `
    -Outfile js7_controller.2.2.3-PATCH.JS-1984.tar.gz
 
# apply patch
./Install-JS7Controller.ps1 `
    -Tarball js7_controller.2.2.3-PATCH.JS-1984.tar.gz `
    -Patch JS-1984 `
    -HomeDir $env:ProgramFiles\sos-berlin.com\js7\controller `
    -ControllerId controller `
    -HttpPort 4444

Notes

Note: The Controller instance has to be restarted to apply patches.

Note: Users are discouraged from using tools such as 7-Zip to extract the patch archive in case of manual patching. Instead, use the tools available from the OS as indicated by the examples. Do not create a sub-folder from the archive name but extract directly to the directory hierarchy as indicated above.

Hint: For automated rollout of patches see JS7 - Automated Installation and Update.

...

Patches are not applied persistently to a container. Patch files remain in place in the /var/sos-berlin.com/js7/controller/config/patches sub-directory (typically mounted to a volume) for the lifetime of the Controller release in use. Patch files Patches have to be removed if a newer release of the Controller is used.

...

Note: The Controller container has to be restarted to apply make removal of patches effective.