public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/amarok] epel10: 2.8.90
@ 2026-07-06 18:05 Rex Dieter
  0 siblings, 0 replies; only message in thread
From: Rex Dieter @ 2026-07-06 18:05 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/amarok
Branch : epel10
Commit : ba545a95b2eb7f3e912c9fbd47e2f1b111255c39
Author : Rex Dieter <rdieter@math.unl.edu>
Date   : 2015-09-11T13:27:39-05:00
Stats  : +35/-1322 in 11 file(s)
URL    : https://src.fedoraproject.org/rpms/amarok/c/ba545a95b2eb7f3e912c9fbd47e2f1b111255c39?branch=epel10

Log:
2.8.90

---
diff --git a/.gitignore b/.gitignore
index 381d49d..b64c787 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-/amarok-2.7.1.tar.bz2
 /amarok-2.8.0.tar.bz2
+/amarok-2.8.90.tar.xz

diff --git a/0004-Code-cleanup-and-added-comments.patch b/0004-Code-cleanup-and-added-comments.patch
deleted file mode 100644
index 1815dfb..0000000
--- a/0004-Code-cleanup-and-added-comments.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From e058db2e4ab21a52d21f493770e33a407ca57fc8 Mon Sep 17 00:00:00 2001
-From: Mark Kretschmann <kretschmann@kde.org>
-Date: Mon, 12 Aug 2013 09:46:34 +0200
-Subject: [PATCH 004/448] Code cleanup and added comments.
-
----
- src/context/applets/analyzer/BlockAnalyzer.cpp | 23 +++++++++++------------
- src/context/applets/analyzer/BlockAnalyzer.h   |  2 +-
- 2 files changed, 12 insertions(+), 13 deletions(-)
-
-diff --git a/src/context/applets/analyzer/BlockAnalyzer.cpp b/src/context/applets/analyzer/BlockAnalyzer.cpp
-index 62131ba..e04aa73 100644
---- a/src/context/applets/analyzer/BlockAnalyzer.cpp
-+++ b/src/context/applets/analyzer/BlockAnalyzer.cpp
-@@ -32,8 +32,8 @@ static inline uint myMax( uint v1, uint v2 )
- 
- BlockAnalyzer::BlockAnalyzer( QWidget *parent )
-     : Analyzer::Base2D( parent )
--    , m_columns( 0 )         //uint
--    , m_rows( 0 )            //uint
-+    , m_columns( 0 )         //int
-+    , m_rows( 0 )            //int
-     , m_y( 0 )               //uint
-     , m_barPixmap( 1, 1 )    //null qpixmaps cause crashes
-     , m_topBarPixmap( BLOCK_WIDTH, BLOCK_HEIGHT )
-@@ -57,12 +57,11 @@ BlockAnalyzer::resizeEvent( QResizeEvent *e )
- 
-     m_background = QPixmap( size() );
- 
--    const uint oldRows = m_rows;
-+    const int oldRows = m_rows;
- 
--    //all is explained in analyze()..
--    //+1 to counter -1 in maxSizes, trust me we need this!
--    m_columns = qMin<uint>( (uint)ceil( double( width() ) / ( BLOCK_WIDTH + 1 ) ), MAX_COLUMNS );
--    m_rows    = uint( double( height() + 1 ) / ( BLOCK_HEIGHT + 1 ) );
-+    // Rounded up so that the last column/line is covered if partially visible
-+    m_columns = qMin<int>( ceil( (double)width() / ( BLOCK_WIDTH + 1 ) ), MAX_COLUMNS );
-+    m_rows    = ceil( (double)height() / ( BLOCK_HEIGHT + 1 ) );
- 
-     //this is the y-offset for drawing from the top of the widget
-     m_y = ( height() - ( m_rows * ( BLOCK_HEIGHT + 1 ) ) + 2 ) / 2;
-@@ -80,7 +79,7 @@ BlockAnalyzer::resizeEvent( QResizeEvent *e )
- 
-         const float PRE = 1, PRO = 1; //PRE and PRO allow us to restrict the range somewhat
- 
--        for( uint z = 0; z < m_rows; ++z )
-+        for( int z = 0; z < m_rows; ++z )
-             m_yscale[z] = 1 - ( log10( PRE + z ) / log10( PRE + m_rows + PRO ) );
- 
-         m_yscale[m_rows] = 0;
-@@ -203,7 +202,7 @@ BlockAnalyzer::paletteChange( const QPalette& ) //virtual
- 
-     bar()->fill( bg );
- 
--    for( int y = 0; ( uint )y < m_rows; ++y )
-+    for( int y = 0; y < m_rows; ++y )
-         //graduate the fg color
-         p.fillRect( 0, y * ( BLOCK_HEIGHT + 1 ), BLOCK_WIDTH, BLOCK_HEIGHT, QColor( r + int( dr * y ), g + int( dg * y ), b + int( db * y ) ) );
- 
-@@ -226,7 +225,7 @@ BlockAnalyzer::paletteChange( const QPalette& ) //virtual
-             m_fade_bars[y].fill( palette().color( QPalette::Active, QPalette::Window ) );
-             const double Y = 1.0 - ( log10( ( FADE_SIZE ) - y ) / log10( ( FADE_SIZE ) ) );
-             QPainter f( &m_fade_bars[y] );
--            for( int z = 0; ( uint )z < m_rows; ++z )
-+            for( int z = 0; z < m_rows; ++z )
-                 f.fillRect( 0, z * ( BLOCK_HEIGHT + 1 ), BLOCK_WIDTH, BLOCK_HEIGHT, QColor( r + int( dr * Y ), g + int( dg * Y ), b + int( db * Y ) ) );
-         }
-     }
-@@ -243,8 +242,8 @@ BlockAnalyzer::drawBackground()
-     m_background.fill( bg );
- 
-     QPainter p( &m_background );
--    for( int x = 0; ( uint )x < m_columns; ++x )
--        for( int y = 0; ( uint )y < m_rows; ++y )
-+    for( int x = 0; x < m_columns; ++x )
-+        for( int y = 0; y < m_rows; ++y )
-             p.fillRect( x * ( BLOCK_WIDTH + 1 ), y * ( BLOCK_HEIGHT + 1 ) + m_y, BLOCK_WIDTH, BLOCK_HEIGHT, bgdark );
- 
- }
-diff --git a/src/context/applets/analyzer/BlockAnalyzer.h b/src/context/applets/analyzer/BlockAnalyzer.h
-index 5a80609..6b14e4e 100644
---- a/src/context/applets/analyzer/BlockAnalyzer.h
-+++ b/src/context/applets/analyzer/BlockAnalyzer.h
-@@ -54,7 +54,7 @@ private:
-         return &m_barPixmap;
-     }
- 
--    uint m_columns, m_rows;      //number of rows and columns of blocks
-+    int m_columns, m_rows;      //number of rows and columns of blocks
-     uint m_y;                    //y-offset from top of widget
-     QPixmap m_barPixmap;
-     QPixmap m_topBarPixmap;
--- 
-1.9.3
-

diff --git a/0014-Fix-compilation-and-linking-issues.patch b/0014-Fix-compilation-and-linking-issues.patch
deleted file mode 100644
index f5334ce..0000000
--- a/0014-Fix-compilation-and-linking-issues.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 9941fffa203e5d068620c3230795e3bc6412eba4 Mon Sep 17 00:00:00 2001
-From: Mark Kretschmann <kretschmann@kde.org>
-Date: Sat, 17 Aug 2013 09:35:25 +0200
-Subject: [PATCH 014/448] Fix compilation and linking issues.
-
----
- src/context/applets/analyzer/BlockAnalyzer.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/context/applets/analyzer/BlockAnalyzer.cpp b/src/context/applets/analyzer/BlockAnalyzer.cpp
-index e04aa73..562877e 100644
---- a/src/context/applets/analyzer/BlockAnalyzer.cpp
-+++ b/src/context/applets/analyzer/BlockAnalyzer.cpp
-@@ -60,8 +60,8 @@ BlockAnalyzer::resizeEvent( QResizeEvent *e )
-     const int oldRows = m_rows;
- 
-     // Rounded up so that the last column/line is covered if partially visible
--    m_columns = qMin<int>( ceil( (double)width() / ( BLOCK_WIDTH + 1 ) ), MAX_COLUMNS );
--    m_rows    = ceil( (double)height() / ( BLOCK_HEIGHT + 1 ) );
-+    m_columns = std::min( std::ceil( (double)width() / ( BLOCK_WIDTH + 1 ) ), (double)MAX_COLUMNS );
-+    m_rows    = std::ceil( (double)height() / ( BLOCK_HEIGHT + 1 ) );
- 
-     //this is the y-offset for drawing from the top of the widget
-     m_y = ( height() - ( m_rows * ( BLOCK_HEIGHT + 1 ) ) + 2 ) / 2;
--- 
-1.9.3
-

diff --git a/0039-Optimization-Don-t-draw-more-than-necessary.patch b/0039-Optimization-Don-t-draw-more-than-necessary.patch
deleted file mode 100644
index 23e26ed..0000000
--- a/0039-Optimization-Don-t-draw-more-than-necessary.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 8d6e72597fdfd3023ac5287ea19d8b8b3747e5ed Mon Sep 17 00:00:00 2001
-From: Mark Kretschmann <kretschmann@kde.org>
-Date: Mon, 26 Aug 2013 13:27:01 +0200
-Subject: [PATCH 039/448] Optimization: Don't draw more than necessary.
-
----
- src/context/applets/analyzer/BlockAnalyzer.cpp | 8 +++-----
- 1 file changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/src/context/applets/analyzer/BlockAnalyzer.cpp b/src/context/applets/analyzer/BlockAnalyzer.cpp
-index 562877e..404e26a 100644
---- a/src/context/applets/analyzer/BlockAnalyzer.cpp
-+++ b/src/context/applets/analyzer/BlockAnalyzer.cpp
-@@ -35,10 +35,7 @@ BlockAnalyzer::BlockAnalyzer( QWidget *parent )
-     , m_columns( 0 )         //int
-     , m_rows( 0 )            //int
-     , m_y( 0 )               //uint
--    , m_barPixmap( 1, 1 )    //null qpixmaps cause crashes
-     , m_topBarPixmap( BLOCK_WIDTH, BLOCK_HEIGHT )
--    , m_scope( MIN_COLUMNS ) //Scope
--    , m_store( MAX_COLUMNS, 0 )   //vector<uint>
-     , m_fade_bars( FADE_SIZE ) //vector<QPixmap>
-     , m_fade_pos( MAX_COLUMNS, 50 ) //vector<uint>
-     , m_fade_intensity( MAX_COLUMNS, 32 ) //vector<uint>
-@@ -67,6 +64,7 @@ BlockAnalyzer::resizeEvent( QResizeEvent *e )
-     m_y = ( height() - ( m_rows * ( BLOCK_HEIGHT + 1 ) ) + 2 ) / 2;
- 
-     m_scope.resize( m_columns );
-+    m_store.resize( m_columns );
- 
-     if( m_rows != oldRows )
-     {
-@@ -179,10 +177,10 @@ BlockAnalyzer::paintEvent( QPaintEvent* )
- 
-         // REMEMBER: y is a number from 0 to m_rows, 0 means all blocks are glowing, m_rows means none are
-         p.drawPixmap( x * ( BLOCK_WIDTH + 1 ), y * ( BLOCK_HEIGHT + 1 ) + m_y, *bar(), 0, y * ( BLOCK_HEIGHT + 1 ), -1, -1 );
--    }
- 
--    for( int x = 0; x < m_store.size(); ++x )
-+        // Draw top pixmaps
-         p.drawPixmap( x * ( BLOCK_WIDTH + 1 ), int( m_store[x] ) * ( BLOCK_HEIGHT + 1 ) + m_y, m_topBarPixmap );
-+    }
- }
- 
- void
--- 
-1.9.3
-

diff --git a/0055-Enable-Wikipedia-over-SSL.patch b/0055-Enable-Wikipedia-over-SSL.patch
deleted file mode 100644
index ee1a08b..0000000
--- a/0055-Enable-Wikipedia-over-SSL.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-From 284342b48dc32341c3553fd2b0ee5069d75b58f9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Frank=20Meerk=C3=B6tter?= <frank@meerkoetter.org>
-Date: Thu, 12 Sep 2013 21:44:03 +0200
-Subject: [PATCH 055/471] Enable Wikipedia over SSL.
-
-This patch makes SSL the default. It also adds a checkbox to disable
-it so if there would be a problem a fallback to HTTP is possible.
-
-BUG: 322249
-REVIEW: 112706
-FIXED-IN: 2.9
----
- src/context/applets/wikipedia/WikipediaApplet.cpp      |  6 ++++++
- src/context/applets/wikipedia/WikipediaApplet_p.h      |  1 +
- .../applets/wikipedia/wikipediaGeneralSettings.ui      | 11 +++++++++--
- src/context/engines/wikipedia/WikipediaEngine.cpp      | 18 +++++++++++++++---
- 4 files changed, 31 insertions(+), 5 deletions(-)
-
-diff --git a/src/context/applets/wikipedia/WikipediaApplet.cpp b/src/context/applets/wikipedia/WikipediaApplet.cpp
-index 507db96..21365f2 100644
---- a/src/context/applets/wikipedia/WikipediaApplet.cpp
-+++ b/src/context/applets/wikipedia/WikipediaApplet.cpp
-@@ -250,11 +250,14 @@ WikipediaAppletPrivate::_loadSettings()
-     }
-     langList = list;
-     useMobileWikipedia = (generalSettingsUi.mobileCheckBox->checkState() == Qt::Checked);
-+    useSSL = (generalSettingsUi.sslCheckBox->checkState() == Qt::Checked);
-     Amarok::config("Wikipedia Applet").writeEntry( "PreferredLang", list );
-     Amarok::config("Wikipedia Applet").writeEntry( "UseMobile", useMobileWikipedia );
-+    Amarok::config( "Wikipedia Applet" ).writeEntry( "UseSSL", useSSL );
-     _paletteChanged( App::instance()->palette() );
-     dataContainer->setData( "lang", langList );
-     dataContainer->setData( "mobile", useMobileWikipedia );
-+    dataContainer->setData( "ssl", useSSL );
-     scheduleEngineUpdate();
- }
- 
-@@ -656,9 +659,11 @@ WikipediaApplet::init()
-     // Read config and inform the engine.
-     d->langList = Amarok::config("Wikipedia Applet").readEntry( "PreferredLang", QStringList() << "en" );
-     d->useMobileWikipedia = Amarok::config("Wikipedia Applet").readEntry( "UseMobile", false );
-+    d->useSSL = Amarok::config( "Wikipedia Applet" ).readEntry( "UseSSL", true );
-     d->_paletteChanged( App::instance()->palette() );
-     d->dataContainer->setData( "lang", d->langList );
-     d->dataContainer->setData( "mobile", d->useMobileWikipedia );
-+    d->dataContainer->setData( "ssl", d->useSSL );
-     d->scheduleEngineUpdate();
- 
-     updateConstraints();
-@@ -787,6 +792,7 @@ WikipediaApplet::createConfigurationInterface( KConfigDialog *parent )
-     QWidget *genSettings = new QWidget;
-     d->generalSettingsUi.setupUi( genSettings );
-     d->generalSettingsUi.mobileCheckBox->setCheckState( d->useMobileWikipedia ? Qt::Checked : Qt::Unchecked );
-+    d->generalSettingsUi.sslCheckBox->setCheckState( d->useSSL ? Qt::Checked : Qt::Unchecked );
- 
-     connect( d->languageSettingsUi.downloadButton, SIGNAL(clicked()), this, SLOT(_getLangMap()) );
-     connect( parent, SIGNAL(okClicked()), this, SLOT(_loadSettings()) );
-diff --git a/src/context/applets/wikipedia/WikipediaApplet_p.h b/src/context/applets/wikipedia/WikipediaApplet_p.h
-index c52a0bf..df5ddc3 100644
---- a/src/context/applets/wikipedia/WikipediaApplet_p.h
-+++ b/src/context/applets/wikipedia/WikipediaApplet_p.h
-@@ -143,6 +143,7 @@ public:
-     bool isForwardHistory;
-     bool isBackwardHistory;
-     bool useMobileWikipedia;
-+    bool useSSL;
- };
- 
- class WikipediaSearchLineEdit : public Plasma::LineEdit
-diff --git a/src/context/applets/wikipedia/wikipediaGeneralSettings.ui b/src/context/applets/wikipedia/wikipediaGeneralSettings.ui
-index a615dee..84cb5df 100644
---- a/src/context/applets/wikipedia/wikipediaGeneralSettings.ui
-+++ b/src/context/applets/wikipedia/wikipediaGeneralSettings.ui
-@@ -6,8 +6,8 @@
-    <rect>
-     <x>0</x>
-     <y>0</y>
--    <width>244</width>
--    <height>23</height>
-+    <width>253</width>
-+    <height>62</height>
-    </rect>
-   </property>
-   <property name="sizePolicy">
-@@ -32,6 +32,13 @@
-        </property>
-       </widget>
-      </item>
-+     <item row="1" column="1">
-+      <widget class="QCheckBox" name="sslCheckBox">
-+       <property name="text">
-+        <string>Use &amp;SSL</string>
-+       </property>
-+      </widget>
-+     </item>
-     </layout>
-    </item>
-   </layout>
-diff --git a/src/context/engines/wikipedia/WikipediaEngine.cpp b/src/context/engines/wikipedia/WikipediaEngine.cpp
-index f22e443..982d3fd 100644
---- a/src/context/engines/wikipedia/WikipediaEngine.cpp
-+++ b/src/context/engines/wikipedia/WikipediaEngine.cpp
-@@ -45,6 +45,7 @@ public:
-         : q_ptr( parent )
-         , currentSelection( Artist )
-         , useMobileVersion( false )
-+        , useSSL( true )
-         , dataContainer( 0 )
-     {}
-     ~WikipediaEnginePrivate() {}
-@@ -88,6 +89,7 @@ public:
-         }
-     } m_previousTrackMetadata;
-     bool useMobileVersion;
-+    bool useSSL;
- 
-     Plasma::DataContainer *dataContainer;
- 
-@@ -169,6 +171,16 @@ WikipediaEnginePrivate::_dataContainerUpdated( const QString &source, const Plas
-         }
-     }
- 
-+    if( data.contains( QLatin1String("ssl") ) )
-+    {
-+        const bool ssl = data.value( QLatin1String("ssl") ).toBool();
-+        if( ssl != useSSL )
-+        {
-+            useSSL = ssl;
-+            updateEngine();
-+        }
-+    }
-+
-     if( data.contains( QLatin1String("lang") ) )
-     {
-         QStringList langList = data.value( QLatin1String("lang") ).toStringList();
-@@ -532,7 +544,7 @@ WikipediaEnginePrivate::fetchWikiUrl( const QString &title, const QString &urlPr
-     Q_Q( WikipediaEngine );
-     KUrl pageUrl;
-     QString host( ".wikipedia.org" );
--    pageUrl.setScheme( QLatin1String("http") );
-+    pageUrl.setScheme( useSSL ? QLatin1String( "https" ) : QLatin1String( "http" ) );
- 
-     if( useMobileVersion )
-     {
-@@ -570,7 +582,7 @@ WikipediaEnginePrivate::fetchLangLinks( const QString &title,
- {
-     Q_Q( WikipediaEngine );
-     KUrl url;
--    url.setScheme( QLatin1String("http") );
-+    url.setScheme( useSSL ? QLatin1String( "https" ) : QLatin1String( "http" ) );
-     url.setHost( hostLang + QLatin1String(".wikipedia.org") );
-     url.setPath( QLatin1String("/w/api.php") );
-     url.addQueryItem( QLatin1String("action"), QLatin1String("query") );
-@@ -592,7 +604,7 @@ WikipediaEnginePrivate::fetchListing( const QString &title, const QString &hostL
- {
-     Q_Q( WikipediaEngine );
-     KUrl url;
--    url.setScheme( QLatin1String("http") );
-+    url.setScheme( useSSL ? QLatin1String( "https" ) : QLatin1String( "http" ) );
-     url.setHost( hostLang + QLatin1String(".wikipedia.org") );
-     url.setPath( QLatin1String("/w/api.php") );
-     url.addQueryItem( QLatin1String("action"), QLatin1String("query") );
--- 
-2.4.3
-

diff --git a/0070-Rewrite-Block-Analyzer-to-use-pure-OpenGL-instead-of.patch b/0070-Rewrite-Block-Analyzer-to-use-pure-OpenGL-instead-of.patch
deleted file mode 100644
index ea9fd5d..0000000
--- a/0070-Rewrite-Block-Analyzer-to-use-pure-OpenGL-instead-of.patch
+++ /dev/null
@@ -1,453 +0,0 @@
-From f4a3f4fcf59cc0c592bd6d703542cb162a19721c Mon Sep 17 00:00:00 2001
-From: Mark Kretschmann <kretschmann@kde.org>
-Date: Fri, 19 Jul 2013 10:37:42 +0200
-Subject: [PATCH 070/448] Rewrite Block Analyzer to use pure OpenGL instead of
- QGLPaintEngine2.
-
-This rewrite should fix a number of issues that users had, especially
-with Intel drivers. The issues, including crashes, are all due to driver
-bugs, but essentially they were triggered by Qt using some uncommon
-features for texture drawing (stencil operations, etc).
-
-This commit should be backported to 2.8.1.
-
-CCMAIL: amarok-devel@kde.org
-CCBUG: 323635
-BACKPORT
----
- ChangeLog                                      |   1 +
- src/context/applets/analyzer/AnalyzerBase.cpp  |  34 +++-----
- src/context/applets/analyzer/AnalyzerBase.h    |  22 +-----
- src/context/applets/analyzer/BallsAnalyzer.cpp |   2 +-
- src/context/applets/analyzer/BallsAnalyzer.h   |   2 +-
- src/context/applets/analyzer/BlockAnalyzer.cpp | 105 +++++++++++++++++++------
- src/context/applets/analyzer/BlockAnalyzer.h   |  19 +++--
- src/context/applets/analyzer/DiscoAnalyzer.cpp |   2 +-
- src/context/applets/analyzer/DiscoAnalyzer.h   |   2 +-
- 9 files changed, 111 insertions(+), 78 deletions(-)
-
-diff --git a/src/context/applets/analyzer/AnalyzerBase.cpp b/src/context/applets/analyzer/AnalyzerBase.cpp
-index c413d37..0e649f8 100644
---- a/src/context/applets/analyzer/AnalyzerBase.cpp
-+++ b/src/context/applets/analyzer/AnalyzerBase.cpp
-@@ -42,7 +42,8 @@ Analyzer::Base::Base( QWidget *parent )
- {
-     connect( EngineController::instance(), SIGNAL( playbackStateChanged() ), this, SLOT( playbackStateChanged() ) );
- 
--    m_demoTimer->setInterval( 33 );
-+    setFps( 60 ); // Default unless changed by subclass
-+    m_demoTimer->setInterval( 33 );  // ~30 fps
- 
-     enableDemo( !EngineController::instance()->isPlaying() );
- 
-@@ -50,6 +51,13 @@ Analyzer::Base::Base( QWidget *parent )
-     connect( KWindowSystem::self(), SIGNAL( currentDesktopChanged( int ) ), this, SLOT( currentDesktopChanged() ) );
- #endif
- 
-+    connect( m_renderTimer, SIGNAL( timeout() ), this, SLOT( updateGL() ) );
-+
-+    //initialize openGL context before managing GL calls
-+    makeCurrent();
-+
-+    initializeGLFunctions();
-+
-     connectSignals();
- }
- 
-@@ -213,28 +221,10 @@ Analyzer::Base::interpolate( const QVector<float> &inVec, QVector<float> &outVec
-     }
- }
- 
--
--
--
--Analyzer::Base2D::Base2D( QWidget *parent )
--    : Base( parent )
--{
--    m_renderTimer->setInterval( 20 ); //~50 FPS
--    connect( m_renderTimer, SIGNAL( timeout() ), this, SLOT( update() ) );
--}
--
--
--
--Analyzer::Base3D::Base3D( QWidget *parent )
--    : Base( parent )
-+void
-+Analyzer::Base::setFps( int fps )
- {
--    m_renderTimer->setInterval( 17 ); //~60 FPS
--    connect( m_renderTimer, SIGNAL( timeout() ), this, SLOT( updateGL() ) );
--
--    //initialize openGL context before managing GL calls
--    makeCurrent();
--
--    initializeGLFunctions();
-+    m_renderTimer->setInterval( 1000 / fps );
- }
- 
- 
-diff --git a/src/context/applets/analyzer/AnalyzerBase.h b/src/context/applets/analyzer/AnalyzerBase.h
-index df81152..0497428 100644
---- a/src/context/applets/analyzer/AnalyzerBase.h
-+++ b/src/context/applets/analyzer/AnalyzerBase.h
-@@ -36,7 +36,7 @@
- namespace Analyzer
- {
- 
--class Base : public QGLWidget
-+class Base : public QGLWidget, protected QGLFunctions
- {
-     Q_OBJECT
- 
-@@ -49,6 +49,8 @@ protected:
-     virtual void transform( QVector<float>& );
-     virtual void analyze( const QVector<float>& ) = 0;
- 
-+    void setFps( int fps );
-+
-     FHT    *m_fht;
-     QTimer *m_renderTimer;
- 
-@@ -71,24 +73,6 @@ private:
- };
- 
- 
--class Base2D : public Base
--{
--    Q_OBJECT
--
--protected:
--    Base2D( QWidget* );
--};
--
--
--class Base3D : public Base, protected QGLFunctions
--{
--    Q_OBJECT
--
--protected:
--    Base3D( QWidget* );
--};
--
--
- } //END namespace Analyzer
- 
- 
-diff --git a/src/context/applets/analyzer/BallsAnalyzer.cpp b/src/context/applets/analyzer/BallsAnalyzer.cpp
-index 2d633f8..6b4512f 100644
---- a/src/context/applets/analyzer/BallsAnalyzer.cpp
-+++ b/src/context/applets/analyzer/BallsAnalyzer.cpp
-@@ -118,7 +118,7 @@ private:
- 
- 
- BallsAnalyzer::BallsAnalyzer( QWidget *parent ):
--    Analyzer::Base3D( parent )
-+    Analyzer::Base( parent )
- {
-     setObjectName( "Balls" );
- 
-diff --git a/src/context/applets/analyzer/BallsAnalyzer.h b/src/context/applets/analyzer/BallsAnalyzer.h
-index b606814..f7d7365 100644
---- a/src/context/applets/analyzer/BallsAnalyzer.h
-+++ b/src/context/applets/analyzer/BallsAnalyzer.h
-@@ -24,7 +24,7 @@ class QWidget;
- class Ball;
- class Paddle;
- 
--class BallsAnalyzer : public Analyzer::Base3D
-+class BallsAnalyzer : public Analyzer::Base
- {
- public:
-     BallsAnalyzer( QWidget * );
-diff --git a/src/context/applets/analyzer/BlockAnalyzer.cpp b/src/context/applets/analyzer/BlockAnalyzer.cpp
-index 404e26a..03fefae 100644
---- a/src/context/applets/analyzer/BlockAnalyzer.cpp
-+++ b/src/context/applets/analyzer/BlockAnalyzer.cpp
-@@ -31,28 +31,47 @@ static inline uint myMax( uint v1, uint v2 )
- }
- 
- BlockAnalyzer::BlockAnalyzer( QWidget *parent )
--    : Analyzer::Base2D( parent )
-+    : Analyzer::Base( parent )
-     , m_columns( 0 )         //int
-     , m_rows( 0 )            //int
-     , m_y( 0 )               //uint
--    , m_topBarPixmap( BLOCK_WIDTH, BLOCK_HEIGHT )
-+    , m_barTexture( 0 )
-+    , m_topBarTexture( 0 )
-     , m_fade_bars( FADE_SIZE ) //vector<QPixmap>
-     , m_fade_pos( MAX_COLUMNS, 50 ) //vector<uint>
-     , m_fade_intensity( MAX_COLUMNS, 32 ) //vector<uint>
-+    , m_background( 0 )
- {
-     setObjectName( "Blocky" );
-     setMaximumWidth( MAX_COLUMNS * ( BLOCK_WIDTH + 1 ) - 1 );
-+    setFps( 50 );
- }
- 
- BlockAnalyzer::~BlockAnalyzer()
--{}
-+{
-+    deleteTexture( m_barTexture );
-+    deleteTexture( m_topBarTexture );
-+
-+    foreach( GLuint id, m_fade_bars )
-+        deleteTexture( id );
-+}
-+
-+void
-+BlockAnalyzer::initializeGL()
-+{
-+    // Disable depth test (all is drawn on a 2d plane)
-+    glDisable( GL_DEPTH_TEST );
-+}
- 
- void
--BlockAnalyzer::resizeEvent( QResizeEvent *e )
-+BlockAnalyzer::resizeGL( int w, int h )
- {
--    Analyzer::Base2D::resizeEvent( e );
-+    glViewport( 0, 0, (GLint)w, (GLint)h );
- 
--    m_background = QPixmap( size() );
-+    // Set up a 2D projection matrix
-+    glMatrixMode( GL_PROJECTION );
-+    glLoadIdentity();
-+    glOrtho( 0.0, (GLdouble)w, (GLdouble)h, 0.0, 0.0, 1.0 );
- 
-     const int oldRows = m_rows;
- 
-@@ -70,9 +89,6 @@ BlockAnalyzer::resizeEvent( QResizeEvent *e )
-     {
-         m_barPixmap = QPixmap( BLOCK_WIDTH, m_rows * ( BLOCK_HEIGHT + 1 ) );
- 
--        for( int i = 0; i < FADE_SIZE; ++i )
--            m_fade_bars[i] = QPixmap( BLOCK_WIDTH, m_rows * ( BLOCK_HEIGHT + 1 ) );
--
-         m_yscale.resize( m_rows + 1 );
- 
-         const float PRE = 1, PRO = 1; //PRE and PRO allow us to restrict the range somewhat
-@@ -123,7 +139,7 @@ BlockAnalyzer::analyze( const QVector<float> &s )
- }
- 
- void
--BlockAnalyzer::paintEvent( QPaintEvent* )
-+BlockAnalyzer::paintGL()
- {
-     // y = 2 3 2 1 0 2
-     //     . . . . # .
-@@ -138,10 +154,11 @@ BlockAnalyzer::paintEvent( QPaintEvent* )
-     // m_yscale looks similar to: { 0.7, 0.5, 0.25, 0.15, 0.1, 0 }
-     // if it contains 6 elements there are 5 rows in the analyzer
- 
--    QPainter p( this );
-+    glMatrixMode( GL_MODELVIEW );
-+    glLoadIdentity();
- 
-     // Paint the background
--    p.drawPixmap( 0, 0, m_background );
-+    drawTexture( m_background, 0, 0, 0, 0, width(), height() );
- 
-     for( uint y, x = 0; x < (uint)m_scope.size(); ++x )
-     {
-@@ -169,36 +186,66 @@ BlockAnalyzer::paintEvent( QPaintEvent* )
-             const uint offset = --m_fade_intensity[x];
-             const uint y = m_y + ( m_fade_pos[x] * ( BLOCK_HEIGHT + 1 ) );
-             if( y < (uint)height() )
--                p.drawPixmap( x * ( BLOCK_WIDTH + 1 ), y, m_fade_bars[offset], 0, 0, BLOCK_WIDTH, height() - y );
-+                drawTexture( m_fade_bars[offset], x * ( BLOCK_WIDTH + 1 ), y, 0, 0, BLOCK_WIDTH, height() );
-         }
- 
-         if( m_fade_intensity[x] == 0 )
-             m_fade_pos[x] = m_rows;
- 
-         // REMEMBER: y is a number from 0 to m_rows, 0 means all blocks are glowing, m_rows means none are
--        p.drawPixmap( x * ( BLOCK_WIDTH + 1 ), y * ( BLOCK_HEIGHT + 1 ) + m_y, *bar(), 0, y * ( BLOCK_HEIGHT + 1 ), -1, -1 );
-+        drawTexture( m_barTexture, x * ( BLOCK_WIDTH + 1 ), y * ( BLOCK_HEIGHT + 1 ) + m_y, 0, y * ( BLOCK_HEIGHT + 1 ), m_barPixmap.width(), m_barPixmap.height() );
- 
--        // Draw top pixmaps
--        p.drawPixmap( x * ( BLOCK_WIDTH + 1 ), int( m_store[x] ) * ( BLOCK_HEIGHT + 1 ) + m_y, m_topBarPixmap );
-+        // Draw top bar
-+        drawTexture( m_topBarTexture, x * ( BLOCK_WIDTH + 1 ), int( m_store[x] ) * ( BLOCK_HEIGHT + 1 ) + m_y, 0, 0, BLOCK_WIDTH, BLOCK_HEIGHT );
-     }
- }
- 
- void
-+BlockAnalyzer::drawTexture( GLuint textureId, int x, int y, int sx, int sy, int w, int h )
-+{
-+    const GLfloat xf = x;
-+    const GLfloat yf = y;
-+    const GLfloat sxf = (GLfloat)sx / m_barPixmap.width();
-+    const GLfloat syf = (GLfloat)sy / m_barPixmap.height();
-+    const GLfloat wf = w - sx;
-+    const GLfloat hf = h - sy;
-+
-+    glEnable( GL_TEXTURE_2D );
-+    glBindTexture( GL_TEXTURE_2D, textureId );
-+
-+    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
-+    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
-+
-+    // Draw a textured quad
-+    glBegin(GL_QUADS);
-+    glTexCoord2f( sxf, syf ); glVertex2f( xf, yf );
-+    glTexCoord2f( sxf, 1.0 ); glVertex2f( xf, yf + hf );
-+    glTexCoord2f( 1.0, 1.0 ); glVertex2f( xf + wf, yf + hf );
-+    glTexCoord2f( 1.0, syf ); glVertex2f( xf + wf, yf );
-+    glEnd();
-+
-+    glDisable( GL_TEXTURE_2D );
-+}
-+
-+void
- BlockAnalyzer::paletteChange( const QPalette& ) //virtual
- {
--    QPainter p( bar() );
-+    QPainter p( &m_barPixmap );
- 
-     const QColor bg = The::paletteHandler()->backgroundColor();
-     const QColor fg = palette().color( QPalette::Active, QPalette::Highlight );
- 
--    m_topBarPixmap.fill( fg );
-+    QPixmap topBar( BLOCK_WIDTH, BLOCK_HEIGHT );
-+    topBar.fill( fg );
-+    deleteTexture( m_topBarTexture );
-+    m_topBarTexture = bindTexture( topBar );
- 
-     const double dr = 15 * double( bg.red()   - fg.red() )   / ( m_rows * 16 );
-     const double dg = 15 * double( bg.green() - fg.green() ) / ( m_rows * 16 );
-     const double db = 15 * double( bg.blue()  - fg.blue() )  / ( m_rows * 16 );
-     const int r = fg.red(), g = fg.green(), b = fg.blue();
- 
--    bar()->fill( bg );
-+    m_barPixmap.fill( bg );
- 
-     for( int y = 0; y < m_rows; ++y )
-         //graduate the fg color
-@@ -220,14 +267,23 @@ BlockAnalyzer::paletteChange( const QPalette& ) //virtual
-         // Precalculate all fade-bar pixmaps
-         for( int y = 0; y < FADE_SIZE; ++y )
-         {
--            m_fade_bars[y].fill( palette().color( QPalette::Active, QPalette::Window ) );
-+            QPixmap fadeBar( BLOCK_WIDTH, m_rows * ( BLOCK_HEIGHT + 1 ) );
-+
-+            fadeBar.fill( palette().color( QPalette::Active, QPalette::Window ) );
-             const double Y = 1.0 - ( log10( ( FADE_SIZE ) - y ) / log10( ( FADE_SIZE ) ) );
--            QPainter f( &m_fade_bars[y] );
-+            QPainter f( &fadeBar );
-             for( int z = 0; z < m_rows; ++z )
-                 f.fillRect( 0, z * ( BLOCK_HEIGHT + 1 ), BLOCK_WIDTH, BLOCK_HEIGHT, QColor( r + int( dr * Y ), g + int( dg * Y ), b + int( db * Y ) ) );
-+
-+            deleteTexture( m_fade_bars[y] );
-+            m_fade_bars[y] = bindTexture( fadeBar );
-         }
-     }
- 
-+    const QImage image = m_barPixmap.toImage();
-+    deleteTexture( m_barTexture );
-+    m_barTexture = bindTexture( image.mirrored() ); // Flip vertically because OpenGL has inverted y coordinates
-+
-     drawBackground();
- }
- 
-@@ -237,11 +293,14 @@ BlockAnalyzer::drawBackground()
-     const QColor bg = palette().color( QPalette::Active, QPalette::Window );
-     const QColor bgdark = bg.dark( 112 );
- 
--    m_background.fill( bg );
-+    QPixmap background( size() );
-+    background.fill( bg );
- 
--    QPainter p( &m_background );
-+    QPainter p( &background );
-     for( int x = 0; x < m_columns; ++x )
-         for( int y = 0; y < m_rows; ++y )
-             p.fillRect( x * ( BLOCK_WIDTH + 1 ), y * ( BLOCK_HEIGHT + 1 ) + m_y, BLOCK_WIDTH, BLOCK_HEIGHT, bgdark );
- 
-+    deleteTexture( m_background );
-+    m_background = bindTexture( background );
- }
-diff --git a/src/context/applets/analyzer/BlockAnalyzer.h b/src/context/applets/analyzer/BlockAnalyzer.h
-index 6b14e4e..318289a 100644
---- a/src/context/applets/analyzer/BlockAnalyzer.h
-+++ b/src/context/applets/analyzer/BlockAnalyzer.h
-@@ -24,7 +24,7 @@ class QMouseEvent;
- class QPalette;
- class QResizeEvent;
- 
--class BlockAnalyzer : public Analyzer::Base2D
-+class BlockAnalyzer : public Analyzer::Base
- {
- public:
-     BlockAnalyzer( QWidget* );
-@@ -39,33 +39,32 @@ public:
-     static const int FADE_SIZE    = 90;
- 
- protected:
-+    virtual void initializeGL();
-+    virtual void paintGL();
-+    virtual void resizeGL( int w, int h );
-     virtual void transform( QVector<float>& );
-     virtual void analyze( const QVector<float>& );
--    virtual void paintEvent( QPaintEvent* );
--    virtual void resizeEvent( QResizeEvent* );
-     virtual void paletteChange( const QPalette& );
- 
-     void drawBackground();
-     void determineStep();
- 
- private:
--    QPixmap* bar()
--    {
--        return &m_barPixmap;
--    }
-+    void drawTexture( GLuint textureId, int x, int y, int sx, int sy, int w, int h );
- 
-     int m_columns, m_rows;      //number of rows and columns of blocks
-     uint m_y;                    //y-offset from top of widget
-+    GLuint m_barTexture;
-+    GLuint m_topBarTexture;
-     QPixmap m_barPixmap;
--    QPixmap m_topBarPixmap;
-     QVector<float> m_scope;      //so we don't create a vector every frame
-     QVector<float> m_store;  //current bar heights
-     QVector<float> m_yscale;
- 
--    QVector<QPixmap> m_fade_bars;
-+    QVector<GLuint>  m_fade_bars;
-     QVector<uint>    m_fade_pos;
-     QVector<int>     m_fade_intensity;
--    QPixmap          m_background;
-+    GLuint           m_background;
- 
-     float m_step; //rows to fall per frame
- };
-diff --git a/src/context/applets/analyzer/DiscoAnalyzer.cpp b/src/context/applets/analyzer/DiscoAnalyzer.cpp
-index ce3f56d..a81cde4 100644
---- a/src/context/applets/analyzer/DiscoAnalyzer.cpp
-+++ b/src/context/applets/analyzer/DiscoAnalyzer.cpp
-@@ -25,7 +25,7 @@
- 
- 
- DiscoAnalyzer::DiscoAnalyzer( QWidget *parent ):
--    Analyzer::Base3D( parent )
-+    Analyzer::Base( parent )
- {
-     setObjectName( "Disco" );
- 
-diff --git a/src/context/applets/analyzer/DiscoAnalyzer.h b/src/context/applets/analyzer/DiscoAnalyzer.h
-index 3d54f77..d41b46c 100644
---- a/src/context/applets/analyzer/DiscoAnalyzer.h
-+++ b/src/context/applets/analyzer/DiscoAnalyzer.h
-@@ -23,7 +23,7 @@
- 
- class QPaintEvent;
- 
--class DiscoAnalyzer : public Analyzer::Base3D
-+class DiscoAnalyzer : public Analyzer::Base
- {
- public:
-     DiscoAnalyzer( QWidget * );
--- 
-1.9.3
-

diff --git a/0071-Fix-rendering-glitch-introduced-with-commit-f4a3f4f.patch b/0071-Fix-rendering-glitch-introduced-with-commit-f4a3f4f.patch
deleted file mode 100644
index e44f67a..0000000
--- a/0071-Fix-rendering-glitch-introduced-with-commit-f4a3f4f.patch
+++ /dev/null
@@ -1,197 +0,0 @@
-From d2fef6cb1a0293a000edbf87fd566574b6e8ae51 Mon Sep 17 00:00:00 2001
-From: Mark Kretschmann <kretschmann@kde.org>
-Date: Sat, 19 Oct 2013 16:48:12 +0200
-Subject: [PATCH 071/448] Fix rendering glitch introduced with commit f4a3f4f.
-
-CCBUG: 323635
-BACKPORT
----
- src/context/applets/analyzer/BlockAnalyzer.cpp | 47 ++++++++++++--------------
- src/context/applets/analyzer/BlockAnalyzer.h   | 31 ++++++++++++++---
- 2 files changed, 48 insertions(+), 30 deletions(-)
-
-diff --git a/src/context/applets/analyzer/BlockAnalyzer.cpp b/src/context/applets/analyzer/BlockAnalyzer.cpp
-index 03fefae..1cf85d1 100644
---- a/src/context/applets/analyzer/BlockAnalyzer.cpp
-+++ b/src/context/applets/analyzer/BlockAnalyzer.cpp
-@@ -35,12 +35,9 @@ BlockAnalyzer::BlockAnalyzer( QWidget *parent )
-     , m_columns( 0 )         //int
-     , m_rows( 0 )            //int
-     , m_y( 0 )               //uint
--    , m_barTexture( 0 )
--    , m_topBarTexture( 0 )
-     , m_fade_bars( FADE_SIZE ) //vector<QPixmap>
-     , m_fade_pos( MAX_COLUMNS, 50 ) //vector<uint>
-     , m_fade_intensity( MAX_COLUMNS, 32 ) //vector<uint>
--    , m_background( 0 )
- {
-     setObjectName( "Blocky" );
-     setMaximumWidth( MAX_COLUMNS * ( BLOCK_WIDTH + 1 ) - 1 );
-@@ -49,11 +46,11 @@ BlockAnalyzer::BlockAnalyzer( QWidget *parent )
- 
- BlockAnalyzer::~BlockAnalyzer()
- {
--    deleteTexture( m_barTexture );
--    deleteTexture( m_topBarTexture );
-+    deleteTexture( m_barTexture.id );
-+    deleteTexture( m_topBarTexture.id );
- 
--    foreach( GLuint id, m_fade_bars )
--        deleteTexture( id );
-+    foreach( Texture texture, m_fade_bars )
-+        deleteTexture( texture.id );
- }
- 
- void
-@@ -158,7 +155,7 @@ BlockAnalyzer::paintGL()
-     glLoadIdentity();
- 
-     // Paint the background
--    drawTexture( m_background, 0, 0, 0, 0, width(), height() );
-+    drawTexture( m_background, 0, 0, 0, 0 );
- 
-     for( uint y, x = 0; x < (uint)m_scope.size(); ++x )
-     {
-@@ -186,32 +183,32 @@ BlockAnalyzer::paintGL()
-             const uint offset = --m_fade_intensity[x];
-             const uint y = m_y + ( m_fade_pos[x] * ( BLOCK_HEIGHT + 1 ) );
-             if( y < (uint)height() )
--                drawTexture( m_fade_bars[offset], x * ( BLOCK_WIDTH + 1 ), y, 0, 0, BLOCK_WIDTH, height() );
-+                drawTexture( m_fade_bars[offset], x * ( BLOCK_WIDTH + 1 ), y, 0, 0 );
-         }
- 
-         if( m_fade_intensity[x] == 0 )
-             m_fade_pos[x] = m_rows;
- 
-         // REMEMBER: y is a number from 0 to m_rows, 0 means all blocks are glowing, m_rows means none are
--        drawTexture( m_barTexture, x * ( BLOCK_WIDTH + 1 ), y * ( BLOCK_HEIGHT + 1 ) + m_y, 0, y * ( BLOCK_HEIGHT + 1 ), m_barPixmap.width(), m_barPixmap.height() );
-+        drawTexture( m_barTexture, x * ( BLOCK_WIDTH + 1 ), y * ( BLOCK_HEIGHT + 1 ) + m_y, 0, y * ( BLOCK_HEIGHT + 1 ) );
- 
-         // Draw top bar
--        drawTexture( m_topBarTexture, x * ( BLOCK_WIDTH + 1 ), int( m_store[x] ) * ( BLOCK_HEIGHT + 1 ) + m_y, 0, 0, BLOCK_WIDTH, BLOCK_HEIGHT );
-+        drawTexture( m_topBarTexture, x * ( BLOCK_WIDTH + 1 ), int( m_store[x] ) * ( BLOCK_HEIGHT + 1 ) + m_y, 0, 0 );
-     }
- }
- 
- void
--BlockAnalyzer::drawTexture( GLuint textureId, int x, int y, int sx, int sy, int w, int h )
-+BlockAnalyzer::drawTexture( Texture texture, int x, int y, int sx, int sy )
- {
-     const GLfloat xf = x;
-     const GLfloat yf = y;
--    const GLfloat sxf = (GLfloat)sx / m_barPixmap.width();
--    const GLfloat syf = (GLfloat)sy / m_barPixmap.height();
--    const GLfloat wf = w - sx;
--    const GLfloat hf = h - sy;
-+    const GLfloat wf = texture.size.width() - sx;
-+    const GLfloat hf = texture.size.height() - sy;
-+    const GLfloat sxf = (GLfloat)sx / texture.size.width();
-+    const GLfloat syf = (GLfloat)sy / texture.size.height();
- 
-     glEnable( GL_TEXTURE_2D );
--    glBindTexture( GL_TEXTURE_2D, textureId );
-+    glBindTexture( GL_TEXTURE_2D, texture.id );
- 
-     glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
-     glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
-@@ -237,8 +234,8 @@ BlockAnalyzer::paletteChange( const QPalette& ) //virtual
- 
-     QPixmap topBar( BLOCK_WIDTH, BLOCK_HEIGHT );
-     topBar.fill( fg );
--    deleteTexture( m_topBarTexture );
--    m_topBarTexture = bindTexture( topBar );
-+    deleteTexture( m_topBarTexture.id );
-+    m_topBarTexture = Texture( bindTexture( topBar ), topBar.size() );
- 
-     const double dr = 15 * double( bg.red()   - fg.red() )   / ( m_rows * 16 );
-     const double dg = 15 * double( bg.green() - fg.green() ) / ( m_rows * 16 );
-@@ -275,14 +272,14 @@ BlockAnalyzer::paletteChange( const QPalette& ) //virtual
-             for( int z = 0; z < m_rows; ++z )
-                 f.fillRect( 0, z * ( BLOCK_HEIGHT + 1 ), BLOCK_WIDTH, BLOCK_HEIGHT, QColor( r + int( dr * Y ), g + int( dg * Y ), b + int( db * Y ) ) );
- 
--            deleteTexture( m_fade_bars[y] );
--            m_fade_bars[y] = bindTexture( fadeBar );
-+            deleteTexture( m_fade_bars[y].id );
-+            m_fade_bars[y] = Texture( bindTexture( fadeBar ), fadeBar.size() );
-         }
-     }
- 
-     const QImage image = m_barPixmap.toImage();
--    deleteTexture( m_barTexture );
--    m_barTexture = bindTexture( image.mirrored() ); // Flip vertically because OpenGL has inverted y coordinates
-+    deleteTexture( m_barTexture.id );
-+    m_barTexture = Texture( bindTexture( image.mirrored() ), image.size() ); // Flip vertically because OpenGL has inverted y coordinates
- 
-     drawBackground();
- }
-@@ -301,6 +298,6 @@ BlockAnalyzer::drawBackground()
-         for( int y = 0; y < m_rows; ++y )
-             p.fillRect( x * ( BLOCK_WIDTH + 1 ), y * ( BLOCK_HEIGHT + 1 ) + m_y, BLOCK_WIDTH, BLOCK_HEIGHT, bgdark );
- 
--    deleteTexture( m_background );
--    m_background = bindTexture( background );
-+    deleteTexture( m_background.id );
-+    m_background = Texture( bindTexture( background ), background.size() );
- }
-diff --git a/src/context/applets/analyzer/BlockAnalyzer.h b/src/context/applets/analyzer/BlockAnalyzer.h
-index 318289a..50097b7 100644
---- a/src/context/applets/analyzer/BlockAnalyzer.h
-+++ b/src/context/applets/analyzer/BlockAnalyzer.h
-@@ -20,6 +20,8 @@
- 
- #include "AnalyzerBase.h"
- 
-+#include <QSize>
-+
- class QMouseEvent;
- class QPalette;
- class QResizeEvent;
-@@ -50,21 +52,40 @@ protected:
-     void determineStep();
- 
- private:
--    void drawTexture( GLuint textureId, int x, int y, int sx, int sy, int w, int h );
-+    struct Texture
-+    {
-+        Texture() :
-+            id( 0 ),
-+            size( QSize() )
-+        {}
-+        Texture( const GLuint id_, const QSize size_ ) :
-+            id( id_ ),
-+            size( size_ )
-+        {}
-+        Texture( const Texture& texture )
-+        {
-+            id = texture.id;
-+            size = texture.size;
-+        }
-+        GLuint id;
-+        QSize size;
-+    };
-+
-+    void drawTexture( Texture texture, int x, int y, int sx, int sy );
- 
-     int m_columns, m_rows;      //number of rows and columns of blocks
-     uint m_y;                    //y-offset from top of widget
--    GLuint m_barTexture;
--    GLuint m_topBarTexture;
-+    Texture m_barTexture;
-+    Texture m_topBarTexture;
-     QPixmap m_barPixmap;
-     QVector<float> m_scope;      //so we don't create a vector every frame
-     QVector<float> m_store;  //current bar heights
-     QVector<float> m_yscale;
- 
--    QVector<GLuint>  m_fade_bars;
-+    QVector<Texture> m_fade_bars;
-     QVector<uint>    m_fade_pos;
-     QVector<int>     m_fade_intensity;
--    GLuint           m_background;
-+    Texture           m_background;
- 
-     float m_step; //rows to fall per frame
- };
--- 
-1.9.3
-

diff --git a/0473-Fix-TagLib-version-check.patch b/0473-Fix-TagLib-version-check.patch
deleted file mode 100644
index 8751870..0000000
--- a/0473-Fix-TagLib-version-check.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From fec8817c530ce42b6485fdabff6051784b8d9904 Mon Sep 17 00:00:00 2001
-From: Omar Plummer <omarplummer@imergetechnologies.com>
-Date: Fri, 7 Aug 2015 00:24:27 +0200
-Subject: [PATCH 473/474] Fix TagLib version check.
-
-The version check compared version strings lexicographically, so "1.7"
-(the min version) compared as greater than "1.10.0".
-
-BUG: 351013
-REVIEW: 124639
----
- cmake/modules/FindTaglib.cmake | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/cmake/modules/FindTaglib.cmake b/cmake/modules/FindTaglib.cmake
-index 76b83ac..f485a42 100644
---- a/cmake/modules/FindTaglib.cmake
-+++ b/cmake/modules/FindTaglib.cmake
-@@ -29,10 +29,10 @@ if(TAGLIBCONFIG_EXECUTABLE)
- 
-   exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE TAGLIB_VERSION)
- 
--  if(TAGLIB_VERSION STRLESS "${TAGLIB_MIN_VERSION}")
-+  if("${TAGLIB_MIN_VERSION}" VERSION_GREATER TAGLIB_VERSION)
-      message(STATUS "TagLib version too old: version searched :${TAGLIB_MIN_VERSION}, found ${TAGLIB_VERSION}")
-      set(TAGLIB_FOUND FALSE)
--  else(TAGLIB_VERSION STRLESS "${TAGLIB_MIN_VERSION}")
-+  else("${TAGLIB_MIN_VERSION}" VERSION_GREATER TAGLIB_VERSION)
- 
-      exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE TAGLIB_LIBRARIES)
- 
-@@ -42,7 +42,7 @@ if(TAGLIBCONFIG_EXECUTABLE)
-         set(TAGLIB_FOUND TRUE)
-      endif(TAGLIB_LIBRARIES AND TAGLIB_CFLAGS)
-      string(REGEX REPLACE " *-I" ";" TAGLIB_INCLUDES "${TAGLIB_CFLAGS}")
--  endif(TAGLIB_VERSION STRLESS "${TAGLIB_MIN_VERSION}") 
-+  endif("${TAGLIB_MIN_VERSION}" VERSION_GREATER TAGLIB_VERSION)
-   mark_as_advanced(TAGLIB_CFLAGS TAGLIB_LIBRARIES TAGLIB_INCLUDES)
- 
- else(TAGLIBCONFIG_EXECUTABLE)
--- 
-2.4.3
-

diff --git a/amarok.appdata.xml b/amarok.appdata.xml
deleted file mode 100644
index 8851d45..0000000
--- a/amarok.appdata.xml
+++ /dev/null
@@ -1,257 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<component type="desktop">
-  <id>amarok.desktop</id>
-  <metadata_license>CC0-1.0</metadata_license>
-  <name>Amarok</name>
-  <name xml:lang="ca">Amarok</name>
-  <name xml:lang="cs">Amarok</name>
-  <name xml:lang="da">Amarok</name>
-  <name xml:lang="de">Amarok</name>
-  <name xml:lang="en-GB">Amarok</name>
-  <name xml:lang="es">Amarok</name>
-  <name xml:lang="fi">Amarok</name>
-  <name xml:lang="id">Amarok</name>
-  <name xml:lang="it">Amarok</name>
-  <name xml:lang="nl">Amarok</name>
-  <name xml:lang="pa">ਅਮਰੋਕ</name>
-  <name xml:lang="pl">Amarok</name>
-  <name xml:lang="pt">Amarok</name>
-  <name xml:lang="pt-BR">Amarok</name>
-  <name xml:lang="sk">Amarok</name>
-  <name xml:lang="sl">Amarok</name>
-  <name xml:lang="sr">Амарок</name>
-  <name xml:lang="sr-Latn">Amarok</name>
-  <name xml:lang="sr-ijekavian">Амарок</name>
-  <name xml:lang="sr-ijekavianlatin">Amarok</name>
-  <name xml:lang="sv">Amarok</name>
-  <name xml:lang="uk">Amarok</name>
-  <name xml:lang="x-test">xxAmarokxx</name>
-  <description>
-    <p>Amarok is a free, versatile and powerful music player.</p>
-    <p xml:lang="ca">L'Amarok és un reproductor de música lliure, versàtil i potent.</p>
-    <p xml:lang="cs">Amarok je svobodný, univerzální a mocný přehrávač hudby.</p>
-    <p xml:lang="da">Amarok er en fri, alsidig og kraftfuld musikafspiller.</p>
-    <p xml:lang="de">Amarok ist eine freie, vielfältige und leistungsfähige Anwendung zur Musikwiedergabe.</p>
-    <p xml:lang="en-GB">Amarok is a free, versatile and powerful music player.</p>
-    <p xml:lang="es">Amarok es un potente y versátil reproductor de música libre.</p>
-    <p xml:lang="fi">Amarok on vapaa, monipuolinen ja tehokas musiikkisoitin.</p>
-    <p xml:lang="id">Amarok adalah bebas, serbaguna dan player musik perkasa.</p>
-    <p xml:lang="it">Amarok è un lettore musicale libero, versatile e potente.</p>
-    <p xml:lang="nl">Amarok is een vrije, veelzijdige en krachtige muziekspeler.</p>
-    <p xml:lang="pa">ਅਮਰੋਕ ਮੁਫ਼ਤ, ਲਚਕੀਲਾ ਤੇ ਮਜ਼ਬੂਤ ਸੰਗੀਤ ਪਲੇਅਰ ਹੈ।</p>
-    <p xml:lang="pl">Amarok jest darmowym, wszechstronnym i zaawansowanym odtwarzaczem muzyki.</p>
-    <p xml:lang="pt">O Amarok é um leitor multimédia gratuito, versátil e poderoso.</p>
-    <p xml:lang="pt-BR">Amarok é um reprodutor de músicas livre, versátil e poderoso.</p>
-    <p xml:lang="sk">Amarok je slobodný, univerzálny a silný prehrávač hudby.</p>
-    <p xml:lang="sl">Amarok je prost, vsestranski in zmogljiv predvajalnik glasbe.</p>
-    <p xml:lang="sr">Амарок је слободан, свестран и моћан музички плејер.</p>
-    <p xml:lang="sr-Latn">Amarok je slobodan, svestran i moćan muzički plejer.</p>
-    <p xml:lang="sr-ijekavian">Амарок је слободан, свестран и моћан музички плејер.</p>
-    <p xml:lang="sr-ijekavianlatin">Amarok je slobodan, svestran i moćan muzički plejer.</p>
-    <p xml:lang="sv">Amarok är en fri, mångsidig och kraftfull musikspelare.</p>
-    <p xml:lang="uk">Amarok — вільна, універсальна та потужна програма для відтворення звукових даних.</p>
-    <p xml:lang="x-test">xxAmarok is a free, versatile and powerful music player.xx</p>
-    <p>Features:</p>
-    <p xml:lang="ca">Característiques:</p>
-    <p xml:lang="cs">Vlastnosti:</p>
-    <p xml:lang="da">Funktioner:</p>
-    <p xml:lang="de">Funktionen:</p>
-    <p xml:lang="en-GB">Features:</p>
-    <p xml:lang="es">Funciones:</p>
-    <p xml:lang="fi">Ominaisuudet:</p>
-    <p xml:lang="id">Ciri yang khas:</p>
-    <p xml:lang="it">Funzionalità:</p>
-    <p xml:lang="nl">Mogelijkheden:</p>
-    <p xml:lang="pa">ਲੱਛਣ:</p>
-    <p xml:lang="pl">Możliwości:</p>
-    <p xml:lang="pt">Características:</p>
-    <p xml:lang="pt-BR">Funcionalidades:</p>
-    <p xml:lang="sk">Funkcie:</p>
-    <p xml:lang="sl">Zmožnosti:</p>
-    <p xml:lang="sr">Могућности:</p>
-    <p xml:lang="sr-Latn">Mogućnosti:</p>
-    <p xml:lang="sr-ijekavian">Могућности:</p>
-    <p xml:lang="sr-ijekavianlatin">Mogućnosti:</p>
-    <p xml:lang="sv">Funktioner:</p>
-    <p xml:lang="uk">Можливості:</p>
-    <p xml:lang="x-test">xxFeatures:xx</p>
-    <ul>
-      <li>Dynamic playlists matching different criteria</li>
-      <li xml:lang="ca">Llistes de reproducció dinàmiques coincidint amb diferents criteris</li>
-      <li xml:lang="cs">Dynamické seznamy skladeb odpovídající různým požadavkům</li>
-      <li xml:lang="da">Dynamiske spillelister som matcher forskellige kriterier</li>
-      <li xml:lang="de">Dynamische Wiedergabelisten nach verschiedenen Kriterien</li>
-      <li xml:lang="en-GB">Dynamic playlists matching different criteria</li>
-      <li xml:lang="es">Listas de reproducción dinámicas según distintos criterios</li>
-      <li xml:lang="fi">Eri ehtoja vastaavat dynaamiset soittolistat</li>
-      <li xml:lang="id">Playlist dinamis menyesuaikan kriteria yang berbeda</li>
-      <li xml:lang="it">Scalette dinamiche che verificano diversi criteri</li>
-      <li xml:lang="nl">Dynamische afspeellijsten die voldoen aan verschillende criteria</li>
-      <li xml:lang="pl">Dynamiczne listy odtwarzania spełniające różne warunki</li>
-      <li xml:lang="pt">Listas dinâmicas que correspondem a diferentes critérios</li>
-      <li xml:lang="pt-BR">Listas de músicas dinâmicas que correspondem a diferentes critérios</li>
-      <li xml:lang="sk">Dynamické zoznamy skladieb sledujúce rôzne kritériá</li>
-      <li xml:lang="sl">Dinamični seznami predvajanja temelječi na raznolikih pogojih</li>
-      <li xml:lang="sr">Динамичке листе нумера по различитим критеријумима.</li>
-      <li xml:lang="sr-Latn">Dinamičke liste numera po različitim kriterijumima.</li>
-      <li xml:lang="sr-ijekavian">Динамичке листе нумера по различитим критеријумима.</li>
-      <li xml:lang="sr-ijekavianlatin">Dinamičke liste numera po različitim kriterijumima.</li>
-      <li xml:lang="sv">Dynamiska spellistor som motsvarar olika kriterier</li>
-      <li xml:lang="uk">динамічні списки відтворення на основі різних критеріїв;</li>
-      <li xml:lang="x-test">xxDynamic playlists matching different criteriaxx</li>
-      <li>Collection managing with rating support</li>
-      <li xml:lang="ca">Gestió de les col·leccions amb implementació per a les qualificacions</li>
-      <li xml:lang="cs">Správa sbírek s podporou hodnocení</li>
-      <li xml:lang="da">Samlingshåndtering med understøttelse af vurderinger</li>
-      <li xml:lang="de">Verwaltung von Sammlungen wit Unterstützung durch Bewertungen</li>
-      <li xml:lang="en-GB">Collection managing with rating support</li>
-      <li xml:lang="es">Gestión de colección con uso de puntuaciones</li>
-      <li xml:lang="fi">Kokoelmanhallinta arviointituella</li>
-      <li xml:lang="id">Mengelola koleksi dengan dukungan peringkat</li>
-      <li xml:lang="it">Gestione della collezione con supporto per la valutazione</li>
-      <li xml:lang="nl">Beheer van verzamelingen met ondersteuning van waardering</li>
-      <li xml:lang="pl">Zarządzanie zbiorem wraz z obsługą ocen</li>
-      <li xml:lang="pt">Gestão da colecção com o suporte para classificações</li>
-      <li xml:lang="pt-BR">Gerenciamento de coleções com suporte a avaliação</li>
-      <li xml:lang="sk">Správa zbierok s podporou hodnotení</li>
-      <li xml:lang="sl">Upravljanje zbirk s podporo ocenam</li>
-      <li xml:lang="sr">Управљање збирком и подршка за оцењивање.</li>
-      <li xml:lang="sr-Latn">Upravljanje zbirkom i podrška za ocenjivanje.</li>
-      <li xml:lang="sr-ijekavian">Управљање збирком и подршка за оцењивање.</li>
-      <li xml:lang="sr-ijekavianlatin">Upravljanje zbirkom i podrška za ocenjivanje.</li>
-      <li xml:lang="sv">Samlingshantering med betygsstöd</li>
-      <li xml:lang="uk">керування збіркою з підтримкою оцінок;</li>
-      <li xml:lang="x-test">xxCollection managing with rating supportxx</li>
-      <li>Support for basic iPod, MTP and UMS music player devices</li>
-      <li xml:lang="ca">Implementació pels dispositius de reproducció de música bàsics com iPod, MTP i UMS</li>
-      <li xml:lang="cs">Podpora pro zařízení iPod, MTP a UMS</li>
-      <li xml:lang="da">Understøttelse af basale iPod-, MTP- og UMS-musikafspillere</li>
-      <li xml:lang="de">Unterstützung für Wiedergabegeräte wie iPod, MTP und UMS</li>
-      <li xml:lang="en-GB">Support for basic iPod, MTP and UMS music player devices</li>
-      <li xml:lang="es">Implementación básica de dispositivos de reproducción de música como iPod y los que usan los protocolos MTP y UMS</li>
-      <li xml:lang="fi">Tuki tavallisille iPod-, MTP- ja UMS-musiikkisoitinlaitteille</li>
-      <li xml:lang="id">Terutama mendukung perangkat player musik iPod, MTP dan UMS</li>
-      <li xml:lang="it">Supporto per i lettori musicali iPod, MTP e UMS</li>
-      <li xml:lang="nl">Ondersteuning voor basis iPod, MTP en UMS muziekspelerapparaten</li>
-      <li xml:lang="pl">Obsługa dla podstawowych urządzeń odtwarzających muzykę takich jak iPod, MTP oraz UMS</li>
-      <li xml:lang="pt">Suporte para os dispositivos leitores multimédia básicos de iPod, MTP e UMS</li>
-      <li xml:lang="pt-BR">Suporte a dispositivos básicos para reprodução de música iPod, MTP e UMS</li>
-      <li xml:lang="sk">Podpora pre základné prehrávacie zariadenia iPod, MTP a UMS</li>
-      <li xml:lang="sl">Podpora osnovnim napravam za predvajanje glasbe: iPod, MTP in UMS</li>
-      <li xml:lang="sr">Подршка за основне МТП и УМС музичке плејере, и и‑под.</li>
-      <li xml:lang="sr-Latn">Podrška za osnovne MTP i UMS muzičke plejere, i iPod.</li>
-      <li xml:lang="sr-ijekavian">Подршка за основне МТП и УМС музичке плејере, и и‑под.</li>
-      <li xml:lang="sr-ijekavianlatin">Podrška za osnovne MTP i UMS muzičke plejere, i iPod.</li>
-      <li xml:lang="sv">Stöd för grundläggande iPod-, MTP- och UMS-musikspelare</li>
-      <li xml:lang="uk">підтримка базової роботи з пристроями відтворення, що працюють за протоколами iPod, MTP та UMS;</li>
-      <li xml:lang="x-test">xxSupport for basic iPod, MTP and UMS music player devicesxx</li>
-      <li>Integrated Internet services: last.fm, Magnatune, Jamendo, Ampache, mp3tunes and more.</li>
-      <li xml:lang="ca">Serveis integrats d'Internet: last.fm, Magnatune, Jamendo, Ampache, mp3tunes i més</li>
-      <li xml:lang="cs">Integrované internetové služby: last.fm, Magnatune, Jamendo, Ampache, mp3tunes a další.</li>
-      <li xml:lang="da">Integrerede internettjenester: last.fm, Magnatune, Jamendo, Ampache, mp3tunes og andre.</li>
-      <li xml:lang="de">Integrierte Internet-Dienste: last.fm, Magnatune, Jamendo, Ampache, mp3tunes und weitere.</li>
-      <li xml:lang="en-GB">Integrated Internet services: last.fm, Magnatune, Jamendo, Ampache, mp3tunes and more.</li>
-      <li xml:lang="es">Servicios de Internet integrados: last.fm, Magnatune, Jamendo, Ampache, mp3tunes y más.</li>
-      <li xml:lang="fi">Sisäänrakennetut internetpalvelut: Last.fm, Magnatune, Jamendo, Ampache, mp3tunes ja muita.</li>
-      <li xml:lang="id">Layanan Internet terpadu: last.fm, Magnatune, Jamendo, Ampache, mp3tunes dan lebih banyak lagi.</li>
-      <li xml:lang="it">Servizi Internet integrati: last.fm, Magnatune, Jamendo, Ampache, mp3tunes e altri.</li>
-      <li xml:lang="nl">Geïntegreerde internetservices: last.fm, Magnatune, Jamendo, Ampache, mp3tunes en meer.</li>
-      <li xml:lang="pl">Zintegrowane usługi internetowe: last.fm, Magnatune, Jamendo, Ampache, mp3tunes i więcej.</li>
-      <li xml:lang="pt">Serviços da Internet integrados: last.fm, Magnatune, Jamendo, Ampache, mp3tunes entre outros.</li>
-      <li xml:lang="pt-BR">Serviços de Internet integrados: last.fm, Magnatune, Jamendo, Ampache, mp3tunes entre outros.</li>
-      <li xml:lang="sk">Integrované internetové služby: last.fm, Magnatune, Jamendo, Ampache, mp3tunes a viac.</li>
-      <li xml:lang="sl">Vgrajene internetne storitve: last.fm, Magnatune, Jamendo, Ampache, mp3tunes in več.</li>
-      <li xml:lang="sr">Уклопљени интернет сервиси: ЛастФМ, Магнатјун, Џамендо, Ампач, МП3‑тјунс, и други.</li>
-      <li xml:lang="sr-Latn">Uklopljeni internet servisi: last.fm, Magnatune, Jamendo, Ampache, MP3Tunes, i drugi.</li>
-      <li xml:lang="sr-ijekavian">Уклопљени интернет сервиси: ЛастФМ, Магнатјун, Џамендо, Ампач, МП3‑тјунс, и други.</li>
-      <li xml:lang="sr-ijekavianlatin">Uklopljeni internet servisi: last.fm, Magnatune, Jamendo, Ampache, MP3Tunes, i drugi.</li>
-      <li xml:lang="sv">Integrerade Internet-tjänster: last.fm, Magnatune, Jamendo, Ampache, mp3tunes med flera.</li>
-      <li xml:lang="uk">інтеграція з інтернет-службами: last.fm, Magnatune, Jamendo, Ampache, mp3tunes тощо;</li>
-      <li xml:lang="x-test">xxIntegrated Internet services: last.fm, Magnatune, Jamendo, Ampache, mp3tunes and more.xx</li>
-      <li>Scripting support</li>
-      <li xml:lang="ca">Implementació per a la creació d'scripts</li>
-      <li xml:lang="cs">Podpora pro skripty</li>
-      <li xml:lang="da">Understøttelse af scripts</li>
-      <li xml:lang="de">Skript-Unterstützung</li>
-      <li xml:lang="en-GB">Scripting support</li>
-      <li xml:lang="es">Uso de guiones</li>
-      <li xml:lang="fi">Skriptaustuki</li>
-      <li xml:lang="id">Dukungan skrip</li>
-      <li xml:lang="it">Supporto per la creazione di script</li>
-      <li xml:lang="nl">Ondersteuning voor scripting</li>
-      <li xml:lang="pl">Obsługa skryptów</li>
-      <li xml:lang="pt">Suporte para a programação</li>
-      <li xml:lang="pt-BR">Suporte a scripts</li>
-      <li xml:lang="sk">Podpora skriptovania</li>
-      <li xml:lang="sl">Podpora skriptom</li>
-      <li xml:lang="sr">Подршка за скриптовање.</li>
-      <li xml:lang="sr-Latn">Podrška za skriptovanje.</li>
-      <li xml:lang="sr-ijekavian">Подршка за скриптовање.</li>
-      <li xml:lang="sr-ijekavianlatin">Podrška za skriptovanje.</li>
-      <li xml:lang="sv">Stöd för skript</li>
-      <li xml:lang="uk">підтримка роботи зі скриптами;</li>
-      <li xml:lang="x-test">xxScripting supportxx</li>
-      <li>Cover manager</li>
-      <li xml:lang="ca">Gestor de cobertes</li>
-      <li xml:lang="cs">Správce obalů</li>
-      <li xml:lang="da">Omslagshåndtering</li>
-      <li xml:lang="de">Cover-Verwaltung</li>
-      <li xml:lang="en-GB">Cover manager</li>
-      <li xml:lang="es">Gestor de carátulas</li>
-      <li xml:lang="fi">Kansikuvien hallinta</li>
-      <li xml:lang="id">Manajer sampul</li>
-      <li xml:lang="it">Gestore delle copertine</li>
-      <li xml:lang="nl">Hoesbeheerder</li>
-      <li xml:lang="pl">Zarządzanie okładkami</li>
-      <li xml:lang="pt">Gestor de capas</li>
-      <li xml:lang="pt-BR">Gerenciador de capas</li>
-      <li xml:lang="sk">Správca obalov</li>
-      <li xml:lang="sl">Upravljalnik ovitkov</li>
-      <li xml:lang="sr">Менаџер омота.</li>
-      <li xml:lang="sr-Latn">Menadžer omota.</li>
-      <li xml:lang="sr-ijekavian">Менаџер омота.</li>
-      <li xml:lang="sr-ijekavianlatin">Menadžer omota.</li>
-      <li xml:lang="sv">Omslagshanterare</li>
-      <li xml:lang="uk">засіб керування збіркою зображень обкладинок;</li>
-      <li xml:lang="x-test">xxCover managerxx</li>
-      <li>Replay gain support</li>
-      <li xml:lang="ca">Implementació de la repetició de guany</li>
-      <li xml:lang="cs">Podpora Replay gain</li>
-      <li xml:lang="da">Replay Gain-understøttelse</li>
-      <li xml:lang="de">Unterstützung für Lautstärkeanpassung</li>
-      <li xml:lang="en-GB">Replay gain support</li>
-      <li xml:lang="es">Implementación de normalización de audio</li>
-      <li xml:lang="fi">Voimakkuudentasauksen tuki</li>
-      <li xml:lang="id">Dukungan gain mainkan lagi</li>
-      <li xml:lang="it">Supporto del guadagno di riproduzione</li>
-      <li xml:lang="nl">Ondersteuning van Replay gain</li>
-      <li xml:lang="pl">Obsługa trybu replay gain</li>
-      <li xml:lang="pt">Suporte para o ganho de reprodução</li>
-      <li xml:lang="pt-BR">Suporte a ajuste de ganho</li>
-      <li xml:lang="sk">Podpora replay gain</li>
-      <li xml:lang="sl">Podpora jakosti predvajanja</li>
-      <li xml:lang="sr">Подршка за поновљиво појачање.</li>
-      <li xml:lang="sr-Latn">Podrška za ponovljivo pojačanje.</li>
-      <li xml:lang="sr-ijekavian">Подршка за поновљиво појачање.</li>
-      <li xml:lang="sr-ijekavianlatin">Podrška za ponovljivo pojačanje.</li>
-      <li xml:lang="sv">Stöd för uppspelningsnivå</li>
-      <li xml:lang="uk">підтримка вирівнювання гучності.</li>
-      <li xml:lang="x-test">xxReplay gain supportxx</li>
-    </ul>
-  </description>
-  <url type="homepage">http://amarok.kde.org</url>
-  <url type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&amp;product=amarok</url>
-  <url type="help">http://docs.kde.org/development/en/extragear-multimedia/amarok/index.html</url>
-  <screenshots>
-    <screenshot type="default">
-      <image>http://kde.org/images/screenshots/amarok.png</image>
-    </screenshot>
-    <screenshot>
-      <image>https://amarok.kde.org/files/Amarok2.7screenie.png</image>
-    </screenshot>
-  </screenshots>
-  <project_group>KDE</project_group>
-  <provides>
-    <binary>amarok</binary>
-  </provides>
-</component>

diff --git a/amarok.spec b/amarok.spec
index 45d20ca..070e479 100644
--- a/amarok.spec
+++ b/amarok.spec
@@ -7,21 +7,19 @@
 
 Name:    amarok
 Summary: Media player
-Version: 2.8.0
-Release: 19%{?dist}
+Version: 2.8.90
+Release: 1%{?dist}
 
 # KDE e.V. may determine that future GPL versions are accepted
 License: GPLv2 or GPLv3
 Url:     http://amarok.kde.org/
-%global revision %(echo %{version} | cut -d. -f3)
-%if %{revision} >= 50
-%global stable unstable
-%else
+#global revision %(echo %{version} | cut -d. -f3)
+#if %{revision} >= 50
+#global stable unstable
+#else
 %global stable stable
-%endif
-Source0: http://download.kde.org/%{stable}/amarok/%{version}/src/amarok-%{version}.tar.bz2
-# http://quickgit.kde.org/?p=amarok.git&a=blob&&f=src%2Famarok.appdata.xml&o=plain
-Source1: amarok.appdata.xml
+#endif
+Source0: http://download.kde.org/%{stable}/amarok/%{version}/src/amarok-%{version}.tar.xz
 
 # Invoke a browser on the online UserBase documentation instead of KHelpCenter
 # for the help contents if the amarok-doc subpackage is not installed.
@@ -33,13 +31,6 @@ Patch1: amarok-2.8.0-no_kdewebkit.patch
 ## upstreamable patches
 
 ## upstream patches
-Patch0004: 0004-Code-cleanup-and-added-comments.patch
-Patch0014: 0014-Fix-compilation-and-linking-issues.patch
-Patch0039: 0039-Optimization-Don-t-draw-more-than-necessary.patch
-Patch0055: 0055-Enable-Wikipedia-over-SSL.patch
-Patch0070: 0070-Rewrite-Block-Analyzer-to-use-pure-OpenGL-instead-of.patch
-Patch0071: 0071-Fix-rendering-glitch-introduced-with-commit-f4a3f4f.patch
-Patch0473: 0473-Fix-TagLib-version-check.patch
 
 BuildRequires: curl-devel
 BuildRequires: desktop-file-utils
@@ -50,7 +41,7 @@ BuildRequires: kdelibs4-devel >= 4.9
 %if 0%{?kdewebkit}
 BuildRequires: kdelibs4-webkit-devel
 %endif
-%if 0%{?fedora} > 19
+%if 0%{?fedora} > 20
 BuildRequires: libappstream-glib
 %endif
 %if 0%{?fedora} > 18 || 0%{?rhel} > 6
@@ -148,14 +139,6 @@ Requires: %{name} = %{version}-%{release}
 %patch1 -p1 -b .no_kdewebkit
 %endif
 
-%patch0004 -p1 -b .0004
-%patch0014 -p1 -b .0014
-%patch0039 -p1 -b .0039
-%patch0055 -p1 -b .0055
-%patch0070 -p1 -b .0070
-%patch0071 -p1 -b .0071
-%patch0473 -p1 -b .0473
-
 
 %build
 mkdir %{_target_platform}
@@ -169,9 +152,6 @@ make %{?_smp_mflags} -C %{_target_platform}
 %install
 make install/fast DESTDIR=%{buildroot} -C %{_target_platform}
 
-test -f "%{buildroot}%{_kde4_datadir}/appdata/%{name}.appdata.xml" || \
-install -m644 -p -D %{SOURCE1} %{buildroot}%{_kde4_datadir}/appdata/%{name}.appdata.xml
-
 %find_lang amarok --with-kde --without-mo && mv amarok.lang amarok-doc.lang
 %find_lang amarok
 %find_lang amarokcollectionscanner_qt 
@@ -183,7 +163,9 @@ rm -fv %{buildroot}%{_kde4_libdir}/libamarok{-sqlcollection,_taglib,core,lib,pla
 
 
 %check
-appstream-util validate-relax --nonet %{buildroot}%{_kde4_datadir}/appdata/%{name}.appdata.xml ||:
+%if 0%{?fedora} > 20
+appstream-util validate-relax --nonet %{buildroot}%{_kde4_datadir}/appdata/%{name}.appdata.xml
+%endif
 desktop-file-validate %{buildroot}%{_kde4_datadir}/applications/kde4/amarok.desktop
 desktop-file-validate %{buildroot}%{_kde4_datadir}/applications/kde4/amarok_containers.desktop
 
@@ -232,12 +214,19 @@ fi
 %{_kde4_datadir}/kde4/services/amarok-data-engine-*.desktop
 %{_kde4_datadir}/kde4/services/amarok_collection-audiocdcollection.desktop
 %{_kde4_datadir}/kde4/services/amarok_collection-daapcollection.desktop
-%{_kde4_datadir}/kde4/services/amarok_collection-mysqlecollection.desktop
-%{_kde4_datadir}/kde4/services/amarok_collection-mysqlservercollection.desktop
+%{_kde4_datadir}/kde4/services/amarok_collection-mysqlcollection.desktop
 %{_kde4_datadir}/kde4/services/amarok_collection-playdarcollection.desktop
 %{_kde4_datadir}/kde4/services/amarok_collection-umscollection.desktop
 %{_kde4_datadir}/kde4/services/amarok_collection-upnpcollection.desktop
+%{_kde4_datadir}/kde4/services/amarok_importer-amarok.desktop
+%{_kde4_datadir}/kde4/services/amarok_importer-banshee.desktop
+%{_kde4_datadir}/kde4/services/amarok_importer-clementine.desktop
+%{_kde4_datadir}/kde4/services/amarok_importer-fastforward.desktop
+%{_kde4_datadir}/kde4/services/amarok_importer-itunes.desktop
+%{_kde4_datadir}/kde4/services/amarok_importer-rhythmbox.desktop
 %{_kde4_datadir}/kde4/services/amarok_service_*.desktop
+%{_kde4_datadir}/kde4/services/amarok_storage-mysqlestorage.desktop
+%{_kde4_datadir}/kde4/services/amarok_storage-mysqlserverstorage.desktop
 %{_kde4_datadir}/kde4/services/*.protocol
 %{_kde4_datadir}/kde4/services/ServiceMenus/amarok_append.desktop
 %{_kde4_datadir}/kde4/servicetypes/*.desktop
@@ -250,15 +239,22 @@ fi
 %{_kde4_libdir}/kde4/amarok_collection-ipodcollection.so
 %{_kde4_libdir}/kde4/amarok_collection-mtpcollection.so
 %endif
-%{_kde4_libdir}/kde4/amarok_collection-mysqlecollection.so
-%{_kde4_libdir}/kde4/amarok_collection-mysqlservercollection.so
+%{_kde4_libdir}/kde4/amarok_collection-mysqlcollection.so
 %{_kde4_libdir}/kde4/amarok_collection-playdarcollection.so
 %{_kde4_libdir}/kde4/amarok_collection-umscollection.so
 %{_kde4_libdir}/kde4/amarok_collection-upnpcollection.so
 %{_kde4_libdir}/kde4/amarok_containment_*.so
 %{_kde4_libdir}/kde4/amarok_context_applet_*.so
 %{_kde4_libdir}/kde4/amarok_data_engine_*.so
+%{_kde4_libdir}/kde4/amarok_importer-amarok.so
+%{_kde4_libdir}/kde4/amarok_importer-banshee.so
+%{_kde4_libdir}/kde4/amarok_importer-clementine.so
+%{_kde4_libdir}/kde4/amarok_importer-fastforward.so
+%{_kde4_libdir}/kde4/amarok_importer-itunes.so
+%{_kde4_libdir}/kde4/amarok_importer-rhythmbox.so
 %{_kde4_libdir}/kde4/amarok_service_*.so
+%{_kde4_libdir}/kde4/amarok_storage-mysqlestorage.so
+%{_kde4_libdir}/kde4/amarok_storage-mysqlserverstorage.so
 %{_kde4_libdir}/kde4/kcm_amarok_service*.so
 %{_datadir}/dbus-1/interfaces/*.xml
 %{_datadir}/mime/packages/amzdownloader.xml
@@ -293,6 +289,9 @@ fi
 
 
 %changelog
+* Fri Sep 11 2015 Rex Dieter <rdieter@fedoraproject.org> 2.8.90-1
+- 2.8.90
+
 * Fri Aug 28 2015 Rex Dieter <rdieter@fedoraproject.org> 2.8.0-19
 - backport upstream FindTaglib.cmake fix
 

diff --git a/sources b/sources
index e1a5962..40aa601 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-53cfcb4819668b10e13b061478c7b32a  amarok-2.8.0.tar.bz2
+a1c914cb0dac7cac4d0f7dc1a4c46179  amarok-2.8.90.tar.xz

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-06 18:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-06 18:05 [rpms/amarok] epel10: 2.8.90 Rex Dieter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox