Import audio/last.fm, the official Last.fm radio player application.

OK steven@, sthen@
This commit is contained in:
dcoppa 2010-05-31 19:37:36 +00:00
parent da0f8a4ed5
commit 3c21b3f46a
38 changed files with 985 additions and 0 deletions

102
audio/last.fm/Makefile Normal file
View File

@ -0,0 +1,102 @@
# $OpenBSD: Makefile,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
COMMENT = official Last.fm client
DISTNAME = last.fm-1.4.2.58240.src
EXTRACT_SUFX = .tar.bz2
PKGNAME = ${DISTNAME:S/.src//}
SHARED_ONLY = Yes
SHARED_LIBS = Moose 0.0 \
LastFmTools 0.0 \
LastFmFingerprint 0.0
CATEGORIES = audio
MAINTAINER = David Coppa <dcoppa@openbsd.org>
HOMEPAGE = http://www.last.fm/
MASTER_SITES = ${HOMEPAGE:S/www./cdn./}client/src/
# GPLv2
PERMIT_PACKAGE_CDROM = Yes
PERMIT_PACKAGE_FTP = Yes
PERMIT_DISTFILES_CDROM =Yes
PERMIT_DISTFILES_FTP = Yes
WANTLIB = X11 c m pthread sndio stdc++ z
MODULES = x11/qt4
LIB_DEPENDS = QtGui.>=8,QtNetwork.>=7,QtSql.>=7,QtXml.>=7::x11/qt4 \
fftw3f.>=4::math/fftw3,float \
gpod.>=600.0::audio/libgpod \
mad::audio/libmad \
samplerate.>=1::audio/libsamplerate \
portaudio::audio/portaudio-svn
USE_X11 = Yes
NO_REGRESS = Yes
CONFIGURE_STYLE = simple
WRKDIST = ${WRKDIR}/${DISTNAME:S/.src//}
LASTFM_LIBDIR = ${PREFIX}/lib/last.fm
LASTFM_DATADIR = ${PREFIX}/share/last.fm
MOOSELIB = ${WRKBUILD}/bin/libMoose.so.${LIBMoose_VERSION}
TOOLSLIB = ${WRKBUILD}/bin/libLastFmTools.so.${LIBLastFmTools_VERSION}
FPLIB = \
${WRKBUILD}/bin/libLastFmFingerprint.so.${LIBLastFmFingerprint_VERSION}
pre-patch:
cd ${WRKSRC}; perl -i -pe 's/\r$$//' \
`find . -type f -name *.h -or -name *.cpp`
pre-configure:
${SUBST_CMD} \
${WRKSRC}/src/container.cpp \
${WRKSRC}/src/libFingerprint/fplib/pro_qmake/fplib.pro \
${WRKSRC}/src/libFingerprint/libFingerprint.pro \
${WRKSRC}/src/libMoose/libMoose.pro \
${WRKSRC}/src/libMoose/MooseCommon.cpp \
${WRKSRC}/src/libUnicorn/libUnicorn.pro \
${WRKSRC}/src/mediadevices/ipod/ipod.pro \
${WRKSRC}/src/output/portAudio/portAudio.pro \
${WRKSRC}/src/src.pro \
${WRKSRC}/src/transcode/mad/mad.pro
# Use system portaudio.h
@rm -f \
${WRKSRC}/src/output/portAudio/PortAudio/include/portaudio.h
do-install:
${INSTALL_PROGRAM} ${WRKBUILD}/bin/last.fm ${PREFIX}/bin/last.fm
${INSTALL_DATA} ${MOOSELIB} ${PREFIX}/lib/
${INSTALL_DATA} ${TOOLSLIB} ${PREFIX}/lib/
${INSTALL_DATA} ${FPLIB} ${PREFIX}/lib/
${INSTALL_DATA_DIR} ${LASTFM_LIBDIR}/services
${INSTALL_DATA} ${WRKBUILD}/bin/services/*.so \
${LASTFM_LIBDIR}/services/
${INSTALL_DATA_DIR} ${LASTFM_DATADIR}
${INSTALL_DATA_DIR} ${LASTFM_DATADIR}/buttons
${INSTALL_DATA_DIR} ${LASTFM_DATADIR}/icons
${INSTALL_DATA} ${WRKBUILD}/bin/data/*.{gif,mng,png} \
${LASTFM_DATADIR}/
${INSTALL_DATA} ${WRKBUILD}/bin/data/buttons/*.png \
${LASTFM_DATADIR}/buttons/
${INSTALL_DATA} ${WRKBUILD}/bin/data/icons/*.{ico,png} \
${LASTFM_DATADIR}/icons/
${INSTALL_DATA} ${FILESDIR}/*.png ${LASTFM_DATADIR}/icons/
${INSTALL_DATA_DIR} ${PREFIX}/share/applications
${INSTALL_DATA} ${FILESDIR}/lastfm.desktop \
${PREFIX}/share/applications/
post-install:
${SUBST_CMD} ${PREFIX}/share/applications/lastfm.desktop
@rm -f \
${PREFIX}/share/applications/lastfm.desktop.beforesubst
.include <bsd.port.mk>

5
audio/last.fm/distinfo Normal file
View File

@ -0,0 +1,5 @@
MD5 (last.fm-1.4.2.58240.src.tar.bz2) = l300lzbJzXPksCjDkomEZw==
RMD160 (last.fm-1.4.2.58240.src.tar.bz2) = 3YrfkVFHhv0x7o6PTof5LInrfPk=
SHA1 (last.fm-1.4.2.58240.src.tar.bz2) = txJnuXix1Ewah35FhV0k/N8xN6k=
SHA256 (last.fm-1.4.2.58240.src.tar.bz2) = bmbzQIAhs+pRIiRFFZnoG9D7nt5GRXXZrK4swW1bZCk=
SIZE (last.fm-1.4.2.58240.src.tar.bz2) = 7302117

View File

@ -0,0 +1,10 @@
[Desktop Entry]
Encoding=UTF-8
Name=Last.fm
GenericName=Official Last.fm radio player
Exec=last.fm
Icon=${LOCALBASE}/share/last.fm/icons/as.png
Type=Application
Terminal=false
StartupNotify=false
Categories=AudioVideo;Player;

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,17 @@
$OpenBSD: patch-LastFM_pro,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- LastFM.pro.orig Thu May 20 12:20:44 2010
+++ LastFM.pro Fri May 21 12:20:16 2010
@@ -12,11 +12,9 @@ SUBDIRS = src/libUnicorn \
src/libFingerprint/ \
src \
src/httpinput \
- src/mediadevices/itunes \
src/mediadevices/ipod \
- src/Helper \
- src/transcode/mad
- #src/transcode/mpglib
+ src/transcode/mad \
+ src/output/portAudio
win32 {
SUBDIRS += src/extensions/skype \

View File

@ -0,0 +1,29 @@
$OpenBSD: patch-configure,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- configure.orig Thu May 20 13:11:37 2010
+++ configure Thu May 20 13:17:12 2010
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
function header {
echo -e "\033[0;34m==>\033[0;0;1m $1 \033[0;0m"
@@ -11,16 +11,10 @@ function middle {
header "Last.fm Configure"
middle "Checking for qmake..."
-qmake-qt4 -v &> /dev/null
-if [[ $? == 127 ]]
+qmake4 -v &> /dev/null
+if [[ $? == 0 ]]
then
- qmake -v &> /dev/null
- if [[ $? == 0 ]]
- then
- QMAKE=qmake
- fi
-else
- QMAKE=qmake-qt4
+ QMAKE=qmake4
fi
if [[ $? == 127 ]]

View File

@ -0,0 +1,101 @@
$OpenBSD: patch-src_container_cpp,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/container.cpp.orig Fri May 28 12:41:13 2010
+++ src/container.cpp Fri May 28 12:42:05 2010
@@ -103,7 +103,6 @@ Container::setupUi()
{
ui.setupUi( this );
- ui.actionCheckForUpdates->setMenuRole( QAction::ApplicationSpecificRole );
ui.actionAboutLastfm->setMenuRole( QAction::AboutRole );
ui.actionSettings->setMenuRole( QAction::PreferencesRole );
ui.actionStop->setVisible( false );
@@ -294,7 +293,6 @@ void
Container::applyPlatformSpecificTweaks()
{
#ifdef Q_WS_X11
- ui.actionCheckForUpdates->setVisible( false );
ui.actionQuit->setShortcut( tr( "CTRL+Q" ) );
ui.actionQuit->setText( tr("&Quit") );
@@ -390,7 +388,6 @@ Container::setupConnections()
connect( ui.actionDashboard, SIGNAL(triggered()), SLOT(gotoProfile()) );
connect( ui.actionSettings, SIGNAL(triggered()), SLOT(showSettingsDialog()) );
connect( ui.actionGetPlugin, SIGNAL(triggered()), SLOT(getPlugin()) );
- connect( ui.actionCheckForUpdates, SIGNAL(triggered()), SLOT(checkForUpdates()) );
connect( ui.actionAddUser, SIGNAL(triggered()), SLOT(addUser()) );
connect( ui.actionDeleteUser, SIGNAL(triggered()), SLOT(deleteUser()) );
connect( ui.actionToggleScrobbling, SIGNAL(triggered()), SLOT(toggleScrobbling()) );
@@ -416,7 +413,6 @@ Container::setupConnections()
connect( The::webService(), SIGNAL(failure( Request* )), SLOT(webServiceFailure( Request* )), Qt::QueuedConnection );
connect( &The::settings(), SIGNAL( userSettingsChanged( LastFmUserSettings& ) ), SLOT( updateUserStuff( LastFmUserSettings& ) ) );
connect( &The::settings(), SIGNAL( appearanceSettingsChanged() ), SLOT( updateAppearance() ) );
- connect( m_updater, SIGNAL( updateCheckDone( bool, bool, QString ) ), SLOT( updateCheckDone( bool, bool, QString ) ) );
connect( ui.stack, SIGNAL(currentChanged( int )), SIGNAL(stackIndexChanged( int )) );
connect( ui.actionMyProfile, SIGNAL(triggered()), SLOT(toggleSidebar()) );
connect( ui.actionPlaylist, SIGNAL(triggered()), SLOT(addToMyPlaylist()) );
@@ -519,7 +515,7 @@ Container::loadExtensions()
// Hack to get it working with VS2005
QString path = qApp->applicationDirPath();
#else
- QString path = qApp->applicationDirPath() + "/extensions";
+ QString path = "${PREFIX}/lib/last.fm/extensions";
#endif
#ifndef QT_NO_DEBUG
@@ -890,56 +886,6 @@ Container::getPlugin()
{
ConfigWizard( this, ConfigWizard::Plugin ).exec();
ui.restStateWidget->updatePlayerNames();
-}
-
-
-void
-Container::checkForUpdates( bool invokedByUser )
-{
- m_userCheck = invokedByUser;
- if ( m_userCheck )
- {
- QApplication::setOverrideCursor( QCursor( Qt::WaitCursor ) );
- }
-
- m_updater->checkForUpdates();
-}
-
-
-void
-Container::updateCheckDone( bool updatesAvailable, bool error, QString errorMsg )
-{
- QApplication::restoreOverrideCursor();
-
- if ( error )
- {
- // Can't connect to the internet
- LOG( 2, "Update check failed. Error: " << errorMsg << "\n" );
- if ( m_userCheck )
- {
- LastMessageBox::critical( tr( "Connection Problem" ),
- tr( "Last.fm couldn't connect to the Internet to check "
- "for updates.\n\nError: %1" ).arg( errorMsg ) );
- }
- return;
- }
-
- // No connection error, let's see if we have updates
- if ( !updatesAvailable )
- {
- LOG( 3, "Update check said no updates available.\n" );
- if ( m_userCheck )
- {
- LastMessageBox::information( tr( "Up To Date" ),
- tr( "No updates available. All your software is up to date!\n" ) );
- }
- return;
- }
-
- // Go ahead and launch update wizard
- LOG( 3, "New updates available. Launching update wizard.\n" );
-
- UpdateWizard( *m_updater, this ).exec();
}

View File

@ -0,0 +1,28 @@
$OpenBSD: patch-src_container_h,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/container.h.orig Fri May 28 08:55:19 2010
+++ src/container.h Fri May 28 08:55:19 2010
@@ -51,7 +51,6 @@ class Container : public QMainWindow
std::vector<class CPluginInfo>& getPluginList();
public slots:
- void checkForUpdates( bool invokedByUser = true );
void showSettingsDialog( int startPage = 0 );
void showDiagnosticsDialog();
void showShareDialog();
@@ -77,7 +76,7 @@ class Container : public QMainWindow
bool event( QEvent* );
private:
- struct : Ui::MainWindow
+ struct tagui : Ui::MainWindow
{
class ScrobbleLabel* scrobbleLabel;
class RestStateWidget* restStateWidget;
@@ -159,7 +158,6 @@ class Container : public QMainWindow
void inviteAFriend();
void onUserSelected( QAction* action );
- void updateCheckDone( bool updatesAvailable, bool error, QString errorMsg );
void updateWindowTitle( const MetaData& );
void updateUserStuff( LastFmUserSettings& user );
void updateAppearance();

View File

@ -0,0 +1,58 @@
$OpenBSD: patch-src_iconshack_cpp,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/iconshack.cpp.orig Thu May 27 11:50:48 2010
+++ src/iconshack.cpp Thu May 27 16:48:05 2010
@@ -73,6 +73,33 @@ IconShack::GetDisabledUserIcon( MooseEnums::UserIconCo
}
+#ifdef Q_WS_X11
+QPixmap
+IconShack::GetTrayIcon( MooseEnums::UserIconColour eColour )
+{
+ if ( !mbIconsLoaded )
+ LoadIcons();
+
+ if ( maTrayIcons[ eColour ].isNull() )
+ return QPixmap( 22, 22 );
+ else
+ return maTrayIcons[ eColour ];
+}
+
+
+QPixmap
+IconShack::GetDisabledTrayIcon( MooseEnums::UserIconColour eColour )
+{
+ if ( !mbIconsLoaded )
+ LoadIcons();
+
+ if ( maDisabledTrayIcons[ eColour ].isNull() )
+ return QPixmap( 22, 22 );
+ else
+ return maDisabledTrayIcons[ eColour ];
+}
+#endif
+
void
IconShack::LoadIcons()
{
@@ -105,6 +132,20 @@ IconShack::LoadIcons()
maDisabledIcons[MooseEnums::eGreen].load( MooseUtils::dataPath( "icons/user_disabled.png" ) );
maDisabledIcons[MooseEnums::eOrange].load( MooseUtils::dataPath( "icons/user_disabled.png" ) );
maDisabledIcons[MooseEnums::eBlack].load( MooseUtils::dataPath( "icons/user_disabled.png" ) );
+
+#ifdef Q_WS_X11
+ maTrayIcons[MooseEnums::eRed].load( MooseUtils::dataPath( "icons/user_red22.png" ) );
+ maTrayIcons[MooseEnums::eBlue].load( MooseUtils::dataPath( "icons/user_blue22.png" ) );
+ maTrayIcons[MooseEnums::eGreen].load( MooseUtils::dataPath( "icons/user_green22.png" ) );
+ maTrayIcons[MooseEnums::eOrange].load( MooseUtils::dataPath( "icons/user_orange22.png" ) );
+ maTrayIcons[MooseEnums::eBlack].load( MooseUtils::dataPath( "icons/user_black22.png" ) );
+
+ maDisabledTrayIcons[MooseEnums::eRed].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) );
+ maDisabledTrayIcons[MooseEnums::eBlue].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) );
+ maDisabledTrayIcons[MooseEnums::eGreen].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) );
+ maDisabledTrayIcons[MooseEnums::eOrange].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) );
+ maDisabledTrayIcons[MooseEnums::eBlack].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) );
+#endif
mbIconsLoaded = true;

View File

@ -0,0 +1,27 @@
$OpenBSD: patch-src_iconshack_h,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/iconshack.h.orig Thu May 27 16:46:15 2010
+++ src/iconshack.h Thu May 27 16:52:31 2010
@@ -75,6 +75,12 @@ class IconShack (public)
**************************************************************************/
QPixmap GetDisabledUserIcon( MooseEnums::UserIconColour eColour);
+#ifdef Q_WS_X11
+ QPixmap GetTrayIcon( MooseEnums::UserIconColour eColour );
+
+ QPixmap GetDisabledTrayIcon( MooseEnums::UserIconColour eColour );
+#endif
+
private:
/*********************************************************************/ /**
@@ -89,6 +95,10 @@ class IconShack (public)
QPixmap maGoodIconsExpanded[5];
QPixmap maExclIcons[5];
QPixmap maDisabledIcons[5];
+#ifdef Q_WS_X11
+ QPixmap maTrayIcons[5];
+ QPixmap maDisabledTrayIcons[5];
+#endif
bool mbIconsLoaded;
};

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-src_lastfmapplication_cpp,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/lastfmapplication.cpp.orig Fri May 21 10:53:29 2010
+++ src/lastfmapplication.cpp Fri May 21 11:00:25 2010
@@ -211,8 +211,9 @@ LastFmApplication::init()
if ( The::settings().isFirstRun() )
{
+ QFile mediadevicedb( MooseUtils::savePath( "mediadevice.db" ) );
LOG( 3, "First run, launching config wizard\n" );
- QFile( MooseUtils::savePath( "mediadevice.db" ) ).remove();
+ mediadevicedb.remove();
ConfigWizard wiz( NULL, ConfigWizard::Login );
if ( wiz.exec() == QDialog::Rejected )

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_lastfmapplication_h,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/lastfmapplication.h.orig Fri May 21 10:53:52 2010
+++ src/lastfmapplication.h Fri May 21 10:54:14 2010
@@ -24,6 +24,8 @@
#ifndef LAST_FM_APPLICATION_H
#define LAST_FM_APPLICATION_H
+#include <unistd.h>
+
#include "RadioEnums.h"
#include "metadata.h"
#include "StationUrl.h"

View File

@ -0,0 +1,17 @@
$OpenBSD: patch-src_libFingerprint_fplib_pro_qmake_fplib_pro,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/libFingerprint/fplib/pro_qmake/fplib.pro.orig Fri May 21 12:47:08 2010
+++ src/libFingerprint/fplib/pro_qmake/fplib.pro Fri May 21 13:27:07 2010
@@ -23,10 +23,9 @@ CONFIG(release, release|debug) {
DEFINES += NDEBUG
}
-INCLUDEPATH += ../include \
- ../src \
- ../../libs/fftw/src/api \
- ../../../../res/libsamplerate
+INCLUDEPATH += ${LOCALBASE}/include \
+ ../include \
+ ../src
win32 {
#QMAKE_LFLAGS += /NODEFAULTLIB

View File

@ -0,0 +1,27 @@
$OpenBSD: patch-src_libFingerprint_libFingerprint_pro,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/libFingerprint/libFingerprint.pro.orig Tue Dec 18 15:18:19 2007
+++ src/libFingerprint/libFingerprint.pro Fri May 21 16:05:12 2010
@@ -1,5 +1,5 @@
TEMPLATE = lib
-VERSION = 1.0.0
+VERSION = ${LIBLastFmFingerprint_VERSION}.0
CONFIG += dll
TARGET = LastFmFingerprint
QT += xml network sql
@@ -12,7 +12,7 @@ DESTDIR = $$BIN_DIR
INCLUDEPATH += \
fplib/include \
../src/ \
- $$ROOT_DIR/res/mad
+ ${LOCALBASE}/include
HEADERS += \
MP3_Source_Qt.h \
@@ -40,6 +40,7 @@ unix:mac {
unix:!mac {
LIBPATH += $$BUILD_DIR/../fplib
+ LIBPATH += ${LOCALBASE}/lib
LIBS += $$ROOT_DIR/build/fplib/libfplib$${EXT}.a -lsamplerate -lfftw3f
}

View File

@ -0,0 +1,20 @@
$OpenBSD: patch-src_libMoose_LastFmSettings_h,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/libMoose/LastFmSettings.h.orig Tue May 25 15:05:55 2010
+++ src/libMoose/LastFmSettings.h Tue May 25 15:06:44 2010
@@ -209,7 +209,6 @@ class MOOSE_DLLEXPORT LastFmSettings : public AppSetti
// NOTE private as app object has control, the LoginWidget friend is
// unsavoury but the code is safe as long as SettingsDialog is the only
// object that calls save( false ) on it. This sucks on many levels.
- void setCurrentUsername( QString username );
friend class LastFmApplication;
friend class LoginWidget;
@@ -225,6 +224,8 @@ class MOOSE_DLLEXPORT LastFmSettings : public AppSetti
LastFmUserSettings& user( QString username ) const;
LastFmUserSettings& currentUser();
+
+ void setCurrentUsername( QString username );
bool deleteUser( QString username );
bool isExistingUser( QString username ) const { return UsersSettings<QSettings>().contains( username + "/Password" ); }

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-src_libMoose_MooseCommon_cpp,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/libMoose/MooseCommon.cpp.orig Fri May 21 17:11:55 2010
+++ src/libMoose/MooseCommon.cpp Fri May 21 17:14:19 2010
@@ -43,7 +43,7 @@ namespace MooseUtils
QString
dataPath( QString file )
{
- return QApplication::applicationDirPath() + "/data/" + file;
+ return "${PREFIX}/share/last.fm/" + file;
}
@@ -108,7 +108,7 @@ servicePath( QString name )
// Hack to get it working with VS2005
dirPath = qApp->applicationDirPath();
#else
- dirPath = qApp->applicationDirPath() + "/services";
+ dirPath = "${PREFIX}/lib/last.fm/services";
#endif
#ifndef QT_NO_DEBUG

View File

@ -0,0 +1,10 @@
$OpenBSD: patch-src_libMoose_libMoose_pro,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/libMoose/libMoose.pro.orig Fri May 21 15:48:52 2010
+++ src/libMoose/libMoose.pro Fri May 21 15:49:19 2010
@@ -1,5 +1,5 @@
TEMPLATE = lib
-VERSION = 1.0.0
+VERSION = ${LIBMoose_VERSION}.0
CONFIG += dll
TARGET = Moose
QT += xml network gui

View File

@ -0,0 +1,13 @@
$OpenBSD: patch-src_libUnicorn_CachedHttp_cpp,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/libUnicorn/CachedHttp.cpp.orig Thu May 20 20:37:39 2010
+++ src/libUnicorn/CachedHttp.cpp Thu May 20 20:46:36 2010
@@ -82,7 +82,8 @@ CachedHttp::~CachedHttp()
void
CachedHttp::init()
{
- QDir( cachePath() ).mkdir( cachePath() ); //rofl@Qt.com
+ QDir cachedir( cachePath() );
+ cachedir.mkdir( cachePath() ); //rofl@Qt.com
applyProxy();

View File

@ -0,0 +1,28 @@
$OpenBSD: patch-src_libUnicorn_Settings_h,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/libUnicorn/Settings.h.orig Thu May 20 20:32:32 2010
+++ src/libUnicorn/Settings.h Thu May 20 20:33:19 2010
@@ -128,19 +128,19 @@ class UNICORN_DLLEXPORT SharedSettings : public QObjec
SharedSettings( QObject* parent ) : QObject( parent ) { }
bool isUseProxy() const { return SharedQSettings().value( "ProxyEnabled" ).toInt() == 1; }
- void setUseProxy( bool v ) { SharedQSettings().setValue( "ProxyEnabled", v ? "1" : "0" ); }
+ void setUseProxy( bool v ) { return SharedQSettings().setValue( "ProxyEnabled", v ? "1" : "0" ); }
QString getProxyHost() const { return SharedQSettings().value( "ProxyHost" ).toString(); }
- void setProxyHost( QString v ) { SharedQSettings().setValue( "ProxyHost", v ); }
+ void setProxyHost( QString v ) { return SharedQSettings().setValue( "ProxyHost", v ); }
int getProxyPort() const { return SharedQSettings().value( "ProxyPort" ).toInt(); }
- void setProxyPort( int v ) { SharedQSettings().setValue( "ProxyPort", v ); }
+ void setProxyPort( int v ) { return SharedQSettings().setValue( "ProxyPort", v ); }
QString getProxyUser() const { return SharedQSettings().value( "ProxyUser" ).toString(); }
- void setProxyUser( QString v ) { SharedQSettings().setValue( "ProxyUser", v ); }
+ void setProxyUser( QString v ) { return SharedQSettings().setValue( "ProxyUser", v ); }
QString getProxyPassword() const { return SharedQSettings().value( "ProxyPassword" ).toString(); }
- void setProxyPassword( QString v ) { SharedQSettings().setValue( "ProxyPassword", v ); }
+ void setProxyPassword( QString v ) { return SharedQSettings().setValue( "ProxyPassword", v ); }
protected:

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-src_libUnicorn_draglabel_cpp,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/libUnicorn/draglabel.cpp.orig Thu May 27 22:50:30 2010
+++ src/libUnicorn/draglabel.cpp Thu May 27 22:50:51 2010
@@ -324,6 +324,10 @@ DragLabel::calcFontProperties( DragItem& d, bool isHea
{
rect.setHeight( fm.height() );
}
+ if ( fm.width( d.m_text ) > rect.width() )
+ {
+ rect.setWidth( fm.width( d.m_text ) );
+ }
// boundingRect sometimes returns negative values so make sure it's at 0, 0
rect.moveTo( 0, 0 );

View File

@ -0,0 +1,10 @@
$OpenBSD: patch-src_libUnicorn_libUnicorn_pro,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/libUnicorn/libUnicorn.pro.orig Fri May 21 16:07:04 2010
+++ src/libUnicorn/libUnicorn.pro Fri May 21 16:07:51 2010
@@ -1,5 +1,5 @@
TEMPLATE = lib
-VERSION = 1.0.0
+VERSION = ${LIBLastFmTools_VERSION}.0
CONFIG += dll
TARGET = LastFmTools
QT += xml network gui sql

View File

@ -0,0 +1,18 @@
$OpenBSD: patch-src_mediadevices_ipod_ipod_pro,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/mediadevices/ipod/ipod.pro.orig Tue Dec 18 15:18:20 2007
+++ src/mediadevices/ipod/ipod.pro Fri May 21 15:02:54 2010
@@ -8,6 +8,14 @@ include( ../../../definitions.pro.inc )
HEADERS = IpodDevice.h
SOURCES = IpodDevice.cpp
+unix:openbsd* {
+ INCLUDEPATH += ${LOCALBASE}/include/gpod-1.0 ${LOCALBASE}/include/glib-2.0 ${LOCALBASE}/lib/glib-2.0/include
+
+ LIBPATH += ${LOCALBASE}/lib
+
+ LIBS += -lgpod
+}
+
linux* {
LIBS += -lgpod

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-src_output_portAudio_portAudioOutput_cpp,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/output/portAudio/portAudioOutput.cpp.orig Mon May 24 15:25:28 2010
+++ src/output/portAudio/portAudioOutput.cpp Mon May 24 15:27:04 2010
@@ -143,7 +143,7 @@ PortAudioOutput::initAudio( long sampleRate, int chann
p.device = Pa_HostApiDeviceIndexToDeviceIndex( Pa_HostApiTypeIdToHostApiIndex( paCoreAudio ), deviceID++ );
#endif
#ifdef Q_WS_X11
- p.device = Pa_HostApiDeviceIndexToDeviceIndex( Pa_HostApiTypeIdToHostApiIndex( paALSA ), deviceID++ );
+ p.device = Pa_HostApiDeviceIndexToDeviceIndex( Pa_HostApiTypeIdToHostApiIndex( paSndio ), deviceID++ );
#endif
p.suggestedLatency = Pa_GetDeviceInfo( p.device )->defaultHighOutputLatency;
@@ -176,7 +176,7 @@ PortAudioOutput::soundSystems()
#endif
#ifdef Q_WS_X11
- << "Alsa"
+ << "sndio"
#endif
#ifdef Q_WS_MAC

View File

@ -0,0 +1,37 @@
$OpenBSD: patch-src_output_portAudio_portAudio_pro,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/output/portAudio/portAudio.pro.orig Tue Dec 18 15:18:19 2007
+++ src/output/portAudio/portAudio.pro Tue May 25 20:02:34 2010
@@ -10,21 +10,21 @@ QMAKE_CFLAGS_WARN_ON = ""
INCLUDEPATH += PortAudio/include \
PortAudio/common
-SOURCES = portAudioOutput.cpp \
- \
- PortAudio/common/pa_skeleton.c \
- PortAudio/common/pa_process.c \
- PortAudio/common/pa_dither.c \
- PortAudio/common/pa_allocation.c \
- PortAudio/common/pa_converters.c \
- PortAudio/common/pa_cpuload.c \
- PortAudio/common/pa_front.c \
- PortAudio/common/pa_debugprint.c \
- PortAudio/common/pa_stream.c \
- PortAudio/common/pa_trace.c \
+SOURCES = portAudioOutput.cpp
HEADERS = portAudioOutput.h
+
+unix:openbsd* {
+ INCLUDEPATH += ${LOCALBASE}/include \
+ PortAudio/os/unix
+
+ LIBPATH += ${LOCALBASE}/lib
+
+ LIBS += -lportaudio \
+ -lsndio \
+ -lm
+}
unix:linux-g++ {
INCLUDEPATH += PortAudio/os/unix

View File

@ -0,0 +1,38 @@
$OpenBSD: patch-src_playerlistener_cpp,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
XXX THIS IS A HACK
Our libpthread has bitten me again...
As a workaround, disable the player listener: luckily, it's
kinda useless at the moment.
--- src/playerlistener.cpp.orig Tue May 25 13:22:53 2010
+++ src/playerlistener.cpp Tue May 25 13:24:14 2010
@@ -119,6 +119,7 @@ CPlayerListener::run()
void
CPlayerListener::RunListener()
{
+#if 0
try
{
OpenSocket();
@@ -131,9 +132,11 @@ CPlayerListener::RunListener()
LOGL( 1, err );
throw NetworkException((err));
}
+#endif
- mbRunning = true;
+ mbRunning = false;
+#if 0
while (mbKeepGoing)
{
QString sClientIP;
@@ -203,6 +206,7 @@ CPlayerListener::RunListener()
#ifdef WIN32
WSACleanup();
#endif
+#endif
}

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_playerlistener_h,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/playerlistener.h.orig Fri May 21 13:34:20 2010
+++ src/playerlistener.h Fri May 21 13:34:56 2010
@@ -22,6 +22,8 @@
#ifndef PLAYERLISTENER_H
#define PLAYERLISTENER_H
+#include <unistd.h>
+
#include "TrackInfo.h"
#include "playercommandparser.h"
#include "playerconnection.h"

View File

@ -0,0 +1,28 @@
$OpenBSD: patch-src_settingsdialog_connection_ui,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/settingsdialog_connection.ui.orig Fri May 28 08:37:13 2010
+++ src/settingsdialog_connection.ui Fri May 28 08:37:35 2010
@@ -283,16 +283,6 @@
</item>
</layout>
</item>
- <item>
- <widget class="QCheckBox" name="crashReportCheck" >
- <property name="text" >
- <string>Send crash diagnostics on crashing</string>
- </property>
- <property name="checked" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
</layout>
</widget>
</item>
@@ -320,7 +310,6 @@
<tabstop>proxyPasswordEdit</tabstop>
<tabstop>downloadMetadataCheck</tabstop>
<tabstop>clearCacheButton</tabstop>
- <tabstop>crashReportCheck</tabstop>
</tabstops>
<resources/>
<connections>

View File

@ -0,0 +1,84 @@
$OpenBSD: patch-src_settingsdialog_cpp,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/settingsdialog.cpp.orig Fri May 28 08:32:33 2010
+++ src/settingsdialog.cpp Fri May 28 08:32:09 2010
@@ -92,16 +92,11 @@ SettingsDialog::SettingsDialog( QWidget *parent )
#endif
// Add icons to user icon dropdown
- QPixmap pixmap( MooseUtils::dataPath( "icons/user_red.png" ) );
- ui_account.colourCombo->setItemIcon( 0, pixmap );
- pixmap.load( MooseUtils::dataPath( "icons/user_blue.png" ) );
- ui_account.colourCombo->setItemIcon( 1, pixmap );
- pixmap.load( MooseUtils::dataPath( "icons/user_green.png" ) );
- ui_account.colourCombo->setItemIcon( 2, pixmap );
- pixmap.load( MooseUtils::dataPath( "icons/user_orange.png" ) );
- ui_account.colourCombo->setItemIcon( 3, pixmap );
- pixmap.load( MooseUtils::dataPath( "icons/user_black.png" ) );
- ui_account.colourCombo->setItemIcon( 4, pixmap );
+ ui_account.colourCombo->setItemIcon( 0, QPixmap( MooseUtils::dataPath( "icons/user_red.png" ) ) );
+ ui_account.colourCombo->setItemIcon( 1, QPixmap( MooseUtils::dataPath( "icons/user_blue.png" ) ) );
+ ui_account.colourCombo->setItemIcon( 2, QPixmap( MooseUtils::dataPath( "icons/user_green.png" ) ) );
+ ui_account.colourCombo->setItemIcon( 3, QPixmap( MooseUtils::dataPath( "icons/user_orange.png" ) ) );
+ ui_account.colourCombo->setItemIcon( 4, QPixmap( MooseUtils::dataPath( "icons/user_black.png" ) ) );
// Add languages to language drop-down
ui_account.languageCombo->addItem( tr( "System Language" ), "" );
@@ -129,29 +124,19 @@ SettingsDialog::SettingsDialog( QWidget *parent )
UnicornUtils::qtLanguageToLfmLangCode( QLocale::Chinese ) );
// Add icons to sidebar
- pixmap.load( MooseUtils::dataPath( "/icons/options_account.png" ) );
- //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
- ui.pageList->item( 0 )->setIcon( pixmap );
+ ui.pageList->item( 0 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_account.png" ) ) );
- pixmap.load( MooseUtils::dataPath( "/icons/options_radio.png" ) );
- //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
- ui.pageList->item( 1 )->setIcon( pixmap );
+ ui.pageList->item( 1 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_radio.png" ) ) );
#ifdef HIDE_RADIO
ui.pageList->setItemHidden( ui.pageList->item( 1 ), true );
#endif // HIDE_RADIO
- pixmap.load( MooseUtils::dataPath( "/icons/options_scrobbling.png" ) );
- //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
- ui.pageList->item( 2 )->setIcon( pixmap );
+ ui.pageList->item( 2 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_scrobbling.png" ) ) );
- pixmap.load( MooseUtils::dataPath( "/icons/options_connection.png" ) );
- //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
- ui.pageList->item( 3 )->setIcon( pixmap );
+ ui.pageList->item( 3 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_connection.png" ) ) );
- pixmap.load( MooseUtils::dataPath( "/icons/options_mediadevices.png" ) );
- //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
- ui.pageList->item( 4 )->setIcon( pixmap );
+ ui.pageList->item( 4 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_mediadevices.png" ) ) );
#ifdef Q_WS_X11
ui.pageList->setRowHidden( 4, true );
@@ -214,7 +199,6 @@ SettingsDialog::SettingsDialog( QWidget *parent )
connect( ui_connection.automaticProxyButton, SIGNAL( toggled( bool ) ), this, SLOT( configChanged() ) );
connect( ui_connection.manualProxyButton, SIGNAL( toggled( bool ) ), this, SLOT( configChanged() ) );
connect( ui_connection.downloadMetadataCheck, SIGNAL( toggled( bool ) ), this, SLOT( configChanged() ) );
- connect( ui_connection.crashReportCheck, SIGNAL( toggled( bool ) ), this, SLOT( configChanged() ) );
#ifndef Q_WS_X11
connect( ui_mediadevices.deviceWidget, SIGNAL( currentItemChanged( QTreeWidgetItem*, QTreeWidgetItem* ) ), this, SLOT( mediaDeviceItemSelected( QTreeWidgetItem*, QTreeWidgetItem* ) ) );
@@ -350,7 +334,6 @@ SettingsDialog::populateConnection()
ui_connection.proxyUsernameEdit->setText( The::settings().getProxyUser() );
ui_connection.proxyPasswordEdit->setText( The::settings().getProxyPassword() );
ui_connection.downloadMetadataCheck->setChecked( The::settings().currentUser().isMetaDataEnabled() );
- ui_connection.crashReportCheck->setChecked( The::settings().currentUser().crashReportingEnabled() );
ui_connection.manualProxyButton->setChecked( The::settings().isUseProxy() );
}
@@ -524,7 +507,6 @@ SettingsDialog::saveConnection()
The::settings().setProxyPort( ui_connection.proxyPortEdit->text().toInt() );
The::settings().setUseProxy( ui_connection.manualProxyButton->isChecked() );
The::settings().currentUser().setMetaDataEnabled( ui_connection.downloadMetadataCheck->isChecked() );
- The::settings().currentUser().setCrashReportingEnabled( ui_connection.crashReportCheck->isChecked() );
m_reconnect = ui_connection.proxyHostEdit->text() != originalProxyHost ||
ui_connection.proxyUsernameEdit->text() != originalProxyUsername ||

View File

@ -0,0 +1,35 @@
$OpenBSD: patch-src_src_pro,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/src.pro.orig Tue Dec 18 15:18:19 2007
+++ src/src.pro Tue May 25 12:41:36 2010
@@ -7,10 +7,6 @@ INCLUDEPATH += lib libFingerprint/recommendation-commo
PRECOMPILED_HEADER = precompiled.h
CONFIG += precompile_header
-unix {
- # precompiled headers breaks icecream builds for some reason :(
- system( test `ps aux | grep iceccd | wc -l` -gt 1 ): CONFIG -= precompile_header
-}
#universal binaries cannot be built from precompiled headers
mac*:release:CONFIG -= precompile_header
@@ -27,9 +23,8 @@ unix:!mac*{
include( ../definitions.pro.inc )
-# TODO remove
-INCLUDEPATH += $$ROOT_DIR/res/mad
-INCLUDEPATH += $$ROOT_DIR/src/libFingerprint/libs/fftw
+INCLUDEPATH += ${X11BASE}/include
+INCLUDEPATH += ${LOCALBASE}/include
breakpad {
LIBS += -lbreakpad$$EXT
@@ -206,6 +201,8 @@ unix:!mac* {
SOURCES += simplewizard_mac.cpp \
winstyleoverrides.cpp
+
+ LIBPATH += ${LOCALBASE}/lib
LIBS += -lmad -lfftw3f
}

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-src_systray_cpp,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/systray.cpp.orig Thu May 27 11:50:48 2010
+++ src/systray.cpp Thu May 27 16:57:03 2010
@@ -46,6 +46,8 @@ TrayIcon::setUser( LastFmUserSettings& currentUser )
{
#ifdef Q_WS_MAC
icon = m_pixmap;
+ #elif defined(Q_WS_X11)
+ icon = IconShack::instance().GetTrayIcon( iconColour );
#else
icon = IconShack::instance().GetGoodUserIcon( iconColour );
#endif
@@ -54,6 +56,8 @@ TrayIcon::setUser( LastFmUserSettings& currentUser )
{
#ifdef Q_WS_MAC
icon = QIcon( m_pixmap ).pixmap( 19, 12, QIcon::Disabled );
+ #elif defined Q_WS_X11
+ icon = IconShack::instance().GetDisabledTrayIcon( iconColour );
#else
icon = IconShack::instance().GetDisabledUserIcon( iconColour );
#endif

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-src_transcode_mad_mad_pro,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
--- src/transcode/mad/mad.pro.orig Fri May 21 11:57:11 2010
+++ src/transcode/mad/mad.pro Fri May 21 11:58:05 2010
@@ -11,8 +11,8 @@ win32 {
}
!linux* {
- LIBPATH += $$ROOT_DIR/res/mad
- INCLUDEPATH += $$ROOT_DIR/res/mad
+ LIBPATH += ${LOCALBASE}/lib
+ INCLUDEPATH += ${LOCALBASE}/include
}
LIBS += -lmad

4
audio/last.fm/pkg/DESCR Normal file
View File

@ -0,0 +1,4 @@
The official Last.fm radio player application.
With Last.fm you can scrobble your tracks, share your music tastes,
listen to personalised radio streams and discover new music and
people.

110
audio/last.fm/pkg/PLIST Normal file
View File

@ -0,0 +1,110 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2010/05/31 19:37:36 dcoppa Exp $
@bin bin/last.fm
lib/last.fm/
lib/last.fm/services/
lib/last.fm/services/libsrv_Ipod_device.so
lib/last.fm/services/libsrv_httpinput.so
lib/last.fm/services/libsrv_madtranscode.so
lib/last.fm/services/libsrv_output_portaudio.so
@lib lib/libLastFmFingerprint.so.${LIBLastFmFingerprint_VERSION}
@lib lib/libLastFmTools.so.${LIBLastFmTools_VERSION}
@lib lib/libMoose.so.${LIBMoose_VERSION}
share/applications/
share/applications/lastfm.desktop
share/last.fm/
share/last.fm/about.png
share/last.fm/about_generic.png
share/last.fm/about_mac.png
share/last.fm/app_55.png
share/last.fm/buttons/
share/last.fm/buttons/action_edit.png
share/last.fm/buttons/action_edit_down.png
share/last.fm/buttons/action_edit_hover.png
share/last.fm/buttons/action_tag.png
share/last.fm/buttons/action_tag_down.png
share/last.fm/buttons/action_tag_hover.png
share/last.fm/buttons/action_upload.png
share/last.fm/buttons/action_upload_down.png
share/last.fm/buttons/action_upload_hover.png
share/last.fm/buttons/closebutton.png
share/last.fm/buttons/myprofile.png
share/last.fm/buttons/scrobble.png
share/last.fm/icons/
share/last.fm/icons/as.ico
share/last.fm/icons/as.png
share/last.fm/icons/blackprofile24.png
share/last.fm/icons/blueprofile24.png
share/last.fm/icons/buy_album.png
share/last.fm/icons/buy_track.png
share/last.fm/icons/greenprofile24.png
share/last.fm/icons/history16.png
share/last.fm/icons/history32.png
share/last.fm/icons/icon_radio.png
share/last.fm/icons/icon_tag.png
share/last.fm/icons/icon_track.png
share/last.fm/icons/icon_user.png
share/last.fm/icons/loved_radio.png
share/last.fm/icons/my_bookmarks.png
share/last.fm/icons/my_friends.png
share/last.fm/icons/my_neighbours.png
share/last.fm/icons/my_tags.png
share/last.fm/icons/neighbour_radio.png
share/last.fm/icons/options_account.png
share/last.fm/icons/options_connection.png
share/last.fm/icons/options_mediadevices.png
share/last.fm/icons/options_radio.png
share/last.fm/icons/options_scrobbling.png
share/last.fm/icons/orangeprofile24.png
share/last.fm/icons/personal_radio.png
share/last.fm/icons/qt_cross.png
share/last.fm/icons/recent_tracks.png
share/last.fm/icons/recently_banned.png
share/last.fm/icons/recently_banned16.png
share/last.fm/icons/recently_loved.png
share/last.fm/icons/recently_loved16.png
share/last.fm/icons/recommended_radio.png
share/last.fm/icons/redprofile24.png
share/last.fm/icons/scrobble16.png
share/last.fm/icons/scrobbling_graphic.png
share/last.fm/icons/systray_mac.png
share/last.fm/icons/user_black.png
share/last.fm/icons/user_black22.png
share/last.fm/icons/user_black32_collapse.png
share/last.fm/icons/user_black32_expand.png
share/last.fm/icons/user_blue.png
share/last.fm/icons/user_blue22.png
share/last.fm/icons/user_blue32_collapse.png
share/last.fm/icons/user_blue32_expand.png
share/last.fm/icons/user_disabled.png
share/last.fm/icons/user_disabled22.png
share/last.fm/icons/user_green.png
share/last.fm/icons/user_green22.png
share/last.fm/icons/user_green32_collapse.png
share/last.fm/icons/user_green32_expand.png
share/last.fm/icons/user_orange.png
share/last.fm/icons/user_orange22.png
share/last.fm/icons/user_orange32_collapse.png
share/last.fm/icons/user_orange32_expand.png
share/last.fm/icons/user_purple.png
share/last.fm/icons/user_red.png
share/last.fm/icons/user_red22.png
share/last.fm/icons/user_red32_collapse.png
share/last.fm/icons/user_red32_expand.png
share/last.fm/install_mac.png
share/last.fm/logo.png
share/last.fm/no_artist.gif
share/last.fm/no_cover.gif
share/last.fm/progress.mng
share/last.fm/progress_active.mng
share/last.fm/slider_knob.png
share/last.fm/slider_left.png
share/last.fm/slider_middle.png
share/last.fm/slider_right.png
share/last.fm/speaker_high.png
share/last.fm/speaker_low.png
share/last.fm/watermark.png
share/last.fm/wizard.png
share/last.fm/wizard_generic.png
share/last.fm/wizard_mac.png
@exec %D/bin/update-desktop-database
@unexec-delete %D/bin/update-desktop-database