summaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
Diffstat (limited to 'audio')
-rw-r--r--audio/mp3val/README3
-rw-r--r--audio/mp3val/fix_compile_warnings.diff37
-rw-r--r--audio/mp3val/mp3val.1420
-rw-r--r--audio/mp3val/mp3val.SlackBuild75
-rw-r--r--audio/mp3val/mp3val.info10
-rw-r--r--audio/mp3val/mp3valgui.desktop8
-rw-r--r--audio/mp3val/mp3valgui.xpm213
7 files changed, 749 insertions, 17 deletions
diff --git a/audio/mp3val/README b/audio/mp3val/README
index e340e78181..ea3a3ca6d9 100644
--- a/audio/mp3val/README
+++ b/audio/mp3val/README
@@ -6,3 +6,6 @@ MP3val is also able to fix most of the problems.
The most common MPEG audio file type is MPEG 1 Layer III (mp3), but
MP3val supports also other MPEG versions and layers. The tool is also
aware of the most common types of tags (ID3v1, ID3v2, APEv2).
+
+This build includes mp3valgui, a graphical frontend for mp3val. If you
+don't need the frontend, set GUI=no in the script's environment.
diff --git a/audio/mp3val/fix_compile_warnings.diff b/audio/mp3val/fix_compile_warnings.diff
new file mode 100644
index 0000000000..ebe09e8d45
--- /dev/null
+++ b/audio/mp3val/fix_compile_warnings.diff
@@ -0,0 +1,37 @@
+diff -Naur mp3val-0.1.8-src/report.cpp mp3val-0.1.8-src.patched/report.cpp
+--- mp3val-0.1.8-src/report.cpp 2009-06-25 16:14:35.000000000 -0400
++++ mp3val-0.1.8-src.patched/report.cpp 2014-09-21 15:24:24.000000000 -0400
+@@ -25,9 +25,9 @@
+
+ extern bool bSuppressInfo;
+
+-int PrintMessage(ostream *out,char *caption,char *filename,char *message,int iErrorFrame);
++int PrintMessage(ostream *out,const char *caption,const char *filename,const char *message,int iErrorFrame);
+
+-int PrintReport(ostream *out,char *filename,MPEGINFO *mpginfo) {
++int PrintReport(ostream *out,const char *filename,MPEGINFO *mpginfo) {
+ int frame_types=0;
+ int mpeg_total;
+ int tags_total;
+@@ -228,7 +228,7 @@
+
+ }
+
+-int PrintMessage(ostream *out,char *caption,char *filename,char *message,int iErrorFrame) {
++int PrintMessage(ostream *out,const char *caption,const char *filename,const char *message,int iErrorFrame) {
+ (*out)<<caption<<": ";
+ if(iErrorFrame>=0) {
+ (*out)<<"\""<<filename<<"\" (offset 0x"<<hex<<iErrorFrame<<dec<<"): ";
+diff -Naur mp3val-0.1.8-src/report.h mp3val-0.1.8-src.patched/report.h
+--- mp3val-0.1.8-src/report.h 2009-06-25 16:14:38.000000000 -0400
++++ mp3val-0.1.8-src.patched/report.h 2014-09-21 15:24:15.000000000 -0400
+@@ -26,7 +26,7 @@
+
+ #include "mpegparse.h"
+
+-int PrintReport(ostream *out,char *filename,MPEGINFO *mpginfo);
+-int PrintMessage(ostream *out,char *caption,char *filename,char *message,int iErrorFrame);
++int PrintReport(ostream *out,const char *filename,MPEGINFO *mpginfo);
++int PrintMessage(ostream *out,const char *caption,const char *filename,const char *message,int iErrorFrame);
+
+ #endif
diff --git a/audio/mp3val/mp3val.1 b/audio/mp3val/mp3val.1
new file mode 100644
index 0000000000..b042753f9d
--- /dev/null
+++ b/audio/mp3val/mp3val.1
@@ -0,0 +1,420 @@
+.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "MP3VAL 1"
+.TH MP3VAL 1 "2014-09-22" "0.1.8" "SlackBuilds.org"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "MP3val 0.1.8: Documentation"
+.IX Header "MP3val 0.1.8: Documentation"
+.IP "1. Introduction" 4
+.IX Item "1. Introduction"
+.PD 0
+.IP "2. Why to use it?" 4
+.IX Item "2. Why to use it?"
+.IP "3. How to use it?" 4
+.IX Item "3. How to use it?"
+.IP "4. Interpreting the output" 4
+.IX Item "4. Interpreting the output"
+.IP "5. Licensing and copyright" 4
+.IX Item "5. Licensing and copyright"
+.PD
+.SS "1. Introduction."
+.IX Subsection "1. Introduction."
+MP3val is a small, high-speed tool for \s-1MPEG\s0 audio files validation and
+(optionally) fixing problems. It was primarily designed for
+verification of \s-1MPEG 1\s0 Layer \s-1III \s0(\s-1MP3\s0) files, but supports also other
+\&\s-1MPEG\s0 versions and layers. It can be useful for finding corrupted files
+(e.g. incompletely downloaded).
+.PP
+MP3val supports:
+.IP "\(bu" 4
+\&\s-1MPEG\-1, 2, 2.5\s0; Layers I, \s-1II, III\s0
+.IP "\(bu" 4
+ID3v1 tags (must be at the very end of the file)
+.IP "\(bu" 4
+ID3v2 tags (must be at the very beginning of the file)
+.IP "\(bu" 4
+APEv2 tags
+.PP
+This program can be compiled both for Windows and major Unix systems.
+.PP
+This program is free software; you can redistribute it and/or modify it
+under the terms of the \s-1GNU\s0 General Public License as published by the
+Free Software Foundation; either version 2 of the License, or (at your
+option) any later version.
+.PP
+The latest version of MP3val (including sources) can be downloaded from
+the official home page.
+.SS "2. Why to use it?"
+.IX Subsection "2. Why to use it?"
+\&\s-1MPEG\s0 is a streamable format, that is, it is optimized for quick and
+easy recovery from errors. \s-1MP3\s0 decoders are very tolerant to
+inconsistencies in the input file. Most players even don't report to
+user about stream errors. So, as a rule, user doesn't know whether his
+files are valid or broken. But using broken files can eventually lead
+to problems during playback on certain software/hardware.
+.PP
+MP3val can assure you that your files are consistent in the terms of
+\&\s-1MPEG\s0 frames, that is, it ensures that the file can be easily split into
+the frames and doesn't contain garbage. It checks also some other
+issues, such as track length stored in the \s-1VBR\s0 header. Checking by
+MP3val isn't a full test for compliance with existing formal and
+informal standards. MP3val neither decodes audio data nor checks for
+data validity in the frame.
+.PP
+MP3val can also fix most of the problems. Be careful: although MP3val
+can repair even files with \s-1MPEG\s0 stream errors, it is recommended that
+you find a \*(L"good\*(R" copy of this file, because a \*(L"click\*(R" sound usually
+can't be removed, the repaired file will only look like good.
+.SS "3. How to use it?"
+.IX Subsection "3. How to use it?"
+MP3val is a console program. Command-line syntax:
+.PP
+.Vb 1
+\& mp3val <files to validate> <options>
+.Ve
+.PP
+\&\fI<files to validate>\fR \- \s-1MPEG\s0 audio file(s) name(s). Can
+contain wildcards.
+.PP
+\&\fIOptions\fR:
+.PP
+\&\fBOption\fR
+.PP
+\&\fBDescription\fR
+.PP
+\&\-l\fI<log file>\fR
+.PP
+Log file name. If this argument is missing, all the information will be
+written to stdout.
+.PP
+\&\-f
+.PP
+Try to fix errors.
+.PP
+\&\-si
+.PP
+Suppress \s-1INFO\s0 messages.
+.PP
+\&\-nb
+.PP
+Delete .bak files that were created during file rebuilding. Use this
+option together with \-f.
+.PP
+\&\-t
+.PP
+Keep file timestamps. Use this option together with \-f.
+.PP
+\&\-p
+.PP
+Pipe mode (receive input file names from stdin). Intended for
+interaction with frontends. \fI<files to validate>\fR is ignored
+in this case.
+.PP
+\&\-v
+.PP
+Print version and exit
+.PP
+Example:
+.PP
+.Vb 1
+\& mp3val my_song.mp3 \-lout.log \-f
+.Ve
+.PP
+MP3val will give information about the file with the name specified.
+Any errors or inconsistencies will result in a \*(L"\s-1WARNING\*(R"\s0 message. This
+doesn't necessarily mean that the file is corrupted. See the next
+section for details. If the file doesn't look like a \s-1MPEG\s0 audio file,
+an \fI\*(L"\s-1ERROR:\s0 invalid file format\*(R"\fR message will be generated.
+.SS "4. Interpreting the output."
+.IX Subsection "4. Interpreting the output."
+\&\fB\s-1WARNING\s0 message\fR
+.PP
+\&\fBFixable?\fR
+.PP
+\&\fBComments\fR
+.PP
+\&\fIToo few \s-1MPEG\s0 frames (it's unlikely that this is a \s-1MPEG\s0 audio file)\fR
+.PP
+\&\-
+.PP
+Probably this is not a \s-1MPEG\s0 audio file, but MP3val has detected a
+couple of \s-1MPEG\s0 frames in it. Most likely this is a false positive.
+.PP
+\&\fIGarbage at the beginning of the file\fR
+.PP
++
+.PP
+There are some unknown data at the beginning of the file (before the
+first \s-1MPEG\s0 frame). It can be an unsupported tag with metadata, but in
+most cases it is only garbage. \*(L"Fixing\*(R" means here a removal of these
+data.
+.PP
+\&\fIGarbage at the end of the file\fR
+.PP
++
+.PP
+Like previous.
+.PP
+\&\fI\s-1MPEG\s0 stream error, resynchronized successfully\fR
+.PP
++
+.PP
+Normally, each \s-1MPEG\s0 frame must be followed by a next \s-1MPEG\s0 frame (or a
+metadata block), otherwise this message is generated. \s-1MPEG\s0 stream
+errors can be caused by garbage in the middle of the file (e.g. the
+file was split into several parts, the tags were appended, and then
+these parts were improperly merged) or by a data loss during transfer
+or storage. Note that \*(L"fixing\*(R" this error will remove garbage, but in
+most cases \*(L"fixed\*(R" file will not sound better, that's why it is
+strongly recommended to find a \*(L"good\*(R" copy of the file.
+.PP
+\&\fIThis is a \s-1RIFF\s0 file, not \s-1MPEG\s0 stream\fR
+.PP
++
+.PP
+A common way for storing a \s-1MPEG\s0 audio file is simply to write \s-1MPEG\s0
+frames one-by-one. \s-1MP1/MP2/MP3\s0 files are organized so. \s-1MPEG\s0 audio data
+can also be encapsulated in the \s-1RIFF\s0 container (better known as \s-1WAV\s0
+file). The \s-1RIFF\s0 container shouldn't be used unless the file has \*(L"\s-1WAV\*(R"\s0
+extension.
+.PP
+\&\fIIt seems that file is truncated or there is garbage at the end of the
+file\fR
+.PP
++
+.PP
+This message is generated when the length of the last frame (according
+to its header) is greater than the amount of data from its beginning to
+the end of the file. As a rule, it means that the file was truncated,
+however, there can be garbage at its end. \*(L"Fixing\*(R" means here a removal
+of the last frame.
+.PP
+\&\fIWrong number of \s-1MPEG\s0 frames specified in Xing header\fR
+.PP
++
+.PP
+\&\s-1MPEG\s0 audio files don't have any special header, each frame has its own
+header instead. However, it can cause problems when \*(L"seeking\*(R" in
+variable bitrate files, because a decoder can't determine the exact
+place in the file corresponding to the selected time. That's why a \*(L"\s-1VBR\s0
+header\*(R" is sometimes included in the first \s-1MPEG\s0 frame. This message is
+generated if this header contains false information about the total
+number of \s-1MPEG\s0 frames.
+.PP
+\&\fIWrong number of \s-1MPEG\s0 data bytes specified in Xing header\fR
+.PP
++
+.PP
+This message is generated when the Xing header contains false
+information about the total size of \s-1MPEG\s0 data in the file. See the
+previous message.
+.PP
+\&\fIWrong number of \s-1MPEG\s0 frames specified in \s-1VBRI\s0 header\fR
+.PP
++
+.PP
+Like with Xing header. \s-1VBRI\s0 is the other way to store \s-1VBR\s0 information
+in the first \s-1MPEG\s0 frame, but it seems to be used much more rarely.
+.PP
+\&\fIWrong number of \s-1MPEG\s0 data bytes specified in \s-1VBRI\s0 header\fR
+.PP
++
+.PP
+Like with Xing header. \s-1VBRI\s0 is the other way to store \s-1VBR\s0 information
+in the first \s-1MPEG\s0 frame, but it seems to be used much more rarely.
+.PP
+\&\fI\s-1VBR\s0 detected, but no \s-1VBR\s0 header is present. Seeking may not work
+properly\fR
+.PP
+\&\-
+.PP
+Files encoded with \s-1VBR\s0 should have a \s-1VBR\s0 header (either Xing or \s-1VBRI\s0),
+otherwise seeking can be broken. This will be fixable in the future
+versions.
+.PP
+\&\fIWrong \s-1CRC\s0 in ... frames\fR
+.PP
++
+.PP
+Some frames in the file are protected by \s-1CRC,\s0 but the checksum is
+wrong. It means that either the file was encoded or processed by broken
+software, or it was broken during storage or transmission. MP3val
+reports a number of frames with incorrect \s-1CRC,\s0 which can be used as a
+hint (if this number equals or is about the total number of frames,
+then it's likely due to a bad encoder). Note that only a minority of
+files is protected by \s-1CRC.\s0
+.PP
+\&\fINon-layer-III frame encountered\fR
+.PP
+\&\-
+.PP
+MP3val was primarily designed for \s-1MP3\s0 files. That's why it warns about
+\&\s-1MPEG\s0 frames with layers other than \s-1III.\s0 If it is an \s-1MP2\s0 or \s-1MP1\s0 file,
+this warning should be ignored. If you want to fix this issue, you
+should reencode the file.
+.PP
+\&\fIDifferent \s-1MPEG\s0 versions or layers in one file\fR
+.PP
+\&\-
+.PP
+Mixing different \s-1MPEG\s0 versions and/or layers in one file is not very
+good. As in the previous case, this issue can be fixed only by
+reencoding.
+.PP
+\&\fISeveral APEv2 tags in one file\fR
+.PP
++
+.PP
+Normally there would be only one APEv2 tag in the file.
+.PP
+\&\fINo supported tags in the file\fR
+.PP
+\&\-
+.PP
+This is only a warning. It's a good practice to store metadata in tags.
+.SS "5. Licensing and copyright"
+.IX Subsection "5. Licensing and copyright"
+Copyright (c) 2005\-2009 by Alexey Kuznetsov (ring0) and Eugen Tikhonov
+(jetsys).
+.PP
+This program is free software; you can redistribute it and/or modify it
+under the terms of the \s-1GNU\s0 General Public License as published by the
+Free Software Foundation; either version 2 of the License, or (at your
+option) any later version.
+.PP
+Contacts: mp3val at ring0 dot pp dot ru
diff --git a/audio/mp3val/mp3val.SlackBuild b/audio/mp3val/mp3val.SlackBuild
index 02a20b919a..8c52ef54bb 100644
--- a/audio/mp3val/mp3val.SlackBuild
+++ b/audio/mp3val/mp3val.SlackBuild
@@ -1,9 +1,23 @@
#!/bin/sh
+
# Written by Benjamin Trigona-Harany <slackbuilds@jaxartes.net>
+# Modified by B. Watson <yalhcru@gmail.com>
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# 20140921 bkw: bump BUILD to 2
+# - took over maintenance
+# - add man page
+# - add mp3valgui and GUI=no to disable it
+# - make SLKCFLAGS actually get used
+# - patch to fix -Wwrite-strings warnings, future-proofing since this may
+# become an error someday.
+# - minor script cleanups
+
PRGNAM=mp3val
VERSION=${VERSION:-0.1.8}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -35,29 +49,64 @@ fi
set -e
+SRCNAM=$PRGNAM-$VERSION-src
+
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION-src.tar.gz # source file comes with -src appended
-mv $PRGNAM-$VERSION-src $PRGNAM-$VERSION # .tar extracts to directory with -src appended
-cd $PRGNAM-$VERSION
-mv Makefile.linux Makefile
+rm -rf $SRCNAM
+tar xvf $CWD/$SRCNAM.tar.gz
+cd $SRCNAM
+# upstream's permissions are horrid, please don't change this to boilerplate
chown -R root:root .
chmod 644 *
-CXXFLAGS="$SLKCFLAGS" \
-make
-strip --strip-unneeded mp3val
+# this isn't strictly necessary for Slack 14.1, but at some point these
+# warnings might possibly become errors in some future version of gcc.
+patch -p1 < $CWD/fix_compile_warnings.diff
+make -f Makefile.linux CXXFLAGS="$SLKCFLAGS"
mkdir -p $PKG/usr/bin
-cp mp3val $PKG/usr/bin
+install -s -m0755 $PRGNAM $PKG/usr/bin
+
+# man page converted from manual.html with html2pod | pod2man
+mkdir -p $PKG/usr/man/man1
+gzip -9c < $CWD/$PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz
+
+# package the GUI unless disabled
+if [ "${GUI:-yes}" = "yes" ]; then
+ GUINAME=${PRGNAM}gui
+ GUIVER=${GUIVER:-0.1.1}
+ unzip $CWD/$GUINAME-$GUIVER.zip
+ cd $GUINAME
+
+ # damn thing expects to find its .glade file somewhere in $PATH or the
+ # current dir. Let's use /usr/share/mp3valgui/ instead.
+ sed -i \
+ '/gladefile *= *locate/s,=.*,= "/usr/share/'$GUINAME/$GUINAME.glade'",' \
+ $GUINAME.py
+
+ mkdir -p $PKG/usr/share/$GUINAME
+ install -m0755 $GUINAME.py $PKG/usr/bin/$GUINAME
+ cat $GUINAME.glade > $PKG/usr/share/$GUINAME/$GUINAME.glade
+
+ # .desktop taken from mandriva's mp3valgui-0.1.1-1mdv2007.1.noarch.rpm
+ # and modified.
+ mkdir -p $PKG/usr/share/applications
+ cat $CWD/$GUINAME.desktop > $PKG/usr/share/applications/$GUINAME.desktop
+
+ # .xpm icon is a modified copy of windowmaker's Microphone.xpm
+ mkdir -p $PKG/usr/share/pixmaps
+ cat $CWD/$GUINAME.xpm > $PKG/usr/share/pixmaps/$GUINAME.xpm
+
+ mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/$GUINAME-$GUIVER
+ cp -a AUTHORS COPYING NEWS $PKG/usr/doc/$PRGNAM-$VERSION/$GUINAME-$GUIVER
+ cd -
+fi
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a \
- changelog.txt manual.html \
- $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a changelog.txt manual.html $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/audio/mp3val/mp3val.info b/audio/mp3val/mp3val.info
index 44d9cca4f3..5d16590ee7 100644
--- a/audio/mp3val/mp3val.info
+++ b/audio/mp3val/mp3val.info
@@ -1,10 +1,12 @@
PRGNAM="mp3val"
VERSION="0.1.8"
HOMEPAGE="http://mp3val.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/mp3val/mp3val-0.1.8-src.tar.gz"
-MD5SUM="dc8adad909d0b8734ed22029b2de2cb4"
+DOWNLOAD="http://downloads.sourceforge.net/mp3val/mp3val-0.1.8-src.tar.gz \
+ http://downloads.sourceforge.net/mp3val/mp3valgui-0.1.1.zip"
+MD5SUM="dc8adad909d0b8734ed22029b2de2cb4 \
+ 8590c146ff5daf3754720edaef3845e4"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
-MAINTAINER="Benjamin Trigona-Harany"
-EMAIL="slackbuilds@jaxartes.net"
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
diff --git a/audio/mp3val/mp3valgui.desktop b/audio/mp3val/mp3valgui.desktop
new file mode 100644
index 0000000000..f001d136f9
--- /dev/null
+++ b/audio/mp3val/mp3valgui.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=MP3val
+Comment=Validate and fix MPEG audio files
+Exec=mp3valgui
+Icon=mp3valgui
+Terminal=false
+Type=Application
+Categories=Audio;AudioVideo;
diff --git a/audio/mp3val/mp3valgui.xpm b/audio/mp3val/mp3valgui.xpm
new file mode 100644
index 0000000000..db2f75a1b7
--- /dev/null
+++ b/audio/mp3val/mp3valgui.xpm
@@ -0,0 +1,213 @@
+/* XPM */
+static char * mp3valgui_xpm[] = {
+"48 48 162 2",
+" c None",
+". c #BBAADD",
+"+ c #9999BB",
+"@ c #887799",
+"# c #556677",
+"$ c #AAAABB",
+"% c #AAAADD",
+"& c #EEFFFF",
+"* c #666688",
+"= c #778899",
+"- c #444466",
+"; c #000033",
+"> c #BBAACC",
+", c #BBBBCC",
+"' c #665588",
+") c #000022",
+"! c #226677",
+"~ c #336677",
+"{ c #AABBDD",
+"] c #FFFFFF",
+"^ c #112255",
+"/ c #226666",
+"( c #335577",
+"_ c #FFEEFF",
+": c #AABBCC",
+"< c #666677",
+"[ c #223355",
+"} c #333355",
+"| c #336666",
+"1 c #DDDDFF",
+"2 c #776699",
+"3 c #332255",
+"4 c #112233",
+"5 c #110033",
+"6 c #EEEEFF",
+"7 c #DDEEFF",
+"8 c #BBBBDD",
+"9 c #8899AA",
+"0 c #334466",
+"a c #222255",
+"b c #001133",
+"c c #335588",
+"d c #EEDDFF",
+"e c #8888AA",
+"f c #554477",
+"g c #223344",
+"h c #111133",
+"i c #225577",
+"j c #445566",
+"k c #335566",
+"l c #9988AA",
+"m c #225566",
+"n c #445588",
+"o c #CCCCEE",
+"p c #443366",
+"q c #222244",
+"r c #112244",
+"s c #556688",
+"t c #557799",
+"u c #AAAACC",
+"v c #99AACC",
+"w c #667788",
+"x c #111144",
+"y c #223377",
+"z c #667799",
+"A c #334477",
+"B c #444488",
+"C c #777799",
+"D c #554466",
+"E c #333344",
+"F c #221144",
+"G c #7788AA",
+"H c #114466",
+"I c #224466",
+"J c #222266",
+"K c #002244",
+"L c #224477",
+"M c #555588",
+"N c #666699",
+"O c #DDDDDD",
+"P c #224455",
+"Q c #CCBBDD",
+"R c #223366",
+"S c #DDEEEE",
+"T c #BBBBEE",
+"U c #776688",
+"V c #333366",
+"W c #555577",
+"X c #111155",
+"Y c #6666AA",
+"Z c #DDDDEE",
+"` c #AABBBB",
+" . c #7777AA",
+".. c #445577",
+"+. c #FF0000",
+"@. c #FE0000",
+"#. c #A41E34",
+"$. c #9999AA",
+"%. c #BD1520",
+"&. c #722E46",
+"*. c #DD0A10",
+"=. c #4E3A66",
+"-. c #D10E16",
+";. c #9D6C78",
+">. c #F01A20",
+",. c #F80102",
+"'. c #D6020B",
+"). c #4F183E",
+"!. c #7B2B41",
+"~. c #B2192C",
+"{. c #4D3A58",
+"]. c #DA0C15",
+"^. c #333377",
+"/. c #513956",
+"(. c #BA1225",
+"_. c #FA1519",
+":. c #CD869F",
+"<. c #797394",
+"[. c #63172F",
+"}. c #E30105",
+"|. c #3D3070",
+"1. c #EA060A",
+"2. c #353264",
+"3. c #8A1C43",
+"4. c #992132",
+"5. c #8E1B40",
+"6. c #762D44",
+"7. c #B61824",
+"8. c #EA060B",
+"9. c #A76F88",
+"0. c #697383",
+"a. c #6A253D",
+"b. c #E40408",
+"c. c #C20F23",
+"d. c #67324B",
+"e. c #C7121B",
+"f. c #582960",
+"g. c #6B3049",
+"h. c #DD0A13",
+"i. c #AC6874",
+"j. c #F82225",
+"k. c #99AABB",
+"l. c #FD0000",
+"m. c #7B2036",
+"n. c #741535",
+"o. c #F05664",
+"p. c #CCD7E8",
+"q. c #9A94B5",
+"r. c #FB0506",
+"s. c #778798",
+"t. c #894D67",
+"u. c #EE0508",
+"v. c #604F6E",
+"w. c #EE1316",
+"x. c #ED191E",
+"y. c #F31318",
+"z. c #9A6370",
+"A. c #685374",
+"B. c #6D243C",
+"C. c #DF0006",
+"D. c #99AAAA",
+"E. c #F4383C",
+" ",
+" ",
+" ",
+" ",
+" ",
+" . + @ # @ $ ",
+" % & * = - ; * # ",
+" > , * , ' , * ) ; , ",
+" ! ~ ! ~ ! ~ ! ~ { ] & * ; ; ) * ; ^ ! ~ ! ~ ! ~ ",
+" ~ / ( / ~ / ( / _ # ' , * , ' ) * ) ( / ~ / ( / ",
+" / ~ ! ~ / ~ ! ~ : ] & * ) ; ; * ) ; ! ~ / ~ ! ~ ",
+" ( / ~ / ( / ~ / _ < * , ' , * ) ' ) ~ / ( / ~ / ",
+" ! ~ ! ~ ! ~ ! ~ { ] & * ; ; ) * ; ; ! ~ ! ~ ! ~ ",
+" ~ / ( / ~ / ( / _ # ' , * , ' ) * ) ( / ~ / ( / ",
+" / ~ ! ~ / ~ ! ~ : ] & * ) ; ; * ) ; ! ~ / ~ ! ~ ",
+" ( / ~ / ( / ~ / _ < * , ' , * ) ' ) ~ / ( / ~ / ",
+" ! ~ ! ~ & ; ! ~ { ] & * ; ; ) * ; ; ! ~ ; ~ ! ~ ",
+" ~ / ( / _ ) ( / _ # ' , * , ' ) * ) ( / ; / ( / ",
+" / ~ ! ~ & ; ; ; & ] & * ) ; [ } ) ; ; ; ) ~ ! ~ ",
+" ( | ( / _ ) ( / _ & 1 $ 2 < 3 4 5 ) ( / ; / ( / ",
+" ! ~ / ( & ; / ( & 6 7 8 9 * 0 a b ; / c ; ~ / ( ",
+" ( / ( | _ ) ( | _ & d : e # f g h ) ( i ; / ( | ",
+" / ( / ( & ; / ( & 6 7 8 9 * j } b ; ! c ) ( ! ( ",
+" ( k ( | _ ) ( | _ & 1 : l < f g 5 ) ( ( ; k ( | ",
+" ! ( m ( & ; m ( 7 6 7 8 9 * j a b ; m n ; ( / ( ",
+" ( k ( k _ ) ( k o 6 d , e < p q ; r ( s ; k ( k ",
+" m ( m ( & ; m ( t u v + w f [ x ) y m z ) ( m ( ",
+" A k ( k _ } ( k B = C # D E F h F k ( G ; k ( k ",
+" k ( m ( { C H ( k ( I J r ; K J L ( m M r ( m ( ",
+" A k A k N O a P A k A k A k A k A k Q r R k A k ",
+" m A k A m 8 S [ I A k A m A k A m T # ^ m A k ( ",
+" 0 k A k 0 k 8 9 U j [ P V k n z Q W X R 0 k A k ",
+" k A k A k A k Y t e = u Z Z ` ...^ R A k A k A ",
+" A 0 A 0 A 0 A 0 A R a r x r F r J 0 A 0 A 0 A 0 ",
+" 0 A k A I A k A I A k + # x k A I A k A I A k A ",
+" +.@. V 0 #.+.0 0 A 0 0 0 A $.* h A 0 %.&.A 0 0 *.=.0 +. ",
+" +.@. 0 A -.+.0 A 0 A 0 A ;.>.,.'.).A !.~.0 A {.].0 A +. ",
+" +.@. ^./.(.+.^.0 p 0 ^.G _.:.<.[.}.a |.1.2.0 3.4.V 0 +. ",
+" +. 0 5.6.+.0 +.7.8.9.o & u 0.a.b.h ^ c.d.A e.f.g.h.@.@. +. ",
+" +. @. @. +. +. i.j.] Q k.l.l.m.4 5 n.o. @. @. @. +. ",
+" +. @. @. +. +.p.q.r.1 : + s.t.u.a r v.w. @. @.@.@.+. +. ",
+" +. @. +. +. x.9 y.z.A.B.C.a ' D.E.@. @. +. +. ",
+" +. +. +. +.@.@. @.@.@. @. @.@. @.@.+. ",
+" +. ",
+" ",
+" ",
+" ",
+" "};