Skip to content
Snippets Groups Projects
Commit 04011f28 authored by Jakub Jirutka's avatar Jakub Jirutka :flag_ua:
Browse files

testing/libabigail: new aport

parent f1951673
No related branches found
No related tags found
2 merge requests!39304[3.16] main/expat: security upgrade to 2.4.9,!38881testing/libabigail: new aport
Pipeline #136046 passed with warnings
Patch-Source: https://sourceware.org/git/?p=libabigail.git;a=commit;h=11987989859520541d785c0b3129b562b6672d4c
--
From 11987989859520541d785c0b3129b562b6672d4c Mon Sep 17 00:00:00 2001
From: David Seifert <soap@gentoo.org>
Date: Sat, 29 Jan 2022 20:31:07 +0100
Subject: [PATCH] Find fts-standalone on musl
When using the musl C library fts is optional. So we need to detect
its presence by looking at the fts-standalone pkgconfig module.
This patch does that.
This comes from Gentoo bug https://bugs.gentoo.org/831571
* configure.ac: Invoke AC_CANONICAL_HOST to compute the host_cpu,
host_vendor, host_os parts of the 'host" variable. Then if the
host_os ends up with "musl" then, check for the fts-standalone
pkgconfig module and record the fts library into
FTS_{LIBS,CFLAGS}.
* src/Makefile.am: Link to $FTS_LIBS and use $FTS_CFLAGS for
compilation.
* tools/Makefile.am: Likewise.
* tools/abisym.cc: Include libgen.h
* tools/kmidiff.cc: Remove useless fts.h header file.
Signed-off-by: David Seifert <soap@gentoo.org>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
configure.ac | 7 +++++++
src/Makefile.am | 4 ++--
tools/Makefile.am | 3 ++-
tools/kmidiff.cc | 1 -
4 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
index 29130175..019bdbac 100644
--- a/configure.ac
+++ b/configure.ac
@@ -161,6 +161,7 @@ dnl check for dependencies
dnl *************************************************
AC_PROG_CXX
+AC_CANONICAL_HOST
AC_USE_SYSTEM_EXTENSIONS
AC_PROG_INSTALL
@@ -219,6 +220,12 @@ AS_IF([test "x$ac_cv_bad_fts" = "xyes"],
[CFLAGS="$CFLAGS -DBAD_FTS=1",
CXXFLAGS="$CXXFLAGS -DBAD_FTS=1"])
+dnl On musl, we need to find fts-standalone
+AS_CASE(
+ [${host_os}], [*-musl*], [
+ PKG_CHECK_MODULES([FTS], [fts-standalone])
+])
+
dnl Check for dependency: libelf, libdw, libebl (elfutils)
dnl Note that we need to use at least elfutils 0.159 but
dnl at that time elfutils didnt have pkgconfig capabilities
diff --git a/src/Makefile.am b/src/Makefile.am
index 29da1ecf..1591224f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -46,12 +46,12 @@ if CTF_READER
libabigail_la_SOURCES += abg-ctf-reader.cc
endif
-libabigail_la_LIBADD = $(DEPS_LIBS)
+libabigail_la_LIBADD = $(DEPS_LIBS) $(FTS_LIBS)
libabigail_la_LDFLAGS = -lpthread -Wl,--as-needed -no-undefined
CUSTOM_MACROS = -DABIGAIL_ROOT_SYSTEM_LIBDIR=\"${libdir}\"
AM_CPPFLAGS=\
-$(CUSTOM_MACROS) $(DEPS_CPPFLAGS) \
+$(CUSTOM_MACROS) $(DEPS_CPPFLAGS) $(FTS_CFLAGS) \
-Wall -I$(abs_top_srcdir) -I$(abs_top_srcdir)/include \
-I$(abs_top_builddir)/include -I$(abs_top_builddir)
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 648a71b5..f7592b60 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -37,7 +37,8 @@ abicompat_LDADD = $(abs_top_builddir)/src/libabigail.la
abipkgdiff_SOURCES = abipkgdiff.cc
abipkgdiffdir = $(bindir)
-abipkgdiff_LDADD = $(abs_top_builddir)/src/libabigail.la
+abipkgdiff_CPPFLAGS = $(FTS_CFLAGS)
+abipkgdiff_LDADD = $(abs_top_builddir)/src/libabigail.la $(FTS_LIBS)
abipkgdiff_LDFLAGS = -pthread
kmidiff_SOURCES = kmidiff.cc
diff --git a/tools/kmidiff.cc b/tools/kmidiff.cc
index b802348f..2e88baa7 100644
--- a/tools/kmidiff.cc
+++ b/tools/kmidiff.cc
@@ -11,7 +11,6 @@
#include <sys/types.h>
#include <dirent.h>
-#include <fts.h>
#include <cstring>
#include <string>
#include <vector>
--
2.37.1
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=libabigail
pkgver=2.0
pkgrel=0
pkgdesc="The ABI Generic Analysis and Instrumentation Library"
url="https://sourceware.org/libabigail/"
arch="all"
license="Apache-2.0 WITH LLVM-exception"
makedepends="
autoconf
automake
elfutils-dev
libtool
libxml2-dev
musl-fts-dev
py3-sphinx
"
checkdepends="
bash
python3
"
subpackages="
$pkgname-dev
$pkgname-tools
$pkgname-doc
$pkgname-bash-completion
"
source="http://mirrors.kernel.org/sourceware/libabigail/libabigail-$pkgver.tar.gz
0001-Find-fts-standalone-on-musl.patch
musl-fts.patch
musl-compat.patch
apk.patch
"
prepare() {
default_prepare
# FIXME: This test segfaults, dunno why.
sed -i '/\bruntestreaddwarf\b/d' \
tests/Makefile.am
# FIXME
case "$CARCH" in aarch64 | armhf | armv7 | s390x)
sed -i '/\bruntestdiffpkg\b/d' tests/Makefile.am
esac
autoreconf -fi
}
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
--enable-rpm=no \
--enable-rpm415=no \
--enable-debug-self-comparison=no \
--enable-deb=no \
--enable-tar=yes \
--enable-apidoc=no \
--enable-manual=yes \
--enable-bash-completion=yes \
--enable-fedabipkgdiff=no \
--enable-python3=yes
make
make -C doc/manuals man
}
check() {
make check check-self-compare || {
cat tests/test-suite.log
return 1
}
}
package() {
make DESTDIR="$pkgdir" install
make -C doc/manuals DESTDIR="$pkgdir" install-man-and-info-doc
cd bash-completion
install -D -m644 -t "$pkgdir"/usr/share/bash-completion/completions/ \
abicompat \
abidiff \
abidw \
abilint \
abipkgdiff
}
tools() {
pkgdesc="$pkgdesc (CLI tools)"
depends="$pkgname=$pkgver-r$pkgrel"
amove usr/bin
}
sha512sums="
288f63f3495f0cd38258c50b78f30a573e43ab60494fefa22c8cba6d6776c5f94742ffea26297a232b78d25f6804f1b3f51febd59ec487733e6ef683cef2c180 libabigail-2.0.tar.gz
6273c995bafd6ca0a5d732b55978cd3fa92cd4a483df4c04f1523ffc80240417dc3136e0717239e6b90a76dd64211fef3b57278ff0c75da78e004662d11c7c66 0001-Find-fts-standalone-on-musl.patch
d789a76dfedf9e74c13906aa72da4f9f4113484a98326f662ed9a2badbd29d7fb5e402272bfe24dbdfaf44992ba6a9be3d8ecbdda275910e00cf4f0abaac96e2 musl-fts.patch
0f22568359bedfd5b469b0b74319e2f72b39f06da8396d31e94bbd7fff383fb440f4662d4f45875054c1d481881924c0283657baabe3abf1c3998f45f750c968 musl-compat.patch
78bdbb2fd285b5dd2ceaac8a3631e433d4f154b6882c09be7117ef4ead35f872a19b33ca21e1c8d738baa78e3784aebd2d25c731b50a8c3c3c47d616dc33b5fd apk.patch
"
Detect .apk as tarballs.
This is based on https://github.com/void-linux/void-packages/blob/c4880df0bb88e6e9ba08bd22f2ada592a6e60fc7/srcpkgs/libabigail/patches/xbps.patch.
--- a/src/abg-tools-utils.cc
+++ b/src/abg-tools-utils.cc
@@ -690,7 +690,8 @@
|| string_ends_with(file_path, ".tlz")
|| string_ends_with(file_path, ".tar.Z")
|| string_ends_with(file_path, ".taz")
- || string_ends_with(file_path, ".tz"))
+ || string_ends_with(file_path, ".tz")
+ || string_ends_with(file_path, ".apk"))
return FILE_TYPE_TAR;
ifstream in(file_path.c_str(), ifstream::binary);
--- a/tools/abisym.cc.orig
+++ b/tools/abisym.cc
@@ -14,6 +14,7 @@
#include <cstring>
#include <iostream>
#include <sstream>
+#include <libgen.h> // basename()
#include "abg-config.h"
#include "abg-dwarf-reader.h"
#include "abg-ir.h"
--- a/configure.ac
+++ b/configure.ac
@@ -261,6 +261,6 @@
-dnl On musl, we need to find fts-standalone
+dnl On musl, we need to find musl-fts
AS_CASE(
[${host_os}], [*-musl*], [
- PKG_CHECK_MODULES([FTS], [fts-standalone])
+ PKG_CHECK_MODULES([FTS], [musl-fts])
])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment