[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#830268: linux: please make the build reproducible



Source: linux
Version: 4.6.3-1
Severity: wishlist
User: reproducible-builds@lists.alioth.debian.org
Usertags: environment randomness
X-Debbugs-Cc: reproducible-builds@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 to: