diff --git a/gnu/local.mk b/gnu/local.mk index 208875754b..5b21a6ee1b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1752,6 +1752,7 @@ dist_patch_DATA = \ %D%/packages/patches/rust-1.25-accept-more-detailed-gdb-lines.patch \ %D%/packages/patches/rust-1.45-linker-locale.patch \ %D%/packages/patches/rust-1.48-linker-locale.patch \ + %D%/packages/patches/rust-adblock-ignore-live-tests.patch \ %D%/packages/patches/rust-bootstrap-stage0-test.patch \ %D%/packages/patches/rust-coresimd-doctest.patch \ %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \ diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 692cd2a28b..9327ed5e1c 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -984,6 +984,60 @@ (define-public rust-adaptive-barrier-0.1 deadlock, like the standard Barrier).") (license (list license:asl2.0 license:expat)))) +(define-public rust-adblock-0.4 + (package + (name "rust-adblock") + (version "0.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/brave/adblock-rust") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (patches (search-patches "rust-adblock-ignore-live-tests.patch")) + (sha256 + (base32 + "0l2iacwkm66z6wc71wy62x2k5xllx94adrqncicxqsx203c3ljpl")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-addr" ,rust-addr-0.14) + ("rust-base64" ,rust-base64-0.13) + ("rust-bitflags" ,rust-bitflags-1) + ("rust-cssparser" ,rust-cssparser-0.25) + ("rust-flate2" ,rust-flate2-1) + ("rust-idna" ,rust-idna-0.2) + ("rust-itertools" ,rust-itertools-0.10) + ("rust-lifeguard" ,rust-lifeguard-0.6) + ("rust-once-cell" ,rust-once-cell-1) + ("rust-percent-encoding" + ,rust-percent-encoding-2) + ("rust-regex" ,rust-regex-1) + ("rust-rmp-serde" ,rust-rmp-serde-0.13) + ("rust-rmp-serde" ,rust-rmp-serde-0.15) + ("rust-seahash" ,rust-seahash-3) + ("rust-selectors" ,rust-selectors-0.21) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-twoway" ,rust-twoway-0.2) + ("rust-url" ,rust-url-2)) + #:cargo-development-inputs + (("rust-criterion" ,rust-criterion-0.3) + ("rust-csv" ,rust-csv-1) + ("rust-futures" ,rust-futures-0.3) + ("rust-reqwest" ,rust-reqwest-0.11) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-sha2" ,rust-sha2-0.9) + ("rust-tokio" ,rust-tokio-1.8)))) + (native-inputs `(("pkg-config" ,pkg-config) + ("openssl" ,openssl))) + (home-page "https://github.com/brave/adblock-rust/") + (synopsis "Adblock Plus syntax filter parsing and matching") + (description "This package provides native Rust module for Adblock Plus +syntax (e.g. EasyList, EasyPrivacy) filter parsing and matching.") + (license license:mpl2.0))) + (define-public rust-addr2line-0.14 (package (name "rust-addr2line") diff --git a/gnu/packages/patches/rust-adblock-ignore-live-tests.patch b/gnu/packages/patches/rust-adblock-ignore-live-tests.patch new file mode 100644 index 0000000000..fc7f2858ff --- /dev/null +++ b/gnu/packages/patches/rust-adblock-ignore-live-tests.patch @@ -0,0 +1,69 @@ +From b83b5b453d3f7883ef4c12f84a7045486957c709 Mon Sep 17 00:00:00 2001 +From: Petr Hodina +Date: Tue, 9 Nov 2021 17:02:54 +0100 +Subject: [PATCH] Ignore live tests. + + +diff --git a/tests/live.rs b/tests/live.rs +index b1a19fc..6bd4685 100644 +--- a/tests/live.rs ++++ b/tests/live.rs +@@ -140,6 +140,7 @@ fn get_blocker_engine_deserialized_ios() -> Engine { + } + + #[test] ++#[ignore] + fn check_live_specific_urls() { + let mut engine = get_blocker_engine(); + { +@@ -176,6 +177,7 @@ fn check_live_specific_urls() { + } + + #[test] ++#[ignore] + fn check_live_deserialized_specific_urls() { + let mut engine = get_blocker_engine_deserialized(); + { +@@ -201,6 +203,7 @@ fn check_live_deserialized_specific_urls() { + } + + #[test] ++#[ignore] + fn check_live_from_filterlists() { + let engine = get_blocker_engine(); + let requests = load_requests(); +@@ -214,6 +217,7 @@ fn check_live_from_filterlists() { + } + + #[test] ++#[ignore] + fn check_live_deserialized_file() { + let engine = get_blocker_engine_deserialized(); + let requests = load_requests(); +@@ -243,6 +247,7 @@ fn check_live_deserialized_ios() { + + #[cfg(feature = "resource_assembler")] + #[test] ++#[ignore] + fn check_live_redirects() { + use adblock::resources::resource_assembler::assemble_web_accessible_resources; + +@@ -278,6 +283,7 @@ fn check_live_redirects() { + } + + #[test] ++#[ignore] + /// Ensure that two different engines loaded from the same textual filter set serialize to + /// identical buffers. + fn stable_serialization() { +@@ -291,6 +297,7 @@ fn stable_serialization() { + } + + #[test] ++#[ignore] + /// Ensure that one engine's serialization result can be exactly reproduced by another engine after + /// deserializing from it. + fn stable_serialization_through_load() { +-- +2.33.1 +