That looks like it is just what I'm looking for -- but it failed on the first build ID
I tried it on. I'm running a recent Fedora build (3.6.10-4.fc18.i686) on a VM with
libc-2.16.so version 2.16 (compiled with gcc version 4.7.2 20121109). The Build ID for
libc-2.16.so is cf7bdd994de74c7d4a0cff6a0293d96b64681e06, but when I navigate to this
URL:
https://darkserver.fedoraproject.org/buildids/cf7bdd994de74c7d4a0cff6a029...
I get a page that just contains [].
In this particular case I found the .rpm file at
http://mirror.chpc.utah.edu/pub/fedora/linux/updates/18/i386/glibc-2.16-2...,
but I'm curious as to why darkserver does not seem to be working in this case.
-----Original Message-----
From: Mark Wielaard [mailto:mjw@redhat.com]
Sent: Friday, January 25, 2013 10:03 AM
To: Bruce Dawson
Cc: 'elfutils-devel(a)lists.fedorahosted.org'; kushal(a)fedoraproject.org
Subject: Re: Build IDs for finding packages
On Fri, Jan 25, 2013 at 05:47:37PM +0000, Bruce Dawson wrote:
I've started creating my own mapping by crawling the Ubuntu
repositories, downloading each package, extracting the contents, and
creating a .build-id directory containing package URLs. However it
seems like this would be much more easily done by individual distributions.
Do Fedora or any other Linux distributions already have such a
database accessible? Given the URL of a .deb or .rpm file I can easily
extract the contents - I'd just like a more reliable way to find the
package from the Build ID.
For Fedora there is Darkserver
https://darkserver.fedoraproject.org/
Which has an simple API:
* Call to find server version
https://darkserver.fedoraproject.org/serverversion
This will return a dictionary like {'server-version':'0.1'}
* Call to get GNU build-id details
https://darkserver.fedoraproject.org/buildids/0d0669e4ce89ffb335e36d41eac...
This will return a dictionary of build-id details of
0d0669e4ce89ffb335e36d41eacf3dfd04072e17
* Call to get GNU build-id details of an RPM
https://darkserver.fedoraproject.org/rpm2buildids/argyllcms-1.3.6-1.fc16....
This will return a dictionary of build-id details of the rpm
argyllcms-1.3.6-1.fc16.i686
* Call to get download url of a RPM
https://darkserver.fedoraproject.org/package/argyllcms-debuginfo-1.3.6-1....
This will return a download URL of the rpm in a dictionary.
Cheers,
Mark