Hi Stephen,

Following are the current status on my porting of SongBird to Solaris. 
SongBird GUI can be launched on my Solaris x86 box(svn_80): 
http://www.flickr.com/photos/39375616 at N00/2293711728/. But nothing 
happen when I choose "Open a File". The debugging output for the binary 
is here: http://iann.pastebin.com/m3ae1cb79.

1. Check out the XULRunnder trunk(2008-02-21) source code:
cvs co mozilla/client.mk
cd mozilla
gmake -f client.mk checkout MOZ_CO_PROJECT=xulrunner

2. Build XULRunner trunk with the mozconfig below:
mk_add_options moz_objd...@topsrcdir@/../build
ac_add_options --enable-application=xulrunner
ac_add_options --with-xulrunner-stub-name=songbird
ac_add_options --disable-optimize
ac_add_options --disable-tests
ac_add_options --enable-debug
ac_add_options --disable-static
ac_add_options --enable-shared
ac_add_options --disable-auto-deps
ac_add_options --disable-crashreporter

3. Check out the SongBird source code.
svn co https://publicsvn.songbirdnest.com/songbird/client/trunk sbird

4. Hack around the code for Solaris, with patch here: 
http://iann.pastebin.com/m2a2ffe68. I just ignore some breakpad(crash 
reporting) requirements due to it's still under development: 
https://bugzilla.mozilla.org/show_bug.cgi?id=391361 and 
http://code.google.com/p/google-breakpad/issues/detail?id=223.

5. Get the new command sets for "cp" and "find"(/usr/local/): 
coreutils-6.9 and findutils-4.2.33. This can help bypass some 
incompatibility issues.

6. Packaging XULRunner to build SongBird: 
http://publicsvn.songbirdnest.com/wiki/PackagingXulRunner.

7. Build vendor binaries(gettext id3lib libgpod libiconv libogg libtool 
taglib zlib) by running the build script in every directories.

8. Build SongBird. In the source root directory, run "gmake -f 
songbird.mk debug".

9. Goto compiled/dist and run ./songbird.

10. Get an empty dialog: 
http://www.flickr.com/photos/39375616 at N00/2293710390, have to click 
"yes" to proceed. It seems that a new profile is created and the same 
dialog pops up again. Then choose "cancel" to proceed.

11. Get an dialog for "internal playback core error": 
http://www.flickr.com/photos/39375616 at N00/2293710392/. Click "more info" 
won't help... Proceed by "more info" and "continue".

12. Accept the license 
agreement(http://www.flickr.com/photos/39375616 at N00/2293710394/) and get 
to "Setup 
options"(http://www.flickr.com/photos/39375616 at N00/2293710396/). The 
network connection option can be set 
here(http://www.flickr.com/photos/39375616 at N00/2293710400/). Choose "OK" 
will bring me to the main window finally: 
http://www.flickr.com/photos/39375616 at N00/2293710404/.

The error message
"
JavaScript error: , line 0: uncaught exception: [Exception... 
"'Component not initialized' when calling method: 
[sbIPlaylistPlayback::getSupportedFileExtensions]"  nsresult: 
"0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: 
chrome://songbird/content/scripts/playerOpen.js :: SBFileOpen :: line 
65"  data: no]
"
in the log shows that there are something wrong with the component 
initialization for "@songbirdnest.com/Songbird/PlaylistPlayback;1". The 
files are in compiled/dist/components, for example: 
sbPlaylistPlayback.js. It seems that xulrunner has some problem finding 
all these files and registering the components.

I try to copy all the file under compiled/dist/components to 
compiled/dist/xulrunner/components/ and run "./songbird" again. The 
debugging output is here: http://iann.pastebin.com/m5e78f628. Notice 
that some SongBird related components have been registered successfully:

   1.
      *** Registering components in: SongbirdMetadataManagerComponent
   2.
      *** Registering components in: SongbirdMetadataHandlerTaglibComponent
   3.
      *** Registering components in: sbGStreamerModule
   4.
      *** Registering components in: SongbirdDeviceManagerModule
   5.
      *** Registering components in: SongbirdDownloadDeviceComponent

But "Open a File" still doesn't work:-(

If you guys have any clue for this problem, that'll be great.

Thanks,
-Alfred

Stephen Lau wrote:
> Just to follow up, I managed to rebuild myself a debug XULRunner, and
> get some more useful debugging output out of the `songbird` binary.
> I've put the debug log up here:
>
> http://whacked.net/songbird-debug.log
>
> while I figure out what to make of it.  :-P
> notable errors include many assertion failures attempting to
> initialize nsScriptSecurityManager:
> ##!!! ASSERTION: Failed to initialize nsScriptSecurityManager:
> 'NS_SUCCEEDED(rv)', file
> /export/home/stevel/sb/xulrunner/mozilla/caps/src/nsScriptSecurityManager.cpp,
> line 3399
>
> failure to load the Songbird database engine shared library:
> nsNativeModuleLoader::LoadModule("/export/home/stevel/sb/trunk/compiled/dist/components/sbDBEngine_d.so")
> - load FAILED, rv: 80004005, error:
>     ld.so.1: songbird: fatal: relocation error: file
> /export/home/stevel/sb/trunk/compiled/dist/components/sbDBEngine_d.so:
> symbol __1cWCaseInsensitiveCompare6FpkHp0I_i_: referenced symbol not
> found
>
> The securitymanager stuff seems coincidentally related to the stack
> trace I got in an earlier core dump related to securitymanager
> initialisation failure as well.  (I only get a core dump on a first
> run of xulrunner/songbird, but many thanks to Ginn Chen for pointing
> me at b.m.o. 403466 which is my likely culprit)
>
> cheers,
> steve
>
> On Sun, Jan 06, 2008 at 01:42:55AM -0800, Stephen Lau wrote:
>   
>> I made some progress here tonight.  I was able to build XULRunner 
>> successfully, and after a few false starts, I was able to get Songbird 
>> built successfully.  It appears to startup, but then exits pretty 
>> quickly without ever drawing anything on the screen.
>>
>> It creates and populates a ~/.songbird1 directory:
>> [stevel at grommit:dist] 629$ find ~/.songbird1
>> /export/home/stevel/.songbird1
>> /export/home/stevel/.songbird1/z3l037ar.default
>> /export/home/stevel/.songbird1/z3l037ar.default/prefs.js
>> /export/home/stevel/.songbird1/z3l037ar.default/.parentlock
>> /export/home/stevel/.songbird1/z3l037ar.default/xpti.dat
>> /export/home/stevel/.songbird1/z3l037ar.default/compatibility.ini
>> /export/home/stevel/.songbird1/z3l037ar.default/compreg.dat
>> /export/home/stevel/.songbird1/z3l037ar.default/mimeTypes.rdf
>> /export/home/stevel/.songbird1/z3l037ar.default/db
>> /export/home/stevel/.songbird1/profiles.ini
>>
>> but seems to die out somewhere.  I'm calling it a night for now - since 
>> I can't figure out what's going on - but if anyone is curious and wants 
>> to take a look at the truss output, I've put it up here:
>> http://whacked.net/songbird.truss
>>
>> Nothing jumps out at out me as being obviously wrong or being an 
>> obviously failed call -- but I'd appreciate anyone's eyes that could help.
>>
>> I built a release (non-debug) build, so obviously I'm not getting any 
>> debug output.  I'll need to build a debug build (hopefully tomorrow) to 
>> maybe see if I can narrow down from there.
>>
>> cheers,
>> steve
>>
>> -- 
>> stephen lau | stevel at opensolaris.org | www.whacked.net
>>
>> _______________________________________________
>> desktop-discuss mailing list
>> desktop-discuss at opensolaris.org

Reply via email to