##
##  libidn2.spec -- OpenPKG RPM Package Specification
##  Copyright (c) 2000-2025 OpenPKG Project <http://openpkg.org/>
##
##  Permission to use, copy, modify, and distribute this software for
##  any purpose with or without fee is hereby granted, provided that
##  the above copyright notice and this permission notice appear in all
##  copies.
##
##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
##  SUCH DAMAGE.
##

#   package information
Name:         libidn2
Summary:      International Domain Name (IDN) Library (V2)
URL:          http://www.gnu.org/software/libidn/
Vendor:       Simon Josefsson
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        BASE
Group:        DNS
License:      LGPL
Version:      2.3.8
Release:      20250309

#   list of sources
Source0:      http://ftp.gnu.org/gnu/libidn/libidn2-%{version}.tar.gz

#   build information
BuildPreReq:  OpenPKG, openpkg >= 20160101
PreReq:       OpenPKG, openpkg >= 20160101
BuildPreReq:  libiconv, libunistring
PreReq:       libiconv, libunistring

%description
    GNU Libidn is an implementation of the Stringprep, Punycode and
    IDNA specifications defined by the IETF Internationalized Domain
    Names (IDN) working group, used for internationalized domain names.
    The library contains a generic Stringprep implementation that
    does Unicode 3.2 NFKC normalization, mapping and prohibitation 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 are supported. The
    Stringprep API consists of two main functions, one for converting
    data from the system's native representation into UTF-8, and
    one function to perform the Stringprep processing. Adding a
    new Stringprep profile for your application within the API is
    straightforward. The Punycode API consists of one encoding function
    and one decoding function. The IDNA API consists of the ToASCII
    and ToUnicode functions, as well as an high-level interface for
    converting entire domain names to and from the ACE encoded form.

%track
    prog libidn2 = {
        version   = %{version}
        url       = http://ftp.gnu.org/pub/gnu/libidn/
        regex     = libidn2-(__VER__)\.tar\.gz
    }

%prep
    %setup -q

%build
    CC="%{l_cc}" \
    CFLAGS="%{l_cflags -O}" \
    CPPFLAGS="%{l_cppflags}" \
    LDFLAGS="%{l_ldflags}" \
    MAKEINFO="true" \
    AUTOMAKE="true" \
    GREP=grep \
    ./configure \
        --prefix=%{l_prefix} \
        --mandir=%{l_prefix}/man \
        --infodir=%{l_prefix}/info \
        --includedir=%{l_prefix}/include/libidn \
        --with-libiconv-prefix=%{l_prefix} \
        --disable-shared \
        --disable-nls
    %{l_make} %{l_mflags -O}

%install
    %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
    rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir
    rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/gtk-doc
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}

%files -f files

%clean

