* Incremental target images @ 2018-08-27 6:41 Jan Kiszka 2018-08-27 7:25 ` Claudius Heine 0 siblings, 1 reply; 6+ messages in thread From: Jan Kiszka @ 2018-08-27 6:41 UTC (permalink / raw) To: isar-users Hi all, I was wondering if / how we could model the increasingly common case of building very similar target images more efficiently. A devel image, e.g., likely consists of almost the same base package set as the release image. It may only add further packages and maybe replace very few (like customization packages). When building both, we could save time - specifically when doing cross - by bootstrapping the baseline only once. We already do that for the debootstrap step, but not yet for further packages. What do you think? And how could that be modeled from user perspective? Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Incremental target images 2018-08-27 6:41 Incremental target images Jan Kiszka @ 2018-08-27 7:25 ` Claudius Heine 2018-08-27 7:44 ` Claudius Heine 0 siblings, 1 reply; 6+ messages in thread From: Claudius Heine @ 2018-08-27 7:25 UTC (permalink / raw) To: [ext] Jan Kiszka, isar-users Hi Jan, On 2018-08-27 08:41, [ext] Jan Kiszka wrote: > Hi all, > > I was wondering if / how we could model the increasingly common case of > building very similar target images more efficiently. > > A devel image, e.g., likely consists of almost the same base package set > as the release image. It may only add further packages and maybe replace > very few (like customization packages). When building both, we could > save time - specifically when doing cross - by bootstrapping the > baseline only once. We already do that for the debootstrap step, but not > yet for further packages. > > What do you think? And how could that be modeled from user perspective? That is not very easy. A complex way this could be done by having a `common image` recipe that depends on other image recipes to deploy their required package list, then figure out the common dependencies of all of them and build the custom image. Then those other image recipes depend of the `common image` recipe in turn to create it, copy it and base their own customizations on top. From a user perspective they would have to add their image recipes into a global variable or bbappend, so that is available in the `common image` recipe. The rest could be done in the image classes. Cheers, Claudius -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Incremental target images 2018-08-27 7:25 ` Claudius Heine @ 2018-08-27 7:44 ` Claudius Heine 2018-08-27 8:29 ` Jan Kiszka 0 siblings, 1 reply; 6+ messages in thread From: Claudius Heine @ 2018-08-27 7:44 UTC (permalink / raw) To: [ext] Jan Kiszka, isar-users On 2018-08-27 09:25, [ext] Claudius Heine wrote: > Hi Jan, > > On 2018-08-27 08:41, [ext] Jan Kiszka wrote: >> Hi all, >> >> I was wondering if / how we could model the increasingly common case >> of building very similar target images more efficiently. >> >> A devel image, e.g., likely consists of almost the same base package >> set as the release image. It may only add further packages and maybe >> replace very few (like customization packages). When building both, we >> could save time - specifically when doing cross - by bootstrapping the >> baseline only once. We already do that for the debootstrap step, but >> not yet for further packages. >> >> What do you think? And how could that be modeled from user perspective? > > That is not very easy. > > A complex way this could be done by having a `common image` recipe that > depends on other image recipes to deploy their required package list, What I meant by that is each image recipe writes its package list into its own text file in the 'deploy' directory. > then figure out the common dependencies of all of them and build the > custom image. s/custom/common/ Problem scenario here is: Image A: depends on A which depends on D Image B: depends on B which depends on D Since D is not named in any recipes, but should be installed in the `common image` as automatically selected package (not as manual). This scripting is a bit tricky. > Then those other image recipes depend of the `common > image` recipe in turn to create it, copy it and base their own > customizations on top. > > From a user perspective they would have to add their image recipes into > a global variable or bbappend, so that is available in the `common > image` recipe. The rest could be done in the image classes. > > Cheers, > Claudius -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Incremental target images 2018-08-27 7:44 ` Claudius Heine @ 2018-08-27 8:29 ` Jan Kiszka 2018-08-27 8:52 ` Claudius Heine 2018-08-27 13:48 ` chombourger 0 siblings, 2 replies; 6+ messages in thread From: Jan Kiszka @ 2018-08-27 8:29 UTC (permalink / raw) To: Claudius Heine, isar-users On 2018-08-27 09:44, Claudius Heine wrote: > On 2018-08-27 09:25, [ext] Claudius Heine wrote: >> Hi Jan, >> >> On 2018-08-27 08:41, [ext] Jan Kiszka wrote: >>> Hi all, >>> >>> I was wondering if / how we could model the increasingly common case >>> of building very similar target images more efficiently. >>> >>> A devel image, e.g., likely consists of almost the same base package >>> set as the release image. It may only add further packages and maybe >>> replace very few (like customization packages). When building both, >>> we could save time - specifically when doing cross - by bootstrapping >>> the baseline only once. We already do that for the debootstrap step, >>> but not yet for further packages. >>> >>> What do you think? And how could that be modeled from user perspective? >> >> That is not very easy. >> >> A complex way this could be done by having a `common image` recipe >> that depends on other image recipes to deploy their required package >> list, > > What I meant by that is each image recipe writes its package list into > its own text file in the 'deploy' directory. > >> then figure out the common dependencies of all of them and build the >> custom image. > > s/custom/common/ > > Problem scenario here is: > > Image A: depends on A which depends on D > Image B: depends on B which depends on D > > Since D is not named in any recipes, but should be installed in the > `common image` as automatically selected package (not as manual). This > scripting is a bit tricky. > >> Then those other image recipes depend of the `common image` recipe in >> turn to create it, copy it and base their own customizations on top. >> >> From a user perspective they would have to add their image recipes >> into a global variable or bbappend, so that is available in the >> `common image` recipe. The rest could be done in the image classes. >> >> Cheers, >> Claudius > Hmm, I'm not seeing yet where the complication could come from. I would have expected the following: - write a new image recipe include that takes a preexisting image in form of a rootfs as input (rather than using setup_root_file_system) - create specialized images on top of that which depend on some base image recipe as well as additional IMAGE_INSTALL recipes and may come with own IMAGE_PREINSTALLs (always on top of base images) - push all common IMAGE_PREINSTALLs into base image recipes, same for all IMAGE_INSTALLs And done. What am I missing? Jan ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Incremental target images 2018-08-27 8:29 ` Jan Kiszka @ 2018-08-27 8:52 ` Claudius Heine 2018-08-27 13:48 ` chombourger 1 sibling, 0 replies; 6+ messages in thread From: Claudius Heine @ 2018-08-27 8:52 UTC (permalink / raw) To: Jan Kiszka, isar-users On 2018-08-27 10:29, Jan Kiszka wrote: > On 2018-08-27 09:44, Claudius Heine wrote: >> On 2018-08-27 09:25, [ext] Claudius Heine wrote: >>> Hi Jan, >>> >>> On 2018-08-27 08:41, [ext] Jan Kiszka wrote: >>>> Hi all, >>>> >>>> I was wondering if / how we could model the increasingly common case >>>> of building very similar target images more efficiently. >>>> >>>> A devel image, e.g., likely consists of almost the same base package >>>> set as the release image. It may only add further packages and maybe >>>> replace very few (like customization packages). When building both, >>>> we could save time - specifically when doing cross - by >>>> bootstrapping the baseline only once. We already do that for the >>>> debootstrap step, but not yet for further packages. >>>> >>>> What do you think? And how could that be modeled from user perspective? >>> >>> That is not very easy. >>> >>> A complex way this could be done by having a `common image` recipe >>> that depends on other image recipes to deploy their required package >>> list, >> >> What I meant by that is each image recipe writes its package list into >> its own text file in the 'deploy' directory. >> >>> then figure out the common dependencies of all of them and build the >>> custom image. >> >> s/custom/common/ >> >> Problem scenario here is: >> >> Image A: depends on A which depends on D >> Image B: depends on B which depends on D >> >> Since D is not named in any recipes, but should be installed in the >> `common image` as automatically selected package (not as manual). This >> scripting is a bit tricky. >> >>> Then those other image recipes depend of the `common image` recipe in >>> turn to create it, copy it and base their own customizations on top. >>> >>> From a user perspective they would have to add their image recipes >>> into a global variable or bbappend, so that is available in the >>> `common image` recipe. The rest could be done in the image classes. >>> >>> Cheers, >>> Claudius >> > > Hmm, I'm not seeing yet where the complication could come from. I would > have expected the following: > > - write a new image recipe include that takes a preexisting image in > form of a rootfs as input (rather than using setup_root_file_system) > > - create specialized images on top of that which depend on some base > image recipe as well as additional IMAGE_INSTALL recipes and may come > with own IMAGE_PREINSTALLs (always on top of base images) > > - push all common IMAGE_PREINSTALLs into base image recipes, same for > all IMAGE_INSTALLs > > And done. What am I missing? Ok, then I misunderstood you. I thought you wanted a mostly transparent mechanism in the background and not just an inheritance scheme for images. Cheers, Claudius -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Incremental target images 2018-08-27 8:29 ` Jan Kiszka 2018-08-27 8:52 ` Claudius Heine @ 2018-08-27 13:48 ` chombourger 1 sibling, 0 replies; 6+ messages in thread From: chombourger @ 2018-08-27 13:48 UTC (permalink / raw) To: isar-users [-- Attachment #1.1: Type: text/plain, Size: 2923 bytes --] This would have been my thinking as. Add something like IMAGE_CREATE_FROM = "production-image" in your development-image recipe would go a long way. +1 for Jan's suggestion. Cedric On Monday, August 27, 2018 at 10:29:35 AM UTC+2, Jan Kiszka wrote: > > On 2018-08-27 09:44, Claudius Heine wrote: > > On 2018-08-27 09:25, [ext] Claudius Heine wrote: > >> Hi Jan, > >> > >> On 2018-08-27 08:41, [ext] Jan Kiszka wrote: > >>> Hi all, > >>> > >>> I was wondering if / how we could model the increasingly common case > >>> of building very similar target images more efficiently. > >>> > >>> A devel image, e.g., likely consists of almost the same base package > >>> set as the release image. It may only add further packages and maybe > >>> replace very few (like customization packages). When building both, > >>> we could save time - specifically when doing cross - by bootstrapping > >>> the baseline only once. We already do that for the debootstrap step, > >>> but not yet for further packages. > >>> > >>> What do you think? And how could that be modeled from user > perspective? > >> > >> That is not very easy. > >> > >> A complex way this could be done by having a `common image` recipe > >> that depends on other image recipes to deploy their required package > >> list, > > > > What I meant by that is each image recipe writes its package list into > > its own text file in the 'deploy' directory. > > > >> then figure out the common dependencies of all of them and build the > >> custom image. > > > > s/custom/common/ > > > > Problem scenario here is: > > > > Image A: depends on A which depends on D > > Image B: depends on B which depends on D > > > > Since D is not named in any recipes, but should be installed in the > > `common image` as automatically selected package (not as manual). This > > scripting is a bit tricky. > > > >> Then those other image recipes depend of the `common image` recipe in > >> turn to create it, copy it and base their own customizations on top. > >> > >> From a user perspective they would have to add their image recipes > >> into a global variable or bbappend, so that is available in the > >> `common image` recipe. The rest could be done in the image classes. > >> > >> Cheers, > >> Claudius > > > > Hmm, I'm not seeing yet where the complication could come from. I would > have expected the following: > > - write a new image recipe include that takes a preexisting image in > form of a rootfs as input (rather than using setup_root_file_system) > > - create specialized images on top of that which depend on some base > image recipe as well as additional IMAGE_INSTALL recipes and may come > with own IMAGE_PREINSTALLs (always on top of base images) > > - push all common IMAGE_PREINSTALLs into base image recipes, same for > all IMAGE_INSTALLs > > And done. What am I missing? > > Jan > [-- Attachment #1.2: Type: text/html, Size: 3622 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-08-27 13:48 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-08-27 6:41 Incremental target images Jan Kiszka 2018-08-27 7:25 ` Claudius Heine 2018-08-27 7:44 ` Claudius Heine 2018-08-27 8:29 ` Jan Kiszka 2018-08-27 8:52 ` Claudius Heine 2018-08-27 13:48 ` chombourger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox