File libidn.spec of Package libidn

#
# spec file for package libidn
#
# Copyright (c) 2016 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:           libidn
%define lname	libidn11
Version:        1.28
Release:        0
Summary:        Support for Internationalized Domain Names (IDN)
License:        (GPL-2.0+ or LGPL-3.0+) and GPL-3.0+
Group:          Development/Libraries/C and C++
Url:            http://www.gnu.org/software/libidn/
Source0:        http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz
Source1:        baselibs.conf
Source2:        http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz.sig
Source3:        libidn.keyring
Patch0:         libidn-CVE-2015-2059.patch
Patch1:         libidn-CVE-2015-2059-2.patch
Patch2:         libidn-CVE-2015-8948.patch
Patch3:         libidn-CVE-2016-6261.patch
Patch4:         libidn-CVE-2016-6262.patch
Patch5:         libidn-CVE-2016-6263.patch
#can't be used without build cycles, so just check the signature in validator
#BuildRequires:  gpg-offline
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  help2man
BuildRequires:  libtool
BuildRequires:  makeinfo
BuildRequires:  pkgconfig
Requires(pre):  %install_info_prereq
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
GNU Libidn is an implementation of the Stringprep, Punycode, and IDNA
specifications defined by the IETF Internationalized Domain Names (IDN)
working group. It is used to prepare internationalized strings (such as
domain name labels, usernames, and passwords) in order to increase the
likelihood that string input and string comparison work in ways that
make sense for typical users around the world. The library contains a
generic Stringprep implementation that does Unicode 3.2 NFKC
normalization, mapping and prohibition of characters, and bidirectional
character handling. Profiles for iSCSI, Kerberos 5, Nameprep, SASL, and
XMPP are included. Punycode and ASCII Compatible Encoding (ACE) via
IDNA is supported.

%package tools
Summary:        Command line utility to convert Int. Domain Names
License:        (GPL-2.0+ or LGPL-3.0+) and GPL-3.0+
Group:          Productivity/Networking/DNS/Utilities
# O/P added for 12.3
Obsoletes:      libidn < %version-%release
Provides:       libidn = %version-%release

%description tools
GNU Libidn is an implementation of the Stringprep, Punycode, and IDNA
specifications defined by the IETF Internationalized Domain Names
(IDN) working group. It is used to prepare internationalized strings
(such as domain name labels, usernames, and passwords) in order to
increase the likelihood that string input and string comparison work
in ways that make sense for typical users around the world. The
library contains a generic Stringprep implementation that does
Unicode 3.2 NFKC normalization, mapping and prohibition of
characters, and bidirectional character handling. Profiles for iSCSI,
Kerberos 5, Nameprep, SASL, and XMPP are included. Punycode and ASCII
Compatible Encoding (ACE) via IDNA is supported.

%package -n %lname
Summary:        Support for Internationalized Domain Names (IDN)
License:        (GPL-2.0+ or LGPL-3.0+) and GPL-3.0+
Group:          System/Libraries
# bug437293
%ifarch ppc64
Obsoletes:      libidn-64bit
%endif

%description -n %lname
GNU Libidn is an implementation of the Stringprep, Punycode, and IDNA
specifications defined by the IETF Internationalized Domain Names
(IDN) working group. It is used to prepare internationalized strings
(such as domain name labels, usernames, and passwords) in order to
increase the likelihood that string input and string comparison work
in ways that make sense for typical users around the world. The
library contains a generic Stringprep implementation that does
Unicode 3.2 NFKC normalization, mapping and prohibition of
characters, and bidirectional character handling. Profiles for iSCSI,
Kerberos 5, Nameprep, SASL, and XMPP are included. Punycode and ASCII
Compatible Encoding (ACE) via IDNA is supported.

%package devel
Summary:        Include Files and Libraries mandatory for Development
License:        LGPL-2.1+
Group:          Development/Libraries/C and C++
Requires:       %lname = %version
Requires:       glibc-devel
# bug437293
%ifarch ppc64
Obsoletes:      libidn-devel-64bit
%endif

%description devel
GNU Libidn is an implementation of the Stringprep, Punycode, and IDNA
specifications defined by the IETF Internationalized Domain Names (IDN)
working group. It is used to prepare internationalized strings (such as
domain name labels, usernames, and passwords) in order to increase the
likelihood that string input and string comparison work in ways that
make sense for typical users around the world. The library contains a
generic Stringprep implementation that does Unicode 3.2 NFKC
normalization, mapping and prohibition of characters, and bidirectional
character handling. Profiles for iSCSI, Kerberos 5, Nameprep, SASL, and
XMPP are included. Punycode and ASCII Compatible Encoding (ACE) via
IDNA is supported.

%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
# renames in git
mv gltests/stdint.in.h gl/stdint.in.h
mv gltests/stdlib.in.h gl/stdlib.in.h
%patch3 -p1
%patch4 -p1
%patch5 -p1

%build
autoreconf -fvi
%configure --with-pic --disable-static --disable-gtk-doc
make %{?_smp_mflags} V=1

%install
%make_install

rm -f %{buildroot}/%{_infodir}/dir
rm -f %{buildroot}%{_libdir}/libidn.la

%find_lang %{name}

%check
%if ! 0%{?qemu_user_space_build}
export SUSE_ASNEEDED=0
make check %{?_smp_mflags} V=1
%endif

%post tools
%install_info --info-dir=%{_infodir} %{_infodir}/libidn.info.gz

%preun tools
%install_info_delete --info-dir=%{_infodir} %{_infodir}/libidn.info.gz

%post -n %lname -p /sbin/ldconfig

%postun -n %lname -p /sbin/ldconfig

%files tools -f %{name}.lang
%defattr(-,root,root)
%dir %{_datadir}/emacs
%dir %{_datadir}/emacs/site-lisp
%doc AUTHORS COPYING* ChangeLog FAQ NEWS README THANKS TODO
%{_infodir}/libidn*
%{_bindir}/idn
%{_mandir}/man1/idn.1.*
%{_datadir}/emacs/site-lisp/idna.el
%{_datadir}/emacs/site-lisp/punycode.el

%files -n %lname
%defattr(-,root,root)
%_libdir/libidn.so.11*

%files devel
%defattr(-,root,root)
%{_libdir}/libidn.so
%{_includedir}/*.h
%{_libdir}/pkgconfig/libidn.pc

%changelog
openSUSE Build Service is sponsored by