This article documents how to update library dependencies for Windows.
C++ libraries (such as Qt) are highly dependent on the MSVC runtime (MSVCRT) version and require separate packages for each MSVC compiler version.
Many libraries (including GnuTLS, Gcrypt, libssh) are cross-compiled with MingW on Linux. Where possible, try to reuse packages from other trusted projects such as OpenSUSE or Debian.
At minimum a library package should contain header files, runtime libraries (.dll) and import libraries (.lib). Note that MingW packages typically have .dll.a files, just rename those to .lib.
- Have you create a subdirectory, named after the zip file?
Are .lib and .dll files included in the bin directory?
- Are .dll files stripped?
Are header files included in the include directory?
Does the directory with .dll files match the <name>_DLL_DIR variable in cmake/modules/Find<name>.cmake?
Procedure for updating libraries
First time: make a local copy of the repositories:
svn checkout svn+ssh://svn.wireshark.org/svn/wireshark-win32-libs/trunk svn checkout svn+ssh://svn.wireshark.org/svn/wireshark-win64-libs/trunk
Add a single package:
Update existing copies: svn up
- Update README.txt in the top-level directory.
svn add packages/<package>-<version>.zip
svn commit -m "Update <package> to <version>"
Once you are ready to publish a tagged version of all packages. Tag name convention: yyyy-mm-dd for git master, yyyy-mm-dd-A.B for master-A.B. Example:
svn copy -m "Create a tag for <package> <version>" ^/trunk ^/tags/2018-08-03
Finally update tools/win-setup.ps1 in the appropriate git branches.
Display the last ten changes including their paths: svn log -vl10
Display all tags: svn ls ^/tags