fwupd: split daemon again

In 1.3.5, fwupdprivate library was made into a shared fwupdplugin library.
This library is considered semi-private and is used by fwupd daemon and
fwupd plug-ins and now possibly third party plug-ins.

The fwupdplugin library refers to the plug-in directory in fwupd.out
causing a dependency cycle. For that reason we need to move it to out.
This commit is contained in:
Jan Tojnar 2020-02-06 18:49:23 +01:00
parent 444538ee97
commit c942013dbc
No known key found for this signature in database
GPG key ID: 7FAB2A15F7A607A4
2 changed files with 51 additions and 1 deletions

View file

@ -94,7 +94,10 @@ stdenv.mkDerivation rec {
sha256 = "02mzn3whk5mba4nxyrkypawr1gzjx79n4nrkhrp8vja6mxxgsf10";
};
outputs = [ "out" "dev" "devdoc" "man" "installedTests" ];
# libfwupd goes to lib
# daemon, plug-ins and libfwupdplugin go to out
# CLI programs go to out
outputs = [ "out" "lib" "dev" "devdoc" "man" "installedTests" ];
nativeBuildInputs = [
meson
@ -148,6 +151,10 @@ stdenv.mkDerivation rec {
./fix-paths.patch
./add-option-for-installation-sysconfdir.patch
# install plug-ins and libfwupdplugin to out,
# they are not really part of the library
./install-fwupdplugin-to-out.patch
# installed tests are installed to different output
# we also cannot have fwupd-tests.conf in $out/etc since it would form a cycle
(substituteAll {
@ -203,6 +210,12 @@ stdenv.mkDerivation rec {
"--localstatedir=/var"
"--sysconfdir=/etc"
"-Dsysconfdir_install=${placeholder "out"}/etc"
# We do not want to place the daemon into lib (cyclic reference)
"--libexecdir=${placeholder "out"}/libexec"
# Our builder only adds $lib/lib to rpath but some things link
# against libfwupdplugin which is in $out/lib.
"-Dc_link_args=-Wl,-rpath,${placeholder "out"}/lib"
] ++ stdenv.lib.optionals (!haveDell) [
"-Dplugin_dell=false"
"-Dplugin_synaptics=false"

View file

@ -0,0 +1,37 @@
diff --git a/libfwupdplugin/meson.build b/libfwupdplugin/meson.build
index 0abcd45c..51cbc912 100644
--- a/libfwupdplugin/meson.build
+++ b/libfwupdplugin/meson.build
@@ -114,7 +114,8 @@
],
link_args : vflag,
link_depends : fwupdplugin_mapfile,
- install : true
+ install : true,
+ install_dir : bindir / '..' / 'lib',
)
fwupdplugin_pkgg = import('pkgconfig')
@@ -167,7 +168,8 @@
'GUsb-1.0',
fwupd_gir[0],
],
- install : true
+ install : true,
+ install_dir_typelib : bindir / '..' / 'lib' / 'girepository-1.0',
)
gnome.generate_vapi('fwupdplugin',
sources : fwupd_gir[0],
diff --git a/meson.build b/meson.build
index b1a523d2..00125997 100644
--- a/meson.build
+++ b/meson.build
@@ -389,7 +389,7 @@
if host_machine.system() == 'windows'
plugin_dir = 'fwupd-plugins-3'
else
- plugin_dir = join_paths(libdir, 'fwupd-plugins-3')
+ plugin_dir = join_paths(bindir, '..', 'lib', 'fwupd-plugins-3')
endif
conf.set_quoted('FWUPD_PLUGINDIR', plugin_dir)
endif