From 91164d8dbfa5e52903d3f271cac637f41611e79c Mon Sep 17 00:00:00 2001 From: Calum Lind Date: Tue, 16 Oct 2018 13:15:07 +0100 Subject: [PATCH] Cleanup and use markdown for source text files Use markdown to aid readability. Update the README and use it for the long_description in setup.py Add detailed requirement information to the DEPENDS files. --- CHANGELOG.md | 59 +++++++++++++++++++++++++++++ ChangeLog | 53 -------------------------- DEPENDS | 29 --------------- DEPENDS.md | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++ MANIFEST.in | 10 ++++- README.md | 57 ++++++++++++++++++++++++++++ README.rst | 68 ---------------------------------- setup.py | 6 +-- 8 files changed, 228 insertions(+), 156 deletions(-) create mode 100644 CHANGELOG.md delete mode 100644 ChangeLog delete mode 100644 DEPENDS create mode 100644 DEPENDS.md create mode 100644 README.md delete mode 100644 README.rst diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..ab69d46cd --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,59 @@ +# Deluge Changelog + +## Deluge 2.0.0 - (In Development) + +- Improved Logging +- Removed the AutoAdd feature on the core. It's now handled with the AutoAdd + plugin, which is also shipped with Deluge, and it does a better job and + now, it even supports multiple users perfectly. +- Authentication/Permission exceptions are now sent to clients and recreated + there to allow acting upon them. +- Enforced the use of the "deluge.plugins" namespace to reduce package + names clashing beetween regular packages and deluge plugins. +- Fix potential for host_id collision when creating hostlist entries. +- Add Option To Specify Outgoing Connection Interface. +- Updated SSL/TLS Protocol parameters for better security. + +### Core + +- Make the distinction between adding to the session new unmanaged torrents + and torrents loaded from state. This will break backwards compatability. +- Pass a copy of an event instead of passing the event arguments to the + event handlers. This will break backwards compatability. +- Allow changing ownership of torrents. +- File modifications on the auth file are now detected and when they happen, + the file is reloaded. Upon finding an old auth file with an old format, an + upgrade to the new format is made, file saved, and reloaded. +- Authentication no longer requires a username/password. If one or both of + these is missing, an authentication error will be sent to the client + which sould then ask the username/password to the user. +- Implemented sequential downloads. +- Provide information about a torrent's pieces states + +### GtkUI + +- Allow changing ownership of torrents. +- Host entries in the Connection Manager UI are now editable. +- Implemented sequential downloads UI handling. +- Add optional pieces bar instead of a regular progress bar in torrent status tab. +- Make torrent opening compatible with all unicode paths. +- Fix magnet association button on Windows. +- Add keyboard shortcuts for changing queue position: + - Up: Ctrl+Alt+Up + - Down: Ctrl+Alt+Down + - Top: Ctrl+Alt+Shift+Up + - Bottom: Ctrl+Alt+Shift+Down + +### WebUI + +- Server (deluge-web) now daemonizes by default, use '-d' or '--do-not-daemonize' to disable. +- Fixed the '--base' option to work for regular use, not just with reverse proxies. + +### Blocklist Plugin + +- Implemented whitelist support to both core and GTK UI. +- Implemented ip filter cleaning before each update. Restarting the deluge + daemon is no longer needed. +- If "check_after_days" is 0(zero), the timer is not started anymore. It + would keep updating one call after the other. If the value changed, the + timer is now stopped and restarted using the new value. diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 66f94e242..000000000 --- a/ChangeLog +++ /dev/null @@ -1,53 +0,0 @@ -=== Deluge 2.0 (In Development) === - - * Improved Logging - * Removed the AutoAdd feature on the core. It's now handled with the AutoAdd - plugin, which is also shipped with Deluge, and it does a better job and - now, it even supports multiple users perfectly. - * Authentication/Permission exceptions are now sent to clients and recreated - there to allow acting upon them. - * Enforced the use of the "deluge.plugins" namespace to reduce package - names clashing beetween regular packages and deluge plugins. - * Fix potential for host_id collision when creating hostlist entries. - * Add Option To Specify Outgoing Connection Interface. - * Updated SSL/TLS Protocol parameters for better security. - -==== Core ==== - * Make the distinction between adding to the session new unmanaged torrents - and torrents loaded from state. This will break backwards compatability. - * Pass a copy of an event instead of passing the event arguments to the - event handlers. This will break backwards compatability. - * Allow changing ownership of torrents. - * File modifications on the auth file are now detected and when they happen, - the file is reloaded. Upon finding an old auth file with an old format, an - upgrade to the new format is made, file saved, and reloaded. - * Authentication no longer requires a username/password. If one or both of - these is missing, an authentication error will be sent to the client - which sould then ask the username/password to the user. - * Implemented sequential downloads. - * Provide information about a torrent's pieces states - -==== GtkUI ==== - * Allow changing ownership of torrents. - * Host entries in the Connection Manager UI are now editable. - * Implemented sequential downloads UI handling. - * Add optional pieces bar instead of a regular progress bar in torrent status tab. - * Make torrent opening compatible with all unicode paths. - * Fix magnet association button on Windows. - * Add keyboard shortcuts for changing queue position: - - Up: Ctrl+Alt+Up - - Down: Ctrl+Alt+Down - - Top: Ctrl+Alt+Shift+Up - - Bottom: Ctrl+Alt+Shift+Down - -==== WebUI ==== - * Server (deluge-web) now daemonizes by default, use '-d' or '--do-not-daemonize' to disable. - * Fixed the '--base' option to work for regular use, not just with reverse proxies. - -==== Blocklist Plugin ==== - * Implemented whitelist support to both core and GTK UI. - * Implemented ip filter cleaning before each update. Restarting the deluge - daemon is no longer needed. - * If "check_after_days" is 0(zero), the timer is not started anymore. It - would keep updating one call after the other. If the value changed, the - timer is now stopped and restarted using the new value. diff --git a/DEPENDS b/DEPENDS deleted file mode 100644 index 795a995ff..000000000 --- a/DEPENDS +++ /dev/null @@ -1,29 +0,0 @@ -=== Core === - * libtorrent (rasterbar) >= 1.1.1 - * python >= 2.7.7 - * setuptools - * twisted >= 11.1 - * pyopenssl - * pyxdg - * chardet - * gettext - * python-geoip (optional) - * geoip-database (optional) - * setproctitle (optional) - * pillow (optional) - * py2-ipaddress (optional, required for Windows IPv6) - * rencode >= 1.0.2 (optional), python port bundled. - - -=== Gtk UI === - * pygtk >= 2.16 - * librsvg - * xdg-utils - * intltool - * python-notify (optional) - * pygame (optional) - * python-appindicator (optional) - -=== Web UI === - * mako - * slimit (optional), minifies JS files. diff --git a/DEPENDS.md b/DEPENDS.md new file mode 100644 index 000000000..10d394584 --- /dev/null +++ b/DEPENDS.md @@ -0,0 +1,102 @@ +# Deluge dependencies + +The following are required to install and run Deluge. They are separated into +sections to distinguish the precise requirements for each module. + +All modules will require the [common](#common) section dependencies. + +## Prerequisite + +- [Python] _>= 2.7.7 or >= 3.5_ + +## Build + +- [setuptools] +- [intltool] - Translation file tool +- [closure-compiler] - Minify javascript (alternative is [slimit]) + +## Common + +- [Twisted] _>= 16.6_ - Use `TLS` extras for `service_identity` and `idna`. +- [OpenSSL] _>= 1.0.1_ +- [pyOpenSSL] +- [Chardet] +- [gettext] +- [PyXDG] +- [six] +- [zope.interface] +- [xdg-utils] + +#### Optional + +- [setproctitle] - Support correctly naming Deluge processes. +- [Pillow] - Image library for `.ico` support. +- [rencode] _>= 1.0.2_ - Encoding library with Python port bundled. +- [dbus-python] + +#### Windows OS + +- [pywin32] +- [certifi] +- [py2-ipaddress] - Optional for Python 2 IPv6 lookup + +## Core (deluged daemon) + +- [libtorrent] _>= 1.1.1_ +- [GeoIP] - Optional (_Debian: `python-geoip`_) + +## GTK UI + +- PyGTK +- [pycairo] +- [librsvg] _>= 2_ +- [python-appindicator] - Optional + +#### MacOS + +- [GtkOSXApplication] + +## Web UI + +- [mako] + +## Plugins + +### Notifications + +Optional dependencies for this plugin. + +- [pygame] - Sound +- [python-notify] - Desktop popup + +[python]: https://www.python.org/ +[setuptools]: https://setuptools.readthedocs.io/en/latest/ +[intltool]: https://freedesktop.org/wiki/Software/intltool/ +[closure-compiler]: https://developers.google.com/closure/compiler/ +[slimit]: https://slimit.readthedocs.io/en/latest/ +[openssl]: https://www.openssl.org/ +[pyopenssl]: https://pyopenssl.org +[twisted]: https://twistedmatrix.com +[pillow]: https://pypi.org/project/Pillow/ +[libtorrent]: https://libtorrent.org/ +[zope.interface]: https://pypi.org/project/zope.interface/ +[pywin32]: https://github.com/mhammond/pywin32 +[certifi]: https://pypi.org/project/certifi/ +[py2-ipaddress]: https://pypi.org/project/py2-ipaddress/ +[dbus-python]: https://pypi.org/project/dbus-python/ +[setproctitle]: https://pypi.org/project/setproctitle/ +[gtkosxapplication]: https://github.com/jralls/gtk-mac-integration +[chardet]: https://chardet.github.io/ +[gettext]: https://www.gnu.org/software/gettext/ +[rencode]: https://github.com/aresch/rencode +[pyxdg]: https://www.freedesktop.org/wiki/Software/pyxdg/ +[six]: https://pythonhosted.org/six/ +[xdg-utils]: https://www.freedesktop.org/wiki/Software/xdg-utils/ +[pycairo]: https://cairographics.org/pycairo/ +[pygobject]: https://pygobject.readthedocs.io/en/latest/ +[geoip]: https://pypi.org/project/GeoIP/ +[mako]: https://www.makotemplates.org/ +[pygame]: https://www.pygame.org/ +[python-notify]: https://packages.ubuntu.com/xenial/python-notify +[python-appindicator]: https://packages.ubuntu.com/xenial/python-appindicator +[librsvg]: https://wiki.gnome.org/action/show/Projects/LibRsvg diff --git a/MANIFEST.in b/MANIFEST.in index 3ef10fbed..b07724177 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,11 @@ -include AUTHORS ChangeLog DEPENDS LICENSE RELEASE-VERSION README.rst -include msgfmt.py minify_web_js.py version.py gen_web_gettext.py +include *.md +include AUTHORS +include LICENSE +include RELEASE-VERSION +include msgfmt.py +include minify_web_js.py +include version.py +include gen_web_gettext.py graft docs/man diff --git a/README.md b/README.md new file mode 100644 index 000000000..470286a35 --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# Deluge BitTorrent Client + +[![build-status]][travis-deluge] [![docs-status]][rtd-deluge] + +Deluge is a BitTorrent client that utilizes a +daemon/client model. There are various user interfaces available for +Deluge such as the GTK-UI, the Web-UI and a Console-UI. Deluge uses +libtorrent in it's backend to handle the BitTorrent protocol. + +## Installation + +Instruction for installing from source code. See [DEPENDS](DEPENDS.md) for +build and runtime dependencies. Further details on the wiki: +[Installing/Source]. + + python setup.py build + python setup.py install + +## Usage + +There are various user-interfaces and a daemon for Deluge that can be used as +follows: + +- **Gtk** + + `deluge` or `deluge-gtk` + +- **Console** + + `deluge-console` + +- **Web** + + `deluge-web` + + Go to http://localhost:8112 and use default password `deluge`. + +- **Daemon** + + `deluged` + + See [Thinclient guide] for connecting to the daemon from another machine. + +## Contact/Support + +- [Homepage](https://deluge-torrent.org) +- [Support docs][user guide] +- [Forum](https://forum.deluge-torrent.org) +- [IRC Freenode #deluge](irc://irc.freenode.net/deluge) + +[user guide]: https://dev.deluge-torrent.org/wiki/UserGuide +[thinclient guide]: https://dev.deluge-torrent.org/wiki/UserGuide/ThinClient +[installing/source]: https://dev.deluge-torrent.org/wiki/Installing/Source +[build-status]: https://travis-ci.org/deluge-torrent/deluge.svg "Travis Status" +[travis-deluge]: https://travis-ci.org/deluge-torrent/deluge +[docs-status]: https://readthedocs.org/projects/deluge/badge/?version=develop +[rtd-deluge]: https://deluge.readthedocs.io/en/develop/?badge=develop "Documentation Status" diff --git a/README.rst b/README.rst deleted file mode 100644 index 45f10788c..000000000 --- a/README.rst +++ /dev/null @@ -1,68 +0,0 @@ -========================= - Deluge BitTorrent Client -========================= - -|build-status| |docs| - -Homepage: http://deluge-torrent.org - -Authors: - Andrew Resch - Damien Churchill - -For contributors and past developers see: - AUTHORS - -========================== -Installation Instructions: -========================== - -For detailed instructions see: http://dev.deluge-torrent.org/wiki/Installing/Source - -Ensure build dependencies are installed, see DEPENDS for a full listing. - -Build and install by running:: - - $ python setup.py build - $ sudo python setup.py install - -================ -Contact/Support: -================ - -:Forum: http://forum.deluge-torrent.org -:IRC Channel: #deluge on irc.freenode.net - -=== -FAQ -=== - -For the full FAQ see: http://dev.deluge-torrent.org/wiki/Faq - -How to start the various user-interfaces: - Gtk:: - - deluge or deluge-gtk - - Console:: - - deluge-console - - Web:: - - deluge-web - Go to http://localhost:8112/ default-password = "deluge" - -How do I start the daemon?: - deluged - -I can't connect to the daemon from another machine: - See: http://dev.deluge-torrent.org/wiki/UserGuide/ThinClient - - -.. |build-status| image:: https://travis-ci.org/deluge-torrent/deluge.svg - :target: https://travis-ci.org/deluge-torrent/deluge - -.. |docs| image:: https://readthedocs.org/projects/deluge/badge/?version=develop - :target: https://readthedocs.org/projects/deluge/?badge=develop - :alt: Documentation Status diff --git a/setup.py b/setup.py index db45b0f7a..d5fe90933 100755 --- a/setup.py +++ b/setup.py @@ -571,10 +571,8 @@ setup( maintainer='Calum Lind', maintainer_email='calumlind+deluge@gmail.com', keywords='torrent bittorrent p2p fileshare filesharing', - long_description="""Deluge is a BitTorrent client that utilizes a - daemon/client model. There are various user interfaces available for - Deluge such as the GTK-UI, the Web-UI and a Console-UI. Deluge uses - libtorrent in it's backend to handle the BitTorrent protocol.""", + long_description=open('README.md').read(), + long_description_content_type='text/markdown', url='https://deluge-torrent.org', classifiers=[ 'Development Status :: 4 - Beta',