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 |