323a9d45b7
This change add option '--name' to the patch builder script allowing user to select the desired file name for the patch file. If the 'name' option is not provided, file name will default to patch id from the recipe. Test plan: PASS: Build patch with --name option e.g: python3 patch_builder --recipe recipe.xml --name filename.patch PASS: Build patch without --name option e.g: python3 patch_builder --recipe recipe.xml Story: 2010676 Task: 49858 Change-Id: Ia9b936d44ef83e6ff3d9561b22ae045fb2891f33 Signed-off-by: Dostoievski Batista <dostoievski.albinobatista@windriver.com> |
||
---|---|---|
.. | ||
EXAMPLES | ||
config | ||
scripts | ||
signing | ||
README.md | ||
fetch_debs.py | ||
metadata.py | ||
patch_builder.py | ||
requirements.txt |
README.md
Patch Builder Utility
This utility will build patches based on .deb packages.
Pre reqs
- Setup a build environment and build all packages/image
- Make code changes to your packages and build them
Patch recipe schema
The patch builder requires the following tags in the input xml (or patch recipe)
<patch_recipe>
<!-- Software Version -->
<sw_version>1.0.0</sw_version>
<!-- Component -->
<component>starlingx</component>
<!-- Summary: Short text to give a summary about the patch -->
<summary>sample patch test</summary>
<!-- Description: Patch description. Usually it has a list of fixes -->
<description>Sample description</description>
<!-- Install Instructions: Any instructions to be done before the patch installation -->
<install_instructions>Sample instructions</install_instructions>
<!-- Warnings: Any warnings that this patch can trigger -->
<warnings>Sample warning</warnings>
<!-- Reboot required: Y (Yes) or N (No) for in service patch -->
<reboot_required>Y</reboot_required>
<!-- Unremovable: Y (Yes)/ N (No), specifices if the patch can be removed -->
<unremovable>N</unremovable>
<!-- Patch Status: Supported values are DEV (development) and REL (released) -->
<status>DEV</status>
<!-- Requires: List of patches that are required by this patch -->
<requires>
<!--
<id>PATCH_XYZ_01</id>
<id>PATCH_XYZ_02</id>
-->
</requires>
<semantics></semantics>
<!--
Pre and Post install hook scripts that are executed before/after patch installation.
Leave if blank if no scripts are required.
-->
<pre_install>scripts/pre-install.sh</pre_install>
<post_install>scripts/post-install.sh</post_install>
<!-- List Packages to be included in the patch -->
<stx_packages>
<!-- Starlingx packages list -->
<package>sysvinv</package>
<package>linux</package>
<package>linux-rt</package>
</stx_packages>
<!-- Binary packages list to be included in the patch (Packages that we download from 3rd party sources) -->
<binary_packages>
<!-- 3rd party packages list -->
<package>curl</package>
</binary_packages>
</patch_recipe>
How to build a patch
- Enter the builder container
$ stx shell
$ cd $MY_REPO/build-tools/stx/patch
- Install py requirements
$ pip install -r requirements.txt
-
Update the patch-recipe file. For examples please refer to the
EXAMPLES
folder. -
Update any pre/post script. For examples check refer to the
scripts
folder. -
Build your patch:
$ ./patch_builder.py --recipe EXAMPLES\patch-recipe-sample.xml