From 488e886384026d91d6e6e2676a9f04eca1d6742f Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 30 Oct 2014 16:15:13 -0500 Subject: [PATCH] gnu: Add libpsl. * gnu/packages/web.scm (libpsl): New variable. --- gnu/packages/web.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 301e64b299..becbf744a1 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -32,6 +32,9 @@ #:use-module (gnu packages autotools) #:use-module ((gnu packages compression) #:select (zlib)) #:use-module (gnu packages openssl) + #:use-module (gnu packages gettext) + #:use-module (gnu packages icu4c) + #:use-module (gnu packages which) #:use-module (gnu packages pcre) #:use-module (gnu packages xml) #:use-module (gnu packages curl) @@ -144,6 +147,58 @@ for efficient socket-like bidirectional reliable communication channels.") ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'. (license l:lgpl2.1))) +(define-public libpsl + (package + (name "libpsl") + (version "0.6.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/rockdaboot/libpsl/" + "archive/" version ".tar.gz")) + (sha256 + (base32 + "10s7xxxx6pp4ydp3san69sa6q379ih3pv92fyi565ggmlw8igv7a")))) + (build-system gnu-build-system) + (inputs `(("icu4c" ,icu4c))) + ;; The release tarball lacks the generated files. + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext" ,gnu-gettext) + ("which" ,which) + ("libtool" ,libtool) + ("libtool" ,libtool "bin"))) + (arguments + `(#:phases (alist-cons-before + 'bootstrap 'fix-autogen-shebang + (lambda _ + (substitute* "autogen.sh" + ;; Removing -e as it causes the whole script to fail when + ;; `which gtkdocize` fails. + (("# !/bin/sh -e") (string-append "#!" (which "sh"))))) + (alist-cons-before + 'patch-usr-bin-file 'bootstrap + (lambda _ + (zero? (system* "./autogen.sh"))) + %standard-phases)))) + (home-page "https://github.com/rockdaboot/libpsl") + (synopsis "C library for the Publix Suffix List") + (description + "A \"public suffix\" is a domain name under which Internet users can +directly register own names. + +Browsers and other web clients can use it to avoid privacy-leaking +\"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain +highlighting parts of the domain in a user interface, and sorting domain lists +by site. + +Libpsl has built-in PSL data for fast access, allows to load PSL data from +files, checks if a given domain is a public suffix, provides immediate cookie +domain verification, finds the longest public part of a given domain, finds +the shortest private part of a given domain, works with international +domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008 +UTS#46") + (license l:x11))) + (define-public perl-html-tagset (package (name "perl-html-tagset")