File id3lib.spec of Package id3lib

# spec file for package id3lib
# 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

Name:           id3lib
Version:        3.8.3
Release:        0
Summary:        A Library for Manipulating ID3v1 and ID3v2 tags
License:        LGPL-2.1-or-later
Source1:        baselibs.conf
Patch1:         id3lib-%{version}-autoconf.patch
Patch2:         id3lib-%{version}-cleanup.patch
Patch3:         id3lib-%{version}-doxygen.patch
Patch4:         id3lib-%{version}-gcc34.patch
Patch5:         id3lib-%{version}-UTF16-writing-bug.patch
Patch6:         id3lib-%{version}-zlib.patch
Patch7:         id3lib-%{version}-uninitialized.patch
# This patch fixes CVE-2007-4460 - id3lib doesn't use mkstemp() to create a name of a temporary file.
Patch8:         id3lib-%{version}-CVE-2007-4460.patch
Patch9:         id3lib-%{version}-missing_c_includes.patch
Patch10:        id3lib-%{version}-fix_m4_quoting.patch
Patch11:        id3lib-%{version}-unsigned_argc.patch
Patch12:        id3lib-%{version}-iomanip_h.patch
Patch13:        id3lib-%{version}-fix-stack-overrun.patch
Patch14:        id3lib-3.8.3-fix-utf16-stringlists.patch
Patch15:        add-c-wrapper-functions.patch
Patch16:        id3lib-missing-nullpointer-check.patch
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  dos2unix
BuildRequires:  doxygen
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  libstdc++-devel
BuildRequires:  libtool
BuildRequires:  zlib-devel

This package provides a software library for manipulating ID3v1 and
ID3v2 tags. It provides a convenient interface for software developers
to include standards-compliant ID3v1/2 tagging capabilities in their
applications. Features include identification of valid tags, automatic
size conversions, synchronization and resynchronization of tag frames,
seamless tag compression and decompression, and optional padding

%package      devel
Summary:        Documentation and Headers for id3lib
Requires:       %{name} = %{version}
Requires:       libstdc++-devel

%description	devel
This package contains the headers and documentation for the id3lib API
that programmers will need to develop applications which use id3lib,
the software library for ID3v1 and ID3v2 tag manipulation.

%package      examples
Summary:        Example Applications for the id3lib Library
Requires:       %{name} = %{version}

%description	examples
This package contains simple example applications that make use of
id3lib, a software library for ID3v1 and ID3v2 tag manipulation.

%setup -q
%patch4 -p1
%patch5 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
for i in doc/id3v2.3.0{.txt,.html}; do
  dos2unix $i

export CXXFLAGS="%{optflags} -fvisibility-inlines-hidden"
rm acconfig.h
autoreconf -fiv
%configure \
  --disable-static \
  --with-pic \
make %{?_smp_mflags}
make -j1 docs

make -C examples clean
rm -rf examples/.deps
chmod 644 examples/*
# strip down the doc and examples directories so we can copy w/impunity
for i in doc/ examples/ ; do \
    find ./$i  -name 'Makefile*' -exec rm {} \; ; done
find %{buildroot} -type f -name "*.la" -delete -print
%fdupes -s doc

%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig

%license COPYING

%files devel
%doc doc/*.*
%doc doc/api

%files examples
%doc examples