issues.yml 88.1 KB
Newer Older
1
timestamps_from_cpp_macros:
Jérémy Bobbio's avatar
Jérémy Bobbio committed
2
  description: |
3
    The C pre-processor macros `__DATE__`, `__TIME__`,
Holger Levsen's avatar
Holger Levsen committed
4
    capture the current time, and thus will obviously make a build
Jérémy Bobbio's avatar
Jérémy Bobbio committed
5
    unreproducible.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
6
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsFromCPPMacros
7
  deterministic: True
8 9 10 11 12
timestamps_from_timestamp_macro:
  description: |
    The `__TIMESTAMP__` macro captures the file modification time, which
    should be deterministic (if the file is not modified at build time),
    but varies (at least with gcc) with timezone.
13
  deterministic: True
14 15 16 17
timestamps_from_cpp_macros_in_d:
  description: |
    The D compiler also support C-like `__DATE__` and `__TIME__` macros, which
    embed the build time/date into the object files.
18
  deterministic: True
19 20 21 22 23
timestamps_from_cpp_macros_in_haskell:
  description: |
    The Haskell compiler also support C-like `__DATE__` and `__TIME__` macros, which
    embed the build time/date into the object files.
    .
Jemimah O.'s avatar
Jemimah O. committed
24
    eg. https://sources.debian.net/src/darcs/latest/darcs/darcs.hs/#L85
25
  deterministic: True
Santiago Vila's avatar
Santiago Vila committed
26 27 28 29
timestamps_in_cpio_archive:
  description: |
    cpio archives capture build time in mtime of its members.
    Workaround: Set mtimes on disk before creating cpio archive
30
  deterministic: True
31 32 33 34 35 36
timestamps_in_h_generated_by_qdbusxml2cpp:
  description: |
    qdbusxml2cpp uses a timestamp for its anti-double-inclusion
    definition in C header it generates.
    e.g. '#define QUERYINTERFACE_H_1425457739'
  deterministic: True
37 38 39
timestamps_in_documentation_generated_by_phpdox:
  description: |
    phpdox adds a timestamp in manpages it generates (id="buildinfo")
Chris Lamb's avatar
Chris Lamb committed
40 41
    .
    /usr/share/php/TheSeer/phpDox/generator/enricher/build/Build.php ?
42 43 44
timestamps_in_documentation_generated_by_doxygen:
  description: |
    If Doxyfile contains HTML_TIMESTAMP = YES, Doxygen will add a
Jérémy Bobbio's avatar
Jérémy Bobbio committed
45 46
    timestamp to its generated documentation.
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInDocumentationGeneratedByDoxygen
47
  deterministic: True
48 49 50
timestamps_in_manpages_generated_by_doxygen:
  description: |
    Doxygen uses timestamp in manpages it generates
51
    https://bugs.debian.org/785624
52 53
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByDoxygen
  deterministic: True
54 55 56 57
year_variable_in_documentation_generated_by_doxygen:
  description: |
    Doxygen docs can use $year which uses the current year, not one based on
    SOURCE_DATE_EPOCH.
58
  url: https://bugs.debian.org/863054
59
  deterministic: True
60 61 62
build_dir_in_documentation_generated_by_doxygen:
  description: |
    If FULL_PATH_NAMES = YES, doxygen will include a build path into the
63 64
    documentation based on dirname(1). (Can also include it via other means,
    including generating SVG images with build paths)
65 66 67 68
build_dir_in_tags_generated_by_doxygen:
  description: |
    Even if FULL_PATH_NAMES = NO, doxygen will include a build path into the
    "tags" files.
69 70 71 72
nondeterministic_ordering_in_documentation_generated_by_doxygen:
  description: |
    "Additional Inherited Members" has nondeterminisic children in the (HTML?)
    docs.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
73 74 75 76
timestamps_in_manpages_generated_by_yat2m:
  description: |
    yat2m adds a timestamp in manpages it generates.
  deterministic: True
77
timestamps_in_manpages_generated_by_perl_extutils_command_mm:
78
  description: |
79
    ExtUtils::Command::MM adds current time, eg.
80 81
    .
    =head2 Sat Aug 13 11:14:56 2016: C<Module> L<RT::Extension::Spa
Chris Lamb's avatar
Chris Lamb committed
82
  url: https://bugs.debian.org/834190
83 84 85 86 87
timestamps_in_perllocal_pod_manpages_generated_by_perl_extutils_mm_unix:
  description: |
    ExtUtils::MM_Unix adds current time, eg.
    .
    =head2 Thu Sep  7 13:51:59 2017: C<Module> L<RT::Extension::Cust
Chris Lamb's avatar
Chris Lamb committed
88
  url: https://bugs.debian.org/835815
89 90 91
timestamps_in_documentation_generated_by_naturaldocs:
  description: |
    naturaldocs uses today's date
92
  url: https://bugs.debian.org/831377
93
  deterministic: True
94 95 96
timestamps_in_documentation_generated_by_asciidoc:
  description: |
    asciidoc adds a timestamp at the end of a generated HTML file.
97
    This timestamp is based on the date of the file but it can change depending on the TZ environment variable.
98
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInDocumentationGeneratedByAsciidoc
99
  deterministic: True
100 101 102
timestamps_in_documentation_generated_by_man2html:
  description: |
    man2html adds a timestamp at the end of a generated HTML file.
103
    Patch at https://bugs.debian.org/796130 applied to our repo.
104
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInDocumentationGeneratedByMan2Html
105
  deterministic: True
Jérémy Bobbio's avatar
Jérémy Bobbio committed
106 107 108
timestamps_in_dvi_generated_by_latex:
  description: |
    The creation date of the DVI file is the current time.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
109
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInDviGeneratedByLaTeX
110
  deterministic: True
111
timestamps_in_ps_generated_by_dvips:
112
  description: |
Chris Lamb's avatar
Chris Lamb committed
113
    eg. %%CreationDate (or DVIPSSource?) in header
Chris Lamb's avatar
Chris Lamb committed
114
    .
Jemimah O.'s avatar
Jemimah O. committed
115
    https://sources.debian.net/src/texlive-bin/latest/texk/web2c/pdftexdir/pdftex.web/#L14449
Reiner Herrmann's avatar
Reiner Herrmann committed
116 117
    .
    DVIPSSource date Can be set to SOURCE_DATE_EPOCH by setting FORCE_SOURCE_DATE to 1.
118
  deterministic: True
119 120
blacklisted_on_jenkins:
  description: |
121
    Some packages have been blacklisted in our test infrastructure because
122 123 124
    their build hangs, takes too long, spawns processes that are not killed, or
    simply because they use too many resources for our current capacity. (This
    is purely practical step - we would like to test these packages.)
125 126
blacklisted_on_jenkins_armhf_only:
  description: |
127
    Some packages have been blacklisted only on armhf in our test infrastructure 
128
    because their builds takes too long on the tiny armhf boards we're using.
129
    The migation against this is to add more architectures or to wait until 
130
    we test against the debian archive, when it's will become sensible to raise
131
    the 18h timeout for a single build.
Holger Levsen's avatar
Holger Levsen committed
132
    Until his happens, please rely on the amd64, i386 and arm64 tests.
Chris Lamb's avatar
Chris Lamb committed
133
diffoscope_runs_forever:
134
  url: https://reproducible.debian.net/index_breakages.html
135
  description: |
136
    Some packages cannot be analysed by diffoscope due to it running "forever".
137 138 139
    Currently the diffoscope process is killed after 120 minutes.
    https://reproducible.debian.net/index_breakages.html collects a list of currently 
    undiffable packages (as well as other issues with tests.reproducile-builds.org.
140 141
timestamps_in_maven_version_files:
  description: |
Chris Lamb's avatar
Chris Lamb committed
142
    Maven writes a timestamp to version.properties files.
143
  deterministic: True
144 145 146 147
timestamps_in_maven_metadata_local_xml_files:
  description: |
    Maven writes a timestamp to maven-metadata-local.xml files.
  deterministic: True
148 149 150
locale_differences_in_pom:
  description: |
    Some tool is writing .pom files with randomly ordered data.
151
  deterministic: True
Jérémy Bobbio's avatar
Jérémy Bobbio committed
152 153 154
timestamps_in_pe_binaries:
  description: |
    PE binaries contain a timestamp and maybe randomness in an UUID.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
155
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInPEBinaries
156
  deterministic: True
157 158 159 160 161 162 163
randomness_in_documentation_generated_by_scilab:
  description: |
    Whilst this looks like randomness in section_XXXX links, I believe this is
    actually generated by the build system capturing the entire build path
    .
     <span·class="top"><a·href="section_be5547c931fe4d46ae907fad928a7cc2.html">ANN·toolbox</a></span>
    .
Jemimah O.'s avatar
Jemimah O. committed
164
    Source is likely https://sources.debian.net/src/scilab/latest/modules/helptools/macros/xmltoformat.sci/#L1569
165
randomness_in_documentation_generated_by_epydoc:
166
  description: |
Jérémy Bobbio's avatar
Jérémy Bobbio committed
167 168 169
    Epydoc will add timestamps to the HTML file it produces. It can also generates
    different class index depending on filesystem ordering. It might also output
    references to object with a memory address.
170
    Related bugs:
171
        https://bugs.debian.org/827416
Jérémy Bobbio's avatar
Jérémy Bobbio committed
172
  url: https://wiki.debian.org/ReproducibleBuilds/EpydocIssues
173 174
timestamps_in_python_code_generated_by_cheetah:
  description: |
Chris Lamb's avatar
Chris Lamb committed
175
    Cheetah embeds two timestamps into generated Python code by default.
176 177
    This can be disabled with a compiler flag.
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInPythonCodeGeneratedByCheetah
178
  deterministic: True
179 180
random_order_in_python_environment_pickle:
  description: |
181
    Python doctrees writes a `environment.pickle.gz`, in a random order and embeds encoding in some `*.doctree.gz` files.
182
locale_dependent_order_in_devlibs_depends:
Chris Lamb's avatar
Chris Lamb committed
183
  url: https://bugs.debian.org/796330
184 185
  description: |
    devlibs:Depends is sorted in a locale-dependent way.
186
  deterministic: True
187
fontforge_resets_modification_time:
188 189 190 191
  description: |
    When a fontforge script is used, if the font loaded is modified
    in any way, then the font modification time is set to the current
    time.
192 193 194
    .
    Initial patch in https://bugs.debian.org/774274 but withdrawn after
    SOURCE_DATE_EPOCH proposal.
195 196
    .
    WIP patch at https://gist.githubusercontent.com/lamby/60a545b37b778e148702c342bbf86bd9/raw/19a39af51d669fde042b261236f65ba72f75662a/903_reproducubile_build.diff
197 198
    .
    Related upstream bug at https://github.com/fontforge/fontforge/issues/2490
Jérémy Bobbio's avatar
Jérémy Bobbio committed
199
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInFontsGeneratedWithFontForge
200
  deterministic: True
201 202 203 204
build_time_embedded_by_fontforge:
  description: |
    When a fontforge script is used, it can appear to use the current build
    time in embedded metadata in a field (not the "modification time").
205
varying_mtimes_in_data_tar_gz_or_control_tar_gz:
Jérémy Bobbio's avatar
Jérémy Bobbio committed
206 207 208
  description: |
    We currently adjust the file mtimes in dh_builddeb. Packages which
    calls `dpkg --build` directly should have a prior call to:
209
    `export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog --count 1 -SDate)" +%s)`
Jérémy Bobbio's avatar
Jérémy Bobbio committed
210
    and
211 212
    `find debian/tmp -newermt "@$$SOURCE_DATE_EPOCH" -print0 | \
         xargs -0r touch --no-dereference --date="@$$SOURCE_DATE_EPOCH"`
Jérémy Bobbio's avatar
Jérémy Bobbio committed
213
    Another option is to convert the build system to `dh`.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
214
  url: https://wiki.debian.org/ReproducibleBuilds/Howto#Members_of_control.tar_and_data.tar_have_varying_mtimes
215
  deterministic: True
216 217 218
timestamps_in_gzip_headers:
  description: |
    gzip stores a timestamp by default in its header.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
219
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInGzipHeaders
220
  deterministic: True
221 222 223
timestamps_in_png:
  description: |
    PNG can capture build time with the tIME chunk or custom keywords.
224
    This timestamps are currently removed by strip-nondetermism, so are not visible to diffoscope anymore. Yet fixing the root cause would be nice.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
225
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInPNG
226
  deterministic: True
227 228
timestamps_in_static_libraries:
  description: |
229 230 231
    .a files are ar archives. Since binutils 2.25-6 they should be deterministic
    by default, but there are some remaining buggy corner cases - see
    bug #843210 for example if the package uses binutils-multiarch.
232
    (#843210 has been fixed in sid now, hopefully this issue becomes moot now.)
233 234 235
    .
    Other tools that create ar archives directly should in theory be covered by
    strip-nondeterminism, but it is still good to patch them.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
236
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInStaticLibraries
237
  deterministic: True
238 239
timestamps_in_tarball:
  description: |
Chris Lamb's avatar
Chris Lamb committed
240
    Tarballs capture build time in mtime of its members.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
241
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInTarball
242
  deterministic: True
243 244 245
random_order_in_tarball:
  description: |
    The order of members inside the tarball varies.
246
  url: https://wiki.debian.org/ReproducibleBuilds/FileOrderInTarballs
247 248 249
timestamps_in_documentation_generated_by_javadoc:
  description: |
    javadoc will add timestamps to the HTML file it produces.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
250
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInDocumentationGeneratedByJavadoc
251
  deterministic: True
Peter De Wachter's avatar
Peter De Wachter committed
252 253
random_order_in_documentation_generated_by_javadoc:
  description: |
Chris West (Faux)'s avatar
Chris West (Faux) committed
254
    Some entries inside individual "class-use" documentation pages are emitted in different orders.
255 256 257
    This appears to only happen with multi-module maven projects, i.e. possibly during
    `mvn javadoc:aggregate`.
    .
Chris West (Faux)'s avatar
Chris West (Faux) committed
258 259 260
    In `jacoco`, you can observe files are generated consistently in the individual submodule
    documentation folders, but then differently when aggregated. Maybe a coincedence.
    .
261 262
    Historically, there were some other issues. These have disappeared, but it's not clear why.
    The major version of OpenJDK has changed since these issues were reported (was 7, now 8),
Chris West (Faux)'s avatar
Chris West (Faux) committed
263
    although the code that was believed to be at fault remains unchanged. These are detailed below.
264
    .
Chris West (Faux)'s avatar
Chris West (Faux) committed
265
    The `package-tree.html` file generated by javadoc used to contain an unsorted index.
266
    .
267
    Perhaps caused by packageFiles is a Map<String, List<JavaFileObject>> in
268 269
    openjdk-7-jdk -> ./langtools.tar.bz2 ->
    src/share/classes/com/sun/tools/javadoc/JavadocTool.java
270
    .
271 272 273 274
    There was also a locale-specific wrapping issue, which has disappeared.
    This may be because enough things are using javahelper, which sets the locale.
    .
    Likely cause is
275
    jdk9_dev/langtools/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/DocLocale.java +172
276 277
    .
    Workaround is
Jemimah O.'s avatar
Jemimah O. committed
278
    https://sources.debian.net/src/maven-debian-helper/latest/share/cdbs/1/class/maven.mk/?hl=136#L136
279 280 281
nondeterministic_java_bytecode:
  description: |
    Source unknown.
282 283 284
timestamps_in_documentation_generated_by_groovydoc:
  description: |
    Groovydoc will add timestamps to the HTML file it produces.
Jemimah O.'s avatar
Jemimah O. committed
285
    https://sources.debian.net/src/groovy/latest/src/main/org/codehaus/groovy/tools/groovydoc/gstringTemplates/topLevel/index-all.html/#L19
286
  deterministic: True
287 288 289 290
timestamps_in_jar:
  description: |
    jar (Java Archive) file stores mtimes. Most often of files generated during
    the build.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
291
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInJarFiles
292
  deterministic: True
293 294 295 296
timestamps_in_zip:
  description: |
    Zip archives stores mtimes. Most often of files generated during
    the build.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
297
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInZip
298
  deterministic: True
Juan Picca's avatar
Juan Picca committed
299 300
timestamps_difference_by_unzip:
  description: |
Reiner Herrmann's avatar
Reiner Herrmann committed
301 302
    Timestamps in files processed by zip/unzip have timezone variations.
    Setting TZ=UTC before calling zip/unzip the file can fix this.
303
  deterministic: True
304 305 306
timestamps_in_documentation_generated_by_groff:
  description: |
    groff will add a timestamps to documentation it produces.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
307
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInDocumentationGeneratedByGroff
308
  deterministic: True
309 310 311 312
timestamps_in_pdf_generated_by_latex:
  description: |
    PDF files generated with pdftex and pdflatex will contain CreationDate and
    ModDate set to the current date and time.
Jérémy Bobbio's avatar
Jérémy Bobbio committed
313
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInPDFGeneratedByLaTeX
314
  deterministic: True
315 316 317 318
timestamps_in_documentation_generated_by_htmldoc:
  description: |
    PDF files generated with htmldoc will contain CreationDate set to the current
    date and time.
319
    Fixed in 1.9.1.
Bernhard M. Wiedemann's avatar
Bernhard M. Wiedemann committed
320
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInDocumentationGeneratedByHtmldoc
321
  deterministic: True
322 323 324
timestamps_in_header_or_footer_by_htmldoc_in_documentation:
  description: |
    PDF files generated with htmldoc contain date and time in PDF content if 'd' or 'D' options used in header/footer/tocfooter/tocheader parameters.
325
    Fixed in 1.9.1.
326
  deterministic: True
327 328 329 330
libtool_captures_shell_build-flags_build-path_path-env:
  description: |
    GNU libtool captures SHELL, build path, build flags and PATH environment in script.
  deterministic: True
331 332 333
randomness_in_documentation_generated_by_lua_ldoc:
  description: |
    'see also' is not ordered - see module.see
334 335 336
timestamps_in_documentation_generated_by_lua_ldoc:
  description: |
    lua-ldoc adds build timestamp, varying by the timezone
Jemimah O.'s avatar
Jemimah O. committed
337 338
    https://sources.debian.net/src/lua-ldoc/latest/ldoc/html/ldoc_ltp.lua/?hl=293#L293
    https://sources.debian.net/src/lua-ldoc/latest/ldoc.lua/?hl=784#L784
339
  deterministic: True
340
  url: https://bugs.debian.org/820240
341 342 343
pdf_created_by_ghostscript:
  description: |
    PDF files created by Ghostscript contain timestamps and ids.
Paul Wise's avatar
Paul Wise committed
344
  url: https://wiki.debian.org/ReproducibleBuilds/PdfGeneratedByGhostscript
345 346 347 348
serial_numbers_in_ogg:
  description: |
    Ogg streams must include unique serial numbers. By default oggenc includes
    random serial numbers in the header, which are seeded by the current time
349
    and the pid.
350
  url: https://wiki.debian.org/ReproducibleBuilds/OggSerialNumbers
351 352 353 354
serial_numbers_in_ogg_via_sox:
  description: |
    Ogg streams must include unique serial numbers. By default sox includes
    a random serial number in the header.
Jemimah O.'s avatar
Jemimah O. committed
355
  url: https://sources.debian.org/src/sox/latest/src/vorbis.c/#L334
356 357 358 359 360
timestamps_in_pdf_generated_by_apache_fop:
  description: |
    PDF files generated with Apache FOP will contain CreationDate and
    ModDate set to the current date and time.
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInPDFGeneratedByApacheFOP
361
  deterministic: True
362 363 364
timestamps_in_documentation_generated_by_texi2html:
  description: |
    eg. "Created on March 1, 2015 by texi2html 1.82"
365
    texi2html now supports a specified date via --build-date parameter.
366
  deterministic: True
367 368 369 370 371
randomness_in_html_generated_by_texi2html:
  description: |
    texi2html's output varies, probably because of elements being processed
    in Perl hash order.
  url: https://wiki.debian.org/ReproducibleBuilds/RandomnessInHTMLGeneratedByTexi2html
372 373
python_wheel_package:
  description: |
Reiner Herrmann's avatar
Reiner Herrmann committed
374 375
    Wheel is embedding timestamps into whl files. The timestamp can be overridden
    by setting the WHEEL_FORCE_TIMESTAMP environment variable to an epoch value.
376
  url: https://wiki.debian.org/ReproducibleBuilds/PythonWheelPackage
377
  deterministic: True
378 379 380
random_order_in_java_jar_manifest_mf:
  description: |
    Java .jar files written by some tools have a random order in MANIFEST.MF.
381 382 383
user_in_java_jar_manifest:
  description: |
    Java .jar files contain user login in the `Built-By` of `MANIFEST.MF`.
384 385 386
timestamp_in_java_bnd_manifest:
  description: |
    bndtools bnd outputs Bnd-LastModified and other entropy
387
  deterministic: True
388 389 390
bundle_name_in_java_manifest_mf:
  description: |
    Bundle-Name, Bundle-Symbolic name
391 392 393 394
implementation_version_in_java_manifest_mf:
  description: |
    Captures build time, build host and kernel version with
    Implementation-Version and Implentation-Vendor in META-INF/MANIFEST.MF
395
  deterministic: True
396 397 398
timestamps_in_python_docutils:
  description: |
    Python docutils writes timestamps into its generated documentation.
399
  deterministic: True
400 401 402 403 404 405
random_order_in_files_generated_by_module_build:
  description: |
    Perl files generated with Module::Build contain an unsorted dependency list.
    .
    Fixed in libmodule-build-perl, but not in the module shipped by perl itself.
  url: https://bugs.debian.org/774869
Santiago Vila's avatar
Santiago Vila committed
406 407 408 409
users_and_groups_in_cpio_archive:
  description: |
    cpio archives capture user and group for each of its members.
    Solution: If owner does not matter, create cpio archive with "--owner 0:0"
410
  deterministic: True
411 412 413 414
users_and_groups_in_tarball:
  description: |
    Tarballs capture user and group for each of its members.
  url: https://wiki.debian.org/ReproducibleBuilds/UsersAndGroupsInTarballs
415
  deterministic: True
416 417 418
timestamps_in_emacs_autoloads:
  description: |
    Emacs "autoloads" comments contain a timestamp.
419 420
    At least some of these would be resolved by a fix for
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=799168
421
  url: https://bugs.debian.org/824050
422
  deterministic: True
423 424 425 426
timestamps_in_ruby_documentation:
  description: |
    Ruby's documentation generator outputs a file called "created.rid", which contains
    the time the documentation was generated.
427
  deterministic: True
428 429 430
timestamps_in_documentation_generated_by_sphinx:
  description: |
    "Last updated," etc.
431
  deterministic: True
Peter De Wachter's avatar
Peter De Wachter committed
432 433 434
randomness_in_documentation_generated_by_sphinx:
  description: |
    Sphinx might output references to memory addresses and generate a json index file
435
    with entries in random order or with non-determinstic values (eg. searchindex.js).
436
    See https://bugs.debian.org/822197 for memory address issue
Chris Lamb's avatar
Chris Lamb committed
437 438
    .
    searchindex.js needs sort_keys=True (jsonimpl.py) but the key values vary too.
Peter De Wachter's avatar
Peter De Wachter committed
439
  url: https://wiki.debian.org/ReproducibleBuilds/SphinxIssues
440 441 442 443
randomness_in_frozenset_representations_in_sphinx:
  description: |
    frozensets are non-determinisic
  url: https://github.com/sphinx-doc/sphinx/pull/5388
444 445
randomness_in_documentation_indices_generated_by_sphinx:
  description: |
446
    Sphinx can output genindex.html index entries in non-deterministic order.
447 448 449
    .
    There might be other missing sorts or dict key sorting beyond the pull
    request already sent.
450
  url: https://github.com/sphinx-doc/sphinx/pull/1699
451 452 453 454
randomness_in_property_annotations_generated_by_sphinx:
  description: |
    visit_desc_annotation in sphinx/writers/html.py (?) causes -- for example -- sets
    to be serialised in a nondeterminstic order.
455 456 457 458 459 460
randomness_in_documentation_underscore_downloads_generated_by_sphinx:
  description: |
    eg. usr/share/doc/python-treq-doc/html/_downloads/04f29e03a7917886a0c8589f0f9018d6/basic_post.py.
    .
    Unclear why the source is duplicated. Likely regression/feature introduced
    in python-sphinx 1.8.3 or 1.8.2.
461
  url: https://github.com/sphinx-doc/sphinx/pull/6028
462 463 464 465
randomness_in_documentation_graphviz_generated_by_sphinx:
  description: |
    html/_images/graphviz-9e71e0f9ba91d0842b51211b676ec4adb7e7afb8.png varies
    on build path.
466 467 468 469 470
captures_build_path_in_sphinx_attr_links:
  description: |
    Sphinx docs can contain hyperlinks to other parts of the doc, which include
    part of the build path.
  deterministic: True
471 472 473 474 475 476
randomness_in_icc_colour_profiles:
  description: |
    International Color Consortium .icc colour profiles have some issue.
ppds_compressed_b64:
  description: |
    cups drivers have a field named ppds_compressed_b64 which has some issue.
477
  url: https://wiki.debian.org/ReproducibleBuilds/CupsPpdsIssues
478 479
zope_random_field_order_in_dzproduct:
  description: |
480 481
    Random order of entries in /usr/share/zope/Products/$package/.dzproduct generated
    by dh_installzope
482 483
    .
    Fixed in zope-debhelper 0.3.16.
484
  url: https://bugs.debian.org/776619
485 486 487
timestamps_in_files_installed_by_dh_kpatches:
  description: |
    Calls gzip without -n
488
  url: https://bugs.debian.org/776941
489
  deterministic: True
490 491 492
randomness_in_dh_cligacpolicy_scripts:
  description: |
    dh_cligacpolicy adds debhelper scripts in a random order
493
  url: https://bugs.debian.org/777185
494 495 496
needs_internet_access_to_build:
  description: |
    Packages which need to access sites on the internet during build.
Andrew Ayer's avatar
Andrew Ayer committed
497 498 499
timestamps_in_mdl_molfile:
  description: |
    MDL Molfiles (https://en.wikipedia.org/wiki/Chemical_table_file) contain a timestamp.
500
  deterministic: True
501
build_id_variation_requiring_further_investigation:
502
  description: |
503
    ld adds a Build ID in ELF binaries used to link external debug symbols.
504
    See https://fedoraproject.org/wiki/Releases/FeatureBuildId#Unique_build_ID for
505 506
    the spec.
    The default value is a SHA1 hash over the content of the binary. See
507
    the `--build-id` option in https://sourceware.org/binutils/docs-2.25/ld/Options.html
508 509 510 511 512 513 514 515 516
    for other behavior.
    Unless a different way to compute Build IDs has been specified, different Build IDs
    are the symptom of different binary content. The actual source of the
    difference might not be visible because the debug symbols might have been stripped
    (and they can contain filenames which can differ if the build path is different).
    There is no general solution for this problem. The source of the variation must
    be tracked and fixed. The issue can come from variations in order of object
    members or objects themselves, different content (e.g. `__DATE__` CPP
    macros or similar), or other interesting things.
517 518
    .
    Please don't tag issues with this issue until I find a place for this text ^
519 520 521
timestamps_in_documentation_generated_by_podman:
  description: |
    The module Pod::Man includes timestamps in its embedded manpages:
522
    https://sources.debian.net/src/perl/latest/cpan/podlators/lib/Pod/Man.pm/?hl=1700#L977
Chris Lamb's avatar
Chris Lamb committed
523
    They should be based on the mtime of the original file.
Reiner Herrmann's avatar
Reiner Herrmann committed
524
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByPodMan
525
  deterministic: True
526 527 528 529 530
timezones_manpages_podman:
  description: |
    This issue is similar to timestamps_in_documentation_generated_by_podman.
    The embedded timestamps are not from the actual build time, but instead deterministic ones
    that are only varying because of differing timezones between builds.
531
  url: https://bugs.debian.org/780259
532
  deterministic: True
Andrew Ayer's avatar
Andrew Ayer committed
533 534 535
timestamps_in_ada_library_information_files:
  description: |
    Ada Library Information (.ali) files contain the mtime of the Ada source (.ads) files that they index.
536 537
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInAdaLibraryInformationFiles
  deterministic: False
538
ftbfs_wdatetime:
539
  description: |
540
    FTBFS if dpkg-buildflags contains -Wdate-time.
541
  deterministic: True
542
ftbfs_build_depends_not_available_on_amd64:
543
  description: |
544
    Package build depends on some package(s), which are not available on amd64.
545
  deterministic: True
546
ftbfs_build-indep_not_build_on_some_archs:
547
  description: |
548
    These are packages where the build-indep target will fail to build on some archs. As this can be the desired behaviour we add those packages to this issue and have made sure that the build problems found in our infrastructure are not propagated to tracker.debian.org and DDPO.
549
  deterministic: True
550 551 552
ftbfs_environment:
  description: |
    FTBFS with some unrelated values of the environment variables (lang, timezone, ...)
553
  deterministic: True
554
different_pot_creation_date_in_gettext_mo_files:
555
  description: |
556
    Gettext .mo files in /usr/share/locale/*/LC_MESSAGES differ in their POT-Creation-Date.
557
    When using dh, they will be normalized by strip-nondeterminism.
558
  deterministic: True
559
  url: https://bugs.debian.org/792687
560 561
ftbfs_due_to_jenkins_semaphore_setup:
  description: |
562
    Something interesting in the Jenkins setup where semaphores could not be used correctly.
563
    .
564
    Should not affect any package anymore as /dev/shm has been fixed on all nodes and it's correct mounting is being monitored too.
565
ftbfs_in_jenkins_setup:
Chris West (Faux)'s avatar
Chris West (Faux) committed
566
  description: |
567
    Could be:
568
    1) jobs that try to bind to localhost ports which are in use by something in the
569
       jenkins machines. The occupied ports are: 22, 25, 80, 443, 3128, 3129, 4949, 34167
570 571 572
    2) the build tries to access a debian archive over http, which is something
       allowed but pbuilder doesn't support this yet (this should only be interesting
       for debian-installer)
573
    3) something else, the machine is heavily loaded all the time...
574 575 576 577
timestamps_in_description_files_generated_by_r-base-dev:
  description: |
    r-base-dev leaves a build timestamp (showing date + time + timezone) in
    the /usr/lib/R/library/*/Description files it generates.
578 579 580
    This is fixable with GNU R >= 3.2.0 from unstable. If your package uses the
    r-cran.mk template in debian/rules you should be fine. If not, see
    https://bugs.debian.org/782764 for reference how to fix your package.
581
  deterministic: True
582 583 584 585
timestamps_in_manpages_generated_by_latex2man:
  description: |
    Manpages generated with latex2man can (?) embed the date.
  deterministic: True
586
timestamps_in_manpages_generated_by_sphinx:
587
  description: |
588 589
    Manpages generated with Sphinx embed the build date.
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedBySphinx
590
  deterministic: True
591
timestamps_in_manpages_generated_by_txt2man:
592 593
  description: |
    Manpages generated with txt2man embed the date.
Reiner Herrmann's avatar
Reiner Herrmann committed
594 595
    .
    Pass "-d $date" to txt2man to force a (reproducible) date.
Chris Lamb's avatar
Chris Lamb committed
596
  url: https://bugs.debian.org/790801
597
  deterministic: True
598
timestamps_in_manpages_generated_by_help2man:
599 600
  description: |
    Manpages generated with help2man embed the month and year by default.
601
    This is currently only detected on the 1st of a month, because we are varying the timezone to span more than a day.
602
  url: https://bugs.debian.org/787444
603
  deterministic: True
604 605 606
timestamps_in_manpages_generated_by_rst2man:
  description: |
    Manpages generated with rst2man embed the date
607
  url: https://bugs.debian.org/831779
608
fonts_in_pdf_files:
609 610
  description: |
    The internally used names/identifiers of fonts embedded into PDF files varies.
611
    The order of embedded fonts can also be different.
612 613 614 615 616 617 618 619 620 621 622
    .
    The order is only different if the date differs (set by TZ environment
    variable for example). If the date is the same, then the font name
    is reproducible. Difference in hour/minute/second resolution seems
    to be irrelevant.
    .
    The font name occurs in the /BaseFont field and in the /Fontname field.
    The name is of the form XXXXXX+YYY where the XXXXXX part is the one that
    varies and is called the subset_tag. It is generated in
    texk/web2c/pdftexdir/utils.c function make_subset_tag() from an MD5 sum
    over the font glyphs.
623 624 625
random_order_in_maven_plugin_xml:
  description: |
    mvn plugin.xml (-plugin packages) is generated in a random order.
626 627
    .
    Should be fixed in 3.3-1.
Jemimah O.'s avatar
Jemimah O. committed
628 629
    https://sources.debian.net/src/maven-plugin-tools/latest/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java/#L167
    https://sources.debian.net/src/maven-plugin-tools/latest/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginDescriptorGenerator.java/#L166
630
  url: https://jira.codehaus.org/browse/MPLUGIN-261
631 632
timestamps_in_documentation_generated_by_edoc:
  description: |
633
    The Erlang documentation generator EDoc is embedding timestamps in its documentation.
634
  deterministic: True
635 636
timestamps_in_qch:
  description: |
637 638 639
    There has been done a lot of reproducible fixes in 5.5.0, so it is worth to
    wait entering this version sid before retrying.
    .
640 641
    qhelpgenerator inserts a timestamp into documentation (qch) files,
    which are sqlite3 databases.
642 643 644 645 646
    .
    sqlite3 databases appear to be reproducible in themselves, but qhelp
    generator is using various file IDs which become non-determinstic due to
    map access. For example
    .
Jemimah O.'s avatar
Jemimah O. committed
647
    https://sources.debian.net/src/qt4-x11/latest/tools/assistant/lib/qhelpgenerator.cpp/?hl=742#L742
648 649
    .
    I suspect we just need a few sorts (and some time to build qt4-x11...)
650
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInDatabaseGeneratedByQhelpgenerator
651
  deterministic: True
652 653 654
timestamps_in_java_stapler_files:
  description: |
    Another variation of timestamps_in_maven_version_files where someone's
Chris Lamb's avatar
Chris Lamb committed
655
    used the same properties writer.
656
  deterministic: True
657 658 659 660
timestamps_in_gjdoc_properties_files:
  description: |
    Another variation of timestamps_in_maven_version_files where someone's
    used the same doomed properties writer, this time in GNU Gjdoc API Documentation.
661
  deterministic: True
662 663 664 665 666
timestamps_manually_added_needs_further_investigation:
  description: |
    Packages which intentionally add the timestamp to their build or files,
    but aren't obviously using any tool or system which has this as a core issue.
    Interesting because they could be fixed by faketime'ing up the whole system.
667
  deterministic: True
668 669 670
uid_and_gid_in_jar:
  description: |
    Some tool has managed to write uid and gid as an extended attribute into a jar file.
671
  deterministic: True
672 673 674
timestamps_in_qmake_makefiles:
  description: |
    Some -dev packages ship generated qmake makefiles, which contain the generation time.
675
  deterministic: True
676 677 678 679 680
user_hostname_manually_added_requiring_further_investigation:
  description: |
    Packages which intentionally capture the username or hostname into a custom format,
    but aren't obviously using any tool or system which has this as a core issue.
    Interesting because they could be fixed by fixing these things at build time.
681
  deterministic: True
682 683 684
random_order_in_plexus_comonents_xml:
  description: |
    Plexus, a Java plugin framework, writes its components.xml in a random order.
685 686
timestamps_in_epub:
  description: |
687
    epub files are zip files, and hence have a timestamp in them.
688
  deterministic: True
689 690 691
timestamps_in_jsdoc_toolkit_documentation:
  description: |
    JsDoc Toolkit writes the documentation generation time into generated HTML.
692
  deterministic: True
693 694
randomness_in_objects_inv:
  description: |
695
    Some Gython documentation tool writes objects.inv files in a random order.
696 697 698 699 700
randomness_in_ocaml_custom_executables:
  description: |
    ocamlc -custom generates intermediate files with random names that end
    up in the executable.
  url: https://bugs.debian.org/786913
701 702
randomness_in_ocaml_preprocessed_files:
  description: |
703 704 705
    The native ocaml compiler generates intermediate files with random names
    if the source code is making use of a preprocessor. The paths to these
    temporary files end up in the debug data of the generated executables.
706
  url: https://bugs.debian.org/838188
707 708 709 710 711 712 713 714 715 716
randomness_in_ocaml_provides:
  description: |
    From dh_ocaml :-
    .
    75 ${ocaml:Provides} substvar which will be replaced by a name of the form
    76 libXXX-ocaml-dev-NNNN, where NNNN is an checksum computed from the interfaces
    77 of the modules provided by the library.
    .
    It may be that fixing randomness_in_ocaml_custom_executables implicitly
    fixes this.
717 718
    .
    Seems like this can affect Depends too. eg. labltk
719 720 721
timestamps_in_documentation_generated_by_ocamldoc:
  description: |
    eg. API listings in locale order
722 723 724
timestamp_in_pear_registry_files:
  description: |
    PEAR registry files are serialized PHP objects that contain a timestamp.
725 726
    .
    Registry.php in src:php-pear.
727
  url: https://bugs.debian.org/750697
728
  deterministic: True
729 730 731 732 733
berkeley_db_variation_requiring_further_investigation:
  description: |
    Berkeley databases are not reproducibly.
    This issue requires further poking to understand way.
    https://github.com/libzhuyin/libzhuyin/issues/7
734
  url: https://lists.alioth.debian.org/pipermail/reproducible-builds/Week-of-Mon-20150302/001188.html
735
different_due_to_umask:
736 737
  description: |
    Files have varying permissions because of different umasks.
738
  deterministic: True
739 740 741
build_path_in_qdoc:
  description: |
    eg. filepath elements
Chris Lamb's avatar
Chris Lamb committed
742 743
randomness_in_qdoc:
  description: |
744
    Non-deterministic order of <tag> and <file> elements in XML. See
Jemimah O.'s avatar
Jemimah O. committed
745
    https://sources.debian.net/src/qtbase-opensource-src/latest/src/tools/qdoc/helpprojectwriter.cpp/?hl=630#L787
Chris Lamb's avatar
Chris Lamb committed
746
    etc.
747 748 749 750 751 752
randomness_in_qdoc_page_id:
  description: |
    eg.
    <qtPageIndex>
      <page id="{0f990824-d820-4f11-a82f-790abc23751b}">
    ..etc
Reiner Herrmann's avatar
Reiner Herrmann committed
753 754 755 756
timestamps_in_python_version_numbers:
  description: |
    python-setuptools is appending the build date to a Python version number.
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInPythonVersionNumbers
757
  deterministic: True
758 759 760 761
randomness_in_python_setuptools_requires_txt:
  description: |
    python-setuptools generates requires.txt files with contents in arbitrary
    order.
762
  url: https://bugs.debian.org/804249
Reiner Herrmann's avatar
Reiner Herrmann committed
763 764 765 766 767
timezone_variance_because_of_automake_mdate:
  description: |
    automake's mdate-sh script pretty-prints the modification time of a file.
    This output can influence further steps in the build process and make it unreproducible.
  url: https://wiki.debian.org/ReproducibleBuilds/TimezoneVarianceBecauseOfAutomakeMdate
768
  deterministic: True
769 770 771 772 773 774 775 776 777
timestamps_in_dictionaries:
  description: |
    Dictionaries built with dictfmt/dictzip (often called .dict.dz) contain timestamps:
      This file was converted from the original database on:
        $DATE
    dictzip gzip-compresses the dictionary and includes a timestamp in the header.
    .
    Call dictfmt with --without-time to prevent the timestamp in the dictionary.
  url: https://bugs.debian.org/776430
778
  deterministic: True
779 780 781 782
timestamps_in_manpages_generated_by_docbook2x:
  description: |
    docbook2x-man embeds the build date into generated manpages.
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByDocbook2x
783
  deterministic: True
784 785 786 787
leaks_path_environment_variable:
  description: |
    The environment variable PATH is embedded in the build result.
    Sometimes it's just leaked into some file (so "just" causing reproducibility issues), while sometimes this PATH is also used for building, which might give unexpected and broken results.
788 789 790 791
timestamps_in_manpages_generated_by_docbook_xsl:
  description: |
    docbook-xsl writes the build date into the header; sometimes driven by asciidoc, sometimes by xsltproc.
    Date change visible on Jenkins due to timezone changes.
792
  url: https://bugs.debian.org/791815
793
  deterministic: True
794 795 796
timestamps_in_documentation_generated_by_docbook_dbtimestamp:
  description: |
    dbtimestamp is an entity in docbook that inserts the current time.
797
  deterministic: True
798 799 800 801
timestamps_in_documentation_generated_by_rdtool:
  description: |
    RD is a document formatter used for ruby programs. When generating manpages, it embeds the
    current month and year.
802
    This is currently only detected on the 1st of a month, because we are varying the timezone to span more than a day.
803
  deterministic: True
804
  url: https://bugs.debian.org/820144
805 806 807
captures_kernel_version:
  description: |
    Stores the kernel version (uname -a, /proc/version, etc.) output, normally for debugging purposes.
808 809
    .
    Sub-issue: captures_kernel_version_via_CMAKE_SYSTEM
810
  deterministic: True
Jérémy Bobbio's avatar
Jérémy Bobbio committed
811 812 813 814
timestamps_in_allegro_dat_files:
  description: |
    `.dat` files from the Allegro framework are basically archives. The `dat`
    command line tool will add a DATE property with the file modification time.
815 816
    .
    The timestamp is believed to be generated by datedit_ftime2asc().
817
  deterministic: True
818 819 820 821 822
randomness_in_fat_lto_objects:
  description: |
    Objects built with `gcc -flto -ffat-lto-objects` will contain random strings
    in the form of `.gnu.lto_.inline.24c30dabb443e726`. They will change at
    each build.
823 824
    Temporary (?) solution: pass the full path of the source as the argument
    to `-frandom-seed`.
825
  url: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66305
826 827 828 829
randomness_in_c_files_generated_by_extutils_parsexs:
  description: |
    ExtUtils::ParseXS generates undeterministic C files (differing order) out of .xs files.
    This leads to differently compiled objects.
830 831 832 833
    .
    There are some code copies, so we have the following bugs in total-
    https://bugs.debian.org/829295
    https://bugs.debian.org/829296
834 835
    .
    Fix is also required in ExtUtils::ParseXS in perl(-modules)
836
  url: https://bugs.debian.org/829295
837 838 839 840
timestamps_generated_by_eigenbase_resgen:
  description: |
    XOMGenTask adds timestamps to generated files, see src/org/eigenbase/xom/MetaGenerator.java line 1202.
    ResourceGenTask adds timestamps too but can be avoided using commentstyle with scm-safe value.
841
  deterministic: True
842 843 844 845 846 847
timestamps_in_documentation_generated_by_ur:
  description: |
    UR::Namespace::Command::Update::Doc in the libur-perl package generates documentation with embedded timestamps.
    .
    See doc_sections() in lib/Command/V1.pm and lib/Command/View/DocMethods.pm in the libur-perl source.
    .
848 849
    libur-perl 0.440-2 half-fixes that: only timezone handling is wrong.
    libur-perl 0.440-3 should fix that.
850
  deterministic: True
851 852 853
timestamps_from_tex4ht:
  description: |
    Tex4ht adds timestamps into the HTML output files.
akira's avatar
akira committed
854
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsFromTex4ht
855
  deterministic: True
856 857 858 859 860
timestamps_from_imake_in_xutils:
  url: https://bugs.debian.org/789964
  description: |
    The imake tool from xutils-dev defines a gzip command without `-n` that is used when compressing font files by other packages
  deterministic: True
861 862 863 864 865
snapshot_placeholder_replaced_with_timestamp_in_pom_properties:
  description: |
    pom.xml uses a <version> like 0.1-SNAPSHOT which is then replaced with the
    timestamp in the filename of the finished .jar. For example
    /usr/share/eclipse/dropins/cdt-pkg-config/eclipse/plugins/org.eclipse.cdt.managedbuilder.pkgconfig_0.8.0.201506071017.jar
Reiner Herrmann's avatar
Reiner Herrmann committed
866 867 868
different_encoding:
  description: |
    Files were built with different encoding (non-UTF-8 vs. UTF-8).
869
  deterministic: True
870
ftbfs_uninvestigated_unsatisfiable_dependencies:
Chris Lamb's avatar
Chris Lamb committed
871 872 873 874
  description: |
    Packages which fail to satisfy dependencies.  Some of these (but probably not all that many)
    actually have ftbfs_due_to_virtual_dependencies.
  deterministic: True
875 876 877
timestamps_in_documentation_generated_by_org_mode:
  description: |
    Org-mode adds timestamps (which also vary by TZ)
878
  deterministic: True
879 880 881
timestamps_in_pdf_generated_by_matplotlib:
  description: |
    eg. Creator (matplotlib 1.4.2, http://matplotlib.org)
882
  deterministic: True
883
  url: https://bugs.debian.org/827361
884 885 886 887
lynx_dump_varies_output_with_locale:
  description: |
    Packages use `lynx -dump in.html > out.txt`, but this varies by locale. See
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770011
888
  deterministic: True
889 890 891
elinks_dump_varies_output_with_locale:
  description: |
    Packages use `elinks -dump in.html > out.txt`, but this varies by locale.
892
  deterministic: True
893 894 895 896
debiandoc_sgml_timestamp:
  description: |
    <date> element in debiandoc-sgml results in build timestamp which
    additionally varies by locale.
897
  deterministic: True
898 899 900
docbook2txt_locale:
  description: |
    docbook2txt varies output based on locale, usually with non-ascii chars.
901
  deterministic: True
902 903 904 905
xmlto_txt_output_locale_specific:
  description: |
    xmlto "txt" output based on locale.
  deterministic: True
906 907 908 909
texinfo_mdate_sh_varies_by_timezone:
  description:
    If you use version.texi, mdate-sh will output a TZ-sensitive updated date.
    http://www.delorie.com/gnu/docs/automake/automake_81.html
910
  deterministic: True
911
random_order_in_javahelper_substvars:
912
  description:
913
    javahelper (jh_*, etc.) can generate Depends/Recommends substvars in a
914
    non-determinstic order. Untested patch is https://gist.github.com/4a219d84e8a4091acf58
915
  url: https://bugs.debian.org/835147
916 917 918
nroff_output_varies_by_locale_or_utf8:
  description:
    .. either in terms of non-ASCII chars and effects on text wrapping
919
  deterministic: True
920 921 922 923 924
collation_order_varies_by_locale:
  description:
    LC_COLLATE (or LC_ALL) causes a variation in the deterministic
    order produced by invocations like ls *.  This can usually be
    fixed with LC_COLLATE=C.UTF-8 or LC_COLLATE=C.
925
  deterministic: True
926 927 928 929 930
random_build_path_by_golang_compiler:
  description: |
    The golang compiler embeds paths with a random component into object files.
    Example:
    DW_AT_name        : (indirect string, offset: 0x1b1): /tmp/go-build175461345/github.com/docker/docker/pkg/term/_obj/tc_linux_cgo.cgo2.c
931
  url: https://bugs.debian.org/824806
932 933 934
images_in_pdf_generated_by_latex:
  description: |
    pdflatex does not generate reproducible pdfs, when there are more than four pictures and a tableofcontent.
Chris Lamb's avatar
Chris Lamb committed
935
    .
936
    The workaround so far is to use either optipng to optimize the pngs or switch to jpges.
Chris Lamb's avatar
Chris Lamb committed
937
    .
938
  url: https://bugs.debian.org/796490
939 940 941
random_order_in_python_doit_completion:
  description: |
    python-doit generates Bash and Zsh completion output in arbitrary order.
942 943
    .
    Forwarded upstream https://github.com/pydoit/doit/pull/100
944
  url: https://bugs.debian.org/797180
945 946 947 948 949
random_order_in_ibus_table_createdb_output:
  description: |
   ibus-table-createdb in ibus-table creates sqlite databases with
   non-deterministic order.
  url: https://bugs.debian.org/797521
950 951 952 953
random_order_in_antlr_output:
  description: |
    The ANTLR parser generaor can have reordered source lines.
    Fixed in antlr3/3.5.2-3.
954 955 956 957 958
timestamps_in_tex_documents:
  description: |
    The TeX \today macro embeds the build date in the files generated
    from it (DVI, PS, PDF, etc.). This should probably be changed to
    honour SOURCE_DATE_EPOCH from the environment.
959 960
    .
    This can sometimes be explicit in the \maketitle command.
961
  deterministic: True
962 963 964
timestamps_added_by_blast2:
  description: |
    formatdb from blast2 adds a timestamp.
965
  deterministic: True
966 967 968 969 970 971 972 973 974 975
randomness_in_r_rdb_rds_databases:
  status:
    done
  description: |
    R creates .rdb files and .rds with some randomness. They are a serialisation of some
    sorts, related to lazy loading of modules?
    Randomness seems to come from using absolute paths in .rd[bs] files.
    .
    Is not related to https://bugs.debian.org/774031 / r_base_appends_built_header_to_description_files
    .
976
    We have a pending patch to fix most of these (463/478) packages at the time
977 978 979 980 981 982 983 984 985 986 987 988 989 990
    of writing) upstream in R:
    .
    https://stat.ethz.ch/pipermail/r-devel/2017-April/074138.html
    .
    When this is accepted into R upstream, commit 28d4af25 may be
    (un-)reverted to remove these packages. In the meantime, please do not
    remove this issue, nor mark it as deterministic, nor untag these packages.
    .
    The remaining ~15 packages are not completely fixed by this patch, so this
    issue should remain, even when our upstream patch is accepted. These
    packages will need to be investigated and fixed individually, see our blog
    post on how to do that:
    .
    https://reproducible.alioth.debian.org/blog/posts/reproducing-r-packages/
991 992 993 994
python-ply_compiled_parse_tables:
  description: |
    python-ply generates parse tables (eg. parsetab.py) that are
    non-deterministic.
995 996 997
    .
    This is a deeper issue than simply writing them out determinstically
    ("write_table" in yacc.py) but rather further up the chain within PLY.
998 999
    .
  url: https://github.com/dabeaz/ply/issues/79
1000 1001 1002
python-ply_lextokens:
  description: |
    python-ply generates _lextokens variables with nondetermistic ordering.
1003
  url: https://bugs.debian.org/890620
1004 1005 1006
ftbfs_due_to_disorderfs:
  description: |
    collect FTBFS related to disorderfs, eg. read errors, etc.
1007 1008 1009 1010
timestamps_in_manpages_generated_by_docbook_utils:
  description: |
    docbook2man from docbook-utils adds the build date into generated manpages, which also contain locale variations.
  url: https://bugs.debian.org/800797
1011
  deterministic: True
1012
python_shebang_and_dependency_nondeterministically_3_or_3_point_5:
1013 1014
  description: |
    The initial line of python programs is #!/usr/bin/python3.5 in build1 and #!/usr/bin/python3 in build2.
1015 1016 1017 1018 1019 1020 1021 1022 1023
    This is caused by us building multiple Python versions into separate
    directories under {build_dir} but then installing them to the *same*
    {destdir}.
    .
    If any of these builds complete in under 1 second, distutils may decide to
    skip copying files to {destdir} as it incorrectly believes them to be
    up-to-date. This will result in a package arbitrarily containing scripts
    with different version shebangs and, by extension, binary dependencies.
  url: https://bugs.debian.org/804339
1024 1025 1026 1027 1028
timestamps_in_directories:
  description: |
    Timestamps of one or more directories change from build1 to build2. This is probably a debhelper issue
    and it's different from varying_mtimes_in_data_tar_gz_or_control_tar_gz which is mainly for packages that
    do not try to build reproducibly yet.
1029
  url: https://bugs.debian.org/802005
1030
  deterministic: True
1031 1032 1033
random_order_in_static_libraries:
  description: |
    order of members in a static library change between build1 and build2
1034 1035 1036 1037 1038 1039 1040 1041 1042
random_order_in_md5sums:
  description: |
    order of files in md5sums (in control.tar.gz) differ from build1 to build2. This only happens in
    packages not using dh_md5sums and it's easily fixed by sorting the output of "find" before
    piping it to md5sum. Example:
    .
    cd debian/tmp && \
        find * -type f ! -regex "^DEBIAN/.*" -print0 |\
        LC_ALL=C sort -z | xargs -0r md5sum > DEBIAN/md5sums
1043 1044 1045 1046
ftbfs_uninvestigated_test_failures:
  description: |
    Packages that can compile their binaries without problems but then fail
    one or more tests for unidentified reasons.
1047 1048 1049
timestamps_in_pdf_content:
  description: |
    The timestamp is not in the PDF metadata, but embedded in the actual content (text).
1050 1051
    Note: Use timestamps_in_tex_documents instead, which is more specific, if the PDF was created
    by a TeX/LaTeX document using \today macro.
1052
  deterministic: True
1053 1054 1055
different_encoding_in_html_by_docbook_xsl:
  description: |
    Docbook XSL can vary the encoding it uses depending on locale.
1056 1057
timestamps_in_ppu_generated_by_fpc:
  description: |
Reiner Herrmann's avatar
Reiner Herrmann committed
1058
    The freepascal compiler (fpc) embeds timestamps into unit files (ppu).
1059
    This is not a problem when the source file is not modified at build time, but if eg. the source file is patched by a debian patch from quilt, the timestamp of this file is set to build time and propagated in the binary.
1060
  url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInPPUGeneratedByFPC
1061
  deterministic: True
1062 1063 1064 1065 1066
ftbfs_old_compat_debheper_compat_level:
  description: |
    debhelper 9.20151116 removed support for the compat levels 1, 2.
    So those packages now fail to build.
  url: https://lists.debian.org/debian-devel/2015/09/msg00257.html
1067
  deterministic: True
Reiner Herrmann's avatar
Reiner Herrmann committed
1068 1069 1070 1071
timestamps_in_documentation_generated_with_libwibble:
  description: |
    libwibble can generate manpages for applications using it.
    While doing so, it embeds the current date into the manpage.
Jemimah O.'s avatar
Jemimah O. committed
1072
  url: https://sources.debian.net/src/libwibble/latest/wibble/commandline/doc.cpp/#L320
1073
  deterministic: True
Reiner Herrmann's avatar
Reiner Herrmann committed
1074 1075 1076
copyright_year_in_documentation_generated_by_sphinx:
  description: |
    Sphinx is embedding the current year into copyright statements in generated documentation.
Reiner Herrmann's avatar
Reiner Herrmann committed
1077
  See also: https://bugs.debian.org/820895
Jemimah O.'s avatar
Jemimah O. committed
1078
  url: https://sources.debian.net/src/sphinx/latest/sphinx/themes/basic/layout.html/#L191
1079 1080 1081 1082 1083
timestamps_in_documentation_generated_by_glib_genpod:
  description: |
    Glib::GenPod in libglib-perl generates POD documentation that embeds
    the current year in a copyright notice.
    .
Jemimah O.'s avatar
Jemimah O. committed
1084
    https://sources.debian.net/src/libglib-perl/latest/lib/Glib/GenPod.pm/#L43
1085
    .
1086
    Fixed in libglib-perl 3:1.321-1.
1087
  deterministic: True
1088 1089 1090 1091
random_hashes_in_cython_output:
  description: |
    Cython generates .c/.cpp code from a Python-like syntax. Some of it is has
    random numbers in it.
1092 1093 1094 1095
random_order_in_cython_output:
  description: |
    Cython generates .c code from a Python-like syntax. Some of it is in
    non-deterministic order.
1096
  url: https://bugs.debian.org/806493
Reiner Herrmann's avatar
Reiner Herrmann committed
1097 1098 1099 1100
timestamps_in_python_code_generated_by_pyside:
  description: |
    The resource compiler from pyside-tools embeds a creation timestamp into the generated Python source.
  url: https://bugs.debian.org/806527
1101
  deterministic: True
1102 1103 1104 1105 1106
timestamps_in_sym_l_files_generated_by_malaga:
  description:
    Malaga, a system for automatic language analysis, includes the current time
    in its output header files.
    .
Jemimah O.'s avatar
Jemimah O. committed
1107 1108 1109
    https://sources.debian.net/src/malaga/latest/malaga_files.h/#L34
    https://sources.debian.net/src/malaga/latest/malaga_files.c/#L79
    https://sources.debian.net/src/malaga/latest/malaga_files.c/#L88
1110
  deterministic: True
1111 1112 1113
timestamps_in_edj_files_generated_by_edje_cc:
  description:
    /usr/bin/edje_cc from libedje-bin writes timestamps.
1114
  deterministic: True
1115 1116 1117
timestamps_in_copyright_added_by_perl_dist_zilla:
  description:
    distzilla adds "Copyright $current_year" to .pm files
1118
  deterministic: True
1119 1120
random_contents_in_dat_files_generated_by_chasen-dictutils_makemat:
  description:
Bernhard M. Wiedemann's avatar
Bernhard M. Wiedemann committed
1121
    /usr/lib/x86_64-linux-gnu/chasen/makemat from chasen-dictutils generates
1122
    .dat files with some random/non-determimistic contents.
Bernhard M. Wiedemann's avatar
Bernhard M. Wiedemann committed
1123
    Solved by patch in https://bugs.debian.org/881231
1124 1125 1126 1127
timestamps_in_documentation_generated_by_pandoc:
  description:
    Pandoc writes a timestamp in the HTML and manpages it generates.
  deterministic: True
1128 1129 1130 1131
nondeterminstic_output_generated_by_moarvm:
  description:
    moarvm creates .moarvm files that have non-deterministic identifiers,
    possibly to ensure uniqueness. unknown source.
1132
    The upcoming 2019.04 moarvm release should fix all these issues.
1133 1134 1135 1136 1137
nondeterminstic_output_in_warnings_generated_by_breathe:
  description:
    If you use "doxygenfunction" sphinx directive provided by breathe and the
    function is ambiguous, then the warning message injected into the docs can
    be non-determinstic.
Chris Lamb's avatar
Chris Lamb committed
1138
  url: https://bugs.debian.org/809186
1139 1140 1141 1142
qt_translate_noop_nondeterminstic_ordering:
  description:
    QT_TRANSLATE_NOOP macro creates a sqlite database with entry IDs (?) that
    are nondeterminstic
1143 1144 1145 1146
build_date_in_manpage_generated_by_spf13_cobra:
  description: |
    'Auto generated by spf13/cobra'
    Fix merged upstream https://github.com/spf13/cobra/pull/735
1147 1148 1149 1150 1151 1152
timestamps_in_manpages_added_by_golang_cobra:
  description:
    Go's "cobra" doc generator adds timezone-varying timestamp of (what is
    probably) the current time.
    .
    Homepage is https://godoc.org/github.com/spf13/cobra
1153 1154 1155 1156
timestamps_in_manpages_added_by_golang_go_flags:
  description:
    golang-go-flags adds the current time to manpages.
  url: http://sources.debian.net/src/golang-go-flags/1.1-1/man.go/#L177
1157 1158 1159 1160 1161 1162 1163
lxqt_translate_desktop_binary_file_matched_under_certain_locales:
  description:
    The lxqt_translate_desktop QT/LXDE CMake utility methods calls grep which,
    under certain locales, generates a "Binary file matched" instead of the
    actual match.
    .
    Seems to be code-copied everywhere, alas.
1164 1165 1166
    .
    The affected packages have been already fixed upstream, no need to send
    more patches for this issue :)
1167 1168 1169
timestamps_in_manpages_generated_by_autogen:
  description: |
    autogen adds a timestamp in manpages it generates.
1170
  deterministic: True
1171 1172 1173 1174
captures_shell_variable_in_autofoo_script:
  description: |
    Something looking like autotools is capturing SHELL for use at
    runtime, which should probably be fixed to /bin/sh anyway.
1175
    .
Chris Lamb's avatar
Chris Lamb committed
1176
    Autotools also capturing the build path.
1177 1178 1179
varying_ordering_in_data_tar_gz_or_control_tar_gz:
  description: |
    Previously part of not_using_dh_builddeb
Jérémy Bobbio's avatar
Jérémy Bobbio committed
1180 1181 1182 1183
timestamps_generated_by_xbean_spring:
  description: |
    xbean-spring adds timestamps to files it adds in META-INF.
  deterministic: True
Jérémy Bobbio's avatar
Jérémy Bobbio committed
1184 1185 1186 1187 1188
timestamps_generated_by_mangosdk_spiprocessor:
  description: |
    org.mangosdk.spi.processor.SpiProcessor adds timestamps to files it creates
    in META-INF.
  deterministic: True
1189 1190 1191 1192 1193
copyright_year_in_comments_generated_by_ckbuilder:
  description: |
    CKBuilder.utils.copyright adds current year in the copyright header of
    generated files.
  determimistic: True
1194 1195 1196 1197 1198
timestamps_in_htm_by_gap:
  description: |
    The etc/convert.pl script from gap embeds timestamps with the current time
    and using the local language in the HTM files it produces.
  determimistic: True
1199 1200 1201 1202 1203 1204 1205
unsorted_file_glob_by_cmake:
  description: |
    File lists are generated in a CMakeLists.txt file with file(GLOB ...), which varies
    with the readdir() order. This file list is passed to add_executable / add_library or
    otherwise used for generating an output.
    A solution is to sort the lists: list(SORT SRC_FILES)
  url: https://bugs.debian.org/824263
1206 1207 1208 1209 1210 1211
scons_doesnt_pass_environment_to_build_tools:
  description: |
    The build system SCons doesn't pass environment variables to the build tools (compilers etc.) by default.
    See scons(1):
    "scons does not automatically propagate the external environment used to execute scons to the commands used to build target files. This is so that builds will be guaranteed repeatable regardless of the environment variables set at the time scons is invoked"
    This prevents for example that SOURCE_DATE_EPOCH can be read by build tools.
1212
ruby_mkmf_makefile_unsorted_objects:
1213 1214 1215 1216 1217
  description: |
    Ruby projects which also include C sources and use create_makefile from mkmf.rb (typically in ext/.../extconf.rb) will be unreproducible, because the list of object files in the generated Makefile is unsorted.
    .
    Many of those packages are likely affected:
    https://codesearch.debian.net/perpackage-results/path%3Aextconf.rb%20create_makefile/2/page_0
1218
    .
Jemimah O.'s avatar
Jemimah O. committed
1219 1220
    ruby: https://sources.debian.net/src/ruby2.3/latest/lib/mkmf.rb/#L2180
    jruby: https://sources.debian.net/src/jruby/latest/lib/ruby/shared/mkmf.rb/#L1488
Reiner Herrmann's avatar
Reiner Herrmann committed
1221
  url: https://bugs.debian.org/825569
1222