summaryrefslogtreecommitdiff
path: root/multimedia/glyr
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/glyr')
-rw-r--r--multimedia/glyr/README.html184
-rw-r--r--multimedia/glyr/glyr.SlackBuild37
-rw-r--r--multimedia/glyr/glyr.info10
3 files changed, 216 insertions, 15 deletions
diff --git a/multimedia/glyr/README.html b/multimedia/glyr/README.html
new file mode 100644
index 0000000000..5c77d8830e
--- /dev/null
+++ b/multimedia/glyr/README.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html><head><title>Glyr is a search engine for music related metadata</title></head><body><h1>Glyr is a search engine for music related metadata</h1>
+
+<p>The finest search you can buy for no money <sup>TM</sup></p>
+
+<p><img src="https://github.com/sahib/glyr/blob/master/doc/screenshot.png" alt="[screenshot]" /></p>
+
+It comes both in a command-line interface tool and as a C library, both with an easy to use interface.<br />
+The sort of metadata glyr is searching (and downloading) is usually the data you see in your musicplayer.<br />
+And indeed, originally it was written to serve as internally library for a musicplayer, but has been extended to <br />
+work as a standalone program which is able to download:<br />
+<p>
+<table border="1">
+<tr>
+<th>Getter</th><th>Description</th>
+</tr>
+<tr><td>cover</td><td>Coverart (front images supported only)</td></tr>
+<tr><td>lyrics</td><td>Songtext</td></tr>
+<tr><td>artistphotos</td><td>Photos of a certain band (press or live)</td></tr>
+<tr><td>artistbio</td><td>Artist biography from various sites</td></tr>
+<tr><td>review</td><td>album reviews from various sites</td></tr>
+<tr><td>albumlist</td><td>A list of albums from a specific artist.</td></tr>
+<tr><td>tags</td><td>Tags, either related to artist, album or title</td></tr>
+<tr><td>relations</td><td>links to wikipedia, myspace, musicbrainz ...</td></tr>
+<tr><td>similarartists</td><td>similar artists</td></tr>
+<tr><td>similarsongs</td><td>similar songs</td></tr>
+<tr><td>tracklist</td><td>tracklists of an album</td></tr>
+<tr><td>guitartabs</td><td>guitartabs in textual form</td></tr>
+<tr><td>backdrops</td><td> Large artist photos, suitable for backgrounds</td></tr>
+</table>
+</p>
+
+<p><strong>Terminology</strong>:<br />
+To prevent disambiguation the following terms are used below: <br />
+* <em>glyrc</em> is the command-line interface to libglyr.<br />
+* <em>libglyr</em> is the library behind, which may be used by your program.<br />
+* a <em>getter</em> is a type of metadata to download, e.g. <code>cover</code>, sometimes also called <em>fetcher</em><br />
+* a <em>provider</em> is a source libglyr queries in order to find the data.<br />
+* <em>glyros</em> is the ruby wrapper for this lib. Currently it is not maintained.</p>
+
+<h2><span class="caps">FEATURES</span></h2>
+
+<ul>
+<li>Many built-in providers (46 at time of writing, ~30 distinct sites), high success-rate (the longer the search, the higher the risk :))</li>
+<li>Portable: Windows and Linux are supported (Developement on Linux) see <sub><sup class="footnote"><a href="#fn1">1</a></sup></sub> for Mac <span class="caps">OSX, </span></li>
+<li>Fuzzy matching: Search providers with Levenshtein algorithm to eliminate typos and enhance search results.</li>
+<li>Decent Unicode support: All sort of valid <span class="caps">UTF8 </span>is taken, and UTf8 output can be forced.</li>
+<li>Fast Download: libcurl is used internally, and sources are searched in parallel, unneeded data is not downloaded if possible.</li>
+<li>Lightweight dependencies: libcurl, glib and sqlite (for caching) - typical linux systems have those installed.</li>
+<li>Download of a user defined amount of items, <code>glyrc cover -a Foo -b Bar -n 30</code> tries to load 30 covers of album &#39;Bar&#39; by artist &#39;Foo&#39;.</li>
+<li>Grouped download: Query providers by descending Accuray / Speed; controllable by the user over the <code>qsratio</code></li>
+<li>Optional download of images, <span class="caps">URL </span>is returned otherwise - so it can act a bit like a search-engine.</li>
+<li>Free Software licensed under the terms of the <span class="caps">GPL</span>v3</li>
+<li>libglyr is portable, easy, threadsafe and lowlevel enough for everyone.</li>
+<li>...lots of other options like min/max size for images.</li>
+<li>A built-in cache to store the metadata (using <span class="caps">SQL</span>ite)</li>
+</ul>
+
+<h2><span class="caps">GETTING STARTED</span></h2>
+
+<h3>Compiling</h3>
+
+<p>See the <a href="https://github.com/sahib/glyr/wiki/Compiling">compile page</a>.</p>
+
+<h3>libglyr:</h3>
+
+<p>See the <a href="https://github.com/sahib/glyr/wiki">examples in src/examples</a> for a quickstart.<br />
+There&#39;s also a more <a href="https://github.com/sahib/glyr/wiki/Introduction-to-libglyr">gentle (and brief) introduction.</a><br />
+Also see the <a href="http://sahib.github.com/glyr/doc/html/index.html"><span class="caps">API</span> Reference</a><br />
+<strong>Please note:</strong> Since version 1.0.0 the <span class="caps">API </span>will be stable, and will only be open for extensions.</p>
+
+<h3>glyrc:</h3>
+
+<p>Please refer to <code>glyrc -h</code> which gives you a brief introduction to the arguments you can pass,<br />
+See the <a href="https://github.com/sahib/glyr/wiki/Commandline-arguments">wiki</a> for more detailed information about the options.</p>
+
+<h2><span class="caps">FAQ</span></h2>
+
+<h3>Anyone using it already?</h3>
+
+<ul>
+<li><a href="http://gmpc.wikia.com/wiki/Gnome_Music_Player_Client"><span class="caps">GMPC</span></a></li>
+<li><a href="http://pragha.wikispaces.com/">Pragha</a></li>
+<li><a href="https://github.com/studentkittens/Freya">Freya</a></li>
+<li><a href="http://ok100.github.com/lyvi/">lyvi</a></li>
+</ul>
+
+<h3>Glyr.. such a silly name! Why? </h3>
+
+<p>Indeed. Should have named it &#39;Glyros&#39; (too late, damnit).</p>
+
+<h3>Is it hard to write something with it?</h3>
+
+<p>Some knowledge of C might be required, but the code is straight forward most of the time.</p>
+
+<p>Bash scripts are pretty straight-forward:<br />
+<code>glyrc cover --artist Equilibrium --album Sagas --write &#39;/tmp/:artist:_:album:.:format:&#39; --callback &#39;sxiv &quot;:path:&quot;&#39;</code></p>
+
+<p>Additionally there are bindings to Python and Ruby:</p>
+
+<ul>
+<li><a href="https://github.com/sahib/python-glyr">plyr</a> by me (complete <span class="caps">API</span>).</li>
+<li><a href="https://github.com/meh/ruby-glyr">ruby-glyr</a> by meh (complete <span class="caps">API</span>).</li>
+</ul>
+
+
+<h3>How..how am I supposed to use it?</h3>
+
+<p>Well, as normal user you could use <code>glyrc</code> to retrieve some metadata in a batchlike fashion.<br />
+As developers you have lots of option, you could write glyr-plugins for musicplayers (gmpc!), set up a webserver with this,<br />
+hack up little scripts showing covers on the desktop.. everything related to musicmetadat is possible here.<br />
+You could also extend libglyr itself but that&#39;s a little harder.</p>
+
+<h3>Isn&#39;t there musicbrainz already?</h3>
+
+<ol>
+<li>The kind of metadata downloaded by glyr differs heavily from musicbrainz.<br />
+i.e. glyr finds metadata for musicplayers while musicbrainz finds data for CD Rippers and taggers.</li>
+<li>Musicbrainz runs remotely on some server and uses a large database which is searched through lucene.<br />
+Glyr is a client program which hops over several sites and does not cache anything, unless you do it yourself.<br />
+You could of course let glyr run on a (remote) server, and cache all results to do something similiar.</li>
+<li>There is <a href="http://www.coverartarchive.org">coverarchive.org</a> , but it does not seem to fully work yet. But it will be accessible once it does.</li>
+</ol>
+
+<h2><span class="caps">AUTHOR</span></h2>
+
+<p>See the <span class="caps">AUTHORS </span>file that comes in glyr&#39;s distribution.<br />
+See also <span class="caps">COPYING </span>to know about your rights.</p>
+
+<h2>I <span class="caps">CAN HAZ HELP</span>?</h2>
+
+<h3><span class="caps">BUGS</span></h3>
+
+<p>If you found one: <em>Meh. Sorry for that.</em><br />
+If you file a bugreport: <em>Hey, thank you!</em></p>
+
+<p>Use the <a href="https://github.com/sahib/glyr/issues">Issue Tracker</a> to share your find.<br />
+Alternatively you may drop me a mail at <sahib@online.de></p>
+
+<h3><span class="caps">PATCHES</span></h3>
+
+<p>If you hacked one: Excellent! Send it to me via mail or see below.<br />
+If you want to add new providers you should look at the existing provider plugins to get an idea how to write one.<br />
+Starting with lib/cover/lastfm.c isn&#39;t a bad idea either, because it is one of the very simple ones.</p>
+
+<p><i>Take the usual Git(Hub) approach:</i><br />
+# Fork this project<br />
+# Make your changes<br />
+# Make a Pull request</p>
+
+<p>If you&#39;re not familiar with git, or just don&#39;t like it,<br />
+you can also send me the patch via mail: <sahib@online.de></p>
+
+<p>Thanks for any help in advance!</p>
+
+<h3><span class="caps">WRITE SOFTWARE THAT USES GLYR</span></h3>
+
+<p>May sound strange, but you&#39;re giving me a reason to maintain it, write new providers etc.<br />
+Also bugreports (well, there are no bugs, just in case) are appreciated, or just questions.<br />
+Those help to make the documentation more clear.</p>
+
+<h3><span class="caps">DONATE</span></h3>
+
+<p>You also might consider a small (CS-Students are already motivated by 1 Cent <img src="http://www.blendpolis.de/images/smilies/icon_wink.gif"/>) donation if you use feel like it:<a class="FlattrButton" style="display:none;" rev="flattr;button:compact;" href="https://github.com/sahib/glyr"></a><br />
+<noscript><a href="http://flattr.com/thing/302682/libglyr" target="_blank"><br />
+<img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a></noscript>
+(For now only possible via Flattr or <a href="http://sahib.github.com/donate.html">Paypal</a> , you gonna need an account there - Sorry)</p>
+
+<h2><span class="caps">DISCLAIMER</span></h2>
+
+<p>As usual, no warranty is granted that this software works like expected.<br />
+Refer to the <span class="caps">GPL</span>v3 copy you got with libglyr. It is <a href="https://github.com/sahib/glyr/blob/master/COPYING">here.</a><br />
+Glyr is just a way to find the data, it does not own any rights on the data it found.</p>
+
+<p><b>All retrieved items are copyrighted by their respective copyright owners.</b></p>
+
+<p>Refer to the provider&#39;s terms of use. Every item you get from libglyr contains the name and a url to the provider, so lookup there terms of use there.</p>
+
+<p><br /><br />
+<br /></p>
+
+
+
+<p>[1] Glyr has not been tested on Mac <span class="caps">OSX </span>yet. If you own a Mac, any help with &#39;porting&#39; glyr is highly appreciated. My guess would be that no to almost no changes need to be done though.</p></body></html> \ No newline at end of file
diff --git a/multimedia/glyr/glyr.SlackBuild b/multimedia/glyr/glyr.SlackBuild
index 264711b968..a9e51c8065 100644
--- a/multimedia/glyr/glyr.SlackBuild
+++ b/multimedia/glyr/glyr.SlackBuild
@@ -22,14 +22,24 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# Now maintained by B. Watson <yalhcru@gmail.com>
+
+# 20160817 bkw:
+# - take over maintenance
+# - update for 1.0.9
+# - i486 => i586
+# - fix SLKCFLAGS use
+# - add missing docs
+# - make install/strip
+
PRGNAM=glyr
-VERSION=${VERSION:-1.0.8}
+VERSION=${VERSION:-1.0.9}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +50,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -76,6 +86,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# upstream places -Os after the flags we provide, which undoes our -O2.
+sed -i "s,-Os,," CMakeLists.txt
+
mkdir -p build
cd build
cmake \
@@ -84,15 +97,19 @@ cd build
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DCMAKE_BUILD_TYPE=Release ..
- make
- make install DESTDIR=$PKG
+ make #VERBOSE=1 # in case you need to see the compile commands
+ make install/strip DESTDIR=$PKG
cd ..
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
+# README.html was generated from upstream's README.textile. include
+# pre-generated html file in build to avoid a dependency on
+# Formatter::HTML::Textile perl module. I could have generated plain
+# text, but the URLs don't show up in it. I didn't build the API
+# docs, but README.html has a link to them on the author's site.
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS CHANGELOG COPYING $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a AUTHORS CHANGELOG COPYING state_of_providers.txt \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/README.html > $PKG/usr/doc/$PRGNAM-$VERSION/README.html
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/multimedia/glyr/glyr.info b/multimedia/glyr/glyr.info
index 57c7b7f157..e4d7767192 100644
--- a/multimedia/glyr/glyr.info
+++ b/multimedia/glyr/glyr.info
@@ -1,10 +1,10 @@
PRGNAM="glyr"
-VERSION="1.0.8"
+VERSION="1.0.9"
HOMEPAGE="https://github.com/sahib/glyr"
-DOWNLOAD="https://github.com/sahib/glyr/archive/1.0.8.tar.gz"
-MD5SUM="05df602572495bf3cb2566d4ff933b9a"
+DOWNLOAD="https://github.com/sahib/glyr/archive/1.0.9.tar.gz"
+MD5SUM="8cc1dd613856b34cb82c49959ebc45c5"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
-MAINTAINER="Andrew Strong"
-EMAIL="andrew.david.strong@gmail.com"
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"