# # spec file for package libebml # # 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 http://bugs.opensuse.org/ # %define soname 4 Name: libebml Version: 1.3.9 Release: 1.1 Summary: Library to parse EBML (Extensible Binary Markup Language) files License: LGPL-2.1-or-later Group: Development/Libraries/C and C++ Url: http://www.matroska.org/ #Git-Clone: git://github.com/Matroska-Org/libebml #Git-Web: https://github.com/Matroska-Org/libebml Source: https://dl.matroska.org/downloads/libebml/%{name}-%{version}.tar.xz Source100: baselibs.conf BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: pkg-config %description libebml is a C++ library to parse EBML files. See the EBML RFC at http://www.matroska.org/technical/specs/rfc/index.html . %package -n libebml%{soname} Summary: Library to parse EBML files Group: System/Libraries %description -n libebml%{soname} libebml is a C++ library to parse EBML files. See the EBML RFC at http://www.matroska.org/technical/specs/rfc/index.html . %package devel Summary: Development files for the EBML file parser library Group: Development/Libraries/C and C++ Requires: glibc-devel Requires: libebml%{soname} = %{version} Requires: libstdc++-devel %description devel libebml is a C++ library to parse EBML files. See the EBML RFC at http://www.matroska.org/technical/specs/rfc/index.html . %prep %setup -q %build %cmake make %{?_smp_mflags} %install %cmake_install %post -n libebml%{soname} -p /sbin/ldconfig %postun -n libebml%{soname} -p /sbin/ldconfig %files -n libebml%{soname} %{_libdir}/libebml.so.%{soname}* %files devel %{_libdir}/libebml.so %{_libdir}/pkgconfig/*.pc %{_libdir}/cmake/EBML %{_includedir}/ebml/ %changelog * Wed Jul 10 2019 Ferdinand Thiessen - Update to version 1.3.9: * Some build system related changes * Tue Apr 16 2019 Ferdinand Thiessen - Update to version 1.3.7: * Fixed the handling of Unicode codepoints > U+FFFF - Dropped fix-EbmlSInteger-limits.patch, fixed upstream. * Mon Jul 30 2018 rpm@fthiessen.de - Added fix-EbmlSInteger-limits.patch from upstream. * Fixes build with openSUSE <= 42.3 * Mon Jul 30 2018 rpm@fthiessen.de - Update to 1.3.6: * Fixed undefined behavior when reading signed integers with negative values from files. * Fixed a small memory leak when reading an element runs into an I/O exception (e.g. due to having reached the end of the file). * Fixed the EbmlMaster::GetDataStart() function returning wrong values for elements with an infinite/unknown size. * Fixed finding the next element ID when garbage data is encountered during the scan for the ID. * Fixed several potential situations where reading child element data could exceed the parent element's size. * Fri Aug 25 2017 rpm@fthiessen.de - Update to 1.3.5 * The function EbmlMaster::CheckMandatory() will now only return false if a mandatory element is missing for which there's no default value in the specifications. This means that callers such as EbmlMaster::UpdateSize() and by extension EbmlMaster::Render() will not insist on all mandatory elements being present anymore, but only those for which there's no default value. * Added a template function `FindNextChild`. * Fix reading and EBML element even though the ID was not found within the allowed reading limit. * Fixed an instance of undefined behavior in EbmlElement::GetSemantic() due to binding a dereferenced null pointer to a reference. * Fri Jul 15 2016 rpm@fthiessen.de - Update to new upstream release 1.3.4 * Some minor changes required for clang * Some minor changes for C99 support * Required for mkvtoolnix >= 9.3.0 * Thu Oct 22 2015 rpm@fthiessen.de - Update to new upstream release 1.3.3 (security fixes!): * EbmlUnicodeString::UpdateFromUTF8(): Fixed an invalid memory access. When reading from a UTF-8 string in which the length indicated by a UTF-8 character's first byte exceeds the string's actual number of bytes the parser would access beyond the end of the string resulting in a heap information leak. Fixes the issue reported as Cisco TALOS-CAN-0036. * EbmlElement::ReadCodedSizeValue(): Fixed an invalid memory access. When reading a EBML variable length integer value a read access beyond the end of the available buffer was possible if fewer bytes were available than indicated by the first byte resulting in a heap information leak. * EbmlMaster::Read(): When the parser encountered a deeply nested element with an infinite size then a following element of an upper level was not propagated correctly. Instead the element with the infinite size was added into the EBML element tree a second time resulting in memory access after freeing it and multiple attempts to free the same memory address during destruction. Fixes the issue reported as Cisco TALOS-CAN-0037. * EbmlElement::FindNextElement(): Handle EOF when reading the element size properly. * Fri May 1 2015 jengelh@inai.de - Update package descriptions a bit * Wed Feb 11 2015 dimstar@opensuse.org - Add back BuildRoot: the rpm version of SLE11 still requires this and libebml is linked to 3rd party Build Servers, where building for SLE11 is still enabled. * Sun Feb 1 2015 jengelh@inai.de - Update to new upstream release 1.3.1 * EbmlMaster: Fixed read() trying to calculate the end position of elements with an unknown size. This avoids endless loops and assertions in certain cases. * EbmlElement::Render(): does not catch exceptions anymore. Instead, exceptions generated from the IOCallback class (e.g. if a write failed) are propagated to the caller. - Drop libebml-1.3.0-6efcb74d1e.patch (no longer relevant) * Wed Aug 6 2014 jengelh@inai.de - Set RPM groups * Tue Feb 11 2014 dimstar@opensuse.org - Also revert inlines-hidden: still breaks mkvtoolnix on i586. * Thu Jan 16 2014 crrodriguez@opensuse.org - revert last change, breaks mkvtoolnix that uses internal and symbols that are not annotated as public :( keep inlines-hidden though. * Sun Jan 12 2014 crrodriguez@opensuse.org - Support C++ visibility by reusing win32 code for the same purpose. - added patches: * libebml-visibility.patch * Tue May 21 2013 reddwarf@opensuse.org - Add libebml-1.3.0-6efcb74d1e.patch - Simplify make calls * Sat Mar 23 2013 zaitor@opensuse.org - Update to version 1.3.0: + Compilation warning fixes + GetValue() and SetValue() functions for EbmlFloat/EbmlSInteger/EbmlUInteger + GetValue(), SetValue(), GetValueUTF8(), SetValueUTF8() functions for EbmlString/EbmlUnicodeString + Date values use 64bit integers + Integer conversion operators were made 'const' + GetElementList() function for EbmlMaster providing a reference to the underlying std::vector<> for better interaction with the C++ standard library + New constructor for UTFstring taking a single std::wstring + Increased library .so name to .4 due to binary incompatible changes. + Removed the Debian build files from our package. - Bump soname following upstream code changes. * Thu May 10 2012 crrodriguez@opensuse.org - Do not use gcc -ansi flag. * Sun Sep 25 2011 reddwarf@opensuse.org - Update to version 1.2.2 + fix usage of the DEBUG #define (use LIBEBML_DEBUG instead) + The EbmlCodeVersion variable now resides in the library instead of being declared static in the header file. + only use the test element to read once in the loop * Thu Jun 30 2011 dimstar@opensuse.org - Update to version 1.2.1: + fix the constructor of CRTError in StdIOCallback + fix the size returned by MemIOCallback::read() when reaching the end of the buffer + add a macro to define signed integer elements that have a default value + fix compilation of debug builds on win32 + fix for Sun Studio C compiler - Stop source service usage: Factory is moving to a slightly different approch to verify source authenticity. Cconsequently, specify a full URL as Source. * Mon Apr 18 2011 ro@suse.de - update baselibs.conf * Sun Jan 30 2011 reddwarf@opensuse.org - update to version 1.2.0 - no need to put the internal code of EbmlCrc32 in the public header - more safety on the Binary buffer handling in case we run out of memory - fix CRC32 detection in master elements - fix compilation under gcc 4.5 - Fixed handling of UTF-8 strings with characters encoded in more than three bytes - Increased library .so name to .3 due to binary incompatible changes * Wed Dec 8 2010 cristian.rodriguez@opensuse.org - fix -devel package dependencies * Wed Jul 28 2010 coolo@novell.com - fix build in renaming shared library package * Sat Jun 5 2010 cmorve69@yahoo.es - Update to version 1.0.0 - Fix more issues which came to light with the recent push of WebM -- mostly regarding elements with unknown sizes. * Sat May 15 2010 cmorve69@yahoo.es - update to version 0.8.0 - new macros to simplify and unify the way to declare and define EBML elements - new macros to access variables of a Class/Object so that switching to libebml v2 is transparent - add an EBML_STRICT_API compilation flag (off by default) to avoid direct access to internal class variables - fix some building issues on Linux and MinGW - add accessor calls to the base classes to avoid direct access to internal class variables - add iterators to navigate throught the EbmlMaster children - use a new filepos_t type for everything that relates to an element position/data size with INVALID_FILEPOS_T in case of errors - remove the const on integer values * Mon Mar 16 2009 crrodriguez@suse.de - remove static libraries * Wed Mar 5 2008 seife@suse.de - update to version 0.7.8 - only gcc-4.3 build fixes - remove our gcc-4.3 patch * Wed Oct 24 2007 seife@suse.de - fix gcc-43 build problems (bugs 330737, 336510) * Sat May 26 2007 ro@suse.de - split off devel package * Tue Oct 31 2006 meissner@suse.de - use RPM_OPT_FLAGS * Fri Mar 31 2006 seife@suse.de - update to version 0.7.7 bugfix release that fixes pointer aliasing issues * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Mon Nov 21 2005 seife@suse.de - version update to 0.7.6 * Tue Nov 15 2005 uli@suse.de - build with -O1 on ARM (ICE workaround) * Wed Nov 2 2005 dmueller@suse.de - don't build as root * Tue Jul 5 2005 seife@suse.de - version update to 0.7.5 * Sun Apr 17 2005 seife@suse.de - version update to 0.7.4 * Fri Apr 15 2005 sf@suse.de - changed patch to only prevent 'unary lvalue error' for GCC4 * Thu Apr 14 2005 yxu@suse.de - fixed for GCC4 * Mon Feb 7 2005 seife@suse.de - version update to 0.7.3 * Tue Oct 26 2004 seife@suse.de - version update to 0.7.2 * Wed Sep 1 2004 seife@suse.de - initial submission