Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / music.scm
index e26d3de..fa70e9d 100644 (file)
@@ -2353,6 +2353,64 @@ allows you to send JACK MIDI events (i.e. play) using your PC keyboard.")
 can connect to any JACK port and record the output into a stereo WAV file.")
     (license license:gpl2+)))
 
+(define-public jack-select
+  (package
+    (name "jack-select")
+    (version "1.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "jack-select" version))
+              (sha256
+               (base32
+                "1zijk9ly2fczxsnnrqr8s0ajmlyx1j1vd8gk0rm5dj5zyhhmia7f"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:modules ((guix build gnu-build-system)
+                  ((guix build python-build-system) #:prefix python:)
+                  (guix build utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build python-build-system))
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:tests? #f                      ; there are none
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; python-dbus cannot be found but it's really there.  See
+             ;; https://github.com/SpotlightKid/jack-select/issues/2
+             (substitute* "setup.py"
+               (("'dbus-python',") ""))
+             ;; Fix reference to dlopened libraries.
+             (substitute* "jackselect/alsainfo.py"
+               (("libasound.so.2")
+                (string-append (assoc-ref inputs "alsa-lib")
+                               "/lib/libasound.so.2")))
+             #t))
+         (replace 'build
+           (assoc-ref python:%standard-phases 'build))
+         (add-after 'install 'wrap
+           (assoc-ref python:%standard-phases 'wrap)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("python" ,python-wrapper)
+       ("python-pyudev" ,python-pyudev)
+       ("python-pyxdg" ,python-pyxdg)
+       ("python-dbus" ,python-dbus)
+       ("python-pygobject" ,python-pygobject)))
+    (home-page "https://github.com/SpotlightKid/jack-select")
+    (synopsis "Systray application to quickly change the JACK-DBus configuration")
+    (description "This application displays an icon in the system tray (also
+known as notification area) of your desktop, which shows the status of the
+JACK audio server and when you click on it, a menu pops up, which lets you
+quickly select from the JACK configuration presets you created with QjackCtl.
+When you select a preset, its JACK engine and driver configuration settings
+are loaded via DBus into JACK and then the server is restarted.  This allows
+you to switch between different audio setups with just two mouse clicks.")
+    (license license:expat)))
+
 (define-public cursynth
   (package
     (name "cursynth")
@@ -2870,7 +2928,7 @@ websites such as Libre.fm.")
                                 (find-files "instantmusic.egg-info"
                                             "PKG-INFO|.*\\.txt"))
                       #t)))))
-    (home-page "http://iyask.me/Instant-Music-Downloader/")
+    (home-page "https://github.com/yask123/Instant-Music-Downloader")
     (synopsis "Command-line program to download a song from YouTube")
     (description "InstantMusic downloads a song from YouTube in MP3 format.
 Songs can be searched by artist, name or even by a part of the song text.")