diff --git a/.gitignore b/.gitignore index 8febc9e..326263f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ __pycache__ plchat.build -dist \ No newline at end of file +dist +build \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..c8f3eb1 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# PlChat - A Pleroma Chat Client + +Pleroma chat client + +# Usage +Run the binary or `python plchat.py`. Log in to your account on the fediverse and start chatting. If your server runs behind a reverse proxy, it will need to proxy websocket connections. + +## Installation +Installation instructions for PlChat. If you are looking to package this program or build from source, skip to Building From Source or Packaging down below. + +### Windows + +### Linux + +### MacOS + +## Building From Source or Packaging +PlChat comes with a Makefile for compiling to a binary, but it is of course possible to run the source directly with just `python plchat.py`. The easiest way to package PlChat is just to make sure the dependencies are installed and write a script that sets the appropriate pythonpath and runs plchat.py. +Otherwise you can see below for instructions on building the binary. + +### Runtime Depencies +You will need QtPy and a compatible set of bindings, either PyQt4/5 or Pyside/PySide2, all available on PyPI. +You will also need the following system libraries: Qt4 or 5 (depending on your bindings), Secret Service (on linux or BSD), and libmagic. +And, obviously, a copy of python. Python3.5+ is the only thing I will support but other versions may work. + +### Building +You will need the following packages from pypi: keyring, appdirs, python-magic, python-dateutil, and websockets. +You will also need all runtime dependencies listed above, as well as nuitka3 and a C compiler compiler. Nuitka supports the following compilers: + +* gcc 5.1+ or g++ 4.4+ +* clang on macOS or BSD +* MinGW64/Visual Studio 2019+/clang-cl on Windows + +Cross compilation is not supported so you will need to compile on the OS and architecture that you are targeting. + +Once everything is installed and in your path it should be a simple `make && sudo make install` to build everything. The resulting binary will have it's own copy of all the python build dependencies, which can then be uninstalled or ignore. You can also `make systemlibs` if you wish, and the resulting binary will rely on system packages for all python modules listed above as build depencies. + +Nuitka produces very large binaries. UPX works well if you want to reduce the size. \ No newline at end of file