On Linux, you can either download the binaries from the homepage or build the software yourself. If you're interested in developing add-ons or feathers, you do not necessarily need to build Nightingale. For some complex add-ons the build system described here might be needed or helpful, through.
Building Nightingale allow you to work on the core code of Nightingale and also allow you to use the Nightingale Build System for building add-ons (Remember: most add-ons do NOT need to be built!).
Let's move to the actual building process:
You need some tools to build Nightingale. Here's a (maybe incomplete) list of requirements for using our build system:
sudo apt-get install git autoconf g++ libgtk2.0-dev libdbus-glib-1-dev libtag1-dev libgstreamer-plugins-base0.10-dev zip unzip libidl-dev libasound2-dev
yum -y install autoconf git-all gcc-c++ gtk2-devel dbus-glib-devel gstreamer-plugins-base-devel
zypper install git autoconf gcc-c++ gtk2-devel dbus-1-glib-devel libtag-devel gstreamer-plugins-base-devel gstreamer-0_10-plugins-base-devel libidl-devel zip unzip
git clone https://github.com/nightingale-media-player/nightingale-hacking.git
To build a trunk build (like a nightly):
git checkout sb-trunk-oldxul
If you want to build from a past release type the following, replacing VERSION with the desired version number:
git checkout nightingale-VERSION
You can specify options in nightingale.config. The file does not exist by default, as it is ignored by .gitignore.
You can specify the following flags in nightingale.config (prefix with ac_add_options):
--enable-debug whether or not to compile a debug version (disabled by default) --enable-jars whether or not to create jar files (enabled by default) --enable-official whether or not to create an official build (disabled by default) --enable-nightly whether or not to create an nightly build (disabled by default) --enable-tests whether or not to build tests (defaults: debug:enabled rel:disabled) --enable-update-channel=CHANNEL which update channel to use ("default") --enable-breakpad whether or not to enable breakpad (disabled by default in non-official builds) --enable-static experimental single-component static build support (disabled by default) --enable-compiler-environment-checks only allow officially-supported compiler versions (enabled by default) --enable-unity-integration enables Unity integration for audio menus and notifications (disabled by default) --enable-system-nspr enables usage of your system's NSPR instead of a bundled version (disabled by default) --enable-metrics enables integration of metrics collection infrastructure (disabled by default)
For Building, please skip to the Debian Package part of the Building section.
Building nightingale as a debian package brings additional dependencies with itself. To install the type
sudo apt-get install build-essentials libgnomevfs2-dev libsqlite0-dev libnspr4-dev
sqlite is in theory not always needed, but it is listed in the debian/control file.
In order to build the debian package, you can choose between two options:
Change debian/source/format to 3.0 (native)
which in theory is wrong.
Alternatively you can put a tarball of the source (you can use your local source or download the tarball from GitHub) named nightingale_{version}.orig.tar.gz, where {version} is the latest version number according to the changelog in the debian directory up to the dash (e.g. 1.12.2), into the root nightingale source directory.
No special additional steps are required - apart from adding the debug build flag. build.sh should handle everything else for you.
After you set everything up, you can open a terminal for building.
Type the following to build:
./build.sh
If everything is successful, you should see the words: “Build Successful!” on the last line of the output.
Navigate to the nightingale source code directory containing the “debian” directory in a terminal. Type
dpkg-buildpackage
If it's only a local build and you don't want to sign the .dsc and .changes file, type
dpkg-buildpackage -uc -us
To run after the build succeeded, run
make run
Alternatively you can find the binary and resources in the compiled/dist folder relative to your source directory.
For instructions on how to install a self-built Nightingale, see the INSTALL file in the source directory.
TODO
If you are getting taglib reference errors when trying to build, you may need to manually install TagLib 1.8. See this forum post for details.