On 2023-01-10, Chris Lamb wrote: >> critcl: please make the teapot.txt files reproducible > > My previous patch no longer makes this package reproducible; there is > an additional variation within: > > /usr/lib/tcltk/x86_64-linux-gnu/critcl_callback1/linux-x86_64/callback.so
I tracked down the other issues! They are due to source code including the pid and the epoch timestamp: ././debian/.cache/.critcl/pkg2360103.1717554676/v3118_00000000000000000000000000000033.c:1211 vs. ././debian/.cache/.critcl/pkg1294786.1751964911/v3118_00000000000000000000000000000033.c:1211 This is introduced in the source code at: https://sources.debian.org/src/critcl/3.1.18.1%2Bdfsg-3/lib/app-critcl/critcl.tcl/#L177 proc ::critcl::app::PackageCache {} { if {$v::cache ne {}} { return $v::cache } return [file join ~ .critcl pkg[pid].[clock seconds]] } If we can figure out where to set "$v::cache" to some value deterministically during the build, I think we could fix this for critcl itself, although not for things built using critcl (if I am understanding critcl correctly). Alternately patching it to use the value of SOURCE_DATE_EPOCH in lieu of clock seconds and ignore the pid altogether when SOURCE_DATE_EPOCH is set, although I am a bit at a loss how to handle that in Tcl itself... I was able to build reproducibly by applying your original patch to debian/rules and by mangling critcl to use: return [file join ~ .critcl pkgPID.CLOCKSECONDS] Though I would guess this is not appropriate for typical runtime use. live well, vagrant
signature.asc
Description: PGP signature