Skip to content

Commit

Permalink
Add net/electrs
Browse files Browse the repository at this point in the history
- electrs is an efficient re-implementation of Electrum Server in Rust
https://github.com/romanz/electrs/

- create initial port for version 0.10.7

Signed-off-by: Timothy Redaelli <timothy@fsfe.org>
  • Loading branch information
Timothy Redaelli committed Nov 15, 2024
1 parent b91733b commit 1a43414
Show file tree
Hide file tree
Showing 6 changed files with 579 additions and 0 deletions.
41 changes: 41 additions & 0 deletions net/electrs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
COMMENT = An efficient re-implementation of Electrum Server in Rust

# electrs uses rocksdb, which is 64-bit only
ONLY_FOR_ARCHS = ${LP64_ARCHS}

GH_ACCOUNT = romanz
GH_PROJECT = electrs
GH_TAGNAME = v0.10.7

CATEGORIES = net

HOMEPAGE = https://github.com/romanz/electrs

MAINTAINER = Timothy Redaelli <timothy@fsfe.org>

# MIT
PERMIT_PACKAGE = Yes

MODULES = devel/cargo lang/clang
MODCARGO_RUSTFLAGS = -L${PREFIX}/lib

CONFIGURE_STYLE = cargo

SEPARATE_BUILD = Yes

.include "crates.inc"

# for rocksdb bindings
MODCARGO_ENV= LIBCLANG_PATH=${LOCALBASE}/llvm${MODCLANG_VERSION}/lib
MAKE_ENV += DEP_ZSTD_INCLUDE=${LOCALBASE}/include

# librocksdb-sys looks for libclang.so
BUILD_DEPENDS= devel/llvm/16
LIB_DEPENDS += archivers/zstd

WANTLIB += ${COMPILER_LIBCXX} c m zstd

do-install:
${INSTALL_PROGRAM} ${MODCARGO_TARGET_DIR}/release/electrs ${PREFIX}/bin/

.include <bsd.port.mk>
170 changes: 170 additions & 0 deletions net/electrs/crates.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
MODCARGO_CRATES += aho-corasick 1.1.2 # Unlicense OR MIT
MODCARGO_CRATES += anyhow 1.0.80 # MIT OR Apache-2.0
MODCARGO_CRATES += arrayvec 0.7.4 # MIT OR Apache-2.0
MODCARGO_CRATES += ascii 1.1.0 # Apache-2.0 OR MIT
MODCARGO_CRATES += autocfg 1.1.0 # Apache-2.0 OR MIT
MODCARGO_CRATES += base58ck 0.1.0 # CC0-1.0
MODCARGO_CRATES += base64 0.13.1 # MIT/Apache-2.0
MODCARGO_CRATES += bech32 0.11.0 # MIT
MODCARGO_CRATES += bindgen 0.63.0 # BSD-3-Clause
MODCARGO_CRATES += bitcoin 0.32.4 # CC0-1.0
MODCARGO_CRATES += bitcoin-internals 0.3.0 # CC0-1.0
MODCARGO_CRATES += bitcoin-io 0.1.2 # CC0-1.0
MODCARGO_CRATES += bitcoin-test-data 0.2.0 # MIT
MODCARGO_CRATES += bitcoin-units 0.1.1 # CC0-1.0
MODCARGO_CRATES += bitcoin_hashes 0.14.0 # CC0-1.0
MODCARGO_CRATES += bitcoin_slices 0.9.0 # MIT
MODCARGO_CRATES += bitcoincore-rpc 0.19.0 # CC0-1.0
MODCARGO_CRATES += bitcoincore-rpc-json 0.19.0 # CC0-1.0
MODCARGO_CRATES += bitflags 1.3.2 # MIT/Apache-2.0
MODCARGO_CRATES += bitflags 2.4.1 # MIT OR Apache-2.0
MODCARGO_CRATES += block-buffer 0.10.4 # MIT OR Apache-2.0
MODCARGO_CRATES += byteorder 1.5.0 # Unlicense OR MIT
MODCARGO_CRATES += bzip2-sys 0.1.11+1.0.8 # MIT/Apache-2.0
MODCARGO_CRATES += cargo_toml 0.15.0 # Apache-2.0 OR MIT
MODCARGO_CRATES += cc 1.0.83 # MIT OR Apache-2.0
MODCARGO_CRATES += cexpr 0.6.0 # Apache-2.0/MIT
MODCARGO_CRATES += cfg-if 1.0.0 # MIT/Apache-2.0
MODCARGO_CRATES += chunked_transfer 1.5.0 # MIT OR Apache-2.0
MODCARGO_CRATES += clang-sys 1.6.1 # Apache-2.0
MODCARGO_CRATES += configure_me 0.4.0 # MITNFA
MODCARGO_CRATES += configure_me_codegen 0.4.8 # MITNFA
MODCARGO_CRATES += cpufeatures 0.2.11 # MIT OR Apache-2.0
MODCARGO_CRATES += crossbeam-channel 0.5.13 # MIT OR Apache-2.0
MODCARGO_CRATES += crossbeam-deque 0.8.4 # MIT OR Apache-2.0
MODCARGO_CRATES += crossbeam-epoch 0.9.16 # MIT OR Apache-2.0
MODCARGO_CRATES += crossbeam-utils 0.8.18 # MIT OR Apache-2.0
MODCARGO_CRATES += crypto-common 0.1.6 # MIT OR Apache-2.0
MODCARGO_CRATES += digest 0.10.7 # MIT OR Apache-2.0
MODCARGO_CRATES += dirs-next 2.0.0 # MIT OR Apache-2.0
MODCARGO_CRATES += dirs-sys-next 0.1.2 # MIT OR Apache-2.0
MODCARGO_CRATES += either 1.9.0 # MIT OR Apache-2.0
MODCARGO_CRATES += electrs-librocksdb-sys 0.9.0-e3+7.8.3 # MIT/Apache-2.0/BSD-3-Clause
MODCARGO_CRATES += electrs-rocksdb 0.19.0-e3 # Apache-2.0
MODCARGO_CRATES += env_logger 0.10.2 # MIT OR Apache-2.0
MODCARGO_CRATES += errno 0.3.8 # MIT OR Apache-2.0
MODCARGO_CRATES += fastrand 2.1.1 # Apache-2.0 OR MIT
MODCARGO_CRATES += fmt2io 1.0.0 # MITNFA
MODCARGO_CRATES += fnv 1.0.7 # Apache-2.0 / MIT
MODCARGO_CRATES += generic-array 0.14.7 # MIT
MODCARGO_CRATES += getrandom 0.2.11 # MIT OR Apache-2.0
MODCARGO_CRATES += glob 0.3.1 # MIT OR Apache-2.0
MODCARGO_CRATES += hashbrown 0.12.3 # MIT OR Apache-2.0
MODCARGO_CRATES += hermit-abi 0.3.3 # MIT OR Apache-2.0
MODCARGO_CRATES += hex 0.4.3 # MIT OR Apache-2.0
MODCARGO_CRATES += hex-conservative 0.2.0 # CC0-1.0
MODCARGO_CRATES += hex_lit 0.1.1 # MITNFA
MODCARGO_CRATES += httpdate 1.0.3 # MIT OR Apache-2.0
MODCARGO_CRATES += humantime 2.1.0 # MIT/Apache-2.0
MODCARGO_CRATES += indexmap 1.9.3 # Apache-2.0 OR MIT
MODCARGO_CRATES += io-lifetimes 1.0.11 # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
MODCARGO_CRATES += is-terminal 0.4.9 # MIT
MODCARGO_CRATES += itoa 1.0.10 # MIT OR Apache-2.0
MODCARGO_CRATES += jobserver 0.1.26 # MIT/Apache-2.0
MODCARGO_CRATES += jsonrpc 0.18.0 # CC0-1.0
MODCARGO_CRATES += lazy_static 1.4.0 # MIT/Apache-2.0
MODCARGO_CRATES += lazycell 1.3.0 # MIT/Apache-2.0
MODCARGO_CRATES += libc 0.2.159 # MIT OR Apache-2.0
MODCARGO_CRATES += libloading 0.7.4 # ISC
MODCARGO_CRATES += libredox 0.0.1 # MIT
MODCARGO_CRATES += libz-sys 1.1.12 # MIT OR Apache-2.0
MODCARGO_CRATES += linux-raw-sys 0.1.4 # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
MODCARGO_CRATES += linux-raw-sys 0.4.14 # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
MODCARGO_CRATES += lock_api 0.4.11 # MIT OR Apache-2.0
MODCARGO_CRATES += log 0.4.22 # MIT OR Apache-2.0
MODCARGO_CRATES += memchr 2.6.4 # Unlicense OR MIT
MODCARGO_CRATES += memoffset 0.9.0 # MIT
MODCARGO_CRATES += minimal-lexical 0.2.1 # MIT/Apache-2.0
MODCARGO_CRATES += minreq 2.11.2 # ISC
MODCARGO_CRATES += nom 7.1.3 # MIT
MODCARGO_CRATES += nom8 0.2.0 # MIT
MODCARGO_CRATES += once_cell 1.19.0 # MIT OR Apache-2.0
MODCARGO_CRATES += parking_lot 0.12.1 # MIT OR Apache-2.0
MODCARGO_CRATES += parking_lot_core 0.9.9 # MIT OR Apache-2.0
MODCARGO_CRATES += parse_arg 0.1.4 # MITNFA
MODCARGO_CRATES += peeking_take_while 0.1.2 # Apache-2.0/MIT
MODCARGO_CRATES += pkg-config 0.3.28 # MIT OR Apache-2.0
MODCARGO_CRATES += ppv-lite86 0.2.17 # MIT/Apache-2.0
MODCARGO_CRATES += proc-macro2 1.0.71 # MIT OR Apache-2.0
MODCARGO_CRATES += procfs 0.14.2 # MIT OR Apache-2.0
MODCARGO_CRATES += prometheus 0.13.3 # Apache-2.0
MODCARGO_CRATES += protobuf 2.28.0 # MIT
MODCARGO_CRATES += quote 1.0.33 # MIT OR Apache-2.0
MODCARGO_CRATES += rand 0.8.5 # MIT OR Apache-2.0
MODCARGO_CRATES += rand_chacha 0.3.1 # MIT OR Apache-2.0
MODCARGO_CRATES += rand_core 0.6.4 # MIT OR Apache-2.0
MODCARGO_CRATES += rayon 1.10.0 # MIT OR Apache-2.0
MODCARGO_CRATES += rayon-core 1.12.1 # MIT OR Apache-2.0
MODCARGO_CRATES += redox_syscall 0.4.1 # MIT
MODCARGO_CRATES += redox_users 0.4.4 # MIT
MODCARGO_CRATES += regex 1.9.6 # MIT OR Apache-2.0
MODCARGO_CRATES += regex-automata 0.3.9 # MIT OR Apache-2.0
MODCARGO_CRATES += regex-syntax 0.7.5 # MIT OR Apache-2.0
MODCARGO_CRATES += rustc-hash 1.1.0 # Apache-2.0/MIT
MODCARGO_CRATES += rustix 0.36.17 # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
MODCARGO_CRATES += rustix 0.38.37 # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
MODCARGO_CRATES += ryu 1.0.16 # Apache-2.0 OR BSL-1.0
MODCARGO_CRATES += scopeguard 1.2.0 # MIT OR Apache-2.0
MODCARGO_CRATES += secp256k1 0.29.0 # CC0-1.0
MODCARGO_CRATES += secp256k1-sys 0.10.0 # CC0-1.0
MODCARGO_CRATES += serde 1.0.171 # MIT OR Apache-2.0
MODCARGO_CRATES += serde_derive 1.0.171 # MIT OR Apache-2.0
MODCARGO_CRATES += serde_json 1.0.109 # MIT OR Apache-2.0
MODCARGO_CRATES += serde_spanned 0.6.1 # MIT OR Apache-2.0
MODCARGO_CRATES += sha2 0.10.8 # MIT OR Apache-2.0
MODCARGO_CRATES += shlex 1.3.0 # MIT OR Apache-2.0
MODCARGO_CRATES += signal-hook 0.3.17 # Apache-2.0/MIT
MODCARGO_CRATES += signal-hook-registry 1.4.1 # Apache-2.0/MIT
MODCARGO_CRATES += smallvec 1.13.1 # MIT OR Apache-2.0
MODCARGO_CRATES += syn 1.0.109 # MIT OR Apache-2.0
MODCARGO_CRATES += syn 2.0.42 # MIT OR Apache-2.0
MODCARGO_CRATES += tempfile 3.13.0 # MIT OR Apache-2.0
MODCARGO_CRATES += termcolor 1.4.1 # Unlicense OR MIT
MODCARGO_CRATES += thiserror 1.0.55 # MIT OR Apache-2.0
MODCARGO_CRATES += thiserror-impl 1.0.55 # MIT OR Apache-2.0
MODCARGO_CRATES += tiny_http 0.12.0 # MIT OR Apache-2.0
MODCARGO_CRATES += toml 0.5.11 # MIT/Apache-2.0
MODCARGO_CRATES += toml 0.7.1 # MIT OR Apache-2.0
MODCARGO_CRATES += toml_datetime 0.6.1 # MIT OR Apache-2.0
MODCARGO_CRATES += toml_edit 0.19.1 # MIT OR Apache-2.0
MODCARGO_CRATES += typenum 1.17.0 # MIT OR Apache-2.0
MODCARGO_CRATES += unicode-ident 1.0.12 # (MIT OR Apache-2.0) AND Unicode-DFS-2016
MODCARGO_CRATES += unicode-segmentation 1.10.1 # MIT/Apache-2.0
MODCARGO_CRATES += vcpkg 0.2.15 # MIT/Apache-2.0
MODCARGO_CRATES += version_check 0.9.4 # MIT/Apache-2.0
MODCARGO_CRATES += void 1.0.2 # MIT
MODCARGO_CRATES += wasi 0.11.0+wasi-snapshot-preview1 # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
MODCARGO_CRATES += winapi 0.3.9 # MIT/Apache-2.0
MODCARGO_CRATES += winapi-i686-pc-windows-gnu 0.4.0 # MIT/Apache-2.0
MODCARGO_CRATES += winapi-util 0.1.6 # Unlicense/MIT
MODCARGO_CRATES += winapi-x86_64-pc-windows-gnu 0.4.0 # MIT/Apache-2.0
MODCARGO_CRATES += windows-sys 0.45.0 # MIT OR Apache-2.0
MODCARGO_CRATES += windows-sys 0.48.0 # MIT OR Apache-2.0
MODCARGO_CRATES += windows-sys 0.52.0 # MIT OR Apache-2.0
MODCARGO_CRATES += windows-sys 0.59.0 # MIT OR Apache-2.0
MODCARGO_CRATES += windows-targets 0.42.2 # MIT OR Apache-2.0
MODCARGO_CRATES += windows-targets 0.48.5 # MIT OR Apache-2.0
MODCARGO_CRATES += windows-targets 0.52.6 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_aarch64_gnullvm 0.42.2 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_aarch64_gnullvm 0.48.5 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_aarch64_gnullvm 0.52.6 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_aarch64_msvc 0.42.2 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_aarch64_msvc 0.48.5 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_aarch64_msvc 0.52.6 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_i686_gnu 0.42.2 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_i686_gnu 0.48.5 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_i686_gnu 0.52.6 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_i686_gnullvm 0.52.6 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_i686_msvc 0.42.2 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_i686_msvc 0.48.5 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_i686_msvc 0.52.6 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_x86_64_gnu 0.42.2 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_x86_64_gnu 0.48.5 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_x86_64_gnu 0.52.6 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_x86_64_gnullvm 0.42.2 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_x86_64_gnullvm 0.48.5 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_x86_64_gnullvm 0.52.6 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_x86_64_msvc 0.42.2 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_x86_64_msvc 0.48.5 # MIT OR Apache-2.0
MODCARGO_CRATES += windows_x86_64_msvc 0.52.6 # MIT OR Apache-2.0
MODCARGO_CRATES += zstd-sys 2.0.8+zstd.1.5.5 # MIT/Apache-2.0
Loading

0 comments on commit 1a43414

Please sign in to comment.