libguess/libguess.spec

113 lines
3.6 KiB
RPMSpec

#
# spec file for package libguess
#
# Copyright (c) 2013 SUSE LINUX Products 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/
#
%define libsoname %{name}1
Name: libguess
Version: 1.1
Release: 0
License: BSD-3-Clause
Summary: A high-speed character set detection library
Url: http://www.atheme.org/project/libguess
Group: System/Libraries
Source0: %{name}-%{version}.tar.bz2
Source1: baselibs.conf
# PATCH-FIX-UPSTREAM marguerite@opensuse.org - fix libmowgli/mowgli.h path
Patch1: libguess-1.1-libmowgli.h-path.patch
BuildRequires: libmowgli-devel >= 0.7.0
BuildRequires: pkg-config
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
A high-speed character set detection library
libguess has two functions:
libguess_determine_encoding(const char *inbuf, int length, const char *region);
This detects a character set. Returns an appropriate charset name that can be
passed to iconv_open(). Region is the name of the language or region that the
data is related to, e.g. 'Baltic' for the Baltic states, or 'Japanese' for
Japan.
libguess_validate_utf8(const char *inbuf, int length);
This employs libguess's DFA-based character set validation rules to ensure that
a string is pure UTF-8. GLib's UTF-8 validation functions are broken, for
example.
Just include libguess.h and link to libguess to get these functions in your
program. For your convenience, a pkg-config file is also supplied.
libguess employs discrete-finite automata to deduce the character set of the
input buffer. The advantage of this is that all character sets can be checked
in parallel, and quickly. Right now, libguess passes a byte to each DFA on the
same pass, meaning that the winning character set can be deduced as efficiently
as possible.
libguess is fully reentrant, using only local stack memory for DFA operations.
%package -n %{libsoname}
Summary: Shared library for libguess
Group: System/Libraries
%description -n %{libsoname}
A high-speed character set detection library
This package contains the shared libguess library.
%package devel
Summary: Development package for libguess
Group: Development/Libraries/C and C++
Requires: %{libsoname} = %{version}
Requires: libmowgli-devel
Requires: pkg-config
%description devel
A high-speed character set detection library
This package contains the files needed to compile programs that use the
libguess library.
%prep
%setup -q
%patch1 -p1
%build
%configure
make %{?_smp_mflags}
%install
%make_install
# fatal error: "autoconf.h": No such file or directory in librcc build
cp -r src/libguess/autoconf.h %{buildroot}%{_includedir}/%{name}/
%post -n %{libsoname} -p /sbin/ldconfig
%postun -n %{libsoname} -p /sbin/ldconfig
%files -n %{libsoname}
%defattr(-,root,root)
%{_libdir}/%{name}.so.*
%files devel
%defattr(-,root,root)
%doc COPYING README
%{_libdir}/%{name}.so
%dir %{_includedir}/%{name}
%{_includedir}/%{name}/%{name}.h
%{_includedir}/%{name}/autoconf.h
%{_libdir}/pkgconfig/%{name}.pc
%changelog