openobserve: 0.15.3 -> 0.40.0 (#477867)

This commit is contained in:
Yt
2026-01-08 02:09:38 +00:00
committed by GitHub
+114 -87
View File
@@ -1,7 +1,9 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
fetchurl,
pkg-config,
protobuf,
bzip2,
@@ -14,109 +16,134 @@
gitUpdater,
}:
let
version = "0.15.3";
src = fetchFromGitHub {
owner = "openobserve";
repo = "openobserve";
tag = "v${version}";
hash = "sha256-GHyfIVUSX7evP3LaHZClD1RjZ6somYcMNBFdkaZL7lg=";
};
web = buildNpmPackage {
inherit src version;
pname = "openobserve-ui";
rustPlatform.buildRustPackage (
finalAttrs:
let
web = buildNpmPackage {
inherit (finalAttrs) src version;
pname = "openobserve-ui";
sourceRoot = "${src.name}/web";
sourceRoot = "${finalAttrs.src.name}/web";
npmDepsHash = "sha256-5bXEC48m3FbtmLwVYYvEdMV3qWA7KNEKVxkMZ94qEpA=";
npmDepsHash = "sha256-ED3plf8Miw5+cbCOo+R1rbRxBju/MZvR0U9JA+NLr2k=";
preBuild = ''
# Patch vite config to not open the browser to visualize plugin composition
substituteInPlace vite.config.ts \
--replace "open: true" "open: false";
'';
preBuild = ''
# Patch vite config to not open the browser to visualize plugin composition
substituteInPlace vite.config.ts \
--replace "open: true" "open: false";
'';
env = {
NODE_OPTIONS = "--max-old-space-size=8192";
# cypress tries to download binaries otherwise
CYPRESS_INSTALL_BINARY = 0;
env = {
NODE_OPTIONS = "--max-old-space-size=8192";
# cypress tries to download binaries otherwise
CYPRESS_INSTALL_BINARY = 0;
};
installPhase = ''
runHook preInstall
mkdir -p $out/share
mv dist $out/share/openobserve-ui
runHook postInstall
'';
};
in
{
pname = "openobserve";
version = "0.40.0";
src = fetchFromGitHub {
owner = "openobserve";
repo = "openobserve";
tag = "v${finalAttrs.version}";
hash = "sha256-eiF9t3l6RcbO6d79iSuA7ikH2atizyNjWABQ9KAkkfE=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share
mv dist $out/share/openobserve-ui
runHook postInstall
patches = [
# prevent using git to determine version info during build time
./build.rs.patch
];
preBuild = ''
cp -r ${web}/share/openobserve-ui web/dist
'';
};
in
rustPlatform.buildRustPackage {
pname = "openobserve";
inherit version src;
patches = [
# prevent using git to determine version info during build time
./build.rs.patch
];
cargoHash = "sha256-RNrI5DB5FTSLxeT7a62KkEnqyDYV4dQ3G65PPofa9Zs=";
preBuild = ''
cp -r ${web}/share/openobserve-ui web/dist
'';
nativeBuildInputs = [
pkg-config
protobuf
];
cargoHash = "sha256-j/bx4qoWcSh2/yJ9evnzSfyUd0tLAk4M310A89k4wy8=";
buildInputs = [
bzip2
oniguruma
sqlite
xz
zlib
zstd
];
nativeBuildInputs = [
pkg-config
protobuf
];
env = {
RUSTONIG_SYSTEM_LIBONIG = true;
ZSTD_SYS_USE_PKG_CONFIG = true;
buildInputs = [
bzip2
oniguruma
sqlite
xz
zlib
zstd
];
RUSTC_BOOTSTRAP = 1; # uses experimental features
env = {
RUSTONIG_SYSTEM_LIBONIG = true;
ZSTD_SYS_USE_PKG_CONFIG = true;
# the patched build.rs file sets these variables
GIT_VERSION = finalAttrs.src.tag;
GIT_COMMIT_HASH = "builtByNix";
GIT_BUILD_DATE = "1970-01-01T00:00:00Z";
RUSTC_BOOTSTRAP = 1; # uses experimental features
RUSTFLAGS = "-C target-feature=+aes,+sse2";
# the patched build.rs file sets these variables
GIT_VERSION = src.tag;
GIT_COMMIT_HASH = "builtByNix";
GIT_BUILD_DATE = "1970-01-01T00:00:00Z";
SWAGGER_UI_DOWNLOAD_URL =
# When updating:
# - Look for the version of `utoipa-swagger-ui` at:
# https://github.com/StractOrg/stract/blob/<STRACT-REV>/Cargo.toml#L183
# - Look at the corresponding version of `swagger-ui` at:
# https://github.com/juhaku/utoipa/blob/utoipa-swagger-ui-<UTOPIA-SWAGGER-UI-VERSION>/utoipa-swagger-ui/build.rs#L21-L22
let
swaggerUiVersion = "5.17.14";
swaggerUi = fetchurl {
url = "https://github.com/swagger-api/swagger-ui/archive/refs/tags/v${swaggerUiVersion}.zip";
hash = "sha256-SBJE0IEgl7Efuu73n3HZQrFxYX+cn5UU5jrL4T5xzNw=";
};
in
"file://${swaggerUi}";
};
RUSTFLAGS = "-C target-feature=+aes,+sse2";
};
# swagger-ui will once more be copied in the target directory during the check phase
# Not deleting the existing unpacked archive leads to a `PermissionDenied` error
preCheck = ''
rm -rf target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/build/
'';
# requires network access or filesystem mutations
checkFlags = [
"--skip=handler::http::router::tests::test_get_proxy_routes"
"--skip=tests::e2e_test"
"--skip=tests::test_setup_logs"
"--skip=handler::http::router::middlewares::compress::Compress"
# Tests are not threadsafe. Most likely can only run one test at a time,
# due to altering shared database state.
# This option already in upstream code: https://github.com/openobserve/openobserve/pull/7084
# Also see: https://github.com/NixOS/nixpkgs/pull/457421
"--test-threads=1"
];
# requires network access or filesystem mutations
checkFlags = [
"--skip=handler::http::router::tests::test_get_proxy_routes"
"--skip=tests::e2e_test"
"--skip=tests::test_setup_logs"
"--skip=handler::http::router::middlewares::compress::Compress"
"--skip=service::github"
# Tests are not threadsafe. Most likely can only run one test at a time,
# due to altering shared database state.
# This option already in upstream code: https://github.com/openobserve/openobserve/pull/7084
# Also see: https://github.com/NixOS/nixpkgs/pull/457421
"--test-threads=1"
];
passthru.updateScript = gitUpdater {
rev-prefix = "v";
ignoredVersions = "rc";
};
passthru.updateScript = gitUpdater {
rev-prefix = "v";
ignoredVersions = "rc";
};
meta = {
description = "Cloud-native observability platform built specifically for logs, metrics, traces, analytics & realtime user-monitoring";
homepage = "https://github.com/openobserve/openobserve";
changelog = "https://github.com/openobserve/openobserve/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ happysalada ];
mainProgram = "openobserve";
};
}
meta = {
description = "Cloud-native observability platform built specifically for logs, metrics, traces, analytics & realtime user-monitoring";
homepage = "https://github.com/openobserve/openobserve";
changelog = "https://github.com/openobserve/openobserve/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ happysalada ];
mainProgram = "openobserve";
};
}
)