Project

General

Profile

Bug #14767

Feature #5630: Reproducible builds

ikiwiki does not order news items deterministically

Added by anonym 2 months ago. Updated 26 days ago.

Status:
Resolved
Priority:
Elevated
Assignee:
-
Category:
Build system
Target version:
Start date:
10/03/2017
Due date:
% Done:

100%

QA Check:
Pass
Feature Branch:
Type of work:
Code
Blueprint:
Starter:
Affected tool:

Description

Here's an excerpt from the attached diffoscope report (from a user):

│ ├── /usr/share/doc/tails/website/index.it.html
│ │┄ ordering differences only
│ │ @@ -225,20 +225,20 @@
│ │  
│ │  <div id="news" class="home-section blocks three-blocks">
│ │  
│ │  <h1>Novità</h1>
│ │  
│ │  <div class="archivepage">
│ │  
│ │ -<a href="./news/version_3.2.it.html">Tails 3.2 is out</a><br />
│ │ +<a href="./news/social_contract.it.html">Annuncio del Contratto Sociale di Tails</a><br />
│ │  
│ │  </div>
│ │  <div class="archivepage">
│ │  
│ │ -<a href="./news/social_contract.it.html">Annuncio del Contratto Sociale di Tails</a><br />
│ │ +<a href="./news/version_3.2.it.html">Tails 3.2 is out</a><br />
│ │  
│ │  </div>

diffoscope.txt.bz2 (3.71 KB) anonym, 10/03/2017 04:03 PM


Related issues

Related to Tails - Bug #12726: There should be a date on the notes in the News section of the website Resolved 06/17/2017

Associated revisions

Revision 4f896ff4 (diff)
Added by intrigeri 2 months ago

[it] Fix buggy translation (refs: #14767).

That breaks ISO reproducibilty.

Revision 598a022e (diff)
Added by anonym about 2 months ago

bin/sanity-check-website: add script to sanity check the website.

Currently it ensures all blog posts and security advisories have valid
Ikiwiki 'meta date' directives, since we depend on it for
reproducibility (refs: #14767).

Will-fix: #12726

History

#1 Updated by anonym 2 months ago

  • Priority changed from Normal to Elevated

For now I've asked the user to retry, to get an idea of how common it is, and if other wiki pages may be affected.

intrigeri, lamby: I'm not feeling comfortable with ikiwiki's perl code base, and wonder how you feel about taking over doing the actual investigation + patching, if it comes to that.

#2 Updated by intrigeri 2 months ago

intrigeri, lamby: I'm not feeling comfortable with ikiwiki's perl code base, and wonder how you feel about taking over doing the actual investigation + patching, if it comes to that.

I've already hunted and fixed a few such things in ikiwiki, and know its codebase pretty well due to my serious involvement in it in the past. Count me in!

#3 Updated by anonym 2 months ago

  • Assignee changed from anonym to intrigeri
  • QA Check set to Dev Needed

intrigeri wrote:

intrigeri, lamby: I'm not feeling comfortable with ikiwiki's perl code base, and wonder how you feel about taking over doing the actual investigation + patching, if it comes to that.

I've already hunted and fixed a few such things in ikiwiki, and know its codebase pretty well due to my serious involvement in it in the past. Count me in!

Great! Then I hand this ticket over to you now; 3 out of 3 "external" reports exhibit this exact issue (and nothing else) so it indeed seems like a legit problem.

#4 Updated by anonym 2 months ago

anonym wrote:

intrigeri wrote:

intrigeri, lamby: I'm not feeling comfortable with ikiwiki's perl code base, and wonder how you feel about taking over doing the actual investigation + patching, if it comes to that.

I've already hunted and fixed a few such things in ikiwiki, and know its codebase pretty well due to my serious involvement in it in the past. Count me in!

Great! Then I hand this ticket over to you now; 3 out of 3 "external" reports exhibit this exact issue (and nothing else) so it indeed seems like a legit problem.

With this I mean that all three reports are identical. (Well, modulo things that are expected to change, like tempfile-generated names in "│ │┄ stderr from `unsquashfs -s /space/azazel/tmp/tmpesvak427_diffoscope/0/372`:").

#5 Updated by intrigeri 2 months ago

The social contract announce should not be listed there at all. It is listed because of a buggy translation:

msgid "[[!meta date=\"Tue May 9 12:34:56 2017\"]]\n" 
msgstr "[!meta date=\"Tue May 9 12:34:56 2017\"]]\n" 

(missing "[")

… and that's enough to break reproducibility given how we decided to order stuff in there.

4f896ff48aec4b3e5a862a69e2831dcf74b60cbb should fix it.

But that's clearly to fragile, so I'll report back on #12726 about this problem, that needs safeguards way earlier in our dev/release process (that other ticket also needs reliable dates IIRC).

#6 Updated by intrigeri 2 months ago

  • Related to Bug #12726: There should be a date on the notes in the News section of the website added

#7 Updated by intrigeri 2 months ago

  • Status changed from Confirmed to In Progress
  • Assignee changed from intrigeri to anonym
  • % Done changed from 0 to 50
  • QA Check changed from Dev Needed to Ready for QA
  • Type of work changed from Research to Code

#8 Updated by anonym about 2 months ago

  • Status changed from In Progress to Fix committed
  • Assignee deleted (anonym)
  • % Done changed from 50 to 100
  • QA Check changed from Ready for QA to Pass

#9 Updated by anonym about 2 months ago

  • Status changed from Fix committed to In Progress

#10 Updated by intrigeri about 2 months ago

  • Status changed from In Progress to Fix committed

(anonym, I guess you triggered the last status change by mistake. If not, please explain what's left to do here.)

#11 Updated by anonym 26 days ago

  • Status changed from Fix committed to Resolved

Also available in: Atom PDF