aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2022 Fatima Toothpaste <fatimatoothpaste@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages nicotine)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix git-download)
  #:use-module (guix build-system python)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages freedesktop)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages gnome)
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages mp3)
  #:use-module (gnu packages xorg))

(define-public nicotine+
  (package
    (name "nicotine+")
    (version "3.2.1")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/Nicotine-Plus/nicotine-plus")
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256 (base32 "1x08z5lvkdl62dkc11vrsackgzsh1vr9vp3vgsgfzjyrvlsybmfw"))
              (modules '((guix build utils)))
              ;; Remove test that relies on network access.
              (snippet '(delete-file-recursively "test/integration"))))
    (build-system python-build-system)
    (arguments
     `(#:imported-modules ((guix build glib-or-gtk-build-system)
                           ,@%python-build-system-modules)
       #:modules
       ((guix build utils)
        (guix build python-build-system)
        ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
       #:phases
       (modify-phases %standard-phases
         (add-after 'install 'wrap-program
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((prog (string-append
                          (assoc-ref outputs "out")
                          "/bin/nicotine"))
                   (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
               (wrap-program prog
                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))))
         (add-after 'wrap-program 'glib-or-gtk-wrap
           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
         (add-after 'glib-or-gtk-wrap 'glib-or-gtk-compile-schemas
           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
         (replace 'check
           (lambda* (#:key tests? #:allow-other-keys)
             (when tests?
               (invoke "xvfb-run" "python" "-m" "unittest")))))))
    (inputs
     (list bash-minimal gspell gtk+ python-pygobject libappindicator python-pytaglib))
    (native-inputs
     (list gettext-minimal xvfb-run))
    (home-page "https://nicotine-plus.org/")
    (synopsis "Graphical client for Soulseek")
    (description
     "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.")
    (license license:gpl3+)))
the timestamp of compiled class files is set to a later point in time than the timestamp of the corresponding Clojure source files. If the timestamps of the class and source files are the same, the Clojure compiler will compile the sources again which can lead to issues. This problem has been discussed here [1]. The suggested solution was to keep/adjust the timestamps of the class files. [1] https://www.mail-archive.com/clojure@googlegroups.com/msg99928.html * gnu/packages/clojure.scm (clojure): Update to 1.11.1 and update all of LIBRARIES accordingly. [arguments]: In 'unpack-library-sources' phase, copy from "core-specs-alpha-src" and "spec-alpha-src" as well. Add phases 'closure-spec-skip-macros', 'clojure-spec-compile', 'maven-classpath-properties', and 'reset-class-timestamps'. * guix/build/clojure-build-system.scm (regular-jar-file?) (reset-class-timestamps): New procedures. (%standard-phases): Add 'reset-class-timestamps' phase. Co-authored-by: Ludovic Courtès <ludo@gnu.org> r0man 2022-07-23gnu: clojure-tools: Update to 1.11.1.1149....* gnu/packages/clojure.scm (clojure-tools): Update to 1.11.1.1149. Signed-off-by: Ludovic Courtès <ludo@gnu.org> r0man 2022-07-23gnu: clojure-tools-deps-alpha: Update to 0.14.1212....* gnu/packages/clojure.scm (clojure-tools-deps-alpha): Update to 0.14.1212. Signed-off-by: Ludovic Courtès <ludo@gnu.org> r0man 2022-07-23gnu: clojure-tools-gitlibs: Update to 2.4.181....* gnu/packages/clojure.scm (clojure-tools-gitlibs): Update to 2.4.181. Signed-off-by: Ludovic Courtès <ludo@gnu.org> r0man 2022-07-23gnu: clojure-tools-cli: Update to 1.0.206....* gnu/packages/clojure.scm (clojure-tools-cli): Update to 1.0.206. Signed-off-by: Ludovic Courtès <ludo@gnu.org> r0man 2022-07-17gnu: clojure-tools: Install tools....When installing clojure-tools, clojure still had no access to the tools because they were not installed. * gnu/packages/clojure.scm (clojure-tools)[arguments]: Install `tools.edn'. Signed-off-by: Julien Lepiller <julien@lepiller.eu> Nikolai Weidt 2022-02-08gnu: clojure-data-xml: Fix test suite...Removes clojurescript related tests that interfere with the JDK clojure test suite, causing it to fail. * gnu/packages/clojure.scm (clojure-data-xml)[arguments]: Add 'delete-cljs-tests phase Signed-off-by: Julien Lepiller <julien@lepiller.eu> Ryan Sundberg via Guix-patches via 2022-01-14gnu: clojure-tools-gitlibs: Fix spelling....* gnu/packages/clojure.scm (clojure-tools-gitlibs)[synopsis]: Fix spelling of "programmatically". Vagrant Cascadian 2022-01-12gnu: clojure: Remove wrapper in favor of using clojure-tools....* gnu/packages/clojure.scm (clojure)[arguments]: Remove generated wrapper around clojure.jar, as it conflicts with the clojure-tools package. Signed-off-by: Ricardo Wurmus <rekado@elephly.net> Reily Siegel 2022-01-12gnu: Add clojure-tools....* gnu/packages/clojure.scm (clojure-tools): New variable. Reily Siegel 2022-01-12gnu: Add clojure-tools-deps-alpha....* gnu/packages/clojure.scm (clojure-tools-deps-alpha): New variable. Reily Siegel 2022-01-12gnu: Add clojure-data-xml....* gnu/packages/clojure.scm (clojure-data-xml): New variable. Reily Siegel 2022-01-12gnu: Add clojure-data-codec....* gnu/packages/clojure.scm (clojure-data-codec): New variable. Reily Siegel 2022-01-12gnu: Add clojure-tools-gitlibs....* gnu/packages/clojure.scm (clojure-tools-gitlibs): New variable. Reily Siegel 2022-01-12gnu: Add clojure-test-check....* gnu/packages/clojure.scm (clojure-test-check): New variable. Reily Siegel 2021-12-13gnu: Simplify package inputs....This commit was obtained by running: ./pre-inst-env guix style without any additional argument. Ludovic Courtès 2020-11-20gnu: clojure: Add bin/clojure wrapper....Fixes: https://issues.guix.gnu.org/issue/32709 * gnu/packages/clojure.scm: (clojure)[inputs]: Add icedtea. [arguments]: Add make-wrapper phase. Signed-off-by: Christopher Baines <mail@cbaines.net> Jesse Gibbons 2020-07-12gnu: Remove ".git" from "https://github/…/….git"....Until now, 'lookup-origin' and thus 'lookup-origin-revision' in (guix swh) would sometimes return #f for these because the ".git" URLs are redirects to the non-".git" URLs. Consequently, 'guix lint -c archival' would keep saying "scheduled Software Heritage archival"; likewise, the fallback download code would fail. * gnu/packages/ada.scm, gnu/packages/admin.scm, gnu/packages/aidc.scm, gnu/packages/algebra.scm, gnu/packages/android.scm, gnu/packages/animation.scm, gnu/packages/arcan.scm, gnu/packages/assembly.scm, gnu/packages/audio.scm, gnu/packages/authentication.scm, gnu/packages/avr.scm, gnu/packages/axoloti.scm, gnu/packages/backup.scm, gnu/packages/bash.scm, gnu/packages/benchmark.scm, gnu/packages/bioconductor.scm, gnu/packages/bioinformatics.scm, gnu/packages/bittorrent.scm, gnu/packages/boost.scm, gnu/packages/build-tools.scm, gnu/packages/c.scm, gnu/packages/calendar.scm, gnu/packages/cdrom.scm, gnu/packages/check.scm, gnu/packages/chemistry.scm, gnu/packages/chez.scm, gnu/packages/clojure.scm, gnu/packages/code.scm, gnu/packages/compression.scm, gnu/packages/compton.scm, gnu/packages/coq.scm, gnu/packages/cpp.scm, gnu/packages/cran.scm, gnu/packages/crypto.scm, gnu/packages/curl.scm, gnu/packages/databases.scm, gnu/packages/datastructures.scm, gnu/packages/debug.scm, gnu/packages/disk.scm, gnu/packages/distributed.scm, gnu/packages/django.scm, gnu/packages/dlang.scm, gnu/packages/dns.scm, gnu/packages/docker.scm, gnu/packages/education.scm, gnu/packages/efi.scm, gnu/packages/elixir.scm, gnu/packages/emacs-xyz.scm, gnu/packages/embedded.scm, gnu/packages/emulators.scm, gnu/packages/engineering.scm, gnu/packages/erlang.scm, gnu/packages/fabric-management.scm, gnu/packages/file-systems.scm, gnu/packages/finance.scm, gnu/packages/firmware.scm, gnu/packages/flashing-tools.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/fpga.scm, gnu/packages/game-development.scm, gnu/packages/games.scm, gnu/packages/genealogy.scm, gnu/packages/genimage.scm, gnu/packages/geo.scm, gnu/packages/gimp.scm, gnu/packages/gl.scm, gnu/packages/gnome-xyz.scm, gnu/packages/gnome.scm, gnu/packages/gnuzilla.scm, gnu/packages/golang.scm, gnu/packages/gpodder.scm, gnu/packages/graph.scm, gnu/packages/graphics.scm, gnu/packages/graphviz.scm, gnu/packages/groff.scm, gnu/packages/groovy.scm, gnu/packages/gtk.scm, gnu/packages/guile-xyz.scm, gnu/packages/guile.scm, gnu/packages/hardware.scm, gnu/packages/haskell-apps.scm, gnu/packages/haskell-xyz.scm, gnu/packages/hexedit.scm, gnu/packages/i2p.scm, gnu/packages/ibus.scm, gnu/packages/image-processing.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/ipfs.scm, gnu/packages/java-graphics.scm, gnu/packages/java-maths.scm, gnu/packages/java.scm, gnu/packages/javascript.scm, gnu/packages/jrnl.scm, gnu/packages/julia.scm, gnu/packages/jupyter.scm, gnu/packages/kodi.scm, gnu/packages/language.scm, gnu/packages/lego.scm, gnu/packages/less.scm, gnu/packages/libusb.scm, gnu/packages/linux.scm, gnu/packages/lirc.scm, gnu/packages/lisp-xyz.scm, gnu/packages/llvm.scm, gnu/packages/logging.scm, gnu/packages/lolcode.scm, gnu/packages/lua.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/machine-learning.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/maths.scm, gnu/packages/maven.scm, gnu/packages/mes.scm, gnu/packages/messaging.scm, gnu/packages/monitoring.scm, gnu/packages/mpd.scm, gnu/packages/music.scm, gnu/packages/networking.scm, gnu/packages/node-xyz.scm, gnu/packages/ocaml.scm, gnu/packages/ocr.scm, gnu/packages/onc-rpc.scm, gnu/packages/opencl.scm, gnu/packages/opencog.scm, gnu/packages/pantheon.scm, gnu/packages/password-utils.scm, gnu/packages/patchutils.scm, gnu/packages/pdf.scm, gnu/packages/perl6.scm, gnu/packages/phabricator.scm, gnu/packages/popt.scm, gnu/packages/printers.scm, gnu/packages/prolog.scm, gnu/packages/protobuf.scm, gnu/packages/pulseaudio.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.scm, gnu/packages/qt.scm, gnu/packages/radio.scm, gnu/packages/rails.scm, gnu/packages/rdf.scm, gnu/packages/rednotebook.scm, gnu/packages/rpc.scm, gnu/packages/rsync.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/screen.scm, gnu/packages/security-token.scm, gnu/packages/selinux.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/shellutils.scm, gnu/packages/simh.scm, gnu/packages/sml.scm, gnu/packages/ssh.scm, gnu/packages/statistics.scm, gnu/packages/stenography.scm, gnu/packages/sync.scm, gnu/packages/syncthing.scm, gnu/packages/synergy.scm, gnu/packages/telephony.scm, gnu/packages/terminals.scm, gnu/packages/tex.scm, gnu/packages/texinfo.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tmux.scm, gnu/packages/tor.scm, gnu/packages/toys.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/virtualization.scm, gnu/packages/vlang.scm, gnu/packages/vnc.scm, gnu/packages/vpn.scm, gnu/packages/web-browsers.scm, gnu/packages/web.scm, gnu/packages/wireservice.scm, gnu/packages/wm.scm, gnu/packages/wxwidgets.scm, gnu/packages/xdisorg.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, tests/lint.scm: Remove trailing ".git" from 'git-reference' URL. Ludovic Courtès 2020-01-08gnu: Add clojure-tools-cli....* gnu/packages/clojure.scm (clojure-tools-cli): New variable. Ludovic Courtès 2019-02-10gnu: clojure-tools-macro: Don't use unstable tarball....* gnu/packages/clojure.scm (clojure-tools-macro)[source]: Use GIT-FETCH and GIT-FILE-NAME. Tobias Geerinckx-Rice 2019-02-10gnu: clojure-algo-monads: Don't use unstable tarball....* gnu/packages/clojure.scm (clojure-algo-monads)[source]: Use GIT-FETCH and GIT-FILE-NAME. Tobias Geerinckx-Rice 2019-02-10gnu: clojure-algo-generic: Don't use unstable tarball....* gnu/packages/clojure.scm (clojure-algo-generic)[source]: Use GIT-FETCH and GIT-FILE-NAME. Tobias Geerinckx-Rice 2019-01-29gnu: clojure: Update to 1.10.0....* gnu/packages/clojure.scm (clojure): Update to 1.10.0. [source]: Use 'git-fetch'. Mathieu Lirzin 2018-11-24gnu: clojure: Move to new clojure.scm....* gnu/local.mk (clojure): Include new clojure.scm. * gnu/packages/clojure.scm: Add clojure, clojure-algo-generic, clojure-algo-monads, clojure-core-match, clojure-instaparse, clojure-tools-macro. * gnu/packages/lisp.scm: Remove clojure, clojure-algo-generic, clojure-algo-monads, clojure-core-match, clojure-instaparse, clojure-tools-macro. Pierre Neidhardt