From OpenSCADAWiki
Jump to: navigation, search
Name Founded Status Members
Automatic Builder of OpenSCADA May 2015

Implemented in the building (2) and syncing (1) scripts, building for up to 100 targets by: CHROOTs of the Linux repositories, VPS and different sub-environments. As the result of the Builder work is: the fresh and signed packages repositories of Linux, Live disk images and other binary archives of OpenSCADA.

Roman Savochenko
Description
The sub-project aimed to make easy the project OpenSCADA distribution through automatic building the binary packages, their ready to use repositories and other complex distributives like to Live disks.

The builder is represented by the two BASH scripts:

  • oscadaCheck — for processing of the allowed profiles list by its checking to need of the build. It is started typically by the CRON schedule, for night builds, or manually for directly specified targets in the format "{Target}[:option[,optionN]] {en}{Work}{LTS}{ServLTS}{PassSrcTree}", where:
    • "en"{0|1} — enabled target;
    • "Work"{0|1} — enabled to build the Work branch;
    • "LTS"{0|1} — enabled to build the LTS branch generic updates;
    • "ServLTS"{0|1} — enabled to build the LTS branch service updates;
    • "PassSrcTree"{0|1} — omit the source tree download from SVN, mostly for building the Live images.
  • oscadaBuild — for building of the directly specified profile.

Files structure of the automation building system means:

\-- /data/
    |-- oscada/
    |   |-- bin/
    |   |   |-- oscadaBuild
    |   |   |-- oscadaCheck
    |   |   \-- oscadaSyncFtp
    |   |-- build/                 => work building folder, which contains the unpacked CHROOTs
    |   |   |-- log/               => logs of the builds
    |   |   \-- *.stamp            => stamps of the successful builds
    |   \-- chroot-data.tgz        => contains the packages and their repositories GPG singing key of the builder
    \-- share_res/
        \-- ftp/                   => FTP folder of the building results
            |-- {ALTLinux,Debian}/ => Folders of the repositories of the Automation Linux distributive
            |-- Misc/
            |   \-- chroots/       => Folder of the archives of the CHROOTs of the building
            \-- OpenSCADA/         => Folders of the repositories of OpenSCADA
                |-- LTS/           => Folders of the LTS repositories of OpenSCADA
                \-- Work/          => Folders of the Work repositories of OpenSCADA

The automation building system supports also its distribution at specific environments, for some building types, like to different hardware platforms, instead their CHROOTs. The distribution is performed for a remote part (external) of the automation builder by: deploying the bottom file structure (only for needed targets), organization for the local file server and scheduling the sync script oscadaSyncFtp on the automation builder core (tell for Roman Savochenko) — main FTP server.

Currently the automation builder means for automatic building:

  • The Work version (1) for the last SVN revision with the tag "(stable)";
  • The LTS version (0.9.U.S) for generic (U) and service (S) update.

Table 1: Implemented profiles — the building types.

Target Result Method of the building External deploying Additional
SrcTar Source packages packed as XZ TAR packages CHROOT "Debian_7_32" Yes Updates the OpenSCADA documentation for LTS.
SrcRPM, CentOs*, SuSE*, Fedora*, ALTLinux*, Mandriva* RedHat source and binary packages for the hardware architectures x86_32 and x86_64 CHROOT Yes Allows for tuning to the specific by the patches "openscada_*.patch".
Allows, calling the allowed script "reposUpdate" into the results directory, for the packages repository: create, update, sign the packages and the repository in whole.
Target options:
  • "rep" — to the repository folder instead OpenSCADA folder;
  • "dev" — mount the system folders to the CHROOT (/dev, /dev/pts, /proc).
Debian*, Ubuntu* Debian packages for the hardware architectures x86_32, x86_64 and ARMHF CHROOT Yes Allows for tuning to the specific by the patches "openscada[-{platform}]_*.patch".
Allows, calling the allowed script "reposUpdate" into the results directory, for the packages repository: create, update, sign the packages and the repository in whole.
Target options:
  • "rep" — to the repository folder instead OpenSCADA folder.
Nokia* Debian packages for the hardware architecture ARMEL Scratchbox Yes Allows for tuning to the specific by the patches "openscada_*.patch".
Gen32PLC*, LP8x81* TAR packages of the PLC firmwares for the hardware architecture x86_32 VPS: bldrALT32.oscada No Uses the ALTLinux mkimage profiles: "mkimage-profiles-5-plc", "mkimage-profiles-5-plc-LP8x81", "mkimage-profiles-6-plc", "mkimage-profiles-6-plc-LP8x81".
Target options:
  • "UI" — include User Interface, for ALTLinux 5 only;
  • "rt1" — use the kernel "rt1-up", for ALTLinux 6.
Live_ALT Hybrid ISO image or TAR package of the Live disk of the Automation Linux distributive based on ALTLinux VPS: bldrALT32.oscada No Uses the ALTLinux mkimage profile "mkimage-profiles-6-kdesktop".
Updates MD5SUM of the ISO images in the file "MD5SUM".
Target options:
  • "flash" — build the TAR package instead the ISO image.
Live_Deb Hybrid ISO image of the Live disk of the Automation Linux distributive based on Debian VPS: bldrDeb8.oscada, bldrDeb9.oscada No Uses Live Build profiles of Debian: live7-32, live7-64, live8-32, live8-64, live9-32, live9-64.
Updates MD5SUM of the ISO images in the file "MD5SUM".
ICP_DAS_LP_ARM, SMH2Gi TAR packages of the PLC firmwares for the hardware architecture ARM. VPS: bldrDeb8.oscada + TOOLCHAIN No Uses the proper TOOLCHAINs.

Table 2: The actual building targets.

Target(s) OpenSCADA Host Notes
SrcTar Work+LTS oscada.org
SrcRPM LTS oscada.org
Debian
Debian_9_{32,64,armhf} -
Debian_9_{32,64,armhf}:rep Work+LTS oscada.org
Debian_8_{32,64,armhf} -
Debian_8_{32,64,armhf}:rep Work+LTS oscada.org
Debian_7_{32,64} -
Debian_7_{32,64}:rep Work+LTS oscada.org
Debian_6_{32,64} -
Ubuntu
Ubuntu_18.04_{32,64} LTS home.home Very new Linux kernel for CHROOT on oscada.org
Ubuntu_16.04_{32,64} Work+LTS oscada.org
Ubuntu_14.04_{32,64} Work+LTS oscada.org
Ubuntu_12.04_{32,64} Work+LTS oscada.org
Ubuntu_11.10_{32,64} -
Ubuntu_10.04_{32,64} -
CentOs
CentOs_7_64 LTS oscada.org
CentOs_6_{32,64} LTS oscada.org
SuSE
SuSE_15_64:dev LTS home.home Very new Linux kernel for CHROOT on oscada.org. GPG2 needs for mounting the system folders.
SuSE_13_{32,64} LTS oscada.org
SuSE_12_{32,64} LTS oscada.org
SuSE_11_{32,64} -
ALTLinux
ALTLinux_7_{32,64} -
ALTLinux_7_{32,64}:rep LTS oscada.org
ALTLinux_6_{32,64} -
ALTLinux_6_{32,64}:rep Work+LTS oscada.org
ALTLinux_5_{32,64} -
ALTLinux_5_{32,64}:rep -
Fedora
Fedora_12_32 Work+LTS oscada.org
Mandriva
Mandriva_2011_{32,64} -
Mandriva_2010_{32,64} -
Nokia
Nokia_800 Work+LTS oscada.org
Nokia_900 Work+LTS oscada.org
Nokia_950 Work+LTS oscada.org
PLC+Embedded
Gen32PLC_ALT6 LTS oscada.org
Gen32PLC_ALT6:rt1 Work+LTS oscada.org
Gen32PLC_ALT5 -
Gen32PLC_ALT5:UI -
LP8x81_ALT6 LTS oscada.org
LP8x81_ALT6:rt1 Work+LTS oscada.org
LP8x81_ALT5 -
LP8x81_ALT5:UI -
SMH2Gi LTS+Work oscada.org
ICP_DAS_LP_ARM -
TionPro270 -
Live
Live_Deb9_{32,64} Work+LTS oscada.org
Live_Deb8_{32,64} Work+LTS oscada.org
Live_Deb7_{32,64} Work+LTS oscada.org
Live_ALT Work+LTS oscada.org
Live_ALT:flash -