[Pkg-tcltk-devel] Bug#963600: critcl: please make the teapot.txt files reproducible

Vagrant Cascadian vagrant at reproducible-builds.org
Thu Jun 6 21:02:56 BST 2024


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 227 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-tcltk-devel/attachments/20240606/b81bf0ac/attachment.sig>


More information about the Pkg-tcltk-devel mailing list