Как собрать Ubuntuone-клиент так, чтобы он не зависел от nautilus и gnome
По сути, я хочу собрать ubuntuone-client, чтобы он не имел зависимостей, связанных с nautilus и gnome. Можно ли это сделать? если так как?
1 ответ
Демон синхронизации файлов Ubuntu One, ubuntuone-syncdaemon
и связанная утилита командной строки u1sdtool
являются программами на Python и, как таковые, не нуждаются в "сборке" в традиционном смысле ubuntuone-client
необходимо создать расширение nautilus, которое вам не нужно, и используемые им значки. Во время выполнения u1sdtool
просто разговаривает с syncdaemon
через дБ и syncdaemon
имеет очень узкие зависимости от некоторых сервисов, предоставляемых рабочим столом Ubuntu, и опять же только через dbus (так что теоретически вы могли бы удовлетворить зависимости с другим сервисом, который предоставлял тот же API).
Вам нужно что-то на сессионной шине org.freedesktop.Secret.Session
и связанные интерфейсы. Это используется ubuntu-sso-client
, который используется syncdaemon
предоставить необходимые полномочия.
Вы, вероятно, также хотите что-то на системной шине, обеспечивающей org.freedesktop.NetworkManager
(как правило, сам сетевой менеджер), чтобы дать syncdaemon
осведомленность о том, подключены ли вы к сети или нет. Это не важно, однако.
Вам также понадобятся следующие библиотеки Python: configglue
, dbus
(Очевидно), oauth
, pyinotify
, simplejson
, twisted
, xdg
, а также ubuntuone.storageprotocol
(что, в свою очередь, зависит от некоторых из вышеперечисленных, а также protobuf
). При желании вы могли бы иметь pynotify
, zeitgeist
и некоторые вещи, связанные с Unity, которые, я полагаю, у вас не будет.
Удачи в портировании, и если я что-то забыл или вы застряли, пожалуйста, дайте нам знать!