(define-module (ajatt packages audio) #:use-module (gnu packages video) #:use-module (guix build-system copy) #:use-module (guix git-download) #:use-module (gnu packages) #:use-module (guix download) #:use-module (guix packages) #:use-module (guix gexp) #:use-module (guix build-system gnu) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (guix search-paths) #:use-module ((guix licenses) #:prefix license:)) (define-public navidrome-bin (package (name "navidrome-bin") (version "0.51.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/navidrome/navidrome/releases/download/v" version "/navidrome_" version "_linux_amd64.tar.gz")) (sha256 "0s7p3nfk9qfv8agjajpn438l1hcfl5w2i4s1c8a0d6679xw2nckl"))) (build-system copy-build-system) (supported-systems '("x86_64-linux")) (arguments `(#:install-plan '(("navidrome" "bin/")))) (synopsis "Modern Music Server and Streamer compatible with Subsonic/Airsonic.") (description "Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device. It's like your personal Spotify!") (home-page "https://github.com/navidrome/navidrome") (license license:gpl3))) (define grep (package (name "grep") (version "3.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/grep/grep-" version ".tar.xz")) (sha256 (base32 "10n3mc9n1xmg85hpxyr4wiqzfp27ffxzwhvkv021j27vnk0pr3a9")) (patches (search-patches "grep-timing-sensitive-test.patch")))) (build-system gnu-build-system) (native-inputs (list perl)) ;some of the tests require it (inputs (list pcre2)) (arguments `(#:configure-flags (list "--enable-perl-regexp") #:phases (modify-phases %standard-phases (add-after 'install 'fix-egrep-and-fgrep ;; Patch 'egrep' and 'fgrep' to execute 'grep' via its ;; absolute file name instead of searching for it in $PATH. (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) (substitute* (list (string-append bin "/egrep") (string-append bin "/fgrep")) (("^exec grep") (string-append "exec " bin "/grep")))))) ))) (synopsis "Print lines matching a pattern") (description "grep is a tool for finding text inside files. Text is found by matching a pattern provided by the user in one or many files. The pattern may be provided as a basic or extended regular expression, or as fixed strings. By default, the matching text is simply printed to the screen, however the output can be greatly customized to include, for example, line numbers. GNU grep offers many extensions over the standard utility, including, for example, recursive directory searching.") (license license:gpl3+) (home-page "https://www.gnu.org/software/grep/"))) (define-public impd (package (name "impd") (version "0.8") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Ajatt-Tools/impd.git") (commit (string-append "v" version)))) (sha256 (base32 "1wxmc628jh3prxrwbca4cdhfa58birdxr2nh76k11j1cjw939hzg")))) (build-system copy-build-system) (arguments (list #:install-plan #~'(("impd" "bin/")) #:phases #~(modify-phases %standard-phases (add-after 'install 'make-wrapper (lambda* (#:key inputs outputs #:allow-other-keys) (wrap-program (string-append (assoc-ref outputs "out") "/bin/impd") `("PATH" ":" prefix (,(string-append (assoc-ref inputs "grep") "/bin"))))))))) (inputs (list grep)) ;; (propagated-inputs (list ffmpeg)) ;; TODO fix this, since we need ffmpeg at runtime (home-page "https://github.com/Ajatt-Tools/impd") (synopsis "AJATT-style passive listening and condensed audio without bloat.") (description "AJATT-style passive listening and condensed audio without bloat.") (license license:gpl3))) impd