Bug#862073: [rb-general] Uploading buildinfo files to buildinfo.debian.net

2019-05-02 Thread Holger Levsen
On Mon, Apr 29, 2019 at 10:43:11AM -0700, Vagrant Cascadian wrote:
> On 2019-04-29, Vagrant Cascadian wrote:
> > It seems to be missing the .buildinfo.N, which in some cases are the
> > actual .buildinfo files built by the buildd's and the corresponding .deb
> > files shipped in the archive.
> >
> > The .buildinfo without a numbered increment is frequently provided by
> > developers who follow best practices and do source-only uploads that
> > include a signed .buildinfo file. I'll take a look at the code and see
> > if I can't propose a simple fix.
> It seems like you did in fact catch these, and named them as
> ARCH-source.buildinfo. Nice!

in the pool structure the filenames are changed so that the original
filename $package_$version_$arch.buildinfo is replaced with one where
the $arch part is replaced like this:

ARCHITECTURE=$(grep ^Architecture: $FILE | cut -d ' ' -f2-|sed 's# #-#g')

or in plain English: with the Architecture: field from inside the file,
where the architectures are concated with hyphons, so that

Architecture: all source amd64

results in a $package_$version_all-source-amd64.buildinfo file.

And then strangely there are a few hundred cases of identically named
$package_$version_$arch.buildinfo files (out of allmost a million) in
the /mm/dd structure, these get a .0 suffix. And then there are 4
cases with 3 identically named files, which get a .1 suffix.
(This needs to be investigated why this happens...)


-- 
tschau,
Holger

---
   holger@(debian|reproducible-builds|layer-acht).org
   PGP fingerprint: B8BF 5413 7B09 D35C F026 FE9D 091A B856 069A AA1C

we'll all die. make a difference while you can. disobey. smile.


signature.asc
Description: PGP signature


Bug#862073: [rb-general] Uploading buildinfo files to buildinfo.debian.net

2019-05-02 Thread Holger Levsen
Hi,

please note that https://buildinfos.debian.net/buildinfo-pool/ is
currently being recreated and thus not have all data again yet...

(I've added support for 3 (and more) .buildinfo files with the same
name and noticed that the numbered links were created in the wrong
order, thus the recreation.)

On Mon, Apr 29, 2019 at 10:39:30AM -0700, Vagrant Cascadian wrote:
> I really like that it provides a view in a "pool" style, e.g.:
>   https://buildinfos.debian.net/buildinfo-pool/u/u-boot/

thanks. (and me too)

> I almost wonder if we shouldn't try to coordinate archiving this data
> with:
>   https://www.softwareheritage.org/

thats an interesting idea!

> It might be a slight stretch of their mission to call .buildinfo files
> "source code" ... but I wouldn't mind making the case that .buildinfo
> files should be considered source code.

indeed.

> > buildinfos.debian.net has all .buildinfo files since December 2016.
> Very cool! It is definitely a much simpler approach and catches many
> corner cases (unsigned, signatures, etc.) that my method doesn't!

yup. 

> It seems to be missing the .buildinfo.N, which in some cases are the
> actual .buildinfo files built by the buildd's and the corresponding .deb
> files shipped in the archive.

it has them. see eg dpkg (once the pool structure is back).

> The .buildinfo without a numbered increment is frequently provided by
> developers who follow best practices and do source-only uploads that
> include a signed .buildinfo file. I'll take a look at the code and see
> if I can't propose a simple fix.

please do.

> The presence of multiple .buildinfo* files does make it harder to know
> which .buildinfo to use to reproduce a build from the archive if they
> differ, unfortunately.

the one with the correct hash for the .deb

> Unsigned .buildinfo files are of limited usefulness, if we're really
> trying to establish a chain of verification... though perhaps it's still
> better than no .buildinfo at all, since the archive verifies the
> .changes file before including it... though obviously a compromised
> archive could inject malicious unsigned .buildinfo files more easily and
> requires some trust needed in specific parties.

yes. unsigned .buildinfo files should not exist. for this to happen, as
a first step, I plan to record this state in the db (in a new table...)


-- 
tschau,
Holger

---
   holger@(debian|reproducible-builds|layer-acht).org
   PGP fingerprint: B8BF 5413 7B09 D35C F026 FE9D 091A B856 069A AA1C

Our civilization is being sacrificed for the opportunity of a very small number
of people to continue making enormous amounts of money...  It is the sufferings
of the many  which pay  for the luxuries  of the few...  You say  you love your
children  above all else,  and yet  you are stealing  their future  in front of 
their very eyes...


signature.asc
Description: PGP signature


Bug#862073: [rb-general] Uploading buildinfo files to buildinfo.debian.net

2019-04-29 Thread Vagrant Cascadian
On 2019-04-29, Vagrant Cascadian wrote:
> It seems to be missing the .buildinfo.N, which in some cases are the
> actual .buildinfo files built by the buildd's and the corresponding .deb
> files shipped in the archive.
>
> The .buildinfo without a numbered increment is frequently provided by
> developers who follow best practices and do source-only uploads that
> include a signed .buildinfo file. I'll take a look at the code and see
> if I can't propose a simple fix.

It seems like you did in fact catch these, and named them as
ARCH-source.buildinfo. Nice!

live well,
  vagrant


signature.asc
Description: PGP signature


Bug#862073: [rb-general] Uploading buildinfo files to buildinfo.debian.net

2019-04-29 Thread Vagrant Cascadian
On 2019-04-29, Holger Levsen wrote:
> On Fri, Feb 15, 2019 at 01:51:40PM -0800, Vagrant Cascadian wrote:
>> On 2019-02-15, Holger Levsen wrote:

> we now have two similar implementations of a buildinfo server for Debian
> .buildinfo files:
>
> - https://buildinfo.debian.net - this service exists since Oct. 2016
> - https://buildinfos.debian.net - this service exist since March 2019

I really like that it provides a view in a "pool" style, e.g.:

  https://buildinfos.debian.net/buildinfo-pool/u/u-boot/


I almost wonder if we shouldn't try to coordinate archiving this data
with:

  https://www.softwareheritage.org/

It might be a slight stretch of their mission to call .buildinfo files
"source code" ... but I wouldn't mind making the case that .buildinfo
files should be considered source code.


>> The vast majority of buildinfo files uploaded to the archive should be
>> present in buildinfo.debian.net since November 2018. I also "manually"
>> uploaded all the available buildinfo files from 2017-2018 (most of the
>> very small number from 2016 failed for one reason or another).
>
> buildinfos.debian.net has all .buildinfo files since December 2016.

Very cool! It is definitely a much simpler approach and catches many
corner cases (unsigned, signatures, etc.) that my method doesn't!


It seems to be missing the .buildinfo.N, which in some cases are the
actual .buildinfo files built by the buildd's and the corresponding .deb
files shipped in the archive.

The .buildinfo without a numbered increment is frequently provided by
developers who follow best practices and do source-only uploads that
include a signed .buildinfo file. I'll take a look at the code and see
if I can't propose a simple fix.

The presence of multiple .buildinfo* files does make it harder to know
which .buildinfo to use to reproduce a build from the archive if they
differ, unfortunately.


>> There are a few individual developers uploading unsigned .buildinfo
>> files, as well as a few buildds for non-release architectures
>> (e.g. hurd-i386, kfreebsd-*). To hadle those, I actually had a
>> legitimate use for the technique described in:
>>   https://xkcd.com/1181/
>> Which basically means I don't even bother attempting to upload unsigned
>> buildinfo files.
>
> see above :) (=buildinfos.d.n has those.)

Unsigned .buildinfo files are of limited usefulness, if we're really
trying to establish a chain of verification... though perhaps it's still
better than no .buildinfo at all, since the archive verifies the
.changes file before including it... though obviously a compromised
archive could inject malicious unsigned .buildinfo files more easily and
requires some trust needed in specific parties.


live well,
  vagrant


signature.asc
Description: PGP signature


Bug#862073: [rb-general] Uploading buildinfo files to buildinfo.debian.net

2019-04-29 Thread Holger Levsen
On Mon, Apr 29, 2019 at 04:53:16PM +, Holger Levsen wrote:
> - https://buildinfos.debian.net - this service exist since March 2019

to expand on this:

provides two views:

https://buildinfos.debian.net/ftp-master.debian.org/buildinfo/ - this
has the same contents as /srv/ftp-master.debian.org/buildinfo/ on
(ftp-master|coccia).debian.org.

https://buildinfos.debian.net/buildinfo-pool/ - this is a pool view on
the same data. (implemented using links to the former.)


-- 
tschau,
Holger

---
   holger@(debian|reproducible-builds|layer-acht).org
   PGP fingerprint: B8BF 5413 7B09 D35C F026 FE9D 091A B856 069A AA1C


signature.asc
Description: PGP signature


Bug#862073: [rb-general] Uploading buildinfo files to buildinfo.debian.net

2019-04-29 Thread Holger Levsen
Hi,

On Fri, Feb 15, 2019 at 01:51:40PM -0800, Vagrant Cascadian wrote:
> On 2019-02-15, Holger Levsen wrote:
> > I've just been re-reading this old and joyful thread... :)
> I come back to it now and then myself... :)

and here we go again...

I'll also kind of top-post now, because I want to emphasize one
important bit of information:

we now have two similar implementations of a buildinfo server for Debian
.buildinfo files:

- https://buildinfo.debian.net - this service exists since Oct. 2016
- https://buildinfos.debian.net - this service exist since March 2019

I've set up the latter because the former doesnt provide an easy means
to only get .buildinfo files for .debs from ftp.debian.org and because
it was easy to set it up. (The code lives in jenkins.debian.net.git)

I'm not really happy about the duplication of services and the very
similar names, but I couldnt come up with a better name and this is all
prototyping land anyway, so - for now - I just went ahead.

I'm also not sure how to proceed with those two services in future. For
now I think it's ok to have both and let us experiment with both.


> > On Thu, Oct 25, 2018 at 12:56:20PM -0700, Vagrant Cascadian wrote:
> >> I started the process of uploading all the .buildinfo files available on
> >> ftp.debian.org to buildinfo.debian.net.
> >> 
> >> Then I hope to set up a cron job to do uploads at least daily with a
> >> little better error-handling Would be more ideal to have something
> >> more formally integrated into infrastructure, but maybe I can work out a
> >> proof-of-concept implementation as a basis for something that can be
> >> integrated.
> >
> > did you manage to setup this cron job?
> 
> I had thought I left more detail about the current status, but
> apparently not! Thanks for the nudge.
> 
> I have a cron job running on coccia.debian.org since November, as my own
> "vagrant" user:

I have a similar cronjob on coccia...

>   coccia.debian.org:~vagrant/rb-buildinfos/upload-buildinfos
> 
> Logs for various upload passes in are the same directory, which should
> probably be migrated to sqlite or some real database. The script is
> checked into it's own git repository, but not properly pushed
> anywhere.
> 
> The cron job runs several times per day, checking the queues for
> buildinfos uploaded both the current day yesterday to make sure we don't
> miss a .buildinfo file uploaded in the middle of a processing run. If
> coccia were down for longer than 24 hours, it might need to manually be
> run to check for missing ones.
> 
> The vast majority of buildinfo files uploaded to the archive should be
> present in buildinfo.debian.net since November 2018. I also "manually"
> uploaded all the available buildinfo files from 2017-2018 (most of the
> very small number from 2016 failed for one reason or another).

buildinfos.debian.net has all .buildinfo files since December 2016.

> There are a small number of buildinfo uploads that buildinfo.debian.net
> rejects for some reason probably related to ed25519 signing keys:
>   https://github.com/lamby/buildinfo.debian.net/issues/51

see above :) (=buildinfos.d.n has those.)

> There are a few individual developers uploading unsigned .buildinfo
> files, as well as a few buildds for non-release architectures
> (e.g. hurd-i386, kfreebsd-*). To hadle those, I actually had a
> legitimate use for the technique described in:
>   https://xkcd.com/1181/
> Which basically means I don't even bother attempting to upload unsigned
> buildinfo files.

see above :) (=buildinfos.d.n has those.)
 
> So, it's working, but we probably would need a little more work on it to
> integrate into debian's infrastructure.

this is also true for buildinfos.d.n.


-- 
tschau,
Holger

---
   holger@(debian|reproducible-builds|layer-acht).org
   PGP fingerprint: B8BF 5413 7B09 D35C F026 FE9D 091A B856 069A AA1C

In Europe there are people prosecuted by courts because they saved other people
from drowning in the  Mediterranean Sea.  That is almost as absurd  as if there
were people being prosecuted because they save humans from drowning in the sea.


signature.asc
Description: PGP signature


Bug#862073: [rb-general] Uploading buildinfo files to buildinfo.debian.net

2019-02-16 Thread Mattia Rizzolo
On Fri, Feb 15, 2019 at 01:51:40PM -0800, Vagrant Cascadian wrote:
> There are a few individual developers uploading unsigned .buildinfo
> files, as well as a few buildds for non-release architectures
> (e.g. hurd-i386, kfreebsd-*). To hadle those, I actually had a
> legitimate use for the technique described in:
> 
>   https://xkcd.com/1181/

Do you think you could provide more info about the kbsd and hurd
buildinfo that are unsigned?

James, who manages the current kbsd buildd, reads ftp.d.o bugs so should
be receiving this email (and I can otherwise nudge him), and I could
poke youpi for the hurd buildds.  But I would expect both of them to be
running unstable, and so have up-to-date software.

-- 
regards,
Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540  .''`.
more about me:  https://mapreri.org : :'  :
Launchpad user: https://launchpad.net/~mapreri  `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-


signature.asc
Description: PGP signature


Bug#862073: [rb-general] Uploading buildinfo files to buildinfo.debian.net

2019-02-15 Thread Vagrant Cascadian
On 2019-02-15, Holger Levsen wrote:
> I've just been re-reading this old and joyful thread... :)

I come back to it now and then myself... :)


> On Thu, Oct 25, 2018 at 12:56:20PM -0700, Vagrant Cascadian wrote:
>> I started the process of uploading all the .buildinfo files available on
>> ftp.debian.org to buildinfo.debian.net.
>> 
>> Then I hope to set up a cron job to do uploads at least daily with a
>> little better error-handling Would be more ideal to have something
>> more formally integrated into infrastructure, but maybe I can work out a
>> proof-of-concept implementation as a basis for something that can be
>> integrated.
>
> did you manage to setup this cron job?

I had thought I left more detail about the current status, but
apparently not! Thanks for the nudge.

I have a cron job running on coccia.debian.org since November, as my own
"vagrant" user:

  coccia.debian.org:~vagrant/rb-buildinfos/upload-buildinfos

Logs for various upload passes in are the same directory, which should
probably be migrated to sqlite or some real database. The script is
checked into it's own git repository, but not properly pushed
anywhere.

The cron job runs several times per day, checking the queues for
buildinfos uploaded both the current day yesterday to make sure we don't
miss a .buildinfo file uploaded in the middle of a processing run. If
coccia were down for longer than 24 hours, it might need to manually be
run to check for missing ones.

The vast majority of buildinfo files uploaded to the archive should be
present in buildinfo.debian.net since November 2018. I also "manually"
uploaded all the available buildinfo files from 2017-2018 (most of the
very small number from 2016 failed for one reason or another).

There are a small number of buildinfo uploads that buildinfo.debian.net
rejects for some reason probably related to ed25519 signing keys:

  https://github.com/lamby/buildinfo.debian.net/issues/51

There are a few individual developers uploading unsigned .buildinfo
files, as well as a few buildds for non-release architectures
(e.g. hurd-i386, kfreebsd-*). To hadle those, I actually had a
legitimate use for the technique described in:

  https://xkcd.com/1181/

Which basically means I don't even bother attempting to upload unsigned
buildinfo files.


So, it's working, but we probably would need a little more work on it to
integrate into debian's infrastructure.


live well,
  vagrant


signature.asc
Description: PGP signature


Bug#862073: [rb-general] Uploading buildinfo files to buildinfo.debian.net

2019-02-15 Thread Holger Levsen
Hi Vagrant,

I've just been re-reading this old and joyful thread... :)

On Thu, Oct 25, 2018 at 12:56:20PM -0700, Vagrant Cascadian wrote:
> I started the process of uploading all the .buildinfo files available on
> ftp.debian.org to buildinfo.debian.net.
> 
> Then I hope to set up a cron job to do uploads at least daily with a
> little better error-handling Would be more ideal to have something
> more formally integrated into infrastructure, but maybe I can work out a
> proof-of-concept implementation as a basis for something that can be
> integrated.

did you manage to setup this cron job?


-- 
tschau,
Holger

---
   holger@(debian|reproducible-builds|layer-acht).org
   PGP fingerprint: B8BF 5413 7B09 D35C F026 FE9D 091A B856 069A AA1C


signature.asc
Description: PGP signature