added core/elfutils

This commit is contained in:
Kevin Mihelich 2023-03-02 13:29:04 +00:00
parent 22c38c963f
commit 25ba268dcd
4 changed files with 353 additions and 0 deletions

145
core/elfutils/PKGBUILD Normal file
View file

@ -0,0 +1,145 @@
# Maintainer: David Runge <dvzrv@archlinux.org>
# Contributor: Laurent Carlier <lordheavym@gmail.com>
# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Andrej Gelenberg <andrej.gelenberg@udo.edu>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - remove default debuginfod url pointing to upstream
pkgbase=elfutils
pkgname=(debuginfod elfutils libelf)
pkgver=0.188
pkgrel=3.1
pkgdesc="Handle ELF object files and DWARF debugging information"
arch=(x86_64)
url="https://sourceware.org/elfutils/"
license=(LGPL3 GPL3)
makedepends=(bzip2 curl gcc-libs libarchive libmicrohttpd sqlite xz zlib zstd)
options=(staticlibs)
source=(https://sourceware.org/$pkgbase/ftp/$pkgver/$pkgbase-$pkgver.tar.bz2{,.sig}
curl_7.85_compat.patch)
sha512sums=('585551b2d937d19d1becfc2f28935db1dd1a3d25571a62f322b70ac8da98c1a741a55d070327705df6c3e2ee026652e0b9a3c733b050a0b0ec5f2fc75d5b74b5'
'SKIP'
'8f731bf2451ffd195a7da939d469486272873fa9fd19c2dc03a5311814840d7a7242b82de42162efc36404bee9a4fb3a6b85e0eb9fbb81e3c15f989cdd288c37')
b2sums=('6b0474f1436eaf6af73b735b9b2ddd5448ab9c03fbaa0be745a31c89ae8f15b0e21a651409c38643ca125794ce82c19d7b46db4a079f3e72cb919d643560e7a4'
'SKIP'
'92b92aefc011b4be7ed00baca28c3447003baa864be58482bf0c220dcd6ad75133c6e34731eaf7e3cc97dbb3e1f85d1fce88cb532c3da37b36802d2c6e7a9e36')
validpgpkeys=(
'47CC0331081B8BC6D0FD4DA08370665B57816A6A' # Mark J. Wielaard <mark@klomp.org>
'EC3CFE88F6CA0788774F5C1D1AA44BE649DE760A' # Mark Wielaard <mjw@gnu.org>
)
_pick() {
local p="$1" f d; shift
for f; do
d="$srcdir/$p/${f#$pkgdir/}"
mkdir -p "$(dirname "$d")"
mv "$f" "$d"
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
done
}
prepare() {
cd $pkgbase-$pkgver
# Use CURLOPT_PROTOCOLS_STR for libcurl >= 7.85.0
# https://sourceware.org/git/?p=elfutils.git;a=commit;h=6560fb26a62ef135a804357ef4f15a47de3e49b3
patch -Np1 < ../curl_7.85_compat.patch
cd ..
# remove failing test due to missing glibc debug package during test: https://bugs.archlinux.org/task/74875
sed -e 's/run-backtrace-native.sh//g' -i $pkgbase-$pkgver/tests/Makefile.am
(
cd $pkgbase-$pkgver
autoreconf -fiv
)
cp -av $pkgbase-$pkgver $pkgbase-test-$pkgver
}
build() {
local configure_options=(
--prefix=/usr
--sysconfdir=/etc
--program-prefix="eu-"
--enable-deterministic-archives
)
(
# fat-lto-objects is required for non-mangled .a files in libelf
CFLAGS+=" -ffat-lto-objects"
cd $pkgbase-$pkgver
./configure "${configure_options[@]}"
make
)
(
cd $pkgbase-test-$pkgver
# debugging information is required for test-suite
CFLAGS+=" -g"
# fat-lto-objects is required for non-mangled .a files in libelf
CFLAGS+=" -ffat-lto-objects"
./configure "${configure_options[@]}"
make
)
}
check() {
make check -C $pkgbase-test-$pkgver
}
package_debuginfod() {
pkgdesc+=" (debuginfod)"
depends=(
gcc-libs
glibc
libarchive libarchive.so
libelf=$pkgver
libmicrohttpd libmicrohttpd.so
sqlite libsqlite3.so
)
optdepends=("elfutils=$pkgver: for translations")
make DESTDIR="$pkgdir" install -C $pkgbase-$pkgver
install -vDm 644 $pkgbase-$pkgver/{AUTHORS,ChangeLog,NEWS,NOTES,README} -t "$pkgdir/usr/share/doc/$pkgname/"
# set the default DEBUGINFOD_URLS environment variable to the distribution's debuginfod URL
#printf "https://debuginfod.archlinux.org\n" > "$pkgdir/etc/debuginfod/archlinux.urls"
(
cd "$pkgdir"
_pick libelf etc/debuginfod/*
_pick libelf etc/profile.d/*
_pick libelf usr/{include,lib}
_pick elfutils usr/bin/eu-*
_pick elfutils usr/share/locale
_pick elfutils usr/share/man/man1/eu-*
_pick elfutils usr/share/man/man3/elf_*
)
}
package_elfutils() {
pkgdesc+=" (utilities)"
depends=(gcc-libs glibc libelf=$pkgver)
mv -v elfutils/* "$pkgdir"
install -vDm 644 $pkgbase-$pkgver/{AUTHORS,ChangeLog,NEWS,NOTES,README} -t "$pkgdir/usr/share/doc/$pkgname/"
}
package_libelf() {
pkgdesc+=" (libraries)"
depends=(
bzip2 libbz2.so
curl libcurl.so
gcc-libs
glibc
xz liblzma.so
zlib
zstd libzstd.so
)
# NOTE: the shared objects can not be added to provides as they are not versioned
mv -v libelf/* "$pkgdir"
install -vDm 644 $pkgbase-$pkgver/{AUTHORS,ChangeLog,NEWS,NOTES,README} -t "$pkgdir/usr/share/doc/$pkgname/"
}

View file

@ -0,0 +1,60 @@
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
index a16165bd1..1ce456327 100644
--- a/debuginfod/debuginfod-client.c
+++ b/debuginfod/debuginfod-client.c
@@ -1336,8 +1336,13 @@ debuginfod_query_server (debuginfod_client *c,
/* Only allow http:// + https:// + file:// so we aren't being
redirected to some unsupported protocol. */
+#if CURL_AT_LEAST_VERSION(7, 85, 0)
+ curl_easy_setopt_ck(data[i].handle, CURLOPT_PROTOCOLS_STR,
+ "http,https,file");
+#else
curl_easy_setopt_ck(data[i].handle, CURLOPT_PROTOCOLS,
(CURLPROTO_HTTP | CURLPROTO_HTTPS | CURLPROTO_FILE));
+#endif
curl_easy_setopt_ck(data[i].handle, CURLOPT_URL, data[i].url);
if (vfd >= 0)
curl_easy_setopt_ck(data[i].handle, CURLOPT_ERRORBUFFER,
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
index 8873fcc8c..692aeccec 100644
--- a/debuginfod/debuginfod-client.c
+++ b/debuginfod/debuginfod-client.c
@@ -1456,7 +1456,7 @@ debuginfod_query_server (debuginfod_client *c,
deflate-compressing proxies, this number is likely to be
unavailable, so -1 may show. */
CURLcode curl_res;
-#ifdef CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
+#if CURL_AT_LEAST_VERSION(7, 55, 0)
curl_off_t cl;
curl_res = curl_easy_getinfo(target_handle,
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T,
@@ -1491,7 +1491,7 @@ debuginfod_query_server (debuginfod_client *c,
if (target_handle) /* we've committed to a server; report its download progress */
{
CURLcode curl_res;
-#ifdef CURLINFO_SIZE_DOWNLOAD_T
+#if CURL_AT_LEAST_VERSION(7, 55, 0)
curl_off_t dl;
curl_res = curl_easy_getinfo(target_handle,
CURLINFO_SIZE_DOWNLOAD_T,
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
index 692aeccec..a16165bd1 100644
--- a/debuginfod/debuginfod-client.c
+++ b/debuginfod/debuginfod-client.c
@@ -105,6 +105,13 @@ void debuginfod_end (debuginfod_client *c) { }
#include <fts.h>
#endif
+/* Older curl.h don't define CURL_AT_LEAST_VERSION. */
+#ifndef CURL_AT_LEAST_VERSION
+ #define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|(z))
+ #define CURL_AT_LEAST_VERSION(x,y,z) \
+ (LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z))
+#endif
+
#include <pthread.h>
static pthread_once_t init_control = PTHREAD_ONCE_INIT;
--
2.31.1

View file

@ -0,0 +1,34 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBE1EKM4BCADLzsfxrLC/dr0NXdfrBHAo7XC5tlPjl+tiRM1AR9ganh2HOZvE
HjtqSEsvV3hyC6RhqI+FA0KS/Uf4o3rIO2HO2DLDvoNSMqr0SRnN4ac6+SS0Ngsk
PRh4CK5VGKDg6jKgD0XSruXjLGG734hzQdwqBG2+c8cHZKYHYfROT/YTn18b0I2m
+fVe4rsNzU5eM3YYp2ec9BPtP28EBgBRP0JjcRDcGds0TindD/tHm+i+xkgJ7Vpi
kA39w/9K+cK0fGVC2DGIvpUG5Y9EbIL1E2qFdNeY4yQcLX9WGeL/1pIkYU/UwJXv
t7v5Y89VwuuQXDocIjLH7HBbgt6woBKyirqFABEBAAG0IU1hcmsgSi4gV2llbGFh
cmQgPG1hcmtAa2xvbXAub3JnPokBVwQTAQgAQQIbAwULCQgHAwUVCgkICwUWAgMB
AAIeAQIXgAIZARYhBEfMAzEIG4vG0P1NoINwZltXgWpqBQJcTjgYBQkQx6pKAAoJ
EINwZltXgWpq43QH/jbspiZP2PZSIKmCEg5Rgfkieg7d+9vPBCJYdln4gePQ3ghZ
Mwi3I4g4paohU6iw9237RlmFFKygqCq8C6MUJK0OE5f/NUw4aSlI1UV1fvfp035+
vr8rMFvHWDCfk8mMqxC9rNlIUCyaHiAHdApbLC9twyaukd/NRQw7ry+JyOoHW35T
Inn2ilDlCf++6Ozr5t2Xaswo4fF6651DUXo9LmZgX15S4W7UX3YMy6L+SMoohWM8
gXQJubq7IKaZL8aCPmHs8uGPb2n7gvIsd3R3eekeOZkTVL1xGQh2nCzUp0h3Ligh
rhCBrHWeML8R2WxWbN9MLWIILQyVCMq+Z7el56O0Hk1hcmsgSi4gV2llbGFhcmQg
PG1qd0BnbnUub3JnPokBVAQTAQgAPgIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIX
gBYhBEfMAzEIG4vG0P1NoINwZltXgWpqBQJcTjgiBQkQx6pKAAoJEINwZltXgWpq
KaAH/3vAW/tWzRujPRfLT0Ng0iUCneUe5sf2mba/bNewUJxmCm9SiAhmmf3L2qte
pH7QwllBzmtIebF/z/XRZjSYdGeY0B9sO1XX+kHDPyZJsdPhbSF+3509UBiFCYQG
3/niQjrgaxCPNeJOyo9pnVJZ8cfsLBGwwunalsCFqZcRdvdFKhgfY17orZ4PdN5Z
4rrecHw5dzScaswGlHZ8EOKvk+p0YbDcdcfAnC/OYOz8B/EYhA+mP/4BMXPnw/Hd
rlwhR6shwCUorh+Tx0UJ6KhpkdQtWDQuBz0DGwvHNlZhveYXwCpi/+acE8kjIWgg
0mYxV9hKlq4kp31lRZ7oeqz0a+m0IU1hcmsgSi4gV2llbGFhcmQgPG1qd0ByZWRo
YXQuY29tPokBVAQTAQgAPgIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgBYhBEfM
AzEIG4vG0P1NoINwZltXgWpqBQJcTjgiBQkQx6pKAAoJEINwZltXgWpqM+QH/id/
YoYi9knZNrjiUDCWbLSU8uVPpD5szxQXk1qNGZP3R2gBER6UeBsYxA1ClbOQbyLw
5SJL1LMcCf/WgqrCXcMgx32JrerPQUHs3SsEHb/Q/BL/NIDDz2xTsZe67dAqPKbr
u50IAYA1aTsahEGRgs8mi6CUUGK5mqtzsQ2Y7OMnZRHAM2RDe5genPbX+dYDq6BF
hRr3vpcYZtOseoZEPILyzfHFMdiFsdG2hMsFh2iNEGLKxTSxT/Eg1idypcvjO1V/
LD/N0yO1buwPd9HbecSz+ZMR5e2CE3uQVjHU1zvlF0PsFEY4Uuu5t7+TeEk8yiCz
hd8xHCV0KnKlQlqTUGA=
=dqmX
-----END PGP PUBLIC KEY BLOCK-----

View file

@ -0,0 +1,114 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
ZbQkMQ==
=28Gd
-----END PGP PUBLIC KEY BLOCK-----