I totally get where you are coming from

I have used OIIO on three operating systems and the effort to get OpenEXR,
libpng, libjpeg. zlib, libtiff and libboost in an orchestrated way as CI
controlled dependencies is a bit like hard work compared to magic with vcpkg

You can add more deps if you want additional features.

But with all magic it is just an illusion so when you get stung by some
debug .dll that you didn’t ask for you have to pull down the curtains on
the illusion and do the work.

So what do you think?

Magic or no magic which is the way to go?

I know that building from system libs is not the solution. If you didn’t
deliberately build it from source under your own configuration would you
want to link to it?

vcpkg and NuGet and all the *nix library managers are all under the same
umbrella really.

Where do you draw the line?

Sam

On Thu, 16 Jul 2020 at 6:06 pm, Radu Arjocu <[email protected]>
wrote:

> Thanks for the reference. Yes, I've used that tool, but mainly the older
> DependencyWalker <https://www.dependencywalker.com/> (depends64). The
> dependency on "dbgeng.dll" is directly to "OpenImageIO.dll" on Windows. But
> Larry Gritz's answer was: "*There is no direct dependence on dbgeng, at
> least not on purpose*".
>
> Initially, I assumed either the dependency is set by Visual Studio because
> of OIIO code/settings (but couldn't find anything in the OIIO code on a
> quick lookup) or because of some wrong setting in the Vcpkg toolchain for
> CMake (which I've used to create the VS solution). Another way was to
> search into the code of libraries that OIIO depends on, and I've truly
> found there the "dbghelp.hpp" header in boost (I thought this was the
> probable culprit). Maybe Vcpkg is compiling and requiring more dependencies
> than required for building OIIO -- yet compiling all these libraries
> manually was a too big hassle in Windows (I've put a try, but it's just not
> worth it).
>
> Unfortunately, with the workaround, we don't have the necessary time to
> investigate further.
>
> *Radu Arjocu*
> Software Engineer • Masstech Innovations Inc. • www.masstech.com
> <http://www.masstech.com>
> ------------------------------
> *From:* Oiio-dev <[email protected]> on behalf of
> Phil Miller <[email protected]>
> *Sent:* Wednesday, July 15, 2020 16:50
> *To:* OpenImageIO developers <[email protected]>
> *Subject:* Re: [Oiio-dev] OIIO DLL loading failure because of dbghelp.dll
> (used by dbgeng.dll)
>
>
> You can use https://github.com/lucasg/Dependencies
> <https://protect2.fireeye.com/v1/url?k=66640059-38f23f54-66636055-86f331ced5b2-8f19a9bf585ca3a1&q=1&e=0549193c-c870-453a-944f-a55dd73883a4&u=https%3A%2F%2Fgithub.com%2Flucasg%2FDependencies>
> to see what is pulling in a particular dll. I use the released build. There
> is a gui, which is good for helping to understand the dependencies, but a
> full text dump from the non-gui, Dependencies.exe, is easier to search
> through.
>
>
>
> Good luck.
>
> Phil
>
>
>
> *From:* Oiio-dev <[email protected]> *On Behalf Of *Radu
> Arjocu
> *Sent:* Wednesday, July 15, 2020 6:25 AM
> *To:* [email protected]
> *Subject:* [EXTERNAL] Re: [Oiio-dev] OIIO DLL loading failure because of
> dbghelp.dll (used by dbgeng.dll)
>
>
>
> Hello,
>
>
>
> I have read Larry Gritz's and Till Dechent's answer, but these won't be in
> my reply, since I've subscribed to the mailing list just now (I somehow
> expected to receive direct replies).
>
>
>
> We managed to find a workaround, and maybe this will help others. Most
> likely, one or more) boost libraries use/include "boost/winapi/dbghelp.hpp"
> and that why the "dbgeng.dll" dependency appears on Windows. I didn't have
> the time to research which boost library; a quick search didn't yield
> anything. The solution was to add more libraries from the dependency tree
> into the installer (I guess their versions must match):
>
>     "dbgeng.dll", "dbghelp.dll", "DbgModel.dll"
>
>
>
> Windows installations come with older version of these DLL-s. Debugging
> Tools for Windows, which also ships with Visual Studio, needs to be
> installed for newer versions -- it's also a possibility (less likely) that
> Visual Studio somehow introduces the dependency.
>
>
>
> Thank you for your quick answers.
>
>
>
> *Radu Arjocu*
> Software Engineer • Masstech Innovations Inc. • www.masstech.com
> <https://protect2.fireeye.com/v1/url?k=3bd34111-65457e1c-3bd4211d-86f331ced5b2-9a3b4f09a779d967&q=1&e=0549193c-c870-453a-944f-a55dd73883a4&u=https%3A%2F%2Furldefense.com%2Fv3%2F__http%3A%2Fwww.masstech.com__%3B%21%21Nv3xtKNH_4uope0%21xPPmdou2QdPW8Zv8lPcZgW-4zVxKnsL58nzEBUJIhHUtiIWaShmaxUTwJNdZf_ZL%24>
> ------------------------------
>
> *From:* Radu Arjocu
> *Sent:* Monday, July 13, 2020 17:24
> *To:* [email protected] <[email protected]>
> *Subject:* OIIO DLL loading failure because of dbghelp.dll (used by
> dbgeng.dll)
>
>
>
> Hello,
>
>
>
> This is my second email to you.
>
>
>
> I am building OIIO through Vcpkg, CMake and Visual Studio 2019. Vcpkg
> currently builds OIIO 2.1.16.0
> <https://protect2.fireeye.com/v1/url?k=95a790c5-cb31afc8-95a0f0c9-86f331ced5b2-342c093117d66552&q=1&e=0549193c-c870-453a-944f-a55dd73883a4&u=https%3A%2F%2Furldefense.com%2Fv3%2F__http%3A%2F2.1.16.0__%3B%21%21Nv3xtKNH_4uope0%21xPPmdou2QdPW8Zv8lPcZgW-4zVxKnsL58nzEBUJIhHUtiIWaShmaxUTwJG-Jie7d%24>,
> and I have used "core, libraw, opencolorio, openjpeg, webp, tools"
> components/flags in building OIIO. I have used the Vcpkg toolchain in CMake
> to generate the VS solution (projects) for OIIO, and have added the
> modifications discussed in the first email (reading DPX from memory &
> fixing Windows long paths) onto OIIO release 2.1.17.0
> <https://protect2.fireeye.com/v1/url?k=0b520427-55c43b2a-0b55642b-86f331ced5b2-b6c8c30a475daad9&q=1&e=0549193c-c870-453a-944f-a55dd73883a4&u=https%3A%2F%2Furldefense.com%2Fv3%2F__http%3A%2F2.1.17.0__%3B%21%21Nv3xtKNH_4uope0%21xPPmdou2QdPW8Zv8lPcZgW-4zVxKnsL58nzEBUJIhHUtiIWaShmaxUTwJHzcyGom%24>,
> then built the final "OpenImageIO.dll" and "OpenImageIO_Util.dll".
>
>
>
> We want to use OIIO in our products that deploy/install on multiple
> Windows versions (mostly servers): Windows Server 2008 R2, Windows Server
> 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 10
> different flavors, Windows 7 SP3 -- all 64-bit and our products are 64-bit.
> While testing on different Windows machines and environments, there is a
> Windows 10 machine in that OIIO fails to load with the following message:
>
> "The procedure entry point SymEnumSymbolsExW could not be located in the
> dynamic link library
>
> C:\WINDOWS\SYSTEM32\dbgeng.dll"
>
> The culprit is actually "dbghelp.dll" used by "dbgeng.dll". As an initial
> fix, I have added "dbghelp.dll" into the installer, but this seems to cause
> the installer to fail on Win Server 2016. It seems to me that different
> versions of dbgeng.dll in the OS need specific versions of dbghelp.dll,
> with other DLL on the cain of dependecies.
>
>
>
> So, my questions are:
>
>    - Is there a was to disable the OIIO dependency on "dbgeng.dll" (e.g.
>    a compile switch)? -- this would be our preferred option
>    - If not, has anyone encountered a problem like this and has another
>    fix/workaround?
>
> Thank you,
>
> *Radu Arjocu*
> Software Engineer • Masstech Innovations Inc. • www.masstech.com
> <https://protect2.fireeye.com/v1/url?k=098581aa-5713bea7-0982e1a6-86f331ced5b2-1525db72cb84a716&q=1&e=0549193c-c870-453a-944f-a55dd73883a4&u=https%3A%2F%2Furldefense.com%2Fv3%2F__http%3A%2Fwww.masstech.com__%3B%21%21Nv3xtKNH_4uope0%21xPPmdou2QdPW8Zv8lPcZgW-4zVxKnsL58nzEBUJIhHUtiIWaShmaxUTwJNdZf_ZL%24>
> _______________________________________________
> Oiio-dev mailing list
> [email protected]
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
>
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to