Git Product home page Git Product logo

dolphin-seafile-plugin's Introduction

dolphin-seafile-plugin

A plugin for dolphin to show the seafile synchronization status

Features

A simple VCS plugin for KDEs Dolphin file manager, that displays sync status for your Seafile repositories. Simply install and enable under "Services". Currently, the plugin can:

  • Display sync status of seafile repositories
    • Per File/Folder thats inside a seafile folder
    • Including special states, e.g. "ignored"

More features, such as sharing, etc. are planned.

Limitations/Workaround

Due to the way those dolphin plugins work, only repositories that are inside your seafile main directory will work. Additionally, you will have to open this folder once, before the plugin recognizes them.

The reason is, that the plugin reacts on the presence of the .seafile-data folder. If you have custom locations outside of the folder, or don't want to always go there first, simply create an empty file called .seafile-data in whichever directory you need the plugin to work. One useful location would be your home directory, as thats the default directory dolphin opens.

Dependencies

You'll need Dolphin (and thus Qt and KDE frameworks) and Seafile. The plugin only needs the seafile daemon, so make sure you have that one with whatever seafile package you use.

Installation

For now, only an AUR package is provided: dolphin-seafile-plugin

Until then, you can simply build it yourself. Install all the stated dependencies and build via:

cd plugin
qmake
make
make install

dolphin-seafile-plugin's People

Contributors

bionade24 avatar skycoder42 avatar yatesco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dolphin-seafile-plugin's Issues

Dolphin crashes symbol lookup error: searpc_create_named_pipe_client

Dolphin crashes with the following message, when you create an empty .seafile-data :

qt.accessibility.core: Cannot create accessible child interface for object:  PlacesView(0x561bec7e8c10)  index:  14  
dolphin: symbol lookup error: /usr/lib/x86_64-linux-gnu/qt5/plugins/libfileviewseafileplugin.so:  undefined symbol: searpc_create_named_pipe_client  

When you go into the seafile main directory where the non-empty .seafile-data dir is located and enable show hidden files, it crashes with the same error, but not unless you enable show hidden files.

libsearpc-dev version: 3.0.8-6

Timers warning in syslog

Everything is working fine, but there are the following warnings spaming the syslog when the plugin scans/enters Seafile synchronized directories.

QObject::killTimer: Timers cannot be stopped from another thread
QObject::startTimer: Timers cannot be started from another thread

If more files/directories are contained, more messages will appear.

Is this something that is fixable? Thanks in advance.

File is locked by another application

Unfortunately a system update broke the plugin. I am now getting a lot of

kdeinit5 Seafile Extension: File is locked by another application

when accessing Seafile controlled directories within Dolphin.

KDE Apps are on 12/2020 now, KDE Frameworks got updated to 5.77.0.

Let me know if I could help to track it down.

qmake Project ERROR: libseafile development package not found

Can't build it.
When I run qmake in the plugin directory it says
Project ERROR: libseafile development package not found

Apt output:

$ apt policy libseafile-dev  
libseafile-dev:  
  Installed: 6.2.9-2~1290~ubuntu18.10.1  
  Candidate: 6.2.9-2~1290~ubuntu18.10.1  
  Version table:  
 *** 6.2.9-2~1290~ubuntu18.10.1 500  
        500 http://ppa.launchpad.net/seafile/seafile-client/ubuntu cosmic/main amd64 Packages  
        100 /var/lib/dpkg/status  
     6.2.4-1 500  
        500 http://de.archive.ubuntu.com/ubuntu cosmic/universe amd64 Packages  

OS: Kubuntu 18.10
Seafile client version: 6.2.9

Seafile Extension: Transport Error

Dolphin recently started to crash when opening a seafile folder. Running it with valgrind, I see the message "Seafile Extension: Transport Error" in dolphin and the following warnings on stdout:

(process:14914): Ccnet-WARNING **: 18:02:46.372: [client pool] Failed to connect.
(process:14914): Ccnet-WARNING **: 18:02:46.385: [Sea RPC] Failed to get client from pool.

This is the backtrace when run outside of valgrind:

Application: Dolphin (dolphin), signal: Aborted
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f37075b0800 (LWP 19561))]

Thread 6 (Thread 0x7f36d90b3700 (LWP 19622)):
[KCrash Handler]
#6  0x00007f3706da986b in raise () at /usr/lib/libc.so.6
#7  0x00007f3706d9440e in abort () at /usr/lib/libc.so.6
#8  0x00007f3706deb8b8 in __libc_message () at /usr/lib/libc.so.6
#9  0x00007f3706df1d4a in  () at /usr/lib/libc.so.6
#10 0x00007f3706df34dc in _int_free () at /usr/lib/libc.so.6
#11 0x00007f36db1b3f40 in SeafException::SeafException(_GError*) () at /usr/lib/qt/plugins/libfileviewseafileplugin.so
#12 0x00007f36db1b4798 in SeafStatus::reloadRepos() () at /usr/lib/qt/plugins/libfileviewseafileplugin.so
#13 0x00007f36db1b4870 in SeafStatus::ensureConnected() () at /usr/lib/qt/plugins/libfileviewseafileplugin.so
#14 0x00007f36db1b49da in SeafStatus::engage() () at /usr/lib/qt/plugins/libfileviewseafileplugin.so
#15 0x00007f36db1b34c6 in FileViewSeafilePlugin::beginRetrieval(QString const&) () at /usr/lib/qt/plugins/libfileviewseafileplugin.so
#16 0x00007f3706b124ea in UpdateItemStatesThread::run() () at /usr/lib/libdolphinprivate.so.5
#17 0x00007f3700e1fb45 in  () at /usr/lib/libQt5Core.so.5
#18 0x00007f36fbe53075 in start_thread () at /usr/lib/libpthread.so.0
#19 0x00007f3706e6b53f in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7f36e4b04700 (LWP 19565)):
#0  0x00007f3706e60ea9 in poll () at /usr/lib/libc.so.6
#1  0x00007f36f97c4523 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007f36f97c463e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007f3701021054 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007f3700fcc94c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007f3700e15a99 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007f3700e1fb45 in  () at /usr/lib/libQt5Core.so.5
#7  0x00007f36fbe53075 in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007f3706e6b53f in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7f36e5fe1700 (LWP 19564)):
#0  0x00007f36fbe58ffc in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007f36e6c7c124 in  () at /usr/lib/dri/i965_dri.so
#2  0x00007f36e6c7be18 in  () at /usr/lib/dri/i965_dri.so
#3  0x00007f36fbe53075 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007f3706e6b53f in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7f36ed994700 (LWP 19563)):
#0  0x00007f3706e60ea9 in poll () at /usr/lib/libc.so.6
#1  0x00007f36f97c4523 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007f36f97c463e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007f3701021054 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007f3700fcc94c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007f3700e15a99 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007f3701471976 in  () at /usr/lib/libQt5DBus.so.5
#7  0x00007f3700e1fb45 in  () at /usr/lib/libQt5Core.so.5
#8  0x00007f36fbe53075 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007f3706e6b53f in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7f36eff1d700 (LWP 19562)):
#0  0x00007f3706e60ea9 in poll () at /usr/lib/libc.so.6
#1  0x00007f36f90fe180 in  () at /usr/lib/libxcb.so.1
#2  0x00007f36f90ffe4b in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3  0x00007f36f2abb22a in  () at /usr/lib/libQt5XcbQpa.so.5
#4  0x00007f3700e1fb45 in  () at /usr/lib/libQt5Core.so.5
#5  0x00007f36fbe53075 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007f3706e6b53f in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7f37075b0800 (LWP 19561)):
#0  0x00007f36fbe58ffc in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007f36f90fe393 in  () at /usr/lib/libxcb.so.1
#2  0x00007f36f90ffb3f in  () at /usr/lib/libxcb.so.1
#3  0x00007f36f90ffc51 in xcb_wait_for_reply () at /usr/lib/libxcb.so.1
#4  0x00007f36f2ab971c in QXcbConnection::sync() () at /usr/lib/libQt5XcbQpa.so.5
#5  0x00007f36f2adb33c in  () at /usr/lib/libQt5XcbQpa.so.5
#6  0x00007f36f2adb430 in  () at /usr/lib/libQt5XcbQpa.so.5
#7  0x00007f37019918b6 in QBackingStore::beginPaint(QRegion const&) () at /usr/lib/libQt5Gui.so.5
#8  0x00007f3701fe106d in  () at /usr/lib/libQt5Widgets.so.5
#9  0x00007f3701fe1489 in  () at /usr/lib/libQt5Widgets.so.5
#10 0x00007f3701ff8bd7 in QWidgetPrivate::syncBackingStore() () at /usr/lib/libQt5Widgets.so.5
#11 0x00007f37020113f9 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#12 0x00007f370211d125 in QMainWindow::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#13 0x00007f37048e8d1c in KMainWindow::event(QEvent*) () at /usr/lib/libKF5XmlGui.so.5
#14 0x00007f3704933536 in KXmlGuiWindow::event(QEvent*) () at /usr/lib/libKF5XmlGui.so.5
#15 0x00007f3701fd1a74 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#16 0x00007f3701fd9341 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#17 0x00007f3700fcdcb9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#18 0x00007f3700fd0d4c in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#19 0x00007f37022e1446 in  () at /usr/lib/libQt5Widgets.so.5
#20 0x00007f37022e69f9 in  () at /usr/lib/libQt5Widgets.so.5
#21 0x00007f3700ff83d2 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#22 0x00007f37022f2b8c in QGraphicsScene::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#23 0x00007f3701fd1a74 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#24 0x00007f3701fd9341 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#25 0x00007f3700fcdcb9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#26 0x00007f3700fd0d4c in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#27 0x00007f3701021a54 in  () at /usr/lib/libQt5Core.so.5
#28 0x00007f36f97c4368 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#29 0x00007f36f97c45b1 in  () at /usr/lib/libglib-2.0.so.0
#30 0x00007f36f97c463e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#31 0x00007f3701021039 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#32 0x00007f36f2b50722 in  () at /usr/lib/libQt5XcbQpa.so.5
#33 0x00007f3700fcc94c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#34 0x00007f3700fd4c46 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#35 0x00007f370716eac2 in kdemain () at /usr/lib/libkdeinit5_dolphin.so
#36 0x00007f3706d9606b in __libc_start_main () at /usr/lib/libc.so.6
#37 0x00005617dd53e75a in _start ()

Kubuntu18.10 make fatal error missing packages

Here is a list of packages that need to be installed in order to make the project successfully:

libdolphinvcs-dev
libsearpc-dev
libglib2.0-dev

After installing libglib2.0-dev one needs to run
pkg-config --cflags --libs glib-2.0
and add the output to the makefile's INCPATH

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.