* [Buildroot] [PATCH 1/2] package/cpio: add host version @ 2019-07-14 16:23 Atharva Lele 2019-07-14 16:23 ` [Buildroot] [PATCH 2/2] fs/cpio: make cpio rootfs reproducible Atharva Lele 2019-07-14 16:39 ` [Buildroot] [PATCH 1/2] package/cpio: add host version Yann E. MORIN 0 siblings, 2 replies; 6+ messages in thread From: Atharva Lele @ 2019-07-14 16:23 UTC (permalink / raw) To: buildroot From: "Yann E. MORIN" <yann.morin.1998@free.fr> The latest cpio has a --reproducible option, which may come handy when we try to, well, be reproducible... Reported-by: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> [Atharva: Made change pointed out by Arnout: remove HOST_CPIO_CONF_OPTS] Signed-off-by: Atharva Lele <itsatharva@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Atharva Lele <itsatharva@gmail.com> --- Changes v1 -> v2: - Add patch from Yann to my series --- package/cpio/cpio.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/package/cpio/cpio.mk b/package/cpio/cpio.mk index 9a09279572..cc40838840 100644 --- a/package/cpio/cpio.mk +++ b/package/cpio/cpio.mk @@ -17,3 +17,4 @@ CPIO_DEPENDENCIES += argp-standalone endif $(eval $(autotools-package)) +$(eval $(host-autotools-package)) -- 2.22.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 2/2] fs/cpio: make cpio rootfs reproducible 2019-07-14 16:23 [Buildroot] [PATCH 1/2] package/cpio: add host version Atharva Lele @ 2019-07-14 16:23 ` Atharva Lele 2019-07-14 16:47 ` Yann E. MORIN 2019-07-14 16:39 ` [Buildroot] [PATCH 1/2] package/cpio: add host version Yann E. MORIN 1 sibling, 1 reply; 6+ messages in thread From: Atharva Lele @ 2019-07-14 16:23 UTC (permalink / raw) To: buildroot Pass the recommended argument in the CPIO manual to make cpio archives reproducible. Reference: https://www.gnu.org/software/cpio/manual/cpio.html#Copy_002dpass-mode Pre-patch diffoscope output: https://gitlab.com/snippets/1874745 Post-patch: https://gitlab.com/snippets/1874746 We can see that post-patch, the archive related differences are removed. The differences are arising from utils/bin/getconf. This will have to be investigated further. However, that is unrelated to cpio. Signed-off-by: Atharva Lele <itsatharva@gmail.com> --- Changes v1 -> v2: - Added comment - Build host-cpio if we are reproducible, reason is --reproducible option does not exist prior to cpio 2.12. (suggested by Yann, Arnout) --- fs/cpio/cpio.mk | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/fs/cpio/cpio.mk b/fs/cpio/cpio.mk index 1f0cafe62f..521418f950 100644 --- a/fs/cpio/cpio.mk +++ b/fs/cpio/cpio.mk @@ -29,8 +29,16 @@ endif # BR2_ROOTFS_DEVICE_CREATION_STATIC ROOTFS_CPIO_PRE_GEN_HOOKS += ROOTFS_CPIO_ADD_INIT +# --repoducible option was not introduced until cpio v2.12. Some distros +# like Ubuntu 16.04 or Debian oldstable which package v2.11. Hence build +# host-cpio. +ifeq ($(BR2_REPRODUCIBLE), y) +ROOTFS_CPIO_DEPENDENCIES += host-cpio +CPIO_OPTS = --reproducible +endif + define ROOTFS_CPIO_CMD - cd $(TARGET_DIR) && find . | cpio --quiet -o -H newc > $@ + cd $(TARGET_DIR) && find . | cpio $(CPIO_OPTS) --quiet -o -H newc > $@ endef ifeq ($(BR2_TARGET_ROOTFS_CPIO_UIMAGE),y) -- 2.22.0 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 2/2] fs/cpio: make cpio rootfs reproducible 2019-07-14 16:23 ` [Buildroot] [PATCH 2/2] fs/cpio: make cpio rootfs reproducible Atharva Lele @ 2019-07-14 16:47 ` Yann E. MORIN 2019-07-14 17:21 ` Yann E. MORIN 0 siblings, 1 reply; 6+ messages in thread From: Yann E. MORIN @ 2019-07-14 16:47 UTC (permalink / raw) To: buildroot Atharva, All, On 2019-07-14 21:53 +0530, Atharva Lele spake thusly: > Pass the recommended argument in the CPIO manual to make cpio archives > reproducible. > > Reference: https://www.gnu.org/software/cpio/manual/cpio.html#Copy_002dpass-mode > > Pre-patch diffoscope output: https://gitlab.com/snippets/1874745 > Post-patch: https://gitlab.com/snippets/1874746 > > We can see that post-patch, the archive related differences are removed. > The differences are arising from utils/bin/getconf. This will have to > be investigated further. However, that is unrelated to cpio. > > Signed-off-by: Atharva Lele <itsatharva@gmail.com> > --- > Changes v1 -> v2: > - Added comment > - Build host-cpio if we are reproducible, reason is --reproducible > option does not exist prior to cpio 2.12. (suggested by Yann, Arnout) > --- > fs/cpio/cpio.mk | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/fs/cpio/cpio.mk b/fs/cpio/cpio.mk > index 1f0cafe62f..521418f950 100644 > --- a/fs/cpio/cpio.mk > +++ b/fs/cpio/cpio.mk > @@ -29,8 +29,16 @@ endif # BR2_ROOTFS_DEVICE_CREATION_STATIC > > ROOTFS_CPIO_PRE_GEN_HOOKS += ROOTFS_CPIO_ADD_INIT > > +# --repoducible option was not introduced until cpio v2.12. Some distros > +# like Ubuntu 16.04 or Debian oldstable which package v2.11. Hence build > +# host-cpio. > +ifeq ($(BR2_REPRODUCIBLE), y) > +ROOTFS_CPIO_DEPENDENCIES += host-cpio > +CPIO_OPTS = --reproducible Having a pure assignment in a condition is risky for the future. If we were to later add new unconditional options, we would add them before this part (as is customary to do: uncoditional stuff goes before conditional stuff). In this case, the assignment here would override the uncoditional options, which is not nice. Instead, I think we prefer an append-assignment in conditional blocks, even if the variable is not already defined. Arnout, Thomas, can you confirm/infirm my opinion? ;-) Otherwise: Reviewed-by: Yann E. MORIN <yann.morin.1998@free.fr> Regards, Yann E. MORIN. > +endif > + > define ROOTFS_CPIO_CMD > - cd $(TARGET_DIR) && find . | cpio --quiet -o -H newc > $@ > + cd $(TARGET_DIR) && find . | cpio $(CPIO_OPTS) --quiet -o -H newc > $@ > endef > > ifeq ($(BR2_TARGET_ROOTFS_CPIO_UIMAGE),y) > -- > 2.22.0 > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 2/2] fs/cpio: make cpio rootfs reproducible 2019-07-14 16:47 ` Yann E. MORIN @ 2019-07-14 17:21 ` Yann E. MORIN 2019-07-16 12:15 ` Atharva Lele 0 siblings, 1 reply; 6+ messages in thread From: Yann E. MORIN @ 2019-07-14 17:21 UTC (permalink / raw) To: buildroot Atharva, All, On 2019-07-14 18:47 +0200, Yann E. MORIN spake thusly: > On 2019-07-14 21:53 +0530, Atharva Lele spake thusly: > > Pass the recommended argument in the CPIO manual to make cpio archives > > reproducible. [--SNIP--] > > +# --repoducible option was not introduced until cpio v2.12. Some distros > > +# like Ubuntu 16.04 or Debian oldstable which package v2.11. Hence build > > +# host-cpio. > > +ifeq ($(BR2_REPRODUCIBLE), y) > > +ROOTFS_CPIO_DEPENDENCIES += host-cpio > > +CPIO_OPTS = --reproducible In addition to my previous comments: the variable shall be prefixed with ROOTFS_CPIO_, not just with CPIO_, otherwise it could clash with variables from the cpio package itself. Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 2/2] fs/cpio: make cpio rootfs reproducible 2019-07-14 17:21 ` Yann E. MORIN @ 2019-07-16 12:15 ` Atharva Lele 0 siblings, 0 replies; 6+ messages in thread From: Atharva Lele @ 2019-07-16 12:15 UTC (permalink / raw) To: buildroot Yann, all: Replying to both of Yann's emails in this one: On Sunday, July 14, 2019 10:17:25 PM IST Yann E. MORIN wrote: > Having a pure assignment in a condition is risky for the future. If we > were to later add new unconditional options, we would add them before > this part (as is customary to do: uncoditional stuff goes before > conditional stuff). In this case, the assignment here would override the > uncoditional options, which is not nice. > > Instead, I think we prefer an append-assignment in conditional blocks, > even if the variable is not already defined. Ah yes that makes sense. I'll change it to an append-assignment in v2. Thanks! On Sunday, July 14, 2019 10:51:33 PM IST Yann E. MORIN wrote: > Atharva, All, > > On 2019-07-14 18:47 +0200, Yann E. MORIN spake thusly: > > On 2019-07-14 21:53 +0530, Atharva Lele spake thusly: > > > Pass the recommended argument in the CPIO manual to make cpio archives > > > reproducible. > > [--SNIP--] > > > > +# --repoducible option was not introduced until cpio v2.12. Some > > > distros > > > +# like Ubuntu 16.04 or Debian oldstable which package v2.11. Hence > > > build > > > +# host-cpio. > > > +ifeq ($(BR2_REPRODUCIBLE), y) > > > +ROOTFS_CPIO_DEPENDENCIES += host-cpio > > > +CPIO_OPTS = --reproducible > > In addition to my previous comments: the variable shall be prefixed with > ROOTFS_CPIO_, not just with CPIO_, otherwise it could clash with variables > from the cpio package itself. Agreed, fixing it in v2. > Regards, > Yann E. MORIN. Thanks for the review! Regards, Atharva Lele ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/2] package/cpio: add host version 2019-07-14 16:23 [Buildroot] [PATCH 1/2] package/cpio: add host version Atharva Lele 2019-07-14 16:23 ` [Buildroot] [PATCH 2/2] fs/cpio: make cpio rootfs reproducible Atharva Lele @ 2019-07-14 16:39 ` Yann E. MORIN 1 sibling, 0 replies; 6+ messages in thread From: Yann E. MORIN @ 2019-07-14 16:39 UTC (permalink / raw) To: buildroot Atharva, All, On 2019-07-14 21:53 +0530, Atharva Lele spake thusly: > From: "Yann E. MORIN" <yann.morin.1998@free.fr> > > The latest cpio has a --reproducible option, which may come handy when > we try to, well, be reproducible... > > Reported-by: Arnout Vandecappelle <arnout@mind.be> > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> > [Atharva: Made change pointed out by Arnout: remove HOST_CPIO_CONF_OPTS] Actually, this is not very intereesting, because it does not say what was in HOST_CPIO_CONF_OPTS. What we need to know is that we do not need to force --bindir. So, I'd have written: [Atharva: don't force --bindir, as noticed by Arnout] > Signed-off-by: Atharva Lele <itsatharva@gmail.com> > Cc: Arnout Vandecappelle <arnout@mind.be> > Cc: Atharva Lele <itsatharva@gmail.com> Except for the minor nit above: Acked-by: Yann E. MORIN <yann.morin.1998@free.fr> Thanks! :-) Regards, Yann E. MORIN. > --- > Changes v1 -> v2: > - Add patch from Yann to my series > --- > package/cpio/cpio.mk | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/package/cpio/cpio.mk b/package/cpio/cpio.mk > index 9a09279572..cc40838840 100644 > --- a/package/cpio/cpio.mk > +++ b/package/cpio/cpio.mk > @@ -17,3 +17,4 @@ CPIO_DEPENDENCIES += argp-standalone > endif > > $(eval $(autotools-package)) > +$(eval $(host-autotools-package)) > -- > 2.22.0 > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-07-16 12:15 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-07-14 16:23 [Buildroot] [PATCH 1/2] package/cpio: add host version Atharva Lele 2019-07-14 16:23 ` [Buildroot] [PATCH 2/2] fs/cpio: make cpio rootfs reproducible Atharva Lele 2019-07-14 16:47 ` Yann E. MORIN 2019-07-14 17:21 ` Yann E. MORIN 2019-07-16 12:15 ` Atharva Lele 2019-07-14 16:39 ` [Buildroot] [PATCH 1/2] package/cpio: add host version Yann E. MORIN
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.