Patchwork gnu: Add asunder.

login
register
mail settings
Submitter Chris Marusich
Date Dec. 18, 2016, 9:04 a.m.
Message ID <878trd7gmz.fsf@gmail.com>
Download mbox | patch
Permalink /patch/18543/
State New
Headers show

Comments

Chris Marusich - Dec. 18, 2016, 9:04 a.m.
Hi everyone,

Thank you for the review!  Please find a new patch attached.

Hartmut Goebel <h.goebel@crazy-compilers.com> writes:

> Am 17.12.2016 um 10:20 schrieb Chris Marusich:
>> +    (home-page "http://www.littlesvr.ca/asunder/index.php")
>
> I'd leave of the "index.php" here. Its uselass and ugly :-)

Good point.  I've changed this, but I've left the trailing slash to
avoid an unnecessary redirect.

John Darrington <john@darrington.wattle.id.au> writes:

>      +(define-public asunder
>      +  (package
>      +    (name "asunder")
>      +    (version "2.8")
>      +    (home-page "http://www.littlesvr.ca/asunder/index.php")
>      +    (source (origin
>      +              (method url-fetch)
>
> It's unueual to have the home-page field here.  Most package
> definitions place it just
> before the synopsis.

OK - I've moved it.

Leo Famulari <leo@famulari.name> writes:

>> +    (inputs `(("gtk+-2" ,gtk+-2)
>> +              ("glib" ,glib)
>> +              ("libcddb" ,libcddb)
>> +              ("cdparanoia" ,cdparanoia)
>> +              ("lame" ,lame)
>> +              ("vorbis-tools" ,vorbis-tools)
>> +              ("flac" ,flac)
>> +              ("opus" ,opus)
>> +              ("wavpack" ,wavpack)
>> +              ("libmpcdec" ,libmpcdec)))
>
> I checked the references of the built package:
> $ guix gc --references $(./pre-inst-env guix build asunder)
> /gnu/store/1jh6z732id8w014i66abm2h2iivkwk8v-gdk-pixbuf+svg-2.34.0
> /gnu/store/46kis1wxzqfk3yysaz6ds0pc7w195a3b-gtk+-2.24.31
> /gnu/store/4glf79v1r1l4k7by4vf1lfldq7n0yafw-libcddb-1.3.2
> /gnu/store/7m55pyfv0rm19rqrrr7xx0c2irsvaq3y-pango-1.40.1
> /gnu/store/cd92wyv466fcfnavx3wcjcr8qln4ycix-atk-2.20.0
> /gnu/store/cdi08kw7r6r684w8mk0xq0dkgpjhfpmd-gcc-4.9.4-lib
> /gnu/store/hmc1jiyr29mk9cl2d9j0jwf0dim1q76g-freetype-2.6.3
> /gnu/store/iwgi9001dmmihrjg4rqhd6pa6788prjw-glibc-2.24
> /gnu/store/n56vagr3zv7ildvh9b7mzvk7h4bgwjpf-shared-mime-info-1.7
> /gnu/store/p56ai0sj3bbh8hdqc9qigdp91gj73brp-glib-2.48.2
> /gnu/store/pkv2qqgprp4zxcqfspwwx81qm9lng0da-fontconfig-2.12.1
> /gnu/store/qkw4zrwfybxww8f56nkb6hggxambk89b-bash-4.4.0
> /gnu/store/y30l675nz41p87pmvzscqhhyhik626na-cairo-1.14.6
> /gnu/store/zfm6sgn6mpv8yqfjwk23i7hnjib2rc30-asunder-2.8
>
> Several inputs are missing from this list, so they will be garbage
> collected when the user runs `guix gc`. Can you look into that?

Great catch.  This was a problem.  The reason I didn't realize it was
because I tested by installing Asunder into my existing profile, which
contains the necessary tools already, and Asunder was finding the tools
via my PATH environment variable.  I've fixed this issue by wrapping the
asunder executable with wrap-program.  I've verified (by using "guix
environment" with the --pure option) that with this latest patch,
Asunder can successfully rip an audio CD and encode to MP3, FLAC, OGG
Vorbis, OPUS, and WavPack.  I've also verified that the inputs which
previously were missing in the references are now included.

The remaining encodings supported by Asunder - Musepack, Monkey's Audio,
and AAC - don't work because (1) we haven't packaged the Musepack
encoder yet (I think), and (2) the latter two are not distributed under
a free license.

>> + ;; Asunder can also encode to AAC using neroAacEnc and to Monkey's
>> audio
>> + ;; using mac, but we do not include those libraries as they are
>> non-free.
>
> This comment isn't necessary, in my opinion.

OK.  I've removed it.

>> +    (description
>> + "Asunder is a graphical Audio CD ripper and encoder.  It can save
>> audio
>
> Does audio need to be capitalized here?

No, it doesn't.  I've decapitalized it.

Patch

From 0e4998622ac076d57b6df492727d7cebbabc290b Mon Sep 17 00:00:00 2001
From: Chris Marusich <cmmarusich@gmail.com>
Date: Sat, 17 Dec 2016 01:06:48 -0800
Subject: [PATCH] gnu: Add asunder.

* gnu/packages/cdrom.scm (asunder): New variable.
---
 gnu/packages/cdrom.scm | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 829156a7c..20937dc8f 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -28,14 +28,19 @@ 
   #:use-module ((guix licenses) #:select (lgpl2.1+ gpl2 gpl2+ gpl3+))
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix gexp)
   #:use-module (gnu packages)
   #:use-module (gnu packages acl)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages mp3)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages pkg-config)
@@ -395,3 +400,56 @@  for bootable CD-ROMs.
 Image data is written to standard output by default and all other
 information is written to standard error.")
     (license gpl2+)))
+
+(define-public asunder
+  (package
+    (name "asunder")
+    (version "2.8")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "http://www.littlesvr.ca/asunder/releases/asunder-"
+                              version
+                              ".tar.bz2"))
+              (sha256
+               (base32
+                "1nq9kd4rd4k2kibf57gdbm0zw2gxa234vvvdhxkm8g5bhx5h3iyq"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     '(#:out-of-source? #f
+       #:phases (modify-phases %standard-phases
+                  (add-after 'install 'wrap
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (let ((program (string-append (assoc-ref outputs "out")
+                                                    "/bin/asunder")))
+                        (define (bin-directory input-name)
+                          (string-append (assoc-ref inputs input-name) "/bin"))
+                        (wrap-program program
+                          `("PATH" ":" prefix
+                            ,(map bin-directory (list "cdparanoia"
+                                                      "lame"
+                                                      "vorbis-tools"
+                                                      "flac"
+                                                      "opus-tools"
+                                                      "wavpack"))))))))))
+    (native-inputs `(("intltool" ,intltool)
+                     ("pkg-config" ,pkg-config)))
+    ;; TODO: Add the necessary packages for Musepack encoding.
+    (inputs `(("gtk+-2" ,gtk+-2)
+              ("glib" ,glib)
+              ("libcddb" ,libcddb)
+              ("cdparanoia" ,cdparanoia)
+              ("lame" ,lame)
+              ("vorbis-tools" ,vorbis-tools)
+              ("flac" ,flac)
+              ("opus-tools" ,opus-tools)
+              ("wavpack" ,wavpack)))
+    (home-page "http://www.littlesvr.ca/asunder/")
+    (synopsis "Graphical audio CD ripper and encoder")
+    (description
+     "Asunder is a graphical audio CD ripper and encoder.  It can save audio
+tracks as WAV, MP3, Ogg Vorbis, FLAC, Opus, Wavpack, and Musepack.  It can use
+CDDB to name and tag each track automatically, and it allows for each track to
+be by a different artist.  Asunder can encode to multiple formats in one
+session, and it can create M3U playlists.")
+    (license gpl2)))
-- 
2.11.0