File liblouis.spec of Package liblouis.28479

#
# spec file for package liblouis
#
# Copyright (c) 2019 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 https://bugs.opensuse.org/
#


%define sover 19
Name:           liblouis
Version:        3.11.0
Release:        0
Summary:        Two-way braille translator
License:        LGPL-3.0-or-later
Group:          Productivity/Other
URL:            http://liblouis.org/
Source0:        https://github.com/liblouis/liblouis/releases/download/v%{version}/liblouis-%{version}.tar.gz
# PATCH-FIX-UPSTREAM liblouis-CVE-2022-26981.patch bsc#1197085 mgorse@suse.com -- fix buffer overrun in compilePassOpcode.
Patch0:         liblouis-CVE-2022-26981.patch
# PATCH-FIX-UPSTREAM liblouis-CVE-2022-31783.patch bsc#1200120 mgorse@suse.com -- prevent an invalid memory write in compileRule.
Patch1:         liblouis-CVE-2022-31783.patch
# PATCH-FIX-UPSTREAM liblouis-CVE-2023-26767.patch CVE-2023-26767 bsc#1209429 qzhao@suse.com -- Check the length of path before copying into dataPath.
Patch2:         liblouis-CVE-2023-26767.patch
# PATCH-FIX-UPSTREAM liblouis-CVE-2023-26769.patch CVE-2023-26769 bsc#1209432 qzhao@suse.com -- Check the path length before copying into tableFile.
Patch3:         liblouis-CVE-2023-26769.patch
BuildRequires:  fdupes
BuildRequires:  libyaml-devel
BuildRequires:  pkgconfig
BuildRequires:  python-rpm-macros
BuildRequires:  python3
Requires:       liblouis%{sover} = %{version}
# FIXME: use proper Requires(pre/post/preun/...)
PreReq:         %{install_info_prereq}

%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 liblouis%{sover}
Summary:        Two-way braille translator
# We used to have a package named liblouis, until 2.4.1.
License:        LGPL-3.0-or-later
Group:          System/Libraries
Requires:       %{name}-data >= %{version}
Provides:       %{name} = %{version}
Obsoletes:      %{name} < %{version}

%description -n liblouis%{sover}
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-or-later
Group:          System/Libraries
Conflicts:      liblouis2 < 3.3.0
BuildArch:      noarch

%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-or-later
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-or-later
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-or-later
Group:          Development/Libraries/C and C++
Requires:       liblouis%{sover} = %{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-or-later
Group:          Development/Languages/Python
Requires:       liblouis%{sover} = %{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
%autosetup -p1

%build
%configure --disable-static --enable-ucs4
%make_build

# build python binding
pushd python
%python3_build
popd

%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 liblouis%{sover} -p /sbin/ldconfig
%postun -n liblouis%{sover} -p /sbin/ldconfig

%check
make check %{_smp_mflags}

%files -n liblouis%{sover}
%license COPYING.LESSER
%doc AUTHORS ChangeLog NEWS README
%{_libdir}/*.so.*

%files data
%{_datadir}/liblouis/

%files tools
%license COPYING

%{_bindir}/lou_*

%files doc
%doc doc/liblouis.html doc/liblouis.txt
%{_infodir}/%{name}.info%{?ext_info}

%files devel
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/liblouis

%files -n python3-louis
%{python3_sitelib}/louis*.egg-info
%{python3_sitelib}/louis

%changelog
openSUSE Build Service is sponsored by