Skip to content
Snippets Groups Projects
Commit d306f842 authored by Simon McVittie's avatar Simon McVittie
Browse files

Use an architecture-qualified name for capsule-symbols, capsule-version


Use pkg-config to find the right one by default. To make sure we can
be cross-architecture, use $PKG_CONFIG, so we can cross between
architectures with an incantation like

    PKG_CONFIG=i386-linux-gnu-pkg-config capsule-init-project ...

Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
parent 1a52f02c
No related branches found
No related tags found
1 merge request!311Build capsule-capture-libs from a bundled copy of libcapsule
......@@ -33,6 +33,14 @@ pkgconfig_DATA = data/capsule.pc
nobase_include_HEADERS = capsule/capsule.h
dist_doc_DATA = $(foreach doc,$(static_docs),doc/$(doc).txt)
install-exec-hook:
cd $(DESTDIR)$(libexecdir) && ln -f capsule-symbols $(host)-capsule-symbols
cd $(DESTDIR)$(libexecdir) && ln -f capsule-version $(host)-capsule-version
uninstall-hook:
cd $(DESTDIR)$(libexecdir) && rm -f $(host)-capsule-symbols
cd $(DESTDIR)$(libexecdir) && rm -f $(host)-capsule-version
# Headers to be included by shim libraries
nobase_include_HEADERS += capsule/capsule-shim.h \
capsule/_ext_dlopen.h \
......
......@@ -34,6 +34,8 @@ AM_INIT_AUTOMAKE([-Wno-portability foreign])
AM_SILENT_RULES([yes])
AC_USE_SYSTEM_EXTENSIONS
AC_SYS_LARGEFILE
# So we can install x86_64-linux-gnu-capsule-symbols etc.
AC_CANONICAL_HOST
LT_INIT
......
......@@ -16,10 +16,10 @@ Usage: $me [OPTIONS] TARGET [TREE [PROJECT-NAME]]
[default: libcapsule's \${pkgdatadir}]
--capsule-symbols-tool=PATH
Use replacement capsule-symbols(1)
[default: ${CAPSULE_SYMBOLS_TOOL:-"$libexec/capsule-symbols"}]
[default: ${CAPSULE_SYMBOLS_TOOL:-ask pkg-config}]
--capsule-version-tool=PATH
Use replacement capsule-version(1)
[default: ${CAPSULE_VERSION_TOOL:-"$libexec/capsule-version"}]
[default: ${CAPSULE_VERSION_TOOL:-ask pkg-config}]
--search-tree=PATH Find libraries to be proxied in this
chroot, sysroot or container now
[default: TREE or /]
......@@ -135,9 +135,10 @@ lcbase=${base,,};
dest=${3:-$base-proxy};
: "${CAPSULE_MKINC:="$(pkg-config --variable=makeinc capsule)"}"
: "${CAPSULE_SYMBOLS_TOOL:="$libexec/capsule-symbols"}"
: "${CAPSULE_VERSION_TOOL:="$libexec/capsule-version"}"
: "${PKG_CONFIG:=pkg-config}"
: "${CAPSULE_MKINC:="$($PKG_CONFIG --variable=makeinc capsule)"}"
: "${CAPSULE_SYMBOLS_TOOL:="$($PKG_CONFIG --variable=CAPSULE_SYMBOLS_TOOL capsule)"}"
: "${CAPSULE_VERSION_TOOL:="$($PKG_CONFIG --variable=CAPSULE_VERSION_TOOL capsule)"}"
: "${runtime_tree:="$tree"}"
: "${search_tree:="$tree"}"
......
......@@ -155,7 +155,8 @@ do
esac
done
: "${CAPSULE_SYMBOLS_TOOL:="$top/capsule-symbols"}"
: "${PKG_CONFIG:=pkg-config}"
: "${CAPSULE_SYMBOLS_TOOL:="$($PKG_CONFIG --variable=CAPSULE_SYMBOLS_TOOL capsule)"}"
if [ "$#" -lt 4 ] || [ "$#" -gt 6 ];
then
......@@ -202,7 +203,7 @@ then
symbol_file=${proxy_src%.c}.symbols;
fi
sharedir=$(pkg-config --variable=makeinc capsule)
sharedir=$($PKG_CONFIG --variable=makeinc capsule)
exec >$proxy_src.tmp;
......
......@@ -8,8 +8,8 @@ datadir=@datarootdir@
makeinc=@datadir@/libcapsule
CAPSULE_INIT_PROJECT_TOOL=@libexecdir@/capsule-init-project
CAPSULE_MKSTUBLIB_TOOL=@libexecdir@/capsule-mkstublib
CAPSULE_SYMBOLS_TOOL=@libexecdir@/capsule-symbols
CAPSULE_VERSION_TOOL=@libexecdir@/capsule-version
CAPSULE_SYMBOLS_TOOL=@libexecdir@/@host@-capsule-symbols
CAPSULE_VERSION_TOOL=@libexecdir@/@host@-capsule-version
Name: capsule
Description: segregated dynamic linking library
......
......@@ -40,7 +40,7 @@ Description:
Package: libcapsule-dev-bin
Architecture: amd64 i386
Multi-Arch: foreign
Multi-Arch: same
Section: libdevel
Priority: optional
Depends:
......
usr/lib/libcapsule/*-capsule-symbols
usr/lib/libcapsule/*-capsule-version
usr/lib/libcapsule/capsule-init-project
usr/lib/libcapsule/capsule-mkstublib
usr/lib/libcapsule/capsule-symbols
usr/lib/libcapsule/capsule-version
usr/share/libcapsule/*
usr/share/man/man1/*
......@@ -13,6 +13,10 @@ override_dh_auto_configure:
override_dh_install:
rm -f debian/tmp/usr/lib/*/*.la
find debian/tmp/usr/lib/libcapsule/installed-tests -name '*.la' -print -delete
# Only keep the architecture-qualified version, delete the unprefixed
# version, so we can be Multi-Arch: same
rm -f debian/tmp/usr/lib/libcapsule/capsule-symbols
rm -f debian/tmp/usr/lib/libcapsule/capsule-version
dh_install --fail-missing
override_dh_autoreconf:
......
......@@ -36,17 +36,20 @@ chdir $test_tempdir;
my ($output, $ignored, $error);
my $PKG_CONFIG = $ENV{PKG_CONFIG};
$PKG_CONFIG = 'pkg-config' unless length $PKG_CONFIG;
my $CAPSULE_INIT_PROJECT_TOOL = $ENV{CAPSULE_INIT_PROJECT_TOOL};
if (! length $CAPSULE_INIT_PROJECT_TOOL) {
$CAPSULE_INIT_PROJECT_TOOL = `pkg-config --variable=CAPSULE_INIT_PROJECT_TOOL capsule`;
$CAPSULE_INIT_PROJECT_TOOL = `$PKG_CONFIG --variable=CAPSULE_INIT_PROJECT_TOOL capsule`;
chomp $CAPSULE_INIT_PROJECT_TOOL;
}
my $CAPSULE_SYMBOLS_TOOL = $ENV{CAPSULE_SYMBOLS_TOOL};
if (! length $CAPSULE_SYMBOLS_TOOL) {
$CAPSULE_SYMBOLS_TOOL = `pkg-config --variable=CAPSULE_SYMBOLS_TOOL capsule`;
$CAPSULE_SYMBOLS_TOOL = `$PKG_CONFIG --variable=CAPSULE_SYMBOLS_TOOL capsule`;
chomp $CAPSULE_SYMBOLS_TOOL;
}
......
......@@ -36,17 +36,20 @@ chdir $test_tempdir;
my ($output, $ignored, $error);
my $PKG_CONFIG = $ENV{PKG_CONFIG};
$PKG_CONFIG = 'pkg-config' unless length $PKG_CONFIG;
my $CAPSULE_INIT_PROJECT_TOOL = $ENV{CAPSULE_INIT_PROJECT_TOOL};
if (! length $CAPSULE_INIT_PROJECT_TOOL) {
$CAPSULE_INIT_PROJECT_TOOL = `pkg-config --variable=CAPSULE_INIT_PROJECT_TOOL capsule`;
$CAPSULE_INIT_PROJECT_TOOL = `$PKG_CONFIG --variable=CAPSULE_INIT_PROJECT_TOOL capsule`;
chomp $CAPSULE_INIT_PROJECT_TOOL;
}
my $CAPSULE_SYMBOLS_TOOL = $ENV{CAPSULE_SYMBOLS_TOOL};
if (! length $CAPSULE_SYMBOLS_TOOL) {
$CAPSULE_SYMBOLS_TOOL = `pkg-config --variable=CAPSULE_SYMBOLS_TOOL capsule`;
$CAPSULE_SYMBOLS_TOOL = `$PKG_CONFIG --variable=CAPSULE_SYMBOLS_TOOL capsule`;
chomp $CAPSULE_SYMBOLS_TOOL;
}
......
......@@ -793,8 +793,11 @@ if (defined $flatpak_runtime) {
$container_tree = "$data_home/flatpak/runtime/$flatpak_runtime/active/files";
}
my $PKG_CONFIG = $ENV{PKG_CONFIG};
$PKG_CONFIG = 'pkg-config' unless length $PKG_CONFIG;
unless (defined $CAPSULE_VERSION_TOOL) {
$CAPSULE_VERSION_TOOL = `pkg-config --variable=CAPSULE_VERSION_TOOL capsule`;
$CAPSULE_VERSION_TOOL = `$PKG_CONFIG --variable=CAPSULE_VERSION_TOOL capsule`;
chomp $CAPSULE_VERSION_TOOL;
}
......
......@@ -37,11 +37,15 @@ diag "Working directory: $test_tempdir";
my $host = "${test_tempdir}/host";
mkdir($host);
my $PKG_CONFIG = $ENV{PKG_CONFIG};
$PKG_CONFIG = 'pkg-config' unless length $PKG_CONFIG;
my $CAPSULE_SYMBOLS_TOOL = $ENV{CAPSULE_SYMBOLS_TOOL};
unless (defined $CAPSULE_SYMBOLS_TOOL) {
$CAPSULE_SYMBOLS_TOOL = `pkg-config --variable=CAPSULE_SYMBOLS_TOOL capsule`;
$CAPSULE_SYMBOLS_TOOL = `$PKG_CONFIG --variable=CAPSULE_SYMBOLS_TOOL capsule`;
chomp $CAPSULE_SYMBOLS_TOOL;
like($CAPSULE_SYMBOLS_TOOL, qr{/(?:[^-/]+-){1,2}linux-gnu[^-/]*-capsule-symbols$});
}
if (length $ENV{CAPSULE_TESTS_UNINSTALLED}) {
......
......@@ -37,11 +37,15 @@ diag "Working directory: $test_tempdir";
my $host = "${test_tempdir}/host";
mkdir($host);
my $PKG_CONFIG = $ENV{PKG_CONFIG};
$PKG_CONFIG = 'pkg-config' unless length $PKG_CONFIG;
my $CAPSULE_VERSION_TOOL = $ENV{CAPSULE_VERSION_TOOL};
unless (defined $CAPSULE_VERSION_TOOL) {
$CAPSULE_VERSION_TOOL = `pkg-config --variable=CAPSULE_VERSION_TOOL capsule`;
$CAPSULE_VERSION_TOOL = `$PKG_CONFIG --variable=CAPSULE_VERSION_TOOL capsule`;
chomp $CAPSULE_VERSION_TOOL;
like($CAPSULE_VERSION_TOOL, qr{/(?:[^-/]+-){1,2}linux-gnu[^-/]*-capsule-version$});
}
my $output;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment