Build guide for Layered build

Added step by step guidelines for users to do layered build.

Story: 2007223

Change-Id: I25326cab06dd1fab743a946bfd92c9240f93bb25
Signed-off-by: Poornima <poornima.y.n@intel.com>
This commit is contained in:
Poornima 2020-05-16 02:46:24 +05:30 committed by Mary Camp
parent 8bfe26449b
commit 79a84abac3
4 changed files with 875 additions and 3 deletions

View File

@ -1,6 +1,8 @@
=============
Layered Build
=============
.. _Layered-Build:
=======================
Layered Build Reference
=======================
What is build layering?
-----------------------

View File

@ -9,6 +9,8 @@ R3.0 and earlier release.
:local:
:depth: 1
.. _Requirements:
------------
Requirements
------------
@ -37,6 +39,8 @@ A workstation computer with:
http://lists.starlingx.io/pipermail/starlingx-discuss/2018-July/000136.html for more details)
* Public SSH key
.. _Development-environment-setup:
-----------------------------
Development environment setup
-----------------------------
@ -139,6 +143,8 @@ Install tools project
cd $HOME/tools/
.. _Prepare_the_base_Docker_image:
-----------------------------
Prepare the base Docker image
-----------------------------
@ -208,6 +214,8 @@ The creation of the StarlingX ISO relies on a repository of RPM binaries,
RPM sources, and tar compressed files. This section describes how to build
this CentOS mirror repository.
.. _Run_building_Docker_container:
*****************************
Run building Docker container
*****************************
@ -458,6 +466,8 @@ Build the image:
build-iso
.. _Build-installer:
---------------
Build installer
---------------

View File

@ -9,6 +9,7 @@ Developer Resources
:maxdepth: 1
build_guide
layered_build_guide
Layered_Build
code-submission-guide
navigate_source_code

View File

@ -0,0 +1,859 @@
===================
Layered Build Guide
===================
This section describes the steps for layered build and building an ISO image
from a StarlingX R4.0 release onwards.
For more detailed explanation of layered build, please refer :ref:`Layered-Build`.
.. contents::
:local:
:depth: 1
-------------------
:ref:`Requirements`
-------------------
Layered build has the same requirements as StarlingX R3.0 build.
Click the heading above for details.
------------------------------------
:ref:`Development-environment-setup`
------------------------------------
Layered build uses the same development environment setup as StarlingX R3.0 build.
Click the heading above for details.
--------------------
Build compiler layer
--------------------
*****************************
Prepare the base Docker image
*****************************
Follow :ref:`Prepare_the_base_Docker_image` for creating the base StarlingX
image with changes only in localrc file as below.
Since, we are building compiler layer, create and modify only localrc
file. Make sure to set the project and layer as compiler and user name as
desired. For example:
::
# tbuilder localrc
MYUNAME=<your user name>
PROJECT=compiler
HOST_PREFIX=$HOME/starlingx/workspace
HOST_MIRROR_DIR=$HOME/starlingx/mirror
LAYER=compiler
.. _Build-the-CentOS-mirror-repository-compiler:
**********************************
Build the CentOS mirror repository
**********************************
The creation of the StarlingX ISO relies on a repository of RPM binaries,
RPM sources, and tar compressed files. This section describes how to build
this CentOS mirror repository.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Run building Docker container
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Follow the :ref:`building docker container <Run_building_Docker_container>` for
more details.
At the end of this procedure, you will be inside the Starlingx container.
Quick command summary is as below:
::
cd $HOME/tools/
bash tb.sh env
bash tb.sh run
bash tb.sh exec
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Download source code repositories
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#. Inside the building Docker container, start the internal environment:
::
eval $(ssh-agent)
ssh-add
#. Use the repo tool to create a local clone of the manifest git repository
based on the “master” branch for compiler layer.
::
cd $MY_REPO_ROOT_DIR
repo init -u https://opendev.org/starlingx/manifest -b master -m compiler.xml
#. Synchronize code for compiler layer using command below:
::
repo sync -j`nproc`
~~~~~~~~~~~~~~~~~
Download packages
~~~~~~~~~~~~~~~~~
#. Inside the Docker container, enter the following commands to download
the required packages to populate the CentOS mirror repository:
::
cd $MY_REPO_ROOT_DIR/stx-tools/centos-mirror-tools && bash download_mirror.sh
#. Monitor the download of packages until it is complete. When the download
is complete successfully with no missing packages, the following message appears:
::
step #5: done successfully
sudo rm -rf /tmp/stx_mirror_4d2URF
IMPORTANT: The following 3 files are just bootstrap versions. Based on them, the workable images
for StarlingX could be generated by running "update-pxe-network-installer" command after "build-iso"
- ./output/stx-r1/CentOS/pike/Binary/LiveOS/squashfs.img
- ./output/stx-r1/CentOS/pike/Binary/images/pxeboot/initrd.img
- ./output/stx-r1/CentOS/pike/Binary/images/pxeboot/vmlinuz
Success
***************
Verify packages
***************
#. Verify no missing or failed packages exist:
::
cat logs/*_missing_*.log
cat logs/*_failmoved_*.log
#. In case missing or failed packages do exist, which is usually caused by
network instability (or timeout), you need to download the packages
manually or re-run the download command given in previous step.
Doing so assures you get all RPMs listed in *centos_srpms_3rdparties.lst,
centos_srpms_centos.lst, centos_srpms_centos3rdparties.lst*.
******************
Packages structure
******************
The following is a general overview of the packages structure resulting from
downloading the packages for compiler layer:
::
/localdisk/designer/<user>/<project>/stx-tools/centos-mirror-tools/output
.
└── stx-r1
└── CentOS
└── pike
├── Binary
│   ├── noarch
│   └── x86_64
├── downloads
│   └── puppet
├── layer_build_info
├── layer_image_inc
├── layer_pkg_lists
├── layer_wheels_inc
└── Source
*******************************
Copy CentOS mirror repository
*******************************
Exit from the building Docker container. Run the following commands:
#. Navigate to CentOS mirror directory *mirror/CentOS* under your *starlingx*
workspace directory:
::
cd $HOME/starlingx/mirror/CentOS/
#. Copy the built CentOS mirror repository *$HOME/starlingx/mirror/* workspace
directory. Make sure to insert the <user>:
::
cp -r $HOME/starlingx/workspace/localdisk/designer/<user>/compiler/stx-tools/centos-mirror-tools/output/stx-r1 .
***************************
Create a tarball repository
***************************
#. Enter the StarlingX container using below command:
::
cd $HOME/tools/
./tb.sh exec
#. Copy downloaded CentOS tarballs into StarlingX repo
::
ln -s /import/mirrors/CentOS/stx-r1/CentOS/pike/downloads/ $MY_REPO/stx/
Alternatively, you can run the "populate_downloads.sh" script to copy the
tarballs instead of using a symlink:
::
bash populate_downloads.sh /import/mirrors/CentOS/stx-r1/CentOS/pike/
**************
Build packages
**************
#. **Temporal!** Build-Pkgs Errors. Be prepared to have some missing /
corrupted rpm and tarball packages generated during
:ref:`Build-the-CentOS-mirror-repository-compiler`, which will cause the next step
to fail. If that step does fail, manually download those missing /
corrupted packages.
#. Update the symbolic links:
::
bash generate-cgcs-centos-repo.sh /import/mirrors/CentOS/stx-r1/CentOS/pike/
#. Build the packages:
::
build-pkgs
build-pkgs --installer
------------------
Build distro layer
------------------
.. _Build-the-CentOS-mirror-repository-distro:
**********************************
Build the CentOS mirror repository
**********************************
The creation of the StarlingX ISO relies on a repository of RPM binaries,
RPM sources, and tar compressed files. This section describes how to build
this CentOS mirror repository.
If you were building compiler layer, exit from container and enter the tools
directory using below commands:
::
cd $HOME/tools/
Since, we are building distro layer, modify localrc file. Make sure to set the
project and layer as distro. For example:
::
# tbuilder localrc
MYUNAME=<your user name>
PROJECT=distro
HOST_PREFIX=$HOME/starlingx/workspace
HOST_MIRROR_DIR=$HOME/starlingx/mirror
LAYER=distro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Run building Docker container
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Follow the :ref:`building docker container <Run_building_Docker_container>` for
more details.
At the end of this procedure, you will be inside the Starlingx container.
Quick command summary is as below:
::
cd $HOME/tools/
bash tb.sh env
bash tb.sh run #Need not give, If the container was created earlier.
bash tb.sh exec
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Download source code repositories
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#. Inside the building Docker container, start the internal environment:
::
eval $(ssh-agent)
ssh-add
#. Use the repo tool to create a local clone of the manifest git repository
based on the “master” branch for compiler layer.
::
cd $MY_REPO_ROOT_DIR
repo init -u https://opendev.org/starlingx/manifest -b master -m distro.xml
#. Synchronize code for compiler layer using command below:
::
repo sync -j`nproc`
~~~~~~~~~~~~~~~~~
Download packages
~~~~~~~~~~~~~~~~~
#. Inside the Docker container, enter the following commands to download
the required packages to populate the CentOS mirror repository:
::
cd $MY_REPO_ROOT_DIR/stx-tools/centos-mirror-tools && bash download_mirror.sh
#. Monitor the download of packages until it is complete. When the download
is complete, the following message appears:
::
step #5: done successfully
sudo rm -rf /tmp/stx_mirror_UIQ675
IMPORTANT: The following 3 files are just bootstrap versions. Based on them, the workable images
for StarlingX could be generated by running "update-pxe-network-installer" command after "build-iso"
- ./output/stx-r1/CentOS/pike/Binary/LiveOS/squashfs.img
- ./output/stx-r1/CentOS/pike/Binary/images/pxeboot/initrd.img
- ./output/stx-r1/CentOS/pike/Binary/images/pxeboot/vmlinuz
Success
***************
Verify packages
***************
#. Verify no missing or failed packages exist:
::
cat logs/*_missing_*.log
cat logs/*_failmoved_*.log
#. In case missing or failed packages do exist, which is usually caused by
network instability (or timeout), you need to download the packages
manually.
Doing so assures you get all RPMs listed in *centos_srpms_3rdparties.lst,
centos_srpms_centos.lst, centos_srpms_centos3rdparties.lst*.
******************
Packages structure
******************
The following is a general overview of the packages structure resulting from
downloading the packages for distro layer:
::
/localdisk/designer/<user>/distro/stx-tools/centos-mirror-tools/output
.
└── stx-r1
└── CentOS
└── pike
├── Binary
│   ├── EFI
│   │   └── BOOT
│   │   └── fonts
│   ├── images
│   │   └── pxeboot
│   ├── isolinux
│   ├── LiveOS
│   ├── noarch
│   └── x86_64
├── downloads
│   └── puppet
│   └── packstack
│   └── puppet
│   └── modules
├── layer_build_info
├── layer_image_inc
├── layer_pkg_lists
├── layer_repos
│   └── compiler
│   └── std
│   ├── repodata
│   └── repodata.upstream
├── layer_wheels_inc
└── Source
*******************************
Copy CentOS mirror repository
*******************************
Exit from the building Docker container. Run the following commands:
#. Navigate to CentOS mirror directory *mirror/CentOS* under your *starlingx*
workspace directory:
::
cd $HOME/starlingx/mirror/CentOS/
#. Copy the built CentOS mirror repository *$HOME/starlingx/mirror/* workspace
directory. Make sure to insert the <user>:
::
cp -r $HOME/starlingx/workspace/localdisk/designer/<user>/distro/stx-tools/centos-mirror-tools/output/stx-r1 .
***************************
Create a tarball repository
***************************
#. Enter the StarlingX container using below command:
::
cd $HOME/tools/
./tb.sh exec
#. Copy downloaded CentOS tarballs into StarlingX repo
::
ln -s /import/mirrors/CentOS/stx-r1/CentOS/pike/downloads/ $MY_REPO/stx/
Alternatively, you can run the "populate_downloads.sh" script to copy the
tarballs instead of using a symlink:
::
populate_downloads.sh /import/mirrors/CentOS/stx-r1/CentOS/pike/
**************
Build packages
**************
#. **Temporal!** Build-Pkgs Errors. Be prepared to have some missing /
corrupted rpm and tarball packages generated during
:ref:`Build-the-CentOS-mirror-repository-distro`, which will cause the next step
to fail. If that step does fail, manually download those missing /
corrupted packages.
#. Update the symbolic links:
::
bash generate-cgcs-centos-repo.sh /import/mirrors/CentOS/stx-r1/CentOS/pike/
This step creates the repo directory, following is the output on the console
for a successful repo directory creation for the <user> stx:
::
Copying comps.xml file.
Createing yum repodata.
Directory walk started
Directory walk done - 51 packages
Temporary output repo path: /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Source/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
Directory walk started
Directory walk done - 0 packages
Temporary output repo path: /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/rt/Source/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
Directory walk started
Directory walk done - 1450 packages
Temporary output repo path: /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
Directory walk started
Directory walk done - 0 packages
Temporary output repo path: /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/rt/Binary/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
Copying mock.cfg.proto file.
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/EFI/BOOT/BOOTX64.EFI
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/EFI/BOOT/fonts/unicode.pf2
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/EFI/BOOT/grub.cfg
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/EFI/BOOT/grubx64.efi
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/images/efiboot.img
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/images/pxeboot/initrd.img
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/images/pxeboot/vmlinuz
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/isolinux/boot.msg
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/isolinux/grub.conf
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/isolinux/initrd.img
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/isolinux/isolinux.bin
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/isolinux/isolinux.cfg
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/isolinux/memtest
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/isolinux/splash.png
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/isolinux/vesamenu.c32
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/isolinux/vmlinuz
Creating symlink for /localdisk/designer/stx/distro/cgcs-root/cgcs-centos-repo/Binary/LiveOS/squashfs.img
Creating folder EFI
Creating folder EFI/BOOT
Creating folder EFI/BOOT/fonts
Creating folder images
Creating folder images/pxeboot
Creating folder isolinux
Creating folder LiveOS
Done creating repo directory
#. Build the packages:
::
build-pkgs
build-pkgs --installer
-----------------
Build flock layer
-----------------
.. _Build-the-CentOS-mirror-repository-flock:
**********************************
Build the CentOS mirror repository
**********************************
The creation of the StarlingX ISO relies on a repository of RPM binaries,
RPM sources, and tar compressed files. This section describes how to build
this CentOS mirror repository.
If you were building distro layer, exit from container and enter the tools
directory using below commands:
::
cd $HOME/tools/
Since, we are building flock layer, modify localrc file. Make sure to set the
project and layer as flock. For example:
::
# tbuilder localrc
MYUNAME=<your user name>
PROJECT=flock
HOST_PREFIX=$HOME/starlingx/workspace
HOST_MIRROR_DIR=$HOME/starlingx/mirror
LAYER=flock
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Run building Docker container
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Follow the :ref:`building docker container <Run_building_Docker_container>` for
more details.
At the end of this procedure, you will be inside the Starlingx container.
Quick command summary is as below:
::
cd $HOME/tools/
bash tb.sh env
bash tb.sh run #Need not give, If the container was created earlier.
bash tb.sh exec
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Download source code repositories
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#. Inside the building Docker container, start the internal environment:
::
eval $(ssh-agent)
ssh-add
#. Use the repo tool to create a local clone of the manifest git repository
based on the “master” branch for flock layer.
::
cd $MY_REPO_ROOT_DIR
repo init -u https://opendev.org/starlingx/manifest -b master -m flock.xml
#. Synchronize code for compiler layer using command below:
::
repo sync -j`nproc`
~~~~~~~~~~~~~~~~~
Download packages
~~~~~~~~~~~~~~~~~
#. Inside the Docker container, enter the following commands to download
the required packages to populate the CentOS mirror repository:
::
cd $MY_REPO_ROOT_DIR/stx-tools/centos-mirror-tools && bash download_mirror.sh
#. Monitor the download of packages until it is complete. When the download
is complete, the following message appears:
::
step #5: done successfully
sudo rm -rf /tmp/stx_mirror_ievdiA
IMPORTANT: The following 3 files are just bootstrap versions. Based
on them, the workable images for StarlingX could be generated by
running "update-pxe-network-installer" command after "build-iso"
- ./output/stx-r1/CentOS/pike/Binary/LiveOS/squashfs.img
- ./output/stx-r1/CentOS/pike/Binary/images/pxeboot/initrd.img
- ./output/stx-r1/CentOS/pike/Binary/images/pxeboot/vmlinuz
***************
Verify packages
***************
When the download is not successful, the following message appears:
::
IMPORTANT: The following 3 files are just bootstrap versions. Based
on them, the workable images for StarlingX could be generated by
running "update-pxe-network-installer" command after "build-iso"
- ./output/stx-r1/CentOS/pike/Binary/LiveOS/squashfs.img
- ./output/stx-r1/CentOS/pike/Binary/images/pxeboot/initrd.img
- ./output/stx-r1/CentOS/pike/Binary/images/pxeboot/vmlinuz
Warning: Not all download steps succeeded. You are likely missing files.
You can verify and list missing or failed packages using below command:
::
cat logs/*_missing_*.log
cat logs/*_failmoved_*.log
In case missing or failed packages do exist, which is usually caused by
network instability (or timeout), you need to download the packages
manually.
Doing so assures you get all RPMs listed in *centos_srpms_3rdparties.lst,
centos_srpms_centos.lst, centos_srpms_centos3rdparties.lst*.
******************
Packages structure
******************
The following is a general overview of the packages structure resulting from
downloading the packages for flock layer:
::
/localdisk/designer/<user>/flock/stx-tools/centos-mirror-tools/output
└── stx-r1
└── CentOS
└── pike
├── Binary
│   ├── EFI
│   │   └── BOOT
│   │   └── fonts
│   ├── images
│   │   └── pxeboot
│   ├── isolinux
│   ├── LiveOS
│   ├── noarch
│   └── x86_64
├── downloads
│   └── puppet
├── layer_build_info
├── layer_image_inc
├── layer_pkg_lists
├── layer_repos
│   ├── compiler
│   │   └── std
│   │   ├── repodata
│   │   └── repodata.upstream
│   └── distro
│   ├── installer
│   │   ├── repodata
│   │   └── repodata.upstream
│   ├── rt
│   │   ├── repodata
│   │   └── repodata.upstream
│   └── std
│   ├── repodata
│   └── repodata.upstream
├── layer_wheels_inc
└── Source
*******************************
Copy CentOS mirror repository
*******************************
Exit from the building Docker container. Run the following commands:
#. Navigate to CentOS mirror directory *mirror/CentOS* under your *starlingx*
workspace directory:
::
cd $HOME/starlingx/mirror/CentOS/
#. Copy the built CentOS mirror repository *$HOME/starlingx/mirror/*
workspace directory:
::
cp -r $HOME/starlingx/workspace/localdisk/designer/<user>/flock/stx-tools/centos-mirror-tools/output/stx-r1 .
***************************
Create a tarball repository
***************************
#. Enter the StarlingX container using below command:
::
cd $HOME/tools/
./tb.sh exec
#. Copy downloaded CentOS tarballs into StarlingX repo
::
ln -s /import/mirrors/CentOS/stx-r1/CentOS/pike/downloads/ $MY_REPO/stx/
Alternatively, you can run the "populate_downloads.sh" script to copy the
tarballs instead of using a symlink:
::
populate_downloads.sh /import/mirrors/CentOS/stx-r1/CentOS/pike/
#. Exit from the container. On the host machine, create mirror binaries:
::
mkdir -p $HOME/starlingx/mirror/CentOS/stx-installer
cp $HOME/starlingx/mirror/CentOS/stx-r1/CentOS/pike/Binary/images/pxeboot/initrd.img $HOME/starlingx/mirror/CentOS/stx-installer/initrd.img
cp $HOME/starlingx/mirror/CentOS/stx-r1/CentOS/pike/Binary/images/pxeboot/vmlinuz $HOME/starlingx/mirror/CentOS/stx-installer/vmlinuz
cp $HOME/starlingx/mirror/CentOS/stx-r1/CentOS/pike/Binary/LiveOS/squashfs.img $HOME/starlingx/mirror/CentOS/stx-installer/squashfs.img
**************
Build packages
**************
#. Enter the StarlingX container using below command:
::
cd $HOME/tools/
./tb.sh exec
#. **Temporal!** Build-Pkgs Errors. Be prepared to have some missing /
corrupted rpm and tarball packages generated during
:ref:`Build-the-CentOS-mirror-repository-flock`, which will cause the next step
to fail. If that step does fail, manually download those missing /
corrupted packages.
#. Update the symbolic links:
::
bash generate-cgcs-centos-repo.sh /import/mirrors/CentOS/stx-r1/CentOS/pike/
Following is the output:
::
Copying comps.xml file.
Createing yum repodata.
Directory walk started
Directory walk done - 1 packages
Temporary output repo path: /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Source/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
Directory walk started
Directory walk done - 0 packages
Temporary output repo path: /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/rt/Source/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
Directory walk started
Directory walk done - 1892 packages
Temporary output repo path: /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
Directory walk started
Directory walk done - 40 packages
Temporary output repo path: /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/rt/Binary/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
Copying mock.cfg.proto file.
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/EFI/BOOT/BOOTX64.EFI
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/EFI/BOOT/fonts/unicode.pf2
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/EFI/BOOT/grub.cfg
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/EFI/BOOT/grubx64.efi
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/images/efiboot.img
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/images/pxeboot/initrd.img
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/images/pxeboot/vmlinuz
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/isolinux/boot.msg
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/isolinux/grub.conf
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/isolinux/initrd.img
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/isolinux/isolinux.bin
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/isolinux/isolinux.cfg
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/isolinux/memtest
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/isolinux/splash.png
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/isolinux/vesamenu.c32
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/isolinux/vmlinuz
Creating symlink for /localdisk/designer/stx/flock/cgcs-root/cgcs-centos-repo/Binary/LiveOS/squashfs.img
Creating folder EFI
Creating folder EFI/BOOT
Creating folder EFI/BOOT/fonts
Creating folder images
Creating folder images/pxeboot
Creating folder isolinux
Creating folder LiveOS
Done creating repo directory
#. Build the packages:
::
build-pkgs
-------------------
Build StarlingX ISO
-------------------
Build the image:
::
build-iso
----------------------
:ref:`Build-installer`
----------------------
Layered build has the same procedure for build installer as StarlingX R3.0 build
except for the changes in path of files as below. Click the heading above for details.
#. The steps covered by the script **update-pxe-network-installer** is detailed in
$MY_REPO/stx/stx-metal/installer/initrd/README. This script creates three files on
/localdisk/loadbuild/stx/flock/pxe-network-installer/output.
#. The path for **build_srpm.data** is $MY_REPO/stx/metal/installer/pxe-network-installer/centos/.