Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate removing xmpsdk from code base #1515

Open
clanmills opened this issue Apr 3, 2021 · 6 comments
Open

Investigate removing xmpsdk from code base #1515

clanmills opened this issue Apr 3, 2021 · 6 comments
Milestone

Comments

@clanmills
Copy link
Collaborator

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 clanmills added this to the v1.00 milestone Apr 3, 2021
@clanmills clanmills self-assigned this Apr 3, 2021
@hassec hassec added enhancement feature / functionality enhancements refactoring Cleanup / Simplify code -> more readable / robust labels Apr 8, 2021
@clanmills clanmills added architecture and removed enhancement feature / functionality enhancements refactoring Cleanup / Simplify code -> more readable / robust labels Apr 11, 2021
@clanmills clanmills removed their assignment Apr 19, 2021
@hassec
Copy link
Member

hassec commented Jul 16, 2021

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 hassec changed the title Investigate removing xmpsdk from code base Disentangle third party libraries (xmpsdk, ini parser) and exiv2 Jul 16, 2021
@clanmills
Copy link
Collaborator Author

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.

@kevinbackhouse
Copy link
Collaborator

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.

@hassec
Copy link
Member

hassec commented Aug 6, 2021

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

@clanmills clanmills changed the title Disentangle third party libraries (xmpsdk, ini parser) and exiv2 Disentangle third party libraries (xmpsdk, ini parser) from exiv2 Dec 1, 2021
@clanmills clanmills changed the title Disentangle third party libraries (xmpsdk, ini parser) from exiv2 Remove third party libraries (xmpsdk, ini parser) from exiv2 Dec 14, 2021
@clanmills
Copy link
Collaborator Author

clanmills commented Dec 14, 2021

I've thought of a way to remove class Exiv2::INIReader from the library.
#1811 (comment)

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 clanmills changed the title Remove third party libraries (xmpsdk, ini parser) from exiv2 Investigate removing xmpsdk from code base Dec 15, 2021
@clanmills
Copy link
Collaborator Author

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 $ 

@kevinbackhouse kevinbackhouse modified the milestones: v0.28.0, Backlog Nov 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants