Compare commits
193 Commits
libpsl-0.2
...
master
Author | SHA1 | Date |
---|---|---|
George Sokianos | 92d3ef3d19 | |
George Sokianos | 9098ed0e31 | |
Chun-wei Fan | c47cf796fc | |
Chun-wei Fan | 86923341a3 | |
Tim Rühsen | 927b202c69 | |
Tim Rühsen | f2bdc1709d | |
Tim Rühsen | 5eaa8b4796 | |
Tim Rühsen | c03f48aa24 | |
LGTM Migrator | 4cb5c0cea0 | |
Matt Turner | 182bfd0e5f | |
Cœur | c546aafc0a | |
Eli Schwartz | b9503b64c3 | |
Tim Rühsen | a7b63cbb35 | |
Tim Rühsen | cf6878fd24 | |
Tim Rühsen | 7a4cbdd386 | |
Rosen Penev | b27d4b69ce | |
Loïc Yhuel | aa4909766c | |
Tim Rühsen | 6a82bcbc2a | |
Tim Rühsen | 664f3dc852 | |
Ievgenii Meshcheriakov | 9d39483d42 | |
Tim Rühsen | 67aadbe967 | |
Tim Rühsen | 54038ae4d9 | |
Tim Rühsen | 97f8ae52c1 | |
Tim Rühsen | 21d2d51911 | |
Tim Rühsen | 55d0ae04de | |
Tim Rühsen | 042c586371 | |
Tim Rühsen | 1023a9ad12 | |
Tim Rühsen | 044b5ed5d4 | |
Tim Rühsen | be03c8ef97 | |
Tim Rühsen | 864d938f39 | |
Tim Rühsen | 5f796be788 | |
Alexey Rochev | 1159bd46c3 | |
Alexey Rochev | ba6f11f751 | |
Tim Rühsen | 4a10a1698b | |
Alexey Rochev | 02c8476071 | |
Tim Rühsen | 88a75d4711 | |
Alexey Rochev | 5a29a64444 | |
Alexey Rochev | 43fc4f0631 | |
Alexey Rochev | 0ecc788797 | |
Tim Rühsen | 4afd9e705b | |
Tim Rühsen | f5035b854b | |
Tim Rühsen | b2625f93f2 | |
Tim Rühsen | 304ca77522 | |
Tim Rühsen | 50ff7f2edf | |
Tim Rühsen | 6ce6c4e399 | |
Ignacio Casal Quinteiro | a1b91e86e4 | |
Tim Rühsen | 6f4f6d766c | |
Tim Rühsen | 99e7e6a2af | |
Tim Rühsen | 44443ad3a4 | |
Tim Rühsen | fef1568bef | |
Erica Ehrhardt | 62081a021f | |
Zhao Zhili | 5b63816e82 | |
Tim Rühsen | 6a5e41edc5 | |
Tim-Philipp Müller | 8e02c2c4f1 | |
Tim Rühsen | d61859f4b5 | |
Tim Rühsen | 5ccf1e85fe | |
Tim Rühsen | 03df58fc96 | |
Chris Hiszpanski | 079e8d0f6c | |
Tim Rühsen | 17cce94216 | |
Tomasz Kłoczko | 47bab910ee | |
Tim Rühsen | a5e6f26cce | |
Tim Rühsen | 0073dd737d | |
Damien Tournoud | c471792664 | |
Tim Rühsen | f5142207aa | |
Nikola Kotur | f364cea73e | |
Tim Rühsen | 72365d3036 | |
Nirbheek Chauhan | 0c11bf19df | |
Tim Rühsen | 20ad8fb106 | |
Nirbheek Chauhan | 116b5fe7b9 | |
Tim Rühsen | 8d9e490ee7 | |
Nirbheek Chauhan | a582a9c142 | |
Tim Rühsen | 96412ad0e0 | |
Matthew Waters | a10c374dad | |
Tim Rühsen | d54ecbd05e | |
Tim Rühsen | 55889b1d9e | |
Tim Rühsen | b9a190264f | |
Tim Rühsen | a2411a7207 | |
Tim Rühsen | d26a0acfd7 | |
Nirbheek Chauhan | 841ae6dddd | |
Tim Rühsen | fca622f587 | |
Tim Rühsen | 39c2990840 | |
Chun-wei Fan | 0e8addfe20 | |
Chun-wei Fan | 28319ed36f | |
Chun-wei Fan | 3e92891d8c | |
Chun-wei Fan | f277af5bd8 | |
Chun-wei Fan | 978e2989ca | |
Tim Rühsen | c6114a690c | |
Olivier Blin | 75603d131d | |
Tim Rühsen | e497735e45 | |
Ross Burton | b4fec5d0dd | |
Tim Rühsen | 22a7e4045c | |
Jakub Adam | 49ce76a8cf | |
Tim Rühsen | f850de85ab | |
Xavier Claessens | 93e3bb3e29 | |
Tim Rühsen | 867872e80d | |
Tim Rühsen | f32c240cc0 | |
Tim Rühsen | 5131ef0d5d | |
Alexander Kanavin | 87d1add318 | |
Tim Rühsen | 999f28cc15 | |
Tim Rühsen | 74ee95079d | |
Tim Rühsen | ef352f8923 | |
Tim Rühsen | 87715ba378 | |
Po-Chuan Hsieh | 9347024221 | |
Tim Rühsen | 8b913fe484 | |
Tim Rühsen | 082ee9740e | |
Tim Rühsen | 94a7e7c6ed | |
Tim Rühsen | 1eaf180359 | |
Tim Rühsen | e02ac83d93 | |
Tim Rühsen | 46a990736c | |
Tim Rühsen | 35c781924f | |
Tim Rühsen | 0c85c95dd1 | |
Jakub Adam | c230a7b48b | |
Tim Rühsen | 19359c6733 | |
carlo-bramini | 7dcb69eb1d | |
Tim Rühsen | b32e81367c | |
Ignacio Casal Quinteiro | 0bd3ae2a0c | |
Tim Rühsen | c6fdf56b20 | |
Ignacio Casal Quinteiro | 726d6773d4 | |
Ignacio Casal Quinteiro | b61285e74d | |
Tim Rühsen | ad895e382a | |
Tim Rühsen | b38320fd42 | |
Tim Rühsen | 80c0d5ff22 | |
Tim Rühsen | c9315f26bc | |
Chun-wei Fan | df873db543 | |
Tim Rühsen | 6a47e7c527 | |
Tim Rühsen | c3133c7fd6 | |
Tim Rühsen | c8c9c5a391 | |
Tim Rühsen | 04da21e2e9 | |
Tim Rühsen | 73b734c364 | |
Tim Rühsen | 6ef129be93 | |
Tim Rühsen | 277b82bca2 | |
Xavier Claessens | a9c3b6df39 | |
Xavier Claessens | ed5f23d69a | |
Tim Rühsen | 22f3ecdb12 | |
Xavier Claessens | 81a793346e | |
Xavier Claessens | 13bf8e102e | |
Tim Rühsen | 77971566d3 | |
Tim Rühsen | 2483cb608d | |
Xavier Claessens | 77c10beab7 | |
Tim Rühsen | aae1995ca7 | |
Xavier Claessens | aff5cef20e | |
Xavier Claessens | 1653897a49 | |
Tim Rühsen | 808dbaf1f1 | |
Tim Rühsen | 3687c2b97b | |
Tim Rühsen | 8fbe3f3130 | |
Tim Rühsen | b6fb9815f6 | |
Tim Rühsen | a8b4b68959 | |
Tim Rühsen | 9eedf5f246 | |
Tim Rühsen | 1e1b9f5748 | |
Tim Rühsen | e21c174e86 | |
Tim Rühsen | 9dba7e4f4c | |
Tim Rühsen | 8ee5c0993f | |
Tim Rühsen | 6938d1f513 | |
Tim Rühsen | ab893d4e23 | |
Tim Rühsen | e87d463d04 | |
Tim Rühsen | e1104c58f3 | |
Tim Rühsen | 68b1b0c7e5 | |
Tim Rühsen | 85ccc92281 | |
Tim Rühsen | 9d064cace8 | |
Don | 02648135c9 | |
Tim Rühsen | a3bd08fbf2 | |
Tim Rühsen | d691a3b941 | |
Tim Rühsen | 523397fb83 | |
Tim Rühsen | 4c68696eb1 | |
Tim Rühsen | b77d54469e | |
Tim Rühsen | b7f5c1414d | |
Tim Rühsen | 3695113cf6 | |
Tim Rühsen | 5fd44f138b | |
Tim Rühsen | a6397a0d62 | |
Tim Rühsen | c93175c32d | |
Chun-wei Fan | 6a5da68ccf | |
Tim Rühsen | 724fbd0098 | |
Tim Rühsen | 7cb146765e | |
Tim Rühsen | 1a59430862 | |
Tim Rühsen | 64db5a57da | |
Tim Rühsen | b220ffb0b9 | |
Tim Rühsen | 8595ebb0ce | |
Tim Rühsen | 1a8e3e01f5 | |
Chun-wei Fan | 5f85085d76 | |
Chun-wei Fan | 9620b13374 | |
Tim Rühsen | 44256b1a3a | |
Tim Rühsen | 01b6cba78f | |
Tim Rühsen | c4a2698e22 | |
Tim Rühsen | 6244c731b9 | |
Chun-wei Fan | 8e91838fd5 | |
Chun-wei Fan | 859b307593 | |
Tim Rühsen | 84536ee21d | |
Emmanuele Bassi | c9a550e93c | |
Tim Rühsen | 8aba48aa27 | |
Daniel Kahn Gillmor | 2c66c15a99 | |
Tim Rühsen | fe2042fea8 | |
Tim Rühsen | 32f3861216 | |
Tim Rühsen | f7e0d9441a |
|
@ -0,0 +1 @@
|
||||||
|
github: rockdaboot
|
|
@ -0,0 +1,53 @@
|
||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "master" ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ "master" ]
|
||||||
|
schedule:
|
||||||
|
- cron: "49 4 * * 0"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
actions: read
|
||||||
|
contents: read
|
||||||
|
security-events: write
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: [ python, cpp ]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Install Packages (cpp)
|
||||||
|
if: ${{ matrix.language == 'cpp' }}
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install --yes lzip autopoint
|
||||||
|
|
||||||
|
- name: Configure (cpp)
|
||||||
|
if: ${{ matrix.language == 'cpp' }}
|
||||||
|
run: ./autogen.sh && ./configure --disable-gtk-doc
|
||||||
|
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v2
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
queries: +security-and-quality
|
||||||
|
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v2
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v2
|
||||||
|
with:
|
||||||
|
category: "/language:${{ matrix.language }}"
|
|
@ -57,6 +57,8 @@ libpsl.pc
|
||||||
libtool
|
libtool
|
||||||
ltmain.sh
|
ltmain.sh
|
||||||
m4/
|
m4/
|
||||||
|
msvc/config-msvc.mak
|
||||||
|
msvc/config.h.win32
|
||||||
Makefile
|
Makefile
|
||||||
Makefile.in
|
Makefile.in
|
||||||
missing
|
missing
|
||||||
|
@ -77,7 +79,7 @@ po/remove-potcdate.sed
|
||||||
po/stamp-po
|
po/stamp-po
|
||||||
src/psl2c
|
src/psl2c
|
||||||
src/suffixes.c
|
src/suffixes.c
|
||||||
src/suffixes_dafsa.c
|
src/suffixes_dafsa.h
|
||||||
stamp-h1
|
stamp-h1
|
||||||
test-driver
|
test-driver
|
||||||
tests/*.log
|
tests/*.log
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
extraction:
|
||||||
|
cpp:
|
||||||
|
prepare:
|
||||||
|
packages:
|
||||||
|
- lzip
|
||||||
|
configure:
|
||||||
|
command: ./autogen.sh && ./configure --disable-gtk-doc
|
|
@ -1,5 +1,5 @@
|
||||||
sudo: false
|
sudo: false
|
||||||
dist: trusty
|
dist: xenial
|
||||||
|
|
||||||
language: c
|
language: c
|
||||||
|
|
||||||
|
@ -38,8 +38,10 @@ addons:
|
||||||
- valgrind
|
- valgrind
|
||||||
|
|
||||||
script:
|
script:
|
||||||
|
- set -e
|
||||||
|
- sed -i 's/dist-lzip//g' configure.ac
|
||||||
- ./autogen.sh
|
- ./autogen.sh
|
||||||
# CFI doesn't work out on Ubuntu 14.04 (Trusty). They dont't include LLVMgold.so for clang-3.8.
|
# CFI doesn't work out on Ubuntu 14.04 (Trusty). They don't include LLVMgold.so for clang-3.8.
|
||||||
# clang-3.4 doesn't know CFI yet.
|
# clang-3.4 doesn't know CFI yet.
|
||||||
# The only chance with Travis-CI is to switch to docker and use Ubuntu 16.04 or whatever.
|
# The only chance with Travis-CI is to switch to docker and use Ubuntu 16.04 or whatever.
|
||||||
# - if [[ $CC == "gcc" ]]; then CFI=""; else CFI="--enable-cfi"; fi
|
# - if [[ $CC == "gcc" ]]; then CFI=""; else CFI="--enable-cfi"; fi
|
||||||
|
|
4
AUTHORS
4
AUTHORS
|
@ -18,3 +18,7 @@ Giuseppe Scrivano
|
||||||
Ryan Sleevi (Discussion, Requested DAFSA format and ICANN/PRIVATE support)
|
Ryan Sleevi (Discussion, Requested DAFSA format and ICANN/PRIVATE support)
|
||||||
Daurnimator (Code review, discussion, reports)
|
Daurnimator (Code review, discussion, reports)
|
||||||
Olle Liljenzin (Original DAFSA implementation and UTF-8 patch)
|
Olle Liljenzin (Original DAFSA implementation and UTF-8 patch)
|
||||||
|
Claudio Saveedra (Add support for PSL_TYPE_NO_STAR_RULE)
|
||||||
|
Chun-wei Fan (Add NMake files)
|
||||||
|
Xavier Claessens (Add Meson build system)
|
||||||
|
Ignacio Casal Quinteiro (Improve Meson build)
|
||||||
|
|
2
COPYING
2
COPYING
|
@ -1,4 +1,4 @@
|
||||||
Copyright (C) 2014-2018 Tim Rühsen
|
Copyright (C) 2014-2022 Tim Rühsen
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
|
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
||||||
Copyright (C) 2014-2015 Tim Rühsen
|
Copyright (C) 2014-2022 Tim Rühsen
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
|
12
Makefile.am
12
Makefile.am
|
@ -1,6 +1,14 @@
|
||||||
# got some hints from https://gitorious.org/openismus-playground/examplelib/source
|
# got some hints from https://gitorious.org/openismus-playground/examplelib/source
|
||||||
|
|
||||||
SUBDIRS = po include src tools $(LIBPSL_DOCS) fuzz tests
|
SUBDIRS = po include src tools
|
||||||
|
if ENABLE_GTK_DOC
|
||||||
|
SUBDIRS += docs/libpsl
|
||||||
|
else
|
||||||
|
if ENABLE_MAN
|
||||||
|
SUBDIRS += docs/libpsl
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
SUBDIRS += fuzz tests msvc
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
|
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
|
||||||
|
|
||||||
|
@ -14,7 +22,7 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
pkgconfig_DATA = libpsl.pc
|
pkgconfig_DATA = libpsl.pc
|
||||||
|
|
||||||
EXTRA_DIST = config.rpath LICENSE
|
EXTRA_DIST = build-aux/config.rpath LICENSE meson.build meson_options.txt
|
||||||
dist-hook:
|
dist-hook:
|
||||||
mkdir -p $(distdir)/list/tests
|
mkdir -p $(distdir)/list/tests
|
||||||
cp -p $(PSL_FILE) $(distdir)/list
|
cp -p $(PSL_FILE) $(distdir)/list
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
USE_CLIB2=YES
|
||||||
|
ifeq ($(USE_CLIB2), YES)
|
||||||
|
LIBC=clib2
|
||||||
|
else
|
||||||
|
LIBC=newlib
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: build
|
||||||
|
|
||||||
|
init:
|
||||||
|
# git submodule update --init
|
||||||
|
sh ./autogen.sh
|
||||||
|
autoreconf --install --force --symlink
|
||||||
|
|
||||||
|
build: init
|
||||||
|
CC="ppc-amigaos-gcc" CFLAGS="-mcrt=${LIBC} -fPIC" CXXFLAGS="-mcrt=${LIBC} -fPIC" LDFlags="-mcrt=${LIBC}" LIBS="-lpthread -athread=native" ./configure --host=ppc-amigaos --enable-shared=no --enable-builtin --disable-runtime && \
|
||||||
|
make -j$(shell nproc)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@make -f Makefile clean
|
||||||
|
@rm -rf autom4te.cache .deps
|
||||||
|
@rm config.log config.status configure libtool Makefile Makefile.in *.m4
|
||||||
|
|
||||||
|
release:
|
||||||
|
@mkdir -p release/local/common/include
|
||||||
|
@mkdir -p release/local/clib2/lib
|
||||||
|
# @mkdir -p release/local/newlib/lib
|
||||||
|
@make -f Makefile.os4 USE_CLIB2=YES
|
||||||
|
@cp ./src/.libs/libpsl.a ./src/.libs/libpsl.lai ./src/libpsl.la release/local/clib2/lib/
|
||||||
|
@cp ./include/libpsl.h release/local/common/include/
|
||||||
|
# @make -f Makefile.os4 clean
|
||||||
|
# @make -f Makefile.os4 USE_CLIB2=NO
|
||||||
|
# @cp ./src/.libs/libpsl.a ./src/.libs/libpsl.lai ./src/libpsl.la release/local/newlib/lib/
|
||||||
|
@lha -aeq libpsl.lha release/
|
37
NEWS
37
NEWS
|
@ -1,4 +1,39 @@
|
||||||
Copyright (C) 2014-2018 Tim Rühsen
|
Copyright (C) 2014-2022 Tim Rühsen
|
||||||
|
|
||||||
|
26.12.2022 Release V0.21.2
|
||||||
|
* Increased internal label size
|
||||||
|
* Meson build improvements (needs meson >= 0.60.0)
|
||||||
|
* Autoconf build improvements
|
||||||
|
* Add instructions on how to build from tarball
|
||||||
|
* Add WSAStartup() for Windows psl tool and tests
|
||||||
|
* Bump gettext version to 0.19.3
|
||||||
|
* Fix stack buffer overflow WRITE 1 in domain_to_punycode()
|
||||||
|
(Relevant only when built without any IDNA library.)
|
||||||
|
* Fix undefined behavior in library code
|
||||||
|
* Ensures that calls to fopen() and stat() can handle largefiles
|
||||||
|
* Several minor (non-functional) changes
|
||||||
|
|
||||||
|
18.07.2020 Release V0.21.1
|
||||||
|
* Fixing a test due to recent changes in upstream PSL
|
||||||
|
* Meson build improvements
|
||||||
|
* Documentation cleanups
|
||||||
|
* Use semantic versioning for git tags
|
||||||
|
|
||||||
|
16.04.2019 Release V0.21.0
|
||||||
|
* Add -b/--batch to 'psl' to suppress printing the domain
|
||||||
|
* Add support for Meson build system
|
||||||
|
* Improve build system
|
||||||
|
* Improve Windows compatibility
|
||||||
|
* Remove NLS / gettext
|
||||||
|
* Several cleanups and cosmetics
|
||||||
|
|
||||||
|
26.04.2018 Release V0.20.2
|
||||||
|
* Fix non srcdir builds
|
||||||
|
* Add API decoration
|
||||||
|
* Fix for MSVC/Win32 builds
|
||||||
|
* Detection fallback from libidn2 to libcu, libidn
|
||||||
|
* Fix MinGW cross builds on Linux
|
||||||
|
* Add NMake Makefiles for Visual Studio builds
|
||||||
|
|
||||||
26.02.2018 Release V0.20.1
|
26.02.2018 Release V0.20.1
|
||||||
* Fix issue introduced with PSL_TYPE_NO_STAR_RULE in V0.20.0
|
* Fix issue introduced with PSL_TYPE_NO_STAR_RULE in V0.20.0
|
||||||
|
|
|
@ -0,0 +1,138 @@
|
||||||
|
Building libpsl with Visual Studio
|
||||||
|
==================================
|
||||||
|
|
||||||
|
Building libpsl for Windows using Visual Studio 2008 or later is
|
||||||
|
supported with NMake (from release tarballs) or Meson (from GIT
|
||||||
|
checkouts). The following sections will cover building libpsl with
|
||||||
|
these methods.
|
||||||
|
|
||||||
|
Currently, for builtin/runtime public suffix list (PSL) IDNA handling,
|
||||||
|
only ICU is supported for Visual Studio builds.
|
||||||
|
|
||||||
|
Using NMake (from a release tarball)
|
||||||
|
===========
|
||||||
|
You will need a Python 2.7.x or later installation in order to
|
||||||
|
complete the build successfully.
|
||||||
|
|
||||||
|
You will need the ICU (International Components for Unicode)
|
||||||
|
libraries, headers and DLLs, to build libpsl, unless both
|
||||||
|
DISABLE_BUILTIN=1 and DISABLE_RUNTIME=1 are passed into the NMake
|
||||||
|
command line as listed below.
|
||||||
|
|
||||||
|
You can also buid libpsl with libiconv and gettext support, please
|
||||||
|
see the options below for enabling such support.
|
||||||
|
|
||||||
|
In a Visual Studio command prompt which matches your desired
|
||||||
|
configuration (x86/Win32, x64 etc.),
|
||||||
|
go to $(srcroot)\msvc, and issue the following command:
|
||||||
|
|
||||||
|
nmake /f Makefile.vc CFG=[debug|release]
|
||||||
|
|
||||||
|
A 'test' target is provided to build the test programs, while a
|
||||||
|
'clean' target is provided to remove all the compiled and generated
|
||||||
|
files for the build. An 'install' target is provided to copy the
|
||||||
|
build PSL DLL, .lib and executables, as well as the related PDB files
|
||||||
|
and libpsl header, into appropriate locations under PREFIX (please see
|
||||||
|
below).
|
||||||
|
|
||||||
|
This will build the libpsl DLL/LIB and the psl.exe utility in the
|
||||||
|
vsX\$(CFG)\$(ARCH) subdirectory, where X is the release version
|
||||||
|
of Visual Studio, such as 9 for 2008 and 16 for 2019, and ARCH is
|
||||||
|
Win32 for 32-bit builds and x64 for 64-bit (x86_64) builds.
|
||||||
|
|
||||||
|
A number of options can be passed into the NMake command, as follows.
|
||||||
|
Enable by setting each option to 1, unless otherwise indicated:
|
||||||
|
|
||||||
|
* PSL_FILE: Location of the PSL data file, which is retrieved from
|
||||||
|
https://publicsuffix.org/list/public_suffix_list.dat,
|
||||||
|
or some other custom location (not supported). Default
|
||||||
|
is in $(srcroot)\list\public_suffix_list.dat. This is
|
||||||
|
needed to generate the suffixes_dafsa.h header required
|
||||||
|
for the build, as well as the binary and ascii dafsa
|
||||||
|
files used for the test programs.
|
||||||
|
|
||||||
|
* TEST_PSL_FILE: Location of the test PSL file. Default is in
|
||||||
|
$(srcroot)\list\tests\tests.txt. This is
|
||||||
|
required for building and running the test
|
||||||
|
programs.
|
||||||
|
|
||||||
|
* STATIC: Set if building static versions of libpsl is desired.
|
||||||
|
|
||||||
|
* USE_LIBTOOL_DLLNAME: Set to use libtool-style DLL naming.
|
||||||
|
|
||||||
|
* DISABLE_RUNTIME: Do not use ICU to generate runtime PSL data.
|
||||||
|
|
||||||
|
* DISABLE_BUILTIN: Do not use ICU to generate builtin PSL data.
|
||||||
|
|
||||||
|
* USE_ICONV: Enable libiconv support, requires libiconv.
|
||||||
|
|
||||||
|
* USE_GETTEXT: Enable gettext support for displaying i18n messages.
|
||||||
|
Implies USE_ICONV, and requires gettext-runtime.
|
||||||
|
|
||||||
|
* PYTHON: Full path to a Python 2.7.x (or later) interpreter, if not
|
||||||
|
already in your PATH.
|
||||||
|
Required to generate DAFSA headers and data files that is
|
||||||
|
needed for the build, as well as generating pkg-config
|
||||||
|
files for NMake builds.
|
||||||
|
|
||||||
|
* PREFIX: Base installation path of the build. Note that any dependent
|
||||||
|
libraries are searched first from the include\ and lib\
|
||||||
|
sub-directories in PREFIX before searching in the paths
|
||||||
|
specified by %INCLUDE% and %LIB%. Default is
|
||||||
|
$(srcroot)\..\vsX\$(PLATFORM), where X is the release version
|
||||||
|
of Visual Studio, such as 9 for 2008 and 16 for 2019,
|
||||||
|
$(PLATFORM) is the target platform (Win32/x64) of the build.
|
||||||
|
|
||||||
|
Building libpsl with Meson
|
||||||
|
==========================
|
||||||
|
Building using Meson is now supported for Visual Studio builds from a
|
||||||
|
GIT checkout.
|
||||||
|
|
||||||
|
Besides the requirements listed in the NMake builds, you will also need
|
||||||
|
|
||||||
|
* Python 3.5.x or later
|
||||||
|
* Meson build system, use PIP to install from Python 3.5.x64
|
||||||
|
* Ninja build tool (if not involking Meson with --backend=
|
||||||
|
vs[2010|2015|2017|2019])
|
||||||
|
* A compatible PSL data file and a test PSL data file. You may
|
||||||
|
consider using the ones shipped with the latest libpsl release
|
||||||
|
tarball and place the PSL data file in $(srcroot)/list and the
|
||||||
|
test PSL data file in $(srcroot)/list/tests. You may also choose
|
||||||
|
to download the latest PSL data file from
|
||||||
|
https://publicsuffix.org/list/public_suffix_list.dat and place it
|
||||||
|
it $(srcroot)/list. Alternatively, specify
|
||||||
|
-Dpsl_file=<path_to_psl_data_file> and/or
|
||||||
|
-Dpsl_testfile=<path_to_test_psl_data_file> when invoking Meson.
|
||||||
|
|
||||||
|
Open a Visual Studio command prompt and enter an empty build directory.
|
||||||
|
|
||||||
|
Your Python interpreter, Meson executable script and Ninja (if used)
|
||||||
|
need to be in your PATH.
|
||||||
|
|
||||||
|
Any dependent libraries that are being used should have their headers
|
||||||
|
found in paths specified by %INCLUDE% and their .lib files in the
|
||||||
|
paths specified by %LIB%.
|
||||||
|
|
||||||
|
In the empty build directory, run the following:
|
||||||
|
|
||||||
|
meson <path_to_libpsl_git_checkout> --buildtype=... --prefix=<some_prefix> [--backend=vs[2010|2015|2017|2019]]
|
||||||
|
|
||||||
|
Please see the Meson documentation for the values accepted by
|
||||||
|
--buildtype. --backend=vsXXXX generates the corresponding versions
|
||||||
|
of the Visual Studio solution files to build libpsl, which
|
||||||
|
will elimnate the need to have the Ninja build tool installed.
|
||||||
|
|
||||||
|
When the Meson configuration completes, run 'ninja' or open the
|
||||||
|
generated solution files with Visual Studio and build the projects
|
||||||
|
to carry out the build. Run 'ninja test' or the test project to
|
||||||
|
test the build and run 'ninja install' or 'ninja install' to
|
||||||
|
install the build results.
|
||||||
|
|
||||||
|
If building with Visual Studio 2008, run the following after running
|
||||||
|
'ninja install' in your builddir:
|
||||||
|
|
||||||
|
for /r %f in (*.dll.manifest) do if exist $(prefix)\bin\%~nf mt /manifest %f /outputresource:$(prefix)\bin\%~nf;2
|
||||||
|
|
||||||
|
for /r %f in (*.exe.manifest) do if exist $(prefix)\bin\%~nf mt /manifest %f /outputresource:$(prefix)\bin\%~nf;1
|
||||||
|
|
||||||
|
So that the application manifests get properly embedded.
|
33
README.md
33
README.md
|
@ -39,9 +39,9 @@ Libpsl...
|
||||||
|
|
||||||
Find more information about the Public Suffix List [here](https://publicsuffix.org/).
|
Find more information about the Public Suffix List [here](https://publicsuffix.org/).
|
||||||
|
|
||||||
Download the Public Suffix List [here](https://hg.mozilla.org/mozilla-central/raw-file/tip/netwerk/dns/effective_tld_names.dat).
|
Download the Public Suffix List [here](https://github.com/publicsuffix/list/blob/master/public_suffix_list.dat).
|
||||||
|
|
||||||
The DAFSA code has been taken from [Chromium Project](https://code.google.com/p/chromium/).
|
The original DAFSA code is from the [Chromium Project](https://code.google.com/p/chromium/).
|
||||||
|
|
||||||
|
|
||||||
API Documentation
|
API Documentation
|
||||||
|
@ -106,6 +106,24 @@ See the LICENSE file that accompanies this distribution for the full text of the
|
||||||
src/psl-make-dafsa and src/lookup_string_in_fixed_set.c are licensed under the term written in
|
src/psl-make-dafsa and src/lookup_string_in_fixed_set.c are licensed under the term written in
|
||||||
src/LICENSE.chromium.
|
src/LICENSE.chromium.
|
||||||
|
|
||||||
|
Building from tarball
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Choose a release from https://github.com/rockdaboot/libpsl/tags an download the tarball
|
||||||
|
named `libpsl-{version}.tar.*`. Unpack with `tar xf <filename>`, cd into the libsl* directory.
|
||||||
|
|
||||||
|
Build with
|
||||||
|
```
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
make check
|
||||||
|
```
|
||||||
|
|
||||||
|
Install with
|
||||||
|
```
|
||||||
|
sudo make install
|
||||||
|
```
|
||||||
|
|
||||||
Building from git
|
Building from git
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
@ -119,11 +137,20 @@ Download project and prepare sources with
|
||||||
make
|
make
|
||||||
make check
|
make check
|
||||||
|
|
||||||
|
If you prefer a `meson` build
|
||||||
|
|
||||||
|
meson builddir
|
||||||
|
ninja -C builddir
|
||||||
|
ninja -C builddir test
|
||||||
|
|
||||||
|
There is also an unofficial MSVC nmake build configuration in `msvc/`. Please
|
||||||
|
see README.MSVC.md on building libpsl with Visual Studio via NMake or Meson.
|
||||||
|
|
||||||
|
|
||||||
Mailing List
|
Mailing List
|
||||||
------------
|
------------
|
||||||
|
|
||||||
[Mailing List Archive](http://news.gmane.org/gmane.network.dns.libpsl.bugs)
|
[Mailing List Archive](https://groups.google.com/forum/#!forum/libpsl-bugs)
|
||||||
|
|
||||||
[Mailing List](https://groups.google.com/forum/#!forum/libpsl-bugs)
|
[Mailing List](https://groups.google.com/forum/#!forum/libpsl-bugs)
|
||||||
|
|
||||||
|
|
231
configure.ac
231
configure.ac
|
@ -1,7 +1,7 @@
|
||||||
|
AC_INIT([libpsl],[m4_normalize(m4_include(version.txt))],[tim.ruehsen@gmx.de],[libpsl],[https://github.com/rockdaboot/libpsl])
|
||||||
AC_INIT([libpsl], [0.20.1], [tim.ruehsen@gmx.de], [libpsl], [https://github.com/rockdaboot/libpsl])
|
|
||||||
AC_PREREQ([2.59])
|
AC_PREREQ([2.59])
|
||||||
AM_INIT_AUTOMAKE([1.10 no-define foreign])
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
|
AM_INIT_AUTOMAKE([1.10 no-define foreign dist-lzip])
|
||||||
|
|
||||||
# Generate two configuration headers; one for building the library itself with
|
# Generate two configuration headers; one for building the library itself with
|
||||||
# an autogenerated template, and a second one that will be installed alongside
|
# an autogenerated template, and a second one that will be installed alongside
|
||||||
|
@ -10,13 +10,18 @@ AC_CONFIG_HEADERS([config.h])
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
|
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
|
||||||
#LT_INIT([disable-static])
|
#LT_INIT([disable-static])
|
||||||
LT_INIT
|
LT_INIT([win32-dll])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
|
|
||||||
|
AC_SYS_LARGEFILE
|
||||||
|
|
||||||
dnl Check that compiler understands inline
|
dnl Check that compiler understands inline
|
||||||
AC_C_INLINE
|
AC_C_INLINE
|
||||||
|
|
||||||
|
dnl Check for visibility support
|
||||||
|
gl_VISIBILITY
|
||||||
|
|
||||||
#
|
#
|
||||||
# Generate version defines for include file
|
# Generate version defines for include file
|
||||||
#
|
#
|
||||||
|
@ -30,7 +35,8 @@ AC_CONFIG_FILES([include/libpsl.h])
|
||||||
# Gettext
|
# Gettext
|
||||||
#
|
#
|
||||||
AM_GNU_GETTEXT([external],[need-ngettext])
|
AM_GNU_GETTEXT([external],[need-ngettext])
|
||||||
AM_GNU_GETTEXT_VERSION([0.18.1])
|
AM_GNU_GETTEXT_VERSION([0.19.3])
|
||||||
|
AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.3])
|
||||||
|
|
||||||
#
|
#
|
||||||
# check for gtk-doc
|
# check for gtk-doc
|
||||||
|
@ -46,43 +52,42 @@ AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], false)
|
||||||
])
|
])
|
||||||
|
|
||||||
if test x"$have_gtk_doc" = xyes -a x"$enable_gtk_doc" = xyes; then
|
if test x"$have_gtk_doc" = xyes -a x"$enable_gtk_doc" = xyes; then
|
||||||
AC_CONFIG_FILES([docs/libpsl/Makefile docs/libpsl/version.xml])
|
|
||||||
AC_SUBST([LIBPSL_DOCS], [docs/libpsl])
|
AC_SUBST([LIBPSL_DOCS], [docs/libpsl])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# enable creation of man pages
|
# enable creation of man pages
|
||||||
#
|
#
|
||||||
AC_ARG_ENABLE(man,[AC_HELP_STRING([--enable-man],
|
AC_ARG_ENABLE([man],
|
||||||
[generate man pages [default=auto]])],enable_man=yes,enable_man=no)
|
[AS_HELP_STRING([--enable-man], [generate man pages [default=auto]])],
|
||||||
AS_IF([test "$enable_man" != no], [
|
[
|
||||||
|
if test "$enable_man" = yes; then
|
||||||
AC_PATH_PROG([XSLTPROC], [xsltproc])
|
AC_PATH_PROG([XSLTPROC], [xsltproc])
|
||||||
AS_IF([test -z "$XSLTPROC"], [
|
AS_IF([test -z "$XSLTPROC"], [
|
||||||
AS_IF([test "$enable_man" = yes], [
|
|
||||||
AC_MSG_ERROR([xsltproc is required for --enable-man])
|
AC_MSG_ERROR([xsltproc is required for --enable-man])
|
||||||
|
enable_man="no (xsltproc not found)"
|
||||||
])
|
])
|
||||||
enable_man=no
|
fi
|
||||||
])
|
], [ enable_man=no ])
|
||||||
])
|
AM_CONDITIONAL(ENABLE_MAN, test x$enable_man = xyes)
|
||||||
AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
|
|
||||||
AC_MSG_CHECKING([whether to generate man pages])
|
|
||||||
AS_IF([ test "$enable_man" != no ], [
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
], [
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
])
|
|
||||||
|
|
||||||
# src/psl-make-dafsa needs python 2.7+
|
# src/psl-make-dafsa needs python 2.7+
|
||||||
AM_PATH_PYTHON([2.7])
|
AM_PATH_PYTHON([2.7])
|
||||||
|
|
||||||
PKG_PROG_PKG_CONFIG
|
PKG_PROG_PKG_CONFIG
|
||||||
|
|
||||||
cfi=no
|
AC_ARG_ENABLE([fuzzing],
|
||||||
|
[AS_HELP_STRING([--enable-fuzzing], [Turn on fuzzing build (for developers)])],
|
||||||
|
[enable_fuzzing=yes;
|
||||||
|
AC_SUBST([LIB_FUZZING_ENGINE])
|
||||||
|
AC_DEFINE([FUZZING], 1, [Define to 1 if this is a fuzzing build])
|
||||||
|
], [enable_fuzzing=no; LIB_FUZZING_ENGINE=""])
|
||||||
|
AM_CONDITIONAL([FUZZING], [test "$enable_fuzzing" = "yes"])
|
||||||
|
|
||||||
AC_ARG_ENABLE([cfi],
|
AC_ARG_ENABLE([cfi],
|
||||||
[AS_HELP_STRING([--enable-cfi], [Turn on clang's Control Flow Integrity (CFI)])],
|
[AS_HELP_STRING([--enable-cfi], [Turn on clang's Control Flow Integrity (CFI)])],
|
||||||
[
|
[
|
||||||
if test "$enableval" = yes; then
|
if test "$enable_cfi" = yes; then
|
||||||
cfi=yes
|
|
||||||
CFLAGS=$CFLAGS" -B/usr/bin/gold -fsanitize=cfi -flto -fvisibility=default -fno-sanitize-trap=all"
|
CFLAGS=$CFLAGS" -B/usr/bin/gold -fsanitize=cfi -flto -fvisibility=default -fno-sanitize-trap=all"
|
||||||
AC_LINK_IFELSE([
|
AC_LINK_IFELSE([
|
||||||
AC_LANG_PROGRAM([], [])
|
AC_LANG_PROGRAM([], [])
|
||||||
|
@ -90,30 +95,28 @@ AC_ARG_ENABLE([cfi],
|
||||||
AC_MSG_ERROR([clang 3.7+ and the 'gold' linker are required for --enable-cfi])
|
AC_MSG_ERROR([clang 3.7+ and the 'gold' linker are required for --enable-cfi])
|
||||||
])
|
])
|
||||||
fi
|
fi
|
||||||
])
|
], [ enable_cfi=no ])
|
||||||
|
|
||||||
ubsan=no
|
|
||||||
AC_ARG_ENABLE([ubsan],
|
AC_ARG_ENABLE([ubsan],
|
||||||
[AS_HELP_STRING([--enable-ubsan], [Turn on Undefined Behavior Sanitizer (UBSan)])],
|
[AS_HELP_STRING([--enable-ubsan], [Turn on Undefined Behavior Sanitizer (UBSan)])],
|
||||||
[
|
[
|
||||||
if test "$enableval" = yes; then
|
if test "$enable_ubsan" = yes; then
|
||||||
ubsan=yes
|
# Set basic UBSAN compiler flags. Add your own to CFLAGS.
|
||||||
CFLAGS=$CFLAGS" -fsanitize=undefined -fno-sanitize-recover=undefined"
|
CFLAGS=$CFLAGS" -fsanitize=undefined -fno-sanitize-recover=undefined"
|
||||||
fi
|
fi
|
||||||
])
|
], [ enable_ubsan=no ])
|
||||||
|
|
||||||
asan=no
|
|
||||||
AC_ARG_ENABLE([asan],
|
AC_ARG_ENABLE([asan],
|
||||||
[AS_HELP_STRING([--enable-asan], [Turn on Address Sanitizer (ASan)])],
|
[AS_HELP_STRING([--enable-asan], [Turn on Address Sanitizer (ASan)])],
|
||||||
[
|
[
|
||||||
if test "$enableval" = yes; then
|
if test "$enable_asan" = yes; then
|
||||||
asan=yes
|
# Set basic ASAN compiler flags. Add your own to CFLAGS.
|
||||||
CFLAGS=$CFLAGS" -fsanitize=address -fno-omit-frame-pointer"
|
CFLAGS=$CFLAGS" -fsanitize=address -fno-omit-frame-pointer"
|
||||||
AX_CHECK_COMPILE_FLAG([-fsanitize-address-use-after-scope], [CFLAGS="$CFLAGS -fsanitize-address-use-after-scope"])
|
AX_CHECK_COMPILE_FLAG([-fsanitize-address-use-after-scope], [CFLAGS="$CFLAGS -fsanitize-address-use-after-scope"])
|
||||||
fi
|
fi
|
||||||
])
|
], [ enable_asan=no ])
|
||||||
|
|
||||||
# Define these substitions here to keep all version information in one place.
|
# Define these substitutions here to keep all version information in one place.
|
||||||
# For information on how to properly maintain the library version information,
|
# For information on how to properly maintain the library version information,
|
||||||
# refer to the libtool manual, section "Updating library version information":
|
# refer to the libtool manual, section "Updating library version information":
|
||||||
# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
|
# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
|
||||||
|
@ -124,10 +127,10 @@ AC_ARG_ENABLE([asan],
|
||||||
# 4. If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0.
|
# 4. If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0.
|
||||||
# 5. If any interfaces have been added since the last public release, then increment age.
|
# 5. If any interfaces have been added since the last public release, then increment age.
|
||||||
# 6. If any existing interfaces have been removed or changed since the last public release, then set age to 0.
|
# 6. If any existing interfaces have been removed or changed since the last public release, then set age to 0.
|
||||||
AC_SUBST([LIBPSL_SO_VERSION], [8:0:3])
|
AC_SUBST([LIBPSL_SO_VERSION], m4_normalize(m4_include([libtool_version_info.txt])))
|
||||||
AC_SUBST([LIBPSL_VERSION], $VERSION)
|
AC_SUBST([LIBPSL_VERSION], $VERSION)
|
||||||
|
|
||||||
# Check for enable/disable builtin PSL data
|
# Check for enable/disable runtime PSL data
|
||||||
AC_ARG_ENABLE(runtime,
|
AC_ARG_ENABLE(runtime,
|
||||||
[
|
[
|
||||||
--enable-runtime[[=IDNA library]]
|
--enable-runtime[[=IDNA library]]
|
||||||
|
@ -153,29 +156,20 @@ AC_ARG_ENABLE(runtime,
|
||||||
fi
|
fi
|
||||||
], [
|
], [
|
||||||
# this is the default if neither --enable-runtime nor --disable-runtime were specified
|
# this is the default if neither --enable-runtime nor --disable-runtime were specified
|
||||||
enable_runtime=libidn2
|
enable_runtime=auto
|
||||||
AC_DEFINE([WITH_LIBIDN2], [1], [generate PSL data using libidn2])
|
|
||||||
])
|
])
|
||||||
|
|
||||||
# Check for enable/disable builtin PSL data
|
# Check for enable/disable builtin PSL data
|
||||||
AC_ARG_ENABLE(builtin,
|
AC_ARG_ENABLE(builtin,
|
||||||
[
|
[
|
||||||
--enable-builtin[[=IDNA library]]
|
--enable-builtin Generate built-in PSL data
|
||||||
Specify the IDNA library used for built-in data generation:
|
|
||||||
libidn2 [[default]]: IDNA2008 library (also needs libunistring)
|
|
||||||
libicu: IDNA2008 UTS#46 library
|
|
||||||
libidn: IDNA2003 library (also needs libunistring)
|
|
||||||
--disable-builtin Do not generate built-in PSL data
|
--disable-builtin Do not generate built-in PSL data
|
||||||
], [
|
], [
|
||||||
if test "$enableval" = "libidn2" -o "$enableval" = "yes"; then
|
if test "$enableval" = "yes"; then
|
||||||
enable_builtin=libidn2
|
enable_builtin=yes
|
||||||
AC_DEFINE([BUILTIN_GENERATOR_LIBIDN2], [1], [generate PSL data using libidn2])
|
elif test "$enableval" = "libidn" -o "$enableval" = "libidn2" -o "$enableval" = "libicu"; then
|
||||||
elif test "$enableval" = "libicu"; then
|
AC_MSG_WARN([--enable-builtin=$enableval is deprecated, use --enable-builtin (enabled by default)])
|
||||||
enable_builtin=libicu
|
enable_builtin=yes
|
||||||
AC_DEFINE([BUILTIN_GENERATOR_LIBICU], [1], [generate PSL data using libicu])
|
|
||||||
elif test "$enableval" = "libidn"; then
|
|
||||||
enable_builtin=libidn
|
|
||||||
AC_DEFINE([BUILTIN_GENERATOR_LIBIDN], [1], [generate PSL data using libidn])
|
|
||||||
elif test "$enableval" = "no"; then
|
elif test "$enableval" = "no"; then
|
||||||
enable_builtin=no
|
enable_builtin=no
|
||||||
else
|
else
|
||||||
|
@ -183,17 +177,46 @@ AC_ARG_ENABLE(builtin,
|
||||||
fi
|
fi
|
||||||
], [
|
], [
|
||||||
# this is the default if neither --enable-builtin nor --disable-builtin were specified
|
# this is the default if neither --enable-builtin nor --disable-builtin were specified
|
||||||
enable_builtin=libidn2
|
enable_builtin=yes
|
||||||
AC_DEFINE([BUILTIN_GENERATOR_LIBIDN2], [1], [generate PSL data using libidn2])
|
|
||||||
])
|
])
|
||||||
|
|
||||||
if test "$enable_runtime" = "libicu" -o "$enable_builtin" = "libicu"; then
|
if test "$enable_builtin" = "yes"; then
|
||||||
|
AC_DEFINE([ENABLE_BUILTIN], [1], [Generate built-in PSL data])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_runtime" = "libidn2" -o "$enable_runtime" = "auto"; then
|
||||||
|
# Check for libidn2
|
||||||
|
PKG_CHECK_MODULES([LIBIDN2], [libidn2], [
|
||||||
|
HAVE_LIBIDN2=yes
|
||||||
|
if test "$enable_runtime" = "libidn2" -o "$enable_runtime" = "auto"; then
|
||||||
|
LIBS="$LIBIDN2_LIBS $LIBS"
|
||||||
|
CFLAGS="$LIBIDN2_CFLAGS $CFLAGS"
|
||||||
|
fi
|
||||||
|
], [
|
||||||
|
AC_SEARCH_LIBS(idn2_lookup_u8, idn2, HAVE_LIBIDN2=yes,
|
||||||
|
[
|
||||||
|
if test "$enable_runtime" = "libidn2"; then
|
||||||
|
AC_MSG_ERROR(You requested libidn2 but it is not installed.)
|
||||||
|
fi
|
||||||
|
], -lunistring)
|
||||||
|
])
|
||||||
|
|
||||||
|
if test "x$HAVE_LIBIDN2" = "xyes"; then
|
||||||
|
if test "$enable_runtime" = "auto"; then
|
||||||
|
enable_runtime=libidn2
|
||||||
|
AC_DEFINE([WITH_LIBIDN2], [1], [generate PSL data using libidn2])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_runtime" = "libicu" -o "$enable_runtime" = "auto"; then
|
||||||
# Check for libicu
|
# Check for libicu
|
||||||
# using pkg-config won't work on older systems like Ubuntu 12.04 LTS Server Edition 64bit
|
# using pkg-config won't work on older systems like Ubuntu 12.04 LTS Server Edition 64bit
|
||||||
# using AC_SEARCH_LIBS also don't work since functions have the library version appended
|
# using AC_SEARCH_LIBS also don't work since functions have the library version appended
|
||||||
PKG_CHECK_MODULES([LIBICU], [icu-uc], [
|
PKG_CHECK_MODULES([LIBICU], [icu-uc], [
|
||||||
HAVE_LIBICU=yes
|
HAVE_LIBICU=yes
|
||||||
if test "$enable_runtime" = "libicu"; then
|
if test "$enable_runtime" = "libicu" -o "$enable_runtime" = "auto"; then
|
||||||
|
LIBS="$LIBICU_LIBS $LIBS"
|
||||||
CFLAGS="$LIBICU_CFLAGS $CFLAGS"
|
CFLAGS="$LIBICU_CFLAGS $CFLAGS"
|
||||||
fi
|
fi
|
||||||
], [
|
], [
|
||||||
|
@ -205,44 +228,55 @@ if test "$enable_runtime" = "libicu" -o "$enable_builtin" = "libicu"; then
|
||||||
[[#include <unicode/ustring.h>]],
|
[[#include <unicode/ustring.h>]],
|
||||||
[[u_strToUTF8(NULL, 0, NULL, NULL, 0, NULL);]])],
|
[[u_strToUTF8(NULL, 0, NULL, NULL, 0, NULL);]])],
|
||||||
[HAVE_LIBICU=yes; LIBICU_LIBS="-licuuc"; AC_MSG_RESULT([yes])],
|
[HAVE_LIBICU=yes; LIBICU_LIBS="-licuuc"; AC_MSG_RESULT([yes])],
|
||||||
[AC_MSG_RESULT([no]); AC_MSG_ERROR(You requested libicu but it is not installed.)])
|
[ AC_MSG_RESULT([no]);
|
||||||
LIBS=$OLDLIBS
|
if test "$enable_runtime" = "libicu"; then
|
||||||
])
|
AC_MSG_ERROR(You requested libicu but it is not installed.)
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$enable_runtime" = "libidn2" -o "$enable_builtin" = "libidn2"; then
|
|
||||||
# Check for libidn2
|
|
||||||
PKG_CHECK_MODULES([LIBIDN2], [libidn2], [
|
|
||||||
HAVE_LIBIDN2=yes
|
|
||||||
if test "$enable_runtime" = "libidn2"; then
|
|
||||||
CFLAGS="$LIBIDN2_CFLAGS $CFLAGS"
|
|
||||||
fi
|
fi
|
||||||
], [
|
|
||||||
OLDLIBS=$LIBS
|
|
||||||
AC_SEARCH_LIBS(idn2_lookup_u8, idn2, HAVE_LIBIDN2=yes, AC_MSG_ERROR(You requested libidn2 but it is not installed.), -lunistring)
|
|
||||||
LIBS=$OLDLIBS
|
LIBS=$OLDLIBS
|
||||||
])
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
if test "x$HAVE_LIBICU" = "xyes"; then
|
||||||
|
if test "$enable_runtime" = "auto"; then
|
||||||
|
enable_runtime=libicu
|
||||||
|
AC_DEFINE([WITH_LIBICU], [1], [generate PSL data using libicu])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$enable_runtime" = "libidn" -o "$enable_builtin" = "libidn"; then
|
if test "$enable_runtime" = "libidn" -o "$enable_runtime" = "auto"; then
|
||||||
# Check for libidn
|
# Check for libidn
|
||||||
PKG_CHECK_MODULES([LIBIDN], [libidn], [
|
PKG_CHECK_MODULES([LIBIDN], [libidn], [
|
||||||
HAVE_LIBIDN2=yes
|
HAVE_LIBIDN=yes
|
||||||
if test "$enable_runtime" = "libidn"; then
|
if test "$enable_runtime" = "libidn" -o "$enable_runtime" = "auto"; then
|
||||||
|
LIBS="$LIBIDN_LIBS $LIBS"
|
||||||
CFLAGS="$LIBIDN_CFLAGS $CFLAGS"
|
CFLAGS="$LIBIDN_CFLAGS $CFLAGS"
|
||||||
fi
|
fi
|
||||||
], [
|
], [
|
||||||
OLDLIBS=$LIBS
|
AC_SEARCH_LIBS(idna_to_ascii_8z, idn, HAVE_LIBIDN=yes,
|
||||||
AC_SEARCH_LIBS(idna_to_ascii_8z, idn, HAVE_LIBIDN=yes, AC_MSG_ERROR(You requested libidn but it is not installed.))
|
[
|
||||||
LIBS=$OLDLIBS
|
if test "$enable_runtime" = "libidn"; then
|
||||||
|
AC_MSG_ERROR(You requested libidn but it is not installed.)
|
||||||
|
fi
|
||||||
])
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
if test "x$HAVE_LIBIDN" = "xyes"; then
|
||||||
|
if test "$enable_runtime" = "auto"; then
|
||||||
|
enable_runtime=libidn
|
||||||
|
AC_DEFINE([WITH_LIBIDN], [1], [generate PSL data using libidn])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# last fallback is noruntime/nobuiltin
|
||||||
|
if test "$enable_runtime" = "auto"; then
|
||||||
|
enable_runtime=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$HAVE_LIBIDN2" = "xyes" -o "x$HAVE_LIBIDN" = "xyes"; then
|
if test "x$HAVE_LIBIDN2" = "xyes" -o "x$HAVE_LIBIDN" = "xyes"; then
|
||||||
# Check for libunistring, we need it for psl_str_to_utf8lower()
|
# Check for libunistring, we need it for psl_str_to_utf8lower()
|
||||||
OLDLIBS=$LIBS
|
|
||||||
AC_SEARCH_LIBS(u8_tolower, unistring, HAVE_UNISTRING=yes, AC_MSG_ERROR(You requested libidn2|libidn but libunistring is not installed.))
|
AC_SEARCH_LIBS(u8_tolower, unistring, HAVE_UNISTRING=yes, AC_MSG_ERROR(You requested libidn2|libidn but libunistring is not installed.))
|
||||||
LIBS=$OLDLIBS
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# AM_ICONV sets @LIBICONV@ and @LTLIBICONV@ for use in Makefile.am
|
# AM_ICONV sets @LIBICONV@ and @LTLIBICONV@ for use in Makefile.am
|
||||||
|
@ -252,10 +286,7 @@ AM_ICONV
|
||||||
AM_CONDITIONAL([WITH_LIBICU], test "x$enable_runtime" = "xlibicu")
|
AM_CONDITIONAL([WITH_LIBICU], test "x$enable_runtime" = "xlibicu")
|
||||||
AM_CONDITIONAL([WITH_LIBIDN2], test "x$enable_runtime" = "xlibidn2")
|
AM_CONDITIONAL([WITH_LIBIDN2], test "x$enable_runtime" = "xlibidn2")
|
||||||
AM_CONDITIONAL([WITH_LIBIDN], test "x$enable_runtime" = "xlibidn")
|
AM_CONDITIONAL([WITH_LIBIDN], test "x$enable_runtime" = "xlibidn")
|
||||||
AM_CONDITIONAL([BUILTIN_GENERATOR_LIBICU], test "x$enable_builtin" = "xlibicu")
|
AM_CONDITIONAL([ENABLE_BUILTIN], test "x$enable_builtin" = "xyes")
|
||||||
AM_CONDITIONAL([BUILTIN_GENERATOR_LIBIDN2], test "x$enable_builtin" = "xlibidn2")
|
|
||||||
AM_CONDITIONAL([BUILTIN_GENERATOR_LIBIDN], test "x$enable_builtin" = "xlibidn")
|
|
||||||
AM_CONDITIONAL([WITH_BUILTIN], test $enable_builtin = yes)
|
|
||||||
|
|
||||||
# Solaris has socket in libsocket and inet_ntop in libnsl, but also needs libsocket, so the order is important here
|
# Solaris has socket in libsocket and inet_ntop in libnsl, but also needs libsocket, so the order is important here
|
||||||
AC_CHECK_LIB([socket], [socket], [NEEDS_SOCKET=yes], [])
|
AC_CHECK_LIB([socket], [socket], [NEEDS_SOCKET=yes], [])
|
||||||
|
@ -268,6 +299,19 @@ elif test -n "$NEEDS_SOCKET" ; then
|
||||||
LIBS="$LIBS -lsocket"
|
LIBS="$LIBS -lsocket"
|
||||||
elif test -n "$NEEDS_NSL" ; then
|
elif test -n "$NEEDS_NSL" ; then
|
||||||
LIBS="$LIBS -lnsl"
|
LIBS="$LIBS -lnsl"
|
||||||
|
else
|
||||||
|
# Platform dependant options
|
||||||
|
case "${host_os}" in
|
||||||
|
# MinGW / Windows
|
||||||
|
*mingw*)
|
||||||
|
# Select Windows NT/2000 and later, for WSAStringToAddressW()
|
||||||
|
CPPFLAGS="$CPPFLAGS -D_WIN32_WINNT=0x500"
|
||||||
|
# Needed for network support
|
||||||
|
LIBS="$LIBS -lws2_32"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for clock_gettime() used for performance measurement
|
# Check for clock_gettime() used for performance measurement
|
||||||
|
@ -295,26 +339,32 @@ fi
|
||||||
|
|
||||||
# Check for distribution-wide PSL file
|
# Check for distribution-wide PSL file
|
||||||
AC_ARG_WITH(psl-distfile,
|
AC_ARG_WITH(psl-distfile,
|
||||||
AC_HELP_STRING([--with-psl-distfile=[PATH]], [path to distribution-wide PSL file]),
|
AS_HELP_STRING([--with-psl-distfile=[PATH]], [path to distribution-wide PSL file]),
|
||||||
PSL_DISTFILE=$withval AC_SUBST(PSL_DISTFILE))
|
PSL_DISTFILE=$withval AC_SUBST(PSL_DISTFILE))
|
||||||
|
|
||||||
# Check for custom PSL file
|
# Check for custom PSL file
|
||||||
AC_ARG_WITH(psl-file,
|
AC_ARG_WITH(psl-file,
|
||||||
AC_HELP_STRING([--with-psl-file=[PATH]], [path to PSL file]),
|
AS_HELP_STRING([--with-psl-file=[PATH]], [path to PSL file]),
|
||||||
PSL_FILE=$withval,
|
PSL_FILE=$withval,
|
||||||
PSL_FILE="\$(top_srcdir)/list/public_suffix_list.dat")
|
PSL_FILE="\$(top_srcdir)/list/public_suffix_list.dat")
|
||||||
AC_SUBST(PSL_FILE)
|
AC_SUBST(PSL_FILE)
|
||||||
|
|
||||||
# Check for custom PSL test file
|
# Check for custom PSL test file
|
||||||
AC_ARG_WITH(psl-testfile,
|
AC_ARG_WITH(psl-testfile,
|
||||||
AC_HELP_STRING([--with-psl-testfile=[PATH]], [path to PSL test file]),
|
AS_HELP_STRING([--with-psl-testfile=[PATH]], [path to PSL test file]),
|
||||||
PSL_TESTFILE=$withval,
|
PSL_TESTFILE=$withval,
|
||||||
PSL_TESTFILE="\$(top_srcdir)/list/tests/tests.txt")
|
PSL_TESTFILE="\$(top_srcdir)/list/tests/tests.txt")
|
||||||
AC_SUBST(PSL_TESTFILE)
|
AC_SUBST(PSL_TESTFILE)
|
||||||
|
|
||||||
# check for alloca / alloca.h
|
# check for alloca / alloca.h
|
||||||
AC_FUNC_ALLOCA
|
AC_FUNC_ALLOCA
|
||||||
AC_CHECK_FUNCS([strndup clock_gettime])
|
AC_CHECK_FUNCS([strndup clock_gettime fmemopen nl_langinfo])
|
||||||
|
|
||||||
|
# check for dirent.h
|
||||||
|
AC_HEADER_DIRENT
|
||||||
|
|
||||||
|
# strings.h may not exist on WIN32
|
||||||
|
AC_CHECK_HEADERS([strings.h])
|
||||||
|
|
||||||
# Override the template file name of the generated .pc file, so that there
|
# Override the template file name of the generated .pc file, so that there
|
||||||
# is no need to rename the template file when the API version changes.
|
# is no need to rename the template file when the API version changes.
|
||||||
|
@ -325,7 +375,11 @@ AC_CONFIG_FILES([Makefile
|
||||||
po/Makefile.in
|
po/Makefile.in
|
||||||
fuzz/Makefile
|
fuzz/Makefile
|
||||||
tests/Makefile
|
tests/Makefile
|
||||||
libpsl.pc:libpsl.pc.in])
|
docs/libpsl/Makefile docs/libpsl/version.xml
|
||||||
|
libpsl.pc:libpsl.pc.in
|
||||||
|
msvc/Makefile
|
||||||
|
msvc/config.h.win32
|
||||||
|
msvc/config-msvc.mak])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
AC_MSG_NOTICE([Summary of build options:
|
AC_MSG_NOTICE([Summary of build options:
|
||||||
|
@ -342,6 +396,9 @@ AC_MSG_NOTICE([Summary of build options:
|
||||||
PSL Dist File: ${PSL_DISTFILE}
|
PSL Dist File: ${PSL_DISTFILE}
|
||||||
PSL File: ${PSL_FILE}
|
PSL File: ${PSL_FILE}
|
||||||
PSL Test File: ${PSL_TESTFILE}
|
PSL Test File: ${PSL_TESTFILE}
|
||||||
Sanitizers: UBSan $ubsan, ASan $asan, CFI $cfi
|
Sanitizers: UBSan $enable_ubsan, ASan $enable_asan, CFI $enable_cfi
|
||||||
|
Docs: $enable_gtk_doc
|
||||||
|
Man pages: $enable_man
|
||||||
Tests: ${TESTS_INFO}
|
Tests: ${TESTS_INFO}
|
||||||
|
Fuzzing build: $enable_fuzzing, $LIB_FUZZING_ENGINE
|
||||||
])
|
])
|
||||||
|
|
|
@ -37,10 +37,10 @@ for CC in gcc clang; do
|
||||||
rm -f $CACHEFILE
|
rm -f $CACHEFILE
|
||||||
|
|
||||||
for options in \
|
for options in \
|
||||||
"--enable-runtime=libicu --enable-builtin=libicu" \
|
"--enable-runtime=libicu" \
|
||||||
"--enable-runtime=libidn2 --enable-builtin=libidn2" \
|
"--enable-runtime=libidn2" \
|
||||||
"--enable-runtime=libidn --enable-builtin=libidn" \
|
"--enable-runtime=libidn" \
|
||||||
"--disable-runtime --enable-builtin=libicu"; do
|
"--disable-runtime"; do
|
||||||
export DISTCHECK_CONFIGURE_FLAGS="-q -C --cache-file=$CACHEFILE $options"
|
export DISTCHECK_CONFIGURE_FLAGS="-q -C --cache-file=$CACHEFILE $options"
|
||||||
if test "$CC" = "clang"; then
|
if test "$CC" = "clang"; then
|
||||||
echo
|
echo
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Do some checking before 'git push'.
|
||||||
|
|
||||||
|
# Set a stricter bash mode
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
|
||||||
|
# We define _GNU_SOURCE to avoid warnings with missing prototypes.
|
||||||
|
# C89 does not know snprintf, strdup, strndup, popen, pclose
|
||||||
|
export CFLAGS="-std=gnu89 -pedantic -g -Wall -Wextra -Wstrict-prototypes -Wold-style-definition -Wwrite-strings -Wshadow -Wformat -Wformat-security -Wunreachable-code -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition"
|
||||||
|
|
||||||
|
ASAN_FLAGS="-fsanitize=address -fno-omit-frame-pointer -fsanitize-address-use-after-scope"
|
||||||
|
|
||||||
|
# measure time consumed and print it at the end of the script
|
||||||
|
START=$(date +%s.%N)
|
||||||
|
|
||||||
|
for CC in clang gcc; do
|
||||||
|
export CC
|
||||||
|
echo
|
||||||
|
echo "*** Testing with CC=$CC"
|
||||||
|
|
||||||
|
for options in \
|
||||||
|
"-Dbuiltin=libicu -Druntime=libicu" \
|
||||||
|
"-Dbuiltin=libidn2 -Druntime=libidn2" \
|
||||||
|
"-Dbuiltin=libidn -Druntime=libidn" \
|
||||||
|
"-Dbuiltin=no -Druntime=no"; do
|
||||||
|
|
||||||
|
# normal build+check+valgrind-check
|
||||||
|
echo
|
||||||
|
echo " *** $options"
|
||||||
|
rm -rf builddir
|
||||||
|
meson builddir $options
|
||||||
|
cd builddir
|
||||||
|
ninja
|
||||||
|
for xLCALL in C tr_TR.utf8; do
|
||||||
|
LC_ALL=$xLCALL meson test
|
||||||
|
LC_ALL=$xLCALL meson test --wrap='valgrind --tool=memcheck'
|
||||||
|
done
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# UBSAN build+check
|
||||||
|
flags="-Db_sanitize=undefined -Db_lundef=false"
|
||||||
|
echo
|
||||||
|
echo " *** $options $flags"
|
||||||
|
rm -rf builddir
|
||||||
|
LDFLAGS="-lubsan" meson builddir $options $flags
|
||||||
|
LDFLAGS="-lubsan" ninja -C builddir
|
||||||
|
for xLCALL in C tr_TR.utf8; do
|
||||||
|
LC_ALL=$xLCALL ninja test -C builddir
|
||||||
|
done
|
||||||
|
|
||||||
|
# ASAN build+check
|
||||||
|
flags="-Db_sanitize=address -Db_lundef=false"
|
||||||
|
echo
|
||||||
|
echo " *** $options $flags"
|
||||||
|
rm -rf builddir
|
||||||
|
CFLAGS="$CFLAGS $ASAN_FLAGS" meson builddir $options $flags
|
||||||
|
CFLAGS="$CFLAGS $ASAN_FLAGS" ninja -C builddir
|
||||||
|
for xLCALL in C tr_TR.utf8; do
|
||||||
|
LC_ALL=$xLCALL CFLAGS="$CFLAGS $ASAN_FLAGS" ninja test -C builddir
|
||||||
|
done
|
||||||
|
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
END=$(date +%s.%N)
|
||||||
|
echo
|
||||||
|
echo "Duration: "$(echo "$END - $START" | bc)
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# just in case...
|
||||||
|
unset CC
|
||||||
|
unset CXX
|
||||||
|
|
||||||
|
#PREFIX=i686-w64-mingw32
|
||||||
|
PREFIX=x86_64-w64-mingw32
|
||||||
|
|
||||||
|
#export PATH="/usr/$PREFIX/bin:$PATH"
|
||||||
|
export INSTALLDIR="$PWD/$PREFIX"
|
||||||
|
export PKG_CONFIG_PATH=$INSTALLDIR/lib/pkgconfig:/usr/$PREFIX/lib/pkgconfig
|
||||||
|
export CPPFLAGS="-I$INSTALLDIR/include"
|
||||||
|
export LDFLAGS="-L$INSTALLDIR/lib"
|
||||||
|
|
||||||
|
# let mingw compiler be less verbose
|
||||||
|
export CFLAGS="-O2 -Wall -Wno-format"
|
||||||
|
|
||||||
|
# build libunistring
|
||||||
|
if [ ! -d libunistring ]; then
|
||||||
|
git clone https://git.savannah.gnu.org/git/libunistring.git
|
||||||
|
cd libunistring
|
||||||
|
else
|
||||||
|
cd libunistring
|
||||||
|
git pull
|
||||||
|
fi
|
||||||
|
./autogen.sh
|
||||||
|
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared --prefix=$INSTALLDIR
|
||||||
|
make clean
|
||||||
|
make -j$(nproc)
|
||||||
|
make install
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# build libidn2
|
||||||
|
if [ ! -d libidn2 ]; then
|
||||||
|
git clone https://gitlab.com/libidn/libidn2.git
|
||||||
|
cd libidn2
|
||||||
|
else
|
||||||
|
cd libidn2
|
||||||
|
git pull
|
||||||
|
fi
|
||||||
|
./bootstrap
|
||||||
|
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared --disable-doc --disable-gcc-warnings --prefix=$INSTALLDIR
|
||||||
|
make clean
|
||||||
|
make -j$(nproc)
|
||||||
|
make install
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# build libpsl
|
||||||
|
export WINEPATH="$INSTALLDIR/bin;$INSTALLDIR/lib;/usr/$PREFIX/bin;/usr/$PREFIX/lib;$PWD/libpsl/.libs;$GCCLIB"
|
||||||
|
./autogen.sh
|
||||||
|
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared --disable-gtk-doc --enable-runtime=libidn2 --prefix=$INSTALLDIR
|
||||||
|
make clean
|
||||||
|
make -j$(nproc)
|
||||||
|
make check -j$(nproc) LOG_COMPILER=wine
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
#
|
||||||
|
# see https://github.com/codespell-project/codespell
|
||||||
|
#
|
||||||
|
# in short:
|
||||||
|
# - pip install codespell
|
||||||
|
# - add ~/.local/bin to PATH
|
||||||
|
|
||||||
|
codespell $* -L "tim" `git ls-files|egrep -v '_fuzzer.in|_fuzzer.repro|^list$'`
|
|
@ -68,7 +68,7 @@ HTML_IMAGES=
|
||||||
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
|
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
|
||||||
content_files=
|
content_files=
|
||||||
|
|
||||||
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
|
# SGML files where gtk-doc abbreviations (#GtkWidget) are expanded
|
||||||
# These files must be listed here *and* in content_files
|
# These files must be listed here *and* in content_files
|
||||||
# e.g. expand_content_files=running.sgml
|
# e.g. expand_content_files=running.sgml
|
||||||
expand_content_files=
|
expand_content_files=
|
||||||
|
@ -86,7 +86,7 @@ include $(top_srcdir)/gtk-doc.make
|
||||||
|
|
||||||
# Other files to distribute
|
# Other files to distribute
|
||||||
# e.g. EXTRA_DIST += version.xml.in
|
# e.g. EXTRA_DIST += version.xml.in
|
||||||
EXTRA_DIST +=
|
EXTRA_DIST += meson.build
|
||||||
|
|
||||||
# Files not to distribute
|
# Files not to distribute
|
||||||
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
|
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
|
||||||
|
|
|
@ -22,10 +22,6 @@
|
||||||
</para>
|
</para>
|
||||||
<xi:include href="xml/libpsl.xml"/>
|
<xi:include href="xml/libpsl.xml"/>
|
||||||
</chapter>
|
</chapter>
|
||||||
<chapter id="object-tree">
|
|
||||||
<title>Object Hierarchy</title>
|
|
||||||
<xi:include href="xml/tree_index.sgml"/>
|
|
||||||
</chapter>
|
|
||||||
<index id="api-index-full">
|
<index id="api-index-full">
|
||||||
<title>API Index</title>
|
<title>API Index</title>
|
||||||
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
|
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
|
||||||
|
@ -34,6 +30,35 @@
|
||||||
<title>Index of deprecated API</title>
|
<title>Index of deprecated API</title>
|
||||||
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
|
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
|
||||||
</index>
|
</index>
|
||||||
|
<index role="0.1">
|
||||||
|
<title>Index of symbols included in 0.1</title>
|
||||||
|
<xi:include href="xml/api-index-0.1.xml"><xi:fallback/></xi:include>
|
||||||
|
</index>
|
||||||
|
<index role="0.2.5">
|
||||||
|
<title>New symbols included in 0.2.5</title>
|
||||||
|
<xi:include href="xml/api-index-0.2.5.xml"><xi:fallback/></xi:include>
|
||||||
|
</index>
|
||||||
|
<index role="0.4">
|
||||||
|
<title>New symbols included in 0.4</title>
|
||||||
|
<xi:include href="xml/api-index-0.4.xml"><xi:fallback/></xi:include>
|
||||||
|
</index>
|
||||||
|
<index role="0.10.0">
|
||||||
|
<title>New symbols included in 0.10.0</title>
|
||||||
|
<xi:include href="xml/api-index-0.10.0.xml"><xi:fallback/></xi:include>
|
||||||
|
</index>
|
||||||
|
<index role="0.11.0">
|
||||||
|
<title>Index of symbols included in 0.11.0</title>
|
||||||
|
<xi:include href="xml/api-index-0.11.0.xml"><xi:fallback/></xi:include>
|
||||||
|
</index>
|
||||||
|
<index role="0.16">
|
||||||
|
<title>Index of symbols included in 0.16</title>
|
||||||
|
<xi:include href="xml/api-index-0.16.xml"><xi:fallback/></xi:include>
|
||||||
|
</index>
|
||||||
|
<index role="0.19">
|
||||||
|
<title>Index of symbols included in 0.19</title>
|
||||||
|
<xi:include href="xml/api-index-0.19.xml"><xi:fallback/></xi:include>
|
||||||
|
</index>
|
||||||
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<SECTION>
|
<SECTION>
|
||||||
<FILE>libpsl</FILE>
|
<FILE>libpsl</FILE>
|
||||||
<TITLE>Public Suffix List functions</TITLE>
|
<TITLE>Public Suffix List functions</TITLE>
|
||||||
|
PSL_API
|
||||||
PSL_VERSION
|
PSL_VERSION
|
||||||
PSL_VERSION_MAJOR
|
PSL_VERSION_MAJOR
|
||||||
PSL_VERSION_MINOR
|
PSL_VERSION_MINOR
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
gnome = import('gnome')
|
||||||
|
|
||||||
|
if get_option('docs')
|
||||||
|
configure_file(
|
||||||
|
input : 'version.xml.in',
|
||||||
|
output : 'version.xml',
|
||||||
|
configuration : cdata)
|
||||||
|
|
||||||
|
gnome.gtkdoc('libpsl',
|
||||||
|
main_sgml: 'libpsl-docs.sgml',
|
||||||
|
src_dir: [
|
||||||
|
'src',
|
||||||
|
'include',
|
||||||
|
],
|
||||||
|
dependencies: libpsl,
|
||||||
|
scan_args: [
|
||||||
|
'--ignore-decorators=G_GNUC_PSL_UNUSED',
|
||||||
|
],
|
||||||
|
install: true)
|
||||||
|
endif
|
|
@ -1,15 +1,18 @@
|
||||||
AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS)
|
AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS)
|
||||||
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(srcdir) -DSRCDIR=\"$(abs_srcdir)\" -DTEST_RUN
|
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(srcdir) -DSRCDIR=\"$(abs_srcdir)\"
|
||||||
#AM_LDFLAGS = -static
|
#AM_LDFLAGS = -static
|
||||||
AM_LDFLAGS = -no-install
|
|
||||||
LDADD = ../src/libpsl.la $(LIBICU_LIBS) $(LIBIDN_LIBS) $(LIBIDN2_LIBS)
|
LDADD = ../src/libpsl.la $(LIBICU_LIBS) $(LIBIDN_LIBS) $(LIBIDN2_LIBS)
|
||||||
|
|
||||||
|
if !FUZZING
|
||||||
|
MAIN = main.c fuzzer.h
|
||||||
|
endif
|
||||||
|
|
||||||
if WITH_LIBICU
|
if WITH_LIBICU
|
||||||
XLIBS = $(LIBICU_LIBS)
|
XLIBS = $(LIBICU_LIBS)
|
||||||
XTYPE = _icu
|
XTYPE = _icu
|
||||||
libpsl_icu_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h
|
libpsl_icu_fuzzer_SOURCES = libpsl_fuzzer.c $(MAIN)
|
||||||
libpsl_icu_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h
|
libpsl_icu_load_fuzzer_SOURCES = libpsl_load_fuzzer.c $(MAIN)
|
||||||
libpsl_icu_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h
|
libpsl_icu_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c $(MAIN)
|
||||||
PSL_TESTS = \
|
PSL_TESTS = \
|
||||||
libpsl_icu_fuzzer$(EXEEXT) \
|
libpsl_icu_fuzzer$(EXEEXT) \
|
||||||
libpsl_icu_load_fuzzer$(EXEEXT) \
|
libpsl_icu_load_fuzzer$(EXEEXT) \
|
||||||
|
@ -18,9 +21,9 @@ else
|
||||||
if WITH_LIBIDN2
|
if WITH_LIBIDN2
|
||||||
XLIBS = -lidn2 -lunistring
|
XLIBS = -lidn2 -lunistring
|
||||||
XTYPE = _idn2
|
XTYPE = _idn2
|
||||||
libpsl_idn2_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h
|
libpsl_idn2_fuzzer_SOURCES = libpsl_fuzzer.c $(MAIN)
|
||||||
libpsl_idn2_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h
|
libpsl_idn2_load_fuzzer_SOURCES = libpsl_load_fuzzer.c $(MAIN)
|
||||||
libpsl_idn2_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h
|
libpsl_idn2_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c $(MAIN)
|
||||||
PSL_TESTS = \
|
PSL_TESTS = \
|
||||||
libpsl_idn2_fuzzer$(EXEEXT) \
|
libpsl_idn2_fuzzer$(EXEEXT) \
|
||||||
libpsl_idn2_load_fuzzer$(EXEEXT) \
|
libpsl_idn2_load_fuzzer$(EXEEXT) \
|
||||||
|
@ -29,9 +32,9 @@ else
|
||||||
if WITH_LIBIDN
|
if WITH_LIBIDN
|
||||||
XLIBS = -lidn -lunistring
|
XLIBS = -lidn -lunistring
|
||||||
XTYPE = _idn
|
XTYPE = _idn
|
||||||
libpsl_idn_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h
|
libpsl_idn_fuzzer_SOURCES = libpsl_fuzzer.c $(MAIN)
|
||||||
libpsl_idn_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h
|
libpsl_idn_load_fuzzer_SOURCES = libpsl_load_fuzzer.c $(MAIN)
|
||||||
libpsl_idn_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h
|
libpsl_idn_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c $(MAIN)
|
||||||
PSL_TESTS = \
|
PSL_TESTS = \
|
||||||
libpsl_idn_fuzzer$(EXEEXT) \
|
libpsl_idn_fuzzer$(EXEEXT) \
|
||||||
libpsl_idn_load_fuzzer$(EXEEXT) \
|
libpsl_idn_load_fuzzer$(EXEEXT) \
|
||||||
|
@ -39,9 +42,9 @@ if WITH_LIBIDN
|
||||||
else
|
else
|
||||||
XLIBS =
|
XLIBS =
|
||||||
XTYPE =
|
XTYPE =
|
||||||
libpsl_fuzzer_SOURCES = libpsl_fuzzer.c main.c fuzzer.h
|
libpsl_fuzzer_SOURCES = libpsl_fuzzer.c $(MAIN)
|
||||||
libpsl_load_fuzzer_SOURCES = libpsl_load_fuzzer.c main.c fuzzer.h
|
libpsl_load_fuzzer_SOURCES = libpsl_load_fuzzer.c $(MAIN)
|
||||||
libpsl_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c main.c fuzzer.h
|
libpsl_load_dafsa_fuzzer_SOURCES = libpsl_load_dafsa_fuzzer.c $(MAIN)
|
||||||
PSL_TESTS = \
|
PSL_TESTS = \
|
||||||
libpsl_fuzzer$(EXEEXT) \
|
libpsl_fuzzer$(EXEEXT) \
|
||||||
libpsl_load_fuzzer$(EXEEXT) \
|
libpsl_load_fuzzer$(EXEEXT) \
|
||||||
|
@ -50,7 +53,18 @@ endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
check_PROGRAMS = $(PSL_TESTS)
|
if FUZZING
|
||||||
|
bin_PROGRAMS = $(PSL_TESTS)
|
||||||
|
LDADD += $(LIB_FUZZING_ENGINE)
|
||||||
|
AM_LDFLAGS = -no-install
|
||||||
|
else
|
||||||
|
AM_CPPFLAGS += -DTEST_RUN
|
||||||
|
AM_TESTS_ENVIRONMENT = export VALGRIND_TESTS"=@VALGRIND_TESTS@";
|
||||||
|
TESTS = $(PSL_TESTS)
|
||||||
|
check_PROGRAMS = $(PSL_TESTS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
EXTRA_DIST = meson.build
|
||||||
|
|
||||||
dist-hook:
|
dist-hook:
|
||||||
find . -name '*.options' -exec cp -v '{}' $(distdir) ';'
|
find . -name '*.options' -exec cp -v '{}' $(distdir) ';'
|
||||||
|
@ -59,7 +73,6 @@ dist-hook:
|
||||||
find . -name '*.repro' -exec cp -vr '{}' $(distdir) ';'
|
find . -name '*.repro' -exec cp -vr '{}' $(distdir) ';'
|
||||||
|
|
||||||
TESTS_ENVIRONMENT = TESTS_VALGRIND="@VALGRIND_ENVIRONMENT@"
|
TESTS_ENVIRONMENT = TESTS_VALGRIND="@VALGRIND_ENVIRONMENT@"
|
||||||
TESTS = $(PSL_TESTS)
|
|
||||||
|
|
||||||
clean-local:
|
clean-local:
|
||||||
rm -rf *.gc?? *.log lcov coverage.info *_fuzzer *.o
|
rm -rf *.gc?? *.log lcov coverage.info *_fuzzer *.o
|
||||||
|
@ -67,7 +80,7 @@ clean-local:
|
||||||
fuzz-coverage: $(PSL_TESTS)
|
fuzz-coverage: $(PSL_TESTS)
|
||||||
find . -name '*_fuzzer' -exec ./coverage.sh '{}' ';'
|
find . -name '*_fuzzer' -exec ./coverage.sh '{}' ';'
|
||||||
|
|
||||||
CXX ?= clang-5.0
|
CXX ?= clang
|
||||||
CXXFLAGS ?= $(CFLAGS)
|
CXXFLAGS ?= $(CFLAGS)
|
||||||
|
|
||||||
oss-fuzz:
|
oss-fuzz:
|
||||||
|
|
|
@ -12,24 +12,58 @@ regression testing with top dir 'make check' or 'make check-valgrind'.
|
||||||
The ./configure runs below are for libidn2.
|
The ./configure runs below are for libidn2.
|
||||||
To test libicu replace 'libidn2' with 'libicu', to test with
|
To test libicu replace 'libidn2' with 'libicu', to test with
|
||||||
libidn replace 'libidn2' by 'libidn'.
|
libidn replace 'libidn2' by 'libidn'.
|
||||||
|
To test without IDNA libraries replace `--enable-runtime=...` with `--disable-runtime`
|
||||||
|
and replace `--enable-builtin=...` with `--disable-builtin`.
|
||||||
|
|
||||||
|
|
||||||
# Running a fuzzer using clang
|
# Running a fuzzer using clang
|
||||||
|
|
||||||
Use the following commands on top dir:
|
Use the following commands on top dir:
|
||||||
```
|
```
|
||||||
export CC=clang-5.0
|
export CC=clang
|
||||||
export CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize-coverage=trace-pc-guard,trace-cmp"
|
export LIB_FUZZING_ENGINE="-lFuzzer -lstdc++"
|
||||||
./configure --enable-static --disable-gtk-doc --enable-runtime=libidn2 --enable-builtin=libidn2
|
export UBSAN_OPTIONS=print_stacktrace=1
|
||||||
make clean
|
export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
|
||||||
|
|
||||||
|
# set flags for clang asan
|
||||||
|
CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address,leak,nonnull-attribute -fsanitize-address-use-after-scope -fsanitize-coverage=trace-pc-guard,trace-cmp"
|
||||||
|
|
||||||
|
# set flags for clang ubsan
|
||||||
|
CFLAGS="$CFLAGS -fsanitize=bool,array-bounds,float-divide-by-zero,function,integer-divide-by-zero,return,shift,signed-integer-overflow,vla-bound,vptr,undefined,alignment,null,enum,integer,builtin,float-divide-by-zero,function,object-size,returns-nonnull-attribute,unsigned-integer-overflow,unreachable -fsanitize=fuzzer-no-link"
|
||||||
|
|
||||||
|
# unsigned-integer-overflow is not UB, so recover when we see it.
|
||||||
|
CFLAGS="$CFLAGS -fno-sanitize-recover=all -fsanitize-recover=unsigned-integer-overflow"
|
||||||
|
|
||||||
|
export CFLAGS
|
||||||
|
|
||||||
|
./configure --enable-static --disable-gtk-doc --enable-fuzzing --enable-runtime=libidn2 --enable-builtin=libidn2
|
||||||
make -j$(nproc)
|
make -j$(nproc)
|
||||||
cd fuzz
|
cd fuzz
|
||||||
|
|
||||||
# build and run libpsl_fuzzer
|
# run libpsl_fuzzer
|
||||||
./run-clang.sh libpsl_fuzzer
|
./run-clang.sh libpsl_fuzzer
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
If you see a crash, then a crash corpora is written that can be used for further
|
||||||
|
investigation. E.g.
|
||||||
|
```
|
||||||
|
==2410==ERROR: AddressSanitizer: heap-use-after-free on address 0x602000004e90 at pc 0x00000049cf9c bp 0x7fffb5543f70 sp 0x7ff
|
||||||
|
fb5543720
|
||||||
|
...
|
||||||
|
Test unit written to ./crash-adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
|
||||||
|
```
|
||||||
|
|
||||||
|
To reproduce the crash:
|
||||||
|
```
|
||||||
|
./libpsl_fuzzer < ./crash-adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also copy/move that file into libpsl_fuzzer.repro/
|
||||||
|
and re-build the project without fuzzing for a valgrind run, if you like that better.
|
||||||
|
Just a `./configure` and a `make check-valgrind` should reproduce it.
|
||||||
|
|
||||||
|
|
||||||
# Running a fuzzer using AFL
|
# Running a fuzzer using AFL
|
||||||
|
|
||||||
Use the following commands on top dir:
|
Use the following commands on top dir:
|
||||||
|
@ -67,7 +101,7 @@ directory.
|
||||||
|
|
||||||
# Clang CFI instrumentation
|
# Clang CFI instrumentation
|
||||||
```
|
```
|
||||||
CC=clang-5.0 CFLAGS="-B/usr/bin/gold -O0 -fsanitize=cfi -flto -fvisibility=default -fno-sanitize-trap=all" ./configure
|
CC=clang CFLAGS="-B/usr/bin/gold -O0 -fsanitize=cfi -flto -fvisibility=default -fno-sanitize-trap=all" ./configure
|
||||||
make clean
|
make clean
|
||||||
make
|
make
|
||||||
make check
|
make check
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2017-2018 Tim Ruehsen
|
* Copyright(c) 2017-2022 Tim Ruehsen
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -22,8 +22,15 @@
|
||||||
* This file is part of libpsl.
|
* This file is part of libpsl.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
#include <stddef.h> /* size_t */
|
#include <stddef.h> /* size_t */
|
||||||
|
|
||||||
|
#ifdef HAVE_STDINT_H
|
||||||
#include <stdint.h> /* uint8_t */
|
#include <stdint.h> /* uint8_t */
|
||||||
|
#elif defined (_MSC_VER)
|
||||||
|
typedef unsigned __int8 uint8_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
|
|
|
@ -1,15 +1,8 @@
|
||||||
#!/bin/sh -eu
|
#!/bin/sh -eu
|
||||||
|
|
||||||
# First step: In the top directory execute
|
# As a first step see README.md and follow the steps under "Running a fuzzer using clang".
|
||||||
# export CC=clang-5.0
|
|
||||||
# export CFLAGS="-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize-coverage=trace-pc-guard,trace-cmp"
|
|
||||||
# ./configure --enable-static --disable-gtk-doc --enable-runtime=libidn2 --enable-builtin=libidn2
|
|
||||||
# make clean
|
|
||||||
# make -j$(nproc) LIB_FUZZING_ENGINE="-lFuzzer"
|
|
||||||
# cd fuzz
|
|
||||||
# make -j$(nproc) check
|
|
||||||
|
|
||||||
#
|
# You might need 'gsutil' to download new corpora from the Google cloud:
|
||||||
# Read the docs at https://github.com/google/oss-fuzz/blob/master/docs/corpora.md
|
# Read the docs at https://github.com/google/oss-fuzz/blob/master/docs/corpora.md
|
||||||
# then install 'google-cloud-sdk' and execute 'gcloud init'.
|
# then install 'google-cloud-sdk' and execute 'gcloud init'.
|
||||||
# Now 'gsutil' should be ready to use.
|
# Now 'gsutil' should be ready to use.
|
||||||
|
@ -20,13 +13,20 @@ if test -z "$1"; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! grep -q FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION Makefile; then
|
||||||
|
echo "The fuzzers haven't been built for fuzzing (maybe for regression testing !?)"
|
||||||
|
echo "Please built regarding README.md and try again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
fuzzer=$1
|
fuzzer=$1
|
||||||
project=$(echo $1 | cut -d'_' -f1)
|
project=$(echo $1 | cut -d'_' -f1)
|
||||||
|
|
||||||
# sync/copy the OSS-Fuzz corpora into the .new directory
|
# sync/copy the OSS-Fuzz corpora into the .new directory
|
||||||
mkdir -p ${fuzzer}.new
|
mkdir -p ${fuzzer}.in ${fuzzer}.new
|
||||||
cp -p ${fuzzer}.in/* ${fuzzer}.new
|
cp -fp ${fuzzer}.in/* ${fuzzer}.new 2>/dev/null || true
|
||||||
gsutil -m rsync gs://${project}-corpus.clusterfuzz-external.appspot.com/libFuzzer/${fuzzer} ${fuzzer}.new
|
gsutil cp $(gsutil ls gs://${project}-backup.clusterfuzz-external.appspot.com/corpus/libFuzzer/${fuzzer}|tail -n 1) ${fuzzer}.new/
|
||||||
|
(cd ${fuzzer}.new && unzip -o *.zip && mv *.zip ..)
|
||||||
|
|
||||||
# create fuzzer target
|
# create fuzzer target
|
||||||
BUILD_ONLY=1 ./run-clang.sh ${fuzzer}
|
BUILD_ONLY=1 ./run-clang.sh ${fuzzer}
|
||||||
|
@ -35,8 +35,9 @@ BUILD_ONLY=1 ./run-clang.sh ${fuzzer}
|
||||||
./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
|
./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
|
||||||
|
|
||||||
# now clear .new dir and put all corpora there
|
# now clear .new dir and put all corpora there
|
||||||
rm -f ${fuzzer}.new/*
|
rm -rf ${fuzzer}.new
|
||||||
mv ${fuzzer}.in/* ${fuzzer}.new
|
mv ${fuzzer}.in ${fuzzer}.new
|
||||||
|
mkdir ${fuzzer}.in
|
||||||
|
|
||||||
# now merge again (optimizes number of corpora)
|
# now merge again (optimizes number of corpora)
|
||||||
./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
|
./${fuzzer} -merge=1 ${fuzzer}.in ${fuzzer}.new
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2017-2018 Tim Ruehsen
|
* Copyright(c) 2017-2022 Tim Ruehsen
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -25,7 +25,13 @@
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include <assert.h> /* assert */
|
#include <assert.h> /* assert */
|
||||||
|
|
||||||
|
#ifdef HAVE_STDINT_H
|
||||||
#include <stdint.h> /* uint8_t */
|
#include <stdint.h> /* uint8_t */
|
||||||
|
#elif defined (_MSC_VER)
|
||||||
|
typedef unsigned __int8 uint8_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h> /* malloc, free */
|
#include <stdlib.h> /* malloc, free */
|
||||||
#include <string.h> /* memcpy */
|
#include <string.h> /* memcpy */
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
...à
|
|
Binary file not shown.
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2017-2018 Tim Ruehsen
|
* Copyright(c) 2017-2022 Tim Ruehsen
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -25,15 +25,23 @@
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include <assert.h> /* assert */
|
#include <assert.h> /* assert */
|
||||||
|
|
||||||
|
#ifdef HAVE_STDINT_H
|
||||||
#include <stdint.h> /* uint8_t */
|
#include <stdint.h> /* uint8_t */
|
||||||
|
#elif defined (_MSC_VER)
|
||||||
|
typedef unsigned __int8 uint8_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h> /* malloc, free */
|
#include <stdlib.h> /* malloc, free */
|
||||||
#include <string.h> /* memcpy */
|
#include <string.h> /* memcpy */
|
||||||
|
#include <stdio.h> /* fmemopen */
|
||||||
|
|
||||||
#include "libpsl.h"
|
#include "libpsl.h"
|
||||||
#include "fuzzer.h"
|
#include "fuzzer.h"
|
||||||
|
|
||||||
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_FMEMOPEN
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
psl_ctx_t *psl;
|
psl_ctx_t *psl;
|
||||||
char *in = (char *) malloc(size + 16);
|
char *in = (char *) malloc(size + 16);
|
||||||
|
@ -62,6 +70,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||||
psl_free(psl);
|
psl_free(psl);
|
||||||
|
|
||||||
free(in);
|
free(in);
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
coííý
|
|
@ -0,0 +1 @@
|
||||||
|
<EFBFBD>xn--tda.cí
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
◆<EFBFBD><EFBFBD>@
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
||||||
*˙˙G¸¸GaguchéŔDň„uzz˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙o.iôŔ´o.đ˙˙˙˙˙˙aido.
|
|
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
√ソ
|
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
||||||
agucguchéaguchéÀa
|
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
C
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
<02>c<EFBFBD>mx<6D>
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
<02>c<EFBFBD>mx<6D>-<2D>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
<01>CC
|
Binary file not shown.
|
@ -1 +0,0 @@
|
||||||
;agucnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnhà;Dö„uzzo.iôÀ´
|
|
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
‡Γ<>ό<EFBFBD>®<EFBFBD>γ<EFBFBD>ο<EFBFBD>ν
|
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
<02>C|.c
|
|
@ -0,0 +1 @@
|
||||||
|
<02>xn--tδa®γοαν
|
Binary file not shown.
Binary file not shown.
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2017-2018 Tim Ruehsen
|
* Copyright(c) 2017-2022 Tim Ruehsen
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -25,15 +25,23 @@
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include <assert.h> /* assert */
|
#include <assert.h> /* assert */
|
||||||
|
|
||||||
|
#ifdef HAVE_STDINT_H
|
||||||
#include <stdint.h> /* uint8_t */
|
#include <stdint.h> /* uint8_t */
|
||||||
|
#elif defined (_MSC_VER)
|
||||||
|
typedef unsigned __int8 uint8_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h> /* malloc, free */
|
#include <stdlib.h> /* malloc, free */
|
||||||
#include <string.h> /* memcpy */
|
#include <string.h> /* memcpy */
|
||||||
|
#include <stdio.h> /* fmemopen */
|
||||||
|
|
||||||
#include "libpsl.h"
|
#include "libpsl.h"
|
||||||
#include "fuzzer.h"
|
#include "fuzzer.h"
|
||||||
|
|
||||||
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_FMEMOPEN
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
psl_ctx_t *psl;
|
psl_ctx_t *psl;
|
||||||
|
|
||||||
|
@ -50,6 +58,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
psl_load_file("/dev/null");
|
psl_load_file("/dev/null");
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
.
|
|
||||||
иИ.3
|
|
||||||
иИ.
|
|
||||||
аИ.
|
|
||||||
кИ.кИ.
|
|
||||||
иИ.
|
|
||||||
иИ..
|
|
||||||
иИ.5
|
|
||||||
иИ.
|
|
||||||
аИ.
|
|
||||||
кИ.кИ
|
|
||||||
.иИ.
|
|
||||||
и.
|
|
||||||
иИ.И.
|
|
||||||
иИ.3
|
|
||||||
иИ.
|
|
||||||
а<EFBFBD>.
|
|
||||||
кИ.
|
|
||||||
иИ.
|
|
||||||
иИ.
|
|
||||||
иИ.
|
|
||||||
иИ.
|
|
||||||
иИ
|
|
||||||
иИ.
|
|
||||||
иИ.
|
|
||||||
и.3
|
|
||||||
иИ.
|
|
||||||
аИ.
|
|
||||||
кИ.
|
|
||||||
иМ.
|
|
||||||
аИ.
|
|
||||||
кИ.
|
|
||||||
иИ.
|
|
||||||
И.
|
|
||||||
иИ.
|
|
||||||
иИ.
|
|
||||||
иИ.
|
|
||||||
иИ.
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*..<2E><>
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ļ.ü.Ȼ+.ü*..<2E>
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ%.ü*.k
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*..<2E><>
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*.k
|
||||||
|
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.Ӽ*..
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.<2E><><EFBFBD><EFBFBD>ü.Ȼ+.ü*..<2E>
|
||||||
|
Ƽ.˸.ļ.˸.Ǽ.˸@.õ.˸.ü.ȹ.ü.ü.Ȼ+.ü*..<2E><>
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*.k
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ%.ü*..ük
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*.k
|
||||||
|
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.Ӽ*..
|
||||||
|
Ƽ.˼.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*..<2E><>
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.õ.˸.ü.ȹ.ü.ü.Ȼﴅ.ü*..<2E>
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*.k
|
||||||
|
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.Ӽ*..
|
||||||
|
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.Ӽ*..
|
||||||
|
Ƽ.˼.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.Ӽ*..
|
||||||
|
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.Ӽ*..
|
||||||
|
Ƽ.˼.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.Ӽ*..
|
||||||
|
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.Ӽ*..
|
||||||
|
Ƽ.˼.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*..<2E>
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.õ.˸.ü.ȹ.ü.ü.Ȼﴅ.ü*..<2E>k
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*.k
|
||||||
|
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.Ӽ*..
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*..<2E>.
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.õ.˸.ü.ȹ.ü.ü.Ȼ+.ü*..<2E>
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ%.ü*..˸k
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*.k
|
||||||
|
Ƽ.ɸ.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.Ӽ*..
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.ü.˸.ü.ȹ.ü.ü.Ȼ+.ü*..<2E>
|
||||||
|
Ƽ.˸.Ƽ.˸.Ǽ.˸@.õ.˸.ü.ȹ.ü.ü.Ȼ+.ü*.+.<2E>
|
Binary file not shown.
|
@ -0,0 +1,33 @@
|
||||||
|
(!
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѼw//
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw/=
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw/=
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/<
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司cn...ü.˸.ü(!wѷw//
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷw/=
|
||||||
|
公.cƼ.˸.Ƽ.˯.ļA.˸.ü.ü.ȼ公司.cn...ü.˸.ü(!wѷw//
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ公变#n...ü.˰.ü(#wѷw/A
|
||||||
|
公.cƼ.˸.Ƽ.˨.ļA.˸.ü.ü.ȼ僬司cn...ü.˸.ü(!wѷwa=
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,31 @@
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
||||||
|
//===END PRIVATE DOMAINS===
|
||||||
|
//===BEGIN PRIVATE DOMAINS===
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,8 @@
|
||||||
|
Мё.Гј.Гј.Иј.Иј.Гј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЕЅ.Мё=..ГЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.ГјИј.Гј.Лё.Гј.Гј.ИЅ.ЖЅ.М
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,3 +0,0 @@
|
||||||
.å…¬å<C2AC>¸.cn_¯¸s;
|
|
||||||
!city.ka*.*.kawa!ü.comppÿÿÿÿÿÿÿÿÿÿÿÿÿ// ===END ICANN DOMAINS===asaki.jpwå.j
|
|
||||||
på<EFBFBD>¸.pp!ÿpšppi
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
Мё.Гј.Гј.Иј.Иј.Гј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.ЖЅ.Мё=ГЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
Гј.ГјИј.Гј.Лј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..Вј.ј
|
||||||
|
В¬Дј.Лё.Гј.Гј.Лј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И»..ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ГЅ.И».Гј.ј
|
||||||
|
+В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.Вј.ИЅ.ЖЅ.Мё=..ВЅ.И».Гј.ј
|
||||||
|
В¬.Жј.Лё.Жј.ЛЁ.Дј.Лё.Гј.ГјИј.Гј.Лё.Гј.Гј.ИЅ.ЖЅ.М
|
Binary file not shown.
|
@ -1,26 +0,0 @@
|
||||||
pã.p
|
|
||||||
ã.p
|
|
||||||
å….jp
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
pãp.ã
|
|
||||||
.
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã.p
|
|
||||||
ã
|
|
Binary file not shown.
|
@ -1,6 +0,0 @@
|
||||||
.DAFSA@PSL_¯¸s;
|
|
||||||
™.jp
|
|
||||||
p*.pi
|
|
||||||
..jp
|
|
||||||
på<EFBFBD>.
|
|
||||||
¸kp.Ÿšppi
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue