[PATCH] gnu: Add glava.

  • Open
  • quality assurance status badge
Details
2 participants
  • Maxim Cournoyer
  • Spencer Skylar Chan
Owner
unassigned
Submitted by
Spencer Skylar Chan
Severity
normal
S
S
Spencer Skylar Chan wrote on 21 Mar 2023 18:58
(address . guix-patches@gnu.org)
a778daaa-66a4-4ccf-d315-259da34b6843@umd.edu
From 17eb638d8ff5d5cb40c9bdf9f24544ef7f23088e Mon Sep 17 00:00:00 2001
From: Skylar Chan <schan12@umd.edu>
Date: Mon, 30 Jan 2023 13:39:53 -0500
Subject: [PATCH] gnu: Add glava.

* gnu/packages/audio.scm (glava): New variable.
---
gnu/packages/audio.scm | 75 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 75 insertions(+)

Toggle diff (100 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 6f3fa2a580..a0e73ed55a 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -5109,6 +5109,81 @@ (define-public cava
using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
(license license:expat)))

+(define-public glava
+ (package
+ (name "glava")
+ (version "1.6.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jarcode-foss/glava")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0kqkjxmpqkmgby05lsf6c6iwm45n33jk5qy6gi3zvjx4q4yzal1i"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ;no tests.
+ #:make-flags
+ #~(list
+ (string-append "DESTDIR=" #$output)
+ (string-append "PREFIX=" #$output)
+ (string-append "CC=" #$(cc-for-target)))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-etc-references
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* (find-files ".*")
+ (("/etc/xdg") (string-append #$output
"/etc/xdg/glava")))))
+ (add-after 'unpack 'patch-makefile
+ (lambda _
+ (substitute* "Makefile"
+ (("$(DESTDIR)$(SHADERDIR)")
+ "$(SHADERDIR)"))))
+ (delete 'configure)
+ (add-after 'install 'make-wrapper
+ ;;
https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/glava/default.nix
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((wrapper (string-append #$output "/bin/glava")))
+ (with-output-to-file wrapper
+ (lambda _
+ (display
+ (string-append
+ "#!/bin/sh\n"
+ "case \"$1\" in\n"
+ " --copy-config|-C)\n"
+ "# The binary would symlink it, which won't
work in Guix because the\n"
+ "# garbage collector will eventually remove
the original files after\n"
+ "# updates.\n"
+ " echo \"Guix wrapper: Copying glava config
to ~/.config/glava\"\n"
+ " cp -r --no-preserve=all " #$output
"/etc/xdg/glava ~/.config/glava\n"
+ " ;;\n"
+ "*)\n"
+ " exec " #$output "/bin/.glava-real \"$@\"\n"
+ "esac\n"))))
+ (chmod wrapper #o555))))
+ (add-after 'install 'rename-binary
+ (lambda* (#:key outputs #:allow-other-keys)
+ (mkdir-p (string-append #$output "/bin"))
+ (rename-file (string-append #$output "/usr/bin/glava")
+ (string-append #$output
"/bin/.glava-real"))
+ (delete-file-recursively (string-append #$output
"/usr")))))))
+ (inputs (list pulseaudio
+ libx11
+ libxext
+ libxcomposite
+ libxrender))
+ (native-inputs (list python))
+ (home-page "https://github.com/jarcode-foss/glava")
+ (synopsis "OpenGL audio spectrum visualizer")
+ (description "GLava is an OpenGL audio spectrum visualizer using
PulseAudio or
+MPD's fifo output. Its primary use case is for desktop windows or
backgrounds.
+It is compatible with most EMWH compliant window managers.")
+ (license (list license:gpl3+
+ license:expat)))) ;; khrplatform.h
+
(define-public fluid-3
(let ((commit "871c8ce2002e8b3c198f532fdb4fbcce7914f951"))
(package

base-commit: 60a211ec705ac98483d76da7f2523f2b8966343a
--
2.39.2
M
M
Maxim Cournoyer wrote on 29 Mar 2023 05:01
(name . Spencer Skylar Chan)(address . schan12@umd.edu)(address . 62353@debbugs.gnu.org)
87355o45wx.fsf@gmail.com
Hi Spencer,

Spencer Skylar Chan <schan12@umd.edu> writes:

Toggle quote (7 lines)
> From 17eb638d8ff5d5cb40c9bdf9f24544ef7f23088e Mon Sep 17 00:00:00 2001
> From: Skylar Chan <schan12@umd.edu>
> Date: Mon, 30 Jan 2023 13:39:53 -0500
> Subject: [PATCH] gnu: Add glava.
>
> * gnu/packages/audio.scm (glava): New variable.

Thank you!

I'm having problem applying your patch; git says it's corrupted. It
seems the longer lines were folded? I'm using this opportunity to share
some review comments.

Toggle quote (30 lines)
> ---
> gnu/packages/audio.scm | 75 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 75 insertions(+)
>
> diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
> index 6f3fa2a580..a0e73ed55a 100644
> --- a/gnu/packages/audio.scm
> +++ b/gnu/packages/audio.scm
> @@ -5109,6 +5109,81 @@ (define-public cava
> using ALSA, MPD, PulseAudio, or a FIFO buffer as its input.")
> (license license:expat)))
>
> +(define-public glava
> + (package
> + (name "glava")
> + (version "1.6.3")
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/jarcode-foss/glava")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "0kqkjxmpqkmgby05lsf6c6iwm45n33jk5qy6gi3zvjx4q4yzal1i"))))
> + (build-system gnu-build-system)
> + (arguments
> + (list #:tests? #f ;no tests.

nitpick: You can drop the trailing period since inline comments are not
complete sentence (contrary to standalone comments, which should be).

Toggle quote (11 lines)
> + #:make-flags
> + #~(list
> + (string-append "DESTDIR=" #$output)
> + (string-append "PREFIX=" #$output)
> + (string-append "CC=" #$(cc-for-target)))
> + #:phases
> + #~(modify-phases %standard-phases
> + (add-after 'unpack 'fix-etc-references
> + (lambda* (#:key outputs #:allow-other-keys)
> + (substitute* (find-files ".*")

The first argument to find-files is a directory, not a regexp; so it
should probably be ".". It's usually best to use a regexps as a 2nd
argument otherwise for large projects it wastes IO scanning tons of
files and sometimes fails on binary images for example.

Toggle quote (9 lines)
> + (("/etc/xdg") (string-append #$output
> "/etc/xdg/glava")))))
>
> + (add-after 'unpack 'patch-makefile
> + (lambda _
> + (substitute* "Makefile"
> + (("$(DESTDIR)$(SHADERDIR)")
> + "$(SHADERDIR)"))))

This substitution must do anything, as the pattern
"$(DESTDIR)$(SHADERDIR)" is a regexp, and $ matches the end of line
character. You probably meant to escape regexp special characters like:

"\\$\\(DESTDIR\\)\\$\\(SHADERDIR\\)"

in the pattern.

Toggle quote (5 lines)
> + (delete 'configure)
> + (add-after 'install 'make-wrapper
> + ;;
> https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/glava/default.nix

Please leave a verbose comment (complete sentence) explaining what is
the issue, and prefer linking to the 'raw' github file in a (see: $URL)
at the end of the explanation.

Toggle quote (2 lines)
> + (lambda* (#:key inputs outputs #:allow-other-keys)

'inputs' appears unused.

Toggle quote (23 lines)
> + (let* ((wrapper (string-append #$output "/bin/glava")))
> + (with-output-to-file wrapper
> + (lambda _
> + (display
> + (string-append
> + "#!/bin/sh\n"
> + "case \"$1\" in\n"
> + " --copy-config|-C)\n"
> + "# The binary would symlink it, which won't
> work in Guix because the\n"
> + "# garbage collector will eventually remove
> the original files after\n"
> + "# updates.\n"
> + " echo \"Guix wrapper: Copying glava config
> to ~/.config/glava\"\n"
> + " cp -r --no-preserve=all " #$output
> "/etc/xdg/glava ~/.config/glava\n"
> + " ;;\n"
> + "*)\n"
> + " exec " #$output "/bin/.glava-real \"$@\"\n"
> + "esac\n"))))
> + (chmod wrapper #o555))))

Hm. I'm not sure we want to preserve this behavior of messing with
the user's HOME files, but I haven't read the issue to get a grasp of
what is the exact problem it tries to solve.

Toggle quote (24 lines)
> + (add-after 'install 'rename-binary
> + (lambda* (#:key outputs #:allow-other-keys)
> + (mkdir-p (string-append #$output "/bin"))
> + (rename-file (string-append #$output "/usr/bin/glava")
> + (string-append #$output
> "/bin/.glava-real"))
> + (delete-file-recursively (string-append #$output
> "/usr")))))))
> + (inputs (list pulseaudio
> + libx11
> + libxext
> + libxcomposite
> + libxrender))
> + (native-inputs (list python))
> + (home-page "https://github.com/jarcode-foss/glava")
> + (synopsis "OpenGL audio spectrum visualizer")
> + (description "GLava is an OpenGL audio spectrum visualizer using
> PulseAudio or
> +MPD's fifo output. Its primary use case is for desktop windows or
> backgrounds.
> +It is compatible with most EMWH compliant window managers.")
> + (license (list license:gpl3+
> + license:expat)))) ;; khrplatform.h

nitpick: Please use single ';' for inline comments :-)

Could you please send a revised version with the above taken care of?

--
Thanks,
Maxim
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 62353@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 62353
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch