diff --git a/libpsl-0.21.1.tar.gz b/libpsl-0.21.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..03beef0fe00961c5ec1d8418bd6ff58064f84687 Binary files /dev/null and b/libpsl-0.21.1.tar.gz differ diff --git a/libpsl.spec b/libpsl.spec new file mode 100644 index 0000000000000000000000000000000000000000..1f3ec59c4f1e61ba643035c4a9b1b23470384266 --- /dev/null +++ b/libpsl.spec @@ -0,0 +1,155 @@ +%define anolis_release 1 + +Name: libpsl +Version: 0.21.1 +Release: 1.%{anolis_release}%{?dist} +Summary: C library for the Publix Suffix List +License: MIT +URL: https://rockdaboot.github.io/libpsl +Source0: https://github.com/rockdaboot/libpsl/releases/download/%{version}/libpsl-%{version}.tar.gz +BuildRequires: gcc +BuildRequires: gettext-devel +BuildRequires: glib2-devel +BuildRequires: gtk-doc +BuildRequires: libicu-devel +BuildRequires: libidn2-devel +BuildRequires: libunistring-devel +BuildRequires: libxslt +BuildRequires: make +BuildRequires: publicsuffix-list +BuildRequires: python3-devel +Requires: publicsuffix-list-dafsa + +%description +libpsl is a C library to handle the Public Suffix List. 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; +- 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; +- handles IDNA2008 UTS#46; + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: publicsuffix-list + +%description devel +This package contains libraries and header files for +developing applications that use %{name}. + +%package -n psl +Summary: Commandline utility to explore the Public Suffix List + +%description -n psl +This package contains a commandline utility to explore the Public Suffix List, +for example it checks if domains are public suffixes, checks if cookie-domain +is acceptable for domains and so on. + +%package -n psl-make-dafsa +Summary: Compiles the Public Suffix List into DAFSA form + +%description -n psl-make-dafsa +This script produces C/C++ code or an architecture-independent binary object +which represents a Deterministic Acyclic Finite State Automaton (DAFSA) +from a plain text Public Suffix List. + + +%prep +%autosetup -p1 +rm -frv list +ln -sv %{_datadir}/publicsuffix list +sed -i -e "1s|#!.*|#!%{__python3}|" src/psl-make-dafsa + +%build +# Tarballs from github have 2 versions, one is raw files from repo, and +# the other one from CDN contains pre-generated autotools files. +# But makefile hack is not upstreamed yet so we continue reconfiguring these. +# [ -f configure ] || autoreconf -fiv +# autoreconf -fiv + +# libicu does allow support for a newer IDN specification (IDN 2008) than +# libidn 1.x (IDN 2003). However, libpsl mostly relies on an internally +# compiled list, which is generated at buildtime and the testsuite thereof +# requires either libidn or libicu only at buildtime; the runtime +# requirement is only for loading external lists, which IIUC neither curl +# nor wget support. libidn2 supports IDN 2008 as well, and is *much* smaller +# than libicu. +# +# curl (as of 7.51.0-1.fc25) and wget (as of 1.19-1.fc26) now depend on libidn2. +# Therefore, we use libidn2 at runtime to help minimize core dependencies. +%configure --disable-silent-rules \ + --disable-static \ + --enable-man \ + --enable-gtk-doc \ + --enable-builtin=libicu \ + --enable-runtime=libidn2 \ + --with-psl-distfile=%{_datadir}/publicsuffix/public_suffix_list.dafsa \ + --with-psl-file=%{_datadir}/publicsuffix/effective_tld_names.dat \ + --with-psl-testfile=%{_datadir}/publicsuffix/test_psl.txt + +# avoid using rpath +sed -i libtool \ + -e 's|^\(runpath_var=\).*$|\1|' \ + -e 's|^\(hardcode_libdir_flag_spec=\).*$|\1|' + +%make_build + +%install +%make_install + +# the script is noinst but the manpage is installed +install -m0755 src/psl-make-dafsa %{buildroot}%{_bindir}/ + +find %{buildroot} -name '*.la' -delete -print + +%check +make check || cat tests/test-suite.log + +%ldconfig_scriptlets + +%files +%license COPYING +%{_libdir}/libpsl.so.5 +%{_libdir}/libpsl.so.5.* + +%files devel +%doc AUTHORS NEWS +%{_datadir}/gtk-doc/html/libpsl/ +%{_includedir}/libpsl.h +%{_libdir}/libpsl.so +%{_libdir}/pkgconfig/libpsl.pc +%{_mandir}/man3/libpsl.3* + +%files -n psl +%doc AUTHORS NEWS +%license COPYING +%{_bindir}/psl +%{_mandir}/man1/psl.1* + +%files -n psl-make-dafsa +%license COPYING +%{_bindir}/psl-make-dafsa +%{_mandir}/man1/psl-make-dafsa.1* + +%changelog +* Wed Mar 02 2022 Hongwei Qin - 0.21.1-1.1 +- Init for Anolis OS 23 + +* Mon Jul 20 2020 Kamil Dudka - 0.21.1-1 +- update to 0.21.1 (#1858489) +