It seems that my comment to the topic http://www.songbirdnest.com/node/1377 is considered to be a spam. So I'd like to post it here again.
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@N00/2293711728/. But nothing happen no matter I click a button or choose a drop-down menu item, such as "Open a File". You can find the debugging output for the binary here: http://iann.pastebin.com/m5e78f628.
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_OBJDIR=@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=22....
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@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@N00/2293710392/. Click "more info" won't pop up any info window... Proceed by "more info" and "continue".
12. Accept the license agreement(http://www.flickr.com/photos/39375616@N00/2293710394/) and get to "Setup options"(http://www.flickr.com/photos/39375616@N00/2293710396/). The network connection option can be set here(http://www.flickr.com/photos/39375616@N00/2293710400/). Choose "OK" will bring me to the main window finally: http://www.flickr.com/photos/39375616@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" when I choose the menu item "Open a File".
var PPS = Components.classes["@songbirdnest.com/SongbirdPlaylistPlayback;1"].getService(Components.interfaces.sbIPlaylistPlayback);
......
var eExtensions = PPS.getSupportedFileExtensions();
The javascript file is already there in compiled/dist/components/sbPlaylistPlayback.js, and the debugging output shows that the registration has succeeded:
# *** registering sbMediaContentListener.js: [ sbMediaContentListener ]
# *** registering sbPlaylistPlayback.js: [ Songbird Playlist Playback Interface ]
Also notice that some SongBird related components have been registered successfully:
*** Registering components in: SongbirdMetadataManagerComponent
*** Registering components in: SongbirdMetadataHandlerTaglibComponent
*** Registering components in: sbGStreamerModule
*** Registering components in: SongbirdDeviceManagerModule
*** Registering components in: SongbirdDownloadDeviceComponent
Any suggestions for this problem?
Thanks,
-Alfred
Filed Under: General Discussion
previous forum topic | next forum topic »










