diff --git a/.gitignore b/.gitignore index 9a81b57..39daced 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /chardet-5.0.0-filtered.tar.xz /chardet-5.1.0-filtered.tar.xz /chardet-5.2.0-filtered.tar.xz +/chardet-5.2.0-filtered.tar.zst diff --git a/get_source b/get_source index 513d1d3..a574f7e 100755 --- a/get_source +++ b/get_source @@ -26,9 +26,23 @@ ARCHIVE="$(find . -mindepth 1 -maxdepth 1 -type f -name '*.tar.gz' -print -quit) echo "--> Extracting: $(basename "${ARCHIVE}")" 1>&2 tar -xzf "${ARCHIVE}" echo '--> Removing tests due to licensing issues' 1>&2 -rm -rvf */tests/ -FILTERED="$(basename "${ARCHIVE}" .tar.gz)-filtered.tar.xz" +TARDIR="$(basename "${ARCHIVE}" '.tar.gz')" +MTIME="$(stat -c '%Y' "${TARDIR}")" +rm -rvf "${TARDIR}/tests/" +# Restore the original mtime even though we modified the base directory by +# removing the tests. +touch -d @"${MTIME}" "${TARDIR}" +FILTERED="$(basename "${ARCHIVE}" .tar.gz)-filtered.tar.zst" echo "--> Re-archiving: ${FILTERED}" 1>&2 -tar -c "${FILTERED}" */ | xz -9e > "${FILTERED}" +# https://www.gnu.org/software/tar/manual/html_section/Reproducibility.html +TZ=UTC LC_ALL=C tar \ + --create --verbose \ + --sort=name \ + --format=posix \ + --numeric-owner --owner=0 --group=0 \ + --mode=go+u,go-w \ + --pax-option='delete=atime,delete=ctime' \ + "${TARDIR}/" | + zstdmt --ultra -22 > "${FILTERED}" mv -v "${FILTERED}" "${OUTDIR}" echo 'Done.' 1>&2 diff --git a/python-chardet.rpmlintrc b/python-chardet.rpmlintrc new file mode 100644 index 0000000..39210e7 --- /dev/null +++ b/python-chardet.rpmlintrc @@ -0,0 +1,11 @@ +# Not a real spelling error: +addFilter(r" spelling-error \('([Pp]rober)s?',") +# This Source cannot be a URL because we must filter out certain files. +addFilter(r" invalid-url Source[0-9]+: chardet-.*-filtered\.tar\.zst") +# Bogus; it is a perfectly fine zstandard file. +addFilter(r" inconsistent-file-extension chardet-.*-filtered\.tar\.zst$") +# The -doc subpackage was removed without an equivalent replacement. +addFilter(r" obsolete-not-provided python-chardet-doc$") +# Update LGPLv2.1 license text and notices for remote-only FSF +# https://github.com/chardet/chardet/pull/307 +addFilter(r" incorrect-fsf-address ") diff --git a/python-chardet.spec b/python-chardet.spec index dc60893..a851737 100644 --- a/python-chardet.spec +++ b/python-chardet.spec @@ -1,9 +1,3 @@ -# Sphinx-generated HTML documentation is not suitable for packaging; see -# https://bugzilla.redhat.com/show_bug.cgi?id=2006555 for discussion. -# -# We can generate PDF documentation as a substitute. -%bcond doc 1 - Name: python-chardet Version: 5.2.0 Release: %autorelease @@ -22,25 +16,16 @@ URL: https://github.com/chardet/chardet # # problematic licensing of /tests? # https://github.com/chardet/chardet/issues/231 -Source0: chardet-%{version}-filtered.tar.xz +Source0: chardet-%{version}-filtered.tar.zst Source1: get_source # Hand-written for Fedora in groff_man(7) format based on --help output Source2: chardetect.1 +BuildSystem: pyproject +BuildOption(install): -l chardet + BuildArch: noarch -BuildRequires: python3-devel - -%if %{with doc} -BuildRequires: make -BuildRequires: python3dist(sphinx) -BuildRequires: python3dist(sphinx-rtd-theme) -BuildRequires: python3-sphinx-latex -BuildRequires: latexmk -BuildRequires: tex-xetex-bin -BuildRequires: /usr/bin/xindy -%endif - %global common_description %{expand: Chardet: The Universal Character Encoding Detector @@ -68,65 +53,26 @@ disabled.} %package -n python3-chardet Summary: %{summary} +# Removed in F41: +Obsoletes: python-chardet-doc < 5.2.0-12 + %description -n python3-chardet %{common_description} -%package doc -Summary: Documentation for python-chardet - -%description doc -%{common_description} - - -%prep -%autosetup -n chardet-%{version} - -# Since pdflatex cannot handle Unicode inputs in general: -echo "latex_engine = 'xelatex'" >> docs/conf.py - - -%generate_buildrequires -%pyproject_buildrequires - - -%build -%pyproject_wheel - -%if %{with doc} -PYTHONPATH="${PWD}" %make_build -C docs latex \ - SPHINXOPTS='-j%{?_smp_build_ncpus}' -%make_build -C docs/_build/latex LATEXMKOPTS='-quiet' -%endif - - -%install -%pyproject_install -%pyproject_save_files chardet +%install -a install -t '%{buildroot}%{_mandir}/man1' -D -p -m 0644 '%{SOURCE2}' -%check # We cannot run the upstream tests because they would require data files with # problematic license status. -%pyproject_check_import %files -n python3-chardet -f %{pyproject_files} -%if %{without doc} %doc README.rst -%endif %{_bindir}/chardetect %{_mandir}/man1/chardetect.1* -%if %{with doc} -%files doc -%license LICENSE -%doc README.rst -%doc docs/_build/latex/chardet.pdf -%endif - - %changelog %autochangelog diff --git a/sources b/sources index 44e7115..3fe621b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (chardet-5.2.0-filtered.tar.xz) = 4f865b958503596cdaf690d0cb586c7c477419ca528b4701d93577c34764fcbab2246d79b82fe25a06246c59cedb9344ec332540efb76cc02d49158fb4903974 +SHA512 (chardet-5.2.0-filtered.tar.zst) = 410b2d62c54781f9b848ee78c659d4607bbb7f94f6117d7fa7cd5f82a50dfaf10d6e4c6dfaefa9b9a721b846c167aa12eae029debbaa66b0d830875c8ce5749c