#777441 unicon: fails to build reproducibly because cin2tab produces output in random order

Package:
src:unicon
Source:
unicon
Submitter:
Maria Valentina Marin
Date:
2021-12-12 09:15:04 UTC
Severity:
wishlist
#777441#5
Date:
2015-02-08 09:48:50 UTC
From:
To:
Hi!

While working on the “reproducible builds” effort [1], we have noticed
that unicon could not be built reproducibly.

We observed that the file cantonese.tab is different between individual rebuilds.
It seems that the program cin2tab uses a hash table and does not sort its output.

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

cheers, akira

#777441#10
Date:
2021-12-12 08:56:53 UTC
From:
To:
These following four files unreproducible:

usr/lib/unicon/modules/turbo/dict/big5/simplex.tab
usr/lib/unicon/modules/turbo/dict/big5/cantonese.tab
usr/lib/unicon/modules/turbo/dict/big5/pinyin.tab
usr/lib/unicon/modules/turbo/dict/big5/cj.tab

They produced by make big5data in:

https://salsa.debian.org/chinese-team/unicon/-/blob/e42d70e07203d03934f6a3dadb2dc835efb1aa70/unicon/ImmModules/turbo/Makefile.in#L46

The source code cin2tab.c need to update to fix this bug:

https://salsa.debian.org/chinese-team/unicon/-/blob/e42d70e07203d03934f6a3dadb2dc835efb1aa70/unicon/ImmModules/turbo/cin2tab.c

Help is welcome.


Thanks!