IRC Log Viewer » #firebreath » 2013-01-02

IRC Nick Time (GMT-7) Message
tpaul 10:01 I'm getting some compiler errors when linking against a 3rd party library in VS2010. While not directly related to FB, I am trying to link this library into an FB project and I am hoping someone in here might have seen this kind of error before and point me in the right direction.
The errors is: MSVCRT.lib(MSVCR100.dll) : error LNK2005: _sprintf already defined in LIBCMTD.lib(sprintf.obj), and I have the error for _fclose, _fflush, _free , and _malloc
jshanab 11:01 tpaul. I have seen that. I believe you are both trying to static link and dynamic link to the MS runtime at the same time. Plugin is built with /MT and your lib is built with /MD
LIBCMTD is the static but debug version in the plugin and MSVCRT is the dynamic one trying to be linked in your included lib.
tpaul 11:01 Thank you jshanab. Does this mean that I need a static version of my library in order to work with FB?
Or that I need to tweak some linker settings? I am looking into the latter at the moment.
jshanab 12:01 tpaul. sorry we had network trouble here. You need to make sure all libs built are built the same as the plugin. By default this is /MT which staticaly links the c++ runtime functions it needs so you do not run into issues deploying on non-development machines. /MD and /MDd is the default for most windows libraries so you have to either rebuild them, download /MT builds or build the plugin...
...with /MDd and/or /MD.
Just be aware if you chose to change the plugin, the users of your plugin may be prompted for and have to go download the microsoft redistributable which is only allowed for release builds ONLY. This was less of an issue in WinXp but every type /MT,/MD,//MDd,/MTd use a different heap so strange crashes occur if you mix them
tpaul 12:01 No problem jshanab, you help is greatly appreciated. I do not have the ability to recompile the 3rd party library as it's closed source but I CAN rebuild the FB plugin! Making users install the redistributable is not much of an issue.
jshanab 12:01 Just remember it is "illeagal" to redistribute the debug version pffft
tpaul 12:01 I just need to find out which CMake file /MT is set and change it to /MD and rebuild
jshanab 12:01 I saw that in the FAQ on the wiki...
tpaul 12:01 haha, maybe I can include the redistributable with the WiX installer?
jshanab 12:01 where it says "Windows Params" dynamic is the /MD
tpaul 12:01 Thanks jshanab, I can't thank you enough I thought I was at a dead end. I'm going to give this a try.
jshanab 12:01 I was at that same dead end in the past :-)
taxilian 14:01 anyone interested enough in the new cmake layout (project centric) that they want to help with it?
kylehuff 14:01 sure, except I know absolutely nothing about cmake. I guess you could use me to test stuff.. ??
taxilian 14:01 lol. I bet you could figure it out =]
I'll talk to you a bit more in a bit, I'm on the phone
kylehuff 14:01 I don't know man, I can't even figure out how to pass a compile-time flag to cmake from the CLI
taxilian 14:01 lol
tha'ts not an automatic thing
kylehuff 14:01 maybe so, but it still makes me feel like a noob
taxilian 14:01 I can help with that
kylehuff 14:01 now why would you want to help me feel like a noob?
=c )
taxilian 14:01 hehe
makes me feel better
tpaul_ 15:01 I'm in the same boat as kylehuff, even after checking out the "mastering cmake" book I'm still a little intimidated but I'm willing to help, also if there's anything I can do to get the IRC logs back :)
taxilian 15:01 tpaul_: I think keith is working on the IRC logs; you could ask him if he needs help
either that or someone else named keith is :-P
keith` I guess his name is here
he has a basic version working that just lets you view by date
no search yet
kylehuff, tpaul_: if either or both of you would like to look at what I have so far I can tell you what needs to be done still and give you some direction
it'd be nice to see finished, but I need to focus my main efforts on work today
tpaul_ 15:01 Thanks, I really miss the IRC log search.
taxilian 15:01 yeah; I just don't have time to do it myself
tpaul_ 15:01 taxillian: I'll take a look tonight, and will touch base with you tomorrow.
taxilian 15:01 but keith` volunteered
tpaul_: it's in the "refactor" branch on github
kylehuff 15:01 what is the overall goal with the refactor?
taxilian 15:01 there are a few
1) cmake should be run on your project, which should include firebreath, not the other way around
2) prep scripts should be optional, not required
3) cmake-gui should be able to find all "prep script" options, so you should be able to customize things without needing to go looking for documentation
kylehuff: if you have time right now we could voice and/or video chat for a few minutes and I can show you around what I've been doing
another beneficial side effect of this is it will make the cmake code *much* easier to follow
I mean, I'll be honest; I'm not sure *I* remember exactly how it works as it is now
kylehuff 15:01 I am in the middle of a huge compile of an unrelated package, but it should be done in a few
taxilian 15:01 no worries
jshanab 15:01 Taxillian. That refactor sounds great. can't wait to try it. (I am stuck in Droid JNI hell at the moment)
taxilian 15:01 hehe
gotta love JNI
it's not done, however
the refactor, that is
keith` 15:01 hi
same keith, different client, different not-quite-keith nickname.
jshanab 15:01 LOL, I thought you were saying JNI was not done, and I would of agreed.
taxilian 15:01 lol. jshanab: yeah, probably that too
keith` 15:01 what'd I miss about the irc logs?
tpaul_ 15:01 keith`: need nay help with those?
taxilian 15:01 keith`: hey, I did see what you've done so far, and it looks good!
when/how can I get that on my server for
tpaul_ 15:01 keith`: I just miss them is all :)
keith` 15:01 I read a bunch of them, not sure I miss them. :)
I parsed the logs into a db and am serving them up with Rails 3.
taxilian 15:01 lol. most aren't particularly useful, but that's why we will need a search feature =]
keith` 15:01 That ok?
Search should be easy to do, now that the holidays are past.
taxilian 15:01 it's fine with me. the trick will be that at least currently the log files are just continuously updated, so we need to figure out how to have it reparse a file and not create double entries
which database?
keith` 15:01 mysql, but it shouldn't matter
keith` 16:01 ok. I'll make re-parsing files safe.
Can we use google's site search for search?
The code is running around at:
taxilian 16:01 keith`: hmm. site search? I'd say that's definitely got some interesting possibilities;
hadn't considered that
I'd say it's worth trying, at least
see how well it works
keith` 16:01 I can plug it in and we can see. Otherwise, I generally use Sphinx.
taxilian 16:01 never used sphinx, but I have no objection
keith` 16:01 Lucene? I used that when I used to Java.
Do you want me to host the app?
taxilian 16:01 something lucene-based would work fine; I've thought about using elasticsearch a few times
hmm. I think I probably would be more comfortable hosting it, for now at least
two reasons for this
1) I'm already doing the logging
2) I've had too many people disappear part-way through doing something and I'd hate to not have control of the service and have you change jobs or something and lose track of you
keith` 16:01 True.
I was keith_ and now I'm keith`.
That seems shifty.
taxilian 16:01 lol
exactly ;-)
where was it you have the current version up, again?
keith` 16:01 I'll do the re-parsing in the next day or two, update github and plug in google site search.
taxilian 16:01 I meant the live version you showed me
keith` 16:01
What db are you using?
taxilian 16:01 I have all of the firebreath stuff on postgres
so if that's not difficult it would probably be easiest to keep it there
keith` 16:01 ok, I'll switch over to that for my dev.
taxilian 16:01 if you can get the reparsing support in then we can probably get it up pretty quickly
I'm using nginx for hosting on that server; there are a few ruby servers that will connect to it easily
I think the one I've used before is "thin"
keith` 16:01 sure. I've used thin. I use Passenger these days.
taxilian 16:01 well, I don't run apache, but whatever you recommend to use that works iwth nginx will be fine with me
keith` 16:01 thin was easy. Easy sounds good.
taxilian 16:01 hehe
does look like passenger can work with nginx, though
whatever you'd prefer
I don't know ruby, so I'll trust your judgement
keith` 16:01 Assuming very little traffic, it doesn't matter. :)
taxilian 16:01 true
and this will be relatively little
even the firebreath homepage only gets aroung 600 visits per day on busier days
it's a bit of a niche project
jshanab 16:01 I prefer postrges and have tons more experiance than on mysql. The old speed arguments are no longer valid
keith` 16:01 is running nginx and passenger with rvm-wrapped rubies
taxilian 16:01 back when I was doing a lot of db work I preferred postgres; I've always considered it a bit more robust. not sure if that's still true, but it's what I chose to use w/ all the atlassian stuff years ago when I set it up for and I'm sure not going to migrate it now :-P
keith` 16:01 I don't care what my db is so long as it sits in a corner and quietly works.
taxilian 16:01 hehe
most of my personal stuff these days uses node.js and mongodb; there are definitely some things that aren't as easy in mongo, but it is *very* nice for some things
jshanab 16:01 It is more "oracle" like. The whole deal in the past was mysql has different back ends so they were able to turn off integrity and robustness and get some really fast speeds for static web content. There is aways a trade but postgres is the most activly developed database out there. (I am on that list and it is 100's if not thousands of developer messages a day)
taxilian 16:01 btw, jshanab, kylehuff, tpaul_: another reason to get the cmake refactor done is that it's stage 1 on the to-do list for FireBreath 2.0
I started it on a whim yesterday
keith` 16:01 taxilian, can we move some of our log conversations over to email? [email protected]
I'm not the best with irc.
taxilian 16:01 sure. [email protected]
I'm also available via google talk xmpp
by that same address
one of these days I need to get the irc bot back online
keith` 16:01 Cool. Thanks.
taxilian 16:01 cya
tpaul 18:01 What's the minimum required version of CMake required by FireBreath? I recall seeing it on the wiki but I can't find where.
kylehuff 18:01 it depends on the OS I believe tpaul; look at the release page of
taxilian 18:01 tpaul: I really recommend just using the latest
on linux you're probably okay with 2.6 or later, but 2.8 would be better
on windows or mac, install the latest
tpaul 18:01 Ah ok, 2.6.4 is in the repo, I recall building CMake from source on my Desktop but wasn't sure I needed to
taxilian 18:01 2.6.4 is probably okay on linux
mac requires much newer, windows it's just a good idea just in case
tpaul 18:01 I'll go ahead an get 2.8 I recall it didn't take long to build last time
jshanab 18:01 I can confirm cmake 2.8.10 working fine on linux and I HAD to go 2.8.8 on mac, windows went 2.8.8 at same time without issue. (gentoo64,mac10.7, win7-64)
taxilian 18:01 if you're using the latest xcode you'll want 2.8.10(.2) on mac
jshanab 18:01 I will update next plugin build! I am on linux tonight. Funny : droid in the mornings, mac on wednesdays, linux in the evening. LOL