From 2faf32800bb8aa2f5b4c199062253d330595856e Mon Sep 17 00:00:00 2001 From: cage Date: Sat, 16 May 2020 11:24:11 +0200 Subject: [PATCH] - made the program exits without invoke the debugger if the main configuration file is not found; - update documentation. --- README.org | 57 +++++++++++++++++++++++++---- README.txt | 65 +++++++++++++++++++++++++++------ doc/man.org | 2 +- doc/tinmop.man | 2 +- src/software-configuration.lisp | 41 ++++++++++++--------- 5 files changed, 129 insertions(+), 38 deletions(-) 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