diff mbox series

[meta-oe] uninative-tarball.xz - reproducibility fix

Message ID 20230629140258.5635-1-Robert.Berger@ReliableEmbeddedSystems.com
State New
Headers show
Series [meta-oe] uninative-tarball.xz - reproducibility fix | expand

Commit Message

Robert Berger June 29, 2023, 2:02 p.m. UTC
added --clamp-mtime --mtime to the tar command

see:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=15148

Signed-off-by: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
---
 meta/classes-recipe/populate_sdk_base.bbclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Richard Purdie June 29, 2023, 2:07 p.m. UTC | #1
On Thu, 2023-06-29 at 16:02 +0200, Robert Berger wrote:
> added --clamp-mtime --mtime to the tar command
> 
> see:
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=15148
> 
> Signed-off-by: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
> ---
>  meta/classes-recipe/populate_sdk_base.bbclass | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/classes-recipe/populate_sdk_base.bbclass b/meta/classes-recipe/populate_sdk_base.bbclass
> index b23ea26d40..c804e7520a 100644
> --- a/meta/classes-recipe/populate_sdk_base.bbclass
> +++ b/meta/classes-recipe/populate_sdk_base.bbclass
> @@ -86,7 +86,7 @@ python () {
>         d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; zip -r ${SDK_ZIP_OPTIONS} ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} .')
>      else:
>         d.setVar('SDK_ARCHIVE_DEPENDS', 'xz-native')
> -       d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar ${SDKTAROPTS} -cf - . | xz ${SDK_XZ_OPTIONS} > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
> +       d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar ${SDKTAROPTS} ${SDKTAROPTS_ADDON} -cf - . | xz ${SDK_XZ_OPTIONS} > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
>  }
>  
>  SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
> @@ -286,6 +286,7 @@ python check_sdk_sysroots() {
>  }
>  
>  SDKTAROPTS = "--owner=root --group=root"
> +SDKTAROPTS_ADDON ?= "--clamp-mtime --mtime=@${SOURCE_DATE_EPOCH}"
>  

Thanks, looks good. I did wonder if we could just put this in
SDKTAROPTS though? Do we really need to add a new variable?

Cheers,

Richard
Robert Berger June 30, 2023, 7:06 a.m. UTC | #2
Hi,

Not sure my previous reply made it to the list.
So I try it again here.

On 29/06/2023 16:07, Richard Purdie wrote:
> On Thu, 2023-06-29 at 16:02 +0200, Robert Berger wrote:
>> added --clamp-mtime --mtime to the tar command
>>
>> see:
>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=15148
>>
>> Signed-off-by: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
>> ---
>>   meta/classes-recipe/populate_sdk_base.bbclass | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta/classes-recipe/populate_sdk_base.bbclass b/meta/classes-recipe/populate_sdk_base.bbclass
>> index b23ea26d40..c804e7520a 100644
>> --- a/meta/classes-recipe/populate_sdk_base.bbclass
>> +++ b/meta/classes-recipe/populate_sdk_base.bbclass
>> @@ -86,7 +86,7 @@ python () {
>>          d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; zip -r ${SDK_ZIP_OPTIONS} ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} .')
>>       else:
>>          d.setVar('SDK_ARCHIVE_DEPENDS', 'xz-native')
>> -       d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar ${SDKTAROPTS} -cf - . | xz ${SDK_XZ_OPTIONS} > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
>> +       d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar ${SDKTAROPTS} ${SDKTAROPTS_ADDON} -cf - . | xz ${SDK_XZ_OPTIONS} > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
>>   }
>>   
>>   SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
>> @@ -286,6 +286,7 @@ python check_sdk_sysroots() {
>>   }
>>   
>>   SDKTAROPTS = "--owner=root --group=root"
>> +SDKTAROPTS_ADDON ?= "--clamp-mtime --mtime=@${SOURCE_DATE_EPOCH}"
>>   
> 
> Thanks, looks good. I did wonder if we could just put this in
> SDKTAROPTS though? Do we really need to add a new variable?

Functionality-wise it's fine to add it to SDKTAROPTS. The default value 
I added would give people the chance to experiment with different 
options as well.

If you want me to "hard code" it I'll create a v2.

Just let me know.

> 
> Cheers,
> 
> Richard
> 

Regards,

Robert
Richard Purdie June 30, 2023, 7:43 a.m. UTC | #3
On Fri, 2023-06-30 at 09:03 +0200, Robert Berger wrote:
> Hi,
> 
> My comments are inline
> 
> On 29/06/2023 16:07, Richard Purdie wrote:
> > > +SDKTAROPTS_ADDON ?= "--clamp-mtime --mtime=@${SOURCE_DATE_EPOCH}"
> > >   
> > 
> > Thanks, looks good. I did wonder if we could just put this in
> > SDKTAROPTS though? Do we really need to add a new variable?
> > 
> 
> Functionality-wise it's fine to add it to SDKTAROPTS. The default value 
> I added would give people the chance to experiment with different 
> options as well.
> 
> If you want me to "hard code" it I'll create a v2.
> 
> Just let me know.


Lets just add to the existing variable, I don't think we need another
one for this.

Cheers,

Richard
diff mbox series

Patch

diff --git a/meta/classes-recipe/populate_sdk_base.bbclass b/meta/classes-recipe/populate_sdk_base.bbclass
index b23ea26d40..c804e7520a 100644
--- a/meta/classes-recipe/populate_sdk_base.bbclass
+++ b/meta/classes-recipe/populate_sdk_base.bbclass
@@ -86,7 +86,7 @@  python () {
        d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; zip -r ${SDK_ZIP_OPTIONS} ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} .')
     else:
        d.setVar('SDK_ARCHIVE_DEPENDS', 'xz-native')
-       d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar ${SDKTAROPTS} -cf - . | xz ${SDK_XZ_OPTIONS} > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
+       d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar ${SDKTAROPTS} ${SDKTAROPTS_ADDON} -cf - . | xz ${SDK_XZ_OPTIONS} > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
 }
 
 SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
@@ -286,6 +286,7 @@  python check_sdk_sysroots() {
 }
 
 SDKTAROPTS = "--owner=root --group=root"
+SDKTAROPTS_ADDON ?= "--clamp-mtime --mtime=@${SOURCE_DATE_EPOCH}"
 
 fakeroot archive_sdk() {
 	# Package it up