nightingale-media-player/nightingale-hacking — pull request #274 by darealshinji (2014-03-02 02:54:06+00:00)
Title: Overhauled debian/* files, added full hicolor icon set

app/branding/hicolor:
hicolor icons that belong to /usr/share/icons
They will automatically be added when building a Debian package.

debian/control:
I replaced the previous nightingale and nightingale-nounity packages with a regular nightingale package and an additional nightingale-unity-integration package which installs only the Unity integration addon ontop of a regular nightingale installation.
I couldn't test it though since I'm not a Unity user. But it should work. "nightingale" also provides "nightingale-nounity" through a virtual package. I've removed the "Conflicts" line to make it possible to manually replace an installation by installing a new package.
I've also changed the descriptions.

debian/copyright:
Added new contributors which were mentioned in README.

debian/nightingale.1:
I had some layout issues in the top line with the formatted manpage. Furthermore, Lintian mentioned the manpage-has-bad-whatis-entry warning, which I think was because the first line of the formatted manpage started with a blank line. Also, it seems that nowadays most packages are distributed
with source manpages anyway.
Another problem I had was that during the build process the manpage is automatically gzipped, but that's not a good idea when working with debhelper, because the original *.1 file is replaced with the *.1.gz file and you need to add the path to the *.1 file in debian/nightingale.manpages, so the manual
can be installed properly.

debian/rules:
Lot's of rework done here.

- Current version number is extracted and added to the manpage.

- Correct permissions of files that were incorrectly marked as executable.
Should be fixed at build time if possible.

- Overwrite hardlinks with symbolic links. Should be fixed at build time too.

- Create temporary installation folders. I tried to do it with nightingale.dirs but it didn't work. In the end I think you have a better control on it when this stuff is done with debian/rules.
Move compiled Nightingale files, *.desktop file and the hicolor icons into the temporary installation folders.

- Now I'm moving *.jar files and images to the /usr/share prefix. This way I'm fixing Lintian's image-file-in-usr-lib and jar-not-in-usr-share warnings and I don't need to override them. In the next step I'm creating symbolic links from the *.jar and image files in /usr/share to the original /usr/lib folders. Unfortunately I can't use the "ln -rs" command to create relative links if I want the debian/rules file to be compatible with Ubuntu 12.04.

- override_dh_auto_test is added without commands because it will otherwise stop the build with an error message.

- nightingale/extensions/unity-integration@lookingman.org is moved to a different location, so I can create a seperate package for the Unity integration addon.

- I've added "-Lnightingale" to dh_shlibdeps which prevents libnspr4 from being added to the dependency list, since that library is already present in the Nightingale package.

Other stuff that I want to mention:

Lintian's embedded-library error message and hardening-no-relro warning are still there. It's not a big deal, the program still runs, but using embedded libraries should be avoided when creating packages for package managers.
hardening-no-relro seems to have to do something with using wrong flags for linking
the binaries.
http://lintian.debian.org/tags/embedded-library.html
http://lintian.debian.org/tags/hardening-no-relro.html

If there's GOOD reason why you can't or won't fix this, you can use overrides.
Just follow this guide: http://lintian.debian.org/manual/section-2.4.html
Otherwise, simply ignore Lintian's warnings.

This warning seems to be new:
shared-lib-without-dependency-information usr/lib/nightingale/gst-plugins/gstmozilla.so
"ldd gstmozilla.so" returns "statically linked".

I've successfully built Debian packages on Launchpad: https://launchpad.net/~djcj/+archive/test/+packages
Runs without problems for me. Can't test the Unity plugin though (MATE user).

Launchpad also points out something about useless dependencies in the build logs.

i386:
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/nightingale/usr/lib/nightingale/xulrunner/libxul.so debian/nightingale/usr/lib/nightingale/xulrunner/xulrunner-bin were not linked against libXext.so.6 (they use none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/nightingale/usr/lib/nightingale/xulrunner/libxul.so debian/nightingale/usr/lib/nightingale/xulrunner/xulrunner-bin debian/nightingale/usr/lib/nightingale/xulrunner/components/libimgicon.so debian/nightingale/usr/lib/nightingale/xulrunner/updater debian/nightingale/usr/lib/nightingale/xulrunner/plugins/libnullplugin.so were not linked against libpangocairo-1.0.so.0 (they use none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/nightingale/usr/lib/nightingale/xulrunner/components/libmozgnome.so debian/nightingale/usr/lib/nightingale/xulrunner/libxul.so debian/nightingale/usr/lib/nightingale/xulrunner/xulrunner-bin debian/nightingale/usr/lib/nightingale/xulrunner/components/libimgicon.so debian/nightingale/usr/lib/nightingale/xulrunner/updater debian/nightingale/usr/lib/nightingale/xulrunner/plugins/libnullplugin.so were not linked against libgio-2.0.so.0 (they use none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/nightingale/usr/lib/nightingale/xulrunner/components/libmozgnome.so debian/nightingale/usr/lib/nightingale/xulrunner/components/libnkgnomevfs.so were not linked against libgmodule-2.0.so.0 (they use none of the library's symbols)

amd64:
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/nightingale/usr/lib/nightingale/xulrunner/libxul.so debian/nightingale/usr/lib/nightingale/xulrunner/xulrunner-bin were not linked against libXext.so.6 (they use none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/nightingale/usr/lib/nightingale/xulrunner/libxul.so debian/nightingale/usr/lib/nightingale/xulrunner/xulrunner-bin debian/nightingale/usr/lib/nightingale/xulrunner/components/libimgicon.so debian/nightingale/usr/lib/nightingale/xulrunner/updater debian/nightingale/usr/lib/nightingale/xulrunner/plugins/libnullplugin.so were not linked against libpangocairo-1.0.so.0 (they use none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/nightingale/usr/lib/nightingale/xulrunner/libxul.so debian/nightingale/usr/lib/nightingale/xulrunner/xulrunner-bin debian/nightingale/usr/lib/nightingale/xulrunner/components/libimgicon.so debian/nightingale/usr/lib/nightingale/xulrunner/updater debian/nightingale/usr/lib/nightingale/xulrunner/plugins/libnullplugin.so were not linked against libgio-2.0.so.0 (they use none of the library's symbols)

I don't know what this is about or how it could be fixed, I guess someone should investigate it.

The full build logs can be found here:
https://launchpadlibrarian.net/168109246/buildlog_ubuntu-saucy-amd64.nightingale_1.12.2a-1~ubuntu13.10.0~ppa2_UPLOADING.txt.gz
https://launchpadlibrarian.net/168108965/buildlog_ubuntu-saucy-i386.nightingale_1.12.2a-1~ubuntu13.10.0~ppa2_UPLOADING.txt.gz