aboutsummaryrefslogtreecommitdiff
path: root/sysutils/fwupd/files
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/fwupd/files')
-rw-r--r--sysutils/fwupd/files/fwupd.in28
-rw-r--r--sysutils/fwupd/files/patch-libfwupdplugin_fu-common-freebsd.c57
-rw-r--r--sysutils/fwupd/files/patch-libfwupdplugin_fu-freebsd-efivars.c47
-rw-r--r--sysutils/fwupd/files/patch-libfwupdplugin_fu-kernel.c12
-rw-r--r--sysutils/fwupd/files/patch-libfwupdplugin_meson.build10
-rw-r--r--sysutils/fwupd/files/patch-plugins_amd-gpu_meson.build8
-rw-r--r--sysutils/fwupd/files/patch-plugins_elantp_meson.build8
-rw-r--r--sysutils/fwupd/files/patch-plugins_focalfp_meson.build8
-rw-r--r--sysutils/fwupd/files/patch-plugins_gpio_meson.build8
-rw-r--r--sysutils/fwupd/files/patch-plugins_ilitek-its_meson.build8
-rw-r--r--sysutils/fwupd/files/patch-plugins_logitech-hidpp_meson.build8
-rw-r--r--sysutils/fwupd/files/patch-plugins_logitech-rallysystem_meson.build8
-rw-r--r--sysutils/fwupd/files/patch-plugins_nordic-hid_meson.build8
-rw-r--r--sysutils/fwupd/files/patch-plugins_nvme_meson.build8
-rw-r--r--sysutils/fwupd/files/patch-plugins_thelio-io_meson.build8
-rw-r--r--sysutils/fwupd/files/patch-plugins_upower_meson.build8
-rw-r--r--sysutils/fwupd/files/patch-plugins_wacom-raw_meson.build8
17 files changed, 250 insertions, 0 deletions
diff --git a/sysutils/fwupd/files/fwupd.in b/sysutils/fwupd/files/fwupd.in
new file mode 100644
index 000000000000..47a295942ea5
--- /dev/null
+++ b/sysutils/fwupd/files/fwupd.in
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# PROVIDE: fwupd
+# REQUIRE: LOGIN dbus
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable fwupd daemon:
+#
+# fwupd_enable="YES"
+#
+
+. /etc/rc.subr
+
+export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
+
+name="fwupd"
+rcvar=fwupd_enable
+
+load_rc_config ${name}
+
+: ${fwupd_enable:="NO"}
+
+command="/usr/sbin/daemon"
+procname="/usr/local/libexec/fwupd/${name}"
+pidfile="/var/run/${name}.pid"
+command_args="-S -p ${pidfile} ${procname}"
+
+run_rc_command "$1"
diff --git a/sysutils/fwupd/files/patch-libfwupdplugin_fu-common-freebsd.c b/sysutils/fwupd/files/patch-libfwupdplugin_fu-common-freebsd.c
new file mode 100644
index 000000000000..b7c9824d6f76
--- /dev/null
+++ b/sysutils/fwupd/files/patch-libfwupdplugin_fu-common-freebsd.c
@@ -0,0 +1,57 @@
+--- libfwupdplugin/fu-common-freebsd.c.orig 2025-09-12 09:55:19 UTC
++++ libfwupdplugin/fu-common-freebsd.c
+@@ -14,6 +14,7 @@
+
+ #include "fu-common-private.h"
+ #include "fu-kenv.h"
++#include "fu-path.h"
+
+ /* bsdisks doesn't provide Manager object */
+ #define UDISKS_DBUS_PATH "/org/freedesktop/UDisks2"
+@@ -122,9 +123,45 @@ fu_common_get_olson_timezone_id_impl(GError **error)
+ gchar *
+ fu_common_get_olson_timezone_id_impl(GError **error)
+ {
++ g_autofree gchar *fn_localtime = fu_path_from_kind(FU_PATH_KIND_LOCALTIME);
++ g_autoptr(GFile) file_localtime = g_file_new_for_path(fn_localtime);
++
++ /* use the last two sections of the symlink target */
++ g_debug("looking for timezone file %s", fn_localtime);
++ if (g_file_query_file_type(file_localtime, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL) ==
++ G_FILE_TYPE_SYMBOLIC_LINK) {
++ const gchar *target;
++ g_autoptr(GFileInfo) info = NULL;
++
++ info = g_file_query_info(file_localtime,
++ G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET,
++ G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
++ NULL,
++ error);
++ if (info == NULL)
++ return NULL;
++ target = g_file_info_get_symlink_target(info);
++ if (target != NULL) {
++ g_auto(GStrv) sections = g_strsplit(target, "/", -1);
++ guint sections_len = g_strv_length(sections);
++ if (sections_len < 2) {
++ g_set_error(error,
++ FWUPD_ERROR,
++ FWUPD_ERROR_NOT_SUPPORTED,
++ "invalid symlink target: %s",
++ target);
++ return NULL;
++ }
++ return g_strdup_printf("%s/%s",
++ sections[sections_len - 2],
++ sections[sections_len - 1]);
++ }
++ }
++
++ /* failed */
+ g_set_error_literal(error,
+ FWUPD_ERROR,
+ FWUPD_ERROR_NOT_SUPPORTED,
+- "getting the Olson timezone ID is not supported on FreeBSD");
++ "no timezone or localtime is available");
+ return NULL;
+ }
diff --git a/sysutils/fwupd/files/patch-libfwupdplugin_fu-freebsd-efivars.c b/sysutils/fwupd/files/patch-libfwupdplugin_fu-freebsd-efivars.c
new file mode 100644
index 000000000000..338327a4b159
--- /dev/null
+++ b/sysutils/fwupd/files/patch-libfwupdplugin_fu-freebsd-efivars.c
@@ -0,0 +1,47 @@
+--- libfwupdplugin/fu-freebsd-efivars.c.orig 2025-11-05 16:06:16 UTC
++++ libfwupdplugin/fu-freebsd-efivars.c
+@@ -67,7 +67,7 @@ fu_freebsd_efivars_delete_with_glob(FuEfivars *efivars
+
+ efi_str_to_guid(guid, &guid_to_delete);
+
+- while (efi_get_next_variable_name(&guidt, &name)) {
++ while (efi_get_next_variable_name(&guidt, &name) == 1) {
+ if (memcmp(&guid_to_delete, guidt, sizeof(guid_to_delete)) != 0)
+ continue;
+ if (!g_pattern_match_simple(name, name_glob))
+@@ -87,7 +87,7 @@ fu_freebsd_efivars_exists_guid(const gchar *guid)
+ efi_guid_t test;
+
+ efi_str_to_guid(guid, &test);
+- while (efi_get_next_variable_name(&guidt, &name)) {
++ while (efi_get_next_variable_name(&guidt, &name) == 1) {
+ if (memcmp(&test, guidt, sizeof(test)) == 0)
+ return TRUE;
+ }
+@@ -128,7 +128,7 @@ fu_freebsd_efivars_get_names(FuEfivars *efivars, const
+ efi_str_to_guid(guid, &test);
+
+ /* find names with matching GUID */
+- while (efi_get_next_variable_name(&guidt, &name)) {
++ while (efi_get_next_variable_name(&guidt, &name) == 1) {
+ if (memcmp(&test, guidt, sizeof(test)) == 0)
+ g_ptr_array_add(names, g_strdup(name));
+ }
+@@ -154,7 +154,7 @@ fu_freebsd_efivars_space_used(FuEfivars *efivars, GErr
+ efi_guid_t *guidt = NULL;
+ char *name = NULL;
+
+- while (efi_get_next_variable_name(&guidt, &name)) {
++ while (efi_get_next_variable_name(&guidt, &name) == 1) {
+ size_t size = 0;
+ if (efi_get_variable_size(*guidt, name, &size) < 0) {
+ g_set_error_literal(error,
+@@ -182,7 +182,7 @@ fu_freebsd_efivars_set_data(FuEfivars *efivars,
+ efi_guid_t guidt;
+ efi_str_to_guid(guid, &guidt);
+
+- if (efi_set_variable(guidt, name, (guint8 *)data, sz, attr) != 0) {
++ if (efi_set_variable(guidt, name, (guint8 *)data, sz, attr, 0644) != 0) {
+ g_set_error(error,
+ FWUPD_ERROR,
+ FWUPD_ERROR_NOT_SUPPORTED,
diff --git a/sysutils/fwupd/files/patch-libfwupdplugin_fu-kernel.c b/sysutils/fwupd/files/patch-libfwupdplugin_fu-kernel.c
new file mode 100644
index 000000000000..47d1e1e0594e
--- /dev/null
+++ b/sysutils/fwupd/files/patch-libfwupdplugin_fu-kernel.c
@@ -0,0 +1,12 @@
+--- libfwupdplugin/fu-kernel.c.orig 2025-09-12 09:55:19 UTC
++++ libfwupdplugin/fu-kernel.c
+@@ -329,6 +329,9 @@ fu_kernel_get_cmdline(GError **error)
+ if (!g_file_get_contents("/proc/cmdline", &buf, &bufsz, error))
+ return NULL;
+ return fu_kernel_parse_cmdline(buf, bufsz);
++#elif defined(__FreeBSD__)
++ // XXX: there is no /proc/cmdline equivalent
++ return fu_kernel_parse_cmdline("", 0);
+ #else
+ g_set_error_literal(error,
+ FWUPD_ERROR,
diff --git a/sysutils/fwupd/files/patch-libfwupdplugin_meson.build b/sysutils/fwupd/files/patch-libfwupdplugin_meson.build
new file mode 100644
index 000000000000..24ea3ebc7149
--- /dev/null
+++ b/sysutils/fwupd/files/patch-libfwupdplugin_meson.build
@@ -0,0 +1,10 @@
+--- libfwupdplugin/meson.build.orig 2025-09-12 09:55:19 UTC
++++ libfwupdplugin/meson.build
+@@ -387,6 +387,7 @@ fwupdplugin = library(
+ include_directories: [root_incdir, fwupd_incdir],
+ dependencies: [library_deps],
+ link_with: [fwupd],
++ install_rpath: '/usr/local/lib',
+ install_dir: libdir_pkg,
+ install: true,
+ )
diff --git a/sysutils/fwupd/files/patch-plugins_amd-gpu_meson.build b/sysutils/fwupd/files/patch-plugins_amd-gpu_meson.build
new file mode 100644
index 000000000000..cdfb5b0bee2d
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_amd-gpu_meson.build
@@ -0,0 +1,8 @@
+--- plugins/amd-gpu/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/amd-gpu/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+ libdrm_amdgpu.found() or subdir_done()
+
+ cargs = ['-DG_LOG_DOMAIN="FuPluginAmdGpu"']
diff --git a/sysutils/fwupd/files/patch-plugins_elantp_meson.build b/sysutils/fwupd/files/patch-plugins_elantp_meson.build
new file mode 100644
index 000000000000..a0c22ba26d40
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_elantp_meson.build
@@ -0,0 +1,8 @@
+--- plugins/elantp/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/elantp/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+
+ cargs = ['-DG_LOG_DOMAIN="FuPluginElantp"']
+ plugins += {meson.current_source_dir().split('/')[-1]: true}
diff --git a/sysutils/fwupd/files/patch-plugins_focalfp_meson.build b/sysutils/fwupd/files/patch-plugins_focalfp_meson.build
new file mode 100644
index 000000000000..a312ae5301f9
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_focalfp_meson.build
@@ -0,0 +1,8 @@
+--- plugins/focalfp/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/focalfp/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+
+ cargs = ['-DG_LOG_DOMAIN="FuPluginFocalfp"']
+ plugins += {meson.current_source_dir().split('/')[-1]: true}
diff --git a/sysutils/fwupd/files/patch-plugins_gpio_meson.build b/sysutils/fwupd/files/patch-plugins_gpio_meson.build
new file mode 100644
index 000000000000..2d9dae5e1b24
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_gpio_meson.build
@@ -0,0 +1,8 @@
+--- plugins/gpio/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/gpio/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+ cc.has_header_symbol('linux/gpio.h', 'GPIO_V2_LINE_FLAG_OUTPUT', required: false) or subdir_done()
+
+ cargs = ['-DG_LOG_DOMAIN="FuPluginGpio"']
diff --git a/sysutils/fwupd/files/patch-plugins_ilitek-its_meson.build b/sysutils/fwupd/files/patch-plugins_ilitek-its_meson.build
new file mode 100644
index 000000000000..78ca11345212
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_ilitek-its_meson.build
@@ -0,0 +1,8 @@
+--- plugins/ilitek-its/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/ilitek-its/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+
+ cargs = ['-DG_LOG_DOMAIN="FuPluginIlitekIts"']
+ plugins += {meson.current_source_dir().split('/')[-1]: true}
diff --git a/sysutils/fwupd/files/patch-plugins_logitech-hidpp_meson.build b/sysutils/fwupd/files/patch-plugins_logitech-hidpp_meson.build
new file mode 100644
index 000000000000..f227c09cfecb
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_logitech-hidpp_meson.build
@@ -0,0 +1,8 @@
+--- plugins/logitech-hidpp/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/logitech-hidpp/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+
+ cargs = ['-DG_LOG_DOMAIN="FuPluginLogitechHidpp"']
+ plugins += {meson.current_source_dir().split('/')[-1]: true}
diff --git a/sysutils/fwupd/files/patch-plugins_logitech-rallysystem_meson.build b/sysutils/fwupd/files/patch-plugins_logitech-rallysystem_meson.build
new file mode 100644
index 000000000000..031754c871c3
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_logitech-rallysystem_meson.build
@@ -0,0 +1,8 @@
+--- plugins/logitech-rallysystem/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/logitech-rallysystem/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+
+ cargs = ['-DG_LOG_DOMAIN="FuPluginLogitechRallysystem"']
+ plugins += {meson.current_source_dir().split('/')[-1]: true}
diff --git a/sysutils/fwupd/files/patch-plugins_nordic-hid_meson.build b/sysutils/fwupd/files/patch-plugins_nordic-hid_meson.build
new file mode 100644
index 000000000000..b43cef4e3624
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_nordic-hid_meson.build
@@ -0,0 +1,8 @@
+--- plugins/nordic-hid/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/nordic-hid/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+
+ cargs = ['-DG_LOG_DOMAIN="FuPluginNordicHid"']
+ plugins += {meson.current_source_dir().split('/')[-1]: true}
diff --git a/sysutils/fwupd/files/patch-plugins_nvme_meson.build b/sysutils/fwupd/files/patch-plugins_nvme_meson.build
new file mode 100644
index 000000000000..c3ab8a85becc
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_nvme_meson.build
@@ -0,0 +1,8 @@
+--- plugins/nvme/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/nvme/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+ cc.has_header('linux/nvme_ioctl.h', required: false) or subdir_done()
+
+ cargs = ['-DG_LOG_DOMAIN="FuPluginNvme"']
diff --git a/sysutils/fwupd/files/patch-plugins_thelio-io_meson.build b/sysutils/fwupd/files/patch-plugins_thelio-io_meson.build
new file mode 100644
index 000000000000..96a14f213c86
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_thelio-io_meson.build
@@ -0,0 +1,8 @@
+--- plugins/thelio-io/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/thelio-io/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+
+ cargs = ['-DG_LOG_DOMAIN="FuPluginThelioIo"']
+ plugins += {meson.current_source_dir().split('/')[-1]: true}
diff --git a/sysutils/fwupd/files/patch-plugins_upower_meson.build b/sysutils/fwupd/files/patch-plugins_upower_meson.build
new file mode 100644
index 000000000000..d8e40e362b32
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_upower_meson.build
@@ -0,0 +1,8 @@
+--- plugins/upower/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/upower/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+
+ plugins += {meson.current_source_dir().split('/')[-1]: true}
+ cargs = ['-DG_LOG_DOMAIN="FuPluginUpower"']
diff --git a/sysutils/fwupd/files/patch-plugins_wacom-raw_meson.build b/sysutils/fwupd/files/patch-plugins_wacom-raw_meson.build
new file mode 100644
index 000000000000..e7426fbf407a
--- /dev/null
+++ b/sysutils/fwupd/files/patch-plugins_wacom-raw_meson.build
@@ -0,0 +1,8 @@
+--- plugins/wacom-raw/meson.build.orig 2025-09-12 09:55:19 UTC
++++ plugins/wacom-raw/meson.build
+@@ -1,4 +1,4 @@
+-host_machine.system() == 'linux' or subdir_done()
++host_machine.system() in ['linux', 'freebsd'] or subdir_done()
+
+ plugins += {meson.current_source_dir().split('/')[-1]: true}
+ cargs = ['-DG_LOG_DOMAIN="FuPluginWacomRaw"']