[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fedora-devel-list
Subject:    RE: [Question] how to make Fedora linux os ?
From:       "Miao, Jun" <jun.miao () intel ! com>
Date:       2023-07-28 0:55:38
Message-ID: DM6PR11MB47394FD2ADCB114135F2EB029A06A () DM6PR11MB4739 ! namprd11 ! prod ! outlook ! com
[Download RAW message or body]

[Attachment #2 (text/plain)]

Many kinds to me.
Although I just maintain a few of small packages and only have a curiosity to this \
tools suddenly,  I got so many people serious answers. Thanks again.


Warm regards
Jun Miao

From: Stephen Smoogen <ssmoogen@redhat.com>
Sent: Monday, July 17, 2023 7:21 PM
To: Development discussions related to Fedora <devel@lists.fedoraproject.org>
Cc: Miao, Jun <jun.miao@intel.com>
Subject: Re: [Question] how to make Fedora linux os ?



On Thu, 13 Jul 2023 at 21:45, Miao, Jun \
<jun.miao@intel.com<mailto:jun.miao@intel.com>> wrote: Hi Guys,

AFAIK, the Yocto Project is an open source collaboration project that provides tools, \
templates, and methods to help developers create custom Linux-based systems for \
embedded devices.

My confusion is that:

  1.  what`s the tool to make our Fedora Linux 38 released like Yocto?
  2.  And Centos ?
  3.  And Ubuntu ?



I believe the Yocto system is based on a similar system as Gentoo. It was chosen \
because most embedded teams at the time were fairly small (maybe 1-2 engineers per \
'board') and setting up a multi-system pipeline was too much for getting a system \
which may only have a 'lifetime' of 1-2 years with a large amount of NDAs and other \
legal entanglements involved. It also came with the advantage that one could pick and \
choose layers to change overall design so a basic chipset could be found in a camera, \
phone, or washing machine but have different additions/subtractions done to make it \
work for each. As teams got larger, the tooling has become more complex so you can \
stand up dedicated build clusters and such but in general, a developer can figure out \
what will make something work themselves without bothering other developers.

My outsider look at Yocto OS development seems to have developers either focusing on \
specific problem sets: 'make this work on a refrigerator with this much \
memory/cpu/storage and these applications' or an overall 'layer' solution: 'Legal \
says no GPLv3 so please make sure none of them are included in an image' or 'we need \
to have one image with debug symbols and this debugger, and this image without', etc.

One problem with this style of development is that you can easily end up with 2 \
developers working on the same board but having chosen completely different \
optimizations and compile time choices that applications and libraries can not easily \
mix between the two.

The other operating systems you are looking at is aimed at a different problem where \
how do you get a large number of developers who may only focus on one bit be able to \
work with each other in a smooth as much manner. This means that the system is less \
about building the entire operating system in one location but more about makings \
sure that 400 developers can build stuff which will work together. This means that a \
developer builds only items which are for testing and developer, and then pushes \
changes to a central system which will attempt to rebuild things using choices \
(compiler options, disk layout, etc) set by either a Fedora Engineering Steering \
Committee decision or general agreement by the main maintainer of a subsystem.

The Fedora and CentOS build systems are fairly complicated with about 70 to 100 \
interrelated applications from when a developer does a build to when someone can \
download a finished package on a mirror. I have tried writing out a 'map' like a \
subway system but I usually get lost somewhere in the middle.  The general solution \
is something like

[fedpkg] -> [Fedora Builders and Source Control] -> [Fedora QA] -> [Fedora Image \
Making (iso/containers/etc)] -> [Mirroring System] -> [User]

The above 'loses' a lot of granular tools in that set of items with various message \
buses, various side tools, etc.  The lost granularity covers various attempts to deal \
with concurrency problems where group A is updating the entire python stack while \
group B is still building updates based on the old stack.  Group A's work may take \
weeks so stopping group B during that time could lead to security issues. [There are \
many other concurrency which the community has found over the years but that was the \
first one which came to mind.]

--
Stephen Smoogen, Red Hat Automotive
Let us be kind to one another, for most of us are fighting a hard battle. -- Ian \
MacClaren


[Attachment #3 (text/html)]

<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)">
<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:等线;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"IntelOne Text";
	panose-1:2 11 5 3 2 2 3 2 2 4;}
@font-face
	{font-family:"\@等线";
	panose-1:2 1 6 0 3 1 1 1 1 1;}
/* 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;}
p.m-8559974267119936296msolistparagraph, li.m-8559974267119936296msolistparagraph, \
div.m-8559974267119936296msolistparagraph  \
{mso-style-name:m_-8559974267119936296msolistparagraph;  mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.m-8559974267119936296hgkelc
	{mso-style-name:m_-8559974267119936296hgkelc;}
span.gmailsignatureprefix
	{mso-style-name:gmail_signature_prefix;}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.rynqvb
	{mso-style-name:rynqvb;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;
	font-family:"Calibri",sans-serif;
	mso-ligatures:none;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:381834166;
	mso-list-template-ids:1467939742;}
@list l0:level1
	{mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1
	{mso-list-id:1677342429;
	mso-list-template-ids:-25545842;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></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">Many kinds to me.<o:p></o:p></p>
<p class="MsoNormal"><span class="rynqvb"><span lang="EN">Although I just maintain a \
few of small packages and only have a curiosity to this tools suddenly, &nbsp;I got \
so many people serious answers.<o:p></o:p></span></span></p> <p \
class="MsoNormal"><span class="rynqvb"><span lang="EN">Thanks \
again.<o:p></o:p></span></span></p> <p class="MsoNormal"><span \
lang="EN"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><b><span \
style="font-size:10.5pt;font-family:&quot;IntelOne \
Text&quot;,sans-serif;color:black"><o:p>&nbsp;</o:p></span></b></p> <p \
class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;IntelOne \
Text&quot;,sans-serif;color:black">Warm regards<o:p></o:p></span></p> <p \
class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;IntelOne \
Text&quot;,sans-serif;color:black">Jun Miao</span><span \
style="font-size:10.0pt;color:black"><o:p></o:p></span></p> <p \
class="MsoNormal"><o:p>&nbsp;</o:p></p> <div style="border:none;border-top:solid \
#E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in"> <p class="MsoNormal"><b>From:</b> Stephen \
Smoogen &lt;ssmoogen@redhat.com&gt; <br> <b>Sent:</b> Monday, July 17, 2023 7:21 \
PM<br> <b>To:</b> Development discussions related to Fedora \
&lt;devel@lists.fedoraproject.org&gt;<br> <b>Cc:</b> Miao, Jun \
&lt;jun.miao@intel.com&gt;<br> <b>Subject:</b> Re: [Question] how to make Fedora \
linux os ?<o:p></o:p></p> </div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div>
<p class="MsoNormal">On Thu, 13 Jul 2023 at 21:45, Miao, Jun &lt;<a \
href="mailto:jun.miao@intel.com">jun.miao@intel.com</a>&gt; wrote:<o:p></o:p></p> \
</div> <blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in \
0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt"> \
<div> <div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span \
style="font-size:10.0pt;font-family:&quot;IntelOne \
Text&quot;,sans-serif;color:black">Hi Guys,</span><o:p></o:p></p> <p \
class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span \
style="font-size:10.0pt;font-family:&quot;IntelOne \
Text&quot;,sans-serif">&nbsp;</span><o:p></o:p></p> <p class="MsoNormal" \
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span \
class="m-8559974267119936296hgkelc"><span lang="EN">AFAIK, the Yocto Project is an \
open source collaboration project that provides tools, templates, and methods to help \
developers  create custom Linux-based systems for embedded \
devices.</span></span><o:p></o:p></p> <p class="MsoNormal" \
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span \
class="m-8559974267119936296hgkelc"><span \
lang="EN">&nbsp;</span></span><o:p></o:p></p> <p class="MsoNormal" \
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span \
class="m-8559974267119936296hgkelc"><span lang="EN">My confusion is \
that:</span></span><o:p></o:p></p> <ol start="1" type="1">
<li class="m-8559974267119936296msolistparagraph" style="mso-list:l0 level1 lfo3">
<span class="m-8559974267119936296hgkelc"><span lang="EN">what`s the tool to make our \
Fedora Linux 38 released like Yocto?</span></span><o:p></o:p></li><li \
class="m-8559974267119936296msolistparagraph" style="mso-list:l0 level1 lfo3"> <span \
class="m-8559974267119936296hgkelc"><span lang="EN">And Centos \
?</span></span><o:p></o:p></li><li class="m-8559974267119936296msolistparagraph" \
style="mso-list:l0 level1 lfo3"> <span class="m-8559974267119936296hgkelc"><span \
lang="EN">And Ubuntu ?</span></span><o:p></o:p></li></ol> <p class="MsoNormal" \
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">&nbsp;<o:p></o:p></p> <p \
class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span \
style="font-size:10.5pt;font-family:&quot;IntelOne \
Text&quot;,sans-serif;color:black">&nbsp;</span></b><o:p></o:p></p> </div>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">I believe the Yocto system is based on a similar system as \
Gentoo. It was chosen because most embedded teams at the time were fairly small \
(maybe 1-2 engineers per 'board') and setting up a multi-system pipeline was too much \
for getting  a system which may only have a 'lifetime' of 1-2 years with a large \
amount of NDAs and other legal entanglements involved. It also came with the \
advantage that one could pick and choose layers to change overall design so a basic \
chipset could be found in a  camera, phone, or washing machine but have different \
additions/subtractions done to make it work for each. As teams got larger, the \
tooling has become more complex so you can stand up dedicated build clusters and such \
but in general, a developer can figure  out what will make something work themselves \
without bothering other developers.<o:p></o:p></p> </div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">My outsider look at Yocto OS development seems to have \
developers either focusing on specific problem sets: 'make this work on a \
refrigerator with this much memory/cpu/storage and these applications' or an overall \
'layer' solution: 'Legal  says no GPLv3 so please make sure none of them are included \
in an image' or 'we need to have one image with debug symbols and this debugger, and \
this image without', etc.<o:p></o:p></p> </div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">One problem with this style of development is that you can \
easily end up with 2 developers working on the same board but having chosen \
completely different optimizations and compile time choices that applications and \
libraries can not easily  mix between the two.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">The other operating systems you are looking at is aimed at a \
different problem where how do you get a large number of developers who may only \
focus on one bit be able to work with each other in a smooth as much manner. This \
means that the  system is less about building the entire operating system in one \
location but more about makings sure that 400 developers can build stuff which will \
work together. This means that a developer builds only items which are for testing \
and developer, and then  pushes changes to a central system which will attempt to \
rebuild things using choices (compiler options, disk layout, etc) set by either a \
Fedora Engineering Steering Committee decision or general agreement by the main \
maintainer of a subsystem.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">The Fedora and CentOS build systems are fairly complicated with \
about 70 to 100 interrelated applications from when a developer does a build to when \
someone can download a finished package on a mirror. I have tried writing out a 'map' \
like  a subway system but I usually get lost somewhere in the middle.&nbsp; The \
general solution is something like<o:p></o:p></p> </div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">[fedpkg] -&gt; [Fedora Builders and Source Control] -&gt; \
[Fedora QA] -&gt; [Fedora Image Making (iso/containers/etc)] -&gt; [Mirroring System] \
-&gt; [User]<o:p></o:p></p> </div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">The above 'loses' a lot of granular tools in that set of items \
with various message buses, various side tools, etc.&nbsp; The lost granularity \
covers various attempts to deal with concurrency problems where group A is updating \
the entire python  stack while group B is still building updates based on the old \
stack.&nbsp; Group A's work may take weeks so stopping group B during that time could \
lead to security issues. [There are many other concurrency which the community has \
found over the years but that  was the first one which came to mind.]<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<p class="MsoNormal"><span class="gmailsignatureprefix">-- </span><o:p></o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">Stephen Smoogen, Red Hat Automotive<o:p></o:p></p>
</div>
<p class="MsoNormal">Let us be kind to one another, for most of us are fighting a \
hard battle. -- Ian MacClaren<o:p></o:p></p> </div>
</div>
</div>
</div>
</body>
</html>


[Attachment #4 (unknown)]

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic