| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 | |
| 19 | |
| 20 | |
| 21 |
|
| 22 | (define-module (gnu packages perl-web)
|
| 23 | #:use-module ((guix licenses) #:prefix license:)
|
| 24 | #:use-module (gnu packages)
|
| 25 | #:use-module (guix packages)
|
| 26 | #:use-module (gnu packages autotools)
|
| 27 | #:use-module (gnu packages base)
|
| 28 | #:use-module (gnu packages compression)
|
| 29 | #:use-module (gnu packages curl)
|
| 30 | #:use-module (gnu packages databases)
|
| 31 | #:use-module (gnu packages dbm)
|
| 32 | #:use-module (gnu packages gnupg)
|
| 33 | #:use-module (gnu packages libidn)
|
| 34 | #:use-module (gnu packages mail)
|
| 35 | #:use-module (gnu packages networking)
|
| 36 | #:use-module (gnu packages perl)
|
| 37 | #:use-module (gnu packages perl-check)
|
| 38 | #:use-module (gnu packages perl-compression)
|
| 39 | #:use-module (gnu packages compiler-tools)
|
| 40 | #:use-module (gnu packages tls)
|
| 41 | #:use-module (gnu packages web)
|
| 42 | #:use-module (gnu packages xml)
|
| 43 | #:use-module (guix build-system copy)
|
| 44 | #:use-module (guix build-system perl)
|
| 45 | #:use-module (guix download)
|
| 46 | #:use-module (guix gexp))
|
| 47 |
|
| 48 | (define-public perl-mojolicious
|
| 49 | (package
|
| 50 | (name "perl-mojolicious")
|
| 51 | (version "9.17")
|
| 52 | (source
|
| 53 | (origin
|
| 54 | (method url-fetch)
|
| 55 | (uri (string-append "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-"
|
| 56 | version ".tar.gz"))
|
| 57 | (sha256
|
| 58 | (base32
|
| 59 | "13dxjhr03dhh1f5bbxbb3jiwdv7jby96qqb97l3arf5x043yd9hd"))))
|
| 60 | (build-system perl-build-system)
|
| 61 | (home-page "https://mojolicious.org/")
|
| 62 | (synopsis "Real-time web framework")
|
| 63 | (description "Back in the early days of the web, many people learned Perl
|
| 64 | because of a wonderful Perl library called @code{CGI}. It was simple enough
|
| 65 | to get started without knowing much about the language and powerful enough to
|
| 66 | keep you going, learning by doing was much fun. While most of the techniques
|
| 67 | used are outdated now, the idea behind it is not. Mojolicious is a new
|
| 68 | endeavor to implement this idea using modern technologies.")
|
| 69 | (license license:artistic2.0)))
|
| 70 |
|
| 71 | (define-public perl-uri-db
|
| 72 | (package
|
| 73 | (name "perl-uri-db")
|
| 74 | (version "0.19")
|
| 75 | (source
|
| 76 | (origin
|
| 77 | (method url-fetch)
|
| 78 | (uri (string-append
|
| 79 | "mirror://cpan/authors/id/D/DW/DWHEELER/URI-db-"
|
| 80 | version
|
| 81 | ".tar.gz"))
|
| 82 | (sha256
|
| 83 | (base32
|
| 84 | "0n56xxlw7c39pfar0dxckr9mbmp6yrzk53ic0cb24raiykm9v6f4"))))
|
| 85 | (build-system perl-build-system)
|
| 86 | (native-inputs
|
| 87 | (list perl-module-build))
|
| 88 | (propagated-inputs
|
| 89 | (list perl-uri perl-uri-nested))
|
| 90 | (home-page "https://metacpan.org/release/URI-db")
|
| 91 | (synopsis "Handle database URIs")
|
| 92 | (description
|
| 93 | "This module defines a format for database URIs, and provides a @code{URI}
|
| 94 | class to handle these.")
|
| 95 | (license license:perl-license)))
|
| 96 |
|
| 97 | (define-public perl-uri-escape
|
| 98 | (package
|
| 99 | (name "perl-uri-escape")
|
| 100 | (version "1.76")
|
| 101 | (source
|
| 102 | (origin
|
| 103 | (method url-fetch)
|
| 104 | (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/URI-"
|
| 105 | version ".tar.gz"))
|
| 106 | (sha256
|
| 107 | (base32
|
| 108 | "0gj1aj18k43kmzc3y1zhj5giinf8rksacf757r475xfna0fqxjdj"))))
|
| 109 | (build-system perl-build-system)
|
| 110 | (native-inputs
|
| 111 | (list perl-test-needs))
|
| 112 | (home-page "https://github.com/libwww-perl/URI")
|
| 113 | (synopsis "Percent-encode and percent-decode unsafe characters")
|
| 114 | (description "This module provides functions to percent-encode and
|
| 115 | percent-decode URI strings as defined by RFC 3986. Percent-encoding URI's is
|
| 116 | informally called URI escaping. This is the terminology used by this module,
|
| 117 | which predates the formalization of the terms by the RFC by several years.")
|
| 118 | (license license:perl-license)))
|
| 119 |
|
| 120 | (define-public perl-uri-nested
|
| 121 | (package
|
| 122 | (name "perl-uri-nested")
|
| 123 | (version "0.10")
|
| 124 | (source
|
| 125 | (origin
|
| 126 | (method url-fetch)
|
| 127 | (uri (string-append
|
| 128 | "mirror://cpan/authors/id/D/DW/DWHEELER/URI-Nested-"
|
| 129 | version
|
| 130 | ".tar.gz"))
|
| 131 | (sha256
|
| 132 | (base32
|
| 133 | "1bzg6f11m8wfnmycflvp858rs99xknsx8hkip0xcdfjzlqwi75z1"))))
|
| 134 | (build-system perl-build-system)
|
| 135 | (native-inputs
|
| 136 | (list perl-module-build))
|
| 137 | (propagated-inputs
|
| 138 | (list perl-uri))
|
| 139 | (home-page "https://metacpan.org/release/URI-Nested")
|
| 140 | (synopsis "Nested URIs")
|
| 141 | (description
|
| 142 | "@code{URI::Nested} provides support for nested URIs, where the scheme is
|
| 143 | a prefix, and the remainder of the URI is another URI.")
|
| 144 | (license license:perl-license)))
|
| 145 |
|
| 146 | (define-public perl-mojo-dom58
|
| 147 | (package
|
| 148 | (name "perl-mojo-dom58")
|
| 149 | (version "3.001")
|
| 150 | (source
|
| 151 | (origin
|
| 152 | (method url-fetch)
|
| 153 | (uri (string-append "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-DOM58-"
|
| 154 | version ".tar.gz"))
|
| 155 | (sha256
|
| 156 | (base32 "15jp9wiczrnvdx8cld0jn43bmj20v5ll6cfzvmd4252k3ra6vchq"))))
|
| 157 | (build-system perl-build-system)
|
| 158 | (propagated-inputs (list perl-role-tiny))
|
| 159 | (home-page "https://metacpan.org/release/Mojo-DOM58")
|
| 160 | (synopsis "Minimalistic HTML/XML DOM parser with CSS selectors")
|
| 161 | (description "This package provides a HTML and XML DOM parser. It also
|
| 162 | supports CSS selectors.")
|
| 163 | (license license:artistic2.0)))
|
| 164 |
|
| 165 | (define-public perl-gravatar-url
|
| 166 | (package
|
| 167 | (name "perl-gravatar-url")
|
| 168 | (version "1.07")
|
| 169 | (source (origin
|
| 170 | (method url-fetch)
|
| 171 | (uri (string-append
|
| 172 | "mirror://cpan/authors/id/M/MS/MSCHWERN/Gravatar-URL-"
|
| 173 | version ".tar.gz"))
|
| 174 | (sha256
|
| 175 | (base32
|
| 176 | "1mxnd70xsb7kxd1sf8s7phcds2nf0m8b8asmy3ikv76wzfpbvji3"))))
|
| 177 | (build-system perl-build-system)
|
| 178 | (native-inputs (list perl-module-build
|
| 179 | perl-test-mockrandom
|
| 180 | perl-test-warn))
|
| 181 | (propagated-inputs (list perl-net-dns perl-uri))
|
| 182 | (home-page "https://metacpan.org/release/Gravatar-URL")
|
| 183 | (synopsis "Make URLs for Gravatars from an email address")
|
| 184 | (description
|
| 185 | "This module looks up the Gravatar for any email address by constructing
|
| 186 | a URL to get the image from @url{gravatar.com}. A Gravatar is a Globally
|
| 187 | Recognized Avatar for a given email address. This allows you to have a global
|
| 188 | picture associated with your email address.")
|
| 189 | (license license:perl-license)))
|
| 190 |
|
| 191 | (define-public perl-io-sessiondata
|
| 192 | (package
|
| 193 | (name "perl-io-sessiondata")
|
| 194 | (version "1.03")
|
| 195 | (source (origin
|
| 196 | (method url-fetch)
|
| 197 | (uri (string-append
|
| 198 | "mirror://cpan/authors/id/P/PH/PHRED/IO-SessionData-"
|
| 199 | version ".tar.gz"))
|
| 200 | (sha256
|
| 201 | (base32
|
| 202 | "1p9d77pqy9a8dbgw7h7vmmkg0rlckk19dchd4c8gvcyv7qm73934"))))
|
| 203 | (build-system perl-build-system)
|
| 204 | (home-page "https://metacpan.org/release/IO-SessionData")
|
| 205 | (synopsis "Supporting module for SOAP::Lite")
|
| 206 | (description
|
| 207 | "Package extracted from SOAP::Lite. Slightly modified to work on
|
| 208 | multiple platforms.")
|
| 209 | (license license:perl-license)))
|
| 210 |
|
| 211 | (define-public perl-soap-lite
|
| 212 | (package
|
| 213 | (name "perl-soap-lite")
|
| 214 | (version "1.27")
|
| 215 | (source (origin
|
| 216 | (method url-fetch)
|
| 217 | (uri (string-append
|
| 218 | "mirror://cpan/authors/id/P/PH/PHRED/SOAP-Lite-"
|
| 219 | version ".tar.gz"))
|
| 220 | (sha256
|
| 221 | (base32
|
| 222 | "00fkvmnxiy5mr45rj5qmxmflw0xdkw2gihm48iha2i8smdmi0ng3"))))
|
| 223 | (build-system perl-build-system)
|
| 224 | (arguments
|
| 225 | (list #:phases #~(modify-phases %standard-phases
|
| 226 | (add-after 'unpack 'patch
|
| 227 | (lambda _
|
| 228 | (substitute* "t/Issues/rt53375.t"
|
| 229 | (("XML::Parser::Lite")
|
| 230 | "XML::Parser")))))))
|
| 231 | (native-inputs (list perl-test-most perl-test-warn))
|
| 232 | (propagated-inputs (list perl-class-inspector
|
| 233 | perl-constant
|
| 234 | perl-io-compress
|
| 235 | perl-io-sessiondata
|
| 236 | perl-io-socket-ssl
|
| 237 | perl-libwww
|
| 238 | perl-lwp-protocol-https
|
| 239 | perl-mime-base64
|
| 240 | perl-scalar-list-utils
|
| 241 | perl-task-weaken
|
| 242 | perl-uri
|
| 243 | perl-xml-parser))
|
| 244 | (home-page "https://metacpan.org/release/SOAP-Lite")
|
| 245 | (synopsis "Client/server interface to the Simple Object Access Protocol")
|
| 246 | (description
|
| 247 | "@code{SOAP::Lite} is a collection of Perl modules that provide a
|
| 248 | simple and lightweight interface to the
|
| 249 | @acronym{SOAP, Simple Object Access Protocol}, both on client and server
|
| 250 | side.")
|
| 251 | (license license:perl-license)))
|
| 252 |
|
| 253 | (define-public perl-www-pastebin-pastebincom-create
|
| 254 | (package
|
| 255 | (name "perl-www-pastebin-pastebincom-create")
|
| 256 | (version "1.003")
|
| 257 | (source
|
| 258 | (origin
|
| 259 | (method url-fetch)
|
| 260 | (uri (string-append
|
| 261 | "mirror://cpan/authors/id/Z/ZO/ZOFFIX/WWW-Pastebin-PastebinCom-Create-"
|
| 262 | version ".tar.gz"))
|
| 263 | (sha256
|
| 264 | (base32 "0xs29hilmlr51hcg4azbvi7c30yivan5gzwiq2z0dwrdy13lvcln"))))
|
| 265 | (build-system perl-build-system)
|
| 266 | |
| 267 | (arguments
|
| 268 | (list #:tests? #f))
|
| 269 | (native-inputs (list perl-module-build))
|
| 270 | (propagated-inputs (list perl-moo perl-www-mechanize))
|
| 271 | (home-page "https://metacpan.org/release/WWW-Pastebin-PastebinCom-Create")
|
| 272 | (synopsis "Paste on Pastebin without API keys")
|
| 273 | (description
|
| 274 | "@code{WWW::Pastebin::PastebinCom::Create} provides functionality to
|
| 275 | paste on @url{https://www.pastebin.com, Pastebin} without API keys.")
|
| 276 | (license license:artistic2.0)))
|
| 277 |
|
| 278 | (define-public geolite-country-data
|
| 279 | |
| 280 | (hidden-package
|
| 281 | (package
|
| 282 | (name "geolite-country-data")
|
| 283 | (version "2019-12-06")
|
| 284 | (source (origin
|
| 285 | (method url-fetch)
|
| 286 | (uri (string-append
|
| 287 | "https://web.archive.org/web/20181229152721/"
|
| 288 | "http://geolite.maxmind.com/download/geoip/database/"
|
| 289 | "GeoLiteCountry/" "GeoIP.dat.gz"))
|
| 290 | (sha256
|
| 291 | (base32
|
| 292 | "0j84ms2x893cpn7x8gffy082gnx882pmr0f6zpfsd46gpyw5xh5r"))))
|
| 293 | (build-system copy-build-system)
|
| 294 | (arguments
|
| 295 | (list #:install-plan #~'(("GeoIP.dat" "share/GeoIP/"))))
|
| 296 | (home-page "https://dev.maxmind.com/geoip/geolite2-free-geolocation-data")
|
| 297 | (synopsis "Country-level GeoIP data (December 2018)")
|
| 298 | (description
|
| 299 | "This package provides an old GeoIP database in the legacy @file{.dat}
|
| 300 | format. The data was collected before MaxMind changed the license and format
|
| 301 | of their databases. It is intended only as a compatibility package for
|
| 302 | SpamAssassin.")
|
| 303 | (license license:cc-by-sa4.0))))
|
| 304 |
|
| 305 | (define-public perl-geo-ip
|
| 306 | (package
|
| 307 | (name "perl-geo-ip")
|
| 308 | (version "1.51")
|
| 309 | (source (origin
|
| 310 | (method url-fetch)
|
| 311 | (uri (string-append
|
| 312 | "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-"
|
| 313 | version ".tar.gz"))
|
| 314 | (sha256
|
| 315 | (base32
|
| 316 | "1fka8fr7fw6sh3xa9glhs1zjg3s2gfkhi7n7da1l2m2wblqj0c0n"))))
|
| 317 | (build-system perl-build-system)
|
| 318 | (arguments
|
| 319 | (list #:phases #~(modify-phases %standard-phases
|
| 320 | (add-after 'unpack 'patch
|
| 321 | (lambda _
|
| 322 | (substitute* "lib/Geo/IP.pm"
|
| 323 | (("/usr/local/share/GeoIP/GeoIP.dat")
|
| 324 | (string-append
|
| 325 | #$(this-package-input "geolite-country-data")
|
| 326 | "/share/GeoIP/GeoIP.dat"))))))))
|
| 327 | (inputs (list geolite-country-data))
|
| 328 | (home-page "https://metacpan.org/release/Geo-IP")
|
| 329 | (synopsis "Look up location and network information by IP Address")
|
| 330 | (description
|
| 331 | "The Perl module @code{Geo::IP} looks up location and network information
|
| 332 | by IP Address.")
|
| 333 | (license license:perl-license)))
|
| 334 |
|
| 335 | (define-public perl-net-smtps
|
| 336 | (package
|
| 337 | (name "perl-net-smtps")
|
| 338 | (version "0.10")
|
| 339 | (source (origin
|
| 340 | (method url-fetch)
|
| 341 | (uri (string-append
|
| 342 | "mirror://cpan/authors/id/T/TO/TOMO/src/Net-SMTPS-" version
|
| 343 | ".tar.gz"))
|
| 344 | (sha256
|
| 345 | (base32
|
| 346 | "1w6h7yjbk6a8xyi6rxgb0xlp2yqn55axl23wnqx687fy9y7gmzx9"))))
|
| 347 | (build-system perl-build-system)
|
| 348 | (propagated-inputs (list perl-authen-sasl
|
| 349 | perl-io-socket-ssl))
|
| 350 | (home-page "https://metacpan.org/release/Net-SMTPS")
|
| 351 | (synopsis "SSL/STARTTLS support for Net::SMTP")
|
| 352 | (description
|
| 353 | "This module implements a wrapper for @code{Net::SMTP}, enabling
|
| 354 | over-SSL/STARTTLS support. This module inherits most of all the methods from
|
| 355 | @code{Net::SMTP}(2.X).")
|
| 356 | (license license:perl-license)))
|
| 357 |
|
| 358 | (define-public perl-net-ip
|
| 359 | (package
|
| 360 | (name "perl-net-ip")
|
| 361 | (version "1.26")
|
| 362 | (source (origin
|
| 363 | (method url-fetch)
|
| 364 | (uri (string-append "mirror://cpan/authors/id/M/MA/MANU/Net-IP-"
|
| 365 | version ".tar.gz"))
|
| 366 | (sha256
|
| 367 | (base32
|
| 368 | "0ffn2xqqbkfi7v303sp5dwgbv36jah3vg8r4nxhxfiv60vric3q4"))))
|
| 369 | (build-system perl-build-system)
|
| 370 | (home-page "https://metacpan.org/release/Net-IP")
|
| 371 | (synopsis "Perl extension for manipulating IPv4/IPv6 addresses")
|
| 372 | (description
|
| 373 | "This module provides functions to deal with IPv4/IPv6 addresses. The
|
| 374 | module can be used as a class, allowing the user to instantiate IP objects,
|
| 375 | which can be single IP addresses, prefixes, or ranges of addresses. There is
|
| 376 | also a procedural way of accessing most of the functions. Most subroutines can
|
| 377 | take either IPv4 or IPv6 addresses transparently.")
|
| 378 | (license license:perl-license)))
|
| 379 |
|
| 380 | (define-public perl-net-imap-simple
|
| 381 | (package
|
| 382 | (name "perl-net-imap-simple")
|
| 383 | (version "1.2212")
|
| 384 | (source (origin
|
| 385 | (method url-fetch)
|
| 386 | (uri (string-append
|
| 387 | "mirror://cpan/authors/id/J/JE/JETTERO/Net-IMAP-Simple-"
|
| 388 | version ".tar.gz"))
|
| 389 | (sha256
|
| 390 | (base32
|
| 391 | "0mbzbfn0v1x1brd8nsyw8bzdkz31lw9qp7h6nrl3fcxylc5cs4lq"))))
|
| 392 | (build-system perl-build-system)
|
| 393 | (propagated-inputs (list perl-parse-recdescent))
|
| 394 | (home-page "https://metacpan.org/release/Net-IMAP-Simple")
|
| 395 | (synopsis "Perl extension for simple IMAP account handling.")
|
| 396 | (description
|
| 397 | "This package provides a class method constructs a new
|
| 398 | @code{Net::IMAP::Simple} object. It takes one required parameter which is the
|
| 399 | server to connect to, and additional optional parameters.")
|
| 400 | (license license:perl-license)))
|
| 401 |
|
| 402 | (define-public perl-mail-dmarc
|
| 403 | (package
|
| 404 | (name "perl-mail-dmarc")
|
| 405 | (version "1.20230215")
|
| 406 | (source (origin
|
| 407 | (method url-fetch)
|
| 408 | (uri (string-append
|
| 409 | "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DMARC-"
|
| 410 | version ".tar.gz"))
|
| 411 | (sha256
|
| 412 | (base32
|
| 413 | "00xrgq7cz75aj2m6bpfrb162fi0kyr016579as7494nbb53zbp2p"))))
|
| 414 | (build-system perl-build-system)
|
| 415 | (arguments
|
| 416 | (list #:tests? #f)) |
| 417 | (native-inputs (list perl-file-sharedir-install
|
| 418 | perl-module-build
|
| 419 | perl-test-exception
|
| 420 | perl-test-file-sharedir
|
| 421 | perl-test-output))
|
| 422 | (propagated-inputs (list perl-config-tiny
|
| 423 | perl-dbd-sqlite
|
| 424 | perl-dbix-simple
|
| 425 | perl-email-mime
|
| 426 | perl-email-sender
|
| 427 | perl-email-simple
|
| 428 | perl-file-sharedir
|
| 429 | perl-io-socket-ssl
|
| 430 | perl-mail-dkim
|
| 431 | perl-net-dns
|
| 432 | perl-net-idn-encode
|
| 433 | perl-net-imap-simple
|
| 434 | perl-net-ip
|
| 435 | perl-net-smtps
|
| 436 | perl-net-ssleay
|
| 437 | perl-regexp-common
|
| 438 | perl-socket6
|
| 439 | perl-uri
|
| 440 | perl-xml-libxml))
|
| 441 | (home-page "https://metacpan.org/release/Mail-DMARC")
|
| 442 | (synopsis "Perl implementation of DMARC")
|
| 443 | (description
|
| 444 | "This module is a suite of tools for implementing DMARC. It adheres to
|
| 445 | the 2013 DMARC draft, intending to implement every MUST and every SHOULD.")
|
| 446 | (license license:perl-license)))
|
| 447 |
|
| 448 | (define-public perl-net-libidn
|
| 449 | (package
|
| 450 | (name "perl-net-libidn")
|
| 451 | (version "0.12")
|
| 452 | (source (origin
|
| 453 | (method url-fetch)
|
| 454 | (uri (string-append
|
| 455 | "mirror://cpan/authors/id/T/TH/THOR/Net-LibIDN-" version
|
| 456 | ".tar.gz"))
|
| 457 | (sha256
|
| 458 | (base32
|
| 459 | "05xvpn9z7dpv62a5wgjx1n9kxblkqsgl9kb3vk3nx1mk8aacr2ig"))))
|
| 460 | (build-system perl-build-system)
|
| 461 | (inputs (list libidn))
|
| 462 | (home-page "https://metacpan.org/release/Net-LibIDN")
|
| 463 | (synopsis "Perl bindings for GNU Libidn")
|
| 464 | (description
|
| 465 | "The package provides bindings for GNU Libidn, a C library for handling
|
| 466 | Internationalized Domain Names according to IDNA (RFC 3490), in a way very
|
| 467 | much inspired by Turbo Fredriksson's PHP-IDN.")
|
| 468 | (license (list license:gpl1+ license:clarified-artistic))))
|
| 469 |
|
| 470 | (define-public perl-razor2-client-agent
|
| 471 | |
| 472 | (package
|
| 473 | (name "perl-razor2-client-agent")
|
| 474 | (version "2.86")
|
| 475 | (source (origin
|
| 476 | (method url-fetch)
|
| 477 | (uri (string-append
|
| 478 | "mirror://cpan/authors/id/T/TO/TODDR/Razor2-Client-Agent-"
|
| 479 | version ".tar.gz"))
|
| 480 | (sha256
|
| 481 | (base32
|
| 482 | "0pw4jhxhm2naqkz0h3gjgdjnygf4019zmvp712vj8pmnxc12w1jy"))))
|
| 483 | (build-system perl-build-system)
|
| 484 | (propagated-inputs (list perl-digest-sha1 perl-uri))
|
| 485 | (home-page "https://metacpan.org/release/Razor2-Client-Agent")
|
| 486 | (synopsis "Collaborative, content-based spam filtering network agent.")
|
| 487 | (description
|
| 488 | "This package provides a client library for Vipul's Razor. Vipul's Razor
|
| 489 | is a distributed, collaborative, spam detection and filtering network.
|
| 490 | Through user contribution, Razor establishes a distributed and constantly
|
| 491 | updating catalogue of spam in propagation that is consulted by email clients
|
| 492 | to filter out known spam. Detection is done with statistical and randomized
|
| 493 | signatures that efficiently spot mutating spam content. User input is
|
| 494 | validated through reputation assignments based on consensus on report and
|
| 495 | revoke assertions which in turn is used for computing confidence values
|
| 496 | associated with individual signatures.")
|
| 497 | (license license:perl-license)))
|
| 498 |
|
| 499 | (define-public spamassassin
|
| 500 | (package
|
| 501 | (name "spamassassin")
|
| 502 | (version "4.0.1")
|
| 503 | (source (origin
|
| 504 | (method url-fetch)
|
| 505 | (uri (string-append
|
| 506 | "mirror://cpan/authors/id/S/SI/SIDNEY/Mail-SpamAssassin-"
|
| 507 | version ".tar.gz"))
|
| 508 | (sha256
|
| 509 | (base32
|
| 510 | "1rfmsr0vbhh68m5p2r8jbrw91k65zzhh8vc1fsig21c4w4ib4ssw"))
|
| 511 | (modules '((guix build utils)))
|
| 512 | (snippet #~(delete-file "spamc/configure"))))
|
| 513 | (build-system perl-build-system)
|
| 514 | (arguments
|
| 515 | (list
|
| 516 | #:phases #~(modify-phases %standard-phases
|
| 517 | (add-before 'configure 'setup
|
| 518 | (lambda _
|
| 519 | (setenv "CONFIG_SHELL" (which "sh"))
|
| 520 | (substitute* "t/spamc_x_e.t" (("/bin/echo" all) (which "echo")))
|
| 521 | (substitute* "build/parse-rules-for-masses" (("date" all) (which "date")))
|
| 522 | (with-directory-excursion "spamc"
|
| 523 | (invoke "autoreconf" "-vif"))))
|
| 524 | (add-after 'install 'fix-lib-path
|
| 525 | (lambda _
|
| 526 | (let ((bin (string-append #$output "/bin/")))
|
| 527 | (for-each
|
| 528 | (lambda (file)
|
| 529 | (substitute* file
|
| 530 | |
| 531 | (("perl -T")
|
| 532 | "perl"))
|
| 533 | (wrap-program file
|
| 534 | `("PERL5LIB" ":" prefix
|
| 535 | (,(getenv "PERL5LIB")
|
| 536 | ,(string-append
|
| 537 | #$output
|
| 538 | "/lib/perl5/site_perl")))))
|
| 539 | (map (lambda (file)
|
| 540 | (string-append bin file))
|
| 541 | '("spamd" "sa-awl" "sa-check_spamd"
|
| 542 | "sa-compile" "sa-learn"
|
| 543 | "sa-update" "spamassassin")))))))))
|
| 544 | (native-inputs (list autoconf
|
| 545 | automake
|
| 546 | perl-critic
|
| 547 | perl-critic-policy-perlsecret
|
| 548 | perl-data-dumper
|
| 549 | perl-devel-cycle
|
| 550 | perl-test-pod
|
| 551 | perl-text-diff))
|
| 552 | (inputs
|
| 553 | (list
|
| 554 | coreutils
|
| 555 | curl
|
| 556 | gnupg
|
| 557 | openssl
|
| 558 | re2c
|
| 559 | zlib))
|
| 560 | (propagated-inputs
|
| 561 | (list perl-archive-zip
|
| 562 | perl-bsd-resource
|
| 563 | perl-dbd-sqlite
|
| 564 | perl-db-file
|
| 565 | perl-dbi
|
| 566 | perl-email-address-xs
|
| 567 | perl-encode-detect
|
| 568 | perl-geo-ip
|
| 569 | perl-html-parser
|
| 570 | perl-io-compress
|
| 571 | perl-io-socket-inet6
|
| 572 | perl-io-socket-ip
|
| 573 | perl-io-socket-ssl
|
| 574 | perl-io-string
|
| 575 | perl-io-zlib
|
| 576 | perl-libwww
|
| 577 | perl-lwp-protocol-https
|
| 578 | perl-mail-dkim
|
| 579 | perl-mail-dmarc
|
| 580 | perl-mail-spf
|
| 581 | perl-mime-base64
|
| 582 | perl-net-cidr-lite
|
| 583 | perl-net-dns
|
| 584 | perl-net-libidn
|
| 585 | perl-pathtools
|
| 586 | perl-net-patricia
|
| 587 | perl-net-smtps
|
| 588 | perl-netaddr-ip
|
| 589 | perl-razor2-client-agent
|
| 590 | perl-sys-hostname-long
|
| 591 | perl-time-hires
|
| 592 | perl-time-local))
|
| 593 | (home-page "https://metacpan.org/release/Mail-SpamAssassin")
|
| 594 | (synopsis
|
| 595 | "Extensible email filter used to identify spam")
|
| 596 | (description
|
| 597 | "Apache SpamAssassin is an anti-spam platform giving system
|
| 598 | administrators a filter to classify email and block spam (unsolicited bulk
|
| 599 | email). It uses a robust scoring framework and plug-ins to integrate a wide
|
| 600 | range of advanced heuristic and statistical analysis tests on email headers
|
| 601 | and body text including text analysis, Bayesian filtering, DNS blocklists,
|
| 602 | and collaborative filtering databases.")
|
| 603 | (license license:asl2.0)))
|