diff --git a/README.org b/README.org
index dd369be..948d1b1 100644
--- a/README.org
+++ b/README.org
@@ -17,7 +17,7 @@
- tree structure of messages;
- subscriptions of hashtag;
- encrypted direct message (but see [[FAQ]]);
- - no mentions notification, no knowlege of when or who favourited
+ - no mentions notification, no knowledge of when or who favourited
your status;
- No blocking or muting, the client can be configured to ignore
a list of accounts.
@@ -166,10 +166,17 @@
* Privacy
- This software does collect nothing from its users in places
- different from their local computer.
+ The author of this software collect no user data informations.
- But launching ~quick_quicklisp.sh~ will contact
+ But this software is a client to connect and interact to one or more
+ remote computer. So potentially it could share a lot of
+ informations with other actors but just after the user allowed it to
+ do so.
+
+ It is the user reponsability to checks the privacy conditions of the
+ instance this software connect to.
+
+ Moreover launching ~quick_quicklisp.sh~ will contact
[[https://www.quicklisp.org/]], check the
[[https://beta.quicklisp.org/quicklisp.lisp][quicklisp sources]] for
details.
@@ -184,11 +191,47 @@
But, please take a minute to read the file [[./CONTRIBUTING.org]]
* FAQ
- - are the encrypted messages secure?
- No. First only a symmetric encryption scheme is implemented (so
+* FAQ
+
+ - I just tried to start the program for the first time but it give
+ me a weird error, what's wrong?
+
+ Did you wrote a configuration file?
+
+ 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. If this file does not exists or is invalid tinmop will
+ refuse to start.
+
+ Please check the man page (tinmop(1)) for more information.
+
+ - OK the program is running but how can i use it?
+
+ Press the key ~?~ to get a list of the available keys available.
+
+ - Tinmop crashed! Where can i report that?
+
+ The issue tracker is here:
+
+ [[https://notabug.org/tinmop/issues/]]
+
+ Please also, if possible, send the backtrace of the process. To
+ print a backtrace just write ~backtrace~ when the debugger has
+ been invoked.
+
+ *Important note*
+
+ The backtrace can contains sensitive and personal information,
+ please always *carefully checks* the backtrace contents before
+ making this information public!
+
+ - Are the encrypted messages secure?
+
+ *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
+ 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.
diff --git a/README.txt b/README.txt
index a15691c..700da45 100644
--- a/README.txt
+++ b/README.txt
@@ -20,8 +20,9 @@ Table of Contents
9. Privacy
10. Contributing
11. FAQ
-12. NO WARRANTY
-13. Acknowledgment
+12. FAQ
+13. NO WARRANTY
+14. Acknowledgment
@@ -45,8 +46,8 @@ Table of Contents
• tree structure of messages;
• subscriptions of hashtag;
• encrypted direct message (but see 11);
- • no mentions notification, no knowlege of when or who favourited your
- status;
+ • no mentions notification, no knowledge of when or who favourited
+ your status;
• No blocking or muting, the client can be configured to ignore a list
of accounts.
@@ -220,10 +221,16 @@ Table of Contents
9 Privacy
═════════
- This software does collect nothing from its users in places different
- from their local computer.
+ The author of this software collect no user data informations.
- But launching `quick_quicklisp.sh' will contact
+ But this software is a client to connect and interact to one or more
+ remote computer. So potentially it could share a lot of informations
+ with other actors but just after the user allowed it to do so.
+
+ It is the user reponsability to checks the privacy conditions of the
+ instance this software connect to.
+
+ Moreover launching `quick_quicklisp.sh' will contact
, check the [quicklisp sources] for
details.
@@ -248,9 +255,45 @@ Table of Contents
11 FAQ
══════
- • are the encrypted messages secure?
- No. First only a symmetric encryption scheme is implemented (so
+12 FAQ
+══════
+
+ • I just tried to start the program for the first time but it give me
+ a weird error, what's wrong?
+
+ Did you wrote a configuration file?
+
+ 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. If
+ this file does not exists or is invalid tinmop will refuse to start.
+
+ Please check the man page (tinmop(1)) for more information.
+
+ • OK the program is running but how can i use it?
+
+ Press the key `?' to get a list of the available keys available.
+
+ • Tinmop crashed! Where can i report that?
+
+ The issue tracker is here:
+
+
+
+ Please also, if possible, send the backtrace of the process. To
+ print a backtrace just write `backtrace' when the debugger has been
+ invoked.
+
+ *Important note*
+
+ The backtrace can contains sensitive and personal information,
+ please always *carefully checks* the backtrace contents before
+ making this information public!
+
+ • Are the encrypted messages secure?
+
+ *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
@@ -260,7 +303,7 @@ Table of Contents
So, please do not consider the encrypted message secure at all.
-12 NO WARRANTY
+13 NO WARRANTY
══════════════
tinmop: an humble mastodon client Copyright (C) 2020 cage
@@ -282,7 +325,7 @@ Table of Contents
[http://www.gnu.org/licenses/]
-13 Acknowledgment
+14 Acknowledgment
═════════════════
My deep thanks to the folks that provided us with wonderful SBCL and
diff --git a/doc/man.org b/doc/man.org
index a446a94..28ef3ff 100644
--- a/doc/man.org
+++ b/doc/man.org
@@ -212,7 +212,7 @@
- ~/etc/tinmop/shared.conf~: some default configuration not related to themes
- ~/etc/tinmop/init.lisp~: system wide configuration
- ~$HOME/.config/tinmop/init.lisp~: user configuration
- - ~$HOME/.local/share/tinmop/main.conf~: user configuration (simple format)
+ - ~$HOME/.config/tinmop/main.conf~: user configuration (simple format)
* Privacy
diff --git a/doc/tinmop.man b/doc/tinmop.man
index 4eeed2f..bed8daa 100644
--- a/doc/tinmop.man
+++ b/doc/tinmop.man
@@ -274,7 +274,7 @@ in the directory \fC$HOME/.local/share/tinmop/\fP.
.IP \(em 4
\fC$HOME/.config/tinmop/init.lisp\fP: user configuration
.IP \(em 4
-\fC$HOME/.local/share/tinmop/main.conf\fP: user configuration (simple format)
+\fC$HOME/.config/tinmop/main.conf\fP: user configuration (simple format)
.SH "Privacy"
.PP
diff --git a/src/software-configuration.lisp b/src/software-configuration.lisp
index 644ecb4..470412c 100644
--- a/src/software-configuration.lisp
+++ b/src/software-configuration.lisp
@@ -376,24 +376,29 @@
purge-cache-days-offset)
(defun load-config-file (&optional (virtual-filepath +conf-filename+))
- (let* ((file (res:get-config-file virtual-filepath))
- (tree (parse-config (fs:namestring->pathname file))))
- (loop for entry in tree do
- (let ((key (first entry))
- (value (second entry)))
- (cond
- ((eq +key-color-re+ key)
- (setf (access:accesses *software-configuration* key)
- (append (access:accesses *software-configuration* key)
- (list value))))
- ((keywordp key)
- (setf (access:accesses *software-configuration* key) value))
- (t
- (multiple-value-bind (rest all)
- (apply #'access:set-accesses value *software-configuration* key)
- (declare (ignore rest))
- (setf *software-configuration* all))))))
- *software-configuration*))
+ (handler-case
+ (progn
+ (let* ((file (res:get-config-file virtual-filepath))
+ (tree (parse-config (fs:namestring->pathname file))))
+ (loop for entry in tree do
+ (let ((key (first entry))
+ (value (second entry)))
+ (cond
+ ((eq +key-color-re+ key)
+ (setf (access:accesses *software-configuration* key)
+ (append (access:accesses *software-configuration* key)
+ (list value))))
+ ((keywordp key)
+ (setf (access:accesses *software-configuration* key) value))
+ (t
+ (multiple-value-bind (rest all)
+ (apply #'access:set-accesses value *software-configuration* key)
+ (declare (ignore rest))
+ (setf *software-configuration* all))))))
+ *software-configuration*))
+ (error (e)
+ (format *error-output* "~a~%" e)
+ (os-utils:exit-program 1))))
;;;; end of parser