- Package:
- librust-secret-service-dev
- Source:
- librust-secret-service-dev
- Description:
- Interface with Secret Service API - Rust source code
- Submitter:
- Jonas Smedegaard
- Date:
- 2025-08-22 02:37:03 UTC
- Severity:
- normal
Builds involving this package fails to build:
error[E0428]: the name `hkdf` is defined multiple times
--> /build/rust-email-lib-0+20250111/debian/cargo_registry/secret-service-4.0.0/src/session.rs:131:1
|
111 | fn hkdf(ikm: Vec<u8>, salt: Option<&[u8]>, okm: &mut [u8]) {
| ---------------------------------------------------------- previous definition of the value `hkdf` here
...
131 | fn hkdf(ikm: Vec<u8>, salt: Option<&[u8]>, okm: &mut [u8]) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `hkdf` redefined here
|
= note: `hkdf` must be defined only once in the value namespace of this module
error[E0428]: the name `encrypt` is defined multiple times
--> /build/rust-email-lib-0+20250111/debian/cargo_registry/secret-service-4.0.0/src/session.rs:267:1
|
242 | pub fn encrypt(data: &[u8], key: &AesKey, iv: &[u8]) -> Vec<u8> {
| --------------------------------------------------------------- previous definition of the value `encrypt` here
...
267 | pub fn encrypt(data: &[u8], key: &AesKey, iv: &[u8]) -> Vec<u8> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `encrypt` redefined here
|
= note: `encrypt` must be defined only once in the value namespace of this module
error[E0428]: the name `decrypt` is defined multiple times
--> /build/rust-email-lib-0+20250111/debian/cargo_registry/secret-service-4.0.0/src/session.rs:284:1
|
254 | pub fn decrypt(encrypted_data: &[u8], key: &AesKey, iv: &[u8]) -> Result<Vec<u8>, Error> {
| ---------------------------------------------------------------------------------------- previous definition of the value `decrypt` here
...
284 | pub fn decrypt(encrypted_data: &[u8], key: &AesKey, iv: &[u8]) -> Result<Vec<u8>, Error> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `decrypt` redefined here
|
= note: `decrypt` must be defined only once in the value namespace of this module
-----BEGIN PGP SIGNATURE-----
wsG7BAEBCgBvBYJn8369CRAsfDFGwaABIUcUAAAAAAAeACBzYWx0QG5vdGF0aW9u
cy5zZXF1b2lhLXBncC5vcmdRAK2jcExKcPb8v2cW+VK/xbxNK0g+uv67vqSVbT3q
HBYhBJ/j6cNmkaaf9TzGhCx8MUbBoAEhAAA5+g//U0V2Y0gviRsqFcGH0AKJwDHS
1VLZ+wbD0shxeauPqhBReKtDMfv6czq3E2bt4ukwLTpwvPUt+eIXQAGiWEuS2cTo
Nr4/qmxHOvIPngVHyrY3i0VC/tosuc6s6DXzrLToCEHsF33jXYI+ac9/QHfXxJqj
5HWaYfJcQNz+26F98i1HU5fLgORrV1qKIqBKWUKgQo+S5PhvYKIUAvQ9/ZozMxeH
YLxvj/2cWAAcizbZBGPkICI3xEl0IPaoDHjQSFqm5ugb24QrSRaEpA2NGmu/B+hD
UM6+Ny/90REb7KHdqlt5ZwWKNjsMfN+hM6fcaPYgEcm7zhqs5yRbSEQ8+GWRJPUQ
x5Q6mdTxCRcYMrunsCC4VtejBWJQLYtdhfn0coKn6l/ocrMnIjjMSoOJiVOhDjFq
mR+zya8Puon0kbzK2OmKAJ5LR2sgcej9FsGE/3qjZmXO3fmjntlvLhjbidGybBZY
KetLeSHgX/N3i2rQSGrmR1VJmS4K3e/L14miTlRK5tY617sxn+pLlr4njh8sc2Jq
DfM07c1OrtwP5LT3vYqkkak2RHRSyI0Xki/zXXnIaisHsq+spC5U7UObQ2sViNXN
EORkhj8pnXxniyU/Fi9PsDhJcRi6wgdOpdWlouaewEI3c90HADsHGfvXOl8GSOyO
ufLjtptoDoJ0FXP8MmU=
=xbxw
-----END PGP SIGNATURE-----
Quoting Jonas Smedegaard (2025-04-07 09:29:04) Possibly the cause of this issue is that the Debian packaging carries a patch that mangles upstream default feature to enforce a specific crypto engine: That might very well wreak havoc for any reverse dependency expecting to be able to, well, *choose* a crypto engine. Just a guess, and since the patch is totally undocumented - i.e. lacks DEP-3 patch headers and is not mentioned in changelog, I give up speculating any further... - Jonas
I looked at this a bit during the BSP here - could you give more context about how you trigger the failure? AFAICT you can just disable default features on your side and pick the runtime+crypto-backend combination of your choice and things should work as expected - the latter you have to do anyway, since neither no features enabled, nor all features enabled would work. the default feature is the easiest way to get some build/autopkgtest coverage, we could of course also skip tests at build time altogether instead, or add a ton of manual overrides, but I am not sure it is worth it..
Quoting Fabian Grünbichler (2025-04-12 16:13:42) Upstream default for the crate secret-service is to not decide on a crypto engine. Debian packaging enforces a crypto engine, which means that downstream reverse dependencies of secret-service needs to be patched to match that fork of the upstream API. I fail to understand how that is "the easiest way". - Jonas
it doesn't enforce a crypto engine (that would mean hard-coding one and patching out the rest), it defaults to one (which is trivial to undo in any reverse dependency if desired, at the same place that makes the crypto provider selection in the first place). it requires the least overriding on our end when packaging. we could go down a more complicated route involving more overrides that have to be kept in sync with upstream, but so far I haven't seen an argument that would warrant it.
We believe that the bug you reported is fixed in the latest version of
rust-secret-service, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 1102276@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Peter Michael Green <plugwash@debian.org> (supplier of updated rust-secret-service package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Fri, 22 Aug 2025 01:42:26 +0000
Source: rust-secret-service
Architecture: source
Version: 4.0.0-5
Distribution: unstable
Urgency: medium
Maintainer: Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Changed-By: Peter Michael Green <plugwash@debian.org>
Closes: 1083230 1102276
Changes:
rust-secret-service (4.0.0-5) unstable; urgency=medium
.
* Team upload.
* Package secret-service 4.0.0 from crates.io using debcargo 2.7.8
* Mark all tests as broken for now, they need a dbus environment with
secret-service (Closes: #1083230)
* Stop patching default feature (Closes: #1102276)
* Use rt-async-io-crypto-openssl feature for build time testing.
* Add build-depends needed for rt-async-io-crypto-openssl feature.
Checksums-Sha1:
0f6c3eede8c60b050259f029f0bba8d4ee62419b 2850 rust-secret-service_4.0.0-5.dsc
667e5ffb88cd1db38ce687625d3efb3e07a028f0 4904 rust-secret-service_4.0.0-5.debian.tar.xz
711e43aae2d8b07ba8321a0f617200140881605f 8543 rust-secret-service_4.0.0-5_source.buildinfo
Checksums-Sha256:
a0ede3201b63be9645ffc0b23f5c7da3c40859524603d71bf5c48ba8de83b1a6 2850 rust-secret-service_4.0.0-5.dsc
f7f73f90d0b3ed082cdff45da3a63887882470c3f5dde0a097b7e0912559759c 4904 rust-secret-service_4.0.0-5.debian.tar.xz
3006ed0db8e0341c475567d9622a152509696613c56f0546150e714ed13fa18e 8543 rust-secret-service_4.0.0-5_source.buildinfo
Files:
cceab5bb835745f6b8235f9a62aee901 2850 rust optional rust-secret-service_4.0.0-5.dsc
a317375bc5add63b6ffeeca750cc001c 4904 rust optional rust-secret-service_4.0.0-5.debian.tar.xz
b05e6893c976135940005286ef6fb303 8543 rust optional rust-secret-service_4.0.0-5_source.buildinfo
-----BEGIN PGP SIGNATURE-----
iQJIBAEBCAAyFiEEU0DQATYMplbjSX63DEjqKnqP/XsFAminyygUHHBsdWd3YXNo
QGRlYmlhbi5vcmcACgkQDEjqKnqP/Xvt6A//XLBw7O+pdzuHj/MVDQSFwy5M3BIb
gwszOyuzFgdNrSvWNfNYjnSsCcFF7p/ctY+YIDBRpRXD6yrkXLmiEqIfsbik3OFU
ju/Vs68Po9x/2+44IYa8aSsuUWqKNTSDETzYQc2I6DxXUZJJ9wXPfR4nbmxxEne6
JQZZ/JNPd3uz358nrm1HQ/oZdUZofeKtL0GSMw/o0lV3emgrgSoNPgJ/LdIOcVwS
IODQgU6UMUCZxCQk+9dyaZ+pncvFCOph92uphJPN9SJ2X/jB/Pt24qQ1ajutl5WA
cL0vhyRGwgn9JaTjcQinlk69hhK2vdRNO8ZCFf5kU6yJ/7gaDoHlhTze3Py5JuiR
Vknbqmfg2v6QC+fOn9CP3jBHU44OA9+I8TK6dt9S+jTWpGj3ol3wvFe4F2s39Lzx
AbPWHjSTHI+SAAlobCXdhTzP2CWMZzl2XVhNle4mCm/L73ucPjUVnCGv763p09cy
nbi8L6gQbfxxujyE+DvLge81RGG5KeGDSDUDkYRMiWfNc9bZmRKDrbqLnNVNsHpu
K8iKA0riE7k5qNwjPdkjgFMrb0MH/3S8QA3HzKTK2W7sPGkGcH7EuXut0U4sOjng
4fhOQKaI1PmHogxcTOkNRtxeUkPC9EX7xupyw++4/8jFL+haavPREFVzjkJvnuN4
mTaAi1YZT+R0MPk=
=c1lD
-----END PGP SIGNATURE-----