summaryrefslogtreecommitdiff
path: root/audio/gmusicbrowser
diff options
context:
space:
mode:
Diffstat (limited to 'audio/gmusicbrowser')
-rw-r--r--audio/gmusicbrowser/README22
-rw-r--r--audio/gmusicbrowser/gmusicbrowser.SlackBuild34
-rw-r--r--audio/gmusicbrowser/gmusicbrowser.info12
-rw-r--r--audio/gmusicbrowser/shimmer-layouts335
-rw-r--r--audio/gmusicbrowser/slack-desc8
-rw-r--r--audio/gmusicbrowser/superfluous-my36
6 files changed, 421 insertions, 26 deletions
diff --git a/audio/gmusicbrowser/README b/audio/gmusicbrowser/README
index 86d22dbd03..0bf7d9ca46 100644
--- a/audio/gmusicbrowser/README
+++ b/audio/gmusicbrowser/README
@@ -1,9 +1,17 @@
-gmusicbrowser is an open-source jukebox, written in perl,
-for large collections of mp3/ogg/flac/mpc files.
+gmusicbrowser (open-source jukebox for large collections)
-The following additional features may be enabled by installing the listed
-optional dependencies:
+Customizable open-source jukebox for large collections.
-* tray icon, with a very customizable tip window, which can be used to
-control the player: perl-trayicon
-* support gstreamer for playback: perl-gstreamer
+Optional dependencies:
+
+ * gst-plugins-bad: mpc support for the gstreamer backend;
+ * gst-plugins-ugly: mp3 support for the gstreamer backend;
+ * gst0-plugins-bad: mpc support for the gstreamer0.10 backend;
+ * gst0-plugins-ugly: mp3 support for the gstreamer0.10 backend;
+ * perl-Glib-Object-Introspection: enables the gstreamer backend;
+ * perl-gstreamer: enables the old gstreamer0.10 backend;
+ * perl-Gtk2-Notify: show notifications using libnotify;
+ * perl-trayicon: tray icon support;
+ * perl-html-parser: support for accented characters in lyrics plugin;
+ * mpv: enables the mpv backend;
+ * flac123: flac support for the ALSA backend.
diff --git a/audio/gmusicbrowser/gmusicbrowser.SlackBuild b/audio/gmusicbrowser/gmusicbrowser.SlackBuild
index 83d9b09f3e..71aae8b934 100644
--- a/audio/gmusicbrowser/gmusicbrowser.SlackBuild
+++ b/audio/gmusicbrowser/gmusicbrowser.SlackBuild
@@ -1,9 +1,10 @@
#!/bin/sh
-
-# Slackware build script for gmusicbrowser
-
+#
+# Slackware build script for gmusicbrowser.
+#
# (C) 2007 Michael Wagner <lapinours@web.de>
-# (C) 2014, 2015 chinarulezzz <s.alex08@mail.ru>
+# (C) 2014, 2015-2017 chinarulezzz <s.alex08@mail.ru>
+# Copyright 2017 Edinaldo P. Silva, Rio de Janeiro, Brazil.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,13 +25,13 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=gmusicbrowser
-VERSION=${VERSION:-1.1.14}
+VERSION=${VERSION:-1.1.15}
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
@@ -41,13 +42,29 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
set -e
+
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar -xzvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
+
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -55,8 +72,8 @@ 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 {} \;
-# We don't have MARKDOWN by default for mkd to html convertation
-sed -i -r 's/(DOCS=.*)(layout_doc).html/\1\2.mkd/' Makefile
+patch -p1 < $CWD/shimmer-layouts
+patch -p1 < $CWD/superfluous-my
make DESTDIR=$PKG install
@@ -66,7 +83,6 @@ for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; r
mv $PKG/usr/share/doc $PKG/usr/doc
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-chmod 644 $PKG/usr/doc/$PRGNAM-$VERSION/*
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/audio/gmusicbrowser/gmusicbrowser.info b/audio/gmusicbrowser/gmusicbrowser.info
index f8313429c2..68fee455d0 100644
--- a/audio/gmusicbrowser/gmusicbrowser.info
+++ b/audio/gmusicbrowser/gmusicbrowser.info
@@ -1,10 +1,10 @@
PRGNAM="gmusicbrowser"
-VERSION="1.1.14"
+VERSION="1.1.15"
HOMEPAGE="http://gmusicbrowser.org"
-DOWNLOAD="http://gmusicbrowser.org/download/gmusicbrowser-1.1.14.tar.gz"
-MD5SUM="8eb2d3f22e0734a7f5efbf4f0b2bd71e"
+DOWNLOAD="http://gmusicbrowser.org/download/gmusicbrowser-1.1.15.tar.gz"
+MD5SUM="4a16dcbe369d4b3cb78fb1a6967a60b3"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="perl-gtk2"
-MAINTAINER="chinarulezzz"
-EMAIL="s.alex08@mail.ru"
+REQUIRES="perl-gtk2 perl-net-dbus Markdown"
+MAINTAINER="Edinaldo P. Silva"
+EMAIL="edps@mundognu@gmail.com"
diff --git a/audio/gmusicbrowser/shimmer-layouts b/audio/gmusicbrowser/shimmer-layouts
new file mode 100644
index 0000000000..a90023f984
--- /dev/null
+++ b/audio/gmusicbrowser/shimmer-layouts
@@ -0,0 +1,335 @@
+From acc72078ea6db95174726ebc6f720abf96baca7c Mon Sep 17 00:00:00 2001
+From: Sean Davis <smd.seandavis@gmail.com>
+Date: Wed, 28 Aug 2013 19:14:00 -0400
+Subject: [PATCH] shimmer-layouts update
+
+---
+ gmbrc.default | 10 ++++++++
+ gmusicbrowser.pl | 6 ++--
+ gmusicbrowser_layout.pm | 15 +++++++++++-
+ gmusicbrowser_list.pm | 34 ++++++++++++++++++++++-----
+ layouts/songtree.layout | 59 +++++++++++++++++++++++++++++++++++++++++++++---
+ plugins/fetch_cover.pm | 4 ++-
+ 6 files changed, 114 insertions(+), 14 deletions(-)
+
+Index: gmusicbrowser/gmbrc.default
+===================================================================
+--- gmusicbrowser.orig/gmbrc.default
++++ gmusicbrowser/gmbrc.default
+@@ -10,8 +10,17 @@
+ PLUGIN_LYRICS: 1
+ PLUGIN_FETCHCOVER: 1
+ PLUGIN_AUTOSAVE: 1
++PLUGIN_ARTISTINFO: 1
+ PLUGIN_MPRIS2: 1
+
++UseTray: 0
++
++Layout: Shimmer Desktop
++IconTheme: elementary
++LayoutT: Shimmer Traytip
++LayoutF: Shimmer Party
++
++
+ # default player layout
+ #Layout: Small player
+ # default browser layout
+Index: gmusicbrowser/gmusicbrowser.pl
+===================================================================
+--- gmusicbrowser.orig/gmusicbrowser.pl
++++ gmusicbrowser/gmusicbrowser.pl
+@@ -626,9 +626,9 @@ our @cMenuAA=
+ ( { label => _"Lock", code => sub { ToggleLock($_[0]{lockfield}); }, check => sub { $::TogLock && $::TogLock eq $_[0]{lockfield}}, mode => 'P',
+ test => sub { $_[0]{field} eq $_[0]{lockfield} || $_[0]{gid} == Songs::Get_gid($::SongID,$_[0]{lockfield}); },
+ },
+- { label => _"Lookup in AMG", code => sub { AMGLookup( $_[0]{mainfield}, $_[0]{aaname} ); },
+- test => sub { $_[0]{mainfield} =~m/^album$|^artist$|^title$/; },
+- },
++ #{ label => _"Lookup in AMG", code => sub { AMGLookup( $_[0]{mainfield}, $_[0]{aaname} ); },
++ # test => sub { $_[0]{mainfield} =~m/^album$|^artist$|^title$/; },
++ #},
+ { label => _"Filter", code => sub { Select(filter => Songs::MakeFilterFromGID($_[0]{field},$_[0]{gid})); }, stockicon => 'gmb-filter', mode => 'P' },
+ { label => \&SongsSubMenuTitle, submenu => \&SongsSubMenu, },
+ { label => sub {$_[0]{mode} eq 'P' ? _"Display Songs" : _"Filter"}, code => \&FilterOnAA,
+Index: gmusicbrowser/gmusicbrowser_layout.pm
+===================================================================
+--- gmusicbrowser.orig/gmusicbrowser_layout.pm
++++ gmusicbrowser/gmusicbrowser_layout.pm
+@@ -7,6 +7,7 @@
+
+ use strict;
+ use warnings;
++use utf8;
+
+ package Layout;
+
+@@ -260,6 +261,7 @@ our %Widgets=
+ { class => 'Layout::Label',
+ group => 'Play',
+ minsize => 20,
++ options => 'showcover',
+ markup => '<b><big>%S</big></b>%V',
+ markup_empty => '<b><big>&lt;'._("Playlist Empty").'&gt;</big></b>',
+ click1 => \&PopupSongsFromAlbum,
+@@ -283,6 +285,10 @@ our %Widgets=
+ dragsrc => [::DRAG_ARTIST,\&DragCurrentArtist],
+ cursor => 'hand2',
+ },
++ ArtistBreadcrumb =>
++ { parent => 'Artist',
++ click1 => sub { my $ID=::GetSelID($_[0]); ::PopupAA( 'album', format=> ::__x( _"<big><b>{album}</b></big>\n{year} / {songs}", album => "%a", year => "%y", songs => "%s"), from=> Songs::Get_gid($ID,'artists')) if defined $ID; },
++ },
+ Album =>
+ { class => 'Layout::Label',
+ group => 'Play',
+@@ -293,6 +299,10 @@ our %Widgets=
+ dragsrc => [::DRAG_ALBUM,\&DragCurrentAlbum],
+ cursor => 'hand2',
+ },
++ AlbumBreadcrumb =>
++ { parent => 'Album',
++ click1 => \&PopupSongsFromAlbum,
++ },
+ Year =>
+ { class => 'Layout::Label',
+ group => 'Play',
+@@ -387,6 +397,7 @@ our %Widgets=
+ group => 'Play',
+ aa => 'album',
+ oldopt1 => 'maxsize',
++ options => 'showcover',
+ schange => sub { my $key=(defined $_[1])? Songs::Get_gid($_[1],'album') : undef ; $_[0]->set($key); },
+ click1 => \&PopupSongsFromAlbum,
+ click3 => sub { my $ID=::GetSelID($_[0]); ::PopupAAContextMenu({self =>$_[0], field=>'album', ID=>$ID, gid=>Songs::Get_gid($ID,'album'), mode => 'P'}) if defined $ID; },
+@@ -403,6 +414,7 @@ our %Widgets=
+ oldopt1 => 'maxsize',
+ schange => sub { my $key=(defined $_[1])? Songs::Get_gid($_[1],'artists') : undef ;$_[0]->set($key); },
+ click1 => sub { ::PopupAA('artist'); },
++ click3 => sub { my $ID=::GetSelID($_[0]); ::PopupAAContextMenu({self =>$_[0], field=>'artist', ID=>$ID, gid=>Songs::Get_gid($ID,'artist'), mode => 'P'}) if defined $ID; },
+ event => 'Picture_artist',
+ update => \&Layout::AAPicture::Changed,
+ noinit => 1,
+@@ -1670,7 +1682,7 @@ use base 'Gtk2::Window';
+ sub new
+ { my ($class,$layout,%options)=@_;
+ my @original_args=@_;
+- my $fallback=delete $options{fallback} || 'Lists, Library & Context';
++ my $fallback=delete $options{fallback} || 'Shimmer Desktop';
+ my $opt0={};
+ if (my $opt= $layout=~m/^[^(]+\(.*=/)
+ { ($layout,$opt0)= $layout=~m/^([^(]+)\((.*)\)$/; #separate layout id and options
+Index: gmusicbrowser/gmusicbrowser_list.pm
+===================================================================
+--- gmusicbrowser.orig/gmusicbrowser_list.pm
++++ gmusicbrowser/gmusicbrowser_list.pm
+@@ -196,8 +196,8 @@ sub Update
+ if (!$array) { $tip=$text=_"error"; }
+ else { $text.= ::CalcListLength($array,$self->{format}); }
+ my $format= $self->{size} ? '<span size="'.$self->{size}.'">%s</span>' : '%s';
+- $self->child->set_markup_with_format($format,$text);
+- $self->set_tooltip_text($tip);
++ if ($self->{mode} eq "filter") { $self->child->set_markup_with_format($format,$text); $self->set_tooltip_text($tip); }
++ else { $self->child->set_markup_with_format($format,$tip); $self->set_tooltip_text($text); }
+ $self->{needupdate}=0;
+ }
+
+@@ -225,7 +225,7 @@ sub filter_Update
+ { my $self=shift;
+ my $filter=::GetFilter($self);
+ my $array=$filter->filter;
+- return _("Filter : "), $array, $filter->explain;
++ return _("Filter : "), $array, ("Filter: ".$filter->explain);
+ }
+
+ ### list functions
+@@ -244,7 +244,7 @@ sub list_SongArray_changed
+ sub list_Update
+ { my $self=shift;
+ my $array=::GetSongArray($self) || return;
+- return _("Listed : "), $array, ::__n('%d song','%d songs',scalar@$array);
++ return _("Listed : "), $array, ::__n('%d song listed','%d songs listed',scalar@$array);
+ }
+
+ ### selected functions
+@@ -1593,6 +1593,7 @@ our %Pages=
+ our @MenuMarkupOptions=
+ ( "%a",
+ "<b>%a</b>%Y\n<small>%s <small>%l</small></small>",
++ "<b>%a</b>%Y\n<small>%x / %s / <small>%l</small></small>",
+ "<b>%a</b>%Y\n<small>%b</small>",
+ "<b>%a</b>%Y\n<small>%b</small>\n<small>%s <small>%l</small></small>",
+ "<b>%y %a</b>",
+@@ -1609,6 +1610,7 @@ my @mpicsize_menu=
+ _("medium size") => 64,
+ _("big size") => 96,
+ _("huge size") => 128,
++ _("giant size") => 256,
+ );
+ my @cloudstats_menu=
+ ( _("number of songs") => 'count',
+@@ -3360,7 +3362,7 @@ sub new
+ my $BAlblist=::NewIconButton('gmb-playlist',undef,undef,'none');
+ $BAlblist->signal_connect(button_press_event => \&AlbumListButton_press_cb);
+ $BAlblist->set_tooltip_text(_"Choose Album From this Artist");
+- $buttonbox->pack_start($BAlblist, ::FALSE, ::FALSE, 0);
++ $buttonbox->pack_start($_, ::FALSE, ::FALSE, 0) for $BAlblist;
+ }
+
+ my $drgsrc=$aa eq 'album' ? ::DRAG_ALBUM : ::DRAG_ARTIST;
+@@ -4701,6 +4703,16 @@ sub button_press_cb
+ else { $self->{pressed}=1; }
+ return 0;
+ }
++ if ($but==2)
++ { my ($i,$j,$key)=$self->coord_to_index($event->get_coords);
++ if (defined $key && !exists $self->{selected}{$key})
++ { $self->key_selected($event,$i,$j);
++ }
++ my $menu = ::ChooseSongsFromA($key);
++ my $event = Gtk2->get_current_event;
++ $menu->show_all;
++ $menu->popup(undef,undef,undef,undef,$event->button,$event->time);
++ }
+ if ($but==3)
+ { my ($i,$j,$key)=$self->coord_to_index($event->get_coords);
+ if (defined $key && !exists $self->{selected}{$key})
+@@ -5624,7 +5636,7 @@ sub new
+ my $default= $::Options{"DefaultOptions_$name"} || {};
+
+ %$opt=( @DefaultOptions, %$default, %$opt );
+- $self->{$_}=$opt->{$_} for qw/headclick songxpad songypad no_typeahead grouping/;
++ $self->{$_}=$opt->{$_} for qw/headclick songxpad songypad no_typeahead grouping showbb/;
+
+ #create widgets used to draw the songtree as a treeview, would be nice to do without but it's not possible currently
+ $self->{stylewidget}=Gtk2::TreeView->new;
+@@ -5687,6 +5699,16 @@ sub new
+ $self->AddColumn($_) for split / +/,$opt->{cols};
+ unless ($self->{cells}) { $self->AddColumn('title'); } #to ensure there is at least 1 column
+
++ if ($self->{showbb}) { # show queue actions in QueueList if option showbb is set
++ my $qactions = Layout::NewWidget("QueueActions");
++ my $clearb = ::NewIconButton('gtk-clear',"",\&::ClearQueue,"none","Clear Queue");
++ my $shuffleb = ::NewIconButton('gmb-shuffle',"",\&::ShuffleQueue,"none","Shuffle Queue");
++ my $bbox = Gtk2::HBox->new(0,0);
++ $bbox->pack_start($qactions,0,0,0);
++ $bbox->pack_end($clearb,0,0,0);
++ $bbox->pack_end($shuffleb,0,0,0);
++ $vbox->pack_end($bbox,0,0,0);
++ }
+ $self->{selected}='';
+ $self->{lastclick}=$self->{startgrow}=-1;
+ $self->set_head_columns;
+Index: gmusicbrowser/layouts/songtree.layout
+===================================================================
+--- gmusicbrowser.orig/layouts/songtree.layout
++++ gmusicbrowser/layouts/songtree.layout
+@@ -1,6 +1,37 @@
+ #SongTree Group & Columns definitions
+ #####################################
+
++{Group Compact}
++title=Compact
++head=pic:h
++tail=25
++vcollapse=head
++vmin=pic:y+pic:h+25
++title: text(markup='<b><big>'.pesc($album).'</big></b>'. if($year,'\n'.pesc($year)) . '\n'.pesc($artist),pad=2,x=pic:w)
++pic: aapic(y=title:y,picsize=picsize,ypad=2,xpad=1,aa='album')
++picsize : OptionNumber(default=50,min=20,max=1000,step=10)
++
++{Group discleft}
++title=disc on the left side
++head=3
++left=width
++vcollapse=head+title:h+line:h+2
++title: text(markup='<b><big>'.pesc($title).'</big></b>'.if(!$_expanded,'<big><b>»</b></big>'),pad=2,w=left))
++width: OptionNumber(default=15,min=10,max=100,step=1)
++line: line(x1=1,y1=1,x2=$_w,y2=1,color='#ccc',width=1)
++
++{Group artistalbum_breadcrumbs}
++title=album and artist breadcrumbs
++head=title:h
++tail=25
++vcollapse=head
++vmin=pic:y+pic:h+25
++left=pic:w+2
++title: text(markup='<b><big>'.pesc($album).'</big></b>'. if($year,' <big><b>«</b></big> '.pesc($year)) . ' <big><b>«</b></big> '.pesc($artist),pad=2)
++pic: +aapic(y=title:h+title:y,picsize=picsize,ypad=2,xpad=1,aa='album')
++picsize : OptionNumber(default=100,min=20,max=1000,step=10)
++picstars : picture(file=ratingpic($rating_avrg),x=(picsize/2)-(picstars:w/2),y=pic:y+pic:h,hide=$rating_avrg==50 || picsize < 80)
++
+ {Group pic}
+ title= _"with picture"
+ head=title:h
+@@ -33,6 +64,14 @@ pic: aapic(y=title:y + title:h +2, picsi
+ width: OptionNumber(default=200,min=20,max=1000,step=10)
+ picsize : OptionNumber(default=100,min=20,max=1000,step=10)
+
++{Column RhythmboxQueue}
++menutitle = _"Rhythmbox 2nd queue column"
++title = _"Queue"
++hreq=text:h
++width=200
++sort= title:i
++text : text(markup=pesc($title).'\n<small>by <i>'.pesc($artist).'</i>\non <i>'.pesc($album).'</i></small>',pad=2)
++
+ {Column testtitleandprogress}
+ title= _"Title & progress"
+ sort=album:i title:i
+@@ -42,6 +81,20 @@ hreq=text:h
+ progress: pbar( fill=$progress, hide=!$playing,y=1,h=-2)
+ text: text(markup=playmarkup(pesc($title)))
+
++{Column queuenumber}
++menutitle = Queue-Item Number
++title = #
++width = 20
++text: text(markup=$queued, x=-text:w)
++
++{Column playandqueueandtrack}
++menutitle = Playing/Queue Icon or Track
++title = #
++width = 20
++sort = track
++ico: icon(pad=2,icon=$playicon, hide= !$playing && !$queued)
++text: text(markup=pesc($track.' '.$queued), hide= $playing || $queued)
++
+ {Column playandqueue}
+ menutitle = _"Playing and queue icons"
+ width = 20
+@@ -82,9 +135,9 @@ title = _"Rating"
+ menutitle = _"Rating (picture)"
+ sort = rating
+ width=100
+-#hreq = pic:h
+-#pic : picture(file=ratingpic($rating),init_file=ratingpic(0))
+-pic : picture(file=ratingpic($rating),h=$_h,w=$_w,resize='ratio',init_file=ratingpic(0))
++hreq = pic:h
++pic : picture(file=ratingpic($rating),init_file=ratingpic(0),x=pic:w)
++#pic : picture(file=ratingpic($rating),h=$_h,w=$_w,resize='ratio',init_file=ratingpic(0))
+
+ {Column right_aligned_folder}
+ menutitle = _"Folder (right-aligned)"
+Index: gmusicbrowser/plugins/fetch_cover.pm
+===================================================================
+--- gmusicbrowser.orig/plugins/fetch_cover.pm
++++ gmusicbrowser/plugins/fetch_cover.pm
+@@ -48,15 +48,17 @@ my %Sites=
+ );
+
+ my %menuitem=
+-( label => _"Search for a picture on internet", #label of the menu item
++( label => _"Search Picture", #label of the menu item
+ code => sub { Fetch($_[0]{mainfield},$_[0]{gid},$_[0]{ID}); }, #when menu item selected
+ test => sub {$_[0]{mainfield} eq 'album' || $_[0]{mainfield} eq 'artist'}, #the menu item is displayed if returns true
++ stockicon => 'gtk-find',
+ );
+ my %fpane_menuitem=
+ ( label=> _"Search for a picture on internet",
+ code => sub { Fetch($_[0]{field},$_[0]{gidlist}[0]); },
+ onlyone=> 'gidlist', #menu item is hidden if more than one album/artist is selected
+ istrue => 'aa', #menu item is hidden for non artist/album (aa) FPanes
++ stockicon => 'gtk-find',
+ );
+
+ ::SetDefaultOptions(OPT, USEFILE => 1, COVERFILE => 'cover', PictureSite_artist => 'googlei', PictureSite_album => 'googlei');
diff --git a/audio/gmusicbrowser/slack-desc b/audio/gmusicbrowser/slack-desc
index 046825d118..c4fa61789b 100644
--- a/audio/gmusicbrowser/slack-desc
+++ b/audio/gmusicbrowser/slack-desc
@@ -6,12 +6,12 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-gmusicbrowser: gmusicbrowser (An open-source jukebox)
+gmusicbrowser: gmusicbrowser (open-source jukebox for large collections)
gmusicbrowser:
-gmusicbrowser: An open-source jukebox, written in perl, for large collections
-gmusicbrowser: of mp3/ogg/flac/mpc files.
+gmusicbrowser: A customizable open-source jukebox for large collections.
+gmusicbrowser:
+gmusicbrowser: Home page: http://gmusicbrowser.org/
gmusicbrowser:
-gmusicbrowser: http://squentin.free.fr/gmusicbrowser/gmusicbrowser.html
gmusicbrowser:
gmusicbrowser:
gmusicbrowser:
diff --git a/audio/gmusicbrowser/superfluous-my b/audio/gmusicbrowser/superfluous-my
new file mode 100644
index 0000000000..4b8e2de04e
--- /dev/null
+++ b/audio/gmusicbrowser/superfluous-my
@@ -0,0 +1,36 @@
+From 853840eb9dad0b59ad2dac5d303f5929b2f09f21 Mon Sep 17 00:00:00 2001
+From: Octavio Ruiz <tacvbo@tacvbo.net>
+Date: Mon, 30 May 2016 19:18:44 +0200
+Subject: [PATCH] remove 2 superfluous "my", fix error with perl 5.24
+
+---
+ gmusicbrowser.pl | 2 +-
+ gmusicbrowser_list.pm | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gmusicbrowser.pl b/gmusicbrowser.pl
+index bbf16d7..18fab6a 100755
+--- a/gmusicbrowser.pl
++++ b/gmusicbrowser.pl
+@@ -9020,7 +9020,7 @@ sub Set
+
+ ($cmd,my $pattern)= split /:/,$cmd,2;
+ $pattern='' unless defined $pattern;
+- my ($basecmd,my $prop)= Songs::filter_properties($field,"$cmd:$pattern");
++ my ($basecmd, $prop)= Songs::filter_properties($field,"$cmd:$pattern");
+ if (!$prop)
+ { $cmd= Songs::Field_property($field,'default_filter');
+ ($basecmd,$prop)= Songs::filter_properties($field,$cmd);
+diff --git a/gmusicbrowser_list.pm b/gmusicbrowser_list.pm
+index 76d2f86..26d21ae 100644
+--- a/gmusicbrowser_list.pm
++++ b/gmusicbrowser_list.pm
+@@ -8052,7 +8052,7 @@ sub Make
+ unless ($notnow)
+ { #warn "$key ---found in ($code,@deps)\n";
+ if (ref $code)
+- { my ($func,my @keys)=@$code; #warn " -> ($func, @keys)\n";
++ { my ($func, @keys)=@$code; #warn " -> ($func, @keys)\n";
+ my $out=join ',',map "'$_'", @keys;
+ my $in= join ',',map "'$_'", @deps; $in=~s#\?##g;
+ $out= @keys>1 ? "\@var{$out}" : "\$var{$out}";