diff options
Diffstat (limited to 'sysutils/fwupd/files')
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"'] |
