Gentoo Archives: gentoo-user

From: Fernando Rodriguez <frodriguez.developer@×××××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] CD ripper that generates song titles?
Date: Tue, 08 Sep 2015 03:18:49
Message-Id: BLU436-SMTP1998AC8E3FBDCE539B0E1018D530@phx.gbl
In Reply to: Re: [gentoo-user] CD ripper that generates song titles? by covici@ccs.covici.com
1 On Monday, September 07, 2015 10:51:18 PM covici@××××××××××.com wrote:
2 > Fernando Rodriguez <frodriguez.developer@×××××××.com> wrote:
3 >
4 > > On Monday, September 07, 2015 7:45:47 PM covici@××××××××××.com wrote:
5 > > > Alex Corkwell <i.am.the.memory@×××××.com> wrote:
6 > > >
7 > > > > On Wed, Aug 26, 2015 at 04:06:10PM -0400, Walter Dnes wrote:
8 > > > > > I went to the CNE (Canadian National Exhibition) yesterday and
9 > > > > > indulged in a buying spree of 18 CD sets of my fave music (basically
10 > > > > > anything pop/rock/country pre-Beatles). I now have over 20 CDs that
11 I
12 > > > > > want to rip to flac eventually. I dread the gruntwork in renaming
13 > > > > > tracks like track01.cdda.wav, etc. What Gentoo ebuilds are there
14 for
15 > > > > > stuff that'll get ahold of track titles? Is it in the form of
16 metadata
17 > > > > > on the CD?
18 > > > >
19 > > > > I personally like using morituri [1] for ripping my CDs.
20 > > > > It's a little bit slower than some, but very accurate (I believe it
21 > > > > compares several reads, just to make sure there were no errors).
22 > > > > It's not available in the main portage tree, but it's in the dev-zero
23 > > > > overlay as media-sound/morituri.
24 > > > >
25 > > > > It can rip to flac (with optional cue files) and works from the
26 > > > > terminal, if you prefer that.
27 > > > > Additionally, it can adjust for drive read offsets when writing files,
28 > > > > and is one of the few Linux things I've found which check the rips
29 > > > > against AccurateRip.
30 > > > >
31 > > > > What's particularly nice about it is that it uses what little metadata
32 > > > > and such it can get from the CD to look it up in MusicBrainz and add
33 in
34 > > > > the title, artist, etc.
35 > > > > It also uses this to name the files according to album, artist, song
36 > > > > title, etc.
37 > > > > The template it uses to name the files and directories is relatively
38 > > > > configurable, as well.
39 > > > >
40 > > > > If you need more configurable tagging, cover art downloading, and such,
41 > > > > then look into Picard [2], which is in the main portage tree as
42 > > > > media-sound/picard.
43 > > > > It uses MusicBrainz [3] to get a whole bunch of metadata, tags, cover
44 > > > > art, and other stuff, and can rename files much more flexibly than
45 > > > > morituri.
46 > > > >
47 > > > > This is especially nice in combination with morituri, since morituri
48 > > > > saves the MusicBrainz ID into the metadata of the ripped files.
49 > > > > Normally, Picard looks files up by either the available metadata, or by
50 > > > > the acoustic fingerprint.
51 > > > > Since the MusicBrainz ID is already there, it immediately knows which
52 > > > > album it is (although it may have the wrong release if you want to be
53 > > > > that precise).
54 > > > >
55 > > > > The only caveats with Picard that I know of are that it's GUI only, it
56 > > > > can't embed full size cover art if the image is above some large
57 > > > > resolution, and I think that submitting extra fingerprints requires you
58 > > > > to register with AcoustID [4].
59 > > > > Also, it's not an actual ripper.
60 > > > > It just works on the metadata and tags of flac, mp3, and maybe a few
61 > > > > other types.
62 > > > >
63 > > > > I personally like to rip with morituri, then polish the tagging and
64 get
65 > > > > the cover art with Picard.
66 > > > >
67 > > > > [1] http://thomas.apestaart.org/morituri/trac/wiki
68 > > > > [2] https://picard.musicbrainz.org/
69 > > > > [3] https://musicbrainz.org/
70 > > > > [4] https://acoustid.org/
71 > > >
72 > > > In trying to emerge morituri from the overlay I get the folloing:
73 > > >
74 > > > make[1]: Entering directory
75 > > > '/var/tmp/portage/media-sound/morituri-0.2.3/work/morituri-0.2.3'
76 > > > if test -e ./.git; then make REVISION; fi
77 > > > make[1]: Leaving directory
78 > > > '/var/tmp/portage/media-sound/morituri-0.2.3/work/morituri-0.2.3'
79 > > > ** Message: pygobject_register_sinkfunc is deprecated (GstObject)
80 > > > Progress:
81 > > > 00:10
82 > > > (null)*(null) (null)ACCESS DENIED(null): mkstemp:
83 > > >
84 > >
85 /run/user/0/orcexec.XXXXXX-------------------------------------------------------------------------]
86 > > > Building documentation: morituri.common.checksum
87 > > > (/var/tmp/portage/media-
88 > > sound/morituri-0.2.3/work/morituri-0.2.3/morituri/common/checksum.py)
89 > > > (gst-plugin-scanner:3783): GStreamer-CRITICAL **:
90 > > > gst_structure_empty_new: assertion 'gst_structure_validate_name (name)'
91 > > > failed
92 > > >
93 > > > (gst-plugin-scanner:3783): Clutter-CRITICAL **: Unable to initialize
94 > > > Clutter: Could not initialize Gdk
95 > > > ** Message: pygobject_register_sinkfunc is deprecated (GstObject)
96 > > > Warning: Unable to extract the base list for
97 > > > twisted.trial.unittest.TestDecorator: Bad dotted name
98 > > > Warning: Module gobject._gobject is shadowed by a variable with the same
99 > > > name.
100 > > > Warning: 18 markup errors were found while processing docstrings. Use
101 > > > the verbose switch (-v) to display markup errors.
102 > > > >>> Source compiled.
103 > > > (null)*(null) --------------------------- ACCESS VIOLATION SUMMARY
104 > > > ---------------------------
105 > > > (null)*(null) LOG FILE: "/var/log/sandbox/sandbox-3700.log"
106 > > > (null)*(null)
107 > > > VERSION 1.0
108 > > > FORMAT: F - Function called
109 > > > FORMAT: S - Access Status
110 > > > FORMAT: P - Path as passed to function
111 > > > FORMAT: A - Absolute Path (not canonical)
112 > > > FORMAT: R - Canonical Path
113 > > > FORMAT: C - Command Line
114 > > >
115 > > > F: mkstemp
116 > > > S: deny
117 > > > P: /run/user/0/orcexec.XXXXXX
118 > > > A: /run/user/0/orcexec.XXXXXX
119 > > > R: /run/user/0/orcexec.XXXXXX
120 > > > C: /usr/lib64/gstreamer-0.10/gst-plugin-scanner -l
121 > > > (null)*(null)
122 > > >
123 > >
124 --------------------------------------------------------------------------------
125 > > >
126 > > > >>> Failed to emerge media-sound/morituri-0.2.3, Log file:
127 > > >
128 > > > >>> '/var/log/portage/media-sound:morituri-0.2.3:20150907-233836.log'
129 > > >
130 > > >
131 > > > So, how can I fix or is this a dead package i.e. no maintainance?
132 > > >
133 > > > Thanks in advance for any ideas.
134 > > >
135 > > >
136 > > >
137 > >
138 > > If you trust the ebuild you can try emerging it with FEATURES="-sandbox"
139 or
140 > > add an exception for the temp directory on the ebuild.
141 > >
142 > > https://devmanual.gentoo.org/function-reference/sandbox-functions/
143 >
144 > But what is it really complaining about? I don't want to do this
145 > arbitrarily, it is there for a reason.
146
147 In that case it looks like it's just trying to create a temp file under /run.
148 Portage defines a temp directory within the sandbox but it looks like the build
149 system uses some other method to determine the temp dir. Also note that it is
150 running as root (I think that's because the ebuild has userpriv set) so
151 although a temp file sounds harmless there's no way to tell what else it'll do
152 if you run it without the sandbox. You can use the addwrite function at the
153 top of the src_compile() function to allow it to write only to that directory.
154
155 --
156 Fernando Rodriguez