Project

General

Profile

Bug #9419

eatmydata is not being used in the build chroot

Added by intrigeri over 4 years ago. Updated over 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
Build system
Target version:
Start date:
05/17/2015
Due date:
% Done:

100%

Feature Branch:
bugfix/9419-eatmydata-in-build-chroot;live-build:tails/debian-old-2.0+faketime
Type of work:
Code
Blueprint:
Starter:
Affected tool:

Description

We're using eatmydata to speed up the build a bit. However, it's not actually used for most of the build, since:

  • we currently install eamydata via the first huge apt-get install run, so this one is not covered by eatmydata, which is too bad since it's likely the biggest generator of disk writes;
  • live-build's Chroot function cleans the environment and only passes through a few environment variables to the commands it runs. We need to make it forward LD_PRELOAD. And while we're at it, we can as well forward FAKETIME, which will help when working on #5630.

Related issues

Related to Tails - Bug #9523: Discrepancy between eatmydata versions breaks Jessie build Resolved 06/03/2015
Blocks Tails - Feature #5630: Reproducible builds Resolved 09/23/2015

Associated revisions

Revision 79d7cc6c (diff)
Added by intrigeri over 4 years ago

Install eatmydata via debootstrap.

This ensures that the first (and biggest) `apt-get install' run is actually run
with eatmydata available and enabled.

Refs: #9419

Revision 6593a03a
Added by anonym over 4 years ago

Merge remote-tracking branch 'origin/bugfix/9419-eatmydata-in-build-chroot' into stable

Fix-committed: #9419

History

#1 Updated by intrigeri over 4 years ago

#2 Updated by intrigeri over 4 years ago

  • Status changed from Confirmed to In Progress
  • % Done changed from 0 to 20
  • Feature Branch set to live-build:tails/debian-old-2.0+faketime

The patch has been written and tested. Next step is to update the Debian package and make it so everyone uses the new one when building ISO images.

#3 Updated by intrigeri over 4 years ago

  • % Done changed from 20 to 30

Package updated, but the suite it was uploaded to (bugfix-9419-eatmydata-in-build-chroot) only supports i386. That's an arch:all package anyway, so one can test it by manually installing (with dpkg) the .deb on their builder VM, even if it's most likely an amd64 one.

#4 Updated by intrigeri over 4 years ago

  • Description updated (diff)

#5 Updated by intrigeri over 4 years ago

  • Feature Branch changed from live-build:tails/debian-old-2.0+faketime to bugfix/9419-eatmydata-in-build-chroot;live-build:tails/debian-old-2.0+faketime

#6 Updated by intrigeri over 4 years ago

  • Assignee changed from intrigeri to anonym
  • % Done changed from 30 to 50
  • QA Check set to Ready for QA

#7 Updated by anonym over 4 years ago

  • Status changed from In Progress to Fix committed
  • % Done changed from 50 to 100

#8 Updated by anonym over 4 years ago

  • Assignee deleted (anonym)
  • QA Check changed from Ready for QA to Pass

All instances of

ERROR: ld.so: object '/usr/lib/libeatmydata/libeatmydata.so' from LD_PRELOAD cannot be preloaded: ignored.

have disappeared, which is nice. OTOH my builds aren't much faster:

Without this fix:

real    17m41.917s
user    21m23.228s
sys     4m25.841s

With this fix:

real    17m26.058s
user    20m22.752s
sys     4m15.108s

(I did take into account all manners of caching when doing this "benchmark".)

Not a huge gain. Any way, the big thing is how this will help #5630.

#9 Updated by intrigeri over 4 years ago

  • Related to Bug #9523: Discrepancy between eatmydata versions breaks Jessie build added

#10 Updated by intrigeri over 4 years ago

  • Status changed from Fix committed to Resolved

Also available in: Atom PDF