1
0
mirror of https://codeberg.org/cage/tinmop/ synced 2024-12-21 23:43:54 +01:00

- updated README.

This commit is contained in:
cage 2023-10-19 18:20:49 +02:00
parent 069bbda392
commit 2b44b8ffe0

View File

@ -11,17 +11,12 @@
* Introduction * Introduction
Tinmop is an opinionated client for Tinmop is an opinionated client for [[https://gemini.circumlunar.space/][gemini protocol]], Gopher,
[[https://gemini.circumlunar.space/][gemini protocol]], Gopher, [[https://joinmastodon.org/][Mastodon]], [[https://pleroma.social/][Pleroma]] (using the mastodon API) and [[https://kamid.omarpolo.com/][kamid]] protocols. It offer a
[[https://pleroma.social/][Pleroma]] (using the mastodon API) and distraction free terminal interface and a GUI for connecting to the geminispace.
[[https://kamid.omarpolo.com/][kamid]] protocols. It offer a
distraction free terminal interface and a GUI for connecting to the
geminispace.
The name is a recursive acronym: "Tinmop Is Not Mutt or Pine". The The name is a recursive acronym: "Tinmop Is Not Mutt or Pine". The older of us can remember that, in turn, Pine is sometimes considered
older of us can remember that, in turn, Pine is sometimes considered an acronym as well: "Pine Is Not Elm" and, finally, Elm means (according to Wikipedia): "Electronic Mail".
an acronym as well: "Pine Is Not Elm" and, finally, Elm means
(according to Wikipedia): "Electronic Mail".
* Peculiar Features * Peculiar Features
@ -29,17 +24,13 @@
- subscriptions of hashtag; - subscriptions of hashtag;
- programmable and extensible; - programmable and extensible;
- encrypted direct message (but see [[FAQ]]); - encrypted direct message (but see [[FAQ]]);
- no mentions notification, no knowledge of when or who favourited - no mentions notification, no knowledge of when or who favourited your status;
your status; - No blocking or muting, the client can be configured to ignore a list of accounts.
- No blocking or muting, the client can be configured to ignore
a list of accounts.
** Important note ** Important note
This is alpha quality software, many things are broken, some This is alpha quality software, many things are broken, some feature are missing some works with unintended/unexpected side
feature are missing some works with unintended/unexpected side effects; this software is for testing only and remember that there is [[NO WARRANTY][NO WARRANTY]].
effects; this software is for testing only and remember that there
is [[NO WARRANTY][NO WARRANTY]].
* Dependency * Dependency
@ -48,8 +39,7 @@
+ to build the package: + to build the package:
xgettext. xgettext.
+ to install the package, including running the script to install + to install the package, including running the script to install lisp libraries (~quick_quicklisp.sh~):
lisp libraries (~quick_quicklisp.sh~):
- AWK; - AWK;
- git. - git.
@ -65,10 +55,10 @@
- man - man
- imagemagick - imagemagick
All the dependencies above should be available using the package All the dependencies above should be available using the package manager of your distribution (~apt~, ~yum~ etc).
manager of your distribution (~apt~, ~yum~ etc).
** Lisp Libraries ** Lisp Libraries
- alexandria; - alexandria;
- cl-ppcre-unicode; - cl-ppcre-unicode;
- tooter; - tooter;
@ -99,16 +89,13 @@
- percent-encoding; - percent-encoding;
- trivial-clipboard. - trivial-clipboard.
All these libraries will be downloaded, compiled and installed by All these libraries will be downloaded, compiled and installed by the script ~quick_quicklisp.sh~, see below.
the script ~quick_quicklisp.sh~, see below.
** Foreign (C language) library ** Foreign (C language) library
- libssl (TLS socket) - libssl (TLS socket)
The C library should be installed with their header (~*.h~) The C library should be installed with their header (~*.h~) files. On Debian or derived system this means installing the library package with the ~-dev~ suffix as shown below:
files. On Debian or derived system this means installing the
library package with the ~-dev~ suffix as shown below:
#+BEGIN_SRC sh #+BEGIN_SRC sh
# apt-get install libssl-dev # apt-get install libssl-dev
@ -140,8 +127,7 @@
or using a shell script [[https://guix.gnu.org/manual/en/guix.html#Binary-Installation][as explained in the guix manual]]. or using a shell script [[https://guix.gnu.org/manual/en/guix.html#Binary-Installation][as explained in the guix manual]].
** From source ** From source
1. optional step needed only if you have not already the configure script, 1. optional step needed only if you have not already the configure script, you will need ~autotools~ for that.
you will need ~autotools~ for that.
#+BEGIN_SRC sh #+BEGIN_SRC sh
$ autoreconf -fiv $ autoreconf -fiv
@ -153,23 +139,20 @@
$ ./configure $ ./configure
#+END_SRC #+END_SRC
3. the script ~quick-quicklisp.sh~ will download and install the library manager and the 3. the script ~quick-quicklisp.sh~ will download and install the library manager and the libraries on your home dir.
libraries on your home dir.
#+BEGIN_SRC sh #+BEGIN_SRC sh
$ ./quick_quicklisp.sh $ ./quick_quicklisp.sh
#+END_SRC #+END_SRC
This step is optional if you have already installed quicklisp, in This step is optional if you have already installed quicklisp, in this case just load the [[Dependency][dependencies]] using the client installed on your computer.
this case just load the [[Dependency][dependencies]]
using the client installed on your computer.
4. optional step if you did not ran ~quick-quicklisp.sh~. 4. optional step if you did not ran ~quick-quicklisp.sh~.
Clone in ~$HOME/quicklisp/local-projects/~ the latest version of Clone in ~$HOME/quicklisp/local-projects/~ the latest version of croatoan, a library to wrap the ncurses TUI library.
croatoan, a library to wrap the ncurses TUI library.
This step is temporary as this version will get into quicklisp eventually. This step is temporary as this version will get into quicklisp eventually.
#+BEGIN_SRC sh #+BEGIN_SRC sh
$ cd $HOME/quicklisp/local-projects/ $ cd $HOME/quicklisp/local-projects/
$ git clone https://github.com/McParen/croatoan.git $ git clone https://github.com/McParen/croatoan.git
@ -199,9 +182,7 @@
$ tinmop $ tinmop
#+END_SRC #+END_SRC
9. An error will be printed about a missing file 9. An error will be printed about a missing file place a simple configuration file in one of the directory the software indicated. See [[FAQ][the FAQ below]].
place a simple configuration file in one of the directory the software indicated.
See [[FAQ][the FAQ below]].
* Usage * Usage
@ -230,56 +211,37 @@
* License * License
This program is released under GNU General Public license version 3 This program is released under GNU General Public license version 3 or later (see COPYING file).
or later (see COPYING file).
The program use data and code from other sources, please see The program use data and code from other sources, please see LICENSES.org for credits.
LICENSES.org for credits.
Although any efforts has been put to make the list of credits Although any efforts has been put to make the list of credits exhaustive, errors are always possible. Please send correction to cage-dev at twistfold dot it.
exhaustive, errors are always possible. Please send correction to
cage-dev at twistfold dot it.
* Privacy * Privacy
The author of this software collects no user data information with The author of this software collects no user data information with this software.
this software.
But this software is a client to connect and interact to one or more But this software is a client to connect and interact to one or more remote computer. So potentially it could share a lot of information with other actors but just after the user allowed it to do so.
remote computer. So potentially it could share a lot of information
with other actors but just after the user allowed it to do so.
It is the user responsibility to checks the privacy conditions of the It is the user responsibility to checks the privacy conditions of the instance this software connect to.
instance this software connect to.
Moreover launching ~quick_quicklisp.sh~ will contact Moreover launching ~quick_quicklisp.sh~ will contact [[https://www.quicklisp.org/]], check the [[https://beta.quicklisp.org/quicklisp.lisp][quicklisp sources]] for details.
[[https://www.quicklisp.org/]], check the
[[https://beta.quicklisp.org/quicklisp.lisp][quicklisp sources]] for
details.
By default, pressing "!" will contact the remote service located at: By default, pressing "!" will contact the remote service located at: "gemini://geminispace.info/search".
"gemini://geminispace.info/search".
* Contributing * Contributing
Any help is appreciated. If you intend to contribute please point Any help is appreciated. If you intend to contribute please point your browser to the [[https://codeberg.org/cage/tinmop/issues][issue tracker]] or file a [[https://codeberg.org/cage/tinmop/pulls][pull request]].
your browser to the
[[https://codeberg.org/cage/tinmop/issues][issue tracker]] or file a
[[https://codeberg.org/cage/tinmop/pulls][pull request]].
But, please take a minute to read the file [[./CONTRIBUTING.org]] But, please, take a minute to read the file [[./CONTRIBUTING.org]] before
* FAQ * FAQ
- I just tried to start the program for the first time but it give - I just tried to start the program for the first time but it give me a weird error, what's wrong?
me a weird error, what's wrong?
Did you wrote a configuration file before starting? Did you wrote a configuration file before starting?
Tinmop expects a configuration file in your config directory Tinmop expects a configuration file in your config directory (usually ~$HOME/.config/tinmop/~). This file must contains at least the username and the name of the instance you want to connect.
(usually ~$HOME/.config/tinmop/~). This file must contains at
least the username and the name of the instance you want to
connect.
Example : Example :
#+BEGIN_SRC text #+BEGIN_SRC text
@ -295,28 +257,19 @@
username = username username = username
#+END_SRC #+END_SRC
If this file does not exists or is invalid tinmop could be used If this file does not exists or is invalid tinmop could be used just as a gemini client.
just as a gemini client.
Please check the man page (tinmop(1)) for more information. Please check the man page (tinmop(1)) for more information.
- The ~quick_quicklisp.sh~ script failed and refuse to start again, - The ~quick_quicklisp.sh~ script failed and refuse to start again, what can I do?
what can I do?
If tinmop is the first Common lisp program you have ever installed If tinmop is the first Common lisp program you have ever installed installed, try to rename the directory ~$/HOME/quicklisp~ and, then, restart the script.
installed, try to rename the directory ~$/HOME/quicklisp~ and,
then, restart the script.
If problem persists [[BUGS][contact me]]. If problem persists [[BUGS][contact me]].
- Is tinmop compatible with mastodon servers? - Is tinmop compatible with mastodon servers?
Unfortunately no, the way some API endpoint provide the toots is Yes, in fact I am using tinmop with a Mastodon istance on a daily basis.
not suitable for this client, for more information please go
[[https://github.com/tootsuite/mastodon/issues/13817][here]].
I hope this will change in the future but this depends entirely
from the people are developing the server.
- OK the program is running but how can i use it? - OK the program is running but how can i use it?
@ -328,58 +281,38 @@
[[https://codeberg.org/cage/tinmop/issues/]] [[https://codeberg.org/cage/tinmop/issues/]]
Please also, if possible, send the backtrace of the process. To Please also, if possible, send the backtrace of the process. To print a backtrace just write ~backtrace~ when the debugger has been invoked.
print a backtrace just write ~backtrace~ when the debugger has
been invoked.
*Important note* *Important note*
The backtrace can contains sensitive and personal information, The backtrace can contains sensitive and personal information, please always *carefully checks* the backtrace contents before making this information public!
please always *carefully checks* the backtrace contents before
making this information public!
- Are the encrypted messages secure? - Are the encrypted messages secure?
*No*. First only a symmetric encryption scheme is implemented (so *No*. First only a symmetric encryption scheme is implemented (so there is a problem of secure key exchanging). Moreover i am not a crypto expert and probably i made something wrong. Note that i am not claiming that the algorithm (AES256) or the implementation of such encrypting algorithm is flawed but that, likely, is flawed the code i wrote to use the crypto library in this software.
there is a problem of secure key exchanging). Moreover i am not a
crypto expert and probably i made something wrong. Note that i am
not claiming that the algorithm (AES256) or the implementation of
such encrypting algorithm is flawed but that, likely, is flawed
the code i wrote to use the crypto library in this software.
So, please do not consider the encrypted message secure at all. So, please do not consider the encrypted message secure at all.
* NO WARRANTY * NO WARRANTY
tinmop: an humble gemini and pleroma client tinmop: a multiprotocol client
Copyright (C) 2020 cage Copyright © cage
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License along with this program. If not, see [[http://www.gnu.org/licenses/][http://www.gnu.org/licenses/]].
along with this program.
If not, see [[http://www.gnu.org/licenses/][http://www.gnu.org/licenses/]].
* Acknowledgment * Acknowledgment
My deep thanks to the folks that provided us with wonderful SBCL and My deep thanks to the folks that provided us with wonderful SBCL and Common lisp libraries.
Common lisp libraries.
In particular i want to thanks the authors of the libraries Croatoan In particular i want to thanks the authors of the libraries Croatoan and Tooter for their help when I started to develop this program.
and Tooter for their help when I started to develop this program.
There are more people i borrowed code and data from, they are There are more people i borrowed code and data from, they are mentioned in the file LINCENSES.org
mentioned in the file LINCENSES.org
This program is was born also with the help of CCCP: "Collettivo This program is was born also with the help of CCCP: "Collettivo Computer Club Palermo".
Computer Club Palermo".
Also thanks to "barbar" for testing of the installation scripts. Also thanks to "barbar" for testing of the installation scripts.