Re: [Wireshark-dev] Windows build setup - Concept required

2013-12-05 Thread Gerald Combs
On 12/4/13 12:27 PM, Joerg Mayer wrote:
 Hello,
 
 as Graham and I are working on getting the Windows build process to
 a) work at all and b) be on par with the current nmake build process
 we currently rely on the setup infrastructure of the nmake build. I
 really don't like porting the nmake -f Makefile.nmake setup to cmake.
 Not because it is hard to do but because the current setup has various
 shortcomings

 1) zlib is installed as source only
 2) portaudio is installed as source only

I know there are historical reasons for this but are they still valid?
Zlib packages are available from the OpenSUSE Build Service (linked
against msvcrt.dll) and Nuget (linked against multiple runtimes).
Portaudio is also available from OBS.

 3) Every package is installed into its own subdirectory, sometimes with
its own structure

CoApp has a standardized directory layout for libraries and include
files called Pivots:

http://coapp.org/reference/autopackage-ref.html#Pivots

Pivot is a nicer name than deep explodey directory tree but it seems
sensible and worth adopting IMHO.

 4) glib2 contains zlib headers that break windows builds
 5) glib3 contains zlib headers that break windows builds

This should be reported as a bug at
https://build.opensuse.org/package/show/windows:mingw:win64/mingw64-zlib
I'm sure patches are welcome.

 6) krb5 contains includes that export krb5-build internal flags and
thus cause warnings during compiles

Is there a better library we can use for Kerberos? MIT, Secure
Endpoints, and Heimdal all seem to provide packages that
almost-but-not-quite meet our needs. I tried cross-compiling MIT
Kerberos and Heimdal using MingW in the past but didn't have much luck.

 6) Except for gtk3 no packages provide compile (includes, cflags) or
linking (libs, ldflags) information.
 7) glib3 contains pkg-config files, but they contain a wrong paths
and unuseable compiler (gcc) flags

The existence of the .pc files depends on my packaging scripts and the
OBS .spec files for OBS-sourced packages. Adding them shouldn't be too
difficult. The tricky part is getting them to point to the correct
location on Windows. I'm not sure if we can use or modify the stock .pc
files or if we'd have to create our own.

 8) The current setup process does not install QT

I've been hesitant to switch this on since it's such a large download
and I'm not sure which Qt should be installed. The Qt project provides
official 32- and 64-bit installers for VS 2012 and a 32-bit installer
for VS 2010. We provide 32- and 64-bit packages for VS 2010. We sign the
EXEs and DLLs in our packages but the Qt project doesn't. I don't know
if anyone provides VS 2013 packages.

 9) To build qtshark without wireshark still requires the installation
of gtk2 or gtk3 for glib, gmodule, gthread

I think we should switch from the separate wireshark-gtk2 and
wireshark-qt-release directories to a common deployment directory, e.g.
wireshark-deploy or wireshark-stage. This would presumably help to
unify our build targets.

(I'd also like to get rid of ui/qt/QtShark.pro at some point in favor of
CMake. Qt Creator supports CMake projects well enough, and having to
maintain QtShark.pro for different platforms is a pain.)

 10) The setup process does not allow for the simultanous installation
of gtk2 and gtk3

Does GTK3 work well enough on Windows to drop GTK2? This would simplify
things quite a bit.

 11) The installation of some build tools (python, cmake, cygwin-stuff like
 cat, bash) might be automated - depending on the setup script language
 maybe not all of them.
 
 So maybe something more similar to the macosx setup is wanted. Not maybe
 the compile-it-yourself approach but an installation into a standard
 directory structure.
 
 So what I'd like to have is a script (.bat or maybe Powershell) that works
 similar to the macosx-setup.sh script:
 
 - Contain a list of packages and their versions
 - Download missing packages
 - Download missing tools
 - Install not-yet-installed packages (includes, libs) into a standard
   directory structure
 
 Feedback, ideas, details anyone?

Sounds good to me. I like Graham's suggestion of using Chocolatey/Nuget
since they're currently the best option for package management under
Windows. I'd be willing to convert our current Windows libraries to
Nuget packages, and have them conform to Coapp's directory layout[1].

If we could find or create Chocolatey packages for Bison and Flex that
would go a long way toward dropping the requirement for Cygwin.


[1] The end goal being that someone else take over maintenance of the
packages. Some men dream of the heavens. I dream of no longer having to
create third-party Windows development libraries.
___
Sent via:Wireshark-dev mailing list wireshark-dev@wireshark.org
Archives:http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: 

Re: [Wireshark-dev] Windows build setup - Concept required

2013-12-05 Thread Bill Meier

Re: creating/using a standard package directory structure on Windows

 It sounds like you're suggesting that we take the
 packages as distribited and move things
 around to a standard structure. This sounds to me like the
 effort to do this it might be crazy-making ...


Also: A few questions/comments: see inline:


 1) zlib is installed as source only

 As opposed to installing DLL's from a package ?
 My understanding is that we need to build the zlib DLL
 ourselves due to ensure that the right C runtime is used.
 (cross C-runtime memory allocation issues).



2) portaudio is installed as source only


 (As in 1) above ?)


3) Every package is installed into its own subdirectory, sometimes with
its own structure



4) glib2 contains zlib headers that break windows builds

 right: it appears that the gtk2/includes dir is never
 used as an include dir so that (fortunately) the correct
 zlib includes are used. Ditto for the zlib DLL.
(It seems that the zlib DLL  includes distribdted
 with our current GTK/GLib package are for
 zlib v1.27 while we're actually building/using zlib v1.25)
 In any case, as noted, we need to build our own ...


5) glib3 contains zlib headers that break windows builds

  ditto


6) krb5 contains includes that export krb5-build internal flags and
thus cause warnings during compiles


 When building how ?


___
Sent via:Wireshark-dev mailing list wireshark-dev@wireshark.org
Archives:http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe


Re: [Wireshark-dev] Windows build setup - Concept required

2013-12-05 Thread Bill Meier

On 12/5/2013 3:02 PM, Bill Meier wrote:


I like Gerald's answers much better than mine :)


___
Sent via:Wireshark-dev mailing list wireshark-dev@wireshark.org
Archives:http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe


Re: [Wireshark-dev] Windows build setup - Concept required

2013-12-05 Thread Pascal Quantin
2013/12/5 Gerald Combs ger...@wireshark.org

  10) The setup process does not allow for the simultanous installation
 of gtk2 and gtk3

 Does GTK3 work well enough on Windows to drop GTK2? This would simplify
 things quite a bit.


Personally I find the GTK2 GUI much more polished than GTK3 on Windows
(maybe just a matter of taste...).

Regards,
Pascal.
___
Sent via:Wireshark-dev mailing list wireshark-dev@wireshark.org
Archives:http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
 mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Re: [Wireshark-dev] Windows build setup - Concept required

2013-12-05 Thread mmann78

+1


-Original Message-
From: Pascal Quantin pascal.quan...@gmail.com
To: Developer support list for Wireshark wireshark-dev@wireshark.org
Sent: Thu, Dec 5, 2013 3:33 pm
Subject: Re: [Wireshark-dev] Windows build setup - Concept required





Personally I find the GTK2 GUI much more polished than GTK3 on Windows (maybe 
just a matter of taste...).


Regards,
Pascal.




___
Sent via:Wireshark-dev mailing list wireshark-dev@wireshark.org
Archives:http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
 mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

 
___
Sent via:Wireshark-dev mailing list wireshark-dev@wireshark.org
Archives:http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
 mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Re: [Wireshark-dev] Windows build setup - Concept required

2013-12-05 Thread Christopher Maynard
 mmann78@... writes:

 +1
 
 -Original Message-
 From: Pascal Quantin pascal.quan...@gmail.com
 To: Developer support list for Wireshark
wireshark-dev@wireshark.org
 Sent: Thu, Dec 5, 2013 3:33 pm
 Subject: Re: [Wireshark-dev] Windows build setup - Concept required
 
 Personally I find the GTK2 GUI much more polished than GTK3 on Windows
(maybe just a matter of taste...).
 
 
 Regards,
 Pascal.

+2

I find GTK3 hideous on Windows.

___
Sent via:Wireshark-dev mailing list wireshark-dev@wireshark.org
Archives:http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
 mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe


Re: [Wireshark-dev] Windows build setup - Concept required

2013-12-05 Thread Pascal Quantin
2013/12/5 Christopher Maynard christopher.mayn...@gtech.com

  mmann78@... writes:

  +1
 
  -Original Message-
  From: Pascal Quantin pascal.quan...@gmail.com
  To: Developer support list for Wireshark
 wireshark-dev@wireshark.org
  Sent: Thu, Dec 5, 2013 3:33 pm
  Subject: Re: [Wireshark-dev] Windows build setup - Concept required
 
  Personally I find the GTK2 GUI much more polished than GTK3 on Windows
 (maybe just a matter of taste...).
 
 
  Regards,
  Pascal.

 +2

 I find GTK3 hideous on Windows.


I'm happy to see that I'm not alone :)
As the idea is to avoid spending much effort in GTK UI, and unless someone
knows how to easily fix this ugliness (template missing?), what about
switching back to GTK2? :p

Pascal.
___
Sent via:Wireshark-dev mailing list wireshark-dev@wireshark.org
Archives:http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
 mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Re: [Wireshark-dev] Windows build setup - Concept required

2013-12-05 Thread Graham Bloice
On 5 December 2013 21:06, Pascal Quantin pascal.quan...@gmail.com wrote:

 2013/12/5 Christopher Maynard christopher.mayn...@gtech.com

  mmann78@... writes:

  +1
 
  -Original Message-
  From: Pascal Quantin pascal.quan...@gmail.com
  To: Developer support list for Wireshark
 wireshark-dev@wireshark.org
  Sent: Thu, Dec 5, 2013 3:33 pm
  Subject: Re: [Wireshark-dev] Windows build setup - Concept required
 
  Personally I find the GTK2 GUI much more polished than GTK3 on Windows
 (maybe just a matter of taste...).
 
 
  Regards,
  Pascal.

 +2

 I find GTK3 hideous on Windows.


 I'm happy to see that I'm not alone :)
 As the idea is to avoid spending much effort in GTK UI, and unless someone
 knows how to easily fix this ugliness (template missing?), what about
 switching back to GTK2? :p



The GTK3 haters thread is over there --
___
Sent via:Wireshark-dev mailing list wireshark-dev@wireshark.org
Archives:http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
 mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Re: [Wireshark-dev] Windows build setup - Concept required

2013-12-05 Thread Graham Bloice
On 5 December 2013 19:59, Gerald Combs ger...@wireshark.org wrote:

 On 12/4/13 12:27 PM, Joerg Mayer wrote:
  Hello,
 
  as Graham and I are working on getting the Windows build process to
  a) work at all and b) be on par with the current nmake build process
  we currently rely on the setup infrastructure of the nmake build. I
  really don't like porting the nmake -f Makefile.nmake setup to cmake.
  Not because it is hard to do but because the current setup has various
  shortcomings

  1) zlib is installed as source only
  2) portaudio is installed as source only

 I know there are historical reasons for this but are they still valid?
 Zlib packages are available from the OpenSUSE Build Service (linked
 against msvcrt.dll) and Nuget (linked against multiple runtimes).
 Portaudio is also available from OBS.


I could try them out.


  3) Every package is installed into its own subdirectory, sometimes with
 its own structure

 CoApp has a standardized directory layout for libraries and include
 files called Pivots:

 http://coapp.org/reference/autopackage-ref.html#Pivots

 Pivot is a nicer name than deep explodey directory tree but it seems
 sensible and worth adopting IMHO.


I still haven't looked into CoApp.  How does it play with Chocolatey?



  4) glib2 contains zlib headers that break windows builds
  5) glib3 contains zlib headers that break windows builds

 This should be reported as a bug at
 https://build.opensuse.org/package/show/windows:mingw:win64/mingw64-zlib
 I'm sure patches are welcome.


I shall try to do this.



  6) krb5 contains includes that export krb5-build internal flags and
 thus cause warnings during compiles

 Is there a better library we can use for Kerberos? MIT, Secure
 Endpoints, and Heimdal all seem to provide packages that
 almost-but-not-quite meet our needs. I tried cross-compiling MIT
 Kerberos and Heimdal using MingW in the past but didn't have much luck.

  6) Except for gtk3 no packages provide compile (includes, cflags) or
 linking (libs, ldflags) information.
  7) glib3 contains pkg-config files, but they contain a wrong paths
 and unuseable compiler (gcc) flags

 The existence of the .pc files depends on my packaging scripts and the
 OBS .spec files for OBS-sourced packages. Adding them shouldn't be too
 difficult. The tricky part is getting them to point to the correct
 location on Windows. I'm not sure if we can use or modify the stock .pc
 files or if we'd have to create our own.


My experiments with pkg-config from the gtk2 bundle and from pkg-configlite
and the gtk3 bundle .pc files shows that it just works.  The bundle .pc
files have odd *nixy type paths in them but pkg-config and CMake sort all
that out (with my modified FindGTK3.cmake)



  8) The current setup process does not install QT

 I've been hesitant to switch this on since it's such a large download
 and I'm not sure which Qt should be installed. The Qt project provides
 official 32- and 64-bit installers for VS 2012 and a 32-bit installer
 for VS 2010. We provide 32- and 64-bit packages for VS 2010. We sign the
 EXEs and DLLs in our packages but the Qt project doesn't. I don't know
 if anyone provides VS 2013 packages.


Folks only have to download it as often as it changes! Or is the issue
server resources?


  9) To build qtshark without wireshark still requires the installation
 of gtk2 or gtk3 for glib, gmodule, gthread

 I think we should switch from the separate wireshark-gtk2 and
 wireshark-qt-release directories to a common deployment directory, e.g.
 wireshark-deploy or wireshark-stage. This would presumably help to
 unify our build targets.


Ack


 (I'd also like to get rid of ui/qt/QtShark.pro at some point in favor of
 CMake. Qt Creator supports CMake projects well enough, and having to
 maintain QtShark.pro for different platforms is a pain.)

  10) The setup process does not allow for the simultanous installation
 of gtk2 and gtk3

 Does GTK3 work well enough on Windows to drop GTK2? This would simplify
 things quite a bit.


It's OK for me but there are some folks complaining about it from the cheap
seats :-)


  11) The installation of some build tools (python, cmake, cygwin-stuff
 like
  cat, bash) might be automated - depending on the setup script
 language
  maybe not all of them.
 
  So maybe something more similar to the macosx setup is wanted. Not maybe
  the compile-it-yourself approach but an installation into a standard
  directory structure.
 
  So what I'd like to have is a script (.bat or maybe Powershell) that
 works
  similar to the macosx-setup.sh script:
 
  - Contain a list of packages and their versions
  - Download missing packages
  - Download missing tools
  - Install not-yet-installed packages (includes, libs) into a standard
directory structure
 
  Feedback, ideas, details anyone?

 Sounds good to me. I like Graham's suggestion of using Chocolatey/Nuget
 since they're currently the best option for package management 

Re: [Wireshark-dev] Windows build setup - Concept required

2013-12-05 Thread Joerg Mayer
Before replying to some of the points, I want to clarify something:
This is about problems I have encountered in a current setup (no old
libs package, current source, clean out of tree setup and build).
Also, when I mentioned setup-macosx.sh I didn't take into account that
some people who are not interested in OS X may not know what it does
(or at least not all the details):
- At the beginning it has a section that defines the package versions
  (similar to config.nmake but only once, as there is no need to differentiate
  between 32bit and 64bit).
- These source(!) packages are downloaded, unpacked, patches from the
  Wireshark sources (macosx-support-lib-patches/) are applied if necessary,
  they are compiled and then installed into a common tree.

On Thu, Dec 05, 2013 at 10:20:58PM +, Graham Bloice wrote:
 On 5 December 2013 19:59, Gerald Combs ger...@wireshark.org wrote:
 
  On 12/4/13 12:27 PM, Joerg Mayer wrote:
   as Graham and I are working on getting the Windows build process to
   a) work at all and b) be on par with the current nmake build process
   we currently rely on the setup infrastructure of the nmake build. I
   really don't like porting the nmake -f Makefile.nmake setup to cmake.
   Not because it is hard to do but because the current setup has various
   shortcomings
 
   1) zlib is installed as source only
   2) portaudio is installed as source only
 
  I know there are historical reasons for this but are they still valid?
  Zlib packages are available from the OpenSUSE Build Service (linked
  against msvcrt.dll) and Nuget (linked against multiple runtimes).
  Portaudio is also available from OBS.

My complaint is a different one: Why don't we compile these two packages at
setup time?
At least for zlib it seems simple enough if you have cmake installed (see
README.cmake).

 I could try them out.
 
 
   3) Every package is installed into its own subdirectory, sometimes with
  its own structure
 
  CoApp has a standardized directory layout for libraries and include
  files called Pivots:
 
  http://coapp.org/reference/autopackage-ref.html#Pivots
 
  Pivot is a nicer name than deep explodey directory tree but it seems
  sensible and worth adopting IMHO.
 
 
 I still haven't looked into CoApp.  How does it play with Chocolatey?

I have no problem with individual install dirs for each package and arch,
as long as all packages follow the same schema.

   4) glib2 contains zlib headers that break windows builds
   5) glib3 contains zlib headers that break windows builds
 
  This should be reported as a bug at
  https://build.opensuse.org/package/show/windows:mingw:win64/mingw64-zlib
  I'm sure patches are welcome.
 
 
 I shall try to do this.

My complaint is not about these problems but about the fact that the install
process doesn't fix it. Because of this we have to work around it in the
toplevel CMakeLists.txt

   6) krb5 contains includes that export krb5-build internal flags and
  thus cause warnings during compiles
 
  Is there a better library we can use for Kerberos? MIT, Secure
  Endpoints, and Heimdal all seem to provide packages that
  almost-but-not-quite meet our needs. I tried cross-compiling MIT
  Kerberos and Heimdal using MingW in the past but didn't have much luck.

My complaint is not about these problems but about the fact that the install
process doesn't fix it - instead we work around this in the source
(packet-kerberos.c)

   6) Except for gtk3 no packages provide compile (includes, cflags) or
  linking (libs, ldflags) information.
   7) glib3 contains pkg-config files, but they contain a wrong paths
  and unuseable compiler (gcc) flags
 
  The existence of the .pc files depends on my packaging scripts and the
  OBS .spec files for OBS-sourced packages. Adding them shouldn't be too
  difficult. The tricky part is getting them to point to the correct
  location on Windows. I'm not sure if we can use or modify the stock .pc
  files or if we'd have to create our own.
 
 
 My experiments with pkg-config from the gtk2 bundle and from pkg-configlite
 and the gtk3 bundle .pc files shows that it just works.  The bundle .pc
 files have odd *nixy type paths in them but pkg-config and CMake sort all
 that out (with my modified FindGTK3.cmake)

And with the version number I could now identify that ancient ;-) install
and reproduce it. They probably do something similar to what I do in cmake.
I'Ve checked in a fix to no longer convert windows paths.

   8) The current setup process does not install QT
 
  I've been hesitant to switch this on since it's such a large download
  and I'm not sure which Qt should be installed. The Qt project provides
  official 32- and 64-bit installers for VS 2012 and a 32-bit installer
  for VS 2010. We provide 32- and 64-bit packages for VS 2010. We sign the
  EXEs and DLLs in our packages but the Qt project doesn't. I don't know
  if anyone provides VS 2013 packages.
 
 
 Folks only have to download it as often as it changes! 

[Wireshark-dev] Windows build setup - Concept required

2013-12-04 Thread Joerg Mayer
Hello,

as Graham and I are working on getting the Windows build process to
a) work at all and b) be on par with the current nmake build process
we currently rely on the setup infrastructure of the nmake build. I
really don't like porting the nmake -f Makefile.nmake setup to cmake.
Not because it is hard to do but because the current setup has various
shortcomings
1) zlib is installed as source only
2) portaudio is installed as source only
3) Every package is installed into its own subdirectory, sometimes with
   its own structure
4) glib2 contains zlib headers that break windows builds
5) glib3 contains zlib headers that break windows builds
6) krb5 contains includes that export krb5-build internal flags and
   thus cause warnings during compiles
6) Except for gtk3 no packages provide compile (includes, cflags) or
   linking (libs, ldflags) information.
7) glib3 contains pkg-config files, but they contain a wrong paths
   and unuseable compiler (gcc) flags
8) The current setup process does not install QT
9) To build qtshark without wireshark still requires the installation
   of gtk2 or gtk3 for glib, gmodule, gthread
10) The setup process does not allow for the simultanous installation
   of gtk2 and gtk3
11) The installation of some build tools (python, cmake, cygwin-stuff like
cat, bash) might be automated - depending on the setup script language
maybe not all of them.

So maybe something more similar to the macosx setup is wanted. Not maybe
the compile-it-yourself approach but an installation into a standard
directory structure.

So what I'd like to have is a script (.bat or maybe Powershell) that works
similar to the macosx-setup.sh script:

- Contain a list of packages and their versions
- Download missing packages
- Download missing tools
- Install not-yet-installed packages (includes, libs) into a standard
  directory structure

Feedback, ideas, details anyone?

Thanks
   Jörg

-- 
Joerg Mayer   jma...@loplof.de
We are stuck with technology when what we really want is just stuff that
works. Some say that should read Microsoft instead of technology.
___
Sent via:Wireshark-dev mailing list wireshark-dev@wireshark.org
Archives:http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
 mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe