1 |
Fernando Rodriguez <frodriguez.developer@×××××××.com> wrote: |
2 |
|
3 |
> On Tuesday, September 08, 2015 12:09:14 AM covici@××××××××××.com wrote: |
4 |
> > Fernando Rodriguez <frodriguez.developer@×××××××.com> wrote: |
5 |
> > |
6 |
> > > On Monday, September 07, 2015 7:45:47 PM covici@××××××××××.com wrote: |
7 |
> > > > Alex Corkwell <i.am.the.memory@×××××.com> wrote: |
8 |
> > > > |
9 |
> > > > > On Wed, Aug 26, 2015 at 04:06:10PM -0400, Walter Dnes wrote: |
10 |
> > > > > > I went to the CNE (Canadian National Exhibition) yesterday and |
11 |
> > > > > > indulged in a buying spree of 18 CD sets of my fave music (basically |
12 |
> > > > > > anything pop/rock/country pre-Beatles). I now have over 20 CDs that |
13 |
> I |
14 |
> > > > > > want to rip to flac eventually. I dread the gruntwork in renaming |
15 |
> > > > > > tracks like track01.cdda.wav, etc. What Gentoo ebuilds are there |
16 |
> for |
17 |
> > > > > > stuff that'll get ahold of track titles? Is it in the form of |
18 |
> metadata |
19 |
> > > > > > on the CD? |
20 |
> > > > > |
21 |
> > > > > I personally like using morituri [1] for ripping my CDs. |
22 |
> > > > > It's a little bit slower than some, but very accurate (I believe it |
23 |
> > > > > compares several reads, just to make sure there were no errors). |
24 |
> > > > > It's not available in the main portage tree, but it's in the dev-zero |
25 |
> > > > > overlay as media-sound/morituri. |
26 |
> > > > > |
27 |
> > > > > It can rip to flac (with optional cue files) and works from the |
28 |
> > > > > terminal, if you prefer that. |
29 |
> > > > > Additionally, it can adjust for drive read offsets when writing files, |
30 |
> > > > > and is one of the few Linux things I've found which check the rips |
31 |
> > > > > against AccurateRip. |
32 |
> > > > > |
33 |
> > > > > What's particularly nice about it is that it uses what little metadata |
34 |
> > > > > and such it can get from the CD to look it up in MusicBrainz and add |
35 |
> in |
36 |
> > > > > the title, artist, etc. |
37 |
> > > > > It also uses this to name the files according to album, artist, song |
38 |
> > > > > title, etc. |
39 |
> > > > > The template it uses to name the files and directories is relatively |
40 |
> > > > > configurable, as well. |
41 |
> > > > > |
42 |
> > > > > If you need more configurable tagging, cover art downloading, and such, |
43 |
> > > > > then look into Picard [2], which is in the main portage tree as |
44 |
> > > > > media-sound/picard. |
45 |
> > > > > It uses MusicBrainz [3] to get a whole bunch of metadata, tags, cover |
46 |
> > > > > art, and other stuff, and can rename files much more flexibly than |
47 |
> > > > > morituri. |
48 |
> > > > > |
49 |
> > > > > This is especially nice in combination with morituri, since morituri |
50 |
> > > > > saves the MusicBrainz ID into the metadata of the ripped files. |
51 |
> > > > > Normally, Picard looks files up by either the available metadata, or by |
52 |
> > > > > the acoustic fingerprint. |
53 |
> > > > > Since the MusicBrainz ID is already there, it immediately knows which |
54 |
> > > > > album it is (although it may have the wrong release if you want to be |
55 |
> > > > > that precise). |
56 |
> > > > > |
57 |
> > > > > The only caveats with Picard that I know of are that it's GUI only, it |
58 |
> > > > > can't embed full size cover art if the image is above some large |
59 |
> > > > > resolution, and I think that submitting extra fingerprints requires you |
60 |
> > > > > to register with AcoustID [4]. |
61 |
> > > > > Also, it's not an actual ripper. |
62 |
> > > > > It just works on the metadata and tags of flac, mp3, and maybe a few |
63 |
> > > > > other types. |
64 |
> > > > > |
65 |
> > > > > I personally like to rip with morituri, then polish the tagging and |
66 |
> get |
67 |
> > > > > the cover art with Picard. |
68 |
> > > > > |
69 |
> > > > > [1] http://thomas.apestaart.org/morituri/trac/wiki |
70 |
> > > > > [2] https://picard.musicbrainz.org/ |
71 |
> > > > > [3] https://musicbrainz.org/ |
72 |
> > > > > [4] https://acoustid.org/ |
73 |
> > > > |
74 |
> > > > In trying to emerge morituri from the overlay I get the folloing: |
75 |
> > > > |
76 |
> > > > make[1]: Entering directory |
77 |
> > > > '/var/tmp/portage/media-sound/morituri-0.2.3/work/morituri-0.2.3' |
78 |
> > > > if test -e ./.git; then make REVISION; fi |
79 |
> > > > make[1]: Leaving directory |
80 |
> > > > '/var/tmp/portage/media-sound/morituri-0.2.3/work/morituri-0.2.3' |
81 |
> > > > ** Message: pygobject_register_sinkfunc is deprecated (GstObject) |
82 |
> > > > Progress: |
83 |
> > > > 00:10 |
84 |
> > > > (null)*(null) (null)ACCESS DENIED(null): mkstemp: |
85 |
> > > > |
86 |
> > > |
87 |
> /run/user/0/orcexec.XXXXXX-------------------------------------------------------------------------] |
88 |
> > > > Building documentation: morituri.common.checksum |
89 |
> > > > (/var/tmp/portage/media- |
90 |
> > > sound/morituri-0.2.3/work/morituri-0.2.3/morituri/common/checksum.py) |
91 |
> > > > (gst-plugin-scanner:3783): GStreamer-CRITICAL **: |
92 |
> > > > gst_structure_empty_new: assertion 'gst_structure_validate_name (name)' |
93 |
> > > > failed |
94 |
> > > > |
95 |
> > > > (gst-plugin-scanner:3783): Clutter-CRITICAL **: Unable to initialize |
96 |
> > > > Clutter: Could not initialize Gdk |
97 |
> > > > ** Message: pygobject_register_sinkfunc is deprecated (GstObject) |
98 |
> > > > Warning: Unable to extract the base list for |
99 |
> > > > twisted.trial.unittest.TestDecorator: Bad dotted name |
100 |
> > > > Warning: Module gobject._gobject is shadowed by a variable with the same |
101 |
> > > > name. |
102 |
> > > > Warning: 18 markup errors were found while processing docstrings. Use |
103 |
> > > > the verbose switch (-v) to display markup errors. |
104 |
> > > > >>> Source compiled. |
105 |
> > > > (null)*(null) --------------------------- ACCESS VIOLATION SUMMARY |
106 |
> > > > --------------------------- |
107 |
> > > > (null)*(null) LOG FILE: "/var/log/sandbox/sandbox-3700.log" |
108 |
> > > > (null)*(null) |
109 |
> > > > VERSION 1.0 |
110 |
> > > > FORMAT: F - Function called |
111 |
> > > > FORMAT: S - Access Status |
112 |
> > > > FORMAT: P - Path as passed to function |
113 |
> > > > FORMAT: A - Absolute Path (not canonical) |
114 |
> > > > FORMAT: R - Canonical Path |
115 |
> > > > FORMAT: C - Command Line |
116 |
> > > > |
117 |
> > > > F: mkstemp |
118 |
> > > > S: deny |
119 |
> > > > P: /run/user/0/orcexec.XXXXXX |
120 |
> > > > A: /run/user/0/orcexec.XXXXXX |
121 |
> > > > R: /run/user/0/orcexec.XXXXXX |
122 |
> > > > C: /usr/lib64/gstreamer-0.10/gst-plugin-scanner -l |
123 |
> > > > (null)*(null) |
124 |
> > > > |
125 |
> > > |
126 |
> -------------------------------------------------------------------------------- |
127 |
> > > > |
128 |
> > > > >>> Failed to emerge media-sound/morituri-0.2.3, Log file: |
129 |
> > > > |
130 |
> > > > >>> '/var/log/portage/media-sound:morituri-0.2.3:20150907-233836.log' |
131 |
> > > > |
132 |
> > > > |
133 |
> > > > So, how can I fix or is this a dead package i.e. no maintainance? |
134 |
> > > > |
135 |
> > > > Thanks in advance for any ideas. |
136 |
> > > > |
137 |
> > > > |
138 |
> > > > |
139 |
> > > |
140 |
> > > If you trust the ebuild you can try emerging it with FEATURES="-sandbox" |
141 |
> or |
142 |
> > > add an exception for the temp directory on the ebuild. |
143 |
> > > |
144 |
> > > https://devmanual.gentoo.org/function-reference/sandbox-functions/ |
145 |
> > |
146 |
> > So, if I wanted to add addpredict /run where would I put it? Somewhere |
147 |
> > in the ebuild? I still tink its pretty funky. |
148 |
> > |
149 |
> > |
150 |
> |
151 |
> It looks like it's happening during the compile phase so at the top of |
152 |
> src_compile(). If it's a live (git) ebuild it's likely that it's an upstream |
153 |
> change since the ebuild was written. If a malicious ebuild wants to escape the |
154 |
> sandbox it's easy (clear LD_PRELOAD or load a dummy sandbox library) so it's |
155 |
> likely just bad practices. |
156 |
> |
157 |
> I don't know if addpredict will work but it's worth a try, in any case I think |
158 |
> it'll be harmless to write there (any user can do it). If there's no |
159 |
> src_compile() make it: |
160 |
> |
161 |
> src_compile() { |
162 |
> addpredict /run/user/0/ |
163 |
> default |
164 |
> } |
165 |
> |
166 |
> I don't remember if that's the right syntax for a directory, it may be |
167 |
> addpredict "/run/user/0/*" |
168 |
|
169 |
Well, I did get it to emerge, but it was very broke, like they never |
170 |
finished the thing, even valid commands would always give a traceback, |
171 |
so I got rid of the thing. |
172 |
|
173 |
Thanks anyway for all your help -- I learned something anyway. |
174 |
|
175 |
-- |
176 |
Your life is like a penny. You're going to lose it. The question is: |
177 |
How do |
178 |
you spend it? |
179 |
|
180 |
John Covici |
181 |
covici@××××××××××.com |