All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Kocialkowski <contact@paulk.fr>
To: u-boot@lists.denx.de
Subject: [U-Boot] [Reproducible-builds] [PATCH] build: create time and date independent binary
Date: Sun, 19 Jul 2015 16:55:59 +0200	[thread overview]
Message-ID: <1437317759.3542.10.camel@collins> (raw)
In-Reply-To: <201507191436.14384.holger@layer-acht.org>

> sorry for the late reply. 

No problem, I haven't kept you or the list posted on this either.

I got a chance to discuss the issue with Lunar during RMLL 2015 and we
came up with a nice way of doing things, using SOURCE_DATE_EPOCH.

> On Samstag, 13. Juni 2015, Paul Kocialkowski wrote:
> > > you've seen https://reproducible.debian.net/u-boot ?
> > This seems very minimalistic, but it's good to see U-Boot was given
> some
> > attention already!

As far as I understood, this was only for the U-Boot tools.

> > > but maybe you can explain why u-boot needs more reproducibility
> testing
> > > than what there currently is. i'm definitly interested and not
> opposed,
> > > even though I think there shoukd be good reasons to treat some
> software
> > > specially.
> > The point is to make U-Boot reproducible for all possible targets,
> not
> > only the few ones that are supported by U-Boot. 
> 
> I think your sentence is missing some word??!?

not only for the few one that are supported by U-Boot maybe?

Looks good otherwise!

> > I think this requires
> > some extra infrastructure. In that sense, it is very similar to
> > Coreboot.
> > 
> > > (also please note that we currently only have amd64 hw to run our
> tests
> > > on.)
> > 
> > The problem is the same as Coreboot, which uses its own toolchain to
> > build images. We don't need to have native armhf builds for U-Boot,
> > testing with the armhf toolchain that is in Debian should be enough.
>
> I see.

There seem to be two solutions to this:
* Including a script (e.g. the one from coreboot) to build the toolchain
as part of the build process
* Using native builds with visualization on the servers that run the
builds for the reproducible task force

I tend to prefer the second one since it only requires a one-time setup
cost, while the other one, that requires to build toolchains for each
test build, implies a considerably longer build time for each test.

> > I understand, this works out nicely because all the work on Coreboot
> > will be inherited by Libreboot. However, on U-Boot, the work to
> bring
> > reproducible builds has to take place initially. I know for a fact
> that
> > parts of the code use things like __FILE__ or timestamps.
>
> Ah.

Not all the targets are using that though, and the target we used during
RMLL required only timestamp changes to become reproducible (it was the
Cubieboard2 IIRC). Still, I have seen that code around, so it must be
used somewhere, so it should be fixed, too.
 
> > > All this said, if you send me patches, I will probably deploy them
> as I'm
> > > very curious and more reproducibility efforts are good :-) We can
> can
> > > always decide to remove or move them later.
> > 
> > I wish to make all contributions upstream. What would really help at
> > first would be to have all targets built regularly to see where work
> is
> > needed. This is where I think the Debian infrastructure could help,
> in a
> > similar way as what was started for Coreboot.
>
> can you point me to a how to explaining this or tell me those steps,
> starting 
> with "git clone..."?

The basics for building U-Boot are the following (e.g. for the
Cubieboard2 target)
git clone git://git.denx.de/u-boot.git
cd u-boot
make -C $SRC O=$DST CROSS_COMPILE=$CROSS_COMPILE Cubieboard2_defconfig
make -C $SRC O=$DST CROSS_COMPILE=$CROSS_COMPILE

I usually also pass ARCH=$ARCH to make but that's useless, apparently.

Let me know if you need more indications on this.

-- 
Paul Kocialkowski, Replicant developer

Replicant is a fully free Android distribution running on several
devices, a free software mobile operating system putting the emphasis on
freedom and privacy/security.

Website: http://www.replicant.us/
Blog: http://blog.replicant.us/
Wiki/tracker/forums: http://redmine.replicant.us/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150719/78c0c713/attachment.sig>

  parent reply	other threads:[~2015-07-19 14:55 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-12 15:31 [U-Boot] [PATCH] build: create time and date independent binary Heiko Schocher
2015-06-12 20:21 ` Paul Kocialkowski
2015-06-13  9:10   ` [U-Boot] [Reproducible-builds] " Holger Levsen
2015-06-13 18:26     ` Paul Kocialkowski
2015-07-19 12:36       ` Holger Levsen
2015-07-19 13:14         ` Vagrant Cascadian
2015-07-19 15:00           ` Paul Kocialkowski
2015-07-19 15:18             ` Holger Levsen
2015-07-20  6:23           ` Heiko Schocher
2015-07-20  8:03             ` Paul Kocialkowski
2015-07-19 14:55         ` Paul Kocialkowski [this message]
2015-07-19 15:47           ` Holger Levsen
2015-07-19 16:39             ` Paul Kocialkowski
2015-06-15 13:04   ` [U-Boot] " Heiko Schocher
2015-06-13 19:40 ` Chris Kuethe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1437317759.3542.10.camel@collins \
    --to=contact@paulk.fr \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.