#
# spec file for package id3lib
#
# 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:           id3lib
Version:        3.8.3
Release:        266.11
Summary:        A Library for Manipulating ID3v1 and ID3v2 tags
License:        LGPL-2.1+
Group:          System/Libraries
Url:            http://id3lib.sourceforge.net/
Source0:        http://sourceforge.net/projects/id3lib/files/id3lib/%{version}/%{name}-%{version}.tar.gz
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
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  dos2unix
BuildRequires:  doxygen
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  libstdc++-devel
BuildRequires:  libtool
BuildRequires:  zlib-devel
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
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
facilities.

%package      devel
Summary:        Documentation and Headers for id3lib
Group:          Development/Libraries/C and C++
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
Group:          Development/Libraries/C and C++
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.

%prep
%setup -q
%patch1
%patch2
%patch3
%patch4 -p1
%patch5 -p1
%patch6
%patch7
%patch8
%patch9
%patch10
%patch11
%patch12
%patch13 -p1
for i in doc/id3v2.3.0{.txt,.html}; do
  dos2unix $i
done

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

%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
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

%files
%defattr(-, root, root)
%doc AUTHORS COPYING ChangeLog HISTORY NEWS README THANKS TODO
%{_libdir}/*.so.*

%files devel
%defattr(-, root, root)
%{_includedir}/id3*.h
%{_includedir}/id3
%{_libdir}/*.so
%doc doc/*.*
%doc doc/api

%files examples
%defattr(-, root, root)
%doc examples
%{_bindir}/id3*

%changelog
* Sun Jan 10 2016 mpluskal@suse.com
- Use url for source
- Mention baselibs.conf as source
- Cleanup spec file with spec-cleaner
* Wed May 28 2014 crrodriguez@opensuse.org
- id3lib-3.8.3-doxygen.patch , extend to stop timestamp generation.
* Sat Jan 18 2014 crrodriguez@opensuse.org
- build with fvisibility-inlines-hidden, no sane real world
  software appears to require the default behaviour
  but we are paying for it anyway with bloated
  dynamic export tables.
  If something does really require it, we want it to break anyway.
* Sat Apr  6 2013 davejplater@gmail.com
- Renamed id3lib-3.8.3-tag_file.patch to
  id3lib-3.8.3-CVE-2007-4460.patch. This matches the redhat fix for
  this issue.
* Thu Feb 28 2013 crrodriguez@opensuse.org
- extend id3lib-3.8.3-autoconf.patch :
  * AM_CONFIG_HEADER is gone, fixes build with new automake
  * Do not use bundled zlib, ensure we never pick it and always
  use system version.
* Mon Sep 24 2012 schwab@linux-m68k.org
- Add -I m4 to ACLOCAL_AMFLAGS.
- Fix check for for loop scoping.
* Sat Oct 15 2011 coolo@suse.com
- add libtool as buildrequire to make the spec file more reliable
* Sun Apr 24 2011 toddrme2178@gmail.com
- Add 32bit compatibility libraries
- Fix for duplicate doc files (fix for RPMLINT warning)
* Fri Nov 13 2009 jeffm@suse.de
- Enabled stack overrun patch
* Tue Oct 13 2009 jeffm@suse.de
- Fixed stack overrun in Mp3Info::Parse
* Tue Jan 13 2009 crrodriguez@suse.de
- remove static libraries and "la" files
* Tue Nov 13 2007 lmichnovic@suse.cz
- unified names of patches to %%{name}-%%{version}-*.patch
* Tue Nov 13 2007 lmichnovic@suse.cz
- no need to check presence of deprecated iomanip.h in configure
  (*iomanip_h.patch)
* Wed Nov  7 2007 lmichnovic@suse.cz
- devel package doesn't require %%release any more, only %%version
- no need to include same doc in subpackages
* Wed Oct 31 2007 pth@suse.de
- Include cstring, not string.h as the code using string functions
  is in namespace std.
- Argc is 'int', not 'unsigned int'
- Fix quoting of function names in AC_DEFUNs
- Rename the gcc43 patch to something more meaningful
- Fix files with DOS line ending.
* Mon Oct  1 2007 coolo@suse.de
- some gcc 4.3 compilation fixes
* Wed Sep  5 2007 ltinkl@suse.cz
- fix #307073 - VUL-0: id3lib: New id3lib3.8.3
* Thu Mar 29 2007 rguenther@suse.de
- add zlib-devel BuildRequires
* Fri Jun 30 2006 nadvornik@suse.cz
- linked with -lz [#189302]
- fixed uninitialized variables
* Mon Feb 20 2006 sbrabec@suse.cz
- Fixed UTF-16 writing bug (from Spoon, thanks to Jerome Couderc).
  http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Thu Jan 12 2006 nadvornik@suse.cz
- compile with -fstack-protector
* Thu Aug 12 2004 ro@suse.de
- added libpng to neededforbuild (for doxygen)
* Fri Jan 16 2004 meissner@suse.de
- Upgraded to 3.8.3
- Added fixes necessary for gcc 3.4.
* Sat Jan 10 2004 adrian@suse.de
- add %%run_ldconfig
* Wed Jan  8 2003 pthomas@suse.de
- Update to 3.8.2
- Call autotools directly as autoreconf doesn't work.
- Fix detection of iconv prototype.
- Really include the documentation generated by doxygen in
  id3lib-devel.
* Tue Nov 12 2002 nadvornik@suse.cz
- updated to 3.8.1: bugfix release
* Wed Aug 14 2002 pthomas@suse.de
- Update to 3.8.0 final.
- Change configure.in and m4/*.m4 to make acconfig.h obsolete.
- Add explicit specialization for char_traits<unsigned char>
  to id3lib_strings.h
- Add hack to make libtool 1.4.2 use c++ for linking thus
  making it depend on the correct version of libstc++.
* Wed Jul 10 2002 nadvornik@suse.cz
- updated to 3.8.0pre3
* Mon May 20 2002 ro@suse.de
- use libdir
* Wed May  8 2002 ro@suse.de
- fix compilation with gcc-3 again
  (filebuf from FILE* constructor only as gxx-extension now)
* Wed Apr  3 2002 nadvornik@suse.cz
- fixed to compile with new autoconf
* Mon Feb 18 2002 schwab@suse.de
- Fix for gcc 3.
* Tue Jan  8 2002 rvasice@suse.cz
- update to version 3.8.0pre2
* Mon Aug 27 2001 rvasice@suse.cz
- fix to build on ia64 and s390
* Thu Jun 21 2001 rvasice@suse.cz
- initial package release (version 3.8.0)