Source: linux
Version: 4.6.3-1
Severity: wishlist
User: reproducible-bui...@lists.alioth.debian.org
Usertags: environment randomness
X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org

Hi!

While working on the "reproducible builds" effort [1], we have noticed
that linux could not be built reproducibly.
Since we started varying the shell used for /bin/sh (bash vs. dash),
linux no longer builds reproducibly.

The following differences are in linux-headers packages:

── 
./usr/src/linux-headers-4.6.0-1-686/arch/x86/include/generated/asm/.syscalls_32.h.cmd
 @@ -1 +1 @@
 -cmd_arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h := 
/bin/bash '/build/linux-4.6.3/arch/x86/entry/syscalls/syscalltbl.sh' 
/build/linux-4.6.3/arch/x86/entry/syscalls/syscall_32.tbl 
arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h
 +cmd_arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h := 
/bin/sh '/build/linux-4.6.3/arch/x86/entry/syscalls/syscalltbl.sh' 
/build/linux-4.6.3/arch/x86/entry/syscalls/syscall_32.tbl 
arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h
── 
./usr/src/linux-headers-4.6.0-1-686/arch/x86/include/generated/uapi/asm/.unistd_32.h.cmd
 @@ -1 +1 @@
 -cmd_arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_32.h := 
/bin/bash '/build/linux-4.6.3/arch/x86/entry/syscalls/syscallhdr.sh' 
'/build/linux-4.6.3/arch/x86/entry/syscalls/syscall_32.tbl' 
'arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_32.h' 'i386' 
'' ''
 +cmd_arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_32.h := 
/bin/sh '/build/linux-4.6.3/arch/x86/entry/syscalls/syscallhdr.sh' 
'/build/linux-4.6.3/arch/x86/entry/syscalls/syscall_32.tbl' 
'arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_32.h' 'i386' 
'' ''
── 
./usr/src/linux-headers-4.6.0-1-686/arch/x86/include/generated/uapi/asm/.unistd_64.h.cmd
 @@ -1 +1 @@
 -cmd_arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_64.h := 
/bin/bash '/build/linux-4.6.3/arch/x86/entry/syscalls/syscallhdr.sh' 
'/build/linux-4.6.3/arch/x86/entry/syscalls/syscall_64.tbl' 
'arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_64.h' 
'common,64' '' ''
 +cmd_arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_64.h := 
/bin/sh '/build/linux-4.6.3/arch/x86/entry/syscalls/syscallhdr.sh' 
'/build/linux-4.6.3/arch/x86/entry/syscalls/syscall_64.tbl' 
'arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_64.h' 
'common,64' '' ''
── 
./usr/src/linux-headers-4.6.0-1-686/arch/x86/include/generated/uapi/asm/.unistd_x32.h.cmd
 @@ -1 +1 @@
 -cmd_arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h := 
/bin/bash '/build/linux-4.6.3/arch/x86/entry/syscalls/syscallhdr.sh' 
'/build/linux-4.6.3/arch/x86/entry/syscalls/syscall_64.tbl' 
'arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h' 
'common,x32' '' '__X32_SYSCALL_BIT'
 +cmd_arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h := 
/bin/sh '/build/linux-4.6.3/arch/x86/entry/syscalls/syscallhdr.sh' 
'/build/linux-4.6.3/arch/x86/entry/syscalls/syscall_64.tbl' 
'arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h' 
'common,x32' '' '__X32_SYSCALL_BIT'

Are those .cmd files actually needed in the packages?
They are caused by the SYSTBL and SYSHDR commands if I undertand it
correctly. If they should be kept in the package, this can probably be
solved by setting CONFIG_SHELL to a static value (/bin/bash).

And the linux-source package has differences (randomly orderes elements)
in the file usr/src/linux-source-4.6/tools/usb/usbip/autom4te.cache/requests
(which I think doesn't need to be included either).

Regards,
 Reiner

[1]: https://wiki.debian.org/ReproducibleBuilds

Attachment: signature.asc
Description: Digital signature

Reply via email to