rust-secp256k1-unsafe-fast/secp256k1-sys
Andrew Poelstra 493eaf723f
Merge rust-bitcoin/rust-secp256k1#594: Rewrite revendoring script
2ae7ca9cf2 secp-sys: update README for new vendoring script (Andrew Poelstra)
4b02e9c405 run new vendor-libsecp.sh; fix upstream CHANGELOG. (Andrew Poelstra)
b58a60fd6c rewrite ./vendor-libsecp.sh (Andrew Poelstra)

Pull request description:

  For Nix purposes I need the revendoring script to work without network access and without user interaction. I also realized it would be convenient if the script could figure out what the right version prefix is supposed to be. Then I noticed some shellcheck issues.

  Anyway I just rewrote the whole thing. I'm now able to run this script within nix and vet that the current contents of the `depend/` directory are consistent with the secp256k1-HEAD-revision.txt, for all commits.

ACKs for top commit:
  tcharding:
    ACK 2ae7ca9cf2
  sanket1729:
    reACK 2ae7ca9cf2

Tree-SHA512: ea3028e3517b2dbe0f34bcf20685945ecf543fc42e01f10d435432ad290088586b2a2b0f0e94bc3ce59ec38727656eb04eef57c5df6a34da77070e0f288b1d84
2023-03-31 21:26:24 +00:00
..
depend secp-sys: update README for new vendoring script 2023-03-30 12:40:18 +00:00
src secp256k1-sys: Remove custom implementations of Eq, Ord and friends 2023-03-31 09:43:52 +11:00
wasm Move WASM const definitions to a source file 2022-03-30 10:22:37 +11:00
CHANGELOG.md Bump MSRV to 1.48 2023-03-31 09:43:50 +11:00
Cargo.toml Bump secp256k1-sys version to 0.8.1 2023-03-17 16:22:01 +11:00
LICENSE Add secp256k1-sys README and LICENSE files 2019-11-27 21:02:44 +00:00
README.md Merge rust-bitcoin/rust-secp256k1#594: Rewrite revendoring script 2023-03-31 21:26:24 +00:00
build.rs secp256k1-sys: Remove unused flags in build.rs 2022-11-24 13:38:40 +02:00
vendor-libsecp.sh secp-sys: update README for new vendoring script 2023-03-30 12:40:18 +00:00

README.md

secp256k1-sys

This crate provides Rust definitions for the FFI structures and methods.

Vendoring

The default build process is to build using the vendored libsecp256k1 sources in the depend folder. These sources are prefixed with a special rust-secp256k1-sys-specific prefix rustsecp256k1_v1_2_3_.

This prefix ensures that no symbol collision can happen:

  • when a Rust project has two different versions of rust-secp256k1 in its depepdency tree, or
  • when rust-secp256k1 is used for building a static library in a context where existing libsecp256k1 symbols are already linked.

To update the vendored sources, use the vendor-libsecp.sh script:

$ ./vendor-libsecp.sh <rev>

Where <rev> is the git revision of libsecp256k1 to checkout. If you do not specify a revision, the script will simply clone the repo and use whatever revision the default branch is pointing to.

Linking to external symbols

If you want to compile this library without using the bundled symbols (which may be required for integration into other build systems), you can do so by adding --cfg=rust_secp_no_symbol_renaming' to your RUSTFLAGS variable.

Minimum Supported Rust Version

This library should always compile with any combination of features on Rust 1.48.0.