diff mbox series

[bug#56668] gnu: Add wavbreaker

Message ID 95b8983678dc2e08f40fcda54e1f47be@posteo.net
State Accepted
Headers show
Series [bug#56668] gnu: Add wavbreaker | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git-branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Joeke de Graaf July 23, 2022, 10:14 p.m. UTC
On 23.07.2022 21:51, Maxime Devos wrote:
> On 20-07-2022 14:07, Joeke de Graaf wrote:
>> +    (license license:gpl2)))
> 
> Going by
> https://github.com/thp/wavbreaker/blob/master/src/appconfig.c, it's
> actually gpl2+, though I haven't verified whether that applies to all
> files.

You're right, I missed that. I attached a new patch.

On 23.07.2022 21:50, Maxime Devos wrote:
> On 20-07-2022 14:07, Joeke de Graaf wrote:
> 
>> +    (native-inputs
>> +     (list pkg-config cmake))
>> +    (inputs (list glib gtk+ ao))
> 
> Please check that it works nicely (with, e.g., no missing icons, which
> sometimes happens for GTK+ stuff) in a pure environment. Try:
> 
> $ guix shell --pure wavbreaker --
> insert-the-binary-name-here,probably-wavbreaker
> 
> If there are problems, we'll have to add some things to fix them.

It seems that in the package's current state, it does not like being run 
in a pure environment, it simply crashes.
The application seems to expect GTK icons to be in a certain place and 
it's not finding them.
It's not immediately obvious to me what the solution for this is, but I 
gather from your previous e-mail that this is a known and fixable 
problem.

In any case, I attached the output of
$ guix shell --pure -- wavbreaker
as a plain text attachment.


Best regards,

Joeke de Graaf
$ guix shell --pure wavbreaker -- wavbreaker

(wavbreaker:30189): Gtk-WARNING **: 23:42:50.230: Could not find the icon 'document-open-symbolic-ltr'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
        http://icon-theme.freedesktop.org/releases

(wavbreaker:30189): Gtk-WARNING **: 23:42:50.230: Could not load a pixbuf from /org/gtk/libgtk/icons/16x16/status/image-missing.png.
This may indicate that pixbuf loaders or the mime database could not be found.
**
Gtk:ERROR:gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /org/gtk/libgtk/icons/16x16/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
Bail out! Gtk:ERROR:gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /org/gtk/libgtk/icons/16x16/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)

Comments

M July 23, 2022, 10:27 p.m. UTC | #1
On 24-07-2022 00:14, Joeke de Graaf wrote:

> The application seems to expect GTK icons to be in a certain place and 
> it's not finding them.
> It's not immediately obvious to me what the solution for this is, but 
> I gather from your previous e-mail that this is a known and fixable 
> problem. 

Maybe have a look at how the inkscape package wraps things (search for 
GDK_PIXBUF_MODULE_FILE), maybe also search for glib-or-gtk-wrap, maybe 
GI_TYPELIB_PATH but probably not, perhaps XDG_DATA_DIRS (see e.g. icedove).

I'm not sure which of them is important, but my guess is XDG_DATA_DIRS.

Greetings,
Maxime
\( July 24, 2022, 10:31 a.m. UTC | #2
On Sat Jul 23, 2022 at 11:14 PM BST, Joeke de Graaf wrote:
> It seems that in the package's current state, it does not like being run 
> in a pure environment, it simply crashes.
> The application seems to expect GTK icons to be in a certain place and 
> it's not finding them.
> It's not immediately obvious to me what the solution for this is, but I 
> gather from your previous e-mail that this is a known and fixable 
> problem.

You should be able to fix this by adding the hicolor-icon-theme package
to native-inputs.

    -- (
M July 24, 2022, 9:13 p.m. UTC | #3
On 24-07-2022 12:31, ( via Guix-patches via wrote:
> On Sat Jul 23, 2022 at 11:14 PM BST, Joeke de Graaf wrote:
>> It seems that in the package's current state, it does not like being run
>> in a pure environment, it simply crashes.
>> The application seems to expect GTK icons to be in a certain place and
>> it's not finding them.
>> It's not immediately obvious to me what the solution for this is, but I
>> gather from your previous e-mail that this is a known and fixable
>> problem.
> You should be able to fix this by adding the hicolor-icon-theme package
> to native-inputs.
>
>      -- (

This doesn't seem correct to me -- if it is a runtime thing (otherwise, 
how could it stop the crashes), it needs to be _inputs_, not 
_native-inputs_, for cross-compilation reasons. If you go for 
native-inputs anyways, check the references and make sure the icons 
don't end up in them.  Also, a comment on why this seemingly unneeded 
package is added would be in order (the package builds without, so some 
future reader could easily just remove the input for being unneeded).

Greetings,
Maxime.
Joeke de Graaf July 24, 2022, 9:26 p.m. UTC | #4
On 24.07.2022 23:13, Maxime Devos wrote:
> On 24-07-2022 12:31, ( via Guix-patches via wrote:
> 
>> On Sat Jul 23, 2022 at 11:14 PM BST, Joeke de Graaf wrote:
>> 
>>> It seems that in the package's current state, it does not like
>>> being run
>>> in a pure environment, it simply crashes.
>>> The application seems to expect GTK icons to be in a certain place
>>> and
>>> it's not finding them.
>>> It's not immediately obvious to me what the solution for this is,
>>> but I
>>> gather from your previous e-mail that this is a known and fixable
>>> problem.
>> 
>> You should be able to fix this by adding the hicolor-icon-theme
>> package
>> to native-inputs.
>> 
>> -- (
> 
> This doesn't seem correct to me -- if it is a runtime thing
> (otherwise, how could it stop the crashes), it needs to be _inputs_,
> not _native-inputs_, for cross-compilation reasons. If you go for
> native-inputs anyways, check the references and make sure the icons
> don't end up in them.  Also, a comment on why this seemingly unneeded
> package is added would be in order (the package builds without, so
> some future reader could easily just remove the input for being
> unneeded).
> 
> Greetings,
>  Maxime.

You are right, adding hicolor-icon-theme as a native input did not 
resolve the issue.
While testing, I forgot to add --pure to the "guix shell" command.
I will attempt some other fixes.
diff mbox series

Patch

From d2a7b50cb8148355b725c90ac9068f103b94970e Mon Sep 17 00:00:00 2001
From: Joeke de Graaf <joeke@posteo.net>
Date: Sat, 23 Jul 2022 23:25:12 +0200
Subject: [PATCH] gnu: Add wavbreaker

---
 gnu/packages/mp3.scm | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 4a8bdad711..a42dc26ddf 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -10,6 +10,7 @@ 
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,13 +51,15 @@  (define-module (gnu packages mp3)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages linux)               ;alsa-lib
   #:use-module (gnu packages video)               ;ffmpeg
+  #:use-module (gnu packages cmake)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
-  #:use-module (guix build-system cmake))
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system-meson))
 
 (define-public libmad
   (package
@@ -710,3 +713,30 @@  (define-public python-pytaglib
 cross-platform, works with all Python versions, and is very
 simple to use yet fully featured.")
     (license license:gpl3)))
+
+(define-public wavbreaker
+  (package
+    (name "wavbreaker")
+    (version "0.15")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/thp/wavbreaker/")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "16h0sfcb8av6a368giizzwv9m0lq5c3bnf4b9vyyh9nkbbsc7c3j"))))
+    (build-system meson-build-system)
+    (native-inputs
+     (list pkg-config cmake))
+    (inputs (list glib gtk+ ao))
+    (home-page "https://wavbreaker.sourceforge.io/")
+    (synopsis "WAV and MP3 file splitter with a GUI")
+    (description
+     "Wavbreaker is a WAV and MP3 file splitter.  It can be used to
+break up a WAV or MP3 audio file into multiple WAV files.
+Wavbreaker contains a helpful waveform display of the audio file
+being edited, to help the user in splitting the file at the right
+point.  Wavbreaker also supports splitting MP3 files without
+re-encoding them, to preserve their original audio quality.")
+    (license license:gpl2+)))
-- 
2.37.0