On 10/7/11 2:35 AM, Peter Åstrand wrote: >> For the record, I did try this 2 years ago, with the patch you and >> Pierre submitted upstream to MinGW. It compiled but did not link. > > So why didn't you report this? I cannot found anything about this, > neither in the tracker nor on the mailinglist. The patch apparently > worked fine for Adam and it worked fine for us.
I mentioned it several times on the list, in the context of our discussions regarding moving to CMake for Windows, regarding the autotools performance problem on Windows, etc. Don't know how the patch could have possibly worked fine, since it did not apparently add anything to the link libraries-- or, if it did, that portion was apparently not accepted by MinGW. >> Well, curiously, apparently that patch made it into MinGW64, and I just >> tried again with that compiler-- same result. Compiles but does not >> link, because the stub is not in libuuid. > > Never heard of such a problem. Can you please give us the technical > details? Which missing symbol, which error message... Why don't you try building it on a recent version of MinGW64 (it's probably reproducible using MinGW64 for Linux) and see for yourself? >> That was why we, as a team, decided it was necessary to continue >> supporting Visual Studio. > > This is not what I remember. I thought we just waited for MinGW to > accept the patch. When we had this discussion before, we discussed the fact that they had rejected the patch, but apparently they did eventually accept the header portion of it. >> Interestingly, your new patch to libos does work with MinGW32, but now >> it interferes with the broken patch in MinGW64. > > How does it interfere? Please give us the technical details. Doesn't compile. The headers interfere. Again, try it for yourself. I'm not in a mood to be helpful to you right now. >> For every piece of Win32 functionality I need that isn't supported in >> MinGW, now I'm faced with > > MinGW contains most of the Win32 functionality one needs. Especially if > you want to keep supporting older versions of Windows, which I suppose > we want. We don't want a WinVNC or vncviewer which only works on Windows > 7+. I thought you had the same goals, since you have been working on > supporting platforms such as RHEL4? Peter, you have a real talent for twisting words around. Supporting Windows 7 does not mean that the code only works on that platform. It means that, perhaps, it may be necessary to conditionally use APIs on that platform to make WinVNC work properly. Then again, maybe that platform can be supported via simple bug fixes. Until WinVNC is working fully on W7, I am unwilling to paint myself into a corner and make it difficult to use any advanced functionality that might need to be used. Further, do you not realize that, after you have stated your case, there is no purpose to continuing to re-state and re-spin it? I have already come to a professional decision on this based on the relevant facts and my years of experience as a Windows developer. Unless you are going to provide any new information, then there is nothing to be gained by continuing this discussion. There is certainly nothing to be gained by engaging in ad hominem attacks, other than making me angry, which you have succeeded in doing. >> (a) reverse-engineering a stub for it > > Writing a short text file using the MSDN documentation is hardly > reverse-engineering. Just as a for-instance, DEFINE_GUID(CLSID_ActiveDesktop,0x75048700L,0xEF1F,0x11D0,0x98,0x88,0x00,0x60,0x97,0xDE,0xAC,0xF9); DEFINE_GUID(IID_IActiveDesktop,0xF490EB00L,0x1240,0x11D1,0x98,0x88,0x00,0x60,0x97,0xDE,0xAC,0xF9); is not anywhere in the MSDN documentation and, in fact, appears to have been pretty much blindly copied from the Microsoft header files. I am certain that the MinGW Project has discussions regarding potential dangers of IP infringement whenever new interfaces are added, and I know they discussed such things in the context of the ActiveDesktop patch. I would be uncomfortable putting new, non-obvious Win32 interface code into TigerVNC without a similar vetting process, and our project is really not in the position to do that vetting. >> (b) writing a CMake compile and link test to verify that it isn't in >> MinGW > > What's the problem? Writing CMake (or Autotool) tests is the standard > approach when using functionality that is not guaranteed to work on all > platforms. This is the approach we are using for UNIX as well, remember. You're confusing the issue, Peter. When we write "platform" checks, "platform" typically means a particular O/S configuration. Few people would be on board with, for instance, depending on a particular piece of functionality in GCC that was broken in some releases. >> and, if so, that the MinGW version isn't broken, > > This is seldom. The MS compilers also has bugs. ?! That argument doesn't even make sense. We're talking about Windows functionality that is not supported or partially supported in MinGW. We're not talking about the general stability of the compiler in general, but honestly, I've never had any problems with recent Visual Studio releases. >> That isn't exactly an efficient development model. > > Having to try every simple change with two different toolchains is worse. It's actually quite simple to do if you have a real Windows machine. However, since you don't, that is why I proposed a compromise. >> You need to understand that my lack of comfort with MinGW is dictated >> by the somewhat hackish approach necessary to get stuff like the above >> to work. > > I think you consider it as being hackish just because you have little > experience with it. This is bordering on professional slander, Peter, and it is completely unacceptable. I've been hacking Windows (in the programming sense of the word), both at the user and kernel level, since NT 3.1 was out. I have been using MinGW for quite a long time as well, both on Windows and Linux. MinGW is a great compiler, and I'm happy it exists. It doesn't solve every problem, however. There are certain things it does better than VStudio, and there are certain things VStudio does better. In applications that have close ties to the operating system and drivers, such as WinVNC, VStudio is a better choice, unless you simply want to freeze the application and never grow its functionality in the future. If we really want our version of WinVNC to be relevant, then it needs to not be an afterthought. >> Enterprise-quality software is not built by hacking. > > "Enterprise" means different things to different people. Very often it > is not a positive thing. Take a look at > http://thedailywtf.com/Articles/The-Enterprise-Dependency.aspx (or > search for other Enterprise articles) and you'll see what I mean. http://www.cendio.com/products/thinlinc/ "Cendio is an enterprise software company offering a Terminal Server solution to enable Server Based Computing." I'm pretty sure Red Hat would also disagree with you. >> I also understand your lack of comfort with Visual Studio. You >> haven't used it continuously for 15 years like I have. I'm not saying >> that you're wrong-headed for being uncomfortable with Visual Studio, >> but neither should you say I'm wrong-headed for being uncomfortable >> with MinGW. > > For me, it doesn't have *anything* to do with "feeling uncomfortable". > It's about selecting one toolchain that does the work; supports all of > our platforms. If Visual Studio could run under Linux and generate > binaries for Linux, Solaris, OS X etc, then we could discuss getting rid > of MinGW. But that won't happen. Peter, it *doesn't* do the work, not without lots of *hacking*. The fact that you would even recommend building *Mac* software on a *Linux* platform proves my point. Who does that? Certainly no one building Mac software professionally. Apple certainly does not support it, nor are there many resources online to tell you what to do if such a configuration doesn't work. That is the definition of "esoteric" and "hackish." I want to develop code. I don't want to futz with unsupported compiler configurations. So basically, what you're saying is that everyone who wants to work on our code needs to have a Linux machine? Does that not seem a little unreasonable to you? Most people who develop Windows code use a Windows machine, and most people who develop Mac code use a Mac machine. We need to support those people. This is not just Cendio's baby. >> Comfort level is very important when developing something. I don't >> want to feel like I have to patch libos every time I use something >> that MinGW doesn't have, and I don't want to have to maintain build >> tests for any advanced functionality to determine whether or not it's >> present or broken in MinGW. >> >> I feel like I've been more than reasonable and willing to compromise >> about this. As the one who's going to be developing WinVNC, I need to >> feel like I'm free to do what I need to do to make it work for my >> customer, and I am not comfortable using MinGW for WinVNC at this time. > > Ok. You don't want to change your habits, but you want to force us to > test build with Visual Studio before every commit? How is this a > compromise? All the extra work would be on us not currently using Visual > Studio. ?! My habits are hardly relevant, Peter. I'm trying to do what's technically in the best interests for the WinVNC portion of the project, so I can move it forward. We've been supporting Visual Studio for 2 years now. Obviously that hasn't created a burden on you yet, because you haven't been testing it, and that's why we're having this discussion to begin with. My assumption is that Cendio isn't going to ever do the right thing and set up a Windows machine for dev testing, so the compromise is that you guys keep doing what you've always done, but since you're not going to test VStudio, I want to minimize the damage potential by minimizing the code that is built with VStudio. Thus, I move WinVNC into a sub-build, and that way, most of the stuff you work on regularly, such as FLTK, doesn't need to be supported on VStudio any longer. If you don't see that to be a compromise, well then, I can't help you. >> Once things are working properly on W7 and Vista, then we can >> re-evaluate. > > We can start with making sure WinVNC works with MinGW. If you have no > objections, I'd like to commit the patch. I have strong objections, since the patch breaks MinGW64. Why are you so focused on this, Peter? I didn't think Cendio cared about WinVNC. Frankly, now your attitude is making me re-consider whether using TigerVNC is the appropriate path forward for my customer. I certainly do not want to have to spend hours debating with you each time I want to do what I feel is best, and what my experience dictates is best. This whole discussion has become utterly ridiculous. ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2dcopy2 _______________________________________________ Tigervnc-devel mailing list Tigervnc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-devel