200 likes | 311 Views
SMS Packaging Scenarios. Mulkandov Arthur. OS Sun/UnixWare Linux Windows Multi (UW/Linux). Logical Type Scratch Patch Scratch/Patch Scratch/Upgrade KIT (few Linux packages in the one). Package types. Creation Tool Package RPM InstallAnyWare Scripting. <root>/package
E N D
SMS Packaging Scenarios Mulkandov Arthur
OS Sun/UnixWare Linux Windows Multi (UW/Linux) Logical Type Scratch Patch Scratch/Patch Scratch/Upgrade KIT (few Linux packages in the one) Package types Creation Tool • Package • RPM • InstallAnyWare • Scripting
<root>/package - mkpkg - pkginfo - prototype - prototype.linux <root>/package/pkg - request - preinstall -postinstall - postremove <root>/package/info/smsc - smsc.<ver>.<class>.<ver> - smsc.<class>.<ver> - smsc.<class>.<ver>.classes <root>/install - bin.<ARCH> - scripts - config <root>/install/info - name - classes - depend Packaging infrastructure
PKGINFO • PKG=NYSFE329 • NAME="NETology SMSC version 3.0.29 Build=SFE 3.0.29 T13" • CATEGORY="application" • CLASSES="sfe ctl infra" • BASEDIR=/home • MAXINST=999 • APPL=smsc • ARCH=Linux.i686 • PROJ=sfe • DEVEL_VERSION=3.0.29 • VERSION=3.0.29 • SFE_PROJ=sfe • SFE_VER=3.0.29 • LABEL=SFE_3.0.29_T13 • SFE_DEVEL=SMSC/sfe • APPL_VER=3.0.29 • RELEASE=T13 • PKGTYPE=package • Mandatory Variable • Added/Changed by Autobuilder
LOGICAL TYPES Scratch Patch Scratch/Patch Scratch/Upgrade KIT (few Linux packages in the one)
SCRATCH package preparation • <root>/package/mkpkg Script for creation “prototype” file, all <root>/package/info/smsc/* files • <root>/package/pkginfo • <root>/package/pkg/ request pre/postinstall pre/postremove These scripts maybe replicated from old “SCRATCH” release of the same component. • <root>/bin/<ARCH> (must be dir. or link to the right bin.??? directory) • <root>/install/bin.<ARCH>(must be dir. or link to the right install/bin.??? Or bin.??? directory) Maybe created for all OSs
PATCH package preparation • <root>/package/pkginfo • <root>/package/prototype (for Solaris/UnixWare) • <root>/package/prototype.linux (for Linux) • <root>/package/pkg/ request pre/postinstall pre/postremove • <root>/bin/<ARCH>(must be dir. or link to the right bin.??? directory) • <root>/install/bin.<ARCH>(must be dir. or link to the right install/bin.??? Or bin.??? directory) • /clearcase_home/macros/make_patch.pl This script creates pkginfo, prototype, prototype.linux and all <root>/package/pkg/* scripts. Must be started from integ view, <root>/package directory on the Solaris machine.
PATCH package preparation • New patch must be installed under the same Scratch installation directory: $BASEDIR/$APPL/<class>.$VERSION. BASEDIR=/home APPL=smsc VERSION=<version of package> APPL_VER=<version of patch> • All old files (selected for patch) will be copied to <file>.$PKG and eclipsed with new ones Maybe created for all OSs
SCRATCH/PATCH package preparation • <root>/package/mkpkg Script for creation “prototype” file, all <root>/package/info/smsc/* files • <root>/package/pkginfo • <root>/package/prototype • <root>/package/pkg/ request pre/postinstall pre/postremove • <root>/bin/<ARCH>(must be dir. or link to the right bin.??? directory) • <root>/install/bin.<ARCH>(must be dir. or link to the right install/bin.??? Or bin.??? directory) • /clearcase_home/macros/mk_scratch_path.pl This script creates pkginfo, prototype and all <root>/package/pkg/* scripts. Must be started from integ view, <root>/package directory on the Solaris machine. (rocky,eros etc.)
SCRATCH/PATCH package preparation • The package will be installed under directory: $BASEDIR/$APPL/<class>.$VERSION. BASEDIR=/home APPL=smsc VERSION=<version of package> • All old files (selected for patch mode) will be copied to <file>.$PKG and eclipsed with new ones Maybe created for Solaris/UnixWare OS only.
SCRATCH/UPGRADE package preparation • <root>/package/mkpkg Script for creation “prototype” file, all <root>/package/info/smsc/* files • <root>/package/pkginfo • <root>/package/prototype • <root>/package/pkg/ request pre/postinstall pre/postremove • <root>/bin/<ARCH>(must be dir. or link to the right bin.??? directory) • <root>/install/bin.<ARCH>(must be dir. or link to the right install/bin.??? Or bin.??? directory) • /clearcase_home/macros/mk_scratch_upgrade.pl This script creates pkginfo, prototype and all <root>/package/pkg/* scripts. Must be started from integ view, <root>/package directory on the Solaris machine. (rocky,eros etc.)
KIT (Linux) package preparation • <root>/package/make_rpm_install Script for creation one package that includes few Sub Linux packages of the same component Must be replicated from /clearcase_home/macros/MultiLinux_make_rpm_install script • <root>/package/pkginfo To add new line for each sub package SUB__<key>=<sub package infrastructure directory location> Example: SUB__APPL=appl/package SUB__DB=db/package New package installation: chmod +x <PKG-NAME> ./<PKG-NAME> key Example:./NYOMAPTSF APPL
OSs Solaris/UnixWare Linux Windows Multi (UW/Linux)
UnixWare package preparation • ARCH=x86at.UDK.8 (in pkginfo) • Install/bin.x86at.UDK.8/* (compiled/stripped) • Unitest cd <root>/package dir. pkgmk –d `pwd` -o • request_build.pl
Linux package preparation • ARCH=Linux.i686 (in pkginfo) • Install/bin.Linux.i686/* (compiled/stripped) • Unitest cd <root>/package dir. make_rpm_install `pwd` ½ (1 – package; 2 – patch) * New package will be created under <root>/package/Linux.i686 directory • request_build.pl
MULTI package preparation • ARCH=multi (in pkginfo) • Install/bin.x86at.UDK.8/* (compiled/stripped) • Install/bin.Linux.i686/* (compiled/stripped) • Unitest cd <root>/package dir. mkpkg_multi Script to creation multi package that can be installed on UnixWare (x86at.UDK.8) and Linux (Linux.i686) *This script performs binaries copy and strip action * New package will be created under <root>/package/multi directory • request_build.pl
SMS autobuilding tools • request_build.pl • build_log_online.pl • buildqueuer • mk_scratch_patch.pl • make_patch.pl • make_rpm_install `pwd` ½ (1 – package;2 – patch) • mkpkg_multi
AutoBuilder Functionality • Check CO elements • Calculate new build number • Creation and applying new Build Label • Insert new build information to pkginfo • Copy/Strip binaries from bin/<ARCH> to install/bin.<ARCH> • Package creation • Package transferring to the regular location • Notification sending • CQ Bugs moving ( from state Ready4Packaging to Ready4Verification ) • ODC: package transferring to TLV regular location