Conversation with #coapp

(7:08:55 PM) The topic for #coapp is: Making OSS Easy on Windows | |
(7:09:09 PM) ***mangobrain waves
(7:09:14 PM) Garretts-msft: Howdy
(7:10:00 PM) auroraeosrose: hiya
(7:10:35 PM) mangobrain: just read your blog, and noticed the comment about you being an (ex?) Gentoo user... awesome. :) I don't mean to sound patronising, but IMHO that gives me for one a little more confidence that you might actually know what the difficulties are
(7:10:44 PM) mangobrain: (<-- Philip Allison on mailing list)
(7:10:45 PM) auroraeosrose: LOL
(7:10:48 PM) Garretts-msft: LOL
(7:12:00 PM) tnelson [] entered the room.
(7:12:09 PM) tnelson: Howdy!
(7:12:14 PM) Garretts-msft: hey Trent!
(7:12:16 PM) Garretts-msft: Howdy
(7:12:41 PM) tnelson: Hey Garrett, sorry I've been a bit quiet on the list so far, the last week or two has been crazy hectic and I'm a bit behind.
(7:12:44 PM) Garretts-msft: mangobrain -> Gentoo always made me happy...
(7:12:49 PM) tnelson: Slowly catching up though :>
(7:12:53 PM) Garretts-msft: I. Know. How. You. Feel.
(7:13:11 PM) mangobrain: yeah, it's a dream for development.. not so sure I'd ever install it on a server though. :D
(7:13:22 PM) Garretts-msft: my inbox has had a crapload of messages over the last day.
(7:13:41 PM) Garretts-msft: mangobrain -> uh, that's what Windows is for ... :D
(7:13:45 PM) mangobrain: lol
(7:13:48 PM) Garretts-msft: LOL
(7:14:30 PM) tnelson: ....and on that note, home time, later ;-)
(7:14:34 PM) mangobrain: oh, don't get me started about Windows as a server OS. the plugin/lib-heavy app I mentioned happens to be a multi-threaded network server... making it portable is, shall we say, "interesting"
(7:16:02 PM) auroraeosrose: "May Your Life Be Interesting"
(7:20:18 PM) Garretts-msft: it's snowing hail outside here.
(7:20:38 PM) auroraeosrose: heh, sun is shining here
(7:21:35 PM) johnc [karthik.ra@] entered the room.
(7:27:32 PM) mangobrain: auroraeosrose: first person to make a non-blocking socket API over epoll & Windows completion ports, thread-safe, without crippling the scalability of one back-end or the other.... they win the internet
(7:27:56 PM) auroraeosrose: and a nobel prize
(7:28:00 PM) auroraeosrose: in computer science ;)
(7:29:17 PM) johnc: :)
(7:30:45 PM) johnc: Someone suggest a good place to start with C# ?
(7:34:22 PM) pgquiles [] entered the room.
(7:35:04 PM) Garretts-msft: johnc -> ... there is a ton of stuff there. Just start diggin'
(7:35:37 PM) mangobrain: johnc: depends on prior experience :) a syntax cheat-sheet is very different from a from-scratch tutorial..
(7:36:18 PM) auroraeosrose: it's fairly easy to pick up if you know one or more C style languages ;)
(7:37:45 PM) BrianAnthony: i may or may not have learned C# and .net through intellisense
(7:37:51 PM) Garretts-msft: LOL
(7:38:12 PM) johnc left the room (quit: ).
(7:38:32 PM) auroraeosrose: hmmm
(7:38:34 PM) mangobrain: heh... if vim can syntax-highlight it, I'll be OK
(7:38:39 PM) mangobrain: "colours match, ship it"
(7:38:52 PM) BrianAnthony: pro status =p
(7:39:25 PM) Garretts-msft: 49 people in the mailing list. One more and I get a set of steak knives.
(7:40:32 PM) auroraeosrose: heh
(7:40:54 PM) johnc [karthik.ra@] entered the room.
(7:41:16 PM) auroraeosrose: - msdn is a pain to find stuff on johnc, here's a quick tutorials list
(7:41:52 PM) Garretts-msft: 285 tweets with CoApp in them on twitter in the last 7 day. (99% being in the last day or so)
(7:42:13 PM) auroraeosrose: now all we need is some code
(7:42:15 PM) ***auroraeosrose giggles
(7:42:17 PM) BrianAnthony: is it a trending topic yet?
(7:42:25 PM) Garretts-msft: not yet.
(7:42:30 PM) Garretts-msft: auroraeosrose -> stop that :D
(7:42:30 PM) BrianAnthony: i tried to bump it heh
(7:42:45 PM) auroraeosrose: what?
(7:42:49 PM) ***auroraeosrose is trying to be good
(7:43:22 PM) mangobrain: Garretts-msft: I'm surprised at the lack of flames it's attracted so far (the bits I've read, at least). I haven't looked at the slashdot comments. You *do* realise whatever you come up with will be wrong? :D
(7:43:56 PM) BrianAnthony: slashdot will be slashdot
(7:44:01 PM) BrianAnthony: looked ok on ars
(7:44:04 PM) Garretts-msft: Well, luckily, I've got a thick skin. I work in the Open Source Technology Cetner at Microsoft...
(7:44:09 PM) mangobrain: lol
(7:44:12 PM) Garretts-msft: slashdot wasn't too bad
(7:44:15 PM) mangobrain: good point, I can only imagine
(7:44:19 PM) Garretts-msft: ars went really well
(7:44:33 PM) BrianAnthony: love me some ars
(7:44:46 PM) auroraeosrose: ah, but at least it will be something - better wrong then nothing!
(7:44:53 PM) markskilbeck [~markskilb@unaffiliated/markskilbeck] entered the room.
(7:44:55 PM) Garretts-msft: auroraeosrose-> that's it exactly
(7:44:57 PM) auroraeosrose: and slashdot is scary - the unshaven masses
(7:45:26 PM) Garretts-msft: I think my five-digit slashdot id helped a bit.
(7:45:32 PM) mangobrain: then again, if MinGW didn't exist, I would probably be able to convince my bosses that portability to Windows just wasn't possible... sometimes I think nothing would be better than wrong
(7:45:46 PM) BrianAnthony: i think they're at war with ibm atm, so maybe graces will be given hehe
(7:46:13 PM) Garretts-msft: LOL
(7:46:51 PM) Garretts-msft: Yeah, an odd week when OSS zealots get medieval on IBM's butt, and Microsoft is talking Open Source Packaging.
(7:47:03 PM) markuskilbeck left the room (quit: Ping timeout: 276 seconds).
(7:47:19 PM) auroraeosrose: even the mac fanbois are angry
(7:47:21 PM) johnc left the room (quit: ).
(7:47:22 PM) auroraeosrose: very odd
(7:47:42 PM) mangobrain: aren't they always?
(7:47:55 PM) Garretts-msft: We just hit 50!
(7:47:56 PM) auroraeosrose: I meant at apple
(7:47:58 PM) auroraeosrose: that's a new one
(7:48:03 PM) mangobrain: fair enough. :)
(7:48:17 PM) auroraeosrose: their great and powerful jobs has failed them
(7:48:26 PM) Garretts-msft: I wonder if OSCON will approve my talk now.
(7:48:31 PM) ***mangobrain imagines Garretts-msft hunched over his keyboard, mashing F5 repeatedly...
(7:48:32 PM) auroraeosrose: LOL
(7:49:10 PM) Garretts-msft: mangobrain -> I get email notifications on every one.
(7:49:30 PM) BrianAnthony: everyone get their votes in on consumerist with apple vs at&t
(7:49:52 PM) BrianAnthony: missing ?
(7:49:55 PM) Garretts-msft: auroraeosrose -> tomorrow will be 8 months since I first emailed you about the ideas that went into CoApp
(7:50:02 PM) auroraeosrose: that's sad
(7:50:07 PM) auroraeosrose: RED TAPE--
(7:54:19 PM) mangobrain: Garretts-msft: may I ask what it is you don't like about CMake, or would it take all evening? :) (big autotools fan myself, just wish the learning curve wasn't vertical)
(7:55:50 PM) Garretts-msft: The biggest trouble is, in order to do the kinds of optimization that MSVC is capable of, you have to be able to control the build process in just the right way. CMake is a generic solution whereas CoApp requires some very specific know-how.
(7:56:45 PM) Garretts-msft: On top of it, it only addresses building, and I need to be able to package, sign and deploy as well
(7:57:42 PM) Garretts-msft: And, finally, I don't want it as a dependency in for off-the-shelf developers who want to compile an oss app. they should be able to grab the source MSI, and double click the project file and BAM. Instant-joy
(7:58:10 PM) mangobrain: source.... MSI? *confused*
(7:58:18 PM) auroraeosrose: yes - source msi
(7:58:23 PM) Garretts-msft: If your goal is to build a cross-platform build tool, CMake fits nicely. If your goal is to make it all sing on Windows, you do a lot better.
(7:58:30 PM) auroraeosrose: source rpm? closest allegory?
(7:58:47 PM) auroraeosrose: wow - coffee is completely worn off
(7:58:47 PM) Garretts-msft: Source MSIs are going to be the cats ass!
(7:59:01 PM) mangobrain: I get the point about packaging the built end result into an MSI, but source MSI... need more convincing
(7:59:02 PM) auroraeosrose: I mean analogy
(7:59:33 PM) Garretts-msft: MSI is just a .cab file with metadata and instructions on where to put it. What's the boggle?
(7:59:46 PM) Garretts-msft: And, all the bits to use it are in the OS.
(8:00:20 PM) mangobrain: autotools certainly allows fine control, but its idea of control is letting you control CFLAGS directly... which just doesn't fly when the toolchain isn't GNU, and I for one wouldn't like to be the one to port some of the abominable build scripts I've seen to *anything*
(8:01:10 PM) Garretts-msft: The great part about CoApp is that half of it is tools to reconstruct visual studio build files from *ANYTHING*
(8:01:35 PM) mangobrain: as you said in your list reply :) I'll believe it when I see it... or at least a plausible design for it
(8:02:00 PM) mangobrain: hell, Anjuta can't even import most "standard" autotools projects well, in my experience
(8:02:08 PM) mangobrain: and that's what it *does*
(8:02:09 PM) Garretts-msft: I spent a couple days with the TurboHercules (a mainframe emulator) folks a couple of months back. In 8 hours I had a binary that compiled really quickly, and produced a binary that was 20% faster than the best build they could make
(8:02:14 PM) Garretts-msft: ROFL
(8:02:45 PM) Garretts-msft: Well, ya see, I've been thinking about this problem for the better part of a decade, and the solution came to me a couple of years ago
(8:03:30 PM) Garretts-msft: Instead of trying to understand what a build is doing from the scripts, I built a tool that watches an executable, and every child it spawns off. It records ever file access, create, delete, and records every command line
(8:03:41 PM) Garretts-msft: that's called "trace" -- ain't I clever
(8:04:13 PM) Garretts-msft: and then I spit that back thru a tool called mkProject which walks backwards identifying the .LIB, .DLL and .EXEs that are created
(8:04:25 PM) Garretts-msft: and then identifies what .obj and .lib files went into making them
(8:04:39 PM) Garretts-msft: and then looks at all the C/C++ commands issued to build those.
(8:04:45 PM) johnc [karthik.ra@] entered the room.
(8:05:25 PM) Garretts-msft: Check ou the four posts in June
(8:05:32 PM) johnc: I'm logged in as two users 'enthu' and 'johnc' ... Can the op kick enthu ?
(8:05:33 PM) Garretts-msft: start at the bottom and work your way up
(8:05:48 PM) BrianAnthony: /ghost enthu
(8:05:57 PM) BrianAnthony: or something like that
(8:05:58 PM) BrianAnthony: been a while
(8:06:57 PM) Garretts-msft: And you can see the first generation of those tools on my codeplex page at
(8:07:06 PM) Garretts-msft: They require hand-holding, but are pretty functional.
(8:07:17 PM) Garretts-msft: The next generation will be frickin' magic
(8:10:35 PM) mangobrain: interesting idea, but I'm still not clear on a few points
(8:10:54 PM) mangobrain: surely you have to have an existing built version to trace?
(8:11:55 PM) johnc left the room (quit: ).
(8:12:13 PM) Garretts-msft: Yes. but nearly every I've ever wanderd across can be built.
(8:12:18 PM) Garretts-msft: it's just a pain in the ass
(8:12:40 PM) johnc [karthik.ra@] entered the room.
(8:14:21 PM) mangobrain: a *big* pain in the ass... very few projects ship with both UNIX build stuff and Vis Studio build stuff
(8:15:08 PM) auroraeosrose: might be an issue for stuff that doesn't have any built scripts at all for windows
(8:15:10 PM) Garretts-msft: it doesn't have to be good build scripts. they can be .bat files, nmake scripts, anything. ...
(8:15:31 PM) mangobrain: also, plugins created as separate projects from the apps which load them prove "interesting", surely?
(8:15:40 PM) johnc left the room (quit: Client Quit).
(8:15:46 PM) Garretts-msft: only midly so.
(8:15:47 PM) johnc [karthik.ra@] entered the room.
(8:16:11 PM) Garretts-msft: I've already managed to do this with PHP ... it has a ratsnest of modules, dependencies and stuff.
(8:16:47 PM) mangobrain: yeah.. I've not worked much with PHP, thankfully, but am vaguely aware of this
(8:16:58 PM) auroraeosrose: it's a pain
(8:17:03 PM) auroraeosrose: (pain pain pain pain)
(8:17:26 PM) auroraeosrose: python I'm sure is equally as hairy to build - or anything that ties a bunch of libraries together
(8:17:30 PM) Garretts-msft: About half the people in the world that can build PHP on windows are in this channel right now
(8:17:37 PM) auroraeosrose: LOL
(8:17:42 PM) auroraeosrose: when there's only 4 that's not hard
(8:17:46 PM) Garretts-msft: ROFL
(8:17:49 PM) mangobrain: so to get all the plugins traced, you may actually need to run the app several times, in different configurations? I assume the app doesn't need to *do* much other than start and load its plugins? (until you want to start generating decent profiles for PGO)
(8:18:20 PM) Garretts-msft: Yeah. that's pretty much it.
(8:18:46 PM) mangobrain: it's certainly an interesting approach (yes, I know I keep using that word, I mean it in a good way here)
(8:19:03 PM) enthu left the room (quit: Disconnected by services).
(8:19:24 PM) Garretts-msft: I've tried to solve it several different ways... it's the only way that has proved to be successful.
(8:19:29 PM) johnc left the room (quit: Client Quit).
(8:19:35 PM) enthu [karthik.ra@] entered the room.
(8:20:26 PM) mangobrain: I wish I could describe more about this daemon I'm working on, to see if you'd cry or say "that's easy"... sadly nothing's publicly released yet, so I probably shouldn't
(8:21:11 PM) mangobrain: unrelated note, have you tried a GTK app? I tried porting a little board game I wrote, and that is a PAIN with MinGW
(8:21:45 PM) mangobrain: get GTK going and you get me on side ;)
(8:22:49 PM) auroraeosrose: omg
(8:22:51 PM) auroraeosrose: yeah
(8:22:58 PM) auroraeosrose: I'm the lead on php-gtk
(8:23:06 PM) auroraeosrose: building that sucker for windows is hell on earth
(8:23:08 PM) pgquiles: Garretts-msft: when CoApp will be able to build and install KDE on Windows (including build-dependencies, runtime dependencies, etc), and solves the runtime issues (such as DBUS), then you can say you have succeeded :-)
(8:23:42 PM) mangobrain: pgquiles: same sentiment, s/KDE/GNOME/
(8:23:50 PM) auroraeosrose: any of those very large stacks
(8:23:57 PM) auroraeosrose: with dependencies a mile deep
(8:24:04 PM) pgquiles: mangobrain: KDE already build and runs on Windows, Gnome does not :-)
(8:24:12 PM) auroraeosrose: parts of it do
(8:24:39 PM) pgquiles: gtk and a few libraries, very few of gnome does actually run on windows
(8:24:55 PM) pgquiles: KDE is almost replacing explorer.exe with Plasma
(8:25:09 PM) auroraeosrose: nice
(8:25:10 PM) pgquiles: (KDE on Windows guy here :-) )
(8:27:50 PM) enthu is now known as _johnc_
(8:28:03 PM) _johnc_ is now known as enthu
(8:29:00 PM) mangobrain: so I have my app up and running, trace it, get it building cleanly with a CoApp-generated Visual Studio project... then one of my co-workers on Linux writes a new plugin
(8:29:34 PM) Garretts-msft: Yes, the process will occasionally have to be repeated.
(8:29:50 PM) Garretts-msft: But, such is the price of shallow-forking
(8:30:06 PM) mangobrain: would I re-compile "the hard way" and re-trace, commit the Visual Studio files to the project and maintain two build systems, or would it be"someone else's problem?
(8:31:10 PM) tbullock [] entered the room.
(8:31:39 PM) Garretts-msft: mangobrain -> hang on a sec...
(8:31:46 PM) Garretts-msft: tbullock -> are you from Calgary!?
(8:32:21 PM) tbullock: Yep
(8:32:28 PM) Garretts-msft: Awlright!
(8:32:38 PM) Garretts-msft: Calgary is my home town.
(8:32:42 PM) tbullock: Ha
(8:32:43 PM) tbullock: cool
(8:32:46 PM) Garretts-msft: Yeeehaw
(8:32:51 PM) tbullock: You and I have talked a couple times in the past
(8:32:55 PM) auroraeosrose: I keep looking at the map on launchpad
(8:33:01 PM) auroraeosrose: is cool
(8:33:09 PM) Garretts-msft: I didn't remember if I had talked to you about that before.
(8:33:10 PM) Garretts-msft: :D
(8:33:17 PM) tbullock: Probably not
(8:33:32 PM) tbullock: Hi Elizabeth
(8:33:35 PM) Garretts-msft: oh, crap ... I gotta run and give a breifing about coapp... back in a couple hours-ish
(8:33:36 PM) auroraeosrose: hiya
(8:33:37 PM) tbullock: Long time no talk
(8:33:45 PM) auroraeosrose: work is killing me
(8:33:50 PM) ***auroraeosrose stabs sql with a rusty fork
(8:33:58 PM) tbullock: haha
(8:34:29 PM) tbullock: I was glad to read that Garrett got his project approved
(8:35:52 PM) tbullock: What are you working on these days?
(8:36:08 PM) pgquiles: I don't really like the idea of maintaining CoApp-generated Visual Studio projects. Why not adding support for autohell to Visual Studio?
(8:36:45 PM) auroraeosrose: you know they call it autohell for a reason
(8:37:10 PM) pgquiles: auroraeosrose: I know because I've moved a good number of projects from autohell to CMake :-)
(8:37:21 PM) pgquiles: but really is there are still a lot of projects using autotools out there
(8:37:37 PM) mangobrain: I think what a lot of people will be hoping for is tools to help with the *first* half of the problem - getting the software built in the first place. Not that getting a decent build setup - letting you build *well* for Windows - is a bad thing, but I think it's getting things built at all that people struggle with
(8:37:43 PM) pgquiles: adding support for autotools could be as simple as improving the SFU shell and providing a few libraries
(8:38:25 PM) auroraeosrose: quite frankly I'd rather port the rest of the world to cmake
(8:38:56 PM) pgquiles: auroraeosrose: start contributing to :-)
(8:39:31 PM) auroraeosrose: problem is a lot of stuff to run properly needs patches too
(8:39:33 PM) mangobrain: pgquiles: you say that as if autotools is somehow dead :) a lot of people still swear by it
(8:39:54 PM) auroraeosrose: and at it
(8:40:11 PM) auroraeosrose: and I still have four issues in the bugtracker for build issues I have no clue how to fix
(8:41:12 PM) pgquiles: mangobrain: the more people care about Windows, the less they like autotools
(8:41:51 PM) mangobrain: people just need to learn to use libtool and pkg-config (or, rather, they need to become possible for mortals to use... but technically I find it difficult to fault their approach)
(8:41:53 PM) pgquiles: the main reason KDE moved from autotools to CMake was Windows
(8:42:19 PM) mangobrain: configure scripts are soooo much easier to write, and so much more reliable, when all your deps have decent pkg-config support
(8:42:49 PM) auroraeosrose: yeah, well the biggest issue for the projects I work with is distros versions of libtool and autotools in all their myriad incarnations
(8:42:54 PM) pgquiles: mangobrain: but the fact that very few projects use pkg-config renders it barely useful
(8:43:47 PM) pgquiles: in the end, you need to test for pkg-config-enabled environments and pkg-config-less environments, which makes the former test mostly useless
(8:43:53 PM) enthu left the room (quit: Quit: You're goin' to have a nice day. Happy coding. Ciao).
(8:44:33 PM) pgquiles: auroraeosrose: heh, tell me about that. I've been struggling for months to get ACE ( to build on Debian because of the ancient libtool they use :-/
mangobrain markskilbeck maxmalook
(8:45:19 PM) pgquiles: in the end, we (the debian packagers) decided to no longer use autotools to build ACE, it's just too difficult with too obscure issues
(8:45:23 PM) mangobrain: pgquiles: define "very few".. I get a pretty big list on my box when I do pkg-config --list-all
(8:46:14 PM) pgquiles: mangobrain: on this machine pkg-config --list-all returns 100 results
(8:46:44 PM) pgquiles: which is about 10% of the more than 1000 library packages I have installed here for development
(8:47:17 PM) mangobrain: regardless, you hit on exactly my point when you said you didn't like the sound of maintaining generated Vis Studio project files
(8:47:41 PM) pgquiles: well, my point is I don't want to maintain two build systems
(8:47:51 PM) pgquiles: that's the very reason people are moving to CMake
(8:48:14 PM) pgquiles: single project file for your software, then native project files for your tools
(8:48:23 PM) auroraeosrose: yes - but even if you use cmake - it still doesn't solve other issues -
(8:48:25 PM) pgquiles: which means I can use IncrediBuild on Windows, etc
(8:48:27 PM) auroraeosrose: just the build one
(8:48:52 PM) pgquiles: auroraeosrose: well, CMake is able to create packages/installers, so that part is also solved
(8:49:09 PM) mangobrain: the question is whether the tracing part of CoApp is actually the meat of it, or is it the standardising, packaging, distributing, updating... whilst leaving initial building still troublesome
(8:49:13 PM) pgquiles: and externalproject_add makes possible to download and integrate 3rdparty build systems, like trace and mkproject from garrett
(8:49:26 PM) auroraeosrose: pgquiles: no - not really
(8:49:36 PM) auroraeosrose: still doesn't standarize
(8:49:39 PM) pgquiles: the main missing part I see at this moment with CoApp is runtime dependency
(8:49:47 PM) pgquiles: auroraeosrose: what do you mean "still doesn't standardize" ?
(8:49:54 PM) mangobrain: because frankly, if it isn't going to mean I can ditch MinGW any time soon... well, I'm still interested, but it's not what I thought it would be
(8:49:56 PM) auroraeosrose: you can do your installer all you want
(8:50:06 PM) auroraeosrose: but if you are still shiping your own zlib
(8:50:08 PM) auroraeosrose: and open sll
(8:50:11 PM) auroraeosrose: openssl
(8:50:13 PM) auroraeosrose: god, stupid fingers
(8:50:20 PM) auroraeosrose: and every other project is too
(8:50:26 PM) auroraeosrose: still dll hell, still dependency issues
(8:50:44 PM) auroraeosrose: still - well - frankenstein
(8:50:49 PM) pgquiles: auroraeosrose: well, sure, but you know what? most people actually prefer that!
(8:50:59 PM) pgquiles: that's the only way you can be sure your software will run perfectly
(8:51:01 PM) mangobrain: pgquiles: you must be nuts
(8:51:05 PM) mangobrain: sorry :)
(8:51:09 PM) auroraeosrose: um
(8:51:10 PM) pgquiles: mangobrain: :-P
(8:51:12 PM) auroraeosrose: yeah...
(8:51:24 PM) auroraeosrose: I'm so hacking your stuff after openssl or curl releases another security fix
(8:51:26 PM) auroraeosrose: ;)
(8:51:27 PM) pgquiles: how do I know what options was OpenSSL compiled with? or libpng? does it support zlib or not?
(8:51:30 PM) mangobrain: I see auroraeosrose's point, for open source software, if two things use OpenSSL, that shouldn't mean two copies of OpenSSL
(8:51:35 PM) auroraeosrose: yes
(8:51:37 PM) auroraeosrose: it should be one
(8:51:39 PM) pgquiles: that kind of stuff is not only ABI incompatible, but also the .h are different
(8:51:49 PM) auroraeosrose: sure pgquiles - that's what SxS is for
(8:51:54 PM) auroraeosrose: you say "I must have this version"
(8:52:02 PM) auroraeosrose: and open SxS says "here you go"
(8:52:18 PM) pgquiles: auroraeosrose: sure, I'm all for SxS
(8:52:36 PM) pgquiles: but I don't see how you are going to identify 2 OpenSSL versions installed by 2 different 3rd parties
(8:52:46 PM) ***auroraeosrose sighs
(8:52:50 PM) pgquiles: either upstream OpenSSL supports it, or you are lost
(8:52:58 PM) mangobrain: auroraeosrose: say I have installed OpenSSL on my system via CoApp, will it help me build my program - which needs to link with OpenSSL - from MinGW (let's say I don't have it traced yet)? Will I actually be able to use that for development?
(8:53:07 PM) auroraeosrose: that's the goal mangobrain
(8:53:23 PM) auroraeosrose: in fact - part of the goal is to have the equivalent of -dev packages
(8:53:40 PM) mangobrain: *that* is more like it. for me, all the deployment stuff is icing on the cake, since I'm so used to that from Linux anyway ;) very nice icing, admittedly
(8:53:43 PM) auroraeosrose: so you get the open ssl dev package
(8:53:57 PM) auroraeosrose: and link your stuff against it
(8:54:11 PM) auroraeosrose: and when you build the msi it says "must have XX open ssl as dep"
(8:54:16 PM) auroraeosrose: and you're done
(8:54:59 PM) pgquiles: auroraeosrose: oh, then I had misunderstood the goal of CoApp. I thought the point of CoApp was to be able to build my app and all the dependency chain an install the whole dependency chain, too. What you are talking about is CoApp would be providing sort of a "system-wide" OpenSSL for all CoApp-built applications to use? like Linux distros?
(8:55:08 PM) auroraeosrose: yes
(8:55:36 PM) auroraeosrose: ... the windows distro
(8:55:43 PM) ***auroraeosrose rolls on floor laughing at THAT
(8:56:39 PM) auroraeosrose: as a bit of a downer - I personally don't think there's ever going to be a "build solution"
(8:56:44 PM) pgquiles: mmm so we are not that far from Microsoft Linux :-D
(8:56:47 PM) auroraeosrose: windows does things one way
(8:56:53 PM) auroraeosrose: linux does things another
(8:57:00 PM) auroraeosrose: forcing them into each other's molds is
(8:57:02 PM) auroraeosrose: silly
(8:58:15 PM) auroraeosrose: then again, I can be far too cynical
(8:58:30 PM) auroraeosrose: especially when I see things like "well just make windows use all the linux apis"
(8:58:37 PM) ***auroraeosrose bangs head on table
(9:00:33 PM) mangobrain: is there any plan to work on the build side of things other than tracing? because as cool as a GTK dev package would be, it will be of limited use if none of my GTK apps detect it when I try to build them in MinGW (pre-tracing), since it probably won't have a pkg-config file if it was built with VS
(9:00:55 PM) mangobrain: it strikes me that it will be awesome.... when there's a critical mass of already-ported apps
(9:01:08 PM) mangobrain: getting to that point may take rather a long time
(9:01:25 PM) auroraeosrose: yeah, depends on the manpower too
(9:01:33 PM) auroraeosrose: doing one library would be easy
(9:01:46 PM) auroraeosrose: doing 15 with one person - not so much
(9:02:21 PM) auroraeosrose: but really - again a downer
(9:02:41 PM) auroraeosrose: you shouldn't ever link anything built with mingw against anything built with vs 2010, or 2008
(9:03:03 PM) auroraeosrose: there's a long lecture I could give about microsoft C runtimes
(9:03:13 PM) auroraeosrose: but the bottom line is "go boom when least expect it"
(9:06:37 PM) auroraeosrose: since the coapp stuff would be using VC for the builds not mingw
(9:06:53 PM) auroraeosrose: would be of no value if you didn't also use VC
(9:09:40 PM) mangobrain: and there's the rub - needing a built, running version of something, so you can trace it in order to get a decent VS project
(9:10:04 PM) mangobrain: if you can't use the CoApp versions of libraries to help with that initial boot-strapping... well, it's a bit of a catch-22
(9:10:17 PM) mangobrain: unless I'm missing something
(9:10:26 PM) auroraeosrose: no idea
(9:11:00 PM) auroraeosrose: at some point there would have to be a way to scan an automake setup to get a basic VS project build
(9:11:08 PM) auroraeosrose: for projects that really have nothing
(9:11:49 PM) mangobrain: to be honest, that's what I thought CoApp would be about... if it's about that *and* the packaging, distributing, and updating, then even better... but I do think something like that will be needed
(9:12:24 PM) mangobrain: but as we all know, that part isn't easy :) hence the myriad build systems available today
(9:12:46 PM) Garretts-msft: back for a few minutes...
(9:12:59 PM) auroraeosrose: yeah, I wrote a book - happy scrollback ;)
(9:13:03 PM) mangobrain: hehe
(9:13:04 PM) mangobrain: wb
(9:13:09 PM) Garretts-msft: I see that
(9:13:33 PM) auroraeosrose: yeah, if you see me in person ever - yes I am chatty
(9:14:01 PM) Garretts-msft: "but I don't see how you are going to identify 2 OpenSSL versions installed by 2 different 3rd parties"
(9:14:11 PM) Garretts-msft: So, I have an answer for that
(9:14:24 PM) Garretts-msft: digital code signatures
(9:14:28 PM) Logging started. Future messages in this conversation will be logged.
(9:14:31 PM) Logging stopped. Future messages in this conversation will not be logged.
(9:15:04 PM) Garretts-msft: that way you can discern the difference between OpenSSL from CoApp and one from someone else...
(9:15:21 PM) Garretts-msft: or even on for VC9 and one for VC10 and one for MinG
(9:15:28 PM) Garretts-msft: all can be installed at the same time
(9:15:51 PM) Garretts-msft: With WinSXS and authenticode, it works really well.
(9:16:03 PM) Garretts-msft: I've built a POC last fall to validate that.
(9:17:32 PM) Garretts-msft: The toolset will automate the crap out of this, it will be pretty simple to use.
(9:18:03 PM) Garretts-msft: And, a special client tool called "SharedLibraryConfig" which will ensure sanity and validity of the ecossytem
(9:18:20 PM) Garretts-msft: (kindof like a windows-style ldconfig...but a bit smarter)
(9:19:39 PM) Garretts-msft: the wiki has pages that talk about some of this.
(9:20:53 PM) mangobrain: yeah, I had a glance at some of those... I admit to knowing nothing about SxS, but the general concepts and directory structure plans look reasonable
(9:21:29 PM) Garretts-msft: The scary part is that the number of people who really understand WinSXS is really small.
(9:22:02 PM) Garretts-msft: I spent a lot of time mastering that, and then I went and talked with the WinSXS maintainer here at MS
(9:22:05 PM) auroraeosrose: all I need to know is how to put stuff in, take stuff out, and tell it what I want ;)
(9:22:31 PM) Garretts-msft: I told him what I want to do, and he was impressed, and said I was bang on target.
(9:22:50 PM) auroraeosrose: sweet
(9:22:56 PM) Garretts-msft: auroraeosrose->the tools will hide it from you. and make sure nobody screws it up
(9:24:12 PM) Garretts-msft: the great part, is every shared library we .. co-opt... the better the system will work, and the easier it gets to port this stuff to windows
(9:24:47 PM) mangobrain: I'm sure you're already aware of this, but "not widely understood" is the impression I get about a lot of Microsoft tech - it exists, it has a name, but so often it's really unclear what it actually *does*, and when developing for Windows, I never really get the sense that the documentation gives me a coherent, consistent idea of what I'm actually meant to *use* to get various things done
(9:25:24 PM) auroraeosrose: hehe
(9:25:24 PM) mangobrain: I hear echoes of this whenever I talk to anyone who does cross-platform development starting from the POSIX side of the fence
(9:25:36 PM) Garretts-msft: well, I did figure it all out from the docs on MSDN. I think part of the problem, is that I didn't really beleive they had done what it was saying.
(9:25:38 PM) Garretts-msft: LOL
(9:25:53 PM) auroraeosrose: well, there's also the fact that the msdn docs need some editors
(9:26:22 PM) auroraeosrose: so insane
(9:26:26 PM) Garretts-msft: they have a large team of editors, if you can beleive it. When I was in a product group I wrote docs for the MSDN... it was .challengeing
(9:26:26 PM) vorte[x]: I do WinSXS at work! Agreed tho, most people I talk to are like... huh? Policies? "So I should recompile with same version number to prevent errors, right?"
(9:26:37 PM) auroraeosrose: ...
(9:26:40 PM) auroraeosrose: LOL vorte[x]
(9:27:02 PM) Garretts-msft: vorte[x]-> the worst part, is the the VC 2008 team f*cked up, and VC2010 chicked out of fixing the problem
(9:27:11 PM) vorte[x]: How so?
(9:27:17 PM) vorte[x]: Are we talking about redistributables here?
(9:27:56 PM) Garretts-msft: they should have always built the manifest to target just the major.minor version and not
(9:28:08 PM) vorte[x]: Oh god, yes.
(9:28:24 PM) vorte[x]: I have to explain manifests and runtimes like everyday at work.
(9:28:33 PM) Garretts-msft: They didn't build a tool to sniff our their own problem. had they just manifested for they would have never had a problem, and policy would have set them free
(9:28:44 PM) mangobrain: Garretts-msft: do you have any comment on my catch-22 scenario? I have a program that builds with MinGW, but is currently un-traced and so doesn't build with VS... and I have installed its dependencies, which someone has conveniently already ported, via CoApp... can I in any way use those to help me do the initial build, or do I have to go through the rigmarole of getting MinGW versions to get that initial build going?
(9:29:10 PM) Garretts-msft: I can trace the MinGW build just as easily as the VC build
(9:29:17 PM) vorte[x]: And we have issues where employee X installs SP1, thinking it's just servicing the IDE, recompiles, deploys, and things explode.
(9:29:27 PM) Garretts-msft: I was even toying with tracign a Linux build ... only as a last resort tho'
(9:29:40 PM) Garretts-msft: trace make -f foo.mak
(9:29:40 PM) auroraeosrose: yeah, that might get messy
(9:29:43 PM) mangobrain: not quite explaining myself here... I have the *source* of a program which would build with MinGW, if I was so inclined to set it all up just right
(9:30:00 PM) mangobrain: but want to skip all that, because CoApp already has the deps ported
(9:30:05 PM) Garretts-msft: if you can build it *ONCE* I can trace it.
(9:30:35 PM) Garretts-msft: well, you can always use coapp libs before even having a coapp-built exe.
(9:30:52 PM) Garretts-msft: and, it doesn't even have to run. you could mix compilers for this purpose and not worry
(9:31:33 PM) Garretts-msft: point your existing build at the coapp deps, and trace the build. I'll get enough info to reconstruct the build correctly.
(9:32:16 PM) Garretts-msft: I'm also spec'ing out a tool to scan source code and potentially reconstruct build scripts without that, but it may require deveoper hand holding
(9:34:06 PM) Garretts-msft: Like I've said before, I've done this with over a hundred libs and apps by hand with the gen 1 tools, and never ran into anything I couldn't process.
(9:35:15 PM) mangobrain: but you also said that half the people capable of building PHP on Windows are in this channel - there will be other apps where the numbers are similar, and I don't think it'll take something as complex as PHP for it to crop up
(9:35:47 PM) mangobrain: tracing an existing build is fine, I think we just disagree on how much of a roadblock getting that initial build is
(9:35:53 PM) Garretts-msft: If there is another codebase that is as much of a ratsnest as PHP on windows, I'd be suprised
(9:36:13 PM) auroraeosrose: *cough* gtk *cough*
(9:36:18 PM) auroraeosrose: iz BAD
(9:36:27 PM) Garretts-msft: I've been compiling open source software for 25 years (started with CP/M and VDO) ... it's just not that hard. ;D
(9:36:45 PM) Garretts-msft: gtk is bad... I'll give you that.
(9:37:03 PM) Garretts-msft: I think it's not as bad as PHP...
(9:37:53 PM) Garretts-msft: I did GTK in the lab last summer, and it still wasn't as bad as tracing and building PHP
(9:38:10 PM) auroraeosrose: it keeps getting worse Garretts-msft
(9:38:23 PM) Garretts-msft: LOL
(9:38:37 PM) auroraeosrose: it's so sad
(9:38:40 PM) Garretts-msft: the nice thing is, it's a nice long road because of all the deps
(9:38:41 PM) mangobrain: MinGW is a real pain in the arse... but it's also the only option if you don't want to use Visual Studio. Cygwin depends on too much non-native runtime, SFU's place in the world is so elusive I'm not even sure it really exists any more... even downloading the pre-built "GTK SDK" package didn't work without hacking, because all the bloody paths in the .pc and .la files were geared up for the box they were compiled on
(9:39:08 PM) mangobrain: trust me, for the majority of developers, building will be a problem
(9:39:38 PM) Garretts-msft: that's why we want to solve the problem once
(9:39:42 PM) markskilbeck: If I see another reddit post about Apple vs. Adobe, I will self-destruct.
(9:40:39 PM) Garretts-msft: Developer side of this story is the most important to me. The client side is alot simpler.
(9:41:13 PM) Garretts-msft: ... gotta run for a bit.. be back later
(9:41:30 PM) mangobrain: I agree - sane file paths may be alien to someone who's never looked at the layout of a UNIX root filesystem, but there's plenty of prior art
(9:44:29 PM) tbullock: Pleasant times listening in on the conversation... I will participate in the coming days, except I have to drive to saskatchewan in a few minutes
(9:44:39 PM) tbullock: later
(9:45:27 PM) tbullock left the room (quit: Remote host closed the connection).
(9:57:04 PM) markskilbeck left the room (quit: Read error: Connection reset by peer).