Fix missing lz4 and bz2; tweak feature projection. (closes #78)

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-06-24 21:23:55 +00:00
parent ca69af97c1
commit 578cf9d2d7
8 changed files with 105 additions and 13 deletions

View File

@@ -362,11 +362,11 @@ git = "https://github.com/matrix-construct/rust-rocksdb"
rev = "225a42519276e502205bdc845cebdb22d70ee245"
default-features = false
features = [
"bzip2",
"lz4",
"multi-threaded-cf",
"mt_static",
"lz4",
"zstd",
"bzip2",
]
[workspace.dependencies.sanitize-filename]

View File

@@ -33,7 +33,7 @@ variable "git_ref_name" {
cargo_feat_sets = {
none = ""
default = "brotli_compression,element_hacks,gzip_compression,io_uring,jemalloc,jemalloc_conf,media_thumbnail,release_max_log_level,systemd,url_preview,zstd_compression"
all = "blurhashing,brotli_compression,tuwunel_mods,console,default,direct_tls,element_hacks,gzip_compression,hardened_malloc,io_uring,jemalloc,jemalloc_conf,jemalloc_prof,jemalloc_stats,ldap,media_thumbnail,perf_measurements,release_max_log_level,sentry_telemetry,systemd,tokio_console,url_preview,zstd_compression"
all = "blurhashing,brotli_compression,bzip2_compression,tuwunel_mods,console,default,direct_tls,element_hacks,gzip_compression,hardened_malloc,io_uring,jemalloc,jemalloc_conf,jemalloc_prof,jemalloc_stats,ldap,lz4_compression,media_thumbnail,perf_measurements,release_max_log_level,sentry_telemetry,systemd,tokio_console,url_preview,zstd_compression"
}
variable "cargo_features_always" {
default = "direct_tls"
@@ -1204,6 +1204,10 @@ target "deps-base" {
join(" ", static_nightly_rustflags),
join(" ", native_rustflags),
"-C link-arg=-L/usr/lib/gcc/${sys_target}/14", #FIXME
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
"-C link-arg=-l:libbz2.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
"-C link-arg=-l:liblz4.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")?
"-C link-arg=-l:libzstd.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
@@ -1220,6 +1224,10 @@ target "deps-base" {
join(" ", static_rustflags),
join(" ", static_nightly_rustflags),
"-C link-arg=-L/usr/lib/gcc/${sys_target}/14", #FIXME
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
"-C link-arg=-l:libbz2.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
"-C link-arg=-l:liblz4.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")?
"-C link-arg=-l:libzstd.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
@@ -1234,6 +1242,10 @@ target "deps-base" {
join(" ", rustflags),
join(" ", static_rustflags),
"-C link-arg=-L/usr/lib/gcc/${sys_target}/14", #FIXME
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
"-C link-arg=-l:libbz2.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
"-C link-arg=-l:liblz4.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")?
"-C link-arg=-l:libzstd.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
@@ -1248,6 +1260,10 @@ target "deps-base" {
join(" ", rustflags),
join(" ", static_rustflags),
"-C link-arg=-L/usr/lib/gcc/${sys_target}/14", #FIXME
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
"-C link-arg=-l:libbz2.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
"-C link-arg=-l:liblz4.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")?
"-C link-arg=-l:libzstd.a": "",
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
@@ -1262,6 +1278,10 @@ target "deps-base" {
join(" ", rustflags),
join(" ", nightly_rustflags),
join(" ", dynamic_rustflags),
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")?
"-C link-arg=-lbz2": "",
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")?
"-C link-arg=-llz4": "",
contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")?
"-C link-arg=-lzstd": "",
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")?
@@ -1311,6 +1331,8 @@ target "rocksdb-build" {
input = elem("target:kitchen", [feat_set, sys_name, sys_version, sys_target])
}
args = {
rocksdb_bz2 = contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")? 1: 0
rocksdb_lz4 = contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")? 1: 0
rocksdb_zstd = contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")? 1: 0
rocksdb_jemalloc = contains(split(",", cargo_feat_sets[feat_set]), "jemalloc")? 1: 0
rocksdb_iouring = contains(split(",", cargo_feat_sets[feat_set]), "io_uring")? 1: 0
@@ -1544,6 +1566,7 @@ kitchen_packages = [
"cmake",
"curl",
"git",
"gzip",
"libc6-dev",
"libssl-dev",
"make",
@@ -1567,10 +1590,12 @@ target "kitchen" {
}
args = {
packages = join(" ", [
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")? "liburing-dev": "",
contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")? "libzstd-dev": "",
contains(split(",", cargo_feat_sets[feat_set]), "jemalloc")? "libjemalloc-dev": "",
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")? "libbz2-dev": "",
contains(split(",", cargo_feat_sets[feat_set]), "hardened_malloc")? "g++": "",
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")? "liburing-dev": "",
contains(split(",", cargo_feat_sets[feat_set]), "jemalloc")? "libjemalloc-dev": "",
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")? "liblz4-dev": "",
contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")? "libzstd-dev": "",
])
}
}
@@ -1670,18 +1695,18 @@ target "runtime" {
}
args = {
packages = join(" ", [
contains(split(",", cargo_feat_sets[feat_set]), "bzip2_compression")? "bzip2": "",
contains(split(",", cargo_feat_sets[feat_set]), "io_uring")? "liburing2": "",
contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")? "libzstd1": "",
contains(split(",", cargo_feat_sets[feat_set]), "jemalloc")? "libjemalloc2": "",
contains(split(",", cargo_feat_sets[feat_set]), "lz4_compression")? "liblz4-1": "",
contains(split(",", cargo_feat_sets[feat_set]), "zstd_compression")? "libzstd1": "",
])
}
}
base_pkgs = [
"adduser",
"bzip2",
"ca-certificates",
"gzip",
]
target "base" {

View File

@@ -22,6 +22,11 @@ brotli_compression = [
"tuwunel-core/brotli_compression",
"tuwunel-service/brotli_compression",
]
bzip2_compression = [
"tuwunel-api/bzip2_compression",
"tuwunel-database/bzip2_compression",
"tuwunel-service/bzip2_compression",
]
gzip_compression = [
"tuwunel-api/gzip_compression",
"tuwunel-core/gzip_compression",
@@ -56,6 +61,11 @@ jemalloc_stats = [
"tuwunel-database/jemalloc_stats",
"tuwunel-service/jemalloc_stats",
]
lz4_compression = [
"tuwunel-api/lz4_compression",
"tuwunel-database/lz4_compression",
"tuwunel-service/lz4_compression",
]
release_max_log_level = [
"tuwunel-api/release_max_log_level",
"tuwunel-core/release_max_log_level",

View File

@@ -22,6 +22,9 @@ brotli_compression = [
"tuwunel-service/brotli_compression",
"reqwest/brotli",
]
bzip2_compression = [
"tuwunel-service/bzip2_compression",
]
element_hacks = [
"tuwunel-service/element_hacks",
]
@@ -52,6 +55,9 @@ jemalloc_stats = [
ldap = [
"tuwunel-service/ldap",
]
lz4_compression = [
"tuwunel-service/lz4_compression",
]
release_max_log_level = [
"tuwunel-core/release_max_log_level",
"tuwunel-service/release_max_log_level",

View File

@@ -17,6 +17,9 @@ crate-type = [
]
[features]
bzip2_compression = [
"rust-rocksdb/bzip2",
]
io_uring = [
"rust-rocksdb/io-uring",
]
@@ -33,6 +36,9 @@ jemalloc_prof = [
jemalloc_stats = [
"tuwunel-core/jemalloc_stats",
]
lz4_compression = [
"rust-rocksdb/lz4",
]
release_max_log_level = [
"tuwunel-core/release_max_log_level",
"log/max_level_trace",

View File

@@ -70,11 +70,19 @@ blurhashing = [
"tuwunel-service/blurhashing",
]
brotli_compression = [
"tuwunel-admin/brotli_compression",
"tuwunel-api/brotli_compression",
"tuwunel-core/brotli_compression",
"tuwunel-router/brotli_compression",
"tuwunel-service/brotli_compression",
]
bzip2_compression = [
"tuwunel-admin/bzip2_compression",
"tuwunel-api/bzip2_compression",
"tuwunel-database/bzip2_compression",
"tuwunel-router/bzip2_compression",
"tuwunel-service/bzip2_compression",
]
console = [
"tuwunel-service/console",
]
@@ -86,6 +94,7 @@ element_hacks = [
"tuwunel-service/element_hacks",
]
gzip_compression = [
"tuwunel-admin/gzip_compression",
"tuwunel-api/gzip_compression",
"tuwunel-core/gzip_compression",
"tuwunel-router/gzip_compression",
@@ -95,11 +104,27 @@ hardened_malloc = [
"tuwunel-core/hardened_malloc",
]
io_uring = [
"tuwunel-admin/io_uring",
"tuwunel-api/io_uring",
"tuwunel-database/io_uring",
"tuwunel-router/io_uring",
"tuwunel-service/io_uring",
]
jemalloc = [
"tuwunel-admin/jemalloc",
"tuwunel-api/jemalloc",
"tuwunel-core/jemalloc",
"tuwunel-database/jemalloc",
"tuwunel-router/jemalloc",
"tuwunel-service/jemalloc",
]
jemalloc_conf = [
"tuwunel-admin/jemalloc_conf",
"tuwunel-api/jemalloc_conf",
"tuwunel-core/jemalloc_conf",
"tuwunel-database/jemalloc_conf",
"tuwunel-router/jemalloc_conf",
"tuwunel-service/jemalloc_conf",
]
jemalloc_prof = [
"tuwunel-core/jemalloc_prof",
@@ -107,13 +132,17 @@ jemalloc_prof = [
jemalloc_stats = [
"tuwunel-core/jemalloc_stats",
]
jemalloc_conf = [
"tuwunel-core/jemalloc_conf",
]
ldap = [
"tuwunel-api/ldap",
"tuwunel-service/ldap",
]
lz4_compression = [
"tuwunel-admin/lz4_compression",
"tuwunel-api/lz4_compression",
"tuwunel-database/lz4_compression",
"tuwunel-router/lz4_compression",
"tuwunel-service/lz4_compression",
]
media_thumbnail = [
"tuwunel-service/media_thumbnail",
]
@@ -159,6 +188,7 @@ url_preview = [
"tuwunel-service/url_preview",
]
zstd_compression = [
"tuwunel-admin/zstd_compression",
"tuwunel-api/zstd_compression",
"tuwunel-core/zstd_compression",
"tuwunel-database/zstd_compression",

View File

@@ -24,6 +24,11 @@ brotli_compression = [
"tuwunel-service/brotli_compression",
"tower-http/compression-br",
]
bzip2_compression = [
"tuwunel-admin/bzip2_compression",
"tuwunel-api/bzip2_compression",
"tuwunel-service/bzip2_compression",
]
direct_tls = [
"axum-server/tls-rustls",
"dep:rustls",
@@ -40,7 +45,6 @@ io_uring = [
"tuwunel-admin/io_uring",
"tuwunel-api/io_uring",
"tuwunel-service/io_uring",
"tuwunel-api/io_uring",
]
jemalloc = [
"tuwunel-admin/jemalloc",
@@ -66,6 +70,11 @@ jemalloc_stats = [
"tuwunel-core/jemalloc_stats",
"tuwunel-service/jemalloc_stats",
]
lz4_compression = [
"tuwunel-admin/lz4_compression",
"tuwunel-api/lz4_compression",
"tuwunel-service/lz4_compression",
]
release_max_log_level = [
"tuwunel-admin/release_max_log_level",
"tuwunel-api/release_max_log_level",

View File

@@ -25,6 +25,9 @@ brotli_compression = [
"tuwunel-core/brotli_compression",
"reqwest/brotli",
]
bzip2_compression = [
"tuwunel-database/bzip2_compression",
]
console = [
"dep:rustyline-async",
"dep:termimad",
@@ -56,6 +59,9 @@ jemalloc_stats = [
ldap = [
"dep:ldap3",
]
lz4_compression = [
"tuwunel-database/lz4_compression",
]
media_thumbnail = [
"dep:image",
]