+# TODO
+# - avoid dropboxd relaunching itself with newer version if there's update available (disable auto updating):
+# glen 25034 19.9 1.5 1496132 81256 pts/46 Sl+ 11:02 1:02 /home/glen/.dropbox-dist/dropbox /newerversion
# NOTES:
# - Upstream Dropbox Support (https://www.dropbox.com/ticket)
+# - Release Notes (check new versions here): https://www.dropbox.com/release_notes
# - Download instructions (click the download link to find current version):
-# http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall
# http://www.dropbox.com/downloading?os=lnx
+# http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall
Summary: Sync and backup files between computers
Name: dropbox
-Version: 1.0.20
+Version: 3.4.3
Release: 0.4
License: Proprietary
Group: Daemons
-URL: http://www.dropbox.com/
Source0: http://dl-web.dropbox.com/u/17/%{name}-lnx.x86-%{version}.tar.gz
-# NoSource0-md5: 2bee70c090d48485bf6da98099d975f7
+# NoSource0-md5: b3beb92548b7c7cf0cc279582d69ed85
NoSource: 0
Source1: http://dl-web.dropbox.com/u/17/%{name}-lnx.x86_64-%{version}.tar.gz
-# NoSource1-md5: ee0bde299a11d1edb95a192856822aad
+# NoSource1-md5: 8e3430df10bdb876a1e3cd374faa0594
NoSource: 1
+URL: http://www.dropbox.com/
BuildRequires: rpmbuild(macros) >= 1.566
BuildRequires: sed >= 4.0
BuildRequires: tar >= 1:1.15.1
+BuildRequires: unzip
+BuildRequires: zip
Conflicts: nautilus-dropbox < 0.6.3-2
ExclusiveArch: %{ix86} %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# generate no Provides from private modules
%define _noautoprovfiles %{_libdir}/%{name}
+# libicu-42, but pld th already has 54
+%define icu_libs libicudata.so.42 libicui18n.so.42 libicuuc.so.42
+
# provided by package itself, but autodeps disabled
-%define _noautoreq libcrypto.so libssl.so libwx_.*.so librsync.so.1
+%define _noautoreq libwx_.*.so %{icu_libs} libffi.so.6 librsync.so.1
# a zip and executable at the same time
%define _noautostrip .*/library.zip\\|.*/dropbox
%define _enable_debug_packages 0
# prelinked library, it is missing some cairo symbols
-%define skip_post_check_so libwx_gtk2ud_core-2.8.so.0
+#define skip_post_check_so libwx_gtk2ud_core-2.8.so.0
%description
Dropbox is software that syncs your files online and across your
your files are stored on Dropbox's secure servers, you can also access
them from any computer or mobile device using the Dropbox website.
+%package gui
+Summary: Gtk+2 GUI of Dropbox
+Group: X11/Applications
+Requires: %{name} = %{version}-%{release}
+
+%description gui
+Gtk+2 Systray of Dropbox Daemon status.
+
%prep
%setup -qcT
%ifarch %{ix86}
%ifarch %{x8664}
%{__tar} --strip-components=1 -xzf %{SOURCE1}
%endif
+mv dropbox-lnx.*-%{version}/* .
+
+# no need to package this
+# altho system python is also 2.7, don't know how to enforce using it system libs
+#%{__rm} -r distribute-0.6.26-py2.7.egg
+
+# libraries to be taken from system
+# for a in *.so*; do ls -ld /lib64/$a %{_libdir}/$a; done 2>/dev/null
+%{__rm} libpopt.so.0 libdrm.so.2 libGL.so.1
+#%{__rm} libffi.so.6 librsync.so.1
+#%{__rm} libQt5{Core,DBus,Gui,Network,OpenGL,PrintSupport,Qml,Quick,Sql,WebKit,WebKitWidgets,Widgets}.so.5
# make into symlink, looks cleaner than hardlink:
# we can attach executable attrs to binary and leave no attrs for symlink in
# %files section.
ln -sf dropbox library.zip
-# use system lib, or we get weird errors like:
-# (dropbox:13225): Gtk-WARNING **: Error loading theme icon 'gtk-ok' for stock:
-# Unable to load image-loading module: /usr/lib64/gtk-2.0/2.10.0/loaders/svg_loader.so:
-# %{_libdir}/dropbox/libz.so.1: version `ZLIB_1.2.3.3' not found (required by /usr/lib64/libxml2.so.2)
-%{__rm} libz.so.1
-
-# don't really need test at runtime
-%{__rm} -r ncrypt-*.egg/ncrypt/test
+# fun, let's delete non-linux files from archive
+unzip -l library.zip | \
+ grep -E '(arch|dropbox)/(mac|win32)|_(win32|mac).py|pymac|ui/cocoa|unittest' | \
+ grep -vE 'pymac/(__init__|constants|types|lazydll|lazyframework).py' | \
+ awk '{print $NF}' > lib.delete
+zip library.zip -d $(cat lib.delete)
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_bindir}
-ln -s %{_libdir}/dropbox/dropboxd $RPM_BUILD_ROOT%{_bindir}/dropboxd
+ln -s %{_libdir}/%{name}/dropboxd $RPM_BUILD_ROOT%{_bindir}/dropboxd
# install everything else
-install -d $RPM_BUILD_ROOT%{_libdir}/dropbox
-cp -a . $RPM_BUILD_ROOT%{_libdir}/dropbox
+install -d $RPM_BUILD_ROOT%{_libdir}/%{name}
+cp -a . $RPM_BUILD_ROOT%{_libdir}/%{name}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/lib.delete
# in doc
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/dropbox/{ACKNOWLEDGEMENTS,VERSION,README}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/{ACKNOWLEDGEMENTS,VERSION,README}
%clean
rm -rf $RPM_BUILD_ROOT
%defattr(644,root,root,755)
%doc ACKNOWLEDGEMENTS VERSION README
%attr(755,root,root) %{_bindir}/dropboxd
-%dir %{_libdir}/dropbox
-%attr(755,root,root) %{_libdir}/dropbox/*.so*
-%attr(755,root,root) %{_libdir}/dropbox/dropbox
-%attr(755,root,root) %{_libdir}/dropbox/dropboxd
-%{_libdir}/dropbox/library.zip
-
-%dir %{_libdir}/dropbox/ncrypt-*.egg
-%attr(755,root,root) %{_libdir}/dropbox/ncrypt-*.egg/*.so
-%{_libdir}/dropbox/ncrypt-*.egg/*.pyc
-%{_libdir}/dropbox/ncrypt-*.egg/ncrypt
-%{_libdir}/dropbox/ncrypt-*.egg/EGG-INFO
-
-%dir %{_libdir}/dropbox/netifaces-*.egg
-%attr(755,root,root) %{_libdir}/dropbox/netifaces-*.egg/*.so
-%{_libdir}/dropbox/netifaces-*.egg/*.pyc
-%{_libdir}/dropbox/netifaces-*.egg/EGG-INFO
-
-%{_libdir}/dropbox/icons
+%dir %{_libdir}/%{name}
+%attr(755,root,root) %{_libdir}/%{name}/*.so*
+%attr(755,root,root) %{_libdir}/%{name}/dropbox
+%attr(755,root,root) %{_libdir}/%{name}/dropboxd
+%{_libdir}/%{name}/library.zip
+
+%{_libdir}/%{name}/backports.ssl_match_hostname-*-py*.egg
+%{_libdir}/%{name}/cffi-*-py*.egg
+%{_libdir}/%{name}/distribute-*-py*.egg
+%{_libdir}/%{name}/dropbox_sqlite_ext-*-py*.egg
+%{_libdir}/%{name}/futures-*-py*.egg
+%{_libdir}/%{name}/mock-*-py*.egg
+%{_libdir}/%{name}/psutil-*-py*.egg
+%{_libdir}/%{name}/pycparser-*-py*.egg-info
+%{_libdir}/%{name}/requests-*-py*.egg
+%{_libdir}/%{name}/tornado-*-py*.egg
+
+# GUI parts
+%exclude %{_libdir}/%{name}/PyQt5.*.so
+%exclude %{_libdir}/%{name}/libQt5*.so.5
+%exclude %{_libdir}/%{name}/libX11-xcb.so.1
+%exclude %{_libdir}/%{name}/dbus.mainloop.pyqt5.so
+
+%files gui
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/wmctrl
+%attr(755,root,root) %{_libdir}/%{name}/PyQt5.*.so
+%attr(755,root,root) %{_libdir}/%{name}/libQt5*.so.5
+%attr(755,root,root) %{_libdir}/%{name}/libX11-xcb.so.1
+%attr(755,root,root) %{_libdir}/%{name}/dbus.mainloop.pyqt5.so
+%dir %{_libdir}/%{name}/plugins
+%dir %{_libdir}/%{name}/plugins/platforms
+%attr(755,root,root) %{_libdir}/%{name}/plugins/platforms/libqxcb.so
+%{_libdir}/%{name}/qt.conf
+%dir %{_libdir}/%{name}/images
+%{_libdir}/%{name}/images/emblems
+%{_libdir}/%{name}/images/hicolor