Merry Christmas from (and to) The Nightingale Team!

New (old) Hardware

I recently purchased an old 2006-era Mac Mini for our development, so that I could make sure and get a more proper Mac build out for our next release. I’m happy to say that after setting up the build environment (and reinstalling OSX once the machine arrived, as I trust no eBay seller to do that part for me), I have most of the Nightingale build dependencies built fresh.

2006 Era Mac MiniNew Mac Testing Build

I’m still fighting with XULRunner to get it to build under OS X. That said, I did compile the new TagLib, so I was able to cobble together a current trunk build for all 5 of our Mac users out there (j/k, we have at least 7 Mac users :P). You can download the testing build here. I’d love to hear of any issues you run into, as I’m using a different compiler – the vanilla gcc 4.7 – to build the dependencies and client this time around. It should provide for smaller, faster, more efficient code.

Gearing Up For A New Release: 1.12

In other news, the team and I are all working hard to get the polish all together for a 1.12 release here at the beginning of January. Short of fighting to get the FLAC albumart display working, we have a lot of great changes, as well as more stability across all our platforms. On Linux especially, we have more system integration, and only have to rely on XULRunner and SQLite as precompiled dependencies. The release after next should do away with those altogether.

New Year’s Parties – Use Nightingale, Tell Friends!

We hope you had a Merry Christmas, and happy holidays all around. Furthermore, we all wish you a very happy New Year! Make sure to use Nightingale to play the music at your New Year’s parties, and show it off to your friends! Our resolution is to make Nightingale the best desktop music player out there, and to have more people use it as well. We can’t do that without your help, so please, make sure to help us get the word out!

Discuss!

Feel free to talk about the player, discuss the Mac build, or even just let us know your New Year’s resolutions in the comments, jump into the forums, or chat with us in #nightingale on irc.mozilla.org.

Nightingale: Now Supporting System/Vanilla TagLib!

Thanks to some really hard work by our own rsjtdrjgfuzkfg, Nightingale now supports the current/vanilla version of TagLib! For all of our users, this means better ID3 tag support, and a lot fewer problems and bugs with tags and importing your music in general. For our Linux users, this means that Nightingale will automatically build against your distro’s TagLib package. If you maintain Nightingale packages, please update them to require TagLib>=1.8 before your next build of sb-trunk-oldxul.

We plan on releasing official builds (a new version) as soon as we get the build process working 100% on Windows and Mac with our new dependencies. Once the transition is complete, you can be sure the next version of Nightingale will be coming your way!

Other Upgrades and News

In other news, the only two dependencies left to convert to use those provided by the host distribution on Linux are SQLite and XULRunner. Both are in progress, and we welcome any help and support you can provide in speeding up the process. This work not only benefits Linux users, but will also provide Windows and Mac users with much more stable, efficient, and fast versions of the dependencies, all making for a better Nightingale.

Stability on Windows – and an upcoming Release

A lot of interesting work has been done behind the scenes since the last blog post. Even though we’re still low on developers (are you a dev? we’re still searching!), ilikenwf and Mook made many steps in the direction of building with a more current, vanilla XULrunner. Non-technically speaking, that means making Nightingale much faster and more reliable, with more addons and support for newer web services. I (rjtdrjgfuzkfg) just finished working on the fix for the only blocker issue we had with 1.11.

We finally have working Windows builds using a recent version of taglib (read: builds without the annoying crash issue) and that means that the basic porting for using a newer, vanilla taglib is done. Now we need your support – please download the testing build and try it out to see if everything works as expected. A huge part of the metadata handling code was rewritten, so we need to test it thoroughly. Please report any issues and all the successes you run into in the forums or at the github issue tracker, so we can fix them in preparation for releasing the next version!

We will also be working on using system taglib support on Linux, which would reduce the number of bundled dependencies, making Nightingale even more lightweight. Linux builds of the current taglib changes are not yet available due to the required dependency rebuild, but they should be rolling out very soon!

Speaking of 1.11.1, we’re moving in the direction of releasing the second and probably last release from the current code branch. There are many bugs fixed already, and we’re looking forward to publishing them in a stable build soon. Again, we need your help testing, so make sure and let us know if you see something that is not ready yet or broken.

 

Thanks for your interest into the Project!

- rsjtdrjgfuzkfg and the Nightingale Community

Progress and Current Status

We admit, we really aren’t that great at informing people what’s going on – it could be because we all have day jobs that get in the way, or it could be because our free time is always used working on Nightingale or some other open source project.  We’re really sorry about all of that, but don’t take our silence as any indication as to the amount of improvement being made in the Nightingale code! We have great things ahead!

Upstream Merges

I have been pulling in upstream Songbird updates, and also making build fixes here and there on the main nightingale-hacking git repo. Otherwise, I have pulled down a copy of the Songbird dependencies SVN repository, and am working to get the dependencies building under gcc 4.7 (where applicable) in an effort to get better speed, stability, and performance out of Nightingale as a whole. The Linux dependencies are all already working, but we’re still struggling a bit getting Mac and Windows versions of them building. Either way, this should provide a speed boost, and get us closer to upgrading the dependencies to newer and more vanilla versions.

Dependency Upgrades and Linux Package Creation

Speaking of Linux, our near future involves the transition to using system dependencies. On Linux, Nightingale currently requires three non-system packages – xulrunner 1.9.2, sqlite, and taglib. These dependencies are specifically patched for the Nightingale/Songbird code base, so our first step will involve splitting these three dependencies off into their own repositories, and build them so that they are placed wherever their configuration points them to (ex: taglib could go into /opt/songbird-taglib instead of the same directory as the nightingale binary).

In turn, we’ll be required to take the first steps on the client code, setting it up to build by grabbing all the dependencies externally on Linux, rather than relying on having them in the same directory.  By splitting these packages up, it is our hope that Linux distributions will begin packaging Nightingale and it’s dependencies, and place them all in their repositories. Further, this change will take us closer to upgrading all of the dependencies as a whole on all platforms, using newer and more vanilla versions of them than we do now.

Buildbot

GeekShadow recently created some nice nightly build scripts, which build and push fresh versions of Nightingale any time a change is made. This script currently builds and uploads nightlies for 32 and 64 bit Linux, but Windows is on the way too. You can find the nightly build directory on Sourceforge, and give them a try as you so desire.

Windows Compatibility Improvements

Rsjtdrjgfuzkfg has also been really busy – he’s done various debug builds and work to improve the client’s stability and functionality on Windows. His current project focuses on using a vanilla taglib instead of the old, patched version Songbird uses – so far, it only deals with basic ID3 tags, but progress is being made. Soon,  his work should also pave the way to using a native taglib on Linux machines, and vanilla on Mac and Windows.