Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package exempi for openSUSE:Factory checked in at 2022-12-07 17:34:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/exempi (Old) and /work/SRC/openSUSE:Factory/.exempi.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "exempi" Wed Dec 7 17:34:23 2022 rev:38 rq:1040590 version:2.6.2 Changes: -------- --- /work/SRC/openSUSE:Factory/exempi/exempi.changes 2022-05-12 22:57:41.532581861 +0200 +++ /work/SRC/openSUSE:Factory/.exempi.new.1835/exempi.changes 2022-12-07 17:35:25.260688942 +0100 @@ -1,0 +2,15 @@ +Sun Dec 4 21:11:10 UTC 2022 - Dirk Müller <dmuel...@suse.com> + +- update to 2.6.2: + - Update XMPCore to Adobe XMP SDK v2022.06 + - Build system fixes that don't matter. + - Fix a typo in an ID3 genre string + - Build XMP_SDK with some fatal warnings: + - -Werror=missing-field-initializers + - -Werror=misleading-indentation + - -Werror=class-memaccess + - Remove (deprecated) boost_test_minimal + - Remove old .sym file (Daniel Kolesa) + - Added --enable-samples (default = yes) (Fabrice Fontaine) + +------------------------------------------------------------------- Old: ---- exempi-2.6.1.tar.bz2 exempi-2.6.1.tar.bz2.asc New: ---- exempi-2.6.2.tar.bz2 exempi-2.6.2.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ exempi.spec ++++++ --- /var/tmp/diff_new_pack.agStGn/_old 2022-12-07 17:35:27.184699476 +0100 +++ /var/tmp/diff_new_pack.agStGn/_new 2022-12-07 17:35:27.192699520 +0100 @@ -18,7 +18,7 @@ %define sonum 8 Name: exempi -Version: 2.6.1 +Version: 2.6.2 Release: 0 Summary: XMP support library License: BSD-3-Clause @@ -29,10 +29,10 @@ Source2: %{name}.keyring Source3: baselibs.conf BuildRequires: gcc-c++ +BuildRequires: libboost_test-devel BuildRequires: libexpat-devel BuildRequires: pkgconfig BuildRequires: zlib-devel -BuildRequires: libboost_test-devel %description Exempi is a library for XMP parsing and I/O. XMP is a kind of ++++++ exempi-2.6.1.tar.bz2 -> exempi-2.6.2.tar.bz2 ++++++ ++++ 14731 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/Makefile.am new/exempi-2.6.2/Makefile.am --- old/exempi-2.6.1/Makefile.am 2022-02-13 16:00:19.000000000 +0100 +++ new/exempi-2.6.2/Makefile.am 2022-06-25 23:47:32.000000000 +0200 @@ -36,8 +36,12 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = third-party source XMPCore XMPFiles samples exempi +SUBDIRS = third-party source XMPCore XMPFiles exempi DIST_SUBDIRS = build third-party source XMPCore XMPFiles XMPFilesPlugins samples exempi public +if ENABLE_SAMPLES +SUBDIRS += samples +endif + EXTRA_DIST = autogen.sh ORIGINSTORY.md CODE_OF_CONDUCT.md CONTRIBUTING.md \ README-Adobe.md README.md diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/NEWS new/exempi-2.6.2/NEWS --- old/exempi-2.6.1/NEWS 2022-02-13 16:01:39.000000000 +0100 +++ new/exempi-2.6.2/NEWS 2022-06-25 23:45:03.000000000 +0200 @@ -1,4 +1,22 @@ -2.6.1 - +2.6.2 - 2022/06/25 + +- Update XMPCore to Adobe XMP SDK v2022.06 + - Build system fixes that don't matter. +- Fix a typo in an ID3 genre string + https://gitlab.freedesktop.org/libopenraw/exempi/-/merge_requests/4 +- Build XMP_SDK with some fatal warnings: + - -Werror=missing-field-initializers + - -Werror=misleading-indentation + - -Werror=class-memaccess +- Remove (deprecated) boost_test_minimal + https://gitlab.freedesktop.org/libopenraw/exempi/-/issues/24 +- CI: require "bionic" on Travis CI. +- Remove old .sym file (Daniel Kolesa) + https://gitlab.freedesktop.org/libopenraw/exempi/-/issues/17 +- Added --enable-samples (default = yes) (Fabrice Fontaine) + https://gitlab.freedesktop.org/libopenraw/exempi/-/merge_requests/6 + +2.6.1 - 2022/02/13 - Bug #26: Addressed missing README.md and others from tarball. https://gitlab.freedesktop.org/libopenraw/exempi/-/issues/26 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPCore/source/ParseRDF.cpp new/exempi-2.6.2/XMPCore/source/ParseRDF.cpp --- old/exempi-2.6.1/XMPCore/source/ParseRDF.cpp 2021-11-18 04:53:53.000000000 +0100 +++ new/exempi-2.6.2/XMPCore/source/ParseRDF.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -386,7 +386,7 @@ if ( name.size() <= 5 ) return false; if ( strncmp ( name.c_str(), "rdf:_", 5 ) != 0 ) return false; for ( size_t i = 5; i < name.size(); ++i ) { - if ( (name[i] < '0') | (name[i] > '9') ) return false; + if ( (name[i] < '0') || (name[i] > '9') ) return false; } return true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPCore/source/XMPUtils.cpp new/exempi-2.6.2/XMPCore/source/XMPUtils.cpp --- old/exempi-2.6.1/XMPCore/source/XMPUtils.cpp 2021-11-18 04:53:53.000000000 +0100 +++ new/exempi-2.6.2/XMPCore/source/XMPUtils.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -2479,7 +2479,9 @@ XMP_Int32 temp; XMP_Assert ( sizeof(*binValue) == sizeof(XMP_DateTime) ); - (void) memset ( binValue, 0, sizeof(*binValue) ); // AUDIT: Safe, using sizeof destination. + // (Exempi) UNSAFE. You don't memset a C++ object. + *binValue = XMP_DateTime(); + //(void) memset ( binValue, 0, sizeof(*binValue) ); // AUDIT: Safe, using sizeof destination. size_t strSize = strlen ( strValue ); bool timeOnly = ( (strValue[0] == 'T') || diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FileHandlers/MPEG4_Handler.cpp new/exempi-2.6.2/XMPFiles/source/FileHandlers/MPEG4_Handler.cpp --- old/exempi-2.6.1/XMPFiles/source/FileHandlers/MPEG4_Handler.cpp 2021-11-18 04:53:53.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FileHandlers/MPEG4_Handler.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -350,7 +350,9 @@ static void SecondsToXMPDate ( XMP_Uns64 isoSeconds, XMP_DateTime * xmpDate ) { - memset ( xmpDate, 0, sizeof(XMP_DateTime) ); // AUDIT: Using sizeof(XMP_DateTime) is safe. + // (Exempi) UNSAFE. You don't memset a C++ object. + *xmpDate = XMP_DateTime(); + // memset ( xmpDate, 0, sizeof(XMP_DateTime) ); // AUDIT: Using sizeof(XMP_DateTime) is safe. XMP_Int32 days = (XMP_Int32) (isoSeconds / 86400); isoSeconds -= ((XMP_Uns64)days * 86400); @@ -1886,8 +1888,10 @@ ISOMedia::BoxInfo prevBox, lastBox; XMP_Uns8 buffer [16]; // Enough to create an extended header. - memset ( &prevBox, 0, sizeof(prevBox) ); // AUDIT: Using sizeof(prevBox) is safe. - memset ( &lastBox, 0, sizeof(lastBox) ); // AUDIT: Using sizeof(lastBox) is safe. + // (Exempi) UNSAFE. You don't memset a C++ object. + // (Exempi) Here the constructor is already called. + //memset ( &prevBox, 0, sizeof(prevBox) ); // AUDIT: Using sizeof(prevBox) is safe. + //memset ( &lastBox, 0, sizeof(lastBox) ); // AUDIT: Using sizeof(lastBox) is safe. prevPos = lastPos = nextPos = 0; while ( nextPos != fileSize ) { if ( checkAbort && abortProc(abortArg) ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FileHandlers/P2_Handler.cpp new/exempi-2.6.2/XMPFiles/source/FileHandlers/P2_Handler.cpp --- old/exempi-2.6.1/XMPFiles/source/FileHandlers/P2_Handler.cpp 2021-11-18 04:53:53.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FileHandlers/P2_Handler.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -158,7 +158,7 @@ if ( gpName != "CONTENTS" ) return false; if ( ! CheckContentFolderName ( parentName ) ) return false; - if ( (parentName == "AUDIO") | (parentName == "VOICE") ) { + if ( (parentName == "AUDIO") || (parentName == "VOICE") ) { if ( clipName.size() < 3 ) return false; clipName.erase ( clipName.size() - 2 ); } @@ -232,7 +232,7 @@ XIO::SplitLeafName ( &pseudoPath, &parentName ); // Remove the 2 intermediate folder levels. XIO::SplitLeafName ( &pseudoPath, &ignored ); - if ( (parentName == "AUDIO") | (parentName == "VOICE") ) { + if ( (parentName == "AUDIO") || (parentName == "VOICE") ) { if ( clipName.size() >= 3 ) clipName.erase ( clipName.size() - 2 ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FileHandlers/Scanner_Handler.cpp new/exempi-2.6.2/XMPFiles/source/FileHandlers/Scanner_Handler.cpp --- old/exempi-2.6.1/XMPFiles/source/FileHandlers/Scanner_Handler.cpp 2021-11-18 04:53:53.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FileHandlers/Scanner_Handler.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -164,7 +164,8 @@ if ( ! beLenient ) return -1; if ( main == -1 ) { main = pkt; - memset ( &latestTime, 0, sizeof(latestTime) ); + // (Exempi) Unsafe, constructor is already called + //memset ( &latestTime, 0, sizeof(latestTime) ); } } else if ( main == -1 ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/AIFF/AIFFReconcile.cpp new/exempi-2.6.2/XMPFiles/source/FormatSupport/AIFF/AIFFReconcile.cpp --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/AIFF/AIFFReconcile.cpp 2021-11-18 04:53:53.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/AIFF/AIFFReconcile.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -27,7 +27,7 @@ { kXMP_NS_DC, "creator", AIFFMetadata::kAuthor, kNativeType_StrUTF8, kXMPType_Array, true, false, kExport_Always }, // dc:creator <-> FORM:AIFF/AUTH { kXMP_NS_DC, "rights", AIFFMetadata::kCopyright, kNativeType_StrUTF8, kXMPType_Localized, true, false, kExport_Always }, // dc:rights <-> FORM:AIFF/(c) { kXMP_NS_DM, "logComment", AIFFMetadata::kAnnotation, kNativeType_StrUTF8, kXMPType_Simple, true, false, kExport_Always }, // xmpDM:logComment <-> FORM:AIFF/ANNO - { NULL } + { NULL, nullptr, 0, kNativeType_Str, kXMPType_Simple, false, false, kExport_Never } }; XMP_Bool AIFFReconcile::importToXMP( SXMPMeta& outXMP, const MetadataSet& inMetaData ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/ASF_Support.cpp new/exempi-2.6.2/XMPFiles/source/FormatSupport/ASF_Support.cpp --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/ASF_Support.cpp 2021-11-18 04:53:53.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/ASF_Support.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1396,7 +1396,8 @@ // A little more simple code converts this to an XMP date string: XMP_DateTime date; - memset ( &date, 0, sizeof ( date ) ); + // (Exempi) Unsafe to memset, constructor called + // memset ( &date, 0, sizeof ( date ) ); date.year = 1601; // The MS date origin. date.month = 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/ID3_Support.cpp new/exempi-2.6.2/XMPFiles/source/FormatSupport/ID3_Support.cpp --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/ID3_Support.cpp 2021-11-18 04:53:53.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/ID3_Support.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -126,7 +126,7 @@ { "64", "Native American" }, { "65", "Cabaret" }, { "66", "New Wave" }, - { "67", "Psychadelic" }, + { "67", "Psychedelic" }, { "68", "Rave" }, { "69", "Showtunes" }, { "70", "Trailer" }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.cpp new/exempi-2.6.2/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.cpp --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.cpp 2021-11-18 04:53:54.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/ISOBaseMedia_Support.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -251,7 +251,11 @@ { XMP_Assert(parentRef != 0); const BoxNode & parent = *((BoxNode*)parentRef); - if (info != 0) memset(info, 0, sizeof(BoxInfo)); + if (info != 0) { + // (Exempi) Unsafe to memset() + *info = BoxInfo(); + //memset(info, 0, sizeof(BoxInfo)); + } if (childIndex >= parent.children.size()) return 0; @@ -269,7 +273,11 @@ { XMP_Assert(parentRef != 0); const BoxNode & parent = *((BoxNode*)parentRef); - if (info != 0) memset(info, 0, sizeof(BoxInfo)); + if (info != 0) { + // (Exempi) Unsafe to memset() + *info = BoxInfo(); + //memset(info, 0, sizeof(BoxInfo)); + } if (parent.children.empty()) return 0; size_t i = 0, limit = parent.children.size(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/META_Support.cpp new/exempi-2.6.2/XMPFiles/source/FormatSupport/META_Support.cpp --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/META_Support.cpp 2021-11-18 04:53:54.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/META_Support.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -114,7 +114,11 @@ { size_t pathLen = strlen(boxPath); XMP_Assert((pathLen >= 4) && XMP_LitNMatch(boxPath, "meta", 4)); - if (info != 0) memset(info, 0, sizeof(BoxInfo)); + if (info != 0) { + // (Exempi) Unsafe to memset + *info = BoxInfo(); + //memset(info, 0, sizeof(BoxInfo)); + } const char * pathPtr = boxPath + 5; // Skip the "meta/" portion. const char * pathEnd = boxPath + pathLen; @@ -150,9 +154,9 @@ else subtreeSize = 8; - if (node.boxType == ISOMedia::k_uuid) + if (node.boxType == ISOMedia::k_uuid) { subtreeSize += 16; // id of uuid is 16 bytes long - + } for (size_t i = 0, limit = node.children.size(); i < limit; ++i) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/MOOV_Support.cpp new/exempi-2.6.2/XMPFiles/source/FormatSupport/MOOV_Support.cpp --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/MOOV_Support.cpp 2021-11-18 04:53:54.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/MOOV_Support.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -44,7 +44,11 @@ { size_t pathLen = strlen(boxPath); XMP_Assert ( (pathLen >= 4) && XMP_LitNMatch ( boxPath, "moov", 4 ) ); - if ( info != 0 ) memset ( info, 0, sizeof(BoxInfo) ); + if ( info != 0 ) { + // (Exempi) Unsafe to memset + *info = BoxInfo(); + //memset ( info, 0, sizeof(BoxInfo) ); + } const char * pathPtr = boxPath + 5; // Skip the "moov/" portion. const char * pathEnd = boxPath + pathLen; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/RIFF.hpp new/exempi-2.6.2/XMPFiles/source/FormatSupport/RIFF.hpp --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/RIFF.hpp 2021-11-18 04:53:54.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/RIFF.hpp 2022-06-25 23:43:18.000000000 +0200 @@ -160,7 +160,7 @@ //{ kPropChunkISRC, to be decided, "" , prop_SIMPLE }, //{ kPropChunkITCH, to be decided, "" , prop_SIMPLE }, - { 0, 0, 0 } // sentinel + { 0, 0, 0, prop_SIMPLE } // sentinel }; static Mapping listTdatProps[] = { @@ -169,7 +169,7 @@ { kPropChunk_tc_A, kXMP_NS_DM, "altTimecode" , prop_TIMEVALUE }, // special: must end up in dm:timeValue child { kPropChunk_rn_O, kXMP_NS_DM, "tapeName" , prop_SIMPLE }, { kPropChunk_rn_A, kXMP_NS_DM, "altTapeName" , prop_SIMPLE }, - { 0, 0, 0 } // sentinel + { 0, 0, 0, prop_SIMPLE } // sentinel }; // ================================================================================================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/ReconcileIPTC.cpp new/exempi-2.6.2/XMPFiles/source/FormatSupport/ReconcileIPTC.cpp --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/ReconcileIPTC.cpp 2021-11-18 04:53:54.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/ReconcileIPTC.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -197,7 +197,8 @@ size_t chPos, digits; XMP_DateTime xmpDate; - memset ( &xmpDate, 0, sizeof(xmpDate) ); + // (Exempi) unsafe. Constructor is already called + //memset ( &xmpDate, 0, sizeof(xmpDate) ); chPos = 0; for ( digits = 0; digits < 4; ++digits, ++chPos ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/ReconcileTIFF.cpp new/exempi-2.6.2/XMPFiles/source/FormatSupport/ReconcileTIFF.cpp --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/ReconcileTIFF.cpp 2021-11-18 04:53:54.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/ReconcileTIFF.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -98,7 +98,7 @@ { /* 305 */ kTIFF_Software, kTIFF_ASCIIType, kAnyCount, kExport_Always, kXMP_NS_TIFF, "Software" }, // Has alias to xmp:CreatorTool. { /* 315 */ kTIFF_Artist, kTIFF_ASCIIType, kAnyCount, kExport_Always, "", "" }, // ! Has a special mapping. { /* 33432 */ kTIFF_Copyright, kTIFF_ASCIIType, kAnyCount, kExport_Always, "", "" }, // ! Has a special mapping. - { 0xFFFF, 0, 0, 0 } // ! Must end with sentinel. + { 0xFFFF, 0, 0, 0, nullptr, nullptr } // ! Must end with sentinel. }; static const TIFF_MappingToXMP sExifIFDMappings[] = { @@ -175,7 +175,7 @@ { /* 41995 */ kTIFF_DeviceSettingDescription, kTIFF_UndefinedType, kAnyCount, kExport_InjectOnly, "", "" }, // ! Has a special mapping. { /* 41996 */ kTIFF_SubjectDistanceRange, kTIFF_ShortType, 1, kExport_InjectOnly, kXMP_NS_EXIF, "SubjectDistanceRange" }, - { 0xFFFF, 0, 0, 0 } // ! Must end with sentinel. + { 0xFFFF, 0, 0, 0, 0, nullptr } // ! Must end with sentinel. }; static const TIFF_MappingToXMP sGPSInfoIFDMappings[] = { @@ -206,7 +206,7 @@ { /* 28 */ kTIFF_GPSAreaInformation, kTIFF_UndefinedType, kAnyCount, kExport_InjectOnly, "", "" }, // ! Has a special mapping. { /* 30 */ kTIFF_GPSDifferential, kTIFF_ShortType, 1, kExport_InjectOnly, kXMP_NS_EXIF, "GPSDifferential" }, { /* 31 */ kTIFF_GPSHPositioningError, kTIFF_RationalType, 1, kExport_InjectOnly, kXMP_NS_ExifEX, "GPSHPositioningError" }, - { 0xFFFF, 0, 0, 0 } // ! Must end with sentinel. + { 0xFFFF, 0, 0, 0, 0, nullptr } // ! Must end with sentinel. }; // ================================================================================================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/WAVE/WAVEBehavior.cpp new/exempi-2.6.2/XMPFiles/source/FormatSupport/WAVE/WAVEBehavior.cpp --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/WAVE/WAVEBehavior.cpp 2022-02-13 00:39:28.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/WAVE/WAVEBehavior.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -599,13 +599,16 @@ const XMP_Uns8* data; XMP_Uns64 size = ds64Chunk.getData(&data); - memset( &ds64, 0, kMinimumDS64ChunkSize); + // (Exempi) Unsafe for memset + ds64 = WAVEBehavior::DS64(); + // memset( &ds64, 0, kMinimumDS64ChunkSize); // // copy fix input data into RF64 block (except chunk size table) // Safe as fixed size matches size of struct that is #pragma packed(1) // - memcpy( &ds64, data, kMinimumDS64ChunkSize ); + ds64.From(data, kMinimumDS64ChunkSize); + // memcpy( &ds64, data, kMinimumDS64ChunkSize ); // If there is more data but the table length is <= 0 then this is not a valid ds64 chunk if (size > kMinimumDS64ChunkSize && ds64.tableLength > 0 && ((size - kMinimumDS64ChunkSize) >= (ds64.tableLength * sizeof(ChunkSize64)))) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/WAVE/WAVEBehavior.h new/exempi-2.6.2/XMPFiles/source/FormatSupport/WAVE/WAVEBehavior.h --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/WAVE/WAVEBehavior.h 2021-11-18 04:53:54.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/WAVE/WAVEBehavior.h 2022-06-25 23:43:18.000000000 +0200 @@ -44,6 +44,17 @@ XMP_Uns32 id; // Ctor ChunkSize64(): size(0), id(0) {} + // (Exempi) we need a from buffer + constexpr static size_t dataSize() { + return sizeof(size) + sizeof(id); + } + // (Exempi) This code is not endian neutreal + size_t From(const XMP_Uns8* data) { + size = *(const XMP_Uns64*)data; + data += sizeof(size); + id = *(const XMP_Uns32*)data; + return dataSize(); + } }; struct DS64 @@ -58,6 +69,47 @@ // ctor DS64(): riffSize(0), dataSize(0), sampleCount(0), tableLength(0), trailingBytes(0) {} + // (Exempi) we need a from buffer + constexpr static size_t preludeSize() { + return sizeof(riffSize) + sizeof(dataSize) + sizeof(sampleCount) + + sizeof(tableLength); + } + // (Exempi) This code is not endian neutreal + size_t From(const XMP_Uns8* data, size_t s) { + size_t copied = 0; + if (s < preludeSize()) { + return copied; + } + riffSize = *(const XMP_Uns64*)data; + data += sizeof(riffSize); + dataSize = *(const XMP_Uns64*)data; + data += sizeof(dataSize); + sampleCount = *(const XMP_Uns64*)data; + data += sizeof(sampleCount); + tableLength = *(const XMP_Uns32*)data; + data += sizeof(tableLength); + copied += preludeSize(); + + if (s - copied >= sizeof(trailingBytes)) { + trailingBytes = *(const XMP_Uns32*)data; + data += sizeof(trailingBytes); + copied += sizeof(trailingBytes); + + size_t idx = 0; + table.resize((s - copied) / ChunkSize64::dataSize()); + while (s - copied) { + if (s - copied >= ChunkSize64::dataSize()) { + size_t b = table[idx].From(data); + data += b; + copied += b; + } + else { + break; + } + } + } + return copied; + } }; #if SUNOS_SPARC || SUNOS_X86 #pragma pack ( ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/XMPFiles/source/FormatSupport/WAVE/WAVEReconcile.cpp new/exempi-2.6.2/XMPFiles/source/FormatSupport/WAVE/WAVEReconcile.cpp --- old/exempi-2.6.1/XMPFiles/source/FormatSupport/WAVE/WAVEReconcile.cpp 2021-11-18 04:53:54.000000000 +0100 +++ new/exempi-2.6.2/XMPFiles/source/FormatSupport/WAVE/WAVEReconcile.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -57,7 +57,7 @@ { kXMP_NS_BWF, kBWF_version, BEXTMetadata::kVersion, kNativeType_Uns16, kXMPType_Simple, false, false, kExport_Never }, // bext:version <-> BEXT:version // special case: bext:umid <-> BEXT:UMID { kXMP_NS_BWF, kBWF_codingHistory, BEXTMetadata::kCodingHistory, kNativeType_StrLocal, kXMPType_Simple, false, false, kExport_Always }, // bext:codingHistory <-> BEXT:codingHistory - { NULL } + { NULL, nullptr, 0, kNativeType_Str, kXMPType_Simple, false, false, kExport_Never } }; static const char * kDM_shotNumber = "shotNumber"; @@ -102,7 +102,7 @@ // special case for startTimeCode // xmpDM:startTimecode <-> iXML:TIMECODE_RATE, iXML:TIMECODE_FLAG and bext:timeReference. { kXMP_NS_BWF, kBWF_timeStampSampleRate, iXMLMetadata::kTimeStampSampleRate, kNativeType_Uns64, kXMPType_Simple, false, false, kExport_NoDelete }, // bext::timeStampSampleRate <-> iXML // special case for TRACK_LIST // ixml:Track_List <-> ixml:trackList - { NULL } + { NULL, nullptr, 0, kNativeType_Str, kXMPType_Simple, false, false, kExport_Never } }; static const MetadataPropertyInfo kINFOProperties[] = @@ -129,7 +129,7 @@ { kXMP_NS_RIFFINFO, "source", INFOMetadata::kSource, kNativeType_StrUTF8, kXMPType_Simple, true, false, kExport_Always }, // riffinfo:source <-> ISRC { kXMP_NS_RIFFINFO, "technician", INFOMetadata::kTechnican, kNativeType_StrUTF8, kXMPType_Simple, true, false, kExport_Always }, // riffinfo:technician <-> ITCH - { NULL } + { NULL, nullptr, 0, kNativeType_Str, kXMPType_Simple, false, false, kExport_Never } }; static const MetadataPropertyInfo kDISPProperties[] = @@ -137,7 +137,7 @@ // XMP NS XMP Property Name Native Metadata Identifier Datatype Datatype Delete Priority ExportPolicy { kXMP_NS_DC, "title", DISPMetadata::kTitle, kNativeType_StrUTF8, kXMPType_Localized, false, true, kExport_Always }, // dc:title <-> DISP // Special case: DISP will overwrite LIST/INFO:INAM in dc:title if existing - { NULL } + { NULL, nullptr, 0, kNativeType_Str, kXMPType_Simple, false, false, kExport_Never } }; static const MetadataPropertyInfo kCartProperties[] = @@ -162,7 +162,7 @@ { kXMP_NS_AEScart, "TagText", CartMetadata::kTagText, kNativeType_StrLocal, kXMPType_Simple, true, false, kExport_Always }, { kXMP_NS_AEScart, "LevelReference", CartMetadata::kLevelReference, kNativeType_Int32, kXMPType_Simple, true, false, kExport_Always }, // Special case Post Timer - { NULL } + { NULL, nullptr, 0, kNativeType_Str, kXMPType_Simple, false, false, kExport_Never } }; // cr8r is not yet required for WAVE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/build/GNUmakefile.in new/exempi-2.6.2/build/GNUmakefile.in --- old/exempi-2.6.1/build/GNUmakefile.in 2022-02-13 06:34:25.000000000 +0100 +++ new/exempi-2.6.2/build/GNUmakefile.in 2022-06-25 23:45:26.000000000 +0200 @@ -1,7 +1,7 @@ -# GNUmakefile.in generated by automake 1.16.2 from GNUmakefile.am. +# GNUmakefile.in generated by automake 1.16.5 from GNUmakefile.am. # @configure_input@ -# Copyright (C) 1994-2020 Free Software Foundation, Inc. +# Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -131,7 +131,6 @@ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \ $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \ - $(top_srcdir)/m4/ax_ld_check_flag.m4 \ $(top_srcdir)/m4/ax_require_defined.m4 \ $(top_srcdir)/m4/ax_tls.m4 $(top_srcdir)/m4/boost.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ @@ -181,8 +180,6 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__DIST_COMMON = $(srcdir)/GNUmakefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ @@ -202,8 +199,9 @@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -219,6 +217,7 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ EXEMPI_AGE = @EXEMPI_AGE@ EXEMPI_CURRENT = @EXEMPI_CURRENT@ @@ -417,7 +416,6 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/configure.ac new/exempi-2.6.2/configure.ac --- old/exempi-2.6.1/configure.ac 2022-02-13 06:34:02.000000000 +0100 +++ new/exempi-2.6.2/configure.ac 2022-06-25 23:43:18.000000000 +0200 @@ -8,7 +8,7 @@ dnl the same distribution terms as the rest of that program. AC_PREREQ(2.50) -AC_INIT(exempi,2.6.1) +AC_INIT(exempi,2.6.2) AM_INIT_AUTOMAKE([foreign dist-bzip2 subdir-objects]) AM_MAINTAINER_MODE m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])]) @@ -69,7 +69,8 @@ dnl 2.5.2 is the revision 8.0.2 dnl 2.6.0 is the revision 9.1.0 dnl 2.6.1 is the revision 9.1.1 -AC_SUBST([EXEMPI_REVISION], [1]) +dnl 2.6.2 is the revision 9.1.2 +AC_SUBST([EXEMPI_REVISION], [2]) AC_SUBST([EXEMPI_AGE], [1]) AC_SUBST([EXEMPI_CURRENT], [9]) AC_SUBST([EXEMPI_CURRENT_MIN], @@ -157,20 +158,13 @@ fi dnl end TLS -dnl check LD Flags -dnl we need a valid symfile. Make one. -cat >> _ac_foo.sym << _ACEOF -foo -_ACEOF -AX_LD_CHECK_FLAG([-Wl,--retain-symbols-file=_ac_foo.sym],[],[],[ -dnl success -cv_support_symfile=yes -],[ -dnl fail -cv_support_symfile=no -]) -rm -f _ac_foo.sym -AM_CONDITIONAL(HAVE_SYMBOLS_FILE, test x$cv_support_symfile = "xyes") + +AC_ARG_ENABLE(samples, + AC_HELP_STRING([--enable-samples=yes|no], + [enable the samples. (default is yes)]), + enable_samples=$enableval, + enable_samples=yes) +AM_CONDITIONAL([ENABLE_SAMPLES], [test x"$enable_samples" = xyes]) AC_ARG_ENABLE(unittest, @@ -179,7 +173,7 @@ ENABLE_UNITTEST=$enableval, ENABLE_UNITTEST=yes) if test x$ENABLE_UNITTEST = xyes ; then - BOOST_REQUIRE([1.48.0]) + BOOST_REQUIRE([1.60.0]) BOOST_TEST([mt-s]) else ENABLE_UNITTEST=no @@ -239,13 +233,17 @@ -Wexceptions \ -Wheader-guard \ -Wformat \ + -Werror=bitwise-instead-of-logical \ + -Werror=class-memaccess \ dnl -Wformat-nonliteral \ -Wformat-security \ -Wlogical-not-parentheses \ - -Wmisleading-indentation \ + -Werror=misleading-indentation \ -Wmissing-noreturn \ + -Werror=missing-field-initializers \ -Woverloaded-virtual \ -Wpointer-arith \ + -Wgnu-array-member-paren-init \ dnl -Wredundant-decls \ -Wpointer-bool-conversion \ -Wshadow \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/Makefile.am new/exempi-2.6.2/exempi/Makefile.am --- old/exempi-2.6.1/exempi/Makefile.am 2021-11-18 04:52:14.000000000 +0100 +++ new/exempi-2.6.2/exempi/Makefile.am 2022-06-25 23:43:18.000000000 +0200 @@ -69,14 +69,8 @@ libexempi_la_LDFLAGS = -version-info @EXEMPI_VERSION_INFO@ -if HAVE_SYMBOLS_FILE -libexempi_la_LDFLAGS += -Wl,--retain-symbols-file=$(srcdir)/libexempi.sym -endif - dist_man1_MANS = exempi.1 -EXTRA_DIST = libexempi.sym - ### tests AUTOMAKE_OPTIONS = parallel-tests @@ -105,7 +99,7 @@ noinst_HEADERS = tests/utils.h -EXTRA_DIST += $(check_DATA) $(check_SCRIPTS) +EXTRA_DIST = $(check_DATA) $(check_SCRIPTS) CLEANFILES = test.jpg test.webp AM_CXXFLAGS = @BOOST_CPPFLAGS@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/libexempi.sym new/exempi-2.6.2/exempi/libexempi.sym --- old/exempi-2.6.1/exempi/libexempi.sym 2020-06-24 17:27:53.000000000 +0200 +++ new/exempi-2.6.2/exempi/libexempi.sym 1970-01-01 01:00:00.000000000 +0100 @@ -1,67 +0,0 @@ -xmp_append_array_item -xmp_copy -xmp_delete_localized_text -xmp_delete_property -xmp_files_can_put_xmp -xmp_files_close -xmp_files_free -xmp_files_get_new_xmp -xmp_files_get_xmp -xmp_files_new -xmp_files_open -xmp_files_open_new -xmp_files_put_xmp -xmp_free -xmp_get_array_item -xmp_get_error -xmp_get_localized_text -xmp_get_property -xmp_get_property_bool -xmp_get_property_date -xmp_get_property_float -xmp_get_property_int32 -xmp_get_property_int64 -xmp_has_property -xmp_init -xmp_iterator_free -xmp_iterator_new -xmp_iterator_next -xmp_iterator_skip -xmp_namespace_prefix -xmp_new -xmp_new_empty -xmp_parse -xmp_prefix_namespace_uri -xmp_register_namespace -xmp_serialize -xmp_serialize_and_format -xmp_set_array_item -xmp_set_localized_text -xmp_set_property -xmp_set_property_bool -xmp_set_property_date -xmp_set_property_float -xmp_set_property_int32 -xmp_set_property_int64 -xmp_string_cstr -xmp_string_free -xmp_string_new -xmp_terminate -NS_CAMERA_RAW_SAVED_SETTINGS -NS_CAMERA_RAW_SETTINGS -NS_CC -NS_CRS -NS_DC -NS_DIMENSIONS_TYPE -NS_EXIF -NS_EXIF_AUX -NS_IPTC4XMP -NS_LIGHTROOM -NS_PDF -NS_PHOTOSHOP -NS_RDF -NS_TIFF -NS_TPG -NS_XAP -NS_XAP_RIGHTS -NS_XMP_META diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/test-bgo.cpp new/exempi-2.6.2/exempi/tests/test-bgo.cpp --- old/exempi-2.6.1/exempi/tests/test-bgo.cpp 2020-06-24 17:27:53.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/test-bgo.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* * exempi - test-bgo.cpp * - * Copyright (C) 2007-2008 Hubert Figuiere + * Copyright (C) 2007-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,28 +40,33 @@ #include <string> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "utils.h" #include "xmpconsts.h" #include "xmp.h" -int test_main(int argc, char* argv[]) +boost::unit_test::test_suite* init_unit_test_suite(int argc, char * argv[]) { prepare_test(argc, argv, "fdo18635.jpg"); + return nullptr; +} + +BOOST_AUTO_TEST_CASE(test_bgo) +{ BOOST_CHECK(xmp_init()); XmpFilePtr xf = xmp_files_open_new(g_testfile.c_str(), XMP_OPEN_READ); - BOOST_CHECK(xf != NULL); - if (xf == NULL) { - return 1; + BOOST_CHECK(xf != nullptr); + if (xf == nullptr) { + return; } XmpPtr xmp = xmp_files_get_new_xmp(xf); - BOOST_CHECK(xmp != NULL); + BOOST_CHECK(xmp != nullptr); BOOST_CHECK(xmp_free(xmp)); BOOST_CHECK(xmp_files_free(xf)); @@ -70,5 +75,4 @@ BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/test-exempi-core.cpp new/exempi-2.6.2/exempi/tests/test-exempi-core.cpp --- old/exempi-2.6.1/exempi/tests/test-exempi-core.cpp 2021-09-01 16:26:34.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/test-exempi-core.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* * exempi - test-exempi-core.cpp * - * Copyright (C) 2007-2013 Hubert Figuiere + * Copyright (C) 2007-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,7 +40,7 @@ #include <string> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "utils.h" #include "xmpconsts.h" @@ -48,11 +48,14 @@ using boost::unit_test::test_suite; -// void test_exempi() -int test_main(int argc, char *argv[]) +boost::unit_test::test_suite* init_unit_test_suite(int argc, char * argv[]) { prepare_test(argc, argv, "test1.xmp"); + return nullptr; +} +BOOST_AUTO_TEST_CASE(test_exempi_core) +{ size_t len; char *buffer; @@ -231,5 +234,4 @@ BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/test-fdo83313.cpp new/exempi-2.6.2/exempi/tests/test-fdo83313.cpp --- old/exempi-2.6.1/exempi/tests/test-fdo83313.cpp 2020-06-24 17:27:53.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/test-fdo83313.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* - * exempi - test-bgo.cpp + * exempi - test-fd083313.cpp * - * Copyright (C) 2007-2008 Hubert Figuiere + * Copyright (C) 2007-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,23 +40,28 @@ #include <string> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "utils.h" #include "xmpconsts.h" #include "xmp.h" -int test_main(int argc, char* argv[]) +boost::unit_test::test_suite* init_unit_test_suite(int argc, char * argv[]) { prepare_test(argc, argv, "fdo83313.jpg"); + return nullptr; +} + +BOOST_AUTO_TEST_CASE(test_fd083313) +{ BOOST_CHECK(xmp_init()); XmpFilePtr xf = xmp_files_open_new(g_testfile.c_str(), XMP_OPEN_READ); BOOST_CHECK(xf != NULL); if (xf == NULL) { - return 1; + exit(128); } XmpPtr xmp = xmp_files_get_new_xmp(xf); @@ -70,5 +75,4 @@ BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/test-iterator.cpp new/exempi-2.6.2/exempi/tests/test-iterator.cpp --- old/exempi-2.6.1/exempi/tests/test-iterator.cpp 2021-09-01 16:26:34.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/test-iterator.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* * exempi - test3.cpp * - * Copyright (C) 2007-2017 Hubert Figuiere + * Copyright (C) 2007-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -43,7 +43,7 @@ #include <string> #include <vector> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include <boost/format.hpp> #include "utils.h" @@ -52,11 +52,14 @@ using boost::unit_test::test_suite; -// void test_exempi_iterate() -int test_main(int argc, char *argv[]) +boost::unit_test::test_suite* init_unit_test_suite(int argc, char * argv[]) { prepare_test(argc, argv, "test1.xmp"); + return nullptr; +} +BOOST_AUTO_TEST_CASE(test_exempi_iterate) +{ size_t len; char *buffer; @@ -170,5 +173,4 @@ BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/test-serialise.cpp new/exempi-2.6.2/exempi/tests/test-serialise.cpp --- old/exempi-2.6.1/exempi/tests/test-serialise.cpp 2020-06-24 17:27:53.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/test-serialise.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* * exempi - test-serialise.cpp * - * Copyright (C) 2007-2008 Hubert Figuiere + * Copyright (C) 2007-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,19 +40,21 @@ #include <string> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "utils.h" #include "xmpconsts.h" #include "xmp.h" -using boost::unit_test::test_suite; - -// void test_serialize() -int test_main(int argc, char *argv[]) +boost::unit_test::test_suite* init_unit_test_suite(int argc, char * argv[]) { prepare_test(argc, argv, "test1.xmp"); + return nullptr; +} + +BOOST_AUTO_TEST_CASE(test_serialise) +{ size_t len; char *buffer; FILE *f = fopen(g_testfile.c_str(), "rb"); @@ -98,5 +100,4 @@ BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/test-tiff-leak.cpp new/exempi-2.6.2/exempi/tests/test-tiff-leak.cpp --- old/exempi-2.6.1/exempi/tests/test-tiff-leak.cpp 2020-06-24 17:27:53.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/test-tiff-leak.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* * exempi - test-tiff-leak.cpp * - * Copyright (C) 2007-2008,2010 Hubert Figuiere + * Copyright (C) 2007-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -41,7 +41,7 @@ #include <string> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "utils.h" #include "xmp.h" @@ -49,11 +49,15 @@ /** See http://www.adobeforums.com/webx/.3bc42b73 for the orignal * test case */ -// void test_tiff_leak() -int test_main(int argc, char *argv[]) +boost::unit_test::test_suite* init_unit_test_suite(int argc, char * argv[]) { prepare_test(argc, argv, "../../samples/testfiles/BlueSquare.jpg"); + return nullptr; +} + +BOOST_AUTO_TEST_CASE(test_tiff_leak) +{ std::string orig_tiff_file = g_src_testdir + "../../samples/testfiles/BlueSquare.tif"; BOOST_CHECK(copy_file(orig_tiff_file, "test.tif")); @@ -64,7 +68,7 @@ BOOST_CHECK(f != NULL); if (f == NULL) { - return 1; + exit(128); } XmpPtr xmp; @@ -82,5 +86,4 @@ BOOST_CHECK(unlink("test.tif") == 0); BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/test-webp.cpp new/exempi-2.6.2/exempi/tests/test-webp.cpp --- old/exempi-2.6.1/exempi/tests/test-webp.cpp 2020-06-24 17:27:53.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/test-webp.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* * exempi - test-webp.cpp * - * Copyright (C) 2007-2016 Hubert Figuiere + * Copyright (C) 2007-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -41,19 +41,20 @@ #include <string> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "utils.h" #include "xmp.h" #include "xmpconsts.h" -using boost::unit_test::test_suite; - - -int test_main(int argc, char *argv[]) +boost::unit_test::test_suite* init_unit_test_suite(int argc, char * argv[]) { prepare_test(argc, argv, "../../samples/testfiles/BlueSquare.webp"); + return nullptr; +} +BOOST_AUTO_TEST_CASE(test_webp) +{ BOOST_CHECK(xmp_init()); BOOST_CHECK(xmp_files_check_file_format(g_testfile.c_str()) == XMP_FT_WEBP); @@ -61,7 +62,7 @@ BOOST_CHECK(f != NULL); if (f == NULL) { - return 1; + exit(128); } XmpPtr xmp = xmp_files_get_new_xmp(f); @@ -78,7 +79,7 @@ BOOST_CHECK(f != NULL); if (f == NULL) { - return 2; + exit(128); } BOOST_CHECK(xmp_set_property(xmp, NS_PHOTOSHOP, "ICCProfile", "foo", 0)); @@ -94,7 +95,7 @@ BOOST_CHECK(f != NULL); if (f == NULL) { - return 3; + exit(128); } xmp = xmp_files_get_new_xmp(f); BOOST_CHECK(xmp != NULL); @@ -114,6 +115,4 @@ BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/test-write-new-prop.cpp new/exempi-2.6.2/exempi/tests/test-write-new-prop.cpp --- old/exempi-2.6.1/exempi/tests/test-write-new-prop.cpp 2020-06-24 17:27:53.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/test-write-new-prop.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* - * exempi - test1.cpp + * exempi - test-write-new-prop.cpp * - * Copyright (C) 2007-2008 Hubert Figuiere + * Copyright (C) 2007-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,19 +40,20 @@ #include <string> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "utils.h" #include "xmpconsts.h" #include "xmp.h" -using boost::unit_test::test_suite; - -// void test_write_new_property() -int test_main(int argc, char *argv[]) +boost::unit_test::test_suite* init_unit_test_suite(int argc, char * argv[]) { prepare_test(argc, argv, "test1.xmp"); + return nullptr; +} +BOOST_AUTO_TEST_CASE(test_write_new_property) +{ size_t len; char *buffer; @@ -146,5 +147,4 @@ BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/test-xmpfiles-write.cpp new/exempi-2.6.2/exempi/tests/test-xmpfiles-write.cpp --- old/exempi-2.6.1/exempi/tests/test-xmpfiles-write.cpp 2020-06-24 17:27:53.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/test-xmpfiles-write.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* * exempi - test-xmpfile-write.cpp * - * Copyright (C) 2007-2008,2010 Hubert Figuiere + * Copyright (C) 2007-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -41,19 +41,20 @@ #include <string> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "utils.h" #include "xmp.h" #include "xmpconsts.h" -using boost::unit_test::test_suite; - -// void test_xmpfiles_write() -int test_main(int argc, char *argv[]) +boost::unit_test::test_suite* init_unit_test_suite(int argc, char * argv[]) { prepare_test(argc, argv, "../../samples/testfiles/BlueSquare.jpg"); + return nullptr; +} +BOOST_AUTO_TEST_CASE(test_xmpfiles_write) +{ BOOST_CHECK(xmp_init()); BOOST_CHECK(xmp_files_check_file_format(g_testfile.c_str()) == XMP_FT_JPEG); @@ -61,7 +62,7 @@ BOOST_CHECK(f != NULL); if (f == NULL) { - return 1; + exit(128); } XmpPtr xmp = xmp_files_get_new_xmp(f); @@ -78,7 +79,7 @@ BOOST_CHECK(f != NULL); if (f == NULL) { - return 2; + exit(128); } BOOST_CHECK(xmp_set_property(xmp, NS_PHOTOSHOP, "ICCProfile", "foo", 0)); @@ -94,7 +95,7 @@ BOOST_CHECK(f != NULL); if (f == NULL) { - return 3; + exit(128); } xmp = xmp_files_get_new_xmp(f); BOOST_CHECK(xmp != NULL); @@ -115,6 +116,4 @@ BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/test-xmpfiles.cpp new/exempi-2.6.2/exempi/tests/test-xmpfiles.cpp --- old/exempi-2.6.1/exempi/tests/test-xmpfiles.cpp 2020-06-24 17:27:53.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/test-xmpfiles.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* * exempi - test-xmpfiles.cpp * - * Copyright (C) 2007-2016 Hubert Figuière + * Copyright (C) 2007-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -41,19 +41,21 @@ #include <string> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "utils.h" #include "xmp.h" #include "xmpconsts.h" -using boost::unit_test::test_suite; - -// void test_xmpfiles() -int test_main(int argc, char* argv[]) +boost::unit_test::test_suite* init_unit_test_suite(int argc, char * argv[]) { prepare_test(argc, argv, "../../samples/testfiles/BlueSquare.jpg"); + return nullptr; +} + +BOOST_AUTO_TEST_CASE(test_xmpfiles) +{ BOOST_CHECK(xmp_init()); XmpFilePtr f = xmp_files_open_new(g_testfile.c_str(), XMP_OPEN_READ); @@ -125,5 +127,4 @@ BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/test-xmpformat.cpp new/exempi-2.6.2/exempi/tests/test-xmpformat.cpp --- old/exempi-2.6.1/exempi/tests/test-xmpformat.cpp 2021-11-18 04:52:14.000000000 +0100 +++ new/exempi-2.6.2/exempi/tests/test-xmpformat.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* * exempi - test-xmpformat.cpp * - * Copyright (C) 2020 Hubert Figuière + * Copyright (C) 2020-2022 Hubert Figuière * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -36,7 +36,7 @@ #include <map> #include <string> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "xmp.h" @@ -65,7 +65,12 @@ // This test would have caught: // https://gitlab.freedesktop.org/libopenraw/exempi/-/issues/20 // -int test_main(int , char *[]) +boost::unit_test::test_suite* init_unit_test_suite(int, char **) +{ + return nullptr; +} + +BOOST_AUTO_TEST_CASE(test_xmpformat) { const char* srcdir = getenv("srcdir"); if (!srcdir) { @@ -93,6 +98,4 @@ auto xft = xmp_files_check_file_format(imagepath.c_str()); BOOST_CHECK(xft == testcase.second); } - - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/testcpp.cpp new/exempi-2.6.2/exempi/tests/testcpp.cpp --- old/exempi-2.6.1/exempi/tests/testcpp.cpp 2021-09-01 16:26:34.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/testcpp.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* * exempi - testcpp.cpp * - * Copyright (C) 2011 Hubert Figuiere + * Copyright (C) 2011-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,16 +34,19 @@ * OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "utils.h" #include "xmp.h" #include "xmpconsts.h" #include "xmp++.hpp" -using boost::unit_test::test_suite; +boost::unit_test::test_suite* init_unit_test_suite(int, char **) +{ + return nullptr; +} -int test_main(int /*argc*/, char* /*argv*/ []) +BOOST_AUTO_TEST_CASE(test_cpp) { // this test is totally useless without leak checking. // but for compiling. @@ -65,5 +68,4 @@ BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/testinit.cpp new/exempi-2.6.2/exempi/tests/testinit.cpp --- old/exempi-2.6.1/exempi/tests/testinit.cpp 2021-09-01 16:26:34.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/testinit.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* * exempi - testinit.cpp * - * Copyright (C) 2007 Hubert Figuiere + * Copyright (C) 2007-2022 Hubert Figuière * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,17 +40,20 @@ #include <string> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include "utils.h" #include "xmpconsts.h" #include "xmp.h" -// void test_exempi_init() -int test_main(int argc, char* argv[]) +boost::unit_test::test_suite* init_unit_test_suite(int argc, char * argv[]) { prepare_test(argc, argv, "test1.xmp"); + return nullptr; +} +BOOST_AUTO_TEST_CASE(test_exempi_init) +{ size_t len; char* buffer; @@ -92,5 +95,4 @@ free(buffer); BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/exempi/tests/testparse.cpp new/exempi-2.6.2/exempi/tests/testparse.cpp --- old/exempi-2.6.1/exempi/tests/testparse.cpp 2021-09-01 16:26:34.000000000 +0200 +++ new/exempi-2.6.2/exempi/tests/testparse.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -1,7 +1,7 @@ /* - * exempi - test3.cpp + * exempi - testparse.cpp * - * Copyright (C) 2007-2017 Hubert Figuiere + * Copyright (C) 2007-2022 Hubert Figuière * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -40,17 +40,19 @@ #include <string> #include <iostream> -#include <boost/test/minimal.hpp> +#include <boost/test/included/unit_test.hpp> #include <boost/format.hpp> #include "utils.h" #include "xmp.h" #include "xmpconsts.h" -using boost::unit_test::test_suite; +boost::unit_test::test_suite* init_unit_test_suite(int, char**) +{ + return nullptr; +} -// void test_exempi_iterate() -int test_main(int, char *[]) +BOOST_AUTO_TEST_CASE(test_parse) { char *buffer; @@ -73,5 +75,4 @@ BOOST_CHECK(!g_lt->check_leaks()); BOOST_CHECK(!g_lt->check_errors()); - return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/m4/ax_ld_check_flag.m4 new/exempi-2.6.2/m4/ax_ld_check_flag.m4 --- old/exempi-2.6.1/m4/ax_ld_check_flag.m4 2020-06-24 17:27:53.000000000 +0200 +++ new/exempi-2.6.2/m4/ax_ld_check_flag.m4 1970-01-01 01:00:00.000000000 +0100 @@ -1,96 +0,0 @@ -# =========================================================================== -# http://autoconf-archive.cryp.to/ax_ld_check_flag.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_LD_CHECK_FLAG(FLAG-TO-CHECK,[PROLOGUE],[BODY],[ACTION-IF-SUCCESS],[ACTION-IF-FAILURE]) -# -# DESCRIPTION -# -# This macro tests if the C++ compiler supports the flag FLAG-TO-CHECK. If -# successfull execute ACTION-IF-SUCCESS otherwise ACTION-IF-FAILURE. -# PROLOGUE and BODY are optional and should be used as in AC_LANG_PROGRAM -# macro. -# -# Example: -# -# AX_LD_CHECK_FLAG([-Wl,-L/usr/lib],[],[],[ -# ... -# ],[ -# ... -# ]) -# -# This code is inspired from KDE_CHECK_COMPILER_FLAG macro. Thanks to -# Bogdan Drozdowski <bogda...@op.pl> for testing and bug fixes. -# -# LAST MODIFICATION -# -# 2008-04-12 -# -# COPYLEFT -# -# Copyright (c) 2008 Francesco Salvestrini <salvestr...@users.sourceforge.net> -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program. If not, see <http://www.gnu.org/licenses/>. -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Macro Archive. When you make and -# distribute a modified version of the Autoconf Macro, you may extend this -# special exception to the GPL to apply to your modified version as well. - -AC_DEFUN([AX_LD_CHECK_FLAG],[ - AC_PREREQ([2.61]) - AC_REQUIRE([AC_PROG_CXX]) - AC_REQUIRE([AC_PROG_SED]) - - flag=`echo "$1" | $SED 'y% .=/+-(){}<>:*,%_______________%'` - - AC_CACHE_CHECK([whether the linker accepts the $1 flag], - [ax_cv_ld_check_flag_$flag],[ - - #AC_LANG_PUSH([C]) - - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $1" - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([$2],[$3]) - ],[ - eval "ax_cv_ld_check_flag_$flag=yes" - ],[ - eval "ax_cv_ld_check_flag_$flag=no" - ]) - - LDFLAGS="$save_LDFLAGS" - - #AC_LANG_POP - - ]) - - AS_IF([eval "test \"`echo '$ax_cv_ld_check_flag_'$flag`\" = yes"],[ - : - $4 - ],[ - : - $5 - ]) -]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/samples/source/XMPFilesCoverage.cpp new/exempi-2.6.2/samples/source/XMPFilesCoverage.cpp --- old/exempi-2.6.1/samples/source/XMPFilesCoverage.cpp 2021-11-18 04:53:54.000000000 +0100 +++ new/exempi-2.6.2/samples/source/XMPFilesCoverage.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -301,18 +301,18 @@ DumpHandlerInfo(); - TestOneFile ( "../../../testfiles/BlueSquare.ai" ); - TestOneFile ( "../../../testfiles/BlueSquare.eps" ); - TestOneFile ( "../../../testfiles/BlueSquare.indd" ); - TestOneFile ( "../../../testfiles/BlueSquare.jpg" ); - TestOneFile ( "../../../testfiles/BlueSquare.pdf" ); - TestOneFile ( "../../../testfiles/BlueSquare.psd" ); - TestOneFile ( "../../../testfiles/BlueSquare.tif" ); - TestOneFile ( "../../../testfiles/BlueSquare.avi" ); - TestOneFile ( "../../../testfiles/BlueSquare.mov" ); - TestOneFile ( "../../../testfiles/BlueSquare.mp3" ); - TestOneFile ( "../../../testfiles/BlueSquare.wav" ); - TestOneFile ( "../../../testfiles/BlueSquare.png" ); + TestOneFile ( "../../../../testfiles/BlueSquare.ai" ); + TestOneFile ( "../../../../testfiles/BlueSquare.eps" ); + TestOneFile ( "../../../../testfiles/BlueSquare.indd" ); + TestOneFile ( "../../../../testfiles/BlueSquare.jpg" ); + TestOneFile ( "../../../../testfiles/BlueSquare.pdf" ); + TestOneFile ( "../../../../testfiles/BlueSquare.psd" ); + TestOneFile ( "../../../../testfiles/BlueSquare.tif" ); + TestOneFile ( "../../../../testfiles/BlueSquare.avi" ); + TestOneFile ( "../../../../testfiles/BlueSquare.mov" ); + TestOneFile ( "../../../../testfiles/BlueSquare.mp3" ); + TestOneFile ( "../../../../testfiles/BlueSquare.wav" ); + TestOneFile ( "../../../../testfiles/BlueSquare.png" ); } catch ( XMP_Error & excep ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/samples/source/common/DumpFile.cpp new/exempi-2.6.2/samples/source/common/DumpFile.cpp --- old/exempi-2.6.1/samples/source/common/DumpFile.cpp 2021-11-18 04:53:54.000000000 +0100 +++ new/exempi-2.6.2/samples/source/common/DumpFile.cpp 2022-06-25 23:43:18.000000000 +0200 @@ -530,7 +530,12 @@ XMP_Uns16 part4; // Written big endian. XMP_Uns8 part5[6]; // Written in order. - ASF_GUID() {}; + // (Exempi) needs a proper constructor + ASF_GUID() + : part1(0), part2(0), part3(0), part4(0), + part5{ 0, 0, 0, 0, 0, 0 } + { + } ASF_GUID(XMP_Uns32 p1, XMP_Uns16 p2, XMP_Uns16 p3, XMP_Uns16 p4, const void* p5) { part1 = GetUns32LE(&p1); @@ -538,7 +543,7 @@ part3 = GetUns16LE(&p3); part4 = GetUns16BE(&p4); memcpy(&part5, p5, 6); - }; + } }; @@ -3133,7 +3138,8 @@ tree->addComment("%s <<unknown object>>, offset %u (0x%X), size %u", indent.c_str(), objOffset, objOffset, size32); ASF_GUID guid; - memset(&guid, 0, sizeof(ASF_GUID)); + // (Exempi) memset is unsafe, constructor is called) + // memset(&guid, 0, sizeof(ASF_GUID)); guid.part1 = GetUns32LE(&objHeader->guid.part1); guid.part2 = GetUns16LE(&objHeader->guid.part2); guid.part3 = GetUns16LE(&objHeader->guid.part3); @@ -3194,7 +3200,8 @@ totalSecs -= ((XMP_Int64)minute * 60); XMP_Int32 second = (XMP_Int32)totalSecs; XMP_DateTime binDate; - memset(&binDate, 0, sizeof(binDate)); + // (Exempi) memset is unsafe. Constructor has been called. + // memset(&binDate, 0, sizeof(binDate)); binDate.year = 1601; binDate.month = 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/exempi-2.6.1/third-party/expat/ReadMe.txt new/exempi-2.6.2/third-party/expat/ReadMe.txt --- old/exempi-2.6.1/third-party/expat/ReadMe.txt 2021-11-18 04:53:54.000000000 +0100 +++ new/exempi-2.6.2/third-party/expat/ReadMe.txt 2022-06-25 23:43:18.000000000 +0200 @@ -2,13 +2,13 @@ although adapters for other parsers can easily be written. The most recent version of Expat used -with XMP is 2.1.0. To use Expat: +with XMP is 2.4.7. To use Expat: 1. Obtain a copy of the Expat distribution. One good place is SourceForge: - http://sourceforge.net/projects/expat/files/expat/2.1.0/ + http://sourceforge.net/projects/expat/files/expat/2.4.7/ @@ -16,7 +16,7 @@ -For Expat version 2.0.0 the contents of .../third-party/expat/lib are: +For Expat version 2.4.7 the contents of .../third-party/expat/lib are: