Helmut pointed out the preinst.in files didn't actually include the token to be substituted, but instead still had the hard-coded architecture path :/
Attached is the really-really-fixed-this-time NMU patch.
On Fri, Feb 02, 2024 at 08:56:32AM -0800, Steve Langasek wrote:
By happenstance I noticed that I had mindlessly hard-coded the amd64-specific multiarch path into the preinsts.
Please find a really-fixed-this-time NMU patch for experimental.
On Wed, Jan 31, 2024 at 12:41:48PM -0800, Steve Langasek wrote:
Sorry, and thanks for bearing with me. Uploaded to experimental again; updated full NMU debdiff attached.
On Wed, Jan 31, 2024 at 09:31:25PM +0100, Helmut Grohne wrote:
Control: reopen -1
On Wed, Jan 31, 2024 at 10:12:03AM +0000, Debian Bug Tracking System wrote:
#1061966: file loss due to combining time64 + /usr-move
It has been closed by Debian FTP Masters <ftpmaster@ftp-master.debian.org> (reply to Steve Langasek <vorlon@debian.org>).
I fear this is not fixed.
/usr/lib/x86_64-linux-gnu/libaudit.so.1 and
This is fixed.
/usr/lib/x86_64-linux-gnu/libaudit.so.1.0.0 have been moved from
This not.
libaudit1 to libaudit1t64 in this upload and these files have formerly
been installed below /lib in bookworm. Hence, we are creating exactly the problem that the file move moratorium was meant to prevent.
/usr/lib/x86_64-linux-gnu/libauparse.so.0 and
This is fixed.
/usr/lib/x86_64-linux-gnu/libauparse.so.0.0.0 likewise move from
This not.
libauparse0 to libauparse0t64 and create the same problem.
DEP17 classifies this a P1 and proposed mitigations M7 and M8. In this
case, I recommend not exercising Conflicts (M7), because they are known
to be unreliable and libaudit1 is part of the the essential set (login
depends on it). Instead, their respective preinst script should create
protective diversions
dpkg-divert --package libaudit1t64 --no-rename --divert /lib/x86_64-linux-gnu/libaudit.so.1.usr-is-merged /lib/x86_64-linux-gnu/libaudit.so.1
for each of the affected files with their aliased location. In this case
- since we cannot use Conflicts - we cannot get rid of these diversions
in postinst. We already have Breaks: libaudit1 (<< ...), but that allows
concurrent unpack and hence still allows for the file loss scenario. The
diversions should be cleaned up in forky's postinst.
I appreciate another upload of audit to experimental to verify the mitigation.
Helmut
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer https://www.debian.org/
slangasek@ubuntu.com vorlon@debian.org
diff -Nru audit-3.1.2/debian/changelog audit-3.1.2/debian/changelog
--- audit-3.1.2/debian/changelog 2024-01-24 15:05:18.000000000 +0000
+++ audit-3.1.2/debian/changelog 2024-01-31 20:39:17.000000000 +0000
@@ -1,3 +1,19 @@
+audit (1:3.1.2-2.1~exp3) experimental; urgency=medium
+
+ * Proper complete fix for usrmerge. Closes: #1061966.
+
+ -- Steve Langasek <vorlon@debian.org> Wed, 31 Jan 2024 20:39:17 +0000 +
+audit (1:3.1.2-2.1~exp2) experimental; urgency=medium
+
+ * Non-maintainer upload.
+ * Rename libraries for 64-bit time_t transition.
+ * Fix uninstallable packages from the previous upload.
+ * Add usrmerge diversions in preinst to protect against file deletion + due to libraries moving between packages. Closes: #1061966.
+
+ -- Steve Langasek <vorlon@debian.org> Wed, 31 Jan 2024 08:49:07 +0000 +
audit (1:3.1.2-2) unstable; urgency=medium
[ Chris Hofstaedtler ]
diff -Nru audit-3.1.2/debian/control audit-3.1.2/debian/control
--- audit-3.1.2/debian/control 2024-01-24 15:05:18.000000000 +0000
+++ audit-3.1.2/debian/control 2024-01-31 08:49:07.000000000 +0000
@@ -26,8 +26,8 @@
Package: auditd
Section: admin
Architecture: linux-any
-Depends: libaudit1 (= ${binary:Version}),
- libauparse0 (= ${binary:Version}),
+Depends: libaudit1t64 (= ${binary:Version}),
+ libauparse0t64 (= ${binary:Version}),
mawk | gawk,
${misc:Depends},
${shlibs:Depends}
@@ -41,29 +41,35 @@
.
Also contains the audit dispatcher "audisp".
-Package: libauparse0
+Package: libauparse0t64
+Provides: ${t64:Provides}
+Replaces: libauparse0
+Breaks: libauparse0 (<< ${source:Version})
Architecture: linux-any
Pre-Depends: ${misc:Pre-Depends}
-Depends: libaudit1 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Depends: libaudit1t64 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
Multi-Arch: same
Description: Dynamic library for parsing security auditing
The libauparse package contains the dynamic libraries needed for
applications to use the audit framework. It is used to monitor systems for
security related events.
.
- This package contains the libauparse0 library.
+ This package contains the libauparse0t64 library.
Package: libauparse-dev
Section: libdevel
Architecture: linux-any
-Depends: libauparse0 (= ${binary:Version}), ${misc:Depends}
+Depends: libauparse0t64 (= ${binary:Version}), ${misc:Depends}
Multi-Arch: same
-Description: Header files and static library for the libauparse0 library +Description: Header files and static library for the libauparse0t64 library
The audit-libs parse package contains the dynamic libraries needed for
applications to use the audit framework. It is used to monitor systems for
security related events.
-Package: libaudit1
+Package: libaudit1t64
+Provides: ${t64:Provides}
+Replaces: libaudit1
+Breaks: libaudit1 (<< ${source:Version})
Architecture: linux-any
Pre-Depends: ${misc:Pre-Depends}
Depends: libaudit-common (>= ${source:Version}),
@@ -90,7 +96,7 @@
Package: libaudit-dev
Section: libdevel
Architecture: linux-any
-Depends: libaudit1 (= ${binary:Version}), libcap-ng-dev, ${misc:Depends} +Depends: libaudit1t64 (= ${binary:Version}), libcap-ng-dev, ${misc:Depends}
Multi-Arch: same
Description: Header files and static library for security auditing
The audit-libs-devel package contains the static libraries and header @@ -100,8 +106,8 @@
Package: python3-audit
Section: python
Architecture: linux-any
-Depends: libaudit1 (= ${binary:Version}),
- libauparse0 (= ${binary:Version}),
+Depends: libaudit1t64 (= ${binary:Version}),
+ libauparse0t64 (= ${binary:Version}),
${misc:Depends},
${python3:Depends},
${shlibs:Depends}
@@ -127,7 +133,7 @@
Section: admin
Architecture: linux-any
Depends: auditd (= ${binary:Version}),
- libauparse0 (= ${binary:Version}),
+ libauparse0t64 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends}
Build-Profiles: <!pkg.audit.noldap>
diff -Nru audit-3.1.2/debian/libaudit1.install audit-3.1.2/debian/libaudit1.install
--- audit-3.1.2/debian/libaudit1.install 2024-01-24 15:05:18.000000000 +0000
+++ audit-3.1.2/debian/libaudit1.install 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-usr/lib/*/libaudit.so.*
diff -Nru audit-3.1.2/debian/libaudit1.symbols audit-3.1.2/debian/libaudit1.symbols
--- audit-3.1.2/debian/libaudit1.symbols 2024-01-24 15:05:18.000000000 +0000
+++ audit-3.1.2/debian/libaudit1.symbols 1970-01-01 00:00:00.000000000 +0000
@@ -1,89 +0,0 @@
-libaudit.so.1 libaudit1 #MINVER#
-* Build-Depends-Package: libaudit-dev
- __audit_send@Base 1:2.8.2
- _audit_archadded@Base 1:2.2.1
- _audit_elf@Base 1:2.2.1
- _audit_exeadded@Base 1:2.5.1
- _audit_filterfsadded@Base 1:2.8
- _audit_permadded@Base 1:2.2.1
- _audit_syscalladded@Base 1:2.2.1
- audit_action_to_name@Base 1:2.2.1
- audit_add_rule_data@Base 1:2.2.1
- audit_add_watch@Base 1:2.2.1
- audit_add_watch_dir@Base 1:2.2.1
- audit_can_control@Base 1:2.6.1
- audit_can_read@Base 1:2.6.1
- audit_can_write@Base 1:2.6.1
- audit_close@Base 1:2.2.1
- audit_delete_rule_data@Base 1:2.2.1
- audit_detect_machine@Base 1:2.2.1
- audit_determine_machine@Base 1:2.3.6
- audit_elf_to_machine@Base 1:2.2.1
- audit_encode_nv_string@Base 1:2.2.1
- audit_encode_value@Base 1:2.2.1
- audit_errno_to_name@Base 1:2.2.1
- audit_field_to_name@Base 1:2.2.1
- audit_flag_to_name@Base 1:2.2.1
- audit_format_signal_info@Base 1:3.0~alpha9
- audit_fstype_to_name@Base 1:2.8
- audit_ftype_to_name@Base 1:2.2.1
- audit_get_features@Base 1:2.5.1
- audit_get_reply@Base 1:2.2.1
- audit_get_session@Base 1:2.7.7
- audit_getloginuid@Base 1:2.2.1
- audit_is_enabled@Base 1:2.2.1
- audit_log_acct_message@Base 1:2.2.1
- audit_log_semanage_message@Base 1:2.2.1
- audit_log_user_avc_message@Base 1:2.2.1
- audit_log_user_comm_message@Base 1:2.2.1
- audit_log_user_command@Base 1:2.2.1
- audit_log_user_message@Base 1:2.2.1
- audit_machine_to_elf@Base 1:2.2.1
- audit_machine_to_name@Base 1:2.2.1
- audit_make_equivalent@Base 1:2.2.1
- audit_msg@Base 1:2.2.1
- audit_msg_type_to_name@Base 1:2.2.1
- audit_name_to_action@Base 1:2.2.1
- audit_name_to_errno@Base 1:2.2.1
- audit_name_to_field@Base 1:2.2.1
- audit_name_to_flag@Base 1:2.2.1
- audit_name_to_fstype@Base 1:2.8
- audit_name_to_ftype@Base 1:2.2.1
- audit_name_to_machine@Base 1:2.2.1
- audit_name_to_msg_type@Base 1:2.2.1
- audit_name_to_syscall@Base 1:2.2.1
- audit_name_to_uringop@Base 1:3.1.1
- audit_number_to_errmsg@Base 1:2.2.1
- audit_open@Base 1:2.2.1
- audit_operator_to_symbol@Base 1:2.2.1
- audit_request_features@Base 1:2.4
- audit_request_rules_list_data@Base 1:2.2.1
- audit_request_signal_info@Base 1:2.2.1
- audit_request_status@Base 1:2.2.1
- audit_reset_backlog_wait_time_actual@Base 1:3.0
- audit_reset_lost@Base 1:2.7.7
- audit_rule_create_data@Base 1:3.0~alpha9
- audit_rule_fieldpair_data@Base 1:2.2.1
- audit_rule_free_data@Base 1:2.2.1
- audit_rule_init_data@Base 1:3.0~alpha9
- audit_rule_interfield_comp_data@Base 1:2.2.1
- audit_rule_io_uringbyname_data@Base 1:3.1.1
- audit_rule_syscall_data@Base 1:2.2.1
- audit_rule_syscallbyname_data@Base 1:2.2.1
- audit_send@Base 1:2.2.1
- audit_set_backlog_limit@Base 1:2.2.1
- audit_set_backlog_wait_time@Base 1:2.4.2
- audit_set_enabled@Base 1:2.2.1
- audit_set_failure@Base 1:2.2.1
- audit_set_feature@Base 1:2.4
- audit_set_loginuid_immutable@Base 1:2.4
- audit_set_pid@Base 1:2.2.1
- audit_set_rate_limit@Base 1:2.2.1
- audit_setloginuid@Base 1:2.2.1
- audit_syscall_to_name@Base 1:2.2.1
- audit_trim_subtrees@Base 1:2.2.1
- audit_update_watch_perms@Base 1:2.2.1
- audit_uringop_to_name@Base 1:3.1.1
- audit_value_needs_encoding@Base 1:2.2.1
- get_auditfail_action@Base 1:2.2.1
- set_aumessage_mode@Base 1:2.2.1
diff -Nru audit-3.1.2/debian/libaudit1t64.install audit-3.1.2/debian/libaudit1t64.install
--- audit-3.1.2/debian/libaudit1t64.install 1970-01-01 00:00:00.000000000 +0000
+++ audit-3.1.2/debian/libaudit1t64.install 2024-01-24 15:05:18.000000000 +0000
@@ -0,0 +1 @@
+usr/lib/*/libaudit.so.*
diff -Nru audit-3.1.2/debian/libaudit1t64.lintian-overrides audit-3.1.2/debian/libaudit1t64.lintian-overrides
--- audit-3.1.2/debian/libaudit1t64.lintian-overrides 1970-01-01 00:00:00.000000000 +0000
+++ audit-3.1.2/debian/libaudit1t64.lintian-overrides 2024-01-31 08:49:07.000000000 +0000
@@ -0,0 +1 @@
+libaudit1t64: package-name-doesnt-match-sonames libaudit1
diff -Nru audit-3.1.2/debian/libaudit1t64.preinst audit-3.1.2/debian/libaudit1t64.preinst
--- audit-3.1.2/debian/libaudit1t64.preinst 1970-01-01 00:00:00.000000000 +0000
+++ audit-3.1.2/debian/libaudit1t64.preinst 2024-01-31 20:37:58.000000000 +0000
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+case $1 in
+ install)
+ for file in libaudit.so.1 libaudit.so.1.0.0; do
+ dpkg-divert --package libaudit1t64 --no-rename \
+ --divert \
+ /lib/x86_64-linux-gnu/$file.usr-is-merged \
+ /lib/x86_64-linux-gnu/$file
+ done
+ ;;
+esac
+
+#DEBHELPER#
diff -Nru audit-3.1.2/debian/libaudit1t64.symbols audit-3.1.2/debian/libaudit1t64.symbols
--- audit-3.1.2/debian/libaudit1t64.symbols 1970-01-01 00:00:00.000000000 +0000
+++ audit-3.1.2/debian/libaudit1t64.symbols 2024-01-31 08:49:07.000000000 +0000
@@ -0,0 +1,89 @@
+libaudit.so.1 libaudit1t64 #MINVER#
+* Build-Depends-Package: libaudit-dev
+ __audit_send@Base 1:2.8.2
+ _audit_archadded@Base 1:2.2.1
+ _audit_elf@Base 1:2.2.1
+ _audit_exeadded@Base 1:2.5.1
+ _audit_filterfsadded@Base 1:2.8
+ _audit_permadded@Base 1:2.2.1
+ _audit_syscalladded@Base 1:2.2.1
+ audit_action_to_name@Base 1:2.2.1
+ audit_add_rule_data@Base 1:2.2.1
+ audit_add_watch@Base 1:2.2.1
+ audit_add_watch_dir@Base 1:2.2.1
+ audit_can_control@Base 1:2.6.1
+ audit_can_read@Base 1:2.6.1
+ audit_can_write@Base 1:2.6.1
+ audit_close@Base 1:2.2.1
+ audit_delete_rule_data@Base 1:2.2.1
+ audit_detect_machine@Base 1:2.2.1
+ audit_determine_machine@Base 1:2.3.6
+ audit_elf_to_machine@Base 1:2.2.1
+ audit_encode_nv_string@Base 1:2.2.1
+ audit_encode_value@Base 1:2.2.1
+ audit_errno_to_name@Base 1:2.2.1
+ audit_field_to_name@Base 1:2.2.1
+ audit_flag_to_name@Base 1:2.2.1
+ audit_format_signal_info@Base 1:3.0~alpha9
+ audit_fstype_to_name@Base 1:2.8
+ audit_ftype_to_name@Base 1:2.2.1
+ audit_get_features@Base 1:2.5.1
+ audit_get_reply@Base 1:2.2.1
+ audit_get_session@Base 1:2.7.7
+ audit_getloginuid@Base 1:2.2.1
+ audit_is_enabled@Base 1:2.2.1
+ audit_log_acct_message@Base 1:2.2.1
+ audit_log_semanage_message@Base 1:2.2.1
+ audit_log_user_avc_message@Base 1:2.2.1
+ audit_log_user_comm_message@Base 1:2.2.1
+ audit_log_user_command@Base 1:2.2.1
+ audit_log_user_message@Base 1:2.2.1
+ audit_machine_to_elf@Base 1:2.2.1
+ audit_machine_to_name@Base 1:2.2.1
+ audit_make_equivalent@Base 1:2.2.1
+ audit_msg@Base 1:2.2.1
+ audit_msg_type_to_name@Base 1:2.2.1
+ audit_name_to_action@Base 1:2.2.1
+ audit_name_to_errno@Base 1:2.2.1
+ audit_name_to_field@Base 1:2.2.1
+ audit_name_to_flag@Base 1:2.2.1
+ audit_name_to_fstype@Base 1:2.8
+ audit_name_to_ftype@Base 1:2.2.1
+ audit_name_to_machine@Base 1:2.2.1
+ audit_name_to_msg_type@Base 1:2.2.1
+ audit_name_to_syscall@Base 1:2.2.1
+ audit_name_to_uringop@Base 1:3.1.1
+ audit_number_to_errmsg@Base 1:2.2.1
+ audit_open@Base 1:2.2.1
+ audit_operator_to_symbol@Base 1:2.2.1
+ audit_request_features@Base 1:2.4
+ audit_request_rules_list_data@Base 1:2.2.1
+ audit_request_signal_info@Base 1:2.2.1
+ audit_request_status@Base 1:2.2.1
+ audit_reset_backlog_wait_time_actual@Base 1:3.0
+ audit_reset_lost@Base 1:2.7.7
+ audit_rule_create_data@Base 1:3.0~alpha9
+ audit_rule_fieldpair_data@Base 1:2.2.1
+ audit_rule_free_data@Base 1:2.2.1
+ audit_rule_init_data@Base 1:3.0~alpha9
+ audit_rule_interfield_comp_data@Base 1:2.2.1
+ audit_rule_io_uringbyname_data@Base 1:3.1.1
+ audit_rule_syscall_data@Base 1:2.2.1
+ audit_rule_syscallbyname_data@Base 1:2.2.1
+ audit_send@Base 1:2.2.1
+ audit_set_backlog_limit@Base 1:2.2.1
+ audit_set_backlog_wait_time@Base 1:2.4.2
+ audit_set_enabled@Base 1:2.2.1
+ audit_set_failure@Base 1:2.2.1
+ audit_set_feature@Base 1:2.4
+ audit_set_loginuid_immutable@Base 1:2.4
+ audit_set_pid@Base 1:2.2.1
+ audit_set_rate_limit@Base 1:2.2.1
+ audit_setloginuid@Base 1:2.2.1
+ audit_syscall_to_name@Base 1:2.2.1
+ audit_trim_subtrees@Base 1:2.2.1
+ audit_update_watch_perms@Base 1:2.2.1
+ audit_uringop_to_name@Base 1:3.1.1
+ audit_value_needs_encoding@Base 1:2.2.1
+ get_auditfail_action@Base 1:2.2.1
+ set_aumessage_mode@Base 1:2.2.1
diff -Nru audit-3.1.2/debian/libauparse0.install audit-3.1.2/debian/libauparse0.install
--- audit-3.1.2/debian/libauparse0.install 2024-01-24 15:05:18.000000000 +0000
+++ audit-3.1.2/debian/libauparse0.install 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-usr/lib/*/libauparse.so.*
diff -Nru audit-3.1.2/debian/libauparse0.symbols audit-3.1.2/debian/libauparse0.symbols
--- audit-3.1.2/debian/libauparse0.symbols 2024-01-24 15:05:18.000000000 +0000
+++ audit-3.1.2/debian/libauparse0.symbols 1970-01-01 00:00:00.000000000 +0000
@@ -1,84 +0,0 @@
-libauparse.so.0 libauparse0 #MINVER#
-* Build-Depends-Package: libauparse-dev
- _auparse_flush_caches@Base 1:3.0.5
- _auparse_free_interpretations@Base 1:2.6
- _auparse_load_interpretations@Base 1:2.6
- _auparse_lookup_interpretation@Base 1:2.6.1
- auparse_add_callback@Base 1:2.2.1
- auparse_destroy@Base 1:2.2.1
- auparse_destroy_ext@Base 1:2.7.7
- auparse_do_interpretation@Base 1:2.3.1
- auparse_feed@Base 1:2.2.1
- auparse_feed_age_events@Base 1:2.5.1
- auparse_feed_has_data@Base 1:2.2.2
- auparse_feed_has_ready_event@Base 1:3.0.5
- auparse_find_field@Base 1:2.2.1
- auparse_find_field_next@Base 1:2.2.1
- auparse_first_field@Base 1:2.2.1
- auparse_first_record@Base 1:2.2.1
- auparse_flush_feed@Base 1:2.2.1
- auparse_get_field_int@Base 1:2.2.1
- auparse_get_field_name@Base 1:2.2.1
- auparse_get_field_num@Base 1:2.7.7
- auparse_get_field_str@Base 1:2.2.1
- auparse_get_field_type@Base 1:2.2.1
- auparse_get_filename@Base 1:2.2.1
- auparse_get_line_number@Base 1:2.2.1
- auparse_get_milli@Base 1:2.2.1
- auparse_get_node@Base 1:2.2.1
- auparse_get_num_fields@Base 1:2.2.1
- auparse_get_num_records@Base 1:2.2.1
- auparse_get_record_interpretations@Base 1:2.6
- auparse_get_record_num@Base 1:2.7.7
- auparse_get_record_text@Base 1:2.2.1
- auparse_get_serial@Base 1:2.2.1
- auparse_get_time@Base 1:2.2.1
- auparse_get_timestamp@Base 1:2.2.1
- auparse_get_type@Base 1:2.2.1
- auparse_get_type_name@Base 1:2.3.4
- auparse_goto_field_num@Base 1:2.7.7
- auparse_goto_record_num@Base 1:2.2.1
- auparse_init@Base 1:2.2.1
- auparse_interp_adjust_type@Base 1:2.3.1
- auparse_interpret_field@Base 1:2.2.1
- auparse_interpret_realpath@Base 1:2.7.8
- auparse_interpret_sock_address@Base 1:2.8
- auparse_interpret_sock_family@Base 1:2.8
- auparse_interpret_sock_port@Base 1:2.8
- auparse_new_buffer@Base 1:3.0.5
- auparse_next_event@Base 1:2.2.1
- auparse_next_field@Base 1:2.2.1
- auparse_next_record@Base 1:2.2.1
- auparse_node_compare@Base 1:2.2.1
- auparse_normalize@Base 1:2.7.7
- auparse_normalize_get_action@Base 1:2.7.7
- auparse_normalize_get_event_kind@Base 1:2.7.7
- auparse_normalize_get_results@Base 1:2.7.7
- auparse_normalize_how@Base 1:2.7.7
- auparse_normalize_key@Base 1:2.7.7
- auparse_normalize_object_first_attribute@Base 1:2.7.7
- auparse_normalize_object_kind@Base 1:2.7.7
- auparse_normalize_object_next_attribute@Base 1:2.7.7
- auparse_normalize_object_primary2@Base 1:2.8
- auparse_normalize_object_primary@Base 1:2.7.7
- auparse_normalize_object_secondary@Base 1:2.7.7
- auparse_normalize_session@Base 1:2.7.7
- auparse_normalize_subject_first_attribute@Base 1:2.7.7
- auparse_normalize_subject_kind@Base 1:2.7.7
- auparse_normalize_subject_next_attribute@Base 1:2.7.7
- auparse_normalize_subject_primary@Base 1:2.7.7
- auparse_normalize_subject_secondary@Base 1:2.7.7
- auparse_reset@Base 1:2.2.1
- auparse_set_eoe_timeout@Base 1:3.0.5
- auparse_set_escape_mode@Base 1:2.4.4
- auparse_timestamp_compare@Base 1:2.2.1
- ausearch_add_expression@Base 1:2.2.1
- ausearch_add_interpreted_item@Base 1:2.2.1
- ausearch_add_item@Base 1:2.2.1
- ausearch_add_regex@Base 1:2.2.1
- ausearch_add_timestamp_item@Base 1:2.2.1
- ausearch_add_timestamp_item_ex@Base 1:2.4
- ausearch_clear@Base 1:2.2.1
- ausearch_next_event@Base 1:2.2.1
- ausearch_set_stop@Base 1:2.2.1
- find_config_change_object@Base 1:3.0.5
diff -Nru audit-3.1.2/debian/libauparse0t64.install audit-3.1.2/debian/libauparse0t64.install
--- audit-3.1.2/debian/libauparse0t64.install 1970-01-01 00:00:00.000000000 +0000
+++ audit-3.1.2/debian/libauparse0t64.install 2024-01-24 15:05:18.000000000 +0000
@@ -0,0 +1 @@
+usr/lib/*/libauparse.so.*
diff -Nru audit-3.1.2/debian/libauparse0t64.lintian-overrides audit-3.1.2/debian/libauparse0t64.lintian-overrides
--- audit-3.1.2/debian/libauparse0t64.lintian-overrides 1970-01-01 00:00:00.000000000 +0000
+++ audit-3.1.2/debian/libauparse0t64.lintian-overrides 2024-01-31 08:49:07.000000000 +0000
@@ -0,0 +1 @@
+libauparse0t64: package-name-doesnt-match-sonames libauparse0
diff -Nru audit-3.1.2/debian/libauparse0t64.preinst audit-3.1.2/debian/libauparse0t64.preinst
--- audit-3.1.2/debian/libauparse0t64.preinst 1970-01-01 00:00:00.000000000 +0000
+++ audit-3.1.2/debian/libauparse0t64.preinst 2024-01-31 20:38:54.000000000 +0000
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+case $1 in
+ install)
+ for file in libauparse.so.0 libauparse.so.0.0.0; do
+ dpkg-divert --package libauparse0t64 --no-rename \
+ --divert \
+ /lib/x86_64-linux-gnu/$file.usr-is-merged \
+ /lib/x86_64-linux-gnu/$file
+ done
+ ;;
+esac
+
+#DEBHELPER#
+
diff -Nru audit-3.1.2/debian/libauparse0t64.symbols audit-3.1.2/debian/libauparse0t64.symbols
--- audit-3.1.2/debian/libauparse0t64.symbols 1970-01-01 00:00:00.000000000 +0000
+++ audit-3.1.2/debian/libauparse0t64.symbols 2024-01-31 08:49:07.000000000 +0000
@@ -0,0 +1,84 @@
+libauparse.so.0 libauparse0t64 #MINVER#
+* Build-Depends-Package: libauparse-dev
+ _auparse_flush_caches@Base 1:3.0.5
+ _auparse_free_interpretations@Base 1:2.6
+ _auparse_load_interpretations@Base 1:2.6
+ _auparse_lookup_interpretation@Base 1:2.6.1
+ auparse_add_callback@Base 1:2.2.1
+ auparse_destroy@Base 1:2.2.1
+ auparse_destroy_ext@Base 1:2.7.7
+ auparse_do_interpretation@Base 1:2.3.1
+ auparse_feed@Base 1:2.2.1
+ auparse_feed_age_events@Base 1:2.5.1
+ auparse_feed_has_data@Base 1:2.2.2
+ auparse_feed_has_ready_event@Base 1:3.0.5
+ auparse_find_field@Base 1:2.2.1
+ auparse_find_field_next@Base 1:2.2.1
+ auparse_first_field@Base 1:2.2.1
+ auparse_first_record@Base 1:2.2.1
+ auparse_flush_feed@Base 1:2.2.1
+ auparse_get_field_int@Base 1:2.2.1
+ auparse_get_field_name@Base 1:2.2.1
+ auparse_get_field_num@Base 1:2.7.7
+ auparse_get_field_str@Base 1:2.2.1
+ auparse_get_field_type@Base 1:2.2.1
+ auparse_get_filename@Base 1:2.2.1
+ auparse_get_line_number@Base 1:2.2.1
+ auparse_get_milli@Base 1:2.2.1
+ auparse_get_node@Base 1:2.2.1
+ auparse_get_num_fields@Base 1:2.2.1
+ auparse_get_num_records@Base 1:2.2.1
+ auparse_get_record_interpretations@Base 1:2.6
+ auparse_get_record_num@Base 1:2.7.7
+ auparse_get_record_text@Base 1:2.2.1
+ auparse_get_serial@Base 1:2.2.1
+ auparse_get_time@Base 1:2.2.1
+ auparse_get_timestamp@Base 1:2.2.1
+ auparse_get_type@Base 1:2.2.1
+ auparse_get_type_name@Base 1:2.3.4
+ auparse_goto_field_num@Base 1:2.7.7
+ auparse_goto_record_num@Base 1:2.2.1
+ auparse_init@Base 1:2.2.1
+ auparse_interp_adjust_type@Base 1:2.3.1
+ auparse_interpret_field@Base 1:2.2.1
+ auparse_interpret_realpath@Base 1:2.7.8
+ auparse_interpret_sock_address@Base 1:2.8
+ auparse_interpret_sock_family@Base 1:2.8
+ auparse_interpret_sock_port@Base 1:2.8
+ auparse_new_buffer@Base 1:3.0.5
+ auparse_next_event@Base 1:2.2.1
+ auparse_next_field@Base 1:2.2.1
+ auparse_next_record@Base 1:2.2.1
+ auparse_node_compare@Base 1:2.2.1
+ auparse_normalize@Base 1:2.7.7
+ auparse_normalize_get_action@Base 1:2.7.7
+ auparse_normalize_get_event_kind@Base 1:2.7.7
+ auparse_normalize_get_results@Base 1:2.7.7
+ auparse_normalize_how@Base 1:2.7.7
+ auparse_normalize_key@Base 1:2.7.7
+ auparse_normalize_object_first_attribute@Base 1:2.7.7
+ auparse_normalize_object_kind@Base 1:2.7.7
+ auparse_normalize_object_next_attribute@Base 1:2.7.7
+ auparse_normalize_object_primary2@Base 1:2.8
+ auparse_normalize_object_primary@Base 1:2.7.7
+ auparse_normalize_object_secondary@Base 1:2.7.7
+ auparse_normalize_session@Base 1:2.7.7
+ auparse_normalize_subject_first_attribute@Base 1:2.7.7
+ auparse_normalize_subject_kind@Base 1:2.7.7
+ auparse_normalize_subject_next_attribute@Base 1:2.7.7
+ auparse_normalize_subject_primary@Base 1:2.7.7
+ auparse_normalize_subject_secondary@Base 1:2.7.7
+ auparse_reset@Base 1:2.2.1
+ auparse_set_eoe_timeout@Base 1:3.0.5
+ auparse_set_escape_mode@Base 1:2.4.4
+ auparse_timestamp_compare@Base 1:2.2.1
+ ausearch_add_expression@Base 1:2.2.1
+ ausearch_add_interpreted_item@Base 1:2.2.1
+ ausearch_add_item@Base 1:2.2.1
+ ausearch_add_regex@Base 1:2.2.1
+ ausearch_add_timestamp_item@Base 1:2.2.1
+ ausearch_add_timestamp_item_ex@Base 1:2.4
+ ausearch_clear@Base 1:2.2.1
+ ausearch_next_event@Base 1:2.2.1
+ ausearch_set_stop@Base 1:2.2.1
+ find_config_change_object@Base 1:3.0.5
--
Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slangasek@ubuntu.com vorlon@debian.org
diff -Nru audit-3.1.2/debian/changelog audit-3.1.2/debian/changelog
--- audit-3.1.2/debian/changelog 2024-01-24 15:05:18.000000000 +0000
+++ audit-3.1.2/debian/changelog 2024-02-02 16:47:59.000000000 +0000
@@ -1,3 +1,25 @@
+audit (1:3.1.2-2.1~exp4) experimental; urgency=medium
+
+ * Fix accidental hard-coding of amd64 architecture paths in diversions. +
+ -- Steve Langasek <vorlon@debian.org> Fri, 02 Feb 2024 16:47:59 +0000
+
+audit (1:3.1.2-2.1~exp3) experimental; urgency=medium
+
+ * Proper complete fix for usrmerge. Closes: #1061966.
+
+ -- Steve Langasek <vorlon@debian.org> Wed, 31 Jan 2024 20:39:17 +0000
+
+audit (1:3.1.2-2.1~exp2) experimental; urgency=medium
+
+ * Non-maintainer upload.
+ * Rename libraries for 64-bit time_t transition.
+ * Fix uninstallable packages from the previous upload.
+ * Add usrmerge diversions in preinst to protect against file deletion
+ due to libraries moving between packages. Closes: #1061966.
+
+ -- Steve Langasek <vorlon@debian.org> Wed, 31 Jan 2024 08:49:07 +0000
+
audit (1:3.1.2-2) unstable; urgency=medium
[ Chris Hofstaedtler ]
diff -Nru audit-3.1.2/debian/clean audit-3.1.2/debian/clean
--- audit-3.1.2/debian/clean 1970-01-01 00:00:00.000000000 +0000
+++ audit-3.1.2/debian/clean 2024-02-02 16:45:43.000000000 +0000
@@ -0,0 +1,2 @@
+debian/libaudit1t64.preinst
+debian/libauparse0t64.preinst
diff -Nru audit-3.1.2/debian/control audit-3.1.2/debian/control
--- audit-3.1.2/debian/control 2024-01-24 15:05:18.000000000 +0000
+++ audit-3.1.2/debian/control 2024-01-31 08:49:07.000000000 +0000
@@ -26,8 +26,8 @@
Package: auditd
Section: admin
Architecture: linux-any
-Depends: libaudit1 (= ${binary:Version}),
- libauparse0 (= ${binary:Version}),
+Depends: libaudit1t64 (= ${binary:Version}),
+ libauparse0t64 (= ${binary:Version}),
mawk | gawk,
${misc:Depends},
${shlibs:Depends}
@@ -41,29 +41,35 @@
.
Also contains the audit dispatcher "audisp".
-Package: libauparse0
+Package: libauparse0t64
+Provides: ${t64:Provides}
+Replaces: libauparse0
+Breaks: libauparse0 (<< ${source:Version})
Architecture: linux-any
Pre-Depends: ${misc:Pre-Depends}
-Depends: libaudit1 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
+Depends: libaudit1t64 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}
Multi-Arch: same
Description: Dynamic library for parsing security auditing
The libauparse package contains the dynamic libraries needed for
applications to use the audit framework. It is used to monitor systems for
security related events.
.
- This package contains the libauparse0 library.
+ This package contains the libauparse0t64 library.
Package: libauparse-dev
Section: libdevel
Architecture: linux-any
-Depends: libauparse0 (= ${binary:Version}), ${misc:Depends}
+Depends: libauparse0t64 (= ${binary:Version}), ${misc:Depends}
Multi-Arch: same
-Description: Header files and static library for the libauparse0 library +Description: Header files and static library for the libauparse0t64 library
The audit-libs parse package contains the dynamic libraries needed for
applications to use the audit framework. It is used to monitor systems for
security related events.
-Package: libaudit1
+Package: libaudit1t64
+Provides: ${t64:Provides}
+Replaces: libaudit1
+Breaks: libaudit1 (<< ${source:Version})
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 297 |
Nodes: | 16 (2 / 14) |
Uptime: | 07:07:37 |
Calls: | 6,666 |
Files: | 12,213 |
Messages: | 5,336,105 |