1SUMMARY = "A simple daemon to allow session software to update firmware" 2LICENSE = "LGPL-2.1-or-later" 3LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" 4 5DEPENDS = "glib-2.0 libxmlb json-glib libjcat gcab vala-native" 6 7SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \ 8 file://0001-meson-Avoid-absolute-buildtime-paths-in-generated-he.patch \ 9 file://run-ptest" 10SRC_URI[sha256sum] = "719a791ac4ba5988aeb93ec42778bd65d33cb075d0c093b5c04e5e1682be528a" 11 12UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" 13 14# Machine-specific as we examine MACHINE_FEATURES to decide whether to build the UEFI plugins 15PACKAGE_ARCH = "${MACHINE_ARCH}" 16 17inherit meson vala gobject-introspection systemd bash-completion pkgconfig gi-docgen ptest manpages useradd 18 19GIDOCGEN_MESON_OPTION = 'docs' 20GIDOCGEN_MESON_ENABLE_FLAG = 'docgen' 21GIDOCGEN_MESON_DISABLE_FLAG = 'disabled' 22 23PACKAGECONFIG ??= "curl gnutls gudev gusb \ 24 ${@bb.utils.filter('DISTRO_FEATURES', 'bluetooth polkit', d)} \ 25 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd offline', '', d)} \ 26 ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'plugin_uefi_capsule plugin_uefi_pk', '', d)} \ 27 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests plugin_dummy', '', d)} \ 28 hsi \ 29 plugin_android_boot \ 30 plugin_acpi_phat \ 31 plugin_bcm57xx \ 32 plugin_emmc \ 33 plugin_ep963x \ 34 plugin_fastboot \ 35 plugin_flashrom \ 36 plugin_gpio \ 37 plugin_igsc \ 38 plugin_intel_me \ 39 plugin_intel_spi \ 40 plugin_logitech_bulkcontroller \ 41 plugin_logitech_scribe \ 42 plugin_modem_manager \ 43 plugin_msr \ 44 plugin_nitrokey \ 45 plugin_nvme \ 46 plugin_parade_lspcon \ 47 plugin_pixart_rf \ 48 plugin_realtek_mst \ 49 plugin_redfish \ 50 plugin_synaptics_mst \ 51 plugin_synaptics_rmi \ 52 plugin_scsi \ 53 plugin_uf2 \ 54 plugin_upower \ 55 sqlite" 56 57PACKAGECONFIG[bluetooth] = "-Dbluez=true,-Dbluez=false" 58PACKAGECONFIG[compat-cli] = "-Dcompat_cli=true,-Dcompat_cli=false" 59PACKAGECONFIG[consolekit] = "-Dconsolekit=true,-Dconsolekit=false,consolekit" 60PACKAGECONFIG[curl] = "-Dcurl=true,-Dcurl=false,curl" 61PACKAGECONFIG[firmware-packager] = "-Dfirmware-packager=true,-Dfirmware-packager=false" 62PACKAGECONFIG[fish-completion] = "-Dfish_completion=true,-Dfish_completion=false" 63PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls" 64PACKAGECONFIG[gudev] = "-Dgudev=true,-Dgudev=false,libgudev" 65PACKAGECONFIG[gusb] = "-Dgusb=true,-Dgusb=false,libgusb" 66PACKAGECONFIG[hsi] = "-Dhsi=true,-Dhsi=false" 67PACKAGECONFIG[libarchive] = "-Dlibarchive=true,-Dlibarchive=false,libarchive" 68PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false" 69PACKAGECONFIG[metainfo] = "-Dmetainfo=true,-Dmetainfo=false" 70PACKAGECONFIG[offline] = "-Doffline=true,-Doffline=false" 71PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false,polkit" 72PACKAGECONFIG[sqlite] = "-Dsqlite=true,-Dsqlite=false,sqlite3" 73PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd" 74PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gcab-native" 75 76 77# TODO plugins-all meta-option that expands to all plugin_*? 78PACKAGECONFIG[plugin_acpi_phat] = "-Dplugin_acpi_phat=true,-Dplugin_acpi_phat=false" 79PACKAGECONFIG[plugin_android_boot] = "-Dplugin_android_boot=enabled,-Dplugin_android_boot=disabled" 80PACKAGECONFIG[plugin_bcm57xx] = "-Dplugin_bcm57xx=true,-Dplugin_bcm57xx=false" 81PACKAGECONFIG[plugin_cfu] = "-Dplugin_cfu=true,-Dplugin_cfu=false" 82PACKAGECONFIG[plugin_dell] = "-Dplugin_dell=true,-Dplugin_dell=false,libsmbios" 83PACKAGECONFIG[plugin_dummy] = "-Dplugin_dummy=true,-Dplugin_dummy=false" 84PACKAGECONFIG[plugin_emmc] = "-Dplugin_emmc=true,-Dplugin_emmc=false" 85PACKAGECONFIG[plugin_ep963x] = "-Dplugin_ep963x=true,-Dplugin_ep963x=false" 86PACKAGECONFIG[plugin_fastboot] = "-Dplugin_fastboot=true,-Dplugin_fastboot=false" 87PACKAGECONFIG[plugin_flashrom] = "-Dplugin_flashrom=true,-Dplugin_flashrom=false,flashrom" 88PACKAGECONFIG[plugin_gpio] = "-Dplugin_gpio=true,-Dplugin_gpio=false" 89PACKAGECONFIG[plugin_igsc] = "-Dplugin_igsc=enabled,-Dplugin_igsc=disabled" 90PACKAGECONFIG[plugin_intel_me] = "-Dplugin_intel_me=enabled,-Dplugin_intel_me=disabled" 91PACKAGECONFIG[plugin_intel_spi] = "-Dplugin_intel_spi=true -Dlzma=true,-Dplugin_intel_spi=false -Dlzma=false,xz" 92PACKAGECONFIG[plugin_logitech_bulkcontroller] = "-Dplugin_logitech_bulkcontroller=true,-Dplugin_logitech_bulkcontroller=false,protobuf-c-native protobuf-c" 93PACKAGECONFIG[plugin_logitech_scribe] = "-Dplugin_logitech_scribe=enabled,-Dplugin_logitech_scribe=disabled" 94PACKAGECONFIG[plugin_modem_manager] = "-Dplugin_modem_manager=true,-Dplugin_modem_manager=false,libqmi modemmanager" 95PACKAGECONFIG[plugin_msr] = "-Dplugin_msr=true,-Dplugin_msr=false,cpuid" 96PACKAGECONFIG[plugin_nitrokey] = "-Dplugin_nitrokey=true,-Dplugin_nitrokey=false" 97PACKAGECONFIG[plugin_nvme] = "-Dplugin_nvme=true,-Dplugin_nvme=false" 98PACKAGECONFIG[plugin_parade_lspcon] = "-Dplugin_parade_lspcon=true,-Dplugin_parade_lspcon=false" 99PACKAGECONFIG[plugin_pixart_rf] = "-Dplugin_pixart_rf=true,-Dplugin_pixart_rf=false" 100PACKAGECONFIG[plugin_powerd] = "-Dplugin_powerd=true,-Dplugin_powerd=false" 101PACKAGECONFIG[plugin_realtek_mst] = "-Dplugin_realtek_mst=true,-Dplugin_realtek_mst=false" 102PACKAGECONFIG[plugin_redfish] = "-Dplugin_redfish=true,-Dplugin_redfish=false" 103PACKAGECONFIG[plugin_scsi] = "-Dplugin_scsi=true,-Dplugin_scsi=false" 104PACKAGECONFIG[plugin_synaptics_mst] = "-Dplugin_synaptics_mst=true,-Dplugin_synaptics_mst=false" 105PACKAGECONFIG[plugin_synaptics_rmi] = "-Dplugin_synaptics_rmi=true,-Dplugin_synaptics_rmi=false" 106PACKAGECONFIG[plugin_tpm] = "-Dplugin_tpm=true,-Dplugin_tpm=false,tpm2-tss" 107# Turn off the capsule splash as it needs G-I at buildtime, which isn't currently supported 108PACKAGECONFIG[plugin_uefi_capsule] = "-Dplugin_uefi_capsule=true -Dplugin_uefi_capsule_splash=false,-Dplugin_uefi_capsule=false,efivar fwupd-efi" 109PACKAGECONFIG[plugin_uefi_pk] = "-Dplugin_uefi_pk=true,-Dplugin_uefi_pk=false" 110PACKAGECONFIG[plugin_uf2] = "-Dplugin_uf2=true,-Dplugin_uf2=false" 111PACKAGECONFIG[plugin_upower] = "-Dplugin_upower=true,-Dplugin_upower=false" 112 113# Always disable these plugins on non-x86 platforms as they don't compile or are useless 114DISABLE_NON_X86 = "plugin_intel_me plugin_intel_spi plugin_msr" 115DISABLE_NON_X86:x86 = "" 116DISABLE_NON_X86:x86-64 = "" 117PACKAGECONFIG:remove = "${DISABLE_NON_X86}" 118 119USERADD_PACKAGES = "${PN}" 120USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 --shell /bin/nologin polkitd" 121 122do_install:append() { 123 if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then 124 #Fix up permissions on polkit rules.d to work with rpm4 constraints 125 chmod 700 ${D}/${datadir}/polkit-1/rules.d 126 chown polkitd:root ${D}/${datadir}/polkit-1/rules.d 127 fi 128} 129 130FILES:${PN} += "${libdir}/fwupd-plugins-* \ 131 ${libdir}/fwupd-${PV} \ 132 ${systemd_unitdir} \ 133 ${datadir}/fish \ 134 ${datadir}/metainfo \ 135 ${datadir}/icons \ 136 ${datadir}/dbus-1 \ 137 ${datadir}/polkit-1 \ 138 ${nonarch_libdir}/modules-load.d" 139 140FILES:${PN}-ptest += "${libexecdir}/installed-tests/ \ 141 ${datadir}/installed-tests/" 142RDEPENDS:${PN}-ptest += "gnome-desktop-testing" 143