From OpenSCADAWiki
Jump to: navigation, search

Other languages:
Name Founded Status Members
Automatic Builder of OpenSCADA May 2015

Implemented in scripts of the building, repositories and branches processing and targets checking for 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 is 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 two common BASH-scripts and several checking BASH-scripts:

  • oscadaCheck* — very simple scripts with the building profiles list only for checking by oscadaRepBranches and depending on the building host; they are started typically by the CRON schedule, for night builds, or manually. Known currently profiles list corresponding to Table 2:
  • oscadaRepBranches — for processing of the profiles list pointed in the command line and in the format "{Target}[:option[,optionN]] {EN}{ForWork}{ForLTS}{ForLTSServ}{OmitSourceTree}", where:
    • "EN"{0|1} — enabling the target;
    • "ForWork"{0|1} — enabling to build for the Work branch;
    • "ForLTS"{0|1} — enabling to build for generic updates of the LTS branch;
    • "ForLTSServ"{0|1} — enabling to build for service updates of the LTS branch;
    • "OmitSourceTree"{0|1} — omit the source tree download from SVN, mostly for building the Live images.
  • oscadaBuild — for building and placing the result packages and other for the OpenSCADA LTS or Work branches.

Files structure of the automation building system means:

\-- /data/
    |-- oscada/
    |   |-- bin/
    |   |   |-- oscadaBuild
    |   |   |-- oscadaRepBranches
    |   |   |-- oscadaCheck
    |   |   \-- oscadaCheck_WorkAtLTS
    |   |-- 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 GPG singing key for the packages and their repositories 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 automatic building system supports also its distribution at specific environments (for some building types) like to different hardware platforms, instead their CHROOTs sometime. The distribution is performed by moving part of the automatic builder outward by: deploying the bottom file structure only for needed targets, organization for the local file server and scheduling the sync script oscadaSyncFtp on the automatic builder core (say Roman Savochenko for) — main FTP-server.

Currently the automatic 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*, Raspbian*, 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; home.home No Uses Live Build profiles of Debian: live7-32, live7-64, live8-32, live8-64, live9-32, live9-64, live10-32, live10-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_10_{32,64,armhf} -
Debian_10_{32,64,armhf}:rep Work+LTS home.home
Debian_9_{32,64,armhf} -
Debian_9_{32,64,armhf}:rep Work+LTS home.home
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} -
Raspbian, the same Debian but for Raspberry Pi — a very specific ARMv6 environment for the BCM2835 and early chips mostly.
Raspbian_9_armhf Work+LTS pi.home
Raspbian_8_armhf LTS pi.home
Ubuntu
Ubuntu_20.04_{32,64} Work+LTS home.home The 32-bit architecture is some limited and it lacks MariaDB and libphonon4qt5 packages.
Ubuntu_18.04_{32,64} LTS home.home Very new Linux kernel for CHROOT on oscada.org
Ubuntu_16.04_{32,64} LTS oscada.org
Ubuntu_14.04_{32,64} LTS oscada.org
Ubuntu_12.04_{32,64} LTS oscada.org
Ubuntu_11.10_{32,64} -
Ubuntu_10.04_{32,64} -
CentOs
CentOs_8_64:dev Work+LTS+ServLTS home.home
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 LTS oscada.org
Mandriva
Mandriva_2011_{32,64} -
Mandriva_2010_{32,64} -
Nokia
Nokia_800 LTS oscada.org
Nokia_900 LTS oscada.org
Nokia_950 LTS oscada.org
PLC+Embedded
Gen32PLC_ALT6 LTS oscada.org
Gen32PLC_ALT6:rt1 LTS oscada.org
Gen32PLC_ALT5 -
Gen32PLC_ALT5:UI -
LP8x81_ALT6 LTS oscada.org
LP8x81_ALT6:rt1 LTS oscada.org
LP8x81_ALT5 -
LP8x81_ALT5:UI -
SMH2Gi LTS oscada.org
ICP_DAS_LP_ARM -
TionPro270 -
Live
Live_Deb10_{32,64} Work+LTS home.home
Live_Deb9_{32,64} Work+LTS home.home
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 -