<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:-apple-system;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">With StarlingX, the way to add an rpm to the platform is through a patch.<o:p></o:p></p>
<p class="MsoNormal">Within the StarlingX patching system it will install the rpm, and will prevent it from being removed by a reboot.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">There is a video from the Open Infrastructure Foundation that shows an example of creating your own patch to allow an rpm to be installed.  It uses the patch_build.sh command<o:p></o:p></p>
<p class="MsoNormal"><a href="https://www.youtube.com/watch?v=vwqhxpgaxXE">https://www.youtube.com/watch?v=vwqhxpgaxXE</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">For example, if I wanted to add an RPM for pyflame  my patch_build.sh   syntax would look something like this:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><i># Run this script from within $MY_WORKSPACE<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>PATH=$MY_REPO/stx/update/extras/scripts:$PATH<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>PATCH_ID=PYFLAME<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>DIR=std/rpmbuild/RPMS<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>PYFLAME=pyflame-1.6.6-4.el7.tis.1.x86_64.rpm<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i><o:p> </o:p></i></b></p>
<p class="MsoNormal"><b><i>patch_build.sh \<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>--id ${PATCH_ID} \<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>--reboot-required=Y \<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>--summary "New pyflame rpm " \<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>--desc "Adds a new pyflame rpm "\<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>--controller ${DIR}/${PYFLAME} \<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>--controller-worker ${DIR}/${PYFLAME} \<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>--controller-worker-lowlatency ${DIR}/${PYFLAME}<o:p></o:p></i></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Be aware that in this example,  I am ‘adding’ an rpm  rather than updating one, so I needed to include special fields<o:p></o:p></p>
<p class="MsoNormal">(--controller ,  --controller-worker ,  --controller-worker-lowlatency ) so that the platform knows that the rpm belongs on controller and AIO hosts (and in this example it will not install it on worker or storage nodes)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The video (and my example) assume you have a development environment setup with your variables, etc..  already defined.  If that is not the case, you may need to ensure you have the starlingx/update repo checked out and make the appropriate
 changes to the commands.   <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Al<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> LiuYongfu <114769003@qq.com> <br>
<b>Sent:</b> Saturday, February 11, 2023 5:52 AM<br>
<b>To:</b> starlingx-discuss <starlingx-discuss@lists.starlingx.io><br>
<b>Subject:</b> [Starlingx-discuss] how to install my own rpm<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:solid #9C6500 1.0pt;padding:2.0pt 2.0pt 2.0pt 2.0pt">
<p class="MsoNormal" style="background:#FCFC03"><b><span style="color:black">CAUTION: This email comes from a non Wind River email account!</span></b><span style="color:black"><br>
</span><span style="font-size:10.0pt;color:black">Do not click links or open attachments unless you recognize the sender and know the content is safe.</span><o:p></o:p></p>
</div>
<div>
<div>
<div>
<p style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white">
<span style="font-size:9.0pt;font-family:"Courier New";color:#333333">Brief Description<br>
-----------------<o:p></o:p></span></p>
<p style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white">
<span style="font-size:9.0pt;font-family:"Courier New";color:#333333">when I install my private(own) rpm to the compute node. when the node is restarted .my private rpm is deleted.<br>
so I want to know : are there some ways to install my own rpm on compute nodes or is it just a bug?<o:p></o:p></span></p>
<p style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white">
<span style="font-size:9.0pt;font-family:"Courier New";color:#333333">Steps to Reproduce<br>
------------------<br>
I installed my GPU rpm packages on the compute node,and it worked right.<o:p></o:p></span></p>
<p style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white">
<span style="font-size:9.0pt;font-family:"Courier New";color:#333333">Expected Behavior<br>
------------------<o:p></o:p></span></p>
<p style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white">
<span style="font-size:9.0pt;font-family:"Courier New";color:#333333">the rpm packages works correctly all the time.<o:p></o:p></span></p>
<p style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:.2in;margin-left:0in;background:white">
<span style="font-size:9.0pt;font-family:"Courier New";color:#333333">Actual Behavior<br>
when reboot the compute nodes .my gpu rpm packages are removed by the system.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:-apple-system;color:#2E3033"><br>
thanks very much.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.5pt;font-family:-apple-system;color:#2E3033"><br>
<br>
<o:p></o:p></span></p>
</div>
<div>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="40" valign="top" style="width:30.0pt;padding:7.5pt 15.0pt 0in 0in">
<div style="border:solid white 1.0pt;padding:0in 0in 0in 0in;border-radius:50%;box-shadow: 0 0 10px 0 rgba(127,152,178,0.14)">
<p class="MsoNormal" style="vertical-align:top"><span style="border:solid windowtext 1.0pt;padding:0in"><img border="0" width="100" height="100" style="width:1.0416in;height:1.0416in" id="Picture_x0020_1" src="cid:~WRD0000.jpg" alt="Image removed by sender."></span><o:p></o:p></p>
</div>
</td>
<td valign="top" style="padding:7.5pt 0in 6.0pt 7.5pt">
<div>
<p class="MsoNormal" style="line-height:15.0pt"><span style="font-size:10.5pt;color:#33312E">LiuYongfu<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="line-height:13.5pt"><span style="font-size:9.0pt;color:#999896">114769003@qq.com<o:p></o:p></span></p>
</div>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>