Plex crashes a lot on me and I’ve been trying to figure out what is going on. It usually happens when I am just opening My Videos -> MythTV -> Recordings. So I grabbed the source, compiled it and debugged it with xcode. It turns out that I can’t get it to crash in a debug build so I decided to debug a release build. Sure enough, it started crashing as I enter ‘Recordings’.
The interesting part is that the crash is happening when CPicture::Load() when trying to load thumbnails. The crash actually comes from ImageLib.so::LoadImage(), but the Plex repo only has a pre-built library and no source. From what I can tell, this library is actually a mac osx build of cximage, but grabbing their source directly doesn’t do me much good since they only have VisualStudio projects (no makefiles or xcode project).
So I’m wondering how I can build my own ImageLib-osx.os so that I can follow the debugging trail to where it seems to be pointing at the moment? I’m probably missing something obvious, but go easy on me.
Michael
theres a good chance the lib came from macports
Possibly, but there is no package available with a name like cximage and I don’t know what else it could be called.
You might take a look at how XBMC builds ImageLib-osx.so, Plex will do something similar in some obscure bash script somewhere that better be in the git sources. See Makefile.in in http://xbmc.org/trac/browser/trunk/xbmc/lib/cximage-6.0. The configure process will setup various tokens such as "@ARCH@"
That's the path that I started with and was thinking that I must be missing something obvious, but apparently not. It does not appear possible to build ImageLib-osx.so from source without a bunch of hacking. I hacked the required Makefiles and have produced a new lib, but this is definitely not a reproducible process so I would be shocked if there wasn't a proper build for this lib. I'll report back if I find anything interesting now that I have this lib built in debug.
Thanks for the suggestions.
Michael
You should PM one of the Plex devs on this, it's a GPL source code violation if GPL binaries are distributed without the source and the scripts that built them as it would be impossible to rebuild from source without this info. They know this and I'm sure it's been overlooked. Off hand, I can't remember where I dug up the info to make a proper build system for XBMC for Mac. Bit's and pieces were spread all over the place. It took about a month to sort it out.
Brilliantly done, Davilla, in typical fashion you manage to spread FUD about possible license violations and toss in an offhanded insult to the work done on the Mac port.
As usual, there is no conspiracy going on. The source for all the auxiliary libraries (including CxImage) was moved to another Git repository, over here: http://github.com/elan/xbmc-sources-fork
If you need any help building, michaelb, give me a holler over PM.
Please re-read my post, I did say "I'm sure it's been overlooked" which gave you the opportunity to post exactly how to build ImageLib and my involvement in this topic would have been done. Instead you go into attack mode. Nice.
Elan, you can call me all the names you want and make snippy commits to spin it any way you want but you know the rules under which Plex devs enjoy the code base that Plex operates under. Your current build system is terrible, users have to hunt all over to be able to build Plex from source code. While it's "just" possible to build Plex from source, it's not in the least easy as this thread highlights.
Less you forget, you need not only the source code but also the build configurations such that any user can reproduce the distributed binary from source. Those are not my requirements but the requirements of using GPL'ed source code. As a member of TeamXBMC, I (we) have a responsibility to the GPL community to make sure that any fork or distribution of XBMC complies with GPL requirements. Plex is not being singled out with this regard, we also "remind" Boxee when they overlook something and are currently about to swing a very big clue stick at Voddler for distributing binaries without source code. So don't feel that when I post a reminder, that's it's personal. It's not. Plex is one of many forks and distributions of XBMC that we monitor.
Now your typical response will be to lock this thread after you get a final say, in which you try to make me look silly, to which I can't respond. Lets see if this holds true for this post.
opps, hehe, double post while correcting the spelling of voddler.
Grow up, its all there, Plex is complying with the GPL v2 just fine.
We dont need yet another overzealous Stallman, thank you
If you want better documentation on how to build it all, feel free to write it, Im sure the devs would appreciate that a lot more
Please stop it gentlemen. We have all been through this before. Please stop posting about this in this thread.
Elan,
That's what I was missing. Though the build is still not very smooth for me and it makes me wonder if there's something else. I had to hack on the following files:
cximage-6.0/Makefile
* use -dylib instead of -bundle
* comment out $(MACH5) ImageLib-osx.so because MACH5 is undefined for me
cximage-6.0/Makefule.include
* added cximage-6.0/jpeg to include path because of compile error trying to get jpegint.h from macports include
I also had to manually run cximage-6.0/tiff-3.8.2/configure then make which failed at some point due to unresolved symbol main (can't remember the details atm).
Any of this sound familiar or am I way out in left field?
Michael
To be really on the safe side (dont know how often Elan checks this thread) I would recommend that you follow his advice and send him a PM about this. However, when you have gotten all cleared up it would be appreciated if you add your solution here so any interested parties can find the answers here in the future.
It sounds familiar, there was no unified one-stop build for CxImage, unfortunately. It needs to get built so infrequently by so few people that we never spent the time on it.
Please let me know if you run into other issues, I'd be happy to help out (PM is best, or email).