diff --git a/SOURCES/chardet-5.2.0-filtered.tar.zst b/SOURCES/chardet-5.2.0-filtered.tar.zst new file mode 100644 index 0000000..36ba7d9 Binary files /dev/null and b/SOURCES/chardet-5.2.0-filtered.tar.zst differ diff --git a/SOURCES/chardetect.1 b/SOURCES/chardetect.1 new file mode 100644 index 0000000..f6f0ff2 --- /dev/null +++ b/SOURCES/chardetect.1 @@ -0,0 +1,29 @@ +.TH CHARDETECT "1" "June 2022" "" "User Commands" +.SH NAME +.B chardetect +\(en takes one or more file paths and reports their detected encodings +.SH SYNOPSIS +.B chardetect +.RB [ \-h ] +.RB [ \-\-version ] +.RI [ input \ ...] +.SH OPTIONS +.SS "POSITIONAL ARGUMENTS" +.TP +.I input +File whose encoding we would like to determine. +(default: +.IR stdin ) +.SS "OPTIONAL ARGUMENTS" +.TP +.B \-h\fR, \fB\-\-help +show a help message and exit +.TP +.B \-\-minimal +Print only the encoding to standard output +.TP +.B \-l\fR, \fB\-\-legacy +Rename legacy encodings to more modern ones. +.TP +.B \-\-version +show program\(cqs version number and exit diff --git a/SOURCES/get_source b/SOURCES/get_source new file mode 100755 index 0000000..a574f7e --- /dev/null +++ b/SOURCES/get_source @@ -0,0 +1,48 @@ +#!/bin/sh +set -o errexit +set -o nounset + +if [ "$#" != '1' ] +then + cat 1>&2 < Downloading: ${URL}" 1>&2 +curl -L -O "${URL}" + +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 +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 +# 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/SPECS/python-chardet.spec b/SPECS/python-chardet.spec index 6593038..641c811 100644 --- a/SPECS/python-chardet.spec +++ b/SPECS/python-chardet.spec @@ -1,45 +1,80 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.6.5) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 15; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + Name: python-chardet -Version: 4.0.0 -Release: 5%{?dist} -Summary: Character encoding auto-detection in Python -License: LGPLv2 +Version: 5.2.0 +Release: %autorelease +Summary: Python character encoding detector + +# The entire source, after tests/ are filtered, is LGPL-2.0-or-later. See the +# comment above Source0 for more details on tests/. +License: LGPL-2.0-or-later URL: https://github.com/chardet/chardet -Source0: %{pypi_source chardet} +# A filtered source tarball, obtained by (see Source1): +# +# ./get_source %%{version} +# +# is required because the contents of tests/ are under various undocumented +# licenses and are, for the most part, not freely redistributable. See: +# +# problematic licensing of /tests? +# https://github.com/chardet/chardet/issues/231 +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 BuildArch: noarch BuildRequires: python3-devel -BuildRequires: pyproject-rpm-macros -# Circular dependency on pytest -%bcond_without tests -%if %{with tests} -BuildRequires: python3-pytest -%endif +%global common_description %{expand: +Chardet: The Universal Character Encoding Detector + +Detects: -%global _description\ -Character encoding auto-detection in Python. As\ -smart as your browser. Open source. + • ASCII, UTF-8, UTF-16 (2 variants), UTF-32 (4 variants) + • Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified + Chinese) + • EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP (Japanese) + • EUC-KR, ISO-2022-KR, Johab (Korean) + • KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (Cyrillic) + • ISO-8859-5, windows-1251 (Bulgarian) + • ISO-8859-1, windows-1252 (Western European languages) + • ISO-8859-7, windows-1253 (Greek) + • ISO-8859-8, windows-1255 (Visual and Logical Hebrew) + • TIS-620 (Thai) -%description %_description +ISO-8859-2 and windows-1250 (Hungarian) probers have been temporarily +disabled.} + +%description +%{common_description} %package -n python3-chardet Summary: %{summary} -%description -n python3-chardet %_description +# Removed in F41: +Obsoletes: python-chardet-doc < 5.2.0-12 +%description -n python3-chardet +%{common_description} -%prep -%autosetup -p1 -n chardet-%{version} -# Remove useless shebangs -# https://github.com/chardet/chardet/commit/1e94b33329 -grep -lr "^#\!/usr/bin/env python" chardet/ | xargs sed -i "1d" +%prep +%autosetup -n chardet-%{version} %generate_buildrequires -%pyproject_buildrequires -r +%pyproject_buildrequires %build @@ -48,37 +83,134 @@ grep -lr "^#\!/usr/bin/env python" chardet/ | xargs sed -i "1d" %install %pyproject_install -%pyproject_save_files chardet +%pyproject_save_files -l chardet +install -t '%{buildroot}%{_mandir}/man1' -D -p -m 0644 '%{SOURCE2}' -%if %{with tests} %check -%pytest -v -%endif +# 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} -%license LICENSE %doc README.rst %{_bindir}/chardetect +%{_mandir}/man1/chardetect.1* %changelog -* Mon Feb 21 2022 Tomas Orsava - 4.0.0-5 -- Add gating configuration and a simple smoke test -- Related: rhbz#1950291 +* Tue Dec 17 2024 Arkady L. Shane - 5.2.0-15 +- Rebuilt for MSVSphere 10 + +## START: Generated by rpmautospec +* Mon Jul 29 2024 Benjamin A. Beasley - 5.2.0-14 +- Fix source archive, which was xz-compressed despite the .zst extension + +* Fri Jul 19 2024 Fedora Release Engineering - 5.2.0-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jul 05 2024 Benjamin A. Beasley - 5.2.0-12 +- F41+: Stop building PDF documentation; drop -doc subpackage + +* Fri Jun 07 2024 Python Maint - 5.2.0-10 +- Rebuilt for Python 3.13 + +* Fri Jun 07 2024 Python Maint - 5.2.0-9 +- Bootstrap for Python 3.13 + +* Fri Apr 05 2024 Benjamin A. Beasley - 5.2.0-8 +- Use zstd instead of xz for filtered source archive compression + +* Fri Apr 05 2024 Benjamin A. Beasley - 5.2.0-7 +- Make the filtered source archive more reproducible + +* Fri Jan 26 2024 Fedora Release Engineering - 5.2.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 5.2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Dec 17 2023 Benjamin A. Beasley - 5.2.0-2 +- Assert that %%pyproject_files contains a license file + +* Wed Aug 02 2023 Benjamin A. Beasley - 5.2.0-1 +- Update to 5.2.0 (close RHBZ#2228250) + +* Fri Jul 21 2023 Fedora Release Engineering - 5.1.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 11 2023 Benjamin A. Beasley - 5.1.0-7 +- When PDF docs are disabled, omit the -doc subpackage + +* Fri Jul 07 2023 Benjamin A. Beasley - 5.1.0-6 +- Use new (rpm 4.17.1+) bcond style -* Tue Feb 08 2022 Tomas Orsava - 4.0.0-4 -- Add automatically generated Obsoletes tag with the python39- prefix - for smoother upgrade from RHEL8 -- Related: rhbz#1990421 +* Fri Jun 16 2023 Python Maint - 5.1.0-5 +- Rebuilt for Python 3.12 -* Tue Aug 10 2021 Mohan Boddu - 4.0.0-3 -- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Related: rhbz#1991688 +* Tue Jun 13 2023 Python Maint - 5.1.0-4 +- Bootstrap for Python 3.12 -* Fri Apr 16 2021 Mohan Boddu - 4.0.0-2 -- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 +* Fri Mar 17 2023 Benjamin A. Beasley - 5.1.0-3 +- Don’t assume %%_smp_mflags is -j%%_smp_build_ncpus + +* Fri Jan 20 2023 Fedora Release Engineering - 5.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Dec 01 2022 Benjamin A. Beasley - 5.1.0-1 +- Update to 5.1.0 (close RHBZ#2150154) + +* Fri Oct 21 2022 Benjamin A. Beasley - 5.0.0-3 +- Update License to SPDX + +* Fri Jul 22 2022 Fedora Release Engineering - 5.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jun 25 2022 Benjamin A. Beasley - 5.0.0-1 +- Update to 5.0.0 (close RHBZ#2101067) + +* Sat Jun 25 2022 Benjamin A. Beasley - 4.0.0-19 +- Fix get_source_script + +* Sat Jun 25 2022 Benjamin A. Beasley - 4.0.0-18 +- Drop test data with problematic license status + +* Sat Jun 25 2022 Benjamin A. Beasley - 4.0.0-17 +- BR python3dist(hypothesis) to enable more tests + +* Sat Jun 25 2022 Benjamin A. Beasley - 4.0.0-16 +- Package Sphinx-generated PDF in a -doc subpackage + +* Sat Jun 25 2022 Benjamin A. Beasley - 4.0.0-15 +- Drop explicit pyproject-rpm-macros BR + +* Sat Jun 25 2022 Benjamin A. Beasley - 4.0.0-14 +- Update summary and description from upstream + +* Sat Jun 25 2022 Benjamin A. Beasley - 4.0.0-13 +- Add a man page for the chardetect command + +* Sat Jun 25 2022 Benjamin A. Beasley - 4.0.0-12 +- Correct License from LGPLv2 to LGPLv2+ + +* Mon Jun 13 2022 Python Maint - 4.0.0-7 +- Rebuilt for Python 3.11 + +* Mon Jun 13 2022 Python Maint - 4.0.0-6 +- Bootstrap for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 4.0.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 4.0.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jun 02 2021 Python Maint - 4.0.0-3 +- Rebuilt for Python 3.10 + +* Wed Jun 02 2021 Python Maint - 4.0.0-2 +- Bootstrap for Python 3.10 * Fri Feb 05 2021 Miro Hrončok - 4.0.0-1 - Update to 4.0.0 @@ -205,3 +337,5 @@ grep -lr "^#\!/usr/bin/env python" chardet/ | xargs sed -i "1d" * Mon Aug 04 2008 Kushal Das 1.0.1-1 - Initial release + +## END: Generated by rpmautospec