File liblouis.spec of Package liblouis.24590
#
# spec file for package liblouis
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: liblouis
Version: 3.3.0
Release: 0
Summary: Two-way braille translator
License: LGPL-3.0+
Group: Productivity/Other
Url: http://liblouis.org/
Source0: https://github.com/liblouis/liblouis/releases/download/v%{version}/liblouis-%{version}.tar.gz
# PATCH-FIX-UPSTREAM CVE-2018-11410.patch boo#1094685 mgorse@suse.com -- fix a buffer overflow in table parsing.
Patch0: CVE-2018-11410.patch
# PATCH-FIX-UPSTREAM CVE-2018-11440.patch boo#1095189 mgorse@suse.com -- fix another buffer overflow in table parsing.
Patch1: CVE-2018-11440.patch
# PATCH-FIX-UPSTREAM CVE-2018-11577.patch boo#1095945 mgorse@suse.com -- fix yet another buffer overflow in the braille table parser.
Patch2: CVE-2018-11577.patch
# PATCH-FIX-UPSTREAM CVE-2018-11683.patch boo#1095827 mgorse@suse.com -- fix yet another buffer overflow in the braille table parser.
Patch3: CVE-2018-11683.patch
# PATCH-FIX-UPSTREAM CVE-2018-11684.patch boo#1095826 mgorse@suse.com -- fix yet another buffer overflow in the braille table parser.
Patch4: CVE-2018-11684.patch
# PATCH-FIX-UPSTREAM CVE-2018-11685.patch boo#1095825 mgorse@suse.com -- fix yet another buffer overflow in the braille table parser.
Patch5: CVE-2018-11685.patch
# PATCH-FIX-UPSTREAM CVE-2018-12085.patch boo#1097103 mgorse@suse.com -- check index before writing to result->chars.
Patch6: CVE-2018-12085.patch
# PATCH-FIX-UPSTREAM CVE-2018-17294.patch boo#1109319 mgorse@suse.com -- fix a buffer overflow.
Patch7: CVE-2018-17294.patch
# PATCH-FIX-UPSTREAM liblouis-CVE-2022-26981.patch boo#1197085 mgorse@suse.com -- fix buffer overrun in compilePassOpcode.
Patch8: liblouis-CVE-2022-26981.patch
# PATCH-FIX-UPSTREAM liblouis-CVE-2022-31783.patch boo#1200120 mgorse@suse.com -- prevent an invalid memory write in compileRule.
Patch9: liblouis-CVE-2022-31783.patch
BuildRequires: pkg-config
PreReq: %install_info_prereq
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: python3
BuildRequires: libyaml-devel
Requires: liblouis14 = %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
liblouis is a translator from and to braille. It features support for
computer and literary braille, supports contracted and uncontracted
translation for many languages and has support for hyphenation. New
languages can be added through tables that support a rule- or
dictionary-based approach. Math braille (Nemeth and Marburg) is
supported.
Included are also tools for testing and debugging tables.
%package -n liblouis14
Summary: Two-way braille translator
# We used to have a package named liblouis, until 2.4.1.
License: LGPL-3.0+
Group: System/Libraries
Requires: %{name}-data >= %{version}
Provides: %{name} = %{version}
Obsoletes: %{name} < %{version}
%description -n liblouis14
liblouis is a translator from and to braille. It features support for
computer and literary braille, supports contracted and uncontracted
translation for many languages and has support for hyphenation. New
languages can be added through tables that support a rule- or
dictionary-based approach. Math braille (Nemeth and Marburg) is
supported.
%package data
Summary: Data files for the liblouis two-way braille translator
License: LGPL-3.0+
Group: System/Libraries
Conflicts: liblouis2 < 3.3.0
%description data
liblouis is a translator from and to braille. It features support for
computer and literary braille, supports contracted and uncontracted
translation for many languages and has support for hyphenation.
This package contains data required by main package.
%package tools
Summary: Tools from the liblouis braille translator package
License: GPL-3.0+
Group: Productivity/Other
%description tools
liblouis is a translator from and to braille. It features support for
computer and literary braille, supports contracted and uncontracted
translation for many languages and has support for hyphenation.
%package doc
Summary: Documentation for the liblouis braille translator
License: LGPL-3.0+
Group: Documentation/Other
%description doc
liblouis is a translator from and to braille. It features support for
computer and literary braille, supports contracted and uncontracted
translation for many languages and has support for hyphenation.
%package devel
Summary: Development files for the liblouis braille translator
License: LGPL-3.0+
Group: Development/Libraries/C and C++
Requires: liblouis14 = %{version}
%description devel
liblouis is a translator from and to braille. It features support for
computer and literary braille, supports contracted and uncontracted
translation for many languages and has support for hyphenation. New
languages can be added through tables that support a rule- or
dictionary-based approach. Math braille (Nemeth and Marburg) is
supported.
%package -n python3-louis
Summary: Python3 bindings for the liblouis braille translator
License: LGPL-3.0+
Group: Development/Languages/Python
Requires: liblouis14 = %{version}
%description -n python3-louis
liblouis is a translator from and to braille. It features support for
computer and literary braille, supports contracted and uncontracted
translation for many languages and has support for hyphenation.
This subpackage contains the Python3 bindings.
%prep
%setup
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%build
%configure --disable-static --enable-ucs4
# TODO: fix Makefile so that -j1 isn't needed
make -j1
# build python binding
pushd python
%python3_build
popd
%check
make check %{_smp_mflags}
%install
%make_install
# doc is only auto-installed when makeinfo is present
%make_install -C doc
find %{buildroot} -type f -name "*.la" -delete -print
# We'll package them as rpm docs
%{__rm} -f %{buildroot}%{_datadir}/doc/liblouis/liblouis.{html,txt}
%fdupes %{buildroot}%{_datadir}
%fdupes %{buildroot}%{_libdir}
# install python binding
pushd python
%python3_install
popd
%post doc
%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%preun doc
%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
%post -n liblouis14 -p /sbin/ldconfig
%postun -n liblouis14 -p /sbin/ldconfig
%files -n liblouis14
%defattr(-, root, root)
%doc AUTHORS ChangeLog COPYING.LESSER NEWS README
%{_libdir}/*.so.*
%files data
%defattr(-, root, root)
%{_datadir}/liblouis/
%files tools
%defattr(-, root, root)
%doc COPYING
%{_bindir}/lou_*
%files doc
%defattr(-, root, root)
%doc doc/liblouis.html doc/liblouis.txt
%{_infodir}/%{name}.info.gz
%files devel
%defattr(-, root, root)
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/liblouis
%files -n python3-louis
%defattr(-, root, root)
%{python3_sitelib}/louis*.egg-info
%{python3_sitelib}/louis
%changelog