summaryrefslogtreecommitdiff
path: root/gnu/packages/web.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/web.scm')
-rw-r--r--gnu/packages/web.scm36
1 files changed, 36 insertions, 0 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index c3c9af4f31..4ae0000b74 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1318,6 +1318,42 @@ libraries for working with JNLP applets.")
;; or dual licenses.
(license license:gpl2+)))
+(define-public iocaine
+ (package
+ (name "iocaine")
+ (version "2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "iocaine" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1pd42hn5lqm3xw6id652w7sswix3l6bslcld7svqyq47gscsm3vn"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list
+ #:install-source? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'override-jemalloc
+ (lambda* (#:key inputs #:allow-other-keys) ;Copied from uv
+ (let ((jemalloc (assoc-ref inputs "jemalloc")))
+ ;; This flag is needed when not using the bundled jemalloc.
+ ;; https://github.com/tikv/jemallocator/issues/19
+ (setenv
+ "CARGO_FEATURE_UNPREFIXED_MALLOC_ON_SUPPORTED_PLATFORMS" "1")
+ (setenv "JEMALLOC_OVERRIDE"
+ (string-append jemalloc "/lib/libjemalloc.so"))))))))
+ (inputs (cons* jemalloc (cargo-inputs 'iocaine)))
+ (home-page "https://iocaine.madhouse-project.org/")
+ (synopsis "Serves poisonous data to large language model scrapers")
+ (description
+ "Iocaine is an HTTP server that generates a stable endless maze of
+Markov-babble-filled web pages. Placed behind a heavily rate-limited reverse
+proxy, it becomes a ``tar pit'' for trapping aggressive web scrapers commonly
+used to train large language models, and poisoning the collected data.")
+ (license license:expat)))
+
(define-public jansson
(package
(name "jansson")