Compare commits

...

No commits in common. "c8" and "c10s" have entirely different histories.
c8 ... c10s

11 changed files with 306 additions and 29 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/v1.6.2.tar.gz
/hunspell-1.7.2.tar.gz

View File

@ -1 +0,0 @@
6572d1459deafd358b886d4482c179b715bc92e8 SOURCES/v1.6.2.tar.gz

View File

@ -0,0 +1,77 @@
From e2fe9f86e1769b440972971240e9b8fb1cd53b97 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Fri, 6 Jan 2023 16:20:45 +0000
Subject: [PATCH] Resolves: rhbz#2158548 allow longer words for hunspell-ko
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
https://github.com/hunspell/hunspell/issues/903
A problem since the sanity check added in:
commit 05e44e069e4cfaa9ce1264bf13f23fc9abd7ed05
Author: Caolán McNamara <caolanm@redhat.com>
Date: Thu Sep 1 13:46:40 2022 +0100
Check word limit (#813)
* check against hentry blen max
---
src/hunspell/hashmgr.cxx | 6 +++---
src/hunspell/htypes.hxx | 4 ++--
tests/korean.dic | 3 ++-
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/hunspell/hashmgr.cxx b/src/hunspell/hashmgr.cxx
index 100916d..14201e9 100644
--- a/src/hunspell/hashmgr.cxx
+++ b/src/hunspell/hashmgr.cxx
@@ -209,7 +209,7 @@ int HashMgr::add_word(const std::string& in_word,
}
// limit of hp->blen
- if (word->size() > std::numeric_limits<unsigned char>::max()) {
+ if (word->size() > std::numeric_limits<unsigned short>::max()) {
HUNSPELL_WARNING(stderr, "error: word len %ld is over max limit\n", word->size());
delete desc_copy;
delete word_copy;
@@ -235,8 +235,8 @@ int HashMgr::add_word(const std::string& in_word,
int i = hash(hpw, word->size());
- hp->blen = (unsigned char)word->size();
- hp->clen = (unsigned char)wcl;
+ hp->blen = (unsigned short)word->size();
+ hp->clen = (unsigned short)wcl;
hp->alen = (short)al;
hp->astr = aff;
hp->next = NULL;
diff --git a/src/hunspell/htypes.hxx b/src/hunspell/htypes.hxx
index 44366b1..2b896fb 100644
--- a/src/hunspell/htypes.hxx
+++ b/src/hunspell/htypes.hxx
@@ -62,8 +62,8 @@
#endif
struct hentry {
- unsigned char blen; // word length in bytes
- unsigned char clen; // word length in characters (different for UTF-8 enc.)
+ unsigned short blen; // word length in bytes
+ unsigned short clen; // word length in characters (different for UTF-8 enc.)
short alen; // length of affix flag vector
unsigned short* astr; // affix flag vector
struct hentry* next; // next word with same hash code
diff --git a/tests/korean.dic b/tests/korean.dic
index 95cb450..d76ea05 100644
--- a/tests/korean.dic
+++ b/tests/korean.dic
@@ -1,3 +1,4 @@
-2
+3
들어오세요
안녕하세요
+김수한무거북이와두루미삼천갑자동방삭치치카포사리사리세ᅡ워리워리세브리캉무드셀ᅡ구름위허ᅵ케ᅵᆫᅦ담벼락서생원에ᄀ양
--
2.38.1

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

View File

@ -2,36 +2,49 @@
Name: hunspell
Summary: A spell checker and morphological analyzer library
Version: 1.6.2
Release: 1%{?dist}
Source: https://github.com/hunspell/hunspell/archive/v%{version}.tar.gz
Group: System Environment/Libraries
Version: 1.7.2
Release: 9%{?dist}
Source: https://github.com/hunspell/hunspell/releases/download/v%{version}/hunspell-%{version}.tar.gz
URL: https://github.com/hunspell/hunspell
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
License: LGPLv2+ or GPLv2+ or MPLv1.1
BuildRequires: autoconf, automake, libtool, ncurses-devel, gettext
License: LGPL-2.1-or-later OR GPL-2.0-or-later OR MPL-1.1
BuildRequires: gcc-c++
BuildRequires: autoconf, automake, libtool, ncurses-devel, gettext-devel
BuildRequires: perl-generators
%ifarch %{ix86} x86_64
BuildRequires: valgrind
%endif
%if %{double_profiling_build}
BuildRequires: words
%endif
BuildRequires: make
Requires: hunspell-en-US
Requires: hunspell-filesystem = %{version}-%{release}
Patch0: 0001-Resolves-rhbz-2158548-allow-longer-words-for-hunspel.patch
%description
Hunspell is a spell checker and morphological analyzer library and program
designed for languages with rich morphology and complex word compounding or
character encoding. Hunspell interfaces: Ispell-like terminal interface using
Hunspell is a spell checker and morphological analyzer library and program
designed for languages with rich morphology and complex word compounding or
character encoding. Hunspell interfaces: Ispell-like terminal interface using
Curses library, Ispell pipe interface, LibreOffice UNO module.
%package devel
Requires: hunspell = %{version}-%{release}, pkgconfig
Summary: Files for developing with hunspell
Group: Development/Libraries
%description devel
Includes and definitions for developing with hunspell
%package filesystem
Summary: Hunspell filesystem layout
%description filesystem
Provides a directory in which to store dictionaries provided by other
packages.
%prep
%setup -q
%patch0 -p1 -b .rhbz2158548
%build
autoreconf -vfi
@ -46,7 +59,7 @@ configureflags="--disable-rpath --disable-static --with-ui --with-readline"
%if !%{double_profiling_build}
%configure $configureflags
make %{?_smp_mflags}
%make_build
%else
#Generate a word list to use for profiling, take half of it to ensure
#that the original word list is then considered to contain correctly
@ -56,7 +69,7 @@ head -n $((`cat /usr/share/dict/words | wc -l`/2)) /usr/share/dict/words |\
#generate profiling
%{profilegenerate} %configure $configureflags
make %{?_smp_mflags}
%make_build
./src/tools/affixcompress words > /dev/null 2>&1
./src/tools/hunspell -d words -l /usr/share/dict/words > /dev/null
make check
@ -64,39 +77,34 @@ make distclean
#use profiling
%{profileuse} %configure $configureflags
make %{?_smp_mflags}
%make_build
%endif
cd po && make %{?_smp_mflags} update-gmo && cd ..
%check
%ifarch %{ix86} x86_64
VALGRIND=memcheck make check
make check
%endif
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
%make_install
rm -f $RPM_BUILD_ROOT/%{_libdir}/*.a
rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la
mkdir $RPM_BUILD_ROOT/%{_datadir}/hunspell
mkdir $RPM_BUILD_ROOT/%{_datadir}/myspell
%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%ldconfig_scriptlets
%files -f %{name}.lang
%defattr(-,root,root,-)
%doc README README.myspell COPYING COPYING.LESSER COPYING.MPL AUTHORS AUTHORS.myspell license.hunspell license.myspell THANKS
%doc README COPYING COPYING.LESSER COPYING.MPL AUTHORS license.hunspell license.myspell THANKS
%{_libdir}/*.so.*
%{_datadir}/myspell
%{_bindir}/hunspell
%{_mandir}/man1/hunspell.1.gz
%lang(hu) %{_mandir}/hu/man1/hunspell.1.gz
%files devel
%defattr(-,root,root,-)
%{_includedir}/%{name}
%{_libdir}/*.so
%{_bindir}/affixcompress
@ -116,7 +124,120 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man3/hunspell.3.gz
%{_mandir}/man5/hunspell.5.gz
%files filesystem
%{_datadir}/hunspell
%{_datadir}/myspell
%changelog
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 1.7.2-9
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.7.2-8
- Bump release for June 2024 mass rebuild
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Feb 22 2023 Caolán McNamara <caolanm@redhat.com> - 1.7.2-4
- migrated to SPDX license
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jan 06 2023 Caolán McNamara <caolanm@redhat.com> - 1.7.2-2
- Resolves: rhbz#2158548 get hunspell-ko working again
* Fri Dec 30 2022 Caolán McNamara <caolanm@redhat.com> - 1.7.2-1
- Resolves: rhbz#2157049 latest release
* Mon Aug 22 2022 Caolán McNamara <caolanm@redhat.com> - 1.7.1-1
- latest release
* Tue Aug 02 2022 Caolán McNamara <caolanm@redhat.com> - 1.7.0-21
- Resolves: rhbz#2113444 FTBFS
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Mar 16 2022 Jens Petersen <petersen@redhat.com> - 1.7.0-19
- rework the new hunspell dictionary directory (#2064189)
- drop the myspell/ compatibility symlink
- keep myspell/ as directory and also the new hunspell/ dir
- because of this drop the duplicate directory patch for #2060751
- filesystem scriptlets are no more
* Mon Mar 07 2022 Caolán McNamara <caolanm@redhat.com> - 1.7.0-18
- Resolves: rhbz#2060751 - “hunspell -D” lists dictionaries twice
* Thu Feb 10 2022 Jens Petersen <petersen@redhat.com> - 1.7.0-17
- revert post script from lua back to shell to unbreak rpm-ostree compose
* Mon Feb 7 2022 Jens Petersen <petersen@redhat.com> - 1.7.0-16
- pretrans and post scriptlets should be for filesystem!
(fixes #2051360 regression reported by Mike Fabian)
* Wed Jan 26 2022 Jens Petersen <petersen@redhat.com> - 1.7.0-15
- improve the filesystem pretrans and post scripts:
- pretrans now checks if /usr/share/hunspell exists first
- post checks that /usr/share/myspell does not exist
* Wed Jan 26 2022 Jens Petersen <petersen@redhat.com> - 1.7.0-14
- requires coreutils for post script (#2045568)
* Fri Jan 21 2022 Vishal Vijayraghavan <vishalvvr@fedoraproject.org> - 1.7.0-13
- Rename install dir from myspell to hunspell & create symlink myspell
- https://fedoraproject.org/wiki/Changes/Hunspell_dictionary_dir_change
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Mar 25 2021 Caolán McNamara <caolanm@redhat.com> - 1.7.0-10
- Resolves: rhbz#1943087 require gettext-devel for autopoint
* Wed Feb 03 2021 Peter Oliver <rpm@mavit.org.uk> - 1.7.0-9
- Accomodate Nuspell by putting the dictionary dir in its own subpackage.
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 14 2020 Tom Stellard <tstellar@redhat.com> - 1.7.0-6
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Nov 12 2019 Caolán McNamara <caolanm@redhat.com> - 1.7.0-4
- Resolves: rhbz#1771027 CVE-2019-16707
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Nov 13 2018 Caolán McNamara <caolanm@redhat.com> - 1.7.0-1
- latest release
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Fri Nov 24 2017 Caolán McNamara <caolanm@redhat.com> - 1.6.2-1
- latest release
@ -314,7 +435,7 @@ rm -rf $RPM_BUILD_ROOT
- sort as per "C" locale
* Fri Oct 17 2008 Caolán McNamara <caolanm@redhat.com> - 1.2.7-4
- make wordlist2hunspell remove blank lines
- make wordlist2hunspell remove blank lines
* Mon Sep 15 2008 Caolán McNamara <caolanm@redhat.com> - 1.2.7-3
- Workaround rhbz#462184 uniq/sort problems with viramas

5
plans/hunspell.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: Basic smoke test
discover:
how: fmf
execute:
how: tmt

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (hunspell-1.7.2.tar.gz) = 49b3619bff12e111b6cc3f3d9463612b116f9b2a976896718e65f5bc4a83ece11100aaf56a4d18127ea39107446c495e12affe5ff3c9159ae8aba70e512f44ac

4
tests/data.txt Normal file
View File

@ -0,0 +1,4 @@
Cloud
Linux
Fedora
Fedoraaa

5
tests/main.fmf Normal file
View File

@ -0,0 +1,5 @@
require:
- hunspell
- hunspell-de
test: bash ./run_tests.sh
framework: shell

58
tests/run_tests.sh Normal file
View File

@ -0,0 +1,58 @@
#!/bin/bash
check_pkg() {
local pkg=$1
if rpm -q $pkg
then
echo "PASS"
else
echo "FAIL"
fi
}
check_dict() {
if [ -f "/usr/share/hunspell/de_DE.dic" ]
then
echo "PASS"
else
echo "FAIL"
fi
}
check_misspelled_word() {
VAR1="Fedoraaa"
VAR2=$(hunspell -l data.txt)
if [ "$VAR1" = "$VAR2" ]; then
echo "PASS"
else
echo "FAIL"
fi
}
check_misspelled_line() {
VAR1="Fedoraaa"
VAR2=$(hunspell -L data.txt)
if [ "$VAR1" = "$VAR2" ]; then
echo "PASS"
else
echo "FAIL"
fi
}
check_correct_word() {
VAR1="Cloud\nLinux\nFedora"
VAR1=$(echo -e "$VAR1")
VAR2=$(hunspell -G data.txt)
if [ "$VAR1" = "$VAR2" ]; then
echo "PASS"
else
echo "FAIL"
fi
}
check_pkg "hunspell"
check_pkg "hunspell-de"
check_dict
check_misspelled_word
check_misspelled_line
check_correct_word