User-level changes:
==================
- libgpgme is not used anymore; it is replaced by a built-in piece of code called OpenPGP-SDK
(http://openpgp.nominet.org.uk/cgi-bin/trac.cgi) that was improved to be used by RetroShare
for handling PGP keys.
- the gnupg keyring is not used anymore. Now, RetroShare has it's own gpg keyring, shared by all instances.
On linux it's located in ~/.retroshare/pgp/. A lock system prevents multiple locations to read/write keyrings
simultaneously.
- the trust database from gnupg is not documented, so RetroShare cannot import it. This comes from the fact that
the GPG standard (RFC4880) asks explicitly not to export trust information. So RetroShare has it's own
trust DB shared by locations. This means you need to re-trust people. Sorry for that!
- at start, if no keyring is found, RS will propose to copy the gnupg keyring to use your existing keys. Clicking on
"OK" will do the copy, and you should find back all existing locations, except for DSA keys.
- locations for which the suitable keypair is not in the keyring will not be displayed in the login window
- locations for which the suitable keypair is not a RSA/RSA key will not be displayed. RetroShare does not
support DSA/Elgamal keypairs yet.
- a key import/export exchange function has been added in the certificate creation window (you go there from the login
window by clicking on "manage keys/locations". This allows to easily create a new location with the same pgp key on
another computer. To obtain a suitable keypair using gnupg, you need to concatenate the encrypted private key and the
public key into an ascii file. This can be done using:
gpg -a --export-secret-keys [your ID] > mykey.asc
gpg -a --export [your ID] >> mykey.asc
- importing a key with subkeys in not yet possible. Please remove subkeys before importing.
- The code has been tested for a reasonnable amount of time, but it's not possible to prevent some new bugs
to appear. Please report them asap supplying: call-stacks if possible, and terminal output. In particular,
openpgp has some assert()'s that should not be triggered unless RetroShare is calling it in an improper way.
Internal changes
================
- a specific component, PGPHandler, takes care of the interface between openpgp-sdk and RetroShare
openpgp-sdk is c-code, with it's own memory management, which has been kept well separated from
RetroShare.
- GPG Ids are now a specific class (not a std::string anymore) for code consistency reasons. As strings are
still used in many places, this requires a few conversions. In particular, AuthGPG takes strings as
function params and calls GPGHandler with the proper PGPIdType class. In the future, RetroShare should
only use PGPIdType. The same will be done for SSL ids.
- signature cleaning is still handled by the Retroshare built-in function, not by openpgp, but we will
do this later.
Still to do
===========
- DSA needs subkey handling, since the encryption is performed by a Elgamal subkey. Not sure this will be done.
- GPGIds/SSLIds cleaning (meaning replace strings by appropriate types). Lots of confusion throughout the code in retroshare-gui in particular.
- key removal from keyring. This is a challenge to keep locations synchronised.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5293 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* New Async/Token Group/Msg Creation (required for Key generation/group Id determination).
This means that creating a group, and posting messages are two steps... (see PhotoAddDialog).
* Moved some MACROS from ForumV2 to libretroshare/rsidentity for generic MsgStatus stuff (e.g. MSG_READ)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5277 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Editing of Photo Descriptions & Album descriptions.
- Photo versions.
- Default to Album description, if Photo not filled in.
- Album Cover images.
- SlideShow.
Todo:
- Deletion of Photos & Albums.
- Handle Photo Files (only thumbnails at the moment).
- Searching.
- Sharing options.
- Image processing.
- +lots more.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5239 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- unchecked chunks are not made available to swarming sources, not saved as done.
- force check now uses the simple method to put all chunks in checking mode
- force checked files can be cancelled (finally!)
- improved display (use red for active chunks, yellow for checking)
- cache file are not using chunk checking (assume_availability=true)
The code still contains the #ifdef. It should be removed soon if everything works ok.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5235 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Basics of Wiki, Photo, Id are working with Local Test interface.
- Duplicated existing Forum : ForumV2Dialog + forumv2/*
- Modified ForumV2Dialog to use Request / Response Data retrieval.
- Switched Id to use TokenQueue request system.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@5220 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Fixed bug in Qt for Windows Vista and higher. Convert path from native separators of filenames from QFileDialog::getOpenFileName(s)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5213 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Fixed crash after the second call to RsInit::InitRetroShare when keyring does not exist.
The instance of AuthSSL was created twice and AuthGPG was deleted without stopping the thread. Stopped the AuthGPG thread on exit of RetroShare.
- Added the correct path to the keyring for Windows in RsInit::copyGnuPGKeyrings.
- Changed the detection of the portable version on Windows from the file "gpg.exe" to the file "portable".
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-OpenPGP@5211 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Moved notify of lobby nick name change from the gui to p3ChatService.
Added missing mutex locks for p3ChatService::_default_nick_name.
Recompile needed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5184 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Extended RsHtml::formatText to replace the RetroShare links with an image and enabled this for the certificate links in the system messages (friend recommendation and user request)
- Added new ObjectPainter for painting a button on a pixmap
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5160 b45a01b8-16f6-495d-af2f-9b41ad6348cc
RS_CHAT_LOBBY_EVENT_PEER_CHANGE_NICKNAME is send, when changing nickname, so the blocklist can be updated (in future).
This will never wort for 100% as discussed in the developer forum, but should stop the most spam.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5150 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Added empty entry to stylesheet-choice for "no stylesheet" and moved method "loadStyleSheet" from MainWindow to Rshare
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5133 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Show "RetroShare" as sender of system messages to myself.
Added new quick view in MessagesDialog to filter system messages.
Changed RetroShare link in friend request message to certificate.
Added new subject image for the system messages (defnax).
Removed not used notify in message service.
Recompile needed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5129 b45a01b8-16f6-495d-af2f-9b41ad6348cc
-don't add friend sources count to anonymous count each time a result for the same file is received!, this could lead to enormously large sources numbers
-don't readd search in summary list if it was already removed by the user
-don't clear the filter when new search results are added
-when using the file name filter only show result from the current search, not also from previous searches
-fixed adding only file types which were searched for, for this I created a new hidden column in summary list to store the file type
-fixed sorting by file size/age, pad string with '0' instead of ' ' Search feature: a quirk I've found
-decrease gui hanging:
-when adding search results temporarily disable sorting
-only add 250 instead of 500 items in one go
-don't call selectSearchResults() for each item added to the result list; instead call hideOrShowSearchResult() which only sets the hidden status of the added item, not the complete list
-replace std::string with QString, removes unnecessary conversions
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5093 b45a01b8-16f6-495d-af2f-9b41ad6348cc
The link file to preview a not finished download is created in temp directory.
Added a messagebox when preview a not finished download to remove the link file.
Fixed german language.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5079 b45a01b8-16f6-495d-af2f-9b41ad6348cc
* fixed utf8 in dropping links to channels
* fixed pasting cert links in the friend list
* added code to allow pasting GPG certificates missing a newline at the end.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5064 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- set auto check of shared directories to 15 minutes
- set time to idle mode to 5 minutes
Fixed german language.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5041 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- handled backward compatibility by keeping/sending old LobbyList item. Should be remove in the near future.
- removed constraint to have at least one friends invited when creating a new lobby.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5024 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Validated chunks are shared to other peers. Force check is now very simple since it just turns all chunks into "needs checking" mode
and sums are asked to sources. Sources maintain a temporary cache of chunks. Since sums are requested sparsely, this should not
affect the sources in terms of performance. We can still imagine precomputing and saving sha1 of chunks while hashing them.
For backward compatibility reasons, the following has been setup *temporarily* in this version:
- unvalidated chunks are still considered as already obtained, and are shared and saved
- force check has been disabled
- final file check is maintained
- in case of file fail, the old checking mode will be used.
All changes for next version are kept in the define 'USE_NEW_CHUNK_CHECKING_CODE' that will be made the default in a few weeks.
At start, I expect most chunk to stya yellow during download, until most sources are able to provide chunk hashs.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5019 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Exports all symbols from RetroShare.exe and import it in the plugins.
Removed the direct linking of the libretroshare and libbitdht from the plugins.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5003 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Moved update of the friends from QTimer to signals.
Combined p3LinkMgr::getFriendCount and p3LinkMgr::getOnlineCount and moved to p3PeerMgr.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4986 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Removed the question to send a message when a chat with an offline friend is started.
Start the chat when
- only one ssl id exist (online or offline)
- only one ssl id is online
Show a messagebox when more than one ssl ids are online or all are offline.
Fixed german language.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4981 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- improved VOIP plugin to add RTT statistics tab to RS gui.
- added comments in rsplugins.h
- added big tooltip in transfers that would be stuck in checking... mode
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4979 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- made config page system more automatic, to allow addign config pages from plugins
- added (disabled) checkbox and function to allow all plugins for development
- added config page methods to RsPlugin class
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4957 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Added -Wextra to the Windows compile.
Added new define in libbitdht for snprintf and fprintf to proper handling of "%ll" under Windows.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4951 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- Fixed handling of utf8 characters in the file name
- Replaced QDesktopServices by RsUrlHandler to handle collections
- Fixed crash after opening a collection
Thanks to AsamK
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4936 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- The Wire, this is not at all functional yet - just a gui shell.
- Identity, Basics of the GUI complete. talks via rsIdentity to the backend.
* Fixed the Photo Drag and Drop under Linux.
* Resurrected the Application Window - for Unfinished Service.
* Moved Photos, Wire, Identity & Wiki to the Unfinished Window.
* Added "Experimental Services" option in Settings -> though this is not yet saved / used.
* changed #ifdef UNFINISHED -> #ifdef UNFINISHED_FD for bits in FriendList, which didn't compile.
* removed old Unfinished Applications from Window.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-new_cache_system@4933 b45a01b8-16f6-495d-af2f-9b41ad6348cc
The forum/channel news feed is removed when the user reads the message in forums/channels.
Recompile needed.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4927 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Added a new menu item to set the font of a private chat and chat lobby to the default font.
Fixed german language.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4926 b45a01b8-16f6-495d-af2f-9b41ad6348cc