diff options
Diffstat (limited to 'multimedia')
-rw-r--r-- | multimedia/glyr/README.html | 184 | ||||
-rw-r--r-- | multimedia/glyr/glyr.SlackBuild | 37 | ||||
-rw-r--r-- | multimedia/glyr/glyr.info | 10 |
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 'Bar' by artist 'Foo'.</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'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 'Glyros' (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 '/tmp/:artist:_:album:.:format:' --callback 'sxiv ":path:"'</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's a little harder.</p> + +<h3>Isn'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'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'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're not familiar with git, or just don'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'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'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 'porting' 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" |