diff --git a/.files b/.files
new file mode 100644
index 0000000..985f83f
Binary files /dev/null and b/.files differ
diff --git a/.meta b/.meta
new file mode 100644
index 0000000..cefe644
--- /dev/null
+++ b/.meta
@@ -0,0 +1,5 @@
+
+ upplay
+ Qt5-based UPnP AV / OpenHome audio Control Point
+
+
diff --git a/.rev b/.rev
new file mode 100644
index 0000000..6cead09
--- /dev/null
+++ b/.rev
@@ -0,0 +1,11 @@
+
+
+ 8a7d8bfb64864c8dd6f0678862e2a7f7
+ 1.4.7
+
+ dimstar_suse
+ New package.
+upplay is a Qt5 UPnP / OpenHome audio Control Point from the same developer than upmpdcli that it can control (among other devices).
+ 851896
+
+
diff --git a/browser-back-mouse-button-support.patch b/browser-back-mouse-button-support.patch
new file mode 100644
index 0000000..a838180
--- /dev/null
+++ b/browser-back-mouse-button-support.patch
@@ -0,0 +1,62 @@
+--- upplay.orig/dirbrowser/cdbrowser.cpp 2020-11-19 17:28:50.000000000 +0100
++++ upplay/dirbrowser/cdbrowser.cpp 2020-11-30 11:54:15.313447480 +0100
+@@ -105,6 +105,7 @@
+
+ #ifdef USING_WEBENGINE
+ connect(this, SIGNAL(loadFinished(bool)), this, SLOT(onLoadFinished(bool)));
++ QApplication::instance()->installEventFilter(this);
+ #else
+ connect(this, SIGNAL(linkClicked(const QUrl &)),
+ this, SLOT(onLinkClicked(const QUrl &)));
+@@ -131,6 +132,9 @@
+
+ CDBrowser::~CDBrowser()
+ {
++#ifdef USING_WEBENGINE
++ QApplication::instance()->removeEventFilter(this);
++#endif
+ deleteReaders("~CDBrowser");
+ }
+
+@@ -197,12 +201,16 @@
+
+ bool CDBrowser::eventFilter(QObject *object, QEvent *event)
+ {
+- switch (event->type()) {
++ if (object->parent() != this) return false;
++ switch (event->type()) {
+ case QEvent::MouseButtonRelease:
+ {
+ const QMouseEvent *mouseEvent(static_cast(event));
+ if (mouseEvent) {
+ m_lastbutton = mouseEvent->button();
++ if (m_lastbutton == Qt::BackButton) {
++ back(0);
++ }
+ }
+ }
+ break;
+@@ -262,6 +270,9 @@
+ {
+ //qDebug() << "CDBrowser::mouseReleaseEvent";
+ m_lastbutton = event->button();
++ if (m_lastbutton == Qt::BackButton) {
++ back(0);
++ }
+ QWEBVIEW::mouseReleaseEvent(event);
+ }
+
+@@ -959,13 +970,6 @@
+ " m_initUDN [" << qs2utf8s(m_initUDN) <<
+ "] curpath size " << m_curpath.size() << endl);
+
+-#ifdef USING_WEBENGINE
+- if (focusWidget()) {
+- focusWidget()->removeEventFilter(this);
+- focusWidget()->installEventFilter(this);
+- }
+-#endif
+-
+ deleteReaders("initialPage");
+ emit sig_now_in(this, tr("Servers"));
+ m_searchcaps.clear();
diff --git a/dark-theme-fix.patch b/dark-theme-fix.patch
new file mode 100644
index 0000000..da27777
--- /dev/null
+++ b/dark-theme-fix.patch
@@ -0,0 +1,11 @@
+--- upplay.orig/GUI/standard.qss 2017-08-01 08:49:30.000000000 +0200
++++ upplay/GUI/standard.qss 2020-11-26 16:46:39.713289208 +0100
+@@ -1,8 +1,3 @@
+-QListView, QTableView {
+- background: #FFFFFF;
+- alternate-background-color: #DADADA;
+-}
+-
+ QListView:focus, QTableView:focus {
+ border: 2px solid #424e72;
+ }
diff --git a/upplay-1.4.7.tar.gz b/upplay-1.4.7.tar.gz
new file mode 120000
index 0000000..dc995f6
--- /dev/null
+++ b/upplay-1.4.7.tar.gz
@@ -0,0 +1 @@
+/ipfs/bafybeihm76vhuz73hfgpieqtizjex5ijkkvaq6cpkq3kheumejlfgv2gue
\ No newline at end of file
diff --git a/upplay.changes b/upplay.changes
new file mode 100644
index 0000000..45ca925
--- /dev/null
+++ b/upplay.changes
@@ -0,0 +1,15 @@
+-------------------------------------------------------------------
+Mon Nov 30 10:59:38 UTC 2020 - Michael Pujos
+
+- update to 1.4.7
+ * Fix "close to tray" not working on Linux KDE
+ * Clean up exit when tray is not available
+ * Compilation warnings
+- added dark-theme-fix.patch
+- added browser-back-mouse-button-support.patch
+- remove duplicates icons with fdupes
+
+-------------------------------------------------------------------
+Sun Nov 15 21:53:15 UTC 2020 - Michael Pujos
+
+- update to upstream version 1.4.6
diff --git a/upplay.spec b/upplay.spec
new file mode 100644
index 0000000..23409e7
--- /dev/null
+++ b/upplay.spec
@@ -0,0 +1,63 @@
+#
+# spec file for package upplay
+#
+# Copyright (c) 2020 SUSE LLC
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+#
+
+
+Name: upplay
+Version: 1.4.7
+Release: 0
+Summary: UPnP and OpenHome audio Control Point
+License: GPL-2.0-or-later
+URL: https://www.lesbonscomptes.com/upplay/
+Source: https://www.lesbonscomptes.com/upplay/downloads/upplay-%{version}.tar.gz
+Patch0: dark-theme-fix.patch
+Patch1: browser-back-mouse-button-support.patch
+BuildRequires: fdupes
+BuildRequires: gcc-c++
+BuildRequires: hicolor-icon-theme
+BuildRequires: libqt5-qtbase-common-devel
+BuildRequires: pkgconfig
+BuildRequires: update-desktop-files
+BuildRequires: pkgconfig(Qt5WebEngine)
+BuildRequires: pkgconfig(jsoncpp)
+BuildRequires: pkgconfig(libupnpp)
+
+%description
+upplay is a Qt5-based audio Control Point for browsing and playing music
+managed by your UPnP/DLNA media servers to your UPnP/DLNA/OpenHome players (renderers).
+
+%prep
+%autosetup -p1
+
+%build
+%qmake5 'WEBPLATFORM=webengine' QMAKE_POST_LINK='$(STRIP) $(TARGET)'
+%make_build STRIP=%{_bindir}/strip
+
+%install
+make install INSTALL_ROOT=%{buildroot}
+%suse_update_desktop_file -n -r %{name} "AudioVideo;Player"
+%fdupes %{buildroot}/%{_prefix}
+
+%files
+%license COPYING
+%doc AUTHORS
+%{_bindir}/%{name}
+%{_datadir}/applications/upplay.desktop
+%{_datadir}/%{name}
+%{_datadir}/icons/hicolor/48x48/apps/upplay.png
+%{_datadir}/pixmaps/upplay.png
+
+%changelog