Fix reproducibility issues in opkg-build There is a sorting problem with opkg-build where the ipk generated is depending upon the order of files on disk. The reason is the --sort option to tar only influences the orders of files tar reads, not those passed by the -T option. Add in a sort call to resolve this issue. To ensure consistent sorting we also need to force to a specific locale (C) else the results are still not deterministic. RP 2020/2/5 Upstream-Status: Submitted [https://groups.google.com/forum/#!topic/opkg-devel/YttZ73NLrYQ] Signed-off-by: Richard Purdie Index: opkg-utils-0.4.2/opkg-build =================================================================== --- opkg-utils-0.4.2.orig/opkg-build +++ opkg-utils-0.4.2/opkg-build @@ -305,8 +305,10 @@ if [ ! -z "$SOURCE_DATE_EPOCH" ]; then mtime_args="--mtime=@$build_date --clamp-mtime" fi -( cd $pkg_dir/$CONTROL && find . -type f > $tmp_dir/control_list ) -( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print > $tmp_dir/file_list ) +export LANG=C +export LC_ALL=C +( cd $pkg_dir/$CONTROL && find . -type f | sort > $tmp_dir/control_list ) +( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print | sort > $tmp_dir/file_list ) ( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) ( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --no-recursion --mtime=@$build_date -c $tarformat -T $tmp_dir/control_list | gzip $zipargs > $tmp_dir/control.tar.gz ) rm $tmp_dir/file_list