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 05:03:17
Message-Id: BLU436-SMTP239580DBE2C1290445CFCFD8D530@phx.gbl
In Reply to: Re: [gentoo-user] CD ripper that generates song titles? by covici@ccs.covici.com
1 On Tuesday, September 08, 2015 12:09:14 AM 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 > So, if I wanted to add addpredict /run where would I put it? Somewhere
145 > in the ebuild? I still tink its pretty funky.
146 >
147 >
148
149 It looks like it's happening during the compile phase so at the top of
150 src_compile(). If it's a live (git) ebuild it's likely that it's an upstream
151 change since the ebuild was written. If a malicious ebuild wants to escape the
152 sandbox it's easy (clear LD_PRELOAD or load a dummy sandbox library) so it's
153 likely just bad practices.
154
155 I don't know if addpredict will work but it's worth a try, in any case I think
156 it'll be harmless to write there (any user can do it). If there's no
157 src_compile() make it:
158
159 src_compile() {
160 addpredict /run/user/0/
161 default
162 }
163
164 I don't remember if that's the right syntax for a directory, it may be
165 addpredict "/run/user/0/*"
166
167 --
168 Fernando Rodriguez

Replies

Subject Author
Re: [gentoo-user] CD ripper that generates song titles? covici@××××××××××.com