Hello community, here is the log from the commit of package hunspell for openSUSE:Factory checked in at 2016-05-10 09:25:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hunspell (Old) and /work/SRC/openSUSE:Factory/.hunspell.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "hunspell" Changes: -------- --- /work/SRC/openSUSE:Factory/hunspell/hunspell.changes 2016-05-05 08:11:48.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.hunspell.new/hunspell.changes 2016-05-10 09:25:03.000000000 +0200 @@ -1,0 +2,10 @@ +Wed May 4 16:52:32 UTC 2016 - mpluskal@suse.com + +- Update to 1.4.1: + * Past begin() iterator decrement error + * VS Debug build threw error on decrement past begin. +- Split shared library +- Do not call autoreconf +- Move manpages to corresponding packages + +------------------------------------------------------------------- Old: ---- hunspell-1.4.0.tar.gz New: ---- hunspell-1.4.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hunspell.spec ++++++ --- /var/tmp/diff_new_pack.gLTjl9/_old 2016-05-10 09:25:04.000000000 +0200 +++ /var/tmp/diff_new_pack.gLTjl9/_new 2016-05-10 09:25:04.000000000 +0200 @@ -17,8 +17,9 @@ %define ver 1.4 +%define libname lib%{name}-1_4-0 Name: hunspell -Version: 1.4.0 +Version: 1.4.1 Release: 0 Summary: A spell checker and morphological analyzer library License: (GPL-2.0+ or LGPL-2.1+ or MPL-1.1+) and LGPL-2.1+ @@ -26,13 +27,10 @@ Url: https://hunspell.github.io Source0: https://github.com/%{name}/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: baselibs.conf -BuildRequires: autoconf -BuildRequires: automake BuildRequires: gcc-c++ BuildRequires: libstdc++-devel -BuildRequires: libtool BuildRequires: ncurses-devel >= 5.0 -BuildRequires: pkg-config +BuildRequires: pkgconfig BuildRequires: readline-devel Recommends: %{name}-tools Recommends: unzip @@ -45,6 +43,19 @@ terminal interface using Curses library, Ispell pipe interface, LibreOffice or OpenOffice.org UNO module. +%package -n %{libname} +Summary: Shared library for %{name} +Group: System/Libraries + +%description -n %{libname} +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 or OpenOffice.org UNO module. + +This package contains shared library + %package tools Summary: Hunspell tools Group: Development/Libraries/Other @@ -56,7 +67,7 @@ %package devel Summary: Files for developing with hunspell Group: Development/Libraries/Other -Requires: %{name} = %{version} +Requires: %{libname} = %{version}-%{release} Requires: libstdc++-devel Requires: pkgconfig @@ -67,7 +78,6 @@ %setup -q %build -autoreconf -fvi %configure \ --disable-silent-rules \ --enable-nls \ @@ -87,40 +97,45 @@ %check make check %{?_smp_mflags} -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%post -n %{libname} -p /sbin/ldconfig +%postun -n %{libname} -p /sbin/ldconfig %files %defattr(644,root,root,755) %doc README README.myspell AUTHORS AUTHORS.myspell COPYING THANKS license.hunspell license.myspell %attr(755,root,root) %{_bindir}/hunspell -%attr(755,root,root) %{_libdir}/libhunspell*.so.0.0.0 -%{_libdir}/libhunspell*.so.0 -%exclude %{_libdir}/libhunspell*.so %dir %{_mandir}/hu %dir %{_mandir}/hu/man1 -%{_mandir}/man1/* -%{_mandir}/man3/* -%{_mandir}/man5/* +%{_mandir}/man1/hunspell.1%{ext_man} %lang(hu) %{_mandir}/hu/man1/hunspell.1* +%files -n %{libname} +%defattr(755,root,root,755) +%{_libdir}/libhunspell-1.4.so.* + %files tools +%defattr(755,root,root,755) +%{_bindir}/analyze +%{_bindir}/chmorph +%{_bindir}/munch +%{_bindir}/unmunch +%{_bindir}/hunzip +%{_bindir}/hzip +%{_bindir}/affixcompress +%{_bindir}/ispellaff2myspell +%{_bindir}/makealias +%{_bindir}/wordforms +%{_bindir}/wordlist2hunspell %defattr(644,root,root,755) -%attr(755,root,root) %{_bindir}/analyze -%attr(755,root,root) %{_bindir}/chmorph -%attr(755,root,root) %{_bindir}/munch -%attr(755,root,root) %{_bindir}/unmunch -%attr(755,root,root) %{_bindir}/hunzip -%attr(755,root,root) %{_bindir}/hzip -%attr(755,root,root) %{_bindir}/affixcompress -%attr(755,root,root) %{_bindir}/ispellaff2myspell -%attr(755,root,root) %{_bindir}/makealias -%attr(755,root,root) %{_bindir}/wordforms -%attr(755,root,root) %{_bindir}/wordlist2hunspell +%{_mandir}/man1/hunzip.1%{ext_man} +%{_mandir}/man1/hzip.1%{ext_man} %files devel %defattr(644,root,root,755) -%{_libdir}/libhunspell*.so +%{_libdir}/libhunspell-1.4.so +%{_libdir}/libhunspell.so +%{_mandir}/man3/hunspell.3%{ext_man} +%{_mandir}/man5/hunspell.5%{ext_man} %{_includedir}/%{name} %{_includedir}/munch.h %{_includedir}/unmunch.h ++++++ hunspell-1.4.0.tar.gz -> hunspell-1.4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hunspell-1.4.0/src/hunspell/csutil.cxx new/hunspell-1.4.1/src/hunspell/csutil.cxx --- old/hunspell-1.4.0/src/hunspell/csutil.cxx 2016-04-16 17:47:28.000000000 +0200 +++ new/hunspell-1.4.1/src/hunspell/csutil.cxx 2016-05-03 09:55:52.000000000 +0200 @@ -2783,7 +2783,7 @@ bool operator()(char c) { return chars.find(c) != std::string::npos; } private: - const std::string& chars; + std::string chars; }; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hunspell-1.4.0/src/hunspell/suggestmgr.cxx new/hunspell-1.4.1/src/hunspell/suggestmgr.cxx --- old/hunspell-1.4.0/src/hunspell/suggestmgr.cxx 2016-04-16 17:47:28.000000000 +0200 +++ new/hunspell-1.4.1/src/hunspell/suggestmgr.cxx 2016-05-03 09:55:52.000000000 +0200 @@ -1088,10 +1088,10 @@ std::copy(word, word + candidate.size(), candidate.begin()); } - for (std::string::iterator p = candidate.begin() + candidate.size() - 1; p > candidate.begin(); --p) { - for (std::string::iterator q = p - 1; q >= candidate.begin() && std::distance(q, p) < 10; --q) { - std::swap(*q, *(q + 1)); - if (std::distance(q, p) < 2) + for (std::string::reverse_iterator p = candidate.rbegin(), pEnd = candidate.rend() - 1; p != pEnd; ++p) { + for (std::string::reverse_iterator q = p + 1, qEnd = candidate.rend(); q != qEnd && std::distance(p, q) < 10; ++q) { + std::swap(*q, *(q - 1)); + if (std::distance(p, q) < 2) continue; // omit swap char ns = testsug(wlst, candidate.c_str(), candidate.size(), ns, cpdsuggest, NULL, NULL); if (ns == -1)