Nicotine+ is a graphical client for the Soulseek peer-to-peer file sharing network. It is an attempt to keep Nicotine working with the latest libraries, kill bugs, keep current with the Soulseek protocol, and add some new features that users want and/or need.
The current stable version of Nicotine+ is 1.4.1. An unstable version 1.4.3 is currently under development and available for testing.
If you have no need to modify the Nicotine+ source, you are strongly recommended to use precompiled packages for your distribution. This will save you time.
To use stable packages, run the following:
$ sudo add-apt-repository ppa:nicotine-team/stable $ sudo apt update $ sudo apt install nicotine
$ sudo add-apt-repository ppa:nicotine-team/unstable $ sudo apt update $ sudo apt install nicotine
Package maintainers, please insert instructions for users to install pre-compiled packages from your respective repositories here.
Nicotine+ is released under the terms of the GNU Public License v3 or later.
Please come and join us in the
#nicotine+ channel on Freenode!
If you’d like to contribute, you have a couple of options to get started. You can open an issue ticket on GitHub, discuss in
#nicotine+, or post to the project mailing list. Developers are also encouraged to join the Launchpad Team or subscribe to the mailing list so that they are automatically notified of failed commits.
For (unofficial) documentation of the Soulseek protocol, see SLSKPROTOCOL.md
There is a current list of things TODO.md.
If you’d like to translate Nicotine+ into another language it has not been already, see TRANSLATIONS.md.
If you want to contact someone, see MAINTAINERS.md.
It is important that all patches pass unit testing. Unfortunately developers make all kinds of changes to their local development environment that can have unintended consequences. This means sometimes tests on the developer’s computer pass when they should not, and other times failing when they should not have.
To properly validate that things are working, continuous integration (CI) is required. This means compiling, performing local in-tree unit tests, installing through the system package manager, and finally testing the actually installed build artifacts to ensure they do what the user expects them to do.
The key thing to remember is that in order to do this properly, this all needs to be done within a realistic end user system that hasn’t been unintentionally modified by a developer. This might mean a chroot container with the help of QEMU and KVM to verify that everything is working as expected. The hermetically sealed test environment validates that the developer’s expected steps for, as an example in the case of a library, compilation, linking, unit testing, and post installation testing are actually replicable.
On Debian based distributions,
autopkgtest implements the DEP-8 standard. To create and use a build image environment for Ubuntu, follow these steps. First install the autopkgtest(1) tools:
$ sudo apt install autopkgtest
Next create the test image, substituting
amd64 for other releases or architectures:
$ autopkgtest-buildvm-ubuntu-cloud -r focal -a amd64
Generate a Nicotine+ source package in the parent directory of
$ cd nicotine_source $ sudo apt build-dep nicotine $ ./debian/rules get-orig-source $ debuild -S -sa
Test the source package on the host architecture in QEMU with KVM support and 8GB of RAM and four CPUs:
$ autopkgtest --shell-fail --apt-upgrade ../nicotine_(...).dsc -- \ qemu --ram-size=8192 --cpus=4 --show-boot path_to_build_image.img \ --qemu-options='-enable-kvm'
upnpc(1)if not available;