IRC Log Viewer » #firebreath » 2012-09-18

IRC Nick Time (GMT-7) Message
JuanDaugherty 09:09 taxilian is from malaxan?
taxilian 09:09 huh? I'm from Utah, USA
JuanDaugherty 09:09 I mean the nick.
taxilian 09:09 no, it's just something I made up 15 years ago and I still use it
JuanDaugherty 09:09 so it's "ill from taxes"? Anyway, was wondering why you didn't put the precompiled header in the end plugin if you're using it uniformly in Windows?
taxilian 09:09 nope, had nothing to do with taxes, just started as random numbers
mostly because PCH is a little confusing to set up, so I didn't want to confuse people with the fbgen generated project
you can add it
random *letters, not numbers
I'm still half asleep =]
JuanDaugherty 09:09 disabling PCH in every project in the VS IDE isn't sufficient to disable it in the project, the cmake stuff must reset it
taxilian 09:09 I don't know why that would be
and that would go against any experience I've ever had
but at least you can add an if statement around the block in common.cmake
and I'll accept a pull request or patch with that if you send it to me
JuanDaugherty 09:09 my contribution to your project will be to add another serious project using to the list, if I can get it working
taxilian 09:09 alright
JuanDaugherty 09:09 I did open a JIRA issue though on the resource thing
taxilian 09:09 I saw that
I can't get to it until I finish rebuilding my router, which decided to die on me over the weekend
JuanDaugherty 09:09 1st things 1st :)
jshanab_ 11:09 taxilian. I have firebreath as a submodule of my git project. It seems to have worked fine for months. But Now on new machines, i am having a problem when I do the git submodule update --init --recursive. It gets FB then tries to get boost. It seems to pull boost down then says that ../../......src/firebreath/3rdparty/boost is not a git repo
taxilian 11:09 on all platforms, just windows, ...?
jshanab_ 11:09 windows 7 and 8 fresh installs only. win 7,mac from past are ok. Could something have changed on github?
taxilian 11:09 fresh install of windows?
'cause my win7 can clone a new repo no problme
if anything I'd say it's a change in how git itself works
and the newer version is broken
jshanab_ 11:09 oh, darn
JuanDaugherty 11:09 if I have an otherwise working build, an change the plugin version number from, that causes the ActiveX::CFBControl to fail due to FB_LIBID not being defined
taxilian 11:09 what did you change it to?
JuanDaugherty 11:09
taxilian 11:09 and you reran the prep script?
you have a talent, my friend… you run into issues with this framework that I've never heard of before on a regular basis =] with things that I use daily, no less
JuanDaugherty 11:09 not sure I did this last time, will check
I seem to get a corrupted project if I run the prep script more than once
taxilian 11:09 which is another weird thing; I don't get that
I assume you're just using a fairly recent version of cmake and not something weird or development branch or anything?
JuanDaugherty 11:09 so to get anywhere Ive had to proceed with my build out and when I get a corruption move out all my custom sources, regen and bring them back in
taxilian 11:09 wait
why would you need to move your custom sources?
cmake only changes files in the build directory
JuanDaugherty 11:09 I treat them as a pair
taxilian 11:09 treat what as a pair?
if you are using it "correctly" (I know, that is a loaded term) then you should be able to delete the build/ directory and rerun the prep script at any time with no effect on your sources at all, even if you rewrote the whole framework
JuanDaugherty 11:09 the two parameters to the prep script
taxilian 11:09 wait… you're deleting your project directory?
and regenerating with fbgen?
JuanDaugherty 11:09 the build directory has a restorable state, I do sometimes only save the first parameter
taxilian 11:09 seriously? you are deleting the project directory and regenerating it with fbgen?
JuanDaugherty 11:09 right, I delete it after backing it up
taxilian 11:09 ....
why in the name of all that is compiled and run as machine code would you ever want to do that?
I am very very confused
that is creating a ton of very very unnecessary work for yourself for no benefit that I can think of
JuanDaugherty 11:09 well you're not me
taxilian 11:09 I caught that part ;-)
JuanDaugherty 11:09 sounds like you doesn't it?
taxilian 11:09 hehe
so is there a reason you're doing that or did you not realize that the projects dir isn't intended to need to be deleted?
JuanDaugherty 11:09 you don't understand the task I'm working
i find you package doesn't play well with VS, that's established
also I have a large preexisting plugin which I'm integrating with it
so when I get to the point where the cmake crap clobbers my build env and I don't have any confidence anymore, I roll out the custom sources, regen and roll them back in
taxilian 11:09 … okay… but you realize that cmake doesn't touch the project directory, *at all*?
so there is no benefit to moving the sources out or ever running fbgen again (well, maybe down the road if we had to make a lot of breaking changes, but not in this case)
JuanDaugherty 11:09 that phase is actually just ending today so it will probably be much less freq but ... (rhetorical ellipsis)
taxilian 11:09 cmake sometimes gets weird; when it does, kill the build dir
killing the other dir is literally useless and a waste of time, unless something even weirder is going on than anything you've told me
JuanDaugherty 11:09 well it only takes a minute and yeah I wouldn't now because I have a copy of the gened state I can use but same thing
taxilian 11:09 well, that's good.
JuanDaugherty 11:09 woulda been better if you just distributed the plain ole sources and let people set up their own dev env
taxilian 11:09 I'm not even going to start going into how many ways that wouldn't have worked. (trust me, we started out tryign to do that)
JuanDaugherty 11:09 well it would have worked a lot better for me
taxilian 11:09 that's possible
though I don't htink you realize how much cmake is actually doing for you
it wouldn't be bad on just one platform, of course; painful, but not terrible
when you start factoring in mac and linux support the complexity grows almost exponentially
JuanDaugherty 11:09 yeah, I'm only interested in one platform
and cmake just gums that one up
taxilian 11:09 I've thought about writing a script to surgically remove cmake from the project files; it'd be possible and theoretically not that hard. however, then getting upgrades when security fixes are made to the framework would be difficult
JuanDaugherty 11:09 at the end once I have the clients sources migrated into your fw and tested, I'll give them some recommendations on how to proceed
you don't seem to have a lot of competition in the browser plugin fw biz, so no worries I guess
jshanab_ 11:09 I am glad there is Cmake even for windows. Can you say "Darn I shouldn't of let MS upgrade my project to VSxxxx" ? You can generate VS 2008,a nd vs2010 from a common base and build each. Visual Studio is less backward compatible with itself than anyone would like to admit. It also saved me more than once when VS corrupted my project
JuanDaugherty 11:09 backward compatibility is not something I ever look for
backporting function, yes but that's different
jshanab_ 11:09 Then you trust the release of new software is always better and always works. ;-)
Today alone, 2 updates have broken stuff for me
taxilian 11:09 gotta love supporting new versions of windows
'course, Mac isn't all that much better
JuanDaugherty 11:09 no I don't but trust that but that's besides the point of expecting a new version to be compatible with an older one
s/don't but/don't/
jshanab_ 11:09 Windows, git, android..Android updated to 4.0.4 and my app no will not load
Yeah There seems to be the car industry fallacy creeping into the software world. Good bad, better or worse if we do not provide a periodic update we are not competitive. Sometimes I just wish they would slow down and get it right
taxilian 12:09 blasphemy!
jshanab_ 12:09 I was playing with windows 8 and wow, I am totally unimpressed. I expected to be at least superficially impressed
taxilian 12:09 now that I was forced to upgrade my vmware server I'll have to try windows 8
now if I could just figure out how to recover my web server that had a LVM RAID 1 and lost one of its drives
you'd think that would be a common enough thing that there would be documentation on the subject
JuanDaugherty 12:09 what's the point of window 8? New GUI?
taxilian 12:09 well, I think the core point is for Microsoft to make money
jshanab_ 12:09 I lost my raid 1 on my linux box and ended up trying to upgrade my kernel and they really moved things around now so my non LVM partition is too small. I finnaly ran out and bought a new HD so I can start over and transfer the important data, moving partitions manually was making me nervous
taxilian 12:09 but they have a new GUI and metro stuff
jshanab_: I can't even boot the stupid system.
"Refusing activation of partial LV lv_home. Use --partial to override."
jshanab_ 12:09 One os running on tablet/desktop and mobile.
Download the gentoo live DVD, boot it then mount and chroot into it ?
taxilian 12:09 I can boot in maintenance mode
just with no network
I dont even know how to mount an LVM parrtition manually
jshanab_ 12:09 That is why I use a live CD. You get full network access. Then can fix, jump in as a chroot and try it, jump back out etc.
taxilian 12:09 I tried booting a centos cd and couldn't even mount the partition
can try again, I guess
jshanab_ 12:09 I think it is a vgscan -a y then mount them
taxilian 12:09 worth a try
jshanab_ 12:09 I have not seen the --partial error before, what distro?
I have use LVM for the logial volumes and I used MD for my raid, is the --partial saying one stripe has failed and needs to be ignored to start without it?
taxilian 12:09 centos
could be, except it's a mirror, not a strip
jshanab_ 12:09 What is centos's lineage?
They are all stripes to me :-)
My DL380 uses raid 5 where the distinction between stripe and mirror is fuzy at best
taxilian 12:09 centos is redhat based
jshanab_ 12:09 haven't played with red-hat in a few years. I use to create all the rpm's for our product at a previous job but now I speen way to much time in windblows
taxilian 12:09 so I got it to mount the root filesystem but the home partition is gone
… which contains all the data I really care about
JuanDaugherty 12:09 do you normally delete the build directory when you run prep?
taxilian 12:09 not usually, but sometimes cmake gets weird and then I do
that doesn't usually happen unless I'm making significant changes to the cmake project options, though
JuanDaugherty 12:09 there's only a few hundred lines of fb cmake script?
taxilian 12:09 hmm. probably
it's more complicated than it needs to be; I would love to rewrite it, but you know how that works. I was learning somewhat as I went
JuanDaugherty 12:09 that's animal life in a nutshell
what would cause IDS_PROJNAME to not be defined in the rc file?
also unclear how I'm supposed to use Pluginconfig.cmake to add resources to it, real resources like bmp, cursors, etc.
taxilian 12:09 I ddon't know why IDS_PROJNAME would be undefined
I have never seen that issue
you may have a bad value for something in PluginConfig
PluginConfig is not intended to replace the .rc file
it's just a common place for config options that will be used by cmake on different platforms
if you need to customize the .rc file you'll have to copy it from gen_templates/ to your project directory
and then customize the template
JuanDaugherty 12:09 got it, thx
jshanab_ 12:09 taxilian. When I had to make sure I was using the correct libs on mac, i had to change my cmake and some of FB cmake a lot. I never did get it completely working so I do not have good info to give you. Just that xcode 4.3.3 has some directories it looks in first and they were polluting the cmake environment and not all includes were from where I thought they were!
taxilian 13:09 the stupid directory mapper or whatever it's called
I've run into that without cmake in fact
jshanab_ 13:09 It seems the /usr/local/bin was prefixing everything and overrideing boost and curl includes. especially since they do not follow standard include convention and just dump them all at the same level.
taxilian 13:09 the issue may actually have been even more subtle than that, but I would have to look at what you have
JuanDaugherty 13:09 nixos doesn't user /usr
jshanab_ 13:09 So in a lot of systems you have an ability to set an include folder like "/mydir/curl/include" and then you use #include <curl/curl.h> in your code. This requires the system to have the curl directory again or things get confused. /mydir/curl/include/curl/curl.h otherwise if we include /usr/local/include and they put curl/curl.h we cannot include /usr/local/include in our search path or it...
...will always win and we can't go thru and re-write headers and subheaders to #include <curl.h>
JuanDaugherty 13:09 so I'm doing a regression now
I can't build because of the FB_LIBID issue
how could I address that without regressing back to the first build after gen with the stup plugin?
taxilian 13:09 what have you changed in PluginConfig?
since it was working
jshanab_ 13:09 BTW, thanks taxilian using the previous version of git got everything going again!
JuanDaugherty 13:09 I only make two changes
one to projectDef.cmake to add so defines
and setting the version in PluginConfig
*some defines
may be a problem with line termination in the template files
taxilian 13:09 hmm. I really don't know; never seen that issue before
JuanDaugherty 13:09 well I'm confirming changing the version alone does it
the comment about line termination is just because of the way those files look in notepad
in other editors they look normal
taxilian 13:09 vs is usually pretty good at handling different line endings
JuanDaugherty 13:09 can ALL BUILD be ignored if you're not making changes to FB?
taxilian 13:09 all ALL BUILD is is a cmake-added target that does nothing except depend on all other targets
basically you build that and everything builds
JuanDaugherty 13:09 so that should be used instead of the end plugin as the target?
taxilian 13:09 in most cases it won't matter
if you use that it will run all of FireBreath's unit tests is about the only difference
JuanDaugherty 13:09 in global/resources.h
FB_LIBID is set to
taxilian 13:09 Ahhh; and your pluginname had spaces in it?
JuanDaugherty 13:09 no, I don't believe so
taxilian 13:09 hmm. you can look at what is generated in build/projects/<plugin_name>/gen
JuanDaugherty 13:09 right I know. I wonder why the global directory can't be accessed in VS
taxilian 13:09 just haven't added it to any of the projects
JuanDaugherty 13:09 well just changing version number didn't hurt looks like
don't see why defines would matter as their in the end project and it's the FB AX stuff that messes up
maybe it was the 32, I used 0 this time
taxilian 15:09 if anyone feels like being nice to me go to and rate well =] (we're getting a lot of hits from there for some reason, so may as well milk it for all its worth)
Guest92971 16:09 hi guys, starting out with FB, documentation says not to add files to the project in the solution in VS2010, how do i add a reference to a .h file (I want to include base64.h)
can i just add #include "base64.h" to my source file?
taxilian 16:09 you just need to add it to your project dir and rerun the prep script
worse case update CMakeLists.txt in your project dir
Guest92971 16:09 thanks, and if i want to include a reference to "NpapiTypes.h" thats in the CMake?
taxilian 16:09 no, that would be in another rpoject
thus you don't need to add it
but why would you want to do so?
Guest92971 16:09 i've created a new project, trying to migrate a legacy project that I've inherited that includes references to that header
taxilian 16:09 any references to that header will need to be rewritten
because they are specific to NPAPI
all of those things will need to be changed to FireBreath
Guest92971 16:09 I was getting the errors "browserplugin_project is deprecated; please use Project(FinAuth) instead" when trying to use the old project
taxilian 16:09 oh, it's an old firebreath project?
Guest92971 16:09 yep
taxilian 16:09 huh. written by someone who ignored all of the suggestions on how to do FB plugins
well, go look at the version history page
it has all the breaking changes
that is an old plugin project, though
Guest92971 16:09 ok, I'll have a look at the version history page, though I think the code I've got needs re-writing coz its all over the place, hard to make head or tail of it
taxilian 16:09 you could start by running fbgen to create a new project
then migrate into it
might be faster
Guest92971 16:09 i've got a new project, and moved the projects dir up (out of FB)
to import the files, do i just copy them to my project dir, then rerun prep2010.cmd?
and do i need to rename them to match my new project name?
taxilian 16:09 there might be changes in the cmake file that you'll need to make
the Factory.cpp file determines which class is loaded for your plugin
and your plugin class decides what the root JSAPI is
read the sources in your new project; there is a lot of documentation in there
Guest92971 16:09 thanks
JuanDaugherty 16:09 I wouldn't have gotten condtrol in my plugin if boost wasn't properly with FB core would I?
*properly working in
taxilian 16:09 it wouldn't have ever built
JuanDaugherty 16:09 how do you attach to plugincontainer.exe these days? FF doesn't seem to accepth that command line parm for the dialog.
taxilian 16:09 that's a chrome only thing
on windows there aren't many good options; one option is to throw a sleep(10000) somewhere before you want a breakpoint and when you connect the debugger it'll break it out of the sleep
another is to turn off ipc in firefox, which makes it run the plugin in-process; of course, that's not the same environs that you would expect in a live situation, tho
JuanDaugherty 16:09 actually it was mozilla, if I recall the recent read ref correctly, but apparently it's obsolete. Works OK in IE with bp's from VS, and can trap in FF but looks like Ill have to assert for FF
taxilian 16:09 really? I have only seen a command line argument for a dialog on chrome
JuanDaugherty 16:09 i.e. assert to get a bp entry instead of trapped. Think I did attach last week though
taxilian 16:09 that works too
JuanDaugherty 16:09 haven't been able to get into debugger with chrome yet
taxilian 16:09 --plugin-startup-dialog command line argument
it'll tell you the pid, attach before hitting ok
JuanDaugherty 16:09 yeah, it doesn't work in Google 21
just loads the plugin
maybe if it's unloaded
taxilian 16:09 I've been using it all week in chrome 21
every day
but yes, it only fires before you load the plugin; it doesn't unload the plugin between instances
you have to start the browser initially with that argument
JuanDaugherty 16:09 did do but just got a gray screen, no dialog
taxilian 16:09 maybe the dialog is in the background?
I've been using it constantly for years; I promise it works. double check your spelling maybe
JuanDaugherty 17:09 well the gray screen is one my plugin shows as a background for the document which is odd
the dialog only shows when you access the plugin's mime type?
taxilian 17:09 the dialog only shows when you actually instantiate the plugin
which happens when the mimetype is added to the object tag, yes
JuanDaugherty 17:09 so something's not happening
I should get it with any plugin I assume, including Adobe's
taxilian 17:09 correct
JuanDaugherty 17:09 i'm definitely using --plugin-startup-dialog and it definitely isn't display anything before the PDF
i even went to the directory so I was only entering "chrome"
taxilian 17:09 how did you add the option?
this is my shortcut: "C:\Users\Richard Bateman\AppData\Local\Google\Chrome\Application\chrome.exe" --plugin-startup-dialog
JuanDaugherty 17:09 right that's what I have in the WIndows GUI but was resorting to same thing at command line
taxilian 17:09 no idea; like I said, it works for me3
JuanDaugherty 17:09 almost looks, with PDF anyway, as though it might be appearing but only for a few milliseconds, oh well I'll come back to it, looks like it's loading the plugin without complaint
James 17:09 Hey @taxilian, or any other Firebreath OSX experts out there, if you're around and have some time, would you mind taking a look at Thank you!
jmort253 17:09 Thanks for the ObjC/C++ wrapper help BTW!
taxilian 17:09 =] yw
I haven't a clue on that one, jmort253
not even certain it's possible
Guest92971 17:09 hi, i've got an include ${TRUNK}/lib/ScanAPI.lib and need to add the file, where is the trunk dir?
thats in projectdef.cmake
jmort253 18:09 Okay, thanks for looking. I'll continue to dig in. I have the StatusItem in the StatusBar, so if I can get that far then it must be possible to show the menu when clicking on it. Didn't think this would be an easy one. :) If you think of anything that may be helpful, please let me know!
Guest92971 18:09 ah, set(TRUNK ${FireBreath_SOURCE_DIR}/../../../)
Guest92971 18:09 hi all, trying to register a plugin i've just created, new project & thats failing, error with the specified module could not be found
i suspect its due to a module that i need to include, whats the correct way of including a *.lib file to my project?
JuanDaugherty 18:09 so the precompiled headers causes multiple definition warnings on integer maxima in windows sdk>
(C4005 in VS 10)
Guest92971 18:09 no warnings, project builds OK
i downloaded depends from and the dll produced has a missing module
JuanDaugherty 18:09 is this windows?
Guest92971 18:09 yes
JuanDaugherty 18:09 I'm new to fb, but believe everything is bound in the dll at run time normall
Guest92971 18:09 i'm on win7 x64 using vs2010
JuanDaugherty 18:09 regular or express?
vs that is
Guest92971 18:09 vs2010 ultimate
i'm also new to fb and the documentation says i shouldnt add a reference to the project, coz that gets overwritten
so i was wondering if i wanted to add it to the CMakeLists.txt or projectDef.cmake
jshanab_ 19:09 Use mozilla. Disable ipc. start FF, attach, set Breakpoint in static initializer and onPluginReady then open FBControl.html
taxilian 19:09 Gues92971: module not found generally means a missing .dll file
Gues92971: proejctDef is platform specific, CMakeLists.txt is project specific. projectDef is included by the include_platform() file
sorry, macro
JuanDaugherty 19:09 i see this thing sometimes where there's a pop up from and assert in boost
taxilian 19:09 which assert?
JuanDaugherty 19:09 got in now when registering the plugin
taxilian 19:09 px != 0 ?
JuanDaugherty 19:09 y
taxilian 19:09 null pointer exception
(it means something tried to make a call on a shared_ptr that is NULL
JuanDaugherty 19:09 got it, thx
the unit test stuff just checkouts fb code in situ in the VS project? is there anything for testing the plugin outside a browser?
Guest92971 19:09 @taxilian OK thanks, I've added the missing dll and all loads now. My next question is, how do i package this so it runs without the dll pre-installed & on any platform without requiring this dll ie i want my plugin to also work on linux & mac
taxilian 19:09 uhh
which dll are you talking about?
Guest92971 19:09 I'm on windows & i couldnt test my plugin coz its using an external library & couldnt register the plugin as it was missing a reference to the external dll. I've since registered the missing dll on my machine so the browser plugin works now
taxilian 19:09 okay
Guest92971 19:09 how do i package the installer with this dll, and, how can i ensure it runs OK on non-windows environments?
taxilian 19:09 what dll is it?
that's kinda like saying "this is an awesome kite, I finaly got it flying, now how do I make it both swim and tunnel underground too?"
Guest92971 19:09 its a dll for a finger scanner, ftrScanAPI.dll
taxilian 19:09 I see
Guest92971 19:09 :) I lik your analogy!
taxilian 19:09 so first of all you can edit the .wxs file in your project dir to add that dll to the installer
you'll need to do a little research on wix for that
but that's an installer issue; it may or may not be easy
secondly, making it work on other platforms is just like making it work on windows; you figure out what code you need, prep the project, and build. only anything that is windows only you need to make sure only compiles in when you're on windows, etc
there are FB_WIN, FB_MAC, and FB_X11 preprocessor vars you can use, or you can just only add the files in question on the platform you want
for an example of making code run on only certain platforms look at examples/BasicMediaPlayer which behaves entirely (and I do mean entirely) differently on windows from mac
Guest92971 19:09 cool, thanks
thanks for all the help guys, bit of shut eye
taxilian 19:09 sleep well and wake
JuanDaugherty 19:09 is there a standard entry point for my plugin I can ref in a standalone pgm>
taxilian 19:09 what kind of entrypoint?
there are standard entrypoints, yes; do you just need whatever?
or something in particular
JuanDaugherty 19:09 yeah whatever, doesn't matter just so the references gets used
i.e. the np dll
taxilian 19:09 NP_Initialize
JuanDaugherty 19:09 ty
JuanDaugherty 21:09 I'm have a hard time linking NP_Initialize
leading underscore
JuanDaugherty 22:09 not
that took a long time but was worth it
JuanDaugherty 22:09 turned out that registration was blowing up because the plugin destructor was being called
taxilian 22:09 ahh
sorry, I guess NP_Destroy would have been a better one
because it'd be a noop in that case
JuanDaugherty 22:09 life is funny, I didn't really need to create that program / solve the problem of how to invoke the plugin standalone but sometimes I can't let go
and I would have I'd like to think if it was less usefull
funny thing is all the noise and bs you see when you're figuring something like that out
at least I'm now into the fast part of this job
is "bs" OK?
taxilian 22:09 hehe. yes, that's fine
y'know, since it's a special occasion and all, seeing as how you just got something working ;-)
JuanDaugherty 22:09 I was in SLC airport a couple of months ago. They have free wireless iirc
taxilian 22:09 that they do
wish more did
JuanDaugherty 22:09 on the way from a horrible interview in the valley
taxilian 22:09 when I'm in Oakland airport (really the only one I fly to) I had to tether to my phone
heh. that bad, huh?
JuanDaugherty 22:09 I think I'm going to retire now. I love programming but dealing with the biz isn't worth it.
taxilian 22:09 heh. I did some subcontracting for awhile, and I imagine I'll end up doing so again… but good grief the stress and hassle was annoying. I much prefer a full-time position, but it has to be the right one. the one I'm at right now is fantastic; most fun I've ever had, and a lot of potential to boot
JuanDaugherty 22:09 got 2 or 3 jobs gonna close out first though of which this is one
taxilian 22:09 what do you plan to retire to?
JuanDaugherty 22:09 I've mostly worked on a contract basis
but only completely independently the last 15 maybe
the place that I'll be after retiring? That's the exciting thing. I really have no idea.
taxilian 22:09 hehe. sounds fun
JuanDaugherty 22:09 surmises and conjectures, that's about it
taxilian 22:09 well, I've been sleep deprived for weeks and tonight I actually have nothing pressing, so I'm going to actually go to bed
good luck