diff options
Diffstat (limited to 'pkgs/os-specific/linux/firmware')
-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 |