Your message dated Wed, 01 Jan 2025 23:30:25 +0100
with message-id <6592e363a460d577e772fc8b1e044dc2fffb4e38.ca...@debian.org>
and subject line Re: Bug#1085629: libssh-4: version 0.11.1 ABI-incompatible to
0.10.6, let qemu fail to access disk images via ssh
has caused the Debian Bug report #1085629,
regarding libssh-4 (0.11.1) lets qemu fail to access disk images via ssh
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)
--
1085629: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1085629
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: libssh-4
Version: 0.11.1-1
Severity: important
Tags: upstream
Control: affects -1 = qemu-block-extra qemu guestmount guestfish
Dear Maintainer,
With libssh-4 (0.11.1) qemu fails to access remote disk images via
ssh. After downgrading to libssh-4 (0.10.6-3) the VM starts again as
expected.
To reproduce the issue on a amd64 machine
* make sure you have sshd running
* make sure sure can ssh to localhost
* make sure you have ssh-agent running and preloaded with your private key
* apt install qemu-system-x86
* download and unpack the amd64-pc disk image from
https://people.debian.org/~gio/dqib/
* cd to the dqib_amd64-pc directory resulting from unpacking
* run
qemu-system-x86_64 -machine 'pc' -enable-kvm -m 1G \
-drive
file=ssh://<user>@localhost/home/<user>/.../dqib_amd64-pc/image.qcow2 \
-kernel kernel -initrd initrd -nographic -append "root=LABEL=rootfs
console=ttyS0"
With libssh-4 (0.11.1-1) qemu-system-x86_64 exits with error message
Could not read image for determining its format: Input/output error
With libssh-4 (0.10-6-3) the VM starts up.
For guestfish and guestmount downgrading libssh-4 does not help.
Running questmount with libssh-4 (0.11.1-1)
guestmount -i -a
ssh://<user>@localhost/home/<user>/.../dqib_amd64-pc/image.qcow2 <mount point>
returns (amongst others)
libguestfs: error: appliance closed the connection unexpectedly.
Running questmount with libssh-4 (0.10-6-3) returns
guestmount: /lib/x86_64-linux-gnu/libssh.so.4: version `LIBSSH_4_10_0' not
found (required by /lib/x86_64-linux-gnu/libvirt.so.0)
The attached report, generated using abi-compliance-checker, reveals
problematic changes to data types
ssh_callbacks_struct, ssh_channel_callbacks_struct in callbacks.h
sftp_session_struct in sftp.h
Hope this helps to fix the issue.
Sven
-- System Information:
Debian Release: trixie/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 6.11.2-amd64 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8),
LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages libssh-4 depends on:
ii libc6 2.40-3
ii libgssapi-krb5-2 1.21.3-3
ii libssl3t64 3.3.2-1
ii zlib1g 1:1.3.dfsg+really1.3.1-1
libssh-4 recommends no packages.
libssh-4 suggests no packages.
-- no debconf information
--
GPG Fingerprint
3DF5 E8AA 43FC 9FDF D086 F195 ADF5 0EDA F8AD D585
Title: libssh: 1.10.6 to 1.11.0 compatibility report
API compatibility report for the libssh library between 1.10.6 and 1.11.0 versions on x86_64
Test Info
Library Name | libssh |
Version #1 | 1.10.6 |
Version #2 | 1.11.0 |
Arch | x86_64 |
GCC Version | 14 |
Subject | Binary Compatibility |
Test Results
Total Header Files | 8 |
Total Libraries | 1 |
Total Symbols / Types | 424 / 156 |
Compatibility |
100% |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 18 |
Removed Symbols | High | 0 |
Problems with Data Types | High | 0 |
Medium | 0 |
Low | 7 |
Problems with Symbols | High | 0 |
Medium | 0 |
Low | 0 |
Problems with Constants | Low | 0 |
Other Changes in Data Types | - | 8 |
Added Symbols 18
libssh.h,
libssh.so.4.10.1
ssh_channel_get_exit_state ( ssh_channel channel, uint32_t* pexit_code, char** pexit_signal, int* pcore_dumped ) @@ LIBSSH_4_10_0
ssh_channel_request_pty_size_modes ( ssh_channel channel, char const* term, int cols, int rows, unsigned char const* modes, size_t modes_len ) @@ LIBSSH_4_10_0
ssh_pki_export_privkey_base64_format ( ssh_key const privkey, char const* passphrase, ssh_auth_callback auth_fn, void* auth_data, char** b64_key, enum ssh_file_format_e format ) @@ LIBSSH_4_10_0
ssh_pki_export_privkey_file_format ( ssh_key const privkey, char const* passphrase, ssh_auth_callback auth_fn, void* auth_data, char const* filename, enum ssh_file_format_e format ) @@ LIBSSH_4_10_0
ssh_request_no_more_sessions ( ssh_session session ) @@ LIBSSH_4_10_0
sftp.h,
libssh.so.4.10.1
sftp_aio_begin_read ( sftp_file file, size_t len, sftp_aio* aio ) @@ LIBSSH_4_10_0
sftp_aio_begin_write ( sftp_file file, void const* buf, size_t len, sftp_aio* aio ) @@ LIBSSH_4_10_0
sftp_aio_free ( sftp_aio aio ) @@ LIBSSH_4_10_0
sftp_aio_wait_read ( sftp_aio* aio, void* buf, size_t buf_size ) @@ LIBSSH_4_10_0
sftp_aio_wait_write ( sftp_aio* aio ) @@ LIBSSH_4_10_0
sftp_expand_path ( sftp_session sftp, char const* path ) @@ LIBSSH_4_10_0
sftp_hardlink ( sftp_session sftp, char const* oldpath, char const* newpath ) @@ LIBSSH_4_10_0
sftp_home_directory ( sftp_session sftp, char const* username ) @@ LIBSSH_4_10_0
sftp_limits ( sftp_session sftp ) @@ LIBSSH_4_10_0
sftp_limits_free ( sftp_limits_t limits ) @@ LIBSSH_4_10_0
sftp_lsetstat ( sftp_session sftp, char const* file, sftp_attributes attr ) @@ LIBSSH_4_10_0
sftpserver.h,
libssh.so.4.10.1
sftp_channel_default_data_callback ( ssh_session session, ssh_channel channel, void* data, uint32_t len, int is_stderr, void* userdata ) @@ LIBSSH_4_10_0
sftp_channel_default_subsystem_request ( ssh_session session, ssh_channel channel, char const* subsystem, void* userdata ) @@ LIBSSH_4_10_0
to the top
Problems with Data Types, Low Severity 7
callbacks.h
[+] struct ssh_callbacks_struct 2
|
Change |
Effect |
1 |
Field channel_open_request_forwarded_tcpip_function has been added to this type. |
1) This field will not be initialized by old clients. 2) Size of the inclusive type has been changed.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
2 |
Size of this type has been changed from 64 bytes to 72 bytes. |
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
[+] affected symbols: 1 (0.2%)
ssh_set_callbacks ( ssh_session session, ssh_callbacks cb )
2nd parameter 'cb' (pointer) has base type 'struct ssh_callbacks_struct'.
[+] struct ssh_channel_callbacks_struct 3
|
Change |
Effect |
1 |
Field channel_open_response_function has been added to this type. |
1) This field will not be initialized by old clients. 2) Size of the inclusive type has been changed.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
2 |
Field channel_request_response_function has been added to this type. |
1) This field will not be initialized by old clients. 2) Size of the inclusive type has been changed.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
3 |
Size of this type has been changed from 136 bytes to 152 bytes. |
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
[+] affected symbols: 3 (0.7%)
ssh_add_channel_callbacks ( ssh_channel channel, ssh_channel_callbacks cb )
2nd parameter 'cb' (pointer) has base type 'struct ssh_channel_callbacks_struct'.
ssh_remove_channel_callbacks ( ssh_channel channel, ssh_channel_callbacks cb )
2nd parameter 'cb' (pointer) has base type 'struct ssh_channel_callbacks_struct'.
ssh_set_channel_callbacks ( ssh_channel channel, ssh_channel_callbacks cb )
2nd parameter 'cb' (pointer) has base type 'struct ssh_channel_callbacks_struct'.
sftp.h
[+] struct sftp_session_struct 2
|
Change |
Effect |
1 |
Field limits has been added to this type. |
1) This field will not be initialized by old clients. 2) Size of the inclusive type has been changed.
NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
2 |
Size of this type has been changed from 72 bytes to 80 bytes. |
The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
[+] affected symbols: 63 (14.9%)
sftp_async_read ( sftp_file file, void* data, uint32_t len, uint32_t id )
Field 'file.sftp' in 1st parameter 'file' (pointer) has base type 'struct sftp_session_struct'.
sftp_async_read_begin ( sftp_file file, uint32_t len )
Field 'file.sftp' in 1st parameter 'file' (pointer) has base type 'struct sftp_session_struct'.
sftp_canonicalize_path ( sftp_session sftp, char const* path )
1st parameter 'sftp' (pointer) has base type 'struct sftp_session_struct'.
sftp_chmod ( sftp_session sftp, char const* file, mode_t mode )
1st parameter 'sftp' (pointer) has base type 'struct sftp_session_struct'.
sftp_chown ( sftp_session sftp, char const* file, uid_t owner, gid_t group )
1st parameter 'sftp' (pointer) has base type 'struct sftp_session_struct'.
sftp_client_message_free ( sftp_client_message msg )
Field 'msg.sftp' in 1st parameter 'msg' (pointer) has base type 'struct sftp_session_struct'.
sftp_client_message_get_data ( sftp_client_message msg )
Field 'msg.sftp' in 1st parameter 'msg' (pointer) has base type 'struct sftp_session_struct'.
sftp_client_message_get_filename ( sftp_client_message msg )
Field 'msg.sftp' in 1st parameter 'msg' (pointer) has base type 'struct sftp_session_struct'.
sftp_client_message_get_flags ( sftp_client_message msg )
Field 'msg.sftp' in 1st parameter 'msg' (pointer) has base type 'struct sftp_session_struct'.
sftp_client_message_get_submessage ( sftp_client_message msg )
Field 'msg.sftp' in 1st parameter 'msg' (pointer) has base type 'struct sftp_session_struct'.
...
to the top
Other Changes in Data Types 8
libssh.h
[+] enum ssh_keycmp_e 1
|
Change |
Effect |
1 |
The member SSH_KEY_CMP_CERTIFICATE with value 2 has been added. |
No effect. |
[+] affected symbols: 1 (0.2%)
ssh_key_cmp ( ssh_key const k1, ssh_key const k2, enum ssh_keycmp_e what )
3rd parameter 'what' is of type 'enum ssh_keycmp_e'.
[+] enum ssh_options_e 6
|
Change |
Effect |
1 |
The member SSH_OPTIONS_CERTIFICATE with value 46 has been added. |
No effect. |
2 |
The member SSH_OPTIONS_CONTROL_MASTER with value 44 has been added. |
No effect. |
3 |
The member SSH_OPTIONS_CONTROL_PATH with value 45 has been added. |
No effect. |
4 |
The member SSH_OPTIONS_IDENTITIES_ONLY with value 43 has been added. |
No effect. |
5 |
The member SSH_OPTIONS_PROXYJUMP with value 47 has been added. |
No effect. |
6 |
The member SSH_OPTIONS_PROXYJUMP_CB_LIST_APPEND with value 48 has been added. |
No effect. |
[+] affected symbols: 2 (0.5%)
ssh_options_get ( ssh_session session, enum ssh_options_e type, char** value )
2nd parameter 'type' is of type 'enum ssh_options_e'.
ssh_options_set ( ssh_session session, enum ssh_options_e type, void const* value )
2nd parameter 'type' is of type 'enum ssh_options_e'.
server.h
[+] enum ssh_bind_options_e 1
|
Change |
Effect |
1 |
The member SSH_BIND_OPTIONS_IMPORT_KEY_STR with value 22 has been added. |
No effect. |
[+] affected symbols: 1 (0.2%)
ssh_bind_options_set ( ssh_bind sshbind, enum ssh_bind_options_e type, void const* value )
2nd parameter 'type' is of type 'enum ssh_bind_options_e'.
to the top
Header Files 8
callbacks.h
legacy.h
libssh.h
libssh_version.h
libsshpp.hpp
server.h
sftp.h
ssh2.h
to the top
Libraries 1
libssh.so.4.9.6
to the top
Test Info
Library Name | libssh |
Version #1 | 1.10.6 |
Version #2 | 1.11.0 |
Arch | x86_64 |
Subject | Source Compatibility |
Test Results
Total Header Files | 8 |
Total Libraries | 1 |
Total Symbols / Types | 502 / 163 |
Compatibility |
100% |
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 18 |
Removed Symbols | High | 0 |
Problems with Data Types | High | 0 |
Medium | 0 |
Low | 4 |
Problems with Symbols | High | 0 |
Medium | 0 |
Low | 0 |
Problems with Constants | Low | 2 |
Other Changes in Data Types | - | 8 |
Added Symbols 18
libssh.h
ssh_channel_get_exit_state ( ssh_channel channel, uint32_t* pexit_code, char** pexit_signal, int* pcore_dumped )
ssh_channel_request_pty_size_modes ( ssh_channel channel, char const* term, int cols, int rows, unsigned char const* modes, size_t modes_len )
ssh_pki_export_privkey_base64_format ( ssh_key const privkey, char const* passphrase, ssh_auth_callback auth_fn, void* auth_data, char** b64_key, enum ssh_file_format_e format )
ssh_pki_export_privkey_file_format ( ssh_key const privkey, char const* passphrase, ssh_auth_callback auth_fn, void* auth_data, char const* filename, enum ssh_file_format_e format )
ssh_request_no_more_sessions ( ssh_session session )
sftp.h
sftp_aio_begin_read ( sftp_file file, size_t len, sftp_aio* aio )
sftp_aio_begin_write ( sftp_file file, void const* buf, size_t len, sftp_aio* aio )
sftp_aio_free ( sftp_aio aio )
sftp_aio_wait_read ( sftp_aio* aio, void* buf, size_t buf_size )
sftp_aio_wait_write ( sftp_aio* aio )
sftp_expand_path ( sftp_session sftp, char const* path )
sftp_hardlink ( sftp_session sftp, char const* oldpath, char const* newpath )
sftp_home_directory ( sftp_session sftp, char const* username )
sftp_limits ( sftp_session sftp )
sftp_limits_free ( sftp_limits_t limits )
sftp_lsetstat ( sftp_session sftp, char const* file, sftp_attributes attr )
sftpserver.h
sftp_channel_default_data_callback ( ssh_session session, ssh_channel channel, void* data, uint32_t len, int is_stderr, void* userdata )
sftp_channel_default_subsystem_request ( ssh_session session, ssh_channel channel, char const* subsystem, void* userdata )
to the top
Problems with Data Types, Low Severity 4
callbacks.h
[+] struct ssh_callbacks_struct 1
|
Change |
Effect |
1 |
Field channel_open_request_forwarded_tcpip_function has been added to this type. |
This field will not be initialized or used by old client applications. |
[+] affected symbols: 1 (0.2%)
ssh_set_callbacks ( ssh_session session, ssh_callbacks cb )
2nd parameter 'cb' (pointer) has base type 'struct ssh_callbacks_struct'.
[+] struct ssh_channel_callbacks_struct 2
|
Change |
Effect |
1 |
Field channel_open_response_function has been added to this type. |
This field will not be initialized or used by old client applications. |
2 |
Field channel_request_response_function has been added to this type. |
This field will not be initialized or used by old client applications. |
[+] affected symbols: 3 (0.6%)
ssh_add_channel_callbacks ( ssh_channel channel, ssh_channel_callbacks cb )
2nd parameter 'cb' (pointer) has base type 'struct ssh_channel_callbacks_struct'.
ssh_remove_channel_callbacks ( ssh_channel channel, ssh_channel_callbacks cb )
2nd parameter 'cb' (pointer) has base type 'struct ssh_channel_callbacks_struct'.
ssh_set_channel_callbacks ( ssh_channel channel, ssh_channel_callbacks cb )
2nd parameter 'cb' (pointer) has base type 'struct ssh_channel_callbacks_struct'.
sftp.h
[+] struct sftp_session_struct 1
|
Change |
Effect |
1 |
Field limits has been added to this type. |
This field will not be initialized or used by old client applications. |
[+] affected symbols: 63 (12.5%)
sftp_async_read ( sftp_file file, void* data, uint32_t len, uint32_t id )
Field 'file.sftp' in 1st parameter 'file' (pointer) has base type 'struct sftp_session_struct'.
sftp_async_read_begin ( sftp_file file, uint32_t len )
Field 'file.sftp' in 1st parameter 'file' (pointer) has base type 'struct sftp_session_struct'.
sftp_canonicalize_path ( sftp_session sftp, char const* path )
1st parameter 'sftp' (pointer) has base type 'struct sftp_session_struct'.
sftp_chmod ( sftp_session sftp, char const* file, mode_t mode )
1st parameter 'sftp' (pointer) has base type 'struct sftp_session_struct'.
sftp_chown ( sftp_session sftp, char const* file, uid_t owner, gid_t group )
1st parameter 'sftp' (pointer) has base type 'struct sftp_session_struct'.
sftp_client_message_free ( sftp_client_message msg )
Field 'msg.sftp' in 1st parameter 'msg' (pointer) has base type 'struct sftp_session_struct'.
sftp_client_message_get_data ( sftp_client_message msg )
Field 'msg.sftp' in 1st parameter 'msg' (pointer) has base type 'struct sftp_session_struct'.
sftp_client_message_get_filename ( sftp_client_message msg )
Field 'msg.sftp' in 1st parameter 'msg' (pointer) has base type 'struct sftp_session_struct'.
sftp_client_message_get_flags ( sftp_client_message msg )
Field 'msg.sftp' in 1st parameter 'msg' (pointer) has base type 'struct sftp_session_struct'.
sftp_client_message_get_submessage ( sftp_client_message msg )
Field 'msg.sftp' in 1st parameter 'msg' (pointer) has base type 'struct sftp_session_struct'.
...
to the top
Problems with Constants, Low Severity 2
libssh_version.h
[+] LIBSSH_VERSION_MICRO
|
Change |
Effect |
1 |
The value of constant LIBSSH_VERSION_MICRO has been changed from 6 to 1. |
Recompilation of a client program may be broken. |
[+] LIBSSH_VERSION_MINOR
|
Change |
Effect |
1 |
The value of constant LIBSSH_VERSION_MINOR has been changed from 10 to 11. |
Recompilation of a client program may be broken. |
to the top
Other Changes in Data Types 8
libssh.h
[+] enum ssh_keycmp_e 1
|
Change |
Effect |
1 |
The member SSH_KEY_CMP_CERTIFICATE with value 2 has been added. |
No effect. |
[+] affected symbols: 1 (0.2%)
ssh_key_cmp ( ssh_key const k1, ssh_key const k2, enum ssh_keycmp_e what )
3rd parameter 'what' is of type 'enum ssh_keycmp_e'.
[+] enum ssh_options_e 6
|
Change |
Effect |
1 |
The member SSH_OPTIONS_CERTIFICATE with value 46 has been added. |
No effect. |
2 |
The member SSH_OPTIONS_CONTROL_MASTER with value 44 has been added. |
No effect. |
3 |
The member SSH_OPTIONS_CONTROL_PATH with value 45 has been added. |
No effect. |
4 |
The member SSH_OPTIONS_IDENTITIES_ONLY with value 43 has been added. |
No effect. |
5 |
The member SSH_OPTIONS_PROXYJUMP with value 47 has been added. |
No effect. |
6 |
The member SSH_OPTIONS_PROXYJUMP_CB_LIST_APPEND with value 48 has been added. |
No effect. |
[+] affected symbols: 5 (1%)
ssh::Session::setOption ( enum ssh_options_e type, long option )
1st parameter 'type' is of type 'enum ssh_options_e'.
ssh::Session::setOption ( enum ssh_options_e type, char const* option )
1st parameter 'type' is of type 'enum ssh_options_e'.
ssh::Session::setOption ( enum ssh_options_e type, void* option )
1st parameter 'type' is of type 'enum ssh_options_e'.
ssh_options_get ( ssh_session session, enum ssh_options_e type, char** value )
2nd parameter 'type' is of type 'enum ssh_options_e'.
ssh_options_set ( ssh_session session, enum ssh_options_e type, void const* value )
2nd parameter 'type' is of type 'enum ssh_options_e'.
server.h
[+] enum ssh_bind_options_e 1
|
Change |
Effect |
1 |
The member SSH_BIND_OPTIONS_IMPORT_KEY_STR with value 22 has been added. |
No effect. |
[+] affected symbols: 1 (0.2%)
ssh_bind_options_set ( ssh_bind sshbind, enum ssh_bind_options_e type, void const* value )
2nd parameter 'type' is of type 'enum ssh_bind_options_e'.
to the top
Header Files 8
callbacks.h
legacy.h
libssh.h
libssh_version.h
libsshpp.hpp
server.h
sftp.h
ssh2.h
to the top
Libraries 1
libssh.so.4.9.6
to the top
signature.asc
Description: This is a digitally signed message part
--- End Message ---
--- Begin Message ---
Version: 1:9.2.0+ds-1
Done: Michael Tokarev <m...@tls.msk.ru>
On Mon, 2024-12-30 at 13:02 +0100, Sven Geuer wrote:
>
> The fix materialised in Debian.
Closing the bug.
--
GPG Fingerprint
3DF5 E8AA 43FC 9FDF D086 F195 ADF5 0EDA F8AD D585
signature.asc
Description: This is a digitally signed message part
--- End Message ---