diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2020-02-06 18:49:23 +0100 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2020-02-06 22:32:13 +0100 |
commit | c942013dbc270cdeb3f36c8d36d9b0c29b57c057 (patch) | |
tree | 99c8450c8fd258bd3b4aa81b98f50106a3689f28 /pkgs/os-specific | |
parent | 444538ee973c408072f1f26f0ba8de882a92c127 (diff) | |
download | nixlib-c942013dbc270cdeb3f36c8d36d9b0c29b57c057.tar nixlib-c942013dbc270cdeb3f36c8d36d9b0c29b57c057.tar.gz nixlib-c942013dbc270cdeb3f36c8d36d9b0c29b57c057.tar.bz2 nixlib-c942013dbc270cdeb3f36c8d36d9b0c29b57c057.tar.lz nixlib-c942013dbc270cdeb3f36c8d36d9b0c29b57c057.tar.xz nixlib-c942013dbc270cdeb3f36c8d36d9b0c29b57c057.tar.zst nixlib-c942013dbc270cdeb3f36c8d36d9b0c29b57c057.zip |
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.
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r-- | pkgs/os-specific/linux/firmware/fwupd/default.nix | 15 | ||||
-rw-r--r-- | pkgs/os-specific/linux/firmware/fwupd/install-fwupdplugin-to-out.patch | 37 |
2 files changed, 51 insertions, 1 deletions
diff --git a/pkgs/os-specific/linux/firmware/fwupd/default.nix b/pkgs/os-specific/linux/firmware/fwupd/default.nix index 280145a6838e..ee5e9fe5a64d 100644 --- a/pkgs/os-specific/linux/firmware/fwupd/default.nix +++ b/pkgs/os-specific/linux/firmware/fwupd/default.nix @@ -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" diff --git a/pkgs/os-specific/linux/firmware/fwupd/install-fwupdplugin-to-out.patch b/pkgs/os-specific/linux/firmware/fwupd/install-fwupdplugin-to-out.patch new file mode 100644 index 000000000000..347b6862146d --- /dev/null +++ b/pkgs/os-specific/linux/firmware/fwupd/install-fwupdplugin-to-out.patch @@ -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 |