-
Notifications
You must be signed in to change notification settings - Fork 6.7k
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
[crashrpt] Add new port #9162
[crashrpt] Add new port #9162
Conversation
Pinging @tbdrake for response. Is work still being done for this PR? |
Sorry I have not spent any more time on this recently, but still would like
to. I have a week of vacation from my day job next week and plan to spend
some time on this then.
…On Tue, Apr 14, 2020, 4:42 AM Lily ***@***.***> wrote:
Pinging @tbdrake <https://github.com/tbdrake> for response. Is work still
being done for this PR?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#9162 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AETGDNPFUFII3QH45DTIL2DRMQOY3ANCNFSM4JTHSOUA>
.
|
I'm still planning to look into replacing the vendored dependencies. |
I'm also interested in this and would be willing to help, but I couldn't find any information on how to list dependencies for a new port. Is it just a |
…e/renaming in previous commit
…ll be copied to tools folder
…() and find_path()
/azp run |
…nd add vcpkg port features to enable building the tests and demos
…rashrpt to replace vendored dependency of dbghelp.
@johannesstricker Thank you, any help and review would be appreciated. I worked on replacing the vendored dependencies as best I could by looking at existing ports in vcpkg. Some vcpkg documentation was also helpful:
Besides the I added feature options One issue I noticed for example is that the "Export..." button in Error Report Details is not successfully saving the error report zip file (it seems to silently fail when I click "Save"): |
Need my help? |
@JackBoosY The build for dbghelp:x86-windows here failed and stdout-x86-windows-log shows this message that dbghelp.lib could not be found where expected:
I think this is because the dbghelp library is included in the Windows SDK installation only if Debugging Tools for Windows feature is included, so maybe the CI system does not have this installed: How should I fix this? |
@tbdrake Can you provide the way to reproduce this? Thanks. |
@JackBoosY Here are the steps I'm doing to build and run the CrashRpt automated tests in Release. Results from my earlier comment were from Debug builds and the steps are similar and I get different results using Debug as well. Also note that there are 3 Using vcpkg and this port:
Using original CrashRpt git repo, CMake GUI, and Visual Studio:
|
@JackBoosY I realized today some of those test failures in my previous comment under Using vcpkg and this port: are just because there needs to be a
However I still get these test failures:
|
There are indeed many more errors, but I don’t know why. |
* Use vendored minizip since it has modifications to support Unicode file paths using wchar_t* which CrashRpt depends on * Add feature "probe" in order to allow excluding the CrashRptProbe library
I found that the issue causing some of the CrashRpt unit tests to fail was that the copy of minizip in CrashRpt has modifications that are needed for CrashRpt to work properly, so when I had changed it to use minizip from vcpkg those things no longer worked. So in the latest commit today I changed this port back to using CrashRpt's vendored copy of minizip. One example of a difference in minizip that caused an issue: https://sourceforge.net/p/crashrpt/code/ci/master/tree/thirdparty/minizip/ioapi.c#l116:
vs https://github.com/madler/zlib/blob/master/contrib/minizip/ioapi.c#L127 (
|
# Conflicts: # scripts/ci.baseline.txt
Our pipeline machine has some problems, please wait for fix it. |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
ports/dbghelp/portfile.cmake
Outdated
|
||
vcpkg_get_windows_sdk(WINDOWS_SDK) | ||
|
||
if (WINDOWS_SDK MATCHES "10.") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (WINDOWS_SDK MATCHES "10.") | |
if (WINDOWS_SDK MATCHES "^10\.") |
or, alternatively,
if (WINDOWS_SDK MATCHES "10.") | |
if (WINDOWS_SDK VERSION_GREATER "10") |
This'll match "9.10.1"
, for example, or "101"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the suggestion, updated to use VERSION_GREATER
… in dbghelp portfile.cmake. Remove redundant check of WINDOWS_SDK version later in script.
This builds the CrashRpt and CrashRptProbe libraries and CrashSender executable that must be distributed with apps that use this package. This is my first attempt at creating a port and I have some notes and questions, so I created this as a draft pull request.
Vendored dependencies
The CrashRpt repository includes old vendored dependencies for the following libraries. These have been replaced (except minizip) in this port with vcpkg dependencies so that these dependencies can be updated and maintained according to the maintainer guide.
minizip(not replaced since CrashRpt's copy has modifications that are necessary for CrashRpt's functionality)CrashSender exe and dependencies copied to "tools" directory
The portfile here copies the CrashSender executables to the "tools" and "debug/tools" directories. CrashSender also depends on a .ini file with localized strings, so the .ini files from the CrashRpt repo are also copied to the "tools" directory. Is there a more appropriate standard location besides "tools" for these files?
Distributing dbghelp.dll
Notes about redistributing dbghelp.dll
https://docs.microsoft.com/en-us/windows/win32/debug/dbghelp-versions?redirectedfrom=MSDN
https://docs.microsoft.com/en-us/windows/win32/debug/calling-the-dbghelp-library
The CrashRpt documentation has this note:
Usage info
In a test app that uses the crashrpt package I added a post-build event like this to copy (and rename the .ini file) to the target directory like this:
https://github.com/tbdrake/vcpkg-samples/tree/master/crashrpt/CrashRptSample
resolves #560