exiv2 icon indicating copy to clipboard operation
exiv2 copied to clipboard

Investigate removing xmpsdk from code base

Open clanmills opened this issue 4 years ago • 6 comments

Exiv2 has been shipping with a copy of the Adobe XMPsdk for a very long time. We don't include the code of any other dependency (expat, libz, libiconv and others). I think the reason is because the early versions of exiv2 had no CMake support and XMPsdk has always exclusively used CMake.

Luis added support to build and link more modern versions of XMPsdk to v0.27 for several reasons:

  1. Several users requested that we use XMPsdk as an external library because they wanted to use it in their applications. Our 2008 edition of XMPsdk was giving them link problems.
  2. We're stuck in a time-warp with this elderly version of XMPsdk.

clanmills avatar Apr 03 '21 08:04 clanmills

I'm adding the INI parser to this list of things to remove which is currently also just dropped into the exiv2 source tree

hassec avatar Jul 16 '21 15:07 hassec

I've opened a new issue concerning src/ini.cpp #1811.

I think we should restore the title of this issue to Investigate removing xmpsdk from code base because those issues are different.

clanmills avatar Jul 30 '21 14:07 clanmills

I noticed that the XMPsdk is on GitHub now: https://github.com/adobe/XMP-Toolkit-SDK So maybe we can include it as a sub-module.

kevinbackhouse avatar Aug 04 '21 20:08 kevinbackhouse

We should recheck #1821 once we move to an external xmpsdk and if the error persists maybe even report it upstream

hassec avatar Aug 06 '21 12:08 hassec

I've thought of a way to remove class Exiv2::INIReader from the library. https://github.com/Exiv2/exiv2/issues/1811#issuecomment-994822280

I'm going to restore the top of this issue to only focus on XMPsdk. This is a major part of Exiv2 and it's a substantial project to consider how to change the integration of XMPsdk.

clanmills avatar Dec 14 '21 08:12 clanmills

I'm restoring this issue to focus on XMPsdk which is 25,000 lines of code. The code concerning INIReader is 500 lines and is discussed in #1811.

897 rmills@rmillsm1:~/gnu/github/exiv2/0.27-maintenance $ find . -name "ini*pp" | xargs wc -l
     225 ./include/exiv2/ini.hpp
      63 ./samples/ini-test.cpp
     297 ./src/ini.cpp
     585 total
898 rmills@rmillsm1:~/gnu/github/exiv2/0.27-maintenance $ find xmpsdk -name "ini*pp" | xargs wc -l
899 rmills@rmillsm1:~/gnu/github/exiv2/0.27-maintenance $ find xmpsdk -name "*pp" | xargs wc -l
     965 xmpsdk/include/TXMPUtils.hpp
     123 xmpsdk/include/client-glue/WXMP_Common.hpp
     226 xmpsdk/include/client-glue/TXMPIterator.incl_cpp
     622 xmpsdk/include/client-glue/WXMPMeta.hpp
     322 xmpsdk/include/client-glue/WXMPUtils.hpp
     935 xmpsdk/include/client-glue/TXMPMeta.incl_cpp
     167 xmpsdk/include/client-glue/WXMPFiles.hpp
     493 xmpsdk/include/client-glue/TXMPUtils.incl_cpp
      83 xmpsdk/include/client-glue/WXMPIterator.hpp
      89 xmpsdk/include/XMPSDK.hpp
     235 xmpsdk/include/TXMPIterator.hpp
    1803 xmpsdk/include/TXMPMeta.hpp
      63 xmpsdk/include/XMP.incl_cpp
     418 xmpsdk/src/XMPMeta.hpp
     235 xmpsdk/src/MD5.cpp
    1342 xmpsdk/src/XMPMeta-Serialize.cpp
     188 xmpsdk/src/WXMPIterator.cpp
     221 xmpsdk/src/XMPUtils.hpp
    1306 xmpsdk/src/XMPMeta-Parse.cpp
     507 xmpsdk/src/ExpatAdapter.cpp
     534 xmpsdk/src/XMPCore_Impl.hpp
    1665 xmpsdk/src/UnicodeConversions.cpp
    1212 xmpsdk/src/XMPMeta-GetSet.cpp
     148 xmpsdk/src/XMPIterator.hpp
     129 xmpsdk/src/UnicodeInlines.incl_cpp
     463 xmpsdk/src/XML_Node.cpp
    1310 xmpsdk/src/WXMPMeta.cpp
     626 xmpsdk/src/WXMPUtils.cpp
     140 xmpsdk/src/XMLParserAdapter.hpp
    1346 xmpsdk/src/XMPUtils-FileInfo.cpp
    1653 xmpsdk/src/XMPMeta.cpp
    1296 xmpsdk/src/ParseRDF.cpp
    2157 xmpsdk/src/XMPUtils.cpp
      50 xmpsdk/src/ExpatAdapter.hpp
    1468 xmpsdk/src/XMPCore_Impl.cpp
     121 xmpsdk/src/UnicodeConversions.hpp
     736 xmpsdk/src/XMPIterator.cpp
   25397 total
900 rmills@rmillsm1:~/gnu/github/exiv2/0.27-maintenance $ 

clanmills avatar Dec 15 '21 14:12 clanmills