fwupd: add package
authorLukas Voegl <redacted>
Mon, 24 Jun 2024 14:28:42 +0000 (16:28 +0200)
committerRosen Penev <redacted>
Tue, 24 Sep 2024 14:14:20 +0000 (07:14 -0700)
Signed-off-by: Lukas Voegl <redacted>
libs/libqmi/Config.in
libs/libqmi/Makefile
utils/fwupd/Config.in [new file with mode: 0644]
utils/fwupd/Makefile [new file with mode: 0644]
utils/fwupd/files/etc/init.d/fwupd [new file with mode: 0644]
utils/fwupd/test.sh [new file with mode: 0644]

index 7dfa7ca524c7bdc82227c6d7862e00dda79b3da7..46f36117351a238fbf42af3f91b1f17c7678f95c 100644 (file)
@@ -19,9 +19,11 @@ choice
 
        config LIBQMI_COLLECTION_MINIMAL
                depends on !MODEMMANAGER_WITH_QMI
+               depends on !FWUPD_PLUGIN_MODEMMANAGER
                bool "minimal"
 
        config LIBQMI_COLLECTION_BASIC
+               depends on !FWUPD_PLUGIN_MODEMMANAGER
                bool "basic (default)"
 
        config LIBQMI_COLLECTION_FULL
index e88fc31d763058f9d863867ae560481f2c37ec4e..f7430529fa8f38c02af1ddff93701c9519818861 100644 (file)
@@ -21,6 +21,11 @@ PKG_BUILD_FLAGS:=gc-sections
 PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
 PKG_CPE_ID:=cpe:/a:libqmi_project:libqmi
 
+PKG_CONFIG_DEPENDS:= \
+       CONFIG_LIBQMI_COLLECTION_FULL \
+       CONFIG_LIBQMI_COLLECTION_BASIC \
+       CONFIG_LIBQMI_COLLECTION_MINIMAL
+
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
 include $(INCLUDE_DIR)/meson.mk
diff --git a/utils/fwupd/Config.in b/utils/fwupd/Config.in
new file mode 100644 (file)
index 0000000..b26e681
--- /dev/null
@@ -0,0 +1,65 @@
+menu "Select fwupd options"
+       depends on PACKAGE_fwupd-libs
+
+config FWUPD_FIRMWARE_PACKAGER
+       bool "firmware packager"
+       default n
+       help
+         Compile fwupd with firmware packager
+
+config FWUPD_HSI
+       bool "Host Security ID"
+       default n
+       help
+         Compile fwupd with HSI support
+
+config FWUPD_LVFS
+       bool "LVFS remote"
+       default y
+       help
+         Compile and install LVFS remote
+
+config FWUPD_CBOR
+       bool "CBOR"
+       default n
+       help
+         Compile fwupd with cbor protocol support
+
+config FWUPD_LZMA
+       bool "LZMA"
+       default n
+       help
+         Compile fwupd with LZMA support
+
+config FWUPD_CURL
+       bool "curl"
+       default n
+       help
+         Compile fwupd with curl support
+
+config FWUPD_SQLITE
+       bool "sqlite"
+       default n
+       help
+         Compile fwupd with sqlite support
+
+config FWUPD_LIBARCHIVE
+       bool "libarchive"
+       default y
+       help
+         Compile fwupd with libarchive support
+
+config FWUPD_GUDEV
+       bool "GUdev"
+       default n
+       help
+         Compile fwupd with GUdev support
+
+config FWUPD_PLUGIN_MODEMMANAGER
+       bool "ModemManager plugin"
+       default y
+       select FWUPD_GUDEV
+       help
+         Compile fwupd with ModemManager plugin
+
+endmenu
diff --git a/utils/fwupd/Makefile b/utils/fwupd/Makefile
new file mode 100644 (file)
index 0000000..c6d28fa
--- /dev/null
@@ -0,0 +1,233 @@
+#
+# Copyright (C) 2024 TDT AG <development@tdt.de>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See https://www.gnu.org/licenses/gpl-2.0.txt for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=fwupd
+PKG_VERSION:=1.9.24
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/fwupd/fwupd/releases/download/$(PKG_VERSION)
+PKG_HASH:=12f560b35dbed981fde8cf774c6d1f2e658a157d3a63d6c439bf418dbcc44b4c
+
+PKG_MAINTAINER:=Lukas Voegl <lvoegl@tdt.de>
+PKG_LICENSE:=LGPL-2.1-or-later
+PKG_LICENSE_FILES:=COPYING
+PKG_CPE_ID:=cpe:/a:fwupd:fwupd
+
+PKG_BUILD_DEPENDS:= \
+       glib2/host \
+       python3/host \
+       python-packaging/host \
+       python-jinja2/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+include $(INCLUDE_DIR)/meson.mk
+include ../../lang/python/python3-host.mk
+
+define Package/fwupd/Default
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=fwupd
+  URL:=https://fwupd.org
+  DEPENDS:= \
+       +glib2 \
+       +dbus \
+       +libxmlb \
+       +libjcat \
+       +libprotobuf-c \
+       +FWUPD_LIBARCHIVE:libarchive \
+       +FWUPD_CBOR:libcbor \
+       +FWUPD_LZMA:liblzma \
+       +FWUPD_CURL:libcurl \
+       +FWUPD_SQLITE:libsqlite3 \
+       +FWUPD_GUDEV:libgudev \
+       +FWUPD_PLUGIN_MODEMMANAGER:modemmanager \
+       +FWUPD_PLUGIN_MODEMMANAGER:libqmi \
+       +FWUPD_PLUGIN_MODEMMANAGER:libmbim
+endef
+
+define Package/fwupd/Default/description
+  A simple system daemon to allow session software to easily update firmware on
+  your local machine.
+endef
+
+define Package/fwupd-libs
+  $(call Package/fwupd/Default)
+  TITLE:=fwupd-libs
+endef
+
+define Package/fwupd-libs/description
+  $(call Package/fwupd/Default/description)
+  This package contains the fwupd libraries.
+endef
+
+define Package/fwupd-libs/config
+  source "$(SOURCE)/Config.in"
+endef
+
+define Package/fwupd-tools
+  $(call Package/fwupd/Default)
+  DEPENDS:=+fwupd-libs
+  TITLE:=fwupd-tools
+endef
+
+define Package/fwupd-tools/description
+  $(call Package/fwupd/Default/description)
+  This package contains the fwupd cli tools.
+endef
+
+define Package/fwupd-daemon
+  $(call Package/fwupd/Default)
+  DEPENDS:=+fwupd-libs
+  TITLE:=fwupd-daemon
+endef
+
+define Package/fwupd-daemon/description
+  $(call Package/fwupd/Default/description)
+  This package contains the fwupd daemon.
+endef
+
+MESON_ARGS += \
+       -Db_lto=true \
+       -Dbuild=all \
+       -Dpython=$(HOST_PYTHON3_BIN) \
+       -Dudevdir=/lib/udev \
+       -Dsupported_build=enabled \
+       -Dstatic_analysis=false \
+       -Dtests=false \
+       -Dmetainfo=false \
+       -Dbash_completion=false \
+       -Dfish_completion=false \
+       -Dman=false \
+       -Dthinklmi_compat=false \
+       -Dconsolekit=disabled \
+       -Ddocs=disabled \
+       -Dintrospection=disabled \
+       -Dbluez=disabled \
+       -Dpolkit=disabled \
+       -Dgnutls=disabled \
+       -Dpassim=disabled \
+       -Dplugin_acpi_phat=disabled \
+       -Dplugin_amdgpu=disabled \
+       -Dplugin_android_boot=disabled \
+       -Dplugin_bcm57xx=disabled \
+       -Dplugin_cfu=disabled \
+       -Dplugin_cpu=disabled \
+       -Dplugin_emmc=disabled \
+       -Dplugin_ep963x=disabled \
+       -Dplugin_gpio=disabled \
+       -Dplugin_igsc=disabled \
+       -Dplugin_kinetic_dp=disabled \
+       -Dplugin_logitech_bulkcontroller=disabled \
+       -Dplugin_logitech_scribe=disabled \
+       -Dplugin_logitech_tap=disabled \
+       -Dplugin_parade_lspcon=disabled \
+       -Dplugin_pixart_rf=disabled \
+       -Dplugin_realtek_mst=disabled \
+       -Dplugin_synaptics_mst=disabled \
+       -Dplugin_mediatek_scaler=disabled \
+       -Dplugin_synaptics_rmi=disabled \
+       -Dplugin_scsi=disabled \
+       -Dplugin_tpm=disabled \
+       -Dplugin_redfish=disabled \
+       -Dplugin_uefi_capsule=disabled \
+       -Dplugin_uefi_pk=disabled \
+       -Dplugin_nitrokey=disabled \
+       -Dplugin_nvme=disabled \
+       -Dplugin_msr=disabled \
+       -Dplugin_mtd=disabled \
+       -Dplugin_flashrom=disabled \
+       -Dplugin_intel_me=disabled \
+       -Dplugin_uf2=disabled \
+       -Dplugin_upower=disabled \
+       -Dplugin_powerd=disabled \
+       -Dplugin_fastboot=disabled \
+       -Dgusb=disabled \
+       -Dsystemd=disabled \
+       -Dlaunchd=disabled \
+       -Delogind=disabled \
+       -Dfirmware-packager=$(if $(CONFIG_FWUPD_FIRMWARE_PACKAGER),true,false) \
+       -Dhsi=$(if $(CONFIG_FWUPD_HSI),enabled,disabled) \
+       -Dlvfs=$(if $(CONFIG_FWUPD_LVFS),true,false) \
+       -Dcbor=$(if $(CONFIG_FWUPD_CBOR),enabled,disabled) \
+       -Dlzma=$(if $(CONFIG_FWUPD_LZMA),enabled,disabled) \
+       -Dcurl=$(if $(CONFIG_FWUPD_CURL),enabled,disabled) \
+       -Dsqlite=$(if $(CONFIG_FWUPD_SQLITE),enabled,disabled) \
+       -Dlibarchive=$(if $(CONFIG_FWUPD_LIBARCHIVE),enabled,disabled) \
+       -Dgudev=$(if $(CONFIG_FWUPD_GUDEV),enabled,disabled) \
+       -Dplugin_modem_manager=$(if $(CONFIG_FWUPD_PLUGIN_MODEMMANAGER),enabled,disabled)
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/fwupd-1
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/fwupd-1/fwupd.h $(1)/usr/include/fwupd-1
+
+       $(INSTALL_DIR) $(1)/usr/include/fwupd-1/libfwupd
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/fwupd-1/libfwupd/*.h $(1)/usr/include/fwupd-1/libfwupd
+
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfwupd.so* $(1)/usr/lib
+
+       $(INSTALL_DIR) $(1)/usr/lib/fwupd-$(PKG_VERSION)
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/fwupd-$(PKG_VERSION)/*.so* $(1)/usr/lib/fwupd-$(PKG_VERSION)
+
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/fwupd.pc $(1)/usr/lib/pkgconfig
+
+       $(INSTALL_DIR) $(1)/usr/share/dbus-1/interfaces
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/dbus-1/interfaces/*.xml $(1)/usr/share/dbus-1/interfaces
+endef
+
+define Package/fwupd-libs/install
+       $(INSTALL_DIR) $(1)/etc/fwupd
+       $(CP) $(PKG_INSTALL_DIR)/etc/fwupd/fwupd.conf $(1)/etc/fwupd
+
+       $(INSTALL_DIR) $(1)/etc/fwupd/remotes.d
+       $(CP) $(PKG_INSTALL_DIR)/etc/fwupd/remotes.d/*.conf $(1)/etc/fwupd/remotes.d
+
+       $(INSTALL_DIR) $(1)/etc/pki
+       $(CP) $(PKG_INSTALL_DIR)/etc/pki/fwupd $(1)/etc/pki
+       $(CP) $(PKG_INSTALL_DIR)/etc/pki/fwupd-metadata $(1)/etc/pki
+
+       $(if $(CONFIG_FWUPD_GUDEV), \
+               $(INSTALL_DIR) $(1)/lib/udev/rules.d; \
+               $(INSTALL_DATA) $(PKG_INSTALL_DIR)/lib/udev/rules.d/*.rules $(1)/lib/udev/rules.d)
+
+       $(INSTALL_DIR) $(1)/usr/share/dbus-1/system.d
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/dbus-1/system.d/org.freedesktop.fwupd.conf $(1)/usr/share/dbus-1/system.d
+
+       $(INSTALL_DIR) $(1)/usr/share/fwupd
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/fwupd/quirks.d $(1)/usr/share/fwupd
+
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfwupd.so* $(1)/usr/lib
+
+       $(INSTALL_DIR) $(1)/usr/lib/fwupd-$(PKG_VERSION)
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/fwupd-$(PKG_VERSION)/*.so* $(1)/usr/lib/fwupd-$(PKG_VERSION)
+endef
+
+define Package/fwupd-tools/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/fwupdtool $(1)/usr/bin
+endef
+
+define Package/fwupd-daemon/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/fwupdmgr $(1)/usr/bin
+
+       $(INSTALL_DIR) $(1)/usr/libexec/fwupd
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/libexec/fwupd/fwupd $(1)/usr/libexec/fwupd
+
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/etc/init.d/fwupd $(1)/etc/init.d/fwupd
+endef
+
+$(eval $(call BuildPackage,fwupd-libs))
+$(eval $(call BuildPackage,fwupd-tools))
+$(eval $(call BuildPackage,fwupd-daemon))
diff --git a/utils/fwupd/files/etc/init.d/fwupd b/utils/fwupd/files/etc/init.d/fwupd
new file mode 100644 (file)
index 0000000..e48458b
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh /etc/rc.common
+
+USE_PROCD=1
+START=80
+VERBOSE=0
+
+start_service() {
+       procd_open_instance
+       procd_set_param command /usr/libexec/fwupd/fwupd
+       [ "$VERBOSE" = 1 ] && procd_append_param command --verbose
+       procd_set_param stdout 1
+       procd_set_param stderr 1
+       procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
+       procd_close_instance
+}
diff --git a/utils/fwupd/test.sh b/utils/fwupd/test.sh
new file mode 100644 (file)
index 0000000..e0b788f
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+case "$1" in
+       fwupdmgr|fwupdtool) "$1" --version 2>&1 | grep "runtime\s*org.freedesktop.fwupd\s*$2" ;;
+esac
git clone https://git.99rst.org/PROJECT