Closed jkunkee closed 5 years ago
@mattock Can we retest with this patch included? This will give a minor merge conflict in OemVista.inf.in. Easily resolved by just accepting "DriverVer=filled in by stampinf" to replace the line coming from PR 48.
Note that it doesn't matter what's on that line, so keeping it either way is technically valid (though one is more explanatory).
Yes, what is added here should be preferred as it documents that date and version will get stamped by stampinf.
Looks promising...! Thanks, Jon.
Forgot to mention that I did a rebuild including this patch and checked that the inf processed by stampinf now gets the right date and version as
DriverVer = 07/26/2018,9.22.2.601
By the way, the new tapinstall.exe has acquired a dependency on VCRUNTIME140.dll which cannot be expected to be present.
Irritating. The CRT can be statically linked, but it may require changing the project. I’ll take a look.
Sent from my Windows 10 device [15254 - 16.0.10325.20094]
From: Selva Nair Sent: Tuesday, July 31, 2018 12:38 PM To: OpenVPN/tap-windows6 Cc: Jon Kunkee; Author Subject: Re: [OpenVPN/tap-windows6] Give stampinf correct DriverVerinformation (#65)
Forgot to mention that I did a rebuild including this patch and checked that the inf processed by stampinf now gets the right date and version as DriverVer = 07/26/2018,9.22.2.601 By the way, the new tapinstall.exe has acquired a dependency on VCRUNTIME140.dll which cannot be expected to be present. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
There are a few options:
I'm working on 3 at the moment.
Hi,
On Tue, Jul 31, 2018 at 08:50:30PM +0000, Jon Kunkee wrote:
There are a few options:
- We can fork devcon.exe and then it's easy.
- We can suggest the change to static linking upstream. I don't know how that might go.
- We can attempt command line hackery to force static linking.
I'm working on 3 at the moment.
Can we bundle this DLL?
gert -- "If was one thing all people took for granted, was conviction that if you feed honest figures into a computer, honest figures come out. Never doubted it myself till I met a computer with a sense of humor." Robert A. Heinlein, The Moon is a Harsh Mistress
Gert Doering - Munich, Germany gert@greenie.muc.de
The SDK comes with the VC 2017 Redist intended for exactly that purpose, yes. I am fuzzy on the fine print here, but:
%root_of_EWDK%\Program Files\Microsoft Visual Studio\2017\BuildTools\VC\Redist\MSVC
as vcredist_x86.exe%root_of_EWDK%\Program Files\Microsoft Visual Studio\2017\BuildTools\VC\Redist\MSVC\14.13.26020\x86\Microsoft.VC141.CRT
and is likely to be standalone and downlevel-compatible to Windows 7. Option 3 does not look practical.
Are we allowed to redistribute this runtime or does it have to be downloaded on the target host at install time? If we can't bundle it, we may have to revert back to the old prebuilt binaries until a good solution can be found.
Yes: https://docs.microsoft.com/en-us/cpp/ide/redistributing-visual-cpp-files
Sorry I’m not able to do more explication at the present moment.
Sent from my Windows 10 device [15254 - 16.0.10325.20094]
From: Selva Nair Sent: Tuesday, July 31, 2018 6:13 PM To: OpenVPN/tap-windows6 Cc: Jon Kunkee; Author Subject: Re: [OpenVPN/tap-windows6] Give stampinf correct DriverVerinformation (#65)
Are we allowed to redistribute this runtime or does it have to be downloaded on the target host at install time? If we can't bundle it, we may have to revert back to the old prebuilt binaries until a good solution can be found. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
AFAIK, you are not allowed to distribute Microsoft's run-time DLLs along your binaries. I remember reading the EULA a few years back, explaining you MUST use either vcredist_x86.exe or MSM merge modules to deploy the VC run-time libraries.
I suggest you stick to the old-reliable version of devcon.exe/tapinstall.exe for the time being. I have MSI packaging for TAP driver finished. MSI packaging for OpenVPN itself should follow soon. None will need devcon.exe.
AFAIK, you are not allowed to distribute Microsoft's run-time DLLs along your binaries. I remember reading the EULA a few years back, explaining you MUST use either vcredist_x86.exe or MSM merge modules to deploy the VC run-time libraries.
This used to be my understanding too. But as Jon pointed out and based on deployment methods listed here copying the dlls to the applications's directory on target computer is a possible option though not recommended.
_Local deployment, in which you copy particular Visual C++ DLLs from your Visual Studio installation—typically in \Program Files (x86)\Microsoft Visual Studio version\VC\Redist\platform\library\—and install them on target computers in the same folder as the application executable._
Note that files in [VSFOLDER]\VC\Redist are expressly listed as redistributable (unmodified) except for 3 exceptions (files named with suffix _nonredist)
From an end user's perspective using vcredist_x86.exe or merge modules is better as those put the dlls in a central location, won't duplicate already existing ones, Windows update can manage them etc. But in the short run we can either use the old binary or include the runtime dll. Unless arm64 needs a new build, choose whichever is easier.
I agree with @rozmansi that we can cut some corners here and use the old tapinstall.exe/devcon.exe in the next installers. I'm almost certain it won't work on ARM64, but I think that is acceptable in the short-term while moving to MSI.
Am I correct that the next test installer should include everything I had in the previous one plus this PR (as-is) plus old, pre-compiled devcon.exe?
Hi,
On Thu, Aug 02, 2018 at 08:19:26AM +0000, Samuli Seppänen wrote:
Am I correct that the next test installer should include everything I had in the previous one plus this PR (as-is) plus old, pre-compiled devcon.exe?
This is how i read it, yes.
gert -- "If was one thing all people took for granted, was conviction that if you feed honest figures into a computer, honest figures come out. Never doubted it myself till I met a computer with a sense of humor." Robert A. Heinlein, The Moon is a Harsh Mistress
Gert Doering - Munich, Germany gert@greenie.muc.de
I assume the "driver version now looks reasonable in device properties" is a side-effect of this PR. If so, it works as it should.
Test installer and signed driver for for Windows 7/8/8.1/Server 2012r2 in case somebody wants to test:
Give stampinf correct DriverVer information
VS2017 has some nice INF-processing infrastructure, but it uses stampinf which insists on adding the DriverVer directive to the INF file itself. This overwrites whatever the INF template produces.
This commit plumbs the INF template values in through stampinf.
Note that the VS2017 GUI field "Driver Version Number" is stored in the project file field
TimeStamp
.