-
Notifications
You must be signed in to change notification settings - Fork 38.2k
ci: Turn CentOS config into Alpine musl config #33480
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code Coverage & BenchmarksFor details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33480. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
|
Concept ACK |
|
Interesting side note: Looks like most unit tests are minimally faster on Alpine, except for the secp tests: |
|
So Centos as CI task was not added to give good RHEL distro / Enterprise Linux support ? |
No, as mentioned in the pull description. For reference, the history was:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concept ACK fa6b2e9
This PR introduces more libc diversity in the CI pipeline (in the form of using Alpine), which is welcome.
Not completely agreeing with this PR sentence;
"So basically, the centos task is similar to all the Ubuntu/Debian CI tasks, possibly with some packages named slightly differently. "
Yes and No; (Risk of being too much of a nitpicker.)
-
Yes from a Libc perspective; Centos is glibc and Debian is also glibc
-
No from a distro philosophy; Ubuntu/Debian and RHEL distro's are different in philosophy REHL is slower, more enterprise-focused. But do we need it as a CI step ? no as you mentioned, it does not give us new information.
There for this seems like a good improvement.
Also thanks for the extensive answer.
No worries. Happy to adjust the pull description, if you have any suggestions I could take over. |
|
Also confirmed that the gcc debug mode works on alpine: https://github.com/maflcko/bitcoin-core-with-ci/actions/runs/18013008390/job/51250509812#step:8:2473 : |
How about something like this: The CentOS task aligns with Ubuntu/Debian CI tasks in terms of libc usage, but (slightly) differs in package naming and update philosophy. I am not aware of the task ever discovering a centos-related issue, so it seems fine to recycle it into an Alpine Linux task. |
|
thx, edited description |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK fa6b2e9
This PR introduces more libc diversity in the CI pipeline (in the form of using Alpine), which is welcome.
|
Concept ACK |
|
tACK It may be worth mentioning that this change fixed an issue (I was unable to isolate) on CentOS using HexStr() formatting a custom signetchallenge to display in the rpcconsole. |
That is unrelated to both this pull request and your pull request, see #33293. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK fa6b2e9
Alpine/musl feels much more useful to me than a frozen-in-time CentOS build.
Not tested locally as I'm a bit bandwidth-contrained at the moment, but the code changes and CI look good to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reACK 444409f
changes since last ACK:
- changed container size to md. CI still works with this size. ✅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 444409f
This took 29 minutes for an alpine depends, gui build, with no docker/ccache/depends caches (as no merges to master yet) which seems in line with other jobs.
|
Another (tiny) benefit of this pull request is that the task will now finally be able to run on my riscv64 box (modulo the two python wheels) |
|
Concept ACK |
…a43dc365c 1ea43dc365c kernel: Add Purpose section to header documentation 6fb86d14a3e kernel: Allowing reducing exports 0a3644da67e kernel: Add pure kernel bitcoin-chainstate bb7276e1a72 Kernel: Add functions for working with outpoints 5ef72e7c44b kernel: Add block hash type and block tree utility functions to C header 43b7b7b9d28 kernel: Add function to read block undo data from disk to C header 06a485c9ab1 kernel: Add functions to read block from disk to C header 69c184b44f9 kernel: Add function for copying block data to C header 0e973b20fcc kernel: Add functions for the block validation state to C header 6c2181dc52f kernel: Add validation interface to C header 4d8aa6b3fb1 kernel: Add interrupt function to C header 2ecd926cf30 kernel: Add import blocks function to C header efcfe2dfedf kernel: Add chainstate load options for in-memory dbs in C header bc6788ab7dc kernel: Add options for reindexing in C header e8f2f4fe225 kernel: Add block validation to C header ffd4ae233ee kernel: Add chainstate loading when instantiating a ChainstateManager 1167af89a8f kernel: Add chainstate manager option for setting worker threads b88637f6967 kernel: Add chainstate manager object to C header b4ff3ce0d34 kernel: Add notifications context option to C header e3d62c1ad32 kernel: Add chain params context option to C header a184a263df2 kernel: Add kernel library context object 776c879eaf7 kernel: Add logging to kernel library C header e3b2e01811f kernel: Introduce initial kernel C header API 3bb30658e63 Merge bitcoin/bitcoin#32380: Modernize use of UTF-8 in Windows code 5a58d4915e5 Merge bitcoin/bitcoin#33546: test: add functional test for `TestShell` (matching doc example) 1abc8fa308d Merge bitcoin/bitcoin#33218: refactor: rename `fees.{h,cpp}` to `fees/block_policy_estimator.{h,cpp}` de15e52f09d Merge bitcoin/bitcoin#32867: doc: mention key removal in rpc interface modification 24434c1284b Merge bitcoin/bitcoin#31308: ci, iwyu: Treat warnings as errors for specific directories 27cd7f50494 Merge bitcoin/bitcoin#33185: guix: update time-machine to 5cb84f2013c5b1e48a7d0e617032266f1e6059e2 80bb7012be8 Merge bitcoin/bitcoin#31514: wallet: allow label for non-ranged external descriptor (if `internal=false`) & disallow label for ranged descriptors 5e1f626ac30 Merge bitcoin/bitcoin#32504: test: descriptor: cover invalid multi/multi_a cases 56e9703968e Merge bitcoin/bitcoin#29640: Fix tiebreak when loading blocks from disk (and add tests for comparing chain ties) 9bd9ec00b23 Merge bitcoin/bitcoin#33688: test: Update BIP324 test vectors 1a7fb5eeeef fees: return current block height in estimateSmartFee ab49480d9be fees: rename fees_args to block_policy_estimator_args 06db08a4356 fees: refactor: rename fees to block_policy_estimator 6dfdd7e034d fees: refactor: rename policy_fee_tests.cpp to feerounder_tests.cpp f54ffb4bc14 Merge bitcoin/bitcoin#32813: clang-format: make formatting deterministic for different formatter versions 1916c51cd85 Merge bitcoin/bitcoin#33210: fuzz: enhance wallet_fees by mocking mempool stuff 0eb554728ca Merge bitcoin/bitcoin#33336: log: print every script verification state change c6c4edf324a Merge bitcoin/bitcoin#32983: rpc: refactor: use string_view in Arg/MaybeArg 00ad998d954 Merge bitcoin/bitcoin#33252: p2p: add `DifferenceFormatter` fuzz target and invariant check f6ba97cea1d Merge bitcoin/bitcoin#33666: ci: Drop libFuzzer from msan fuzz task af78d365129 Merge bitcoin/bitcoin#32588: util: Abort on failing CHECK_NONFATAL in debug builds 51877f2fc5e test: Update BIP324 test vectors 161864a038e Merge bitcoin/bitcoin#32579: p2p: Correct unrealistic headerssync unit test behavior 70a6fb5e5ab Merge bitcoin/bitcoin#33172: test: p2p block malleability 99cb2054bdf Merge bitcoin/bitcoin#33600: refactor: Construct g_verify_flag_names on first use 211bf6c9750 Merge bitcoin/bitcoin#33566: miner: fix empty mempool case for waitNext() 944e5ff848f doc: mention key removal in rpc interface modification d32f9525e48 Merge bitcoin/bitcoin#33679: test: set number of RPC server threads to 2 1c85d062321 Merge bitcoin/bitcoin#32266: depends: Avoid `warning: "_FORTIFY_SOURCE" redefined` for `libevent` 11684c9ce2c Merge bitcoin/bitcoin#33674: ci: Doc ASLR workaround for sanitizer tasks e9cd45e3d3c test: set number of RPC server threads to 2 7d27af98c7c Merge bitcoin/bitcoin#33461: ci: add Valgrind fuzz 1569bcc387f Merge bitcoin/bitcoin#33639: ci: Only write docker build images to Cirrus cache 98c4994d0f3 Merge bitcoin/bitcoin#33570: randomenv: Fix MinGW dllimport warning for `environ` c211d183221 Merge bitcoin/bitcoin#33670: test: Use unassigned p2p_port instead of hardcoded 60000 in p2p_i2p_ports.py e4b04630bcf ci: add Valgrind fuzz 3fee0754a2e Merge bitcoin/bitcoin#33550: Fix windows libc++ `fs::path` `fstream` compile errors fa0e36156cb ci: Doc ASLR workaround for sanitizer tasks fa20275db32 test: Use unassigned p2p_port instead of hardcoded 60000 in p2p_i2p_ports.py c862936d16a Merge bitcoin/bitcoin#33370: ci: use Mold linker for asan-lsan-ubsan-integer-no-depends-usdt workflow fabe0e07de1 ci: Only write docker build images to Cirrus cache fab64a5d6fd ci: Move buildx command to python script fa72a2bd5c8 ci: Remove unused MAYBE_CPUSET fa70e23de75 ci: Drop libFuzzer from msan fuzz task abe7cbfe1a4 Merge bitcoin/bitcoin#33470: build: Move CMAKE_SKIP_INSTALL_RPATH from CMake to Guix script 689ec28d1d1 Merge bitcoin/bitcoin#33633: test: [move-only] binary utils to utils.py 0eeae4d174a Merge bitcoin/bitcoin#33625: Update secp256k1 subtree to latest master 4b41f99d57d build: Move CMAKE_SKIP_INSTALL_RPATH from CMake to Guix script d30f149360d Merge bitcoin/bitcoin#33630: doc: correct topology requirements in submitpackage helptext 3d222825642 [doc] correct topology requirements in submitpackage helptext e744fd1249b Merge bitcoin/bitcoin#33641: Update leveldb subtree to latest master 4371740bebf Merge bitcoin/bitcoin#33642: doc: archive release notes for v28.3 ceea24b9215 doc: archive release notes for v28.3 54ffe3de5b1 Update leveldb subtree to latest master f21162d8193 Squashed 'src/leveldb/' changes from aba469ad6a..cad64b151d e14451ac873 Merge bitcoin/bitcoin#33469: TxGraph: change m_excluded_clusters f76e1ae3899 Merge bitcoin/bitcoin#32313: coins: fix `cachedCoinsUsage` accounting in `CCoinsViewCache` 59c4898994b guix: remove python-pydantic-core input from LIEF 9f2a6927d3a guix: use Clang & LLVM 19 for macOS build 9570ddbec9c guix: update time-machine to 5cb84f2013c5b1e48a7d0e617032266f1e6059e2 7b5cc276aa0 guix: patch around riscv issue with newer (2.40+) binutils 91b5cbaabbc ci: use Debian Trixie for macOS cross job fa75ef4328f test: Move export_env_build_path to util.py fa9f495308a test: Move get_binary_paths and Binaries to util.py 40e7d4cd0d7 Merge bitcoin/bitcoin#33549: ci: Add macOS cross task for arm64-apple-darwin ea17618c116 Merge bitcoin/bitcoin#33480: ci: Turn CentOS config into Alpine musl config b1f8a13702e Merge bitcoin/bitcoin#33624: test: P2SH sig ops are only counted with `SCRIPT_VERIFY_P2SH` 879c21045eb Update secp256k1 subtree to latest master 3cbf7cb3e6a Squashed 'src/secp256k1/' changes from b9313c6e1a..d543c0d917 2f7a50f67cd Merge bitcoin/bitcoin#33462: ci: add libcpp hardening flags to macOS fuzz job 48aa0e98d0b Merge bitcoin/bitcoin#29675: wallet: Be able to receive and spend inputs involving MuSig2 aggregate keys db4bde0b034 Merge bitcoin/bitcoin#33517: multiprocess: Fix high overhead from message logging 3a10d700bc1 test: P2SH sig ops are only counted with `SCRIPT_VERIFY_P2SH` flag 9314113b295 Merge bitcoin/bitcoin#33610: doc: archive release notes for v29.2 9b43428c968 TxGraph: change m_excluded_clusters 6e1adbbaa15 Merge bitcoin/bitcoin#33612: test: change log rate limit version gate fdcf67de803 Merge bitcoin/bitcoin#33157: cluster mempool: control/optimize TxGraph memory usage 7b544341c00 test: change log rate limit version gate from 299900 to 290100 9610b0d1e28 randomenv: Fix MinGW dllimport warning for `environ` 6c4fe401e90 Merge bitcoin/bitcoin#33508: ci: fix buildx gha cache authentication on forks 8f7673257a1 miner: fix empty mempool case for waitNext() c11a3dcc889 doc: archive release notes for v29.2 64a7c7cbb97 Merge bitcoin/bitcoin#33558: ci: Use native platform for win-cross task 93b56e95c02 Merge bitcoin/bitcoin#33601: doc: archive release notes for v30.0 563747971be Merge bitcoin/bitcoin#33580: depends: Use $(package)_file_name when downloading from the fallback 24d861da789 coins: only adjust `cachedCoinsUsage` on `EmplaceCoinInternalDANGER` insert d7c9d6c2914 coins: fix `cachedCoinsUsage` accounting to prevent underflow 39cf8bb3d0d refactor: remove redundant usage tracking from `CoinsViewCacheCursor` 67cff8bec90 refactor: assert newly-created parent cache entry has zero memory usage 023cd5a5469 txgraph: add SingletonClusterImpl (mem optimization) e3462507325 txgraph: give Clusters a range of intended tx counts (preparation) e93b0f09cc2 txgraph: abstract out creation of empty Clusters (refactor) 6baf12621f6 txgraph: comment fixes (doc fix) 726b995739a txgraph: make Cluster an abstract class (refactor) 2602d89edd0 txgraph: avoid accessing other Cluster internals (refactor) 04c808ac4c4 txgraph: expose memory usage estimate function (feature) 7680bb8fd48 txgraph: keep track of Cluster memory usage (preparation) 4ba562e5f4e txgraph: keep data structures compact (mem optimization) bb5cb222ae5 depgraph: add memory usage control (feature) b1637a90deb txgraph: avoid holes in DepGraph positions (mem optimization) 2b1d3025087 txgraph: move some sanity checks from Cluster to TxGraphImpl (refactor) d40302fbaf4 txgraph: Make level of Cluster implicit (optimization) 8d6e49158e3 doc: archive release notes for v30.0 0626b90f507 multiprocess: align our logging with libmultiprocess's 9d068225ee2 multiprocess: update multiprocess EventLoop construction to use options d2987102dd1 Merge bitcoin/bitcoin#33573: doc: bump the template macOS version f6567527d8d doc: bump the template macOS version faa9d10c84b refactor: Construct g_verify_flag_names on first use becf1500131 Merge bitcoin/bitcoin#33518: Update libmultiprocess subtree to support reduced logging cd1b7fa1ff7 Merge bitcoin/bitcoin#33577: Revert "depends: Update URL for `qrencode` package source tarball" 6b4a92b0fab Merge bitcoin/bitcoin#33568: doc: how to update a subtree 90b2884ce4b Merge bitcoin/bitcoin#33581: ci: Properly include $FILE_ENV in DEPENDS_HASH d44b860cd09 Merge bitcoin/bitcoin#33584: ci: upgrade GitHub Action to download-artifact@v5 57f7c68821d test: add functional test for `TestShell` (matching doc example) 53874f7934d doc: test: update TestShell example instructions/options b35341b9ba6 Update ci.yml ceeb53adcd0 ci: Properly include $FILE_ENV in DEPENDS_HASH 671b774d1b5 depends: Use $(package)_file_name when downloading from the fallback e4335a31920 Revert "depends: Update URL for `qrencode` package source tarball" a89a822e6eb Revert "depends: Use hash instead of file name for package download stamp" fad5a7101cc ci: Add macOS cross task for arm64 fa8c750a0af ci: Refactor get_previous_releases step in win-test-cross task e4c04f7759b ci: add libcpp hardening flags to macOS fuzz job a1226bc760c doc: how to update a subtree eda91b07fd9 Merge commit '0f01e1577f7c6734eb345139a12aba329ef22a5f' into pr/subtree-6 0f01e1577f7 Squashed 'src/ipc/libmultiprocess/' changes from 47d79db8a552..a4f929696490 fa6fd16f36e ci: Use native platform for win-cross task 53e4951a5b5 Switch to ANSI Windows API in `fsbridge::fopen()` function dbe770d9210 Switch to ANSI Windows API in `Win32ErrorString()` function 06d0be4e22c Remove no longer necessary `WinCmdLineArgs` class f366408492f cmake: Set process code page to UTF-8 on Windows dccbb178065 Set minimum supported Windows version to 1903 (May 2019 Update) c864a4c1940 Simplify fs::path by dropping filename() and make_preferred() overloads b0113afd44b Fix windows libc++ fs::path fstream compile errors b63428ac9ce rpc: refactor: use more (Maybe)Arg<std::string_view> 037830ca0db refactor: increase string_view usage b3bf18f0bac rpc: refactor: use string_view in Arg/MaybeArg 45bd8914658 log: split assumevalid ancestry-failure-reason message 6c13a38ab51 log: separate script verification reasons f2ea6f04e79 refactor: untangle assumevalid decision branches 9bc298556cb validation: log initial script verification state 4fad4e992c4 test: add assumevalid scenarios scaffold ac599c4a9cb test: Test MuSig2 in the wallet 68ef954c4c5 wallet: Keep secnonces in DescriptorScriptPubKeyMan 4a273edda0e sign: Create MuSig2 signatures for known MuSig2 aggregate keys 258db938899 sign: Add CreateMuSig2AggregateSig bf69442b3f5 sign: Add CreateMuSig2PartialSig 512b17fc56e sign: Add CreateMuSig2Nonce 82ea67c607c musig: Add MuSig2AggregatePubkeys variant that validates the aggregate d99a081679e psbt: MuSig2 data in Fill/FromSignatureData 4d8b4f53363 signingprovider: Add musig2 secnonces c06a1dc86ff Add MuSig2SecNonce class for secure allocation of musig nonces 9baff05e494 sign: Include taproot output key's KeyOriginInfo in sigdata 4b24bfeab9d pubkey: Return tweaks from BIP32 derivation bc706955d74 ci: expose all ACTIONS_* vars 444409ff2b7 ci: Reduce Alpine musl task to md runner size fa6b2e9efec ci: Turn centos config into alpine musl config 91ac64b0a66 log: reword `signature validations` to `script verification` in `assumevalid` log f14876213aa musig: Move synthetic xpub construction to its own function f031536f2d2 ci: use Mold linker for asan-lsan-ubsan-integer-no-depends-usdt workflow cc5dda1de33 headerssync: Make HeadersSyncState more flexible and move constants 8fd1c2893e6 test(headerssync): Test returning of pow_validated_headers behavior 7b00643ef5f test(headerssync): headers_sync_chainwork test improvements 04eeb9578c6 doc(test): Improve comments fe896f8faa7 refactor(test): Store HeadersSyncState on the stack f03686892a9 refactor(test): Break up headers_sync_state e984618d0b9 refactor(headerssync): Process spans of headers a4ac9915a95 refactor(headerssync): Extract test constants ahead of breakup into functions 02d2b5a11c9 ci, iwyu: Treat warnings as errors for specific directories 57a3eac387b refactor: Fix includes in `index` directory bdb8eadcdc1 refactor: Fix includes in `crypto` directory 56f2a689a20 ci: Do not patch `leveldb` to workaround UB in "tidy" CI job 65a10fc3c52 p2p: add assertion for BlockTransactionsRequest indexes 58be359f6b2 fuzz: add a target for DifferenceFormatter Class 13f36c020f0 clang-format: regenerate configs 5ded99a7f00 fuzz: MockMempoolMinFee in wallet_fees c9a7a198d9e test: move MockMempoolMinFee to util/txmempool adf67eb21ba fuzz: create FeeEstimatorTestingSetup to set fee_estimator ff10a37e992 fuzz: mock CBlockPolicyEstimator in wallet_fuzz f591c3becaf fees: make estimateSmartFee/HighestTargetTracked virtual for mocking d0e1bbad016 test: repeat block malleability test with relayable block over P2P 19273d0705f fuzz: set mempool options in wallet_fees fb8720f1e09 sign: Refactor Schnorr sighash computation out of CreateSchnorrSig a4cfddda644 tests: Clarify why musig derivation adds a pubkey and xpub 39a63bf2e7e descriptors: Add a doxygen comment for has_hardened output_parameter 2320184d0ea descriptors: Fix meaning of any_key_parsed 0465574c127 test: Fixes send_blocks_and_test docs 09c95f21e71 test: Adds block tiebreak over restarts tests 18524b072e6 Make nSequenceId init value constants 8b91883a23a Set the same best tip on restart if two candidates have the same work 5370bed21e0 test: add functional test for complex reorgs ab145cb3b47 Updates CBlockIndexWorkComparator outdated comment fa37153288c util: Abort on failing CHECK_NONFATAL in debug builds fa0dc4bdffb test: Allow testing of check failures faeb58fe668 refactor: Set G_ABORT_ON_FAILED_ASSUME when G_FUZZING_BUILD 58e55b17e63 test: descriptor: cover invalid multi/multi_a cases 664657ed134 bugfix: disallow label for ranged descriptors & allow external non-ranged descriptors to have label fe71a4b139f depends: Avoid `warning: "_FORTIFY_SOURCE" redefined` for `libevent` REVERT: 20be96ee696 kernel: Fix bitcoin-chainstate for windows REVERT: db5bc2b0968 kernel: Add Purpose section to header documentation REVERT: e5ddd70c24d kernel: Allowing reducing exports REVERT: 740f2ef7686 kernel: Add pure kernel bitcoin-chainstate REVERT: c89b59fc686 Kernel: Add functions for working with outpoints REVERT: f82d691fba5 kernel: Add block hash type and block tree utility functions to C header REVERT: cd70f570ec6 kernel: Add function to read block undo data from disk to C header REVERT: 301c10f598d kernel: Add functions to read block from disk to C header REVERT: 7092fee527a kernel: Add function for copying block data to C header REVERT: 91a51d249f8 kernel: Add functions for the block validation state to C header REVERT: 8cdd29f3c22 kernel: Add validation interface to C header REVERT: a4652f7897e kernel: Add interrupt function to C header REVERT: 40004832679 kernel: Add import blocks function to C header REVERT: d775ba66670 kernel: Add chainstate load options for in-memory dbs in C header REVERT: d26192373b6 kernel: Add options for reindexing in C header REVERT: 803e0de7aaa kernel: Add block validation to C header REVERT: 781c7af4e2d kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: f9bf4d9b313 kernel: Add chainstate manager option for setting worker threads REVERT: 3270c0615a7 kernel: Add chainstate manager object to C header REVERT: 0ac5368b3df kernel: Add notifications context option to C header REVERT: b47496af140 kernel: Add chain params context option to C header REVERT: 92f54852259 kernel: Add kernel library context object REVERT: 3204110daee kernel: Add logging to kernel library C header REVERT: aba7824242d kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 1ea43dc365c277f519f30f55dae6b0899e611765
Fixes #33437
Historically, the centos task was added to add CI coverage for old packages and 32-bit depends builds, but both are now covered by different tasks.
The CentOS task aligns with Ubuntu/Debian CI tasks in terms of libc usage, but (slightly) differs in package naming and update philosophy. I am not aware of the task ever discovering a centos-related issue, so it seems fine to recycle it into an Alpine Linux task.
The main difference would be that musl libc is now used. Also, busybox is used in Alpine, so in theory the busybox install could be removed from the arm CI task in the future.
Packaging considerations: All packages should roughly be the same (gcc remains at version 14, python remains at version 3.12, etc). Also, all packages are from the Alpine main track, coming with 2 years of support. The only exception is the py3-pip package (https://pkgs.alpinelinux.org/packages?name=py3-pip&branch=v3.22&repo=&arch=riscv64) from the community track, however, I don't expect any issues arising from that.