Bug 1201579 - doxygen varies output from readdir order
doxygen varies output from readdir order
Status: NEW
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Development
Current
Other All
: P5 - None : Normal (vote)
: ---
Assigned To: Petr Gajdos
E-mail List
:
Depends on:
Blocks: 1041090
  Show dependency treegraph
 
Reported: 2022-07-18 07:44 UTC by Bernhard Wiedemann
Modified: 2022-07-25 13:33 UTC (History)
0 users

See Also:
Found By: Development
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bernhard Wiedemann 2022-07-18 07:44:42 UTC
While working on reproducible builds for openSUSE, I saw, doxygen picked up non-determinism from filesystem readdir order and therefore produces variations in build output

https://rb.zq1.de/compare.factory-20220704/diffs/libzypp-compare.out
https://rb.zq1.de/compare.factory-20220704/diffs/pipewire-compare.out

maybe also
https://rb.zq1.de/compare.factory-20220704/diffs/gnuradio-compare.out
https://rb.zq1.de/compare.factory-20220704/diffs/ldas-tools-framecpp-compare.out
https://rb.zq1.de/compare.factory-20220704/diffs/tesseract-ocr-compare.out
https://rb.zq1.de/compare.factory-20220704/diffs/trilinos-compare.out

At some point, there were also influences from ASLR, but these might have been solved earlier.

The easiest way to reproduce is to use my 'rbk' tool from
https://github.com/bmwiedemann/reproducibleopensuse/
on a osc checkout

Alternatively, use osc build on two different ext4 filesystems in OSC_BUILD_ROOT=
or use disorderfs to ensure random readdir order.
Comment 1 Petr Gajdos 2022-07-25 13:33:40 UTC
I have a local checkout of home:pgajdos/doxygen and home:pgajdos/libzypp. Now I have a patch there against doxygen and would like to test it, is it possible with rbk tool? d.o.o/repositories/home:/pgajdos/openSUSE_Factory/x86_64/ says it is doxygen-1.9.4-178.1, but rbk build still seems to pick doxygen-1.9.4-1.1 instead.

I have
: ${project:=home:pgajdos}
: ${repo:=openSUSE_Factory}
in rbk script and

  <useforbuild>
    <enable/>
  </useforbuild>

in osc meta prj.