00:32:35  <FearTheCowboy>Sweet mercy.
00:32:50  <FearTheCowboy>finally found out why it was crashing for dmex
00:33:01  * FearTheCowboybashes head against wall.
01:03:13  <FearTheCowboy>Posted a better coapp.cleaner; it's far more diligent about cleanup
01:07:32  <Scotis>wat happened?
01:09:13  <FearTheCowboy>a well-timed machine could get in a state where it convinced the client app to actually make multiple connections to the server, and if the service itself was in the *first* startup (where it dilligently scans all instlled MSIs) it could run thru *that* twice, and overwrite the data *just* as the first time the engine is setting up it's own symlinks...
01:11:17  <FearTheCowboy>And, to make matters worse, the crappy error window pops up *under* the UI window.
01:12:25  <Scotis>huzzah!?
01:12:37  <FearTheCowboy>Yeah; :)
01:13:32  <FearTheCowboy>Along the way I found four other things that caused me grief, and it took some effort clean them up too.
01:14:58  <Scotis>hmm might have an issue with coapp remove coapp.toolkit-
01:15:12  <Scotis>it seems like it is taking a really long time
01:15:13  <FearTheCowboy>hit me!
01:15:46  <FearTheCowboy>you installed a newer one?
01:15:53  <Scotis>yeah - it is just sitting there after outputting the header - yes i'm on 163
01:16:09  <FearTheCowboy>reaaaaaly.
01:16:25  <FearTheCowboy>kill it and try it again.
01:17:04  <FearTheCowboy>hmm.
01:17:08  <FearTheCowboy>I think I got tat too.
01:17:09  <FearTheCowboy>*sigh*
01:17:13  <Scotis>did a Ctrl-C - and did it again - still sitting there...
01:17:15  <Scotis>ah ok
01:17:18  <FearTheCowboy>oh, nope it worked
01:17:22  <Scotis>hmm
01:17:23  <FearTheCowboy>just no progress...
01:17:24  <FearTheCowboy>that's weird.
01:19:06  <FearTheCowboy>wtf? remove isn't giving progress messages at all now.
01:19:44  <FearTheCowboy>oh, it's just not working.
01:20:50  <FearTheCowboy>ah. it looks like it's having trouble with undoing symlinks.
01:21:33  * auroraeosrosequit (Ping timeout: 252 seconds)
01:23:53  <FearTheCowboy>oh crap
01:24:01  <FearTheCowboy>I've got a stack overflow somewhere
01:25:59  <FearTheCowboy>OH CRAP
01:26:17  <FearTheCowboy>found it!
01:26:19  * auroraeosrosejoined
01:31:59  <FearTheCowboy>ok, .165 fixes that little fella
01:32:01  <FearTheCowboy>*sigh*
01:32:18  <Scotis>ok testing ... :)
01:33:29  <Scotis>i should probably just dl the msi for .165 - trying to do 'coapp install coapp.toolkit' is just erroring
01:33:45  <FearTheCowboy>yeah,
01:36:46  <FearTheCowboy>can you remove older ones?
01:39:01  <Scotis>ok - got .165 installed - 1st time i tried installing it from .msi got a wierd error - tried again and then it worked
01:39:06  <Scotis>coapp remove now works
01:39:11  <FearTheCowboy>yay
01:39:20  <Scotis>drinks all around! ;)
01:42:05  <FearTheCowboy>https://github.com/coapp/coapp.org/wiki/Coapp-drinking-game
01:47:33  <FearTheCowboy>I made a package for process hacker too this morning. (like processexplorer but better, and open source)
01:47:53  <FearTheCowboy>that's the first package I've made that puts shortcuts in the start menu
01:57:11  <madewokherd>does that install a driver?
01:57:19  <madewokherd>because I seem to recall you mentioned drivers
01:57:32  <FearTheCowboy>it doesn't install it--PH loads its driver itself
01:57:52  <FearTheCowboy>But I did build it :)
01:59:57  <Scotis>congrats! :)
02:00:20  <dmex>lol
02:00:23  <FearTheCowboy>I added the stuff to pTk to support building drivers :)
02:01:43  <dmex>btw
02:02:05  <dmex>if you want KPH used while PJ isn't elevated, you can set the SecurityLevel regkey
02:02:35  <dmex>I'm also not sure but you might need to include the licence.txt with the install
02:03:09  <dmex>(readme would probably help too)
02:03:17  <FearTheCowboy>I could probably do that.
02:03:53  <dmex>I like how my spelling is worse just after waking up
02:05:53  * dmexfinds the coffee
02:48:15  <dmex>the cleaner doens't remove shortcuts
02:48:27  <dmex>doesn't
03:05:48  * gixquit (Ping timeout: 252 seconds)
03:11:17  * gixjoined
03:43:42  * Scotisis no longer away : Gone for 1 days 48 mins 37 secs
03:43:48  * Scotisis set as away : Reason(evening)
04:49:19  * madewokherdquit (Remote host closed the connection)
06:25:36  * auroraeosrosequit (Ping timeout: 245 seconds)
06:58:15  * ender`joined
09:22:36  * ssam2joined
09:58:24  * Jonny5joined
09:58:36  * Jonny5quit (Changing host)
09:58:37  * Jonny5joined
11:13:07  * auroraeosrosejoined
11:17:34  * auroraeosrose1joined
11:19:16  * auroraeosrosequit (Ping timeout: 264 seconds)
11:30:53  * auroraeosrose1quit (Ping timeout: 250 seconds)
11:47:28  * auroraeosrosejoined
11:53:22  * auroraeosrose1joined
11:56:07  * auroraeosrosequit (Ping timeout: 245 seconds)
12:07:03  * Jonny5quit (Quit: Leaving.)
12:12:42  * auroraeosrose1changed nick to auroraeosrose
13:29:18  * vpovirkjoined
13:38:18  * _Andrewjoined
14:03:22  * virmitiojoined
15:40:01  <auroraeosrose>HAHA
15:40:09  <auroraeosrose>it's solar flares, that's what I'm blaming my crappy wifi on
15:40:11  <auroraeosrose>score!
15:40:20  <FearTheCowboy>Riiiiight
15:40:23  <FearTheCowboy>Keep dreamin'
15:48:02  <virmitio>does this mean we should take another drink?
16:00:40  * cH40z-Lordquit (Quit: Wenn 2 im Raum sind, 3 raus gehen, dann muss einer zur├╝ckkommen, dass keiner mehr da ist.)
16:03:07  * cH40z-Lordjoined
16:03:09  <FearTheCowboy>dmex -> I'm adding in dead .lnk removal into the cleaner. Good catch.
16:08:59  * wwahammy_joined
16:51:01  * ssam2quit (Quit: Leaving)
16:51:19  * Scotisis no longer away : Gone for 13 hrs 7 mins 31 secs
17:24:22  * piscisaureus_joined
17:48:54  * wwahammy_quit (Quit: If you think nobody cares, try missing a few payments)
18:06:38  * gixquit (Ping timeout: 244 seconds)
18:12:42  * gixjoined
18:31:37  * Jonny5joined
18:31:37  * Jonny5quit (Changing host)
18:31:37  * Jonny5joined
18:32:25  * Jonny5quit (Client Quit)
18:33:45  * Jonny5joined
18:33:45  * Jonny5quit (Changing host)
18:33:45  * Jonny5joined
18:41:24  * wwahammy_joined
18:41:29  * wwahammy_part
18:41:31  * wwahammy_joined
18:50:55  <virmitio>why does every open-source library require every other open-source library in order to be built?
18:51:35  <auroraeosrose>it's turtles all the way down
18:53:46  <ender`>virmitio: because they can't rely on closed-source libraries
18:56:10  <ender|>http://www.virtualdub.org/blog/pivot/entry.php?id=365
19:09:37  * remy_ojoined
19:11:11  * auroraeosrose1joined
19:12:22  * auroraeosrosequit (Ping timeout: 248 seconds)
19:16:42  * _Andrewquit (Quit: sleep)
19:56:16  <auroraeosrose1>FearTheCowboy: I have the damn thing building
19:56:24  <FearTheCowboy>WHEEEEE!
19:56:25  <auroraeosrose1>where do I put the new 2010 .sln/project stuff?
19:56:30  * auroraeosrose1changed nick to auroraeosrose
19:56:32  <auroraeosrose>grrr
19:56:35  <FearTheCowboy>copkg is a good place
19:56:44  <auroraeosrose>ok, I'll shove them in there ;)
19:56:45  <FearTheCowboy>if not there, the root
19:56:58  <auroraeosrose>eh, depends on... we pushing upstreams at some point?
19:57:16  <auroraeosrose>I can stick it in root then (for re2c) sigh
19:57:28  <FearTheCowboy>once we're sure we're on track
20:12:23  <auroraeosrose>WHY MSBUILD NOT LIKE COMMAND LINE
20:12:41  <auroraeosrose>I think we need a section on "building projects/solutions from the command line" ;)
20:13:30  <virmitio>auroraeosrose: if you can find a way to put that in a doc in a sufficiently generic (but still meaningful!) way, I'd be glad to have it on the site
20:13:54  <auroraeosrose>do we have a faq?
20:14:11  <auroraeosrose>"I have a vc10 solution file - how do I figure out what msbuild command to use"
20:14:34  <vpovirk>seems like it'd be appropriate in with the buildinfo stuff
20:24:16  <auroraeosrose>any of the other buildinfos tha twork use msbuild virmitio?
20:24:23  <auroraeosrose>can't decide if I"m stupid or msbuild is stuid
20:24:41  <virmitio>most of them that have actual packages up, if I recall
20:25:22  <auroraeosrose>to do .sln builds?
20:25:26  * auroraeosrosemust be stupid
20:26:11  <virmitio>check the .buildinfo in apr
20:26:16  <auroraeosrose>danka
20:28:03  <auroraeosrose>REM this makes it so that DLLs can have their own SxS Activation Context in an embedded resource. echo %_CL% | findstr ISOLATION_AWARE || set _CL=%CL% /D ISOLATION_AWARE_ENABLED
20:28:09  <auroraeosrose>ugh, are we going to need to do that a lot?
20:28:32  <virmitio>at the immediate moment, probably
20:28:57  <virmitio>eventually, I'm hoping to have ptk set it by default and have a command-line switch to explicitly disable it
20:31:38  <auroraeosrose>man, I want the helper for this already, this is too much fiddly work
20:32:11  <virmitio>agreed
20:40:21  <auroraeosrose>how are we handling debug?
20:41:58  <virmitio>if it's a vc10 project, you can pass in a variable in the .buildinfo from higher-level targets to set it as Debug or Release and then use the variable in the msbuild command (refer again to apr's file for a similar type of example)
20:44:45  * auroraeosrose1joined
20:45:26  * virmitiotakes a drink
20:45:50  * auroraeosrose2joined
20:45:57  <FearTheCowboy>TWO DRINKS
20:46:03  <auroraeosrose2>of all the
20:46:07  <auroraeosrose2>SOLAR FLARES
20:46:18  <auroraeosrose2>and I'm spawning
20:48:03  * auroraeosrosequit (Ping timeout: 272 seconds)
20:49:19  * auroraeosrose1quit (Ping timeout: 265 seconds)
20:52:07  * auroraeosrose2changed nick to auroraeosrose
20:52:09  <auroraeosrose>grrrr
20:52:35  <virmitio>whyfor "grrrr"?
20:52:59  <auroraeosrose>just want it to work
20:53:02  <auroraeosrose>is sad at me
20:53:21  <virmitio>and for purposes of a now established pasttime, I must as if "grrrr" == "ugh"
20:53:34  <virmitio>*ask
20:53:45  <auroraeosrose>well, yes you can drink on grrr, ugh, and argh
20:53:55  <auroraeosrose>all accepted "aurora statements of frustrated anger"
20:54:54  <virmitio>noted
20:56:19  <auroraeosrose>concept of build dep is expressed as?
20:57:37  * Jonny5quit (Quit: Leaving.)
21:08:58  <virmitio>a "requires: " statement inside the build target that has the dependency
21:10:52  <auroraeosrose>sweet
21:10:53  <auroraeosrose>ok
21:13:21  <auroraeosrose>ugh, we need boilerplate templates too ;)
21:13:45  <virmitio>have already discussed how to maybe do that with garrett
21:14:27  <auroraeosrose>good, cause the quality of buildinfo files is going to be widely varying without some boilerplate/rules
21:19:34  * gixquit (Ping timeout: 252 seconds)
21:23:41  * gixjoined
21:28:56  <auroraeosrose>virmitio: is <CertName> what I replace for a self-signed cert? the individual and such stays?
21:29:04  <auroraeosrose>what if I want to distribute stuff with my self-signed cert?
21:29:06  <virmitio>yep
21:30:06  <virmitio>auroraeosrose: then the user will likely be prompted if they trust you or not when they run your .msi files
21:30:14  <auroraeosrose>Error: writefile failed
21:30:16  <auroraeosrose>awesome
21:30:20  <auroraeosrose>WTF
21:30:46  <mgdm>auroraeosrose demonstrating her alarming capacity for finding bugs?
21:31:01  <auroraeosrose>how did I break the cert creator
21:31:04  <auroraeosrose>WTF
21:31:10  <FearTheCowboy>run as admin?
21:31:18  <virmitio>are you running it from a WindowsSDK prompt?
21:31:24  <FearTheCowboy>oh, yeah. that too.
21:31:31  * FearTheCowboygotta fix that
21:32:08  <auroraeosrose>yes I am, but not as admin apparently
21:32:14  <auroraeosrose>full path to a file location worked
21:32:18  <virmitio>FearTheCowboy: I think she's following the instruction I have up on the site, which presently don't include the MakeTestCert package until we fix how it works.
21:32:27  <auroraeosrose>but "save to store" failed
21:32:37  <auroraeosrose>cute
21:32:55  <auroraeosrose>virmitio: ok - so docs need to say "if not running as admin, use a full path to the .cer file location" ;0
21:33:30  <virmitio>actually, I may just add that you need to run as Admin, otherwise step 2 will die horribly
21:33:48  <auroraeosrose>what I wouldn't give for sudo
21:33:53  <auroraeosrose>sudo DO THIS
21:34:22  * virmitiodebates writing a cmd-extension driver...
21:34:39  * FearTheCowboynotes that it's not impossible to do something like that via tha coapp service
21:34:56  <auroraeosrose>running as admin isn't a big deal, as long as it's in the docs ;)
21:35:06  <dmex>auroraeosrose: powershell extensions have sudo
21:35:45  <auroraeosrose>too lazy to put that on this vm
21:35:58  <auroraeosrose>also, am trying to be idiot user for doc purposes ;)
21:36:34  <dmex>http://pscx.codeplex.com/
21:36:39  <dmex>su notepad
21:37:51  <auroraeosrose>ok that's new
21:38:08  <auroraeosrose>CertUtil: -exportPFX command FAILED: 0x80090011 (-2146893807)
21:38:08  <auroraeosrose>CertUtil: Object was not found.
21:38:10  <auroraeosrose>woot!
21:38:15  <auroraeosrose>CAN BREAK ANYTHING
21:38:17  <auroraeosrose>apparently
21:38:54  <virmitio>auroraeosrose: assumption: the cert said it was added successfully in step 2?
21:38:58  <auroraeosrose>yup
21:39:11  <auroraeosrose>CertMgr succeeded
21:39:15  <auroraeosrose>and yes I'm as admin now
21:39:17  <auroraeosrose>WOOT
21:39:21  <virmitio>auroraeosrose: you remembered to enclose the name in quotes?
21:39:25  <auroraeosrose>yes I did
21:39:41  <virmitio>that's awesome!
21:39:46  <auroraeosrose>I BROKE IT!
21:39:47  <auroraeosrose>WOOT
21:40:36  <virmitio>new rule for the CoApp drinking game: Every time Tim's docs are proven wrong, take a drink.
21:40:51  <auroraeosrose>hehehe
21:40:57  <auroraeosrose>hey, that's why I'm breaking them
21:41:01  <auroraeosrose>but wtf IS That error
21:42:14  <auroraeosrose>ooh ooh
21:42:22  <auroraeosrose>sooo broken
21:42:31  <virmitio>looks like you're referring it to the wrong cert store?
21:42:36  <virmitio>maybe?
21:44:22  * auroraeosrose1joined
21:44:36  <auroraeosrose1>DRINK
21:44:37  <virmitio>I'm kindof wondering why the bootstrap of my fresh coapp install has hung
21:45:08  <FearTheCowboy>:(
21:45:09  <virmitio>I'm pretty sure it's environmental, but I'd be lying if I said I knew why
21:45:26  <FearTheCowboy>dbgview? eventvwr?
21:46:41  * auroraeosrosequit (Ping timeout: 240 seconds)
21:48:36  * auroraeosrosejoined
21:49:01  <auroraeosrose>screw this - I'm off to buy a new wireless nic that actually fracking works
21:49:43  <virmitio>nm, a few cleaner runs later and it installs fine
21:51:23  * auroraeosrose1quit (Ping timeout: 260 seconds)
22:00:37  * ender`quit (Quit: In every computer error, there are at least two human errors, including the error of blaming it on the computer.)
22:16:50  * JordanRinkejoined
22:17:42  * JordanRinkewaves
22:18:02  <JordanRinke>Hello all
22:18:04  <FearTheCowboy>howdy
22:18:12  <virmitio>hello
22:18:37  <virmitio>JordanRinke: I actually just sent off a response email to you.
22:18:54  <JordanRinke>virmitio: and thus I am here :)
22:19:09  <JordanRinke>Can I spam this room with this discussion or do you want to PM?
22:19:33  <virmitio>the room's been kinda quiet all day, go ahead and ask here
22:19:53  <virmitio>besides, FearTheCowboy is the man with all the answers
22:20:04  * vpovirkquit (Remote host closed the connection)
22:20:07  <JordanRinke>So, I think we are one 2 sides of the concept...
22:20:26  <JordanRinke>I see what you are saying, and packaging the required assemblies for Python is a useful and the right way to do it as you said
22:20:36  <JordanRinke>but all of that always requires some post processing
22:20:47  <virmitio>such as?
22:21:04  <JordanRinke>I haven't looked at your available package list so I am admittedly not fully armed
22:21:12  <JordanRinke>so if I make a wrong assumption please let me know
22:21:38  <virmitio>it's relatively sparse at the moment, so I'm not worried
22:22:00  <JordanRinke>For instance, I install Python from MSI, and then I use CoApp to install PyWin32
22:22:08  <JordanRinke>I can lay the files down, but I will need to execute "python pywin32_postinstall.py -install"
22:22:46  * cH40z-Lordquit (Ping timeout: 276 seconds)
22:24:09  <JordanRinke>I don't see another way to do that, without having some ability to do post processing, which admittedly I would probably abuse initially until I was able to break out everything in to assemblies, and require them - but even still they need that base functionality
22:25:15  <virmitio>well, I'm not really familiar with pywin32. could you tell me what that command actually does?
22:25:36  <JordanRinke>It is a python module, used to register python scripts as controllable services
22:26:01  <virmitio>hmm
22:26:14  <JordanRinke>a number of python modules don't have windows native silent installers, they use distutils which has no silent flags, so I have to re-package them, and they usually require a post processing script to configure/compile them for arch on that box
22:26:20  <JordanRinke>common for python modules on all distros
22:27:09  <JordanRinke>also, what about if I have a package that requires Hyper-V and I want to do checking in the package to confirm that is enabled, or throw some commands to enable it etc? Having no ability to execute on the system - seems highly limiting
22:27:30  <virmitio>I guess I was under the impression that python modules were pre-built for each supported architecture and distributed seperately
22:27:37  <JordanRinke>Also in my scenario after I install pywin32, I will need to throw commands to actually register my service and enabled it etc
22:28:48  <virmitio>The problem arises when we start looking into allowing arbitrary "post-install" commands at all in any package
22:28:59  <FearTheCowboy>So, in the CoApp world either one of two things has to happen:
22:29:17  <FearTheCowboy>1. you perform post-install command seperately from installtion.
22:29:17  <FearTheCowboy>ro
22:29:18  <FearTheCowboy>or
22:29:52  <FearTheCowboy>2. We abstract the essentials of the actions you'd need to do into package composition actions, and allow all packages to do the same sorts of things.
22:30:26  <JordanRinke>I assume you dont want to allow arbitrary command execution since you cant track it/interact with it?
22:30:39  <FearTheCowboy>We're not going to have the ability to run arbitrary scripts/code during install for packages, simply because that breaks the continuity and our ability to apply validation
22:30:44  <FearTheCowboy>yeah
22:31:10  <FearTheCowboy>That's the fundemental flaw with MSIs now, is that they are essentially a free-for-all way of running code at install time.
22:31:42  <JordanRinke>If a user has to perform post-install commands outside of installation, there isn't much a cohessive installation story for end users
22:32:01  * cH40z-Lordjoined
22:32:17  <FearTheCowboy>depends. True, we're not expecting users perform a lot of post-install configuration.
22:32:40  <JordanRinke>that feels really clucnky to use coapp to "install" an application, which really is just copy a bunch of files down, and then require them to additionally run a post installer
22:32:50  <JordanRinke>which realistically forces greater deviation from your model
22:33:02  <FearTheCowboy>depends; the post installer may not actually be necessary
22:33:31  <JordanRinke>I don't know of many installers that execute things for no reason?
22:33:32  <FearTheCowboy>if those post-install functions are something we can apply to packages in general, we can simply just extend what coapp does
22:33:32  <auroraeosrose>what is the post installer doing exactly?
22:33:35  <FearTheCowboy>LOL
22:33:41  <auroraeosrose>JordanRinke: I know a lot
22:33:43  <auroraeosrose>;)
22:33:53  <JordanRinke>well, they at least thought they had a reason :-D
22:34:15  <auroraeosrose>most installers that do lots of actions are really doing configuration
22:34:20  <auroraeosrose>not installation
22:35:46  <JordanRinke>so, pretty much all python modules have an install process
22:35:54  <FearTheCowboy>why?
22:36:12  <JordanRinke>either you use pip or easy_install and it does it for you, or you manually extract them and run python setup.py install or something similar in their lib directory
22:37:01  <auroraeosrose>python modules as in C extensions - or as in python files
22:38:04  <JordanRinke>some of them compile, some of them do configuration or dep checking etc - but realistically, you can't expect everyone to re-write that stuff?
22:38:56  <auroraeosrose>for the ones that are compiled - we want to ship binaries
22:39:15  <auroraeosrose>but otherwise probably you want to do a pip container
22:39:18  <auroraeosrose>instead of msi
22:39:19  <auroraeosrose>for that
22:39:38  * wwahammy_quit (Quit: I cna ytpe 300 wrods pre mniuet!!!)
22:39:57  <JordanRinke>But I still need to execute that
22:40:08  <FearTheCowboy>it's also not impossible that python packages could simply use the existing python "package manager"
22:40:08  <JordanRinke>I have an app that has say 20 modules it needs
22:40:31  <JordanRinke>so, I go to CoApp install my app, how do I pull down all of those modules now if I can't execute anything
22:40:56  <auroraeosrose>the app should dep on the packages for the modules it needs ....
22:42:18  <JordanRinke>So, my app requires pyXYZ, how does it get it? I can't execute anything so I can't lay it down and install it, and it's install scenario isn't possible with CoApp so it can't be converted to an assembly, and since I can't execute anything I can't even pip or easy_install it
22:42:57  <auroraeosrose>still confused - so your app requires pyXYZ - it has a coapp package
22:43:09  <auroraeosrose>the coapp package for your app depends on the coapp package containing it
22:43:36  <auroraeosrose>so you say "install my app" and coapp installs pyxyz and then your app
22:43:59  <FearTheCowboy>it's not impossible to make an automate pip -> msi package converter that sets up the package so that it's properly configured without requiring custom execution at install time.
22:44:02  <JordanRinke>So, for PyWin32, the post install registers some DLLs/COM objects - how do I make a PyWin32 package that does that, if I can't execute a command?
22:44:20  <FearTheCowboy>'cause whatever it's doing, it could be done at build time
22:44:32  <auroraeosrose>hmmm - why is it registering dlls? just curious - cause that might screw up the sxs stuff
22:44:43  <FearTheCowboy>no; we'll be able to deal with that too.
22:45:12  <FearTheCowboy>COM has sxs support too
22:45:36  <JordanRinke>it also does some dll/path searching to confirm that the needed files exist for it to function properly
22:45:53  <FearTheCowboy>I'd rather see the post-install steps run by the package builder, and capture *that* so that it installs correctly
22:45:54  <virmitio>well, that could pose problems in a SxS setup
22:46:00  <auroraeosrose>that will break
22:46:17  <FearTheCowboy>how?
22:46:25  * remy_oquit (Quit: WeeChat 0.3.7)
22:46:26  <auroraeosrose>path searching?
22:46:36  <auroraeosrose>it's already going to be an issue in things like gettext - sigh
22:46:43  <virmitio>FearTheCowboy: it depends on what paths it's looking for and how it searches
22:46:52  <JordanRinke>Also, that means there is no shortcut for using CoApp, one must wait for everything they need to be available as a package, instead of being able to bundle and drop - that seems like an adoption rate killer?
22:47:04  <virmitio>lol
22:47:07  <JordanRinke>Sorry to come in here and thrash about as such
22:47:44  <virmitio>JordanRinke: we're really not expecting everyone to suddenly drop everything and jump over to CoApp for packaging (nice though that might be)
22:47:47  <JordanRinke>Although really, bundling like that is probably the last thing you want
22:47:55  <auroraeosrose>JordanRinke: it is closer to apt-get then pip ;)
22:48:12  <virmitio>we're quite aware that we have to get most of the major dependencies available before anyone can do much with it
22:48:23  <JordanRinke>apt-get allows post processing in the deb file ;)
22:48:30  <FearTheCowboy>In order to get the benefits, we *have* to limit how things are done; and yes, that's limiting.
22:48:38  <virmitio>apt-get also has version conflict problems
22:48:52  <FearTheCowboy>Windows has a lot of gullible users; Linux less so.
22:49:23  <JordanRinke>I would really like to have the OpenStack installer for Hyper-V using CoApp, it creates a nice unified open source solution/story
22:50:17  * madewokherdjoined
22:50:22  <virmitio>JordanRinke: We'd be happy to help, but if you want it right away, you'll need to have some folks help us get all of your dependencies available first
22:50:35  <JordanRinke>but I need the ability for arbitrary execution to do that - I don't see how your vision for package management exists without that? Enlighten me, if there are better ways I would love to know them
22:50:56  <virmitio>we'll get to them on our own as quick as we can, but there's a strictly limited number of people helping at the moment
22:51:15  <JordanRinke>If I can execute "python $somescript install" repackaging python packages won't be hard at all
22:51:47  <virmitio>JordanRinke: Assume for a moment that all python modules can be installed by coapp without additional post-install steps by the end-user. what else would you need to perform arbitrary commands for?
22:52:31  <JordanRinke>Does that also assume I can install python with coapp?
22:52:38  <virmitio>yep
22:53:45  <JordanRinke>registering my python script as a service, which is done with a call to a python script
22:54:26  <FearTheCowboy>we're putting in service registration into the configuration actions
22:54:32  <JordanRinke>for this iteration, down the road I would need to do things like start some services in a particular sequence, and validate connectivity to them as well
22:55:18  <virmitio>JordanRinke: all of this just for the install?
22:56:28  <madewokherd>can't services depend on other services?
22:56:53  <FearTheCowboy>that's true; services installation can indicate dependencies
22:57:12  <virmitio>madewokherd: they can. I'm curious about "validating connectivity", though
22:57:51  <JordanRinke>Sorry, had to AFK for a sec, let me read backlog
22:58:32  <JordanRinke>Yeah, all of the install
22:59:21  <JordanRinke>connectivity validation is just a bonus for some all in one configs, that would be nice for single app install chained dev environments etc - more fringe than needed
23:00:21  <virmitio>JordanRinke: how does one select the config they wish to use presently?
23:00:28  <JordanRinke>Services can depend on other services, but the way some of the openstack stuff starts, just having the service started doesnt really mean it is ready for the next connector
23:00:54  <JordanRinke>in a normal scenario, excluding the all in one dev setup I mentioned that would require connection validation etc to lower barrier of entry
23:00:54  <madewokherd>that sounds like a bug
23:00:56  <dmex>should probably be the responsibility of the package rather than coapp
23:01:22  <JordanRinke>I don't get how you are separating the concept of package and coapp
23:01:37  <JordanRinke>if the package can't execute anything
23:01:51  <JordanRinke>that to me makes packages... like zip files with metadata?
23:02:03  <dmex>well take the Process Hacker package, should it check the KPH driver is loaded and PH is able to connect?
23:02:49  <dmex>sure PH uses the driver, but if it's not working or able to connect then its an issue for PH, not coapp
23:04:32  <JordanRinke>And if you wanted to have the PH package dep on the KPH driver, how would you do that?
23:04:39  <JordanRinke>how would the package install the driver
23:05:11  <dmex>The package doesn't, PH does
23:05:13  <FearTheCowboy>speaking a bit more abstractly; packages can install drivers, services, etc (or will...)
23:05:45  <JordanRinke>how
23:06:20  <dmex>FearTheCowboy: would be handly for projects like USB/IP: http://usbip.sourceforge.net/
23:07:00  <FearTheCowboy>we are going support a number of activities that go along with installation-- registration of services, COM classes, drivers, side-by-side assemblyies, .NET GAC, creating symlinks, shortcuts, registry settings.
23:07:01  <FearTheCowboy>etc.
23:07:23  * piscisaureus_quit (Ping timeout: 272 seconds)
23:07:24  <FearTheCowboy>some of that's done, some is coming in the future yet
23:07:44  <JordanRinke>Also, once pywin is installed, registering the service is done through a python script since it registers itself as a handler for the script - it isn't a traditional service registration
23:07:55  <FearTheCowboy>erg; that's unfortunate.
23:08:21  <JordanRinke>not if I can run a command in my package :-D
23:08:23  <FearTheCowboy>look at it from this perspective -- coapp packages are designed to be installed into a live system, or into a system that's not currently running (say a VM image)
23:08:57  <JordanRinke>So, make any arbitrary commands run real time, or tag run once if in an offline state
23:09:04  <virmitio>JordanRinke: when you box up files into a CoApp package file, you also assign one or more "roles" to that package, where a role is a set of rules detailing where the contents will be place, how the system should be adjusted to accommodate, and what settings should be altered on the installing system.
23:10:08  <virmitio>also, JordanRinke, if we allow arbitrary commands to be executed on install, what happens to the state of the system when that package is uninstalled?
23:10:30  <JordanRinke>require all install executions to have a matching uninstall execution
23:10:37  <JordanRinke>and then it is up to the package to be sane about that
23:10:40  <FearTheCowboy>how do I validate that?
23:10:52  <JordanRinke>you dont, the package maintainer does - as it is in the world today
23:10:56  <virmitio>and how does your answer change if you have installed 6 (compatible) versions of the same package and only uninstall one of them?
23:11:25  <FearTheCowboy>and in the Windows world today; package installation is a nightmare where too much can go wrong
23:11:33  <JordanRinke>the package maintainer is responsible for that working properly
23:12:08  <FearTheCowboy>that's somewhat difficult to ensure it happens.
23:12:11  <JordanRinke>part of that is because there is no one source of packages, just having a unified management system and installation mechanism eliminates a number of versioning issues
23:12:17  <virmitio>package maintainers today are (in general) lazy and uncaring about secondary effects or how to coexist with other softwares (including other versions of their own software)
23:13:05  <dmex>(now virmitio and FearTheCowboy know why I don't install stuff on my devmachine ;))
23:13:58  <JordanRinke>so what type of adoption schedule are you looking at? like when do you expect this to be generally used by the windows public?
23:14:23  <FearTheCowboy>Some things in the next couple of months; others could take up to a year.
23:15:09  <FearTheCowboy>I'm well aware that python brings alot of special requirements into the picture, and I think we're going to have to work pretty hard to accomodate them
23:15:18  <JordanRinke>it might be my narrow vision but I just don't see how you are going to capture the people that want to do this packaging, without the ability for custom actions
23:15:38  <JordanRinke>python is one small example - tons of stuff has equally fringe scenarios
23:16:30  <JordanRinke>30 minutes ago I was ready to rock CoApp as the premier mechanism for distributing OpenStack on Hyper-V and even had OpsCode Chef guys ready to start integrating that packaging into their chef for windows client etc
23:16:35  <FearTheCowboy>and, either one of two things has to happen (1) the custom actions have to be broken down into verifiable activities that we can put into coapp in a consistent manner, or (2) those post-install configuration actions have to be run by the user
23:16:36  <JordanRinke>Now, I just don't even see how it is possible
23:16:41  <virmitio>lol
23:16:58  <JordanRinke>I am sure that is me being overly eager, but ya know
23:17:17  <FearTheCowboy>I'd be willing to make adjustments where necessary;
23:17:53  <virmitio>JordanRinke: Give it a little time to get going. I seriously doubt that the debian package repositories or the BSD ports collections were made overnight. Or that they worked as well as everyone wanted the first time.
23:18:17  <FearTheCowboy>JordanRinke -> Perhaps we could do a conference call tomorrow and talk about the requirements that you have
23:18:25  <virmitio>we haven't even hit our first officially stable release yet (that's for next month)
23:18:34  <FearTheCowboy>IRC is far too inflexible for this kind of thing
23:18:42  <JordanRinke>I am at the openstack summit all week, and then on an interactive coding RV trip kind of thing across the country for the next week after that
23:19:17  <JordanRinke>RoadStackRV.org for anyone that wants to follow 7 geeks trying to code in an RV for 3000 miles heh
23:19:26  <dmex>haha
23:19:27  <FearTheCowboy>oh. Well, I'm pretty flexible; when would be a good time for you?
23:19:29  <JordanRinke>well 5k round trip but anyways
23:19:53  <JordanRinke>Let me look at what is on the event list for the next 2 days, I might be able to just skip a session
23:20:09  <JordanRinke>Tim has my email if you two want to email Peter and I and we can set up a time
23:20:52  <JordanRinke>A reasonable bridge gap might be to give arbitrary execution short term with an expected deprication, and we could use that time in between to properly define what custom actions are really needed where and how, and migrate anything we have packaged to fit that format
23:21:00  <JordanRinke>adoption and vision, trying to play nice
23:22:51  <virmitio>I personally would rather never have arbitrary execution in the first place. The only thing more permanent that a "temporary measure" is "stop-gap spending", and I really don't want to get stuck with the problem of maintaining support for it just for "legacy" use. Having it at all will encourage laziness and abuse of the feature.
23:23:52  <virmitio>unfortunately, I need to get headed home before my wife thinks I've driven off a cliff or something. But I'll be back again early tomorrow morning
23:24:23  * virmitioruns away...
23:24:26  <JordanRinke>Email Peter and I, and loop in FearTheCowboy when you get a chance?
23:24:34  <virmitio>sure thing
23:25:05  <madewokherd>I find it hard to believe that python can register its services and we can't
23:26:05  <JordanRinke>You probably can, but do you really want to re-package all of the stuff already packaged? It is duplication of work other people are already doing
23:26:13  <JordanRinke>instead of just consuming it
23:26:22  <madewokherd>well, yes, that's the point
23:27:55  <madewokherd>other people are doing it wrong
23:28:28  <madewokherd>(just my opinion, doesn't actually necessarily represent the project)
23:31:59  <FearTheCowboy>virmitio -> you around?
23:32:13  <JordanRinke>But do you really want to do it only right, exclusively.. in the corner, by yourself and the few people who share that exact vision/
23:32:28  <JordanRinke>FearTheCowboy: He just left
23:32:32  <FearTheCowboy>oh.
23:32:34  <FearTheCowboy>pity.
23:34:26  <dmex>FearTheCowboy: btw, there's a ton of C# code on our SVN you might like
23:34:51  <dmex>(just don't checkout the latest revision, I broke stuffs)
23:34:56  <FearTheCowboy>Oh?
23:35:15  <FearTheCowboy>Maybe I should package that up into some nice packages too.
23:35:26  <JordanRinke>Alright gentlemen, having flopped about in here and taken a majority of the rooms time for an hour - I will now depart to enjoy some of the open bar love always found at these wonderful conferences :-D
23:35:29  <dmex>er, probably not
23:35:37  <FearTheCowboy>ok
23:35:43  <FearTheCowboy>We'll talk soon
23:36:30  <dmex>we dont support the C# code, we did get managed controls working via the PropertySheet api (we're the only one's who have been able to accomplish that)
23:37:22  <dmex>the 1.x/trunk/ProcessHacker.Native folder has a ton of native related stuff
23:38:05  <dmex>e.g. fast locks, MemoryAlloc classes for native/manged malloc/heapalloc
23:38:09  * Scotisis set as away : Reason(walk)
23:38:15  <FearTheCowboy>oh yeah, I glanced at that stuff a while back
23:38:21  <FearTheCowboy>didn't get a chance to get back to it.
23:38:34  <dmex>I'm about to revert that branch though
23:39:08  <dmex>after we started 2.x, we stopped working on the 1.x C# branch, I was still messing with things
23:40:17  <dmex>for stuff like processes, var p = ProcessHandle.Create(params) or ProcessHandle.FromPid/FromHandle(pid or handle)
23:40:37  <dmex>the handle classes have all the functions available for that handle type
23:41:26  * gixquit (*.net *.split)
23:42:02  <dmex>var p = ProcessHandle.Create(params); p.WalkStack().ForEach or p.SetSecurity
23:43:36  <dmex>probably better using the src from the last 1.c release than SVN (since I broke most of it :P) http://sourceforge.net/projects/processhacker/files/processhacker/processhacker-1.11/
23:44:38  <FearTheCowboy>nifty
23:45:08  <dmex>there are a few things on the SVN you might like like the PinnedAlloc<T> for using GCHandles backed by the MemAlloc and base classes for memory/data access
23:46:35  <dmex>one of the main base classes is MemoryRegion, mostly uses unsafe code for ReadAnsiString/ReadUnicodeString/ReadBytes/ReadInt32 etc...
23:47:41  <dmex>if coapp is going to remain managed and doing alot of native interop, you'll find all this stuff very useful
23:48:22  <FearTheCowboy>We're gonna be managed for the foresable future :)
23:48:54  <dmex>using (MemoryAlloc m = new MemoryAlloc(size) CallNativeFunction(m, m.Size)
23:49:10  <FearTheCowboy>Pity it's all GPL licensed--Apache would have been much easier to work with :)
23:49:20  <dmex>also LGPL
23:50:32  <dmex>I could ask Jia (wj32) about a licence exemption?
23:50:51  <FearTheCowboy>That would be really useful;
23:51:32  <FearTheCowboy>We picked the Apache license for CoApp; it lets us work with a lot.
23:52:02  <FearTheCowboy>the GPL introduces a lot of conditions which are sometimes troublesome.
23:52:13  <dmex>you can use our API defs and structs without the GPL licence
23:52:24  * gixjoined
23:52:43  <dmex>PH has the largest native pinvoke library :)
23:53:53  <dmex>strictly, while we wrote the pinvoke signatures, we can't force a licence on those since their for API's and a large number of projects would have the same if not similar signatures
23:54:31  <dmex>force of habbit, if you go to write a pinvoke signature, check if we already have it
23:54:56  <dmex>I noticed alot of sites or poeple get them wrong alot
23:55:50  <dmex>thats why you'll notice a lot of MSDN pages have posts from me with the correct VB/C# syntax ;)
23:56:01  <FearTheCowboy>lol
23:56:03  <FearTheCowboy>no kidding.
23:56:32  <dmex>some history with MSDN
23:56:39  <FearTheCowboy>I've found more *incorrect* p/invoke stuff out there than I care for
23:56:51  <dmex>in 2009 I recieved a "Top Contributor Award"
23:57:10  <FearTheCowboy>heh-heh
23:57:27  <dmex>someone higher up blocked it and had someone start an investigation into w/e I was a spammer...
23:58:17  <dmex>after 6 or so months of arguments with the MSDN teams, I had to agree to stop posting the C#/VB syntax for APIs
23:58:33  <dmex>then they deleted 3k or so of my posts
23:58:37  <FearTheCowboy>what?
23:58:50  <FearTheCowboy>what was their problem?
23:59:06  <dmex>"You should consiver the value of their contributions"
23:59:18  <dmex>thats was the jist
23:59:55  <dmex>basically, they wanted everyone to use the managed equivalent over the native API