@cb88 - Well, it’s C++, so it should be entirely possible. Other than the GUI, HERMES Mail is really nothing more than a collection of libraries for sending and receiving POP and SMTP mail, as well as authenticating with SSL and Kerberos, Hunspell… it’s fully modularised. If you need a library, of course you can compile just that library. The project’s used Visual Studio since, well, forever, but that doesn’t mean you can’t compile it in GCC instead (some assembly required).
@waddlesplash What I’m unsure about, and tried to express but couldn’t really find the words, was how does the collection of GUI, libraries, etc called HERMES Mail disagree with the Haiku philosophy? Consider an approach where you simply take whatever libraries you need (be it an updated SMTP stack, Kerberos authentication, etc) and use it in Haiku. Now, that wouldn’t be in the spirit of my original proposal, but there we are. It’s a big collection of files, and I refuse to believe that nothing in there would be useful.
On the other hand, my original idea was to create a whole new GUI for the libraries and business code as a whole. I mentioned a one-codebase-per-system philosophy because, as given to us, the source tree had one codebase for Windows in C++, and an entirely unrelated codebase for Mac in C and Carbon (this was frozen in the Intel transition days). Ignoring Mac for a second, it’s clear we can use most of the libraries and business code in Windows, Haiku, and Linux, and we can design a native GUI for each. That’s what I meant by one-codebase-per-system: we could (conceivably) have a common pool of libraries to draw from, and a separate application on each. Maybe we could extend the Haiku Mail GUI, keep the Haiku mailstore code as is, and crib the HERMES Mail feature code. If that’s what you object to, I understand, and we can agree to disagree.
The Mac stuff is fairly interesting (though REALLY off-topic for Haiku-discuss): would it be more useful to compile the “Windows” libraries (yeah, I know, libraries are usually cross-platform) on Mac and try to build a Cocoa GUI shell around them, or try to fit a PowerPC, Carbon-based peg into an Intel, Cocoa-based hole?
Back on topic: I didn’t say Qt was a bad toolkit, as cross-platform toolkits go. GTK is a good cross-platform toolkit, Qt is a great one, but I notice when an app is cross-platform. The look-and-feel is ever so subtly different, and there’s a slight lag (though I could be imagining this) compared to a pure-native app. Not that I dislike cross-platform apps, especially when they mesh well (compare GNU Emacs or Deluge running on Mac to, say, fontforge or qbittorrent).
I was just saying that it bears thinking about a native “port” (in a rather loose sense). We thought about Qt at the beginning of the project; perhaps we should’ve used it, because we’d likely have a fully cross-platform, Linux and Haiku-compatible product by now. Instead, we have a shell that runs on Windows only, and a vaguely cross-platform core.
P.S.—I’m running OS X as my daily driver, and I’m currently trying to make Haiku run on my MacBook Pro. The non-native apps running on my system are WireShare (Java; I developed it myself), Calibre (Qt?), qbittorrent (Qt for a fact), GNU Emacs (GTK), GIMP (GTK), LibreOffice (Qt), deluge (Qt), Fontforge (neither Qt nor GTK), and Inkscape (GTK?). Anything using the Tango icons is likely either Qt or GTK.