From: Michael Tremer <michael.tremer@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: Struggling with a problem with the python 3.13 update
Date: Wed, 05 Feb 2025 13:05:06 +0000 [thread overview]
Message-ID: <0F499873-E98F-4720-B886-9FD9FF0272CB@ipfire.org> (raw)
In-Reply-To: <3534def4-a098-454e-a58a-8e3727d32684@ipfire.org>
[-- Attachment #1: Type: text/plain, Size: 7218 bytes --]
Hello Adolf,
> On 4 Feb 2025, at 17:22, Adolf Belka <adolf.belka(a)ipfire.org> wrote:
>
> Hi All,
>
> I have hit a problem with my python-3.13 update that I have not been able to figure a way out from.
>
> I had got to the updating of python3-cryptography. The newer version used in combination with python 3.13 is now requiring a lot of rust crates to be installed. So far I have had to install 21 new rust crates and update quite a few others.
I am not going to comment on how bad this all is, because you all know… Let’s just insert some eye rolling here...
> The updates have gone fine until I installed rust-const-random-macro which then required rust-tiny-keccak which then required rust-crunchy. Then rust-tiny-keccak failed to compile with the following log output.
>
> Feb 4 15:52:36: Building rust-tiny-keccak make: Entering directory '/home/user/sandbox/ipfire-2.x/lfs'
> make: Nothing to be done for 'download'.
> make: Leaving directory '/home/user/sandbox/ipfire-2.x/lfs'
> make: Entering directory '/usr/src/lfs'
> tiny-keccak-2.0.2.tar.gz checksum OK
> ====================================== Installing tiny-keccak-2.0.2 ...
> Install started; saving file list to /usr/src/lsalr ...
> cd /usr/src/tiny-keccak-2.0.2 && rm Cargo.toml.orig
> cd /usr/src/tiny-keccak-2.0.2 && mkdir -p /usr/src/tiny-keccak-2.0.2/.cargo && echo "${CARGO_CONFIG}" > /usr/src/tiny-keccak-2.0.2/.cargo/config && rm -f Cargo.lock
> cd /usr/src/tiny-keccak-2.0.2 && CARGOPATH=/usr/src/tiny-keccak-2.0.2/.cargo RUSTC_BOOTSTRAP=1 cargo --offline build --release -Z avoid-dev-deps -j16
> warning: `/usr/src/tiny-keccak-2.0.2/.cargo/config` is deprecated in favor of `config.toml`
> note: if you need to support cargo 1.38 or earlier, you can symlink `config` to `config.toml`
> Compiling crunchy v0.2.3
> Compiling tiny-keccak v2.0.2 (/usr/src/tiny-keccak-2.0.2)
> Running `rustc --crate-name build_script_build --edition=2021 /usr/share/cargo/registry/crunchy-0.2.3/build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' --cfg 'feature="limit_128"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("default", "limit_1024", "limit_128", "limit_2048", "limit_256", "limit_512", "limit_64", "std"))' -C metadata=ac4fd721ed21a1bd -C extra-filename=-ac4fd721ed21a1bd --out-dir /usr/src/tiny-keccak-2.0.2/target/release/build/crunchy-ac4fd721ed21a1bd -C strip=debuginfo -L dependency=/usr/src/tiny-keccak-2.0.2/target/release/deps --cap-lints allow -Copt-level=3 -Clink-arg=-Wl,-z,relro,-z,now -Ccodegen-units=1 --cap-lints=warn`
> Running `rustc --crate-name build_script_build --edition=2018 build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("cshake", "default", "fips202", "k12", "keccak", "kmac", "parallel_hash", "sha3", "shake", "sp800", "tuple_hash"))' -C metadata=716aee7b2cfdb0c1 -C extra-filename=-716aee7b2cfdb0c1 --out-dir /usr/src/tiny-keccak-2.0.2/target/release/build/tiny-keccak-716aee7b2cfdb0c1 -C strip=debuginfo -L dependency=/usr/src/tiny-keccak-2.0.2/target/release/deps -Copt-level=3 -Clink-arg=-Wl,-z,relro,-z,now -Ccodegen-units=1 --cap-lints=warn`
> error: You need to specify at least one hash function you intend to use. Available options:
> keccak, shake, sha3, cshake, kmac, tuple_hash, parallel_hash, k12, fips202, sp800
> e.g.
> tiny-keccak = { version = "2.0.0", features = ["sha3"] }
> --> build.rs:13:1
> |
> 13 | / compile_error!(
> 14 | | "You need to specify at least one hash function you intend to use. \
> 15 | | Available options:\n\
> 16 | | keccak, shake, sha3, cshake, kmac, tuple_hash, parallel_hash, k12, fips202, sp800\n\
> 17 | | e.g.\n\
> 18 | | tiny-keccak = { version = \"2.0.0\", features = [\"sha3\"] }"
> 19 | | );
> | |_^
>
> error: could not compile `tiny-keccak` (build script) due to 1 previous error
>
> Caused by:
> process didn't exit successfully: `rustc --crate-name build_script_build --edition=2018 build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("cshake", "default", "fips202", "k12", "keccak", "kmac", "parallel_hash", "sha3", "shake", "sp800", "tuple_hash"))' -C metadata=716aee7b2cfdb0c1 -C extra-filename=-716aee7b2cfdb0c1 --out-dir /usr/src/tiny-keccak-2.0.2/target/release/build/tiny-keccak-716aee7b2cfdb0c1 -C strip=debuginfo -L dependency=/usr/src/tiny-keccak-2.0.2/target/release/deps -Copt-level=3 -Clink-arg=-Wl,-z,relro,-z,now -Ccodegen-units=1 --cap-lints=warn` (exit status: 1)
> warning: build failed, waiting for other jobs to finish...
> make: *** [rust-tiny-keccak:78: /usr/src/log/tiny-keccak-2.0.2] Error 101
As far as I understand the documentation this package implements a lot of hashes, but none of them are enabled by default. They need to be enabled whenever they are needed.
> The rust-const-random-macro contains the following dependencies section within its cargo.toml file:-
>
> [dependencies.tiny-keccak]
> version = "2.0.2"
> features = ["shake"]
>
> but that is in the rust crate that comes after tiny-keccak gets compiled successfully.
The “features” option enabled “shake” here. This is basically how to enable the hash that you need. In the example above, sha3 has been used.
> I can't figure out how to tell the rust compilation of tiny-keccak to specify the various hash functions and in terms of the const-random-macro crate to specify the shake hash function. I would have expected that by default it would specify all of the available hash functions. Also it seems to me that the compilation command includes a list of the hash functions
>
> --cfg 'feature="default"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("cshake", "default", "fips202", "k12", "keccak", "kmac", "parallel_hash", "sha3", "shake", "sp800", "tuple_hash"))'
>
> Any help or guidance on how I should deal with this issue would be very gladly accepted.
I would assume that there is nothing that you should do manually here. The people who depend on this package need to tell it which hash they want to use and Cargo is supposed to take care of the rest. In Cargo.toml, there should be something like this:
[dependencies]
tiny-keccak = { version = "2.0.0", features = ["sha3"] }
Maybe the syntax has changed? Because the snippet that you posted seems to carry the same information, just in a different format.
> I only have 16 python modules and around 7 applications that use python left to build with python-3.13 . It feels so close to completing but with rust-tiny-keccak it feels so far still.
I hope I could help :)
-Michael
>
> Regards,
> Adolf.
>
>
> Sent from my laptop
>
next prev parent reply other threads:[~2025-02-05 13:05 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-04 17:22 Adolf Belka
2025-02-05 13:05 ` Michael Tremer [this message]
2025-02-05 14:19 ` Adolf Belka
2025-02-05 18:27 ` Adolf Belka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0F499873-E98F-4720-B886-9FD9FF0272CB@ipfire.org \
--to=michael.tremer@ipfire.org \
--cc=development@lists.ipfire.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox