Giter VIP home page Giter VIP logo

nicotine-plus's Introduction

Nicotine+

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.

Screenshots

Download Nicotine+

The current stable version of Nicotine+ is 2.0.1, released on 16 July 2020. See the changelog.

GNU/Linux

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.

Ubuntu PPA (Stable)

To use stable packages, run the following:

$ sudo add-apt-repository ppa:nicotine-team/stable
$ sudo apt update
$ sudo apt install nicotine

Ubuntu PPA (Unstable)

The project builds daily unstable snapshots in a separate unstable PPA. It currently contains bleeding edge packages for Xenial, Bionic, Eoan, Focal, and Groovy. To use it, run the following:

$ sudo add-apt-repository ppa:nicotine-team/unstable
$ sudo apt update
$ sudo apt install nicotine

Arch Linux/Parabola (Stable)

Nicotine+ is available in the community repository of Arch Linux and Parabola. To install, run the following:

$ pacman -S nicotine+

Void Linux (Stable)

To install Nicotine+ on Void Linux, run the following:

$ sudo xbps-install -S nicotine+

Fedora (Stable)

To install Nicotine+ on Fedora, run the following:

$ dnf install nicotine+

Flathub (Stable)

Download Nicotine+ on Flathub

Other Distributions

Package maintainers, please insert instructions for users to install pre-compiled packages from your respective repositories here.

Windows

Stable

You can download stable Windows packages here:

Unstable

Unstable Windows packages are generated after every commit to the master branch, and should only be used for testing. You need to be signed into a GitHub account to download the packages.

macOS

Unstable

Unstable MacOS packages are generated after every commit to the master branch, and should only be used for testing. You need to be signed into a GitHub account to download the packages.

Please note that we haven't been able to test these packages. Please let us know about any potential issues.

Building from git

Building from git is described in RUNFROMGIT.md Also do read the next section about getting involved.

Getting Involved

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:

  • If you find a problem or have a feature request you can
  • 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
  • For a current list of things to do, see the issue tracker.
  • 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.

Continuous Integration Testing

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.

There are different ways of performing CI on different distros. The most common one is via the international DEP-8 standard as used by hundreds of different operating systems.

Autopkgtest

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 focal or amd64 for other releases or architectures:

$ autopkgtest-buildvm-ubuntu-cloud -r focal -a amd64

Generate a Nicotine+ source package in the parent directory of nicotine_source:

$ 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'

Legal and Privacy

  • By using Nicotine+, you agree to abide by the Soulseek rules and terms of service, as long as you are using the official Soulseek server.
  • While Nicotine+ does not collect any user data, the official Soulseek server or a user-configured third-party server may potentially do so.

License

Nicotine+ is released under the terms of the GNU Public License v3 or later.

nicotine-plus's People

Contributors

baloo79 avatar chzchzchz avatar droserasprout avatar elverde avatar emilazy avatar gahag avatar gall0ws avatar hattshire avatar hboetes avatar josepanguera avatar kiplingw avatar kristopolous avatar lene avatar mariachini avatar mathiascode avatar melmorabity avatar mutnick avatar seeschloss avatar toofar avatar vsedach avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.