This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
RE: Build IDs for finding packages
- From: Bruce Dawson <bruced at valvesoftware dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Fri, 25 Jan 2013 18:20:08 +0000
- Subject: RE: Build IDs for finding packages
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/cf7bdd994de74c7d4a0cff6a0293d96b64681e06
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-28.fc18.i686.rpm, 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@lists.fedorahosted.org'; kushal@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/0d0669e4ce89ffb335e36d41eacf3dfd04072e17
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.i686
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.fc16.i686
This will return a download URL of the rpm in a dictionary.
Cheers,
Mark