Discussion:
Windows - MSVC 2008, 64-bit and Platform SDK
Alex Burger
2009-04-27 01:11:09 UTC
Permalink
For the binary release of 5.5 I would like to use Microsoft Visual C++
2008 instead of MSVC 6. The reasons for this are:

1) We can provide both 32-bit and 64-bit binaries. It should be
possible with MSVC 6, but I have never tried it.
2) The EULA for MSVC 2008 allows the distribution of the required DLLs
(MSVCR90.DLL etc). This used to be an issue with MSVC 2002 although it
was probably just a misunderstanding of the EULA.
3) MSVC 6 is missing _strtoui64 (strtoull) which is needed for
pass/pass_persist integer64 and counter64. _strtoui64 was introduced in
MSVC 2002 (7.x).
4) I don't think we need to support Windows NT anymore and we certainly
don't need to support Windows 9x. The MSVC 2008 DLLs support Windows
2000 SP4, 2003, XP and Vista.

For #2, we can either distribute the Microsoft DLLs (1.4Meg) or require
that the user install the 'Microsoft Visual C++ 2008 Redistributable
Package' from the Microsoft web site. It's probably easier to just
include the DLLs.

If we want to continue with support for MSVC 6 then #3 needs to be fixed
although I don't think there is much need to support it in 5.5 or
higher. Reasons for not supporting MSVC 6 are:

1) It's old - it came out in 1998 (gcc 2.x days)
2) #3 above
3) The latest Platform SDKs require MSVC 2005 SP1 or higher
4) MSVC 2008 Express is free from Microsoft

I'd also like to remove support for compiling without the SDK. The SDK
is free to download and all the newer MSVC's include it so there is
really no reason to be compiling without it. The SDK is needed for
winExtDll and many of the mibII files. All Windows binaries I have
created in the past have been compiled with the SDK.

I don't plan on changing anything in 5.4.

Anyone have any concerns?

Alex
Dave Shield
2009-04-27 10:09:49 UTC
Permalink
Post by Alex Burger
For the binary release of 5.5 I would like to use Microsoft Visual C++
2008 instead of MSVC 6.
Would this have any impact on those downloading the binaries
(as opposed to those compiling from source)? In particular, if
someone has a relatively old configuration, would the 5.5 binaries
still work (assuming the existing binaries do)?

As far as I can tell, most of the changes you describe are really
relevant to those compiling the source. It doesn't sound as if
this change should be noticable to those simply using the binaries.
In which case, this seems a perfectly reasonable (and safe) change.
Post by Alex Burger
For #2, we can either distribute the Microsoft DLLs (1.4Meg) or require
that the user install the 'Microsoft Visual C++ 2008 Redistributable
Package' from the Microsoft web site.  It's probably easier to just
include the DLLs.
I'd agree. The less in the way of pre-requisite packages, the better.


Dave
Alex Burger
2009-04-27 11:10:24 UTC
Permalink
Hi Dave.
Post by Dave Shield
Post by Alex Burger
For the binary release of 5.5 I would like to use Microsoft Visual C++
2008 instead of MSVC 6.
Would this have any impact on those downloading the binaries
(as opposed to those compiling from source)? In particular, if
someone has a relatively old configuration, would the 5.5 binaries
still work (assuming the existing binaries do)?
As long as they are running Windows 2000 SP4, 2003, 2008, XP or Vista,
they will be fine. Windows NT 4 and Windows 95 users won't be able to
use the new binaries but they can continue to use 5.4. I wasn't
planning on creating new 5.4 binaries unless there is any demand.

Alex
Shachar Shemesh
2009-04-27 14:18:41 UTC
Permalink
Post by Alex Burger
2) The EULA for MSVC 2008 allows the distribution of the required DLLs
(MSVCR90.DLL etc). This used to be an issue with MSVC 2002 although it
was probably just a misunderstanding of the EULA.
As far as I recall, VS 6's terms for redistribution were extremely
similar to those for 2008 (i.e. - if you have a licensed version you are
allowed to distribute, with or without changes, so long as you do it in
binary only). I'm not sure this applied to the express version, however.
As you said, however, these redistributables are available from
Microsoft directly, so no big issue (we do not plan on making changes to
the Visual Studio runtime, do we?)
Post by Alex Burger
For #2, we can either distribute the Microsoft DLLs (1.4Meg) or require
that the user install the 'Microsoft Visual C++ 2008 Redistributable
Package' from the Microsoft web site. It's probably easier to just
include the DLLs.
Of that I'm not so sure.

The 2008 runtime libraries must be installed through the MSI installer.
They cannot be simply placed in a directory (assuming installing to XP
or higher - 2000 can accept them as DLLs). This has caused no ends of
headache for me when using the express version. This is not so terrible
if your project creates an MSI for the actual project as part of the
compilation process (check out how I did it with rsyncrypto[1] if you
want a reference), but the Express edition does not have that specific
module (creating an MSI). In theory, it should be possible to use WiX
instead of whatever VS2008 comes with, but I was not successful in
navigating that particular route.

Why Microsoft chose to not bundle an MSI creator with VS2008 express,
while at the same time open sourcing their MSI creator is beyond me.
Someone theorized that they made VS2008 Express so crappy as to force
you to buy their retail version. I know that worked with me. Then again,
VS2008 Std Upgrade is just $200, and you can qualify for an upgrade if
you have any other IDE you are upgrading from, including eclipse
(explicitly stated[3]).

Also note that even if you do supply an installer, some people do prefer
to receive a set of files they can just copy somewhere and run[3][4].
Unfortunately, this seems to be impossible with VS2008.

Shachar

[1] - http://rsyncrypto.lingnu.com/
[2] -
http://store.microsoft.com/microsoft/Visual-Studio-2008-Standard-Edition-Upgrade/product/99E69042
[3] -
http://sourceforge.net/mailarchive/forum.php?thread_name=000001c8b6c6%24be5cc5f0%246402a8c0%40napoleon&forum_name=rsyncrypto-devel
[4] -
http://sourceforge.net/mailarchive/forum.php?thread_name=e8ed1fa0902130817n6d34bbe9m73f5b61fb1ebfa04%40mail.gmail.com&forum_name=rsyncrypto-devel
--
Shachar Shemesh
Lingnu Open Source Consulting Ltd.
http://www.lingnu.com
Wes Hardaker
2009-04-27 17:51:45 UTC
Permalink
I'm going to defer all judgment to those more familiar with windows
development than I. Thus take these comments as minor:

AB> 4) I don't think we need to support Windows NT anymore and we certainly
AB> don't need to support Windows 9x.

I'm not sure I buy NT being gone. I suspect it's still in greater use
than it possibly should be. But again, I'll defer and am not voting.

everything else sounds good to me.
--
Wes Hardaker
Please mail all replies to net-snmp-***@lists.sourceforge.net
Steve Friedl
2009-04-27 20:59:38 UTC
Permalink
Post by Wes Hardaker
I'm going to defer all judgment to those more familiar with windows
AB> 4) I don't think we need to support Windows NT anymore and we certainly
AB> don't need to support Windows 9x.
I'm not sure I buy NT being gone. I suspect it's still in greater use
than it possibly should be. But again, I'll defer and am not voting.
Sadly, Windows NT4 is still in use by plenty of systems - I still run into
them in the medical industry attached to CAT scanners and the like - but these
are legacy systems for which development has been frozen for a long time.

Even if vendors are still [barely] supporting the code - as Microsoft does
for a big fee - it stretches the imagination that anybody is undergoing
new development on this platform.

If I were king, I'd be happy to drop NT4 support from the current release
and invite those poor self-abusing souls who need it to use version N-1
on that platform.
Post by Wes Hardaker
For #2, we can either distribute the Microsoft DLLs (1.4Meg) or require
that the user install the 'Microsoft Visual C++ 2008 Redistributable
Package' from the Microsoft web site. It's probably easier to just
include the DLLs.
I think it makes me a little nervous to take responsibility for distributing
somebody else's binaries when it's not so hard to point them to the right
place. But depending on how the installer is built I guess it might be so
much more convenient for the to just include them.

Steve
--
Stephen J Friedl | Security Consultant | UNIX Wizard | 714 694-0494
***@unixwiz.net | Orange County, CA | Microsoft MVP | unixwiz.net
Shachar Shemesh
2009-04-28 05:25:07 UTC
Permalink
Post by Steve Friedl
Post by Alex Burger
For #2, we can either distribute the Microsoft DLLs (1.4Meg) or require
that the user install the 'Microsoft Visual C++ 2008 Redistributable
Package' from the Microsoft web site. It's probably easier to just
include the DLLs.
I think it makes me a little nervous to take responsibility for distributing
somebody else's binaries when it's not so hard to point them to the right
place. But depending on how the installer is built I guess it might be so
much more convenient for the to just include them.
Steve
If this were Linux, I'd say you are right. On Windows, distributing a
program with all the components it needs is the norm, and people expect it.

Also note that the need to bundle with other components is so well
understood that even the almighty GPL provides a special exception,
saying you are not allowed to link with anything non-GPL, except stuff
that comes by default with your OS or your compiler (section 3 after the
subsections in version 2, right in the definitions part of what is the
source code (section 1) in version 3).

Shachar
--
Shachar Shemesh
Lingnu Open Source Consulting Ltd.
http://www.lingnu.com
Bart Van Assche
2009-04-28 09:50:32 UTC
Permalink
Post by Steve Friedl
Post by Wes Hardaker
AB> 4) I don't think we need to support Windows NT anymore and we certainly
AB> don't need to support Windows 9x.
I'm not sure I buy NT being gone.  I suspect it's still in greater use
than it possibly should be.  But again, I'll defer and am not voting.
Sadly, Windows NT4 is still in use by plenty of systems - I still run into
them in the medical industry attached to CAT scanners and the like - but these
are legacy systems for which development has been frozen for a long time.
Even if vendors are still [barely] supporting the code - as Microsoft does
for a big fee - it stretches the imagination that anybody is undergoing
new development on this platform.
If I were king, I'd be happy to drop NT4 support from the current release
and invite those poor self-abusing souls who need it to use version N-1
on that platform.
One possible approach is to keep supporting NT4 in the Net-SNMP 5.4
branch and to make clear that from version 5.5 on Net-SNMP requires
W2K or higher.

I have performed a web search on the keywords "NT4" and "SNMP" in
discussion groups, and the most recent message I could find was posted
in 2004. Most messages were a lot older.

Bart.

Continue reading on narkive:
Loading...