Start Fritzing
Get error message:
Window title: Fritzing.exe - Entry Point Not Found
Message: The procedure entry point EC_curve_nist2nid could not be located in the dynamik link library C:\Program Files\OpenVPN\bin\ssleay32.dll
What I expected should have happened instead:
Fritzing starting without error message
My version of Fritzing and my operating system:
0.9.3 Windows 10 64 bit latest release (autoupdate)
Please also attach any files that help explaining this problem
##
Fritzing does not use openssl directly but it does check for parts updates when started and since you are using a VPN all of your traffic is being redirected through your VPN which does use openssl to secure its connection. So your problem is not with Fritzing but rather with your installation of openVPN.
Well. I am not running through an active VPN connection and all other software - network enabled - works fine both through and without out an active VPN connection and since the error happens in Fritzing.exe who gives the error message Fritzing must be doing something with OpenVPN or? Does it link to it? Does not matter if OpenVPN is running or not (or connected or not).
The libgit2 library that Fritzing uses to check github for parts updates is likely using open ssl. My guess (given it is patch tuesday at least here) is the latest patches for the latest bug have affected open ssl. I haven’t rebooted to update yet so I don’t yet know if it will bite Win7 if this is true.
Edit: just rebooted Win7 to apply the updates and my machine didn’t brick and Fritzing still works, so maybe it isn’t the new patches (or maybe only on Win10
which I’m not running).
Well, any way to get this fixed - any info I can provide. That Fritzing calls a DLL in another program’s install directory seems wrong and is if there is a bug.
It appears to be something odd about your machine. There haven’t been any other complaints about Win10 lately making it unlikely to be patch related and the libgit2 dlls are installed in Fritzing’s code directory. In the case of my Win7 machine that looks to be git2.dll in the same directory with Fritzing.exe. On my development build from source with openssl and libssh2 there is a similar name dll but the production version either has it in git2.dll or doesn’t use it. It is possible that there is something odd about your dll search paths that is confusing fritzing although I thought that Fritzing was supposed to be static linked to avoid such problems. You might check that all the dlls in the Fritzing zip file are actually present in the Fritizng directory on your machine to make sure AV or something else hasn’t eaten one of the expected dlls.
Well, my machine does not “suggest” Fritzing to load a DLL, so Fritzing must be asking for it by itself or by one of its dependencies. If I rename the OpenVPN library - Fritzing does not load the ssleay32.dll at all so it does not seem to care or complain about that if it can’t find one. But it seem like Fritizing loads the dll and expect another version importing an entry that no longer exists in the newest version of ssleay32.dll
Just reading the error it looks like EC_curve_nist2nid is missing from ssleay32.dll, so Win won’t report a missing ssleay32.dll because it’s there, it’s just that version is different to what FZ wants.
Maybe Google EC_curve_nist2nid and ssleay32.dll, because currently FZ is unsupported and only maned by a few - actually one - volunteers that don’t know much about it and are getting no help from the developers.
Actually that specific function is exported by libeay32.dll and not by ssleay32.dll - so it seems like Fritzing or one if its modules are trying to import a function from a wrong dll.
It looks like you know more about debugging on Windows than I do (not hard I will admit ). Did you check that the directory that contains fritzing.exe (C:\fritzing\fritzing.0.9.3b.64.pc in my case) contains git2.dll? I believe that everything Fritzing needs should be contained in that dll (I’m starting to suspect that I don’t need libssh2 and openssl on Windows but could use the native Windows crypto module to avoid a bunch of extra dlls, I may try that later). If that is what the production release did (and I don’t know, I wasn’t here when 0.9.3.b was released) then it may be the Windows crypto module that is looking for libeay32.dll, that seems unlikely to me as my Win7 system only has that dll in my video driver as far as I can see, but it may be different on Win10. So far as we know you are the only one seeing this particular error and there are (or at least were) lots of folks running Fritzing on Win 10. If it will help you I can dig up the windows crypto module that libgit2 docs indicate can be used (it didn’t appear to work for me, possibly because of other problems which is why I used libssh2 and openssl) as it is a funny named cmake file option that I don’t recognize but may be meaningful to a Windows person. I suspect your problem may be that something else installed on your system is changing something about that api that breaks Fritzing, but I’m only speculating because I don’t know if the Windows distribution used that or not. As Old_Grey said, the original developers are not responding in any forum I know of because they are busy with other things now. That’s life. I’m trying (with so far limited success) to get a development environment for Linux and Windows up and able to compile the development version head code (which gets occasional small changes) and to fix bugs so that development can continue, but that’s a long way from knowing what causes errors. For that I can only guess. If you can tell me how to generate the dll dependency page you show above on Fritzing.exe I can do it on my working Win7 system which may tell us what system dlls Fritzing is expecting to find (because I suspect we will find this is in the Windows crypto module that git2.dll may be referencing)
edit: in case it helps here is the Microsoft library that libgit2 on Windows can use for crypto: -DCRYPTO_BACKEND=WinCNG
as I said doesn’t mean anything to me, but may to you.
Hi, Yes it contains git2.dll- to be sure I made a new install (Fritzting does not really install) after deleting the old.
Ok - thanks for the thorough answer and I fully understand this is a hard place to be in - not easy to fix things. It is not really a problem to dismiss the error message. If you or someone else ever gets around to making bigger updates, then at least it is recorded as a potential bug / issue.
Thanks.
The tool I use for showing dependencies is: https://github.com/lucasg/Dependencies
I have not been able to find out what really loads the ssleay32.dll which then seems to generate the error and if I remove the OpenVPN folder no other ssleay32.dll or libeay32.dll is loaded instead. As soon as the error message is acknowledged by pressing OK the two DLLs ssleay32.dll or libeay32.dll are unloaded again. A bit strange.
So it looks like something about openvpn is causing Fritzing confusion (or is doing something to the crypto api that then affects Fritzing because I don’t see the libssh2 and openssl dlls I have in my dev version, which leads me to believe I can simplify my windows build by using the Microsoft api. As I get further towards getting a working Windows build I’ll think about installing openVPN on my dev drive and see if it breaks for me.
edit: This may be as simple as bit rot. The prod release uses libgit2-23.4 (current version is -26.0). Initially on linux I couldn’t compile Fritzing with 26.0 due to api changes and had to install the old version, but someone (I think one of the developers) fixed up some build problems, including that one in the head tree so now it builds with libgit-26.0 so its at least possible that whatever this is is fixed with the latest build.