On 5/3/26 10:46 AM, Adam D. Barratt wrote:
I think what you've done is to attempt to backport the -12 package from unstable? In that case, the changelog should be as-is for the upload to unstable, with an additional stanza on top for 2:2.20250213-12~deb13u1 (note, ~, not +) and a single changelog entry that says "backport fixies to trixie" or similar.
Thanks for the tips, I've addressed the problems and attached the new debdiff. Tested on Trixie, and there is no change of policy compare to the previous debdiff.
Regards, Yifei
diff -Nru refpolicy-2.20250213/debian/changelog refpolicy-2.20250213/debian/changelog --- refpolicy-2.20250213/debian/changelog 2025-07-25 12:36:54.000000000 +0000 +++ refpolicy-2.20250213/debian/changelog 2026-05-23 09:28:02.000000000 +0000 @@ -1,4 +1,41 @@ -refpolicy (2:2.20250213-10) trixie; urgency=medium +refpolicy (2:2.20250213-13~deb13u1) trixie; urgency=medium + + * Fixes for Trixie stable update + + -- Yifei Zhan <[email protected]> Sat, 23 May 2026 09:28:02 +0000 + +refpolicy (2:2.20250213-13) unstable; urgency=medium + + * Source only upload for testing migration + + -- Yifei Zhan <[email protected]> Sat, 16 May 2026 10:09:26 +0000 + +refpolicy (2:2.20250213-12) unstable; urgency=medium + + [ Russell Coker ] + * Fix for usbguard + * Label /var/lib/dbconfig-common/sqlite3/sympa/sympa + * Allow pam sessions to create wtmp.db-journal + + -- Yifei Zhan <[email protected]> Tue, 17 Mar 2026 07:25:31 +0000 + +refpolicy (2:2.20250213-11) unstable; urgency=medium + + * Added usbguard policy + * Allow chromium to stat xattr filesystems, read xkb libs, and give fifo + files to the window manager (to stop it crashing on paste) + * Allow pulseaudio_client domains (including the $1_wm_t domains) to mmap + the tmpfs files related to pulseaudio (for Chrome mostly) + * Allow systemd_passwd_agent_t to watch user runtime dirs for systemd + daemon restart + * Allow dhcpd_t to execute ntpd_exec_t in ntpd_t for dhcp scripts and start + generic units + * Allow systemd-nspawn to use user terminal devices for directly running by + sysadmin and allow managing mnt_t files + + -- Russell Coker <[email protected]> Sun, 19 Oct 2025 16:57:18 +1100 + +refpolicy (2:2.20250213-10) unstable; urgency=medium * Allow user_bubblewrap_t to transition to user_t via user_home_t and user_bin_t diff -Nru refpolicy-2.20250213/debian/modules.conf.default refpolicy-2.20250213/debian/modules.conf.default --- refpolicy-2.20250213/debian/modules.conf.default 2025-05-17 06:20:08.000000000 +0000 +++ refpolicy-2.20250213/debian/modules.conf.default 2026-05-23 09:26:42.000000000 +0000 @@ -2791,6 +2791,13 @@ # unconfined = module +# Layer: admin +# Module: usbguard +# +# Policy for usb device control +# +usbguard = module + # Layer: system # Module: userdomain # diff -Nru refpolicy-2.20250213/debian/modules.conf.mls refpolicy-2.20250213/debian/modules.conf.mls --- refpolicy-2.20250213/debian/modules.conf.mls 2025-05-17 06:20:15.000000000 +0000 +++ refpolicy-2.20250213/debian/modules.conf.mls 2026-05-23 09:26:42.000000000 +0000 @@ -2791,6 +2791,13 @@ # unconfined = module +# Layer: admin +# Module: usbguard +# +# Policy for usb device control +# +usbguard = module + # Layer: system # Module: userdomain # diff -Nru refpolicy-2.20250213/debian/patches/series refpolicy-2.20250213/debian/patches/series --- refpolicy-2.20250213/debian/patches/series 2025-06-30 12:33:20.000000000 +0000 +++ refpolicy-2.20250213/debian/patches/series 2026-05-23 09:26:42.000000000 +0000 @@ -22,3 +22,4 @@ 4000-bubblewrap 5000-buildfail trixie +trixie-update diff -Nru refpolicy-2.20250213/debian/patches/trixie-update refpolicy-2.20250213/debian/patches/trixie-update --- refpolicy-2.20250213/debian/patches/trixie-update 1970-01-01 00:00:00.000000000 +0000 +++ refpolicy-2.20250213/debian/patches/trixie-update 2026-05-23 09:26:42.000000000 +0000 @@ -0,0 +1,280 @@ +Index: refpolicy-2.20250213/policy/modules/admin/usbguard.if +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/admin/usbguard.if ++++ refpolicy-2.20250213/policy/modules/admin/usbguard.if +@@ -21,3 +21,21 @@ interface(`usbguard_stream_connect',` + files_search_runtime($1) + stream_connect_pattern($1, usbguard_tmpfs_t, usbguard_tmpfs_t, usbguard_t) + ') ++ ++##################################### ++## <summary> ++## mmap and rw usbguard tmpfs files ++## </summary> ++## <param name="domain"> ++## <summary> ++## Domain allowed access. ++## </summary> ++## </param> ++# ++interface(`usbguard_mmap_rw_tmpfs',` ++ gen_require(` ++ type usbguard_t, usbguard_tmpfs_t; ++ ') ++ ++ allow $1 usbguard_tmpfs_t:file mmap_rw_file_perms; ++') +Index: refpolicy-2.20250213/policy/modules/admin/usbguard.te +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/admin/usbguard.te ++++ refpolicy-2.20250213/policy/modules/admin/usbguard.te +@@ -42,7 +42,7 @@ files_tmpfs_file(usbguard_tmpfs_t) + allow usbguard_t self:capability { chown dac_read_search fowner }; + allow usbguard_t self:process { getcap signal }; + allow usbguard_t self:netlink_kobject_uevent_socket create_socket_perms; +-allow usbguard_t self:unix_stream_socket rw_stream_socket_perms; ++allow usbguard_t self:unix_stream_socket { connectto rw_stream_socket_perms }; + + files_read_etc_files(usbguard_t) + list_dirs_pattern(usbguard_t, usbguard_conf_t, usbguard_conf_t) +@@ -66,6 +66,8 @@ setattr_files_pattern(usbguard_t, usbgua + dev_rw_sysfs(usbguard_t) + + kernel_read_kernel_sysctls(usbguard_t) ++kernel_read_system_state(usbguard_t) ++kernel_search_debugfs(usbguard_t) + kernel_dontaudit_getattr_proc(usbguard_t) + + init_search_runtime(usbguard_t) +@@ -75,6 +77,11 @@ logging_send_syslog_msg(usbguard_t) + + miscfiles_read_localization(usbguard_t) + ++optional_policy(` ++ dbus_system_bus_client(usbguard_t) ++ dbus_connect_system_bus(usbguard_t) ++') ++ + tunable_policy(`usbguard_user_modify_rule_files',` + manage_files_pattern(usbguard_t, usbguard_conf_t, usbguard_rules_t) + ') +Index: refpolicy-2.20250213/policy/modules/system/userdomain.if +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/system/userdomain.if ++++ refpolicy-2.20250213/policy/modules/system/userdomain.if +@@ -1322,6 +1322,7 @@ template(`userdom_unpriv_user_template', + optional_policy(` + tunable_policy(`usbguard_user_modify_rule_files',` + usbguard_stream_connect($1_t) ++ usbguard_mmap_rw_tmpfs($1_t) + ') + ') + ') +@@ -3982,6 +3983,24 @@ interface(`userdom_delete_all_user_runti + ') + + ######################################## ++## <summary> ++## watch user runtime directories ++## </summary> ++## <param name="domain"> ++## <summary> ++## Domain allowed access. ++## </summary> ++## </param> ++# ++interface(`userdom_watch_all_user_runtime_dirs',` ++ gen_require(` ++ attribute user_runtime_content_type; ++ ') ++ ++ allow $1 user_runtime_content_type:dir watch; ++') ++ ++######################################## + ## <summary> + ## delete user runtime files + ## </summary> +Index: refpolicy-2.20250213/policy/modules/apps/chromium.te +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/apps/chromium.te ++++ refpolicy-2.20250213/policy/modules/apps/chromium.te +@@ -193,7 +193,7 @@ files_watch_runtime_dirs(chromium_t) + # During find for /etc/whatever-release we get lots of output otherwise + files_dontaudit_getattr_all_dirs(chromium_t) + +-fs_dontaudit_getattr_xattr_fs(chromium_t) ++fs_getattr_xattr_fs(chromium_t) + fs_getattr_tmpfs(chromium_t) + fs_search_cgroup_dirs(chromium_t) + +@@ -221,6 +221,7 @@ xdg_manage_downloads(chromium_t) + xdg_read_config_files(chromium_t) + xdg_read_data_files(chromium_t) + ++xserver_read_xkb_libs(chromium_t) + xserver_user_x_domain_template(chromium, chromium_t, chromium_tmpfs_t) + xserver_stream_connect_xdm(chromium_t) + xserver_manage_mesa_shader_cache(chromium_t) +@@ -320,6 +321,7 @@ optional_policy(` + optional_policy(` + wm_map_tmpfs_files(chromium_t) + wm_rw_tmpfs_files(chromium_t) ++ wm_send_fifo_file(chromium_t) + ') + + ######################################## +Index: refpolicy-2.20250213/policy/modules/apps/pulseaudio.te +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/apps/pulseaudio.te ++++ refpolicy-2.20250213/policy/modules/apps/pulseaudio.te +@@ -285,7 +285,7 @@ allow pulseaudio_client pulseaudio_tmp_t + allow pulseaudio_client pulseaudio_tmp_t:file manage_file_perms; + allow pulseaudio_client pulseaudio_tmp_t:sock_file manage_sock_file_perms; + +-rw_files_pattern(pulseaudio_client, { pulseaudio_tmpfsfile pulseaudio_tmpfs_t }, { pulseaudio_tmpfsfile pulseaudio_tmpfs_t }) ++mmap_rw_files_pattern(pulseaudio_client, { pulseaudio_tmpfsfile pulseaudio_tmpfs_t }, { pulseaudio_tmpfsfile pulseaudio_tmpfs_t }) + allow pulseaudio_client pulseaudio_tmpfs_t:file map; + delete_files_pattern(pulseaudio_client, pulseaudio_tmpfsfile, pulseaudio_tmpfsfile) + +Index: refpolicy-2.20250213/policy/modules/apps/wm.if +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/apps/wm.if ++++ refpolicy-2.20250213/policy/modules/apps/wm.if +@@ -384,6 +384,24 @@ interface(`wm_send_fd',` + + ######################################## + ## <summary> ++## Allow wm domain to inherit a fifo_file ++## </summary> ++## <param name="domain"> ++## <summary> ++## Domain to allow ++## </summary> ++## </param> ++# ++interface(`wm_send_fifo_file',` ++ gen_require(` ++ attribute wm_domain; ++ ') ++ ++ allow wm_domain $1:fifo_file rw_inherited_fifo_file_perms; ++') ++ ++######################################## ++## <summary> + ## Create a domain for applications + ## that are launched by the window + ## manager. +Index: refpolicy-2.20250213/policy/modules/system/systemd.te +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/system/systemd.te ++++ refpolicy-2.20250213/policy/modules/system/systemd.te +@@ -1580,6 +1580,7 @@ allow systemd_nspawn_t systemd_nspawn_ru + allow systemd_nspawn_t systemd_nspawn_runtime_t:file manage_file_perms; + init_runtime_filetrans(systemd_nspawn_t, systemd_nspawn_runtime_t, dir) + ++files_manage_mnt_files(systemd_nspawn_t) + files_read_etc_runtime_files(systemd_nspawn_t) + files_tmp_filetrans(systemd_nspawn_t, systemd_nspawn_tmp_t, { dir file }) + allow systemd_nspawn_t systemd_nspawn_tmp_t:dir manage_dir_perms; +@@ -1691,6 +1692,8 @@ sysnet_manage_config(systemd_nspawn_t) + udev_read_runtime_files(systemd_nspawn_t) + + userdom_manage_user_home_dirs(systemd_nspawn_t) ++userdom_use_user_ptys(systemd_nspawn_t) ++domain_use_interactive_fds(systemd_nspawn_t) + + systemd_write_notify_socket(systemd_nspawn_t) + +@@ -1840,10 +1843,12 @@ miscfiles_read_localization(systemd_pass + + seutil_search_default_contexts(systemd_passwd_agent_t) + ++userdom_list_user_tmp(systemd_passwd_agent_t) + userdom_use_user_terminals(systemd_passwd_agent_t) + userdom_search_user_runtime_root(systemd_passwd_agent_t) + userdom_search_user_runtime(systemd_passwd_agent_t) + systemd_search_user_runtime(systemd_passwd_agent_t) ++userdom_watch_all_user_runtime_dirs(systemd_passwd_agent_t) + + optional_policy(` + getty_use_fds(systemd_passwd_agent_t) +Index: refpolicy-2.20250213/policy/modules/system/sysnetwork.te +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/system/sysnetwork.te ++++ refpolicy-2.20250213/policy/modules/system/sysnetwork.te +@@ -163,6 +163,7 @@ term_dontaudit_use_generic_ptys(dhcpc_t) + + init_rw_utmp(dhcpc_t) + init_get_system_status(dhcpc_t) ++init_start_generic_units(dhcpc_t) + + logging_send_syslog_msg(dhcpc_t) + +@@ -250,6 +251,7 @@ optional_policy(` + ') + + optional_policy(` ++ ntp_domtrans(dhcpc_t) + ntp_initrc_domtrans(dhcpc_t) + ntp_read_drift_files(dhcpc_t) + ntp_read_conf_files(dhcpc_t) +Index: refpolicy-2.20250213/policy/modules/admin/usbguard.fc +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/admin/usbguard.fc ++++ refpolicy-2.20250213/policy/modules/admin/usbguard.fc +@@ -8,5 +8,6 @@ + /usr/bin/usbguard-daemon -- gen_context(system_u:object_r:usbguard_daemon_exec_t,s0) + + /usr/sbin/usbguard-daemon -- gen_context(system_u:object_r:usbguard_daemon_exec_t,s0) ++/usr/sbin/usbguard-dbus -- gen_context(system_u:object_r:usbguard_daemon_exec_t,s0) + + /var/log/usbguard(/.*)? gen_context(system_u:object_r:usbguard_log_t,s0) +Index: refpolicy-2.20250213/policy/modules/services/sympa.fc +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/services/sympa.fc ++++ refpolicy-2.20250213/policy/modules/services/sympa.fc +@@ -6,4 +6,5 @@ + /usr/lib/sympa/bin/.* -- gen_context(system_u:object_r:sympa_exec_t,s0) + + /var/lib/sympa(/.*)? gen_context(system_u:object_r:sympa_var_t,s0) ++/var/lib/dbconfig-common/sqlite3/sympa(/.*)? gen_context(system_u:object_r:sympa_var_t,s0) + /var/spool/sympa(/.*)? gen_context(system_u:object_r:sympa_var_t,s0) +Index: refpolicy-2.20250213/policy/modules/system/authlogin.if +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/system/authlogin.if ++++ refpolicy-2.20250213/policy/modules/system/authlogin.if +@@ -1748,13 +1748,18 @@ interface(`auth_rw_login_records',` + ## Domain allowed access. + ## </summary> + ## </param> ++## <param name="name" optional="true"> ++## <summary> ++## The name of the file being created. ++## </summary> ++## </param> + # + interface(`auth_log_filetrans_login_records',` + gen_require(` + type wtmp_t; + ') + +- logging_log_filetrans($1, wtmp_t, file) ++ logging_log_filetrans($1, wtmp_t, file, $2) + ') + + ######################################## +Index: refpolicy-2.20250213/policy/modules/system/authlogin.te +=================================================================== +--- refpolicy-2.20250213.orig/policy/modules/system/authlogin.te ++++ refpolicy-2.20250213/policy/modules/system/authlogin.te +@@ -246,6 +246,8 @@ dev_read_urand(pam_domain) + dev_read_sysfs(pam_domain) + + auth_manage_faillog(pam_domain) ++auth_log_filetrans_login_records(pam_domain, "wtmp.db-journal") ++auth_manage_login_records(pam_domain) + auth_domtrans_upd_passwd(pam_domain) + auth_rw_lastlog(pam_domain) + auth_rw_faillog(pam_domain)

