Compare commits

..

2835 Commits

Author SHA1 Message Date
csoler
f6ed95ee2f updated RS to latest master 2026-09-13 11:34:20 +02:00
csoler
b578bd031e
Merge pull request #3311 from defnax/fix-toaster-position
🐞Fix: to use available screen geometry for toasters and fix stack spacing
2026-09-12 17:37:39 +02:00
csoler
e43d23f1af
Merge pull request #3314 from thunder2/get-main-executable-path
Moved Windows specific code for getting main executable path from ret…
2026-09-11 20:09:55 +02:00
csoler
360da46e96
Merge pull request #3290 from defnax/account-creation-service
⚙️Added account creation for retroshare service - v2
2026-09-11 20:09:27 +02:00
thunder2
419bac9eb0 Moved Windows specific code for getting main executable path from retroshare-service.cc to an own file as function getMainExecutablePath 2026-09-11 14:23:05 +02:00
defnax
c84cbbc4cb Fix: to use available screen geometry for toasters and fix stack spacing
The bottom of the desktop is now the top of the taskbar, so even with the default value, the toaster sits cleanly above the taskbar.
2026-09-10 22:20:28 +02:00
defnax
f1db29079a Fix terminal prompts and formatting
- Left-pad profile indices with leading zeros to align with node list
- Clarify prompts: use "profile name" instead of "Username" and "node to that profile" instead of "of it"
- Update terms to use "Node ID" and "Profile ID"
- Initialize webui_pass2 to empty string
- Report unexpected error in switches for CreateAccountResult::Unknown
2026-09-10 21:38:45 +02:00
defnax
3a7b465321 define explicit enum values for CreateAccountResult 2026-09-10 21:20:54 +02:00
csoler
01bc50edb3
Merge pull request #3306 from jolavillette/fix/gui-applicationfilepath-non-windows
gui/main: fix non-Windows build, applicationFilePath declared under WINDOWS_SYS only
2026-09-05 13:40:11 +02:00
jolavillette
52cefc693e gui/main: fix Linux/macOS build, applicationFilePath was declared under WINDOWS_SYS only
Commit e63584843 declared applicationFilePath inside the WINDOWS_SYS
block but uses it unconditionally to fill conf.main_executable_path,
so every non-Windows GUI build fails with 'applicationFilePath was
not declared in this scope'. Declare it at function scope, seeded
from argv[0] (the previous non-Windows behaviour); Windows still
overrides it with QCoreApplication::applicationFilePath().

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-04 07:53:07 +02:00
csoler
799d4c9197
Merge pull request #3281 from thunder2/fix-tor
Fix tor
2026-09-03 22:32:07 +02:00
csoler
03daec3e2a
Merge pull request #3297 from jolavillette/fix/distant-chat-locally-closed-event
Distant chat window: close it when the conversation is closed from another client
2026-09-03 18:48:09 +02:00
csoler
21c981a430
Merge pull request #3299 from jolavillette/fix/sharemanager-friend-event-reset
ShareManager: stop discarding pending edits on every friend-list event
2026-08-31 10:12:45 +02:00
jolavillette
040d19c946 ShareManager: stop discarding pending edits on every friend-list event
The "Configure shared directories" dialog edits a local copy of the
shared directories and only commits it when Apply is pressed. Since
0ce2dd848 it reloads that copy from the core on *any* FRIEND_LIST event,
while the intent was only to follow friend-group changes. NODE_CONNECTED,
NODE_STATUS_CHANGED, NODE_STATE_STRING_CHANGED... fire every few seconds
as soon as a friend is online, so a directory added or removed in the
dialog reverts to the saved state before the user can press Apply.

Only react to GROUP_ADDED/REMOVED/CHANGED, and on those refresh the group
names column (dropping groups that no longer exist) instead of reloading
everything. Also do not reload when showYourself() is called while the
dialog is already open, for the same reason.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 05:47:37 +02:00
jolavillette
ea97a7437d Distant chat window: close it when the conversation is closed from another client
A distant chat started from the web UI pops the desktop chat window for
its tunnel (the core sends itself a "[Starting distant chat" message).
Leaving that conversation from the web UI then left the window as it was:
green LED, "You can talk", and on close the offer to end a conversation
the core no longer had -- closeEvent() ignored the false answer of
getDistantChatStatus() and read a default-initialised status.

On the new RsDistantChatEventCode::TUNNEL_STATUS_LOCALLY_CLOSED
(libretroshare fix/distant-chat-locally-closed-event) the window closes,
as it does when the conversation is ended from the window itself. And
closeEvent() asks no confirmation and calls no close for a tunnel the
core does not know any more.
2026-08-30 09:20:37 +02:00
jolavillette
6622cb9526 service: harden the terminal account creation
Follow-up to "Added account creation for retroshare service", touching
only that feature's own paths.

**-U create could only mint a brand-new PGP profile.** A null RsPgpId was
always passed to createLocationV2(), so a user who already has a profile,
sees it in the -U list output and picks [c] silently got a second
identity: their friends no longer recognise them and every certificate
has to be exchanged again. createLocationV2() takes pgpId as in/out and
reuses it when non-null (rsinit.cc:2247), and it explicitly accepts an
empty pgpName in that case (rsinit.cc:2243), so the profiles known to
RsAccounts::GetPGPLogins() are now listed first and reusing one just adds
this machine as another node. The prompt spells out what a new profile
costs.

**Ctrl-C at a prompt reported the wrong thing.** On glibc signal()
installs the handler with SA_RESTART, so the read blocked behind getline
is restarted and keepRunning is only seen once the user also presses
Enter. Control then fell out of the selector with prefUserString still
"list", RsPeerId("list") null, and the user who had just cancelled was
told their location id was invalid, with exit -EINVAL. Cancelling now
returns 0. doTerminalCreateAccount() returns a three-state result so a
deliberate abort is no longer reported as a failure, and the failure
paths use -RsInit::ERR_* instead of a bare -1 (exit 255).

**-U list failed on a non-tty even when accounts existed.** It returned
ERR_NO_AVAILABLE_ACCOUNT whenever stdin was not a terminal, while the
option is documented as a way to list accounts and retroshare-webui's
README puts it in the first-start flow. It now prints the list and
returns 0, keeping the error for the case it names: nothing to list. The
[c] line moved below that check, so a non-interactive run no longer
advertises an option it then refuses.

**Every prompt is bounded.** A terminal dying mid-prompt -- an ssh
session dropping, a container losing its tty -- turns each following read
into an immediate EOF, and all these loops re-ask on empty or mismatched
input. Three attempts then a clear message. This also covers the -W web
interface password loop, which had the same shape before this feature
existed.

**A passphrase is no longer asked of an absent terminal.** The
PASSWORD_REQUESTED handler now checks for an interactive stdin first, so
-U <hexid> under systemd or docker fails with a readable message instead
of prompting nothing.

Selections are trimmed, so "1 " and a CRLF line are no longer rejected as
invalid, and MAX_PROMPT_ATTEMPTS sits outside the terminal-login guard
because the web interface password prompt has its own build option.
Compile-checked in all four RS_SERVICE_TERMINAL_LOGIN /
RS_SERVICE_TERMINAL_WEBUI_PASSWORD combinations, warning-free.

Note that the underlying spin is a libretroshare bug: rs_getpass() stored
getchar()'s EOF in an unsigned char, where -1 becomes 0xFF and never ends
the loop. Fixed separately in libretroshare; the bounds here are useful
on their own and do not depend on it.
2026-08-28 13:50:32 +02:00
defnax
411ef267ad Added fallback option when no account available 2026-08-28 13:50:32 +02:00
defnax
be884ded91 Added account creation for retroshare service 2026-08-28 13:50:31 +02:00
csoler
f8553d2fd9
Merge pull request #3276 from csoler/v0.6-IdentityDialog3
fixed warning message about identities with insecure fingerprint
2026-08-28 12:21:25 +02:00
csoler
5bbe63e4d4
Merge pull request #3292 from jolavillette/fix/eliditemdelegate-font-inherit
gui: let RSElidedItemDelegate inherit the view font from the model font
2026-08-28 11:14:46 +02:00
csoler
5a4c943b96
Merge pull request #3272 from jolavillette/fix/securityitem-sslonly-accept-button
Fix "Accept friend request" button persisting after SSL-only friend added
2026-08-28 10:45:40 +02:00
csoler
fd69cff8d7
Merge pull request #3263 from jolavillette/fix/voip-preview-aspect-ratio
fix(voip): keep aspect ratio in camera preview
2026-08-28 10:42:50 +02:00
jolavillette
4a1799db76 fix(voip): keep aspect ratio in camera preview
The self-view preview in Preferences/VOIP scaled camera frames into the
display widget with Qt::IgnoreAspectRatio, forcing them into a 4:3 box.
Non-4:3 cameras (e.g. 16:9) were therefore stretched vertically.

Use Qt::KeepAspectRatio, matching the sibling showFrameOff() which
already scales the placeholder icon correctly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-16 18:24:46 +02:00
jolavillette
f0a5a4687f Fix "Accept friend request" button persisting after SSL-only friend added
In the Activity feed, accepting an unknown peer (no PGP key in keyring)
adds it as an SSL-only friend via addSslOnlyFriend(), which sets
skip_pgp_signature_validation instead of the PGP-keyring accept_connection
flag. SecurityItem::updateItem() only tested details.accept_connection to
decide button visibility, so for an accepted SSL-only friend the condition
stayed false and the "Accept friend request" button kept being shown (and
"Remove friend" stayed hidden), even though the peer was already a friend.

Treat skip_pgp_signature_validation == true as accepted too, since that
flag is only set for a peer already present in the friend list.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-16 18:24:35 +02:00
jolavillette
61e647081c gui: let RSElidedItemDelegate inherit the view font from the model font
The delegate took the Qt::FontRole of the model and assigned it to the style option as
is, replacing the font of the view instead of merging into it. A font stored in a model
usually only carries the one attribute the caller wanted to change — most of the time
bold — and expects family and size to keep coming from the view. Assigning it whole
dropped those items back to the application font, ignoring the font size configured in
the settings, which FontSizeHandler puts on the view.

That is easy to trigger: QTreeWidgetItem::font() returns a default constructed font when
the item has no Qt::FontRole yet, so the familiar "read the font, set it bold, write it
back" turned the whole list into the application font. On a remote X display where the
desktop font is 9pt and the RetroShare font size is 11pt, the list visibly shrank.

Merge with QFont::resolve() instead, which keeps only the attributes the model really
set and takes the rest from the view — the same merge QStyledItemDelegate::initStyleOption()
performs. Same change in the tooltip path of editorEvent(), which recomputes the elision
with that font. sizeHint() was already using the merged font from initStyleOption(), so
rows were being measured with one font and painted with another.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-16 18:23:58 +02:00
csoler
6160b39dab
Merge pull request #3271 from defnax/distantchat-popup-fix
💬 Fixed to not popup distant chat on incoming chat
2026-08-16 14:16:35 +02:00
csoler
48c60e1cdb
Merge pull request #3210 from jolavillette/FixSearchColumnWidthPersistence
GUI: persist search results column widths across restarts
2026-08-13 18:13:47 +02:00
jolavillette
9119058c48 GUI: persist search results column widths across restarts 2026-08-07 01:12:19 +02:00
csoler
682cde9fbd
Merge pull request #3274 from jolavillette/fix/gxs-mark-all-read-nofreeze
Fix UI freeze on "mark all as read/unread" for forums, channels and boards
2026-08-06 21:46:57 +02:00
jolavillette
1b99beebc5 Address review: pointer hand-off to the workers, event-driven board update
- GxsForumModel / PostedPostsModel: hand the id list to the background
  worker through a pointer deleted after the call, so the lambda capture
  does not deep copy it.
- PostedPostsModel: setAllMsgReadStatus() no longer updates the model
  directly. The batched READ_STATUS_CHANGED event now carries the
  affected ids and their new state (libretroshare side), and the event
  handler applies them locally — so a batch initiated by another
  frontend (e.g. webUI) updates the board view exactly the same way,
  and no post is re-read from the database.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
jolavillette
ebac1481f0 Revert "gui(forums): opt-in latency probes on the read/unread and loading path"
Profiling code removed from the PR, as requested in review of the sibling
PRs. This reverts commit 8845aa4636e630977f4a6817e8a267735e128e28.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
jolavillette
dea2f28dd9 gui(forums): opt-in latency probes on the read/unread and loading path
Set RS_GUI_PROFILE to a threshold in milliseconds (0 reports
everything) to get one line per measured operation on stderr, plus a
50 ms watchdog on the GUI thread that reports every stall of the event
loop wherever the blocking code lives, naming the last probed
operation. This is what located the actual freeze of the read/unread
path (a whole-model dataChanged() measured at 1072 ms) after several
plausible-from-code-reading fixes had failed to: the numbers say where
the time goes instead of a story explaining where it might go.

All probes are inert unless the environment variable is set.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
jolavillette
5cbcd962dd gui(forums): re-read the group on SUBSCRIBE_STATUS_CHANGED instead of flipping the flag
The event means the subscription status changed, not that it was
toggled: guessing the new value by inverting the current flag goes
wrong as soon as one event is duplicated, lost, or refers to a state
the widget already holds. When the guess lands on 'unsubscribed', the
widget silently refuses to mark posts read or unread (the very first
check of markMsgAsReadUnread) until the next group reload puts the flag
right again. updateGroupData() was already called anyway; let it be the
only writer of the flag.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
jolavillette
b0ca91c825 gui(forums): drop the expanded-items save/restore around read-status changes
setMsgReadStatus() only emits dataChanged(); it never resets the model
nor changes its layout, so the expanded items and the current index
survive it untouched. Saving and restoring them on every toggle was
pure overhead, and an expensive one: the restore walks every expanded
item and pays, for each, a linear scan of the post array plus a linear
scan of the view items -- quadratic work on the GUI thread for a single
post marked read or unread on a large forum.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
jolavillette
243c417bfc GxsForumModel: size the read-status view refresh on rows, not message ids
280e51f53 restricted the dataChanged() refresh to the affected post
unless more than 5 messages changed, in which case it refreshes the
whole view. But changed_msgs counts message ids, and a post carries one
id per stored version of itself, all sharing one read status: marking a
single post read or unread on a post edited 46 times queued 47 ids and
triggered the whole-model refresh. Measured on a 8259 post forum: one
click, one row repainted, 1072 ms of frozen GUI in the dataChanged()
handling; with this fix the same click costs about 1 ms.

Count the changed rows separately and size the refresh on that.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
jolavillette
3860f76dc1 gui(forums): create reload timer before setGroupId (fix ctor SIGSEGV)
The coalescing timer was allocated near the end of the constructor, but
setGroupId(forumId) is called earlier and synchronously reaches
groupIdChanged() -> updateDisplay(true) -> mDeferredReloadTimer->stop(),
dereferencing the still-uninitialised pointer and crashing the moment a forum
was opened. Allocate the timer right after setupUi(), before setGroupId().

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
jolavillette
839293f84d gui(forums): coalesce full-forum reloads to stop sync-burst UI freezes
handleEvent_main_thread() ran a full updateDisplay(true) (updateForum ->
getForumPostsHierarchy -> setPosts full reset -> proxy re-sort/re-filter ->
tree rebuild) for every incoming GXS event. A sync batch delivers many
NEW_MESSAGE events back to back, so the forum was reloaded once per post,
freezing the UI for seconds and resetting the model out from under the user's
current selection (and racing the async read-status persistence, making a
just-read post pop back to bold).

Route those events through a single-shot QTimer (300 ms) that is restarted on
each event, so a whole burst collapses into one reload once the events settle.
An explicit reload (forum switch) cancels any pending deferred one.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
jolavillette
78ff5d66e6 GxsForumModel: fix malformed model reset dropping freshly-arrived posts
setPosts() called beginResetModel()/endResetModel() *before* swapping mPosts,
so endResetModel() fired while the model still exposed the previous hierarchy,
then emitted an extra beginInsertRows()/endInsertRows() on top of the reset.
That double-signalling left the view/proxy row->source mapping stale, so a
post that had just arrived could map to an invalid source index: selecting it
neither displayed its content nor cleared its unread (bold) state.

Bracket the actual data swap with beginResetModel()/endResetModel() and drop
the bogus row-insertion signal; a full reset already tells the views to
re-query everything. Same anti-pattern as the channels grid-empty-on-new-post
fix.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
jolavillette
8959b45087 gui(forums): keep single-post read latency low via unitary markRead
Routing every read through the batched markRead(grpId, vector, read) also
routed single interactive reads (selecting/opening one post) through its
waitToken(): the READ_STATUS_CHANGED event, and thus the forum-list unread
counter refresh, was only emitted once the DB write completed, adding
~100ms plus one GXS tick of latency versus the previous behaviour.

Send a single changed message through the per-message markRead(pair),
which emits the event immediately, and keep the batched call only for
larger sets (mark-all, with-children, versioned posts) where deferring the
single event until completion is what avoids the freeze.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
jolavillette
2816dfd9f6 gui(forums): fix slow post navigation by restricting dataChanged refresh to affected post and parents 2026-08-01 23:16:08 +02:00
jolavillette
e5ed16c805 Channels/Posted models: never freeze the UI on "mark all as read"
GxsChannelPostsModel and PostedPostsModel spawned one detached std::thread (and
got one event) per post on "mark all as read/unread", freezing the UI on large
channels/boards - the same problem just fixed for forums, and worse here given
the much larger channel/board databases.

Both now collect the affected message ids and issue a single background batch
call (setMessageReadStatus / setPostReadStatus with a vector) plus a single view
refresh. PostedPostsModel additionally updates its local model up front (it
previously relied entirely on the per-message events).

Requires the matching libretroshare bulk overloads.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
jolavillette
f4463dd17f GxsForumModel: never freeze the UI on "mark all as read"
recursSetMsgReadStatus() used to spawn one detached std::thread per changed
post (each blocking up to 5s in markRead) and emit one dataChanged() per post.
On a forum with thousands of unread posts this created thousands of threads
and signals driven from the GUI thread, freezing (and sometimes crashing) the
UI - the reported symptom being an hour-long hourglass on an 8000-post forum.

Now the recursion only collects the affected message ids and updates the
in-memory model; setMsgReadStatus() then issues a single background batch call
(rsGxsForums->markRead(group, ids, read)) and a single view refresh. The GUI
thread does O(n) in-memory work plus one thread and one signal, so it stays
responsive no matter how large the forum is.

Requires the matching libretroshare bulk markRead() overload.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 23:16:08 +02:00
csoler
ec9ab70561
Merge pull request #3280 from jolavillette/perf/gxs-channel-loading
GUI: stop copying and sorting the channel post array in the Qt thread
2026-08-01 21:10:36 +02:00
jolavillette
0e31d5fed0 GUI: remove the profiling probes from the channel post model
Requested in review: the RS_GXS_PROFILE instrumentation of update_posts()
and setPosts() served to measure the freeze and verify the fix, but it
should not stay in the optimised code. The libretroshare profiling header
is no longer included.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-01 14:31:38 +02:00
jolavillette
28e7f791ff GUI: stop copying and sorting the channel post array in the Qt thread
setPosts() runs in the Qt thread, through postToObject(). It copied the whole
post array a fourth time and then sorted it there, so for a channel with a few
thousand posts the interface was frozen for the duration of both.

Move the sort into the loader thread in update_posts(), where the array is
already sitting after the service call, and have setPosts() take its argument
by rvalue reference so the array is moved in rather than copied. The sort is
kept in setPosts() as a safety net: on an already ordered array it only runs
comparisons and moves nothing.

Combined with the libretroshare side making posts movable, the array is now
handed from the data store to the model without a single deep copy of a
thumbnail.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 22:34:12 +02:00
jolavillette
54d4c791aa GUI: profile the channel post model loading
Complements the GXS side instrumentation (libretroshare, gxs/rsgxsprofiler.h)
with the two phases that happen in the GUI: the service calls made from the
loader thread in update_posts(), and the model update in setPosts(), which
runs in the Qt thread and is what actually freezes the interface.

setPosts() reports its three phases separately (array copy, sort, view update)
since they have very different causes.

Enabled by the same RS_GXS_PROFILE environment variable, off by default.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 22:34:12 +02:00
csoler
2bf991418d
Merge pull request #3284 from jolavillette/fix/feedreader-mark-all-unread
FeedReader: add "Mark all as unread" alongside "Mark all as read"
2026-07-30 14:34:04 +02:00
thunder2
2c9fcd0c57 Moved tor data directory for gui to account directory so that we can run multiple tor instances simultaneously 2026-07-27 19:07:57 +02:00
thunder2
9e92faad7c Use “GetModuleFileName” instead of argv[0] for the name of the executable file on Windows, as argv[0] does not always contain the full path 2026-07-27 19:07:57 +02:00
thunder2
e635848438 Use “QCoreApplication::applicationFilePath” instead of argv[0] for the name of the executable file, as argv[0] does not always contain the full path on Windows 2026-07-27 11:15:16 +02:00
jolavillette
2cd7c21aa6 gui(feedreader): add "Mark all as unread" alongside "Mark all as read"
The FeedReader message widget already offered "Mark all as read"
(toolbar button + context menu) but had no way to mark every visible
message as unread again. Add the symmetric "Mark all as unread" entry
to the message context menu.

Factor the shared iterate-over-visible-items logic out of
markAllAsReadMsg() into setAllMsgAsReadUnread(bool read); the read and
unread slots now just call it. Like the existing "mark all as read", the
action honours the current filter (acts on non-hidden rows only) and
goes through the existing per-message setMessageRead() path, so no
backend change is required.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-25 13:31:47 +02:00
Gioacchino Mazzurco
086184ad21
Fix GitLab mirror failing on GitHub PR refs
The mirror workflow cloned with --mirror and pushed all refs, including
GitHub's refs/pull/* and upstream/pr/*, which GitLab rejects as hidden
refs ("deny updating a hidden ref" on upstream/pr/3213), failing the
whole push. Clone --bare and push only refs/heads/* and refs/tags/*
with --prune, keeping deletion sync while never touching PR refs.
2026-07-23 18:10:46 +02:00
Gioacchino Mazzurco
76ba160ad1
Merge pull request #3269 from jolavillette/docs/build-cmake
Docs/build cmake
2026-07-23 17:56:14 +02:00
Gioacchino Mazzurco
0500db415c
Merge pull request #3243 from jolavillette/fix/cmake-qt6-detection
GUI CMake: reliably select Qt6 (with Qt5 fallback)
2026-07-23 17:03:03 +02:00
csoler
d57ecdeea7 fixed warning message about identities with insecure fingerprint 2026-07-18 20:42:03 +02:00
jolavillette
941a1ec6bd docs: add packaging and deployment section for Windows/MSYS2 in BUILD-cmake.md
Document portable archive creation (7-Zip / ZIP fallback), setup installer generation using NSIS, and how to execute and configure the deploy-windows.sh script.
2026-07-15 13:34:59 +02:00
jolavillette
70b1861e24 docs: add RS_USE_NATIVE_DIALOGS=ON to Windows build commands
Qt's non-native file/directory dialogs hang on Windows.
Using the OS native dialogs avoids the problem.
2026-07-13 15:29:25 +02:00
jolavillette
2759abca68 docs(BUILD): document version numbering (git describe derivation)
Explain how RS_GUI_VERSION, the libRetroShare version and RS_LIB_VERSION_HASH
are each derived from git describe at configure time, the exact commands to
read them without building, the --dirty submodule-pointer gotcha, the --long
always-suffixed libretroshare format, and the non-git fallback.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 12:47:37 +02:00
jolavillette
b3f137e580 docs(BUILD): checkout rapidjson fix commit after submodule init (GCC>=13)
The super-project pins rapidjson at f54b0e47, whose GenericStringRef::operator=
assigns to the const member `length`. That fails to compile on modern
toolchains (Debian 13 / GCC 14: "assignment of read-only member 'length'").
Add a note after the submodule init step telling testers to check out the
upstream fix 9bd618f5 (PR #719 on Tencent/rapidjson master).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 13:46:33 +02:00
jolavillette
6c16de174a docs(BUILD): add Debug build section for Linux (gdb symbols + ASan)
New 'Debug build (Linux)' subsection: CMAKE_BUILD_TYPE=Debug with -g3 -O0 -fno-omit-frame-pointer for full symbols and exact backtraces, a Qt6 note, a RelWithDebInfo caveat, the gdb invocation with the real binary path (Build-cmake/retroshare-gui/retroshare), and an AddressSanitizer variant for use-after-free / heap bugs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 23:51:44 +02:00
defnax
7f15e396ac Fixed to not popup distant chat on incoming chat 2026-07-09 09:30:53 +02:00
jolavillette
923fe3338a fix(cmake): reliably prefer Qt6 over Qt5 in GUI detection
find_package(QT NAMES Qt6 Qt5 ...) does not honour the NAMES order on
distros that ship Qt5 and Qt6 side by side in the same prefix (Debian/
Ubuntu multiarch /usr/lib/<arch>/cmake): CMake globs the sibling
Qt5*/Qt6* config dirs and stops at whichever <name>Config.cmake it
reaches first, which is filesystem-order dependent and routinely lands
on Qt5 even though Qt6 is listed first.

Probe Qt6 explicitly (find_package(Qt6 QUIET COMPONENTS Core)) and fall
back to Qt5. This makes the Qt6 preference deterministic and also makes
-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON work as a reliable Qt5-force switch.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 22:12:14 +02:00
jolavillette
063fb607f9 docs(BUILD): require RS_SERVICE_TERMINAL_WEBUI_PASSWORD=ON for the service WebUI
RS_WEBUI=ON alone builds the WebUI machinery, but retroshare-service then
has no way to turn it on: enableWebUI defaults to false and only the -W
flag ever sets it, and -W/-B are gated behind
RS_SERVICE_TERMINAL_WEBUI_PASSWORD (a cmake_dependent_option requiring
RS_WEBUI=ON). Document the flag and add it to every build command block.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 22:12:02 +02:00
jolavillette
762d4d5fd9 docs(BUILD): auto-detect CPU count for the Windows build
Windows hard-coded -j3; nproc is available in MSYS2, so use -j$(nproc) like
Linux. Added a note that MinGW C++ compilation is RAM-hungry and may need a
manually lower -j on low-memory machines (the reason for the old -j3 cap).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 22:12:02 +02:00
jolavillette
8af7995d7d docs(BUILD): drop inline # comments from copy-paste blocks
zsh interactive (interactive_comments off by default) rejects # in pasted
command lines. Moved the explanations to prose; the bash blocks are now
paste-clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 22:12:02 +02:00
jolavillette
d0fb9d749e fix(docs): exclude Qt kegs from macOS include/lib harvest
The blanket -I$(brew --prefix)/opt/*/include harvest pulled BOTH qt (Qt6)
and qt@5 headers into the same translation unit when both are installed,
causing Qt5/Qt6 header collisions ("Qt major version not 6 or 7",
qGetPtrHelper exception-spec mismatch). Skip every qt* keg in the harvest
loop on macOS; Qt is provided explicitly via Qt6_DIR / Qt5_DIR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 22:12:02 +02:00
jolavillette
e735aaf18c docs: add BUILD-cmake.md with CMake build instructions (Qt5/Qt6)
Per-platform (Linux/macOS/Windows) CMake build commands for the
super-project, documenting Qt5 vs Qt6 selection and the
-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON Qt5-force switch.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 22:12:02 +02:00
csoler
3081f530ca
Merge pull request #3258 from csoler/v0.6-IdentityDialog3
added warning for identities using deprecated signature format
2026-07-08 21:33:51 +02:00
csoler
c11ae6b071
Merge pull request #3252 from jolavillette/FilterChatSystemMessages
filter joined/left system messages in chat rooms
2026-07-07 21:56:38 +02:00
jolavillette
711589283a filter joined/left system messages in chat rooms 2026-07-06 22:07:44 +02:00
Gioacchino Mazzurco
bb47e094b3
Merge pull request #3265 from jolavillette/fix/gui-own-version-macros
fix(gui): give RetroShare GUI its own version, independent from libretroshare
2026-07-05 18:20:38 +02:00
csoler
d7b9e03528
Merge pull request #3264 from jolavillette/gxstrans-normalize-date-format
Gxstrans normalize date format
2026-07-04 20:44:50 +02:00
jolavillette
dd5add516e fix(gui): give RetroShare GUI its own version, independent from libretroshare
The GUI reported RS_HUMAN_READABLE_VERSION (a libretroshare macro) as "the
RetroShare version". In the CMake build libretroshare exports RS_MAJOR_VERSION
as a PUBLIC define, so the GUI inherited the engine's version and displayed it
as its own: About showed the same number for both.

Give the GUI its own version, as discussed:

- Add retroshare-gui/src/rsguiversion.h defining RS_GUI_VERSION with a built-in
  default, so every build path (including qmake/Android) compiles even without
  version injection.
- Inject RS_GUI_VERSION from 'git describe' of the super-project in both CMake
  (retroshare-gui/CMakeLists.txt) and qmake (retroshare.pri).
- RsApplication::retroshareVersion() now returns the GUI's own version instead
  of libretroshare's.
- About (HelpDialog) shows the GUI version at the top; libretroshare's version
  is listed among the other libraries, like any dependency. AboutWidget already
  displayed both lines and is now correct automatically.

libretroshare needs no change: it already exposes its own version through
RsInit::libRetroShareVersion() in both build systems.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 11:40:36 +02:00
jolavillette
2b1fb920af gui: replace GxsTransportStatistics 4s auto-refresh with manual Refresh
The RsAutoUpdatePage(4000) base class polled getGroupStatistics() every
4 seconds. That call issues blocking GXS token requests (up to 5s per
group) and had no anti-reentrancy guard, so background refreshes piled
up, saturated the GXS queue and froze the whole UI.

Revert to MainPage and drive updates on demand instead:
 - a Refresh button
 - showEvent(), so the page refreshes when navigated to
 - settingsChanged(), kept so a date-format change re-renders

Date normalization (formatDateTime) is preserved.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 11:14:17 +02:00
jolavillette
6e6e1403be gui: format dates in GxsTransportStatistics using DateTime and enable auto-update 2026-07-04 09:47:06 +02:00
csoler
af44d4c0e6
Merge pull request #3261 from RetroShare/revert-3254-colored-links-v5
Revert "Added colored links feature"
2026-07-03 23:22:20 +02:00
csoler
6ec6de5d0f
Revert "Added colored links feature" 2026-07-03 23:13:00 +02:00
csoler
6a9c354a85
Merge pull request #3254 from defnax/colored-links-v5
Added colored links feature
2026-07-03 22:51:29 +02:00
csoler
348c9e7e94
Merge pull request #3256 from jolavillette/fix/shared-files-popular-files-crash
fix(SharedFiles): stop SIGSEGV when toggling "Popular files" after a search
2026-07-03 18:25:26 +02:00
csoler
874b320ae3 added a warning for channels to be re-edited due to admin signature checking problem 2026-07-03 16:36:03 +02:00
csoler
a17464c316 added warning for identities using deprecated signature format 2026-07-02 22:17:43 +02:00
jolavillette
874d204b85 fix(SharedFiles): stop SIGSEGV when toggling "Popular files" after a search
Searching a keyword and then clicking "Popular files" crashed in
QSortFilterProxyModel::parent() (via rowsAboutToBeRemoved).

SFDSortFilterProxyModel::setUploadedOnly() called invalidateFilter(),
which runs Qt's incremental filter_changed row-removal path over the
currently-mapped tree. After a search the tree is fully expanded and
carries live persistent proxy indexes; removing an interior directory
node frees the child mapping structs those indexes still point at, and
the removal bookkeeping then dereferences freed memory -> SIGSEGV. The
plain-search path never crashed because it is always preceded by a full
model reset; the "Popular files" toggle was the only path that
re-filtered without one (deliberately, to avoid a slow re-crawl).

Use invalidate() instead: it rebuilds the whole proxy mapping via the
layoutAboutToBeChanged/layoutChanged protocol, which remaps persistent
indexes safely and never emits rowsAboutToBeRemoved. It rebuilds only
the proxy mapping (lazy, near-instant) and does not re-crawl the source
model, so the performance the toggle path was protecting is preserved.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 20:08:38 +02:00
defnax
460afb7824
fix qt6 compile 2026-06-27 15:33:28 +02:00
defnax
177141a042 Fix qt6 compile 2026-06-27 15:07:34 +02:00
defnax
74b8ebd31a Added colored links feature
Fixed to not send the color, only locally
2026-06-27 14:42:55 +02:00
csoler
d20c783769
Merge pull request #3245 from jolavillette/fix/qt6-qdatetime-settime_t
Qt6: replace removed QDateTime::setTime_t() with setSecsSinceEpoch()
2026-06-25 13:40:22 +02:00
csoler
78aa3f4d14
Merge pull request #3241 from jolavillette/fix/rsgraphwidget-area-fill
fix(gui): RSGraphWidget area fill — close polygon on a flat baseline
2026-06-24 09:25:20 +02:00
csoler
d788d23204
Merge pull request #3231 from jolavillette/fix/macos-camera-mic-permissions
fix(macos): add camera & microphone usage descriptions to Info.plist
2026-06-23 18:14:38 +02:00
csoler
07197c8bff
Merge pull request #3240 from csoler/v0.6-FeedItem2
Add a TLS attempt item to display connections without certificates in a separate more appropriate item.
2026-06-22 23:12:14 +02:00
jolavillette
0c0ad41f77 fix(gui): replace QDateTime::setTime_t with setSecsSinceEpoch for Qt6
QDateTime::setTime_t() was deprecated in Qt 5.8 and removed in Qt6.
setSecsSinceEpoch() exists since Qt 5.8 so the GUI keeps building
against both Qt5 and Qt6.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 18:14:53 +02:00
jolavillette
5ce0460ee3 fix(macos): add camera & microphone usage descriptions to Info.plist
macOS 10.14+ terminates the app with SIGABRT when it accesses the camera or microphone without the matching usage-description keys in the bundle's Info.plist. Any VOIP audio/video call therefore crashes on macOS as soon as the capture device is opened (AVCaptureDeviceInput via QVideoInputDevice::start()).

Add NSCameraUsageDescription and NSMicrophoneUsageDescription so the system shows the standard permission prompt instead of aborting the process.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 23:37:43 +02:00
csoler
4dca624abf updated CMakeLists to TLSItem 2026-06-19 09:47:10 +02:00
jolavillette
2c8210ce29 fix(gui): RSGraphWidget area fill — close polygon on a flat baseline
The PLAIN (area) paint style closed the fill polygon by prepending only the
bottom-right corner, so the polygon's closing edge ran from the bottom-right
corner straight to the leftmost data point. Whenever that leftmost point was
high, this drew a spurious diagonal across the whole graph, with the real curve
clipped above and/or below it.

Close the area along a flat baseline instead: add a baseline point under the
first (leftmost) and last (rightmost) data points, guarded on a non-empty set.

This affects every area-style RSGraph, but it is most visible in the VOIP
plugin's config-panel "Required bandwidth" graph: the value swings widely
(x264 variable bitrate) so the leftmost point is often high, making the
diagonal appear intermittently there.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 23:18:43 +02:00
csoler
09f8d90b12 fixed file header 2026-06-17 18:40:36 +02:00
csoler
89a1f5482c removed spurious yml file from 3213 2026-06-17 18:39:15 +02:00
csoler
fc696f8dae merging with upstream/master 2026-06-17 18:33:04 +02:00
csoler
b307edc5d6 added TlsItem files 2026-06-17 18:27:46 +02:00
csoler
431848066f fixed a few bugs in TlsAttempt feed item 2026-06-17 18:20:22 +02:00
Gioacchino Mazzurco
5374a746e2
Merge pull request #3235 from defnax/update-workflows
update workflows
2026-06-17 11:46:16 +02:00
Gioacchino Mazzurco
a06d1f0781
Merge pull request #3239 from jolavillette/fix/posted-metatype-rspostedpost
Fix missing Q_DECLARE_METATYPE include in Posted board widgets
2026-06-17 11:44:58 +02:00
jolavillette
d0c008c375 Fix missing Q_DECLARE_METATYPE include in Posted board widgets
Commit 724db9ae6 ("Fix duplicated MOC declaration") consolidated
Q_DECLARE_METATYPE(RsPostedPost) into PostedItem.h and removed the
in-file declarations that PostedListWidgetWithModel.cpp and
PostedPostsModel.cpp previously carried. But both translation units
use QVariant with RsPostedPost (value<>() / fromValue()) and neither
includes PostedItem.h, directly or transitively, so the build broke
with:

  error: static assertion failed: Type is not registered, please use
  the Q_DECLARE_METATYPE macro to make it known to Qt's meta-object
  system

Add the missing #include "PostedItem.h" to both files so the metatype
declaration is visible in those TUs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 09:33:11 +02:00
Gioacchino Mazzurco
c418d75609
Fix and upgrade GitlabCI 2026-06-17 01:31:19 +02:00
Gioacchino Mazzurco
1d7a5ca8b0
Fix WEBUI dependent option value in gui and service 2026-06-16 23:35:30 +02:00
csoler
de1db9b083 added new feed item for TLS connection attempts 2026-06-16 23:25:31 +02:00
Gioacchino Mazzurco
724db9ae6a
Fix duplicated MOC declaration 2026-06-16 21:51:34 +02:00
Gioacchino Mazzurco
f3be330773
Merge pull request #3237 from jolavillette/qt6-cmake-compat
Qt6 compatibility for the CMake build (version-agnostic Qt5/Qt6)

There are a few minor issue to fix, but leave those for after we merge Qt6 support, and merge this AS IS before is too late
2026-06-16 19:44:46 +02:00
Gioacchino Mazzurco
eff56b8d30
Merge pull request #3229 from jolavillette/CMakeMigration-Modular-CrossPlatform
Port to CMake modular and cross platform

There are a few minor issue to fix, but leave those for after we merge Qt6 support, and merge this AS IS before is too late
2026-06-16 19:27:22 +02:00
csoler
719d6095f4
Merge pull request #3196 from defnax/improve.emoticons
[Emoticons] Added search & remember recent smileys
2026-06-16 09:09:52 +02:00
defnax
f454639087 added sizepolicy 2026-06-15 21:36:23 +02:00
csoler
df4561ec81
Merge pull request #3202 from defnax/boards-picture-navigation
[Boards] Added navigation for boards picture viewer
2026-06-15 20:49:07 +02:00
jolavillette
f3e5f8541d refactor(cmake): rename "monorepo" -> super-project terminology
The root build is a modular super-project: libretroshare, retroshare-gui,
retroshare-service, retroshare-friendserver and plugins are each a standalone
CMake project that the top-level CMakeLists.txt only aggregates (and they live
in separate git repos pulled as submodules). Rename project(retroshare-monorepo)
-> project(retroshare-superproject) and reword the CI header comments. Purely
cosmetic: the old name was referenced nowhere.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 19:41:45 +02:00
jolavillette
5ced3c66a7 ci(cmake): add Windows and macOS Qt6 CMake build workflows
Qt6 counterparts of windows-cmake.yml and macos-cmake.yml: build the tree
against Qt6 on UCRT64 (qt6-* incl. qt6-5compat) and macOS (Homebrew 'qt'). Both
keep plugins OFF since VOIP/FeedReader are not yet Qt6-ported. Completes the
Qt6 CMake CI matrix (Ubuntu already green).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 17:19:09 +02:00
jolavillette
819433027a fix(gui): guard GXS-id Q_DECLARE_METATYPE for Qt5 only (Qt6 AUTOMOC)
Under Qt6 + CMake the build failed compiling mocs_compilation.cpp with
'specialization of QMetaTypeId<...> after instantiation' for RsGxsId,
RsGxsGroupId and RsGxsMessageId.

CMake AUTOMOC concatenates every moc_*.cpp into a single translation unit; in
Qt6 these complete types get their QMetaTypeId implicitly instantiated by one
moc section, so the explicit Q_DECLARE_METATYPE in a later section becomes an
illegal re-specialization. qmake compiles each moc separately and never hits
this. Qt6 auto-registers complete types with the metatype system, so the
declaration is redundant there; guard it to Qt5 only. No behavior change on
Qt5; QVariant and queued connections keep working on Qt6 via auto-registration.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 16:58:11 +02:00
jolavillette
0f15a9eec5 ci(cmake): add Ubuntu Qt6 CMake build workflow
Qt6 counterpart of ubuntu-cmake.yml: builds the tree against Qt6 on
ubuntu-24.04 to exercise the version-agnostic Qt detection. Plugins kept OFF
since VOIP (Qt5 QtMultimedia API) and FeedReader (Qt5-hardcoded CMake) are not
yet ported.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 16:41:41 +02:00
jolavillette
f75315b0ff build(cmake): make retroshare-gui Qt detection version-agnostic (Qt5/Qt6)
Replace the hardcoded find_package(Qt5 ...) / Qt5:: links with the standard
QT NAMES Qt6 Qt5 pattern driven by ${QT_VERSION_MAJOR}, so the same tree builds
against both Qt5 and Qt6. On Qt6 add Core5Compat (for QRegExp et al.) and skip
QtX11Extras (idle_platform.cpp already uses QNativeInterface there; X11/Xss are
linked directly). Drop the dead 'if(NOT Qt6_FOUND) qt5_wrap_ui' double-wrap and
keep a single versionless qt_wrap_ui call.

The C++ sources are already Qt6-guarded upstream; this only wires Qt6 into the
CMake build. VOIP/FeedReader plugins are out of scope (still Qt5-only).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 16:41:41 +02:00
jolavillette
aa22a42d32 ci(cmake): add concurrency guard, bump checkout v5, use Ninja everywhere
- ubuntu-cmake: add concurrency cancel-in-progress (stop run pile-up per push)
- all 3: actions/checkout@v4 -> @v5 (Node 24; clears the Node 20 deprecation)
- ubuntu + macos: build with -G Ninja for consistency with Windows and a
  slightly faster build (ninja already present on Ubuntu; add brew ninja on macOS)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 13:09:09 +02:00
jolavillette
4683a595ef ci(windows-cmake): -Wno-template-body for GCC 16 (rapidjson 1.1.0)
Build reached 863/906 then failed in the FeedReader plugin: GCC 16's new
-Wtemplate-body diagnoses rapidjson 1.1.0's GenericStringRef::operator=
(assigns const members, never instantiated) as a hard error. FeedReader
includes rapidjson via -I (warnings active) unlike other targets that use
-isystem. Disable the check for the whole Windows build.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 10:48:40 +02:00
jolavillette
43bd9c2b1a ci(windows-cmake): use native UCRT64 doxygen for JSON API generator
The MSYS base /usr/bin/doxygen.exe treats CMake's Windows-style OUTPUT_DIRECTORY
(D:/...) as relative, producing a bogus mixed path and failing the jsonapi
generator. Use the native-Windows mingw-w64-ucrt-x86_64-doxygen instead, which
understands D:/ drive paths.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 10:18:38 +02:00
jolavillette
e09c0fef5b ci(windows-cmake): force-include cstring/cstdint for GCC 16 strictness
MSYS2 now ships GCC 16.1, which dropped many transitive includes. The pinned
librnp commit uses strlen() without <cstring>, so it failed to build
(crypto/mem.cpp: 'strlen' was not declared). Force-include the standard
string/stdint headers for the whole Windows build as a non-intrusive
workaround.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 10:09:39 +02:00
jolavillette
d2ef3c9335 ci(cmake): disable RS_FORUM_DEEP_INDEX (Xapian) on all platforms
Deep index is currently disabled in the project (Xapian unused; it will be
re-enabled via the ForumContentSearchFTS5 branch). Forcing it ON pulled
Xapian, which broke the Windows build: the MSYS2 xapian-core package ships
no import lib, so linking libretroshare.dll failed on a missing
/ucrt64/lib/libxapian.dll.a. Set RS_FORUM_DEEP_INDEX=OFF and drop the xapian
dependency everywhere so the CIs reflect the real config.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 10:01:00 +02:00
jolavillette
dd0bd44f94 ci: add Windows (MSYS2 UCRT64) CMake workflow building the full tree
CMake counterpart of the legacy qmake ci-ucrt64.yml, but builds the whole
tree (service/friendserver/sam3/rnp/plugins all ON) with Ninja and a shared
libretroshare, mirroring the user's validated local Windows command.
Submodules init without --remote (like the Linux/macOS CMake CIs).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 09:50:45 +02:00
jolavillette
0abb7888fd ci(macos-cmake): point find_package(Qt5) at keg-only qt@5
Configure failed because the broad CMAKE_PREFIX_PATH put the Homebrew
prefix ahead of qt@5, so find_package(Qt5) picked a broken Qt5 config
(referencing a non-existent mkspecs/macx-clang). Put qt@5 first and set
Qt5_DIR explicitly, matching the local build_retroshare.sh approach.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 09:27:56 +02:00
jolavillette
2a79b50b32 ci: add macOS CMake workflow building the full tree from root
CMake counterpart of the legacy qmake ci-macOS.yml, but builds the whole
tree (service/friendserver/sam3/rnp/plugins all ON) on macos-14 / Qt5,
using the user's validated Homebrew -I/-L flag harvesting plus
CMAKE_PREFIX_PATH so find_package() locates keg-only qt@5/botan@2/etc.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 09:22:56 +02:00
jolavillette
dd93c5a9f1 ci(ubuntu-cmake): install ffmpeg dev libs for the VOIP plugin
CMake configure failed at plugins/VOIP/CMakeLists.txt (pkg_check_modules
REQUIRED libavcodec/libavutil). Add libavcodec-dev and libavutil-dev.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 08:01:33 +02:00
jolavillette
8ef5f5f6cf ci: add Ubuntu CMake workflow building the full tree from root
Adds .github/workflows/ubuntu-cmake.yml as the CMake counterpart to the
legacy qmake CI. Builds the whole super-project from the top-level
CMakeLists.txt (libretroshare + gui + service + friendserver + plugins,
JSON API / WebUI on) on ubuntu-22.04 / Qt5.

Submodules are initialised without --remote so libretroshare stays on the
pinned CMake-enabled commit; librnp is fetched recursively for src/libsexpp.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 07:49:06 +02:00
jolavillette
e41eb4884e Merge branch 'master' into CMakeMigration-Modular-CrossPlatform
# Conflicts:
#	supportlibs/libsam3
2026-06-15 00:20:57 +02:00
Gioacchino Mazzurco
f5c7727561
Restore accidentally bumped supportlibs submodules 2026-06-14 22:08:41 +02:00
defnax
abfef2c8e7 update workflows
remove not needed ucrt flow
2026-06-14 21:39:19 +02:00
jolavillette
fa1e2903e7 Merge branch 'master' into CMakeMigration-Modular-CrossPlatform
Submodule pointer conflicts resolved by aligning with master:
- libretroshare  -> cafaaa19 (master; already contains this branch's CMake work)
- retroshare-webui -> a28d77fe (master)
- supportlibs/libsam3 kept at 6b61f1c (ahead of master, fast-forward)
2026-06-14 20:14:21 +02:00
Gioacchino Mazzurco
ee61aa58f0
Purge retroshare-service stale Android code 2026-06-14 16:24:55 +02:00
Gioacchino Mazzurco
912e096bda
Fix G10h4ck contributions copyright attribution 2026-06-14 16:10:56 +02:00
Gioacchino Mazzurco
1f8dda1d99
Update submodules 2026-06-14 15:53:03 +02:00
Gioacchino Mazzurco
50b8967ecc
Add github workflow to automatically sync to gitlab.com repo 2026-06-14 15:50:30 +02:00
jolavillette
0a227baa5d Merge remote-tracking branch 'origin/master' into CMakeMigration-Modular-CrossPlatform 2026-06-13 10:08:39 +02:00
csoler
6a021501e5
Merge pull request #3234 from jolavillette/fix/gxsforums-refresh-post-after-edit
gui(forums): refresh the post view immediately after editing a message
2026-06-12 19:29:54 +02:00
jolavillette
7771902b52 gui(forums): refresh the post view immediately after editing a message
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 21:21:40 +02:00
defnax
713d0fedc2 add space 2026-06-07 13:10:09 +02:00
defnax
ccf5116274 Added mIP to uniqueIdentifier(9
Hide not needed Labels for RS_FEED_ITEM_SEC_BAD_CERTIFICATE
2026-06-07 10:33:49 +02:00
csoler
ce5ea5c9eb
Merge pull request #3194 from defnax/improve-usage-stats
Improve Usage stats & added circle links
2026-06-06 22:15:21 +02:00
defnax
f44fe73eb7 fix naming 2026-06-06 22:05:30 +02:00
defnax
61a1d6a971 fix groupid 2026-06-06 21:43:18 +02:00
csoler
9a7c913ef2
Merge pull request #3205 from defnax/fiximport-friendslistwithgroup
[Fix] Fixed import Friends list with groups 🐞
2026-06-06 21:35:59 +02:00
defnax
a5f24fdceb Fix requested changes 2026-06-06 20:25:43 +02:00
jolavillette
0d83fd26dc build(friendserver): link OpenSSL again (needed via inlined libretroshare headers)
Removing OpenSSL from the friendserver in the previous round was wrong: although
friendserver sources don't #include <openssl/...> directly, friendserver.cc pulls
in libretroshare public headers whose inline functions call the OpenSSL EVP API
(EVP_DigestUpdate, ...). libretroshare links OpenSSL PRIVATE and is built shared on
Windows, so those symbols are not propagated to consumers — the link then fails
with "undefined reference to EVP_DigestUpdate" on MinGW. Link OpenSSL here again.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 19:01:11 +02:00
jolavillette
a53e1e919e build(gui): exclude libsam3.a from re-exported symbols (fixes Ninja Windows build)
With the Ninja generator on Windows, the GUI (-Wl,--export-all-symbols) re-exports
the symbols of the static libs it links; libsam3.a was missing from --exclude-libs,
so plugins that also link libsam3.a (FeedReader) failed with "multiple definition
of sam3GenerateKeys". The MSYS Makefiles generator does not hit this, but adding
libsam3.a to --exclude-libs keeps Ninja builds working too.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 19:01:10 +02:00
jolavillette
d4a20720ae build(macos): detect Qt version for the deploy archive name
deploy-macos.sh hardcoded QT_VERSION="UnknownQt", producing archive names like
...-Qt-UnknownQt.dmg. Query qmake (and the keg-only Homebrew qt@5 qmake) to put
the real Qt version in the name, mirroring deploy-windows.sh; fall back to
"UnknownQt" only if nothing is found.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 17:31:56 +02:00
defnax
7784a62f89 Added defines for wire code
Fix navigate to use gxsgroupid
2026-06-06 14:08:08 +02:00
jolavillette
28ff5a6d33 build: move deploy scripts under build_scripts/<platform>/
Following the removal of the orchestrator Makefile, the canonical build is now
plain CMake on the top-level CMakeLists.txt (e.g. cmake -B Build-cmake -S .
-DRS_PLUGINS=ON && cmake --build Build-cmake; on Windows add -G "MSYS Makefiles"
-DRS_LIBRETROSHARE_STATIC=OFF -DRS_LIBRETROSHARE_SHARED=ON).

Move the packaging scripts into their matching build_scripts/ sub-directories and
make them independent of the Makefile and of the invocation directory:
- deploy-macos.sh   -> build_scripts/OSX/deploy-macos.sh
- deploy-windows.sh -> build_scripts/Windows-msys2/deploy-windows.sh
Each script now cd's to the repository root from its own location and reads the
build directory from BUILD_DIR (default Build-cmake) instead of assuming it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 12:34:07 +02:00
jolavillette
30f38cf1b5 gui: use nullptr instead of 0 in PluginManager::pluginWidget
Review feedback: prefer nullptr over 0 for the QWidget* return.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 21:12:24 +02:00
jolavillette
4955741dae build(macos): fix CFBundleExecutable to match the renamed GUI binary
The GUI executable was renamed to "retroshare-gui" (RUNTIME_OUTPUT_NAME), but the
macOS bundle Info.plist still declared CFBundleExecutable=retroshare, so macdeployqt
(and Finder) looked for Contents/MacOS/retroshare and failed with
"Could not find bundle binary". Point it at retroshare-gui.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 18:57:37 +02:00
jolavillette
d1785479c8 build(cmake): address 2nd review round (deps, naming, per-target hacks)
Reply to G10h4ck's second review pass on the CMake migration PR.

- FeedReader: revert the waitForToken interface->helper rename. libretroshare
  defines WIN32_LEAN_AND_MEAN PUBLIC, inherited by the plugin on Windows, so
  <windows.h> no longer pulls in the "interface" macro; the rename is unneeded.
- retroshare-gui: name the GUI executable "retroshare-gui" on all platforms
  (RUNTIME_OUTPUT_NAME); clarify that the TARGET define is the single-instance
  socket name, not the executable name.
- retroshare-gui: gate -Wno-deprecated(-declarations) behind a new
  RS_WARN_DEPRECATED option, mirroring libretroshare.
- retroshare-gui: document direct deps (sam3, X11/XScreenSaver idle detection,
  _FILE_OFFSET_BITS) and the librnp-transitive deps (botan, json-c, z, bz2).
- root: move the global Windows UNICODE/_UNICODE definition and the GCC>=15
  error downgrade out of the global scope into per-target settings (bitdht,
  and the legacy C submodules), applied after the subdirectories are added.
- root: document why the sam3 target is defined once at the top level.
- deploy-macos.sh / deploy-windows.sh: keep them (deployment is a first-class
  step), document why the macdeployqt/windeployqt glue is needed, and update
  the bundle/executable names for the rename (retroshare-gui).
- Stop tracking the convenience Makefile and build_retroshare.sh (CMake builds
  everything itself); they remain available locally as untracked files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 18:14:18 +02:00
jolavillette
ac5190d90d build(cmake): address reviewer feedback and drop unrelated cosmetic changes
Reply to the build-system review on the CMake migration PR.

CMake:
- retroshare-gui: bump project version 0.6.6 -> 0.6.7; restore
  CMAKE_VERBOSE_MAKEFILE ON for development builds; reword
  RS_USE_NATIVE_DIALOGS description without referring to qmake; document
  why AUTOUIC is OFF and why the qmake_info.h shim exists.
- retroshare-gui: fix circles option name mismatch (if(RS_GXS_CIRCLES) ->
  if(RS_GXSCIRCLES)) so RS_USE_CIRCLES is actually defined.
- VOIP, friendserver: drop OpenSSL (and ZLIB/BZip2 for friendserver) which
  are not used directly and come transitively through libretroshare; keep
  ws2_32 for the friendserver (direct Winsock use in network.cc) and drop
  winmm/iphlpapi/mswsock.
- FeedReader: document OpenSSL as a direct dependency and the Windows-only
  plugin link requirement.
- VOIP: document __STDC_CONSTANT_MACROS (required by the libav headers).

Source (kept, now with justifying comments; required to build cross-platform):
- p3FeedReader: parameter renamed interface -> helper ("interface" is a
  reserved Windows SDK macro).
- PluginsPage, PluginManager, PluginManagerWidget, GxsGroupDialog: compile
  fixes exposed by the modular build.

Reverted unrelated cosmetic renames (back to master, dropped from the PR):
- MessageComposer.cpp (grp2), RsNetUtil.cpp (lst2).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 14:47:47 +02:00
jolavillette
c425487bbb Merge remote-tracking branch 'upstream/master' into CMakeMigration-Modular-CrossPlatform 2026-06-04 16:47:44 +02:00
jolavillette
d26f959551 build: improve Makefile help/show-config, harden deploy-windows.sh 2026-06-04 15:22:53 +02:00
jolavillette
1456679914 Build: unify librnp into libretroshare; fix GUI librnp link
- Makefile / build_retroshare.sh: drop the standalone librnp step
  (now built inside libretroshare), use cmake --build for portability.
- retroshare-gui: link the librnp library target instead of the rnp
  executable (fixes Windows configure) and drop obsolete librnp link dirs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 13:21:00 +02:00
jolavillette
20f416119c macOS: restore Qt5Svg link specifically for macdeployqt framework packaging 2026-06-02 21:59:08 +02:00
jolavillette
0a00032aa5 macOS: fix plugins deployment and SVG icons support 2026-06-02 21:40:48 +02:00
jolavillette
90c04aa2f1 build: default to Release build type 2026-06-02 21:32:36 +02:00
jolavillette
f196e47cda build: add Windows deployment automation script 2026-06-02 19:33:01 +02:00
jolavillette
9822e011a5 macOS: Add proper bundle creation, deployment script, and Qt5 prefix fixes 2026-06-02 19:31:52 +02:00
csoler
153a2fc401 updated libretroshare to latest commit 2026-06-02 18:14:40 +02:00
jolavillette
d93f07fea6 Fix Windows build: force shared library compilation for libretroshare and remove linker workarounds 2026-06-02 14:42:40 +02:00
csoler
bd58953ca2
Merge pull request #3224 from jolavillette/FeedReader/FixWindowsMSYS2XmlTextExtractionTruncation
Fix FeedReader text truncation on Windows MSYS2 by forcing UTF-8 and improving XML extraction
2026-06-02 14:41:26 +02:00
jolavillette
7b643c7805 fix(windows): resolve sam3 socket errors and plugin linking multiple definitions 2026-06-01 19:04:42 +02:00
jolavillette
e6d8909b0a fix(build): restore global C++17 and macOS plugin linker flags 2026-06-01 18:48:04 +02:00
jolavillette
72cb4eabd2 fix(build): globally enable I2P SAMv3 support by default and link GUI to sam3 2026-06-01 12:58:11 +02:00
jolavillette
6e61ed2e77 build: make Makefile options cache-aware to support conditional plugin compilation 2026-06-01 09:58:21 +02:00
jolavillette
68fe4256c6 fix(build): enforce global C++17 and enable macOS dynamic lookup for plugins 2026-06-01 09:55:58 +02:00
jolavillette
9b03dd9c54 Merge branch 'master' into CMakeMigration-Modular-Windows-MacOS 2026-05-31 20:50:27 +02:00
jolavillette
c290a7eadf build: optimize orchestrator with DRY options, show-config caching and robust quoting 2026-05-31 20:49:42 +02:00
jolavillette
839e838dcf fix(build): allow disabling RS_JSON_API option when GUI is enabled 2026-05-31 20:49:36 +02:00
jolavillette
1d476241e8 Build: Support dynamic macOS M1 compilation in Makefile and add build helper script 2026-05-31 16:37:23 +02:00
jolavillette
83b6304eea Fix MacOS compilation 2026-05-31 14:12:45 +02:00
defnax
1fd71d6094
Merge branch 'RetroShare:master' into fix-sslrequest 2026-05-27 08:14:53 +02:00
csoler
0e9c79e4a5
Merge pull request #3204 from defnax/wire-groupcount
[Wire] Added to show which posts are new & read function
2026-05-25 15:35:14 +02:00
jolavillette
d59ce80ed0 Revert "FeedReader: keep XML_TEXT_NODE test to prevent undefined behavior in getContent()"
This reverts commit 4be95c236e.
2026-05-25 11:08:06 +02:00
csoler
98fe51ce73
Merge pull request #3087 from jolavillette/AddTableViewInRttStatistics
Add table view in rtt statistics
2026-05-25 10:19:29 +02:00
jolavillette
a5f0e01248 Merge branch 'master' into CMakeMigration-Modular-Windows 2026-05-25 10:08:41 +02:00
jolavillette
7500d8f8b4 Fix: integrate upstream rsRtt->getPongResults() check to avoid conflict 2026-05-25 10:06:10 +02:00
jolavillette
593efd723f various fixes and improvements following cyrils comments 2026-05-25 10:06:10 +02:00
jolavillette
4c4cfbb48a disable table update when widget is hidden or tab inactive 2026-05-25 10:06:10 +02:00
jolavillette
714c5caa36 Restore graph view and use O(N) QHash lookup for the table view 2026-05-25 10:06:10 +02:00
jolavillette
10595b9596 Replace RTT graph with a sortable table view: Name, RTT, ID, IP 2026-05-25 10:06:10 +02:00
jolavillette
4be95c236e FeedReader: keep XML_TEXT_NODE test to prevent undefined behavior in getContent() 2026-05-25 07:17:17 +02:00
jolavillette
25b79662ea Fix FeedReader text truncation on Windows MSYS2 by forcing UTF-8 and improving XML extraction 2026-05-25 07:17:16 +02:00
csoler
ea605d4142
Merge pull request #3222 from jolavillette/FixForumReadStatus
gui: Fix forum read status refresh issues by updating all columns and correcting parent loop
2026-05-24 17:01:36 +02:00
csoler
56ab914b1f
Merge pull request #3221 from jolavillette/FeedReader/FixTooLargeRSSFeedPosts
Fix FeedReader: truncate oversized feed messages to prevent deserialization failure on startup
2026-05-24 16:25:34 +02:00
jolavillette
34220b3417 gui: Fix forum read status refresh issues by updating all columns and correcting parent loop 2026-05-24 11:10:18 +02:00
jolavillette
9da2af5844 FeedReader: extract RSS message size correction to correctMsgSize 2026-05-24 11:09:16 +02:00
jolavillette
079967dcf7 Fix FeedReader: truncate oversized feed messages to prevent deserialization failure on startup 2026-05-24 11:09:16 +02:00
jolavillette
ab561c673e Merge branch 'CMakeMigration-Modular' into CMakeMigration-Modular-Windows 2026-05-24 02:58:33 +02:00
jolavillette
d77d958231 Merge branch 'master' into CMakeMigration-Modular 2026-05-24 02:58:26 +02:00
jolavillette
a689fa4042 Merge branch 'CMakeMigration-Modular' into CMakeMigration-Modular-Windows 2026-05-24 02:40:23 +02:00
jolavillette
ecbc0aba54 Makefile: add interactive help target explaining targets and options 2026-05-24 02:40:16 +02:00
jolavillette
a7608b3561 Makefile: add command line options validation and support for RS_FORUM_DEEP_INDEX 2026-05-24 02:40:07 +02:00
jolavillette
1018d6c751 Makefile: use modern CMake syntax and rename build directory to Build-cmake 2026-05-24 02:39:59 +02:00
jolavillette
4ec8bafec7 plugins & friendserver: explicitly link OpenSSL to resolve dynamic library dependencies 2026-05-24 02:05:50 +02:00
csoler
fcb56e2c5c
Merge pull request #3191 from dbear496/patch-1
Enable RNP lib option in CMakeLists.txt
2026-05-23 20:51:29 +02:00
csoler
82fabb04ee
Merge pull request #3203 from defnax/fix-navigationtocomments
[Fix] Fixed channels comments navigation 🐞
2026-05-23 19:16:43 +02:00
csoler
60a343c4a0
Merge pull request #3215 from defnax/fix-photos
Fix photos compile
2026-05-23 18:49:52 +02:00
jolavillette
3273f40db9 build(cmake): hide console on Windows in Release 2026-05-23 08:31:19 +02:00
jolavillette
7dac424db8 build(cmake): include retroshare_win.rc for Windows build icon 2026-05-23 07:44:03 +02:00
jolavillette
81e67f5103 gui: Add RS_PLUGINS option to enable modular plugin builds 2026-05-22 13:43:57 +02:00
jolavillette
75d916c1f1 gui: Fix dynamic export table and symbol exclusions for Windows plugins 2026-05-22 13:43:24 +02:00
jolavillette
6cab9e4fce gui: Resolve import library name collisions on Windows 2026-05-22 13:43:08 +02:00
jolavillette
324111e991 build: remove unsafe allow-multiple-definition hack 2026-05-22 12:07:56 +02:00
jolavillette
5341b777d3 build: set build dir to Build-cmake and auto-detect MSYS Makefiles on Windows 2026-05-22 09:51:21 +02:00
jolavillette
c0a3eb38b0 build: define WINDOWS_SYS for FeedReader and VOIP plugins on Windows 2026-05-22 04:41:04 +02:00
jolavillette
01552ed04e build: fix GUI export limit by excluding library symbols on Windows 2026-05-22 04:41:04 +02:00
jolavillette
6ce1588354 build: enable dynamic exports and allow multiple definitions on Windows 2026-05-22 04:41:04 +02:00
jolavillette
765a398659 win32: fix plugin compilation by enabling exports on GUI and linking plugins privately to retroshare and retroshare-gui on Windows 2026-05-21 14:04:57 +02:00
jolavillette
67ff1268ed Merge branch 'CMakeMigration-Modular' into CMakeMigration-Modular-Windows 2026-05-21 11:47:40 +02:00
jolavillette
110bdfa850 voip: fix CMake crash by moving target compile definitions after target is declared 2026-05-21 11:44:26 +02:00
jolavillette
04947a0a90 service: fix WebUI FetchContent path fallback when submodule is missing 2026-05-21 11:43:24 +02:00
jolavillette
942e902d70 build: fix GUI include path ordering to avoid Windows case-insensitive conflict 2026-05-21 10:57:58 +02:00
jolavillette
a23452eb96 Merge branch 'CMakeMigration-Modular' into CMakeMigration-Modular-Windows 2026-05-21 08:25:09 +02:00
jolavillette
31151d462e build: scope macOS directories to service target, improve GUI local lib resolution 2026-05-21 08:22:11 +02:00
jolavillette
25e4b5c039 Merge branch 'CMakeMigration-Modular' into CMakeMigration-Modular-Windows 2026-05-21 07:50:03 +02:00
jolavillette
b5df468af7 cmake: modernize directory scopes and complete cmark integration in retroshare-gui 2026-05-21 07:48:44 +02:00
jolavillette
fb381f9dda Merge branch 'CMakeMigration-Modular' into CMakeMigration-Modular-Windows 2026-05-21 04:20:23 +02:00
jolavillette
e3c75aed62 build: scope compile options to targets, fix cmark detection bug 2026-05-21 04:08:58 +02:00
jolavillette
43614c559f Merge branch 'CMakeMigration-Modular' into CMakeMigration-Modular-Windows 2026-05-20 19:40:51 +02:00
jolavillette
48b9267f4f build: clean up duplicate RNP and retroshare linking in service and friendserver 2026-05-20 19:39:44 +02:00
jolavillette
a969528119 build(cmake): fix Windows compilation by defining global Unicode mapping and GCC 15 compatibility flags in root CMakeLists.txt 2026-05-20 17:29:26 +02:00
jolavillette
a7ea0f0c70 build(cmake): define custom retroshare-webui target for Windows builds using MSYS2 sh 2026-05-20 16:54:12 +02:00
jolavillette
3d81ef6eca Build: WIN32: normalize WebUI directory path to fix absolute resolution 2026-05-20 14:24:24 +02:00
jolavillette
645d841761 Build: add robust MinGW link groups for Windows targets 2026-05-20 09:58:53 +02:00
jolavillette
219931e331 Fix Windows compile: rename local variables colliding with Windows API macros 2026-05-20 09:58:48 +02:00
jolavillette
70a5715556 Build: Generate qmake_info.h under CMake binary directory to fix clean build 2026-05-20 09:58:27 +02:00
jolavillette
d8f1267124 build(cmake): integrate FeedReader and VOIP plugins as optional targets 2026-05-20 09:58:22 +02:00
jolavillette
ff60b62868 Optimize monorepo unified build paths, Botan package lookups, and Makefile orchestrator 2026-05-20 09:58:17 +02:00
jolavillette
a6c9695168 Optimize monorepo unified build paths and Botan package lookups 2026-05-19 07:57:53 +02:00
jolavillette
28d2f66ca6 build: implement modular orchestrator Makefile and resolve GUI cross-folder AUTOUIC issues 2026-05-18 18:00:32 +02:00
jolavillette
4bd02cf0bb build(cmake): implement modular build system and align service dependencies 2026-05-18 16:04:01 +02:00
defnax
1de6e926d5 Fix photos compile 2026-05-04 22:34:33 +02:00
defnax
1070f39ad0 Fix workflows by saurabh 2026-05-01 12:52:36 +02:00
defnax
c2aa157104 Fixed SecurityItem 2026-05-01 11:59:03 +02:00
defnax
65b16c30d3 Removed fixe size
* Added vertical spacer
2026-04-25 21:47:02 +02:00
defnax
d4ab2ffea0 Fixed read status 2026-04-25 14:12:47 +02:00
defnax
209a482a17 Added to store & load the sort filter 2026-04-22 21:07:23 +02:00
defnax
c83766ad91 Fixed import Friends list with groups 2026-04-21 18:03:48 +02:00
defnax
13a46c5d57 Added to show which posts are new & read function 2026-04-20 22:57:23 +02:00
csoler
6b5947b73e
Merge pull request #3192 from defnax/wire-groupcount
[Wire] Added to count Wire group box & read message
2026-04-20 22:15:54 +02:00
defnax
fefc65b03e Fix for RsServiceType::WIRE 2026-04-19 21:00:07 +02:00
defnax
919343d232 Fixed channels comments navigation
*Fixed layout margins
2026-04-19 19:30:17 +02:00
defnax
9c8563aef1 Added navigation for boards picture viewer 2026-04-19 17:15:11 +02:00
defnax
87d0925a92 removed bool function 2026-04-18 17:18:20 +02:00
defnax
f8eac31a0c Added new method to retrieve groupname or title 2026-04-18 16:14:56 +02:00
defnax
3faa35cfb0 Fixed message read status to use new method
*Fixed default Avatars
2026-04-12 18:10:25 +02:00
defnax
e6e7340da6 Added "Mark all as read" feature 2026-04-12 15:35:24 +02:00
defnax
629f5922dd Fix margins & spacing 2026-04-09 19:52:55 +02:00
defnax
ad7dd0a41a Added Scrollbar 2026-04-09 18:42:01 +02:00
defnax
b814f841e4 Fixed compile 2026-04-08 22:09:10 +02:00
defnax
3eb4e07e4f Fixed to get work basic keyboard navigation 2026-04-07 20:28:35 +02:00
defnax
c797a72b89 remember last used tab 2026-04-07 18:12:41 +02:00
defnax
206e6c1fea Added collect recent smileys
* Added search for smileys
2026-04-06 21:26:00 +02:00
defnax
6e4f9b0322 Improve Usage stats
*Added for circles retroshare links feature
2026-04-06 16:38:47 +02:00
csoler
94225f8cb9
Merge pull request #3184 from defnax/circles-makecoloredgroupicons
Changed circles group tree icons
2026-04-06 16:33:12 +02:00
defnax
d63cdcd797 removed unused define 2026-04-06 11:43:39 +02:00
defnax
6810da41f9 Added to count Wire group box 2026-04-03 16:00:10 +02:00
David Bears
8e557b8a41
Enable RNP lib option in CMakeLists.txt 2026-04-01 12:03:02 -04:00
defnax
2d60ff30c1 Removed the menu function 2026-03-29 12:28:54 +02:00
defnax
cab6efd83e enabled the default icons for circles & added optional change via context menu 2026-03-28 14:45:19 +01:00
csoler
5d2024c2a1
Merge pull request #3182 from jolavillette/FixForumFilterBehaviour
gui: Fix GXS forum selection and display logic when filtering posts
2026-03-22 17:01:27 +01:00
jolavillette
35b6cc3260 gui: Fix GXS forum selection and display logic when filtering posts 2026-03-18 02:13:15 +01:00
csoler
7f225ac15e
Merge pull request #3185 from jolavillette/ImplementIdleTimeNever
Settings: allow disabling idle timeout by setting Idle Time to 0 (Never)
2026-03-17 22:54:14 +01:00
csoler
8dff752eb1
Merge pull request #3187 from jolavillette/FixCountOccurrenceOfTextInChatPreferences
gui: Fixed "count occurrence of the following text" not being saved in Chat Preferences
2026-03-17 22:50:47 +01:00
csoler
7d868dac5c
Merge pull request #3186 from jolavillette/FixChannelAppearingUnsubscribedAfterPosting
GUI/Channels: Fix channel appearing unsubscribed after posting by reloading metadata instead of toggling flag
2026-03-17 22:48:51 +01:00
jolavillette
6d1d0c83ec gui: Fixed "count occurrence of the following text" not being saved in Chat Preferences 2026-03-17 12:31:23 +01:00
jolavillette
6eaad9ae21 GUI/Forums: Restore GxsForumThreadWidget.cpp from master following accidental modifications 2026-03-17 10:07:43 +01:00
jolavillette
470b2df20e GUI/Channels: Fix channel appearing unsubscribed after posting by reloading metadata instead of toggling flag 2026-03-17 06:03:49 +01:00
jolavillette
fecce7999e Settings: allow disabling idle timeout by setting Idle Time to 0 (Never) 2026-03-14 10:06:55 +01:00
defnax
c772917516
Merge pull request #240 from jolavillette/Fix_PR3184_1
GUI: Fix PR3184 bugs (icon distortion, memory leak, nickname refresh) and optimize cache
2026-03-12 16:11:33 +01:00
jolavillette
3481b262e9 GUI: Fix PR3184 bugs (icon distortion, memory leak, nickname refresh) and optimize cache 2026-03-12 07:08:51 +01:00
defnax
4bbdedb7c5 Fixed to show for empty nicks, default string 2026-03-11 20:21:09 +01:00
defnax
6cd25e3277 Fixed Avatar dimensions 2026-03-11 20:07:11 +01:00
defnax
1039a1a8a9 Added group icon generation for the circles group tree 2026-03-11 19:06:37 +01:00
csoler
5ea309d032
Merge pull request #3183 from jolavillette/FixForumDisplaysDetailsInsteadOfPostConten
fix: forum details is displayed instead of post content
2026-03-11 12:17:26 +01:00
csoler
47398f7d03
Merge pull request #3177 from jolavillette/FixI2PProxyUneditable
fix: initialize mSamSettings to prevent i2p proxy fields being uneditable without SAM3
2026-03-11 12:10:48 +01:00
jolavillette
553cb42759 fix: forum details is displayed instead of post content 2026-03-10 09:51:10 +01:00
jolavillette
6392d08347 fix: initialize mSamSettings to prevent i2p proxy fields being uneditable without SAM3 2026-03-09 05:16:06 +01:00
csoler
5b7d50f364
Merge pull request #3171 from samuel-asleep/implement-3107
Modernize Wiki GUI with libretroshare integration and features
2026-03-08 15:15:52 +01:00
Akinniranye Samuel Tomiwa
50d4e2cdd4
fix(ui): remove redundant guards and prevent partial group updates
- Remove meaningless null-check on `ui` value member.
- Remove redundant `!mModeratorsWidget` guard in `initUi()` as it is called once post-initialization.
- Fix `service_updateGroup()` to return early on fetch failure, preventing the submission of default-constructed group data.
- Refactor `addModeratorToList()` to use `findItems().empty()` for duplicate detection instead of a manual loop.
2026-03-07 15:50:40 +01:00
Akinniranye Samuel Tomiwa
00c69e135e
Merge branch 'RetroShare:master' into implement-3107 2026-03-07 12:29:23 +01:00
csoler
80e08cc9d9
Merge pull request #3159 from jolavillette/FixChannelsDetailsAndSubscribeButton
fix GXS details not loading at startup, and Subscribe button not updating when subscribing
2026-03-06 18:46:56 +01:00
csoler
479619d05d
Merge pull request #3168 from jolavillette/FixTheWireUIFreeze
TheWire: Fix UI
2026-03-06 18:32:01 +01:00
csoler
5daca8ff7d
Merge pull request #3175 from jolavillette/FixCrashInRTTStatistics
Fix std::list assertion crash in RttStatistics by checking if results are empty
2026-03-06 18:21:48 +01:00
csoler
be145de3dd
Merge pull request #3179 from retrop00h/chatcolors_switche
add option to disable custom font color in chats
2026-03-06 18:15:04 +01:00
Akinniranye Samuel Tomiwa
28b9228ccd
Merge branch 'RetroShare:master' into implement-3107 2026-03-04 18:05:33 +01:00
jolavillette
046914e77f TheWire: Use new token-free subscribe API 2026-03-04 00:40:55 +01:00
jolavillette
f1dfe1d22f comment out GXS_GROUP_FLAGS_PERSONALSIGN 2026-03-04 00:40:55 +01:00
jolavillette
d1d009517e TheWire: implement event throttling and fix navigation history 2026-03-04 00:40:55 +01:00
jolavillette
47a0cbc232 TheWire: Use deleteLater() in WireDialog to prevent crash during background updates 2026-03-04 00:40:55 +01:00
jolavillette
bcc80890f5 TheWire: Refactor blocking service calls to be asynchronous in WireDialog.cpp 2026-03-04 00:40:55 +01:00
jolavillette
b495252b13 Fix std::list assertion crash in RttStatistics by checking if results are empty 2026-03-04 00:39:37 +01:00
jolavillette
1121d36ee2 fix forum post replaced by forum description on GXS event refresh 2026-03-04 00:39:21 +01:00
jolavillette
74056803a8 cleanup GxsForumThreadWidget.cpp trailing lines to fix merge conflicts 2026-03-04 00:39:21 +01:00
jolavillette
09bc572084 clean code 2026-03-04 00:39:21 +01:00
jolavillette
1658f9bdce remove QTimer from SUBSCRIBE_STATUS_CHANGED handler, use local flag toggle instead 2026-03-04 00:39:21 +01:00
jolavillette
b3e4861b5f enable Posts/Files tabs and update full UI after subscription 2026-03-04 00:39:21 +01:00
jolavillette
e07e6362c3 fix GXS details not loading at startup, and Subscribe button not updating when subscribing 2026-03-04 00:39:21 +01:00
csoler
b020001906
Merge pull request #3170 from jolavillette/FixProfileAvatarSelection
fix profile avatar selection to prioritize connected nodes
2026-03-03 23:08:06 +01:00
retrop00h
ecf413d618 add option to disable custom font color in chats 2026-03-04 00:25:23 +03:00
csoler
61150080d0
Merge pull request #3176 from jolavillette/FixTheWireForcedCompilation
Fix the wire forced compilation
2026-03-03 20:30:09 +01:00
csoler
a554aa4fc3 desactivated thewire from default compilation 2026-03-03 17:41:13 +01:00
csoler
be244c15e3 desactivated thewire from default compilation 2026-03-03 17:22:51 +01:00
csoler
51c643e237 desactivated thewire from default compilation 2026-03-03 17:14:47 +01:00
jolavillette
e331f19c54 build: disable TheWire compilation by default 2026-03-03 07:15:26 +01:00
jolavillette
19619ecb37 guard TheWire code in RetroShareLink.cpp so that RS can be compiled without TheWire 2026-03-03 06:53:05 +01:00
jolavillette
ebaf1a0ed7 fix profile avatar selection to prioritize connected nodes 2026-03-03 06:52:35 +01:00
thunder2
fcc5ba410c Windows build: Updated 7-Zip 26.00 x64 2026-03-02 19:49:24 +01:00
csoler
a0808a839b
Merge pull request #3173 from dbear496/fix-cmake-with-rnp
fix CMake build with RNP
2026-03-01 14:33:36 +01:00
David Bears
8edec60290
fix CMake build with RNP 2026-02-28 18:05:46 -05:00
Akinniranye Samuel Tomiwa
9c01d35d06
Fix stale identity data, HTML injection, and double insertion in WikiGroupDialog 2026-02-28 23:49:15 +01:00
Akinniranye Samuel Tomiwa
c69b7cef0c gui: remove unused WikiTokenWaiter helper 2026-02-28 23:27:18 +01:00
csoler
38dc687e66
Merge pull request #3169 from defnax/fix-wirepostnotifyui
Fix wire post notify & default icon fix
2026-02-28 20:06:04 +01:00
defnax
770ee67e94 Added to use makeDefaultGroupIcon for wire 2026-02-28 14:31:18 +01:00
Akinniranye Samuel Tomiwa
fa28bf6f9c
Modernize Wiki GUI with libretroshare integration and features 2026-02-27 09:53:12 +01:00
defnax
ae098607dc Fix wire post notify 2026-02-24 20:51:37 +01:00
csoler
c686375050
Merge pull request #3141 from SaurabhCodesAI/wire-notifyv2
Wire Complete implementation of Issue #2923 todos
2026-02-23 22:03:25 +01:00
csoler
92fbd85e6a
Merge pull request #3157 from defnax/avatar-fix
Fixed to show the status frame
2026-02-21 21:10:44 +01:00
csoler
16d1744b6a
Merge pull request #3160 from jolavillette/fix-macos-id-edit-password
retroshare-gui: fix identity edit password prompt issues on macOS
2026-02-21 21:00:18 +01:00
jolavillette
aa0e9f9337 retroshare-gui: fix identity edit password prompt issues on macOS
- Fix dangling pointer in RsGUIEventManager when capturing password
- Improve parent selection for input dialog to work correctly with macOS sheets
- Optimize GUI_askForPassword for direct calls when on GUI thread
- Ensure execReturn is initialized to avoid garbage values
- Clear password cache before asking to ensure prompt appears if needed
2026-02-21 12:09:23 +01:00
saurabh
67849d619b Wire: Fix republish/like popup, correct profile counts, show followers, adopt defnax UI cleanup, fix GxsStatisticsProvider migration 2026-02-21 16:07:59 +05:30
csoler
6aef07d2ea
Merge pull request #3167 from csoler/v0.6-BugFixing_42
removed isVisible() from IdDialog update so that it does update when …
2026-02-20 21:33:09 +01:00
csoler
e1afeee37d removed isVisible() from IdDialog update so that it does update when an identity is created from another tab 2026-02-20 21:32:13 +01:00
csoler
9d043c78eb
Merge pull request #3166 from jolavillette/FixDistantChatGreyLight
fix distant chat dialog showing grey status when tunnel is already established
2026-02-20 19:49:43 +01:00
jolavillette
406e538ff3 fix distant chat dialog showing grey status when tunnel is already established 2026-02-20 12:32:29 +01:00
thunder2
8e5629df9c Enabled compile of plugin VOIP for Qt 5 only 2026-02-17 18:56:41 +01:00
thunder2
c83b4f3950 Fixed compile of VOIP for older compilers 2026-02-17 18:56:41 +01:00
thunder2
f26845ad2b Fixed MSYS2 compile. Renamed qmake to qmake-qt5. 2026-02-17 18:56:40 +01:00
csoler
4545141dda updated libretroshare to latest master 2026-02-16 17:26:27 +01:00
csoler
b5f3603eb2
Merge pull request #3093 from jolavillette/ImproveUploadStatistics
[WIP] Improve upload statistics
2026-02-14 20:50:22 +01:00
jolavillette
6405061076 move UI signal blocker to utils and improve cache safety/consistency 2026-02-14 19:50:55 +01:00
jolavillette
801924cbb2 Shared Files refactor: consolidate stats maps, optimize FlatView caching, and fix search responsiveness 2026-02-14 16:02:48 +01:00
jolavillette
030f37f613 add UI for upload stats retention and move clear button to new Upload Statistics group 2026-02-13 21:42:49 +01:00
jolavillette
939f283a92 Optimize RemoteDirModel stats calculation to fix lag in SharedFilesDialog 2026-02-13 21:42:49 +01:00
jolavillette
37f4ddc3d0 Optimized Shared Files view performance by caching file details to eliminate UI freezes and increasing the update frequency for faster list population 2026-02-13 21:42:49 +01:00
jolavillette
ba1d213d5c GUI: Fix "Popular Files" filter persistence and tree expansion when switching views 2026-02-13 21:42:49 +01:00
jolavillette
df44f8b626 GUI: Ensure search filter persists and applies correctly when switching between Tree and Flat views 2026-02-13 21:42:49 +01:00
jolavillette
4103783114 Fix SIGSEGV in SharedFilesDialog by adding defensive null checks and forcing safe model resets 2026-02-13 21:42:49 +01:00
jolavillette
af87346763 fix SIGSEGV in SharedFilesDialog by adding defensive null checks and forcing model reset 2026-02-13 21:42:49 +01:00
jolavillette
352c743be6 display per directory the total number of files and the cumulated size 2026-02-13 21:42:48 +01:00
jolavillette
18afe3a182 fix searche among shared files randomly not working 2026-02-13 21:42:48 +01:00
jolavillette
23a1d0dd75 new attempt at fixing search in My files 2026-02-13 21:42:48 +01:00
jolavillette
abe98b4ec1 fix search not working in My files 2026-02-13 21:42:48 +01:00
jolavillette
4a8e164c7e more fix to correctly display relevant dirs and files when the box is checked 2026-02-13 21:42:48 +01:00
jolavillette
560184337f fix temporary shared files not being displayed in tree view when popular files box is checked 2026-02-13 21:42:48 +01:00
jolavillette
b5d113d7c3 Fix weird behaviour when unchecking "Popular file" box 2026-02-13 21:42:48 +01:00
jolavillette
a7e648851c Fix autocollapse in tree view 2026-02-13 21:42:48 +01:00
jolavillette
1ba88f0293 Fix crash in QItemSelectionRange destructor 2026-02-13 21:42:48 +01:00
jolavillette
9f519b337c Various UI improvements 2026-02-13 21:42:48 +01:00
jolavillette
27b71097d3 Fix SIGSEV in QSortFilterProxyModel::parent 2026-02-13 21:42:47 +01:00
jolavillette
2d13a729ec Improve upload statistics 2026-02-13 21:42:47 +01:00
csoler
da0a9eab8d
Merge pull request #3142 from jolavillette/GxsIdDisplayAndPropagation
Fix Identity/Chat refresh logic to handle instant avatar updates
2026-02-13 18:05:10 +01:00
jolavillette
385ee5ad14 remove dead fallthrough, increase event throttle to 1s, add refreshIdentityDetails() 2026-02-13 11:40:12 +01:00
jolavillette
461d21d6c4 extended event throttling to Channels, Forums, Boards, and Circles to prevent UI freezes 2026-02-12 08:23:27 +01:00
jolavillette
216d25086b fixed UI freeze in People view by throttling IdentityListModel updates 2026-02-12 08:23:27 +01:00
jolavillette
d49a1fbc33 Fix IdentityListModel: Restore original setIdentities implementation to preserve view hierarchy and signals 2026-02-12 08:23:27 +01:00
jolavillette
a7c6c5cb11 Fix IdentityListModel refresh logic to handle avatar updates 2026-02-12 08:23:27 +01:00
csoler
369840993f
Merge pull request #3158 from csoler/v0.6-BugFixing_41
added missing initialization to rsevent handler
2026-02-11 23:33:06 +01:00
csoler
27fc56b8b7 added missing initialization to rsevent handler 2026-02-11 23:30:26 +01:00
defnax
816f377833 Fixed to show the status frame 2026-02-11 21:36:21 +01:00
csoler
b67b040122
Merge pull request #3150 from defnax/avatar-fix
Added square avatar for the own frame
2026-02-08 20:37:27 +01:00
saurabh
6cbc156c13 Merge upstream master
# Conflicts:
#	retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.cpp
2026-02-09 00:03:55 +05:30
saurabh
167bcfefa7 Wire: Add account filter menu and update filter UI 2026-02-08 23:51:32 +05:30
csoler
e04d2c2fc3
Merge pull request #3151 from jolavillette/FixCrashInTurtleRouterDialog
fix dangling pointer crash in TurtleRouterDialog by nullifying top_level pointers in hideEvent
2026-02-07 17:41:52 +01:00
jolavillette
a49175996a fix dangling pointer crash in TurtleRouterDialog by nullifying top_level pointers in hideEvent 2026-02-06 22:00:59 +01:00
csoler
6212dae5a3
Merge pull request #3143 from jolavillette/FixZeroPostCountAtStartup
fix zero post counts in Channels/Forums/Boards on Startup
2026-02-06 21:26:44 +01:00
jolavillette
2c02a46d4a fix zero post counts in Channels/Forums/Boards on Startup 2026-02-06 07:25:52 +01:00
csoler
97e840e38c
Merge pull request #3149 from jolavillette/FixTurtleRouterDialog
Turtle Router Statistics: improve sorting, data formatting, and memory usage
2026-02-05 23:01:26 +01:00
jolavillette
1a6cc7204b simplify hideEvent by using clear() instead of manual child deletion 2026-02-05 22:55:08 +01:00
csoler
737b5a2626
Merge pull request #3140 from jolavillette/ImproveChannelsGUILoading
Optimize GxsChannelPosts rendering to eliminate UI freeze on large lists
2026-02-05 22:31:35 +01:00
jolavillette
86f807303b restore Channels UI aesthetics 2026-02-05 16:40:08 +01:00
jolavillette
e09423bf10 Turtle Router Dialog: fix UI performance bottlenecks in item sorting and hash management 2026-02-05 11:43:41 +01:00
saurabh
7acaccb581 Wire: Remove commented hide line for groupSet comboBox 2026-02-04 15:17:58 +05:30
defnax
0877e542a2 Added square avatar for the own frame 2026-02-03 21:34:11 +01:00
saurabh
e65ae170f5 Wire: Add filter menu, event labels, and UI improvements
- Add filter menu button with Sort by Ascending toggle and time filters
- Show COPY LINK button for own profile (ADMIN) and reposition to header
- Add event-based labels: "Now Following", "Wire Updated", "New Wire"
- Add pulse type labels: "New Like", "New Republish", "New Reply"
2026-02-04 00:15:46 +05:30
jolavillette
de1bb49f9b cosmetic change in Tunnel Requests display 2026-02-03 17:29:45 +01:00
saurabh
76845e50a7 Fix Wire notification tray click not opening Wire page
- Remove shadowed local variable in MainWindow.cpp that prevented wireDialog member from being set

- Add pending navigation pattern in WireDialog for deferred navigation

- Restore openWireGroup() in WireNotifyGroupItem
2026-02-03 14:03:32 +05:30
jolavillette
04e3fce37f Turtle Router Statistics: improve sorting, data formatting, and memory usage 2026-02-02 23:50:35 +01:00
jolavillette
ff01cbc0dc Fix: Adjust scaling and margins in GxsChannelPosts delegate to match original widget appearance 2026-02-02 22:31:29 +01:00
jolavillette
303729f962 Perf: Optimize GxsChannelPosts rendering by replacing QWidget instantiation with direct QPainter drawing 2026-02-02 22:31:29 +01:00
csoler
16a4063a5c
Merge pull request #3117 from dbear496/fix-mod-select-circle
fix moderator list dropdown when editing post in circle-restricted forum
2026-02-02 21:47:33 +01:00
csoler
356e1bab69
Merge pull request #3148 from defnax/update-no-avatar
update no avatar to match with the new avatar system
2026-02-02 21:43:24 +01:00
csoler
1a93047c8f
Merge pull request #3097 from defnax/improve-filetransfertunnels
Improved File transfer Tunnels display
2026-02-02 21:42:48 +01:00
defnax
11f3e466eb added hidevents 2026-02-02 20:57:46 +01:00
defnax
3a81cdf411 moved the defines to cpp file 2026-02-01 22:34:43 +01:00
defnax
bd283e53e8 reorder columns 2026-02-01 21:32:57 +01:00
defnax
1bb55f4144 Fix alignment & calculate the size with friendlyUnit 2026-02-01 18:49:41 +01:00
defnax
7934e8bb71 Improve display 2026-02-01 18:49:41 +01:00
defnax
b2f5153d22 Added separate class for TunnelStatisticsDialog 2026-02-01 18:49:41 +01:00
defnax
2fae419c18 Added own class for GxsNetTunnelsDialog
* Improved GXS Sync Tunnels display
* cleanup code
2026-02-01 18:49:40 +01:00
defnax
3834d495be Improved File transfer Tunnels display 2026-02-01 18:49:39 +01:00
csoler
f6181a0ff6
Merge pull request #3145 from defnax/restorechanges
fix boards gif/webp for #3104
2026-02-01 17:56:23 +01:00
defnax
82b62742ae restore PostedItem class 2026-02-01 17:41:21 +01:00
natinew77-creator
2a4ac83406 Fix missing include for BoardPostImageHelper.h
PostedCreatePostDialog.cpp uses BoardPostImageHelper::MAX_ANIMATED_SIZE
but was missing the include - would cause compilation error
2026-02-01 17:41:21 +01:00
natinew77-creator
99756456b6 Add animation support to BoardsPostItem::viewPicture()
defnax noted that BoardsPostItem is the primary feed view used (not PostedItem).
Added QMovie animation support to viewPicture() popup for animated GIF/WEBP.

- Added QMovie and BoardPostImageHelper includes
- Animation detection and QMovie playback in photo popup
- Static image fallback for non-animated images
- Proper parent-child cleanup (movie->setParent(PView))
2026-02-01 17:41:20 +01:00
natinew77-creator
1de556a35e CRITICAL FIX: Double-delete crash in PhotoView
- Removed manual delete from PhotoView destructor and setMovie()
- Qt parent-child mechanism handles QMovie cleanup automatically
  (caller sets movie->setParent(PView) before calling setMovie)
- Added null check for thumbnail pixmap in PostedItem

This prevents crash when closing PhotoView with animated image
2026-02-01 17:41:20 +01:00
natinew77-creator
60ed88691d Fix code review issues: duplicate include and thumbnail loading
- Removed duplicate #include BoardPostImageHelper.h
- Added movie->jumpToFrame(0) before currentPixmap() to ensure first frame is loaded
2026-02-01 17:41:20 +01:00
natinew77-creator
09ba942d96 CRITICAL FIXES: Memory leaks and code review issues
Fixed all critical issues from code review:
1. Memory leak in createMovieFromData() - QByteArray now properly deleted via lambda
2. Added setParent() to ALL QMovie instances for proper cleanup
3. Fixed double pixmap load in PostedItem - use movie->currentPixmap()
4. Used MAX_ANIMATED_SIZE constant instead of magic number
5. Added validation for corrupted animated images
6. Clarified compact view comment (design choice, not limitation)

Addresses all MUST-FIX items from review
2026-02-01 17:41:19 +01:00
natinew77-creator
5b0053850b Add animation support to PostedItem (feeds/activity view)
- PostedItem now displays animated GIFs/WEBPs in feed
- Completes animation coverage across all Board post views

All views now support animation:
- Card view ✓
- Photo popup ✓
- Compact view (static) ✓
- Feed/Activity view ✓
2026-02-01 17:41:19 +01:00
natinew77-creator
18ac758824 Fix compact view and improve WEBP support
- Compact view now shows static first frame for animated images
  (setPicture() doesn't support QMovie animations)
- Improved WEBP detection with better frameCount handling
- Animation works in: Card view, Photo popup, and static preview in Compact

Addresses defnax feedback about missing compact view images and WEBP support
2026-02-01 17:41:18 +01:00
natinew77-creator
1657971444 Fix maintainer feedback: includes, header optimization, preserve animation
- Added missing QMovie include in PhotoView.cpp
- Optimized BoardPostImageHelper.h with forward declarations
- Added QMovie includes to .cpp files (thunder2's suggestion)
- CRITICAL FIX: Animated GIFs now bypass JPG optimization
  - Load raw GIF/WEBP data to preserve animation
  - Preview first frame in dialog
  - Static images still use optimization

Fixes: Animation now works when posting GIFs
2026-02-01 17:41:18 +01:00
natinew77-creator
b4f56cf4d8 Implement animated GIF/WEBP support for Board posts (#3095)
Features:
- Detect and animate GIF/WEBP images with multiple frames using QMovie
- Automatic looping for smooth playback
- 194KB size limit enforced at upload time
- User-friendly error message for oversized animated images
- Preserve static image display for non-animated content

Implementation:
- Created BoardPostImageHelper utility class for format detection
- Updated BoardPostDisplayWidget (compact and card variants)
- Updated PostedCardView for feed display
- Updated PhotoView for popup animation
- Added upload validation in PostedCreatePostDialog
- Proper memory management to prevent leaks

Technical details:
- Uses QImageReader for frame counting and format detection
- QMovie with QBuffer for animation playback
- Parent-child cleanup for automatic memory management
- Tested on macOS with successful build

Files modified:
- gui/Posted/BoardPostImageHelper.{h,cpp} (NEW)
- gui/Posted/BoardPostDisplayWidget.cpp
- gui/Posted/PostedCardView.cpp
- gui/Posted/PhotoView.{h,cpp}
- gui/Posted/PostedCreatePostDialog.cpp
- retroshare-gui.pro
2026-02-01 17:41:17 +01:00
defnax
35a1e53dd4 update no avatar to match with the new avatar system 2026-01-31 16:45:55 +01:00
saurabh
e5e35da0bb Wire: Enable link clicks in notification items 2026-01-27 17:35:21 +05:30
saurabh
7f19f201c6 Wire: Fix reply/like/republish bugs, read/unread marking, navigate links 2026-01-27 04:08:09 +05:30
saurabh
29d5ce631b Wire notify improvements and bug fixes
- Enable wire events for replies, republishes and likes
- Fix pulse notifications to load data correctly
- Add home button and search filter
- Add copy link for pulses and profiles
- Fix identity selector in account creation
2026-01-26 12:45:21 +05:30
defnax
384e00868e Added missed wire flag 2026-01-24 12:38:46 +01:00
defnax
bcaca4ca2d Fixed Wire counts to use own Wire Page
* Disabled unfinished feeds
2026-01-24 12:38:46 +01:00
defnax
4d1de11905 Disabled hide function 2026-01-24 12:38:46 +01:00
defnax
b4fbdca4e8 update project file 2026-01-24 12:38:46 +01:00
defnax
e129a2504b Rework on wire notify and clean up code 2026-01-24 12:38:46 +01:00
csoler
a26b5a4be5
Merge pull request #3129 from jolavillette/ImproveBWStatistics
BW statistics: remove useless values, display outqueue size in bytes, drain, total in, total out, save config
2026-01-23 23:02:07 +01:00
jolavillette
227f0039f2 add tooltips 2026-01-23 07:34:45 +01:00
jolavillette
9f6d9ffe40 remove InAllowed column as our peers dont provide this information 2026-01-23 06:58:30 +01:00
jolavillette
cac8af8b36 Fix fugitive peer selection and add units to Drain column in Bandwidth Stats 2026-01-20 06:54:41 +01:00
jolavillette
2c54d47ba4 add total in and total since peer connected 2026-01-20 06:54:41 +01:00
jolavillette
492cac2ee2 BW statistics: polish, remove useless values, display outqueue size in bytes, display drain = outqueue / outspeed 2026-01-20 06:54:41 +01:00
csoler
4e6b941ac5
Merge pull request #2969 from defnax/login-dialog
Added for login dialog switch background image
2026-01-19 20:35:13 +01:00
csoler
efd927dc8b
Merge pull request #3134 from dbear496/plugins-rapidjson-include
fix rapidjson include directory for plugins
2026-01-19 20:00:28 +01:00
csoler
478cdc4390
Merge pull request #3135 from defnax/fix-tree-icon
Fixed to show the avatar with right dimensions
2026-01-19 19:58:48 +01:00
defnax
42e062db96 Fixed the default width 2026-01-19 18:08:48 +01:00
defnax
e43295c784 added separate fontmetrics for each tree 2026-01-19 17:43:20 +01:00
defnax
dea890b2f1 Fixed to show the avatar with right dimensions 2026-01-18 22:26:38 +01:00
David Bears
5997bf100c
fix rapidjson include directory 2026-01-18 14:21:54 -05:00
csoler
5ac0a4ac7e
Merge pull request #3127 from dbear496/submodules
update submodules
2026-01-18 18:27:13 +01:00
csoler
7e4da6b178
Merge pull request #3132 from samuel-asleep/master
Fix and Correct compliation error introduced in pr #3122
2026-01-18 18:24:58 +01:00
csoler
8da240d839
Merge pull request #3125 from dbear496/fix-voip
update VOIP for current libavcodec
2026-01-18 17:46:27 +01:00
David Bears
685b63cc27
fix libretroshare submodule commit 2026-01-18 10:09:17 -05:00
David Bears
baf6c9b553
update openpgpsdk 2026-01-18 10:05:40 -05:00
David Bears
f6429e60d4
use absolute URLs for submodules 2026-01-18 10:05:39 -05:00
David Bears
7e25bf6649
checkout fix for Tencent/rapidjson#718 2026-01-18 10:05:36 -05:00
Akinniranye Samuel Tomiwa
42230a4b36
Fix Qt6 QDateTime usage and clarify/refactor group icon cache keys (#2)
* Fix QDateTime epoch conversion for Qt 6/Qt 5

* Update retroshare-gui/src/gui/common/FriendListModel.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-18 03:09:03 +01:00
Akinniranye Samuel Tomiwa
11cc61c6c4
Fix default group icon overloads and string handling
* Fix default group icon string handling

* Add cache key prefixes for group icons
2026-01-18 02:10:57 +01:00
csoler
b681603cb0
Merge pull request #3122 from samuel-asleep/master-clean
Implement deterministic colored default logos for Friend Nodes, Chann…
2026-01-17 22:13:27 +01:00
Akinniranye Samuel Tomiwa
d8fb54b60c
Delete _codeql_detected_source_root 2026-01-17 21:32:10 +01:00
Akinniranye Samuel Tomiwa
e2633dd7de
Fix icon cache macro order, use NUM_AVATAR_SIZES and add string-based group icon generator
* Fix NUM_AVATAR_SIZES define order

* Update retroshare-gui/src/gui/gxs/GxsIdDetails.h

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update retroshare-gui/src/gui/gxs/GxsIdDetails.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update retroshare-gui/src/gui/gxs/GxsIdDetails.h

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-17 21:09:06 +01:00
Akinniranye Samuel Tomiwa
722f2e5420
Add new board icon 2026-01-17 07:39:38 +01:00
Copilot
a55fe09455
Fix type correctness and add safety checks for group icon generation
* Initial plan

* Fix type correctness and add safety checks for avatar icon generation

- Change parameter type from RsGxsId to RsGxsGroupId in makeDefaultGroupIcon methods
- Add NUM_AVATAR_SIZES constant to clarify array size meaning
- Add bounds checking for array access to prevent crashes
- Remove unnecessary RsGxsId casts in dialog classes

Co-authored-by: samuel-asleep <210051637+samuel-asleep@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: samuel-asleep <210051637+samuel-asleep@users.noreply.github.com>
2026-01-17 07:35:05 +01:00
Akinniranye Samuel Tomiwa
a259b1c110
Fix group icon cache keys and add separate cache for generated group avatars
* Fix group icon cache keys

* Update retroshare-gui/src/gui/gxs/GxsIdDetails.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-16 18:07:50 +01:00
David Bears
fabd25be22
remove size from NetQueue template arguments 2026-01-16 12:05:35 -05:00
David Bears
7542ee4f8c
some minor touchup 2026-01-16 11:10:18 -05:00
David Bears
921f8eb690
implement proper avcodec encode/decode loops 2026-01-16 02:30:14 -05:00
Akinniranye Samuel Tomiwa
32cad564fe
Improve friend avatar fallbacks 2026-01-16 00:46:54 +01:00
csoler
cef76825ee
Merge pull request #3123 from defnax/fixiconsize
fixed ID Dialog & Circles icon size issues
2026-01-15 19:43:03 +01:00
csoler
49a4af55fe
Merge pull request #3111 from jolavillette/ImproveDateFormat
add date format selection (System, ISO 8601, Text) in user settings, and standardize date and time formatting across the UI
2026-01-15 19:40:53 +01:00
csoler
830c0c3a76
Merge pull request #3124 from dbear496/open-rscollection-links
internally handle rscollection links
2026-01-15 19:26:54 +01:00
David Bears
e01e1a490d
update VOIP for current libavcodec 2026-01-15 08:58:25 -05:00
jolavillette
a6e2a122ce use raw time_t in FriendListModel to ensure proper Model-UI separation 2026-01-15 09:05:56 +01:00
David Bears
edff72fabc
internally handle rscollection links 2026-01-14 14:01:04 -05:00
defnax
aa4463d27e fixed ID Dialog & Circles icon size issues 2026-01-14 18:27:21 +01:00
Copilot
24911bf6ba
Fix icon paths for new colored default avatars 2026-01-14 18:11:40 +01:00
Akinniranye Samuel Tomiwa
477a699dc9
Update retroshare-gui/src/gui/gxs/GxsIdDetails.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-14 15:59:54 +01:00
David Bears
47b4c091d0
fix asynchronous fetching of circle details 2026-01-14 08:39:23 -05:00
Copilot
db47c62c2b
Implement deterministic colored default logos for Friend Nodes, Channels, Boards, and Wikis 2026-01-14 13:47:53 +01:00
jolavillette
622a0063ca add onfigurable date formats with live previews, fix sorting via delegates, and implement instant refresh cache 2026-01-14 10:47:25 +01:00
csoler
52c1350dbd
Merge pull request #3106 from defnax/wiki-icons
[RsWIKI] update wiki icons
2026-01-13 23:20:01 +01:00
David Bears
7aca9fa527
removes non-members from ID dropdown in forum message creator 2026-01-13 15:11:49 -05:00
jolavillette
9730b2df56 Standardize date and time formatting across the UI 2026-01-13 18:41:38 +01:00
David Bears
bbca5af542
fix "no identities are allowed to post" 2026-01-12 17:31:54 -05:00
David Bears
d3dd908916
fix moderator list dropdown when editing post in circle-restricted forum 2026-01-12 12:08:13 -05:00
csoler
40036d7b52
Merge pull request #3116 from defnax/wiki-fix-v2
[RsWiki] Removed forgetten buttons
2026-01-12 13:20:15 +01:00
csoler
3248176dfa
Merge pull request #2961 from defnax/w10darkmode
Added system dark mode for Windows 10
2026-01-11 16:40:22 +01:00
csoler
77c3ece753
Merge pull request #2922 from dbear496/moderator-select
Make forum moderator selectable by the user
2026-01-11 16:38:58 +01:00
csoler
7beaa8bb6f
Merge pull request #3108 from jolavillette/DisplayEngineVersion
display libretroshare version in About dialogs and enable dirty flag support
2026-01-11 16:29:32 +01:00
defnax
b9a9ed94bc Removed forgetten buttons 2026-01-10 23:26:15 +01:00
jolavillette
28c28afdca Merge branch 'master' into DisplayEngineVersion 2026-01-09 17:30:07 +01:00
csoler
b5bb1c4a24
Merge pull request #3110 from JohannesKleine/github-workflow-qt5
github workflow rename qmake to qmake-qt5.exe
2026-01-09 08:59:35 +01:00
csoler
8272f36449
Merge pull request #3090 from csoler/v0.6-MailChat
Splitting rsMsgs into rsMail and rsChats
2026-01-08 22:29:48 +01:00
csoler
c49eb9c2a4
Merge pull request #3102 from alvaro-salort/fix/wiki-plugin-modernization
Wiki Plugin: Re-enable and modernize with rsEvents
2026-01-08 22:18:22 +01:00
csoler
11f18f9b18
Merge pull request #3109 from JohannesKleine/aboutWidget
remove downcast error
2026-01-08 22:15:14 +01:00
jolavillette
35f7aff599 more cosmetics 2026-01-08 13:13:40 +01:00
jolavillette
bf9da4f980 consistency and cosmetic changes 2026-01-08 00:05:43 +01:00
jolavillette
c631972ee5 Merge branch 'master' into DisplayEngineVersion 2026-01-07 23:37:21 +01:00
csoler
95df7f0c25
Merge pull request #3105 from jolavillette/FixUnstableFriendsList
Fix unstable friends list
2026-01-07 23:27:52 +01:00
csoler
b65b45aa9d
Merge pull request #3100 from jolavillette/CloseStatisticsWithEscape
Close statistics window with Escape key
2026-01-07 23:17:45 +01:00
csoler
cd6820b753
Merge pull request #3098 from jolavillette/FixWindowsCollectionFreeze
Fix Windows freeze in RsCollectionDialog Download mode
2026-01-07 23:16:34 +01:00
Christoph Johannes Kleine
8ef3f2bb54
github workflow rename qmake to qmake-qt5.exe 2026-01-07 20:07:57 +01:00
jolavillette
e3c7f0e11b use libretroshare not engine as per cjk request 2026-01-06 23:05:08 +01:00
Christoph Johannes Kleine
3ab4c2a76a
remove downcast error
../../../retroshare-gui/src/gui/AboutWidget.cpp:74:22: runtime error: downcast of address 0x503001940ad0 which does not point to an object of type 'QVBoxLayout'
0x503001940ad0: note: object is of type 'QHBoxLayout'
 00 00 00 00 38 52 09 41 94 7f 00 00 00 59 40 01 10 51 00 00 38 53 09 41 94 7f 00 00 00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'QHBoxLayout'
2026-01-06 22:45:43 +01:00
jolavillette
df8d7b0f9b display libretroshare version in About dialogs and enable dirty flag support 2026-01-06 19:41:49 +01:00
defnax
192c74f73b update wiki icons 2026-01-06 14:29:28 +01:00
jolavillette
00f5f60e45 Merge branch 'master' into FixWindowsCollectionFreeze 2026-01-06 08:12:29 +01:00
jolavillette
b184e7b4ca Merge branch 'master' into CloseStatisticsWithEscape 2026-01-06 08:11:55 +01:00
jolavillette
303ac670a4 fix avatar randomly disappearing when filtering the friends list 2026-01-06 08:07:52 +01:00
jolavillette
8e3f8f1bb0 Attenpt to fix dangling friends list in network view 2026-01-06 08:07:52 +01:00
Salort Alvaro
bedfc39d61 Wiki: Core event logic and cleanup 2026-01-05 23:16:00 +00:00
jolavillette
3f107957d4 simplify GXS transport statistics async logic by removing redundant QPointer checks 2026-01-05 22:13:50 +01:00
jolavillette
c435d2295f Fix StatisticsWindow crash by preserving static instance per Cyril s feedback 2026-01-04 18:27:42 +01:00
jolavillette
4ba66b8f33 various fixes according to cyril s comments 2026-01-04 18:07:08 +01:00
jolavillette
13afc743c0 use QPointer to fix crash when closing StatisticsWindow during async loading 2026-01-03 19:17:29 +01:00
csoler
32a3c860ae updated retroshare-gui to lbretrohare last commit 2026-01-03 15:39:10 +01:00
jolavillette
70bf22d6ca possibly fix window reopening issues 2026-01-02 23:39:12 +01:00
jolavillette
0bca0d3b27 override the keyPressEvent function, enabling the statistics window to close when the Escape key is pressed 2025-12-31 07:23:22 +01:00
jolavillette
c3a3a25fb9 Fix Windows freeze in Download mode by making the local file system model initialization conditional 2025-12-30 20:01:18 +01:00
csoler
a17699e166
Merge pull request #3096 from defnax/clearupload-stats
Added clear upload stats Button
2025-12-29 16:37:44 +01:00
csoler
8cf9610a21 removed calls to rsmsgs.h 2025-12-28 18:59:09 +01:00
defnax
4c11ae2967 Added clear upload stats Button 2025-12-27 23:44:02 +01:00
csoler
92ae196d73
Merge pull request #3092 from jolavillette/CollapseUnsubcribedChatroomsAtStartup
Collapse all unsubscribed lobbies when RS starts
2025-12-26 11:09:01 +01:00
csoler
460bed388e fixed compilation 2025-12-24 15:48:58 +01:00
csoler
9f99430254 renamed Msgs into Mail 2025-12-24 14:09:13 +01:00
csoler
f0c844d8ea finished splitting 2025-12-23 15:52:41 +01:00
jolavillette
7c68b2bcc2 Collapse all unsubscribed lobbies when RS starts 2025-12-23 15:03:54 +01:00
thunder2
3e057bf5b5 FeedReader: Fixed using first image for posted without need to embed images 2025-12-23 12:19:12 +01:00
csoler
0ba2c046a8 continue Mail/Chat splitting 2025-12-23 11:13:53 +01:00
csoler
def7f5f611
Merge pull request #3089 from defnax/filestatsguiv3
File Upload Stats GUI
2025-12-22 22:01:52 +01:00
csoler
f21d1121ce started separating rsMsgs into rsMail and rsChats 2025-12-22 21:58:38 +01:00
csoler
aa99fa9441
Merge pull request #3072 from jolavillette/RemoveRecursiveSingleShotCalls
Remove recursive singleShot calls on feed items
2025-12-22 13:12:18 +01:00
jolavillette
6d3f44dfb2 Fix wrong filtering condition 2025-12-22 11:32:31 +01:00
csoler
73db13b488
Merge pull request #3083 from defnax/feeds-layout-fix
Fix new feed icons
2025-12-22 11:24:13 +01:00
csoler
8530bd486a
Merge pull request #3085 from csoler/v0.6-Notify3
V0.6 notify3
2025-12-21 22:15:15 +01:00
defnax
51f84df470 Added file upload stats (gui) 2025-12-21 16:21:31 +01:00
csoler
8d10d45199 added missing initialization of event handler id in NetworkView.cpp 2025-12-20 22:47:16 +01:00
csoler
f9d71e9792 commented out beginInsertRows()/endInsertRows() which may use the wrong number of rows and is not needed because of the beginResetModel()/endResetModel() around 2025-12-20 22:44:56 +01:00
defnax
aa6ea508c9 Fix new feed icons 2025-12-20 17:01:53 +01:00
jolavillette
ed64bfe974 only update relevant items in SecurityIpItem + cosmetic fixes 2025-12-19 12:56:52 +01:00
jolavillette
692ee3face remove singleShot calls and use events handlers instead 2025-12-19 12:56:52 +01:00
jolavillette
dfa9e39612 Remove recursive singleShot calls on feed items, that were creating thousands of timers and causing massive cpu overhead 2025-12-19 12:56:52 +01:00
csoler
ed449abb5e
Merge pull request #3074 from Passw/patch-2
fix comments retroshare-gui/src/
2025-12-19 09:26:04 +01:00
csoler
d3b7ab1907
Merge pull request #3073 from Passw/patch-1
remove useless close_button
2025-12-19 09:23:11 +01:00
csoler
82f6eafa1d
Merge pull request #3071 from defnax/feeds-layout-fix
Fixed Layout issue
2025-12-19 09:13:54 +01:00
csoler
fb56978989
Merge pull request #3077 from jolavillette/FixForumsListAndCounters
Fix forums list and counters not displayed when the forum tab is selected for the first time
2025-12-18 23:15:39 +01:00
jolavillette
c8fa6c1908 Fix forums list and counter not displayed when the forum tab is selected for the first time 2025-12-18 20:02:36 +01:00
defnax
d78476ae73 Added 16:9 default icons when there is no pixmap data 2025-12-17 20:01:18 +01:00
Passw
f44f72e3a5 fix comments retroshare-gui/src/
retroshare-gui/src/control/
retroshare-gui/src/gui/Circles/
retroshare-gui/src/gui/advsearch/
retroshare-gui/src/gui/chat/
retroshare-gui/src/gui/common/
2025-12-16 19:32:17 +08:00
Passw
c716f0d79a remove useless close_button 2025-12-16 13:08:05 +08:00
defnax
b7d9d40743 Fixed Layout issue
* Fixed to have same Thumbnail dimensions
2025-12-14 21:39:47 +01:00
csoler
e85e0ad782
Merge pull request #3070 from csoler/v0.6-Notify3
Removed problematic (and irrelevant) timer in PeerItem
2025-12-14 17:17:08 +01:00
csoler
2487d79920 removed instance in FriendsDialog since it is not used 2025-12-13 22:19:20 +01:00
csoler
d6860b2313 moved initialization of event handler id before calling registerEventHandler 2025-12-13 21:57:58 +01:00
csoler
4c5db53fe6 moved unregister friends dialog event handlers before setting instance to null 2025-12-13 21:55:21 +01:00
csoler
befa1e1f7e removed problematic (and irrelevant) timer in PeerItem 2025-12-13 21:01:40 +01:00
csoler
f9cda759ec
Merge pull request #3069 from jolavillette/FixUnregisterEventHandlerInChatUserNotifyDestructor
Fix unregister event handler in ChatUserNotify destructor
2025-12-11 15:27:55 +01:00
jolavillette
ee50e0951b Fix unregister event handler in ChatUserNotify destructor 2025-12-11 15:16:21 +01:00
csoler
6a5e116725
Merge pull request #3066 from csoler/v0.6-Notify3
V0.6 notify3
2025-12-07 20:34:38 +01:00
csoler
7fff0c1894
Merge pull request #41 from defnax/chatstatus
Added to show refused in distant chat
2025-12-07 18:38:17 +01:00
defnax
5c3efdc866 Added to show refused in distant chat 2025-12-07 11:57:05 +01:00
csoler
a6faeb4ec7
Merge pull request #40 from defnax/chatstatus
Fixed Avatar update
2025-12-07 10:40:32 +01:00
defnax
ea1d13c1d9 Fixed Avatar update 2025-12-07 10:02:17 +01:00
csoler
a6ac1ded7a
Merge pull request #39 from defnax/chatstatus
Added Chatstatus
2025-12-06 23:19:04 +01:00
defnax
1ab5ad0a8e Added chat status display 2025-12-06 22:13:09 +01:00
csoler
7873082d28 switched PopupDistantChatDialog to rsEvents 2025-12-06 17:48:41 +01:00
defnax
453173294b
Merge branch 'RetroShare:master' into login-dialog 2025-12-06 13:42:51 +01:00
csoler
6f33dcc8e7
Merge pull request #3055 from thunder2/fix-notify
Fixed crash (NULL pointer access) in RsGUIEventManager::async_handleI…
2025-12-06 10:09:28 +01:00
csoler
e80ad9577d
Merge pull request #3056 from thunder2/fix-status
Added changes of RsChatFlags and RsStatusValue to VOIP plugin
2025-12-06 10:08:46 +01:00
csoler
9eb3d1b442
Merge pull request #3060 from Passw/patch-3
Fix comments GxsChannelPostsWidgetWithModel.cpp
2025-12-06 10:07:56 +01:00
csoler
a0934e2990
Merge pull request #3061 from Passw/patch-4
Fix comments and header guard macro  GxsChannelPostsWidgetWithModel.h
2025-12-06 10:00:09 +01:00
csoler
d92f5408a7
Merge pull request #3062 from Passw/patch-5
Fix comments and header guard macro PostedListWidgetWithModel.h
2025-12-06 09:59:36 +01:00
csoler
a4d14005aa
Merge pull request #3063 from Passw/patch-6
Fix comments PostedListWidgetWithModel.cpp
2025-12-06 09:58:54 +01:00
thunder2
573b46b19d Fixed crash (NULL pointer access) in RsGUIEventManager::async_handleIncomingEvent with activated plugins 2025-12-06 00:50:25 +01:00
thunder2
721cfb9e18 Added changes of RsChatFlags and RsStatusValue to VOIP plugin 2025-12-06 00:48:26 +01:00
csoler
296b612965 fixed merge 2025-12-05 17:09:39 +01:00
csoler
01cdbe68d9
Merge pull request #3065 from JohannesKleine/fix-merge-error
remove duplicate code introduced by merging
2025-12-05 17:08:27 +01:00
csoler
1e3be2b159 fixed duplicate code (posibly due to problem while merging) 2025-12-05 17:03:29 +01:00
Christoph Johannes Kleine
499860ee09
remove duplicate code introduced by merging 2025-12-05 15:43:41 +01:00
csoler
e029ff89f9
Merge pull request #3064 from defnax/fix-board-noty
Fix Boards update notify
2025-12-04 19:01:07 +01:00
defnax
64efeae56a Fix Boards update notify 2025-12-04 18:39:59 +01:00
Passw
13c4699236
Fix comments PostedListWidgetWithModel.cpp 2025-12-04 11:22:36 +08:00
Passw
85527be02e
Fix comment and macro PostedListWidgetWithModel.h
_GXS_CHANNELPOSTSWIDGET_H

https://github.com/RetroShare/RetroShare/blob/master/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.h

_POSTED_LISTWIDGETWITHMODEL_H
2025-12-04 11:17:16 +08:00
Passw
ac79ede45b
Fix comments and header macro GxsChannelPostsWidgetWithModel.h 2025-12-04 11:09:49 +08:00
Passw
dc0b0cd4af
Fix comments GxsChannelPostsWidgetWithModel.cpp 2025-12-04 10:59:20 +08:00
csoler
735a1b50c9
Merge pull request #3059 from Passw/patch-2
Fix missing space in SecurityIpItem.cpp
2025-12-03 17:14:24 +01:00
Passw
4cddaf78cb
Fix missing space in SecurityIpItem.cpp 2025-12-03 17:44:08 +08:00
csoler
786b90de5e
Merge pull request #3058 from csoler/v0.6-Notify3
fixed plugin loading
2025-12-02 18:18:38 +01:00
csoler
350a3da359 added comment about plugin confirmation GUI code 2025-12-01 22:33:19 +01:00
csoler
943e597291 fixed plugin loading 2025-12-01 22:24:06 +01:00
csoler
3baf444452
Merge pull request #3054 from csoler/v0.6-Feeds
fixed compilation bug
2025-11-30 19:07:45 +01:00
csoler
3842427fb6 fixed compilation bug 2025-11-30 19:04:33 +01:00
csoler
943c22412f
Merge pull request #3047 from csoler/v0.6-Feeds
Bug fixing in feeds new system.
2025-11-30 18:13:49 +01:00
csoler
553d2e8f50
Merge pull request #2951 from csoler/v0.6-Notify2
Getting rid of old notify system
2025-11-30 18:13:32 +01:00
csoler
e3d05d5474 moved GxsFeedItem and GxsGroupFeedItem to feeds/ as a more appropriate place 2025-11-30 17:07:04 +01:00
csoler
96c150caf2 fixd drand48() call 2025-11-25 21:38:50 +01:00
csoler
28a5db7204 fixed compilation for feed reader plugin 2025-11-24 21:09:45 +01:00
csoler
2eb48e0305 added deferred update to feed items 2025-11-22 17:51:42 +01:00
defnax
7c9684e331
Merge branch 'RetroShare:master' into w10darkmode 2025-11-19 19:35:20 +01:00
csoler
d86c5dabd3 added picture size variables in feed items 2025-11-19 18:22:45 +01:00
csoler
a94c85751e improved layout of board post item 2025-11-18 22:01:12 +01:00
csoler
68ee14e8c0 added expand button for board post items 2025-11-18 21:52:20 +01:00
csoler
c9c4b4c9d8 added PhotoView to BoardsPostItem 2025-11-17 22:51:46 +01:00
csoler
67e07b14fd merged with upstream/master 2025-11-17 21:52:47 +01:00
csoler
784933dbd4 added new boards post item in feeds 2025-11-17 21:23:42 +01:00
csoler
07f415b4c4 fixed calling virtual functions in constructor 2025-11-15 22:33:22 +01:00
csoler
fa91380765
Merge pull request #3044 from defnax/feeds-test
added more feed tests
2025-11-15 21:02:22 +01:00
csoler
567d350e76
Merge pull request #3049 from defnax/fix-people
Fix wording
2025-11-15 21:01:20 +01:00
defnax
0629113d16 Fix wording 2025-11-15 16:58:34 +01:00
defnax
3385abfdc6 Added comment for test feeds 2025-11-15 15:21:04 +01:00
csoler
05fe8adbd1 fixed bug in setting msg as read in forum msg item 2025-11-12 21:17:31 +01:00
csoler
ba4b8e7ff5
Merge pull request #3046 from Passw/patch-1
fix typo WindowsMSys2_InstallGuide.md
2025-11-12 09:37:06 +01:00
Passw
24540db6aa
fix typo WindowsMSys2_InstallGuide.md
complet
complete
2025-11-12 09:12:05 +08:00
csoler
d3069e9b44 fixed compilation 2025-11-11 20:12:53 +01:00
csoler
b8bb797171 fixed compilation 2025-11-11 19:01:04 +01:00
csoler
a91a0893cf renamed NotifyQt into RsGUIEventManager 2025-11-11 18:56:24 +01:00
defnax
72ae5b74ac added more feed tests 2025-11-10 18:43:22 +01:00
csoler
390084971a merged with upstream 2025-11-10 14:14:21 +01:00
csoler
383b1e7d2b
Merge pull request #3042 from csoler/v0.6-Feeds
improved code consistency in feed item loading/killing
2025-11-10 14:12:21 +01:00
csoler
20ff1380ae
Merge pull request #3040 from dbear496/fix-permmatrix-global
fix the permission matrix global switch
2025-11-09 19:16:23 +01:00
csoler
ae5f91700e updated libretroshare submodule to latest commit 2025-11-07 23:39:04 +01:00
csoler
7babc118ff
Merge pull request #3043 from csoler/v0.-ImprovedGUI3
fixed arrow problem in sync time menu
2025-11-07 15:16:32 +01:00
csoler
0502dba2e6 fixed missing link in ChannelsCommentsItem 2025-11-07 14:26:19 +01:00
csoler
82215711c2 fixed arrow problem in sync time menu 2025-11-07 10:15:10 +01:00
csoler
89cb02528c changed enum for data loading in feed items to some more specific name 2025-11-05 20:30:26 +01:00
csoler
c0c9684adf fixed forum msg item loading 2025-11-04 21:27:21 +01:00
csoler
6a0dda8cf7 left test code template in place 2025-11-03 16:38:57 +01:00
csoler
8a23d37870 removed some dead code 2025-11-03 16:32:49 +01:00
csoler
6b88c9a49e fixed PostedGroupItem 2025-11-02 18:36:23 +01:00
csoler
5e4249663e fixed GxsForumMsgItem 2025-11-02 18:25:01 +01:00
csoler
f8061d452c fixed GxsForumGroupItem 2025-11-01 18:05:26 +01:00
csoler
785a83f625 fixed GxsChannelGroupItem 2025-11-01 17:24:58 +01:00
csoler
c8dbf34a14 fixed ChannelsCommentsItem 2025-10-31 19:49:39 +01:00
csoler
c8a93d75f2 fixed deferred loading of GxsChannelPostItem 2025-10-30 19:55:44 +01:00
csoler
b9cd766707 removed unused code 2025-10-30 19:53:55 +01:00
csoler
c3fb087f92 improved code consistency in feed item loading/killing 2025-10-27 14:48:30 +01:00
csoler
ff04cd326a removed warning 2025-10-27 13:48:18 +01:00
csoler
a08d0a62df fixed missing initialization of Event handler ID in ChatLobbyDialog 2025-10-26 20:53:36 +01:00
csoler
516ccdf4bd
Merge pull request #3028 from JohannesKleine/fix-storage-sync-period-ui
[WIP] go back to old function setSyncPostsDelay
2025-10-23 15:50:27 +02:00
David Bears
f73b25c81a
fix the permission matrix global switch 2025-10-22 15:45:04 -04:00
csoler
59df95f162
Merge pull request #3038 from dbear496/fix-i2p-local-port
revert addition of `saveAddresses()` call from #841
2025-10-21 11:31:57 +02:00
csoler
6097ca8b9b
Merge pull request #3039 from dbear496/fix-permmatrix-freeze
fix permissions matrix GUI freeze
2025-10-21 11:30:26 +02:00
csoler
d14f2c9bbe
Merge pull request #3026 from defnax/macos-14-workflow-v2
Added macos workflow
2025-10-21 10:55:49 +02:00
csoler
03dc606ca3
Merge pull request #3037 from dbear496/fix-custom-font-size-button
fix "enable custom font size" checkbox
2025-10-21 10:54:45 +02:00
David Bears
e1906a9819
fix permissions matrix GUI freeze 2025-10-18 15:03:52 -04:00
David Bears
2eed660327
revert addition of saveAddresses() call from #841
fixes a bug where the i2p local port is occasionally reset to 10
2025-10-17 15:50:26 -04:00
David Bears
0103acb807
fix "enable custom font size" checkbox 2025-10-17 10:38:46 -04:00
csoler
0dd1d1562a
Merge pull request #3036 from dbear496/fix-forum-highlighting
fix regular expression syntax for forum quote highlighting
2025-10-17 09:28:57 +02:00
David Bears
9dd24a6bb1
fix regular expression syntax for forum quote highlighting
fixes #3033
2025-10-16 14:48:52 -04:00
csoler
d7ff04c552 removed old calls to NotifyQt, and fixed missing initialization causing crash 2025-10-15 18:49:50 +02:00
csoler
daaa7985a3 fixed problematic re-numbering of status flags (non-backward compatible) 2025-10-13 22:49:15 +02:00
csoler
ed08009414 Merge remote-tracking branch 'upstream/master' into v0.6-Notify2 2025-10-10 16:57:40 +02:00
csoler
7621142c34 cleaned up dead code in notifyQt 2025-10-10 16:45:17 +02:00
csoler
17cbf5da30 removed rsnotify 2025-10-10 16:39:11 +02:00
csoler
2e49aa9183
Merge pull request #3030 from defnax/guide-update-v4
Fix & improve guide
2025-10-08 20:00:50 +02:00
csoler
ff68c770d8 removed all left rsnotify elements and moved uint32 flags to proper enum classes 2025-10-07 21:13:24 +02:00
csoler
116c7f1aec fixed passwd handling in retroshare-service 2025-09-30 21:03:02 +02:00
David Bears
dae321ef8e
fix indentation 2025-09-28 12:25:03 -04:00
David Bears
677b40ddbf
Make forum moderator selectable by the user 2025-09-28 12:24:56 -04:00
csoler
3f21b4bf65 fixed bug causing passwd request to fail 2025-09-28 13:10:09 +02:00
csoler
86b9d6da08 fixed bug using the wrong handler ID 2025-09-27 19:04:15 +02:00
csoler
670475b67d moved pgp passphrase handling to RsLoginHandler and removed irrelevant notify handles 2025-09-27 18:59:28 +02:00
csoler
5592c667ae fixed bug causing crash when rsPlugins is not initialized yet 2025-09-25 18:05:35 +02:00
defnax
ad481bbbc0 Fix & improve guide 2025-09-17 21:43:51 +02:00
csoler
e2b2c1ae44 fixed toasters in notifyQt to use rsEvents 2025-09-16 16:29:47 +02:00
csoler
8ebd9ba21f
Merge pull request #2999 from defnax/cmake-fix-qt
cmake fix qt6
2025-09-14 20:51:37 +02:00
csoler
43e0289604 moved log notify to a rsEvent 2025-09-13 11:20:00 +02:00
Christoph Johannes Kleine
228483de52
go back to old function 2025-09-11 21:53:48 +02:00
csoler
ee3afd9f40 fixed ifdef problem 2025-09-11 21:23:12 +02:00
csoler
d64e4b6e78 fixed bug causing crash in chat history browser 2025-09-11 20:49:35 +02:00
defnax
138b40a375 fix 2025-09-09 21:03:23 +02:00
csoler
e5dc58cfd0
Merge pull request #3027 from defnax/rnp-fix
Added rnp define
2025-09-09 20:01:23 +02:00
csoler
bb97e48db2 fixed bug causing crashes after closing a chat window 2025-09-09 19:49:24 +02:00
defnax
82931d3ce2 fix mac configs 2025-09-07 12:26:59 +02:00
defnax
772069a4a6 Added rnp define 2025-09-06 22:17:03 +02:00
defnax
bc34ef1ac8 Added macos workflow 2025-09-06 21:47:15 +02:00
csoler
483a68000a fixed compilation with rs_efs 2025-09-02 22:16:42 +02:00
csoler
95ae8f9454
Merge pull request #3014 from JohannesKleine/macos-compatibility
Macos compatibility
2025-08-31 09:17:23 +02:00
csoler
97e28d76b3
Merge pull request #3009 from JohannesKleine/ui-storage-period-v2
UI storage period v2
2025-08-30 22:57:45 +02:00
csoler
a991521cd0 updated libretroshare submodule 2025-08-27 17:53:58 +02:00
csoler
96fddc9066 fixed typing message missing 2025-08-27 17:37:45 +02:00
csoler
42f0bd41ae fixed missing update of own status 2025-08-26 20:28:59 +02:00
csoler
af36a0b6d9 fixed hashing status 2025-08-23 19:08:26 +02:00
csoler
bfcfa2293b fixed compilation 2025-08-17 18:06:08 +02:00
csoler
798775e12b moved notifyChatStatus to rsEvents 2025-08-17 17:34:46 +02:00
csoler
e6bd8335dc fixed faulty merge 2025-08-13 19:32:24 +02:00
csoler
d2193812a9 merged with upstream/master 2025-08-13 16:17:07 +02:00
csoler
c41fa0c667
Merge pull request #2949 from JohannesKleine/desktop-file2
.desktop file remove absolute path; fixes #2925
2025-08-12 22:46:50 +02:00
Christoph Johannes Kleine
dc84b7c1d6 .desktop file remove absolute path for icons; fixes #2925 2025-08-12 22:39:27 +02:00
csoler
2506bc5672 using rsEvents for Chat rooms 2025-08-12 21:00:11 +02:00
Christoph Johannes Kleine
1cb21fd2ae ADD: new values to checkDeleay() 2025-08-12 18:15:05 +02:00
Christoph Johannes Kleine
9f34b871af CHANGE: remove spaces in tr string; use correct function 2025-08-12 18:15:05 +02:00
Christoph Johannes Kleine
361fc39f7c ADD: storage and sync time 3 and 5 years 2025-08-12 18:15:05 +02:00
Christoph Johannes Kleine
71a61666b7 remove unsupported macos < 10.13 2025-08-12 18:12:16 +02:00
Christoph Johannes Kleine
14b758cb02 botan-2 instead of botan-3 2025-08-12 18:12:16 +02:00
Christoph Johannes Kleine
7d0aa67b97 fix QMAKE_MAC_SDK 2025-08-12 18:12:16 +02:00
Christoph Johannes Kleine
be39fd075c set QMAKE_MACOSX_DEPLOYMENT_TARGET=10.13 2025-08-12 18:12:16 +02:00
Christoph Johannes Kleine
4fd67b276d retroshare.pri add macos targets 2025-08-12 18:12:16 +02:00
redDwarf03
28653ad92c Updates for macos sequoia to run retroshare-service
origin redDwarf03 <sylvain@archethic.net>
2025-08-12 18:12:16 +02:00
csoler
2c1a26ea3e
Merge pull request #3021 from JohannesKleine/github-ubuntu-workflow
ADD: ubuntu workflow files
2025-08-12 16:58:50 +02:00
defnax
b489f7cbb3
Merge branch 'RetroShare:master' into cmake-fix-qt 2025-08-10 22:19:17 +02:00
thunder2
dae748ca2e FIX MSYS2: Disabled VOIP for msys2 and Qt 6 2025-08-10 19:58:56 +02:00
Christoph Johannes Kleine
e0087ea8ee
ADD: apt update 2025-08-10 17:22:17 +02:00
Christoph Johannes Kleine
fd48b6b1ba
ADD: ubuntu workflow files 2025-08-10 17:08:49 +02:00
thunder2
5f5639391a Windows native build: Added architecture in console title during build and pack 2025-08-10 13:21:09 +02:00
csoler
f806cb2c91
Merge pull request #3018 from defnax/qt6-workflow-readme
Added qt6 badge to readme
2025-08-10 11:20:43 +02:00
defnax
aca1c31490 Added qt6 badge to readme 2025-08-10 10:35:39 +02:00
csoler
4e2e806b03
Merge pull request #2965 from defnax/fix-combobox
Fixed the QComboBox issues for light and dark style
2025-08-10 09:47:25 +02:00
csoler
4617015412
Merge pull request #3003 from defnax/qt6-workflow-mingw64
Added Qt6 workflow
2025-08-10 09:46:04 +02:00
csoler
632ba09896
Merge pull request #3017 from defnax/master
Added Linux Install Guide to Readme
2025-08-10 09:45:24 +02:00
defnax
b3999837ed
Merge branch 'RetroShare:master' into master 2025-08-10 02:01:09 +02:00
defnax
e7ece32ab0 Fixed link 2025-08-10 01:44:40 +02:00
csoler
dd7de312a1
Merge pull request #3002 from thunder2/qt6
Qt6
2025-08-09 23:27:39 +02:00
defnax
fcefd49725 Added Linux Install Guide to Readme 2025-08-09 18:47:48 +02:00
csoler
d455b3404e
Merge pull request #3016 from defnax/fedora-guide-v2
Added Fedora Install guide
2025-08-09 18:34:53 +02:00
csoler
28b60406e5
Merge pull request #3012 from defnax/linux-guide-v3
Added Linux Guide
2025-08-09 18:34:22 +02:00
defnax
f6f0f243ad Added fedora guide 2025-08-09 13:21:37 +02:00
defnax
1dc1f4fd56 fixed requested changes 2025-08-09 12:06:14 +02:00
csoler
f5eb458ed3
Merge pull request #3013 from defnax/staus-badge
Added status badge from workflow
2025-08-09 11:35:21 +02:00
csoler
69401188ea
Merge pull request #2979 from defnax/fix-servicepermissionsmatrix-2
Fixed hardcoded background color
2025-08-09 11:34:11 +02:00
defnax
7e8abe1aca corrected sqlcipher repo 2025-08-05 21:40:42 +02:00
defnax
2369f5a916 Update Linux_InstallGuide.md 2025-08-05 20:34:23 +02:00
defnax
e29b907761 update instructions 2025-08-04 18:18:21 +02:00
defnax
47c49ca534
Disable webui &jsonapi 2025-08-04 10:38:29 +02:00
defnax
b75a14fac5 uodate opensuse packages 2025-08-03 19:33:35 +02:00
defnax
1b239c2f2a update instructions 2025-08-03 16:08:34 +02:00
defnax
dc1901b236 fix to use em 2025-08-03 15:53:47 +02:00
defnax
8c6d49158e Added status badge from workflow 2025-08-03 14:29:34 +02:00
defnax
a2cd31443c Added Linux Guide 2025-08-03 14:23:13 +02:00
Thunder
383fd86e68
Merge pull request #3010 from defnax/workflow-fix
Removed jsonapi & webui config from workflow
2025-08-03 14:04:02 +02:00
thunder2
5554e35e21 Updated msys2 installation for Windows build 2025-08-03 13:46:39 +02:00
thunder2
a5076d34d8 Removed appveyor configuration 2025-08-03 13:45:45 +02:00
defnax
e26ed4c3c3 Removed jsonapi & webui config from workflow 2025-08-03 00:29:06 +02:00
csoler
14fab2f6c5 updated submodule libretroshare 2025-08-02 22:46:42 +02:00
csoler
d07e61d1ad
Merge pull request #3005 from defnax/workflow-qt5-v3
Added Qt5 workflow
2025-08-02 22:01:17 +02:00
csoler
ee89b41183
Merge pull request #2997 from defnax/new-readme
Created new readme
2025-08-02 19:10:05 +02:00
csoler
6266627141
Merge pull request #2988 from defnax/Windows-compile-qt
Added Install Guide for qtcreator native build
2025-08-02 19:08:27 +02:00
csoler
27243704c1
Merge pull request #2978 from defnax/fix-filetransferinfowidget
Fixed hardcoded pen color
2025-08-02 18:58:24 +02:00
csoler
584df9010d
Merge pull request #2968 from defnax/networkgrapgh-darkmode
Fix for Standard Dark
2025-08-02 18:54:02 +02:00
defnax
6899b1548c update changes 2025-07-30 22:07:26 +02:00
defnax
9ec24f826f Added Qt5 workflow 2025-07-30 21:55:38 +02:00
thunder2
a6cf325db5 Fixed converting char* to QString for Qt 6.4 2025-07-29 18:32:53 +02:00
thunder2
52fdbd531b Added build with Qt 6 for Windows msys2 2025-07-29 18:32:53 +02:00
thunder2
9a84fef2dd Added pack and installer with Qt 6 Windows native build 2025-07-29 18:32:52 +02:00
Christoph Johannes Kleine
26088a7cbb Replaced depracted QX11Info by QGuiApplication 2025-07-29 18:32:51 +02:00
thunder2
95127592d7 Replaced deprecated QSound and QAudioDeviceInfo by QAudioDevice and QMediaDevices for Qt 6 2025-07-29 18:32:51 +02:00
thunder2
15684bf8d3 Added Qt 5 Core Compat module for QRegExp for Qt 6 2025-07-29 18:32:50 +02:00
thunder2
96c02d94c3 Removed deprecated QCoreApplication::flush for Qt 6 2025-07-29 18:32:50 +02:00
thunder2
c8c833b3d6 Removed deprecated QAbstractEventDispatcher::hasPendingEvents for Q 6 2025-07-29 18:32:49 +02:00
thunder2
1b1cb6e176 Replaced deprecated QSysInfo::MacintoshVersion and QSysInfo::windowsVersion by QSysInfo::prettyProductName 2025-07-29 18:32:49 +02:00
thunder2
c64cca9954 Removed usage of deprecated QSysInfo::WindowsVersion 2025-07-29 18:32:48 +02:00
thunder2
efe9ac773d Replaced deprecated QObject::trUtf8 by QObject::tr 2025-07-29 18:32:48 +02:00
thunder2
21174aa5d7 Replaced depecated QPainter::initFrom by QPainter::begin 2025-07-29 18:32:47 +02:00
thunder2
9ebc4b00ed Replaced deprecated QStyleOption::init by QStyleOption::initFrom 2025-07-29 18:32:47 +02:00
thunder2
3874390de7 Replaced deprecated QStyleOptionProgressBarV2 by QStyleOptionProgressBar and QStyleOptionViewItemV4 by QStyleOptionViewItem 2025-07-29 18:32:47 +02:00
thunder2
15437c0d2d Replaced deprecated QMatrix by QTransform 2025-07-29 18:32:46 +02:00
thunder2
71aaa25e69 Replaced deprecated QGraphicsView::matrix by matrix::transform 2025-07-29 18:32:46 +02:00
thunder2
8d497dce0a Replaced deprecated QVariant::operator< by QVariant::compare for Qt 6 2025-07-29 18:32:45 +02:00
thunder2
79a8b3143f Replaced deprecated QPalette::Background by QPalette::Window 2025-07-29 18:32:45 +02:00
thunder2
ec497f0015 Replaced deprecated QModelIndex::child by QAbstractItemModel::index 2025-07-29 18:32:44 +02:00
thunder2
c00a4dccb5 Replaced deprecated QSortFilterProxyModel::filterChanged by QSortFilterProxyModel::invalidateFilter 2025-07-29 18:32:44 +02:00
thunder2
d4dcaaa41a Changed QDomDocument::setContent for Qt 6.5 2025-07-29 18:32:43 +02:00
thunder2
c4c2c5a0d1 Replaced deprecated Qt::BackgroundColorRole by Qt::BackgroundRole and Qt::TextColorRole by Qt::ForegroundRole 2025-07-29 18:32:43 +02:00
thunder2
ff822498a6 Replaced deprecated QAbstractPrintDialog::addEnabledOption by QPrintDialog::setOption 2025-07-29 18:32:42 +02:00
thunder2
07e7cd023c Replaced deprecated QPrinter::pageRect by QPrinter::pageLayout().paintRectPixels(resolution()) and QPrinter::paperRect by QPrinter::pageLayout().fullRectPixels(resolution()) 2025-07-29 18:32:42 +02:00
thunder2
f4960a8903 Replaced deprecated qVariantFromValue by QVariant::fromValue 2025-07-29 18:32:42 +02:00
thunder2
395a0b05d0 Replaced deprecated QTableWidgetItem::setBackgroundColor by QTableWidgetItem::setBackground 2025-07-29 18:32:41 +02:00
thunder2
1735797d82 Replaced deprecated QTreeWidget::isItemExpanded by QTreeWidgetItem::isExpanded and QTreeWidget::setItemExpanded by QTreeWidgetItem::setExpanded 2025-07-29 18:32:40 +02:00
thunder2
f97b0e9a64 Replaced deprecated qSort by std::sort 2025-07-29 18:32:40 +02:00
thunder2
a530bd9adb Replaced deprecated QList::toList by range constructors 2025-07-29 18:32:39 +02:00
thunder2
bdae3b35b4 Replaced deprecated QColorDialog::getRgba by QColorDialog::getColor 2025-07-29 18:32:39 +02:00
thunder2
990f4dbf09 Replaced deprecated QLayout::margin by QLayout::contentsMargins 2025-07-29 18:32:38 +02:00
thunder2
5efed259e7 Replaced depracated QWheelEvent::delta by QWheelEvent::angleDelta for Qt 6 2025-07-29 18:32:38 +02:00
thunder2
9052b813b9 Replaced deprecated qrand by QRandomGenerator for Qt 6 2025-07-29 18:32:37 +02:00
thunder2
88230fd9bd Replaced deprecated QPalette::foreground by QPalette::windowText and QPalette::background by QPalette::window 2025-07-29 18:32:36 +02:00
thunder2
484d220b04 Replace depracated QTextEdit::setTabStopWidth by QTextEdit::setTabStopDistance 2025-07-29 18:32:36 +02:00
thunder2
6652d7f4f8 Replaced deprecated QTextStream::setCodec by QTextStream::setEncoding 2025-07-29 18:32:36 +02:00
thunder2
47916ee8c0 Removed check for QSysInfo::WindowsVersion in misc::getOpenFileName/getOpenFileNames 2025-07-29 18:32:35 +02:00
thunder2
9816be4b53 Replaced QColor::light by QColor::lighter and QColor::dark by QColor::darker 2025-07-29 18:32:35 +02:00
thunder2
c9e8ac4c3c Added Qt dependent macro for Q_FALLTHROUGH 2025-07-29 18:32:34 +02:00
thunder2
32350dfe83 Added Qt dependent macro for QLabel::pixmap 2025-07-29 18:32:34 +02:00
thunder2
fce618f2aa Added Qt dependent macro for QFontMetrics::horizontalAdvance/width 2025-07-29 18:32:33 +02:00
thunder2
fad7774767 Added Qt dependent macro for QSortFilterProxyModel::setFilterRegularExpression/setFilterRegExp 2025-07-29 18:32:33 +02:00
thunder2
13b294838b Replaced deprecated QRegExp by QRegularExpression 2025-07-29 18:32:32 +02:00
thunder2
f0286740f4 Replaced deprecated QDateTime::toString by QLocale::toString 2025-07-29 18:32:32 +02:00
thunder2
291b2f7cad Fixed usage of QLayout::addWidget 2025-07-29 18:32:31 +02:00
thunder2
6251f36e3e Replaced deprecated QDateTime::toTime_t by QDateTime::toSecsSinceEpoch 2025-07-29 18:32:31 +02:00
thunder2
0d37db307c Replaced some more QDateTime::setTime_t by DateTime::DateTimeFromTime_t 2025-07-29 18:32:30 +02:00
thunder2
a6cf10fd1a Replaced deprecated endl by Qt::endl 2025-07-29 18:32:30 +02:00
thunder2
07ee6581e1 MSYS2: Use date of last git commit instead of current date for packed filename 2025-07-29 18:31:22 +02:00
thunder2
e4672d9a57 Windows native build: Enabled parallel build of external libraries 2025-07-28 18:32:13 +02:00
thunder2
93b232d7ae Windows native build: Removed external library libmicrohttpd 2025-07-28 18:31:49 +02:00
defnax
9e121480c0 Added Qt6 workflow 2025-07-25 20:23:15 +02:00
defnax
37527ed89a
Merge branch 'RetroShare:master' into cmake-fix-qt 2025-07-24 19:42:44 +02:00
Thunder
dd8845f77e
Merge pull request #2989 from JohannesKleine/retroshare-gui.pro
Remove qt4, make x11extras for qt5 only in retroshare-gui.pro
2025-07-23 16:43:37 +02:00
defnax
5868198181 Update CMakeLists.txt 2025-07-22 21:29:32 +02:00
defnax
a9109060d6 Fix qt6 with cmake 2025-07-22 20:55:58 +02:00
Thunder
16a30dcbe3
Merge pull request #2995 from thunder2/fix-language
Fixed set of default language in LanguageSupport::localize. Use value…
2025-07-22 20:27:10 +02:00
Thunder
cbc1a89505
Merge pull request #2991 from thunder2/qt6-sprintf
Replaced deprecated QString::sprintf by QString::asprintf
2025-07-22 20:26:48 +02:00
Thunder
256b188861
Merge pull request #2990 from thunder2/qt6-setMargins
Replaced deprecated QLayout::setMargins by QLayout::setContentsMargins
2025-07-22 20:26:16 +02:00
defnax
48ffc59522 Created new readme 2025-07-21 21:50:48 +02:00
thunder2
eb4f482a4e Fixed set of default language in LanguageSupport::localize. Use value of language map instead of key. 2025-07-21 18:20:12 +02:00
Christoph Johannes Kleine
e3202de4ef CHANGE: remove qt4, make x11extras for qt5 only 2025-07-21 11:24:53 +02:00
thunder2
5bdcf59b5c Replaced deprecated QString::sprintf by QString::asprintf 2025-07-20 18:28:04 +02:00
thunder2
90041fc627 Replaced deprecated QLayout::setMargins by QLayout::setContentsMargins 2025-07-20 14:19:47 +02:00
thunder2
33fc4308c4 Use Qt::MouseButton::NoButton instead of 0 in edge.cpp 2025-07-20 14:19:46 +02:00
thunder2
04b741e70d Fixed linking on Windows with enabled wikipoos 2025-07-20 14:19:45 +02:00
thunder2
42b3b95fd8 Use QDateTime::fromSecsSinceEpoch in Qt 6 instead of QDateTime::fromTime_t 2025-07-20 14:15:27 +02:00
thunder2
a00c1375e5 Renamed QtVersion.h to RsQtVersion.h because of the same filename in Qt 6 2025-07-20 14:14:57 +02:00
thunder2
b93a31a33b Removed deprecated QDesktopWidget for Qt 6 2025-07-20 14:14:38 +02:00
thunder2
3a8f7d5a2d Use "Qt::WindowFlags flags = Qt::WindowFlags()" instead of "Qt::WindowFlags flags = 0" 2025-07-20 14:14:13 +02:00
defnax
a2eb40740f Added Install Guide for qtcreator native build 2025-07-20 13:11:23 +02:00
thunder2
e2e1a431ff Added Qt dependent macro for QString::SkipEmptyParts/Qt::SkipEmptyParts 2025-07-19 23:28:30 +02:00
thunder2
f38b72e7a3 Changed parameter of method enterEvent on ClickableLabel and ZoomableLabel for Qt 6 to QEnterEvent 2025-07-19 21:11:28 +02:00
thunder2
b2bec12a43 Fixed usage of deprecated method "const QPixmap *QLabel::pixmap() const;" 2025-07-19 18:57:29 +02:00
thunder2
fcd7a213e6 Use UIStates() instead of 0 in GxsMessageFrameWidget.cpp 2025-07-19 16:26:07 +02:00
thunder2
29443c4b78 Use QTextDocument::FindFlags() to initialize flags instead of 0 in helpbrowser.cpp 2025-07-19 16:03:02 +02:00
thunder2
8265c5ebec Use Qt::KeyboardModifier::NoModifier instead of 0 in RsButtonOnText.cpp 2025-07-19 14:56:55 +02:00
thunder2
9f607765bc Fixed crash in VOIP by initializing member _image_capture in constructor of QVideoInputDevice 2025-07-19 14:54:51 +02:00
thunder2
eaf2861cd0 Fixed usage of QFileInfo in RsCollectionDialog.cpp 2025-07-19 14:24:52 +02:00
thunder2
23289c4991 Use Qt::MouseButton::NoButton instead of 0 in arrow.cpp 2025-07-19 14:20:31 +02:00
thunder2
23f925f81e Fixed constructor of RsAction 2025-07-19 13:44:54 +02:00
thunder2
c4d1de06d0 Fixed converting number to QString 2025-07-19 13:42:50 +02:00
thunder2
e5c42e63b7 Added missing includes 2025-07-19 13:36:49 +02:00
thunder2
f53a30a0e4 Updated external libraries for Windows native build
- curl-8.9.1
- ffmpeg-4.4.6
- libxml2-2.14.5
- libxslt-1.1.43
- speex-1.2.1
- speexdsp-1.2.1
- xapian-core-1.4.29
2025-07-18 14:25:17 +02:00
Christoph Johannes Kleine
f3150e9d42 HomePage.cpp enable saveCert 2025-07-16 17:59:09 +02:00
thunder2
c850a30c1a Build libretroshare on Windows as shared library 2025-07-16 17:25:57 +02:00
thunder2
6c1eb35a47 MSYS2: Added toolchain to filename of packed files and installer 2025-07-16 17:23:01 +02:00
thunder2
1aec263bb9 MSYS2: Removed parameter "clang" from build. Use "clang32" or "clang64" instead. 2025-07-16 17:23:01 +02:00
defnax
995e3fee85 Fixed hardcoded background color 2025-07-14 21:29:53 +02:00
defnax
e78367f12f Fixed hardcoded pen color 2025-07-14 19:39:24 +02:00
thunder2
ddb4300a60 FeedReader: Updated translation 2025-07-14 00:04:31 +02:00
thunder2
c8cea52b39 FeedReader: Reworked proxy setting 2025-07-14 00:04:31 +02:00
thunder2
1094e3e651 FeedReader: Moved proxy setting to own widget 2025-07-14 00:04:31 +02:00
defnax
8c26fa879d Added asio depency 2025-07-12 23:44:00 +02:00
defnax
42bd651fb3 Update MSYS2 packages 2025-07-12 23:44:00 +02:00
defnax
d7e58a3ac0
Merge branch 'RetroShare:master' into w10darkmode 2025-07-12 14:40:38 +02:00
thunder2
500ab2098b Added asio as external library for Windows native compile 2025-07-11 23:17:12 +02:00
Thunder
5bf59b4376
Merge pull request #2973 from JohannesKleine/Windows-msys2
Windows-msys2 build.bat add asio
2025-07-11 22:10:00 +02:00
Christoph Johannes Kleine
d165a84b67
Windows-msys2 build.bat add asio 2025-07-11 16:35:19 +02:00
csoler
9b881a6214 moved ownAvatarChanged() and ownStatusChanged() to rsEvents 2025-07-10 15:39:10 +02:00
defnax
31756be1be
Merge branch 'RetroShare:master' into login-dialog 2025-07-09 11:13:32 -07:00
defnax
8ab30b639f
Update 2025-07-09 14:48:05 +02:00
csoler
ef25a9079d fixed using the right version of cmake > 3.5 2025-07-08 22:06:28 +02:00
defnax
526507e44f Added for login dialog switch background image 2025-07-08 19:05:06 +02:00
defnax
e418cb27ce
Merge branch 'RetroShare:master' into w10darkmode 2025-07-08 15:20:43 +02:00
csoler
c3640306bd fixed restbed to stick to commit 6001a322809b5005b8bcccdf593fdda6f0173691 2025-07-07 23:37:29 +02:00
csoler
bfa3e557a4
Merge pull request #2963 from defnax/update-homelogo
Fix to load the right logo without restart too
2025-07-07 22:00:19 +02:00
csoler
06c2fd3947
Merge pull request #2955 from defnax/stylefix2
Fixed frame to get styled on system theme (Win/MacOS)
2025-07-07 21:56:56 +02:00
defnax
557e24a5dc Fix for Standard Dark 2025-07-07 21:45:00 +02:00
defnax
315838d772
Merge branch 'RetroShare:master' into w10darkmode 2025-07-06 15:17:16 +02:00
defnax
63d3dd1c08
Added override 2025-07-05 13:24:25 +02:00
defnax
e88c45561a Fixed the QComboBox issues for light and dark style 2025-07-05 00:37:45 +02:00
csoler
b556ff8fc7
Merge pull request #2959 from defnax/move-backgroundimage
Moved background image to light skin
2025-07-04 23:21:49 +02:00
defnax
ad82a94cc7 Fix to load the right logo without restart too 2025-07-03 18:46:24 +02:00
defnax
24a7c2ae39
Merge branch 'RetroShare:master' into stylefix2 2025-07-01 19:23:43 +02:00
defnax
829a1db710 Fix system dark style issues 2025-07-01 18:10:00 +02:00
csoler
432e6970c4
Merge pull request #2953 from defnax/HomeLogo
Added for Dark Style new home logo
2025-07-01 11:16:26 +02:00
csoler
dc6440a72e
Merge pull request #2954 from defnax/patch-4
Update MacOS_X_InstallGuide
2025-07-01 11:13:45 +02:00
defnax
39c5f0763c Added system dark mode for Windows 10 2025-06-30 21:17:00 +02:00
defnax
adc4bf90b5 Fix light skin issues 2025-06-25 20:02:19 +02:00
csoler
4b9d060c81 swiched some of the chat room notify to RsEvent and added new event code for SYSTEM errors 2025-06-25 16:49:26 +02:00
defnax
c05f6f5e52 Moved background image to light skin
*Moved backgrund image from login & profile creation page to light skin
2025-06-22 22:41:35 +02:00
defnax
915bf59d2e Fixed frames to get styles on system style 2025-06-19 18:33:51 +02:00
defnax
1190e45e6b Fixed green color get more contrast on dark style 2025-06-17 21:45:14 +02:00
csoler
41d972b359 removed unused stuff 2025-06-17 21:22:39 +02:00
csoler
c70b84497a moved pre/post-ModDirectories to rsEvents 2025-06-17 20:40:56 +02:00
csoler
e6cacc4d34 moved peerStatusChanged() from notify to rsEvents 2025-06-14 21:56:09 +02:00
defnax
1d4e997df2 Fixed frame to get styled on system theme 2025-06-14 17:20:19 +02:00
defnax
e146706a97
Update macports 2025-06-14 16:21:32 +02:00
defnax
751cc660a6
Update MacOS_X_InstallGuide.md 2025-06-14 14:39:12 +02:00
csoler
0ce2dd8486 removed groupsChanged and used rsEvents::FRIEND_LIST instead 2025-06-12 21:12:47 +02:00
csoler
df02d745d8 removed friendsChanged() and NOTIFY_LIST_FRIENDS 2025-06-11 20:50:38 +02:00
defnax
97304269a2 Added for Dark Style new home logo 2025-06-08 17:32:30 +02:00
csoler
2edb3afc81 moved hashing status info from notify to rsEvents 2025-06-07 15:50:24 +02:00
csoler
5361bed037 updated submodules to latest 2025-06-05 23:22:57 +02:00
csoler
553761fb7c updated submodules to latest 2025-06-05 23:15:24 +02:00
csoler
f5183bc4eb
Merge pull request #2950 from defnax/patch-2
Added deepwiki badge
2025-06-05 22:55:17 +02:00
csoler
b66061d15b
Merge pull request #2948 from JohannesKleine/desktop-file
Desktop file remove 'Application'
2025-06-05 22:48:33 +02:00
csoler
74c9b9493d
Merge pull request #2942 from JohannesKleine/issue_2895
fix typo Stared -> Starred
2025-06-05 22:46:46 +02:00
defnax
12959c60cb
Added deepwiki badge 2025-06-04 21:13:22 +02:00
Christoph Johannes Kleine
d0c4827335
change .desktop file in build_scripts 2025-05-31 18:32:58 +02:00
Christoph Johannes Kleine
a0646c1b66
Desktop file remove 'Application' 2025-05-31 18:28:47 +02:00
csoler
d6228f381d updated submodules to latest commit 2025-05-30 20:54:40 +02:00
Christoph Johannes Kleine
6fe7f7842b
fix typo Stared -> Starred 2025-05-28 12:48:09 +02:00
csoler
1654ed0bc6
Merge pull request #2938 from csoler/v0.6-FriendList
fixed wrong implementation of parentRow() causing loss of selected elem…
2025-05-12 21:46:09 +02:00
csoler
e5273fb887 fixed wrong implementation of parentRow causing loss of selected elements 2025-04-29 21:10:27 +02:00
csoler
da0732b5ad
Merge pull request #2919 from csoler/v0.6-IdentityDialog
Identity list model for IdDialog
2025-04-27 21:31:01 +02:00
csoler
3ec931716a
Merge pull request #2934 from defnax/revert-2910-moved-backgroundimage
Revert "Moved background image to standard light"
2025-04-20 10:57:18 +02:00
csoler
1720a94a80 added fontSizeHandler for Identity list 2025-04-17 20:49:30 +02:00
csoler
39b062fecf fixed compilation 2025-04-17 20:31:18 +02:00
csoler
0b79668f73 fixed merging with master 2025-04-16 22:12:44 +02:00
csoler
2f02f6cd2d fixed coloring for insecure identities 2025-04-16 22:10:58 +02:00
defnax
9810008fc1
Revert "Moved background image to standard light" 2025-04-16 20:29:39 +02:00
csoler
71eba47fe7 fixed voting not working on right panel of People 2025-04-16 13:36:01 +02:00
Thunder
1d1138d0cb
Merge pull request #2932 from defnax/Fix-searches
Fix size & age column
2025-04-13 13:50:38 +02:00
Thunder
015b33b33f
Merge pull request #2931 from thunder2/fontsizehandler
FeedReader: Added FontSizeHandler
2025-04-12 22:20:10 +02:00
defnax
0b3f4a69b9 Fix size & age column 2025-04-12 18:01:38 +02:00
thunder2
bd7dfe957f FeedReader: Added FontSizeHandler 2025-04-12 15:50:43 +02:00
csoler
2b13abe2a9 fixed sizes in idTreeWidget 2025-04-10 21:11:28 +02:00
thunder2
f2bf2f04cc Added missing include for std::function in FontSizeHandler.h 2025-04-10 10:24:35 +02:00
csoler
42bbf785ea
Merge pull request #2918 from defnax/fontssettings
Fonts settings for Tree & list Views & Composer Fonts
2025-04-09 21:19:44 +02:00
csoler
f26fc5ab14
Merge pull request #2910 from defnax/moved-backgroundimage
Moved background image to standard light
2025-04-09 21:01:18 +02:00
csoler
06c0be19e9
Merge pull request #2913 from defnax/fonts-fix-v3
Fixed fonts for macos
2025-04-09 20:59:49 +02:00
csoler
a596acbcec removed uninitialized memory read causing random crashes 2025-04-09 16:54:35 +02:00
csoler
f4364bcaa6 fixed missing clear button in IDDialog search 2025-04-03 20:48:01 +02:00
csoler
aa268c8745 made identity list searchable by whatever is displayed 2025-04-01 22:34:13 +02:00
defnax
e87566ef92 set default font size to 11 2025-04-01 21:26:54 +02:00
csoler
85f411463b fixed display of total number of identities 2025-04-01 20:39:44 +02:00
csoler
c9d5a9ba30 fixed preserving of selection and expanded items 2025-03-31 22:09:55 +02:00
csoler
59d6592855 fixed show in people tab 2025-03-31 21:29:43 +02:00
csoler
c8f71072b0 removed test line 2025-03-29 15:37:18 +01:00
defnax
18b14a033a
Merge pull request #223 from thunder2/pr/2918
Pr/2918
2025-03-29 09:34:41 +01:00
thunder2
973246624f Replaced font handling by FontSizeHandler and reenabled deactivated item delegates 2025-03-28 23:52:54 +01:00
thunder2
93154fddc4 Added new class FontSizeHandler to set font size from settings 2025-03-28 22:14:46 +01:00
thunder2
cab91819d6 Added set and get of font size on RshareSettings 2025-03-28 22:14:45 +01:00
csoler
417f80d752 added some debug info 2025-03-23 17:17:08 +01:00
csoler
8c2c3188ef fixed sizeHint role 2025-03-15 16:07:48 +01:00
csoler
92290015eb added [Loading...] string when loading info in the item model 2025-03-15 15:01:00 +01:00
csoler
e77b4271fc limiting calls to getIdDetails to the bare minimum 2025-03-09 15:34:19 +01:00
csoler
60750812d9 fixed a few bugs 2025-03-06 20:39:29 +01:00
csoler
6fde55217c added async update of ID list 2025-03-04 16:52:29 +01:00
csoler
7c5a45335a fixed load/save of visible columns 2025-03-01 21:26:29 +01:00
csoler
06d9ea2398 enabled processSettings 2025-03-01 20:57:32 +01:00
csoler
e369ba3504 added new column for owner name/ID 2025-03-01 20:38:05 +01:00
defnax
95ea588c9f Fixed Subject column fonts 2025-02-28 17:38:14 +01:00
defnax
2644a0ccb7 Added for search list update fontsize 2025-02-26 17:56:38 +01:00
csoler
756ded0b5d fixed sorting 2025-02-24 20:39:13 +01:00
csoler
0bda8eeb8d fixed save/restore of expanded items 2025-02-23 18:43:48 +01:00
csoler
ee27c52825 improved save/restore of selection/expanded items 2025-02-23 16:33:47 +01:00
csoler
a826a8651c added filtering 2025-02-23 14:50:48 +01:00
csoler
37c0f16a27 fixed update of visible items 2025-02-19 12:05:21 +01:00
defnax
c61c939b2a Fixed to get fonts work in forums tree 2025-02-18 19:56:11 +01:00
csoler
ed6debb3c6 added save/load selection (not working yet) 2025-02-17 23:15:53 +01:00
csoler
80b9006620 fixed drop menus for header and data 2025-02-16 17:58:08 +01:00
csoler
3153df1123 fixed display of icons 2025-02-15 19:55:30 +01:00
csoler
ac620d9077 fixed display of reputation 2025-02-14 22:01:11 +01:00
csoler
40d6c3c973 first working version of IdentityModel 2025-02-14 16:54:02 +01:00
defnax
cd338613c1 Attempt for forums tree fonts settings 2025-02-12 19:26:16 +01:00
defnax
49242e185b Fixed fonts update 2025-02-12 18:36:13 +01:00
defnax
5005c0303d Fixed to update the fonts for MainWindow ListWidget 2025-02-11 18:51:20 +01:00
csoler
435e8ce50c continued implementation of IdentityListModel 2025-02-10 21:18:31 +01:00
defnax
a5752ec4d3 Fixed alignment for the attachment counter 2025-02-10 20:03:43 +01:00
defnax
6d394c9f55 Added for channel composer default size settings 2025-02-10 19:41:19 +01:00
csoler
43d64bf0c5 added abstract item model for identity 2025-02-09 21:05:11 +01:00
defnax
3ffa362079 Added for Composer fonts settings 2025-02-09 18:05:36 +01:00
defnax
b168110a58 Added for settings list fonts settings 2025-02-08 15:44:39 +01:00
defnax
7399c42dfb Fix settings 2025-02-08 15:13:43 +01:00
defnax
533caea81e Added Fonts settings 2025-02-06 20:20:28 +01:00
defnax
18f4ef5574 Fix fonts 2025-02-06 19:02:40 +01:00
defnax
e14fc66ca3 Settings for default tree & listwidget fonts 2025-02-05 20:55:03 +01:00
defnax
b99988385f Added brew packages for RNP 2025-01-30 19:53:59 +01:00
defnax
85b6d18094 Fixed fonts to use default system 2025-01-23 22:22:26 +01:00
defnax
86d96fe60c Fixed fonts for macos
Fixed Toolbar fonts
Fixed forum composer fonts
2025-01-22 23:21:32 +01:00
csoler
8fcc52b304
Merge pull request #2904 from defnax/fix-macos-v2
Fixed some frames to use StyledPanel to get styles on system theme
2025-01-19 17:41:39 +01:00
csoler
5f3f1c9c43
Merge pull request #2905 from defnax/fonts-fix-v2
remove font sizes from the ui files
2025-01-19 17:40:20 +01:00
defnax
e835385000 restore back changes 2025-01-18 16:06:03 +01:00
csoler
e44a216873
Merge pull request #2903 from csoler/v0.6-FT-001
removed unencrypted FT
2025-01-12 14:14:21 +01:00
csoler
4b5dd51681
Merge pull request #2911 from csoler/v0.6-RNP-submodule
added non-backward compatible flag change for v0.7 about sha1 certs
2025-01-12 14:12:36 +01:00
csoler
e18bb74a5e added non-backward compatible flag change for v0.7 about sha1 certs 2025-01-10 22:47:46 +01:00
defnax
c9599ea817 Moved background image to standard light 2025-01-09 19:43:35 +01:00
csoler
b2d05d7d8e
Merge pull request #2907 from dbear496/a-few-fixes
a few small fixes
2025-01-06 20:32:20 +01:00
David Bears
2c53c02319
omit newline after single link 2025-01-04 13:48:00 -05:00
David Bears
99053597a9
allow voting on own identities 2025-01-03 15:03:31 -05:00
defnax
e5f2ef2335 remove font sizes from the ui files 2025-01-03 19:10:45 +01:00
David Bears
0759359e06
Fix JSON API token removal 2025-01-02 22:38:46 -05:00
David Bears
2ca36f5957
Fix port settings for manual I2P 2025-01-02 22:27:43 -05:00
defnax
89ceba2f92 Fixed some frames to use StyledPanel to get styles on system theme
* update mac os section
2025-01-02 23:36:43 +01:00
csoler
41bb83054c removed unencrypted FT 2025-01-01 20:17:49 +01:00
csoler
f9ca8934db
Merge pull request #2902 from defnax/ui-fix-v16
Fixed some frames to get compatible for system style
2024-12-30 22:19:38 +01:00
defnax
01617da863 Fixed some frames to get compatible for system style
* Fixed some frames to get compatible for system style
* update macos package script
2024-12-30 21:36:04 +01:00
csoler
8d96bb920d
Merge pull request #2900 from csoler/v0.6-BugFixing_40
fixed bug causing own identity to not disappear when deleted
2024-12-30 14:15:57 +01:00
thunder2
b502dd71e2 Windows build: Fixed makefile for external libraries 2024-12-28 14:01:45 +01:00
csoler
359305c24f
Merge pull request #2888 from defnax/People-improve
Improve People View
2024-12-27 20:11:51 +01:00
csoler
ca2f8c5bed
Merge pull request #2901 from thunder2/fix_missing_premods
Added missing calls to preMods in RsFriendListModel::setDisplayStatus…
2024-12-27 19:59:09 +01:00
thunder2
ccd1cfbde6 Added missing calls to preMods in RsFriendListModel::setDisplayStatusString and RsFriendListModel::setDisplayStatusIcon 2024-12-27 15:03:36 +01:00
thunder2
32a43b1892 Windows build: Updated cmake to 3.31.3 2024-12-27 14:43:26 +01:00
thunder2
6cde715e66 Windows build: Updated MSYS2 installer to 20241208 2024-12-27 14:35:23 +01:00
thunder2
6825c7e925 Updated librnp submodule 2024-12-27 14:35:10 +01:00
csoler
433ab6514d fixed bug causing own identity to not disappear when deleted 2024-12-26 21:14:49 +01:00
csoler
142049a61e updated master branch to latest commit in libretroshare submodule 2024-12-26 18:42:18 +01:00
csoler
8cc2cf8cd2
Merge pull request #2894 from csoler/v0.6-RNP-submodule
V0.6 rnp submodule
2024-12-26 16:15:56 +01:00
csoler
cbd9dfc86a
Merge pull request #35 from thunder2/rnp
Fixed Windows build with librnp
2024-12-25 16:17:55 +01:00
csoler
675b430833
Merge pull request #2887 from thunder2/fix_msgs
Use all mails for the calculation of counts in MessagesDialog::update…
2024-12-25 14:56:53 +01:00
csoler
b17cb811d6
Merge pull request #2891 from fkobi/patch-1
Improve desktop icon
2024-12-25 14:44:27 +01:00
csoler
d6d2f09673 updated submodule url to comply with RS standard 2024-12-19 22:25:27 +01:00
thunder2
d79ce90c68 Fixed Windows build with librnp 2024-12-19 00:32:26 +01:00
csoler
38e82adaea
Merge pull request #2893 from fkobi/patch-2
Mention "desktop" instead of "GNOME"
2024-12-08 17:24:05 +01:00
csoler
5d7b235941 added back key certification with RNP 2024-12-07 16:37:37 +01:00
fkobi
8e94a99a53
Mention "desktop" instead of "GNOME" 2024-11-30 15:14:41 +00:00
csoler
6a77d6b7bc fixed retroshare.pri 2024-11-26 22:19:02 +01:00
csoler
e6f1878f1f Merge remote-tracking branch 'upstream/master' into v0.6-RNP-submodule 2024-11-26 20:46:19 +01:00
fkobi
9a7c94314c
Improve desktop icon
- add missing categories
- sort according to 
  https://specifications.freedesktop.org/menu-spec/latest/additional-category-registry.html
2024-11-25 19:58:52 +00:00
csoler
5c9bf3bf7c added commands to make rnp a submodule 2024-11-20 22:20:28 +01:00
defnax
d8d2243b9e Improve People View 2024-11-16 16:48:30 +01:00
thunder2
00241d6252 Use all mails for the calculation of counts in MessagesDialog::updateMessageSummaryList, not just the current selected box 2024-11-16 15:48:32 +01:00
csoler
3248a06134 updated master branch to latest version of submodules 2024-11-16 15:02:48 +01:00
csoler
ae1bd27ad1
Merge pull request #2885 from defnax/People-improve
Improved People view
2024-11-02 14:40:30 +01:00
defnax
9fefbb3b13 Improved People view
* Improved People View
* Update translations
2024-11-01 16:00:28 +01:00
csoler
ed0105f44c switched rs_usernp into rs_useopenpgpsdk 2024-10-22 19:25:11 +02:00
csoler
126ce6607e changed flag name to remove it from v07 changes list 2024-10-09 21:31:42 +02:00
csoler
e20a4c4e60 changed retroshare.pri to add V07_NON_BACKWARD_COMPATIBLE_CHANGE_005 by default 2024-09-18 21:15:44 +02:00
csoler
e888e89437
Merge pull request #2879 from zapek/fix-image-jpeg-uri-mimetype
Fix image data URI
2024-09-02 09:41:52 +02:00
David Gerber
bb4b8f0bc5
Fix image data URI
Make JPEG images use the image/jpeg mimetype instead of the wrong image/png one.
2024-09-01 22:51:22 +02:00
csoler
a9c87225e2 disabled certificate signature when using librnp 2024-08-19 18:53:25 +02:00
csoler
37261761dd fixed compilation 2024-08-11 23:32:11 +02:00
csoler
3361727a37 added switch to compile with rnp or openpgp-sdk 2024-08-11 16:43:20 +02:00
csoler
d222cfe8e0 added compilation flag for RNP 2024-07-26 11:10:52 +02:00
csoler
64f4d84e74
Merge pull request #2862 from defnax/statusicons-settings
Added optional display status icon from friendslist context menu
2024-07-07 20:10:52 +02:00
defnax
b90e75e912
Merge pull request #215 from thunder2/pr/2862
Pr/2862
2024-07-03 15:38:35 +02:00
thunder2
d72e46cfda Update NewFriendList on avatar and status change 2024-07-03 14:58:03 +02:00
thunder2
874748e7da Use avatar for profile in RsFriendListModel of best node 2024-07-03 14:58:03 +02:00
defnax
b5b2e77a7e set default idle color which has better contrast 2024-07-02 23:52:31 +02:00
defnax
afc4096740
Merge pull request #214 from thunder2/pr/2862
Pr/2862
2024-07-02 08:29:37 +02:00
thunder2
2c3b0a1c44 Fixed show best status icon for profile 2024-07-01 23:26:43 +02:00
thunder2
c8975bb2e9 Optimized avatar loading in RsFriendListModel 2024-07-01 16:48:52 +02:00
defnax
19d613edcc fix naming 2024-06-25 19:09:03 +02:00
defnax
56b6b0cb5a Added optional display status icon from friendslist context menu 2024-06-24 23:36:45 +02:00
csoler
3461da7c3a
Merge pull request #2860 from defnax/fixstatuscolors
Fixed status colors
2024-06-19 21:02:40 +02:00
defnax
332939c3f5 Fixed status colors 2024-06-17 22:07:18 +02:00
csoler
2fb9b3eb46
Merge pull request #2858 from csoler/v0.6-Collection
fixed bug showing peers offline when status service is remotely disabled
2024-06-13 21:38:01 +02:00
csoler
794ec3576c using statusRole instead of onlineRole to decide on node string 2024-06-13 11:08:28 +02:00
csoler
1b4886715d fixed usage of statusRole in FriendListModel 2024-06-09 21:25:43 +02:00
csoler
7dfd6de15f fixed bug showing peers offline when status service is remotely disabled 2024-06-07 11:26:35 +02:00
thunder2
a60f3f44f7 FeedReader: Don't add items as new item when pubDate less than storage time 2024-04-16 19:25:26 +02:00
thunder2
83b433a2e2 Revert changes in libbitdht of "Merge pull request #2852 from thunder2/fix_rscollection" 2024-04-04 00:58:34 +02:00
csoler
55c414b400
Merge pull request #2852 from thunder2/fix_rscollection
Renamed RsCollectionErrorCode::NO_ERROR to COLLECTION_NO_ERROR b…
2024-04-04 00:48:28 +02:00
thunder2
5a24fad354 Renamed RsCollectionErrorCode::NO_ERROR to COLLECTION_NO_ERROR because of double define of NO_ERROR in winerror.h 2024-04-03 22:20:33 +02:00
csoler
16d6d4d597 updated master to all submodules 2024-04-02 17:55:11 +02:00
csoler
d92404d047
Merge pull request #2846 from csoler/v0.6-Collection
Attempt at making RsCollection faster to use (Needs #144)
2024-04-01 18:32:39 +02:00
csoler
0b75abaa04 minor fixes to rscollection PR 2024-04-01 18:25:49 +02:00
csoler
3f9d49921d fixed bug asking for overwriting a non existant file 2024-03-30 18:37:20 +01:00
csoler
0551f4f819 fixed compilation after removal of RsCollection::downloadFiles 2024-03-28 22:14:46 +01:00
csoler
8366cbca59 removed dead code, and added check for incorrect file names when saving 2024-03-28 21:26:09 +01:00
csoler
20f4b51bb7 fixed conflicts with upstream/master 2024-03-26 21:07:57 +01:00
csoler
a02d2e63e2 fixed updating save filename, removal of files/dirs, and cleaning before save 2024-03-20 21:00:42 +01:00
csoler
2ebd7617fc added proper remove for files/dirs 2024-03-19 23:22:46 +01:00
csoler
5aa80f2f68 updated master of Retroshare/ to master of libretroshare 2024-03-18 22:52:46 +01:00
csoler
c7fe3059a5
Merge pull request #2849 from defnax/exportfriendslistv2
Added export Friendslist to Profile Page
2024-03-16 20:37:46 +01:00
defnax
5f748b3131 renaming button text 2024-03-16 20:23:28 +01:00
defnax
21c2312952 Added export Friendslist to Profile Page 2024-03-15 20:10:20 +01:00
csoler
a36f7221e7 added new folder capability in collection 2024-03-14 22:44:49 +01:00
csoler
27f0962654 fixed download from RsCollection dialog 2024-03-14 22:12:57 +01:00
csoler
094c80e046 disable save button when files are being hashed 2024-03-13 22:28:39 +01:00
csoler
0697116289 added green color for files being hashed 2024-03-13 22:20:21 +01:00
csoler
7ef81a37ff added auto-update of files being hashed 2024-03-12 21:39:05 +01:00
csoler
5e3434396c fixed a few bugs in counting and model parenting 2024-03-11 13:37:09 +01:00
csoler
c1a6b8fe12 added some debug info in RsCollectionModel 2024-03-10 23:41:10 +01:00
csoler
9ba4ac6362 fixed a few bugs in file counting 2024-03-09 18:31:01 +01:00
csoler
67ff37a0d4 using vectors instead of maps for mCollectionModel data. 2024-03-09 00:03:16 +01:00
csoler
f375912bc5 added checkable items in RsCollectionModel 2024-03-07 22:15:12 +01:00
csoler
80a5705aea
Merge pull request #2844 from csoler/v0.6-Params2
Cleaned up command line parameter handling (to be used with #143)
2024-03-04 23:33:50 +01:00
csoler
c0d222dedf more cleaning in PR 2844 2024-03-04 23:32:50 +01:00
csoler
2a5698c9d3 removed dead code 2024-03-04 23:22:03 +01:00
csoler
be96f417b3 fixed update of tree when changed 2024-03-04 23:00:25 +01:00
csoler
398db7dfe8
Merge pull request #34 from defnax/fixmacos
Fix for macos
2024-03-04 09:34:27 +01:00
csoler
e106959fbd fixed creating new collection 2024-03-01 23:00:17 +01:00
csoler
31c390aa27 simplified usage of RsCollectionDialog in shared files (removed duplicate functionality) 2024-02-29 22:07:52 +01:00
csoler
2ed72a146b fixed basic functionality of RsCollectionModel 2024-02-28 21:56:38 +01:00
defnax
790c169c02 Fix for macos 2024-02-28 19:47:01 +01:00
csoler
885eb640dc starting fixing RsCollection with the new model 2024-02-27 22:10:49 +01:00
csoler
eae4fe86aa added RsCollectionModel to RsCollectionDialog (unfiished) 2024-02-26 22:10:32 +01:00
csoler
a163f716b0
Merge pull request #2841 from defnax/update-trans
update translation
2024-02-25 21:34:23 +01:00
csoler
f425f2fa23
Merge pull request #2842 from defnax/macos_linedit
(macOS)Fixed iconsize issue with fontmetrics on macos
2024-02-25 21:33:29 +01:00
csoler
b0b3d51571
Merge pull request #2845 from defnax/update-invite-icon
update invite icon
2024-02-25 21:32:49 +01:00
csoler
eb0ef1e39b implemented RsCollectionModel 2024-02-25 17:58:51 +01:00
csoler
97309f2f9f started implementing RsCollectionModel 2024-02-24 21:49:50 +01:00
csoler
5bc071b03c fixed compilation 2024-02-24 20:27:18 +01:00
csoler
5071656209 started adapting RsCollectionDialog to the new API of RsCollection 2024-02-24 17:44:13 +01:00
csoler
206da93d99 fixed a few compilation errors in RsCollection handling 2024-02-24 15:55:21 +01:00
csoler
258fe58547 switch RsCollection to using RsfileTree as a base structure instead of a QDomDocument (not compiling yet) 2024-02-23 21:10:13 +01:00
csoler
eccfc7ba71 fixed handling of incoming rscollection files 2024-02-16 13:28:55 +01:00
csoler
142a8e2503 fixed proper handling of language parameter at startup 2024-02-16 10:33:41 +01:00
defnax
91ed9ed894 update readme 2024-02-13 19:04:38 +01:00
defnax
f4f51e53eb update invite icon 2024-02-13 18:46:30 +01:00
csoler
9210e52aae fixed compilation in parameter handling 2024-02-13 16:24:32 +01:00
csoler
c5aface2cb additional step in rewriting commandline parameter handling 2024-02-11 22:16:50 +01:00
csoler
4f56c7dd2f use argstream::usage() in the help message box 2024-02-04 18:26:47 +01:00
defnax
8db6076ce1 update translation 2024-02-04 16:10:35 +01:00
defnax
ae24db1da0 Fixed iconsize issue with fontmetrics on macos 2024-02-03 23:26:25 +01:00
defnax
b7414c078a update translation 2024-02-03 22:37:04 +01:00
csoler
8564a22bef
Merge pull request #2831 from defnax/downloadupload-treefixes
Improved Sharedfiles treesize and font fix for macos
2024-02-02 13:04:22 +01:00
csoler
9437bce60a
Merge pull request #2836 from defnax/chatlobby.fix
Removed "chat rooms" string from tree item
2024-02-01 21:17:46 +01:00
csoler
ed13a2f47f
Merge pull request #2838 from defnax/update-trans
update translations
2024-02-01 20:32:57 +01:00
defnax
388120956d update translations 2024-01-30 23:15:23 +01:00
defnax
e4da288b25
removed "chat rooms" string from tree item 2024-01-29 21:53:09 +01:00
defnax
a523d654ef Improved Sharedfiles treesize and font fix for macos 2024-01-16 14:54:04 +01:00
csoler
dc5131567f
Merge pull request #2830 from defnax/downloadupload-treefixes
Improved downloads and uploads tree display
2024-01-15 21:56:24 +01:00
defnax
3063e74e59 Improved downloads and uploads tree display 2024-01-15 21:43:09 +01:00
csoler
d9f7e96c68 updated master branch to sync with submodules 2024-01-14 16:26:07 +01:00
csoler
0c03e93a47
Merge pull request #2810 from defnax/macos-guide
[macOS] Fixes and Guide updates
2024-01-03 18:02:50 +01:00
defnax
020e9e5927
Enabled delete CFBundleGetInfoString, to update Version string 2024-01-02 15:30:32 +01:00
defnax
d3513ffed0
Merge branch 'RetroShare:master' into macos-guide 2024-01-02 14:58:07 +01:00
defnax
15f2ea4e29 Added to fix from Dock Icon to Show/Hide for macOS platform 2024-01-02 12:58:11 +01:00
csoler
91dd22d8d3
Merge pull request #2819 from thunder2/fix-chatlobby-traymenu
Fixed memory leak when using tray menu of chat lobby and removed doub…
2024-01-01 18:54:22 +01:00
thunder2
f00e8ba18e Fixed memory leak when using tray menu of chat lobby and removed double connect of signals 2024-01-01 15:58:44 +01:00
csoler
73f1da20f0
Merge pull request #2812 from defnax/fix-cmake-macos
[macOS] fix cmake compile on macos to find include and libs path
2024-01-01 15:41:21 +01:00
csoler
24f13a4b88
Merge pull request #2814 from defnax/comments-tree
Added show author for comments tree
2024-01-01 15:40:22 +01:00
csoler
249ff6e8c5
Merge pull request #2816 from defnax/changed-tray-notifyicon-broadcastchat
changed broadcast chat notify icon
2024-01-01 15:38:42 +01:00
csoler
aac9425626
Merge pull request #2820 from defnax/macos-fix
{macOS} Fix for macos alternative chat room notify
2024-01-01 15:36:40 +01:00
defnax
4982e4b664
Fix for macos alternative chat room notify 2023-12-30 16:01:43 +01:00
csoler
267ffc99af
Merge pull request #2765 from PYRET1C/new_token_service
[WIP] Added the new token service in this file
2023-12-30 15:23:25 +01:00
defnax
75ef4dceb5 Added close window shortcut 2023-12-30 00:15:28 +01:00
defnax
79977a0c37 Fixed minimize on macOS with CTRL + M shortcut 2023-12-29 21:34:54 +01:00
defnax
3615ebf05e
Added retroshare-service compile with cmake to guide 2023-12-27 22:50:22 +01:00
csoler
0caf8e79db
Merge pull request #2817 from vladpirlog/fix/friendlistmodel-index-bug
Add row count check in the RsFriendListModel::index method
2023-12-27 20:01:48 +01:00
Vlad Pirlog
b5d40f7964
Add row count check in the RsFriendListModel::index method
Fix bug occurring after login where the app would crash unexpectedly.
Turns out there was an index out of bounds exception occurring in
the RsFriendListModel::index method.
2023-12-27 12:41:25 +02:00
defnax
17407f7ea3
removed not needed dependency libmicrohttp 2023-12-26 17:53:53 +01:00
defnax
5c9c7e8cf6
changed broadcast chat notify icon 2023-12-26 15:54:40 +01:00
defnax
d1393acfa6
Added show author for comments tree 2023-12-26 12:35:29 +01:00
defnax
c0f9f14455
Update GxsCommentTreeWidget.h 2023-12-26 12:30:56 +01:00
defnax
4af12b14e1
Set fusion style for macos 2023-12-24 22:01:03 +01:00
defnax
d395be256b
fix cmake compile on macos to find include and libs path 2023-12-24 18:56:43 +01:00
defnax
eb4a5a4e4d
Fix show messages on macos 2023-12-24 14:54:05 +01:00
defnax
1374d4520f
Merge branch 'RetroShare:master' into macos-guide 2023-12-24 14:51:58 +01:00
csoler
081782c97c
Merge pull request #2806 from defnax/macos-fixes
Added logo for retroshare-service on macOS
2023-12-23 18:02:43 +01:00
defnax
0ec569216b
Added cmake install to the guide 2023-12-23 09:23:53 +01:00
defnax
48510e3818
Added Feedreader include path for libxml2 2023-12-20 12:30:42 -08:00
defnax
50c6b4a8aa
Added needed feedreader depencies 2023-12-20 21:12:18 +01:00
defnax
419d3895be Added a dock menu for macOS 2023-12-19 18:58:16 +01:00
csoler
883d9f9b52
Merge pull request #2801 from csoler/v0.6-BugFixing_30
removed some debug output
2023-12-18 20:48:07 +01:00
defnax
6f982a20ba
Added logo for retroshare-service on macOS 2023-12-18 13:09:11 +01:00
defnax
6fb53d823e
Added icon for retroshare-service for the macOS platform #2802 2023-12-18 13:07:36 +01:00
PYRET1C
351855a5bd Merge branch 'new_token_service' of https://github.com/PYRET1C/RetroShare into new_token_service 2023-12-15 00:05:48 +05:30
PYRET1C
b9e7bb5457 added the new token service in more funcitons and resolved the crash on posting a pulse 2023-12-15 00:05:41 +05:30
Tushar Garg
74e0692f69
Merge branch 'RetroShare:master' into new_token_service 2023-12-15 00:03:01 +05:30
csoler
852ddb96d8
Merge pull request #2763 from defnax/wirecroppicture
[Wire] Fix to hide picture browse button on republish & like view
2023-12-11 22:05:12 +01:00
csoler
7decd2b7b0 removed some debug output 2023-12-11 21:51:17 +01:00
csoler
d27616f28b
Merge pull request #2797 from defnax/improve-macosdoc
Improved macos guide
2023-12-08 21:33:08 +01:00
defnax
e00e94e87f
fix for line 2023-12-05 12:46:06 +01:00
defnax
493f89643c
Update MacOS_X_InstallGuide.md 2023-12-05 11:49:19 +01:00
defnax
ec35e74400
fix last commit 2023-12-01 22:31:01 +01:00
defnax
6fffb322ae
Improved makeOSXPackage.sh file
* Added to ship sounds dir
* Added CFBundleVersion & CFBundleShortVersionString string
* Added to get Git head string for package naming
2023-12-01 22:26:44 +01:00
defnax
31552b1119
Update MacOS_X_InstallGuide.md 2023-11-29 15:32:16 +01:00
defnax
5ee6f6a2e8
Update XCode part 2023-11-29 12:36:23 +01:00
Gioacchino Mazzurco
463a25a048
Update OBS submodule 2023-11-28 22:47:59 +01:00
Gioacchino Mazzurco
67762c1eb0
More attempts at fixing GitlabCI
See https://forum.gitlab.com/t/docker-dind-stops-working-after-12-1-0-update/28664/11
2023-11-27 02:08:21 +01:00
Gioacchino Mazzurco
3f40837b1c
Fix GitlabCI and improve CMake support
Do not use mirrors which may be out of sync
2023-11-27 00:06:12 +01:00
Gioacchino Mazzurco
678357ab2a
Update libretroshare submodule 2023-11-26 22:53:35 +01:00
Gioacchino Mazzurco
ea943369a0
Update libretroshare submodule 2023-11-26 21:56:37 +01:00
csoler
a1fdce2e58
Merge pull request #2795 from thunder2/fix-git-describe
Changed automatic version numbering with "git describe" to split the …
2023-11-26 18:21:38 +01:00
defnax
331cc2e374
added new improved macos package file 2023-11-26 18:09:56 +01:00
defnax
9ae8c7a196
Improved masos compile guide 2023-11-26 18:07:06 +01:00
Gioacchino Mazzurco
c0e564517e
Add script to ease tag cleanup for every developers 2023-11-26 09:52:25 +01:00
Gioacchino Mazzurco
e0873687a2
Update submodules and gitignore 2023-11-26 09:30:52 +01:00
thunder2
441ba17b53 Changed automatic version numbering with "git describe" to split the third part into mini version (leading numbers) and extra version (string after the numbers) 2023-11-26 00:19:59 +01:00
csoler
951be8f9a1 updated to latest commits in submodules 2023-11-25 17:25:16 +01:00
Gioacchino Mazzurco
737eecad9e
retroshare-service CMake fix icons install path 2023-11-20 11:29:13 +01:00
csoler
95ad01c4db
Merge pull request #2790 from defnax/Ui-fixes
UI fixes
2023-11-19 17:25:25 +01:00
csoler
8d243b964f
Merge pull request #2787 from defnax/master-2
Fixed led labels
2023-11-19 17:21:44 +01:00
csoler
6c22125980
Merge pull request #2788 from csoler/v0.6-BugFixing_30
attempt to fix bug in closing GxsChannelComment feed item
2023-11-19 17:21:14 +01:00
csoler
45c701c8e8 removed debug output 2023-11-19 17:16:48 +01:00
csoler
929c04edd5 fixing channel comment feed item crash 2023-11-18 23:46:32 +01:00
defnax
69a84c94a2
Cosmetic layout fixes 2023-11-17 17:10:18 +01:00
csoler
6555cc5792 attempt to fix bug in closing GxsChannelComment feed item 2023-11-17 14:10:14 +01:00
defnax
902f278a19
Fixed led labels 2023-11-15 20:42:56 +01:00
Gioacchino Mazzurco
533e711d47
Merge branch 'master' of github.com:RetroShare/RetroShare 2023-11-15 09:37:47 +01:00
csoler
0e48422d1f updated retroshare to latest libretroshare 2023-11-12 12:07:56 +01:00
csoler
470a104418 updated Retroshare to the latest submodule commits 2023-11-12 11:23:54 +01:00
csoler
746bac8325
Merge pull request #2786 from csoler/v0.6-BugFixing_30
cleaning up debug info
2023-11-12 11:20:28 +01:00
csoler
9db3208f72 improved colored output on login 2023-11-11 23:51:14 +01:00
csoler
48da2d195a removed some debug output 2023-11-11 23:51:13 +01:00
thunder2
2c8e7d2a51 Updated OpenSSL to 1.1.1w in Windows native build 2023-11-10 22:36:24 +01:00
thunder2
bc125a75bf Fixed download of msys2 during Windows build 2023-11-10 22:36:23 +01:00
csoler
b30b575955
Merge pull request #2783 from csoler/v0.6-BugFixing_30
cleaning up webui/jsonapi interaction code
2023-11-07 22:10:39 +01:00
csoler
97fe92d1e7 updated master branch of Retroshare/ to latest commits in master branches of OBS and libretroshare 2023-11-07 14:05:39 +01:00
thunder2
eb7e2ec8e6 Enabled ANSI color support in Windows console for retroshare-service 2023-11-06 23:04:48 +01:00
thunder2
cd81d69357 Removed not needed files of tor from Windows installer 2023-11-06 23:04:33 +01:00
thunder2
befc473624 Fixed download of tor in Windows native build 2023-11-06 23:04:09 +01:00
csoler
a64fda1fb8 improved user commandline webui startup user experience 2023-11-05 16:10:42 +01:00
csoler
53313670f5 cleaning up webui/jsonapi interaction code 2023-11-04 23:41:49 +01:00
csoler
adf5a41a77
Merge pull request #2782 from csoler/v0.6-BugFixing_30
fixed colored output
2023-11-03 17:54:02 +01:00
csoler
62513a0d23 made initialization of webui as early as possible to avoir the need to restart jsonapi 2023-11-01 22:08:51 +01:00
csoler
fb78591baf fixed colored output 2023-11-01 15:52:02 +01:00
csoler
999fc143bf
Merge pull request #2780 from defnax/service-text-coloring
update output colors
2023-11-01 14:04:22 +01:00
csoler
9f0134f32d
Merge pull request #2781 from csoler/v0.6-BugFixing_30
GUI fixes
2023-11-01 13:56:02 +01:00
defnax
c502b0df06 coloring hidden outputs 2023-10-30 22:43:17 +01:00
csoler
b02acfae4b fixed missing event handler registration 2023-10-29 21:06:09 +01:00
csoler
ab61149cb1 fixed missing event handler registration 2023-10-29 21:05:02 +01:00
csoler
55651e73d9 made ConnectFriendWizard to accept retroshare links 2023-10-29 20:47:00 +01:00
defnax
ab7deede57 clean the color code from the text 2023-10-29 18:24:25 +01:00
csoler
315fb77d63 fixed forum and chnanel group feed items reacting to changes to the channel/forum group 2023-10-28 21:03:21 +02:00
defnax
36282e750d update output colors 2023-10-26 18:31:37 +02:00
csoler
c52e84d709
Merge pull request #2778 from defnax/service-text-coloring
Added colors for the service output
2023-10-25 23:09:45 +02:00
defnax
9f89ac42e7 Fix spacing 2023-10-25 12:13:15 +02:00
defnax
8814cbd9f2 color improvements for accounts display 2023-10-25 11:54:51 +02:00
defnax
168f36bc21 Added colors for the output 2023-10-24 22:44:40 +02:00
csoler
71a096f817
Merge pull request #2777 from csoler/v0.6-BugFixing_30
fixed non working expand button in forum feed
2023-10-21 14:48:31 +02:00
csoler
d26f7db319 fixed non working expand button in forum feed 2023-10-21 14:35:47 +02:00
Gioacchino Mazzurco
98c27fcf6d
Update libretroshare submodule 2023-10-18 18:57:11 +02:00
Gioacchino Mazzurco
d84b981e9a
Update libsam3 submodule 2023-10-18 18:56:04 +02:00
Gioacchino Mazzurco
e67abc36af
Update OBS submodule 2023-10-18 12:23:32 +02:00
Gioacchino Mazzurco
9b7149f16e
Update OBS submodule 2023-10-18 11:44:58 +02:00
Gioacchino Mazzurco
eab5c4bf4c
Updated gui build script according to new friendserver naming 2023-10-18 10:36:19 +02:00
Gioacchino Mazzurco
9d406ba26f
Fix inconsistence in friendserver QMake build option naming 2023-10-18 10:34:17 +02:00
Gioacchino Mazzurco
ededce7bd6
Merge branch 'master' of github.com:RetroShare/RetroShare 2023-10-13 18:56:00 +02:00
Gioacchino Mazzurco
e9d4cacac5
Attempt to fix udp-discovery-cpp submodule ref 2023-10-13 18:55:01 +02:00
csoler
5db6eb0359 updated retroshare base dir to latest version of libretroshare 2023-10-12 21:03:00 +02:00
csoler
7eb08c8706
Merge pull request #2776 from csoler/v0.6-BugFixing_30
Small Bug Fixing
2023-10-12 20:21:36 +02:00
csoler
d8bca5c56d removed some debug output 2023-10-12 20:18:53 +02:00
csoler
d83709d519 fixed implicit type warning 2023-10-12 20:18:36 +02:00
csoler
7a873c3b53 fixed compilation on ubuntu 18.04 2023-10-12 20:18:21 +02:00
csoler
606baf6f3e updated webui, libbitdht and libretroshare to latest submodule commit 2023-10-08 23:49:16 +02:00
csoler
6d105680d6
Merge pull request #2775 from csoler/v0.6-BugFixing_30
Bug fixing
2023-09-27 19:33:59 +02:00
csoler
96ae492bad
Merge pull request #2774 from csoler/v0.6-BugFixing_31
Quick bug fix in friend list.
2023-09-27 19:33:23 +02:00
csoler
712c7e5fb1 Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_30 2023-09-24 19:50:41 +02:00
csoler
a99f686fd1 restricted SPAM/STAR/TAGS to inbox, and made msg summary list refer to current box only 2023-09-23 17:53:12 +02:00
csoler
41069a0fa5 added missing removal of event handler in jsonapi and webui settings 2023-09-23 17:31:24 +02:00
csoler
7c90a2365c
Merge pull request #2772 from csoler/v0.6-BugFixing_30
Improved JsonApi / WebUI interaction
2023-09-22 22:55:41 +02:00
csoler
034bddf1ef made registered services list non editable 2023-09-22 22:50:45 +02:00
csoler
4cb36a5b69
Merge pull request #2769 from defnax/thumbnailfixchannelpost
Fix transparency for channel post thumbnails
2023-09-19 15:19:21 +02:00
csoler
11c07cd7c3 moved endResetModel() call to the endof internal data update in RsFriendListModel 2023-09-19 15:10:29 +02:00
csoler
0e0430a222 added more debug info to comment tree widget 2023-09-19 15:08:52 +02:00
csoler
b606b26dd3 fixed double allocation of webui page 2023-09-15 20:15:29 +02:00
csoler
5251427cbf improved webui and jsonapi config pages 2023-09-12 22:28:54 +02:00
csoler
5e62af44e5 fixed compilation 2023-09-12 13:50:43 +02:00
csoler
7e9a5a4244
Merge pull request #2352 from RetroPooh/keyring1
keyring - fix removing accepted keys; allow multi-select
2023-09-12 09:44:16 +02:00
csoler
c1bf4fb27f
Merge branch 'master' into keyring1 2023-09-12 09:43:13 +02:00
csoler
c877a6e5c8 improved login of on/off and parameter display in webui/jsonapi config pages 2023-09-11 22:55:42 +02:00
defnax
d5088caac6 fix second part for transparency check 2023-09-11 21:54:54 +02:00
csoler
d83f0125f3 improved UI of webUI and JsonAPI and interaction between these two (unfinished) 2023-09-10 17:49:51 +02:00
thunder2
d0b4bfdaa1 Fixed Linux compile of FeedReader plugin 2023-09-10 15:25:13 +02:00
csoler
c90fab0136 added help for JSON API page 2023-09-08 20:48:54 +02:00
defnax
43afcf3f98 Fix to use RGBA32 2023-09-05 21:10:38 +02:00
csoler
313bbaaae2
Merge pull request #2771 from csoler/v0.6-BugFixing_30
fixed bug in ModelIndex creation in channel post view, and implemented arrow key navigation
2023-09-05 16:51:14 +02:00
csoler
8a20ab33b4 fixed bug in ModelIndex creation in channel post view, and implemented arrow key navigation 2023-09-04 21:58:45 +02:00
csoler
f8a38aa821
Merge pull request #2770 from csoler/v0.6-BugFixing_30
V0.6 bug fixing 30
2023-09-01 09:08:36 +02:00
csoler
0ed32eb597 removed export menu entry (duplicates functionality, and wasnt connected anyway) 2023-08-31 23:27:18 +02:00
csoler
013786a7b7 disabled external port+address on auto-tor mode 2023-08-31 23:18:24 +02:00
csoler
d80951cd53 added missing comment 2023-08-31 23:18:06 +02:00
defnax
1efed9d436 Fix transparency for channel post thumbnails 2023-08-29 14:28:18 +02:00
csoler
17562e727e
Merge pull request #2764 from csoler/v0.6-BugFixing_30
Bug fixing
2023-08-27 16:28:22 +02:00
PYRET1C
5433e85323 added the new token service in this file 2023-08-20 18:19:05 +05:30
csoler
811b3b3658 fixed bug not showing icons/text button on loading 2023-08-18 13:21:28 +02:00
defnax
1b8bee4262 Removed hardcorded stylesheet from PulseReplySeperator
* Fixed some dark style issues
2023-08-15 23:12:54 +02:00
defnax
3a07a268ca Added to store last used group filter 2023-08-15 21:57:42 +02:00
csoler
fd9f31987d attempt at fixing crash with gtk2 style when the proper environment variable is not set 2023-08-15 21:14:32 +02:00
csoler
eeacb4500d removed some debug output 2023-08-15 21:13:53 +02:00
csoler
e8872c6780
Merge pull request #2761 from csoler/v0.6-BugFixing_30
bug fixing
2023-08-15 19:42:46 +02:00
defnax
4a20e1b4d2 Fix to hide picture browse button on republish & like view
* Fix to hide picture browse button on republish & like view
2023-08-14 21:27:46 +02:00
csoler
685cc29415
Merge pull request #2758 from defnax/wirecroppicture
[Wire] Added crop picture feature for wire background picture
2023-08-11 09:52:18 +02:00
csoler
f6bcfb549a made delete button and delete menu item call the same functions, so as to make the actions identical 2023-08-10 23:41:51 +02:00
csoler
234a510d6f fixed possible crash in channel feed item being deleted during async loading 2023-08-10 23:28:03 +02:00
csoler
e5b111c8bb
Merge pull request #2760 from csoler/v0.6-BugFixing_30
added "copy http link" action to board posts when applicable
2023-08-07 14:48:34 +02:00
csoler
a81caa3ac1 added comment about latest changes 2023-08-06 23:18:12 +02:00
csoler
a382d58b68 fixed icon in To column of Sent box 2023-08-06 23:12:06 +02:00
csoler
3fa0b8f6d4 fixed tooltip for popularity and items in boards 2023-08-04 13:57:34 +02:00
csoler
e54322521e fixed popularity and items at friends in Board details dialog 2023-08-04 13:52:27 +02:00
csoler
46e8db7d6d fixing crash when deleting forum feed items while loading 2023-08-03 20:22:30 +02:00
csoler
5ca3b15188 added "copy http link" action to board posts when possible 2023-08-03 18:41:31 +02:00
csoler
39ae560885
Merge pull request #2759 from csoler/v0.6-BugFixing_30
GUI bug fixing
2023-07-31 20:03:40 +02:00
csoler
24dd71d15f fixed open file / preview file in TransfersDialog 2023-07-30 20:51:51 +02:00
csoler
583431852c fixed copy comment in channels/post/comment (and GXS comments in general) 2023-07-30 18:47:56 +02:00
csoler
4867d396fe
Merge pull request #2757 from csoler/v0.6-BugFixing_30
bug fixing in UI
2023-07-25 23:21:16 +02:00
defnax
311ac03790 Update wire-notify.svg 2023-07-25 20:33:09 +02:00
csoler
ade297f257 attempt at fixing unread msg count to display before GXS service tab is displayed 2023-07-24 23:45:12 +02:00
defnax
74049d1b22 Added crop picture feature for wire background picture
* Added crop picture feature for wire background picture
* Fix smooth transformation for pixmaps
* Added stylesheet for label_masthead
* Edit profile on profile page feature
* New svg icons for wire
2023-07-24 23:19:17 +02:00
csoler
1512819200 fixed compilation on arch 2023-07-24 18:35:21 +02:00
csoler
7a4558a3da added missing change in previous commit 2023-07-24 18:35:05 +02:00
csoler
5c52509e27
Merge pull request #2754 from csoler/v0.6-BugFixing_30
Various bug fixes
2023-07-19 20:35:11 +02:00
csoler
10feb45bce fixed Board posts links copy on right-click 2023-07-18 20:03:46 +02:00
csoler
030bc46d26 fixed sorting of TO column in Sent mails 2023-07-18 15:15:21 +02:00
thunder2
13ff7f4e65 Fixed Linux compile of TheWire 2023-07-18 14:34:08 +02:00
csoler
7a3c9f7efe
Merge pull request #2746 from PYRET1C/edit_account
This commit gives the edit account feature in the wire.
2023-07-17 09:40:30 +02:00
PYRET1C
cbe4fca9ae just making the actual path to relative path. 2023-07-15 19:36:48 +05:30
csoler
584dd64308
Merge pull request #2749 from csoler/v0.6-BugFixing_30
Bug fixing in channels post files
2023-07-04 22:16:00 +02:00
PYRET1C
59c6eabad9 Revert "Changes to the .pro file for the newly made files."
This reverts commit 3cc077ff38.

This commit adds the new files to the .pro file.
2023-07-02 12:48:38 +05:30
PYRET1C
680c1942df Revert "Changes to the .pro file for the newly made files."
This reverts commit 3cc077ff38.

bad commit
2023-07-02 11:29:02 +05:30
PYRET1C
3cc077ff38 Changes to the .pro file for the newly made files. 2023-07-02 10:42:40 +05:30
csoler
b4d6a7b4e4 fixed sorting of files in channels/post/files 2023-07-01 23:18:51 +02:00
csoler
d95518d17e fixed DL output path in DL list 2023-07-01 18:06:12 +02:00
csoler
fe8c81e84a fixed open file / open dir in channel/post/files 2023-07-01 00:00:46 +02:00
csoler
df68d03953 fixed item not switching to "Open/Play" when DL is finished in channel/post/files 2023-06-30 17:24:55 +02:00
csoler
bb533eefc8
Merge pull request #2747 from csoler/v0.6-BugFixing_30
2 important fixes
2023-06-29 14:23:36 +02:00
csoler
a782122742 fixed copy file link in channel post files 2023-06-28 21:48:07 +02:00
PYRET1C
ae855098cf This commit gives the edit account feature in the wire. 2023-06-27 22:16:37 +05:30
csoler
afba23882e stop GxsGroupFrameDialog from stealing the focus on summary update 2023-06-27 14:00:04 +02:00
csoler
463383e25c auto-switch to progressive instead of random when the user doesnt want random FT strategy. Added more info about this. 2023-06-26 21:07:48 +02:00
csoler
a75133d554
Merge pull request #2745 from csoler/v0.6-BugFixing_30
removed question before sending invite, since the request is not in auto mode
2023-06-24 20:49:22 +02:00
csoler
c278239f97 added warning about random FT strategy on windows 2023-06-20 21:57:51 +02:00
csoler
438489fb01 removed question before sending invite, since the request is not in auto mode 2023-06-20 21:27:41 +02:00
csoler
7fb0fb49f1
Merge pull request #2743 from csoler/v0.6-BugFixing_30
fixed uninitialized memory read in FileDetail struct causing weird dates in search dialog
2023-06-13 11:12:39 +02:00
csoler
9bbc832906 added missing initialization of "trust friends with banned files" checkbox 2023-06-04 21:30:26 +02:00
csoler
e8187dbeab moved FileDetail structure in SearchDialog where it belongs 2023-06-04 17:59:17 +02:00
csoler
2a1991fe85 Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_30 2023-06-04 16:48:42 +02:00
csoler
0c9b086bd1 added missing handle to modify mTrustFriendNodesWithBannedFiles 2023-06-04 15:12:23 +02:00
csoler
3185829219
Merge pull request #2742 from csoler/v0.6-ChannelsGUI_03
fixed sorting of files->status in channels all files list
2023-06-03 23:52:56 +02:00
csoler
3f8e8805a2 fixed uninitialized memory read in FileDetail struct causing weird dates in search dialog 2023-06-03 23:51:31 +02:00
csoler
0f41d8bf46 fixed sorting of files->status in channels all files list 2023-06-01 20:30:19 +02:00
thunder2
ad9d566767 FeedReader: Added processing of enclosure in RSS feed 2023-05-28 13:47:13 +02:00
thunder2
f9ca6cd3e1 FeedReader: Show error when some post could not be created 2023-05-28 13:47:12 +02:00
thunder2
8422d3fc8c Added copy and save of image to AspectRatioPixmapLabel 2023-05-28 13:47:12 +02:00
csoler
e829292eaf
Merge pull request #2741 from thunder2/fix_x86
Fixed x86 build
2023-05-28 11:03:33 +02:00
thunder2
d642fde9d5 Fixed x86 build 2023-05-28 00:55:23 +02:00
csoler
c579f0b0d1
Merge pull request #2738 from csoler/v0.6-FriendServer3
improved debug outpug of friendserver code
2023-05-27 14:34:18 +02:00
csoler
266f84759e
Merge pull request #2727 from PYRET1C/browse_image
[WIP] This is the gui part of the commit where the wire feed is refreshed
2023-05-27 14:33:23 +02:00
PYRET1C
852ec16c6a Removed extra refresh function calls and break statements. 2023-05-26 22:20:05 +05:30
csoler
238c6eda9f improved debug outpug of friendserver code 2023-05-25 21:35:12 +02:00
csoler
578cafe1e2
Merge pull request #2735 from ppetr/master
Fix misplaced `fsitem.h` in HEADERS and add build artifacts to `.gitignore`
2023-05-25 10:34:26 +02:00
csoler
9a23e3acdf
Merge pull request #2737 from thunder2/post-title-clickable
Make post title in board clickable after change to ElidedLabel
2023-05-23 13:54:04 +02:00
csoler
6ca9529027
Merge pull request #2736 from defnax/wirefixes11
Fix loading group tree settings
2023-05-23 13:52:40 +02:00
csoler
1d0c05fa93
Merge pull request #2734 from csoler/v0.6-Channels-002
Fixing Channel posts counting
2023-05-22 23:46:26 +02:00
PYRET1C
87282618a4 Changed the follow status changed to new wire 2023-05-23 00:27:30 +05:30
thunder2
e46f1c285c Make post title in board clickable after change to ElidedLabel 2023-05-22 07:51:40 +02:00
csoler
f667daba98 made rsGxsForum provide posts in a hierarchy, to ease the display from JSON API clients, and fixed the unread posts counting 2023-05-20 22:05:37 +02:00
defnax
fc1f1caa03 Fix loading group tree settings 2023-05-20 16:46:58 +02:00
PYRET1C
d3233dbc03 Revert "name changes"
This reverts commit b40e5e34bc.

bad commit
2023-05-19 17:06:10 +05:30
PYRET1C
b40e5e34bc name changes
name changes
2023-05-19 17:00:50 +05:30
csoler
c970e94221 moved update of comment count to libretroshare 2023-05-17 17:18:47 +02:00
Petr
44e04ea0c1 Advance submodule retroshare-webui to its latest master version
As mentioned in https://github.com/RetroShare/RetroShare/issues/2732#issuecomment-1549228796.
2023-05-16 10:47:54 +02:00
Petr
93f010b8ab
Merge branch 'RetroShare:master' into master 2023-05-15 22:15:23 +02:00
Petr
b9e4bac510 Add various build artifacts to .gitignore 2023-05-15 22:14:07 +02:00
Petr
1ea18a583f Remove fsitem.h from the list of headers
It is now a part of libretroshare.
2023-05-15 22:07:30 +02:00
csoler
e25d8e50fc changed naming of posts to items, since it counts votes and comments as well 2023-05-15 21:57:09 +02:00
csoler
6775a64ed5 factored the collection of latest channel post versions and added a proper counting for new/unread posts 2023-05-15 21:54:27 +02:00
csoler
c95a0edd60
Merge pull request #2730 from defnax/wirefixes11
Fixed margins to remove wasting spaces [wire]
2023-05-15 11:14:38 +02:00
csoler
d70e343cb2
Merge pull request #2731 from csoler/v0.6-BugFixing_29
added missing updateIcon() in messageUserNotify
2023-05-15 11:13:53 +02:00
csoler
712ea96f24
Merge pull request #2733 from ppetr/master
Update the tracked `libretroshare` submodule.
2023-05-15 11:13:16 +02:00
Petr
01506127c5 Re-enable creation of AppVeyor artifacts to provide nightly builds
Fixes #2651.

They were disabled in 05116b8311 in 2019.
But since then in 2021 the retention [policy] has changed and artifacts
are now kept only for 1 month (for free accounts).

[policy]: https://www.appveyor.com/blog/2021/03/30/artifacts-retention-policy-update/
2023-05-15 10:33:54 +02:00
Petr
65b1a5bce2 Update the tracked libretroshare submodule.
Fixes #2732.
2023-05-14 22:06:44 +02:00
defnax
f54be58088 Use ElidedLabel on PeerItem to not stretch the widget
* Use ElidedLabel on PeerItem to not stretch the widget
2023-05-12 20:41:27 +02:00
PYRET1C
726c42852c This commit removed the refresh button and edited some events for the retro share wire. 2023-05-09 23:18:34 +05:30
csoler
9c6bfc7847 added missing updateIcon() in messageUserNotify 2023-05-09 10:33:34 +02:00
thunder2
67dd1999a5 Windows Build: Added update of MSYS2 to prepare script 2023-05-08 14:48:00 +02:00
thunder2
e1934fd9b0 Added missing include stdint.h to Histogram.h 2023-05-08 08:00:55 +02:00
defnax
77d275c7f0 Fixed margins to remove wasting spaces
Fixed margins to remove wasting spaces
Fixed to hide desc groupbox instead of only desc text,
2023-05-07 20:22:24 +02:00
csoler
782944727c
Merge pull request #2724 from csoler/v0.6-BugFixing_29
fixed keeping new zoom size when resizing the channel post window
2023-05-07 17:10:13 +02:00
csoler
082603917c fixed crash in setting posted items as read 2023-05-07 17:09:00 +02:00
csoler
2f2495455f Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_29 2023-05-07 17:07:59 +02:00
thunder2
40adcd2db1 Windows Build Environment: Added missing target "error" to git-log.bat 2023-05-06 21:50:47 +02:00
thunder2
180b7d3703 FeedReader: Added process of response code 403 and added user agent 2023-05-06 20:36:08 +02:00
thunder2
ff183ee98b FeedReader: Reduced the height of the dialog for creating a feed 2023-05-06 20:36:08 +02:00
thunder2
af562cb4ca FeedReader: Added shrink of images for board post 2023-05-06 20:36:08 +02:00
thunder2
e25c148c27 FeedReader: Changed save type for IndicateConfigChanged in service to SAVE_NOW 2023-05-06 20:36:07 +02:00
thunder2
b14fecfc2a FeedReader: Message of a local feed can be added as forum and board message 2023-05-06 20:36:07 +02:00
thunder2
bcb4e52768 Added methods to set title, notes and link on PostedCreatePostDialog from outside 2023-05-06 20:36:06 +02:00
thunder2
63390fddee FeedReader: Renamed enum RsFeedAddResult to RsFeedResult 2023-05-06 20:36:06 +02:00
thunder2
186976e209 FeedReader: The feed can be moved with drag and drop to a folder 2023-05-06 20:36:05 +02:00
thunder2
571f709b50 FeedReader: The feed can be used as source for board 2023-05-06 20:36:05 +02:00
thunder2
ecffb3cb7f FeedReader: Fixed download of favicon 2023-05-06 20:36:04 +02:00
thunder2
7070a6cad6 FeedReader: Fixed compile of FeedReader plugin 2023-05-06 20:36:04 +02:00
csoler
a3eae71f0b
Merge pull request #2728 from csoler/v0.6-Turtle-001
Simple change to make SearchDialog use RsEvents to catch turtle search results
2023-05-06 18:09:38 +02:00
Tushar Garg
9c950affcf
Merge branch 'RetroShare:master' into browse_image 2023-05-05 16:08:01 +05:30
csoler
93d7589a94 removed unused notifyQt calls to notify turtleSearch results 2023-05-04 22:30:41 +02:00
csoler
beed6a08c8 made SearchDialog to use RsEvents in order to catch turtle search results 2023-05-04 22:30:06 +02:00
PYRET1C
dbddf7166f This is the gui part of the commit where the wire feed is refreshed if there is any event published. 2023-05-02 23:50:37 +05:30
csoler
ea346b5d2a fixed keeping new zoom size when resizing the channel post window 2023-04-27 22:46:07 +02:00
csoler
0bd4cdae19
Merge pull request #2717 from defnax/ui-fixesv2
Fixed to get resizable people page
2023-04-26 11:05:58 +02:00
csoler
669982bc5b
Merge pull request #2718 from defnax/wirefixes10
Picture attachments improved [Wire]
2023-04-26 10:21:35 +02:00
csoler
e69f788f85
Merge pull request #2723 from csoler/v0.6-BugFixing_29
removed double saving of distant chat permissions (GUI + libretroshar…
2023-04-26 10:20:25 +02:00
csoler
a04ab8664f removed double saving of distant chat permissions (GUI + libretroshare) leading to inconsistencies 2023-04-25 21:26:26 +02:00
csoler
242b5229d1
Merge pull request #2721 from csoler/v0.6-BugFixing_28
removed multiple references to temporary passed accross threads, caus…
2023-04-25 11:34:19 +02:00
csoler
35e08e3b66 fixed keeping post sizes when selelecting unread posts 2023-04-25 11:33:37 +02:00
csoler
0ff4426d72 removed multiple references to temporary passed accross threads, causing random crashes 2023-04-23 22:47:33 +02:00
defnax
f06506ec54 Corrected checkbox text 2023-04-23 19:31:30 +02:00
csoler
e1e95a1562
Merge pull request #2719 from csoler/v0.6-BugFixing_28
fixed layout update problem when switching channels
2023-04-23 13:15:01 +02:00
csoler
2ab012261b fixed wrong column size when first showing the channel posts tab 2023-04-22 22:50:53 +02:00
csoler
3e35ce4ddd improved the logic to make the channel layout update faster 2023-04-22 18:16:04 +02:00
csoler
9d956f6126 fixed layout update problem when switching channels 2023-04-22 16:19:04 +02:00
csoler
7d70ecdd65
Merge pull request #2716 from csoler/v0.6-BugFixing_28
fixed right-click menu on board posts
2023-04-22 15:04:59 +02:00
csoler
2cb8736804 fixed update of forum when marking msg as read/unread with children 2023-04-22 15:02:32 +02:00
defnax
a71d6e2430 Picture attachments improved
* Added a remove button to clear pictures
* Improved picture attachments
2023-04-20 23:26:57 +02:00
defnax
7858db9b2c Use ElidedLabel for post name Label 2023-04-20 19:48:13 +02:00
defnax
d04c28cffc Fixed to get reizable people page
* Fixed to get resizable people page
* Moved text for auto ban as tooltip, keep short text for the checkbox
* Removed empty wasting spacer from Boards bar
2023-04-20 19:00:51 +02:00
csoler
6476cfa4e0
Merge pull request #2711 from defnax/copyimage-clipboard
update paste image icon
2023-04-19 20:56:34 +02:00
csoler
1ebff07067
Merge pull request #2715 from thunder2/imageutil
Moved RSTextBrowser::checkImage to ImageUtil for use in MimeTextEdit
2023-04-19 20:46:37 +02:00
csoler
83a5d472d4
Merge pull request #2714 from defnax/fix-boards-posteditem
Use ElidedLabel for title in PostedItem
2023-04-19 20:45:10 +02:00
csoler
690c869444
Merge pull request #2713 from thunder2/boards_elidedlabel
Use ElidedLabel for title in BoardsPostDisplayWidget
2023-04-19 20:44:40 +02:00
csoler
4a69380848 fixed right-click menu on board posts 2023-04-19 20:43:12 +02:00
thunder2
7b28bf5256 Moved RSTextBrowser::checkImage to ImageUtil for use in MimeTextEdit 2023-04-19 01:12:22 +02:00
defnax
c250b229ed Added ElidedLabel for title in PostedItem 2023-04-18 20:10:52 +02:00
thunder2
1400d91ef6 Use ElidedLabel for title in BoardsPostDisplayWidget 2023-04-18 14:15:59 +02:00
defnax
bf7c2f7b10 update paste image 2023-04-17 22:35:10 +02:00
csoler
44bb2c0f05
Merge pull request #2710 from defnax/copyimage-clipboard
Added copy image to clipboard feature
2023-04-17 22:16:39 +02:00
defnax
3004505832 Added copy image to clipboard feature 2023-04-17 21:01:57 +02:00
csoler
8dfa772782
Merge pull request #2706 from thunder2/SaveImage
Moved QAction for saving an image from customContextMenu of GxsForumT…
2023-04-17 19:56:17 +02:00
csoler
a61c32d84c
Merge pull request #2705 from defnax/boardspasteicon
Added paste icon for paste button - boards
2023-04-17 19:48:19 +02:00
csoler
b64e4d5645
Merge pull request #2708 from thunder2/CreateGxsForumMsg
Removed include of ui_CreateGxsForumMsg.h from CreateGxsForumMsg.h
2023-04-17 13:59:00 +02:00
csoler
7911622d17
Merge pull request #2703 from defnax/wireaccountbox
Display on account selection box the headShot image
2023-04-17 13:55:34 +02:00
csoler
09d293909a
Merge pull request #2709 from thunder2/PostedCreatePostDialog
Removed unnecessary include in PostedCreatePostDialog.h
2023-04-17 13:51:49 +02:00
csoler
66b2d7c81c
Merge pull request #2685 from csoler/v0.6-Channels-001
Improvement of channel version sync (Needs PR #80)
2023-04-16 23:36:22 +02:00
thunder2
4802de9e52 Removed include of ui_CreateGxsForumMsg.h from CreateGxsForumMsg.h 2023-04-16 16:29:47 +02:00
thunder2
09dd588e7f Removed unnecessary include in PostedCreatePostDialog.h 2023-04-16 16:27:39 +02:00
thunder2
dceda36f6e Moved QAction for saving an image from customContextMenu of GxsForumThreadWidget and ChatWidget to RSTextBrowser 2023-04-15 22:21:34 +02:00
defnax
cd14b2e9bb Added paste icon for boards 2023-04-15 19:30:00 +02:00
defnax
bf0ae5e1ee Dsplay on account selection box the headshot image 2023-04-14 23:19:47 +02:00
csoler
02ad585c2c
Merge pull request #2701 from PYRET1C/browse_image
This PR adds a browse button for the wire for image addition functionality.
2023-04-14 14:18:23 +02:00
PYRET1C
b543281bb3 this commit changed the QFileDialog::getOpenFileName to misc::getOpenFileName 2023-04-14 17:24:37 +05:30
PYRET1C
df8e6b9f96 Revert "this commit changed the QFileDialog::getOpenFileName to misc::getOpenFileName"
This reverts commit 5fae434f03.
2023-04-14 17:21:45 +05:30
PYRET1C
5fae434f03 this commit changed the QFileDialog::getOpenFileName to misc::getOpenFileName 2023-04-14 17:19:32 +05:30
csoler
1ff68e097c
Merge pull request #2696 from defnax/toastersettings
moved popup settings for toasters
2023-04-14 09:50:57 +02:00
csoler
29c66b91e1
Merge pull request #2700 from defnax/pastepicture-boards
Added paste picture from clipboard feature for picture posts
2023-04-14 09:13:09 +02:00
csoler
a7b2091bb8 added a waiting cursor when loading a channel 2023-04-13 21:51:37 +02:00
csoler
e786669dc2
Merge pull request #2702 from csoler/v0.6-BugFixing_28
fixed crash due to calling a method in board item after deletion
2023-04-13 21:35:40 +02:00
csoler
3c583f6724 fixed crash due to calling a method in board item after deletion 2023-04-12 23:11:45 +02:00
PYRET1C
f06fa656b8 This commit added a browse button the wire for image addition functionality. 2023-04-12 22:32:17 +05:30
defnax
6590a17eb6 Added paste picture from clipboard feature for picture posts 2023-04-11 21:59:00 +02:00
thunder2
c90ea518c5 FeedReader: Fixed embedding of images with https 2023-04-10 21:17:49 +02:00
csoler
2baec2baab
Merge pull request #2699 from PYRET1C/autodownload_size
Autodownload size
2023-04-10 16:43:36 +02:00
Tushar Garg
fe92431cb6 This is the UI part of the auto download adjustable size feature. 2023-04-10 07:06:59 +05:30
Tushar Garg
19de7c627b Merge branch 'Auto_download' 2023-04-09 22:12:04 +05:30
Tushar Garg
23dd7270f9 Revert "Merge remote-tracking branch 'upstream/master'"
This reverts commit c390af5844, reversing
changes made to 1553508776.

bad commit needs to be reverted
2023-04-09 22:07:35 +05:30
Tushar Garg
2fe8bcc8fd Revert "Merge remote-tracking branch 'upstream/master'"
This reverts commit c390af5844, reversing
changes made to 1553508776.

bad commit needs to be reverted
2023-04-09 22:03:45 +05:30
Tushar Garg
b3f55c5b51 Revert "Revert "Adeed a new spin box in the gui to track the variable which stores the maximum size limit allowed for autodownload in channels.""
This reverts commit e89ad86da0.

revert the reverted commits
2023-04-09 18:48:15 +05:30
Tushar Garg
e89ad86da0 Revert "Adeed a new spin box in the gui to track the variable which stores the maximum size limit allowed for autodownload in channels."
This reverts commit 7dabc1ff9b.

Forgot to open a new branch
2023-04-09 18:34:08 +05:30
Tushar Garg
c390af5844 Merge remote-tracking branch 'upstream/master' 2023-04-09 18:21:59 +05:30
Tushar Garg
7dabc1ff9b Adeed a new spin box in the gui to track the variable which stores the maximum size limit allowed for autodownload in channels.
This spin box was linked to the variable from the p3gxschannel.h file. This spin box has 8GB as it's default value.
2023-04-09 18:10:16 +05:30
csoler
7299ace57a re-enabled channel debug output 2023-04-08 18:04:22 +02:00
csoler
1553508776
Merge pull request #2697 from thunder2/webui
Changed path of webui submodule to relative path
2023-04-08 17:42:05 +02:00
thunder2
05c3f1f6e9 Changed path of webui submodule to relative path 2023-04-07 19:14:05 +02:00
defnax
22a9cf4236 moved popup settings for toasters 2023-04-07 16:23:46 +02:00
csoler
2723022a7e Merge remote-tracking branch 'upstream/master' into v0.6-Channels-001 2023-04-04 16:26:14 +02:00
csoler
e7ff1b15b7
Merge pull request #2694 from csoler/v0.6-BugFixing_27
fixed bug preventing completed files removal to clear the files counter
2023-04-03 22:09:32 +02:00
csoler
783a0a586f fixed bug preventing completed files removal to clear the files counter 2023-04-03 22:06:42 +02:00
thunder2
b124222d87 Windows build environment:
- Fixed download of Tor binaries
- Fixed download of doxygen
- Updated MSYS2 installer
- Changed build of WebUI
2023-04-02 13:19:59 +02:00
Tushar Garg
4f1bdbca70 commiting changes 2023-04-02 15:22:36 +05:30
csoler
71f87cf839 Merge branch 'v0.6-Channels-001' of github.com:csoler/RetroShare into v0.6-Channels-001 2023-03-31 16:17:08 +02:00
csoler
c81bdd9932 fixed merge 2023-03-31 16:16:13 +02:00
csoler
cccc6d4251
Merge branch 'master' into v0.6-Channels-001 2023-03-31 16:07:10 +02:00
csoler
8475a7424d
Merge pull request #2681 from csoler/v0.6-BugFixing_20
Attempt at not reloading full channel data at every change (needs PR #81)
2023-03-30 10:33:38 +02:00
csoler
cc93a6da1a using orange color for unread comment bubble in channel post widget, and fixed the color update when new comment arrives 2023-03-29 20:46:41 +02:00
csoler
48c959c858 fixed bug in setting msg as read 2023-03-27 21:27:07 +02:00
csoler
eb018b2fd0
Merge pull request #2691 from defnax/toaster-fix
Fixed Toasters
2023-03-27 21:15:38 +02:00
csoler
09e66cbde4 code cleaning/disabled debug output 2023-03-26 23:03:09 +02:00
csoler
e63ff4d7db made setAllMsgAsRead faster in channels, avoiding to reload all posts 2023-03-26 22:49:08 +02:00
defnax
5f54db577c Fixed Toasters
Fixed Online, Download Complete, Mail & FR Toaster
2023-03-26 20:00:13 +02:00
csoler
191d7ac96e improved debug output 2023-03-26 16:29:12 +02:00
csoler
3316d75630 fixed bug accessing a potentially deleted object of the parent thread 2023-03-26 16:29:00 +02:00
csoler
16137f60ff
Merge pull request #2690 from PYRET1C/Download_sound_bug
Download sound bug
2023-03-25 22:35:58 +01:00
Tushar Garg
e8354aa3d3 Just added a empty line in the header file section. 2023-03-26 02:18:03 +05:30
Tushar Garg
43d8432dcc This commit fixed the Download_Complete sound not working when a download is completed. 2023-03-26 02:12:49 +05:30
csoler
e4910cf8fd fixed update of comment/unread comment count when a new version of a msg arrives 2023-03-24 13:48:48 +01:00
csoler
dec1d3068b fixed 2 bugs in post display 2023-03-23 22:07:28 +01:00
csoler
141ee0b7e0 fixed bug in updating filtered posts 2023-03-23 21:13:38 +01:00
csoler
aba0ffa581 finished the system to perform lighter updates of channels 2023-03-23 17:04:22 +01:00
csoler
a37ee4673f half-implemented the system to perform lighter updates of channels 2023-03-22 09:08:27 +01:00
csoler
548ef00960 enabled channel post model debug 2023-03-21 21:08:30 +01:00
csoler
8f9d99a232
Merge branch 'master' into v0.6-BugFixing_20 2023-03-21 21:06:58 +01:00
csoler
7bf4213011
Merge pull request #2689 from csoler/v0.6-WebUI-001
added RSNewWebUI as a submodule so as to help packaging
2023-03-15 17:46:09 +01:00
csoler
7314de8a80 added RSNewWebUI as a submodule so as to help packaging 2023-03-12 21:00:33 +01:00
csoler
3b9886a747 fixed channel mode debug output 2023-03-12 17:43:09 +01:00
csoler
d9c9363b05
Merge pull request #2687 from csoler/v0.6-BugFixing_26
fixed filtering of messages in Mail
2023-03-10 16:17:21 +01:00
csoler
9eb2096a71 fixed filtering of messages in Mail 2023-03-08 20:44:47 +01:00
csoler
04d10d7fd3 quick bug fix for crash in server page 2023-03-07 09:28:16 +01:00
csoler
9aa0619992
Merge pull request #2678 from defnax/fixupdatetree
Fixed update groupbox counting for members in circle creator
2023-03-04 17:21:12 +01:00
csoler
266a4252de
Merge pull request #2679 from jolavillette/AddJpegExtensionForStickers
Allow .jpeg files as stickers
2023-03-04 17:19:41 +01:00
csoler
0f7e9ef3d1
Merge pull request #2680 from defnax/fixwirepictures
Fixed picture show
2023-03-04 17:18:52 +01:00
csoler
b3dba19b72
Merge pull request #2655 from RetroPooh/tor-status-fix
tor status fix for unconfigured, add update on settings change; fix i2p out led status
2023-03-04 17:18:02 +01:00
csoler
36de6d34b5 switch from createPost() to createPostV2() in channels 2023-03-03 00:08:33 +01:00
csoler
97265dddab updated algorithm for sorting channel posts with debug info and collection of all post versions 2023-03-02 22:55:58 +01:00
csoler
9d575ddca1 implemented new algorithm for sorting channel posts 2023-03-02 09:46:16 +01:00
csoler
01c63a6d41
Merge pull request #2684 from csoler/v0.6-BugFixing_25
fixed crash when canceling DL from channel files list
2023-02-18 20:48:07 +01:00
csoler
456d742cd1 only show unread and grid view buttons when posts tab is selected 2023-02-18 20:31:25 +01:00
csoler
5069a1a10e fixed filtering of files in channels 2023-02-18 17:01:29 +01:00
csoler
f6c584183b fixed crash when canceling DL from channel files list 2023-02-17 23:56:35 +01:00
csoler
43fd84e777 attempt at not reloading full channel data at every change 2023-02-09 23:32:19 +01:00
csoler
c06da99757 attempt at not reloading full channel data at every change 2023-02-09 23:27:43 +01:00
defnax
dcc4242ae6 Fixed picture show 2023-02-01 22:53:18 +01:00
jolavillette
ec97bb975e Allow .jpeg files as stickers 2023-02-01 21:45:22 +01:00
defnax
7c8e80e89b Fixed update groupbox counting for members 2023-01-31 21:40:15 +01:00
csoler
9442d87644
Merge pull request #2676 from csoler/v0.6-BugFixing_20
re-created PR 2382 (#Phenom) to match new layout based on submodules
2023-01-29 20:56:32 +01:00
csoler
a9c512c1f0 re-created PR 2382 (#Phenom) to match new layout based on submodules 2023-01-29 20:53:25 +01:00
csoler
3c17e34ed6
Merge pull request #2675 from csoler/v0.6-BugFixing_20
GUI improvements/fixes
2023-01-29 17:50:34 +01:00
csoler
30c2ff4b5e fixed bug introduced by last commit 2023-01-29 14:13:13 +01:00
csoler
7a49099952 added sorting of selected items on top in moderator selection list of forum edit dialog 2023-01-28 21:10:45 +01:00
csoler
95e9d76af9 fixed forum moderators not selected in edit dialog 2023-01-28 16:47:36 +01:00
csoler
641281048f added force recheck of possibly modified files when the button is used 2023-01-28 16:29:36 +01:00
csoler
2842af3a6e
Merge pull request #2672 from defnax/fixesv2
Changed Moderators list to use with a Label, less space is used then …
2023-01-28 14:18:36 +01:00
csoler
3dca053fb5
Merge pull request #2670 from csoler/v0.6-BugFixing_20
fixed advanced search not using browsable/distant/own files
2023-01-28 14:16:06 +01:00
csoler
25ea4f746c
Merge pull request #2673 from defnax/fixesv3
Stylesheet fix
2023-01-28 14:15:05 +01:00
csoler
7082372446
Merge pull request #2674 from defnax/fixesv4
Added to show on New Board/New Channel feed last updated time
2023-01-28 14:13:22 +01:00
defnax
c518fd0e42 Added to show on New Board/New Channel feed last updated time
Added to show on New Board/New Channel feed last updated time
2023-01-28 13:48:26 +01:00
defnax
1915187374 Stylesheet fix 2023-01-28 13:45:18 +01:00
defnax
943a6cdd4d Changed Moderators list to use with a Label, less space is used then before
Changed Moderators list to use with a QLabel, less space is used then before
2023-01-28 13:43:23 +01:00
csoler
38725628b0 fixed advanced search not using browsable/distant/own files 2023-01-23 20:23:18 +01:00
csoler
a0de2e76db
Merge pull request #2669 from csoler/v0.6-ImprovedGUI2
switched all image outputs to jpeg format instead of png
2023-01-19 09:52:26 +01:00
csoler
e2d9238ded
Merge pull request #2666 from csoler/v0.6-BugFixing_20
Bug Fixing
2023-01-19 09:49:43 +01:00
csoler
d833ed185a added comments 2023-01-17 22:37:32 +01:00
csoler
ffe76f03a2 fixed comparisions, accounting for multiple inversions in the code 2023-01-17 22:33:07 +01:00
csoler
b87e450207 invert lower/greater conditions to be consistent with how comparisons are performed in rsexpr.h 2023-01-17 21:52:27 +01:00
csoler
6a28727e76 fixed date search 2023-01-17 20:00:55 +01:00
csoler
41317b6fe3 Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_20 2023-01-17 18:49:56 +01:00
csoler
e60ee730b4 fixed bug in quality of html-embedded images 2023-01-16 22:23:58 +01:00
csoler
7aacfb9aef added auto-choose of image format when transparency is present 2023-01-16 22:11:44 +01:00
csoler
de1b8f08d2 added auto-chose of image format if there is no transparency 2023-01-16 21:24:16 +01:00
csoler
516e4f7c12 added parameter to specify format to optimizeImageSize() 2023-01-16 21:11:18 +01:00
csoler
31bdd6c226 keep PNG for avatars 2023-01-16 20:16:44 +01:00
csoler
0a8f4b1b6e switched all image outputs to jpeg format instead of png 2023-01-16 19:53:20 +01:00
csoler
03e244a7af added handling of weak parameters certificate rejection case 2023-01-15 15:19:46 +01:00
csoler
737a753c2c fixed bug in range search 2023-01-08 18:41:17 +01:00
csoler
54cffac521 simplified logic of interval calculation for exact size search 2023-01-08 10:44:32 +01:00
csoler
fa071a1c50 improved expression widget so as to convert size Equal searches into a proper range 2023-01-07 15:08:10 +01:00
csoler
f65a761c9d
Merge pull request #2663 from csoler/v0.6-BugFixing_20
Bug fixing
2023-01-04 21:36:47 +01:00
csoler
e60fead024
Merge pull request #2665 from AskOldIch/master
Added new association with "new" extensions
2023-01-04 21:35:42 +01:00
AskOldIch
2cf95b410d
Added icons association with extensions
- .webm -- basically is full video container (video+audio)
- .weba -- is only audio stream
- .webp -- is a picture
2023-01-03 16:57:42 +00:00
AskOldIch
c1b7105321
Added extensions to SearchDialog
- .webm -- basically is full video container (video+audio)
- .weba -- is only audio stream
- .webp -- is a picture
2023-01-03 16:54:03 +00:00
AskOldIch
cae7797b55
Added "previewable" for .webm and .weba extension
- .webm -- basically is full video container (video+audio)

- .weba -- is only audio stream
2023-01-03 16:47:15 +00:00
csoler
1447306d65 not erasing clipboard when no links are selected 2022-12-28 21:15:27 +01:00
csoler
96a2f18571 fixed preserving order of links copied from search dialog results 2022-12-28 21:02:05 +01:00
csoler
0ce6b5f375 attempt to fix the display of new msgs and icon in GXS toolbar items at start 2022-12-27 23:01:26 +01:00
csoler
5d3737f9b4
Merge pull request #2662 from csoler/v0.6-BugFixing_20
Bug fixing
2022-12-25 17:35:30 +01:00
csoler
09c040e3f0
Merge pull request #2661 from defnax/featuretoexpandv2
[Messages] Feature to expand To field V2
2022-12-24 15:55:53 +01:00
csoler
74dbef06be fixed default page in preferences->network 2022-12-24 10:29:50 +01:00
csoler
c0024e3487 hide/disable unnecessary Tor widgets in auto-tor mode and show outgoing I2P widgets 2022-12-24 10:29:08 +01:00
defnax
d3d672dc0d Added feature to expand To field
* Added feature to expand To field
* Fixed TreeVersion
2022-12-20 21:51:21 +01:00
Gioacchino Mazzurco
12ef7240e9
Update bitdht submodule after bdboot.txt path fix 2022-12-12 18:06:54 -03:00
Gioacchino Mazzurco
e2eb0d27a2
Update submodules 2022-12-12 16:08:56 -03:00
csoler
97390d3f44
Merge pull request #2658 from csoler/v0.6-BugFixing_20
Full rework on Mail system
2022-12-12 13:55:05 +01:00
csoler
992d5c30d3 fixed deletion of outgoing messages 2022-12-07 18:30:03 +01:00
csoler
bc0bef07de new attempt to fix limited sidebar width in mail composer 2022-12-06 16:19:26 +01:00
csoler
1bcbbf1248 fixed bold/boxsize in Mails 2022-12-06 15:47:02 +01:00
csoler
ad584e0fff removed max size in friend selection widget of Msg composer 2022-12-06 15:25:16 +01:00
csoler
93746f5075 fixed removing/displaying message tags in tags menu 2022-12-04 21:18:41 +01:00
csoler
7b78b87c65 fixed coumn visibility depending on box 2022-12-04 18:46:19 +01:00
csoler
a7570b70eb fixed proper setting of "from" field when heterogeneous destinations are used 2022-12-03 23:45:31 +01:00
csoler
8185dba0d8 fixed bug causing wrong "from" field in sent messages 2022-12-03 15:59:05 +01:00
csoler
6327ccf6ae using explicit column resize since Qt4 is not supported anymore 2022-12-03 14:06:21 +01:00
csoler
0528bf4b50 fixed quick view filters, loading of drafts (from previous format), uniqueness of message Ids 2022-12-01 21:02:10 +01:00
Gioacchino Mazzurco
83e3dc708b
Use non-EOL ubuntu base image for GitlabCI 2022-12-01 13:36:36 -03:00
csoler
006f4c53be removed mMsgTagIds since tags are not in RsMailStorageItem struct 2022-11-30 15:25:38 +01:00
csoler
0db41deb9f fixed bugs in Mail display 2022-11-28 17:08:02 +01:00
csoler
7b0d501c1e fixed trick for own Ids in GxsIdTreeWidgetItem 2022-11-27 20:37:05 +01:00
csoler
6a2886da40 fixed some UI bugs in Mail 2022-11-27 18:36:42 +01:00
csoler
ea4df6306b fixed multiple glitches in Mail UI 2022-11-25 15:15:19 +01:00
csoler
2d024c0d6f made GxsIdChooser to auto update when identities are added/created/modified 2022-11-23 21:48:09 +01:00
csoler
302e87e476 fixing some UI errors in Mail 2022-11-23 21:18:11 +01:00
csoler
8bcb531cd3 fixed a few glitches in Mail GUI 2022-11-22 23:08:42 +01:00
csoler
3ac97b24a8 saving current work on big pass over Mail 2022-11-21 14:18:25 +01:00
RetroPooh
0b5cddb299 tor status fix for unconfigured, add update on settings change;
fix i2p out led status
2022-11-18 23:07:38 +03:00
csoler
ba4982f2ca changed Mail interface to use the generic MsgAddress type instead of the GxsId/RsPeerId combination 2022-11-15 11:03:23 +01:00
csoler
3155e0bb60
Merge pull request #2646 from csoler/v0.6-BugFixing_20
Bug fixing
2022-11-12 22:02:03 +01:00
csoler
4e0bd19182 fixed uninitialized memory read in ConnectFriendWizard 2022-11-10 19:48:45 +01:00
csoler
3e4fed59bc
Merge pull request #2645 from csoler/v0.6-TorControl3
added some documentation to the friend server
2022-11-09 19:55:16 +01:00
csoler
03a576589e allow user to supply his own Tor executable 2022-11-07 21:10:55 +01:00
csoler
d6aa58d52c added some documentation to the friend server 2022-11-05 20:17:55 +01:00
csoler
f22671dda9
Merge pull request #2643 from csoler/v0.6-TorControl3
V0.6 tor control3
2022-11-04 22:44:33 +01:00
csoler
f7c22af995 improved debug output 2022-11-02 21:03:20 +01:00
csoler
486aa83680 added parameter to supply user defined tor executable path 2022-11-02 21:00:24 +01:00
csoler
1474dfdd66
Merge pull request #2640 from csoler/v0.6-TorControl3
added control over received peers from FS
2022-10-28 14:05:10 +02:00
csoler
666f01452b added auto-test of saved onion address for FS 2022-10-28 11:41:41 +02:00
csoler
4d386e9cf1 added online status for FS 2022-10-25 14:19:57 +02:00
csoler
24ad687c7f added control over received peers from FS 2022-10-25 09:37:42 +02:00
csoler
b7d3042bd9
Merge pull request #2638 from csoler/v0.6-TorControl3
Added more info to display in GUI part or FS
2022-10-20 20:18:31 +02:00
csoler
5847b08766 added display of friend status in FS 2022-10-19 17:24:58 +02:00
csoler
9009326970
Merge pull request #2637 from defnax/fixbwgraph
fix storing graph style
2022-10-14 09:28:58 +02:00
defnax
2702edab30 fix storing graph style 2022-10-13 23:10:24 +02:00
csoler
efa00b2802 changed the underlying logic of FS to allow UI to get information about ongoing connections 2022-10-13 16:24:14 +02:00
csoler
0eda08f881
Merge pull request #2636 from csoler/v0.6-TorControl3
fixed compilation on windows
2022-10-06 20:30:19 +02:00
csoler
f3ee68411d added missing documentation in BinInterface::readdata(), and fixed bug in FdBinInterface not implementing readdata() correctly 2022-10-06 14:26:53 +02:00
csoler
d307b46c15 added async testing of friend server 2022-10-03 23:06:08 +02:00
csoler
6c4e918b36 fixed compilation on windows 2022-10-03 18:35:52 +02:00
csoler
c3c12a1a47
Merge pull request #2634 from csoler/v0.6-TorControl3
fixed bug in friendserver randomly dropping some incoming packets
2022-09-28 09:28:29 +02:00
csoler
87be1e353e fixed bug in friendserver randomly dropping some incoming packets 2022-09-27 23:56:17 +02:00
csoler
2c67817581 fixed font problem introduced in last commit 2022-08-21 12:18:01 +02:00
csoler
430bed95de
Merge pull request #2631 from csoler/v0.6-FileTransfer
using actual limits for max TR/s in the GUI
2022-08-19 18:38:51 +02:00
csoler
c167fb8448 using actual limits for max TR/s in the GUI 2022-08-19 18:36:11 +02:00
csoler
8595425e0b
Merge pull request #2629 from csoler/v0.6-TokenSystem
continue cleaning the old token system
2022-08-16 22:32:13 +02:00
csoler
b4d2904adf fixed two bugs in Create/Edit circle dialog, causing crashes 2022-08-16 22:12:37 +02:00
csoler
b784b6a3e8 Merge remote-tracking branch 'upstream/master' into v0.6-TokenSystem 2022-08-16 21:47:39 +02:00
csoler
ad7ae6905c
Merge pull request #2630 from thunder2/fix-crash-forummsgitem
Fixed crash when closing forum message item in activity stream with s…
2022-08-05 22:10:24 +02:00
thunder2
807232ffa5 Fixed crash when closing forum message item in activity stream with set as read and remove 2022-08-05 19:02:48 +02:00
csoler
82f981c9db continue cleanign the old token system 2022-08-04 19:10:47 +02:00
csoler
bc03a9b019
Merge pull request #2627 from csoler/v0.6-TokenSystem
added "Loading..." message when loading posts in channels
2022-07-18 14:51:42 +02:00
csoler
43fb720a98 fixed update of Forum msg creation window 2022-07-18 14:49:58 +02:00
csoler
bbe2fdc5df Merge remote-tracking branch 'upstream/master' into v0.6-TokenSystem 2022-07-18 10:12:10 +02:00
csoler
d143355a09 added "Loading..." message when loading posts in channels 2022-07-13 16:00:47 +02:00
thunder2
4cba9815f8 Added Doxygen to Windows MinGW build 2022-07-12 21:09:16 +02:00
csoler
c280d030aa
Merge pull request #2623 from csoler/v0.6-TokenSystem
V0.6 token system
2022-07-12 15:19:33 +02:00
csoler
a1c33bf172 removed unused include 2022-07-11 23:15:09 +02:00
csoler
0488293a1f removed more token queue system from forums and comments 2022-07-10 21:34:24 +02:00
csoler
ac4b9b2971 removed token system from GxsCommentDialog 2022-07-09 22:33:42 +02:00
csoler
1089d1470e update posts list after vote 2022-07-09 15:49:33 +02:00
thunder2
e0c3f27469 Fixed generating changelog in Windows MinGW build 2022-07-08 22:02:20 +02:00
csoler
73279db2c5 removed tokens from boards and added missing blocking API calls 2022-07-06 17:13:34 +02:00
csoler
cdc650540b removed token queue from CreateCircleDialog 2022-07-04 17:25:11 +02:00
csoler
54fd77822d fixed blocking API for votes 2022-06-30 14:43:04 +02:00
thunder2
f4f799ec58 Windows MinGW build:
- Upgraded MSYS2
- Upgraded OpenSSL-1.1.1p
- Added build of WebUI
2022-06-23 01:40:47 +02:00
csoler
cf61cb3780 fixed bug introduced by last commit 2022-06-22 21:07:29 +02:00
csoler
299ad1b1e1 removed TokenQueue in CommentsTreeWidget for the display of comments 2022-06-22 19:07:35 +02:00
csoler
819dc173e0 removed TokenQueue from GxsMessageFrameWidget 2022-06-22 15:43:57 +02:00
csoler
6411d5507f fixed compilation 2022-06-22 15:36:27 +02:00
csoler
fd3a434e71 removed token queue traces left in IdEdit and IdDetail dialogs 2022-06-22 15:15:48 +02:00
csoler
1ced2ff7f9 cleaned CirclesDialog.cpp 2022-06-22 15:15:09 +02:00
csoler
8ab9adacef removed token queue from circles 2022-06-22 15:13:07 +02:00
csoler
52dffddf64
Merge pull request #2619 from chelovechishko/chat_amusement
gui: chat: add auto shrink chattextedit
2022-05-11 21:23:48 +02:00
csoler
1056be1899
Merge pull request #2609 from defnax/removeavatarbtn
Added remove Avatar button
2022-05-11 21:06:18 +02:00
csoler
83b7c21f5f
Merge pull request #2618 from csoler/v0.6-BugFixing_19
fixed copy RS link in search dialog when clicking on a file with multiple names
2022-05-11 20:42:45 +02:00
chelovechishko
ca0a441f3b gui: file: add power to change font size for displayed shared files
Added one more settings group "File".
2022-05-09 00:27:50 +09:00
chelovechishko
ed0ea3aa01 gui: chat: add power to vote distant participant
If identity got deleted, then banned one should start
this distant conversation, if i am not mistaken.
2022-05-08 20:38:35 +09:00
chelovechishko
c6c6e11bec gui: chat: add auto shrink chattextedit
To shrink text edit form when it is convenient for browsing text browser.
It just shrink/unshrink the edit here and there when switching between chat rooms.

P.S. user should not resize chattextedit when it's shrinked
P.P.S. okey, there is no "unshrink" maybe, but hope it's not big deal
2022-05-03 19:26:45 +09:00
csoler
a61bd0a378 fixed copy RS link in search dialog when clicking on a file with different names 2022-05-01 21:53:00 +02:00
csoler
56b6196fb2
Merge pull request #2613 from csoler/v0.6-TorControl3
fixed bug causing hidden nodes to crash at start
2022-04-16 18:57:48 +02:00
csoler
20335cf134 fixed bug causing hidden nodes to crash at start 2022-04-16 18:45:38 +02:00
Gioacchino Mazzurco
de87938e6e
Update libretroshare submodule 2022-04-13 12:01:01 +02:00
G10h4ck
7521253ea8
Merge pull request #2612 from PhenomRetroShare/Fix_MacOS_Build
Fix MacOS build
2022-04-10 12:47:02 +02:00
defnax
52d1e505ad Added remove Avatar button
* Added remove Avatar button
2022-04-05 16:39:28 +02:00
csoler
958fac8e3c
Merge pull request #2606 from csoler/v0.6-ForumsGUI
turned drop menu for forum display type into a tool button group
2022-04-03 21:51:31 +02:00
csoler
1085592449 turned drop menu for forum display type into a tool button group 2022-04-02 16:53:29 +02:00
RETROSHARE Phenom
36d3f1899e Fix MacOS build
Need to use:
CONFIG+=rs_macos11.1 CONFIG+=no_rs_sam3 CONFIG+=no_rs_sam3_libsam3
CONFIG+=c++14
2022-04-02 14:30:18 +02:00
csoler
7532efd5fc
Merge pull request #2602 from csoler/v0.6-cmake
added cmake list for files in GUI
2022-03-30 17:52:12 +02:00
csoler
2cff9c8eb2 fixed compilation 2022-03-30 17:06:49 +02:00
csoler
a2580c9224
Merge pull request #2601 from defnax/fixclassicstylesheet
Fixed missed changes for classic stylesheet
2022-03-30 15:22:53 +02:00
csoler
606f02c69d
Merge pull request #2604 from csoler/v0.6-BugFixing_17
improved display in GxsGroupDialog
2022-03-30 15:19:19 +02:00
csoler
065e6946c7 improved display in GxsGroupDialog 2022-03-29 22:02:56 +02:00
Gioacchino Mazzurco
2b4e571332
Update submodule 2022-03-29 09:17:04 +02:00
csoler
b95d016c03
Merge pull request #2603 from PhenomRetroShare/Fix_ElidedLabelWhenNotDefinedFontSize
Fix ElidedLabel when Font size is not defined.
2022-03-28 20:55:04 +02:00
Phenom
3540b1ae38 Fix ElidedLabel when Font size is not defined. 2022-03-28 19:05:07 +02:00
Gioacchino Mazzurco
28017566f1
Update submodule 2022-03-28 17:28:13 +02:00
Gioacchino Mazzurco
d9e94298e6
Update libretroshare submodule 2022-03-28 12:18:18 +02:00
Gioacchino Mazzurco
07710f6a6c
Update submodules after MacOS build fix 2022-03-28 12:03:22 +02:00
Gioacchino Mazzurco
6be9bb579b
Fix CMake build from source tarball
Set maximum tested version to C++17
Detect companion libraries from CMakeLists.txt not .git
2022-03-28 12:01:55 +02:00
csoler
b3e6d96f3b attempt to add samv3 to compilaiton 2022-03-27 21:45:27 +02:00
csoler
0cc813d093 fixed naming of columns that colided because of common names 2022-03-27 19:35:23 +02:00
csoler
dc32b10ed6 added needed flags for GXS 2022-03-27 19:34:09 +02:00
csoler
8daa4dbf21 fixed include 2022-03-26 20:55:38 +01:00
csoler
dd653e5462 moved to cpp files some column defines that otherwise collapsed in .h files 2022-03-26 20:55:10 +01:00
csoler
a0ac041582 fixed compilatin 2022-03-25 23:35:12 +01:00
csoler
bf1b3ed69a fixed some bugs 2022-03-25 22:05:28 +01:00
csoler
40336c2337 added root cmake file in retroshare-gui 2022-03-25 18:39:14 +01:00
csoler
094e54d122 added cmake list for files in GUI 2022-03-25 16:23:09 +01:00
csoler
574e67e7d5 updated to latest git submodules commit 2022-03-25 10:28:08 +01:00
defnax
bc85c5255e Fixed missed changes for classic stylesheet 2022-03-21 21:06:49 +01:00
csoler
000d019947
Merge pull request #2598 from defnax/classicqssfix
Improved classic stylesheet
2022-03-20 23:37:02 +01:00
csoler
e6ec177445
Merge pull request #2599 from defnax/filetypeicons
changed file type icons
2022-03-20 23:09:11 +01:00
defnax
962124f18d Update picture.svg 2022-03-18 22:13:23 +01:00
defnax
f8470068cf changed file type icons 2022-03-18 19:04:26 +01:00
defnax
327a254e7c Improved classic stylesheet
* Use light blue for selection colors
2022-03-16 18:56:09 +01:00
csoler
af9fee0419
Merge pull request #2596 from defnax/iconfixes
Fixed missed icons
2022-03-12 20:26:06 +01:00
defnax
ae0f294c4b Fixed missed icons 2022-03-10 21:35:59 +01:00
csoler
016f38829d
Merge pull request #2593 from csoler/v0.6-FriendServer2
added list of already received peers from FS so that we do not request them again
2022-03-09 21:35:42 +01:00
csoler
bb2aee2b3c
Merge pull request #2595 from csoler/v0.6-BugFixing_17
fixed certificate pasting bug
2022-03-09 21:34:59 +01:00
csoler
97829de0ba fixed certificate pasting bug 2022-03-09 21:32:26 +01:00
csoler
6ca3d64511 added list of already received peers from FS so that we do not request them again 2022-03-08 21:28:42 +01:00
G10h4ck
f5ee9c92c8
Merge pull request #2591 from sehraf/pr_fix_94bd0994
RetroShare-gui: Rename DATA_DIR to RS_DATA_DIR to be consistent
2022-03-01 17:49:05 +01:00
sehraf
daa8eaea9e
RetroShare-gui: Rename DATA_DIR to RS_DATA_DIR to be consistent
fixes 94bd099407
2022-03-01 17:40:23 +01:00
csoler
3cfbb3e6d6
Merge pull request #2583 from defnax/cleanupoldiconsandnewsvg
removed & clean up old icons, replaced some by svg
2022-02-27 20:08:07 +01:00
defnax
a6deaa2a27 Added back icons 2022-02-27 14:30:59 +01:00
Gioacchino Mazzurco
d757af5c56
CMake refinements 2022-02-25 21:31:51 +01:00
Gioacchino Mazzurco
fcaba0e65f
Quieter CMake option for GitlabCI
Avoid GtilabCI suppressing log with:
Job's log exceeded limit of 4194304 bytes.
Job execution will continue but no more output will be collected.
2022-02-25 18:26:42 +01:00
defnax
701b2e4ca1
Merge branch 'RetroShare:master' into cleanupoldiconsandnewsvg 2022-02-25 18:05:41 +01:00
Gioacchino Mazzurco
52aba1be18
Update continuous integration 2022-02-25 16:57:07 +01:00
Gioacchino Mazzurco
b87d554c2a
Update submodules libretroshare libbithdht 2022-02-25 15:08:48 +01:00
Gioacchino Mazzurco
d0c4d1ade2
retroshare-service CMake and WebUI support
Fix retroshare-service webui terminal password checking
Install WebUI along with retroshare-service
2022-02-25 13:35:55 +01:00
csoler
1ddba795d4
Merge pull request #2587 from csoler/v0.6-BugFixing_16
Bug fixing in PostedItem
2022-02-23 23:28:31 +01:00
defnax
f3d2b4f2d0 Fixed missed icon 2022-02-23 14:01:28 +01:00
defnax
a073c09644 Fixed to remove icons 2022-02-23 13:50:51 +01:00
csoler
c0cac9ec2d fixed Boards item in feeds to display a constant-aspect-ratio picture using ZoomableLabel 2022-02-22 21:46:05 +01:00
csoler
3dfcb58ae1
Merge pull request #2582 from csoler/v0.6-FriendServer2
Improving the logic of certificate handling UI
2022-02-16 00:22:12 +01:00
csoler
42fa8d4b3c fixed adding external IPs and DNS in old cert format 2022-02-15 22:04:54 +01:00
thunder2
93c1cafdc4 Updated external libraries for Windows MinGW build
- zlib 1.2.11
- bzip2 1.0.8
- miniupnpc 2.2.3
- openssl 1.1.1m
- speexdsp 1.2.0
- libxml2 2.9.12
- libxslt 1.1.34
- curl 7.81.0
- sqlcipher 4.5.0
- libmicrohttpd 0.9.75
- ffmpeg 4.4
- xapian 1.4.19
2022-02-15 20:51:49 +01:00
defnax
6177b4dcdc removed unused old icons 2022-02-15 20:40:11 +01:00
csoler
53d43324db fixed hide some options with old certificate format 2022-02-14 21:51:30 +01:00
csoler
b9a4cdcd50 fixed up using invite flags to populate certificate comments 2022-02-13 22:38:32 +01:00
csoler
2428ebf6c3 removed re-parsing of certificate 2022-02-12 18:32:36 +01:00
defnax
aa5e40828e removed old icon 2022-02-12 12:22:52 +01:00
defnax
235ef6f509 removed old icons & cleanup 2022-02-12 11:49:50 +01:00
defnax
dc0cddae7e removed clean up old icons, replaced some by svg 2022-02-12 00:07:23 +01:00
csoler
24d5fc9eca show info that is parsed from the cert that was generated 2022-02-11 22:17:13 +01:00
csoler
6fcb3e8972 added entries to control what we add in the certificate 2022-02-11 16:20:52 +01:00
csoler
33800e9cb9 removed/hid the certificate and ID from settings since it duplicates functionality of HomePage with different options 2022-02-11 15:23:14 +01:00
csoler
c3c171125d improved the logic of certificate handling in UI 2022-02-11 15:10:28 +01:00
csoler
8105bfcbc8
Merge pull request #2579 from csoler/v0.6-FriendServer2
Improvements on friend server
2022-02-09 22:20:34 +01:00
csoler
5270459a5c Merge remote-tracking branch 'upstream/master' into v0.6-FriendServer2 2022-02-09 22:19:08 +01:00
csoler
e86e0ac05a merged 2022-02-09 22:16:02 +01:00
csoler
36ec036a43
Merge pull request #2568 from PhenomRetroShare/Fix_LibRetroShare_HEAD
Fix to follow libretroshare master
2022-02-09 22:01:16 +01:00
csoler
c7e8136ab5
Merge pull request #2578 from defnax/forumsfontmetricstreefix
Fix default font metrics for forums tree
2022-02-09 21:57:34 +01:00
csoler
fc89ba0fb7 fixed calling onion address testing only when editing is done, and updating of DNS in certificate 2022-02-09 15:40:01 +01:00
csoler
a1502c2742 added missing spacer 2022-02-09 13:55:59 +01:00
thunder2
ba7f072144 Fixed clean of Windows MinGW build 2022-02-07 17:27:42 +01:00
G10h4ck
5fdeeb788a
Merge pull request #2580 from zapek/master
Display the name of short invites properly
2022-02-05 18:41:48 +01:00
Phenom
2aee2f0085 Fix to follow libretroshare master 2022-02-05 18:25:19 +01:00
David Gerber
4a133f903c
Merge pull request #1 from zapek/display-shortinvite-name
Display the name of short invites properly
2022-02-05 18:18:36 +01:00
David Gerber
63ee463086
Display the name of short invites properly
Instead of [Unknown], since the name is actually in the short invite.
2022-02-05 18:12:04 +01:00
csoler
fe1b00dfc7 Merge remote-tracking branch 'upstream/master' into v0.6-FriendServer2 2022-02-04 21:27:10 +01:00
csoler
e2cda9fded improved UI for FS 2022-02-04 15:12:13 +01:00
csoler
58e3c04801 disable friend server on non tor node 2022-02-04 14:49:39 +01:00
thunder2
f125539d79 Added new parameter for Windows MinGW build
- Service
- Friend Server
- embedded Friend Server
2022-02-02 18:11:00 +01:00
defnax
fa9bc09cec changed default tree font color to black for light/builtin style 2022-02-01 20:38:14 +01:00
defnax
631b9b5f7a Fix default font metrics for forums tree 2022-02-01 20:01:38 +01:00
G10h4ck
ef456b2ef7
Merge pull request #2576 from hunbernd/fix/msys2-2
Some enhancements for the msys2 build scripts
2022-02-01 12:53:35 +01:00
csoler
d7eac8f5e4
Merge pull request #2573 from defnax/messagestreefontsfix
Added to fix font metrics for messages tree
2022-01-31 21:10:19 +01:00
csoler
37c781aa9f
Merge pull request #2575 from csoler/v0.6-FriendServer2
Fixing FriendServer
2022-01-31 21:06:25 +01:00
hunbernd
1de12129da Friendserver support 2022-01-31 16:30:55 +01:00
csoler
af0bea49c5 fixed using of rs_socket_error() 2022-01-31 15:32:04 +01:00
hunbernd
a3f6d516e7 Fix webui compilation
Copy files, instead of using the symlink.
2022-01-31 01:05:32 +01:00
hunbernd
00f82602d2 Added support for other msys2 environments 2022-01-31 00:16:15 +01:00
defnax
8b5c4bc7c5 fixed the notification icon 2022-01-28 20:56:06 +01:00
defnax
dadf59ac04 Added to fix font metrics for messages tree 2022-01-27 22:09:47 +01:00
csoler
cb50bed0fc
Merge pull request #2567 from defnax/Sharedfilestreefix
Fix default fonts & font metrics for Shared Files Tree
2022-01-23 14:50:05 +01:00
csoler
79d1575f71
Merge pull request #2555 from PhenomRetroShare/Add_GeneralFontSizeFactor
Add General Font Size Factor
2022-01-23 14:32:36 +01:00
csoler
3e86d760e9
Merge pull request #2558 from defnax/webpstickers
Add webp support for stickers load
2022-01-22 16:40:42 +01:00
defnax
57cee64966 Fix default fonts & font metrics for Shared Files Tree 2022-01-21 11:35:08 +01:00
csoler
f03862b984
Merge pull request #2560 from csoler/v0.6-FriendServer2
V0.6 friend server2
2022-01-17 23:39:38 +01:00
csoler
e7b822d1cb fixed bug in friend server auto wash 2022-01-17 23:01:07 +01:00
csoler
eefbd8a710 fixed initing of profile passphrase for friend server manager 2022-01-16 21:17:10 +01:00
csoler
763eeffe25 Merge remote-tracking branch 'upstream/master' into v0.6-FriendServer2 2022-01-16 18:32:43 +01:00
csoler
365682d771 added PGP-encryption to server communication to avoid data harvesting 2022-01-16 15:50:21 +01:00
Phenom
9e4903c9b8 Add General Font Size Factor 2022-01-16 13:21:49 +01:00
csoler
2548ef29fb
Merge pull request #2552 from csoler/v0.6-FriendServer2
added a msg in console when FS is ready
2022-01-16 11:49:34 +01:00
csoler
4a54587500 fixed testing of onion server 2022-01-15 22:03:27 +01:00
csoler
5ab19eb564 added testing system for distant Tor server 2022-01-15 21:53:07 +01:00
defnax
b9f389c8bb added webp support for stickers load 2022-01-15 21:44:54 +01:00
csoler
c310a177c6
Merge pull request #2554 from thunder2/friendserver
Fixed Windows compile of FriendServer
2022-01-15 20:31:22 +01:00
thunder2
36f14c8024 Removed unnecessary CFLAGS for Windows compile 2022-01-15 18:42:21 +01:00
thunder2
69b96e2c1b Fixed linking of FriendServer with MSYS2 on Windows 2022-01-15 18:39:36 +01:00
thunder2
ebfe4282d3 Fixed Windows compile of FriendServer 2022-01-15 13:25:17 +01:00
csoler
24b2d8a2cf added a msg in console when FS is ready 2022-01-13 21:06:56 +01:00
Gioacchino Mazzurco
10f2e483b7
Update submodules and README 2022-01-11 12:49:18 +01:00
Gioacchino Mazzurco
cfb210ef60
Added istructions on how to get the submodules 2022-01-10 21:59:39 +01:00
Gioacchino Mazzurco
48fcf70578
Split libretroshare BitDHT and OpenPGP-SDK into submodules 2022-01-10 21:37:03 +01:00
csoler
b847caa11b
Merge pull request #2495 from csoler/v0.6-FriendServer
V0.6 friend server
2022-01-10 20:14:58 +01:00
csoler
9bce625c1a fixed compilation 2022-01-10 18:24:46 +01:00
csoler
69f6adb6b4 added ifdef and option to enable/disable embeded friend server 2022-01-10 17:48:33 +01:00
G10h4ck
bbff7c73c0
Merge pull request #2551 from G10h4ck/cmake_build
More work to ship libretroshare as standalone lib
2022-01-10 15:53:24 +01:00
G10h4ck
6f813efddf
Merge branch 'master' into cmake_build 2022-01-10 15:46:57 +01:00
Gioacchino Mazzurco
c0e10ee2fa
More work to ship libretroshare as standalone lib
Improved CMake support
Initial work on packaging libretroshare as an Android library AAR
Deal properly with Android API level which miss largefile support
  instead of relying on build system trickery
2022-01-10 15:40:22 +01:00
csoler
3bd9188a33 fixed FriendServer client to use Tor proxy 2022-01-09 17:46:51 +01:00
csoler
e7eb606a4a fixed proxy init 2022-01-09 17:06:10 +01:00
csoler
2456dbb2a0 detached proxy negociation code from pqisslproxy so as to use it in FriendServer as well 2022-01-09 15:22:47 +01:00
csoler
b10b1df6df
Merge pull request #2543 from thunder2/warnings2
Removed compiler warnings in libretroshare
2022-01-08 17:54:11 +01:00
csoler
068aa7b7ec
Merge pull request #2545 from thunder2/warnings
Moved compiler flags for warnings to retroshare.pri
2022-01-08 17:53:06 +01:00
csoler
f581d71017
Merge pull request #2546 from thunder2/qt
Remove linking of Qt from libretroshare
2022-01-08 17:51:53 +01:00
csoler
dab101116b
Merge pull request #2547 from thunder2/warnings-plugins
Removed unused parameter from plugins
2022-01-08 17:51:32 +01:00
csoler
2f7271473c
Merge pull request #2548 from csoler/v0.6-BugFixing_14
fixed bug caused in RsNxsPullItem
2022-01-08 17:51:06 +01:00
csoler
aa904a3528 fixed bug caused by RsNxsPullItem not deriving from RsNxsItem and uniformized the code 2022-01-04 19:28:58 +01:00
thunder2
77dd76a108 Fixed compile with enabled RS_WEBUI 2022-01-04 03:03:53 +01:00
thunder2
af430c14a9 Removed unused parameter 2022-01-04 00:39:13 +01:00
thunder2
c0e3e9b4e4 Moved compiler flags for warnings to retroshare.pri 2022-01-04 00:33:04 +01:00
thunder2
e8ff76f21d Remove linking of Qt from libretroshare 2022-01-04 00:27:39 +01:00
csoler
3aaf1cd4d0
Merge pull request #2534 from defnax/fixcolors
Fixed Darkstyle textcolors for group category & private key
2022-01-03 21:06:19 +01:00
csoler
fd5a008be7
Merge pull request #2542 from thunder2/warnings1
Removed compiler warnings in libretroshare
2022-01-03 20:03:41 +01:00
csoler
094551b093
Merge pull request #2541 from thunder2/warnings
Removed compiler warnings in retroshare-gui
2022-01-03 19:47:38 +01:00
thunder2
3c1b2be421 Removed unused parameter warning 2022-01-03 13:59:31 +01:00
thunder2
b88be35668 Fixed unused function warning 2022-01-03 12:28:10 +01:00
thunder2
cd36ce80a8 Fixed redefined warning for Windows build 2022-01-03 12:22:10 +01:00
thunder2
7aa8b548c1 Removed pragma for Windows build 2022-01-03 12:19:30 +01:00
thunder2
2650a949ea Fixed "enum not handled in switch (-Wswitch)" warning 2022-01-03 12:18:05 +01:00
thunder2
fb836489d7 Fixed unused function warning 2022-01-03 12:10:01 +01:00
thunder2
3ad6f6710b Fixed unused variable warning 2022-01-03 12:10:00 +01:00
thunder2
af9cd44bd4 Fixed "variable set but not used (-Wunused-but-set-variable) warning 2022-01-03 12:01:32 +01:00
thunder2
b350070d9d Fixed "forbids converting a string constant (-Wwrite-strings)" warning 2022-01-03 01:31:37 +01:00
thunder2
98f7b815f7 Removed unnecessary define WIN32_LEAN_AND_MEAN 2022-01-03 01:03:22 +01:00
thunder2
126500aac7 Fixed duplicate name warning in ui 2022-01-03 01:03:21 +01:00
thunder2
864269b0cf Fixed "statement may fall through (-Wimplicit-fallthrough)" warning 2022-01-03 01:03:20 +01:00
thunder2
6f3d897156 Fixed "initialized after (-Wreorder)" warning 2022-01-03 01:03:19 +01:00
thunder2
088d6f63f0 Fixed unused function warning 2022-01-03 01:03:18 +01:00
thunder2
3dfe4e1288 Fixed unused variable warning 2022-01-03 01:03:16 +01:00
csoler
896762b948 made friend server to use tor hidden service to listen to connections 2022-01-02 20:41:47 +01:00
thunder2
c13e2ca341 Fixed compile error 2022-01-02 20:19:02 +01:00
csoler
7367fb3e46 fixed merge with upstream/master 2022-01-02 16:17:53 +01:00
csoler
caf64cd000
Merge pull request #2437 from csoler/v0.6-TorControl
V0.6 tor control
2022-01-02 09:55:31 +01:00
csoler
a352fd7dcd Merge remote-tracking branch 'upstream/master' into v0.6-TorControl 2021-12-31 17:57:36 +01:00
csoler
730102ccb7
Merge pull request #2539 from thunder2/msg
Msg
2021-12-31 17:57:04 +01:00
thunder2
3eb910a25f Removed old RsNotify code (NOTIFY_LIST_MESSAGE_TAGS) from message service 2021-12-31 02:13:57 +01:00
thunder2
f59ede23e1 Removed old RsNotify code (NOTIFY_LIST_MESSAGELIST) from message service 2021-12-31 01:38:13 +01:00
csoler
281076d6b7 fixed a few errors in TorManager event handling 2021-12-30 22:14:34 +01:00
thunder2
ae0c993b6b Save and restore current index of mail list 2021-12-30 21:34:48 +01:00
thunder2
8f21c158c6 Don't add own sent mail to activity page as incoming mail 2021-12-30 21:34:37 +01:00
csoler
1e8e489cd1 Merge branch 'v0.6-TorControl' of github.com:csoler/RetroShare into v0.6-TorControl 2021-12-30 19:51:53 +01:00
csoler
fb1e0bc81c using random port to link Tor to local node and check that the port is available 2021-12-30 19:51:20 +01:00
thunder2
5d9ce662e9 Added update of message model when messages changed 2021-12-30 13:53:10 +01:00
thunder2
c01f98feb9 Added unregisterEventsHandler to destructor of MessagesDialog 2021-12-30 13:13:38 +01:00
csoler
35e20222e4
Merge pull request #33 from thunder2/pr/2437-shutdown
Pr/2437 shutdown
2021-12-29 23:11:12 +01:00
csoler
9c499ec069
Merge pull request #32 from thunder2/pr/2437
Pr/2437
2021-12-29 23:08:29 +01:00
csoler
478fc5e8f9
Merge pull request #2536 from PhenomRetroShare/Fix_RSElidedItemDelegateUseSpacing
Fix RSElidedItemDelegate to use spacing in size hint.
2021-12-29 22:30:40 +01:00
csoler
836653d9cd
Merge pull request #2537 from defnax/wirewikiifixes
Fixing wire layout spacing
2021-12-29 22:11:00 +01:00
thunder2
460dbdcdc8 Added shutdown of tor management threads 2021-12-29 17:56:55 +01:00
thunder2
72eb21bbca Use shutdownSync instead of shutdown in TorManager::run to stop tor 2021-12-29 17:56:54 +01:00
thunder2
0ffb31be85 Added missing initialization and check of members in VOIPConfigPanel to fix crash at shutdown with enabled plugin VOIP 2021-12-29 17:07:15 +01:00
thunder2
72e52b998c Added check of shouldStop in RsThreadedTcpSocket::run 2021-12-29 16:41:46 +01:00
thunder2
02afc9062f Added delete of TorManagerPrivate in destructor of TorManager 2021-12-29 16:39:37 +01:00
thunder2
97f7e0f936 Added delete of TorControl in destructor of TorManagerPrivate 2021-12-29 16:14:48 +01:00
thunder2
8d3046d157 Removed global variable "Tor::TorControl *torControl" 2021-12-29 16:08:20 +01:00
thunder2
1fafaeb909 Added delete of member TorControlSocket in destructor of TorControl 2021-12-29 16:00:02 +01:00
thunder2
e096f2feb1 Added unregisterEventsHandler to destructor of TorControlDialog 2021-12-29 15:32:28 +01:00
csoler
efe2ec03ff fixed a few bugs that may cause the bootstrap process to hang 2021-12-28 18:29:33 +01:00
csoler
a37802ca96
Merge pull request #31 from thunder2/pr/2437
Pr/2437
2021-12-28 09:48:18 +01:00
thunder2
17bce57185 Added compare of Windows like directory separator to rsdir.cc 2021-12-28 01:28:07 +01:00
thunder2
ffc42db3aa Added flag for CreateProcess to hide the terminal window of Tor on Windows 2021-12-27 16:38:29 +01:00
defnax
153a5bddcf Fixing wire layout spacing
* Fixing wire layout spacing
* Added splitter for wiki group
2021-12-26 16:17:36 +01:00
Phenom
222cb38ce7 Fix RSElidedItemDelegate to use spacing in size hint. 2021-12-25 19:22:32 +01:00
defnax
f6c05caf02 Fixed Darkstyle textcolors for group category & private key 2021-12-23 20:09:01 +01:00
csoler
f14573bf4e
Merge pull request #30 from thunder2/pr-2437-fixes
Pr 2437 fixes
2021-12-23 11:49:28 +01:00
thunder2
5dfbdc0869 Fixed start and stop of tor process on Windows 2021-12-22 22:29:20 +01:00
thunder2
753250b4e8 Added os specific RsFileUtil::rs_getline 2021-12-22 22:29:19 +01:00
thunder2
38b4c50635 Changed RsFdBinInterface to use recv/send for sockets and read/write for file descriptors on Windows 2021-12-22 22:29:19 +01:00
thunder2
057e872eca Added missing initializations of members in constructor of TorControl 2021-12-22 22:29:18 +01:00
thunder2
085e102ce1 Added RsFileUtil for os specific file functions
Added RsFileUtil::set_fd_nonblock to set a file descriptor to non blocking
2021-12-22 22:29:17 +01:00
thunder2
5b8ac7e49b Added missing fclose to TorProcess::tryReadControlPort 2021-12-22 22:29:17 +01:00
thunder2
15d56f01ac Added missing include to string in PendingOperation.h 2021-12-22 22:29:16 +01:00
thunder2
8d020e7395 Changed ifdef Q_OS_WIN to WINDOWS_SYS 2021-12-22 22:29:15 +01:00
thunder2
59d11b71ce Changed uint to ByteArray::size_type in StrUtil.cpp 2021-12-22 22:29:14 +01:00
csoler
49d8a851c5 moved faulty line causing early deletion of this at the end of the function 2021-12-22 22:26:47 +01:00
csoler
8af6ca9fb7 fixed a few errors reported by valgrind 2021-12-22 14:03:29 +01:00
csoler
f6892066bc fixed compilation on win$ 2021-12-20 16:10:52 +01:00
csoler
4a76fddaa9 fixed conflicts with upstream/master 2021-12-19 21:10:15 +01:00
csoler
5fe39248f8 fixed compilation on windows 2021-12-19 20:22:04 +01:00
csoler
9684b2ed94 code cleaning 2021-12-19 18:40:44 +01:00
csoler
37d4e4f3df attempt to fix compilation on windows 2021-12-19 17:44:23 +01:00
csoler
6048a9a011 attempt to fix compilation on windows 2021-12-19 16:52:43 +01:00
csoler
40b965cab1 improved display of tor process completion 2021-12-18 21:30:58 +01:00
csoler
b700c451d4
Merge pull request #2496 from PhenomRetroShare/Fix_AskForPasswordNotInGUIThread
Fix NotifyQt::askForPassword QInputDialog is not created in GUI Thread.
2021-12-18 20:46:19 +01:00
Phenom
e137c17039 Fix NotifyQt::askForPassword QInputDialog is not created in GUI Thread. 2021-12-18 18:22:30 +01:00
csoler
7e6156566a fixed display of tor bootstrap status 2021-12-18 18:14:49 +01:00
csoler
f352235ccd fixed a few bugs 2021-12-18 16:45:53 +01:00
G10h4ck
bc76b10792
Merge pull request #2527 from G10h4ck/cmake_build
Integrate python3 JSON API generator into libretroshare
2021-12-18 15:31:17 +01:00
G10h4ck
b971148931
Merge pull request #2450 from csoler/v0.6-PGPHandler
V0.6 pgp handler
2021-12-18 15:30:14 +01:00
csoler
bdbcadc43c fixed Tor icon to stay red 2021-12-17 22:26:32 +01:00
csoler
3121a61910 more bug fixing 2021-12-17 22:17:26 +01:00
csoler
af4c948024 fixed some bugs in TorControl 2021-12-17 16:54:44 +01:00
csoler
d3a36f216f
Merge pull request #2521 from defnax/classicstyle
added classic stylesheet
2021-12-16 23:22:47 +01:00
csoler
d9368507a9 fixed a few bugs in torcontrol socket methods 2021-12-15 22:15:52 +01:00
csoler
a86cca3d0f
Merge pull request #2520 from PhenomRetroShare/Fix_PostedCreatePostDialog
Fix PostedCreatePostDialog when reject show double message.
2021-12-13 21:35:27 +01:00
csoler
999f25b6ad
Merge pull request #2526 from defnax/pushbuttonfix2
Added spacing for the QPushButton
2021-12-13 21:23:57 +01:00
csoler
808f4e120c
Merge pull request #2524 from defnax/boardsfixesv2
Fixed fonts size for boards title
2021-12-13 21:23:32 +01:00
csoler
56e17f077e fixed merge with upstream/master 2021-12-13 21:01:06 +01:00
csoler
7455013fc2 fixed std::cerr => RsErr() 2021-12-13 20:58:53 +01:00
csoler
24e862ae25 moved event loop in TorManager to the TorManager class 2021-12-13 20:28:07 +01:00
Gioacchino Mazzurco
e62b847234
Integrate python3 JSON API generator into libretroshare
Add more options to CMake:
  Support for JSON API
  Support for forum deep index

Fix bitdht CMake project name
General CMake files improvements
2021-12-13 18:46:56 +01:00
defnax
b5d1febac4 Added spacing for the QPushButton 2021-12-12 19:01:29 +01:00
defnax
fddb88010e Fixed fonts size for boards title
* Fixed fonts size for boards title
* Fixed vertical spacer to not stretch the height of the Subscribe Button
2021-12-11 11:37:02 +01:00
csoler
1c576411fb fixed control port reading 2021-12-10 18:01:21 +01:00
csoler
1571446a2e debugged pipe system with tor executable 2021-12-10 16:29:10 +01:00
csoler
7c77cfd603 fixed a few bugs in new TorManager 2021-12-09 22:19:00 +01:00
csoler
a757419d65 fixed compilation 2021-12-09 21:04:49 +01:00
G10h4ck
5be7869304
Merge pull request #2522 from G10h4ck/cmake_build
Add support to build via CMake
2021-12-09 17:50:30 +01:00
Gioacchino Mazzurco
6a92b99da3
Initial CMake support for libretroshare
libretroshare (not all build options yet) and it's dependencies can now
  be built using CMake instead of qmake.
Even Qt itself deprecated qmake, which is not developed anymore, as
  build system and it was making many things much more difficult
  and requiring an enormous amount of black magic to support a wide
  range of platforms.
libretroshare can now easly be build as static or shared library with
  simple commands and a maintaniable build system:
```
cmake \
	-D RS_LIBRETROSHARE_STATIC=OFF -D RS_LIBRETROSHARE_SHARED=ON \
	-S $YOUR_RS_SOURCE_DIR/libretroshare/ -B .
make
```
2021-12-09 13:04:06 +01:00
Gioacchino Mazzurco
94bd099407
Rename DATA_DIR macro to less polluting RS_DATA_DIR 2021-12-09 12:56:48 +01:00
G10h4ck
e55fa2b9d5
Merge pull request #2517 from G10h4ck/android_without_qt
Run on Android without Qt
2021-12-08 13:35:03 +01:00
csoler
e0812dce83 added back read attempt for control port 2021-12-07 21:20:19 +01:00
defnax
0afe305ca1 added classic stylesheet 2021-12-07 19:11:37 +01:00
csoler
b323a1635e fixed compilation. Qt is completely gone 2021-12-06 22:33:50 +01:00
csoler
7dc5c90d63 finished removing latest Qt bits 2021-12-06 22:08:56 +01:00
Phenom
a904a5d41a Fix PostedCreatePostDialog when reject show double message.
And stacked widget if current index is changed in ui file.
2021-12-06 16:05:43 +01:00
csoler
e75d312724 removed lots of signals/slots 2021-12-05 22:14:19 +01:00
csoler
bb37e2692b removed more QString, QHostAddress, QFile, QDir,... 2021-12-05 00:02:12 +01:00
csoler
20a4e00544
Merge pull request #2519 from defnax/boardsfixes
Fixed to display the right index for Image Page
2021-12-04 12:55:25 +01:00
defnax
777d0d9848 Fixed to display the right index for Image Page
* Fixed to display the right index for Image Page
* Fixed to disable share button when Identity is banned.
2021-12-04 12:12:29 +01:00
csoler
b03802fa1b turned TorProcess into a non-Qt object, using built-in popen3 system 2021-12-02 23:15:06 +01:00
csoler
d7afbea1dd progress in using ByteArray+std::string 2021-12-01 23:05:16 +01:00
Gioacchino Mazzurco
72caa2aa68
Android Dockerfiles better apt options 2021-12-01 16:30:28 +01:00
Gioacchino Mazzurco
475d8ffc11
Android Docker attempt to shrink image
Do not install apt recommended packages
Show upgraded packages on Android Gitlab CI Dockerfile
2021-12-01 08:32:09 +01:00
Gioacchino Mazzurco
a1a8bf1408
Android Dockerfile do updates 2021-12-01 08:26:34 +01:00
csoler
b5a7655f29
Merge pull request #2515 from PhenomRetroShare/Fix_PostedItemRedraw
Fix BoardPostDisplayWidget when editor redraw.
2021-11-30 23:57:35 +01:00
Phenom
3217cd4df0 Fix BoardPostDisplayWidget when editor redraw. 2021-11-30 23:38:21 +01:00
Gioacchino Mazzurco
7231d94ea4
Fix variable name in Android Dockerfile documentation 2021-11-30 17:00:33 +01:00
Gioacchino Mazzurco
2095dae95d
Fix build with older Java < 7 2021-11-30 17:00:02 +01:00
Gioacchino Mazzurco
856ce2ffb1
Do not depend on Qt at all on Android
Do the necessary modifications to not depend on Qt to run on Android
  both in libretroshare and in retroshare-service
2021-11-30 11:55:15 +01:00
csoler
6a4cdcc471 continue on switching QString and QByteArray 2021-11-29 22:59:46 +01:00
csoler
e4fcf26ea8
Merge pull request #2500 from PhenomRetroShare/Add_ConnectFriendWizard_Imp
Add ConnectFriendWizard improvement.
2021-11-29 21:29:50 +01:00
csoler
2c52ff852f
Merge pull request #2516 from PhenomRetroShare/Fix_UnusedSkins
Remove unused skins.
2021-11-29 17:48:26 +01:00
Phenom
92da1881e7 Remove unused skins. 2021-11-29 15:39:42 +01:00
G10h4ck
941ec42502
Merge pull request #2513 from G10h4ck/forum_deep_search_wildcard
Forum deep search support wildcard* search
2021-11-26 17:23:09 +01:00
G10h4ck
8c52535860
Merge pull request #2508 from G10h4ck/android_ifaddrs
libretroshare Android Qt network dependency optional
2021-11-26 17:22:51 +01:00
csoler
e4ce32bef8 switching QString to std::string and QByteArray to ByteArray. Unfinished yet. 2021-11-25 23:28:01 +01:00
csoler
3845dc1ea7 added new files 2021-11-22 20:06:01 +01:00
G10h4ck
cf56059a6d
Merge pull request #2510 from PhenomRetroShare/Fix_QSplitter_TitleBar_StyleSheet
Fix QSplitter and TitleBar StyleSheet.
2021-11-20 16:26:18 +01:00
csoler
0a5f3328df changed names SocketBioInterface->RsFdBinInterface and TcpSocket->RsTcpSocket (more consistent). Moved them to pqi/ 2021-11-16 22:19:27 +01:00
Gioacchino Mazzurco
1e9a26893c
Forum deep search support wildcard* search
Xapian have support for wildcard search
  wild* matches wild, wildcard, wildcat, wilderness
  but it need to be enabled by passing a specific flag to the query
  parser, this is very useful for forum search so enable it in addition
  to default Xapian search capabilities
2021-11-16 10:52:18 +01:00
csoler
a5b1f2d976 created independent tcpsocket class to be used also in TorManager 2021-11-14 23:31:40 +01:00
G10h4ck
fe0561b3fe
Merge pull request #2377 from G10h4ck/gxs_fast_pull_request
Implement pull request mechanism in RsGxsNetService
2021-11-12 21:36:06 +01:00
Phenom
1146a0bf27 Fix QSplitter and TitleBar StyleSheet. 2021-11-12 20:04:43 +01:00
Gioacchino Mazzurco
cd5dad6a75
Rename GXS pullFromPeers to pullFromPeers
According to what discussed with Cyril
2021-11-12 19:11:02 +01:00
Gioacchino Mazzurco
ebbd8cf938
Forums expose API to request syncronization 2021-11-12 18:46:36 +01:00
Gioacchino Mazzurco
fc404bd5d8
RsGxsNetService trigger pulling on group subscribe 2021-11-12 18:43:52 +01:00
Gioacchino Mazzurco
6295e91304
Request pull from peers when GXS message is created 2021-11-12 18:43:52 +01:00
Gioacchino Mazzurco
b42323013e
Fix includes in rsnxs.h 2021-11-12 18:43:49 +01:00
Gioacchino Mazzurco
a7f1e94cea
Request pull from peers when GXS group is created 2021-11-12 18:42:55 +01:00
Gioacchino Mazzurco
a374f1dc6b
Implement RsNxsSerialiser::create_item for RsNxsPullRequestItem 2021-11-12 18:41:18 +01:00
Gioacchino Mazzurco
e4f25a558d
Implement pull request mechanism in RsGxsNetService
This could be used to request the online peers to pull updates from us
  ASAP, as an exaple when a group is created a pull request can be
  emitted too so the online peers pull the groups from us ASAP instead
  of waiting for the usual 60 seconds. A mechanism like this is
  especially useful on mobile phones where the internet connection is
  usually turned on only in a few moments (as an example while the user
  is interacting with the app).
Cleanup a few old corners in the code keeping retro-compatibility and
  make the code more welcoming to new developers.
Put a bunch of dead code under #ifdef.
2021-11-12 18:41:10 +01:00
Gioacchino Mazzurco
11f17fef40
libretroshare Android Qt network dependency optional
One of the reason libretroshare dependend on Qt on Android
  and in particular in networking module is the lack of
  `getifaddrs` with API level < 24, we included Android
  Gingerbread internal implementation so this dependency can be avoided
  at compile time.
The code depending on Qt has been placed under `#if` and can be enabled
  at compile time by appending `DEFINES+=LIBRETROSHARE_ANDROID_IFADDRS_QT`
  to `qmake` command line.
2021-11-12 16:02:53 +01:00
csoler
4d06ab2b4a Merge remote-tracking branch 'upstream/master' into v0.6-TorControl 2021-11-11 18:28:02 +01:00
csoler
bef780e0c7 merged with upstream/master 2021-11-11 17:50:11 +01:00
csoler
5e50f23423 improved checking of short invite / pgp key in friend server. Added a key parsing method in PGPKeyManagement 2021-11-10 23:36:23 +01:00
defnax
53dfa67d78
Merge pull request #2505 from defnax/default-stylesheetfix
Default stylesheetfix
2021-11-10 20:52:13 +01:00
defnax
a60a36582c Fixed layout spacing 2021-11-10 19:18:06 +01:00
defnax
fd93167111 Added stylesheet for the titleBarFrame 2021-11-10 19:11:58 +01:00
defnax
556322a015
Merge pull request #2504 from defnax/default-stylesheetfix
fixed stylesheets for the default.qss
2021-11-10 12:08:22 +01:00
Gioacchino Mazzurco
ff68faf34a
Gitlab CI Android improve configurability
Enable passing RS_SERVICE_QMAKE_EXTRA_OPTS from environement so it can
  be set from project settings according to project and forks needs
2021-11-10 10:52:18 +01:00
defnax
dc40927958 fixed stylesheets for the default.qss 2021-11-09 22:28:28 +01:00
csoler
1d2b91a675
Merge pull request #2502 from PhenomRetroShare/Fix_rsGetHostByNameSpecDNS
Fix rsGetHostByNameSpecDNS by closing socket.
2021-11-08 11:21:46 +01:00
Phenom
4cc0b9f492 Fix rsGetHostByNameSpecDNS by closing socket. 2021-11-08 10:20:44 +01:00
csoler
0cf889d556 fixed a few bugs in peer management 2021-11-07 22:39:24 +01:00
csoler
25ddbe099d fixed two-ways communication between client and server 2021-11-07 15:16:24 +01:00
csoler
aff7912f41 avoid sending packet slicing probes to the serializer in pqistreamer 2021-11-07 15:16:07 +01:00
thunder2
88d70e2edc Removed built-in stylesheets from Windows packages 2021-11-07 01:59:31 +01:00
csoler
5a55800f31 added sorting of peers (part 2/2) 2021-11-06 17:49:31 +01:00
Phenom
a072b151f5 Add ConnectFriendWizard improvement.
Add cert details in friendCertCleanLabel tooltip.
Use qss for background color of friendCertCleanLabel.
Add Known IP in final view.
2021-11-06 14:10:17 +01:00
Gioacchino Mazzurco
e8b97405b9
Fix android build due missing include 2021-11-06 11:35:28 +01:00
G10h4ck
bfbb2a5ae6
Merge pull request #1874 from PhenomRetroShare/Add_ExtIPFinderUsingDNS
Add ability to retrieve External IP using Specific DNS server.
2021-11-06 04:08:41 +01:00
thunder2
0e5cb56c19 Fixed Windows build with new stylesheets 2021-11-06 01:02:23 +01:00
Phenom
91a35f4a21 Change some code according G10h4ck remarks. 2021-11-06 00:32:36 +01:00
Phenom
7755f85c4c Move DNS stuff to single new file rsdnsutils.cc. 2021-11-05 22:48:41 +01:00
Phenom
81d2ddd7c7 Enable IPv6 DNS ExtIpFinder
Now empty node with only IPv6 can connect to other.
2021-11-05 22:48:41 +01:00
Phenom
a09db6717b Add ability to retrieve External IP using DNS server.
IPV6 compatible.
2021-11-05 22:48:41 +01:00
thunder2
56d34a8a2c Undo fix for linking of plugins for Windows MSYS2 compile 2021-11-05 21:23:48 +01:00
csoler
af6dee088c first part of peer sorting in friend server 2021-11-05 16:52:00 +01:00
Gioacchino Mazzurco
fa48b03fac
mark single argument RsStackMutex costructor explicit 2021-11-05 15:31:08 +01:00
Gioacchino Mazzurco
7ae314440f
Fix GitlabCI repository url and improve Android dockerfiles 2021-11-05 15:29:53 +01:00
Gioacchino Mazzurco
a9fe1ba6de
Make DirStub serialization consistent on all architectures
Thanks elRepo.io developers to detect and report this bug with detail
https://gitlab.com/elRepo.io/elRepo.io-android/-/issues/52
2021-11-05 12:02:56 +01:00
csoler
b805cce58d
Merge pull request #2404 from PhenomRetroShare/StyleSheet_Rewrite
StyleSheet Rewrite
2021-11-04 23:57:26 +01:00
Phenom
d7981f3811 StyleSheet Rewrite
Use QDarkStyle to make Standard_Dark.qss and Standard_Light.qss
Use Widget name to stylize them.
2021-11-04 21:21:54 +01:00
csoler
62655779e5 use recv(...,MSG_DONTWAIT), since read() may return multiple times the same data apparently 2021-11-04 20:52:38 +01:00
Gioacchino Mazzurco
16ca0dc52c
RsThread fix warning and cleanup
Avoid compiler warning due to virtual method being called in destructor
  at this point the empty default version would be called without damage
  but making the compiler concernig about the semantic being different
  from the one the programmer meant.
Delete old superseeded function and do not depend on it on RsThread.
2021-11-04 19:17:57 +01:00
G10h4ck
9b2504d407
Merge pull request #2499 from PhenomRetroShare/Fix_RsThread
Fix RsThread when nothing to do and run finish before start.
2021-11-04 18:47:12 +01:00
csoler
01da2fbe9e added debug output and fixed one bug in pqistreamer 2021-11-04 14:24:19 +01:00
Gioacchino Mazzurco
53f2891b78
Improve JSON API DirDetails handle type test 2021-11-04 13:29:32 +01:00
Gioacchino Mazzurco
d6c4a086f3
Add test for JSON API DirDetails handle type 2021-11-04 11:58:42 +01:00
thunder2
433f6f763d Fixed linking of plugins for Windows compile 2021-11-03 18:38:46 +01:00
Phenom
5e9bc9c2b8 Fix RsThread when nothing to do and run finish before start. 2021-11-03 17:14:11 +01:00
thunder2
a9a7b556d5 Upgrade MSYS2 for Windows build 2021-11-03 16:23:35 +01:00
csoler
0191072326 added response system from friend server 2021-11-01 22:01:59 +01:00
thunder2
7be575045b Fixed git update of submodule supportlibs/libsam3 for MinGW compile 2021-11-01 18:45:10 +01:00
csoler
6b6d556e98 added nonce system for safe peer removal 2021-11-01 16:14:13 +01:00
csoler
b7c7c4c3f5 moved static/parsing of radix parts of short invites into RsCertificate (more code should be moved static there) and fixed adding incoming keys to friend server 2021-11-01 10:47:07 +01:00
csoler
5da31592f2 send/recv PGP public key and short invite 2021-11-01 09:16:41 +01:00
csoler
e058b3a35f fixed memory error 2021-10-31 18:00:43 +01:00
csoler
a69f9dc09b fixed two-ways communication between RS and friend server 2021-10-31 16:46:06 +01:00
csoler
42b4a821bd fixed basic incoming communication at server side 2021-10-31 12:02:09 +01:00
csoler
f0b23b84f1 added missing override in pqithreadstreamer 2021-10-31 12:01:44 +01:00
csoler
d659f768b5 fixed debug output in pqistreamer 2021-10-31 12:01:07 +01:00
csoler
ffa28000e3 added basic communication between FriendServer and its clients 2021-10-30 15:50:28 +02:00
csoler
d948086b5e added logic to stop/start FriendServer from GUI 2021-10-29 21:44:30 +02:00
csoler
7821b29893 fixed additional GPG->Pgp names 2021-10-29 20:29:18 +02:00
csoler
7672ffa0ec fixed casing of PGP into Pgp 2021-10-29 19:05:54 +02:00
csoler
fdac22f49c renamed remaining *GPG* names into *PGP* 2021-10-29 19:02:09 +02:00
csoler
5e37bd42e4 renamed isGPGAccepted into isPGPAccepted 2021-10-29 18:57:58 +02:00
csoler
b328c3a493 renamed AuthGPG into AuthPGP 2021-10-29 18:51:40 +02:00
G10h4ck
dc1d5de0db
Merge pull request #2301 from G10h4ck/forums_deep_indexing
Implement deep indexing and search for forums
2021-10-28 11:17:51 +02:00
G10h4ck
954e5969fc
Merge pull request #2372 from altcoinpirate/master
Disable animation in file transfer tree view widgets
2021-10-28 10:17:56 +02:00
Gioacchino Mazzurco
62810d32e1
deep_search: fix compilation with old Xapian versions 2021-10-28 09:53:55 +02:00
Gioacchino Mazzurco
0b58740174
Properly avoid private forum leak in deep search
mGroupFlags & GXS_SERV::FLAG_PRIVACY_PUBLIC is always true for forums
  even if they are circle restricted, use circle flags to check if it
  is really public
2021-10-28 09:53:55 +02:00
Gioacchino Mazzurco
2196505d19
RsGxsForumsDistantSearchEvent fix event type 2021-10-28 09:53:54 +02:00
Gioacchino Mazzurco
bf8ddf498e
Fix Android compilation 2021-10-28 09:53:54 +02:00
Gioacchino Mazzurco
dcb2bee8cc
Epurate this branch from channels deep search changes 2021-10-28 09:53:54 +02:00
Gioacchino Mazzurco
9c38eed648
Implement deep indexing and search for forums
RsGxsNetTunnelService::receiveSearchRequest handle no results case
  properly
RsNxsObserver::handleDistantSearchRequest improve method behaviour
  documentation
RsTurtleClientService Improve documentation
2021-10-28 09:53:48 +02:00
Gioacchino Mazzurco
1b551d809f
First working prototype of GXS service search
Channels are now able to take advantage of the new deep search
  goodies

Rebase on top of master 2021/10/19
2021-10-28 09:51:29 +02:00
Gioacchino Mazzurco
ab349a8157
Use unannotated pointer as per Cyril taste 2021-10-28 09:51:29 +02:00
Gioacchino Mazzurco
cef43fe048
Notify one deletion per event as Cyril suggested 2021-10-28 09:51:29 +02:00
Gioacchino Mazzurco
045069c3e6
Implement proper GXS message deletion notification
GxsForums propagate message deletion notification as RsEvent
2021-10-28 09:51:29 +02:00
G10h4ck
b920263947
Merge pull request #2442 from G10h4ck/notify_hashing_file_completed
Emit an event when a shared file hashing complete
2021-10-28 09:24:45 +02:00
Gioacchino Mazzurco
8089542e74
Updated OBS submodule 2021-10-27 11:47:53 +02:00
Gioacchino Mazzurco
b659643748
Attempt to fix non sam3 builds 2021-10-25 15:50:19 +02:00
Gioacchino Mazzurco
b8e27d6bc0
Document sam3 build options, fix Android CI 2021-10-25 14:35:32 +02:00
csoler
dbb6a7471e fixed compilation (fix by sehraf) 2021-10-24 22:26:10 +02:00
csoler
3ddf3d0853
Merge pull request #2132 from sehraf/pr_add_i2p_sam3
Replace I2P BOB with SAMv3
2021-10-24 20:39:22 +02:00
csoler
19e42663a0 fixed compilation 2021-10-24 20:01:19 +02:00
csoler
b731cf34ee moved part of the code to libretroshare/src/friend_server 2021-10-24 17:41:23 +02:00
csoler
c589561396 made sockets non blocking 2021-10-20 23:06:38 +02:00
csoler
8939896abf added missing comment in pqi_base 2021-10-20 23:06:25 +02:00
csoler
c77b9d1e1f added embedded test for FS 2021-10-20 21:14:08 +02:00
csoler
8e4a9e6a38 implemented multiple clients in Friend Server 2021-10-19 23:24:50 +02:00
Gioacchino Mazzurco
34593d1b6f
Emit an event when a shared file hashing complete
Properly notify when a shared file has been hashed
Deprecate event with arbitrary data packed in std::string
2021-10-19 18:23:55 +02:00
G10h4ck
58016fff65
Merge pull request #2444 from G10h4ck/single_file_share_plus_cleanup
Single file share plus cleanup
2021-10-19 15:45:32 +02:00
csoler
21ea281df4 added empty rsFriendServer struct and basic UI functionality 2021-10-13 22:50:09 +02:00
csoler
3f6503dfc3 added friend server control UI 2021-10-12 22:29:36 +02:00
csoler
5bfa77a0fe implemented item serialisation and high level handlign in FS 2021-10-11 23:40:22 +02:00
csoler
85bb831f47 using pqistreamer to deserialize data from FsNetwork 2021-10-09 15:06:06 +02:00
csoler
d97ad8099c added base network layer for friend server. Not working yet. 2021-10-09 01:08:23 +02:00
csoler
d9c91ea41d
Merge pull request #2451 from csoler/v0.6-TorNode
V0.6 tor node
2021-10-06 19:36:49 +02:00
csoler
0deb83a5b9
Merge pull request #2479 from csoler/v0.6-BugFixing_13
[WIP] Fixing a few bugs.
2021-10-06 19:35:57 +02:00
csoler
c5d0c6a6e6
Merge pull request #2485 from hunbernd/fix/groups
Friend group fixes
2021-10-04 09:51:40 +02:00
hunbernd
a432b94351 Fix remove friend from group
Fix missing update after creating a new group
2021-10-03 21:55:08 +02:00
Gioacchino Mazzurco
75aaf134d2
CI: fix phash install prefix in base dockerfile 2021-09-30 13:11:48 +02:00
csoler
9a440e077e automatically close ongoing uploads when we stop sharing an extra file 2021-09-21 20:47:25 +02:00
csoler
2bd3fbf977 made Options tab in Profiles Details window be disabled when the profile is not a friend 2021-09-19 20:05:19 +02:00
csoler
a2a55b06ce
Merge pull request #2474 from csoler/v0.6-BugFixing_13
added missing internal change of webUI directory
2021-09-08 21:08:16 +02:00
csoler
099113805e added missing internal change of webUI directory 2021-09-08 09:03:46 +02:00
csoler
0ca399ebf5
Merge pull request #2467 from csoler/v0.6-BugFixing_13
V0.6 bug fixing 13
2021-09-06 10:08:23 +02:00
csoler
0564fa6f2a
Merge pull request #2473 from defnax/fix-to-not-allow-empty-names
Fix to not allow empty profile names on profile creation
2021-09-06 10:07:41 +02:00
csoler
e9d5da330e
Merge pull request #2472 from hunbernd/fix/friendlistmodel-crash
Fixes crash after: (EE) asked to create an invalidated profile that a…
2021-09-06 10:06:40 +02:00
defnax
154148d77f Fix to not allow empty profile names on profile creation 2021-09-05 19:43:07 +02:00
hunbernd
e6d3ee978b Fixes crash after: (EE) asked to create an invalidated profile that already exists
createInvalidatedProfile returned with iterator.end() in some cases.
updateInternalData dereferenced the result without checking it first.
It overindexed an array, read some memory trash, then wrote it into an another array.
2021-09-05 18:11:58 +02:00
G10h4ck
6db102c2be
Merge pull request #2470 from G10h4ck/jsonapi_gxs_timers
Add JSON API to get/set GXS timers
2021-09-03 17:49:38 +02:00
Gioacchino Mazzurco
2ed1500724
Improve debuggability of failed CI
Separate ubuntu build and testing stages
2021-09-03 17:47:56 +02:00
Gioacchino Mazzurco
19915a8eb4
Fix broken line endings 2021-09-03 14:56:45 +02:00
Gioacchino Mazzurco
a18d6aaa1e
Add JSON API to get/set storage and sync GXS time 2021-09-03 14:55:03 +02:00
Gioacchino Mazzurco
8452e30afc
CI and Android toolchain improvements 2021-09-03 12:48:44 +02:00
Gioacchino Mazzurco
900ea5508d
Updated OBS submodule 2021-09-02 17:44:57 +02:00
Gioacchino Mazzurco
d51d96116f
Disable Travis CI Linux to save scarce credits
Fix Travis CI badge URL
2021-09-02 12:07:04 +02:00
Gioacchino Mazzurco
f5f0ddc1ad
Updated Travis CI URL 2021-09-02 11:13:41 +02:00
Gioacchino Mazzurco
af035478b9
Attempt to avoid timeout in Travis CI macOS 2021-09-02 09:08:01 +02:00
G10h4ck
9b1568a1ca
Merge pull request #2466 from G10h4ck/android_CI
Android: modernize toolchain, provide Dockerfile and setup GitlabCI
2021-09-01 21:56:52 +02:00
Gioacchino Mazzurco
e384613809
Android: provide Dockerfile and use it for GitalbCI
Add support for installing Android SDK NDK directly into
  prepare-toolchain-clang.sh
Modernize prepare-toolchain-clang.sh
Add support to install Qt based on installer 4.X to prepare-toolchain-clang.sh
Setub GtlabCI to build android APK based on the produced Docker image
2021-08-31 10:03:40 +02:00
csoler
e22c5c9702 added bool return value to denyLobbyInvite() and marked overriding methods in p3msgs accordingly 2021-08-29 21:15:52 +02:00
csoler
448b00f95a Merge remote-tracking branch 'upstream/master' 2021-08-29 20:16:47 +02:00
csoler
5e851b4efd trying to fix compilation on windows 2021-08-28 21:46:02 +02:00
csoler
f5f608dbec trying to fix compilation on windows 2021-08-28 21:39:12 +02:00
csoler
6d56f3289b
Merge pull request #2460 from hunbernd/fix/imgembedlocalfiles
Filter html img tags that points to local files
2021-08-26 17:30:37 +02:00
hunbernd
de3ad227bd Filter html img tags that points to local files 2021-08-23 01:16:36 +02:00
csoler
563fc14532
Merge pull request #2459 from hunbernd/fix/partialfiles
Fix: additional / when combining file paths
2021-08-22 21:30:01 +02:00
csoler
5c560837ba fixed unwanted display of DHT information in connect disalog for Tor nodes and Tor friends 2021-08-15 15:38:16 +02:00
csoler
3de68bf5e5 Merge remote-tracking branch 'upstream/master' into v0.6-TorControl 2021-08-15 15:07:58 +02:00
csoler
8b586412c2 Merge remote-tracking branch 'upstream/master' into v0.6-PGPHandler 2021-08-15 10:09:45 +02:00
csoler
020ef61297 fixed compilation 2021-08-15 09:41:30 +02:00
csoler
b084b20280 removed getAuthGPG and replaced AuthGPG with a class with static members 2021-08-14 14:56:28 +02:00
csoler
b8f4e64393 initial split of PHPHandler into two classes 2021-08-11 16:02:02 +02:00
csoler
4db6ac92e7 initial split of PHPHandler into two classes 2021-08-11 16:01:45 +02:00
Gioacchino Mazzurco
8bed99cc9f
Fix compilation with C++17 2021-08-06 12:15:34 +02:00
howdy-partner
3cfab3ace0 fix smiley bug 2021-07-31 13:32:17 +02:00
thunder2
282f4f18a3 Removed library opencv from Windows build environment 2021-07-19 21:08:41 +02:00
thunder2
6cf60f1add Removed not needed libraries in VOIP.pro for Windows build 2021-07-19 21:07:52 +02:00
Gioacchino Mazzurco
e850e00a82
Optimization, cleanup, compiler warning fix
Chores I have made while working on single file share
2021-07-19 16:40:13 +02:00
Gioacchino Mazzurco
817a961013
Improve RsDirUtil::lastWriteTime error reporting 2021-07-18 22:41:14 +02:00
Gioacchino Mazzurco
9970f9d22f
Avoid leaking single shared file path in search results
Single shared files are a bit special and contain the full path in the
  name because they are not shared as part of a directory, epurate the
  path component from matching process and from search result
2021-07-18 21:16:46 +02:00
Gioacchino Mazzurco
e1580868dc
Avoid leaking non browsable shared single files to friends 2021-07-18 21:16:46 +02:00
Gioacchino Mazzurco
fc198d4e6d
libretroshare: add share single files (no dir, no extra)
Add capability to libretroshare to share single files without sharing
  the whole folder containing it, this is expecially useful in Android
  where files are organized in a peculiar way that render classic way of
  sharing folder almost unusable. Using extra files which was already
  implemented doesn't solve this use case as extra files are limited in
  time and dosn't support search and sharing permissions.
RetroShare GUI works fine if a single file is added as shared dir via
  JSON API, but probably would need tweaking some flags in file picker
  to give the ability to the user.
2021-07-18 21:16:45 +02:00
csoler
1f10be1c90
Merge pull request #2439 from csoler/v0.6-BugFixing_12
fixed errors in libretroshare.pro
2021-07-15 17:18:36 +02:00
csoler
0c98b7f178
Merge pull request #2438 from csoler/v0.6-rsHistory
[WIP] Documenting rsHistory.h to bring history to JSON api
2021-07-04 23:39:26 +02:00
csoler
abf481b0a1 removal of slignal/slots 2021-07-04 18:27:12 +02:00
csoler
b6156bff00 fixed compilation for appveyor 2021-07-04 14:06:37 +02:00
csoler
4e4427f0bd fixed errors in libretroshare.pro 2021-07-03 22:01:07 +02:00
csoler
8505544294 removed signals in HiddenService class 2021-07-03 21:54:44 +02:00
csoler
4833a8fdc4 added json api description for the rest of RsHistory 2021-07-03 20:48:47 +02:00
csoler
0dd1d7703e
Merge pull request #2421 from csoler/v0.6-plugins-VOIP
Switched video capture to QCamera and removed opencv dependency
2021-07-03 00:36:36 +02:00
csoler
875084ff52
Merge pull request #2432 from G10h4ck/rsidentity_json_fixup
Avoid JSON operations on RsGxsIdGroup::mPgpIdSign
2021-07-03 00:35:49 +02:00
csoler
d6ccd75a7f started documenting rsHistory.h to bring history to JSON api 2021-07-03 00:31:09 +02:00
csoler
a43a158750 added back missing files 2021-07-03 00:13:01 +02:00
csoler
ae79261cbc fixed bootstrapping of Tor in retroshare-service 2021-07-02 00:11:10 +02:00
csoler
da86da29ff attempt at fixing tor bootstrap. Not working yet 2021-06-29 00:23:32 +02:00
csoler
139b22b41a added rstor.h file 2021-06-27 18:14:22 +02:00
csoler
a23ad41b11 fixed event handling in Tor bootstrap process 2021-06-26 23:13:17 +02:00
csoler
607c1896e5 progress in event handling in RsTor 2021-06-26 18:52:48 +02:00
csoler
43e8ed3d98 fixed compilation 2021-06-26 17:12:17 +02:00
csoler
f13b0cbe9f keeping Qt internally for a while and making RsTor Qt-free 2021-06-25 21:46:00 +02:00
csoler
9a6257e3c5
Merge pull request #2429 from howdy-partner/smiley-fix
fix smiley bug
2021-06-24 20:35:55 +02:00
Gioacchino Mazzurco
7bf4da0691
Avoid JSON operations on RsGxsIdGroup::mPgpIdSign
The field is actually a raw memory chunk even if declared as an
  std::string as result the produced JSON is broken and JSON API clients
  cannot parse the output of methods like rsIdentity/getIdentitiesInfo
A proper fix would be refactoring the whole code to use a proper raw
  memory buffer for that field but given there is no usage for a raw PGP
  signature on a client app as RetroShare library already verify it internally
  workaround the issue by just ignoring that field in JSON serial operations.
2021-06-22 08:24:11 +02:00
csoler
d7fb3d8bf4 moved TorControl files into libretroshare. Not compiling yet. 2021-06-19 15:34:46 +02:00
csoler
20c0032ca8
Merge pull request #2430 from G10h4ck/extra_file_optimization
Files extra list optimization and cleanup
2021-06-14 13:07:19 +02:00
Gioacchino Mazzurco
476180dc14
Files extra list optimization and cleanup
Improve performances and fix compiler warnings
2021-06-14 11:53:27 +02:00
howdy-partner
0db2f3a53e fix smiley bug 2021-06-10 00:41:42 +03:00
csoler
90bc88089c fixed up bandwidth display when no video is selected 2021-05-27 21:45:56 +02:00
csoler
b78f7f11de added the possiblity to choose which camera to use 2021-05-27 21:21:26 +02:00
csoler
d1a166df55
Merge pull request #2419 from csoler/v0.6-BugFixing_10
fixed deadlock caused by wrong order in mutex lock
2021-05-26 11:41:57 +02:00
csoler
7b5be347bf refactored the UI of VOIP config panel and added list of available devices (not used yet) 2021-05-15 21:37:11 +02:00
csoler
d3f75234a7 moved abSpeech audio bar to main panel 2021-05-12 23:24:57 +02:00
csoler
d7ecd775eb made camera/audio only active when config panel is shown 2021-05-12 23:05:15 +02:00
csoler
c4fbd3a4f5 renamed AudioInputConfig into VOIPConfigPanel 2021-05-12 21:44:25 +02:00
csoler
0de9c877b8 switched video capture to QCamera and removed opencv dependency 2021-05-12 09:40:42 +02:00
G10h4ck
4b34c73cf8
Merge pull request #2416 from howdy-partner/libupnp-detection-fix
Fix qmake library path on 64 bits linux
2021-05-07 17:36:19 +02:00
csoler
8539dd503a fixed deadlock caused by wrong order in mutex lock 2021-05-04 19:49:47 +02:00
howdy-partner
fe53ee4842 Fix libupnp autodetection for qmake 2021-04-25 23:38:00 +03:00
sehraf
b4be02c57b
rebase on 0.6.6 2021-04-09 16:15:40 +02:00
csoler
12e556c204
Merge pull request #2403 from csoler/v0.6-BugFixing_10
fixing VOIP compilaiton on ubuntu 20.04
2021-04-04 14:44:49 +02:00
csoler
d1e44adb3e Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_10 2021-04-04 14:41:58 +02:00
csoler
b2f9ac5b71 fixed VOIP compilation on ubuntu 20.04 2021-04-04 14:40:15 +02:00
defnax
c71b99c902
Merge pull request #2402 from defnax/macos
Update MacOS_X_InstallGuide.md
2021-04-03 14:19:04 +02:00
defnax
7702ad69f3 Update MacOS_X_InstallGuide.md 2021-04-03 11:24:49 +02:00
defnax
4fe3c955a3 Update MacOS_X_InstallGuide.md 2021-04-02 23:00:10 +02:00
defnax
a847541c1b
Merge pull request #2401 from defnax/macos
update macOs compile instruction
2021-04-02 14:59:20 +02:00
defnax
bba3051a54 Update MacOS_X_InstallGuide.md 2021-04-02 12:45:19 +02:00
defnax
729f36c792 Update MacOS_X_InstallGuide.md 2021-04-02 12:29:21 +02:00
defnax
0683bd2717 Update MacOS_X_InstallGuide.md 2021-04-02 12:02:01 +02:00
csoler
cd61ec8635 move initialization of UI at the top in NewsFeed 2021-03-31 22:31:00 +02:00
csoler
3f50f6f2d6
Merge pull request #2385 from RetroShare/v0.6.6-Official-Release
Recent fixes to V0.6.6 official release
2021-03-31 15:40:44 +02:00
csoler
fd5766a5fb added the possibility to clear the avatar when editing 2021-03-31 15:35:50 +02:00
csoler
5274a060e5 fixed use of no avatar instead of default avatar image when creating a new ID 2021-03-31 15:35:37 +02:00
csoler
9617ee5135 added the possibility to clear the avatar when editing 2021-03-29 22:25:03 +02:00
defnax
9a500dc62f Update MacOS_X_InstallGuide.md 2021-03-29 18:22:32 +02:00
csoler
b4a3d67486 fixed use of no avatar instead of default avatar image when creating a new ID 2021-03-28 13:26:49 +02:00
csoler
fae6314374
Merge pull request #2398 from hunbernd/fix/avatartooltip
Fix avatar tooltip
2021-03-28 11:11:31 +02:00
hunbernd
4d6aa8ab5b Raise avatar size to better match the amount of text 2021-03-27 23:32:47 +01:00
hunbernd
f90692f8f2 Fixed avatar tooltip 2021-03-27 23:17:52 +01:00
defnax
1ed1842a1b
Merge pull request #2397 from defnax/macos
Update MacOS_X_InstallGuide.md
2021-03-27 15:04:36 +01:00
defnax
bfc0456730 Update MacOS_X_InstallGuide.md 2021-03-27 13:42:47 +01:00
defnax
3c45bb5553
Merge pull request #2396 from defnax/macos
Added to ship gui and chat styles for macOS
2021-03-26 23:58:51 +01:00
defnax
dca887ab9e Added OBJECTS_DIR for macOS section 2021-03-26 23:03:58 +01:00
defnax
43eeca57b9 Added to ship gui and chat styles for macOS 2021-03-26 21:22:48 +01:00
defnax
e7a87d89eb
Merge pull request #2395 from defnax/macos
Update MacOS_X_InstallGuide.md
2021-03-26 21:18:13 +01:00
csoler
e22e1c1a8b
Merge pull request #2393 from hunbernd/fix/WebUI-binary-files
Fix: WebUI truncating binary files
2021-03-26 20:15:33 +01:00
defnax
a7c2ec43a3 Update MacOS_X_InstallGuide.md 2021-03-26 17:36:01 +01:00
defnax
ad568aa786
Merge pull request #2394 from defnax/macos
Update MacOS_X_InstallGuide.md
2021-03-26 15:33:12 +01:00
defnax
f17d2eb4df Update MacOS_X_InstallGuide.md 2021-03-26 12:49:08 +01:00
defnax
a783ffac75 Update MacOS_X_InstallGuide.md 2021-03-26 12:06:10 +01:00
hunbernd
bb6841370f Fix: WebUI truncating binary files.
Fixes font files not loading properly in the webui problem.
2021-03-25 18:20:11 +01:00
Gioacchino Mazzurco
2064d7c6ff
Update OBS submodule 2021-03-24 17:48:19 +01:00
Gioacchino Mazzurco
67c607cb32
Fix Android compilation 2021-03-23 23:16:31 +01:00
defnax
914a2eca55
Merge pull request #2391 from defnax/macos
removed the old macos instructions
2021-03-23 13:55:34 +01:00
defnax
505a963212 removed the old macos instructions 2021-03-22 19:11:23 +01:00
csoler
a6573826b2
Merge pull request #2386 from rottencandy/event-api-cors
Include CORS headers in response for rsEvents/registerEventsHandler
2021-03-20 13:49:28 +01:00
Mohammed Saud
bf41f8ad92 add CORS headers to rsEvents/registerEventsHandler 2021-03-19 23:10:43 +05:30
csoler
2f793b3de1
Merge pull request #2381 from PhenomRetroShare/Fix_BroadcastHistoryRestore
Fix Name in Broadcast history restore.
2021-03-18 23:04:16 +01:00
csoler
7559b06c6b
Merge pull request #2376 from PhenomRetroShare/Fix_RemoveBadRS_ERRInFriendListModel
Fix Remove bad RS_ERR in FriendListModel
2021-03-18 23:02:15 +01:00
thunder2
5b1b0cadf9 Moved tor binaries into subfolder "tor" for Windows build 2021-03-16 21:43:26 +01:00
sehraf
feaea75847
fixup rebase 2021-03-16 21:15:32 +01:00
sehraf
911cbeb61a
fix key generation and cleanup 2021-03-16 21:15:31 +01:00
sehraf
27fa8a35b0
fix key generation and cleanup 2021-03-16 21:15:31 +01:00
sehraf
5418483934
fixed wrong size check 2021-03-16 21:15:31 +01:00
sehraf
aef993de55
reduce log 2021-03-16 21:15:31 +01:00
sehraf
8a2efe3e58
use libsam3 git submodule 2021-03-16 21:15:31 +01:00
sehraf
9c71177d3b
add workaround for i2p/libsam3#15 2021-03-16 21:15:31 +01:00
sehraf
59fa96eb5f
remove own copy of libsam3 2021-03-16 21:15:31 +01:00
sehraf
719adaae9b
update i2psam3 2021-03-16 21:15:31 +01:00
sehraf
36e238951f
update p3i2psam 2021-03-16 21:15:31 +01:00
sehraf
1fa16aa6eb
SAM3: fix double free 2021-03-16 21:15:31 +01:00
sehraf
c869b9757f
drop BOB code 2021-03-16 21:15:31 +01:00
sehraf
47a4b726a3
update libsam3 2021-03-16 21:15:31 +01:00
sehraf
25cb152a7e
make pqissl notice bad file descriptor 2021-03-16 21:15:31 +01:00
sehraf
e4336a8a41
GUI: remove i2p proxy port, there is none with SAM 2021-03-16 21:15:30 +01:00
sehraf
eb0aa340e3
remove i2psam (library) support 2021-03-16 21:15:30 +01:00
sehraf
10189ba4d0
add i2psam3 2021-03-16 21:15:30 +01:00
sehraf
42bc295d1a
add i2psam3 2021-03-16 21:15:30 +01:00
sehraf
76f0678820
add fork of libsam3
add funtion to get i2p certificate crypto algo names
2021-03-16 21:15:26 +01:00
Phenom
017f2886b3 Fix Name in Broadcast history restore. 2021-03-16 11:00:18 +01:00
defnax
130d846e47
Merge pull request #2379 from defnax/travis-attempt-fix
attempt to fix travis
2021-03-14 12:22:12 +01:00
defnax
c8ab9e0bd5 attempt to fix 2021-03-14 00:47:57 +01:00
csoler
751fffc30f
Merge pull request #2378 from csoler/v0.6-BugFixing_10
Last fixes (removed debug log) before release
2021-03-13 22:54:52 +01:00
csoler
388140e263 added missing debug ifdef 2021-03-13 22:28:52 +01:00
csoler
4420575a9a removed debug info about superseded groups 2021-03-13 22:28:26 +01:00
csoler
f1b022a6c1 only print the 50 first characters of undisplayed resources 2021-03-13 22:28:06 +01:00
csoler
c9d7cb7e7e fixed wrong define in debug for circles 2021-03-13 22:27:43 +01:00
defnax
2e1716c9e1
Merge pull request #2375 from PhenomRetroShare/Fix_HandleRichText
Fix HandleRichText
2021-03-13 14:16:00 +01:00
Phenom
8ef464e21e Fix Remove bad RS_ERR in FriendListModel 2021-03-13 13:05:07 +01:00
Phenom
21105cac17 Fix HandleRichText 2021-03-13 11:51:06 +01:00
csoler
fb48143b1e
Merge pull request #2373 from csoler/v0.6-BugFixing_10
Trying to fix bug that breaks sorting in NewFriendList
2021-03-12 18:06:20 +01:00
csoler
bd6148ab0f removed debug output 2021-03-11 23:42:09 +01:00
csoler
a5afc2226c fixed sorting lost issue in Network 2021-03-11 21:12:14 +01:00
csoler
30e59133cb proper loading/saving of onLineFriendsOnTop and showOffLineFriends 2021-03-10 21:43:37 +01:00
csoler
e750a3fced improved debug output and code in NewFriendList sorting 2021-03-10 21:04:23 +01:00
csoler
61a79b296e fixed expanded group items in NewFriendList. Added more debug info 2021-03-10 20:43:43 +01:00
altcoinpirate
85bfb48890
Disable animation in ft transfers dialog tree view widget 2021-03-10 01:19:45 +00:00
altcoinpirate
73355d09e3
Disable animation in file transfer shared files tree view widget 2021-03-10 01:16:50 +00:00
altcoinpirate
50ed20236f
Disable animation in file transfer search dialog tree view widget 2021-03-10 01:13:15 +00:00
G10h4ck
123027dc11
Merge pull request #2370 from G10h4ck/android_scripts_fixup
Fix define_default_value in android scripts
2021-03-09 18:54:09 +01:00
csoler
eee2fe43cf
Merge pull request #2362 from csoler/v0.6-BugFixing_10
A few fixes in People tab
2021-03-08 22:50:26 +01:00
csoler
89b6d95197
Merge pull request #2369 from G10h4ck/fix_RsGxsNetService_requestGrp
Fix list overwrite in RsGxsNetService::requestGrp
2021-03-08 22:50:03 +01:00
csoler
8df1f0bf41 fixed crash due to using twice the same method name in p3gxscircles.h wiht json api header 2021-03-08 20:51:21 +01:00
Gioacchino Mazzurco
20c3131422
Fix define_default_value in android scripts
define_default_value wrongly reported error if the variable was already
  defined, causing the scripts to fail under bash -e, fix it by
  reporting corret exit value
2021-03-08 20:12:50 +01:00
Gioacchino Mazzurco
74dc476282
Fix list overwrite in RsGxsNetService::requestGrp
When requestGrp was called with different groups for same peer multiple
  times between ticks the list was overridden and groups from previous
  call overridden by the new, as a result some requested groups may be
  never really requested. Fix the bug by using a set instead of a list
  so the newly requested groups are uniquely added to the set without
  removing the previously added.
2021-03-08 20:07:07 +01:00
csoler
bc99321b14 fixed merge with upstream/master 2021-03-08 09:34:34 +01:00
csoler
0fa8573dbd removed inconsistent arrows from network list 2021-03-07 21:27:13 +01:00
csoler
6f78952df9 fixed error msg 2021-03-07 21:00:53 +01:00
defnax
51dbbfb222
Merge pull request #2368 from defnax/ui-fix-17
Wiki Editor and stylesheets fixes
2021-03-07 12:52:07 +01:00
defnax
f2bb0c79eb fixing margin 2021-03-07 01:04:27 +01:00
defnax
f7e409519d Wiki Editor and stylesheets fixes 2021-03-07 00:31:05 +01:00
defnax
e46d6783bc
Merge pull request #2365 from PhenomRetroShare/Fix_Windows64G++MSys2Build
Fix Windows 64b G++ under MSys2 compil.
2021-03-06 11:08:32 +01:00
defnax
f0a2fa95ec
Merge pull request #2364 from PhenomRetroShare/Fix_ChatHistoryBrowser
Fix Chat History Browser
2021-03-05 21:30:29 +01:00
Phenom
d78316cbd2 Fix Chat History Browser 2021-03-05 20:18:00 +01:00
Phenom
3d9ba341f0 Fix Windows 64b G++ under MSys2 compil. 2021-03-05 17:40:06 +01:00
defnax
0e38f4870f
Merge pull request #2344 from PhenomRetroShare/Fix_BubbleChatStyle
Fix Bubble Chat Style
2021-03-04 18:41:26 +01:00
csoler
66941ecb21 fixed update interactivity in own identities and circles 2021-03-03 22:38:05 +01:00
csoler
15dd72ec7a fixed internal GRP authentication flags of edited circles 2021-03-03 22:37:44 +01:00
csoler
118ec492e6 added missing explicit update circle method (Not used yet) 2021-03-03 22:37:12 +01:00
Phenom
2075e8c23b Fix Bubble Chat Style 2021-03-03 22:18:30 +01:00
csoler
1bfd49419d
Merge pull request #2347 from defnax/gui-fix-v1
Added Edit Identity button to People view
2021-02-28 21:36:50 +01:00
csoler
4ef1c0545c
Merge pull request #2359 from csoler/v0.6-v0.6.6
moved from 0.6.6-RC2 to 0.6.6
2021-02-28 20:13:36 +01:00
csoler
f5233b1190 moved from 0.6.6-RC2 to 0.6.6 2021-02-28 20:02:57 +01:00
csoler
2b9a290a85
Merge pull request #2350 from csoler/v0.6-BugFixing_10
Bug fixing in FriendList
2021-02-28 19:59:57 +01:00
csoler
1f8b49ea29 removed debug info from NewFriendList 2021-02-28 15:56:27 +01:00
csoler
761a4ee3ef fixed auto-scrolling in NewFriendList 2021-02-28 15:50:18 +01:00
csoler
3e4841426d added debug tags around GxsIdDetails 2021-02-28 15:49:58 +01:00
defnax
dda83c387d
Merge pull request #2358 from defnax/feeds-ui-v4
attempt to fix some issues on comments feeds
2021-02-28 15:13:20 +01:00
defnax
1e1032ec94 attempt to fix some issues on comments feeds 2021-02-27 20:43:41 +01:00
defnax
bdc2a8f814
Merge pull request #2356 from defnax/feeds-ui-v4
Fixing stylesheets
2021-02-27 18:25:55 +01:00
defnax
ae8071c6d9 Fixing fonts stylesheets for boards 2021-02-27 12:30:57 +01:00
csoler
8cddd33953
Merge pull request #2353 from csoler/v0.6-BugFixing_11
Fixed problem causing some blank feed items in forums
2021-02-27 11:14:08 +01:00
csoler
b16c30bc3f fixed registration of event handler 2021-02-26 23:20:48 +01:00
csoler
339948a15c added missing event for FriendList when friends added now that notifyQt is not used anymore 2021-02-26 23:01:41 +01:00
csoler
f045be1968
Merge pull request #2355 from csoler/v0.6-Translations
updated translation files
2021-02-26 22:03:13 +01:00
defnax
f42da9200b
Merge pull request #2354 from defnax/feeds-ui-v4
Fixing margins for comments feeds
2021-02-26 13:56:27 +01:00
csoler
8e61b0ce4f moved key share consts into an enum in GroupKeyShare class 2021-02-26 11:16:01 +01:00
csoler
ab12f531d0 fixed removal of board share publish permission entry in drop menu 2021-02-26 10:39:38 +01:00
csoler
7ab7f226e1 updated translation files 2021-02-25 22:48:21 +01:00
defnax
dc90b49496 Fixing margins for comments feeds 2021-02-25 21:43:46 +01:00
csoler
f4bc964ac5 simplified the code in feeds GxsForumItem, making sure that group msg and parent msg data are all loaded correctly (avoids blank feed items) 2021-02-25 17:52:43 +01:00
csoler
d62506479e fixed bug in debug dump of GxsIdDetails icon cache 2021-02-24 20:55:42 +01:00
csoler
1a4585ccee added dump of icon cache 2021-02-24 11:26:15 +01:00
csoler
2cdad9ea66
Merge pull request #2351 from jolavillette/free_pendMutexFix
add missing mutex locks around free_pend() calls in 3 places in pqistreamer.cc
2021-02-24 10:10:09 +01:00
RetroPooh
47d89a6959 keyring - make accepted keys removing correct; allow multi-select 2021-02-22 21:43:42 +03:00
jolavillette
b8b3d7515c add missing mutex locks around free_pend calls in pqistreamer.cc 2021-02-22 09:04:33 +01:00
csoler
3356509044 removed regular update of node info in friend list model as it does not seem to be needed 2021-02-21 20:55:38 +01:00
csoler
5f705686fa removed connections to notifyQt in NewFriendList since they are now handled by rsEvents 2021-02-21 20:18:29 +01:00
csoler
e765aebf8a
Merge pull request #2343 from csoler/v0.6-BugFixing_10
auto-validate own signed identities
2021-02-20 23:19:16 +01:00
csoler
36e063160c removed some debug messages 2021-02-20 20:29:30 +01:00
csoler
226de56f88 improved output for when max chat room messages is reached 2021-02-20 20:20:56 +01:00
defnax
1539b0c078
Merge pull request #2348 from defnax/darkstylesheet-fixes-v2
Fixed darkstylesheets fonts issues
2021-02-20 19:41:57 +01:00
defnax
421556f907 Fixed darkstylesheets fonts issues 2021-02-20 18:32:33 +01:00
defnax
78f63d4d7f fixed compile 2021-02-20 17:39:06 +01:00
defnax
9d4bc677bb Fixed to hide unwanted labels and buttons on a ssl request 2021-02-20 16:14:27 +01:00
defnax
dfa611095e
Merge pull request #2346 from defnax/qss-fix
fixed some values for font-size
2021-02-20 15:42:31 +01:00
defnax
b461d3c782 Added Edit Identity button to People view 2021-02-20 14:24:59 +01:00
defnax
e258058f4d Fixed Avatar issue on comments feeds to have a good quality 2021-02-20 13:57:07 +01:00
defnax
a4ad9c6467 fixed some values for font-size 2021-02-20 13:47:33 +01:00
csoler
481a207ccb fixed bug when retroshare-service -U list is ran with no account 2021-02-20 09:32:57 +01:00
csoler
d1baa3821a auto-validate own signed identities 2021-02-19 21:09:17 +01:00
defnax
49216552df
Merge pull request #2341 from PhenomRetroShare/Fix_ReplacePXFontSizeToPT
Fix Replace all px font-size: to pt for HiDPI monitors
2021-02-19 18:36:36 +01:00
defnax
ddec32ac12
Merge pull request #2340 from PhenomRetroShare/Fix_SIGSEGV_InMessage
Fix SIGSEGV in Messages changing junk, start or read status.
2021-02-19 18:35:54 +01:00
defnax
62685550bf
Merge pull request #2338 from PhenomRetroShare/Fix_UninitOnFriendListModel
Fix Uninitialised value in FriendListModel
2021-02-19 18:35:31 +01:00
csoler
d2407c4e9d
Merge pull request #2327 from csoler/v0.6-BugFixing_10
experimental fix against early closing crash on CreateCircleDialog
2021-02-19 18:05:04 +01:00
Phenom
e39a77a445 Fix Replace all px font-size: to pt for HiDPI monitors 2021-02-19 17:47:29 +01:00
Phenom
fa2f2abfcb Fix SIGSEGV in Messages changing junk, start or read status. 2021-02-19 17:20:13 +01:00
Phenom
fb61186daa Fix Uninitialised value in FriendListModel 2021-02-19 14:41:38 +01:00
defnax
21e775d116
Merge pull request #2337 from defnax/ui-fix-v15
Added a own arrow icons for the friendslist tree branch
2021-02-19 13:44:24 +01:00
defnax
10419d94ec update images file 2021-02-19 00:44:37 +01:00
defnax
28436b8afb changed arrow color to gray 2021-02-18 23:26:08 +01:00
defnax
1d62d00e76 Added a own arrow icons for the friendslist tree branch 2021-02-18 22:59:34 +01:00
csoler
6cca74aec6 added same trick on ESC 2021-02-18 22:48:16 +01:00
defnax
9cf8cdfa76
Merge pull request #2336 from defnax/ui-fix-v15
disabled tree branch stylesheet till find a fix.
2021-02-18 22:36:13 +01:00
csoler
e34ed72ff7 another try to fix that damn bug 2021-02-18 22:33:19 +01:00
defnax
083b6ea7b5
Merge pull request #2335 from PhenomRetroShare/Fix_UserNotifyToolTip
Fix UserNotify ToolTip
2021-02-18 21:15:20 +01:00
defnax
302b0ae24f disabled tree branch stylesheet till find a fix. 2021-02-18 21:12:16 +01:00
Phenom
e2e89dc971 Fix UserNotify ToolTip 2021-02-18 18:39:21 +01:00
defnax
33007f902f
Merge pull request #2334 from PhenomRetroShare/Fix_ChatStyleSetting
Fix Chat Style Setting
2021-02-18 17:57:48 +01:00
csoler
74663509dc added missing e->ignore() on close event 2021-02-18 16:16:58 +01:00
defnax
157f863b7f
Merge pull request #2332 from defnax/ui-fix-v14
Ui fixes
2021-02-18 13:38:33 +01:00
defnax
80259dfcd3
Merge pull request #2333 from PhenomRetroShare/Fix_LinkOnBoardPostDisplayWidget_compact
Fix Links on BoardPostDisplayWidget_compact
2021-02-18 13:38:19 +01:00
Phenom
3593d71d2f Fix Chat Style Setting 2021-02-18 11:42:55 +01:00
Phenom
2544e6a0cf Fix Links on BoardPostDisplayWidget_compact 2021-02-18 09:29:50 +01:00
csoler
3f04244169 added guarding code against close for circle loading too 2021-02-17 21:41:38 +01:00
csoler
3548f5eac5 added debug output to help figuring out the problem 2021-02-17 21:22:39 +01:00
defnax
17b1a72d44 Use for short retroshare id own string for the info 2021-02-17 21:03:43 +01:00
defnax
47adb3946b Enabled openExternalLinks for comments feeds
* Changed reset icon for bw graph
2021-02-17 19:54:16 +01:00
defnax
5ad2342922
Merge pull request #2281 from PhenomRetroShare/Add_RSTreeWidgetSortMenu
Add RsTreeWidget Sort Context Menu
2021-02-17 19:44:41 +01:00
defnax
f57c7ac2bc
Merge pull request #2331 from PhenomRetroShare/Fix_FriendList_FontOnQSS
Fix NewFriendList item Font defined in QSS
2021-02-17 13:50:17 +01:00
Phenom
1293da2206 Fix NewFriendList item Font defined in QSS 2021-02-17 11:52:29 +01:00
defnax
702c942d23
Merge pull request #2325 from defnax/helplink
update the retroshare docs link
2021-02-16 22:57:09 +01:00
defnax
1a07f61f35
Merge pull request #2330 from defnax/ui-fix-v13
fixed stylesheet issue on security feed item
2021-02-16 21:54:55 +01:00
defnax
4c7a9a52a6 fixed stylesheet issue on security feed item 2021-02-16 20:49:05 +01:00
Phenom
d3a0ed7690 Make Gxs categories not sortable, item sort by value and possibility for
null to be always at end.
2021-02-16 16:54:14 +01:00
Phenom
861feb113c Add RsTreeWidget Sort Contect Menu
Now Header sort when visible or In context menu is hidden.
2021-02-16 16:54:14 +01:00
csoler
5f15414e65 experimental fix against early closing crash on CreateCircleDialog 2021-02-15 22:37:43 +01:00
csoler
36b64696a1
Merge pull request #2326 from RetroPooh/hashfinxf
hide hashing status in statusbar after extrafiles done
2021-02-15 22:05:18 +01:00
csoler
20c34998b4
Merge pull request #2324 from RetroPooh/torstatus
Torstatus icon fixed for no-auto mode plus i2p icon
2021-02-15 22:04:00 +01:00
csoler
992b1ef066
Merge pull request #2323 from csoler/v0.6-BugFixing_10
Attempt to fix propagation of circle-restricted grps when membership is changed.
2021-02-15 22:01:15 +01:00
RetroPooh
7c5fe7e0a3 hide hashing status in statusbar after extrafiles done 2021-02-15 23:41:44 +03:00
defnax
0d5022f963 update the retroshare docs link 2021-02-15 21:17:27 +01:00
RetroPooh
bcc2061bfa tor status icon fix for non-auto mode; add i2p icon 2021-02-15 21:22:07 +03:00
csoler
04fd7f17ca fixing update of groups restricted to circles when circle membership changes 2021-02-15 18:42:34 +01:00
defnax
b6e8f62307
Merge pull request #2320 from defnax/ui-fix-v12
UI fixes
2021-02-15 18:34:25 +01:00
csoler
ec7a56d01b
Merge pull request #2321 from csoler/v0.6-BugFixing_10
[WIP] V0.6 bug fixing 10 - replaces 2318
2021-02-15 18:17:38 +01:00
csoler
6359a05f55 fixed update of post button when channel publish rights received 2021-02-15 14:11:44 +01:00
csoler
8e91efbb93 fixed setAutoDownload and setDownloadDirectory for channels 2021-02-14 23:40:35 +01:00
csoler
4ef58cce81 fixed update of channel list when publish permissions received 2021-02-14 23:14:23 +01:00
defnax
ceccb8cb47 Removed embeded emojis 2021-02-14 21:59:02 +01:00
defnax
41f66247aa Removed the left & right spacers from the home page 2021-02-14 21:17:07 +01:00
defnax
8bf3c9b78b Fixed message feeds stylesheet issue 2021-02-14 20:53:49 +01:00
defnax
0de6a960ba Fixed for right Toaster to has no Frame 2021-02-14 20:23:09 +01:00
defnax
475e0d1e71 Fixed some missed icons
* Fixed background color when Friend is selected
2021-02-14 19:38:36 +01:00
defnax
7a2985342e
Merge pull request #2316 from PhenomRetroShare/Fix_ConfCertDialog
Fix ConfCertDialog and PGPKeyDialog
2021-02-14 12:01:08 +01:00
defnax
3d002c37e2
Merge pull request #2319 from defnax/ui-fixing-v1
update stylesheets and invite screenshot
2021-02-14 11:36:41 +01:00
defnax
8610dbab57 update authors 2021-02-14 00:50:53 +01:00
defnax
ee373141cb update stylesheets and invite screenshot 2021-02-14 00:27:12 +01:00
defnax
3eb5142fe8
Merge pull request #2317 from PhenomRetroShare/Fix_MailDelete
Fix Mail delete
2021-02-13 22:32:11 +01:00
defnax
ea062ae231
Merge pull request #2298 from defnax/ui-fix-1
Use a progressbar instead of icon label for the status
2021-02-13 22:31:37 +01:00
Phenom
4d93e527f8 Fix Mail delete 2021-02-13 19:39:50 +01:00
csoler
dfa088acac
Merge pull request #2308 from csoler/v0.6-BugFixing_9
V0.6 bug fixing 9
2021-02-13 14:13:18 +01:00
defnax
a2f4df677c
Merge pull request #2313 from defnax/ui-fixing-v1
Ui fixes
2021-02-13 14:08:35 +01:00
Phenom
8251277d77 Fix ConfCertDialog and PGPKeyDialog 2021-02-13 13:20:50 +01:00
defnax
07aff5cb8f Hide the new and read button/label not used yet on Board feeds 2021-02-13 12:27:14 +01:00
defnax
777755e665 Update the tooltip for retroshare ID 2021-02-13 12:22:58 +01:00
defnax
a8637f6080 Fixed to hide the tags frame on Edit Edit Dialog 2021-02-13 00:53:47 +01:00
defnax
2b8c46017e Fixed to clear the pixmap 2021-02-13 00:45:11 +01:00
defnax
3b86dce5ac Fixed stylesheet issue on Circle feed 2021-02-13 00:21:52 +01:00
csoler
9fd16827da fixed compilation of rsgxsnetservice debg code 2021-02-12 23:38:35 +01:00
defnax
c26d500349 Ui fixes on Appearance and Plugins Page
* Update help string for Activity feed
2021-02-12 21:49:45 +01:00
defnax
5dc2602b39
Merge pull request #2311 from PhenomRetroShare/Add_qmake_info
Add qmake DEFINES and CONFIG in About Info to know how RS was compiled.
2021-02-12 19:19:48 +01:00
Phenom
c0478d4a97 Add qmake DEFINES and CONFIG in About Info to know how RS was compiled. 2021-02-12 12:07:06 +01:00
defnax
8e0e4eb138
Merge pull request #2310 from defnax/avatardialog-fix-v2
Fixed Avatar storing on Avatar Dialog
2021-02-11 19:03:50 +01:00
defnax
628ec47601
Merge pull request #2306 from defnax/ui-fix-v10
Feeds fixing
2021-02-10 23:31:30 +01:00
defnax
1d5396d509 Fixed Avatar storing on Avatar Dialog 2021-02-10 23:29:33 +01:00
csoler
e4cb864f53 fixed keepign previous avatar when editing GxsId 2021-02-10 21:54:34 +01:00
csoler
43fbd6f76a fixed bug causing lack of passwd request on group edit 2021-02-10 21:47:06 +01:00
csoler
499753f873 fixed setting up avatar when creating a GxsId 2021-02-10 20:57:55 +01:00
csoler
f0500c3fd1 patch from Phenom to fix uninitialized values 2021-02-10 19:59:52 +01:00
csoler
30892c9b27
Merge pull request #2307 from PhenomRetroShare/Fix_RsNxsGrpUninit
Fix Uninitialised in RsNxsGrp
2021-02-10 19:58:45 +01:00
Phenom
47ad48cafd Fix Uninitialised in RsNxsGrp 2021-02-10 19:45:45 +01:00
csoler
5ddf0863c5
Merge pull request #2302 from PhenomRetroShare/Fix_IdDialogUpdate
Fix IdDialog Update
2021-02-09 23:56:08 +01:00
csoler
52da8357a9
Merge pull request #2303 from PhenomRetroShare/Fix_SettingsListUsingQSplitter
Fix Preferences List using QSplitter
2021-02-09 23:46:35 +01:00
defnax
fbc59913f9 Attempt to fix some layout issues on comments feeds 2021-02-09 22:56:16 +01:00
csoler
faadd24ef3 Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_8 2021-02-09 20:43:22 +01:00
defnax
776141a8fd Fixed refused connection notify disable msg button 2021-02-09 20:34:38 +01:00
csoler
97f24fbaa3 fixed default chunk size in boards 2021-02-09 20:18:47 +01:00
csoler
09ee07dcda fixed again setPostInterval() 2021-02-09 19:49:28 +01:00
csoler
822b532ad6 fixed bug in posts update logic 2021-02-09 18:42:45 +01:00
Phenom
e69585abef Fix IdDialog Update
No update while received new Id, wait last (5s) to update all.
Fix expanded items in same time.
2021-02-09 14:15:31 +01:00
defnax
98c2e5fad6
Merge pull request #2304 from defnax/homepage-ui-fix
Moved the labels into the right frames for have better spacing and ma…
2021-02-09 13:41:13 +01:00
csoler
7a4bd87fe9 attempt to fix random crash in boards 2021-02-08 23:14:43 +01:00
csoler
e59ba49240 fixed update when expanding in boards 2021-02-08 23:08:15 +01:00
csoler
5261be8ad4 added missing unregister handler ID 2021-02-08 22:35:32 +01:00
defnax
7ec6fb4b11 Moved the labels into the right frames for have better spacing and margins 2021-02-08 20:12:53 +01:00
Phenom
7a6a4e3423 Fix Preferences List using QSplitter
Make use of fusion style the default else Items aren't shown well.
2021-02-08 20:02:38 +01:00
csoler
10dc182cc7
Merge pull request #2295 from defnax/feeds-ui-fix-v3
Fixed ui feeds issues with stlyesheets
2021-02-08 13:47:26 +01:00
csoler
64d738edae
Merge pull request #2299 from PhenomRetroShare/Fix_SomeGUI
Fix some GUI
2021-02-08 13:45:11 +01:00
Phenom
eb8fab3010 Fix ChatWidget pluginTopFrame background 2021-02-08 11:40:57 +01:00
Phenom
d6488a7d96 Fix IdDialog Last column strech 2021-02-08 11:40:57 +01:00
Phenom
fa9ce532ea Fix Forum Title Label Size 2021-02-08 11:40:57 +01:00
csoler
8e64a07efc
Merge pull request #2285 from jolavillette/pqihandler-bwctrl-bugfix
Fix bug in pqihandler preventing UP BW management when bwctrl service is OFF
2021-02-08 09:49:58 +01:00
csoler
6739887f58
Merge pull request #2289 from jolavillette/turtle_TR-SR_Optim
Optimization of TR and SR lifespan
2021-02-08 09:46:53 +01:00
csoler
d9721746c3
Merge pull request #2287 from csoler/v0.6-BugFixing_8
Added early check of ExtAddrFinder and notify about its results
2021-02-08 09:45:31 +01:00
defnax
a1f8d7caaf Use a progressbar instead of icon label for the status 2021-02-07 21:33:52 +01:00
defnax
0068e69ad7
Merge pull request #2297 from defnax/ui-fixes-v8
Look and feel fixes for notify page & home page update info description
2021-02-07 11:33:50 +01:00
defnax
9b781085fe correcting changes 2021-02-06 23:08:38 +01:00
csoler
90a11a1236 only update peer IPs form discovery for non hidden nodes 2021-02-06 21:55:43 +01:00
csoler
abe3527635 update friends IP from own net info sent by discovery 2021-02-06 21:42:07 +01:00
jolavillette
bdccef5ef9 increase TR and SR validity to 20 seconds 2021-02-06 20:57:04 +01:00
defnax
db673cf25e Look and feel fixes for notify page & home page update info description
* Update the description on Home Page
2021-02-06 20:54:45 +01:00
defnax
96ae1c3e1c Fixed few more feeds 2021-02-06 20:06:55 +01:00
defnax
08e2b5ade2 Fixed ui feeds issues with stlyesheets
* Fixed ui feeds issues with stlyesheets
* Little improvements on the Comments feeds.
2021-02-06 18:05:54 +01:00
csoler
1f1a226f87 removed soem dead code 2021-02-06 17:31:43 +01:00
csoler
894570e2b7 improved name and tooltip of subscribe button when no data is available 2021-02-06 17:31:33 +01:00
csoler
3f89a3300d added event handling when peer discovery is received 2021-02-06 14:57:22 +01:00
jolavillette
81e444a164 remove debug messages 2021-02-06 08:13:01 +01:00
csoler
d9aff498c5
Merge pull request #2276 from RetroPooh/no-spam-debug
disable some spam debug
2021-02-05 23:52:03 +01:00
csoler
37dc37ce4a fixed parsing and exporting of local+ext IPs in short invites (not compatible with IPv6) 2021-02-05 23:25:55 +01:00
defnax
8f22af3b4b
Merge pull request #2292 from defnax/Homeview-ui-fix-v2
Attempt to fix some margin spacing and centering on Home View
2021-02-05 22:44:51 +01:00
defnax
c8b333c9cc Attempt to fix some margin spacing and centering on Home View 2021-02-05 21:37:42 +01:00
defnax
deae392f48
Merge pull request #2288 from defnax/homeview-ui-fix
Home page ui improvements
2021-02-05 13:58:01 +01:00
jolavillette
02232b389e Optimization of TR and SR lifespan 2021-02-05 09:53:14 +01:00
csoler
251d022ae1 attempt to fix error in setting external port when guessing external IP 2021-02-04 22:22:21 +01:00
defnax
af55623ecf Home page ui improvements
* some ui improvements
* Fixed the help link
2021-02-04 21:50:30 +01:00
csoler
6c83b5cd27 added double check in ext IP hack to avoid re-calling UpdateOwnAdress() 2021-02-04 16:12:18 +01:00
csoler
d87de5121a small fix to make setLocalAddress() and setExtAddress() also call mPeerMgr-UpdateOwnAddresses() 2021-02-03 23:35:23 +01:00
csoler
67cf8baf77 added early check of ExtAddrFinder and notify about its results 2021-02-03 22:36:24 +01:00
csoler
104facdfe2
Merge pull request #2263 from csoler/v0.6-BugFixing_8
Attempt to improve BW graph
2021-02-03 21:57:07 +01:00
defnax
0bb3833d31
Merge pull request #2283 from defnax/service-binary-icon-2
replaced ico file with a higher resolution.
2021-02-03 19:41:24 +01:00
jolavillette
725094e9be Fix bug in pqihandler preventing proper BW management when bandwidth ctrl service is OFF 2021-02-03 09:38:35 +01:00
defnax
a4e7234c77 replaced ico file with a higher resolution. 2021-02-02 20:26:25 +01:00
csoler
c1eb060972
Merge pull request #2282 from PhenomRetroShare/Fix_ElidedLabelToolTipBackground
Fix ElidedLabel ToolTip background color.
2021-02-02 18:50:50 +01:00
Phenom
010f98ac19 Fix ElidedLabel ToolTip background color. 2021-02-02 18:42:54 +01:00
csoler
d0014f268c
Merge pull request #2275 from RetroPooh/stat-wintitle-nodename
statistics - add node name in window title
2021-02-02 17:55:47 +01:00
csoler
d4141c493d moved calls to setDynamicSortFilter(false) into constructors of sort proxy models 2021-02-02 12:37:15 +01:00
csoler
95e1073b8a fixed error in reputation that prevented to account for delay after which banned identities are un-banned 2021-02-02 12:35:17 +01:00
csoler
b5b490067b fixed random crash in forum search 2021-02-01 20:53:17 +01:00
csoler
1abd206443 added missing delete causing mem leak in GXS distant search 2021-02-01 17:59:25 +01:00
G10h4ck
cbc8fd4e28
Merge pull request #2278 from G10h4ck/master
Document JSON API 64bits integers behaviour in README
2021-02-01 16:10:14 +01:00
G10h4ck
254640e71a
fid typo in JSON API README 2021-02-01 16:09:56 +01:00
defnax
ccb39a87d8
Merge pull request #2268 from defnax/appeareancepage
Fixed to hide ToolButton Style when the List View is used & set defau…
2021-02-01 13:45:19 +01:00
Gioacchino Mazzurco
40adafd386
Document JSON API 64bits integers behaviour in README 2021-02-01 12:08:43 +01:00
RetroPooh
c4ca513791 disable some spam debug
(cherry picked from commit 70f9aa5d63)
2021-02-01 11:56:22 +03:00
RetroPooh
b7b4f63eae statistics - add node name in window title
(cherry picked from commit f25ce1700286d2b54965d0c1f5f3ad408e51d291)
2021-02-01 11:54:51 +03:00
csoler
fe46b0aaa1
Merge pull request #2270 from defnax/avatardialog-fix
Fixed text for Avatar/Sticker info
2021-01-31 23:31:59 +01:00
csoler
c61db18837
Merge pull request #2272 from defnax/feeds-ui
Hide the comment buttons
2021-01-31 23:29:30 +01:00
csoler
f61b37e10b fixed bw graph window to display both up+dn 2021-01-31 23:28:15 +01:00
defnax
1fbefa5fed Hide the comment buttons 2021-01-31 20:44:22 +01:00
csoler
85c86197a1 fixed bug causing swarming to fail when FT encryption is enforced 2021-01-31 19:55:36 +01:00
defnax
425b8dd5bb Fixed text for Avatar/Sticker info 2021-01-31 19:04:59 +01:00
defnax
9a6e21063d
Merge pull request #2266 from defnax/windows-binary-icon
Created new windows binary icon Windows 10 compatible
2021-01-31 12:10:23 +01:00
defnax
61904b2699
Merge pull request #2265 from defnax/service-binary-icon
Added binary icon for windows [retroshare-service]
2021-01-31 12:10:00 +01:00
defnax
343fa73fc1 Fixed to hide ToolButton Style when the List View is used & set default values for icons 2021-01-31 01:32:40 +01:00
defnax
2dfbfd20b8 Created new windows binary icon Windows 10 compatible 2021-01-30 23:23:03 +01:00
defnax
d558202cda Added binary icon for windows 2021-01-30 20:46:47 +01:00
csoler
42dd13b0e6
Merge pull request #2261 from csoler/v0.6-BugFixing_6
Better display of last seen info in groups
2021-01-30 20:14:44 +01:00
csoler
651d7a8d3e
Merge pull request #2260 from PhenomRetroShare/Fix_MessagesQuickView
Fix Message Quick View
2021-01-30 20:11:57 +01:00
csoler
2e9408a386
Merge pull request #2259 from PhenomRetroShare/Fix_GxsGroupHeaderLastStretch
Fix to get Gxs Group last column stretchable.
2021-01-30 20:10:17 +01:00
csoler
06f4b0b512
Merge pull request #2257 from PhenomRetroShare/Fix_ImHistoryBrowser_SendAction
Fix ImHistoryBrowser Send Action
2021-01-30 19:57:59 +01:00
csoler
38c0603f6d
Merge pull request #2252 from jolavillette/ConfigFilesSavePeriod
Save configuration files every 1 hour instead of every 5 seconds
2021-01-30 19:56:46 +01:00
csoler
70a536b13e
Merge pull request #2251 from csoler/v0.6-BugFixing_7
Additional fixes for 0.6.6
2021-01-30 19:55:01 +01:00
csoler
47c95b8bd1
Merge pull request #2262 from PhenomRetroShare/Fix_UseElidedLabelForForumName
Fix Use ElidedLabel for Forum Name
2021-01-30 00:05:15 +01:00
csoler
60893e2344 first modifications to improve BW graph 2021-01-30 00:03:10 +01:00
csoler
8a4e15d304 removed some debug info in rsgenexchange 2021-01-30 00:00:48 +01:00
Phenom
0dc6386d79 Fix Use ElidedLabel for Forum Name 2021-01-29 10:50:34 +01:00
csoler
5292ff0af5 added info about last time unsubscribed circles and forums have been advertised by subscribed friends 2021-01-29 00:18:08 +01:00
csoler
c9a92bc58a added last seen display info in circles to help debugging auto-cleaning of circles 2021-01-28 21:14:43 +01:00
csoler
48ac7c3147 removed debug info 2021-01-28 20:21:06 +01:00
Phenom
7a3370ae0f Fix Message Quick View 2021-01-28 10:37:25 +01:00
Phenom
b6b5c513d6 Fix to get Gxs Group last column stretchable. 2021-01-28 09:47:18 +01:00
csoler
a7918d426e improved GxsId signature checking scheme to avoid bruteforcing PGPHash when signature provides the issuer ID 2021-01-27 22:33:25 +01:00
csoler
17b2da269a fixed missing call to loadign groups to process 2021-01-27 20:14:44 +01:00
defnax
e0ed60ee6f
Merge pull request #2256 from PhenomRetroShare/Fix_ForumReadColumn
Fix Forum Post Un/Read Column click when not selected.
2021-01-27 19:06:32 +01:00
defnax
5886738ede
Merge pull request #2248 from PhenomRetroShare/Add_ChatFontForSelected
Add possibility to change Font for only selected text in chat.
2021-01-27 18:38:42 +01:00
Phenom
7f13505c54 Fix ImHistoryBrowser Send Action 2021-01-27 18:05:20 +01:00
Phenom
12650dfddf Fix Forum Post Un/Read Column click when not selected. 2021-01-27 16:35:30 +01:00
Phenom
a4623af383 Add possibility to change only selected text in chat. 2021-01-27 11:51:33 +01:00
defnax
67d1265eb2
Merge pull request #2254 from defnax/BW-graph
Set to show only the Sum for Download or Upload on BW Window
2021-01-26 23:23:22 +01:00
defnax
659de2830a Set to show only the Sum for Download or Upload on BW Window 2021-01-26 23:22:18 +01:00
csoler
633d69dc7d only load GxsId metadata to check for signatures flag, and data for actual signature check 2021-01-26 20:45:09 +01:00
defnax
d1c87f215d
Merge pull request #2250 from PhenomRetroShare/Fix_FriendListStatus
Fix Friend List Status
2021-01-26 13:38:36 +01:00
jolavillette
1760f967c2 Save configuration files every 1 hour instead of every 5 seconds 2021-01-26 09:51:21 +01:00
csoler
6ebea19087 added check for group/friends consistency at loadign time 2021-01-25 21:13:37 +01:00
csoler
7613fe1a44
Merge pull request #2245 from csoler/v0.6-BugFixing_7
Fixing the token queues
2021-01-25 20:48:48 +01:00
csoler
5c08dcb0de added missing delete causing small leak 2021-01-25 20:33:27 +01:00
Phenom
6b519838b1 Fix Friend List Status 2021-01-25 20:15:04 +01:00
defnax
cb90c70beb
Merge pull request #2249 from PhenomRetroShare/Fix_AddFriendWizardAdvResize
Fix AddFriend Wizard Resize when show Advanced options.
2021-01-25 18:33:53 +01:00
Phenom
9efb871866 Fix AddFriend Wizard Resize when show Advanced options. 2021-01-25 15:40:26 +01:00
csoler
93ba1c76e9
Merge pull request #2247 from defnax/feeds-ui-fixes
Fixed to not popup the "Refused Connection" by default
2021-01-25 10:43:48 +01:00
csoler
c85209693f removed some debug info 2021-01-24 22:34:07 +01:00
csoler
16c4e2cef4 added missing acknowledge token in ID service 2021-01-24 22:33:56 +01:00
csoler
eef16461d6 async markRead in channels to make it faster 2021-01-24 22:33:23 +01:00
csoler
7fe5d390e4 async markRead in posted to make it faster 2021-01-24 22:33:13 +01:00
csoler
537957a2ea added missing acknowledge token in channels and fasten up markAllRead by using async on each post 2021-01-24 22:17:02 +01:00
csoler
a7de50d4c8 fixed direct calls to setMsgReadStatus in forums. Made them async to gain GUI speed 2021-01-24 22:06:58 +01:00
csoler
202ce3327d added better debug info in RsGenexchange (allowing service-based debug) and fixed growing of mGrpNotify and mMsgNotify in DataAccess due to not acknowledging tokens for explicit operations in circles 2021-01-24 21:42:45 +01:00
defnax
561bd01e8c Enabled some default importend Activity Feeds 2021-01-24 14:36:22 +01:00
defnax
f794925595 Fixed to not popup the "Refused Connection" by default
* Fixed to not popup the "Refused Connection" by default
* Enable to show via Notify settings "IP security" checbox"
2021-01-24 13:30:44 +01:00
defnax
512b23fb12
Merge pull request #2246 from zapek/jsonapi_mimetype_fix
Fix JSON API mime type
2021-01-24 12:47:14 +01:00
David Gerber
a73ea961c6 Fix JSON API mime type
Most clients expect application/json which is standard, instead
of text/json.
2021-01-24 01:53:58 +01:00
csoler
53f0c396e7 attempt to fix token queue growth in circles 2021-01-23 22:54:29 +01:00
csoler
4be2ed548c added more debug info to rsdataservice 2021-01-23 20:18:15 +01:00
defnax
397460833e
Merge pull request #2244 from defnax/feeds-ui-fixes
Hide title label for comments feeds
2021-01-23 18:23:25 +01:00
defnax
2d8a86f2fa Hide title label for comments feeds
* Hide Title label for comments feeds
* Hide Vote frame for boards feed
2021-01-23 17:25:53 +01:00
csoler
bfc3a97d36
Merge pull request #2242 from defnax/New-comments-notify-v2
Added new widgets for the Channels & Boards comments notify for Activ…
2021-01-23 14:14:53 +01:00
csoler
93e725e8aa
Merge pull request #2239 from PhenomRetroShare/Add_GxsGroupTreeColumnHeaderShow
Add GroupTreeWidget show header action.
2021-01-23 13:40:29 +01:00
csoler
3d83431f41
Merge pull request #2241 from PhenomRetroShare/Fix_NickNameChatLobbyHistory
Fix NickName in Chat Lobby when starting
2021-01-23 13:26:05 +01:00
csoler
f63575aa21 added missing test on mUseCache in dataservice 2021-01-22 22:33:04 +01:00
csoler
17c6a2c54f added more debuginfo to data service 2021-01-22 22:32:43 +01:00
defnax
5fc31d2c32 Added new widgets for the Channels & Boards comments notify for Activity Stream 2021-01-22 21:31:51 +01:00
defnax
85afe64086
Merge pull request #2237 from defnax/avatar-dialog-improvements
Added to load stickers in Avatars dialog to use as Avatar
2021-01-22 19:02:51 +01:00
csoler
3d1e43cf25 fixed bug in updating cache from DB 2021-01-22 16:51:37 +01:00
Phenom
b2baf89758 Fix NickName in Chat Lobby when starting 2021-01-22 15:56:20 +01:00
defnax
c746af23ed Fixed to load the stickers only one time 2021-01-21 22:57:27 +01:00
csoler
95fc1a56c8 Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_6 2021-01-21 18:15:08 +01:00
csoler
feecf7c763 added safeguard against crash in dir_hierarchy 2021-01-21 18:15:02 +01:00
csoler
39a8de9bb9 improved cache management to avoid clearing it unless strictly necessary 2021-01-21 18:00:00 +01:00
csoler
ccd6df5c5f removed smiley substitution in Posted and other places where not strictly necessary 2021-01-21 17:58:23 +01:00
csoler
4fa5aa6c2c
Merge pull request #2238 from PhenomRetroShare/Fix_OldQtSplitCompil
Fix Old Qt Split Compil
2021-01-21 15:34:58 +01:00
csoler
1b62cd2750
Merge pull request #2236 from csoler/v0.6-BugFixing_5
Bug fixing for 0.6.6
2021-01-21 15:34:39 +01:00
Phenom
a0bf49448d Add GroupTreeWidget show header action.
It's not possible to resize them.
Friend's posts column can be shown too to understand sort.
Menu to show column is visible for all type of item.
2021-01-21 15:09:43 +01:00
defnax
55d8ff7b6d Added scrollarea for the avatar/sticker widget to avoid to stretch dialog 2021-01-20 22:25:57 +01:00
Phenom
be33ca0f01 Fix Old Qt Split Compil 2021-01-20 17:12:13 +01:00
csoler
f491e3c20e fixed conflict with master 2021-01-19 22:34:44 +01:00
csoler
41727210cd
Merge pull request #2221 from PhenomRetroShare/Fix_ForSelfBuiltQtQAssert
Fix for running with Self-Built Qt
2021-01-19 22:30:55 +01:00
defnax
53ab47cf4a Added to use on AvatarWidget on click the Avatar Dialog
* Added to use the Avatar Dialog for the AvatarWidget too
* Fixed the info text
* Update stylesheet for the info frame
2021-01-19 22:30:35 +01:00
csoler
0757b161ba patched BroadcastDiscivery and GxsNetTunnel so that they respond faster to shutdown 2021-01-19 20:44:21 +01:00
csoler
5fc3108533 removed crash on exit because of double delete 2021-01-19 20:33:30 +01:00
Phenom
c3ab730dae Fix Channel Files Sort Order 2021-01-19 19:56:08 +01:00
csoler
20082321e7 removed variable shadowing another 2021-01-19 19:42:24 +01:00
csoler
e56add841a removed useless reload of channel data. Fixed default implicit conversion from pointer to shared_ptr 2021-01-19 19:38:38 +01:00
Phenom
24ab1d6929 Fix for running with Self-Built Qt
beginRemoveRows(QModelIndex(),0,-1);
Failed because:
void QAbstractItemModel::beginRemoveRows(const QModelIndex &parent, int
first, int last)
{
    Q_ASSERT(first >= 0);
    Q_ASSERT(last >= first);
    Q_ASSERT(last < rowCount(parent));

Last assert is important too.
So prefer use beginResetModel().
2021-01-19 14:25:35 +01:00
defnax
ed228485d0 Added Stickers to load in Avatars Dialog to use a Avatar
* Added function to load stickers in Avatars Dialog to use a Avatars
* Added ZoomableLabel with crop image feature from PR #2236
2021-01-18 23:39:00 +01:00
csoler
8a506fad9f
Merge pull request #2230 from defnax/graphframe-darkmode-v2
Added Dark theme for the graphframe
2021-01-18 21:57:53 +01:00
csoler
80ed4e0e25
Merge pull request #2235 from PhenomRetroShare/Fix_QMakeErrorMessage
Fix qmake error:
2021-01-18 21:52:51 +01:00
csoler
ddc0a8c1ec fixed update of identity list when avatar is changed and changed avatar to use ZoomableLabel 2021-01-18 21:49:03 +01:00
defnax
783c92738a
Merge pull request #2234 from defnax/update.links
update links
2021-01-18 19:11:08 +01:00
csoler
5ec3ae8640
Merge pull request #2224 from csoler/v0.6-BugFixing_5
continue bug fixing for 0.6.6 (See commits)
2021-01-18 13:24:31 +01:00
csoler
5d805e3798 fixed compilation, removing implicit cast from nullptr to uninitialized std::shared_ptr 2021-01-18 13:23:43 +01:00
Phenom
da02bf8ca1 Fix qmake error:
Please specify at least one package name on the command line.
2021-01-18 11:57:38 +01:00
csoler
e73e3232f6 fixed update of avatar/name in signed identities 2021-01-17 23:53:49 +01:00
defnax
dc8e53b2ac enable copy text for card view 2021-01-17 17:40:09 +01:00
defnax
a21ce4e53b update links 2021-01-17 17:10:35 +01:00
defnax
7861dcb32e
Merge pull request #2232 from defnax/ui-fixes-7
Fixed Group Chat toaster to use No Frame
2021-01-16 23:02:39 +01:00
defnax
66ecc8df76 Fixed Group Chat toaster to use No Frame
* Fixed Group Chat toaster to use No Frame
* Hide unused widget on People Dialog
2021-01-16 21:53:19 +01:00
defnax
17f32db687 Added Dark theme for the graphframe
* Added Dark theme for the graphframe
* Added Combobox for switch
* Added for other graphs the settings
* Added fix by phenom for get stored the configs for the statistics pages
* Removed uneeded line from the toolbar
* New icon for Identities stats page
2021-01-16 12:42:33 +01:00
defnax
f904de68c3
Merge pull request #2226 from PhenomRetroShare/Fix_RSElidedItemDelegate
Fix RSElidedItemDelegate
2021-01-16 11:22:15 +01:00
defnax
ac7482baed
Merge pull request #2225 from PhenomRetroShare/Fix_MainWindowDestructorDeleteOrder
Fix MainWindow Destructor delete order.
2021-01-16 11:19:22 +01:00
defnax
25116d0dfa
Merge pull request #2229 from PhenomRetroShare/Fix_PhotoServiceCompil
Fix Compil with Photo Service
2021-01-16 11:18:42 +01:00
csoler
217aa119ff limit distant search results to non circle-restricted groups 2021-01-15 22:48:31 +01:00
csoler
fb89dbbfb2 renamed different chat types properly in preferences->chat 2021-01-15 22:48:07 +01:00
Phenom
31acef55d3 Fix Compil with Photo Service
CONFIG+=gxsphotoshare
2021-01-15 22:29:59 +01:00
csoler
d6f02e28a7
Merge pull request #2228 from PhenomRetroShare/Fix_RsPostedPostsModelHandleEvent
Fix RsPostedPostsModel::handleEvent_main_thread
2021-01-15 22:02:31 +01:00
Phenom
8ee8e68b61 Fix RsPostedPostsModel::handleEvent_main_thread 2021-01-15 21:50:59 +01:00
Phenom
bfb1159ca0 Fix RSElidedItemDelegate 2021-01-15 12:04:02 +01:00
Phenom
a86f409298 Fix MainWindow Destructor delete order. 2021-01-15 11:48:20 +01:00
csoler
dca8a5a91d fixed bug in chat history causing lots of gibberish output to the console 2021-01-14 22:35:08 +01:00
csoler
7f5f03bcda
Merge pull request #2141 from PhenomRetroShare/Fix_DataAccessReqDelWhenFailed
Fix RsGxsDataAccess req delete when failed.
2021-01-14 21:42:35 +01:00
csoler
2f1b4e1995
Merge pull request #2215 from defnax/checkmessage
Added to show the message length on Composer and Message Widget
2021-01-14 21:41:16 +01:00
csoler
3decd2b768
Merge pull request #2137 from PhenomRetroShare/Add_HandleTokenStatus
Add ability to manage canceled token in Gxs.
2021-01-14 19:50:55 +01:00
csoler
8bfdbe6af8
Merge pull request #2220 from csoler/v0.6-BugFixing_5
Bug fixing for 0.6.6
2021-01-14 13:45:18 +01:00
csoler
f26d5ebc2e
Merge pull request #2222 from PhenomRetroShare/Fix_DistantChatAvatarStatusUpdate
Fix Distant Chat Avatar Status Update
2021-01-14 13:44:25 +01:00
csoler
63d8aa1785
Merge pull request #2223 from PhenomRetroShare/Fix_logScale
Fix default LogScale in BandwidthStatsWidget
2021-01-14 13:43:19 +01:00
Phenom
4e7411362e Fix default LogScale in BandwidthStatsWidget 2021-01-14 12:51:52 +01:00
Phenom
480a99b9bb Fix Distant Chat Avatar Status Update 2021-01-14 12:41:02 +01:00
csoler
1bbde46c4a giving 30 secs of time to create identity before clearing PGP passphrase cache 2021-01-13 23:13:37 +01:00
csoler
af696639cc fixed channel UI so that comment label is only shown when a new comment is here 2021-01-12 22:31:59 +01:00
csoler
7b2f6a3439
Merge pull request #2213 from jolavillette/bandwidthOptim
bandwith management optimization
2021-01-12 19:35:43 +01:00
jolavillette
df7de80914 restore smooth increase of up bw, and restore the use of the maximum down bw advertised by peer via BwCtrl 2021-01-12 10:12:11 +01:00
defnax
44fc3ea50c Disable the Send button when the limit is exceeded 2021-01-11 21:31:42 +01:00
csoler
d92132d025
Merge pull request #2211 from csoler/v0.6-BugFixing_5
Various bug fixes
2021-01-11 20:12:01 +01:00
csoler
a8df555df2
Merge pull request #2216 from csoler/v0.6-MemLeaks_2
V0.6 mem leaks 2
2021-01-10 21:12:19 +01:00
csoler
faa09ea55a fixed small memleak in authssl 2021-01-10 21:09:14 +01:00
csoler
78628a1842 fixed mem leak in p3MsgService 2021-01-10 20:52:58 +01:00
csoler
0f9aa519a5 added proper check for size w.r.t. RsSerialiser::MAX_SERIAL_SIZE before publishing GXS message, and proper handling of error if de-deserialization produces an item that is too large as well 2021-01-10 20:32:30 +01:00
defnax
672f2d1252
Merge pull request #2214 from defnax/activity-stream
Rename Log to Activity
2021-01-10 19:20:54 +01:00
defnax
39a89dd2a9 Added to show the message length on Composer and Message Widget 2021-01-10 19:20:17 +01:00
defnax
db842d1f21 Rename Log to Activity 2021-01-10 16:24:08 +01:00
jolavillette
45a1c7af24 bandwith management optimization 2021-01-10 15:55:38 +01:00
defnax
cf05c86691
Merge pull request #2212 from defnax/photoshare-fixes-2
Photo share ui fixes & removed some hardcoded stylesheets
2021-01-09 18:56:39 +01:00
defnax
5c1c6caf68 Photo share ui fixes & removed some hardcoded stylsheets
* Removed some hardcoded stylesheets for Album & Photo items.
* Ui layout fixes
2021-01-09 16:47:04 +01:00
csoler
5a1e6b8b60 added context menu with copy link in channel posts files 2021-01-09 15:40:15 +01:00
csoler
453c656570 fixed the status of signature vs. making friends, and fixed the deadlock when signing a certificate 2021-01-09 14:24:04 +01:00
csoler
d7fbe29a56 sorted out the mess with various calls to clear/cache PGP passphrase that resulted in the passphrase staying in memory 2021-01-08 23:43:59 +01:00
defnax
cc15593202
Merge pull request #2210 from defnax/wiki-fixes
Added to store the splitter position for Wire Dialog & stylesheet fixes
2021-01-08 19:18:16 +01:00
Phenom
ec32ec9983 Add ability to manage canceled token in Gxs. 2021-01-08 15:49:22 +01:00
csoler
3ee9408c00 fixed compilation with rs_deep_channels_index 2021-01-08 13:28:27 +01:00
defnax
371c303d19 Added to store the splitter position for Wire Dialog & stylesheet fixes 2021-01-07 21:24:46 +01:00
csoler
d0b8c7dd69
Merge pull request #2203 from csoler/v0.6-CacheTests_2
Cache tests 2
2021-01-07 18:07:55 +01:00
csoler
ce4a0de6df fixed normal checking/cleaning periods 2021-01-06 23:09:50 +01:00
csoler
c3988e986f only call the costly part of db checking when deep-indexing is needed 2021-01-06 21:48:18 +01:00
csoler
839a82450e made GxsUtil check a static method 2021-01-06 21:47:46 +01:00
defnax
0345bac168
Merge pull request #2209 from defnax/wiki-fixes
Added temporary solution to update the Wiki tree
2021-01-06 19:09:06 +01:00
defnax
56462fd507 disabled timer & little small ui changes
* Set icons for some buttons
* Update tree on subscribe actions
2021-01-06 18:00:41 +01:00
defnax
1e803de32f update wiki groups 2021-01-06 15:15:49 +01:00
defnax
c3fecb824d Added temporary solution to update the Wiki tree 2021-01-06 14:54:19 +01:00
defnax
f2a5e2c7d9
Merge pull request #2207 from defnax/wire-fixes-7
Fixed to allow Wire profile account generation only with a Identity
2021-01-06 12:40:01 +01:00
defnax
0637bd1276
Merge pull request #2208 from defnax/wiki-fixes
Fixing Wiki compile
2021-01-06 12:39:36 +01:00
defnax
cd747b204d Fixing Wiki compile 2021-01-06 00:06:45 +01:00
defnax
bfc8d754c6
Merge pull request #2206 from defnax/bdboot-update
Update bdboot.txt
2021-01-05 23:33:59 +01:00
defnax
c184e7b7ba
Merge pull request #2205 from defnax/photoshare-fixes
photoshare compile fixes
2021-01-05 22:27:03 +01:00
defnax
78aa990e6d Fixed to allow Wire profile account generation only with a Identity 2021-01-05 22:25:42 +01:00
defnax
6d04aae931 Update bdboot.txt 2021-01-05 21:46:42 +01:00
defnax
1833e9a0b9 photoshare compile fixes 2021-01-05 20:40:54 +01:00
csoler
6d11abc0f3 added single call for db check at time of db creation 2021-01-05 20:35:58 +01:00
csoler
2124c0935d fixed stupid mistake 2021-01-05 14:51:24 +01:00
csoler
94afc17629 added more debug output 2021-01-04 21:24:06 +01:00
csoler
d0dffaa2a4 removed display of "Dead" elements in cache since they are no longer used 2021-01-04 13:57:54 +01:00
csoler
6cbd8fe3d0
Merge pull request #2201 from csoler/v0.6-BugFixing_5
v0.6.6-RC2 bug fixing
2021-01-03 23:09:48 +01:00
csoler
3a54b2de15 fixed bug in forum post addressing, causing bad update of what has changed when setting messages as read 2021-01-03 22:34:36 +01:00
csoler
92555caa25 ensure that IP filters and relays are also hidden in non auto tor mode 2021-01-03 21:56:23 +01:00
csoler
865c319978 remved non source file 2021-01-03 21:54:10 +01:00
csoler
f1ccfb4d57 removed double-return 2021-01-03 21:24:15 +01:00
csoler
346b0dcfc9
Merge pull request #2191 from defnax/share-on-channel
Fixed to use for share on channel as file attachment
2021-01-03 15:48:42 +01:00
csoler
ec0f56f0ae
Merge pull request #2194 from jolavillette/ChatroomStatus
speed up status display of participants in chatrooms
2021-01-03 15:41:38 +01:00
csoler
3864304ca9
Merge pull request #2199 from hunbernd/fix/brokenbdboot
Fix: DHT cannot bootstrap if bdboot.txt is corrupted.
2021-01-03 15:36:43 +01:00
csoler
ef21db0a0a fixed bug causing bad cache update 2021-01-02 23:56:26 +01:00
csoler
a6010beab3 Merge remote-tracking branch 'upstream/master' into v0.6-CacheTests 2021-01-02 22:25:10 +01:00
csoler
aad542e3a5 trick to avoid creating new memoty when cache is not used 2021-01-02 22:24:13 +01:00
hunbernd
a97d0ff15c Fix: DHT cannot bootstrap if bdboot.txt is corrupted.
If the bdboot.txt file is broken in profile folder, attempt to load the data from the file installed with RS.
2021-01-02 18:44:32 +01:00
defnax
e183ac75bd
Merge pull request #2198 from defnax/wire-ui-fixes-6
Wire ui fixes
2021-01-02 14:39:51 +01:00
csoler
71f2e273ea moved all metadata cache switches into DataStore as a single internal variable 2021-01-01 23:36:16 +01:00
defnax
9c13dc2ff8
Merge pull request #2197 from defnax/Ui-fixes-6
Layout fixes on the profile dialog
2020-12-31 16:46:51 +01:00
defnax
cee0edbd45 Display to show the wire headshots as circle avatar 2020-12-31 16:36:04 +01:00
defnax
d957289109 Layout fixes on the profile dialog 2020-12-31 15:40:32 +01:00
defnax
bfcfff4d0c
Merge pull request #2193 from defnax/wire-ui-fixes-5
Wire ui fixes
2020-12-31 13:27:57 +01:00
csoler
49feb3c6ab
Merge pull request #2196 from jolavillette/3DigitsRttStatistics
display RTT stats with 3 decimals
2020-12-31 13:19:55 +01:00
csoler
06ed1e3e97
Merge pull request #2175 from csoler/v0.6-BugFixing_2
v0.6.6-RC2 fixes
2020-12-31 13:19:02 +01:00
jolavillette
65751067e8 display RTT stats with 3 decimals 2020-12-31 08:17:22 +01:00
defnax
73a0d5b56a some ui fixes 2020-12-30 23:23:28 +01:00
csoler
637d5f360a fixed extra delete after storeGroup and storeMessage 2020-12-30 21:41:47 +01:00
csoler
f00524fee7
Merge pull request #2178 from defnax/Forum-Name-stylesheet
Fixed forum name stylesheet
2020-12-30 21:01:06 +01:00
csoler
c3f4e1babc
Merge pull request #2189 from PhenomRetroShare/Fix_UninitGxsTunnelPeerInfo
Fix Uninit in GxsTunnelPeerInfo
2020-12-30 21:00:01 +01:00
csoler
159a2061f6
Merge pull request #2182 from csoler/v0.6-MemLeaks
Fixing mem leaks
2020-12-30 20:58:32 +01:00
csoler
3d022504dc
Merge pull request #2190 from PhenomRetroShare/Fix_ValgrindErrorWithPrivateTrustPacketFWrite
Fix ValGrind error in PGPHandler::locked_writePrivateTrustDatabase
2020-12-30 20:51:52 +01:00
csoler
4916c3925f renamed mispelled functions 2020-12-30 20:16:44 +01:00
csoler
1fe3664007 fixed bug causing GXS sync to fail and crash 2020-12-30 20:16:25 +01:00
jolavillette
4aaae99a52 speed up status display of participants in chatrooms 2020-12-30 16:06:12 +01:00
defnax
daa724151b Added to get view the attached Pulse images 2020-12-30 01:31:27 +01:00
defnax
a177d456a1 More wire ui fixes
* Added a Top Avatar Label when its a new Post.
* Hide Top Avatar on replies
* Wire stylesheet fixes.
* Fixed place holder text cleanup
2020-12-29 23:43:24 +01:00
defnax
3dd7a2c2f6 Fixed to use for share on channel as file attachment 2020-12-29 15:23:42 +01:00
defnax
b4557064a5
Merge pull request #2188 from defnax/message-composer
Message Composer fixes
2020-12-29 13:54:58 +01:00
Phenom
ac4b7334dd Fix ValGrind error in PGPHandler::locked_writePrivateTrustDatabase
Syscall param write(buf) points to uninitialised byte(s)
  in PGPHandler::locked_writePrivateTrustDatabase() in /libretroshare/
src/pgp/pgphandler.cc:1885
  1: write in /usr/lib/libc-2.32.so
  2: _IO_file_write@@GLIBC_2.2.5 in /usr/lib/libc-2.32.so
  3: new_do_write in /usr/lib/libc-2.32.so
  4: _IO_do_write@@GLIBC_2.2.5 in /usr/lib/libc-2.32.so
  5: _IO_file_close_it@@GLIBC_2.2.5 in /usr/lib/libc-2.32.so
  6: fclose@@GLIBC_2.2.5 in /usr/lib/libc-2.32.so
  7: PGPHandler::locked_writePrivateTrustDatabase() in /libretroshare/
src/pgp/pgphandler.cc:1885
  8: PGPHandler::locked_syncTrustDatabase() in /libretroshare/src/pgp/
pgphandler.cc:1987
  9: PGPHandler::syncDatabase() in /libretroshare/src/pgp/pgphandler.cc:
1909
  10: AuthGPG::threadTick() in /libretroshare/src/pqi/authgpg.cc:207
  11: RsTickingThread::run() in /libretroshare/src/util/rsthreads.h:314
  12: RsThread::wrapRun() in /libretroshare/src/util/rsthreads.cc:116
  13: RsThread::rsthread_init(void*) in /libretroshare/src/util/
rsthreads.cc:84
  14: start_thread in /usr/lib/libpthread-2.32.so
  15: clone in /usr/lib/libc-2.32.so
Address 0xcb70379 is 9 bytes inside a block of size 4,096 alloc'd  1:
malloc in /build/valgrind/src/valgrind-3.16.1/coregrind/m_replacemalloc/
vg_replace_malloc.c:307
  2: _IO_file_doallocate in /usr/lib/libc-2.32.so
  3: _IO_doallocbuf in /usr/lib/libc-2.32.so
  4: _IO_file_overflow@@GLIBC_2.2.5 in /usr/lib/libc-2.32.so
  5: _IO_file_xsputn@@GLIBC_2.2.5 in /usr/lib/libc-2.32.so
  6: fwrite in /usr/lib/libc-2.32.so
  7: PGPHandler::locked_writePrivateTrustDatabase() in /libretroshare/
src/pgp/pgphandler.cc:1877
  8: PGPHandler::locked_syncTrustDatabase() in /libretroshare/src/pgp/
pgphandler.cc:1987
  9: PGPHandler::syncDatabase() in /libretroshare/src/pgp/pgphandler.cc:
1909
  10: AuthGPG::threadTick() in /libretroshare/src/pqi/authgpg.cc:207
  11: RsTickingThread::run() in /libretroshare/src/util/rsthreads.h:314
  12: RsThread::wrapRun() in /libretroshare/src/util/rsthreads.cc:116
  13: RsThread::rsthread_init(void*) in /libretroshare/src/util/
rsthreads.cc:84
  14: start_thread in /usr/lib/libpthread-2.32.so
  15: clone in /usr/lib/libc-2.32.so
Uninitialised value was created by a stack allocation  1:
PGPHandler::locked_writePrivateTrustDatabase() in /libretroshare/src/
pgp/pgphandler.cc:1855
2020-12-29 13:05:41 +01:00
Phenom
308fa78307 Fix Uninit in GxsTunnelPeerInfo 2020-12-29 12:23:18 +01:00
defnax
a975648b39 Fixed unknown issue on Message composer 2020-12-28 20:57:15 +01:00
defnax
f495b7e28d Added back to display the filter for Friends selection in Message composer
* Added back to display the filter for Friends selection in Message composer
* to get enabled with the flag direct_chat
2020-12-28 19:08:04 +01:00
defnax
918513671a
Merge pull request #2187 from defnax/wire-ui-fixes-4
[Wire] Improved the Pulse Composer & the layout
2020-12-28 14:33:20 +01:00
defnax
b67ed7bce9 Improved the Pulse Composer & the layout
* Hide by default the URL frame not yet used.
* Hide the Drag & Drop frame by default
* Layout improvements & stylesheets fixes
* Added placeholder text for the Text Edit field & fixed strings to be translate able
* Added the Edit profile button still not yet functional
2020-12-28 13:00:27 +01:00
defnax
b4cbf2691f
Merge pull request #2184 from defnax/ui-fix-6
UI fixes
2020-12-28 12:35:19 +01:00
defnax
7e619353e4 BW stats fix checkbox default state 2020-12-28 00:48:28 +01:00
csoler
a40c54950c fixed bug due to double free 2020-12-27 00:12:13 +01:00
csoler
5ff58e6a5f added params to disable the use of cache when retrieving msg and grp data and metadata. Made GxsUtil::check() not use the cache 2020-12-26 23:35:39 +01:00
csoler
22ceec6c43 replaced GxsMetaData pointers by shared_ptrs in dataaccess and dataservice, so that we can easily disable caching, more freely get rid of cache items, and have a simpler memory management scheme 2020-12-26 23:13:17 +01:00
defnax
93518d6746 Fixed margins for Forum Message Feeds to be visible when its selected to be visible 2020-12-26 16:32:45 +01:00
defnax
ad2fa44a81 Added some fixes from RetroPooh
* Append space after nick paste on click at chat participant list
* Allow tabs resize in bw stats
* Remove freezes caused by resizing each update
2020-12-26 16:30:24 +01:00
csoler
033ba9cc36 removed a non wanted number of calls to loadIdentities due to widgets connections before initialization 2020-12-25 21:30:30 +01:00
defnax
9963310a94 Fixed to display back the status message for private chat 2020-12-25 16:49:05 +01:00
defnax
e944979922 Fixing stylesheets 2020-12-24 22:51:48 +01:00
defnax
10f7d7adec Added to use .webp images too. 2020-12-24 17:56:24 +01:00
csoler
41a263eccc removed std::unique_ptr in a few places where it made code far too complicated and less easy to debug 2020-12-24 00:45:19 +01:00
csoler
1ecfbfcd02 fixed bug in circles edit dialog 2020-12-24 00:34:49 +01:00
defnax
0169edcd8f Fixed to align the "Data Size" colum to align right 2020-12-23 23:39:28 +01:00
defnax
96457ead0c Added minimize functionality for the IM Browser 2020-12-23 23:38:20 +01:00
csoler
8a6edba615 fixed missing decl 2020-12-23 23:37:24 +01:00
csoler
a8f3a38e72 added missing delete trayMenu 2020-12-23 21:39:04 +01:00
csoler
4654ef020b added missing delete of tray icon widget 2020-12-23 21:12:22 +01:00
csoler
2a3fa76256 added missing delete of X509 cert at loading time 2020-12-23 21:12:05 +01:00
csoler
bb1996725d fixed missing deletes in search dialog 2020-12-23 20:48:03 +01:00
csoler
a2eced6d4a added missing deletes in Transfers dialog 2020-12-23 20:47:49 +01:00
csoler
d28665df18 added missing delete in authssl.cc 2020-12-23 20:47:28 +01:00
csoler
f2b1cccf42 added missing delete in NewFriendList destructor 2020-12-22 22:51:35 +01:00
csoler
25041c694b fixed previous commit with remaining deletes and shared_ptr that messed the whole thing 2020-12-22 22:51:17 +01:00
csoler
68d7edd405 fixed leak in gossipDiscovery 2020-12-22 20:15:45 +01:00
defnax
4a15c59356
Merge pull request #2180 from defnax/jasonapi-page
Added own icon for Jason Api Settings
2020-12-21 23:41:27 +01:00
defnax
5cdd4f084e
Merge pull request #2181 from defnax/ui-fix-5
Get more space to be visible own signers name
2020-12-21 23:41:02 +01:00
defnax
98f50a353f Get more space to be visible own signers name 2020-12-21 22:17:37 +01:00
defnax
41a27c65cc Added own icon for Jason Api Settings 2020-12-21 20:46:52 +01:00
defnax
e367a1f698
Merge pull request #2177 from defnax/fix-invite-message
Fix to hide the Invite Button when its a Friend Request Message
2020-12-21 13:48:49 +01:00
csoler
646d07887c saving GxsId for forum post creation 2020-12-20 20:45:23 +01:00
csoler
4b4b69de50 fixed name of group for default GxsId to post in boards 2020-12-20 20:44:07 +01:00
csoler
6969eae3ff de-select current message when showing forum info 2020-12-20 20:13:17 +01:00
defnax
54f040c17a Fixed the Msg Feed Item too 2020-12-20 19:54:25 +01:00
defnax
5ea4ba35b9 Fixed forum name stylesheet 2020-12-20 18:15:36 +01:00
csoler
d5aa8dd9f3 fixed wrong message code in rsEvent call from p3msgservice 2020-12-20 16:40:21 +01:00
defnax
c4b6c34dbe Fix to hide the Invite Button when its a Friend Request Message 2020-12-20 16:29:33 +01:00
defnax
43d953b992
Merge pull request #2168 from PhenomRetroShare/Fix_SystemMessageSender
Fix System Message Sender
2020-12-20 15:44:38 +01:00
csoler
e417c68d41 turned forum name label into a button to allow display of forum info 2020-12-20 14:41:23 +01:00
defnax
b0da8825de
Merge pull request #2172 from defnax/wizard-ui-1
Fixed ui height for Connect Friend Wizard
2020-12-20 14:24:41 +01:00
csoler
dbeefa4d24
Merge pull request #2171 from csoler/v0.6-BugFixing_2
0.6.6-RC2 fixes
2020-12-20 10:39:27 +01:00
csoler
e8d6632473 fixed bug in debug_printCacheSize() that was actually corrupting the cache 2020-12-19 21:11:13 +01:00
defnax
b6df3d6d93
Merge pull request #2173 from defnax/stylsheet-fix-4
dark stylesheet fixes
2020-12-19 15:37:11 +01:00
defnax
75498ed4d3 dark stylesheet fixes 2020-12-19 13:16:39 +01:00
defnax
0c531defbf Fixed ui height for Connect Friend Wizard 2020-12-18 22:16:32 +01:00
defnax
45f259975a
Merge pull request #2170 from defnax/wire-ui-fixes-2
[TheWire] few ui fixes
2020-12-18 18:18:40 +01:00
defnax
ba689291a1 Fixing darkstylesheets for Forums MsgItem 2020-12-18 17:10:15 +01:00
defnax
40860e726e
Merge pull request #2167 from defnax/ui-fix-3
Fixed to use NO FRAME for Friend Request Toaster
2020-12-18 13:22:42 +01:00
defnax
bfbf8e6e57 update stylesheet for darkstyle 2020-12-18 12:46:37 +01:00
defnax
23bd0fa517 added to use stylesheet for the Follow button. 2020-12-18 11:57:04 +01:00
defnax
8aeb1bb799 Added disabled stylesheet for the Post button 2020-12-17 23:36:10 +01:00
csoler
125fbde48e switched back node details height to 400 2020-12-17 21:19:02 +01:00
csoler
1a5a99f076 show last contact and IP on closed profiles to be the data of the most recent node 2020-12-17 21:17:17 +01:00
csoler
0855c05ad6 moved connectivity info in node details to new tab to save space 2020-12-17 20:27:00 +01:00
defnax
5a2e13366c wire few ui fixes 2020-12-17 18:49:12 +01:00
Phenom
d1ba81e50f Fix System Message Sender 2020-12-16 16:17:44 +01:00
defnax
7719a75a22 Fixed to use NO FRAME for Friend Request Toaster 2020-12-16 13:09:54 +01:00
defnax
df5d1ab237
Merge pull request #2166 from defnax/forums.icon
Fixed red forums icon
2020-12-16 12:59:53 +01:00
defnax
da6ca0d596 Fixed red forums icon 2020-12-16 11:30:53 +01:00
defnax
f93d19f4bc
Merge pull request #2165 from PhenomRetroShare/Fix_MailFriendRequest
Fix Mail for known Friend Request
2020-12-16 11:08:11 +01:00
csoler
63bc384ae7 switched to RC2 2020-12-15 21:29:11 +01:00
csoler
913aa273d0
Merge pull request #2157 from defnax/forums-circle
[Forums] Added to display a new colored forum icons when forum is restricted to a circle
2020-12-15 21:00:30 +01:00
csoler
faeb80c585
Merge pull request #2156 from defnax/removefixedsize
[Boards] Removed the fixed size from the thumbnail label
2020-12-15 20:59:02 +01:00
csoler
733b059571
Merge pull request #2161 from csoler/v0.6-BugFixing_5
V0.6 bug fixing 5
2020-12-15 20:50:14 +01:00
csoler
f8086d7b97 fixed text in CreateGxsChannelMsg 2020-12-15 20:42:17 +01:00
Phenom
2273a634a7 Fix Mail for known Friend Request
No mail for unknown as we don't know where to send it.
2020-12-15 11:47:25 +01:00
csoler
e493bdec8a fixed typo 2020-12-15 09:33:49 +01:00
csoler
d4e5a2ea83 added warnign when channel post shares files from extra list 2020-12-14 22:10:55 +01:00
csoler
7e7f56440c moved check about missing local files in channel post to a later stage in the post creation (just before send) so that it always captures it 2020-12-14 21:48:43 +01:00
csoler
71725f8be4
Merge pull request #2164 from PhenomRetroShare/Fix_ParamNetworkPageUpdate
Fix Preferences-Network page IP update.
2020-12-14 20:59:31 +01:00
csoler
a53acee787
Merge pull request #2162 from PhenomRetroShare/Fix_FriendReqToaster
Fix Friend Request Toaster
2020-12-14 20:55:33 +01:00
csoler
5d3f5ebcd6
Merge pull request #2163 from PhenomRetroShare/Fix_UninitRemoteDirModel
Fix Uninit mEventHandlerId in RemoteDirModel
2020-12-14 20:52:23 +01:00
Phenom
7d4dd70c36 Fix Preferences-Network page IP update. 2020-12-14 18:03:34 +01:00
Phenom
81034fae51 Fix Uninit mEventHandlerId in RemoteDirModel 2020-12-14 17:37:54 +01:00
Phenom
4340b1a04a Fix Friend Request Toaster 2020-12-14 17:33:08 +01:00
csoler
aad27ff94b renamed "count" to "size" in DirDetails 2020-12-13 20:03:21 +01:00
csoler
335a90cc92 added internal update of total size for directories and display in GUI 2020-12-13 18:15:14 +01:00
csoler
d112357b77
Merge pull request #2158 from csoler/v0.6-BugFixing_5
Mem leaks fixing and cpu optimization
2020-12-12 19:57:18 +01:00
defnax
f3f206d7a1 Fixing naming 2020-12-11 22:01:29 +01:00
csoler
7b2f7f2e0e fixed mem leak in rsgxstunnel.cc 2020-12-10 20:23:23 +01:00
csoler
9a6835bf06 fixed memory leak in RsGenExchange 2020-12-10 20:15:53 +01:00
defnax
2406bf9cb4 Added to display a new colored forum icons when forum is restricted to a circle
* Added to show a red icon when forum is restricted to a private circle, show a green icon when forum restricted to a public circle.
* Removed unnecessary colored icons for signed/tracking.
2020-12-10 19:56:01 +01:00
defnax
171872f7fd Removed the fixed size from the thumb label & moved the subscribebutton under the title
* Removed the fixed size from the thumb label & moved the subscribebutton under the title
* Renamed "Last Post" to "Last activity"
2020-12-10 19:36:04 +01:00
csoler
c8e13b6a15
Merge pull request #2155 from csoler/v0.6-Translations
updated translation files
2020-12-10 09:41:12 +01:00
csoler
96fb0d2d5f updated translation files 2020-12-10 09:37:10 +01:00
csoler
0f55d73b69 fixed quadratic search in GxsUtil check routine 2020-12-09 23:31:40 +01:00
csoler
e3c2b644b3
Merge pull request #2154 from csoler/v0.6-BugFixing_5
fixed missing delete in generic_sendData() causing a memory leak
2020-12-09 23:06:06 +01:00
csoler
5cbe61354f
Merge pull request #2152 from PhenomRetroShare/Fix_ChannelRsLink
Fix Channel RsLink if update before UI Init
2020-12-09 23:05:50 +01:00
csoler
50ad409e26
Merge pull request #2150 from PhenomRetroShare/Fix_RsMutexDebug
Fix RsMutex Debug and add rs_mutex_debug qmake option.
2020-12-09 23:04:51 +01:00
csoler
a8ca7a559f
Merge pull request #2148 from defnax/ui-fix-2
GUI fixes
2020-12-09 23:03:29 +01:00
csoler
906c1f03e4
Merge pull request #2147 from csoler/v0.6-BugFixing_2
Still bug fixing 0.6.6-RC1
2020-12-09 22:58:13 +01:00
csoler
1c0e3fc2f4
Merge pull request #2149 from PhenomRetroShare/Fix_RS_DEEP_CHANNEL_INDEX
Fix CONFIG with rs_deep_channels_index
2020-12-09 22:57:25 +01:00
csoler
758aaffbd0 fixed missing delete in generic_sendData() causing a memory leak 2020-12-09 22:55:15 +01:00
Phenom
82bd8d5f6a Fix CONFIG with rs_deep_channels_index 2020-12-09 16:10:17 +01:00
csoler
33c5cc86b6
Merge pull request #2153 from csoler/v0.6-BugFixing_5
fixed bug in mutexes causing a deadlock in gxs integrity check
2020-12-09 13:18:11 +01:00
csoler
4ddcf3c0bb removed double call to delete groups and delete msgs (left after previous changes). Improved output when checking groups/msgs 2020-12-08 23:57:30 +01:00
csoler
ed5f8618b6 fixed bug in mutexes causing a deadlock in gxs integrity check 2020-12-08 23:45:31 +01:00
Phenom
c745800e18 Fix Channel RsLink if update before UI Init 2020-12-08 22:03:36 +01:00
Phenom
2ff3d83c30 Fix RsMutex Debug and add rs_mutex_debug qmake option. 2020-12-08 17:15:16 +01:00
Phenom
5f67710f16 Fix RsGxsDataAccess req delete when failed. 2020-12-07 14:47:57 +01:00
csoler
931be5dc6d fixed update of forum and circle lists when forum/circle is edited 2020-12-06 21:29:56 +01:00
defnax
5341db5afe Fixed comments to open the Post & fixed background selection color issue on Fusion style
* Fixed Comments Button to open the Post
* Fixed background selection color issue on Fusion style
* Fixed issue when exapnding the Notes Text
2020-12-06 15:10:50 +01:00
defnax
e5c9c47c91 Fixing background selection color & fixed the default width
* Fixing background selection color for Peer Online Feeds & Friend Request Feeds (Fusion style)
* Fixed the default width for GXS Group Dialog.
* Fixed spacing for the Button layout
2020-12-05 23:06:02 +01:00
csoler
4db0ed9fa9 replaced remaining term "chat lobby" for "chat room" 2020-12-05 21:07:55 +01:00
csoler
b3a6ec67de improved description of what Last Post means in boards and channels, added tooltips 2020-12-05 21:04:04 +01:00
csoler
d5d0314940 always show empty groups in FriendList so that they still can be deleted 2020-12-05 20:50:36 +01:00
csoler
dbd6477acd fixed bug in circle chooser that showed duplicates. Removed mCircleExternalIdList (not really useful now that circles are cached) and used a std::set to ensure uniqueness 2020-12-05 20:12:03 +01:00
csoler
af76cf028c always hide edit post button in channel feeds. Feed is not the place for editing posts 2020-12-05 16:31:23 +01:00
csoler
8f5656433a
Merge pull request #2146 from defnax/boardscomposer
[ Boards ] Added to show a message box when closing the boards post composer
2020-12-05 16:17:53 +01:00
csoler
08e264913d
Merge pull request #2143 from csoler/v0.6-BugFixing_4
V0.6 bug fixing 4
2020-12-05 16:15:11 +01:00
csoler
e0281e2a33
Merge pull request #2136 from defnax/zoomablelabel-for-channel-feeds
Added ZoomableLabel for the Channel Post Feeds
2020-12-05 16:13:46 +01:00
defnax
15d1b1c4fc Fixed that the images are not deformed 2020-12-05 14:58:27 +01:00
defnax
f67153538f removed scale contents 2020-12-05 13:39:42 +01:00
defnax
ef200fee47 Added to show a message box when closing the boards post composer 2020-12-04 23:33:16 +01:00
csoler
f6c554807f
Merge pull request #2135 from csoler/v0.6-BugFixing_2
Still fixing GUI issues for 0.6.6
2020-12-04 22:35:34 +01:00
csoler
9533fc9c00 added notification when new extra file is shared, so that shared files updates 2020-12-04 16:33:12 +01:00
csoler
fd2eed8b24 fixed wrong display of error when creating a new GxsId 2020-12-04 14:39:48 +01:00
csoler
d5cce14cb1 Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_2 2020-12-04 14:29:01 +01:00
csoler
6e6fcc4e1d
Merge pull request #2139 from PhenomRetroShare/Fix_mBobAccessibleUninit
Fix uninitialised mBobAccessible in ServerPage
2020-12-04 13:51:07 +01:00
csoler
477987153f
Merge pull request #2140 from PhenomRetroShare/Fix_mTotalIdentitiesUninit
Fix uninitialised mTotalIdentities in GxsIdStatisticsWidget
2020-12-04 13:49:26 +01:00
csoler
ba7bac4284 removed debug info 2020-12-03 23:33:22 +01:00
csoler
d2dad59b54 added sending of group authors along with group data in distant GXS search 2020-12-03 23:13:18 +01:00
Phenom
4b10a3091d Fix uninitialised mTotalIdentities in GxsIdStatisticsWidget
Conditional jump or move depends on uninitialised value(s)
  in GxsIdStatisticsWidget::updateContent() in /retroshare-gui/src/gui/
statistics/GxsIdStatistics.cpp:278
2020-12-02 18:24:25 +01:00
csoler
fa20b9b254 simplified GxsIntegrityCheck, in hope that it will remove the crashes. Also moved the deletion to async RsGenExchange, so as to get the proper notifications 2020-12-01 20:34:23 +01:00
csoler
a4e3f98a09 Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_2 2020-12-01 19:45:30 +01:00
Phenom
d280d2c8e9 Fix uninitialised mBobAccessible in ServerPage::ServerPage
Conditional jump or move depends on uninitialised value(s)
  in ServerPage::updateStatusBob() in /retroshare-gui/src/gui/settings/
ServerPage.cpp:1770
2020-12-01 18:51:12 +01:00
csoler
bcb43cb9a1 fixed bug in Gxs cleaning code 2020-12-01 14:43:23 +01:00
csoler
a3b7dbe55e fixed merge 2020-12-01 09:35:11 +01:00
csoler
2bb03e53d5
Merge pull request #2123 from csoler/v0.6-BugFixing_4
GXS cleaning
2020-11-30 21:42:14 +01:00
csoler
572f32c423
Merge pull request #2138 from defnax/notifytab
* Notify page set back default Tab to "0"
2020-11-30 21:41:37 +01:00
defnax
7a8a0e7dc1 * Notify page set back default Tab to "0" 2020-11-30 20:33:31 +01:00
thunder2
5a4f33aa51 Windows build environment
- Added no_rs_cppwarning for build
- Added rs_use_native_dialogs with commandline "nativedialogs"
- Added copy of sounds from plugin VOIP
2020-11-30 11:39:27 +01:00
defnax
fa64fd0362 Added ZoomableLabel for the Channel Post Feeds 2020-11-29 16:46:02 +01:00
csoler
ac7e2b5582 fixed redraw of channels and boards info when editing the group data 2020-11-28 23:10:40 +01:00
csoler
056ab8da56 fixed update of forum post bold when children posts are set as read 2020-11-28 21:56:39 +01:00
csoler
d842c6fe52 Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_4 2020-11-28 21:34:32 +01:00
csoler
0a78d27cae Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_2 2020-11-28 21:28:16 +01:00
csoler
9a2228b472 fixed auto-DL tooltip 2020-11-28 17:00:47 +01:00
csoler
1e53bf3b77 fixed auto-DL from trusted identities 2020-11-28 16:51:31 +01:00
csoler
6c13d4bf4d attempt to fix default sorting in channel file list 2020-11-28 16:51:02 +01:00
csoler
38f9c81050
Merge pull request #2122 from jolavillette/priorityOptim
Priority optimization and fixes
2020-11-27 23:15:36 +01:00
csoler
2100c5511d
Merge pull request #2121 from defnax/chat-tunnel-status
Moved the Tunnel status Label to the Top [Distant Chat]
2020-11-27 20:29:58 +01:00
csoler
b19c8116de
Merge pull request #2117 from defnax/channel-composer-improvements
[Channels] Improved the Channel Composer & small fixes
2020-11-27 19:52:33 +01:00
csoler
f5d6415c0d
Merge pull request #2114 from defnax/count-comments-button
[Boards] Added back to display comments counts on the comments button
2020-11-27 19:50:14 +01:00
csoler
1ee7d05376
Merge pull request #2119 from defnax/subscribe-button-hide
[News Feeds] Hide the Subscribe Button on the Channel Post & Forum MSG Feeds
2020-11-27 19:45:53 +01:00
csoler
0f5457f0c2
Merge pull request #2118 from defnax/ui-fix
[Boards] Fixing issue with Search Field on Boards to get visible the ID
2020-11-27 19:42:24 +01:00
jolavillette
9324d9de6c More optimization of priorities 2020-11-26 20:29:51 +01:00
jolavillette
e8691e9b0f Priority optimization and fixes 2020-11-26 20:29:51 +01:00
csoler
c8cf63ae21
Merge pull request #2126 from PhenomRetroShare/Add_NetworkRemoveSelectedKey
Add Remove Only Selected in Network Keyring.
2020-11-26 20:26:45 +01:00
csoler
c58e332acd
Merge pull request #2129 from PhenomRetroShare/Add_SaveSelectedPostInForum
Add Save Selected Post in current Forum when switch to other.
2020-11-26 20:22:36 +01:00
csoler
41357489c0
Merge pull request #2127 from PhenomRetroShare/Add_PID_InLockFile
Add current PID in Lock file.
2020-11-26 20:18:53 +01:00
csoler
cb995f3aff reverted back cleanup period to 59 mins 2020-11-26 20:07:16 +01:00
defnax
92322d1a4b Fixed to use the right icons for the Grant & Cancel membership & improved Circle Notiy layout
* Fixed to use the right icons for the Grant & Cancel membership & improved Circle Notify layout
* Fixed stylesheets for the Circle notify feeds
2020-11-26 20:03:49 +01:00
csoler
5a7f95f443 fixed deletion of groups using the proper method in RsGenExchange, and disabled debug output 2020-11-26 20:03:03 +01:00
csoler
b820057064
Merge pull request #2128 from PhenomRetroShare/Fix_RsItemDeserialiseTooSmall
Fix rs item deserialise too small
2020-11-26 20:01:41 +01:00
csoler
cb706c09ce
Merge pull request #2131 from PhenomRetroShare/Fix_ValGrindStillMemory
Fix Valgrind report at End of RS
2020-11-26 19:55:42 +01:00
Phenom
3fff0869a2 Fix Valgrind report at End of RS
XXXX bytes in XX blocks are still reachable in loss record.
2020-11-26 19:13:54 +01:00
csoler
bce514115d added proper notifications when a group is deleted 2020-11-25 23:35:20 +01:00
csoler
f21b57b643 fixed a few bugs in checking for unused groups 2020-11-25 23:03:25 +01:00
Phenom
ee6f83aab4 Add Save Selected Post in current Forum when switch to other. 2020-11-25 20:01:47 +01:00
Phenom
0ae073d073 Fix RsItem deserialise when they are too small (< 8 bytes). 2020-11-25 15:35:21 +01:00
thunder2
1ee38877ca Fixed linking of VOIP plugin for msys2 2020-11-24 19:09:06 +01:00
hunbernd
7a0dfbcda9 Fixed includes and macros for newer opencv 2020-11-24 19:02:37 +01:00
thunder2
c7b6f5ffba Upgraded external libraries in Windows build environment
- cmake-3.19.0
- opencv-4.5.0
- openssl-1.1.1h
2020-11-24 19:02:37 +01:00
csoler
be1728d535
Merge pull request #2120 from csoler/v0.6-BugFixing_2
Trying to optimize circles and prevent the spread of unwanted/useless circles
2020-11-24 18:40:49 +01:00
csoler
fc8604154b cancelled commit c1c6d33 because PR2122 provides a more advanced set 2020-11-24 18:39:21 +01:00
csoler
2c7ee7ebeb added logic to keep track of circles activity from friend nodes and the methods to estimate when circles are not used 2020-11-24 18:33:16 +01:00
Phenom
cf0360a172 Add current PID in Lock file. 2020-11-24 15:57:43 +01:00
Phenom
457206272c Add Remove Only Selected in Network Keyring. 2020-11-24 15:51:39 +01:00
hunbernd
bcafd06748 Fixed msys2 pack script:
- copy retroshare.dll (added if exist by thunder)
- copy plugins from the lib folder
2020-11-23 21:04:19 +01:00
thunder2
e9298c16bc Fixed linking with enabled libretroshare_shared with msys2 2020-11-23 21:04:18 +01:00
thunder2
5fc8689bf2 Fixed compile of FeedReader plugin with msys2 2020-11-23 21:04:18 +01:00
csoler
2fd15134c9 added auto-cleaning of unused forums, channels, posted. Works for all GXS groups if the correct method is supplied. 2020-11-22 21:45:21 +01:00
defnax
1bf251f8f7 Added a "Remove Thumbnail" button to remove a unwanted Thumbnail from the post easy & fast. 2020-11-22 15:41:06 +01:00
csoler
c1c6d33add new experimental set of priorities accounting for more recent statistics 2020-11-21 15:57:45 +01:00
csoler
1058989c5b added some info about circles subscribe and membership system 2020-11-21 15:12:50 +01:00
defnax
18ffc45bd3 Forget to commit this 2020-11-21 12:34:34 +01:00
defnax
a0a1b43cef Moved the Tunnel status Label to the Top 2020-11-21 12:11:48 +01:00
defnax
d136db2ffb Fixing the stylesheets for Channel Post Feeds 2020-11-20 20:14:49 +01:00
csoler
115dd1cf5f removed unused variable _item_count in pqiqos 2020-11-20 10:33:18 +01:00
csoler
e15058d14c optimization in circles: now only auto-subscribe when a own msg is present 2020-11-19 23:43:47 +01:00
defnax
edf83f0eb3 Hide the Subscribe Button on the Channel Post & Forum MSG Feeds
* Hide the Subscribe Button on the Channel Post & Forum MSG Feeds
* Fixed to enabled the RS Links for Channel Names back.
2020-11-19 22:24:03 +01:00
defnax
b900a79448 * moved the Title back to the old place 2020-11-19 20:38:51 +01:00
thunder2
efe454c937 Fixed save of settings in plugin FeedReader 2020-11-19 15:17:25 +01:00
thunder2
26c5ce4ed2 Fixed crash when adding a new comment to a post without active item in tree 2020-11-19 12:42:44 +01:00
csoler
11c71d16ab
Merge pull request #2115 from csoler/v0.6-BugFixing_2
Bug fixing for 0.6.6
2020-11-18 19:57:48 +01:00
csoler
883dfd9c99 fixed quadratic cost in IdDialog::loadCircles(). 2020-11-17 23:54:43 +01:00
defnax
203570690b Fixing issue with Search field on boards to get visible the ID 2020-11-17 22:21:51 +01:00
defnax
c50826e32f Improved the Channel Composer & small fixes
* Fixed the issue with stretching of the RichTextEdit
* Improved the Layout
* Moved the Channel Name to the Top Right to be visible always
* Added option to hide the Thumbnail frame when needs more space for Post Edit/Blog Posting
2020-11-16 21:55:00 +01:00
csoler
a124c346a6
Merge pull request #2116 from G10h4ck/master
Fix JSON API compilation
2020-11-16 12:51:59 +01:00
Gioacchino Mazzurco
d473f1be3f
Fix JSON API compilation 2020-11-16 12:44:10 +01:00
csoler
7db8400233 disable limit of forward time checking for validating signatures 2020-11-15 21:22:25 +01:00
csoler
6617946fbd fixed bug causing missing of statistics update in channels, and missing of update when publish key is received 2020-11-15 20:49:48 +01:00
csoler
509f89cb59
Merge pull request #2106 from csoler/v0.6-BugFixing_2
[WIP] Continue fixing 0.6.6 bugs
2020-11-15 20:04:20 +01:00
defnax
9ce886cfb6 Added back to display comments counts on the comments button 2020-11-15 18:30:52 +01:00
csoler
5957a262d3 fixed 2 other missing postToObject causing GUI calls in async places 2020-11-15 16:17:44 +01:00
csoler
587ee69fe5
Merge pull request #2084 from csoler/v0.6-BugFixing_3
Clean up the mess in chat settings
2020-11-15 15:41:23 +01:00
csoler
7ceb806a96
Merge pull request #2113 from defnax/Icon-fix
Use the new mail icon on the Shared Files context menu for recommended action
2020-11-15 13:50:20 +01:00
csoler
aa16be6450 fixed bug caused by calling GUI out of main GUI thread 2020-11-15 13:42:22 +01:00
csoler
f9bb886c27 fixed bug in circles causing missing identities to block circle interaction in UI and data send/recv 2020-11-14 23:40:03 +01:00
csoler
9e94057a66 added warning about number of destinations in msg composer and in IdDialog 2020-11-14 13:37:49 +01:00
csoler
c32f90f84d added security check to avoid crash in counting comments, when a comment refers to no post (due to sync limits) 2020-11-13 23:28:49 +01:00
defnax
80135eda56 Use the new mail icon on the Shared Files context menu for recommended action. 2020-11-13 22:04:09 +01:00
csoler
24735c2235 fixed keeping sort order in any case in network friend list 2020-11-12 23:44:12 +01:00
csoler
f8721ad60f Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_2 2020-11-12 23:17:55 +01:00
csoler
141bfa2ec9 directly export current profile instead of showing profile manager, since profile manager only allows to export anyway 2020-11-12 23:16:31 +01:00
csoler
269904f762
Merge pull request #2110 from PhenomRetroShare/Fix_RewriteOfUnderlineFix
Rewrite of Underline Fix PR#2109
2020-11-12 21:13:10 +01:00
csoler
1d82cb1ad7
Merge pull request #2111 from PhenomRetroShare/Fix_SaveNetworkFriendsHeaderSize
Fix Save Network Friends Headers Size
2020-11-12 19:35:49 +01:00
Phenom
f8d7bd5d74 Fix Save Network Friends Headers Size 2020-11-12 19:02:40 +01:00
Phenom
c354d90c1b Rewrite of Underline Fix PR#2109 2020-11-12 16:47:48 +01:00
csoler
3d958a7592 moved event to the right place for detecting change in local address 2020-11-11 22:43:07 +01:00
csoler
4a7906376f
Merge pull request #2109 from PhenomRetroShare/Fix_UnderlineBug
Fix Underline Bug in Forum Posts
2020-11-11 20:04:24 +01:00
Phenom
41caeac281 Fix Underline Bug in Forum Posts 2020-11-11 18:36:17 +01:00
csoler
b4efb412be
Merge pull request #2107 from PhenomRetroShare/Fix_GXSRSLink
Fix GXS (Forum/Channel/Boards) RSLink
2020-11-11 15:05:13 +01:00
csoler
45696a3b26
Merge pull request #2108 from PhenomRetroShare/Fix_ForumFeedsCloseOnLinkActivated
Fix Forum Feeds Close on Link Activated
2020-11-10 23:13:29 +01:00
csoler
71edea3775 added proper display of local/ext IPs and DNS in connect friend wizard 2020-11-10 22:02:49 +01:00
Phenom
8702dcdcb2 Fix Forum Feeds Close on Link Activated 2020-11-10 20:06:04 +01:00
csoler
8e32a804ad
Merge pull request #2104 from PhenomRetroShare/Add_ViewSourceInRSTextBrowser
Add View Source in RSTextBrowser
2020-11-10 16:36:38 +01:00
Phenom
9dcb4af645 Add View Source in RSTextBrowser 2020-11-10 16:28:15 +01:00
csoler
ec94a89413
Merge pull request #2105 from PhenomRetroShare/Fix_MissingForumMessageText
Fix Missing Forum Message Text
2020-11-10 15:51:40 +01:00
Phenom
68e027b227 Fix GXS (Forum/Channel/Boards) RSLink
Have to add ID: tag in Board Filter due to range view.
2020-11-10 15:33:44 +01:00
csoler
af27ff5e4f
Merge pull request #2103 from defnax/UI-Fixes
Some Gui fixes
2020-11-10 10:48:37 +01:00
csoler
9a2749dbe5 added flags to invite system to unify the different variables and made sure the HomePage contains at least current IP (not fully tested) 2020-11-09 22:42:28 +01:00
thunder2
a815d5b1be Added copy of retroshare.dll to Windows build environment and installer. Enabled build of plugins. 2020-11-09 22:04:26 +01:00
thunder2
95d521f692 Fixed compile of VOIP plugin 2020-11-09 22:04:25 +01:00
thunder2
29a1b630cc Removed version number from external opencv libraries in Windows build environment 2020-11-09 22:04:25 +01:00
thunder2
76b22ada5c Added new config "libretroshare_shared" to build libretroshare as shared library (default off) based on changes from ET. Activated for Windows build with plugins to fix the link error (ld.exe: Error: export ordinal too large) due to too many exported symbols. 2020-11-09 20:00:50 +01:00
Phenom
8975809019 Fix Missing Forum Message Text
When asking data for missing message we got this:
More than one entry for this message. Is the database corrupted?
2020-11-09 16:18:19 +01:00
thunder2
1895abfb24 Changed updating submodules for Windows build. Use "cd /D" to change directory. 2020-11-09 16:16:29 +01:00
Phenom
bfbee1bdec Add View Source in RSTextBrowser 2020-11-09 15:26:08 +01:00
thunder2
026cadfe13 Fixed compile of FeedReader plugin 2020-11-08 23:03:09 +01:00
defnax
f4772b4623 Fixing some ui issues
* Fix for the reply text on Forum Message Item to stay on top (AlignTop).
* Fixing missed icons on Search Dialog.
* Fixed the wrong position for the Labels on board details
2020-11-08 21:14:10 +01:00
csoler
e88dfecc55
Merge pull request #2091 from csoler/v0.6-BugFixing_2
[WIP] Bug fixing before 0.6.6
2020-11-08 20:07:16 +01:00
csoler
d2bd947252 fixed bug due to passing shared_ptr to RsThread::async() without making an explicit copy before 2020-11-08 18:25:20 +01:00
csoler
542650a919 fixed comment count in channels 2020-11-08 15:49:00 +01:00
csoler
0a6e15c524 clear comments when switching channels 2020-11-08 15:38:37 +01:00
csoler
66f256a64a
Merge pull request #2098 from PhenomRetroShare/Add_DownloadAllInChannelPost
Add Download All files in Channel post
2020-11-08 15:22:02 +01:00
csoler
d472053960 fixed missing call to update comments in GxsChannelPostsModel 2020-11-08 14:57:17 +01:00
csoler
608a754f92
Merge pull request #2099 from PhenomRetroShare/Add_IMHistoryNoModal
Change Chat History Dialog to no modal.
2020-11-08 10:49:14 +01:00
csoler
08e2987154 added icon over posts with comments in channels 2020-11-07 20:52:50 +01:00
Phenom
b1129df077 Change Chat History Dialog to no modal.
It will be updated when new message comes.
2020-11-07 18:09:50 +01:00
csoler
3cac0c030d added NEW_COMMENT and NEW_VOTE to rsEvents types in Posted and Channels 2020-11-07 16:55:15 +01:00
csoler
dc90d6f6dc renamed SSGXSChannelGroup to GxsChannelGroupInfo, mCount in RsGxsChannelPost to mAttachmentCount and added a mCommentCount member. Also added some missing override in p3gxschannels.cc 2020-11-06 23:08:18 +01:00
Phenom
c5a80cce36 Add Download All files in Channel post 2020-11-06 18:08:08 +01:00
csoler
e0ce5632ef
Merge pull request #2097 from PhenomRetroShare/Fix_RSTreeViewHeaderResize
Fix RSTreeView Header first Painting
2020-11-06 13:19:39 +01:00
Phenom
47a2a78350 Fix RSTreeView Header first Painting 2020-11-06 11:05:08 +01:00
csoler
207dfabbca hide comments checkboxes in channel creation dialog since it is not used 2020-11-05 22:56:20 +01:00
csoler
4dac402adb restored read/unread for pinned posts 2020-11-05 22:50:12 +01:00
csoler
31cde36d59 fixed re-setting current message as read when leaving a channel 2020-11-05 22:46:49 +01:00
csoler
1dd54317c7 fixed pinned post immediate update by adding the proper rsEvent notification when updating own group data. Should also help in circles 2020-11-04 22:30:30 +01:00
csoler
7ff930e03a
Merge pull request #2096 from PhenomRetroShare/Fix_ForumPostResize
Fix Forum Post Resize
2020-11-04 14:32:21 +01:00
Phenom
d1c10d3c0e Fix Forum Post Resize
[ ] forums: Clicking on diffent forum items causes changing of the width
of the left pane.
2020-11-04 12:09:50 +01:00
csoler
f1a76ad301
Merge pull request #2094 from G10h4ck/libupnp14_compile_fix
Fix compilation with libupnp 1.14.0
2020-11-04 09:17:10 +01:00
csoler
acac1103d5
Merge pull request #2095 from PhenomRetroShare/Fix_ForumSelectBckgColor
Fix Forum Post Selection BackGround Color
2020-11-04 09:14:26 +01:00
Phenom
3be360ffc1 Fix Forum Post Selection BackGround Color 2020-11-04 08:53:58 +01:00
Gioacchino Mazzurco
079180c790
Fix compilation with libupnp 1.14.0
Based of sehraf patch https://github.com/RetroShare/RetroShare/issues/2072#issuecomment-703299870
2020-11-03 17:53:52 +01:00
csoler
07775e5262 added icon for pinned posts and removed colored background 2020-11-02 21:23:04 +01:00
csoler
ca94fba8e3 removed deprecated Send message to whole group feature from FriendList 2020-11-02 20:17:23 +01:00
csoler
de2499ce6e fixed text and condition for post sync warning 2020-11-02 18:23:50 +01:00
csoler
8efd529af0 improved layout of chat prefs and hide broadcast tab that wasnt showing any useful option 2020-11-01 23:17:56 +01:00
csoler
5efe472055 disabled HTML in comments since it does not add supportable features 2020-11-01 22:53:12 +01:00
csoler
7be387993b fixed copy of entire message in comment 2020-11-01 22:45:11 +01:00
csoler
b667ccd645
Merge pull request #2093 from defnax/Subscribe-Button
Added back counting on Subscribe button
2020-11-01 22:23:14 +01:00
csoler
c8939bf8fb
Merge pull request #2089 from defnax/Postbutton-fix
Fixing the Post buttons to get disabled when the limit has been exceeded
2020-11-01 22:07:14 +01:00
csoler
d868ee3e42 best version so far to allow copy of data using a QTextEdit in comments (needs to enable the USE_NEW_DELEGATE #ifdef) 2020-11-01 20:28:57 +01:00
defnax
2d7038c02a Fixing indentation 2020-11-01 16:01:37 +01:00
defnax
bea5a9fa51 Added back counting on Subscribe button 2020-11-01 14:43:26 +01:00
csoler
def89fd633
Merge pull request #2092 from amir28/patch-2
Fix Appveyor Windows build failing
2020-10-31 14:07:57 +01:00
amir28
e6f7c4ba67
Fix Appveyor Windows build failing
Combine several commits from https://github.com/RetroShare/RetroShare/pull/2090 to one
2020-10-31 16:27:54 +03:30
csoler
a053bedca2 partial attempt to fix selection in comments tree 2020-10-30 23:22:52 +01:00
defnax
9072feca82 Added missed line 2020-10-30 19:03:55 +01:00
defnax
20c3064e78 Added check message length for Comments Composer 2020-10-30 18:18:51 +01:00
csoler
dcb227da7c
Merge pull request #2083 from csoler/v0.6-BugFixing_2
[WIP] fixing GUI bugs
2020-10-29 20:12:14 +01:00
defnax
11d3583233 * Fixing the Post buttons to get disabled when the limit has been exceeded 2020-10-28 22:53:42 +01:00
csoler
b5cfa46073 fixed missed notification in Messages when new/draft msg happens by switching to new event system 2020-10-28 21:26:07 +01:00
csoler
b74e6dbe42 removed misplaced auto-download from subscribe button, and enable/disable subscribe for distant search results 2020-10-26 20:46:50 +01:00
csoler
874e095ee8 set comments scroll mode to continuous 2020-10-26 18:49:38 +01:00
csoler
74edefcc43 added infrastructure to track oingoing distant GXS group requests 2020-10-25 22:47:48 +01:00
csoler
30956f8de5
Merge pull request #2088 from defnax/stylesheet-fix-standard
Fixing some default stylesheets & the Layout for the ChatLobby info L…
2020-10-25 19:53:33 +01:00
defnax
1469be18aa Fixing some default stylesheets & the Layout for the ChatLobby info Labels 2020-10-25 19:06:51 +01:00
csoler
d086975d54 hide/show sync parameters if group is subscribed or not 2020-10-24 21:40:36 +02:00
csoler
c30107c248 added up-to-date info about sync period in group data details (channels, boards, forums) and warning when the sync period is too small w.r.t. the date of last post 2020-10-24 21:17:34 +02:00
csoler
709b323b03 improved layout in channel post widget 2020-10-24 14:19:34 +02:00
csoler
8903abe98c added pastFromClipboard button and confirmation when closing with ESC in channel post creation 2020-10-24 14:07:45 +02:00
csoler
d20a682719
Merge pull request #2085 from defnax/stylesheet-fix-standard
Fixing News Feed default stylesheets
2020-10-24 00:06:16 +02:00
csoler
25c836d443 add attachment count to channel creation window and fixed item removal (was previously only hidden!) 2020-10-24 00:02:26 +02:00
hunbernd
a7cda5167d Fix: additional / when combining file paths 2020-10-23 22:28:35 +02:00
csoler
0f3e054778 moved attach button to second tab of create channel msg (information redundancy). Added some tooltips 2020-10-23 22:06:13 +02:00
defnax
4bc102f1a1 Fixing News Feed default stylesheets 2020-10-23 20:01:31 +02:00
csoler
b01140dcbd fixed next unread button when new forum is selected 2020-10-22 22:49:31 +02:00
csoler
bf3285dfc1 increased number of posts to show in boards to 25. Used a single variable for it 2020-10-22 22:19:49 +02:00
csoler
a59a9c2650 changed display menu icon to something more appropriate 2020-10-22 22:09:25 +02:00
csoler
6b802e92d7 Merge remote-tracking branch 'upstream/master' into v0.6-BugFixing_2 2020-10-22 21:56:41 +02:00
csoler
8b7341185d moved chat room part from notify page into preferences->chat 2020-10-22 21:54:26 +02:00
csoler
e9c12f6aed
Merge pull request #2076 from defnax/Buttons-fixes
Changed the buttons to use QPushButton for Create & Post Buttons
2020-10-22 00:05:47 +02:00
csoler
bb5c758f87 cleaned up the mess in chat settings 2020-10-22 00:01:17 +02:00
defnax
4b9ef5d375 Hide the Tags frame on Edit Mode 2020-10-21 22:26:40 +02:00
csoler
2afda27a8c hide testfeed button 2020-10-21 22:26:33 +02:00
csoler
beb9aeaf65 changed Feed into Log in settings 2020-10-21 22:24:24 +02:00
csoler
f1d98913d1 fixed disabling of channel post comment box on resize and comment 2020-10-21 22:07:45 +02:00
defnax
459e603976 Moved the Subscribe Button for Boards to a new place & set Stylesheet for the "Apply & Close" button 2020-10-21 22:05:14 +02:00
csoler
ea020112a2
Merge pull request #2082 from csoler/v0.6-BugFixing_2
Attempt to improve consistency of HomePage
2020-10-21 18:46:20 +02:00
csoler
9d4042c401 Attempt to improved consistency of HomePage 2020-10-18 21:20:22 +02:00
csoler
6cd1bdd8e8
Merge pull request #2081 from defnax/homepage
Fixing issue with the QLabel to get more space for the RetroShare ID …
2020-10-18 19:51:32 +02:00
defnax
351be3e417 Fixing issue with the QLabel to get more space for the RetroShare ID & removed ElidedLabel 2020-10-18 18:11:35 +02:00
csoler
bd624b666d
Merge pull request #2079 from csoler/v0.6-BugFixing_2
[WIP] save chosen ID in posted
2020-10-18 17:53:13 +02:00
csoler
8df74ee00d fixed defaut zoom 1.0->1.2, removed ref to fromSecsSinceEpoch 2020-10-18 16:55:28 +02:00
csoler
d7a5af62fa fixed update of tab name in forums 2020-10-17 21:07:13 +02:00
csoler
4ed1d1f8fc switch relative/absolute TS between label and tooltip in boards 2020-10-17 20:53:07 +02:00
defnax
fc9be9175a Set text for a Editing a Post to "Update" 2020-10-17 15:18:11 +02:00
csoler
d9ddba6952 hide useless comment refresh button 2020-10-17 14:50:51 +02:00
csoler
190857fd5a removed useless line in boards showing url and moved url to title tooltip 2020-10-17 13:38:22 +02:00
csoler
5fe37e013a improving readability of channel list view items 2020-10-16 23:08:11 +02:00
csoler
695706cfae switched to human readable sizes in channels list view 2020-10-16 22:52:02 +02:00
csoler
a65c59aa2a fixed bug causing some own identities to not be editable 2020-10-16 22:40:58 +02:00
csoler
acd61fd531 save chosen ID in posted 2020-10-16 21:59:29 +02:00
defnax
42042c807b Switched to use QPushButton for GxsGroupDialog 2020-10-15 21:48:18 +02:00
defnax
34ca2bdb71 Fixed the default dimensions & enabled min and max feature 2020-10-15 20:26:05 +02:00
defnax
15b672565e update context menu icons for comments tree 2020-10-15 20:12:00 +02:00
defnax
709d39ed34 stylesheet fixes 2020-10-15 19:59:05 +02:00
defnax
5ed38fe6ea Changed button type for Comments Composer & update the stylesheets 2020-10-13 22:12:37 +02:00
defnax
30ee2f8ee7 Added red color for disabled Button 2020-10-12 22:18:38 +02:00
defnax
df29e22be0 Changed the buttons to use QPushButton which is easier with stylesheets
* Changed the buttons to use QPushButton which is easier with stylesheets
* Use standard strings Create or Post or Update ( not more OK or Send)
*Added default stylesheet colors for Create & Post Buttons
2020-10-12 21:46:06 +02:00
3243 changed files with 319348 additions and 486229 deletions

83
.github/workflows/ci-macOS.yml vendored Normal file
View File

@ -0,0 +1,83 @@
name: macOS Build
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
concurrency:
group: ${{ github.workflow}}-${{ github.head_ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
runs-on: macos-14
permissions:
actions: write
defaults:
run:
shell: bash
steps:
- name: Setup XCode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 15.0.1
- name: Show current version of Xcode
run: xcodebuild -version
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@main
- name: Show OpenSSL version
run: pkg-config --cflags libcrypto
- name: Install Packages
run: brew install openssl
miniupnpc
rapidjson
sqlcipher
bzip2
zlib
botan@2
libxslt
libxml2
qt
- name: Checkout submodules
run: |
env
git submodule update --init --remote libbitdht/ libretroshare/ retroshare-webui/
git submodule update --init supportlibs/librnp supportlibs/rapidjson supportlibs/restbed openpgpsdk/
- name: CI-Build
run: |
qmake6 . -r "CONFIG+=rs_macos14.0" "CONFIG+=release" "CONFIG+=rs_autologin" "CONFIG+=no_rs_sam3" "CONFIG+=no_rs_sam3_libsam3" "CONFIG+=rs_no_rnplib" \
INCLUDEPATH+="/opt/homebrew/opt/openssl@3/include" \
INCLUDEPATH+="/opt/homebrew/opt/rapidjson/include" \
INCLUDEPATH+="/opt/homebrew/opt/sqlcipher/include" \
INCLUDEPATH+="/opt/homebrew/opt/miniupnpc/include" \
INCLUDEPATH+="/opt/homebrew/opt/libxslt/include" \
INCLUDEPATH+="/opt/homebrew/opt/libxml2/include" \
QMAKE_LIBDIR+="/opt/homebrew/opt/openssl@3/lib" \
QMAKE_LIBDIR+="/opt/homebrew/opt/rapidjson/lib" \
QMAKE_LIBDIR+="/opt/homebrew/opt/sqlcipher/lib" \
QMAKE_LIBDIR+="/opt/homebrew/opt/miniupnpc/lib" \
QMAKE_LIBDIR+="/opt/homebrew/opt/libxslt/lib" \
QMAKE_LIBDIR+="/opt/homebrew/opt/libxml2/lib" \
CONFIG+=no_retroshare_service \
CONFIG+=no_retroshare_friendserver
make

76
.github/workflows/ci-mingw64-Qt6.yml vendored Normal file
View File

@ -0,0 +1,76 @@
name: MINGW64 Qt6 Build
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
concurrency:
group: ${{ github.workflow}}-${{ github.head_ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
runs-on: windows-latest
permissions:
actions: write
defaults:
run:
shell: msys2 {0}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup MSYS2
uses: msys2/setup-msys2@40677d36a502eb2cf0fb808cc9dec31bf6152638 # v2.28.0
with:
msystem: MINGW64
update: true
install: >-
base-devel
git
wget
p7zip
gcc
perl
ruby
doxygen
cmake
mingw-w64-x86_64-toolchain
mingw-w64-x86_64-miniupnpc
mingw-w64-x86_64-libxslt
mingw-w64-x86_64-xapian-core
mingw-w64-x86_64-sqlcipher
mingw-w64-x86_64-qt6-base
mingw-w64-x86_64-qt6-multimedia
mingw-w64-x86_64-qt6
mingw-w64-x86_64-ccmake
mingw-w64-x86_64-rapidjson
mingw-w64-x86_64-json-c
mingw-w64-x86_64-libbotan
mingw-w64-x86_64-asio
- name: Checkout submodules
run: |
env
git submodule update --init --remote libbitdht/ libretroshare/ retroshare-webui/
git submodule update --init supportlibs/librnp supportlibs/rapidjson supportlibs/restbed
- name: Workaround librnp strlen build regression
run: |
FILE="supportlibs/librnp/src/lib/crypto/mem.cpp"
grep -q '#include <cstring>' "$FILE" || sed -i '/#include <cstdio>/a #include <cstring>' "$FILE"
- name: Build
run: |
qmake6 . -r -spec win32-g++ "CONFIG+=release" "CONFIG+=rs_autologin" "CONFIG+=no_rs_sam3" "CONFIG+=no_rs_sam3_libsam3"
mingw32-make -j3

75
.github/workflows/ci-mingw64.yml vendored Normal file
View File

@ -0,0 +1,75 @@
name: MINGW64 Qt5 Build
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
concurrency:
group: ${{ github.workflow}}-${{ github.head_ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
runs-on: windows-latest
permissions:
actions: write
defaults:
run:
shell: msys2 {0}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup MSYS2
uses: msys2/setup-msys2@40677d36a502eb2cf0fb808cc9dec31bf6152638 # v2.28.0
with:
msystem: MINGW64
update: true
install: >-
base-devel
git
wget
p7zip
gcc
perl
ruby
doxygen
cmake
mingw-w64-x86_64-toolchain
mingw-w64-x86_64-miniupnpc
mingw-w64-x86_64-libxslt
mingw-w64-x86_64-xapian-core
mingw-w64-x86_64-sqlcipher
mingw-w64-x86_64-qt5-base
mingw-w64-x86_64-qt5-multimedia
mingw-w64-x86_64-ccmake
mingw-w64-x86_64-rapidjson
mingw-w64-x86_64-json-c
mingw-w64-x86_64-libbotan
mingw-w64-x86_64-asio
- name: Checkout submodules
run: |
env
git submodule update --init --remote libbitdht/ libretroshare/ retroshare-webui/
git submodule update --init supportlibs/librnp supportlibs/rapidjson supportlibs/restbed
- name: Workaround librnp strlen build regression
run: |
FILE="supportlibs/librnp/src/lib/crypto/mem.cpp"
grep -q '#include <cstring>' "$FILE" || sed -i '/#include <cstdio>/a #include <cstring>' "$FILE"
- name: CI-Build
run: |
qmake-qt5.exe . -r -spec win32-g++ "CONFIG+=release" "CONFIG+=rs_autologin" "CONFIG+=no_rs_sam3" "CONFIG+=no_rs_sam3_libsam3"
mingw32-make -j3

89
.github/workflows/macos-cmake-qt6.yml vendored Normal file
View File

@ -0,0 +1,89 @@
# macOS CMake CI for the RetroShare super-project built against Qt6.
#
# Qt6 counterpart of macos-cmake.yml. Same whole-tree build and Homebrew flag
# harvesting, but installs the `qt` formula (Qt6, which bundles qt5compat, svg,
# multimedia and tools) instead of qt@5, and builds with plugins OFF (VOIP still
# uses the Qt5-era QtMultimedia API; out of scope for this migration).
#
# Submodules are initialised WITHOUT --remote so libretroshare stays on its
# pinned, CMake-enabled commit.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
name: macOS CMake C/C++ CI (Qt6)
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
name: macOS 14 / Qt6 / CMake
runs-on: macos-14
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v5
with:
persist-credentials: false
# Same pinned-commit init as the Ubuntu CMake CI (no --remote); librnp needs
# --recursive for its nested src/libsexpp.
- name: Init submodules (pinned commits)
run: |
git submodule update --init \
libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/
git submodule update --init --recursive \
supportlibs/librnp
git submodule update --init \
supportlibs/restbed supportlibs/libsam3 \
supportlibs/udp-discovery-cpp supportlibs/rapidjson
git --no-pager -C libretroshare log --max-count 1 --oneline
- name: Install Homebrew dependencies
run: >
brew install
ninja qt openssl@3 botan@2 sqlcipher miniupnpc
json-c asio speex speexdsp ffmpeg
libxml2 libxslt bzip2 zlib rapidjson doxygen
# Mirrors the validated local macOS command: harvest every Homebrew opt/*
# include/lib dir into the compiler/linker flags, and additionally expose them
# to find_package() via CMAKE_PREFIX_PATH (needed for keg-only botan@2…).
- name: CMake configure
run: |
HB="$(brew --prefix)"
QT6="$(brew --prefix qt)"
IFLAGS="-I$HB/include"; for d in "$HB"/opt/*/include; do IFLAGS="$IFLAGS -I$d"; done
LFLAGS="-L$HB/lib"; for d in "$HB"/opt/*/lib; do LFLAGS="$LFLAGS -L$d"; done
# qt (Qt6) first so find_package(QT NAMES Qt6 Qt5) resolves to this config.
PREFIX="$QT6;$HB"; for d in "$HB"/opt/*; do PREFIX="$PREFIX;$d"; done
cmake -G Ninja -B Build-cmake -S . \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="$PREFIX" \
-DQt6_DIR="$QT6/lib/cmake/Qt6" \
-DOPENSSL_ROOT_DIR="$(brew --prefix openssl@3)" \
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON \
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON -DRS_PLUGINS=OFF -DRS_FORUM_DEEP_INDEX=OFF \
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON \
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON \
-DCMAKE_C_FLAGS="$IFLAGS" -DCMAKE_CXX_FLAGS="$IFLAGS" \
-DCMAKE_EXE_LINKER_FLAGS="$LFLAGS" \
-DCMAKE_SHARED_LINKER_FLAGS="$LFLAGS" \
-DCMAKE_MODULE_LINKER_FLAGS="$LFLAGS"
- name: CMake build
run: cmake --build Build-cmake -j$(sysctl -n hw.ncpu)

90
.github/workflows/macos-cmake.yml vendored Normal file
View File

@ -0,0 +1,90 @@
# macOS CMake CI for the RetroShare super-project (root aggregate build).
#
# CMake counterpart of the legacy qmake ci-macOS.yml. Unlike that one (which
# disables service/friendserver/sam3/rnp), this builds the WHOLE tree with the
# same feature set as the Linux CMake CI, using the user's validated local macOS
# command (Homebrew -I/-L flag harvesting).
#
# Submodules are initialised WITHOUT --remote (identical to ubuntu-cmake.yml) so
# libretroshare stays on its pinned, CMake-enabled commit.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
name: macOS CMake C/C++ CI
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
name: macOS 14 / Qt5 / CMake
runs-on: macos-14
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v5
with:
persist-credentials: false
# Same pinned-commit init as the Ubuntu CMake CI (no --remote); librnp needs
# --recursive for its nested src/libsexpp.
- name: Init submodules (pinned commits)
run: |
git submodule update --init \
libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/
git submodule update --init --recursive \
supportlibs/librnp
git submodule update --init \
supportlibs/restbed supportlibs/libsam3 \
supportlibs/udp-discovery-cpp supportlibs/rapidjson
git --no-pager -C libretroshare log --max-count 1 --oneline
- name: Install Homebrew dependencies
run: >
brew install
ninja qt@5 openssl@3 botan@2 sqlcipher miniupnpc
json-c asio speex speexdsp ffmpeg
libxml2 libxslt bzip2 zlib rapidjson doxygen
# Mirrors the validated local macOS command: harvest every Homebrew opt/*
# include/lib dir into the compiler/linker flags, and additionally expose them
# to find_package() via CMAKE_PREFIX_PATH (needed for keg-only qt@5, botan@2…).
- name: CMake configure
run: |
HB="$(brew --prefix)"
QT5="$(brew --prefix qt@5)"
IFLAGS="-I$HB/include"; for d in "$HB"/opt/*/include; do IFLAGS="$IFLAGS -I$d"; done
LFLAGS="-L$HB/lib"; for d in "$HB"/opt/*/lib; do LFLAGS="$LFLAGS -L$d"; done
# qt@5 first so find_package(Qt5) picks the keg-only (correct) config, not a
# broken Qt5 config that may sit directly under the Homebrew prefix.
PREFIX="$QT5;$HB"; for d in "$HB"/opt/*; do PREFIX="$PREFIX;$d"; done
cmake -G Ninja -B Build-cmake -S . \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="$PREFIX" \
-DQt5_DIR="$QT5/lib/cmake/Qt5" \
-DOPENSSL_ROOT_DIR="$(brew --prefix openssl@3)" \
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON \
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON -DRS_PLUGINS=ON -DRS_FORUM_DEEP_INDEX=OFF \
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON \
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON \
-DCMAKE_C_FLAGS="$IFLAGS" -DCMAKE_CXX_FLAGS="$IFLAGS" \
-DCMAKE_EXE_LINKER_FLAGS="$LFLAGS" \
-DCMAKE_SHARED_LINKER_FLAGS="$LFLAGS" \
-DCMAKE_MODULE_LINKER_FLAGS="$LFLAGS"
- name: CMake build
run: cmake --build Build-cmake -j$(sysctl -n hw.ncpu)

30
.github/workflows/mirror-to-gitlab.yml vendored Normal file
View File

@ -0,0 +1,30 @@
name: Mirror to GitLab
on:
push:
branches:
- '**'
tags:
- '**'
workflow_dispatch:
jobs:
mirror:
runs-on: ubuntu-latest
steps:
- name: Install GitLab deploy key
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.RETROSHARE_GITLAB_MIRROR_SSH_KEY }}
- name: Trust GitLab host key
run: |
ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
- name: Mirror repository to GitLab
run: |
git clone --bare "https://github.com/${GITHUB_REPOSITORY}.git" repo.git
cd repo.git
git remote set-url --push origin git@gitlab.com:RetroShare/RetroShare.git
git push --prune origin 'refs/heads/*:refs/heads/*' 'refs/tags/*:refs/tags/*'

86
.github/workflows/ubuntu-cmake-qt6.yml vendored Normal file
View File

@ -0,0 +1,86 @@
# Ubuntu CMake CI for the RetroShare super-project built against Qt6.
#
# This is the Qt6 counterpart of ubuntu-cmake.yml (which builds against Qt5).
# It exercises the version-agnostic Qt detection added to
# retroshare-gui/CMakeLists.txt (find_package(QT NAMES Qt6 Qt5 ...)).
#
# Scope note: plugins are built OFF here. The VOIP plugin still uses the Qt5-era
# QtMultimedia API (QAudioInput/QAudioOutput/QCameraInfo, removed/redesigned in
# Qt6) and FeedReader's CMake still hardcodes Qt5; both are out of scope for the
# Qt6 GUI migration and are intentionally excluded until ported.
#
# As in ubuntu-cmake.yml, submodules are initialised WITHOUT --remote so the
# pinned, CMake-enabled commits are used.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
name: Ubuntu CMake C/C++ CI (Qt6)
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true
jobs:
build:
name: Ubuntu 24.04 / Qt6 / CMake
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
# NOTE: no --remote here (on purpose) so the pinned, CMake-enabled commits
# are checked out. librnp needs --recursive for its nested src/libsexpp.
- name: Init submodules (pinned commits)
run: |
git submodule update --init \
libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/
git submodule update --init --recursive \
supportlibs/librnp
git submodule update --init \
supportlibs/restbed supportlibs/libsam3 \
supportlibs/udp-discovery-cpp supportlibs/rapidjson
git --no-pager -C libretroshare log --max-count 1 --oneline
- name: apt update
run: sudo apt-get update
- name: apt install build dependencies
run: >
sudo apt-get install -y
build-essential g++ cmake ninja-build pkg-config git
qt6-base-dev qt6-base-dev-tools qt6-multimedia-dev libqt6svg6-dev
qt6-5compat-dev libqt6core5compat6-dev qt6-tools-dev qt6-tools-dev-tools
libssl-dev zlib1g-dev libbz2-dev libbotan-2-dev libjson-c-dev
libasio-dev libsqlcipher-dev
libspeex-dev libspeexdsp-dev libminiupnpc-dev
libavcodec-dev libavutil-dev
libx11-dev libxss-dev
libxml2-dev libxslt1-dev libcurl4-openssl-dev
doxygen python3
- name: print working directory
run: pwd && ls -la
# Mirrors ubuntu-cmake.yml but selects Qt6 (qmake6 / Qt6 cmake config are the
# only Qt available on the runner) and keeps plugins OFF (see scope note).
- name: CMake configure
run: >
cmake -G Ninja -B Build-cmake -S .
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
-DCMAKE_BUILD_TYPE=Release
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON
-DRS_PLUGINS=OFF -DRS_FORUM_DEEP_INDEX=OFF
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON
- name: CMake build
run: cmake --build Build-cmake -j$(nproc)

83
.github/workflows/ubuntu-cmake.yml vendored Normal file
View File

@ -0,0 +1,83 @@
# Ubuntu CMake CI for the RetroShare super-project (root aggregate build).
#
# This is the CMake counterpart of the legacy qmake workflows
# (ubuntu-qt5_c-cpp.yml / ubuntu-qt6_c-cpp.yml). It builds the WHOLE tree from
# the top-level CMakeLists.txt: libretroshare + retroshare-gui + service +
# friendserver + plugins, with the JSON API / WebUI enabled.
#
# Key difference vs the qmake CI: submodules are initialised WITHOUT --remote, so
# libretroshare stays on the commit pinned by this super-project (a CMake-enabled
# commit that lives on master). Using --remote would move it to the latest upstream
# tip and could pull a non-CMake state, breaking the build.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
name: Ubuntu CMake C/C++ CI
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true
jobs:
build:
name: Ubuntu 22.04 / Qt5 / CMake
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v5
# NOTE: no --remote here (on purpose) so the pinned, CMake-enabled commits
# are checked out. librnp needs --recursive for its nested src/libsexpp.
- name: Init submodules (pinned commits)
run: |
git submodule update --init \
libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/
git submodule update --init --recursive \
supportlibs/librnp
git submodule update --init \
supportlibs/restbed supportlibs/libsam3 \
supportlibs/udp-discovery-cpp supportlibs/rapidjson
git --no-pager -C libretroshare log --max-count 1 --oneline
- name: apt update
run: sudo apt-get update
- name: apt install build dependencies
run: >
sudo apt-get install -y
build-essential g++ cmake ninja-build pkg-config git
qtbase5-dev qtbase5-dev-tools qtmultimedia5-dev libqt5svg5-dev
libqt5x11extras5-dev qttools5-dev qttools5-dev-tools
libssl-dev zlib1g-dev libbz2-dev libbotan-2-dev libjson-c-dev
libasio-dev libsqlcipher-dev
libspeex-dev libspeexdsp-dev libminiupnpc-dev
libavcodec-dev libavutil-dev
libx11-dev libxss-dev
libxml2-dev libxslt1-dev libcurl4-openssl-dev
doxygen python3
- name: print working directory
run: pwd && ls -la
# Mirrors the validated local Linux build command.
- name: CMake configure
run: >
cmake -G Ninja -B Build-cmake -S .
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
-DCMAKE_BUILD_TYPE=Release
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON
-DRS_PLUGINS=ON -DRS_FORUM_DEEP_INDEX=OFF
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON
- name: CMake build
run: cmake --build Build-cmake -j$(nproc)

40
.github/workflows/ubuntu-qt5_c-cpp.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: Ubuntu Qt 5 C/C++ CI
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: git init
run: git submodule update --init --remote libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/ && git --no-pager log --max-count 1
- name: git submodule supportlibs
run: git submodule update --init supportlibs/librnp supportlibs/restbed #supportlibs/rapidjson
- name: run apt update
run: sudo apt-get update
- name: apt install
run: sudo apt-get install g++ cmake qt5-qmake qtmultimedia5-dev libqt5x11extras5-dev libasio-dev libbz2-dev libjson-c-dev libssl-dev libsqlcipher-dev libupnp-dev libxss-dev rapidjson-dev libbotan-2-dev doxygen libsecret-1-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev libavcodec-dev libavutil-dev libspeex-dev libspeexdsp-dev
- name: print working directory
run: pwd && ls -la
- name: qmake
run: |
qmake CONFIG+=debug \
CONFIG+=rs_autologin \
CONFIG+=rs_webui \
CONFIG+=rs_jsonapi \
CONFIG+=wikipoos \
CONFIG+=gxsthewire \
CONFIG+=retroshare_plugins
- name: make
run: make
- name: make check
run: make check

40
.github/workflows/ubuntu-qt6_c-cpp.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: Ubuntu Qt 6 C/C++ CI
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
jobs:
build:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: git init
run: git submodule update --init --remote libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/ && git --no-pager log --max-count 1
- name: git submodule supportlibs
run: git submodule update --init supportlibs/librnp supportlibs/restbed #supportlibs/rapidjson
- name: run apt update
run: sudo apt-get update
- name: apt install
run: sudo apt-get install g++ cmake qt6-base-dev qt6-multimedia-dev libasio-dev libbz2-dev libjson-c-dev libssl-dev libsqlcipher-dev libupnp-dev libxss-dev rapidjson-dev libbotan-2-dev doxygen qt6-5compat-dev libqt6core5compat6-dev libsecret-1-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev
- name: print working directory
run: pwd && ls -la
- name: qmake
run: |
qmake6 CONFIG+=debug \
CONFIG+=rs_autologin \
CONFIG+=rs_webui \
CONFIG+=rs_jsonapi \
CONFIG+=wikipoos \
CONFIG+=gxsthewire \
CONFIG+=retroshare_plugins
- name: make
run: make
- name: make check
run: make check

109
.github/workflows/windows-cmake-qt6.yml vendored Normal file
View File

@ -0,0 +1,109 @@
# Windows (MSYS2 / UCRT64) CMake CI for the RetroShare super-project built against Qt6.
#
# Qt6 counterpart of windows-cmake.yml. Same whole-tree build and flags, but the
# UCRT64 toolchain installs the qt6-* packages (incl. qt6-5compat for the
# Core5Compat module my version-agnostic CMake requires) and plugins are OFF
# (VOIP still uses the Qt5-era QtMultimedia API; out of scope for this migration).
#
# Submodules are initialised WITHOUT --remote so libretroshare stays on its
# pinned, CMake-enabled commit.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
name: Windows UCRT64 CMake C/C++ CI (Qt6)
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
name: Windows UCRT64 / Qt6 / CMake
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
persist-credentials: false
- name: Setup MSYS2 (UCRT64)
uses: msys2/setup-msys2@40677d36a502eb2cf0fb808cc9dec31bf6152638 # v2.28.0
with:
msystem: UCRT64
update: true
install: >-
base-devel
git
perl
ruby
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-doxygen
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-ninja
mingw-w64-ucrt-x86_64-python
mingw-w64-ucrt-x86_64-qt6-base
mingw-w64-ucrt-x86_64-qt6-multimedia
mingw-w64-ucrt-x86_64-qt6-svg
mingw-w64-ucrt-x86_64-qt6-5compat
mingw-w64-ucrt-x86_64-qt6-tools
mingw-w64-ucrt-x86_64-openssl
mingw-w64-ucrt-x86_64-libbotan
mingw-w64-ucrt-x86_64-sqlcipher
mingw-w64-ucrt-x86_64-miniupnpc
mingw-w64-ucrt-x86_64-json-c
mingw-w64-ucrt-x86_64-rapidjson
mingw-w64-ucrt-x86_64-asio
mingw-w64-ucrt-x86_64-libxml2
mingw-w64-ucrt-x86_64-libxslt
mingw-w64-ucrt-x86_64-speex
mingw-w64-ucrt-x86_64-speexdsp
mingw-w64-ucrt-x86_64-ffmpeg
mingw-w64-ucrt-x86_64-bzip2
mingw-w64-ucrt-x86_64-zlib
# Same pinned-commit init as the Ubuntu/macOS CMake CI (no --remote); librnp
# needs --recursive for its nested src/libsexpp.
- name: Init submodules (pinned commits)
run: |
git submodule update --init \
libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/
git submodule update --init --recursive \
supportlibs/librnp
git submodule update --init \
supportlibs/restbed supportlibs/libsam3 \
supportlibs/udp-discovery-cpp supportlibs/rapidjson
git --no-pager -C libretroshare log --max-count 1 --oneline
# Mirrors windows-cmake.yml (Ninja, shared libretroshare) but with Qt6 and
# plugins OFF.
- name: CMake configure
run: >
cmake -G Ninja -B Build-cmake -S .
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
-DCMAKE_BUILD_TYPE=Release
-DRS_LIBRETROSHARE_STATIC=OFF -DRS_LIBRETROSHARE_SHARED=ON
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON
-DRS_PLUGINS=OFF -DRS_FORUM_DEEP_INDEX=OFF
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON
-DCMAKE_C_FLAGS="-include string.h -include stdint.h"
-DCMAKE_CXX_FLAGS="-include cstring -include cstdint -Wno-template-body"
- name: CMake build
run: cmake --build Build-cmake -j3

108
.github/workflows/windows-cmake.yml vendored Normal file
View File

@ -0,0 +1,108 @@
# Windows (MSYS2 / UCRT64) CMake CI for the RetroShare super-project.
#
# CMake counterpart of the legacy qmake ci-ucrt64.yml. Unlike that one (GUI-only,
# sam3 disabled, mingw32-make), this builds the WHOLE tree with the same feature
# set as the Linux/macOS CMake CIs, using Ninja and the user's validated local
# Windows command (shared libretroshare).
#
# Submodules are initialised WITHOUT --remote (identical to ubuntu-cmake.yml) so
# libretroshare stays on its pinned, CMake-enabled commit. On WIN32 libretroshare
# pulls restbed via FetchContent, so the restbed submodule is unused there.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
name: Windows UCRT64 CMake C/C++ CI
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
name: Windows UCRT64 / Qt5 / CMake
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
persist-credentials: false
- name: Setup MSYS2 (UCRT64)
uses: msys2/setup-msys2@40677d36a502eb2cf0fb808cc9dec31bf6152638 # v2.28.0
with:
msystem: UCRT64
update: true
install: >-
base-devel
git
perl
ruby
mingw-w64-ucrt-x86_64-toolchain
mingw-w64-ucrt-x86_64-doxygen
mingw-w64-ucrt-x86_64-cmake
mingw-w64-ucrt-x86_64-ninja
mingw-w64-ucrt-x86_64-python
mingw-w64-ucrt-x86_64-qt5-base
mingw-w64-ucrt-x86_64-qt5-multimedia
mingw-w64-ucrt-x86_64-qt5-svg
mingw-w64-ucrt-x86_64-qt5-tools
mingw-w64-ucrt-x86_64-openssl
mingw-w64-ucrt-x86_64-libbotan
mingw-w64-ucrt-x86_64-sqlcipher
mingw-w64-ucrt-x86_64-miniupnpc
mingw-w64-ucrt-x86_64-json-c
mingw-w64-ucrt-x86_64-rapidjson
mingw-w64-ucrt-x86_64-asio
mingw-w64-ucrt-x86_64-libxml2
mingw-w64-ucrt-x86_64-libxslt
mingw-w64-ucrt-x86_64-speex
mingw-w64-ucrt-x86_64-speexdsp
mingw-w64-ucrt-x86_64-ffmpeg
mingw-w64-ucrt-x86_64-bzip2
mingw-w64-ucrt-x86_64-zlib
# Same pinned-commit init as the Ubuntu/macOS CMake CI (no --remote); librnp
# needs --recursive for its nested src/libsexpp.
- name: Init submodules (pinned commits)
run: |
git submodule update --init \
libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/
git submodule update --init --recursive \
supportlibs/librnp
git submodule update --init \
supportlibs/restbed supportlibs/libsam3 \
supportlibs/udp-discovery-cpp supportlibs/rapidjson
git --no-pager -C libretroshare log --max-count 1 --oneline
# Mirrors the validated local Windows command (Ninja, shared libretroshare).
- name: CMake configure
run: >
cmake -G Ninja -B Build-cmake -S .
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
-DCMAKE_BUILD_TYPE=Release
-DRS_LIBRETROSHARE_STATIC=OFF -DRS_LIBRETROSHARE_SHARED=ON
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON
-DRS_PLUGINS=ON -DRS_FORUM_DEEP_INDEX=OFF
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON
-DCMAKE_C_FLAGS="-include string.h -include stdint.h"
-DCMAKE_CXX_FLAGS="-include cstring -include cstdint -Wno-template-body"
- name: CMake build
run: cmake --build Build-cmake -j3

26
.gitignore vendored
View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: (C) 2004-2019 Retroshare Team <contact@retroshare.cc>
# SPDX-FileCopyrightText: (C) 2004-2022 Retroshare Team <contact@retroshare.cc>
# SPDX-License-Identifier: CC0-1.0
*.o
@ -15,3 +15,27 @@ Thumbs.db
*.pro.user
.kdev4
*.kdev4
.qmake.stash
!supportlibs/libsam3/Makefile
# QtCreator cruft
*CMakeLists.txt.user*
# Build artifacts
/jsonapi-generator/src/jsonapi-generator
/jsonapi-generator/src/jsonapi-generator-doxygen-final.conf
/jsonapi-generator/src/jsonapi-includes.inl
/jsonapi-generator/src/jsonapi-wrappers.inl
/jsonapi-generator/src/xml/
/retroshare-friendserver/src/retroshare-friendserver
/retroshare-gui/src/include/
/retroshare-gui/src/retroshare
/retroshare-gui/src/temp/
/retroshare-service/src/retroshare-service
/*.tar.?z
# Build artifacts
build/
.vscode/

View File

@ -1,32 +1,50 @@
image: docker:stable
image: docker:latest
services:
- docker:stable-dind
- docker:dind
stages:
- build
- test
workflow:
rules:
- if: $CI_MERGE_REQUEST_ID
- if: $CI_COMMIT_BRANCH
build-and-test:
variables:
UBUNTU_TESTING_IMAGE_TAG: "$CI_REGISTRY_IMAGE/gitlabci_outputs/ubuntu_testing:$CI_COMMIT_SHA"
build-ubuntu-test-image:
stage: build
script:
- >
if [ -n "$CI_MERGE_REQUEST_ID" ]; then
REPO_ARGS="--build-arg REPO_URL=$CI_MERGE_REQUEST_SOURCE_PROJECT_URL" ;
REPO_ARGS="$REPO_ARGS --build-arg REPO_BRANCH=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ;
else
REPO_ARGS="--build-arg REPO_URL=$CI_REPOSITORY_URL" ;
REPO_ARGS="$REPO_ARGS --build-arg REPO_BRANCH=$CI_COMMIT_BRANCH" ;
fi ;
export REPO_ARGS ;
echo REPO_ARGS=$REPO_ARGS ;
- docker --version
- >
docker login "$CI_REGISTRY"
--username "$CI_REGISTRY_USER"
--password "$CI_REGISTRY_PASSWORD"
- mkdir Dockercontext
- >
docker build -t retroshare:testing $REPO_ARGS
docker build
-t $UBUNTU_TESTING_IMAGE_TAG
$($CI_PROJECT_DIR/build_scripts/GitlabCI/getRepoArgs.sh)
--file $CI_PROJECT_DIR/build_scripts/GitlabCI/gitlabCI.Dockerfile
Dockercontext
- docker push $UBUNTU_TESTING_IMAGE_TAG
- echo UBUNTU_TESTING_IMAGE_TAG=$UBUNTU_TESTING_IMAGE_TAG
test-ubuntu:
stage: test
script:
- docker --version
- >
docker login "$CI_REGISTRY"
--username "$CI_REGISTRY_USER"
--password "$CI_REGISTRY_PASSWORD"
- echo UBUNTU_TESTING_IMAGE_TAG=$UBUNTU_TESTING_IMAGE_TAG
- docker pull $UBUNTU_TESTING_IMAGE_TAG
- >
docker run --name retroshare --detach --tty retroshare:testing
docker run --name retroshare --detach --tty $UBUNTU_TESTING_IMAGE_TAG
retroshare-service --jsonApiPort 9092
- apk add jq
- >

29
.gitmodules vendored
View File

@ -10,7 +10,34 @@
[submodule "supportlibs/udp-discovery-cpp"]
path = supportlibs/udp-discovery-cpp
url = https://github.com/truvorskameikin/udp-discovery-cpp.git
branch = develop
branch = master
# develop branch was removed we were using it at commit f3a3103a6c52e5707629e8d0a7e279a7758fe845
[submodule "supportlibs/rapidjson"]
path = supportlibs/rapidjson
url = https://github.com/Tencent/rapidjson.git
[submodule "supportlibs/libsam3"]
path = supportlibs/libsam3
url = https://github.com/i2p/libsam3.git
[submodule "supportlibs/jni.hpp"]
path = supportlibs/jni.hpp
url = https://github.com/RetroShare/jni.hpp.git
[submodule "openpgpsdk"]
path = openpgpsdk
url = https://github.com/RetroShare/OpenPGP-SDK.git
branch = master
[submodule "libbitdht"]
path = libbitdht
url = https://github.com/RetroShare/BitDHT.git
branch = master
[submodule "libretroshare"]
path = libretroshare
url = https://github.com/RetroShare/libretroshare.git
branch = master
[submodule "retroshare-webui"]
path = retroshare-webui
url = https://github.com/RetroShare/RSNewWebUI.git
branch = master
[submodule "supportlibs/librnp"]
path = supportlibs/librnp
url = https://github.com/rnpgp/rnp.git
branch = main

View File

@ -8,12 +8,12 @@ language: cpp
matrix:
include:
- os: linux
dist: bionic
sudo: required
compiler: gcc
# - os: linux
# dist: bionic
# sudo: required
# compiler: gcc
- os: osx
osx_image: xcode10.1
osx_image: xcode10.2
compiler: clang
sudo: false
@ -68,11 +68,11 @@ before_script:
fi
script:
- if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then make -j4; fi
- if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then travis_wait 30 make -j$(nproc); fi
after_success:
- if [ $TRAVIS_OS_NAME == osx ]; then build_scripts/OSX/travis_makeOSXPackage.sh ; fi
- if [ $TRAVIS_OS_NAME == linux ] && [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then make -j2; fi
# - if [ $TRAVIS_OS_NAME == linux ] && [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then make -j2; fi
# branches:

469
BUILD-cmake.md Normal file
View File

@ -0,0 +1,469 @@
# RetroShare — CMake build (Linux / macOS / Windows)
Build commands for the whole tree from the root of the super-project. The
top-level `CMakeLists.txt` only *aggregates* the independent component projects
(libretroshare + GUI + service + friendserver + plugins) — each is a standalone
CMake project, buildable on its own. JSON API / WebUI enabled.
## Qt5 or Qt6
The build is **version-agnostic**: `retroshare-gui/CMakeLists.txt` probes Qt6
first (`find_package(Qt6 QUIET COMPONENTS Core)`) and falls back to Qt5, so the
same tree builds against **either** Qt5 or Qt6. When both are installed **Qt6 is
preferred**; force Qt5 with `-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON`.
> Why an explicit probe and not `find_package(QT NAMES Qt6 Qt5 …)`: on
> Debian/Ubuntu multiarch (Qt5 and Qt6 both under `/usr/lib/<arch>/cmake`) the
> `NAMES` order is **not** honoured — CMake globs the sibling `Qt5*`/`Qt6*`
> config dirs and stops at whichever `…Config.cmake` it reaches first, which is
> filesystem-order dependent and routinely lands on Qt5 even with Qt6 listed
> first. The explicit Qt6 probe makes the preference deterministic, and is also
> what makes `-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON` actually force a Qt5 build
> (with the versionless `QT` package name that switch had no effect).
Two deltas for a Qt6 build (everything else is identical):
- different Qt `-dev` packages (see each platform below);
- **`-DRS_PLUGINS=OFF`** — the VOIP plugin still uses the Qt5-era QtMultimedia API
(`QAudioInput`/`QAudioOutput`/`QCameraInfo`) and isn't ported to Qt6 yet;
FeedReader's CMake is also still Qt5-only.
Each configure below is prefixed with `rm -rf Build-cmake`, so the build dir is
recreated from scratch every time. This keeps switching between Qt5 and Qt6 in the
same `Build-cmake` clean (no stale `CMakeCache.txt` pinning the previous Qt
version). Drop the `rm -rf` if you want an incremental rebuild instead.
Validated by the CMake CI:
`.github/workflows/{ubuntu,macos,windows}-cmake.yml` (Qt5) and the matching
`…-cmake-qt6.yml` (Qt6).
Other notes:
- `RS_FORUM_DEEP_INDEX=OFF` on purpose (Xapian unused; re-enabled later via the
ForumContentSearchFTS5 branch).
- Ninja is used on all three platforms for consistency.
- `RS_SERVICE_TERMINAL_WEBUI_PASSWORD=ON` is **required** for `retroshare-service`
to expose the `-W`/`-B` flags that enable and serve the WebUI. `RS_WEBUI=ON`
alone builds the WebUI machinery, but the service then has **no way to turn it
on** — `enableWebUI` defaults to false and only `-W` ever sets it, so the WebUI
never serves. It is a `cmake_dependent_option` requiring `RS_WEBUI=ON`.
## Submodules (init WITHOUT --remote)
`--remote` would move libretroshare off its pinned CMake commit and break the
build. librnp needs `--recursive` for its nested `src/libsexpp`.
```bash
git submodule update --init libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/
git submodule update --init --recursive supportlibs/librnp
git submodule update --init supportlibs/restbed supportlibs/libsam3 \
supportlibs/udp-discovery-cpp supportlibs/rapidjson
```
**rapidjson / GCC >= 13:** the commit pinned by the super-project (`f54b0e47`)
has a broken `GenericStringRef::operator=` that assigns to the `const` member
`length`, so it fails to compile on modern toolchains (e.g. Debian 13 / GCC 14)
with *"assignment of read-only member 'length'"*. Check out the upstream fix
commit (#719, on Tencent/rapidjson master):
```bash
git -C supportlibs/rapidjson fetch origin
git -C supportlibs/rapidjson checkout 9bd618f5
```
## Version numbering
Versions are **not** hard-coded — CMake derives them at configure time from
`git describe` run in each component's working tree, so what a build reports is
exactly what your local checkout resolves to. Three independent strings are
stamped in:
| String | Source command | CMake file |
|---|---|---|
| `RS_GUI_VERSION` — the GUI's own version (shown in *Help ▸ About*) | `git describe --tags --always --dirty` in the super-project, leading `v` stripped | `retroshare-gui/CMakeLists.txt` |
| libRetroShare version (`RS_MAJOR`/`RS_MINOR`/`RS_MINI` + `RS_EXTRA_VERSION`) | `git describe --tags --long --match 'v*.*.*'` in `libretroshare/`, parsed into `major.minor.mini` + trailing extra | `libretroshare/CMakeLists.txt` |
| `RS_LIB_VERSION_HASH` — engine build hash | `git describe --tags --always --dirty` in `libretroshare/`, leading `v` stripped | `libretroshare/CMakeLists.txt` |
The super-project's `describe` resolves to a `v0.6.7.x` tag; libretroshare's own
tags are `v0.6.7`. So a GUI version reads like `0.6.7.3-1112-gd6047eb5a` and the
engine like `0.6.7-548-g25845f94`, i.e. `<tag>-<commits since tag>-g<short hash>`.
To read the exact values a build **would** stamp, without building, run from the
super-project root:
```bash
git describe --tags --always --dirty
git -C libretroshare describe --tags --long --match 'v*.*.*'
```
The first line is `RS_GUI_VERSION` (drop the leading `v`); the second is the
libRetroShare version.
Notes:
- **`-dirty`** is appended whenever the working tree has *tracked* modifications
at configure time. Modified **submodule pointers count as tracked changes**, so
a tree that is otherwise clean apart from submodule drift still stamps `-dirty`
on the GUI/engine version. Untracked files never trigger it.
- libretroshare uses `--long`, which **always** prints the `-<N>-g<hash>` suffix —
even on a tagged commit you get `v0.6.7-0-g…`, never a bare `0.6.7`.
- Merging feature branches into an integration branch (e.g. `combo`) only grows
the `-<N>-` commit count and changes the `-g<hash>`; the `v0.6.7.x` / `v0.6.7`
tag prefix stays put. An octopus merge (one merge commit) yields a slightly
lower `<N>` than the same branches merged one by one (one merge commit each).
- If git metadata is unavailable (tarball / distro build, or the git call fails),
the GUI falls back to the default in `retroshare-gui/src/rsguiversion.h`
(`"version not available"`), and libretroshare must be given the version on the
CMake command line: `-DRS_MAJOR_VERSION=… -DRS_MINOR_VERSION=… -DRS_MINI_VERSION=…`.
---
## Linux (Ubuntu/Debian)
Dependencies — **Qt5**:
```bash
sudo apt-get update
sudo apt-get install -y \
build-essential g++ cmake ninja-build pkg-config git \
qtbase5-dev qtbase5-dev-tools qtmultimedia5-dev libqt5svg5-dev \
libqt5x11extras5-dev qttools5-dev qttools5-dev-tools \
libssl-dev zlib1g-dev libbz2-dev libbotan-2-dev libjson-c-dev \
libasio-dev libsqlcipher-dev \
libspeex-dev libspeexdsp-dev libminiupnpc-dev \
libavcodec-dev libavutil-dev \
libxml2-dev libxslt1-dev libcurl4-openssl-dev \
doxygen python3
```
Dependencies — **Qt6** (self-contained; only the `qt*` packages differ from the
Qt5 list above):
```bash
sudo apt-get update
sudo apt-get install -y \
build-essential g++ cmake ninja-build pkg-config git \
qt6-base-dev qt6-base-dev-tools qt6-multimedia-dev \
qt6-5compat-dev qt6-tools-dev qt6-tools-dev-tools \
libssl-dev zlib1g-dev libbz2-dev libbotan-2-dev libjson-c-dev \
libasio-dev libsqlcipher-dev \
libspeex-dev libspeexdsp-dev libminiupnpc-dev \
libavcodec-dev libavutil-dev \
libxml2-dev libxslt1-dev libcurl4-openssl-dev \
doxygen python3
```
> On Ubuntu 24.04 the Core5Compat dev headers come from `qt6-5compat-dev` (there
> is no `libqt6core5compat6-dev`). Svg/X11Extras dev packages aren't needed on
> Linux for Qt6.
Build — **Qt5**:
```bash
rm -rf Build-cmake
cmake -G Ninja -B Build-cmake -S . \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON \
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON -DRS_SERVICE_TERMINAL_WEBUI_PASSWORD=ON \
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON -DRS_PLUGINS=ON -DRS_FORUM_DEEP_INDEX=OFF \
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON \
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON
cmake --build Build-cmake -j$(nproc)
```
Build — **Qt6** (auto-selected once the qt6 `-dev` packages are installed):
```bash
rm -rf Build-cmake
cmake -G Ninja -B Build-cmake -S . \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release \
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON -DRS_SERVICE_TERMINAL_WEBUI_PASSWORD=ON \
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON -DRS_PLUGINS=OFF -DRS_FORUM_DEEP_INDEX=OFF \
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON \
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON
cmake --build Build-cmake -j$(nproc)
```
### Debug build (Linux)
The commands above build `Release` (`-O3 -DNDEBUG`): aggressive inlining, assertions
stripped. Fine for daily use, wrong under a debugger — backtraces land on
misattributed lines and locals read `<optimized out>`. To step through code or
investigate a crash with `gdb`, build `Debug` instead.
Two changes to the Qt5 configure above:
- swap `-DCMAKE_BUILD_TYPE=Release` for `-DCMAKE_BUILD_TYPE=Debug` (gives `-g -O0`);
- pin explicit debug flags so every symbol is emitted and nothing is inlined:
`-DCMAKE_CXX_FLAGS_DEBUG` / `-DCMAKE_C_FLAGS_DEBUG` = `-g3 -O0 -fno-omit-frame-pointer`.
`-g3` emits full debug info **including macro definitions**; `-O0` disables inlining so
backtrace line numbers are exact; `-fno-omit-frame-pointer` keeps stack unwinding
reliable.
```bash
rm -rf Build-cmake
cmake -G Ninja -B Build-cmake -S . \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_FLAGS_DEBUG="-g3 -O0 -fno-omit-frame-pointer" \
-DCMAKE_C_FLAGS_DEBUG="-g3 -O0 -fno-omit-frame-pointer" \
-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON \
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON -DRS_SERVICE_TERMINAL_WEBUI_PASSWORD=ON \
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON -DRS_PLUGINS=ON -DRS_FORUM_DEEP_INDEX=OFF \
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON \
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON
cmake --build Build-cmake -j$(nproc)
```
> For a **Qt6** debug build, drop `-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON` and set
> `-DRS_PLUGINS=OFF` (as in the Release Qt6 command); the debug flags are identical.
> A Debug build compiles slower and produces a much larger binary — expected.
> `RelWithDebInfo` (`-O2 -g`) is a middle ground with usable symbols, but because it
> still optimizes it gives approximate backtraces; prefer `Debug` when chasing a crash.
Run the GUI under gdb (the binary lands at `Build-cmake/retroshare-gui/retroshare`):
```bash
gdb ./Build-cmake/retroshare-gui/retroshare
```
then `run`, reproduce the issue, and `bt` at the crash for a full symbolized stack.
#### AddressSanitizer (use-after-free / heap bugs)
For memory-corruption bugs (use-after-free, heap overflow, double free), an ASan build
reports the fault **at the moment of the bad access**, with three stacks — allocation,
free, and the offending access — instead of a bare `SIGSEGV` after the fact. Add
`-fsanitize=address` to both the compile and the link flags:
```bash
rm -rf Build-cmake
cmake -G Ninja -B Build-cmake -S . \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_FLAGS_DEBUG="-g3 -O1 -fno-omit-frame-pointer -fsanitize=address" \
-DCMAKE_C_FLAGS_DEBUG="-g3 -O1 -fno-omit-frame-pointer -fsanitize=address" \
-DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address" \
-DCMAKE_SHARED_LINKER_FLAGS="-fsanitize=address" \
-DCMAKE_MODULE_LINKER_FLAGS="-fsanitize=address" \
-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON \
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON -DRS_SERVICE_TERMINAL_WEBUI_PASSWORD=ON \
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON -DRS_PLUGINS=ON -DRS_FORUM_DEEP_INDEX=OFF \
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON \
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON
cmake --build Build-cmake -j$(nproc)
```
> Needs the ASan runtime: `sudo apt-get install -y libasan8`. Run with leak detection
> **off** — RetroShare allocates plenty at startup that would otherwise bury the report:
> ```bash
> ASAN_OPTIONS=abort_on_error=1:detect_leaks=0 ./Build-cmake/retroshare-gui/retroshare
> ```
> `-O1` (not `-O0`) is deliberate: ASan needs light optimization for acceptable runtime
> and cleaner reports, and the sanitizer preserves accurate line numbers regardless.
---
## macOS (Homebrew, Apple Silicon)
Dependencies — **Qt5**:
```bash
brew install ninja qt@5 openssl@3 botan@2 sqlcipher miniupnpc \
json-c asio speex speexdsp ffmpeg libxml2 libxslt bzip2 zlib rapidjson doxygen
```
Dependencies — **Qt6** (self-contained; only the Qt package differs from the Qt5
list above). Unlike Linux's split `qt6-*` packages, Homebrew ships Qt6 as a
**single monolithic `qt` formula** that already bundles qt5compat / svg /
multimedia / tools — so installing `qt` is all you need:
```bash
brew install ninja qt openssl@3 botan@2 sqlcipher miniupnpc \
json-c asio speex speexdsp ffmpeg libxml2 libxslt bzip2 zlib rapidjson doxygen
```
> `qt5compat` (bundled in `qt`) provides `Qt6::Core5Compat`, required by the GUI
> (QRegExp / QTextCodec).
>
> **If `brew install qt` fails with** `Cannot install qtbase because conflicting
> formulae are installed … qt@5: because both link conflicting binaries`, your
> qt@5 is (force-)linked. Run `brew unlink qt@5` first, then re-run
> `brew install qt`:
> ```bash
> brew unlink qt@5
> brew install qt
> ```
> Both Qt versions then coexist: the Qt6 build finds Qt6 via `Qt6_DIR`, and the
> Qt5 build still finds qt@5 via `-DQt5_DIR="$(brew --prefix qt@5)/lib/cmake/Qt5"`
> (the keg path works whether or not qt@5 is linked).
> **Botan:** with several Botan versions installed (`botan`=v3, `botan@2`,
> `botan@3`), a fresh configure can mismatch — Botan 3 headers + Botan 2 lib →
> `Undefined symbols … Botan::…` linker errors in librnp. Both macOS commands
> below pin it with `-DBOTAN_ROOT_DIR="$(brew --prefix botan@2)"` so headers and
> lib come from the **same** keg ([FindBotan.cmake] searches `BOTAN_ROOT_DIR`
> only, via `NO_DEFAULT_PATH`). To build against Botan 3 instead, point it at
> `$(brew --prefix botan)` — RNP then detects v3 and links `libbotan-3`.
> The harvest loop in both macOS commands skips every `qt*` keg on purpose: Qt is
> provided via `Qt6_DIR` / `Qt5_DIR`, and pulling a second Qt's headers off
> `/opt/homebrew/opt/qt*` would mix Qt5/Qt6 and break the build.
Build — **Qt5** (harvest Homebrew include/lib dirs; point find_package(Qt5) at keg-only qt@5):
```bash
HB="$(brew --prefix)"; QT5="$(brew --prefix qt@5)"
IFLAGS="-I$HB/include"; LFLAGS="-L$HB/lib"; PREFIX="$QT5;$HB"
for d in "$HB"/opt/*; do
case "${d##*/}" in qt*) continue;; esac
[ -d "$d/include" ] && IFLAGS="$IFLAGS -I$d/include"
[ -d "$d/lib" ] && LFLAGS="$LFLAGS -L$d/lib"
PREFIX="$PREFIX;$d"
done
rm -rf Build-cmake
cmake -G Ninja -B Build-cmake -S . \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="$PREFIX" -DQt5_DIR="$QT5/lib/cmake/Qt5" \
-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON \
-DOPENSSL_ROOT_DIR="$(brew --prefix openssl@3)" \
-DBOTAN_ROOT_DIR="$(brew --prefix botan@2)" \
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON -DRS_SERVICE_TERMINAL_WEBUI_PASSWORD=ON \
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON -DRS_PLUGINS=ON -DRS_FORUM_DEEP_INDEX=OFF \
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON \
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON \
-DCMAKE_C_FLAGS="$IFLAGS" -DCMAKE_CXX_FLAGS="$IFLAGS" \
-DCMAKE_EXE_LINKER_FLAGS="$LFLAGS" \
-DCMAKE_SHARED_LINKER_FLAGS="$LFLAGS" \
-DCMAKE_MODULE_LINKER_FLAGS="$LFLAGS"
cmake --build Build-cmake -j$(sysctl -n hw.ncpu)
```
Build — **Qt6** (use the `qt` prefix + `Qt6_DIR`; plugins OFF):
```bash
HB="$(brew --prefix)"; QT6="$(brew --prefix qt)"
IFLAGS="-I$HB/include"; LFLAGS="-L$HB/lib"; PREFIX="$QT6;$HB"
for d in "$HB"/opt/*; do
case "${d##*/}" in qt*) continue;; esac
[ -d "$d/include" ] && IFLAGS="$IFLAGS -I$d/include"
[ -d "$d/lib" ] && LFLAGS="$LFLAGS -L$d/lib"
PREFIX="$PREFIX;$d"
done
rm -rf Build-cmake
cmake -G Ninja -B Build-cmake -S . \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="$PREFIX" -DQt6_DIR="$QT6/lib/cmake/Qt6" \
-DOPENSSL_ROOT_DIR="$(brew --prefix openssl@3)" \
-DBOTAN_ROOT_DIR="$(brew --prefix botan@2)" \
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON -DRS_SERVICE_TERMINAL_WEBUI_PASSWORD=ON \
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON -DRS_PLUGINS=OFF -DRS_FORUM_DEEP_INDEX=OFF \
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON \
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON \
-DCMAKE_C_FLAGS="$IFLAGS" -DCMAKE_CXX_FLAGS="$IFLAGS" \
-DCMAKE_EXE_LINKER_FLAGS="$LFLAGS" \
-DCMAKE_SHARED_LINKER_FLAGS="$LFLAGS" \
-DCMAKE_MODULE_LINKER_FLAGS="$LFLAGS"
cmake --build Build-cmake -j$(sysctl -n hw.ncpu)
```
---
## Windows (MSYS2 — UCRT64 shell)
> The build commands use `-j$(nproc)` (all cores; `nproc` is available in MSYS2).
> MinGW C++ compilation is RAM-hungry (RNP/rapidjson can use ~1.5 GB per job), so
> on a low-memory machine lower it manually, e.g. `-j4` — that's why it used to be
> hard-capped at `-j3`.
> **`RS_USE_NATIVE_DIALOGS=ON`** — Qt's own (non-native) file/directory dialogs
> hang on Windows. Using the OS native dialogs (`RS_USE_NATIVE_DIALOGS=ON`)
> avoids the problem. On Linux/macOS the default `OFF` works fine.
Dependencies — common + **Qt5** (use the UCRT64 doxygen, not the base MSYS one —
it mishandles `D:/` paths):
```bash
pacman -S --needed base-devel git perl ruby \
mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-ninja \
mingw-w64-ucrt-x86_64-doxygen mingw-w64-ucrt-x86_64-python \
mingw-w64-ucrt-x86_64-qt5-base mingw-w64-ucrt-x86_64-qt5-multimedia \
mingw-w64-ucrt-x86_64-qt5-svg mingw-w64-ucrt-x86_64-qt5-tools \
mingw-w64-ucrt-x86_64-openssl mingw-w64-ucrt-x86_64-libbotan mingw-w64-ucrt-x86_64-sqlcipher \
mingw-w64-ucrt-x86_64-miniupnpc mingw-w64-ucrt-x86_64-json-c mingw-w64-ucrt-x86_64-rapidjson \
mingw-w64-ucrt-x86_64-asio mingw-w64-ucrt-x86_64-libxml2 mingw-w64-ucrt-x86_64-libxslt \
mingw-w64-ucrt-x86_64-speex mingw-w64-ucrt-x86_64-speexdsp mingw-w64-ucrt-x86_64-ffmpeg \
mingw-w64-ucrt-x86_64-bzip2 mingw-w64-ucrt-x86_64-zlib
```
Dependencies — **Qt6** (self-contained; only the `qt*` packages differ from the
Qt5 list above):
```bash
pacman -S --needed base-devel git perl ruby \
mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-ninja \
mingw-w64-ucrt-x86_64-doxygen mingw-w64-ucrt-x86_64-python \
mingw-w64-ucrt-x86_64-qt6-base mingw-w64-ucrt-x86_64-qt6-multimedia \
mingw-w64-ucrt-x86_64-qt6-svg mingw-w64-ucrt-x86_64-qt6-5compat mingw-w64-ucrt-x86_64-qt6-tools \
mingw-w64-ucrt-x86_64-openssl mingw-w64-ucrt-x86_64-libbotan mingw-w64-ucrt-x86_64-sqlcipher \
mingw-w64-ucrt-x86_64-miniupnpc mingw-w64-ucrt-x86_64-json-c mingw-w64-ucrt-x86_64-rapidjson \
mingw-w64-ucrt-x86_64-asio mingw-w64-ucrt-x86_64-libxml2 mingw-w64-ucrt-x86_64-libxslt \
mingw-w64-ucrt-x86_64-speex mingw-w64-ucrt-x86_64-speexdsp mingw-w64-ucrt-x86_64-ffmpeg \
mingw-w64-ucrt-x86_64-bzip2 mingw-w64-ucrt-x86_64-zlib
```
Build — **Qt5** (the `-include` / `-Wno-template-body` flags are only needed for
GCC >= 16 — RNP/rapidjson; harmless on older GCC):
```bash
rm -rf Build-cmake
cmake -G Ninja -B Build-cmake -S . \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release \
-DRS_LIBRETROSHARE_STATIC=OFF -DRS_LIBRETROSHARE_SHARED=ON \
-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON \
-DRS_USE_NATIVE_DIALOGS=ON \
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON -DRS_SERVICE_TERMINAL_WEBUI_PASSWORD=ON \
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON -DRS_PLUGINS=ON -DRS_FORUM_DEEP_INDEX=OFF \
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON \
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON \
-DCMAKE_C_FLAGS="-include string.h -include stdint.h" \
-DCMAKE_CXX_FLAGS="-include cstring -include cstdint -Wno-template-body"
cmake --build Build-cmake -j$(nproc)
```
Build — **Qt6** (auto-selected once the qt6 packages are installed; plugins OFF):
```bash
rm -rf Build-cmake
cmake -G Ninja -B Build-cmake -S . \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Release \
-DRS_LIBRETROSHARE_STATIC=OFF -DRS_LIBRETROSHARE_SHARED=ON \
-DRS_USE_NATIVE_DIALOGS=ON \
-DRS_RNPLIB=ON -DRS_JSON_API=ON -DRS_WEBUI=ON -DRS_SERVICE_TERMINAL_WEBUI_PASSWORD=ON \
-DRS_GUI=ON -DRS_SERVICE=ON -DRS_FRIENDSERVER=ON -DRS_PLUGINS=OFF -DRS_FORUM_DEEP_INDEX=OFF \
-DRS_USE_I2P_SAM3=ON -DRS_BITDHT=ON -DRS_MINIUPNPC=ON \
-DRS_BRODCAST_DISCOVERY=ON -DRS_SQLCIPHER=ON \
-DCMAKE_C_FLAGS="-include string.h -include stdint.h" \
-DCMAKE_CXX_FLAGS="-include cstring -include cstdint -Wno-template-body"
cmake --build Build-cmake -j$(nproc)
```
### Packaging & Deployment (Portable & Setup Installer)
Once the CMake build finishes successfully, you can bundle RetroShare and all its DLL dependencies into a standalone portable folder, a compressed archive, and a Windows Setup Installer.
To do this, run the deployment script from the project root:
```bash
./build_scripts/Windows-msys2/deploy-windows.sh
```
By default, the script looks for your build files in `Build-cmake/`. You can override this by setting the `BUILD_DIR` environment variable:
```bash
BUILD_DIR=MyCustomBuildDir ./build_scripts/Windows-msys2/deploy-windows.sh
```
#### Portable Archives (7z / ZIP)
- The script automatically gathers all DLLs (Qt libraries, compiler runtime, and third-party dependencies) and places them alongside the executables.
- It then compresses the folder into a portable package.
- If `p7zip` is installed, it will compress using **7-Zip** for high compression ratios. Otherwise, it falls back to standard **ZIP**.
- To install 7-Zip in MSYS2:
```bash
pacman -S --needed p7zip
```
#### Setup Installer (NSIS)
- If `makensis` is found, the script will automatically compile a self-extracting Windows installer (`-setup.exe`) using Nullsoft Scriptable Install System (NSIS).
- To enable this, you must install the NSIS package for your active shell environment:
- **UCRT64 shell**:
```bash
pacman -S --needed mingw-w64-ucrt-x86_64-nsis
```
- **MinGW64 shell**:
```bash
pacman -S --needed mingw-w64-x86_64-nsis
```

109
CMakeLists.txt Normal file
View File

@ -0,0 +1,109 @@
# CMakeLists.txt for the RetroShare super-project (root aggregate build)
#
# SPDX-License-Identifier: AGPL-3.0-or-later
cmake_minimum_required(VERSION 3.5.0)
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
project(retroshare-superproject)
# Default to Release build type if not specified
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build (Debug or Release)" FORCE)
endif()
# Force C++17 globally for all targets (including plugins)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(APPLE)
# On macOS, allow undefined symbols in shared modules/libraries at link time
# because they will be resolved at runtime by the host executable (retroshare-gui)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -undefined dynamic_lookup")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -undefined dynamic_lookup")
endif()
# Global setting to allow executables to export symbols for plugin/module linking
set(CMAKE_ENABLE_EXPORTS ON)
# Configuration Options
option(RS_GUI "Build RetroShare GUI" ON)
option(RS_SERVICE "Build RetroShare Service" ON)
option(RS_FRIENDSERVER "Build RetroShare Friendserver" ON)
option(RS_PLUGINS "Build RetroShare Plugins" OFF)
option(RS_USE_I2P_SAM3 "Enable I2P SAMv3 support" ON)
# The "sam3" target is defined once here, at the top level, because it is linked
# by more than one subproject: libretroshare AND retroshare-gui (which uses libsam3
# directly in gui/settings/ServerPage.cpp). Defining it once avoids a duplicate
# target definition when the whole tree is configured together. If libretroshare is
# reworked to export sam3 as a target, this top-level definition could be dropped.
if(RS_USE_I2P_SAM3)
add_definitions(-DRS_USE_I2P_SAM3 -DRS_USE_I2P_SAM3_LIBSAM3)
set(SAM3_DEVEL_DIR "${CMAKE_SOURCE_DIR}/supportlibs/libsam3")
if(EXISTS "${SAM3_DEVEL_DIR}")
message(STATUS "libsam3 found at ${SAM3_DEVEL_DIR}, defining target sam3 globally")
add_library(sam3 STATIC
"${SAM3_DEVEL_DIR}/src/libsam3/libsam3.c"
"${SAM3_DEVEL_DIR}/src/libsam3a/libsam3a.c"
)
target_include_directories(sam3 PUBLIC
"${SAM3_DEVEL_DIR}/src/libsam3"
"${SAM3_DEVEL_DIR}/src/libsam3a"
)
if(WIN32)
target_link_libraries(sam3 PUBLIC ws2_32)
endif()
endif()
endif()
# NOTE: Windows-specific workarounds that used to live here as global
# add_definitions()/add_compile_options() have been moved to the specific targets
# that need them (see the per-target block after the add_subdirectory() calls
# below), so they no longer leak into every target in the tree.
# 1. First add the core library (libretroshare)
add_subdirectory(libretroshare)
# 2. Then add the dependent executables
if(RS_GUI)
add_subdirectory(retroshare-gui)
if(RS_PLUGINS)
add_subdirectory(plugins)
endif()
endif()
if(RS_SERVICE)
add_subdirectory(retroshare-service)
endif()
if(RS_FRIENDSERVER)
add_subdirectory(retroshare-friendserver)
endif()
# ---------------------------------------------------------------------------
# Per-target Windows fixups (applied to the specific targets that need them,
# rather than globally, per review feedback). These run after the subdirectories
# so the targets already exist.
# ---------------------------------------------------------------------------
if(WIN32)
# libbitdht needs the wide-char Windows API (e.g. MoveFileExW). libretroshare
# already sets UNICODE/_UNICODE PUBLIC for itself and its consumers, but
# libbitdht is a dependency (not a consumer) so it needs its own definition.
if(TARGET bitdht)
target_compile_definitions(bitdht PRIVATE UNICODE _UNICODE)
endif()
# Legacy C submodules trip strict GCC >= 15 diagnostics that are now errors by
# default; downgrade them to warnings only for those targets. Add other legacy
# targets here if a future toolchain flags them.
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
foreach(legacy_target sam3 bitdht miniupnpc udp-discovery)
if(TARGET ${legacy_target})
target_compile_options(${legacy_target} PRIVATE
-Wno-error=incompatible-pointer-types
-Wno-error=int-conversion
-Wno-error=implicit-function-declaration )
endif()
endforeach()
endif()
endif()

View File

@ -1,56 +0,0 @@
// SPDX-FileCopyrightText: Retroshare Team <contact@retroshare.cc>
// SPDX-License-Identifier: CC-BY-SA-4.0
= RetroShare
RetroShare is a decentralized, private, secure, cross-platform, communication
toolkit.
RetroShare provides file sharing, chat, messages, forums, channels and more.
.Build Status
|===============================================================================
|GNU/Linux (via Gitlab CI) | image:https://gitlab.com/RetroShare/RetroShare/badges/master/pipeline.svg[link="https://gitlab.com/RetroShare/RetroShare/-/commits/master",title="pipeline status"]
|GNU/Linux, macOS, (via Travis CI) | image:https://travis-ci.org/RetroShare/RetroShare.svg?branch=master[link="https://travis-ci.org/RetroShare/RetroShare"]
|Windows (via AppVeyor) | image:https://ci.appveyor.com/api/projects/status/github/RetroShare/RetroShare?svg=true[link="https://ci.appveyor.com/project/RetroShare58622/retroshare"]
|===============================================================================
== Compilation
Short of comprehensive and updated documentation on how to build RetroShare
(for the many supported platforms it runs on), scripts and recipes are provided
in the aim of creating packages for the supported platforms (and more)
in the `build_scripts` directory of this repository.
Those packaging receipts together with the continuous integration files
`.travis.yml` and `appveyor.yml` are a good source of knowledge on how to
compile RetroShare on different platforms.
== Using RetroShare on a headless computer with web UI
WARNING: This section is outdated need to be adapted to the new web UI
The web UI needs to be enabled as a parameter option to the retroshare-service:
[source,bash]
--------
./retroshare-nogui --webinterface 9090 --docroot /usr/share/retroshare/webui/
--------
The web UI is only accessible on localhost:9090. It is advised to keep it that way so that your RS
cannot be controlled using an untrusted connection.
To access your web UI from a distance, just open a SSH tunnel to it:
[source,bash]
--------
distant_machine:~/ > ssh rs_host -L 9090:localhost:9090 -N
--------
"rs_host" is the machine running `retroshare-nogui`. Then on the distant machine, access your web UI on
http://localhost:9090
(This can also be done from the RetroShare GUI.)

55
README.md Normal file
View File

@ -0,0 +1,55 @@
## RetroShare
RetroShare is a decentralized, private, secure, cross-platform, communication
toolkit.
RetroShare provides file sharing, chat, messages, forums, channels, boards and more.
[![GitHub release](https://img.shields.io/github/release/retroshare/retroshare.svg?label=latest%20release)](https://github.com/retroshare/retroshare/releases/latest)
[![Downloads](https://img.shields.io/github/downloads/retroshare/retroshare/total)](https://github.com/retroshare/retroshare/releases/latest)
[![MINGW64 Qt5 Build](https://github.com/RetroShare/RetroShare/actions/workflows/ci-mingw64.yml/badge.svg)](https://github.com/RetroShare/RetroShare/actions/workflows/ci-mingw64.yml)
[![UCRT64 Qt5 Build](https://github.com/RetroShare/RetroShare/actions/workflows/ci-ucrt64.yml/badge.svg)](https://github.com/RetroShare/RetroShare/actions/workflows/ci-ucrt64.yml)
[![MINGW64 Qt6 Build](https://github.com/RetroShare/RetroShare/actions/workflows/ci-mingw64-Qt6.yml/badge.svg)](https://github.com/RetroShare/RetroShare/actions/workflows/ci-mingw64-Qt6.yml)
[![GNU/Linux (via Gitlab CI)](https://gitlab.com/RetroShare/RetroShare/badges/master/pipeline.svg)](https://gitlab.com/RetroShare/RetroShare/-/commits/master)
[![libretroshare GNU/Linux, Android (via Gitlab CI)](https://gitlab.com/RetroShare/libretroshare/badges/master/pipeline.svg)](https://gitlab.com/RetroShare/libretroshare/-/commits/master)
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/RetroShare/RetroShare)
## Get the source
Clone this repository, enter the directory and then get the submodules with the
following command
git submodule update --init --remote --force libbitdht/ libretroshare/ openpgpsdk/
## Compilation
Short of comprehensive and updated documentation on how to build RetroShare
(for the many supported platforms it runs on), scripts and recipes are provided
in the aim of creating packages for the supported platforms (and more)
in the [build_scripts](https://github.com/RetroShare/RetroShare/tree/master/build_scripts) directory of this repository.
## Compilation on Windows
Follow this file : [WindowsMSys2_InstallGuide](https://github.com/RetroShare/RetroShare/blob/master/build_scripts/Windows-msys2/WindowsMSys2_InstallGuide.md)
With QtCreator : [Windows-QtCreator-InstallGuide](https://github.com/RetroShare/RetroShare/blob/master/build_scripts/Windows/Windows-QtCreator-InstallGuide.md)
## Compilation on MacOSX
Follow this file : [MacOS_X_InstallGuide](https://github.com/RetroShare/RetroShare/blob/master/build_scripts/OSX/MacOS_X_InstallGuide.md)
## Compilation on Linux
Follow this file : [Linux_InstallGuide](https://github.com/RetroShare/RetroShare/blob/master/build_scripts/Debian+Ubuntu/Linux_InstallGuide.md)
## Releases
Latest release [here](https://github.com/RetroShare/RetroShare/releases)
Other Builds [RetroShare Downloads](https://retroshare.cc/downloads.html)
## Documentation
- [RetroShare Docs](https://retrosharedocs.readthedocs.io/en/latest/)

View File

@ -25,9 +25,6 @@ CONFIG += c++14
TEMPLATE = subdirs
SUBDIRS += openpgpsdk
openpgpsdk.file = openpgpsdk/src/openpgpsdk.pro
rs_jsonapi:isEmpty(JSONAPI_GENERATOR_EXE) {
SUBDIRS += jsonapi-generator
jsonapi-generator.file = jsonapi-generator/src/jsonapi-generator.pro
@ -36,7 +33,7 @@ rs_jsonapi:isEmpty(JSONAPI_GENERATOR_EXE) {
SUBDIRS += libbitdht
libbitdht.file = libbitdht/src/libbitdht.pro
libretroshare.depends += openpgpsdk libbitdht
libretroshare.depends += libbitdht
SUBDIRS += libretroshare
libretroshare.file = libretroshare/src/libretroshare.pro
@ -55,6 +52,12 @@ retroshare_service {
retroshare_service.target = retroshare_service
}
retroshare_friendserver {
SUBDIRS += retroshare_friendserver
retroshare_friendserver.file = retroshare-friendserver/src/retroshare-friendserver.pro
retroshare_friendserver.depends = libretroshare
retroshare_friendserver.target = retroshare_friendserver
}
retroshare_plugins {
SUBDIRS += plugins
plugins.file = plugins/plugins.pro
@ -62,6 +65,13 @@ retroshare_plugins {
plugins.target = plugins
}
rs_webui {
SUBDIRS += retroshare-webui
retroshare-webui.file = retroshare-webui/webui.pro
retroshare-webui.target = rs_webui
retroshare-webui.depends = retroshare_gui
}
wikipoos {
SUBDIRS += pegmarkdown
pegmarkdown.file = supportlibs/pegmarkdown/pegmarkdown.pro

View File

@ -1,311 +0,0 @@
# SPDX-FileCopyrightText: (C) 2004-2019 Retroshare Team <contact@retroshare.cc>
# SPDX-License-Identifier: CC0-1.0
# Notes:
# - Minimal appveyor.yml file is an empty file. All sections are optional.
# - Indent each level of configuration with 2 spaces. Do not use tabs!
# - All section names are case-sensitive.
# - Section names should be unique on each level.
# from example:
# https://github.com/Phonations/Joker/blob/master/appveyor.yml
# https://github.com/unicorn-engine/autobuild/blob/master/.appveyor.yml
#---------------------------------#
# general configuration #
#---------------------------------#
# version format
version: RetroShare-git-{branch}-{build}
# you can use {branch} name in version format too
# version: 1.0.{build}-{branch}
# branches to build
branches:
# whitelist
#only:
# - master
# blacklist
except:
- /^skipthisbranch$/
# Do not build on tags (GitHub only)
skip_tags: true
# Skipping commits with particular message or from user
skip_commits:
message: /Created.*\.(png|jpg|jpeg|bmp|gif)/ # Regex for matching commit message
#author: Anonymous # Commit author's username, name, email or regexp maching one of these.
#---------------------------------#
# environment configuration #
#---------------------------------#
# Operating system (build VM template)
#os: Windows Server 2012
# scripts that are called at very beginning, before repo cloning
init:
- git config --global core.autocrlf input
#To get RDP while compiling
- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
on_finish:
#To get RDP running after compiling
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
# clone directory
clone_folder: C:\projects\RetroShare
# fetch repository as zip archive
#shallow_clone: true # default is "false"
# set clone depth
clone_depth: 2000 # clone entire repository history if not defined
environment:
global:
## Qt: https://www.appveyor.com/docs/installed-software#qt
# QTDIR: C:\Qt\5.10.1\mingw53_32
MSYS2_ARCH: i686
TARGET: i686_32-pc-msys
MINGW_PREFIX: C:\msys64\mingw32
RS_DEPLOY: RetroShare_deploy
# build cache to preserve files/folders between builds
#cache:
# Disabled because it's bigger then supported by appveyor free plan
# - C:\msys64\var\cache\pacman\pkg
# scripts that run after cloning repository
#install:
# # by default, all script lines are interpreted as batch
# - echo This is batch
# # to run script as a PowerShell command prepend it with ps:
# - ps: Write-Host 'This is PowerShell'
# # batch commands start from cmd:
# - cmd: echo This is batch again
# - cmd: set MY_VAR=12345
install:
# We cannot get OBS submodule as it use illegal folder name for windows.
#- git submodule update --init
# Configuring MSys2
- set PATH=C:\msys64\usr\bin;%PATH%
- set PATH=C:\msys64\mingw32\bin;%PATH%
- >
pacman --noconfirm -S
mingw-w64-i686-qt5 mingw-w64-i686-miniupnpc mingw-w64-i686-rapidjson
mingw-w64-i686-sqlcipher mingw-w64-i686-xapian-core mingw-w64-i686-cmark
#- set PATH=C:\msys64\mingw32\qt5-static\bin\;%PATH%
# Configuring Qt
# - set PATH=%QTDIR%\bin;C:\Qt\Tools\mingw491_32\bin;%PATH%
# Hack for new MSys2
- copy C:\msys64\mingw32\i686-w64-mingw32\bin\ar.exe C:\msys64\mingw32\bin\i686-w64-mingw32-ar.exe
- copy C:\msys64\mingw32\i686-w64-mingw32\bin\ranlib.exe C:\msys64\mingw32\bin\i686-w64-mingw32-ranlib.exe
- copy C:\msys64\mingw32\bin\windres.exe C:\msys64\mingw32\bin\i686-w64-mingw32-windres.exe
- copy C:\msys64\mingw64\x86_64-w64-mingw32\bin\ar.exe C:\msys64\mingw64\bin\x86_64-w64-mingw32-ar.exe
- copy C:\msys64\mingw64\x86_64-w64-mingw32\bin\ranlib.exe C:\msys64\mingw64\bin\x86_64-w64-mingw32-ranlib.exe
- copy C:\msys64\mingw64\bin\windres.exe C:\msys64\mingw64\bin\x86_64-w64-mingw32-windres.exe
# Work-around linker looking for Qt dll in wrong place
- copy C:\msys64\mingw32\bin\Qt5PrintSupport.dll C:\msys64\mingw32\lib\Qt5PrintSupport.dll
- copy C:\msys64\mingw32\bin\Qt5Widgets.dll C:\msys64\mingw32\lib\Qt5Widgets.dll
- copy C:\msys64\mingw32\bin\Qt5Multimedia.dll C:\msys64\mingw32\lib\Qt5Multimedia.dll
- copy C:\msys64\mingw32\bin\Qt5Gui.dll C:\msys64\mingw32\lib\Qt5Gui.dll
- copy C:\msys64\mingw32\bin\Qt5Network.dll C:\msys64\mingw32\lib\Qt5Network.dll
- copy C:\msys64\mingw32\bin\Qt5Xml.dll C:\msys64\mingw32\lib\Qt5Xml.dll
- copy C:\msys64\mingw32\bin\Qt5Core.dll C:\msys64\mingw32\lib\Qt5Core.dll
#---------------------------------#
# build configuration #
#---------------------------------#
# build platform, i.e. x86, x64, Any CPU. This setting is optional.
platform: x86
# to add several platforms to build matrix:
#platform:
# - x86
# - Any CPU
# build Configuration, i.e. Debug, Release, etc.
configuration: Release
# to add several configurations to build matrix:
#configuration:
# - Debug
# - Release
# scripts to run before build
before_build:
- cd C:\projects\RetroShare
- git submodule update --init
- cd C:\projects\
- mkdir RetroShare-build
- cd RetroShare-build
# - find C:\ > filelist.txt
# scripts to run *after* solution is built and *before* automatic packaging occurs (web apps, NuGet packages, Azure Cloud Services)
before_package:
# to run your custom scripts instead of automatic MSBuild
build_script:
- env
- qmake ../RetroShare -spec win32-g++ "CONFIG+=debug"
- mingw32-make -j3
# scripts to run after build
after_build:
- find .
- mkdir %RS_DEPLOY%
- copy retroshare-gui\src\debug\retroshare.exe %RS_DEPLOY%\
- copy retroshare-service\src\debug\retroshare-service.exe %RS_DEPLOY%\
# - copy retroshare-service\src\retroshare-service.exe %RS_DEPLOY%\
# - copy retroshare-gui\src\retroshare.exe %RS_DEPLOY%\
## In Debug build winedeplyqt forget the non debug Qt libs
- copy C:\msys64\mingw32\bin\Qt5Svg.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\Qt5Core.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\Qt5Multimedia.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\Qt5Widgets.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\Qt5Xml.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\Qt5PrintSupport.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\Qt5Gui.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\Qt5Network.dll %RS_DEPLOY%\
- mkdir %RS_DEPLOY%\playlistformats\
- copy C:\msys64\mingw32\share\qt5\plugins\playlistformats\qtmultimedia_m3u.dll %RS_DEPLOY%\playlistformats
- mkdir %RS_DEPLOY%\printsupport\
- copy C:\msys64\mingw32\share\qt5\plugins\printsupport\windowsprintersupport.dll %RS_DEPLOY%\printsupport\
- mkdir %RS_DEPLOY%\iconengines\
- copy C:\msys64\mingw32\share\qt5\plugins\iconengines\qsvgicon.dll %RS_DEPLOY%\iconengines\
- mkdir %RS_DEPLOY%\bearer\
- copy C:\msys64\mingw32\share\qt5\plugins\bearer\qgenericbearer.dll %RS_DEPLOY%\bearer\
- mkdir %RS_DEPLOY%\mediaservice\
- copy C:\msys64\mingw32\share\qt5\plugins\mediaservice\qtmedia_audioengine.dll %RS_DEPLOY%\mediaservice\
- copy C:\msys64\mingw32\share\qt5\plugins\mediaservice\dsengine.dll %RS_DEPLOY%\mediaservice\
- mkdir %RS_DEPLOY%\styles\
- copy C:\msys64\mingw32\share\qt5\plugins\styles\qwindowsvistastyle.dll %RS_DEPLOY%\styles\
- mkdir %RS_DEPLOY%\imageformats\
- copy C:\msys64\mingw32\share\qt5\plugins\imageformats\qwebp.dll %RS_DEPLOY%\imageformats\
- copy C:\msys64\mingw32\share\qt5\plugins\imageformats\qicns.dll %RS_DEPLOY%\imageformats\
- copy C:\msys64\mingw32\share\qt5\plugins\imageformats\qjpeg.dll %RS_DEPLOY%\imageformats\
- copy C:\msys64\mingw32\share\qt5\plugins\imageformats\qtiff.dll %RS_DEPLOY%\imageformats\
- copy C:\msys64\mingw32\share\qt5\plugins\imageformats\qtga.dll %RS_DEPLOY%\imageformats\
- copy C:\msys64\mingw32\share\qt5\plugins\imageformats\qjp2.dll %RS_DEPLOY%\imageformats\
- copy C:\msys64\mingw32\share\qt5\plugins\imageformats\qico.dll %RS_DEPLOY%\imageformats\
- copy C:\msys64\mingw32\share\qt5\plugins\imageformats\qwbmp.dll %RS_DEPLOY%\imageformats\
- copy C:\msys64\mingw32\share\qt5\plugins\imageformats\qicns.dll %RS_DEPLOY%\imageformats\
- copy C:\msys64\mingw32\share\qt5\plugins\imageformats\qgif.dll %RS_DEPLOY%\imageformats\
- copy C:\msys64\mingw32\share\qt5\plugins\imageformats\qsvg.dll %RS_DEPLOY%\imageformats\
- mkdir %RS_DEPLOY%\platforms\
- copy C:\msys64\mingw32\share\qt5\plugins\platforms\qwindows.dll %RS_DEPLOY%\platforms\
- mkdir %RS_DEPLOY%\audio\
- copy C:\msys64\mingw32\share\qt5\plugins\audio\qtaudio_windows.dll %RS_DEPLOY%\audio\
- windeployqt %RS_DEPLOY%\retroshare.exe
- copy C:\msys64\mingw32\bin\libbz2*.dll %RS_DEPLOY%\
#- copy C:\msys64\mingw32\bin\libeay32.dll %RS_DEPLOY%\
- copy C:\OpenSSL-Win32\libeay32.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libminiupnpc.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libsqlcipher*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libsqlite3*.dll %RS_DEPLOY%\
#- copy C:\msys64\mingw32\bin\ssleay32.dll %RS_DEPLOY%\
- copy C:\OpenSSL-Win32\ssleay32.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\zlib*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libgcc_s_dw2*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libstdc*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libwinpthread*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libicu*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libpcre*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libharfbuzz*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libpng*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libfreetype*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libglib*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libgraphite2.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libintl*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libiconv*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libjasper*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libjpeg*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libtiff*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libwebp*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libwebpdemux*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\liblzma*.dll %RS_DEPLOY%\
## Needed for cmark
- copy C:\msys64\mingw32\bin\libcmark*.dll %RS_DEPLOY%\
- copy C:\msys64\mingw32\bin\libdouble-conversion*.dll %RS_DEPLOY%\
# to disable automatic builds
#build: off
#---------------------------------#
# artifacts configuration #
#---------------------------------#
#artifacts:
# - path: '**\*.exe'
# - path: filelist.txt
# - path: $(RS_DEPLOY)
#
# # pushing a single file
# - path: test.zip
#
# # pushing a single file with environment variable in path and "Deployment name" specified
# - path: MyProject\bin\$(configuration)
# name: myapp
#
# # pushing entire folder as a zip archive
# - path: logs
#---------------------------------#
# deployment configuration #
#---------------------------------#
#No deployment under unknown computer!!!
#---------------------------------#
# global handlers #
#---------------------------------#
# on successful build
#on_success:
# - do something
# on build failure
#on_failure:
# - do something
# after build failure or success
#on_finish:
# - do something
#---------------------------------#
# notifications #
#---------------------------------#
notifications:
# Email
- provider: Email
to:
- retrosharephenom@gmail.com
subject: 'Build {{status}}' # optional
message: "{{message}}, {{commitId}}, ..." # optional
on_build_status_changed: true

View File

@ -1,399 +0,0 @@
= RetroShare development on Android
// SPDX-FileCopyrightText: RetroShare Team <contact@retroshare.cc>
// SPDX-License-Identifier: CC-BY-SA-4.0
Compiling an application for Android is not as easy as one would imagine,
expecially one like RetroShare that has a big codebase and is not well
documented. This document is aimed to empower the reader so she can hopefully
succed or at least have a significant help in compiling her own RetroShare APK
installable on Android.
== Preparing The Environement
First of all setup your Qt for Android development environement following the
guide on the link:http://doc.qt.io/qt-5/androidgs.html[Qt for android web site].
At this point you should have Android SDK, Android NDK, and Qt for Android
working fine, and you should be capable of executing on an Android emulator or
on your Android phone Qt for Android examples.
But RetroShare is not as simple to compile as those examples. The good news is
that Android NDK ships all the necessary to build a custom toolchain that is
suitable to build RetroShare.
In order to build the toolchain with needed libraries RetroShare provides the
+android-prepare-toolchain.sh+ script; before you execute it you should define
some variables the script cannot determine in an easy and reliable manner by
itself in your terminal.
[source,bash]
-------------------------------------------------------------------------------
## The path where Android NDK is installed in your system
export ANDROID_NDK_PATH="/opt/android-ndk/"
## The path where your fresh compiled toolchain will be installed, make sure
## the parent exists
export NATIVE_LIBS_TOOLCHAIN_PATH="${HOME}/Builds/android-toolchains/retroshare-android/"
## The CPU architecture of the Android device you want to target
export ANDROID_NDK_ARCH="arm"
## The Android API level the Android device you want to target
export ANDROID_PLATFORM_VER="16"
## The number of core that yout host CPU have (just to speed up compilation) set
## it to 1 if unsure
export HOST_NUM_CPU=1
./android-prepare-toolchain.sh
-------------------------------------------------------------------------------
== Preparing Qt Creator
Now that your environement is set up you should configure Qt Creator for Android
following the
link:http://doc.qt.io/qtcreator/creator-developing-android.html[official guide].
At the end of this step your Qt Creator should recognize the Android compiler
and the Qt for Android kit.
Your Kit is now ready to use. Now you can open RetroShare as a Qt Creator
project and in the Projects left menu add the newly created kit if not already
present, so you can select it on the build type selection button down on the
left.
Now you need to set properly a few options like `JSONAPI_GENERATOR_EXE` and
disable some of RetroShare modules like `retroshare-gui` that are not available
on Android so you will have to go to
_Qt Creator left pane -> Projects -> Build and Run -> Android SOMESTUFF kit ->
Build Steps -> qmake -> Additional arguments_ +
and add the following configurations (change `Your_Path` according to your
deployment)
[source,makefile]
-------------------------------------------------------------------------------
CONFIG+=retroshare_service CONFIG+=rs_jsonapi CONFIG+=rs_deep_search
RS_UPNP_LIB=miniupnpc
JSONAPI_GENERATOR_EXE=Your_Path/jsonapi-generator/src/jsonapi-generator
NATIVE_LIBS_TOOLCHAIN_PATH=Your_Path/retroshare-android-16-arm/
CONFIG+=no_retroshare_gui CONFIG+=no_rs_service_webui_terminal_password
CONFIG+=no_rs_service_terminal_login
-------------------------------------------------------------------------------
TIP: Some versions of QtCreator try to find the Android SDK in
`/opt/android/sdk`. A workaround to this is to make a symbolic link there
pointing to your SDK installation path, like
+mkdir -p /opt/android/sdk && ln -s /home/user/android-sdk-linux
/opt/android/sdk+
== Quircks
=== Protected Apps
On some Android devices like +Huawei ALE-L21+ background applications are
killed when screen is turned off unless they are in the _protected app_ list.
At moment seems apps developers don't have a way to have the application
_protected_ by default, unless the phone vendor decide the app is _popular_ so
the user have to enable _protection_ for RetroShare manually on those mobile
phones. +
{empty} +
To enable enable _protection_: +Android menu -> Settings -> Privacy & security
-> Protected apps -> RetroShare+ +
{empty} +
Other devices may offer similar _features_ please report them.
=== APK signature mismatch
If you try to install a RetroShare APK that comes from a different source
(eg: if you try to upgrade from F-Droid when you originally installed an APK
build by yourself) Android will prevent that from happening. In that case the
only solution is to uninstall the app and then install the new APK but if you do
it also the application data and your precious cryptographic keys, friend list
etc. will be lost forever.
To avoid that you can attempt to manually backup and then restore from the
command-line (`adb backup` seems not working either) to change the app source
without erasing the appliation data.
CAUTION: Following steps require root access on your Android device
.Backup RetroShare Android application data
[source,bash]
--------------------------------------------------------------------------------
export ORIG_DIR="/data/data/org.retroshare.android.qml_app"
export BACKUP_DIR="org.retroshare.android.qml_app.backup"
adb root
adb shell am force-stop org.retroshare.android.qml_app
sleep 1s
mkdir ${BACKUP_DIR}
# Avoid adb pull failing
adb shell rm ${ORIG_DIR}/files/.retroshare/libresapi.sock
adb pull ${ORIG_DIR}/files/ ${BACKUP_DIR}/files/
--------------------------------------------------------------------------------
After this you should be able to uninstall the old APK with your preferred
method, as example from the command-line.
.Uninstall RetroShare Android from the command-line
[source,bash]
--------------------------------------------------------------------------------
adb uninstall org.retroshare.android.qml_app
--------------------------------------------------------------------------------
Now you can install a different signature APK and then restore the application
data with the following commands.
[source,bash]
--------------------------------------------------------------------------------
export ORIG_DIR="/data/data/org.retroshare.android.qml_app"
export BACKUP_DIR="org.retroshare.android.qml_app.backup"
adb root
## Launch the app to make sure the parent directory exists and has proper owner
adb shell monkey -p org.retroshare.android.qml_app -c android.intent.category.LAUNCHER 1
sleep 1s
adb shell am force-stop org.retroshare.android.qml_app
sleep 1s
APP_OWNER="$(adb shell busybox ls -lnd ${ORIG_DIR} | awk '{print $3":"$4}')"
adb shell rm -rf ${ORIG_DIR}/files
adb push ${BACKUP_DIR}/files/ ${ORIG_DIR}/files/
adb shell busybox chown -R ${APP_OWNER} ${ORIG_DIR}/files/
--------------------------------------------------------------------------------
Opening RetroShare android app now should show your old profile.
== Debugging with GDB
If building RetroShare Android package seems tricky, setting up a functional
debugging environement for it feels like black magic. This section is meant to
help you doing it with less headache and hopefully in a reproducible way.
Unfortunately at the time of the last update to this guide, Qt build system
strips debugging symbols from the package and from the buildroot also if you
compile with debugging enabled. Fiddling with `qmake` configurations and
variables like `CONFIG+=debug`, `CONFIG+=force_debug_info` or `QMAKE_STRIP`
either as commandline arguments or inside retroshare `.pro` and `.pri` files is
uneffective. IMHO Qt should handle this on itself so it is probably worth
reporting a bug to them. So to workaround this problem you need to fiddle a bit
with the Android NDK. In my case I always keep +Debug+ or +Release+ suffix in
my build directory name depending on what kind of build it is, so I use this
information and modify `llvm-strip` in a way that it will strip only if stripped
file path doesn't contain +Debug+.
.Modify llvm-strip inside Android NDK
--------------------------------------------------------------------------------
## Set ANDROID_NDK_PATH to your Android NDK installation path
export ANDROID_NDK_PATH="/opt/android-ndk/"
## Define a convenience variable with llvm-strip path
export ANDROID_NDK_LLVM_STRIP="${ANDROID_NDK_PATH}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip"
## If not existing yer create a backup of the original llvm-strip
[ -f "${ANDROID_NDK_LLVM_STRIP}.back" ] ||
cp "${ANDROID_NDK_LLVM_STRIP}" "${ANDROID_NDK_LLVM_STRIP}.back"
## Create a new llvm-strip that does nothing if the argument path contains Debug
cat > "${ANDROID_NDK_LLVM_STRIP}" << LLVMSTRIPTRICK
#!/bin/bash
echo "\${2}" | grep -q Debug ||
"${ANDROID_NDK_LLVM_STRIP}.back" --strip-all "\${2}"
LLVMSTRIPTRICK
## Eventually you can revert back simply by running
# `mv "${ANDROID_NDK_LLVM_STRIP}.back" "${ANDROID_NDK_LLVM_STRIP}"`
--------------------------------------------------------------------------------
To attach to the `retroshare-service` running on Android you need also to pull a
debugging sysroot out of your device first, RetroShare sources provides an
helper script to do that.
.Prepare debugging sysroot with helper script
[source,bash]
--------------------------------------------------------------------------------
## Set RetroShare source path
export RS_SOURCE_DIR="${HOME}/Development/rs-develop"
## Optionally set your device ID first available will be used, you can run
## `adb devices` to list available devices.
#export ANDROID_SERIAL="YT013PSPGK"
## Optionally set a path where to save the debugging sysroot otherwise default
## is used.
#export DEBUG_SYSROOT="${HOME}/Builds/debug_sysroot/${ANDROID_SERIAL}/"
## Run the helper script
${RS_SOURCE_DIR}/build_scripts/Android/pull_sysroot.sh
--------------------------------------------------------------------------------
.Prepare Android NDK GDB configurations
[source,bash]
--------------------------------------------------------------------------------
## Optionally set Qt version variable consistently with your installation
export QT_VERSION="5.12.7"
## Optionally set Qt architecture variable consistently with Android device
export QT_ARCH="arm64_v8a"
## Optionally set Qt path variable consistently with your installation
export QT_DIR="/opt/Qt-${QT_VERSION}/${QT_VERSION}/"
## Optionally set RetroShare buildroot path
export RS_BUILD_DIR="${HOME}/Builds/RetroShare-Android_for_${QT_ARCH}_Clang_Qt_${QT_VERSION//./_}_android_${QT_ARCH}-Debug/"
## Optionally set gdb config file path
export GDB_CONFIGS_FILE="${HOME}/Builds/gdb_configs_${QT_ARCH}"
## Generate Android NDK GDB configuration
${RS_SOURCE_DIR}/build_scripts/Android/generate_gdb_init_commands.sh
--------------------------------------------------------------------------------
You will need to run the following steps everytime you want to debug
`retroshare-service` on Android.
Make sure `retroshare-service` is running on your connected Android device.
.Run GDB server on your Android device from your host console
[source,bash]
--------------------------------------------------------------------------------
${RS_SOURCE_DIR}/build_scripts/Android/start_gdbserver.sh
--------------------------------------------------------------------------------
.Run Android NDK GDB on your workstation and attach
[source,bash]
--------------------------------------------------------------------------------
## Start NDK gdb
${ANDROID_NDK_PATH}/prebuilt/linux-x86_64/bin/gdb
## Instruct GDB how and where to find debugging symbols
(gdb) source $GDB_CONFIGS_FILE
## Connect to the gdbserver running on the phone
(gdb) target remote 127.0.01:5039
## Have fun debugging
(gdb)
--------------------------------------------------------------------------------
== Debugging with Qt Creator
WARNING: As of the last update to this guide, debugging retroshare-service
running on Android via Qt creator doesn't wrok even with all the trickery
explained in this section, you better learn how to debug with GDB reading
carefully previous section.
Qt Creator actually support debugging only for the foreground activity, so to
debug what's happening in the core extra trickery is needed.
- Run the App in Debug mode from QtCreator "Start Debugging" button
- Enable QtCreator debugger console view Menu->Window->Debugger Log
- Run +show solib-search-path+ in the QtCreator GDB console
- Take note of the output you get in the right pane of the console
- Thanks https://stackoverflow.com/a/31164313 for the idea
TIP: QtCreator GDB console seems a bit buggy and easly trigger timeout
message when a command is run, in that case attempt to run the command while the
debugging is paused or at breakpoint, or with other similar tricks.
CAUTION: Following steps require root access on your Android device
Now on your phone yuo need to authorize root access to applications, then once
you plug your sacrifical Android phone run this commands
.Run gdbserver as root on Android phone
[source,bash]
--------------------------------------------------------------------------------
## Open a shell from your workstation on the connected Android phone
adb shell
## take the note of the phone IP address
ip address show
## Gain root permissions on the shell
su
## Attach with gdbserver and listen on one TCP port
gdbserver :4567 --attach $(pgrep org.retroshare.android.qml_app:rs)
--------------------------------------------------------------------------------
.Prepare and run Android NDK GDB on your workstation
[source,bash]
--------------------------------------------------------------------------------
## Setup some convenience variables
NDK_GDB="${ANDROID_NDK_PATH}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gdb"
RS_BUILD_PATH="${HOME}/Builds/RetroShare-Android_for_armeabi_v7a_GCC_4_9_Qt_5_9_2_android_armv7-Debug/"
## Start Android NDK GDB of your phone architecture passing the executable
$NDK_GDB $RS_BUILD_PATH/retroshare-android-service/src/libretroshare-android-service.so
## Instruct GDB how and where to find debugging symbols
(gdb) set auto-solib-add on
(gdb) set solib-search-path THE:BIG:LIST:OF:DIRECTORIES:YOU:TAKE:NOTE:BEFORE
## Connect to the gdbserver running on the phone
(gdb) target remote $PHONE_IP:4567
## Have fun debugging
(gdb)
--------------------------------------------------------------------------------
TIP: Some time WiFi power saving on Android mess with the GDB connection,
to prevent that from appening open another +adb shell+ and live +ping+ toward
your work-station running
== Embedding into other Android packages
As showed by https://elrepo.io/[elRepo.io] developers it is possible and quite
easy to embed `retroshare-service` into other Android packages see description
https://gitlab.com/elRepo.io/elRepo.io-android/-/blob/master/README.adoc
And implementation details
https://gitlab.com/elRepo.io/elRepo.io-android/-/blob/master/android/app/build.gradle
== Furter Readings
- link:http://doc.qt.io/qt-5/android-support.html[]
- link:https://developer.android.com/ndk/guides/libs.html[]
- link:retroshare://forum?name=Compiling%20nogui%20for%20android&id=8fd22bd8f99754461e7ba1ca8a727995&msgid=4e0f92330600bba9cf978f384f4b7b2f2ca64eff[]
- link:retroshare://file?name=Android%20Native%20Development%20Kit%20Cookbook.pdf&size=29214468&hash=0123361c1b14366ce36118e82b90faf7c7b1b136[]
- link:https://groups.google.com/forum/#!topic/android-developers/srATPaL0aRU[]
- link:https://stackoverflow.com/questions/31638986/protected-apps-setting-on-huawei-phones-and-how-to-handle-it[]
- link:https://tthtlc.wordpress.com/2012/09/19/how-to-do-remote-debugging-via-gdbserver-running-inside-the-android-phone/[]
- link:https://source.android.com/devices/tech/debug/[]
- link:https://source.android.com/devices/tech/debug/gdb[]
- link:https://fw4spl-org.github.io/fw4spl-blog/2015/07/27/Native-debugging-on-Android-with-QtCreator.html[]
- link:https://fragglet.livejournal.com/19646.html[]
- link:https://github.com/android-ndk/ndk/issues/773[How to build without using standalone toolchain?]
== License
Copyright (C) 2016-2020 Gioacchino Mazzurco <gio@eigenlab.org> +
Copyright (C) 2020 Asociación Civil Altermundi <info@altermundi.net> +
This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.
image::https://i.creativecommons.org/l/by-sa/4.0/88x31.png[Creative Commons License, link=http://creativecommons.org/licenses/by-sa/4.0/]

View File

@ -1,85 +0,0 @@
#!/bin/bash
# Script to prepare Android NDK GDB configurations to debug retroshare-service
#
# Copyright (C) 2020 Gioacchino Mazzurco <gio@eigenlab.org>
# Copyright (C) 2020 Asociación Civil Altermundi <info@altermundi.net>
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the
# Free Software Foundation, version 3.
#
# 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 GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <https://www.gnu.org/licenses/>
## Define default value for variable, take two arguments, $1 variable name,
## $2 default variable value, if the variable is not already define define it
## with default value.
function define_default_value()
{
VAR_NAME="${1}"
DEFAULT_VALUE="${2}"
[ -z "${!VAR_NAME}" ] && export ${VAR_NAME}="${DEFAULT_VALUE}"
}
define_default_value QT_VERSION "5.12.4"
define_default_value QT_ARCH "arm64_v8a"
define_default_value QT_DIR "/opt/Qt-${QT_VERSION}/${QT_VERSION}/"
define_default_value ANDROID_SERIAL "$(adb devices | head -n 2 | tail -n 1 | awk '{print $1}')"
define_default_value RS_BUILD_DIR "${HOME}/Builds/RetroShare-Android_for_${QT_ARCH}_Clang_Qt_${QT_VERSION//./_}_android_${QT_ARCH}-Debug/"
define_default_value RS_SOURCE_DIR "${HOME}/Development/rs-develop/"
define_default_value DEBUG_SYSROOT "${HOME}/Builds/debug_sysroot/${ANDROID_SERIAL}/"
define_default_value GDB_CONFIGS_FILE "${HOME}/Builds/gdb_configs_${QT_ARCH}"
scanDir()
{
find "$1" -type d -not -path '*/\.git/*' | tr '\n' ':' >> $GDB_CONFIGS_FILE
}
putSeparator()
{
echo >> $GDB_CONFIGS_FILE
echo >> $GDB_CONFIGS_FILE
}
echo "set sysroot ${DEBUG_SYSROOT}" > $GDB_CONFIGS_FILE
putSeparator
echo "set auto-solib-add on" >> $GDB_CONFIGS_FILE
echo -n "set solib-search-path " >> $GDB_CONFIGS_FILE
scanDir "${RS_BUILD_DIR}"
scanDir "${DEBUG_SYSROOT}"
scanDir "${QT_DIR}/android_${QT_ARCH}/lib/"
scanDir "${QT_DIR}/android_${QT_ARCH}/plugins/"
scanDir "${QT_DIR}/android_${QT_ARCH}/qml/"
putSeparator
echo -n "directory " >> $GDB_CONFIGS_FILE
scanDir ${RS_SOURCE_DIR}/jsonapi-generator/src
scanDir ${RS_SOURCE_DIR}/libbitdht/src
scanDir ${RS_SOURCE_DIR}/openpgpsdk/src
scanDir ${RS_SOURCE_DIR}/libretroshare/src
scanDir ${RS_SOURCE_DIR}/retroshare-service/src
scanDir ${RS_SOURCE_DIR}/supportlibs/rapidjson/include/
scanDir ${RS_SOURCE_DIR}/supportlibs/restbed/source/
scanDir ${RS_SOURCE_DIR}/supportlibs/udp-discovery-cpp/
scanDir ${RS_SOURCE_DIR}/supportlibs/restbed/dependency/asio/asio/include/
scanDir ${RS_SOURCE_DIR}/supportlibs/restbed/dependency/catch/include/
putSeparator
## see https://stackoverflow.com/questions/28972367/gdb-backtrace-without-stopping
echo "catch signal SIGSEGV" >> $GDB_CONFIGS_FILE
echo "commands
bt
continue
end" >> $GDB_CONFIGS_FILE
putSeparator
echo GDB_CONFIGS_FILE=$GDB_CONFIGS_FILE

View File

@ -1,549 +0,0 @@
#!/bin/bash
# Script to prepare RetroShare Android package building toolchain
#
# Copyright (C) 2016-2020 Gioacchino Mazzurco <gio@eigenlab.org>
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the
# Free Software Foundation, version 3.
#
# 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 GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <https://www.gnu.org/licenses/>
#
# SPDX-FileCopyrightText: Retroshare Team <contact@retroshare.cc>
# SPDX-License-Identifier: AGPL-3.0-only
## Define default value for variable, take two arguments, $1 variable name,
## $2 default variable value, if the variable is not already define define it
## with default value.
function define_default_value()
{
VAR_NAME="${1}"
DEFAULT_VALUE="${2}"
[ -z "${!VAR_NAME}" ] && export ${VAR_NAME}="${DEFAULT_VALUE}"
}
## You are supposed to provide the following variables according to your system setup
define_default_value ANDROID_NDK_PATH "/opt/android-ndk/"
define_default_value ANDROID_NDK_ARCH "arm"
define_default_value ANDROID_PLATFORM_VER "16"
define_default_value NATIVE_LIBS_TOOLCHAIN_PATH "${HOME}/Builds/android-toolchains/retroshare-android-${ANDROID_PLATFORM_VER}-${ANDROID_NDK_ARCH}/"
define_default_value HOST_NUM_CPU $(nproc)
define_default_value BZIP2_SOURCE_VERSION "1.0.6"
define_default_value BZIP2_SOURCE_SHA256 a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd
define_default_value OPENSSL_SOURCE_VERSION "1.1.1c"
define_default_value OPENSSL_SOURCE_SHA256 f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90
define_default_value SQLITE_SOURCE_YEAR "2018"
define_default_value SQLITE_SOURCE_VERSION "3250200"
define_default_value SQLITE_SOURCE_SHA256 da9a1484423d524d3ac793af518cdf870c8255d209e369bd6a193e9f9d0e3181
define_default_value SQLCIPHER_SOURCE_VERSION "4.2.0"
define_default_value SQLCIPHER_SOURCE_SHA256 105c1b813f848da038c03647a8bfc9d42fb46865e6aaf4edfd46ff3b18cdccfc
define_default_value LIBUPNP_SOURCE_VERSION "1.8.4"
define_default_value LIBUPNP_SOURCE_SHA256 976c3e4555604cdd8391ed2f359c08c9dead3b6bf131c24ce78e64d6669af2ed
define_default_value INSTALL_QT_ANDROID "false"
define_default_value QT_VERSION "5.12.0"
define_default_value QT_ANDROID_INSTALLER_SHA256 a214084e2295c9a9f8727e8a0131c37255bf724bfc69e80f7012ba3abeb1f763
define_default_value RESTBED_SOURCE_VERSION f74f9329dac82e662c1d570b7cd72c192b729eb4
define_default_value UDP_DISCOVERY_CPP_SOURCE "https://github.com/truvorskameikin/udp-discovery-cpp.git"
define_default_value UDP_DISCOVERY_CPP_VERSION "develop"
define_default_value XAPIAN_SOURCE_VERSION "1.4.7"
define_default_value XAPIAN_SOURCE_SHA256 13f08a0b649c7afa804fa0e85678d693fd6069dd394c9b9e7d41973d74a3b5d3
define_default_value RAPIDJSON_SOURCE_VERSION "1.1.0"
define_default_value RAPIDJSON_SOURCE_SHA256 bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e
define_default_value MINIUPNPC_SOURCE_VERSION "2.1.20190625"
define_default_value MINIUPNPC_SOURCE_SHA256 8723f5d7fd7970de23635547700878cd29a5c2bb708b5e5475b2d1d2510317fb
## $1 filename, $2 sha256 hash
function check_sha256()
{
echo ${2} "${1}" | sha256sum -c &> /dev/null
}
## $1 filename, $2 sha256 hash, $3 url
function verified_download()
{
FILENAME="$1"
SHA256="$2"
URL="$3"
check_sha256 "${FILENAME}" "${SHA256}" ||
{
rm -rf "${FILENAME}"
wget -O "${FILENAME}" "$URL" ||
{
echo "Failed downloading ${FILENAME} from $URL"
exit 1
}
check_sha256 "${FILENAME}" "${SHA256}" ||
{
echo "SHA256 mismatch for ${FILENAME} from ${URL} expected sha256 ${SHA256} got $(sha256sum ${FILENAME} | awk '{print $1}')"
exit 1
}
}
}
cArch=""
eABI=""
case "${ANDROID_NDK_ARCH}" in
"arm")
cArch="${ANDROID_NDK_ARCH}"
eABI="eabi"
;;
"arm64")
cArch="aarch64"
eABI=""
;;
"x86")
cArch="i686"
eABI=""
;;
esac
export SYSROOT="${NATIVE_LIBS_TOOLCHAIN_PATH}/sysroot/"
export PREFIX="${SYSROOT}/usr/"
export CC="${NATIVE_LIBS_TOOLCHAIN_PATH}/bin/${cArch}-linux-android${eABI}-clang"
export CXX="${NATIVE_LIBS_TOOLCHAIN_PATH}/bin/${cArch}-linux-android${eABI}-clang++"
export AR="${NATIVE_LIBS_TOOLCHAIN_PATH}/bin/${cArch}-linux-android${eABI}-ar"
export RANLIB="${NATIVE_LIBS_TOOLCHAIN_PATH}/bin/${cArch}-linux-android${eABI}-ranlib"
## More information available at https://android.googlesource.com/platform/ndk/+/ics-mr0/docs/STANDALONE-TOOLCHAIN.html
build_toolchain()
{
echo "build_toolchain()
################################################################################
################################################################################
################################################################################
"
rm -rf ${NATIVE_LIBS_TOOLCHAIN_PATH}
${ANDROID_NDK_PATH}/build/tools/make_standalone_toolchain.py --verbose \
--arch ${ANDROID_NDK_ARCH} --install-dir ${NATIVE_LIBS_TOOLCHAIN_PATH} \
--api ${ANDROID_PLATFORM_VER}
find "${PREFIX}/include/" -not -type d > "${NATIVE_LIBS_TOOLCHAIN_PATH}/deletefiles"
}
## This avoid <cmath> include errors due to -isystem and -I ordering issue
delete_copied_includes()
{
echo "delete_copied_includes()
################################################################################
################################################################################
################################################################################
"
cat "${NATIVE_LIBS_TOOLCHAIN_PATH}/deletefiles" | while read delFile ; do
rm "$delFile"
done
}
## More information available at https://gitlab.com/relan/provisioners/merge_requests/1 and http://stackoverflow.com/a/34032216
install_qt_android()
{
echo "install_qt_android()
################################################################################
################################################################################
################################################################################
"
QT_VERSION_CODE=$(echo $QT_VERSION | tr -d .)
QT_INSTALL_PATH=${NATIVE_LIBS_TOOLCHAIN_PATH}/Qt
QT_INSTALLER="qt-unified-linux-x64-3.0.2-online.run"
verified_download $QT_INSTALLER $QT_ANDROID_INSTALLER_SHA256 \
http://master.qt.io/archive/online_installers/3.0/${QT_INSTALLER}
chmod a+x ${QT_INSTALLER}
QT_INSTALLER_SCRIPT="qt_installer_script.js"
cat << EOF > "${QT_INSTALLER_SCRIPT}"
function Controller() {
installer.autoRejectMessageBoxes();
installer.installationFinished.connect(function() {
gui.clickButton(buttons.NextButton);
});
var welcomePage = gui.pageWidgetByObjectName("WelcomePage");
welcomePage.completeChanged.connect(function() {
if (gui.currentPageWidget().objectName == welcomePage.objectName)
gui.clickButton(buttons.NextButton);
});
}
Controller.prototype.WelcomePageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.CredentialsPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.IntroductionPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.TargetDirectoryPageCallback = function() {
gui.currentPageWidget().TargetDirectoryLineEdit.setText("$QT_INSTALL_PATH");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ComponentSelectionPageCallback = function() {
var widget = gui.currentPageWidget();
// You can get these component names by running the installer with the
// --verbose flag. It will then print out a resource tree.
widget.deselectComponent("qt.tools.qtcreator");
widget.deselectComponent("qt.tools.doc");
widget.deselectComponent("qt.tools.examples");
widget.selectComponent("qt.$QT_VERSION_CODE.android_armv7");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.LicenseAgreementPageCallback = function() {
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
gui.clickButton(buttons.NextButton);
}
Controller.prototype.StartMenuDirectoryPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ReadyForInstallationPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.FinishedPageCallback = function() {
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm;
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox)
checkBoxForm.launchQtCreatorCheckBox.checked = false;
gui.clickButton(buttons.FinishButton);
}
EOF
QT_QPA_PLATFORM=minimal ./${QT_INSTALLER} --script ${QT_INSTALLER_SCRIPT}
}
## More information available at retroshare://file?name=Android%20Native%20Development%20Kit%20Cookbook.pdf&size=29214468&hash=0123361c1b14366ce36118e82b90faf7c7b1b136
build_bzlib()
{
echo "build_bzlib()
################################################################################
################################################################################
################################################################################
"
B_dir="bzip2-${BZIP2_SOURCE_VERSION}"
rm -rf $B_dir
verified_download $B_dir.tar.gz $BZIP2_SOURCE_SHA256 \
http://distfiles.gentoo.org/distfiles/bzip2-${BZIP2_SOURCE_VERSION}.tar.gz
tar -xf $B_dir.tar.gz
cd $B_dir
sed -i "/^CC=.*/d" Makefile
sed -i "/^AR=.*/d" Makefile
sed -i "/^RANLIB=.*/d" Makefile
sed -i "/^LDFLAGS=.*/d" Makefile
sed -i "s/^all: libbz2.a bzip2 bzip2recover test/all: libbz2.a bzip2 bzip2recover/" Makefile
make -j${HOST_NUM_CPU}
make install PREFIX=${PREFIX}
# sed -i "/^CC=.*/d" Makefile-libbz2_so
# make -f Makefile-libbz2_so -j${HOST_NUM_CPU}
# cp libbz2.so.1.0.6 ${SYSROOT}/usr/lib/libbz2.so
cd ..
}
## More information available at http://doc.qt.io/qt-5/opensslsupport.html
build_openssl()
{
echo "build_openssl()
################################################################################
################################################################################
################################################################################
"
B_dir="openssl-${OPENSSL_SOURCE_VERSION}"
rm -rf $B_dir
verified_download $B_dir.tar.gz $OPENSSL_SOURCE_SHA256 \
https://www.openssl.org/source/$B_dir.tar.gz
tar -xf $B_dir.tar.gz
cd $B_dir
## We link openssl statically to avoid android silently sneaking in his own
## version of libssl.so (we noticed this because it had some missing symbol
## that made RS crash), the crash in some android version is only one of the
## possible problems the fact that android insert his own binary libssl.so pose
## non neglegible security concerns.
oBits="32"
[[ ${ANDROID_NDK_ARCH} =~ .*64.* ]] && oBits=64
ANDROID_NDK="${ANDROID_NDK_PATH}" PATH="${SYSROOT}/bin/:${PATH}" \
./Configure linux-generic${oBits} -fPIC --prefix="${PREFIX}" \
--openssldir="${SYSROOT}/etc/ssl"
# sed -i 's/LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \\/LIBNAME=$$i \\/g' Makefile
# sed -i '/LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \\/d' Makefile
make -j${HOST_NUM_CPU}
make install
rm -f ${PREFIX}/lib/libssl.so*
rm -f ${PREFIX}/lib/libcrypto.so*
cd ..
}
build_sqlite()
{
echo "build_sqlite()
################################################################################
################################################################################
################################################################################
"
B_dir="sqlite-autoconf-${SQLITE_SOURCE_VERSION}"
rm -rf $B_dir
verified_download $B_dir.tar.gz $SQLITE_SOURCE_SHA256 \
https://www.sqlite.org/${SQLITE_SOURCE_YEAR}/$B_dir.tar.gz
tar -xf $B_dir.tar.gz
cd $B_dir
./configure --with-pic --prefix="${PREFIX}" --host=${cArch}-linux
make -j${HOST_NUM_CPU}
make install
rm -f ${PREFIX}/lib/libsqlite3.so*
# ${CC} -shared -o libsqlite3.so -fPIC sqlite3.o -ldl
# cp libsqlite3.so "${SYSROOT}/usr/lib"
cd ..
}
build_sqlcipher()
{
echo "build_sqlcipher()
################################################################################
################################################################################
################################################################################
"
B_dir="sqlcipher-${SQLCIPHER_SOURCE_VERSION}"
rm -rf $B_dir
T_file="${B_dir}.tar.gz"
verified_download $T_file $SQLCIPHER_SOURCE_SHA256 \
https://github.com/sqlcipher/sqlcipher/archive/v${SQLCIPHER_SOURCE_VERSION}.tar.gz
tar -xf $T_file
cd $B_dir
case "${ANDROID_NDK_ARCH}" in
"arm64")
# SQLCipher config.sub is outdated and doesn't recognize newer architectures
rm config.sub
autoreconf --verbose --install --force
automake --add-missing --copy --force-missing
;;
esac
./configure --with-pic --build=$(sh ./config.guess) \
--host=${cArch}-linux \
--prefix="${PREFIX}" --with-sysroot="${SYSROOT}" \
--enable-tempstore=yes \
--disable-tcl --disable-shared \
CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="${PREFIX}/lib/libcrypto.a"
make -j${HOST_NUM_CPU}
make install
cd ..
}
build_libupnp()
{
echo "build_libupnp()
################################################################################
################################################################################
################################################################################
"
B_dir="pupnp-release-${LIBUPNP_SOURCE_VERSION}"
B_ext=".tar.gz"
B_file="${B_dir}${B_ext}"
rm -rf $B_dir
verified_download $B_file $LIBUPNP_SOURCE_SHA256 \
https://github.com/mrjimenez/pupnp/archive/release-${LIBUPNP_SOURCE_VERSION}${B_ext}
tar -xf $B_file
cd $B_dir
./bootstrap
## liupnp must be configured as static library because if not the linker will
## look for libthreadutils.so.6 at runtime that cannot be packaged on android
## as it supports only libname.so format for libraries, thus resulting in a
## crash at startup.
./configure --with-pic --enable-static --disable-shared --disable-samples \
--disable-largefile \
--prefix="${PREFIX}" --host=${cArch}-linux
make -j${HOST_NUM_CPU}
make install
cd ..
}
build_rapidjson()
{
echo "build_rapidjson()
################################################################################
################################################################################
################################################################################
"
B_dir="rapidjson-${RAPIDJSON_SOURCE_VERSION}"
D_file="${B_dir}.tar.gz"
verified_download $D_file $RAPIDJSON_SOURCE_SHA256 \
https://github.com/Tencent/rapidjson/archive/v${RAPIDJSON_SOURCE_VERSION}.tar.gz
tar -xf $D_file
cp -r "${B_dir}/include/rapidjson/" "${PREFIX}/include/rapidjson"
}
build_restbed()
{
echo "build_restbed()
################################################################################
################################################################################
################################################################################
"
[ -d restbed ] || git clone --depth=2000 https://github.com/Corvusoft/restbed.git
cd restbed
# git fetch --tags
# git checkout tags/${RESTBED_SOURCE_VERSION}
git checkout ${RESTBED_SOURCE_VERSION}
git submodule update --init dependency/asio
git submodule update --init dependency/catch
git submodule update --init dependency/kashmir
cd ..
rm -rf restbed-build; mkdir restbed-build ; cd restbed-build
cmake \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON BUILD_TESTS=OFF \
-DBUILD_SSL=OFF -DCMAKE_INSTALL_PREFIX="${PREFIX}" -B. -H../restbed
make -j${HOST_NUM_CPU}
make install
cp "${PREFIX}/library/librestbed.a" "${PREFIX}/lib/"
cd ..
}
build_udp-discovery-cpp()
{
echo "build_udp-discovery-cpp()
################################################################################
################################################################################
################################################################################
"
S_dir="udp-discovery-cpp"
[ -d $S_dir ] || git clone $UDP_DISCOVERY_CPP_SOURCE $S_dir
cd $S_dir
git checkout $UDP_DISCOVERY_CPP_VERSION
cd ..
B_dir="udp-discovery-cpp-build"
rm -rf ${B_dir}; mkdir ${B_dir}; cd ${B_dir}
cmake \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" -B. -H../udp-discovery-cpp
make -j${HOST_NUM_CPU}
cp libudp-discovery.a "${PREFIX}/lib/"
cp ../$S_dir/*.hpp "${PREFIX}/include/"
cd ..
}
build_xapian()
{
echo "build_xapian()
################################################################################
################################################################################
################################################################################
"
B_dir="xapian-core-${XAPIAN_SOURCE_VERSION}"
D_file="$B_dir.tar.xz"
verified_download $D_file $XAPIAN_SOURCE_SHA256 \
https://oligarchy.co.uk/xapian/${XAPIAN_SOURCE_VERSION}/$D_file
rm -rf $B_dir
tar -xf $D_file
cd $B_dir
B_endiannes_detection_failure_workaround="ac_cv_c_bigendian=no"
B_large_file=""
[ "${ANDROID_PLATFORM_VER}" -lt "24" ] && B_large_file="--disable-largefile"
./configure ${B_endiannes_detection_failure_workaround} ${B_large_file} \
--with-pic \
--disable-backend-inmemory --disable-backend-remote \
--disable--backend-chert --enable-backend-glass \
--host=${cArch}-linux --enable-static --disable-shared \
--prefix="${PREFIX}" --with-sysroot="${SYSROOT}"
make -j${HOST_NUM_CPU}
make install
}
build_miniupnpc()
{
echo "build_miniupnpc()
################################################################################
################################################################################
################################################################################
"
S_dir="miniupnpc-${MINIUPNPC_SOURCE_VERSION}"
B_dir="miniupnpc-${MINIUPNPC_SOURCE_VERSION}-build"
D_file="$S_dir.tar.gz"
verified_download $D_file $MINIUPNPC_SOURCE_SHA256 \
http://miniupnp.free.fr/files/${D_file}
rm -rf $S_dir $B_dir
tar -xf $D_file
mkdir $B_dir
cd $B_dir
cmake \
-DUPNPC_BUILD_STATIC=TRUE \
-DUPNPC_BUILD_SHARED=FALSE \
-DUPNPC_BUILD_TESTS=FALSE \
-DUPNPC_BUILD_SAMPLE=FALSE \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" -B. -S../$S_dir
make -j${HOST_NUM_CPU}
make install
}
build_toolchain
[ "${INSTALL_QT_ANDROID}X" != "trueX" ] || install_qt_android
build_bzlib
build_openssl
build_sqlite
build_sqlcipher
build_libupnp
build_rapidjson
build_restbed
build_udp-discovery-cpp
build_xapian
build_miniupnpc
delete_copied_includes
echo NATIVE_LIBS_TOOLCHAIN_PATH=${NATIVE_LIBS_TOOLCHAIN_PATH}

View File

@ -1,90 +0,0 @@
#!/bin/bash
# Script to pull debugging sysroot from Android devices
#
# Copyright (C) 2020 Gioacchino Mazzurco <gio@eigenlab.org>
# Copyright (C) 2020 Asociación Civil Altermundi <info@altermundi.net>
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the
# Free Software Foundation, version 3.
#
# 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 GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <https://www.gnu.org/licenses/>
<<"ASCIIDOC"
Pull files from Android device to prepare a debugging sysroot
Inspired by:
https://fw4spl-org.github.io/fw4spl-blog/2015/07/27/Native-debugging-on-Android-with-QtCreator.html
The goal is to have a local copy of the sysroot of the connected device.
For that we use the command `adb pull <remote_dir_or_file> <local_dir_or_file>`
We will get a copy of:
- `/system/lib/`
- `/vendor/lib/`
- `libc.so`
- `libcutils.so`
As well as the binaries `linker` and `app_process`
IMPORTANT:
from one device to another, the remote file `app_process` can be a binary file
or a symlink to a binary file - which is NOT ok for us.
That's so we will try to pull every known possible variants of `app_process`,
e.g. `app_process32` or `app_process_init`
ASCIIDOC
## Define default value for variable, take two arguments, $1 variable name,
## $2 default variable value, if the variable is not already define define it
## with default value.
function define_default_value()
{
VAR_NAME="${1}"
DEFAULT_VALUE="${2}"
[ -z "${!VAR_NAME}" ] && export ${VAR_NAME}="${DEFAULT_VALUE}"
}
define_default_value ANDROID_SERIAL "$(adb devices | head -n 2 | tail -n 1 | awk '{print $1}')"
define_default_value DEBUG_SYSROOT "${HOME}/Builds/debug_sysroot/${ANDROID_SERIAL}/"
rm -rf "${DEBUG_SYSROOT}"
for mDir in "/system/lib/" "/vendor/lib/"; do
mkdir -p "${DEBUG_SYSROOT}/${mDir}"
# adb pull doesn't behave like rsync dirA/ dirB/ so avoid nesting the
# directory by deleting last one before copying
rmdir "${DEBUG_SYSROOT}/${mDir}"
adb pull "${mDir}" "${DEBUG_SYSROOT}/${mDir}"
done
# Retrieve the specific binaries - some of these adb commands will fail, since
# some files may not exist, but that's ok.
mkdir -p "${DEBUG_SYSROOT}/system/bin/"
for mBin in "/system/bin/linker" "/system/bin/app_process" \
"/system/bin/app_process_init" "/system/bin/app_process32" \
"/system/bin/app_process64" ; do
adb pull "${mBin}" "${DEBUG_SYSROOT}/${mBin}"
done
# Verify which variants of the specific binaries could be pulled
echo
echo "Found the following specific binaries:"
echo
ls -1 "${DEBUG_SYSROOT}/system/bin/"*
ls -1 "${DEBUG_SYSROOT}/system/lib/libc.so"*
ls -1 "${DEBUG_SYSROOT}/system/lib/libcutils.so"*
echo
echo DEBUG_SYSROOT="${DEBUG_SYSROOT}"

View File

@ -1,116 +0,0 @@
#!/bin/bash
# Script to start gdbserver on Android device and attach to retroshare-service
#
# Copyright (C) 2020 Gioacchino Mazzurco <gio@eigenlab.org>
# Copyright (C) 2020 Asociación Civil Altermundi <info@altermundi.net>
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the
# Free Software Foundation, version 3.
#
# 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 GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <https://www.gnu.org/licenses/>
<<"ASCIIDOC"
Start gdbserver on Android device and attach it to the retroshare service
process
Inspired by:
https://fw4spl-org.github.io/fw4spl-blog/2015/07/27/Native-debugging-on-Android-with-QtCreator.html
ASCIIDOC
## Define default value for variable, take two arguments, $1 variable name,
## $2 default variable value, if the variable is not already define define it
## with default value.
function define_default_value()
{
VAR_NAME="${1}"
DEFAULT_VALUE="${2}"
[ -z "${!VAR_NAME}" ] && export ${VAR_NAME}="${DEFAULT_VALUE}"
}
define_default_value ANDROID_APK_PACKAGE "org.retroshare.service"
define_default_value ANDROID_PROCESS_NAME "org.retroshare.service:rs"
define_default_value ANDROID_INSTALL_PATH ""
define_default_value LIB_GDB_SERVER_PATH ""
define_default_value ANDROID_SERIAL "$(adb devices | head -n 2 | tail -n 1 | awk '{print $1}')"
define_default_value GDB_SERVER_PORT 5039
adb_ushell()
{
adb shell run-as ${ANDROID_APK_PACKAGE} $@
}
[ -z "${ANDROID_INSTALL_PATH}" ] &&
{
ANDROID_INSTALL_PATH="$(adb_ushell pm path "${ANDROID_APK_PACKAGE}")"
ANDROID_INSTALL_PATH="$(dirname ${ANDROID_INSTALL_PATH#"package:"})"
[ -z "${ANDROID_INSTALL_PATH}" ] &&
cat <<EOF
Cannot find install path for ${ANDROID_APK_PACKAGE} make sure it is installed,
or manually specify ANDROID_INSTALL_PATH
EOF
}
## If not passed as environement variable try to determine gdbserver path
## shipped withing APK
[ -z "${LIB_GDB_SERVER_PATH}" ] &&
{
for mUsualPath in \
"${ANDROID_INSTALL_PATH}/lib/libgdbserver.so" \
"${ANDROID_INSTALL_PATH}/lib/arm64/libgdbserver.so"
do
adb_ushell ls "${mUsualPath}" &&
export LIB_GDB_SERVER_PATH="${mUsualPath}" && break
done
}
[ -z "${LIB_GDB_SERVER_PATH}" ] &&
{
cat <<EOF
libgdbserver.so not found in any of the usual path attempting to look for it
with find, it will take a little more time. Take note of the discovered path and
define LIB_GDB_SERVER_PATH on your commandline at next run to avoid waiting
again.
EOF
tFile="$(mktemp)"
adb_ushell find ${ANDROID_INSTALL_PATH} -type f -name 'libgdbserver.so' | \
tee "${tFile}"
LIB_GDB_SERVER_PATH="$(head -n 1 "${tFile}")"
rm "${tFile}"
}
[ -z "${LIB_GDB_SERVER_PATH}" ] &&
{
echo "Cannot find libgdbserver.so, are you sure your package ships it?"
exit -1
}
mPid="$(adb_ushell ps | grep ${ANDROID_PROCESS_NAME} | awk '{print $2}')"
[ -z "${mPid}" ] &&
{
echo "Failed ${ANDROID_PROCESS_NAME} PID retrival are you sure it is running?"
exit -2
}
## Establish port forwarding so we can connect to gdbserver with gdb
adb forward tcp:${GDB_SERVER_PORT} tcp:${GDB_SERVER_PORT}
((adb_ushell ${LIB_GDB_SERVER_PATH} 127.0.0.1:${GDB_SERVER_PORT} --attach ${mPid})&)

View File

@ -0,0 +1,170 @@
## Compilation on Linux
### Install package dependencies:
#### Debian / Ubuntu / Linux Mint
```bash
sudo apt-get install git g++ cmake libbz2-dev libjson-c-dev libssl-dev libsqlcipher-dev \
libupnp-dev doxygen libxss-dev rapidjson-dev libbotan-2-dev libasio-dev
```
To compile with Qt5:
```bash
sudo apt-get install qt5-qmake qtmultimedia5-dev libqt5x11extras5-dev
```
To compile with Qt6:
```bash
sudo apt-get install qt6-base-dev qt6-multimedia-dev qt6-5compat-dev
```
Additional dependencies for Feedreader plugin:
```bash
sudo apt-get install libxml2-dev libxslt1-dev libcurl4-openssl-dev
```
Additional dependencies for Voip plugin:
```bash
sudo apt-get install libavcodec-dev libcurl4-openssl-dev \
libqt5multimedia5-plugins libspeexdsp-dev
```
Autologin:
```bash
sudo apt install libsecret-1-dev
```
#### openSUSE
```bash
sudo zypper install git gcc-c++ cmake libqt5-qtbase-devel \
libqt5-qtmultimedia-devel libqt5-qtx11extras-devel libbz2-devel \
libopenssl-devel libupnp-devel libXss-devel sqlcipher-devel rapidjson-devel \
json-c botan bzip2
```
Additional packages to compile with Qt6:
```bash
sudo zypper install qt6-base-devel qt6-multimedia-devel qt6-qt5compat-devel
```
Additional dependencies for plugins:
```bash
sudo zypper install ffmpeg-4-libavcodec-devel libcurl-devel libxml2-devel \
libxslt-devel speex-devel speexdsp-devel
```
#### Arch Linux / Manjaro / EndeavourOS
```bash
sudo pacman -S base-devel libgnome-keyring cmake qt5-tools qt5-multimedia qt5-x11extras \
rapidjson doxygen libupnp libxslt libxss sqlcipher botan2 bzip2 json-c
```
To compile with Qt6:
```bash
sudo pacman -S qt6-base qt6-multimedia qt6-5compat
```
### Checkout the source code
```bash
cd ~
git clone https://github.com/RetroShare/RetroShare.git retroshare
```
### Checkout the submodules
```bash
cd retroshare
git submodule update --init --remote libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/
git submodule update --init --remote supportlibs/librnp supportlibs/restbed supportlibs/rapidjson
```
### Compile
```bash
qmake CONFIG+=release CONFIG+=rs_jsonapi CONFIG+=rs_webui
make
```
The executable produced will be:
```bash
./retroshare-gui/src/retroshare
```
### Install
```bash
sudo make install
```
The executable produced will be:
```bash
~/usr/bin/RetroShare
```
### For packagers
Packagers can use PREFIX and LIB\_DIR to customize the installation paths:
```bash
qmake PREFIX=/usr LIB_DIR=/usr/lib64 "CONFIG-=debug" "CONFIG+=release"
make
make INSTALL_ROOT=${PKGDIR} install
```
### libsqlcipher
If libsqlcipher is not available as a package
You need to place sqlcipher so that the hierarchy is:
~Home
|
+--- retroshare
|
+--- lib
|
+---- sqlcipher
```bash
mkdir lib
cd lib
git clone https://github.com/sqlcipher/sqlcipher.git --depth=1 --branch v3.4.1
cd sqlcipher
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"
make
cd ..
```
### Build infos
Note: If you installed Qt6 you need to use `qmake6` on the command line.
For the `FeedReader` it is required to append the config option `CONFIG+=retroshare_plugins`.
Make sure `plugins/plugins.pro` contains `FeedReader` in the list of plugins to compile.
Do not mix plugins compiled with Qt5 with those compiled with Qt6. They work only if they are compiled
with the same Qt version as RetroShare.
Voip is outdated and is not compileable on the latest Debian.
For `Autologin` it is required to append the config option `CONFIG+=rs_autologin`.
### Build options
* Mandatory
* release or debug: normally you would like to use the release option
* Extra features (optional)
* rs_autologin: enable autologin
* retroshare_plugins: build plugins
* rs_webui: enable Web interface
* rs_jsonapi: enable json api interface, required by rs_webui
* gxsthewire: enable Wire service (experimental)
* wikipoos: enable Wiki service
* rs_use_native_dialogs: enable native dialogs (may cause crashes with some versions of Gtk)
* rs_deep_channels_index: build with deep channel indexing support
* rs_deep_files_index: build with deep file indexing support
* "CONFIG+=..." enable other extra compile time features, you can find the almost complete list in file *&lt;sourcefolder&gt;\retroshare.pri*
### Examples:
```batch
qmake CONFIG+=debug CONFIG+=release CONFIG+=rs_use_native_dialog CONFIG+=rs_gui_cmark
qmake CONFIG+=rs_jsonapi CONFIG+=rs_webui CONFIG+=rs_autologin
```

View File

@ -2,42 +2,57 @@
## force cloning a new
## To prepare an image suitable as base for Gitlab CI use
# docker build -t "${CI_REGISTRY_IMAGE}:base" --build-arg KEEP_SOURCE=true --build-arg REPO_DEPTH="" -f base.Dockerfile .
## Now you need to tag it so you can later push it
# docker tag ${ID_OF_THE_CREATED_IMAGE} registry.gitlab.com/retroshare/${CI_REGISTRY_IMAGE}:base
# export CI_REGISTRY_IMAGE="registry.gitlab.com/retroshare/retroshare:base"
# docker build -t "${CI_REGISTRY_IMAGE}" -f base.Dockerfile .
## To push it to gitlab CI registry you need first to login and the to push
# docker login registry.gitlab.com
# docker push registry.gitlab.com/retroshare/${CI_REGISTRY_IMAGE}:base
# docker push "${CI_REGISTRY_IMAGE}"
## To run the container
# docker run -it -p 127.0.0.1:9092:9092 "${CI_REGISTRY_IMAGE}:base" retroshare-service --jsonApiPort 9092 --jsonApiBindAddress 0.0.0.0
# docker run -it -p 127.0.0.1:9092:9092 "${CI_REGISTRY_IMAGE}" retroshare-service --jsonApiPort 9092 --jsonApiBindAddress 0.0.0.0
FROM ubuntu
FROM ubuntu:26.04
ARG CACHEBUST=0
RUN \
apt-get update -y && apt-get upgrade -y && \
apt-get install -y build-essential libssl-dev libbz2-dev libsqlite3-dev \
libsqlcipher-dev libupnp-dev pkg-config libz-dev \
qt5-default libxapian-dev qttools5-dev doxygen rapidjson-dev \
git cmake curl
ENV DEBIAN_FRONTEND=noninteractive
ENV APT_UNAT="--assume-yes --quiet"
RUN apt-get update $APT_UNAT && \
apt-get upgrade --show-upgraded $APT_UNAT && \
apt-get clean $APT_UNAT && \
apt-get install --no-install-recommends $APT_UNAT \
bash build-essential cimg-dev libssl-dev libbz2-dev \
libminiupnpc-dev \
libsqlite3-dev libsqlcipher-dev \
pkg-config libz-dev \
libxapian-dev doxygen rapidjson-dev \
git cmake curl python3 libasio-dev libjson-c-dev libbotan-3-dev
## Avoid git cloning spuriously failing with
# server certificate verification failed. CAfile: none CRLfile: none
RUN apt-get install --no-install-recommends $APT_UNAT --reinstall \
ca-certificates
RUN git clone --depth 1 https://github.com/aetilius/pHash.git && \
rm -rf pHash-build && mkdir pHash-build && cd pHash-build && \
cmake -B. -H../pHash -DCMAKE_INSTALL_PREFIX=/usr && \
make -j$(nproc) && make install && cd .. && \
rm -rf pHash-build pHash
ARG FRESHCLONE=0
ARG REPO_URL=https://gitlab.com/RetroShare/RetroShare.git
ARG REPO_URL=https://github.com/RetroShare/RetroShare.git
ARG REPO_BRANCH=master
ARG REPO_DEPTH="--depth 2000"
ARG KEEP_SOURCE=false
RUN apt-get update -y && apt-get upgrade -y
RUN git clone $REPO_DEPTH $REPO_URL -b $REPO_BRANCH && cd RetroShare && \
git fetch --tags && cd ..
RUN git clone $REPO_DEPTH $REPO_URL -b $REPO_BRANCH && \
cd RetroShare && \
git fetch --tags && \
git submodule update --init \
libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/ \
supportlibs/restbed/
RUN \
mkdir RetroShare-build && cd RetroShare-build && \
qmake ../RetroShare \
CONFIG+=no_retroshare_plugins CONFIG+=ipv6 \
CONFIG+=retroshare_service CONFIG+=no_retroshare_gui \
CONFIG+=rs_jsonapi CONFIG+=rs_deep_search && \
(make -j$(nproc) || make -j$(nproc) || make) && make install && \
cd .. && rm -rf RetroShare-build && ($KEEP_SOURCE || rm -rf RetroShare)
cmake -B. -S../RetroShare/retroshare-service \
-DRS_FORUM_DEEP_INDEX=ON -DRS_JSON_API=ON -DRS_WEBUI=ON && \
make -j$(nproc) && make install && \
cd .. && rm -rf RetroShare-build

View File

@ -0,0 +1,16 @@
#!/bin/sh
# Emit --build-arg flags so gitlabCI.Dockerfile fetches the EXACT ref that
# triggered the pipeline. REPO_REF can be a commit SHA (the CI default), a
# branch name, or a tag. The remote URL is still chosen per-case so
# MR-from-fork fetches from the fork.
if [ -n "$CI_MERGE_REQUEST_ID" ]; then
REPO_URL="$CI_MERGE_REQUEST_SOURCE_PROJECT_URL"
else
REPO_URL="$CI_REPOSITORY_URL"
fi
echo \
--build-arg REPO_URL="$REPO_URL" \
--build-arg REPO_REF="$CI_COMMIT_SHA"

View File

@ -2,17 +2,21 @@ FROM registry.gitlab.com/retroshare/retroshare:base
RUN apt-get update -y && apt-get upgrade -y
ARG REPO_URL=https://gitlab.com/RetroShare/RetroShare.git
ARG REPO_BRANCH=master
ARG REPO_URL=https://github.com/RetroShare/RetroShare.git
ARG REPO_REF=master
RUN \
cd RetroShare && git remote add testing $REPO_URL && \
git fetch --tags testing $REPO_BRANCH && \
git reset --hard testing/$REPO_BRANCH && \
git fetch --tags testing $REPO_REF && \
git checkout --force FETCH_HEAD && \
git submodule deinit -f --all && \
git submodule update --init \
libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/ \
supportlibs/restbed/ && \
git --no-pager log --max-count 1
RUN \
mkdir RetroShare-build && cd RetroShare-build && \
qmake ../RetroShare CONFIG+=no_retroshare_gui \
CONFIG+=retroshare_service \
CONFIG+=rs_jsonapi CONFIG+=rs_deep_search && \
(make -j$(nproc) || make -j$(nproc) || make) && make install && \
cmake -B. -S../RetroShare/retroshare-service \
-DRS_FORUM_DEEP_INDEX=ON -DRS_JSON_API=ON -DRS_WEBUI=ON \
-DRS_WARN_DEPRECATED=OFF -DRS_WARN_LESS=ON && \
make -j$(nproc) && make install && \
cd .. && rm -rf RetroShare-build

@ -1 +1 @@
Subproject commit b0d7ae39fe9d9192848bbf7b8902d2188da895c9
Subproject commit 042d1d5a9f65e51e1abafe527cab2f04d6fab29b

View File

@ -1,60 +0,0 @@
Hi there,
I heard about RetroShare recently (on Slashdot) and really like the goal of the program; it's something I've been wanting for a long time now. I'm a software developer so I figured I could help contribute to the project. I started by getting a build up and running on my mac, which was non-trivial as it looks like the Mac build hasn't been maintained (or maybe it's just targetting older OS X version?). Anyway, I have instructions and patches to get a build going on OS X 10.6, if you want to put them up on the wiki or something. The steps I used boiled down to running the following commands in a directory that also contains the retroshare-mac-build.patch file, which I posted at https://staktrace.com/pub/retroshare-mac-build.patch (you can also see the changes at https://github.com/staktrace/retroshare/commit/51f554f909086f4baca7be215d5edacab744dea4)
sudo port selfupdate
sudo port install qt4-mac
sudo port install wget
wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.10.tar.bz2
tar xjf libgpg-error-1.10.tar.bz2
rm libgpg-error-1.10.tar.bz2
pushd libgpg-error-1.10
./configure --prefix=$PWD/build --enable-static=yes --enable-shared=no
make
make install
popd
wget ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-1.3.1.tar.bz2
tar xjf gpgme-1.3.1.tar.bz2
rm gpgme-1.3.1.tar.bz2
pushd gpgme-1.3.1
./configure --prefix=$PWD/build --enable-static=yes --enable-shared=no --with-gpg-error-prefix=$PWD/../libgpg-error-1.10/build
make
make install
popd
wget http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.3.tar.gz
tar xzf miniupnpc-1.3.tar.gz
rm miniupnpc-1.3.tar.gz
pushd miniupnpc-1.3
make upnpc-static
popd
git clone https://github.com/kigeia/retroshare
pushd retroshare
git apply ../retroshare-mac-build.patch
popd
pushd retroshare/libbitdht/src
qmake
make
popd
pushd retroshare/libretroshare/src
qmake
make
popd
pushd retroshare/retroshare-gui/src
qmake
make
popd
At the end there is a RetroShare.App in the retroshare/retroshare-gui/ folder which seems to work as expected.
Now that I've gotten it building and working, I'd like to start working on adding features. One that I would like to see is taking advantage of the RetroShare platform to enable F2F games. A while back I wrote a P2P collaborative crossword solver app in Java; porting that to work as a RetroShare plugin would probably be a good start for me. I looked briefly at the existing plugins in the source tree but haven't yet had time to peruse the rsplugin.h API in detail; if you have any tips or pointers before I dive in, please do let me know. I'll probably start work on it in a couple of days and progress might be a little slow because I'm also fairly busy with other things right now.
Cheers,
kats

View File

@ -2,41 +2,50 @@
## Qt Installation
Install Qt via: [Qt Download](http://www.qt.io/download/)
Qt 5.15 is not available as install package.
Use default options. And add Qt Script support.
Download Qt 5.15.x from here: [Qt 5.15.17](https://download.qt.io/archive/qt/5.15/5.15.17/single/qt-everywhere-opensource-src-5.15.17.tar.xz)
Instruction howto Build Qt 5.15.x on macOS: [macOS Building](https://doc.qt.io/archives/qt-5.15/macos-building.html)
## Set the Environment Variables
Add to the PATH environment variable by editing your *~/.profile* file.
export PATH="/users/$USER/Qt/5.5/clang_64/bin:$PATH"
export PATH="/users/$USER/Qt/5.15.17/clang_64/bin:$PATH"
Depends on which version of Qt you use.
## ***Choose if you use MacPort or HomeBrew***
## Get RetroShare
### MacPort Installation
In Qt Creator Projects -> New -> Import Project -> Git Clone -> Choose
Add Repository and Continoue
Install MacPort and XCode following this guide: [MacPort and XCode](http://guide.macports.org/#installing.xcode)
Repository: https://github.com/RetroShare/RetroShare.git
Start XCode to get it updated and to able C compiler to create executables.
via Terminal:
#### Install libraries
cd <your development directory>
git clone https://github.com/RetroShare/RetroShare.git retroshare
$sudo port -v selfupdate
$sudo port install openssl
$sudo port install miniupnpc
$sudo port install libmicrohttpd
For VOIP Plugin:
via GitHub Desktop: [GitHub Desktop Download](https://central.github.com/deployments/desktop/desktop/latest/darwin)
$sudo port install speex-devel
$sudo port install opencv
In GitHub Desktop -> Clone Repository -> URL
Get Your OSX SDK if missing: [MacOSX-SDKs](https://github.com/phracker/MacOSX-SDKs)
Add Repository URL: https://github.com/RetroShare/RetroShare.git and Clone
### HOMEBREW Installation
## ***Get XCode & MacOSX SDK***
Install HomeBrew following this guide: [HomeBrew](http://brew.sh/)
To identify the correct version of Xcode to install, you need to know which OS you are running. Go to the [x] menu -> "About This Mac" and read the macOS version number.
If you are running macOS Ventura 13.5 or later, you can install Xcode directly from App Store using the instructions below.
You can find older versions of Xcode at [Apple Developer Downloads](https://developer.apple.com/downloads/). Find the appropriate .xip file for your macOS version
To install from App Store:
Select [x] menu - > "App Store…".
Search for Xcode. Download and install.
Once Xcode has installed, you must drag the XCode icon into your Applications folder. After you have done this, open Xcode from the Applications folder by double-clicking on the icon and then follow the remaining instructions below.
Install XCode command line developer tools:
@ -44,11 +53,33 @@ Install XCode command line developer tools:
Start XCode to get it updated and to able C compiler to create executables.
Older MacOSX SDK is available from here: [MacOSX-SDKs](https://github.com/phracker/MacOSX-SDKs)
### MacPort Installation
Install MacPort following this guide: [MacPort](http://guide.macports.org/#installing.xcode)
### HOMEBREW Installation
Install HomeBrew following this guide: [HomeBrew](http://brew.sh/)
#### Install libraries
$brew install openssl
$brew install miniupnpc
$brew install libmicrohttpd
$ brew install openssl
$ brew install miniupnpc
$ brew install rapidjson
$ brew install sqlcipher
For RNP lib:
$ brew install bzip2
$ brew install zlib
$ brew install json-c
$ brew install botan@2
#### Install CMake
$ brew install cmake
If you have error in linking, run this:
@ -56,37 +87,130 @@ If you have error in linking, run this:
For VOIP Plugin:
$brew install speex
$brew install speexdsp
$brew install homebrew/science/opencv
$brew install ffmpeg
$ brew install speex
$ brew install speexdsp
$ brew install opencv
$ brew install ffmpeg
Get Your OSX SDK if missing: [MacOSX-SDKs](https://github.com/phracker/MacOSX-SDKs)
For FeedReader Plugin:
$ brew install libxslt
$ brew install libxml2
## Last Settings
In QtCreator Option Git select "Pull" with "Rebase"
In QtCreator Projects -> Manage Kits > Version Control > Git:
## Compil missing libraries
### SQLCipher
cd <your development directory>
git clone https://github.com/sqlcipher/sqlcipher.git
cd sqlcipher
./configure --disable-shared --disable-tcl --enable-static --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC -I/opt/local/include" LDFLAGS="-lcrypto"
make
sudo make install
select "Pull with rebase"
NOTE, might be necessary to *chmod 000 /usr/local/ssl* temporarily during *./configure* if
homebrew uses newer, non-stock ssl dependencies found there. Configure might get confused.
In QtCreator Projects -> Build -> Build Settings -> Build Environment -> Add this path:
You can now compile RS into Qt Creator or with terminal
/usr/local/bin
cd <your development directory>
git clone https://github.com/RetroShare/RetroShare.git retroshare
cd retroshare
qmake; make
In QtCreator Projects -> Build -> Build Settings -> Build Steps -> Add Additional arguments:
"CONFIG+=rs_autologin" "CONFIG+=rs_use_native_dialogs"
## Set your Mac OS SDK version
Edit retroshare.pri and set your installed sdk version example for 11.1 -> rs_macos11.1 (line 135:)
macx:CONFIG *= rs_macos11.1
rs_macos10.8:CONFIG -= rs_macos11.1
rs_macos10.9:CONFIG -= rs_macos11.1
rs_macos10.10:CONFIG -= rs_macos11.1
rs_macos10.12:CONFIG -= rs_macos11.1
rs_macos10.13:CONFIG -= rs_macos11.1
rs_macos10.14:CONFIG -= rs_macos11.1
rs_macos10.15:CONFIG -= rs_macos11.1
## Link Include & Libraries
When required edit your retroshare.pri macx-* section, check if the Include and Lib path are correct (macx-* section)
INCLUDEPATH += "/usr/local/opt/openssl/include"
QMAKE_LIBDIR += "/usr/local/opt/openssl/lib"
QMAKE_LIBDIR += "/usr/local/opt/sqlcipher/lib"
QMAKE_LIBDIR += "/usr/local/opt/miniupnpc/lib"
alternative via Terminal
$ qmake
INCLUDEPATH+="/usr/local/opt/openssl/include" \
QMAKE_LIBDIR+="/usr/local/opt/openssl/lib" \
QMAKE_LIBDIR+="/usr/local/opt/sqlcipher/lib" \
QMAKE_LIBDIR+="/usr/local/opt/miniupnpc/lib" \
CONFIG+=rs_autologin \
CONFIG+=rs_use_native_dialogs \
CONFIG+=release \
..
For FeedReader Plugin:
INCLUDEPATH += "/usr/local/opt/libxml2/include/libxml2"
With plugins:
$ qmake \
INCLUDEPATH+="/usr/local/opt/openssl/include" QMAKE_LIBDIR+="/usr/local/opt/openssl/lib" \
QMAKE_LIBDIR+="/usr/local/opt/sqlcipher/lib" \
QMAKE_LIBDIR+="/usr/local/opt/miniupnpc/lib" \
INCLUDEPATH+="/usr/local/opt/opencv/include/opencv4" QMAKE_LIBDIR+="/usr/local/opt/opencv/lib" \
INCLUDEPATH+="/usr/local/opt/speex/include" QMAKE_LIBDIR+="/usr/local/opt/speex/lib/" \
INCLUDEPATH+="/usr/local/opt/speexdsp/include" QMAKE_LIBDIR+="/usr/local/opt/speexdsp/lib/" \
INCLUDEPATH+="/usr/local/opt/libxslt/include" QMAKE_LIBDIR+="/usr/local/opt/libxslt/lib" \
QMAKE_LIBDIR+="/usr/local/opt/ffmpeg/lib" \
LIBS+=-lopencv_videoio \
CONFIG+=retroshare_plugins \
CONFIG+=rs_autologin \
CONFIG+=rs_use_native_dialogs \
CONFIG+=release \
..
## Compile RetroShare
You can now compile RetroShare into Qt Creator or with Terminal
$ cd /path/to/retroshare
$ qmake ..
$ make
You can change Target and SDK in *./retroshare.pri:82* changing value of QMAKE_MACOSX_DEPLOYMENT_TARGET and QMAKE_MAC_SDK
You can find compiled application on *./retroshare/retroshare-gui/src/retroshare.app*
You can find the compiled application at *./retroshare/retroshare-gui/src/retroshare.app*
## Issues
If you have issues with openssl (Undefined symbols for architecture x86_64) try to add to *~/.profile* file this or via Terminal
export PATH="/usr/local/opt/openssl/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
For Qt Creator -> QtCreator Projects -> Build -> Build Settings -> Build Steps -> Add Additional arguments:
LDFLAGS="-L/usr/local/opt/openssl/lib"
CPPFLAGS="-I/usr/local/opt/openssl/include"
## Copy Plugins
$ cp \
./plugins/FeedReader/lib/libFeedReader.dylib \
./plugins/VOIP/lib/libVOIP.dylib \
./plugins/RetroChess/lib/libRetroChess.dylib \
./retroshare-gui/src/RetroShare.app/Contents/Resources/
### Compile Retroshare-Service & Webui with CMake
before you can compile overwrite the file "asio/include/asio/detail/config.hpp" here is a fix for macos [
asio fix](https://github.com/chriskohlhoff/asio/commit/68df16d560c68944809bb2947360fe8035e9ae0a)
$ cd retroshare-service
$ mkdir build-dir
$ cd build-dir
$ cmake -DRS_WEBUI=ON -DCMAKE_BUILD_TYPE=Release ..
$ make

View File

@ -1,66 +0,0 @@
Mac OSX Build Instructions.
-------------------------------------------
There are several complications with building Retroshare under OSX.
1) Support Libraries must be built and installed seperately.
2) Universal and OSX 10.5 support is a little tricky, mainly due to the support libraries.
Additional Libraries
---------------------
* GnuPG Package, that comes with Retroshare OSX install image. (GnuPG-1.4.9.dmg)
GPG Development libraries
* libassuan (I'm using 2.0.1)
* libgpg-error (I'm using 1.9)
* libgpgme (I'm using 1.3.0)
These libraries use standard UNIX installation systems: AUTOCONF/AUTOMAKE (configure, make, etc)
Unfortunately, this makes it difficult and a little manual to compile Universal and 10.5 libraries.
UPNPC (for OSX and windows)
* miniupnpc (I'm using 1.0)
You will also need to install
* XCode (available on the Apple Install CDs)
* Qt4 (from trolltech.com)
First Compilation...
--------------------
The First challenge is to build Retroshare on your Mac. For this first compilation,
we only build for your specific machine, and not attempt a Generic / 10.5 / Univeral build.
1) Install / Compile all the packages listed above.
be sure to use a configure command like this where applicable to only create a static library.
./configure --enable-static=yes --enable-shared=no CFLAGS="-arch i386" CPPFLAGS="-arch i386"
2) Check out the Retroshare SVN.
3) compile libbitdht:
cd libbitdht/src
qmake
This recreates a xcodeproj file for compilation using XCode.
Open with Xcode, and build.
4) compile libretroshare: same way.
5) compile retroshare-gui: same way.
Creating Retroshare OSX Distribution Packages.
-----------------------------------------------
TODO, once I've got feedback on First Compilation!

224
build_scripts/OSX/deploy-macos.sh Executable file
View File

@ -0,0 +1,224 @@
#!/bin/bash
# ==============================================================================
# RetroShare macOS Portability & Deployment Packaging Script
# Designed for macOS environment with CMake
# ------------------------------------------------------------------------------
# Why this is more than a one-liner: macdeployqt IS the standard tool and does the
# heavy lifting (bundling Qt frameworks, fixing rpaths). The extra steps around it
# handle RetroShare specifics that macdeployqt does not cover:
# - RetroShare refuses to load plugins on macOS unless they end in ".dylib",
# so built plugins are copied/renamed accordingly.
# - macdeployqt skips .so plugins, so each plugin is passed via -executable=.
# - Qt imageformats (SVG) are force-copied (macdeployqt sometimes misses them).
# - Ad-hoc codesign is mandatory on Apple Silicon, otherwise the app won't run.
# ==============================================================================
set -e
# Always operate from the repository root, regardless of where this script lives
# (it resides under build_scripts/OSX/). All paths below are relative to the root.
cd "$(dirname "$0")/../.." || exit 1
# Build directory (override with: BUILD_DIR=mydir ./build_scripts/OSX/deploy-macos.sh)
BUILD_DIR="${BUILD_DIR:-Build-cmake}"
APP_NAME="RetroShare"
# 1. Vérifications initiales du dossier de build
if [ ! -d "$BUILD_DIR" ]; then
echo "ERROR: Build directory '$BUILD_DIR' not found. Please compile the project first!"
exit 1
fi
# On cherche l'application compilée, mais on exclut les dossiers de déploiement précédents
APP_BUNDLE=$(find "$BUILD_DIR" -maxdepth 3 -type d -name "retroshare-gui.app" ! -path "*/RetroShare-*" | head -n 1)
if [ -z "$APP_BUNDLE" ]; then
echo "ERROR: retroshare-gui.app not found in $BUILD_DIR. Please compile the GUI first."
exit 1
fi
echo "================================================================================"
echo " RETROSHARE MACOS DEPLOYMENT GENERATOR"
echo "================================================================================"
# 2. Détermination dynamique des variables de version
echo ">>> Extracting versioning info from Git and environment..."
DATE_STR=$(date +%Y%m%d)
GIT_DESC=$(git describe --tags --always --dirty 2>/dev/null || echo "0.6.7-unknown")
CLEAN_DESC=${GIT_DESC#v}
VERSION="$CLEAN_DESC"
GIT_SUFFIX=""
if [[ "$CLEAN_DESC" == *-* ]]; then
VERSION=$(echo "$CLEAN_DESC" | cut -d'-' -f1)
COMMIT_INFO=$(echo "$CLEAN_DESC" | cut -d'-' -f2-)
GIT_SUFFIX="-${DATE_STR}-${COMMIT_INFO}"
else
GIT_SUFFIX="-${DATE_STR}"
fi
# Detect the Qt version for the archive name (qmake reports it). Homebrew's qt@5
# is keg-only so its qmake is usually not in PATH; fall back to it, then to a
# generic label if nothing is found.
QT_VERSION=""
if command -v qmake &> /dev/null; then
QT_VERSION=$(qmake -query QT_VERSION 2>/dev/null)
fi
if [[ ! "$QT_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
QT5_QMAKE="$(brew --prefix qt@5 2>/dev/null)/bin/qmake"
[ -x "$QT5_QMAKE" ] && QT_VERSION=$("$QT5_QMAKE" -query QT_VERSION 2>/dev/null)
fi
if [[ ! "$QT_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
QT_VERSION="UnknownQt"
fi
MACVERSION=$(sw_vers -productVersion 2>/dev/null || echo "UnknownOS")
ARCH=$(uname -m)
ARCHIVE_BASE="RetroShare-${VERSION}-macOS-${ARCH}${GIT_SUFFIX}-Qt-${QT_VERSION}"
DEPLOY_DIR="${BUILD_DIR}/${ARCHIVE_BASE}"
echo " Target Package Name: ${ARCHIVE_BASE}"
echo " Deploy Directory: ${DEPLOY_DIR}"
echo ">>> Cleaning up previous deployment directories..."
rm -rf "${BUILD_DIR}/RetroShare-"*"-macOS-"*
mkdir -p "$DEPLOY_DIR"
# 3. Copie de l'application dans notre dossier de déploiement
echo ">>> Copying retroshare-gui.app..."
cp -R "$APP_BUNDLE" "$DEPLOY_DIR/"
TARGET_APP="$DEPLOY_DIR/$(basename "$APP_BUNDLE")"
echo ">>> Creating target directory layout..."
APP_RESOURCES="$TARGET_APP/Contents/Resources"
APP_MACOS="$TARGET_APP/Contents/MacOS"
mkdir -p "$APP_MACOS/extensions6"
mkdir -p "$APP_RESOURCES/sounds"
mkdir -p "$APP_RESOURCES/translations"
mkdir -p "$APP_RESOURCES/webui"
# 4. Copie des exécutables annexes (service, friendserver) s'ils existent (non-bloquant)
echo ">>> Copying additional executables if they exist..."
for exe in retroshare-service retroshare-friendserver; do
found_exe=$(find "$BUILD_DIR" -type f -name "$exe" -perm -0111 | grep -v "CMakeFiles" | head -n 1)
if [ -n "$found_exe" ]; then
echo " Found and copying: $found_exe"
cp "$found_exe" "$APP_MACOS/"
else
echo " INFO: Executable '$exe' not found. Skipping."
fi
done
# Copie des plugins
echo ">>> Copying RetroShare plugins..."
if [ -d "$BUILD_DIR/plugins" ]; then
mkdir -p "$APP_RESOURCES/extensions6"
for plugin in $(find "$BUILD_DIR/plugins" -type f \( -name "*.dylib" -o -name "*.so" \)); do
filename=$(basename "$plugin")
# RetroShare sur macOS refuse de charger les plugins s'ils ne finissent pas par .dylib !
newname="${filename%.*}.dylib"
cp "$plugin" "$APP_RESOURCES/$newname"
cp "$plugin" "$APP_RESOURCES/extensions6/$newname"
done
echo " Plugins copied and renamed to .dylib in $APP_RESOURCES/ and $APP_RESOURCES/extensions6/."
else
echo " INFO: Plugins directory not found. Skipping plugins."
fi
# 5. Copie des ressources statiques
echo ">>> Copying RetroShare static assets..."
if [ -d "retroshare-gui/src/sounds" ]; then
cp -r retroshare-gui/src/sounds/* "$APP_RESOURCES/sounds/" 2>/dev/null || true
fi
if [ -f "libbitdht/src/bitdht/bdboot.txt" ]; then
cp "libbitdht/src/bitdht/bdboot.txt" "$APP_RESOURCES/"
echo " Copied bdboot.txt"
fi
if [ -d "retroshare-gui/src/translations" ]; then
find "retroshare-gui/src/translations" -name "*.qm" -exec cp {} "$APP_RESOURCES/translations/" \; 2>/dev/null || true
fi
if [ -d "retroshare-webui/src" ]; then
cp -r retroshare-webui/src/* "$APP_RESOURCES/webui/" 2>/dev/null || true
echo " WebUI copied to app resources."
fi
# 6. Mise à jour du Info.plist
echo ">>> Updating Info.plist..."
PLIST_PATH="$TARGET_APP/Contents/Info.plist"
if command -v /usr/libexec/PlistBuddy &> /dev/null; then
/usr/libexec/PlistBuddy -c "Delete :CFBundleGetInfoString" "$PLIST_PATH" 2>/dev/null || true
/usr/libexec/PlistBuddy -c "Delete :CFBundleVersion" "$PLIST_PATH" 2>/dev/null || true
/usr/libexec/PlistBuddy -c "Add :CFBundleVersion string $VERSION" "$PLIST_PATH" 2>/dev/null || true
/usr/libexec/PlistBuddy -c "Delete :CFBundleShortVersionString" "$PLIST_PATH" 2>/dev/null || true
/usr/libexec/PlistBuddy -c "Add :CFBundleShortVersionString string $VERSION" "$PLIST_PATH" 2>/dev/null || true
/usr/libexec/PlistBuddy -c "Delete :NSRequiresAquaSystemAppearance" "$PLIST_PATH" 2>/dev/null || true
else
echo " WARNING: PlistBuddy not found, skipping Info.plist update."
fi
# 7. Déploiement Qt via macdeployqt
echo ">>> Running macdeployqt..."
if command -v macdeployqt &> /dev/null; then
# Forcer la copie des plugins d'images (SVG, etc.) au cas où macdeployqt les oublie
MACDEPLOY_BIN=$(command -v macdeployqt)
QT_BASE=$(dirname "$(dirname "$MACDEPLOY_BIN")")
QT_PLUGINS_DIR="$QT_BASE/share/qt/plugins"
if [ ! -d "$QT_PLUGINS_DIR" ]; then
QT_PLUGINS_DIR="$QT_BASE/plugins"
fi
if [ -d "$QT_PLUGINS_DIR/imageformats" ]; then
echo ">>> Forcing copy of Qt imageformats plugins (SVG support) from $QT_PLUGINS_DIR..."
mkdir -p "$TARGET_APP/Contents/PlugIns/imageformats"
cp "$QT_PLUGINS_DIR/imageformats/"*.dylib "$TARGET_APP/Contents/PlugIns/imageformats/" 2>/dev/null || true
fi
# Par défaut macdeployqt ignore les fichiers .so, il faut le forcer avec -executable
EXTRA_EXECS=""
for plugin in "$TARGET_APP"/Contents/Resources/*.so "$TARGET_APP"/Contents/Resources/*.dylib "$TARGET_APP"/Contents/Resources/extensions6/*.so "$TARGET_APP"/Contents/Resources/extensions6/*.dylib "$TARGET_APP"/Contents/PlugIns/imageformats/*.dylib; do
if [ -f "$plugin" ]; then
EXTRA_EXECS="$EXTRA_EXECS -executable=$plugin"
fi
done
# macdeployqt copie les frameworks et ajuste les rpaths
macdeployqt "$TARGET_APP" -always-overwrite $EXTRA_EXECS
echo ">>> Ad-hoc code signing (required for Apple Silicon)..."
if command -v codesign &> /dev/null; then
# On signe d'abord toutes les bibliothèques, plugins (.so/.dylib) et frameworks individuellement
find "$TARGET_APP" -type f \( -name "*.dylib" -o -name "*.so" \) -exec codesign --force --sign - {} \; 2>/dev/null || true
find "$TARGET_APP" -type d -name "*.framework" -exec codesign --force --sign - {} \; 2>/dev/null || true
# Puis on signe l'application entière
codesign --force --deep --sign - "$TARGET_APP"
fi
echo ">>> Creating dmg archive using hdiutil..."
DMG_FILE="${BUILD_DIR}/${ARCHIVE_BASE}.dmg"
rm -f "$DMG_FILE"
if command -v hdiutil &> /dev/null; then
hdiutil create -volname "${APP_NAME}" -srcfolder "$TARGET_APP" -ov -format UDZO "$DMG_FILE"
if [ -f "$DMG_FILE" ]; then
echo "================================================================================"
echo "SUCCESS: Standalone package created at: $DMG_FILE"
echo "================================================================================"
else
echo "WARNING: .dmg not generated."
fi
else
echo "WARNING: hdiutil not found, cannot create .dmg."
fi
else
echo " WARNING: macdeployqt tool not found in PATH! Make sure Qt is installed and its bin folder is in PATH."
echo " Cannot bundle Qt dependencies or create DMG automatically."
echo "================================================================================"
echo "SUCCESS: App bundle generated at: ${TARGET_APP}"
echo "================================================================================"
fi

View File

@ -0,0 +1,51 @@
#!/bin/sh
APP="RetroShare"
RSVERSION="0.6.7a"
QTVERSION="Qt-5.15.11"
# Install the 7z to create dmg archives.
#brew list p7zip || brew install p7zip
# Package your app
echo "Packaging retroshare..."
#cd ${project_dir}/build/macOS/clang/x86_64/release/
cd retroshare-gui/src/
# Remove build directories that you don't want to deploy
rm -rf moc
rm -rf obj
rm -rf qrc
# This sets the CFBundleVersion & CFBundleShortVersionString string
/usr/libexec/PlistBuddy -c "Delete :CFBundleGetInfoString" retroshare.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c "Add :CFBundleVersion string $RSVERSION" retroshare.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c "Add :CFBundleShortVersionString string $RSVERSION" retroshare.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c "Delete :NSRequiresAquaSystemAppearance" retroshare.app/Contents/Info.plist
# This automatically creates retroshare.dmg
echo "Creating dmg archive..."
macdeployqt retroshare.app -dmg
DATE=`date +"%m-%d-%Y"`
MACVERSION=`sw_vers -productVersion`
#RSVERSION=`git describe --abbrev=0 --tags`
GITHEAD=`git rev-parse --short HEAD`
mv $APP.dmg "$APP-$RSVERSION-$GITHEAD-$DATE-MacOS-$MACVERSION-$QTVERSION.dmg"
# You can use the appdmg command line app to create your dmg file if
# you want to use a custom background and icon arrangement. I'm still
# working on this for my apps, myself. If you want to do this, you'll
# remove the -dmg option above.
# appdmg json-path YourApp_${TRAVIS_TAG}.dmg
# Copy other project files
cp "../../libbitdht/src/bitdht/bdboot.txt" "retroshare.app/Contents/Resources/"
cp "../../plugins/FeedReader/lib/libFeedReader.dylib" "retroshare.app/Contents/Resources/"
cp -R "sounds" "retroshare.app/Contents/Resources/sounds"
# cp "${project_dir}/README.md" "README.md"
# cp "${project_dir}/LICENSE" "LICENSE"
# cp "${project_dir}/Qt License" "Qt License"

View File

@ -1,94 +0,0 @@
commit 51f554f909086f4baca7be215d5edacab744dea4
Author: Kartikaya Gupta <kats@calvin.staktrace.com>
Date: Wed Mar 7 23:30:48 2012 -0500
Modifications needed to get build working on Mac OS X 10.6
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3e90033
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+*.o
+Makefile
+libbitdht/src/lib/
+libretroshare/src/lib/
+retroshare-gui/src/RetroShare.app/
+retroshare-gui/src/temp/
diff --git a/libretroshare/src/libretroshare.pro b/libretroshare/src/libretroshare.pro
index 6f35e01..267cc91 100644
--- a/libretroshare/src/libretroshare.pro
+++ b/libretroshare/src/libretroshare.pro
@@ -312,7 +312,7 @@ mac {
OBJECTS_DIR = temp/obj
MOC_DIR = temp/moc
#DEFINES = WINDOWS_SYS WIN32 STATICLIB MINGW
- #DEFINES *= MINIUPNPC_VERSION=13
+ DEFINES *= MINIUPNPC_VERSION=13
DESTDIR = lib
#miniupnp implementation files
@@ -326,12 +326,11 @@ mac {
# Beautiful Hack to fix 64bit file access.
QMAKE_CXXFLAGS *= -Dfseeko64=fseeko -Dftello64=ftello -Dfopen64=fopen -Dvstatfs64=vstatfs
- UPNPC_DIR = ../../../miniupnpc-1.0
- GPG_ERROR_DIR = ../../../../libgpg-error-1.7
- GPGME_DIR = ../../../../gpgme-1.1.8
+ UPNPC_DIR = ../../../miniupnpc-1.3
+ GPG_ERROR_DIR = ../../../libgpg-error-1.10
+ GPGME_DIR = ../../../gpgme-1.3.1
- INCLUDEPATH += . $${UPNPC_DIR}
- #INCLUDEPATH += . $${UPNPC_DIR} $${GPGME_DIR}/src $${GPG_ERROR_DIR}/src
+ INCLUDEPATH += . $${UPNPC_DIR} $${GPGME_DIR}/src $${GPG_ERROR_DIR}/src
}
################################# FreeBSD ##########################################
diff --git a/libretroshare/src/pqi/sslfns.cc b/libretroshare/src/pqi/sslfns.cc
index 2588cb8..305433f 100644
--- a/libretroshare/src/pqi/sslfns.cc
+++ b/libretroshare/src/pqi/sslfns.cc
@@ -586,8 +586,8 @@ X509 *loadX509FromDER(const uint8_t *ptr, uint32_t len)
X509 *tmp = NULL;
#ifdef __APPLE__
// This depends on which version you are compiling for... OSX10.5 doesn't have consts (old OpenSSL!)
- unsigned char **certptr = (unsigned char **) &ptr;
- //const unsigned char **certptr = (const unsigned char **) &ptr;
+ //unsigned char **certptr = (unsigned char **) &ptr;
+ const unsigned char **certptr = (const unsigned char **) &ptr;
#else
const unsigned char **certptr = (const unsigned char **) &ptr;
#endif
diff --git a/retroshare-gui/src/RetroShare.pro b/retroshare-gui/src/RetroShare.pro
index adcb5a0..ffbf669 100644
--- a/retroshare-gui/src/RetroShare.pro
+++ b/retroshare-gui/src/RetroShare.pro
@@ -140,19 +140,21 @@ win32 {
macx {
# ENABLE THIS OPTION FOR Univeral Binary BUILD.
- CONFIG += ppc x86
- QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4
+ # CONFIG += ppc x86
+ QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6
CONFIG += version_detail_bash_script
LIBS += ../../libretroshare/src/lib/libretroshare.a
- LIBS += -lssl -lcrypto -lz -lgpgme -lgpg-error -lassuan
- LIBS += ../../../miniupnpc-1.0/libminiupnpc.a
+ LIBS += ../../../libgpg-error-1.10/build/lib/libgpg-error.a
+ LIBS += ../../../gpgme-1.3.1/build/lib/libgpgme.a
+ LIBS += ../../../miniupnpc-1.3/libminiupnpc.a
+ LIBS += -lssl -lcrypto -lz -lassuan
LIBS += -framework CoreFoundation
LIBS += -framework Security
# LIBS += -framework CoreServices
- INCLUDEPATH += .
+ INCLUDEPATH += . ../../../gpgme-1.3.1/src
#DEFINES* = MAC_IDLE # for idle feature
CONFIG -= uitools

View File

@ -0,0 +1,129 @@
## Compilation on Red Hat-based Linux
### Install package dependencies:
#### RedHat/Fedora
```bash
sudo dnf install mesa-libGL-devel gcc cmake rapidjson-devel \
libupnp openssl sqlcipher sqlcipher-devel \
botan2 botan2-devel json-c-devel bzip2-devel asio-devel libsecret libXScrnSaver-devel
```
To compile with Qt5:
```bash
sudo dnf install qt5-qtbase-devel qt5-qtmultimedia qt5-qtx11extras
```
To compile with Qt6:
```bash
sudo dnf install qt6-qtbase-devel qt6-qtmultimedia-devel qt6-qt5compat-devel
```
Additional dependencies for Feedreader plugin:
```bash
sudo dnf install libxml2-devel libxslt-devel libcurl-devel
```
### Checkout the source code
```bash
cd ~
git clone https://github.com/RetroShare/RetroShare.git retroshare
```
### Checkout the submodules
```bash
cd retroshare
git submodule update --init --remote libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/
git submodule update --init --remote supportlibs/librnp supportlibs/restbed supportlibs/rapidjson
```
### Compile
```bash
qmake CONFIG+=release CONFIG+=rs_jsonapi CONFIG+=rs_webui
make
```
The executable produced will be:
```bash
./retroshare-gui/src/retroshare
```
### Install
```bash
sudo make install
```
The executable produced will be:
```bash
~/usr/bin/RetroShare
```
### For packagers
Packagers can use PREFIX and LIB\_DIR to customize the installation paths:
```bash
qmake PREFIX=/usr LIB_DIR=/usr/lib64 "CONFIG-=debug" "CONFIG+=release"
make
make INSTALL_ROOT=${PKGDIR} install
```
### SQLCipher
If libsqlcipher is not available as a package
You need to place sqlcipher so that the hierarchy is:
~Home
|
+--- retroshare
|
+--- lib
|
+---- sqlcipher
```bash
mkdir lib
cd lib
git clone https://github.com/sqlcipher/sqlcipher.git --depth=1 --branch v3.4.1
cd sqlcipher
./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"
make
cd ..
```
### Build infos
Note: If you installed Qt6 you need to use `qmake6` on the command line.
For the `FeedReader` it is required to append the config option `CONFIG+=retroshare_plugins`.
Make sure `plugins/plugins.pro` contains `FeedReader` in the list of plugins to compile.
Do not mix plugins compiled with Qt5 with those compiled with Qt6. They work only if they are compiled
with the same Qt version as RetroShare.
Voip is outdated and is not compileable on the latest Debian.
For `Autologin` it is required to append the config option `CONFIG+=rs_autologin`.
### Build options
* Mandatory
* release or debug: normally you would like to use the release option
* Extra features (optional)
* rs_autologin: enable autologin
* retroshare_plugins: build plugins
* rs_webui: enable Web interface
* rs_jsonapi: enable json api interface, required by rs_webui
* gxsthewire: enable Wire service (experimental)
* wikipoos: enable Wiki service
* rs_use_native_dialogs: enable native dialogs (may cause crashes with some versions of Gtk)
* rs_deep_channels_index: build with deep channel indexing support
* rs_deep_files_index: build with deep file indexing support
* "CONFIG+=..." enable other extra compile time features, you can find the almost complete list in file *&lt;sourcefolder&gt;\retroshare.pri*
Example:
```batch
qmake CONFIG+=debug CONFIG+=release CONFIG+=rs_use_native_dialog CONFIG+=rs_gui_cmark
qmake CONFIG+=rs_jsonapi CONFIG+=rs_webui CONFIG+=rs_autologin
```

View File

@ -1,10 +1,11 @@
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Name=RetroShare
Comment=Securely share files with your friends
Comment=Securely communicate with your friends
Exec=/usr/bin/retroshare %U
Icon=/usr/share/pixmaps/retroshare.xpm
Icon=retroshare.xpm
Terminal=false
Type=Application
Categories=Network;P2P;
Categories=Network;Email;InstantMessaging;Chat;Feed;FileTransfer;P2P
MimeType=x-scheme-handler/retroshare;

View File

@ -8,7 +8,7 @@ Requirements: about 12 GB of free space
The resulting binary is a 32-bit build of Retroshare which will also work
fine on a 64-bit system.
**If you want to make complet solution without debugging it, prefer to use \build_scripts\Windows-msys2\build.bat**
**If you want to make complete solution without debugging it, prefer to use \build_scripts\Windows-msys2\build.bat**
This batch will install and build all for you.
@ -18,8 +18,8 @@ At the end, you'll get at ..\\*-msys2\deploy\ the Portable 7zip file.
### MSYS2 INSTALLATION (for editing or debugging)
Download MSYS2 from [MSYS2](http://www.msys2.org/). Get the i686 version
if you run a 32-bit Windows or the x86_64 if you run a 64-bit Windows.
Download MSYS2 from [MSYS2](http://www.msys2.org/). Installing
MSYS2 requires 64 bit Windows 10 or newer.
Run the installer and install MSYS2.
@ -40,26 +40,29 @@ Run MSYS2 MSYS again and finish updating with:
Install the default programs needed to build:
pacman -S base-devel git wget p7zip gcc perl ruby python2 doxygen cmake
pacman -S base-devel git wget p7zip gcc perl ruby doxygen cmake
Install the 32-bit toolchain:
Install the 64-bit toolchain:
pacman -S mingw-w64-i686-toolchain
pacman -S mingw-w64-x86_64-toolchain
Install all needed dependencies:
pacman -S mingw-w64-i686-miniupnpc
pacman -S mingw-w64-i686-libmicrohttpd
pacman -S mingw-w64-i686-libxslt
pacman -S mingw-w64-i686-xapian-core
pacman -S mingw-w64-i686-sqlcipher
pacman -S mingw-w64-i686-qt5
pacman -S mingw32/mingw-w64-i686-cmake
pacman -S mingw-w64-i686-rapidjson
pacman -S mingw-w64-x86_64-miniupnpc
pacman -S mingw-w64-x86_64-libxslt
pacman -S mingw-w64-x86_64-xapian-core
pacman -S mingw-w64-x86_64-sqlcipher
pacman -S mingw-w64-x86_64-qt5-base
pacman -S mingw-w64-x86_64-qt5-multimedia
pacman -S mingw-w64-x86_64-ccmake
pacman -S mingw-w64-x86_64-rapidjson
pacman -S mingw-w64-x86_64-json-c
pacman -S mingw-w64-x86_64-libbotan
pacman -S mingw-w64-x86_64-asio
If you want to use QtCreator as IDE, prefer using this one publish by MSYS2 as all build Kit are already setted.
pacman -S mingw-w64-i686-qt-creator
pacman -S mingw-w64-x86_64-qt-creator
*You can start it from MSYS2 terminal.*
@ -67,7 +70,7 @@ We're done installing MSYS2, close the shell terminal.
### BUILDING RETROSHARE
Now run the MSYS2 MinGW 32-bit shell terminal (it's in the start menu).
Now run the MSYS2 MinGW 64-bit shell terminal (it's in the start menu).
We will use it to checkout Retroshare and build it:
git clone https://github.com/RetroShare/RetroShare.git

View File

@ -43,7 +43,9 @@ set NSIS_PARAM=%NSIS_PARAM% /DDEPLOYDIR="%RsDeployPath%"
set NSIS_PARAM=%NSIS_PARAM% /DOUTDIR="%RsPackPath%"
set NSIS_PARAM=%NSIS_PARAM% /DINSTALLERADD="%RsArchiveAdd%"
set NSIS_PARAM=%NSIS_PARAM% /DARCHITECTURE="%RsArchitecture%"
set NSIS_PARAM=%NSIS_PARAM% /DTOOLCHAIN="%RsToolchain%"
set NSIS_PARAM=%NSIS_PARAM% /DREVISION=%RsVersion.Extra%
set NSIS_PARAM=%NSIS_PARAM% /DQTVERSION=%QtVersion%
set QtMainVersion=%QtVersion:~0,1%
@ -53,7 +55,10 @@ rem makensis %NSIS_PARAM% "%SourcePath%\build_scripts\Windows-msys2\installer\re
rem pushd "%SourcePath%\build_scripts\Windows-msys2\installer"
rem %EnvMSYS2Cmd% "makensis $0 retroshare-Qt%QtMainVersion%.nsi" "%NSIS_PARAM%"
rem popd
"%RsMinGWPath%\bin\makensis" %NSIS_PARAM% "%SourcePath%\build_scripts\Windows-msys2\installer\retroshare-Qt%QtMainVersion%.nsi"
rem Currently no need for separate nsi files
rem "%RsMinGWPath%\bin\makensis" %NSIS_PARAM% "%SourcePath%\build_scripts\Windows-msys2\installer\retroshare-Qt%QtMainVersion%.nsi"
"%RsMinGWPath%\bin\makensis" %NSIS_PARAM% "%SourcePath%\build_scripts\Windows-msys2\installer\retroshare.nsi"
exit /B %ERRORLEVEL%

View File

@ -15,23 +15,37 @@ call "%~dp0env-base.bat" %*
if errorlevel 2 exit /B 2
if errorlevel 1 goto error_env
title Build - %SourceName%-%RsBuildConfig% Qt-%QtVersion% %RsToolchain% [Prerequisites]
if not "%ParamNoupdate%"=="1" (
:: Install needed things
%EnvMSYS2Cmd% "pacman --noconfirm --needed -S make git mingw-w64-%RsMSYS2Architecture%-toolchain mingw-w64-%RsMSYS2Architecture%-qt5 mingw-w64-%RsMSYS2Architecture%-miniupnpc mingw-w64-%RsMSYS2Architecture%-sqlcipher mingw-w64-%RsMSYS2Architecture%-cmake mingw-w64-%RsMSYS2Architecture%-rapidjson"
%EnvMSYS2Cmd% "pacman --noconfirm --needed -S make git mingw-w64-%RsMSYS2Architecture%-toolchain mingw-w64-%RsMSYS2Architecture%-qt%ParamQtVersion% mingw-w64-%RsMSYS2Architecture%-miniupnpc mingw-w64-%RsMSYS2Architecture%-sqlcipher mingw-w64-%RsMSYS2Architecture%-cmake mingw-w64-%RsMSYS2Architecture%-rapidjson"
:: rnp
%EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-json-c mingw-w64-%RsMSYS2Architecture%-libbotan"
:: Webui
if "%ParamWebui%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-doxygen"
if "%ParamWebui%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-doxygen mingw-w64-%RsMSYS2Architecture%-asio"
:: Plugins
if "%ParamPlugins%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-speex mingw-w64-%RsMSYS2Architecture%-speexdsp mingw-w64-%RsMSYS2Architecture%-curl mingw-w64-%RsMSYS2Architecture%-libxslt mingw-w64-%RsMSYS2Architecture%-opencv mingw-w64-%RsMSYS2Architecture%-ffmpeg"
:: Clang
if "%ParamClang%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-clang"
if "%ClangCompiler%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-clang"
:: Indexing
if "%ParamIndexing%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-xapian-core mingw-w64-%RsMSYS2Architecture%-libvorbis mingw-w64-%RsMSYS2Architecture%-flac mingw-w64-%RsMSYS2Architecture%-taglib"
)
:: Fix webui compilation (TODO: remove when whole RS switched to cmake)
if "%ParamWebui%"=="1" (
pushd "%SourcePath%"
copy "%SourcePath%\libretroshare\src\jsonapi\jsonapi-generator-doxygen.conf" "%SourcePath%\jsonapi-generator\src\jsonapi-generator-doxygen.conf" %Quite%
copy "%SourcePath%\libretroshare\src\jsonapi\async-method-wrapper-template.cpp.tmpl" "%SourcePath%\jsonapi-generator\src\async-method-wrapper-template.cpp.tmpl" %Quite%
copy "%SourcePath%\libretroshare\src\jsonapi\method-wrapper-template.cpp.tmpl" "%SourcePath%\jsonapi-generator\src\method-wrapper-template.cpp.tmpl" %Quite%
git update-index --assume-unchanged "jsonapi-generator\src\jsonapi-generator-doxygen.conf" "jsonapi-generator\src\async-method-wrapper-template.cpp.tmpl" "jsonapi-generator\src\method-wrapper-template.cpp.tmpl"
popd
)
:: Initialize environment
call "%~dp0env.bat" %*
if errorlevel 2 exit /B 2
@ -41,7 +55,7 @@ echo.
echo === Version
echo.
title Build - %SourceName%-%RsBuildConfig% [Version]
title Build - %SourceName%-%RsBuildConfig% Qt-%QtVersion% %RsToolchain% [Version]
pushd "%SourcePath%\retroshare-gui\src\gui\images"
:: Touch resource file
@ -55,7 +69,7 @@ echo.
echo === qmake
echo.
title Build - %SourceName%-%RsBuildConfig% [qmake]
title Build - %SourceName%-%RsBuildConfig% Qt-%QtVersion% %RsToolchain% [qmake]
set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% "CONFIG+=%RsBuildConfig%"
if "%ParamAutologin%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% "CONFIG+=rs_autologin"
@ -66,14 +80,14 @@ echo %RS_QMAKE_CONFIG% > buildinfo.txt
echo %RsBuildConfig% >> buildinfo.txt
echo %RsArchitecture% >> buildinfo.txt
echo Qt %QtVersion% >> buildinfo.txt
echo %RsCompiler% >> buildinfo.txt
echo %RsToolchain% >> buildinfo.txt
call "%ToolsPath%\msys2-path.bat" "%SourcePath%" MSYS2SourcePath
call "%ToolsPath%\msys2-path.bat" "%EnvMSYS2Path%" MSYS2EnvMSYS2Path
if "%ParamClang%"=="1" (
%EnvMSYS2Cmd% "qmake "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-clang-g++ %RS_QMAKE_CONFIG%"
if "%ClangCompiler%"=="1" (
%EnvMSYS2Cmd% "%QMakeCmd% "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-clang-g++ %RS_QMAKE_CONFIG%"
) else (
%EnvMSYS2Cmd% "qmake "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-g++ %RS_QMAKE_CONFIG%"
%EnvMSYS2Cmd% "%QMakeCmd% "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-g++ %RS_QMAKE_CONFIG%"
)
if errorlevel 1 goto error
@ -81,16 +95,11 @@ echo.
echo === make
echo.
title Build - %SourceName%-%RsBuildConfig% [make]
title Build - %SourceName%-%RsBuildConfig% Qt-%QtVersion% %RsToolchain% [make]
%EnvMSYS2Cmd% "make -j %CoreCount%"
if errorlevel 1 goto error
:: Webui
if "%ParamWebui%"=="1" (
call "%~dp0..\tools\webui.bat"
)
:error
popd

View File

@ -1,27 +1,56 @@
:: Process commandline parameter
set Param32=0
set Param64=0
set ParamRelease=0
set ParamDebug=0
set ParamAutologin=0
set ParamPlugins=0
set ParamTor=0
set ParamWebui=0
set ParamClang=0
set ClangCompiler=0
set ParamIndexing=0
set ParamFriendserver=0
set ParamNoupdate=0
set CoreCount=%NUMBER_OF_PROCESSORS%
set RS_QMAKE_CONFIG=
set RsToolchain=
set ParamQtVersion=5
set tcc=0
set QtVersionCount=0
:parameter_loop
if "%~1" NEQ "" (
for /f "tokens=1,2 delims==" %%a in ("%~1") do (
if "%%~a"=="32" (
set Param32=1
set RsToolchain=mingw32
set /A tcc=tcc+1
) else if "%%~a"=="64" (
set Param64=1
set RsToolchain=mingw64
set /A tcc=tcc+1
) else if "%%~a"=="mingw32" (
set RsToolchain=mingw32
set /A tcc=tcc+1
) else if "%%~a"=="mingw64" (
set RsToolchain=mingw64
set /A tcc=tcc+1
) else if "%%~a"=="ucrt64" (
set RsToolchain=ucrt64
set /A tcc=tcc+1
) else if "%%~a"=="clang64" (
set RsToolchain=clang64
set /A tcc=tcc+1
) else if "%%~a"=="clang32" (
set RsToolchain=clang32
set /A tcc=tcc+1
) else if "%%~a"=="clangarm64" (
set RsToolchain=clangarm64
set /A tcc=tcc+1
) else if "%%~a"=="release" (
set ParamRelease=1
) else if "%%~a"=="qt5" (
set ParamQtVersion=5
set /A QtVersionCount+=1
) else if "%%~a"=="qt6" (
set ParamQtVersion=6
set /A QtVersionCount+=1
) else if "%%~a"=="debug" (
set ParamDebug=1
) else if "%%~a"=="autologin" (
@ -34,10 +63,10 @@ if "%~1" NEQ "" (
set ParamWebui=1
) else if "%%~a"=="singlethread" (
set CoreCount=1
) else if "%%~a"=="clang" (
set ParamClang=1
) else if "%%~a"=="indexing" (
set ParamIndexing=1
) else if "%%~a"=="friendserver" (
set ParamFriendserver=1
) else if "%%~a"=="noupdate" (
set ParamNoupdate=1
) else if "%%~a"=="CONFIG+" (
@ -52,32 +81,49 @@ if "%~1" NEQ "" (
goto parameter_loop
)
if "%Param32%"=="1" (
if "%Param64%"=="1" (
echo.
echo 32-bit or 64-bit?
goto :usage
)
if %tcc% NEQ 1 (
echo Multiple or no toolchain specified
goto :usage
)
set RsBit=32
if %QtVersionCount% GTR 1 (
echo Multiple Qt versions specified
goto :usage
)
if "%ParamQtVersion%" NEQ "5" if "%ParamQtVersion%" NEQ "6" (
echo Wrong Qt version specified
goto :usage
)
if "%RsToolchain%"=="mingw32" (
set RsArchitecture=x86
set RsMSYS2Architecture=i686
)
if "%Param64%"=="1" (
set RsBit=64
set MSYSTEM=MINGW32
) else if "%RsToolchain%"=="mingw64" (
set RsArchitecture=x64
set RsMSYS2Architecture=x86_64
set MSYSTEM=MINGW64
) else if "%RsToolchain%"=="ucrt64" (
set RsArchitecture=x64
set RsMSYS2Architecture=ucrt-x86_64
set MSYSTEM=UCRT64
) else if "%RsToolchain%"=="clang64" (
set RsArchitecture=x64
set RsMSYS2Architecture=clang-x86_64
set MSYSTEM=CLANG64
set ClangCompiler=1
) else if "%RsToolchain%"=="clang32" (
set RsArchitecture=x86
set RsMSYS2Architecture=clang-i686
set MSYSTEM=CLANG32
set ClangCompiler=1
) else if "%RsToolchain%"=="clangarm64" (
set RsArchitecture=arm64
set RsMSYS2Architecture=clang-aarch64
set MSYSTEM=CLANGARM64
)
if "%ParamClang%"=="1" (
set RsCompiler=Clang
) else (
set RsCompiler=GCC
)
if "%RsBit%"=="" goto :usage
if "%ParamRelease%"=="1" (
if "%ParamDebug%"=="1" (
echo.
@ -104,23 +150,31 @@ if "%ParamIndexing%"=="1" (
set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% "CONFIG+=rs_deep_channels_index" "CONFIG+=rs_deep_files_index" "CONFIG+=rs_deep_files_index_ogg" "CONFIG+=rs_deep_files_index_flac" "CONFIG+=rs_deep_files_index_taglib"
)
if "%ParamFriendserver%"=="1" (
set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% "CONFIG+=rs_efs"
)
exit /B 0
:usage
echo.
echo Usage: 32^|64 release^|debug [autologin plugins webui singlethread clang indexing noupdate] ["CONFIG+=..."]
echo Usage: 32^|64^|other release^|debug qt5^|qt6 [autologin plugins webui singlethread clang indexing friendserver noupdate] ["CONFIG+=..."]
echo.
echo Mandatory parameter
echo 32^|64 32-bit or 64-bit Version
echo 32^|64 32-bit or 64-bit version (same as mingw32 or mingw64)
echo Or you can specify any other toolchain supported by msys2:
echo mingw32^|mingw64^|clang32^|clang64^|ucrt64^|clangarm64
echo More info: https://www.msys2.org/docs/environments
echo release^|debug Build release or debug version
echo qt5^|qt6 Build with Qt 5 (default) or Qt 6
echo.
echo Optional parameter (need clean when changed)
echo autologin Build with autologin
echo plugins Build plugins
echo webui Enable JsonAPI and pack webui files
echo singlethread Use only 1 thread for building
echo clang Use clang compiler instead of GCC
echo indexing Build with deep channel and file indexing support
echo friendserver Enable friendserver support
echo noupdate Skip updating the libraries
echo "CONFIG+=..." Enable some extra features, you can find the almost complete list in retroshare.pri
echo.

View File

@ -1,8 +1,6 @@
call "%~dp0env-base.bat" %*
if errorlevel 2 exit /B 2
if errorlevel 1 goto error_env
set MSYSTEM=MINGW%RsBit%
if errorlevel 1 exit /B 1
set BuildPath=%EnvRootPath%\builds
set DeployPath=%EnvRootPath%\deploy
@ -10,17 +8,23 @@ set DeployPath=%EnvRootPath%\deploy
if not exist "%BuildPath%" mkdir "%BuildPath%"
if not exist "%DeployPath%" mkdir "%DeployPath%"
set QMakeCmd=
if "%ParamQtVersion%"=="5" set QMakeCmd=qmake-qt5
if "%ParamQtVersion%"=="6" set QMakeCmd=qmake6
if "%QMakeCmd%"=="" %cecho% error "Unknown Qt version %ParamQtVersion%." & exit /B 1
:: Get Qt version
call "%ToolsPath%\get-qt-version.bat" QtVersion
call "%ToolsPath%\get-qt-version.bat" QtVersion %QMakeCmd%
if errorlevel 1 %cecho% error "Cannot get Qt version." & exit /B 1
if "%QtVersion%"=="" %cecho% error "Cannot get Qt version." & exit /B 1
set RsMinGWPath=%EnvMSYS2BasePath%\mingw%RsBit%
set RsMinGWPath=%EnvMSYS2BasePath%\%RsToolchain%
set RsBuildPath=%BuildPath%\Qt-%QtVersion%-%RsArchitecture%-%RsCompiler%-%RsBuildConfig%
set RsDeployPath=%DeployPath%\Qt-%QtVersion%%RsType%-%RsArchitecture%-%RsCompiler%-%RsBuildConfig%
set RsBuildPath=%BuildPath%\Qt-%QtVersion%-%RsToolchain%-%RsBuildConfig%
set RsDeployPath=%DeployPath%\Qt-%QtVersion%-%RsToolchain%%RsType%-%RsBuildConfig%
set RsPackPath=%DeployPath%
set RsArchiveAdd=
set RsWebuiPath=%RootPath%\%SourceName%-webui
set RsWebuiBuildPath=%RsBuildPath%\retroshare-webui\webui
if not exist "%~dp0env-mod.bat" goto no_mod
call "%~dp0env-mod.bat"

View File

@ -55,25 +55,28 @@ set RsVersion=%RsVersion.Major%.%RsVersion.Minor%.%RsVersion.Mini%
:: Check WMIC is available
wmic.exe alias /? >nul 2>&1 || echo WMIC is not available.&& goto error
:: Use WMIC to retrieve date in format YYYYMMDD
set RsDate=
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set RsDate=%%I
set RsDate=%RsDate:~0,4%%RsDate:~4,2%%RsDate:~6,2%
:: Get date
call "%ToolsPath%\get-rs-date.bat" "%SourcePath%" RsDate
if errorlevel 1 %cecho% error "Could not get date."& goto error
if "%RsDate%"=="" %cecho% error "Could not get date."& goto error
set QtMainVersion=%QtVersion:~0,1%
set QtSharePath=%RsMinGWPath%\share\qt%QtMainVersion%\
rem Qt 4 = QtSvg4.dll
rem Qt 5 = Qt5Svg.dll
rem Qt 6 = Qt6Svg.dll
set QtMainVersion1=
set QtMainVersion2=
if "%QtMainVersion%"=="4" set QtMainVersion2=4
if "%QtMainVersion%"=="5" set QtMainVersion1=5
if "%QtMainVersion%"=="6" set QtMainVersion1=6
if "%RsBuildConfig%" NEQ "release" (
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-%RsArchitecture%-msys2%RsType%%RsArchiveAdd%-%RsBuildConfig%.7z
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-Qt-%QtVersion%-%RsToolchain%-msys2%RsType%%RsArchiveAdd%-%RsBuildConfig%.7z
) else (
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-%RsArchitecture%-msys2%RsType%%RsArchiveAdd%.7z
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-Qt-%QtVersion%-%RsToolchain%-msys2%RsType%%RsArchiveAdd%.7z
)
if exist "%Archive%" del /Q "%Archive%"
@ -81,7 +84,7 @@ if exist "%Archive%" del /Q "%Archive%"
:: Create deploy path
mkdir "%RsDeployPath%"
title Pack - %SourceName%%RsType%-%RsBuildConfig% [copy files]
title Pack - %SourceName%%RsType%-%RsBuildConfig% Qt-%QtVersion% %RsToolchain% [copy files]
set ExtensionsFile=%SourcePath%\libretroshare\src\rsserver\rsinit.cc
set Extensions=
@ -104,6 +107,11 @@ copy "%RsBuildPath%\retroshare-gui\src\%RsBuildConfig%\RetroShare*.exe" "%RsDepl
copy "%RsBuildPath%\retroshare-nogui\src\%RsBuildConfig%\retroshare*-nogui.exe" "%RsDeployPath%" %Quite%
copy "%RsBuildPath%\retroshare-service\src\%RsBuildConfig%\retroshare*-service.exe" "%RsDeployPath%" %Quite%
copy "%RsBuildPath%\supportlibs\cmark\build\src\libcmark.dll" "%RsDeployPath%" %Quite%
if exist "%RsBuildPath%\libretroshare\src\lib\retroshare.dll" copy "%RsBuildPath%\libretroshare\src\lib\retroshare.dll" "%RsDeployPath%" %Quite%
if exist "%RsBuildPath%\supportlibs\librnp\Build\src\lib\librnp.dll" copy "%RsBuildPath%\supportlibs\librnp\Build\src\lib\librnp.dll" "%RsDeployPath%" %Quite%
if exist "%RsBuildPath%\retroshare-friendserver\src\%RsBuildConfig%\retroshare-friendserver.exe" (
copy "%RsBuildPath%\retroshare-friendserver\src\%RsBuildConfig%\retroshare-friendserver.exe" "%RsDeployPath%" %Quite%
)
echo copy extensions
for /D %%D in ("%RsBuildPath%\plugins\*") do (
@ -113,26 +121,38 @@ for /D %%D in ("%RsBuildPath%\plugins\*") do (
echo copy Qt DLL's
copy "%RsMinGWPath%\bin\Qt%QtMainVersion1%Svg%QtMainVersion2%.dll" "%RsDeployPath%" %Quite%
if "%QtMainVersion%"=="5" (
if %QtMainVersion% GEQ 5 (
mkdir "%RsDeployPath%\platforms"
copy "%QtSharePath%\plugins\platforms\qwindows.dll" "%RsDeployPath%\platforms" %Quite%
)
if "%QtMainVersion%"=="5" (
mkdir "%RsDeployPath%\audio"
copy "%QtSharePath%\plugins\audio\qtaudio_windows.dll" "%RsDeployPath%\audio" %Quite%
)
if exist "%QtSharePath%\plugins\styles\qwindowsvistastyle.dll" (
echo copy styles
mkdir "%RsDeployPath%\styles" %Quite%
echo copy styles
mkdir "%RsDeployPath%\styles" %Quite%
if "%QtMainVersion%"=="5" (
copy "%QtSharePath%\plugins\styles\qwindowsvistastyle.dll" "%RsDeployPath%\styles" %Quite%
)
if "%QtMainVersion%"=="6" (
copy "%QtSharePath%\plugins\styles\qmodernwindowsstyle.dll" "%RsDeployPath%\styles" %Quite%
)
copy "%QtSharePath%\plugins\imageformats\*.dll" "%RsDeployPath%\imageformats" %Quite%
del /Q "%RsDeployPath%\imageformats\*d?.dll" %Quite%
if "%ParamTor%"=="1" (
echo copy tor
copy "%RsMinGWPath%\bin\tor.exe" "%RsDeployPath%" %Quite%
copy "%RsMinGWPath%\bin\tor-gencert.exe" "%RsDeployPath%" %Quite%
if not exist "%RsDeployPath%\tor" mkdir "%RsDeployPath%\tor"
copy "%RsMinGWPath%\bin\tor.exe" "%RsDeployPath%\tor" %Quite%
copy "%RsMinGWPath%\bin\tor-gencert.exe" "%RsDeployPath%\tor" %Quite%
echo copy tor dependencies
for /R "%RsDeployPath%\tor" %%D in (*.exe) do (
call :copy_dependencies "%%D" "%RsDeployPath%\tor"
)
)
echo copy dependencies
@ -140,14 +160,15 @@ for /R "%RsDeployPath%" %%D in (*.dll, *.exe) do (
call :copy_dependencies "%%D" "%RsDeployPath%"
)
echo copy qss
xcopy /S "%SourcePath%\retroshare-gui\src\qss" "%RsDeployPath%\qss" %Quite%
if exist "%SourcePath%\retroshare-gui\src\qss" (
echo copy qss
xcopy /S "%SourcePath%\retroshare-gui\src\qss" "%RsDeployPath%\qss" %Quite%
)
echo copy stylesheets
xcopy /S "%SourcePath%\retroshare-gui\src\gui\qss\chat" "%RsDeployPath%\stylesheets" %Quite%
rmdir /S /Q "%RsDeployPath%\stylesheets\compact" %Quite%
rmdir /S /Q "%RsDeployPath%\stylesheets\standard" %Quite%
rmdir /S /Q "%RsDeployPath%\stylesheets\__MACOSX__Bubble" %Quite%
echo copy sounds
xcopy /S "%SourcePath%\retroshare-gui\src\sounds" "%RsDeployPath%\sounds" %Quite%
@ -158,11 +179,13 @@ xcopy /S "%SourcePath%\retroshare-gui\src\license" "%RsDeployPath%\license" %Qui
echo copy translation
copy "%SourcePath%\retroshare-gui\src\translations\qt_tr.qm" "%RsDeployPath%\translations" %Quite%
copy "%QtSharePath%\translations\qt_*.qm" "%RsDeployPath%\translations" %Quite%
if "%QtMainVersion%"=="5" (
if "%QtMainVersion%"=="6" (
copy "%QtSharePath%\translations\qtbase_*.qm" "%RsDeployPath%\translations" %Quite%
copy "%QtSharePath%\translations\qtscript_*.qm" "%RsDeployPath%\translations" %Quite%
copy "%QtSharePath%\translations\qtquick1_*.qm" "%RsDeployPath%\translations" %Quite%
copy "%QtSharePath%\translations\qtmultimedia_*.qm" "%RsDeployPath%\translations" %Quite%
)
if "%QtMainVersion%"=="5" (
copy "%QtSharePath%\translations\qtscript_*.qm" "%RsDeployPath%\translations" %Quite%
copy "%QtSharePath%\translations\qtxmlpatterns_*.qm" "%RsDeployPath%\translations" %Quite%
)
@ -176,18 +199,18 @@ echo copy buildinfo.txt
copy "%RsBuildPath%\buildinfo.txt" "%RsDeployPath%" %Quite%
if "%ParamWebui%"=="1" (
if exist "%RsWebuiPath%\webui" (
if exist "%RsWebuiBuildPath%" (
echo copy webui
mkdir "%RsDeployPath%\webui"
xcopy /S "%RsWebuiPath%\webui" "%RsDeployPath%\webui" %Quite%
xcopy /S "%RsWebuiBuildPath%" "%RsDeployPath%\webui" %Quite%
) else (
%cecho% error "Webui is enabled, but no webui data found at %RsWebuiPath%\webui"
%cecho% error "Webui is enabled, but no webui data found at %RsWebuiBuildPath%"
goto error
)
)
rem pack files
title Pack - %SourceName%%RsType%-%RsBuildConfig% [pack files]
title Pack - %SourceName%%RsType%-%RsBuildConfig% Qt-%QtVersion% %RsToolchain% [pack files]
"%EnvSevenZipExe%" a -mx=9 -t7z "%Archive%" "%RsDeployPath%\*"
@ -212,8 +235,8 @@ endlocal
exit /B 1
:copy_extension
if exist "%~1\%RsBuildConfig%\%~n1.dll" (
copy "%~1\%RsBuildConfig%\%~n1.dll" %2 %Quite%
if exist "%~1\lib\%~n1.dll" (
copy "%~1\lib\%~n1.dll" %2 %Quite%
)
goto :EOF

View File

@ -0,0 +1,374 @@
#!/bin/bash
# ==============================================================================
# RetroShare Windows Portability & Deployment Packaging Script
# Designed for MSYS2 MinGW64 Shell environment
# ------------------------------------------------------------------------------
# Why this is more than a one-liner: windeployqt IS the standard tool and does the
# heavy lifting (bundling Qt DLLs/plugins). The extra steps around it handle MSYS2
# /MinGW + RetroShare specifics that windeployqt does not reliably cover:
# - Manual fallback copy of the Qt 'platforms'/'styles'/'imageformats' plugins,
# which windeployqt sometimes misses under MSYS2.
# - Recursive ldd-based resolution of MinGW runtime DLLs (compiler runtime,
# 3rd-party libs) into the portable folder.
# - RetroShare's portable layout (Data/extensions6 for plugins, qss/stylesheets/
# sounds/translations) and the 'portable' marker file.
# ==============================================================================
set -e
# Toujours travailler depuis la racine du dépôt (ce script vit sous
# build_scripts/Windows-msys2/), sinon les chemins relatifs (retroshare-gui/src,
# libbitdht, ...) sont muets et produisent un paquet incomplet sans erreur.
cd "$(dirname "$0")/../.." || exit 1
# Build directory (override with: BUILD_DIR=mydir ./build_scripts/Windows-msys2/deploy-windows.sh)
BUILD_DIR="${BUILD_DIR:-Build-cmake}"
# Préfixe de l'environnement MSYS2 utilisé pour la compilation
# (mingw64 / ucrt64 / clang64). Indispensable pour retrouver le runtime
# compilateur et les plugins Qt quel que soit l'environnement employé.
MINGW_PREFIX="${MSYSTEM_PREFIX:-/mingw64}"
# 1. Vérifications initiales du dossier de build
if [ ! -d "$BUILD_DIR" ]; then
echo "ERROR: Build directory '$BUILD_DIR' not found. Please compile the project first!"
exit 1
fi
echo "================================================================================"
echo " RETROSHARE WINDOWS DEPLOYMENT GENERATOR"
echo "================================================================================"
# 2. Détermination dynamique des variables de version (inspiré de qmake)
echo ">>> Extracting versioning info from Git and environment..."
# Date au format YYYYMMDD
DATE_STR=$(date +%Y%m%d)
# Récupération du describe de Git (ex: v0.6.7.2-892-g5341b777d-dirty)
GIT_DESC=$(git describe --tags --always --dirty 2>/dev/null || echo "0.6.7-unknown")
CLEAN_DESC=${GIT_DESC#v} # Enlève le 'v' initial
# Valeurs par défaut
VERSION="$CLEAN_DESC"
GIT_SUFFIX=""
if [[ "$CLEAN_DESC" == *-* ]]; then
# Format: tag-commits-hash[-dirty] (ex: 0.6.7.2-892-g5341b777d-dirty)
VERSION=$(echo "$CLEAN_DESC" | cut -d'-' -f1)
COMMIT_INFO=$(echo "$CLEAN_DESC" | cut -d'-' -f2-)
GIT_SUFFIX="-${DATE_STR}-${COMMIT_INFO}"
else
# Si on est pile sur un tag
GIT_SUFFIX="-${DATE_STR}"
fi
# Recherche de l'exécutable windeployqt adéquat
WINDEPLOYQT_CMD=""
for cmd in windeployqt windeployqt-qt5 windeployqt-qt6; do
if command -v "$cmd" &> /dev/null; then
WINDEPLOYQT_CMD="$cmd"
break
fi
done
# Détection de la version de Qt
QT_VERSION=""
if command -v qmake &> /dev/null; then
QT_VERSION=$(qmake -query QT_VERSION 2>/dev/null)
fi
# Si qmake n'a pas donné de version propre, on cherche avec windeployqt
if [[ ! "$QT_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] && [ -n "$WINDEPLOYQT_CMD" ]; then
QT_VERSION=$("$WINDEPLOYQT_CMD" --version 2>/dev/null | grep -o -E '[0-9]+\.[0-9]+\.[0-9]+' | head -n 1 || echo "")
fi
# Valeur de secours si rien n'a été détecté ou si la version est invalide
if [[ ! "$QT_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
QT_VERSION="5.15.18"
fi
# Nom de base de l'archive finale
ARCHIVE_BASE="RetroShare-${VERSION}-Windows-Portable${GIT_SUFFIX}-Qt-${QT_VERSION}-mingw64-msys2"
DEPLOY_DIR="${BUILD_DIR}/${ARCHIVE_BASE}"
echo " Target Package Name: ${ARCHIVE_BASE}"
echo " Deploy Directory: ${DEPLOY_DIR}"
# Nettoyage des anciennes générations de déploiement
echo ">>> Cleaning up previous deployment directories..."
# Ne supprimer que les anciens RÉPERTOIRES de déploiement, pas les archives
# .7z / .zip produites lors des runs précédents (qui matchent le même motif).
find "$BUILD_DIR" -maxdepth 1 -type d -name "RetroShare-*-Windows-Portable*" -exec rm -rf {} + 2>/dev/null || true
mkdir -p "$DEPLOY_DIR"
# 3. Création de l'arborescence complète attendue par RetroShare
echo ">>> Creating target directory layout..."
mkdir -p "$DEPLOY_DIR/Data/extensions6" # Répertoire pour les plugins de RetroShare
mkdir -p "$DEPLOY_DIR/qss" # Feuilles de style de l'interface
mkdir -p "$DEPLOY_DIR/stylesheets" # Feuilles de style de la messagerie
mkdir -p "$DEPLOY_DIR/sounds" # Sons système de l'interface
mkdir -p "$DEPLOY_DIR/translations" # Fichiers de traductions (RetroShare + Qt)
mkdir -p "$DEPLOY_DIR/license" # Fichiers de licences
mkdir -p "$DEPLOY_DIR/log" # Dossier de logs de fonctionnement
# 4. Création du fichier témoin 'portable'
echo ">>> Creating 'portable' mode indicator file..."
touch "$DEPLOY_DIR/portable"
# 5. Copie des exécutables et DLL générées par la compilation
echo ">>> Copying compiled binaries..."
for exe in retroshare-gui.exe retroshare-service.exe retroshare-friendserver.exe; do
found_exe=$(find "$BUILD_DIR" -path "$DEPLOY_DIR" -prune -o -name "$exe" -print | head -n 1)
if [ -n "$found_exe" ]; then
echo " Found and copying: $found_exe"
cp "$found_exe" "$DEPLOY_DIR/"
else
echo " WARNING: Executable '$exe' not found. Skipping."
fi
done
echo ">>> Copying local build libraries (DLLs)..."
# Recherche et copie des DLL compilées en interne dans le projet (RNP, CMark, RetroShare, Restbed)
# NB: on élague "$DEPLOY_DIR" (situé sous "$BUILD_DIR") pour éviter de re-trouver
# les DLL déjà copiées et de déployer par erreur une variante stale.
find "$BUILD_DIR" -path "$DEPLOY_DIR" -prune -o -name "libcmark.dll" -exec cp {} "$DEPLOY_DIR/" \; 2>/dev/null || true
find "$BUILD_DIR" -path "$DEPLOY_DIR" -prune -o -name "*retroshare.dll" -exec cp {} "$DEPLOY_DIR/" \; 2>/dev/null || true
find "$BUILD_DIR" -path "$DEPLOY_DIR" -prune -o -name "*restbed*.dll" -exec cp {} "$DEPLOY_DIR/" \; 2>/dev/null || true
if [ -d "supportlibs/librnp/Build" ]; then
find "supportlibs/librnp/Build" -name "librnp.dll" -exec cp {} "$DEPLOY_DIR/" \; 2>/dev/null || true
fi
find "$BUILD_DIR" -path "$DEPLOY_DIR" -prune -o -name "librnp.dll" -exec cp {} "$DEPLOY_DIR/" \; 2>/dev/null || true
echo ">>> Copying RetroShare plugins..."
if [ -d "$BUILD_DIR/plugins" ]; then
find "$BUILD_DIR/plugins" -name "*.dll" -exec cp {} "$DEPLOY_DIR/Data/extensions6/" \; 2>/dev/null || true
echo " Plugins copied to Data/extensions6."
else
echo " WARNING: Plugins directory not found. Skipping plugins."
fi
# 6. Copie des ressources statiques de RetroShare (QSS, sons, etc.)
echo ">>> Copying RetroShare static assets..."
if [ -d "retroshare-gui/src/qss" ]; then
cp -r retroshare-gui/src/qss/* "$DEPLOY_DIR/qss/" 2>/dev/null || true
fi
if [ -d "retroshare-gui/src/gui/qss/chat" ]; then
cp -r retroshare-gui/src/gui/qss/chat/* "$DEPLOY_DIR/stylesheets/" 2>/dev/null || true
# Supprime les répertoires inutiles d'après le pack.bat historique
rm -rf "$DEPLOY_DIR/stylesheets/compact" "$DEPLOY_DIR/stylesheets/standard"
fi
if [ -d "retroshare-gui/src/sounds" ]; then
cp -r retroshare-gui/src/sounds/* "$DEPLOY_DIR/sounds/" 2>/dev/null || true
fi
if [ -d "retroshare-gui/src/license" ]; then
cp -r retroshare-gui/src/license/* "$DEPLOY_DIR/license/" 2>/dev/null || true
fi
if [ -f "libbitdht/src/bitdht/bdboot.txt" ]; then
cp "libbitdht/src/bitdht/bdboot.txt" "$DEPLOY_DIR/"
echo " Copied bdboot.txt"
fi
# 7. Copie des fichiers de traduction
echo ">>> Copying translations (RetroShare + Qt system)..."
if [ -d "retroshare-gui/src/translations" ]; then
find "retroshare-gui/src/translations" -name "*.qm" -exec cp {} "$DEPLOY_DIR/translations/" \; 2>/dev/null || true
fi
# Copie des traductions Qt de l'environnement MSYS2 MinGW64
QT_TRANS_DIR="$MINGW_PREFIX/share/qt5/translations"
if [ -d "$QT_TRANS_DIR" ]; then
cp "$QT_TRANS_DIR"/qt_*.qm "$DEPLOY_DIR/translations/" 2>/dev/null || true
fi
QT6_TRANS_DIR="$MINGW_PREFIX/share/qt6/translations"
if [ -d "$QT6_TRANS_DIR" ]; then
cp "$QT6_TRANS_DIR"/qt_*.qm "$DEPLOY_DIR/translations/" 2>/dev/null || true
cp "$QT6_TRANS_DIR"/qtbase_*.qm "$DEPLOY_DIR/translations/" 2>/dev/null || true
fi
# 8. Déploiement des dépendances Qt via windeployqt
if [ -f "$DEPLOY_DIR/retroshare-gui.exe" ]; then
if [ -n "$WINDEPLOYQT_CMD" ]; then
echo ">>> Running $WINDEPLOYQT_CMD on retroshare-gui.exe..."
# Convert path to Windows-style for the native windeployqt tool if cygpath is available
if command -v cygpath &> /dev/null; then
WIN_EXE_PATH=$(cygpath -w "$DEPLOY_DIR/retroshare-gui.exe")
echo " Using Windows path: $WIN_EXE_PATH"
"$WINDEPLOYQT_CMD" --no-compiler-runtime "$WIN_EXE_PATH" || true
else
"$WINDEPLOYQT_CMD" --no-compiler-runtime "$DEPLOY_DIR/retroshare-gui.exe" || true
fi
else
echo " WARNING: windeployqt tool not found in PATH! Make sure Qt package is installed."
fi
fi
# Fallback manuel pour les plugins Qt essentiels (comme 'platforms' et 'styles')
# Indispensable si windeployqt a échoué ou n'était pas présent.
if [ ! -d "$DEPLOY_DIR/platforms" ] || [ ! -f "$DEPLOY_DIR/platforms/qwindows.dll" ]; then
echo ">>> Manual fallback: Copying Qt 'platforms' directory (qwindows.dll)..."
mkdir -p "$DEPLOY_DIR/platforms"
COPIED_PLATFORMS=false
for path in \
"$MINGW_PREFIX/share/qt6/plugins/platforms/qwindows.dll" \
"$MINGW_PREFIX/share/qt5/plugins/platforms/qwindows.dll" \
"$MINGW_PREFIX/lib/qt6/plugins/platforms/qwindows.dll" \
"$MINGW_PREFIX/lib/qt5/plugins/platforms/qwindows.dll"; do
if [ -f "$path" ]; then
echo " Found platforms plugin at: $path"
cp "$path" "$DEPLOY_DIR/platforms/"
COPIED_PLATFORMS=true
break
fi
done
if [ "$COPIED_PLATFORMS" = false ]; then
echo " WARNING: Could not find qwindows.dll in standard MSYS2 paths!"
fi
fi
if [ ! -d "$DEPLOY_DIR/styles" ] || [ ! -f "$DEPLOY_DIR/styles/qwindowsvistastyle.dll" ]; then
echo ">>> Manual fallback: Copying Qt 'styles' directory (qwindowsvistastyle.dll)..."
mkdir -p "$DEPLOY_DIR/styles"
for path in \
"$MINGW_PREFIX/share/qt6/plugins/styles/qwindowsvistastyle.dll" \
"$MINGW_PREFIX/share/qt5/plugins/styles/qwindowsvistastyle.dll" \
"$MINGW_PREFIX/lib/qt6/plugins/styles/qwindowsvistastyle.dll" \
"$MINGW_PREFIX/lib/qt5/plugins/styles/qwindowsvistastyle.dll"; do
if [ -f "$path" ]; then
echo " Found styles plugin at: $path"
cp "$path" "$DEPLOY_DIR/styles/"
break
fi
done
fi
echo ">>> Deploying Qt 'imageformats' directory (essential for SVG/ICO icons)..."
mkdir -p "$DEPLOY_DIR/imageformats"
COPIED_IMAGEFORMATS=false
for path in \
"$MINGW_PREFIX/share/qt6/plugins/imageformats" \
"$MINGW_PREFIX/share/qt5/plugins/imageformats" \
"$MINGW_PREFIX/lib/qt6/plugins/imageformats" \
"$MINGW_PREFIX/lib/qt5/plugins/imageformats"; do
if [ -d "$path" ]; then
echo " Found imageformats plugin directory at: $path"
cp -r "$path"/* "$DEPLOY_DIR/imageformats/" 2>/dev/null || true
COPIED_IMAGEFORMATS=true
break
fi
done
if [ "$COPIED_IMAGEFORMATS" = false ]; then
echo " WARNING: Could not find imageformats directory in standard MSYS2 paths!"
fi
# 9. Résolution dynamique des dépendances MinGW (ldd)
echo ">>> Resolving system and 3rd party DLL dependencies using ldd..."
TEMP_DEPENDENCY_LIST=$(mktemp)
trap 'rm -f "$TEMP_DEPENDENCY_LIST"' EXIT
PREV_COUNT=0
while true; do
# Scanner tous les exe et dll présents dans le dossier de déploiement
find "$DEPLOY_DIR" \( -name "*.exe" -o -name "*.dll" \) -exec ldd {} \; 2>/dev/null \
| grep -i "$MINGW_PREFIX/bin" | awk '{print $3}' | sort -u > "$TEMP_DEPENDENCY_LIST"
CURR_COUNT=$(wc -l < "$TEMP_DEPENDENCY_LIST")
if [ "$CURR_COUNT" -eq "$PREV_COUNT" ]; then
break
fi
PREV_COUNT=$CURR_COUNT
while read -r dll_path; do
if [ -f "$dll_path" ]; then
dll_name=$(basename "$dll_path")
# Ne pas écraser les DLL déjà présentes (Qt ou compilées localement)
if [ ! -f "$DEPLOY_DIR/$dll_name" ]; then
echo " Deploying dependency: $dll_name"
cp "$dll_path" "$DEPLOY_DIR/"
fi
fi
done < "$TEMP_DEPENDENCY_LIST"
done
rm -f "$TEMP_DEPENDENCY_LIST"
# Detect if we should strip debug symbols (only in explicit Release or MinSizeRel builds)
IS_RELEASE_BUILD=false
if [ -f "$BUILD_DIR/CMakeCache.txt" ]; then
if grep -q "CMAKE_BUILD_TYPE:STRING=Release" "$BUILD_DIR/CMakeCache.txt" || grep -q "CMAKE_BUILD_TYPE:STRING=MinSizeRel" "$BUILD_DIR/CMakeCache.txt"; then
IS_RELEASE_BUILD=true
fi
fi
# 9.5 Stripping debug symbols to reduce file sizes (shrinks exe from 91MB down to ~22MB)
if [ "$IS_RELEASE_BUILD" = false ]; then
echo ">>> Non-Release build detected (CMakeCache.txt). Skipping stripping of debug symbols to preserve GDB compatibility!"
else
echo ">>> Stripping debug symbols from our compiled binaries..."
if command -v strip &> /dev/null; then
# Strip main executables and core DLLs
for binary in \
"$DEPLOY_DIR"/retroshare-gui.exe \
"$DEPLOY_DIR"/retroshare-service.exe \
"$DEPLOY_DIR"/retroshare-friendserver.exe \
"$DEPLOY_DIR"/retroshare.dll \
"$DEPLOY_DIR"/libretroshare.dll \
"$DEPLOY_DIR"/libcmark.dll \
"$DEPLOY_DIR"/librestbed-shared.dll \
"$DEPLOY_DIR"/librestbed.dll \
"$DEPLOY_DIR"/librnp.dll; do
if [ -f "$binary" ]; then
echo " Stripping: $(basename "$binary")"
strip "$binary" || true
fi
done
# Strip plugins
if [ -d "$DEPLOY_DIR/Data/extensions6" ]; then
find "$DEPLOY_DIR/Data/extensions6" -name "*.dll" | while read -r plugin; do
echo " Stripping plugin: $(basename "$plugin")"
strip "$plugin" || true
done
fi
else
echo " WARNING: 'strip' tool not found. Skipping stripping of debug symbols."
fi
fi
# 10. Déploiement de la WebUI (si présente)
echo ">>> Deploying WebUI static assets..."
if [ -d "retroshare-webui/src" ]; then
mkdir -p "$DEPLOY_DIR/webui"
cp -r retroshare-webui/src/* "$DEPLOY_DIR/webui/" 2>/dev/null || true
echo " WebUI copied to deployment folder."
else
echo " WebUI source folder not found. Skipping WebUI packaging."
fi
# 11. Création de l'archive finale (7z en priorité, zip en fallback)
echo ">>> Packaging final compressed archive..."
(
cd "$BUILD_DIR" || exit 1
if command -v 7z &> /dev/null; then
echo " Using 7z for ultra high compression..."
7z a -t7z -mx=9 "${ARCHIVE_BASE}.7z" "${ARCHIVE_BASE}"
echo "================================================================================"
echo "SUCCESS: Standalone package created at: ${BUILD_DIR}/${ARCHIVE_BASE}.7z"
echo "================================================================================"
elif command -v zip &> /dev/null; then
echo " 7z not found. Falling back to standard zip..."
zip -r "${ARCHIVE_BASE}.zip" "${ARCHIVE_BASE}"
echo "================================================================================"
echo "SUCCESS: Standalone package created at: ${BUILD_DIR}/${ARCHIVE_BASE}.zip"
echo "================================================================================"
else
echo "================================================================================"
echo "SUCCESS: Folder generated at: ${DEPLOY_DIR}"
echo "NOTE: Neither '7z' nor 'zip' commands were found. Archive creation skipped."
echo "================================================================================"
fi
)

View File

@ -16,7 +16,13 @@ if "%~1"=="clean" (
goto exit
)
if exist "%EnvMSYS2Path%\msys%MSYS2Base%\usr\bin\pacman.exe" (
set MSYS2Version=20250622
set MSYS2Install=msys2-base-x86_64-%MSYS2Version%.sfx.exe
set MSYS2Url=https://github.com/msys2/msys2-installer/releases/download/%MSYS2Version:~0,4%-%MSYS2Version:~4,2%-%MSYS2Version:~6,2%/%MSYS2Install%
set MSYS2UnpackPath=%EnvMSYS2Path%\msys64
if exist "%MSYS2UnpackPath%\usr\bin\pacman.exe" (
if "%~1"=="reinstall" (
choice /M "Found existing MSYS2 version. Do you want to proceed?"
if !ERRORLEVEL!==2 goto exit
@ -25,28 +31,26 @@ if exist "%EnvMSYS2Path%\msys%MSYS2Base%\usr\bin\pacman.exe" (
)
)
set MSYS2Install=msys2-base-%MSYS2Architecture%-20200720.tar.xz
set MSYS2Url=http://sourceforge.net/projects/msys2/files/Base/%MSYS2Architecture%/%MSYS2Install%/download
if exist "%MSYS2UnpackPath%" (
%cecho% info "Remove previous MSYS2 version"
call "%ToolsPath%\remove-dir.bat" "%MSYS2UnpackPath%"
)
%cecho% info "Remove previous MSYS2 version"
call "%ToolsPath%\remove-dir.bat" "%EnvMSYS2Path%"
%cecho% info "Download installation files"
%cecho% info "Download MSYS2 installation files"
if not exist "%EnvDownloadPath%\%MSYS2Install%" call "%ToolsPath%\download-file.bat" "%MSYS2Url%" "%EnvDownloadPath%\%MSYS2Install%"
if not exist "%EnvDownloadPath%\%MSYS2Install%" %cecho% error "Cannot download MSYS" & goto error
%cecho% info "Unpack MSYS2"
"%EnvSevenZipExe%" x -so "%EnvDownloadPath%\%MSYS2Install%" | "%EnvSevenZipExe%" x -y -si -ttar -o"%EnvMSYS2Path%"
"%EnvDownloadPath%\%MSYS2Install%" -y -o"%EnvMSYS2Path%"
set MSYS2SH=%EnvMSYS2Path%\msys%MSYS2Base%\usr\bin\sh
set MSYS2SH=%MSYS2UnpackPath%\usr\bin\sh
%cecho% info "Initialize MSYS2"
"%MSYS2SH%" -lc "pacman -Sy"
"%MSYS2SH%" -lc "pacman --noconfirm --needed -S bash pacman pacman-mirrors msys2-runtime"
"%MSYS2SH%" -lc "yes | pacman --noconfirm -Syuu msys2-keyring"
"%MSYS2SH%" -lc "pacman --noconfirm -Sy"
"%MSYS2SH%" -lc "pacman --noconfirm -Su"
call "%EnvMSYS2Path%\msys%MSYS2Base%\autorebase.bat"
call "%EnvRootPath%\update-msys2.bat"
call "%EnvRootPath%\update-msys2.bat"
call "%MSYS2UnpackPath%\autorebase.bat"
:exit
endlocal

View File

@ -4,8 +4,8 @@ if "%EnvRootPath%"=="" exit /B 1
set CEchoUrl=https://github.com/lordmulder/cecho/releases/download/2015-10-10/cecho.2015-10-10.zip
set CEchoInstall=cecho.2015-10-10.zip
set SevenZipUrl=https://sourceforge.net/projects/sevenzip/files/7-Zip/18.05/7z1805.msi/download
set SevenZipInstall=7z1805.msi
set SevenZipUrl=https://www.7-zip.org/a/7z2600-x64.msi
set SevenZipInstall=7z2600-x64.msi
if not exist "%EnvToolsPath%\7z.exe" (
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
@ -34,7 +34,7 @@ if not exist "%EnvToolsPath%\cecho.exe" (
if not exist "%EnvDownloadPath%\%cCEhoInstall%" echo Cannot download cecho installation& goto error
echo Unpack cecho
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%CEchoInstall%"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%CEchoInstall%" -y -bso0
copy "%EnvTempPath%\cecho.exe" "%EnvToolsPath%"
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"

View File

@ -2,18 +2,13 @@
setlocal
if exist "%~dp0msys2\msys32" call :update 32
if exist "%~dp0msys2\msys64" call :update 64
if not exist "%~dp0msys2\msys64" goto :EOF
goto :EOF
set MSYS2SH=%~dp0msys2\msys64\usr\bin\sh
:update
set MSYSSH=%~dp0msys2\msys%~1\usr\bin\sh
echo Update MSYS2
"%MSYS2SH%" -lc "yes | pacman --noconfirm -Syuu msys2-keyring"
"%MSYS2SH%" -lc "pacman --noconfirm -Su"
echo Update MSYS2 %~1
"%MSYSSH%" -lc "pacman -Sy"
"%MSYSSH%" -lc "pacman --noconfirm -Su"
:exit
endlocal
goto :EOF

View File

@ -9,6 +9,7 @@
;!define REVISION ""
;!define DEPLOYDIR ""
;!define ARCHITECTURE ""
;!define TOOLCHAIN ""
# Optional defines
;!define OUTDIR ""
@ -21,6 +22,9 @@
!ifndef ARCHITECTURE
!error "ARCHITECTURE is not defined"
!endif
!ifndef TOOLCHAIN
!error "TOOLCHAIN is not defined"
!endif
# Check optional defines
!ifdef OUTDIR
@ -72,7 +76,7 @@ ${!defineifexist} TOR_EXISTS "${DEPLOYDIR}\tor.exe"
# Main Install settings
Name "${APPNAMEANDVERSION}"
InstallDirRegKey HKLM "Software\${APPNAME}" ""
OutFile "${OUTDIR_}RetroShare-${VERSION}-${Date}-${REVISION}-${ARCHITECTURE}${RSTYPE}${INSTALLERADD}-setup.exe"
OutFile "${OUTDIR_}RetroShare-${VERSION}-${Date}-${REVISION}-Qt-${QTVERSION}-${TOOLCHAIN}-msys2${RSTYPE}${INSTALLERADD}-setup.exe"
BrandingText "${APPNAMEANDVERSION}"
RequestExecutionlevel highest
# Use compression
@ -218,7 +222,7 @@ Section $(Section_Data) Section_Data
; Stylesheets
SetOutPath "$INSTDIR\qss"
File /r "${DEPLOYDIR}\qss\*.*"
File /nonfatal /r "${DEPLOYDIR}\qss\*.*"
SectionEnd
;Section $(Section_Link) Section_Link

View File

@ -44,8 +44,9 @@ Run the scripts in this order:
**Always delete the build artifacts folder if you enable or disable extra features after the build command: &lt;sourcefolder&gt;-msys2\deploy\builds**
* Mandatory
* 32 or 64: 32 or 64 bit version
* 32, 64, mingw32, mingw64, ucrt64, clang32, clang64 or clangarm64: It sets the msys2 build environment to the selected value. 32 is a shortcut for mingw32, 64 is a shortcut for mingw64. Default in build.bat and buil-tor.bat is 64.
* release or debug: normally you would like to use the release option
* qt5 or qt6: build with Qt 5 (default) or Qt 6
* Extra features (optional)
* autologin: enable autologin
* plugins: build plugins
@ -55,7 +56,6 @@ Run the scripts in this order:
* "CONFIG+=..." enable other extra compile time features, you can find the almost complete list in file *&lt;sourcefolder&gt;\retroshare.pri*
* For fixing compile problems (optional)
* singlethread: use only 1 thread for building, slow but useful if you don't find the error message in the console
* clang: use clang compiler instead of GCC
* noupdate: skip the msys2 update step, sometimes some msys2 packages are broken, you can manually switch back to the older package, and this option will prevent updating to the broken version again
Example:

View File

@ -1,5 +1,5 @@
:: Usage:
:: call get-qt-version.bat variable
:: call get-qt-version.bat variable qmake
setlocal
@ -10,9 +10,16 @@ if "%Var%"=="" (
exit /B 1
)
set QMakeCmd=%~2
if "%QMakeCmd%"=="" (
echo.
echo Parameter error.
exit /B 1
)
set QtVersion=
%EnvMSYS2Cmd% "qmake -version" >"%~dp0qtversion.tmp"
%EnvMSYS2Cmd% "%QMakeCmd% -version" >"%~dp0qtversion.tmp"
for /F "tokens=1,2,3,4" %%A in (%~sdp0qtversion.tmp) do (
if "%%A"=="Using" (
set QtVersion=%%D

View File

@ -0,0 +1,32 @@
REM Usage:
REM call get-rs-date.bat SourcePath Variable
setlocal
set SourcePath=%~1
set Variable=%~2
if "%Variable%"=="" (
echo.
echo Parameter error
exit /B 1
)
:: Check git executable
set GitPath=
call "%~dp0find-in-path.bat" GitPath git.exe
if "%GitPath%"=="" (
echo.
echo Git executable not found in PATH.
exit /B 1
)
set Date=
pushd "%SourcePath%"
rem This doesn't work: git log -1 --date=format:"%Y%m%d" --format="%ad"
for /F "tokens=1,2,3* delims=-" %%A in ('git log -1 --date^=short --format^="%%ad"') do set Date=%%A%%B%%C
popd
:exit
endlocal & set %Variable%=%Date%
exit /B 0

View File

@ -1,22 +0,0 @@
setlocal
echo.
echo === webui
echo.
title Build webui
if not exist "%RsWebuiPath%" (
echo Checking out webui source into %RsWebuiPath%
if not "%ParamNoupdate%"=="1" (
%EnvMSYS2Cmd% "pacman --noconfirm --needed -S git"
)
git clone https://github.com/RetroShare/RSNewWebUI.git "%RsWebuiPath%"
) else (
echo Webui source found at %RsWebuiPath%
)
pushd "%RsWebuiPath%\webui-src\make-src"
%EnvMSYS2Cmd% "sh build.sh"
popd
endlocal

View File

@ -0,0 +1,35 @@
## Build Retroshare with QtCreator & Qt 6.9 on Windows
### Qt 6.9 Installation
Download Qt 6.9 from: https://www.qt.io/download-dev
Run the installer and install Qt 6.9
Add GCC.exe to Path
C:\Qt\Tools\mingw1310_64\bin
Compile the external libs start build-libs.bat:
Open Qt Command Prompt:
cd C:\Users\User\Documents\GitHub\RetroShare\build_scripts\Windows\build-libs
Type (this will take some time to build all libs):
build-libs.bat
Open Qt Creator
Open project -> RetroShare.pro
After Project loaded, go to:
Projects->Build->Build Steps->Additional arguments:
Add EXTERNAL_LIB_DIR:
"EXTERNAL_LIB_DIR=%{sourceDir}\..\RetroShare-env\build-libs\gcc-13.1.0\x64\libs"
After done, Build Project

View File

@ -1,25 +1,32 @@
ZLIB_VERSION=1.2.3
BZIP2_VERSION=1.0.6
MINIUPNPC_VERSION=2.0
OPENSSL_VERSION=1.1.1g
SPEEX_VERSION=1.2.0
SPEEXDSP_VERSION=1.2rc3
OPENCV_VERSION=3.4.11
LIBXML2_VERSION=2.9.7
LIBXSLT_VERSION=1.1.32
CURL_VERSION=7.58.0
ZLIB_VERSION=1.2.11
BZIP2_VERSION=1.0.8
MINIUPNPC_VERSION=2.2.3
OPENSSL_VERSION=1.1.1w
SPEEX_VERSION=1.2.1
SPEEXDSP_VERSION=1.2.1
LIBXML2_MAIN_VERSION=2.14
LIBXML2_VERSION=$(LIBXML2_MAIN_VERSION).5
LIBXSLT_MAIN_VERSION=1.1
LIBXSLT_VERSION=$(LIBXSLT_MAIN_VERSION).43
CURL_VERSION=8.9.1
TCL_VERSION=8.6.10
SQLCIPHER_VERSION=4.4.0
LIBMICROHTTPD_VERSION=0.9.59
FFMPEG_VERSION=3.4
SQLCIPHER_VERSION=4.5.0
FFMPEG_VERSION=4.4.6
RAPIDJSON_VERSION=1.1.0
XAPIAN_VERSION=1.4.7
XAPIAN_VERSION=1.4.29
ASIO_VERSION=1-34-2
#RNP_VERSION=0.17.1
# libaries for rnp
JSON_C_VERSION=0.18
BOTAN_VERSION=2.19.5
DOWNLOAD_PATH?=download
BUILD_PATH=build
LIBS_PATH?=libs
all: dirs zlib bzip2 miniupnpc openssl speex speexdsp opencv libxml2 libxslt curl sqlcipher libmicrohttpd ffmpeg rapidjson xapian copylibs
all: dirs zlib bzip2 miniupnpc openssl speex speexdsp libxml curl sqlcipher ffmpeg rapidjson xapian jsonc botan asio copylibs
#rnp
download: \
$(DOWNLOAD_PATH)/zlib-$(ZLIB_VERSION).tar.gz \
@ -28,14 +35,12 @@ download: \
$(DOWNLOAD_PATH)/openssl-$(OPENSSL_VERSION).tar.gz \
$(DOWNLOAD_PATH)/speex-$(SPEEX_VERSION).tar.gz \
$(DOWNLOAD_PATH)/speexdsp-$(SPEEXDSP_VERSION).tar.gz \
$(DOWNLOAD_PATH)/opencv-$(OPENCV_VERSION).tar.gz \
$(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz \
$(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.gz \
$(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz \
$(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.xz \
$(DOWNLOAD_PATH)/curl-$(CURL_VERSION).tar.gz \
$(DOWNLOAD_PATH)/tcl$(TCL_VERSION)-src.tar.gz \
$(DOWNLOAD_PATH)/sqlcipher-$(SQLCIPHER_VERSION).tar.gz \
$(DOWNLOAD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION).tar.gz \
$(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.gz \
$(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.xz \
$(DOWNLOAD_PATH)/rapidjson-$(RAPIDJSON_VERSION).tar.gz \
$(DOWNLOAD_PATH)/xapian-core-$(XAPIAN_VERSION).tar.xz
@ -58,9 +63,7 @@ $(BUILD_PATH)/zlib-$(ZLIB_VERSION): $(DOWNLOAD_PATH)/zlib-$(ZLIB_VERSION).tar.gz
rm -r -f $(BUILD_PATH)/zlib-*
tar xvf $(DOWNLOAD_PATH)/zlib-$(ZLIB_VERSION).tar.gz
# build
cd zlib-$(ZLIB_VERSION) && ./configure
#cd zlib-$(ZLIB_VERSION) && make install prefix="`pwd`/../$(BUILD_PATH)"
cd zlib-$(ZLIB_VERSION) && make
cd zlib-$(ZLIB_VERSION) && make -j -f win32/Makefile.gcc libz.a
# copy files
mkdir -p $(BUILD_PATH)/zlib-$(ZLIB_VERSION).tmp/include
cp zlib-$(ZLIB_VERSION)/zlib.h $(BUILD_PATH)/zlib-$(ZLIB_VERSION).tmp/include/
@ -74,7 +77,7 @@ $(BUILD_PATH)/zlib-$(ZLIB_VERSION): $(DOWNLOAD_PATH)/zlib-$(ZLIB_VERSION).tar.gz
bzip2: $(BUILD_PATH)/bzip2-$(BZIP2_VERSION)
$(DOWNLOAD_PATH)/bzip2-$(BZIP2_VERSION).tar.gz:
wget https://sourceforge.net/projects/bzip2/files/bzip2-$(BZIP2_VERSION).tar.gz/download -O $(DOWNLOAD_PATH)/bzip2-$(BZIP2_VERSION).tar.gz
wget https://www.sourceware.org/pub/bzip2/bzip2-$(BZIP2_VERSION).tar.gz -O $(DOWNLOAD_PATH)/bzip2-$(BZIP2_VERSION).tar.gz
$(BUILD_PATH)/bzip2-$(BZIP2_VERSION): $(DOWNLOAD_PATH)/bzip2-$(BZIP2_VERSION).tar.gz
# prepare
@ -82,7 +85,7 @@ $(BUILD_PATH)/bzip2-$(BZIP2_VERSION): $(DOWNLOAD_PATH)/bzip2-$(BZIP2_VERSION).ta
tar xvf $(DOWNLOAD_PATH)/bzip2-$(BZIP2_VERSION).tar.gz
# build
#cd bzip2-$(BZIP2_VERSION) && make install PREFIX="`pwd`/../$(BUILD_PATH)"
cd bzip2-$(BZIP2_VERSION) && make
cd bzip2-$(BZIP2_VERSION) && make -j
# copy files
mkdir -p $(BUILD_PATH)/bzip2-$(BZIP2_VERSION).tmp/include
cp bzip2-$(BZIP2_VERSION)/bzlib.h $(BUILD_PATH)/bzip2-$(BZIP2_VERSION).tmp/include/
@ -102,10 +105,10 @@ $(BUILD_PATH)/miniupnpc-$(MINIUPNPC_VERSION): $(DOWNLOAD_PATH)/miniupnpc-$(MINIU
rm -r -f $(BUILD_PATH)/miniupnpc-*
tar xvf $(DOWNLOAD_PATH)/miniupnpc-$(MINIUPNPC_VERSION).tar.gz
# build
cd miniupnpc-$(MINIUPNPC_VERSION) && export CC=gcc && export PATH=.:$$PATH && make -f Makefile.mingw init libminiupnpc.a miniupnpc.dll
cd miniupnpc-$(MINIUPNPC_VERSION) && export CC=gcc && export PATH=.:$$PATH && make -j -f Makefile.mingw libminiupnpc.a miniupnpc.dll
# copy files
mkdir -p $(BUILD_PATH)/miniupnpc-$(MINIUPNPC_VERSION).tmp/include/miniupnpc
cp miniupnpc-$(MINIUPNPC_VERSION)/*.h $(BUILD_PATH)/miniupnpc-$(MINIUPNPC_VERSION).tmp/include/miniupnpc/
cp miniupnpc-$(MINIUPNPC_VERSION)/include/*.h $(BUILD_PATH)/miniupnpc-$(MINIUPNPC_VERSION).tmp/include/miniupnpc/
mkdir -p $(BUILD_PATH)/miniupnpc-$(MINIUPNPC_VERSION).tmp/lib
cp miniupnpc-$(MINIUPNPC_VERSION)/miniupnpc.lib $(BUILD_PATH)/miniupnpc-$(MINIUPNPC_VERSION).tmp/lib/
mkdir -p $(BUILD_PATH)/miniupnpc-$(MINIUPNPC_VERSION).tmp/bin
@ -127,7 +130,7 @@ $(BUILD_PATH)/openssl-$(OPENSSL_VERSION): $(DOWNLOAD_PATH)/openssl-$(OPENSSL_VER
#cd openssl-$(OPENSSL_VERSION) && ./config --prefix="`pwd`/../$(BUILD_PATH)"
#cd openssl-$(OPENSSL_VERSION) && make install
cd openssl-$(OPENSSL_VERSION) && ./config shared
cd openssl-$(OPENSSL_VERSION) && make
cd openssl-$(OPENSSL_VERSION) && make -j
# copy files
mkdir -p $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/include/openssl
cp openssl-$(OPENSSL_VERSION)/include/openssl/*.h $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/include/openssl/
@ -156,7 +159,7 @@ $(BUILD_PATH)/speex-$(SPEEX_VERSION): $(DOWNLOAD_PATH)/speex-$(SPEEX_VERSION).ta
# build
cd speex-$(SPEEX_VERSION) && ./configure
#cd speex-$(SPEEX_VERSION) && make install exec_prefix="`pwd`/../$(BUILD_PATH)"
cd speex-$(SPEEX_VERSION) && make
cd speex-$(SPEEX_VERSION) && make -j
# copy files
mkdir -p $(BUILD_PATH)/speex-$(SPEEX_VERSION).tmp/include/speex
cp speex-$(SPEEX_VERSION)/include/speex/*.h $(BUILD_PATH)/speex-$(SPEEX_VERSION).tmp/include/speex/
@ -177,7 +180,7 @@ $(BUILD_PATH)/speexdsp-$(SPEEXDSP_VERSION): $(DOWNLOAD_PATH)/speexdsp-$(SPEEXDSP
tar xvf $(DOWNLOAD_PATH)/speexdsp-$(SPEEXDSP_VERSION).tar.gz
# build
cd speexdsp-$(SPEEXDSP_VERSION) && ./configure
cd speexdsp-$(SPEEXDSP_VERSION) && make
cd speexdsp-$(SPEEXDSP_VERSION) && make -j
# copy files
mkdir -p $(BUILD_PATH)/speexdsp-$(SPEEXDSP_VERSION).tmp/include/speex
cp speexdsp-$(SPEEXDSP_VERSION)/include/speex/*.h $(BUILD_PATH)/speexdsp-$(SPEEXDSP_VERSION).tmp/include/speex/
@ -187,73 +190,52 @@ $(BUILD_PATH)/speexdsp-$(SPEEXDSP_VERSION): $(DOWNLOAD_PATH)/speexdsp-$(SPEEXDSP
rm -r -f speexdsp-$(SPEEXDSP_VERSION)
mv $(BUILD_PATH)/speexdsp-$(SPEEXDSP_VERSION).tmp $(BUILD_PATH)/speexdsp-$(SPEEXDSP_VERSION)
opencv: $(BUILD_PATH)/opencv-$(OPENCV_VERSION)
libxml: \
$(BUILD_PATH)/libxml2-$(LIBXML2_VERSION) \
$(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION)
$(DOWNLOAD_PATH)/opencv-$(OPENCV_VERSION).tar.gz:
wget --no-check-certificate https://github.com/opencv/opencv/archive/$(OPENCV_VERSION).tar.gz -O $(DOWNLOAD_PATH)/opencv-$(OPENCV_VERSION).tar.gz
$(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz:
wget --no-check-certificate https://download.gnome.org/sources/libxml2/$(LIBXML2_MAIN_VERSION)/libxml2-$(LIBXML2_VERSION).tar.xz -O $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz
$(BUILD_PATH)/opencv-$(OPENCV_VERSION): $(DOWNLOAD_PATH)/opencv-$(OPENCV_VERSION).tar.gz
# prepare
rm -r -f $(BUILD_PATH)/opencv-*
tar xvf $(DOWNLOAD_PATH)/opencv-$(OPENCV_VERSION).tar.gz
# build
mkdir -p opencv-$(OPENCV_VERSION)/build
#cd opencv-$(OPENCV_VERSION)/build && cmake .. -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="`pwd`/../../build"
cd opencv-$(OPENCV_VERSION)/build && cmake .. -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DBUILD_SHARED_LIBS=OFF -DENABLE_CXX11=ON -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -DSTRSAFE_NO_DEPRECATE" -DCMAKE_INSTALL_PREFIX="`pwd`/install"
cd opencv-$(OPENCV_VERSION)/build && make install
# copy files
mkdir -p $(BUILD_PATH)/opencv-$(OPENCV_VERSION).tmp/include
cp -r opencv-$(OPENCV_VERSION)/build/install/include/* $(BUILD_PATH)/opencv-$(OPENCV_VERSION).tmp/include/
mkdir -p $(BUILD_PATH)/opencv-$(OPENCV_VERSION).tmp/lib/opencv
cp -r opencv-$(OPENCV_VERSION)/build/install/x64/mingw/staticlib/* $(BUILD_PATH)/opencv-$(OPENCV_VERSION).tmp/lib/opencv/
# cleanup
rm -r -f opencv-$(OPENCV_VERSION)
mv $(BUILD_PATH)/opencv-$(OPENCV_VERSION).tmp $(BUILD_PATH)/opencv-$(OPENCV_VERSION)
$(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.xz:
wget --no-check-certificate https://download.gnome.org/sources/libxslt/$(LIBXSLT_MAIN_VERSION)/libxslt-$(LIBXSLT_VERSION).tar.xz -O $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.xz
libxml2: $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION)
$(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz:
wget ftp://xmlsoft.org/libxml2/libxml2-$(LIBXML2_VERSION).tar.gz -O $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz
$(BUILD_PATH)/libxml2-$(LIBXML2_VERSION): $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz
# prepare
$(BUILD_PATH)/libxml2-$(LIBXML2_VERSION) $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION): \
$(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz \
$(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.xz
# libxml2: prepare
pacman --needed --noconfirm -S python3 pkg-config
rm -r -f $(BUILD_PATH)/libxml2-*
tar xvf $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz
# build
tar xvf $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz
# libxslt: prepare
rm -r -f $(BUILD_PATH)/libxslt-*
tar xvf $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz
tar xvf $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.xz
# libxml2: build
cd libxml2-$(LIBXML2_VERSION) && ./configure --without-iconv -enable-shared=no
#cd libxml2-$(LIBXML2_VERSION) && make install exec_prefix="`pwd`/../$(BUILD_PATH)"
cd libxml2-$(LIBXML2_VERSION) && make
# copy files
cd libxml2-$(LIBXML2_VERSION) && make -j libxml2.la
# libxslt: build
cd libxslt-$(LIBXSLT_VERSION) && ./configure --with-libxml-src=../libxml2-$(LIBXML2_VERSION) -enable-shared=no CFLAGS=-DLIBXML_STATIC
cd libxslt-$(LIBXSLT_VERSION)/libxslt && make -j
cd libxslt-$(LIBXSLT_VERSION)/libexslt && make -j
# libxml2: copy files
mkdir -p $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp/include/libxml
cp libxml2-$(LIBXML2_VERSION)/include/libxml/*.h $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp/include/libxml/
mkdir -p $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp/lib
cp libxml2-$(LIBXML2_VERSION)/.libs/libxml2.a $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp/lib/
# cleanup
#rm -r -f libxml2-$(LIBXML2_VERSION) # see libxslt
mv $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION)
libxslt: $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION)
$(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.gz:
wget ftp://xmlsoft.org/libxml2/libxslt-$(LIBXSLT_VERSION).tar.gz -O $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.gz
$(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION): $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.gz
# prepare
rm -r -f $(BUILD_PATH)/libxslt-*
tar xvf $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz
tar xvf $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.gz
# build
cd libxslt-$(LIBXSLT_VERSION) && ./configure --with-libxml-src=../libxml2-$(LIBXML2_VERSION) -enable-shared=no CFLAGS=-DLIBXML_STATIC
cd libxslt-$(LIBXSLT_VERSION) && make
# copy files
# libxslt: copy files
mkdir -p $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp/include/libxslt
cp libxslt-$(LIBXSLT_VERSION)/libxslt/*.h $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp/include/libxslt/
mkdir -p $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp/lib
cp libxslt-$(LIBXSLT_VERSION)/libxslt/.libs/libxslt.a $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp/lib/
cp libxslt-$(LIBXSLT_VERSION)/libexslt/.libs/libexslt.a $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp/lib/
# cleanup
# libxml2: cleanup
rm -r -f libxml2-$(LIBXML2_VERSION)
# libxslt: cleanup
rm -r -f libxslt-$(LIBXSLT_VERSION)
# finish
mv $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION)
mv $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION)
curl: $(BUILD_PATH)/curl-$(CURL_VERSION)
@ -268,7 +250,7 @@ $(BUILD_PATH)/curl-$(CURL_VERSION): $(DOWNLOAD_PATH)/curl-$(CURL_VERSION).tar.gz
# build
cd curl-$(CURL_VERSION) && ./configure --disable-shared --with-ssl="`pwd`/../$(BUILD_PATH)/openssl-$(OPENSSL_VERSION)"
#cd curl-$(CURL_VERSION) && make install exec_prefix="`pwd`/../$(BUILD_PATH)"
cd curl-$(CURL_VERSION) && make
cd curl-$(CURL_VERSION)/lib && make -j
# copy files
mkdir -p $(BUILD_PATH)/curl-$(CURL_VERSION).tmp/include/curl
cp curl-$(CURL_VERSION)/include/curl/*.h $(BUILD_PATH)/curl-$(CURL_VERSION).tmp/include/curl/
@ -293,14 +275,14 @@ $(BUILD_PATH)/sqlcipher-$(SQLCIPHER_VERSION): $(DOWNLOAD_PATH)/tcl$(TCL_VERSION)
tar xvf $(DOWNLOAD_PATH)/tcl$(TCL_VERSION)-src.tar.gz
mkdir -p tcl$(TCL_VERSION)/build
cd tcl$(TCL_VERSION)/build && ../win/configure
cd tcl$(TCL_VERSION)/build && make
cd tcl$(TCL_VERSION)/build && make -j
#sqlcipher
tar xvf $(DOWNLOAD_PATH)/sqlcipher-$(SQLCIPHER_VERSION).tar.gz
cd sqlcipher-$(SQLCIPHER_VERSION) && ln -s ../tcl$(TCL_VERSION)/build/tclsh86.exe tclsh
mkdir -p tcl$(TCL_VERSION)/lib
ln -s `pwd`/tcl$(TCL_VERSION)/library `pwd`/tcl$(TCL_VERSION)/lib/tcl8.6
# build
cd sqlcipher-$(SQLCIPHER_VERSION) && PATH=.:$$PATH:`pwd`/../tcl$(TCL_VERSION)/build && export LIBS="-L`pwd`/../$(BUILD_PATH)/openssl-$(OPENSSL_VERSION)/lib -lgdi32 $$LIBS" && ./configure --disable-shared --enable-static --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC -I`pwd`/../$(BUILD_PATH)/openssl-$(OPENSSL_VERSION)/include -I`pwd`/../tcl$(TCL_VERSION)/generic" LDFLAGS="-L`pwd`/../$(BUILD_PATH)/openssl-$(OPENSSL_VERSION)/lib -lcrypto -lgdi32" --with-tcl="`pwd`/../tcl$(TCL_VERSION)/build" && make install prefix="`pwd`/install"
cd sqlcipher-$(SQLCIPHER_VERSION) && PATH=.:$$PATH:`pwd`/../tcl$(TCL_VERSION)/build && export LIBS="-L`pwd`/../$(BUILD_PATH)/openssl-$(OPENSSL_VERSION)/lib -lgdi32 $$LIBS" && ./configure --disable-shared --enable-static --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC -I`pwd`/../$(BUILD_PATH)/openssl-$(OPENSSL_VERSION)/include -I`pwd`/../tcl$(TCL_VERSION)/generic" LDFLAGS="-L`pwd`/../$(BUILD_PATH)/openssl-$(OPENSSL_VERSION)/lib -lcrypto -lgdi32" --with-tcl="`pwd`/../tcl$(TCL_VERSION)/build" && make -j install prefix="`pwd`/install"
# copy files
mkdir -p $(BUILD_PATH)/sqlcipher-$(SQLCIPHER_VERSION).tmp/include
cp -r sqlcipher-$(SQLCIPHER_VERSION)/install/include/* $(BUILD_PATH)/sqlcipher-$(SQLCIPHER_VERSION).tmp/include/
@ -313,34 +295,18 @@ $(BUILD_PATH)/sqlcipher-$(SQLCIPHER_VERSION): $(DOWNLOAD_PATH)/tcl$(TCL_VERSION)
rm -r -f tcl$(TCL_VERSION)
mv $(BUILD_PATH)/sqlcipher-$(SQLCIPHER_VERSION).tmp $(BUILD_PATH)/sqlcipher-$(SQLCIPHER_VERSION)
libmicrohttpd: $(BUILD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION)
$(DOWNLOAD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION).tar.gz:
wget --no-check-certificate http://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-$(LIBMICROHTTPD_VERSION).tar.gz -O $(DOWNLOAD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION).tar.gz
$(BUILD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION): $(DOWNLOAD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION).tar.gz
# prepare
rm -r -f $(BUILD_PATH)/libmicrohttpd-*
tar xvf $(DOWNLOAD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION).tar.gz
# build
cd libmicrohttpd-$(LIBMICROHTTPD_VERSION) && ./configure --disable-shared --enable-static --prefix="`pwd`/../$(BUILD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION).tmp"
cd libmicrohttpd-$(LIBMICROHTTPD_VERSION) && make install
# cleanup
rm -r -f libmicrohttpd-$(LIBMICROHTTPD_VERSION)
mv $(BUILD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION).tmp $(BUILD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION)
ffmpeg: $(BUILD_PATH)/ffmpeg-$(FFMPEG_VERSION)
$(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.gz:
wget --no-check-certificate https://ffmpeg.org/releases/ffmpeg-$(FFMPEG_VERSION).tar.gz -O $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.gz
$(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.xz:
wget --no-check-certificate https://ffmpeg.org/releases/ffmpeg-$(FFMPEG_VERSION).tar.xz -O $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.xz
$(BUILD_PATH)/ffmpeg-$(FFMPEG_VERSION): $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.gz
$(BUILD_PATH)/ffmpeg-$(FFMPEG_VERSION): $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.xz
# prepare
rm -r -f $(BUILD_PATH)/ffmpeg-*
tar xvf $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.gz
tar xvf $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.xz
# build
cd ffmpeg-$(FFMPEG_VERSION) && ./configure --disable-shared --enable-static --disable-programs --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-yasm --disable-everything --enable-encoder=mpeg4 --enable-decoder=mpeg4 --prefix="`pwd`/../$(BUILD_PATH)/ffmpeg-$(FFMPEG_VERSION).tmp"
cd ffmpeg-$(FFMPEG_VERSION) && make install
cd ffmpeg-$(FFMPEG_VERSION) && ./configure --disable-shared --enable-static --disable-programs --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-yasm --disable-everything --enable-encoder=mpeg4 --enable-decoder=mpeg4 --prefix="`pwd`/../$(BUILD_PATH)/ffmpeg-$(FFMPEG_VERSION).tmp"
cd ffmpeg-$(FFMPEG_VERSION) && make -j install
# cleanup
rm -r -f ffmpeg-$(FFMPEG_VERSION)
mv $(BUILD_PATH)/ffmpeg-$(FFMPEG_VERSION).tmp $(BUILD_PATH)/ffmpeg-$(FFMPEG_VERSION)
@ -378,7 +344,7 @@ $(BUILD_PATH)/xapian-core-$(XAPIAN_VERSION): $(DOWNLOAD_PATH)/xapian-core-$(XAPI
#cd xapian-core-$(XAPIAN_VERSION) && ./configure --disable-shared --enable-static --prefix="`pwd`/../$(BUILD_PATH)/xapian-core-$(XAPIAN_VERSION).tmp"
#cd xapian-core-$(XAPIAN_VERSION) && make install
cd xapian-core-$(XAPIAN_VERSION) && ./configure --disable-shared --enable-static
cd xapian-core-$(XAPIAN_VERSION) && make
cd xapian-core-$(XAPIAN_VERSION) && make -j
# copy files
mkdir -p $(BUILD_PATH)/xapian-core-$(XAPIAN_VERSION).tmp/include
cp -r xapian-core-$(XAPIAN_VERSION)/include/* $(BUILD_PATH)/xapian-core-$(XAPIAN_VERSION).tmp/include/
@ -389,8 +355,73 @@ $(BUILD_PATH)/xapian-core-$(XAPIAN_VERSION): $(DOWNLOAD_PATH)/xapian-core-$(XAPI
rm -r -f xapian-core-$(XAPIAN_VERSION)
mv $(BUILD_PATH)/xapian-core-$(XAPIAN_VERSION).tmp $(BUILD_PATH)/xapian-core-$(XAPIAN_VERSION)
jsonc: $(BUILD_PATH)/json-c-$(JSON_C_VERSION)
$(BUILD_PATH)/json-c-$(JSON_C_VERSION):
# prepare
rm -r -f $(BUILD_PATH)/json-c-*
[ -d "json-c-$(JSON_C_VERSION)" ] || git clone https://github.com/json-c/json-c.git --depth=1 --branch json-c-$(JSON_C_VERSION) "json-c-$(JSON_C_VERSION)"
# build
mkdir -p json-c-$(JSON_C_VERSION)/build
cd json-c-$(JSON_C_VERSION)/build && cmake .. -G"MSYS Makefiles" -Wno-dev -DCMAKE_BUILD_TYPE="release" -DBUILD_SHARED_LIBS=off -DBUILD_STATIC_LIBS=on -DBUILD_TESTING=off -DCMAKE_CXX_FLAGS="-D__MINGW_USE_VC2005_COMPAT" -DCMAKE_INSTALL_PREFIX="`pwd`/install" -DCMAKE_INSTALL_PREFIX="`pwd`/../../$(BUILD_PATH)/json-c-$(JSON_C_VERSION).tmp"
cd json-c-$(JSON_C_VERSION)/build && make -j install
# cleanup
rm -r -f json-c-$(JSON_C_VERSION)
mv $(BUILD_PATH)/json-c-$(JSON_C_VERSION).tmp $(BUILD_PATH)/json-c-$(JSON_C_VERSION)
botan: $(BUILD_PATH)/botan-$(BOTAN_VERSION)
$(BUILD_PATH)/botan-$(BOTAN_VERSION):
# prepare
pacman --needed --noconfirm -S python3
rm -r -f $(BUILD_PATH)/botan-*
[ -d "botan-$(BOTAN_VERSION)" ] || git clone https://github.com/randombit/botan.git --depth=1 --branch $(BOTAN_VERSION) "botan-$(BOTAN_VERSION)"
# build
if [ $(MSYSTEM) = "MINGW32" ] ; then cd botan-$(BOTAN_VERSION) && ./configure.py --os=mingw --cpu=x86_32 --disable-shared-library --enable-static-library --extra-cxxflags="-D__MINGW_USE_VC2005_COMPAT" --prefix="`pwd`/../$(BUILD_PATH)/botan-$(BOTAN_VERSION).tmp" ; fi
if [ $(MSYSTEM) = "MINGW64" ] ; then cd botan-$(BOTAN_VERSION) && ./configure.py --os=mingw --cpu=x86_64 --disable-shared-library --enable-static-library --prefix="`pwd`/../$(BUILD_PATH)/botan-$(BOTAN_VERSION).tmp" ; fi
cd botan-$(BOTAN_VERSION) && make -j install
# cleanup
rm -r -f botan-$(BOTAN_VERSION)
mv $(BUILD_PATH)/botan-$(BOTAN_VERSION).tmp $(BUILD_PATH)/botan-$(BOTAN_VERSION)
asio: $(BUILD_PATH)/asio-$(ASIO_VERSION)
$(BUILD_PATH)/asio-$(ASIO_VERSION):
# prepare
rm -r -f $(BUILD_PATH)/asio-*
[ -d "asio-$(ASIO_VERSION)" ] || git clone https://github.com/chriskohlhoff/asio.git --depth=1 --branch asio-$(ASIO_VERSION) "asio-$(ASIO_VERSION)"
# copy files
mkdir -p $(BUILD_PATH)/asio-$(ASIO_VERSION).tmp/include/asio
cp asio-$(ASIO_VERSION)/asio/include/*.hpp $(BUILD_PATH)/asio-$(ASIO_VERSION).tmp/include/
cp -r asio-$(ASIO_VERSION)/asio/include/asio/* $(BUILD_PATH)/asio-$(ASIO_VERSION).tmp/include/asio/
# cleanup
rm -r -f asio-$(ASIO_VERSION)
mv $(BUILD_PATH)/asio-$(ASIO_VERSION).tmp $(BUILD_PATH)/asio-$(ASIO_VERSION)
rnp: $(BUILD_PATH)/rnp-$(RNP_VERSION)
$(BUILD_PATH)/rnp-$(RNP_VERSION):
# prepare
rm -r -f $(BUILD_PATH)/rnp-*
[ -d "rnp-$(RNP_VERSION)" ] || git clone https://github.com/rnpgp/rnp.git --depth=1 --branch v$(RNP_VERSION) --recurse-submodules --shallow-submodules "rnp-$(RNP_VERSION)"
# build
mkdir -p rnp-$(RNP_VERSION)/build
cd rnp-$(RNP_VERSION)/build && cmake .. -G"MSYS Makefiles" -Wno-dev -DCMAKE_INSTALL_PREFIX="`pwd`/install" -DBUILD_SHARED_LIBS=yes -DBUILD_TESTING=off -DCMAKE_CXX_FLAGS="-D__MINGW_USE_VC2005_COMPAT -D__STDC_FORMAT_MACROS" -DBZIP2_INCLUDE_DIR="`pwd`/../../$(BUILD_PATH)/bzip2-$(BZIP2_VERSION)/include" -DBZIP2_LIBRARY_RELEASE="`pwd`/../../$(BUILD_PATH)/bzip2-$(BZIP2_VERSION)/lib/libbz2.a" -DBZIP2_LIBRARIES="`pwd`/../../$(BUILD_PATH)/bzip2-$(BZIP2_VERSION)/lib/libbz2.a" -DZLIB_INCLUDE_DIR="`pwd`/../../$(BUILD_PATH)/zlib-$(ZLIB_VERSION)/include" -DZLIB_LIBRARY="`pwd`/../../$(BUILD_PATH)/zlib-$(ZLIB_VERSION)/lib/libz.a" -DJSON-C_INCLUDE_DIR="`pwd`/../../$(BUILD_PATH)/json-c-$(JSON_C_VERSION)/include/json-c" -DJSON-C_LIBRARY="`pwd`/../../$(BUILD_PATH)/json-c-$(JSON_C_VERSION)/lib/libjson-c.a" -DBOTAN_INCLUDE_DIR="`pwd`/../../$(BUILD_PATH)/botan-$(BOTAN_VERSION)/include/botan-`echo $(BOTAN_VERSION) | cut -c1-1`" -DBOTAN_LIBRARY="`pwd`/../../$(BUILD_PATH)/botan-$(BOTAN_VERSION)/lib/libbotan-`echo $(BOTAN_VERSION) | cut -c1-1`.a"
cmake --build rnp-$(RNP_VERSION)/build
# copy files
mkdir -p $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/include/rnp
cp -r rnp-$(RNP_VERSION)/include/rnp/* $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/include/rnp/
cp -r rnp-$(RNP_VERSION)/build/src/lib/rnp/* $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/include/rnp/
mkdir -p $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/lib
cp -r rnp-$(RNP_VERSION)/build/src/lib/librnp.dll.a $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/lib/
mkdir -p $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/bin
cp -r rnp-$(RNP_VERSION)/build/src/lib/librnp.dll $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/bin/
# cleanup
rm -r -f rnp-$(RNP_VERSION)
mv $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp $(BUILD_PATH)/rnp-$(RNP_VERSION)
copylibs:
rm -r -f $(LIBS_PATH) ; \
mkdir -p $(LIBS_PATH) ; \
cp $(BUILD_PATH)/gcc-version $(LIBS_PATH) ; \
find $(BUILD_PATH) -mindepth 1 -maxdepth 1 -type d -not -name "*.tmp" -print -exec cp -r {}/. $(LIBS_PATH) \; ; \
cp -p $(BUILD_PATH)/gcc-version $(LIBS_PATH) ; \
find $(BUILD_PATH) -mindepth 1 -maxdepth 1 -type d -not -name "*.tmp" -print -exec cp -r -p {}/. $(LIBS_PATH) \; ; \

View File

@ -13,12 +13,11 @@ call "%~dp0build-libs\build-libs.bat"
if errorlevel 1 %cecho% error "Failed to build libraries." & exit /B %ERRORLEVEL%
%cecho% info "Build %SourceName%"
call "%~dp0build\build.bat" release autologin jsonapi
rem plugins
call "%~dp0build\build.bat" release autologin webui plugins nativedialogs service
if errorlevel 1 %cecho% error "Failed to build %SourceName%." & exit /B %ERRORLEVEL%
%cecho% info "Pack %SourceName%"
call "%~dp0build\pack.bat" release
call "%~dp0build\pack.bat" release webui plugins service
if errorlevel 1 %cecho% error "Failed to pack %SourceName%." & exit /B %ERRORLEVEL%
%cecho% info "Build installer"

View File

@ -9,7 +9,7 @@ call "%EnvPath%\env.bat"
if errorlevel 1 goto error_env
:: Initialize environment
call "%~dp0env.bat" release
call "%~dp0env.bat" installer release
if errorlevel 2 exit /B 2
if errorlevel 1 goto error_env
@ -40,6 +40,7 @@ set NSIS_PARAM=%NSIS_PARAM% /DARCHITECTURE="%GCCArchitecture%"
set NSIS_PARAM=%NSIS_PARAM% /DDATE="%RsDate%"
if exist "%EnvTorPath%\Tor\tor.exe" set NSIS_PARAM=%NSIS_PARAM% /DTORDIR="%EnvTorPath%\Tor"
if exist "%RsWebuiBuildPath%" set NSIS_PARAM=%NSIS_PARAM% /DWEBUIDIR="%RsWebuiBuildPath%"
:: Get compiled version
call "%ToolsPath%\get-rs-version.bat" "%RsBuildPath%\retroshare-gui\src\%RsBuildConfig%\retroshare.exe" RsVersion

View File

@ -9,7 +9,7 @@ call "%EnvPath%\env.bat"
if errorlevel 1 goto error_env
:: Initialize environment
call "%~dp0env.bat" %*
call "%~dp0env.bat" build %*
if errorlevel 2 exit /B 2
if errorlevel 1 goto error_env
@ -33,7 +33,7 @@ echo.
echo === Version
echo.
title Build - %SourceName%-%RsBuildConfig% [Version]
title Build - %SourceName%-%RsBuildConfig% Qt-%QtVersion%-%GCCArchitecture% [Version]
pushd "%SourcePath%\retroshare-gui\src\gui\images"
:: Touch resource file
@ -47,12 +47,17 @@ echo.
echo === qmake
echo.
title Build - %SourceName%-%RsBuildConfig% [qmake]
title Build - %SourceName%-%RsBuildConfig% Qt-%QtVersion%-%GCCArchitecture% [qmake]
set RS_QMAKE_CONFIG=%RsBuildConfig%
if "%ParamAutologin%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% rs_autologin
if "%ParamJsonApi%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% rs_jsonapi
if "%ParamWebui%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% rs_webui
if "%ParamPlugins%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% retroshare_plugins
if "%ParamUseNativeDialogs%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% rs_use_native_dialogs
if "%ParamService%" NEQ "1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% no_retroshare_service
if "%ParamFriendServer%" NEQ "1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% no_retroshare_friendserver
if "%ParamEmbeddedFriendServer%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% rs_efs
qmake "%SourcePath%\RetroShare.pro" -r -spec win32-g++ "CONFIG+=%RS_QMAKE_CONFIG%" "EXTERNAL_LIB_DIR=%BuildLibsPath%\libs"
if errorlevel 1 goto error
@ -61,7 +66,7 @@ echo.
echo === make
echo.
title Build - %SourceName%-%RsBuildConfig% [make]
title Build - %SourceName%-%RsBuildConfig% Qt-%QtVersion%-%GCCArchitecture% [make]
mingw32-make -j %CoreCount%
if errorlevel 1 goto error
@ -70,7 +75,7 @@ echo.
echo === Changelog
echo.
title Build - %SourceName%-%RsBuildConfig% [changelog]
title Build - %SourceName%-%RsBuildConfig% Qt-%QtVersion%-%GCCArchitecture% [changelog]
call "%ToolsPath%\generate-changelog.bat" "%SourcePath%" "%RsBuildPath%\changelog.txt"
:error

View File

@ -8,7 +8,7 @@ if errorlevel 1 goto error_env
call "%EnvPath%\env.bat"
if errorlevel 1 goto error_env
call "%~dp0env.bat" %*
call "%~dp0env.bat" clean %*
if errorlevel 2 exit /B 2
if errorlevel 1 goto error_env

View File

@ -4,10 +4,18 @@ set ParamDebug=0
set ParamAutologin=0
set ParamPlugins=0
set ParamJsonApi=0
set ParamWebui=0
set ParamService=0
set ParamFriendServer=0
set ParamEmbeddedFriendServer=0
set ParamUseNativeDialogs=0
set ParamTor=0
set NonInteractive=0
set CoreCount=%NUMBER_OF_PROCESSORS%
set Module=%~1
shift /1
:parameter_loop
if "%~1" NEQ "" (
for /f "tokens=1,2 delims==" %%a in ("%~1") do (
@ -19,6 +27,15 @@ if "%~1" NEQ "" (
set ParamAutologin=1
) else if "%%~a"=="jsonapi" (
set ParamJsonApi=1
) else if "%%~a"=="webui" (
set ParamJsonApi=1
set ParamWebui=1
) else if "%%~a"=="service" (
set ParamService=1
) else if "%%~a"=="friendserver" (
set ParamFriendServer=1
) else if "%%~a"=="embedded-friendserver" (
set ParamEmbeddedFriendServer=1
) else if "%%~a"=="plugins" (
set ParamPlugins=1
) else if "%%~a"=="tor" (
@ -27,9 +44,11 @@ if "%~1" NEQ "" (
set NonInteractive=1
) else if "%%~a"=="singlethread" (
set CoreCount=1
) else if "%%~a"=="nativedialogs" (
set ParamUseNativeDialogs=1
) else (
echo.
echo Unknown parameter %1
echo Unknown parameter %1 for %Module%
goto :usage
)
)
@ -86,6 +105,7 @@ set RsBuildPath=%BuildPath%\Qt-%QtVersion%-%GCCArchitecture%-%RsBuildConfig%
set RsDeployPath=%DeployPath%\Qt-%QtVersion%-%GCCArchitecture%%RsType%-%RsBuildConfig%
set RsPackPath=%DeployPath%
set RsArchiveAdd=
set RsWebuiBuildPath=%RsBuildPath%\retroshare-webui\webui
if not exist "%~dp0env-mod.bat" goto no_mod
call "%~dp0env-mod.bat"
@ -96,23 +116,36 @@ exit /B 0
:usage
echo.
echo Usage: release^|debug [version autologin plugins]
echo Usage: release^|debug [^<optional parameters^>]
echo.
echo Mandatory parameter
echo release^|debug Build release or debug version
echo release^|debug Build release or debug version
echo.
echo Optional parameter (need clean when changed)
echo autologin Build with autologin
echo jsonapi Build with jsonapi
echo plugins Build plugins
echo.
echo Optional parameter
echo singlethread Use only 1 thread for building
echo.
echo Parameter for pack
echo tor Pack tor version
echo.
echo Parameter for git-log
echo non-interactive Non-interactive mode
if "%Module%"=="build" (
echo Optional parameter ^(need clean when changed^)
echo autologin Build with autologin
echo jsonapi Build with jsonapi
echo webui Build with jsonapi and webui
echo service Build service
echo friendserver Build Friend Server
echo embedded-friendserver Build with embedded Friend Server
echo plugins Build plugins
echo nativedialogs Build with native dialogs
echo.
echo Optional parameter
echo singlethread Use only 1 thread for building
)
if "%Module%"=="pack" (
echo Optional parameter
echo webui Pack webui
echo service Pack service
echo friendserver Pack Friend Server ^(needs Tor^)
echo tor Pack Tor version
echo plugins Pack plugins
)
if "%Module%"=="git-log" (
echo Optional parameter
echo non-interactive Non-interactive mode
)
echo.
exit /B 2

View File

@ -8,7 +8,7 @@ if errorlevel 1 goto error_env
call "%EnvPath%\env.bat"
if errorlevel 1 goto error_env
call "%~dp0env.bat" %*
call "%~dp0env.bat" git-log %*
if errorlevel 2 exit /B 2
if errorlevel 1 goto error_env
@ -88,6 +88,10 @@ echo %RsRef%>"%RsLastRefFile%"
exit /B %ERRORLEVEL%
:error
%cecho% error "\n%~n0 failed\n"
exit /B 1
:error_env
echo Failed to initialize environment.
endlocal

View File

@ -11,7 +11,7 @@ call "%EnvPath%\env.bat"
if errorlevel 1 goto error_env
:: Initialize environment
call "%~dp0env.bat" %*
call "%~dp0env.bat" pack %*
if errorlevel 2 exit /B 2
if errorlevel 1 goto error_env
@ -59,10 +59,12 @@ set QtMainVersion=%QtVersion:~0,1%
rem Qt 4 = QtSvg4.dll
rem Qt 5 = Qt5Svg.dll
rem Qt 6 = Qt6Svg.dll
set QtMainVersion1=
set QtMainVersion2=
if "%QtMainVersion%"=="4" set QtMainVersion2=4
if "%QtMainVersion%"=="5" set QtMainVersion1=5
if "%QtMainVersion%"=="6" set QtMainVersion1=6
if "%RsBuildConfig%" NEQ "release" (
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-Qt-%QtVersion%-%GCCArchitecture%%RsType%%RsArchiveAdd%-%RsBuildConfig%.7z
@ -75,7 +77,7 @@ if exist "%Archive%" del /Q "%Archive%"
:: Create deploy path
mkdir "%RsDeployPath%"
title Pack - %SourceName%%RsType%-%RsBuildConfig% [copy files]
title Pack - %SourceName%%RsType%-%RsBuildConfig% Qt-%QtVersion%-%GCCArchitecture% [copy files]
set ExtensionsFile=%SourcePath%\libretroshare\src\rsserver\rsinit.cc
set Extensions=
@ -95,12 +97,30 @@ copy nul "%RsDeployPath%\portable" %Quite%
echo copy binaries
copy "%RsBuildPath%\retroshare-gui\src\%RsBuildConfig%\retroshare*.exe" "%RsDeployPath%" %Quite%
copy "%RsBuildPath%\retroshare-service\src\%RsBuildConfig%\retroshare*-service.exe" "%RsDeployPath%" %Quite%
if exist "%RsBuildPath%\libretroshare\src\lib\retroshare.dll" copy "%RsBuildPath%\libretroshare\src\lib\retroshare.dll" "%RsDeployPath%" %Quite%
if exist "%RsBuildPath%\supportlibs\librnp\Build\src\lib\librnp.dll" copy "%RsBuildPath%\supportlibs\librnp\Build\src\lib\librnp.dll" "%RsDeployPath%" %Quite%
if "%ParamService%"=="1" (
copy "%RsBuildPath%\retroshare-service\src\%RsBuildConfig%\retroshare*-service.exe" "%RsDeployPath%" %Quite%
if errorlevel 1 %cecho% error "Service not found"& goto error
)
if "%ParamFriendServer%"=="1" (
if "%ParamTor%"=="1" (
copy "%RsBuildPath%\retroshare-friendserver\src\%RsBuildConfig%\retroshare-friendserver.exe" "%RsDeployPath%" %Quite%
if errorlevel 1 %cecho% error "Friend Server not found"& goto error
) else (
%cecho% error "Friend Server needs Tor"
goto error
)
)
echo copy extensions
for /D %%D in ("%RsBuildPath%\plugins\*") do (
call :copy_extension "%%D" "%RsDeployPath%\Data\%Extensions%"
call :copy_dependencies "%RsDeployPath%\Data\%Extensions%\%%~nxD.dll" "%RsDeployPath%"
if "%ParamPlugins%"=="1" (
for /D %%D in ("%RsBuildPath%\plugins\*") do (
call :copy_extension "%%D" "%RsDeployPath%\Data\%Extensions%"
call :copy_dependencies "%RsDeployPath%\Data\%Extensions%\%%~nxD.dll" "%RsDeployPath%"
)
)
echo copy external binaries
@ -108,37 +128,48 @@ copy "%BuildLibsPath%\libs\bin\*.dll" "%RsDeployPath%" %Quite%
echo copy dependencies
call :copy_dependencies "%RsDeployPath%\retroshare.exe" "%RsDeployPath%"
if exist "%RsDeployPath%\retroshare.dll" call :copy_dependencies "%RsDeployPath%\retroshare.dll" "%RsDeployPath%"
echo copy Qt DLL's
copy "%QtPath%\Qt%QtMainVersion1%Svg%QtMainVersion2%.dll" "%RsDeployPath%" %Quite%
if "%QtMainVersion%"=="5" (
if %QtMainVersion% GEQ 5 (
mkdir "%RsDeployPath%\platforms"
copy "%QtPath%\..\plugins\platforms\qwindows.dll" "%RsDeployPath%\platforms" %Quite%
)
if "%QtMainVersion%"=="5" (
mkdir "%RsDeployPath%\audio"
copy "%QtPath%\..\plugins\audio\qtaudio_windows.dll" "%RsDeployPath%\audio" %Quite%
)
if exist "%QtPath%\..\plugins\styles\qwindowsvistastyle.dll" (
echo Copy styles
mkdir "%RsDeployPath%\styles" %Quite%
echo Copy styles
mkdir "%RsDeployPath%\styles" %Quite%
if "%QtMainVersion%"=="5" (
copy "%QtPath%\..\plugins\styles\qwindowsvistastyle.dll" "%RsDeployPath%\styles" %Quite%
)
if "%QtMainVersion%"=="6" (
copy "%QtPath%\..\plugins\styles\qmodernwindowsstyle.dll" "%RsDeployPath%\styles" %Quite%
)
copy "%QtPath%\..\plugins\imageformats\*.dll" "%RsDeployPath%\imageformats" %Quite%
del /Q "%RsDeployPath%\imageformats\*d?.dll" %Quite%
echo copy qss
xcopy /S "%SourcePath%\retroshare-gui\src\qss" "%RsDeployPath%\qss" %Quite%
if exist "%SourcePath%\retroshare-gui\src\qss" (
echo copy qss
xcopy /S "%SourcePath%\retroshare-gui\src\qss" "%RsDeployPath%\qss" %Quite%
)
echo copy stylesheets
xcopy /S "%SourcePath%\retroshare-gui\src\gui\qss\chat" "%RsDeployPath%\stylesheets" %Quite%
rmdir /S /Q "%RsDeployPath%\stylesheets\compact" %Quite%
rmdir /S /Q "%RsDeployPath%\stylesheets\standard" %Quite%
rmdir /S /Q "%RsDeployPath%\stylesheets\__MACOSX__Bubble" %Quite%
echo copy sounds
xcopy /S "%SourcePath%\retroshare-gui\src\sounds" "%RsDeployPath%\sounds" %Quite%
if "%ParamPlugins%"=="1" (
xcopy /S "%SourcePath%\plugins\Voip\gui\sounds" "%RsDeployPath%\sounds" %Quite%
)
echo copy license
xcopy /S "%SourcePath%\retroshare-gui\src\license" "%RsDeployPath%\license" %Quite%
@ -146,10 +177,12 @@ xcopy /S "%SourcePath%\retroshare-gui\src\license" "%RsDeployPath%\license" %Qui
echo copy translation
copy "%SourcePath%\retroshare-gui\src\translations\qt_tr.qm" "%RsDeployPath%\translations" %Quite%
copy "%QtPath%\..\translations\qt_*.qm" "%RsDeployPath%\translations" %Quite%
if "%QtMainVersion%"=="5" (
if %QtMainVersion% GEQ 5 (
copy "%QtPath%\..\translations\qtbase_*.qm" "%RsDeployPath%\translations" %Quite%
copy "%QtPath%\..\translations\qtscript_*.qm" "%RsDeployPath%\translations" %Quite%
copy "%QtPath%\..\translations\qtmultimedia_*.qm" "%RsDeployPath%\translations" %Quite%
)
if "%QtMainVersion%"=="5" (
copy "%QtPath%\..\translations\qtscript_*.qm" "%RsDeployPath%\translations" %Quite%
copy "%QtPath%\..\translations\qtxmlpatterns_*.qm" "%RsDeployPath%\translations" %Quite%
)
@ -159,19 +192,21 @@ copy "%SourcePath%\libbitdht\src\bitdht\bdboot.txt" "%RsDeployPath%" %Quite%
echo copy changelog.txt
copy "%RsBuildPath%\changelog.txt" "%RsDeployPath%" %Quite%
if exist "%SourcePath%\libresapi\src\webui" (
if defined ParamWebui (
echo copy webui
mkdir "%RsDeployPath%\webui"
xcopy /S "%SourcePath%\libresapi\src\webui" "%RsDeployPath%\webui" %Quite%
xcopy /S "%RsWebuiBuildPath%" "%RsDeployPath%\webui" %Quite%
if errorlevel 1 %cecho% error "WebUi not found"& goto error
)
if "%ParamTor%"=="1" (
echo copy tor
echo n | copy /-y "%EnvTorPath%\Tor\*.*" "%RsDeployPath%" %Quite%
if not exist "%RsDeployPath%\tor" mkdir "%RsDeployPath%\tor"
echo n | copy /-y "%EnvTorPath%\Tor\*.*" "%RsDeployPath%\tor" %Quite%
)
rem pack files
title Pack - %SourceName%%RsType%-%RsBuildConfig% [pack files]
title Pack - %SourceName%%RsType%-%RsBuildConfig% Qt-%QtVersion%-%GCCArchitecture% [pack files]
"%EnvSevenZipExe%" a -mx=9 -t7z "%Archive%" "%RsDeployPath%\*"
@ -196,8 +231,8 @@ endlocal
exit /B 1
:copy_extension
if exist "%~1\%RsBuildConfig%\%~n1.dll" (
copy "%~1\%RsBuildConfig%\%~n1.dll" %2 %Quite%
if exist "%~1\lib\%~n1.dll" (
copy "%~1\lib\%~n1.dll" %2 %Quite%
)
goto :EOF

View File

@ -5,7 +5,6 @@
call "%~dp0env.bat"
if errorlevel 1 goto error_env
rem openssl x86 doesn't compile with mingw64 x64
:: Get gcc versions
call "%ToolsPath%\get-gcc-version.bat" GCCVersion GCCArchitecture
if "%GCCVersion%"=="" %cecho% error "Cannot get gcc version." & exit /B 1
@ -23,11 +22,12 @@ if "%GCCArchitecture%"=="x64" (
)
set EnvMSYS2Path=%EnvRootPath%\msys2
set EnvMSYS2BasePath=%EnvMSYS2Path%\msys64
call "%~dp0tools\prepare-msys2.bat" %1
if errorlevel 1 exit /B %ERRORLEVEL%
set EnvMSYS2SH=%EnvMSYS2Path%\msys%MSYS2Base%\usr\bin\sh.exe
set EnvMSYS2SH=%EnvMSYS2BasePath%\usr\bin\sh.exe
if not exist "%EnvMSYS2SH%" if errorlevel 1 goto error_env
set EnvMSYS2Cmd="%EnvMSYS2SH%" -lc

View File

@ -28,6 +28,9 @@ if errorlevel 1 exit /B %ERRORLEVEL%
set PATH=%EnvToolsPath%\MinGit\cmd;%EnvToolsPath%\cmake\bin;%PATH%
set HOME=%EnvToolsPath%\MinGit\home
:: Add Doxygen to PATH
set PATH=%EnvToolsPath%\doxygen;%PATH%
exit /B 0
:error_env

View File

@ -16,7 +16,15 @@ if "%~1"=="clean" (
goto exit
)
if exist "%EnvMSYS2Path%\msys%MSYS2Base%\usr\bin\pacman.exe" (
set MSYS2Version=20250622
set MSYS2Install=msys2-base-x86_64-%MSYS2Version%.sfx.exe
set MSYS2Url=https://github.com/msys2/msys2-installer/releases/download/%MSYS2Version:~0,4%-%MSYS2Version:~4,2%-%MSYS2Version:~6,2%/%MSYS2Install%
set MSYS2UnpackPath=%EnvMSYS2Path%\msys64
set CMakeInstall=cmake-3.31.3-windows-i386.zip
set CMakeUrl=https://github.com/Kitware/CMake/releases/download/v3.31.3/%CMakeInstall%
if exist "%MSYS2UnpackPath%\usr\bin\pacman.exe" (
if "%~1"=="reinstall" (
choice /M "Found existing MSYS2 version. Do you want to proceed?"
if !ERRORLEVEL!==2 goto exit
@ -25,18 +33,12 @@ if exist "%EnvMSYS2Path%\msys%MSYS2Base%\usr\bin\pacman.exe" (
)
)
set MSYS2Install=msys2-base-%MSYS2Architecture%-20190524.tar.xz
set MSYS2Url=http://sourceforge.net/projects/msys2/files/Base/%MSYS2Architecture%/%MSYS2Install%/download
set CMakeInstall=cmake-3.1.0-win32-x86.zip
set CMakeUrl=http://www.cmake.org/files/v3.1/%CMakeInstall%
set CMakeUnpackPath=%EnvMSYS2Path%\msys%MSYS2Base%
if exist "%EnvMSYS2Path%\msys%MSYS2Base%" (
if exist "%MSYS2UnpackPath%" (
%cecho% info "Remove previous MSYS2 version"
call "%ToolsPath%\remove-dir.bat" "%EnvMSYS2Path%\msys%MSYS2Base%"
call "%ToolsPath%\remove-dir.bat" "%MSYS2UnpackPath%"
)
%cecho% info "Download installation files"
%cecho% info "Download MSYS2 installation files"
if not exist "%EnvDownloadPath%\%MSYS2Install%" call "%ToolsPath%\download-file.bat" "%MSYS2Url%" "%EnvDownloadPath%\%MSYS2Install%"
if not exist "%EnvDownloadPath%\%MSYS2Install%" %cecho% error "Cannot download MSYS" & goto error
@ -44,37 +46,32 @@ if not exist "%EnvDownloadPath%\%CMakeInstall%" call "%ToolsPath%\download-file.
if not exist "%EnvDownloadPath%\%CMakeInstall%" %cecho% error "Cannot download CMake" & goto error
%cecho% info "Unpack MSYS2"
"%EnvSevenZipExe%" x -so "%EnvDownloadPath%\%MSYS2Install%" | "%EnvSevenZipExe%" x -y -si -ttar -o"%EnvMSYS2Path%"
"%EnvDownloadPath%\%MSYS2Install%" -y -o"%EnvMSYS2Path%"
%cecho% info "Unpack CMake"
"%EnvSevenZipExe%" x -o"%CMakeUnpackPath%" "%EnvDownloadPath%\%CMakeInstall%"
"%EnvSevenZipExe%" x -o"%MSYS2UnpackPath%" "%EnvDownloadPath%\%CMakeInstall%" -y -bso0
%cecho% info "Install CMake"
set CMakeVersion=
for /D %%F in (%CMakeUnpackPath%\cmake*) do set CMakeVersion=%%~nxF
for /D %%F in (%MSYS2UnpackPath%\cmake*) do set CMakeVersion=%%~nxF
if "%CMakeVersion%"=="" %cecho% error "CMake version not found." & goto :exit
%cecho% info "Found CMake version %CMakeVersion%"
set FoundProfile=
for /f "tokens=3" %%F in ('find /c /i "%CMakeVersion%" "%EnvMSYS2Path%\msys%MSYS2Base%\etc\profile"') do set FoundProfile=%%F
for /f "tokens=3" %%F in ('find /c /i "%CMakeVersion%" "%MSYS2UnpackPath%\etc\profile"') do set FoundProfile=%%F
if "%FoundProfile%"=="0" (
echo export PATH="${PATH}:/%CMakeVersion%/bin">>"%EnvMSYS2Path%\msys%MSYS2Base%\etc\profile"
echo export PATH="${PATH}:/%CMakeVersion%/bin">>"%MSYS2UnpackPath%\etc\profile"
)
set MSYS2SH=%EnvMSYS2Path%\msys%MSYS2Base%\usr\bin\sh
%cecho% info "Update keyring"
"%MSYS2SH%" -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
"%MSYS2SH%" -lc "pacman --noconfirm -U msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
set MSYS2SH=%MSYS2UnpackPath%\usr\bin\sh
%cecho% info "Initialize MSYS2"
"%MSYS2SH%" -lc "pacman -Sy"
"%MSYS2SH%" -lc "pacman --noconfirm --needed -S bash pacman pacman-mirrors msys2-runtime"
"%MSYS2SH%" -lc "yes | pacman --noconfirm -Syuu msys2-keyring"
"%MSYS2SH%" -lc "pacman --noconfirm -Sy"
"%MSYS2SH%" -lc "pacman --noconfirm -Su"
call "%EnvMSYS2Path%\msys%MSYS2Base%\autorebase.bat"
call "%EnvRootPath%\update-msys2.bat"
call "%EnvRootPath%\update-msys2.bat"
call "%MSYS2UnpackPath%\autorebase.bat"
:exit
endlocal

View File

@ -4,8 +4,8 @@ if "%EnvRootPath%"=="" exit /B 1
set CEchoUrl=https://github.com/lordmulder/cecho/releases/download/2015-10-10/cecho.2015-10-10.zip
set CEchoInstall=cecho.2015-10-10.zip
set SevenZipUrl=https://sourceforge.net/projects/sevenzip/files/7-Zip/19.00/7z1900.msi/download
set SevenZipInstall=7z1900.msi
set SevenZipUrl=https://www.7-zip.org/a/7z2600-x64.msi
set SevenZipInstall=7z2600-x64.msi
set DependsUrl=http://www.dependencywalker.com/depends22_x86.zip
set DependsInstall=depends22_x86.zip
set UnixToolsUrl=http://unxutils.sourceforge.net/UnxUpdates.zip
@ -16,9 +16,12 @@ set NSISInstallPath=%EnvToolsPath%\NSIS
set MinGitInstall=MinGit-2.28.0-32-bit.zip
set MinGitUrl=https://github.com/git-for-windows/git/releases/download/v2.28.0.windows.1/%MinGitInstall%
set MinGitInstallPath=%EnvToolsPath%\MinGit
set CMakeVersion=cmake-3.1.0-win32-x86
set DoxygenInstall=doxygen-1.9.6.windows.x64.bin.zip
set DoxygenUrl=https://github.com/doxygen/doxygen/releases/download/Release_1_9_6/%DoxygenInstall%
set DoxygenInstallPath=%EnvToolsPath%\doxygen
set CMakeVersion=cmake-3.31.3-windows-i386
set CMakeInstall=%CMakeVersion%.zip
set CMakeUrl=http://www.cmake.org/files/v3.1/%CMakeInstall%
set CMakeUrl=https://github.com/Kitware/CMake/releases/download/v3.31.3/%CMakeInstall%
set CMakeInstallPath=%EnvToolsPath%\cmake
set TorProjectUrl=https://www.torproject.org
set TorDownloadIndexUrl=%TorProjectUrl%/download/tor
@ -50,7 +53,7 @@ if not exist "%EnvToolsPath%\cecho.exe" (
if not exist "%EnvDownloadPath%\%cCEhoInstall%" echo Cannot download cecho installation& goto error
echo Unpack cecho
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%CEchoInstall%"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%CEchoInstall%" -y -bso0
copy "%EnvTempPath%\cecho.exe" "%EnvToolsPath%"
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
@ -66,7 +69,7 @@ if not exist "%EnvToolsPath%\depends.exe" (
if not exist "%EnvDownloadPath%\%DependsInstall%" %cecho% error "Cannot download Dependendy Walker installation" & goto error
%cecho% info "Unpack Dependency Walker"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%DependsInstall%"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%DependsInstall%" -y -bso0
copy "%EnvTempPath%\*" "%EnvToolsPath%"
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
@ -82,7 +85,7 @@ if not exist "%EnvToolsPath%\cut.exe" (
if not exist "%EnvDownloadPath%\%UnixToolsInstall%" %cecho% error "Cannot download Unix Tools installation" & goto error
%cecho% info "Unpack Unix Tools"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%UnixToolsInstall%"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%UnixToolsInstall%" -y -bso0
copy "%EnvTempPath%\cut.exe" "%EnvToolsPath%"
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
@ -98,7 +101,7 @@ if not exist "%EnvToolsPath%\sed.exe" (
if not exist "%EnvDownloadPath%\%UnixToolsInstall%" %cecho% error "Cannot download Unix Tools installation" & goto error
%cecho% info "Unpack Unix Tools"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%UnixToolsInstall%"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%UnixToolsInstall%" -y -bso0
copy "%EnvTempPath%\sed.exe" "%EnvToolsPath%"
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
@ -118,7 +121,7 @@ if not exist "%NSISInstallPath%\nsis.exe" (
if not exist "%EnvDownloadPath%\%NSISInstall%" %cecho% error "Cannot download NSIS installation" & goto error
%cecho% info "Unpack NSIS"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%NSISInstall%"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%NSISInstall%" -y -bso0
if not exist "%NSISInstallPath%" mkdir "%NSISInstallPath%"
xcopy /s "%EnvTempPath%" "%NSISInstallPath%"
@ -132,7 +135,20 @@ if not exist "%MinGitInstallPath%\cmd\git.exe" (
if not exist "%EnvDownloadPath%\%MinGitInstall%" %cecho% error "Cannot download MinGit installation" & goto error
%cecho% info "Unpack MinGit"
"%EnvSevenZipExe%" x -o"%MinGitInstallPath%" "%EnvDownloadPath%\%MinGitInstall%"
"%EnvSevenZipExe%" x -o"%MinGitInstallPath%" "%EnvDownloadPath%\%MinGitInstall%" -y -bso0
)
if not exist "%EnvDownloadPath%\%DoxygenInstall%" call "%ToolsPath%\remove-dir.bat" "%DoxygenInstallPath%"
if not exist "%DoxygenInstallPath%\doxygen.exe" (
if exist "%DoxygenInstallPath%" call "%ToolsPath%\remove-dir.bat" "%DoxygenInstallPath%"
%cecho% info "Download Doxygen installation"
if not exist "%EnvDownloadPath%\%DoxygenInstall%" call "%ToolsPath%\download-file.bat" "%DoxygenUrl%" "%EnvDownloadPath%\%DoxygenInstall%"
if not exist "%EnvDownloadPath%\%DoxygenInstall%" %cecho% error "Cannot download doxygen installation" & goto error
%cecho% info "Unpack Doxygen"
"%EnvSevenZipExe%" x -o"%DoxygenInstallPath%" "%EnvDownloadPath%\%DoxygenInstall%" -y -bso0
)
if not exist "%EnvDownloadPath%\%CMakeInstall%" call "%ToolsPath%\remove-dir.bat" "%CMakeInstallPath%"
@ -147,7 +163,7 @@ if not exist "%CMakeInstallPath%\bin\cmake.exe" (
if not exist "%EnvDownloadPath%\%CMakeInstall%" %cecho% error "Cannot download CMake installation" & goto error
%cecho% info "Unpack CMake"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%CMakeInstall%"
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%CMakeInstall%" -y -bso0
move "%EnvTempPath%\%CMakeVersion%" "%CMakeInstallPath%"
@ -160,7 +176,7 @@ mkdir "%EnvTempPath%"
call "%ToolsPath%\download-file.bat" "%TorDownloadIndexUrl%" "%EnvTempPath%\index.html"
if not exist "%EnvTempPath%\index.html" %cecho% error "Cannot download Tor installation" & goto error
for /F "tokens=1,2 delims= " %%A in ('%EnvSedExe% -r -n -e"s/.*href=\"^(.*^)^(tor-win32.*\.zip^)\".*/\2 \1\2/p" "%EnvTempPath%\index.html"') do set TorInstall=%%A& set TorDownloadUrl=%TorProjectUrl%%%B
for /F "tokens=1,2 delims= " %%A in ('%EnvSedExe% -r -n -e"s/.*href=\"^(.*^)^(tor-.*windows-i686.*\.tar\.gz^)\".*/\2 \1\2/p" "%EnvTempPath%\index.html"') do set TorInstall=%%A& set TorDownloadUrl=%%B
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
if "%TorInstall%"=="" %cecho% error "Cannot download Tor installation" & goto error
if "%TorDownloadUrl%"=="" %cecho% error "Cannot download Tor installation" & goto error
@ -173,7 +189,7 @@ if not exist "%EnvTorPath%\Tor\tor.exe" (
if not exist "%EnvDownloadPath%\%TorInstall%" %cecho% error "Cannot download Tor installation" & goto error
%cecho% info "Unpack Tor"
"%EnvSevenZipExe%" x -o"%EnvTorPath%" "%EnvDownloadPath%\%TorInstall%"
"%EnvSevenZipExe%" x -so "%EnvDownloadPath%\%TorInstall%" | "%EnvSevenZipExe%" x -si -ttar -o"%EnvTorPath%" -y -bso0
)
:exit

View File

@ -2,18 +2,13 @@
setlocal
if exist "%~dp0msys2\msys32" call :update 32
if exist "%~dp0msys2\msys64" call :update 64
if not exist "%~dp0msys2\msys64" goto :EOF
goto :EOF
set MSYS2SH=%~dp0msys2\msys64\usr\bin\sh
:update
set MSYSSH=%~dp0msys2\msys%~1\usr\bin\sh
echo Update MSYS2
"%MSYS2SH%" -lc "yes | pacman --noconfirm -Syuu msys2-keyring"
"%MSYS2SH%" -lc "pacman --noconfirm -Su"
echo Update MSYS2 %~1
"%MSYSSH%" -lc "pacman -Sy"
"%MSYSSH%" -lc "pacman --noconfirm -Su"
:exit
endlocal
goto :EOF

View File

@ -2,6 +2,12 @@
!insertmacro LANG_STRING Section_Main_Desc "Instal·la ${APPNAME} i els components necessaris."
!insertmacro LANG_STRING Section_Tor "Tor"
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
!insertmacro LANG_STRING Section_WebUI "WebUI"
!insertmacro LANG_STRING Section_WebUI_Desc "Installs WebUI."
!insertmacro LANG_STRING Section_Service "Service"
!insertmacro LANG_STRING Section_Service_Desc "Installs Service."
!insertmacro LANG_STRING Section_FriendServer "Friend Server"
!insertmacro LANG_STRING Section_FriendServer_Desc "Installs Friend Server."
!insertmacro LANG_STRING Section_Data "Pells"
!insertmacro LANG_STRING Section_Data_Desc "Instal·la pells."
!insertmacro LANG_STRING Section_Shortcuts "Icones d'accés directe"

View File

@ -2,6 +2,12 @@
!insertmacro LANG_STRING Section_Main_Desc "Installiert ${APPNAME} und die benötigten Komponenten."
!insertmacro LANG_STRING Section_Tor "Tor"
!insertmacro LANG_STRING Section_Tor_Desc "Installiert Tor."
!insertmacro LANG_STRING Section_WebUI "WebUI"
!insertmacro LANG_STRING Section_WebUI_Desc "Installiert WebUI."
!insertmacro LANG_STRING Section_Service "Service"
!insertmacro LANG_STRING Section_Service_Desc "Installiert Service."
!insertmacro LANG_STRING Section_FriendServer "Friend Server"
!insertmacro LANG_STRING Section_FriendServer_Desc "Installiert Friend Server."
!insertmacro LANG_STRING Section_Data "Skins"
!insertmacro LANG_STRING Section_Data_Desc "Skins installieren."
!insertmacro LANG_STRING Section_Shortcuts "Verknüpfungssymbole"

View File

@ -2,6 +2,12 @@
!insertmacro LANG_STRING Section_Main_Desc "Installs ${APPNAME} and required components."
!insertmacro LANG_STRING Section_Tor "Tor"
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
!insertmacro LANG_STRING Section_WebUI "WebUI"
!insertmacro LANG_STRING Section_WebUI_Desc "Installs WebUI."
!insertmacro LANG_STRING Section_Service "Service"
!insertmacro LANG_STRING Section_Service_Desc "Installs Service."
!insertmacro LANG_STRING Section_FriendServer "Friend Server"
!insertmacro LANG_STRING Section_FriendServer_Desc "Installs Friend Server."
!insertmacro LANG_STRING Section_Data "Skins"
!insertmacro LANG_STRING Section_Data_Desc "Installs skins."
!insertmacro LANG_STRING Section_Shortcuts "Shortcut icons"

View File

@ -2,6 +2,12 @@
!insertmacro LANG_STRING Section_Main_Desc "Instala ${APPNAME} y los componentes requeridos."
!insertmacro LANG_STRING Section_Tor "Tor"
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
!insertmacro LANG_STRING Section_WebUI "WebUI"
!insertmacro LANG_STRING Section_WebUI_Desc "Installs WebUI."
!insertmacro LANG_STRING Section_Service "Service"
!insertmacro LANG_STRING Section_Service_Desc "Installs Service."
!insertmacro LANG_STRING Section_FriendServer "Friend Server"
!insertmacro LANG_STRING Section_FriendServer_Desc "Installs Friend Server."
!insertmacro LANG_STRING Section_Data "Coberturas (skins)"
!insertmacro LANG_STRING Section_Data_Desc "Instalar coberturas"
!insertmacro LANG_STRING Section_Shortcuts "Iconos de accesos directos"

View File

@ -2,6 +2,12 @@
!insertmacro LANG_STRING Section_Main_Desc "Installe ${APPNAME} et les composants requis."
!insertmacro LANG_STRING Section_Tor "Tor"
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
!insertmacro LANG_STRING Section_WebUI "WebUI"
!insertmacro LANG_STRING Section_WebUI_Desc "Installs WebUI."
!insertmacro LANG_STRING Section_Service "Service"
!insertmacro LANG_STRING Section_Service_Desc "Installs Service."
!insertmacro LANG_STRING Section_FriendServer "Friend Server"
!insertmacro LANG_STRING Section_FriendServer_Desc "Installs Friend Server."
!insertmacro LANG_STRING Section_Data "Habillages"
!insertmacro LANG_STRING Section_Data_Desc "Installe des habillages."
!insertmacro LANG_STRING Section_Shortcuts "Icônes de raccourci"

View File

@ -2,6 +2,12 @@
!insertmacro LANG_STRING Section_Main_Desc "Instaluje ${APPNAME} oraz wymagane komponenty."
!insertmacro LANG_STRING Section_Tor "Tor"
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
!insertmacro LANG_STRING Section_WebUI "WebUI"
!insertmacro LANG_STRING Section_WebUI_Desc "Installs WebUI."
!insertmacro LANG_STRING Section_Service "Service"
!insertmacro LANG_STRING Section_Service_Desc "Installs Service."
!insertmacro LANG_STRING Section_FriendServer "Friend Server"
!insertmacro LANG_STRING Section_FriendServer_Desc "Installs Friend Server."
!insertmacro LANG_STRING Section_Data "Skórki"
!insertmacro LANG_STRING Section_Data_Desc "Instaluje skórki."
!insertmacro LANG_STRING Section_Shortcuts "Ikony skrótów"

View File

@ -2,6 +2,12 @@
!insertmacro LANG_STRING Section_Main_Desc "Установка ${APPNAME} и необходимых компонентов."
!insertmacro LANG_STRING Section_Tor "Tor"
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
!insertmacro LANG_STRING Section_WebUI "WebUI"
!insertmacro LANG_STRING Section_WebUI_Desc "Installs WebUI."
!insertmacro LANG_STRING Section_Service "Service"
!insertmacro LANG_STRING Section_Service_Desc "Installs Service."
!insertmacro LANG_STRING Section_FriendServer "Friend Server"
!insertmacro LANG_STRING Section_FriendServer_Desc "Installs Friend Server."
!insertmacro LANG_STRING Section_Data "Оболочки"
!insertmacro LANG_STRING Section_Data_Desc "Установка оболочек."
!insertmacro LANG_STRING Section_Shortcuts "Ярлыки"

View File

@ -2,6 +2,12 @@
!insertmacro LANG_STRING Section_Main_Desc "${APPNAME} ve gerekli bileşenleri kurar."
!insertmacro LANG_STRING Section_Tor "Tor"
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
!insertmacro LANG_STRING Section_WebUI "WebUI"
!insertmacro LANG_STRING Section_WebUI_Desc "Installs WebUI."
!insertmacro LANG_STRING Section_Service "Service"
!insertmacro LANG_STRING Section_Service_Desc "Installs Service."
!insertmacro LANG_STRING Section_FriendServer "Friend Server"
!insertmacro LANG_STRING Section_FriendServer_Desc "Installs Friend Server."
!insertmacro LANG_STRING Section_Data "Temalar"
!insertmacro LANG_STRING Section_Data_Desc "Tema yükleyin."
!insertmacro LANG_STRING Section_Shortcuts "Kısayol simgeleri"

View File

@ -22,6 +22,48 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Section_WebUI</name>
<message>
<source>WebUI</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Section_WebUI_Desc</name>
<message>
<source>Installs WebUI.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Section_Service</name>
<message>
<source>Service</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Section_Service_Desc</name>
<message>
<source>Installs Service.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Section_FriendServer</name>
<message>
<source>Friend Server</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Section_FriendServer_Desc</name>
<message>
<source>Installs Friend Server.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Section_Data</name>
<message>

View File

@ -2,6 +2,12 @@
!insertmacro LANG_STRING Section_Main_Desc "Installs ${APPNAME} and required components."
!insertmacro LANG_STRING Section_Tor "Tor"
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
!insertmacro LANG_STRING Section_WebUI "WebUI"
!insertmacro LANG_STRING Section_WebUI_Desc "Installs WebUI."
!insertmacro LANG_STRING Section_Service "Service"
!insertmacro LANG_STRING Section_Service_Desc "Installs Service."
!insertmacro LANG_STRING Section_FriendServer "Friend Server"
!insertmacro LANG_STRING Section_FriendServer_Desc "Installs Friend Server."
!insertmacro LANG_STRING Section_Data "皮肤"
!insertmacro LANG_STRING Section_Data_Desc "安装皮肤"
!insertmacro LANG_STRING Section_Shortcuts "快捷方式图标"

View File

@ -60,6 +60,9 @@
!define /date DATE "%Y%m%d"
!endif
# Service
${!defineifexist} SERVICE_EXISTS "${RELEASEDIR}\retroshare-service\src\release\retroshare-service.exe"
# Tor
!ifdef TORDIR
${!defineifexist} TOR_EXISTS "${TORDIR}\tor.exe"
@ -68,6 +71,20 @@ ${!defineifexist} TOR_EXISTS "${TORDIR}\tor.exe"
!endif
!endif
# WebUI
!ifdef WEBUIDIR
${!defineifexist} WEBUI_EXISTS "${WEBUIDIR}\index.html"
!ifndef WEBUI_EXISTS
!error "WebUI files not found"
!endif
!endif
# Friend Server
!ifdef TOR_EXISTS
# Add Friend Server with Tor only
#${!defineifexist} FRIENDSERVER_EXISTS "${RELEASEDIR}\retroshare-friendserver\src\release\retroshare-friendserver.exe"
!endif
# Application name and version
!define APPNAME "RetroShare"
!define APPNAMEANDVERSION "${APPNAME} ${VERSION}"
@ -192,8 +209,8 @@ Section $(Section_Main) Section_Main
; Main binaries
SetOutPath "$INSTDIR"
File /oname=retroshare.exe "${RELEASEDIR}\retroshare-gui\src\release\retroshare.exe"
File /oname=retroshare-service.exe "${RELEASEDIR}\retroshare-service\src\release\retroshare-service.exe"
File "${RELEASEDIR}\retroshare-gui\src\release\retroshare.exe"
File /nonfatal "${RELEASEDIR}\libretroshare\src\lib\retroshare.dll"
; Qt binaries
File "${QTDIR}\bin\Qt5Core.dll"
@ -215,7 +232,7 @@ Section $(Section_Main) Section_Main
; Qt styles
SetOutPath "$INSTDIR\styles"
File /NONFATAL "${QTDIR}\plugins\styles\qwindowsvistastyle.dll"
File "${QTDIR}\plugins\styles\qwindowsvistastyle.dll"
; MinGW binaries
SetOutPath "$INSTDIR"
@ -230,6 +247,7 @@ Section $(Section_Main) Section_Main
; External binaries
File "${EXTERNAL_LIB_DIR}\bin\miniupnpc.dll"
File "${RELEASEDIR}\supportlibs\librnp\Build\src\lib\librnp.dll"
!if ${ARCHITECTURE} == "x86"
File "${EXTERNAL_LIB_DIR}\bin\libcrypto-1_1.dll"
File "${EXTERNAL_LIB_DIR}\bin\libssl-1_1.dll"
@ -281,17 +299,41 @@ Section $(Section_Main) Section_Main
File /r "${SOURCEDIR}\retroshare-gui\src\license\*.*"
SectionEnd
# Service
!ifdef SERVICE_EXISTS
Section /o $(Section_Service) Section_Service
SetOutPath "$INSTDIR"
File "${RELEASEDIR}\retroshare-service\src\release\retroshare-service.exe"
SectionEnd
!endif
# Friend Server
!ifdef FRIENDSERVER_EXISTS
Section /o $(Section_FriendServer) Section_FriendServer
SetOutPath "$INSTDIR"
File "${RELEASEDIR}\retroshare-friendserver\src\release\retroshare-friendserver.exe"
SectionEnd
!endif
# Tor
!ifdef TOR_EXISTS
Section /o $(Section_Tor) Section_Tor
SetOutPath "$INSTDIR"
File /r "${TORDIR}\*"
SetOutPath "$INSTDIR\tor"
File "${TORDIR}\*"
SectionEnd
!endif
# WebUI
!ifdef WEBUI_EXISTS
Section /o $(Section_WebUI) Section_WebUI
SetOutPath "$INSTDIR\webui"
File /r "${WEBUIDIR}\*"
SectionEnd
!endif
# Plugins
${!defineifexist} PLUGIN_FEEDREADER_EXISTS "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
${!defineifexist} PLUGIN_VOIP_EXISTS "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
${!defineifexist} PLUGIN_FEEDREADER_EXISTS "${RELEASEDIR}\plugins\FeedReader\lib\FeedReader.dll"
${!defineifexist} PLUGIN_VOIP_EXISTS "${RELEASEDIR}\plugins\VOIP\lib\VOIP.dll"
!ifdef PLUGIN_FEEDREADER_EXISTS
!define /ifndef PLUGIN_EXISTS
@ -305,14 +347,16 @@ ${!defineifexist} PLUGIN_VOIP_EXISTS "${RELEASEDIR}\plugins\VOIP\release\VOIP.dl
!ifdef PLUGIN_FEEDREADER_EXISTS
Section $(Section_Plugin_FeedReader) Section_Plugin_FeedReader
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
File "${RELEASEDIR}\plugins\FeedReader\lib\FeedReader.dll"
SectionEnd
!endif
!ifdef PLUGIN_VOIP_EXISTS
Section $(Section_Plugin_VOIP) Section_Plugin_VOIP
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
File "${RELEASEDIR}\plugins\VOIP\lib\VOIP.dll"
SetOutPath "$INSTDIR\sounds"
File /r "${SOURCEDIR}\plugins\VOIP\gui\sounds\*.*"
SectionEnd
!endif
SectionGroupEnd
@ -331,7 +375,7 @@ Section $(Section_Data) Section_Data
; Stylesheets
SetOutPath "$INSTDIR\qss"
File /r "${SOURCEDIR}\retroshare-gui\src\qss\*.*"
File /nonfatal /r "${SOURCEDIR}\retroshare-gui\src\qss\*.*"
SectionEnd
;Section $(Section_Link) Section_Link
@ -352,6 +396,22 @@ Section $(Section_StartMenu) Section_StartMenu
CreateDirectory "$SMPROGRAMS\${APPNAME}"
CreateShortCut "$SMPROGRAMS\${APPNAME}\$(Link_Uninstall).lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
!ifdef SERVICE_EXISTS
SectionGetFlags ${Section_Service} $0
IntOp $0 $0 & ${SF_SELECTED}
${If} $0 == ${SF_SELECTED}
CreateShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME} Service.lnk" "$INSTDIR\retroshare-service.exe" "" "$INSTDIR\retroshare-service.exe" 0
${EndIf}
!endif
!ifdef FRIENDSERVER_EXISTS
SectionGetFlags ${Section_FriendServer} $0
IntOp $0 $0 & ${SF_SELECTED}
${If} $0 == ${SF_SELECTED}
CreateShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME} Friend Server.lnk" "$INSTDIR\retroshare-friendserver.exe" "" "$INSTDIR\retroshare-friendserver.exe" 0
${EndIf}
!endif
SectionEnd
Section $(Section_Desktop) Section_Desktop
@ -404,6 +464,9 @@ SectionEnd
; !insertmacro MUI_DESCRIPTION_TEXT ${Section_Link} $(Section_Link_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_AutoStart} $(Section_AutoStart_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Tor} $(Section_Tor_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_WebUI} $(Section_WebUI_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Service} $(Section_Service_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_FriendServer} $(Section_FriendServer_Desc)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
# Uninstall
@ -458,6 +521,26 @@ Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd
!ifdef FRIENDSERVER_EXISTS
Function .onSelChange
SectionGetFlags ${Section_FriendServer} $0
IntOp $0 $0 & ${SF_SELECTED}
${If} $0 == ${SF_SELECTED}
# Activate Tor and set readonly
SectionGetFlags ${Section_Tor} $1
IntOp $1 $1 | ${SF_SELECTED}
IntOp $1 $1 | ${SF_RO}
SectionSetFlags ${Section_Tor} $1
${Else}
# Remove readonly from Tor
SectionGetFlags ${Section_Tor} $1
IntOp $2 ${SF_RO} ~
IntOp $1 $1 & $2
SectionSetFlags ${Section_Tor} $1
${EndIf}
FunctionEnd
!endif
# Installation mode
Function RequireAdmin

View File

@ -0,0 +1,622 @@
; Script generated with the Venis Install Wizard & modified by defnax
; Reworked by Thunder
!include ifexist.nsh
# Needed defines
;!define REVISION ""
;!define RELEASEDIR ""
;!define QTDIR ""
;!define MINGWDIR ""
# Optional defines
;!define OUTDIR ""
# Check needed defines
!ifndef RELEASEDIR
!error "RELEASEDIR is not defined"
!endif
!ifndef QTDIR
!error "QTDIR is not defined"
!endif
!ifndef MINGWDIR
!error "MINGWDIR is not defined"
!endif
!ifndef ARCHITECTURE
!error "Architecture is not defined"
!endif
# Check optional defines
!ifdef OUTDIR
!define OUTDIR_ "${OUTDIR}\"
!else
!define OUTDIR ""
!define OUTDIR_ ""
!endif
!ifndef INSTALLERADD
!define INSTALLERADD ""
!endif
# Source directory
!define SOURCEDIR "..\..\.."
# Get version from executable
!GetDllVersion "${RELEASEDIR}\retroshare-gui\src\release\retroshare.exe" VERSION_
!define VERSION ${VERSION_1}.${VERSION_2}.${VERSION_3}
;!define REVISION ${VERSION_4}
# Get version of Qt
!GetDllVersion "${QTDIR}\bin\Qt6Core.dll" QTVERSION_
!define QTVERSION ${QTVERSION_1}.${QTVERSION_2}.${QTVERSION_3}
# Check version
!ifndef REVISION
!error "REVISION is not defined"
!endif
# Date
!ifndef DATE
!define /date DATE "%Y%m%d"
!endif
# Service
${!defineifexist} SERVICE_EXISTS "${RELEASEDIR}\retroshare-service\src\release\retroshare-service.exe"
# Tor
!ifdef TORDIR
${!defineifexist} TOR_EXISTS "${TORDIR}\tor.exe"
!ifndef TOR_EXISTS
!error "tor.exe not found"
!endif
!endif
# WebUI
!ifdef WEBUIDIR
${!defineifexist} WEBUI_EXISTS "${WEBUIDIR}\index.html"
!ifndef WEBUI_EXISTS
!error "WebUI files not found"
!endif
!endif
# Friend Server
!ifdef TOR_EXISTS
# Add Friend Server with Tor only
#${!defineifexist} FRIENDSERVER_EXISTS "${RELEASEDIR}\retroshare-friendserver\src\release\retroshare-friendserver.exe"
!endif
# Application name and version
!define APPNAME "RetroShare"
!define APPNAMEANDVERSION "${APPNAME} ${VERSION}"
!define PUBLISHER "RetroShare Team"
# Install path
!if ${ARCHITECTURE} == "x86"
!define INSTDIR_NORMAL "$ProgramFiles32\${APPNAME}"
!endif
!if ${ARCHITECTURE} == "x64"
!define INSTDIR_NORMAL "$ProgramFiles64\${APPNAME}"
!endif
!define INSTDIR_PORTABLE "$Desktop\${APPNAME}"
!define DATADIR_NORMAL "$APPDATA\${APPNAME}"
!define DATADIR_PORTABLE "$INSTDIR\Data"
# Main Install settings
Name "${APPNAMEANDVERSION}"
InstallDirRegKey HKLM "Software\${APPNAME}" ""
OutFile "${OUTDIR_}RetroShare-${VERSION}-${DATE}-${REVISION}-Qt-${QTVERSION}-${ARCHITECTURE}${INSTALLERADD}-setup.exe"
BrandingText "${APPNAMEANDVERSION}"
RequestExecutionlevel highest
# Use compression
SetCompressor /SOLID LZMA
# Global variables
Var PortableMode
Var InstDirNormal
Var InstDirPortable
Var DataDir
Var StyleSheetDir
# Modern interface settings
!include Sections.nsh
!include nsDialogs.nsh
!include "MUI.nsh"
# Interface Settings
!define MUI_ABORTWARNING
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "${SOURCEDIR}\build_scripts\Windows\installer\HeaderImage.bmp"
;!define MUI_WELCOMEFINISHPAGE_BITMAP "...bmp"
# MUI defines
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_LICENSEPAGE_RADIOBUTTONS
!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_FINISHPAGE_LINK "Visit the RetroShare forum for the latest news and support"
!define MUI_FINISHPAGE_LINK_LOCATION "http://retroshare.sourceforge.net/forum/"
!define MUI_FINISHPAGE_RUN "$INSTDIR\retroshare.exe"
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\changelog.txt
!define MUI_FINISHPAGE_SHOWREADME_TEXT changelog.txt
;!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
;!define MUI_LANGDLL_REGISTRY_ROOT HKLM
;!define MUI_LANGDLL_REGISTRY_KEY ${REGKEY}
;!define MUI_LANGDLL_REGISTRY_VALUENAME InstallerLanguage
# Defines the un-/installer logo of RetroShare
!insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange.bmp"
!insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange-uninstall.bmp"
# Installer pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "$(myLicenseData)"
Page Custom PortableModePageCreate PortableModePageLeave
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE dir_leave
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
# Set languages (first is default language)
!insertmacro MUI_RESERVEFILE_LANGDLL
# Installer languages
!define MUI_LANGDLL_ALLLANGUAGES
# Translations
!macro LANG_LOAD LANGUAGE LANGCODE LANGID LICENCEFILE
!insertmacro MUI_LANGUAGE "${LANGUAGE}"
; !verbose off
!define LANG "${LANGUAGE}"
!include "lang\${LANGCODE}.nsh"
LangString LANGUAGEID "${LANG_${LANG}}" "1031"
LicenseLangString myLicenseData ${LANGCODE} ${LICENCEFILE}
; !verbose on
!undef LANG
!macroend
!macro LANG_STRING NAME VALUE
LangString "${NAME}" "${LANG_${LANG}}" "${VALUE}"
!macroend
!insertmacro LANG_LOAD "English" "en" "1033" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
!insertmacro LANG_LOAD "French" "fr" "1036" "${SOURCEDIR}\retroshare-gui\src\license\license-FR.txt"
!insertmacro LANG_LOAD "German" "de" "1031" "${SOURCEDIR}\retroshare-gui\src\license\license-GER.txt"
!insertmacro LANG_LOAD "Turkish" "tr" "1055" "${SOURCEDIR}\retroshare-gui\src\license\license-TR.txt"
!insertmacro LANG_LOAD "SimpChinese" "zh_CN" "2052" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
!insertmacro LANG_LOAD "Polish" "pl" "1045" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
!insertmacro LANG_LOAD "Spanish" "es" "1034" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
!insertmacro LANG_LOAD "Russian" "ru" "1049" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
!insertmacro LANG_LOAD "Catalan" "ca_ES" "1027" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
LicenseData $(myLicenseData)
# Main binaries
Section $(Section_Main) Section_Main
;Set Section required
SectionIn RO
; Set Section properties
SetOverwrite on
; Clears previous error logs
; Delete "$INSTDIR\*.log"
; Main binaries
SetOutPath "$INSTDIR"
File "${RELEASEDIR}\retroshare-gui\src\release\retroshare.exe"
File /nonfatal "${RELEASEDIR}\libretroshare\src\lib\retroshare.dll"
; Qt binaries
File "${QTDIR}\bin\Qt6Core.dll"
File "${QTDIR}\bin\Qt6Core5Compat.dll"
File "${QTDIR}\bin\Qt6Gui.dll"
File "${QTDIR}\bin\Qt6Multimedia.dll"
File "${QTDIR}\bin\Qt6Network.dll"
File "${QTDIR}\bin\Qt6PrintSupport.dll"
File "${QTDIR}\bin\Qt6Svg.dll"
File "${QTDIR}\bin\Qt6Widgets.dll"
File "${QTDIR}\bin\Qt6Xml.dll"
; Qt platforms
SetOutPath "$INSTDIR\platforms"
File "${QTDIR}\plugins\platforms\qwindows.dll"
; Qt styles
SetOutPath "$INSTDIR\styles"
File "${QTDIR}\plugins\styles\qmodernwindowsstyle.dll"
; MinGW binaries
SetOutPath "$INSTDIR"
File "${MINGWDIR}\bin\libstdc++-6.dll"
!if ${ARCHITECTURE} == "x86"
File "${MINGWDIR}\bin\libgcc_s_dw2-1.dll"
!endif
!if ${ARCHITECTURE} == "x64"
File "${MINGWDIR}\bin\libgcc_s_seh-1.dll"
!endif
File "${MINGWDIR}\bin\libwinpthread-1.dll"
; External binaries
File "${EXTERNAL_LIB_DIR}\bin\miniupnpc.dll"
File "${RELEASEDIR}\supportlibs\librnp\Build\src\lib\librnp.dll"
!if ${ARCHITECTURE} == "x86"
File "${EXTERNAL_LIB_DIR}\bin\libcrypto-1_1.dll"
File "${EXTERNAL_LIB_DIR}\bin\libssl-1_1.dll"
!endif
!if ${ARCHITECTURE} == "x64"
File "${EXTERNAL_LIB_DIR}\bin\libcrypto-1_1-x64.dll"
File "${EXTERNAL_LIB_DIR}\bin\libssl-1_1-x64.dll"
!endif
; Other files
File "${RELEASEDIR}\changelog.txt"
File "${SOURCEDIR}\libbitdht\src\bitdht\bdboot.txt"
; License
SetOutPath "$INSTDIR\license"
File "${SOURCEDIR}\retroshare-gui\src\license\*.*"
; Image formats
SetOutPath "$INSTDIR\imageformats"
File /r "${QTDIR}\plugins\imageformats\qgif.dll"
File /r "${QTDIR}\plugins\imageformats\qicns.dll"
File /r "${QTDIR}\plugins\imageformats\qico.dll"
File /r "${QTDIR}\plugins\imageformats\qjpeg.dll"
File /r "${QTDIR}\plugins\imageformats\qsvg.dll"
File /r "${QTDIR}\plugins\imageformats\qtga.dll"
File /r "${QTDIR}\plugins\imageformats\qtiff.dll"
File /r "${QTDIR}\plugins\imageformats\qwbmp.dll"
File /r "${QTDIR}\plugins\imageformats\qwebp.dll"
; Sounds
SetOutPath "$INSTDIR\sounds"
File /r "${SOURCEDIR}\retroshare-gui\src\sounds\*.*"
; Translations
SetOutPath "$INSTDIR\translations"
File /r "${SOURCEDIR}\retroshare-gui\src\translations\*.qm"
File /r "${QTDIR}\translations\qt_*.qm"
File /r "${QTDIR}\translations\qtbase_*.qm"
File /r "${QTDIR}\translations\qtmultimedia_*.qm"
; WebUI
; SetOutPath "$INSTDIR\webui"
; File /r "${SOURCEDIR}\libresapi\src\webui\*.*"
; License
SetOutPath "$INSTDIR\license"
File /r "${SOURCEDIR}\retroshare-gui\src\license\*.*"
SectionEnd
# Service
!ifdef SERVICE_EXISTS
Section /o $(Section_Service) Section_Service
SetOutPath "$INSTDIR"
File "${RELEASEDIR}\retroshare-service\src\release\retroshare-service.exe"
SectionEnd
!endif
# Friend Server
!ifdef FRIENDSERVER_EXISTS
Section /o $(Section_FriendServer) Section_FriendServer
SetOutPath "$INSTDIR"
File "${RELEASEDIR}\retroshare-friendserver\src\release\retroshare-friendserver.exe"
SectionEnd
!endif
# Tor
!ifdef TOR_EXISTS
Section /o $(Section_Tor) Section_Tor
SetOutPath "$INSTDIR\tor"
File "${TORDIR}\*"
SectionEnd
!endif
# WebUI
!ifdef WEBUI_EXISTS
Section /o $(Section_WebUI) Section_WebUI
SetOutPath "$INSTDIR\webui"
File /r "${WEBUIDIR}\*"
SectionEnd
!endif
# Plugins
${!defineifexist} PLUGIN_FEEDREADER_EXISTS "${RELEASEDIR}\plugins\FeedReader\lib\FeedReader.dll"
${!defineifexist} PLUGIN_VOIP_EXISTS "${RELEASEDIR}\plugins\VOIP\lib\VOIP.dll"
!ifdef PLUGIN_FEEDREADER_EXISTS
!define /ifndef PLUGIN_EXISTS
!endif
!ifdef PLUGIN_VOIP_EXISTS
!define /ifndef PLUGIN_EXISTS
!endif
!ifdef PLUGIN_EXISTS
SectionGroup $(Section_Plugins) Section_Plugins
!ifdef PLUGIN_FEEDREADER_EXISTS
Section $(Section_Plugin_FeedReader) Section_Plugin_FeedReader
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\FeedReader\lib\FeedReader.dll"
SectionEnd
!endif
!ifdef PLUGIN_VOIP_EXISTS
Section $(Section_Plugin_VOIP) Section_Plugin_VOIP
SetOutPath "$DataDir\extensions6"
File "${RELEASEDIR}\plugins\VOIP\lib\VOIP.dll"
SetOutPath "$INSTDIR\sounds"
File /r "${SOURCEDIR}\plugins\VOIP\gui\sounds\*.*"
SectionEnd
!endif
SectionGroupEnd
!endif
# Data (Styles)
Section $(Section_Data) Section_Data
; Set Section properties
SetOverwrite on
; Chat style
SetOutPath "$StyleSheetDir\stylesheets\Bubble"
File /r "${SOURCEDIR}\retroshare-gui\src\gui\qss\chat\Bubble\*.*"
SetOutPath "$StyleSheetDir\stylesheets\Bubble_Compact"
File /r "${SOURCEDIR}\retroshare-gui\src\gui\qss\chat\Bubble_Compact\*.*"
; Stylesheets
SetOutPath "$INSTDIR\qss"
File /nonfatal /r "${SOURCEDIR}\retroshare-gui\src\qss\*.*"
SectionEnd
;Section $(Section_Link) Section_Link
; Delete any existing keys
; Write the file association
; WriteRegStr HKCR .pqi "" retroshare
; WriteRegStr HKCR retroshare "" "PQI File"
; WriteRegBin HKCR retroshare EditFlags 00000100
; WriteRegStr HKCR "retroshare\shell" "" open
; WriteRegStr HKCR "retroshare\shell\open\command" "" `"$INSTDIR\retroshare.exe" "%1"`
;SectionEnd
# Shortcuts
SectionGroup $(Section_Shortcuts) Section_Shortcuts
Section $(Section_StartMenu) Section_StartMenu
SetOutPath "$INSTDIR"
CreateDirectory "$SMPROGRAMS\${APPNAME}"
CreateShortCut "$SMPROGRAMS\${APPNAME}\$(Link_Uninstall).lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
!ifdef SERVICE_EXISTS
SectionGetFlags ${Section_Service} $0
IntOp $0 $0 & ${SF_SELECTED}
${If} $0 == ${SF_SELECTED}
CreateShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME} Service.lnk" "$INSTDIR\retroshare-service.exe" "" "$INSTDIR\retroshare-service.exe" 0
${EndIf}
!endif
!ifdef FRIENDSERVER_EXISTS
SectionGetFlags ${Section_FriendServer} $0
IntOp $0 $0 & ${SF_SELECTED}
${If} $0 == ${SF_SELECTED}
CreateShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME} Friend Server.lnk" "$INSTDIR\retroshare-friendserver.exe" "" "$INSTDIR\retroshare-friendserver.exe" 0
${EndIf}
!endif
SectionEnd
Section $(Section_Desktop) Section_Desktop
CreateShortCut "$DESKTOP\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
SectionEnd
Section $(Section_QuickLaunch) Section_QuickLaunch
CreateShortCut "$QUICKLAUNCH\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
SectionEnd
SectionGroupEnd
Section $(Section_AutoStart) Section_AutoStart
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "RetroShare" "$INSTDIR\retroshare.exe -m"
SectionEnd
;Section $(Section_AutoStart) Section_AutoStart
; CreateShortCut "$SMSTARTUP\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe -m" 0
;SectionEnd
Section -FinishSection
${If} $PortableMode = 0
WriteRegStr HKLM "Software\${APPNAME}" "" "$INSTDIR"
WriteRegStr HKLM "Software\${APPNAME}" "Version" "${VERSION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayVersion" "${VERSION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayIcon" "$INSTDIR\retroshare.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "Publisher" "${PUBLISHER}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoModify" "1"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoRepair" "1"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$INSTDIR\uninstall.exe"
WriteUninstaller "$INSTDIR\uninstall.exe"
${Else}
; Create the file the application uses to detect portable mode
FileOpen $0 "$INSTDIR\portable" w
FileClose $0
${EndIf}
SectionEnd
# Descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Main} $(Section_Main_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Data} $(Section_Data_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Shortcuts} $(Section_Shortcuts_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_StartMenu} $(Section_StartMenu_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Desktop} $(Section_Desktop_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_QuickLaunch} $(Section_QuickLaunch_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugins} $(Section_Plugins_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugin_FeedReader} $(Section_Plugin_FeedReader_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugin_VOIP} $(Section_Plugin_VOIP_Desc)
; !insertmacro MUI_DESCRIPTION_TEXT ${Section_Link} $(Section_Link_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_AutoStart} $(Section_AutoStart_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Tor} $(Section_Tor_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_WebUI} $(Section_WebUI_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Service} $(Section_Service_Desc)
!insertmacro MUI_DESCRIPTION_TEXT ${Section_FriendServer} $(Section_FriendServer_Desc)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
# Uninstall
Section "Uninstall"
; Remove file association registry keys
; DeleteRegKey HKCR .pqi
DeleteRegKey HKCR RetroShare
; Remove program/uninstall regsitry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
DeleteRegKey HKLM SOFTWARE\${APPNAME}
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "RetroShare"
; Remove shortcuts, if any
Delete "$SMPROGRAMS\${APPNAME}\*.*"
; Remove desktop shortcut
Delete "$DESKTOP\${APPNAME}.lnk"
; Remove Quicklaunch shortcut
Delete "$QUICKLAUNCH\${APPNAME}.lnk"
; Remove Autstart
Delete "$SMSTARTUP\${APPNAME}.lnk"
; Remove directories used
RMDir "$SMPROGRAMS\${APPNAME}"
RMDir /r "$INSTDIR"
; Don't remove the directory, otherwise
; we lose the XPGP keys.
; Should make this an option though...
RMDir /r "${DATADIR_NORMAL}\extensions6"
RMDir /r "${DATADIR_NORMAL}\stylesheets"
SectionEnd
Function .onInit
StrCpy $InstDirNormal "${INSTDIR_NORMAL}"
StrCpy $InstDirPortable "${INSTDIR_PORTABLE}"
StrCpy $PortableMode 0
StrCpy $INSTDIR "$InstDirNormal"
StrCpy $DataDir "${DATADIR_NORMAL}"
InitPluginsDir
Push $R1
File /oname=$PLUGINSDIR\spltmp.bmp "${SOURCEDIR}\retroshare-gui\src\gui\images\logo\logo_splash.png"
advsplash::show 1200 1000 1000 -1 $PLUGINSDIR\spltmp
Pop $R1
Pop $R1
!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd
!ifdef FRIENDSERVER_EXISTS
Function .onSelChange
SectionGetFlags ${Section_FriendServer} $0
IntOp $0 $0 & ${SF_SELECTED}
${If} $0 == ${SF_SELECTED}
# Activate Tor and set readonly
SectionGetFlags ${Section_Tor} $1
IntOp $1 $1 | ${SF_SELECTED}
IntOp $1 $1 | ${SF_RO}
SectionSetFlags ${Section_Tor} $1
${Else}
# Remove readonly from Tor
SectionGetFlags ${Section_Tor} $1
IntOp $2 ${SF_RO} ~
IntOp $1 $1 & $2
SectionSetFlags ${Section_Tor} $1
${EndIf}
FunctionEnd
!endif
# Installation mode
Function RequireAdmin
UserInfo::GetAccountType
Pop $8
${If} $8 != "admin"
MessageBox MB_ICONSTOP "You need administrator rights to install ${APPNAME}"
SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
Abort
${EndIf}
FunctionEnd
Function SetModeDestinationFromInstdir
${If} $PortableMode = 0
StrCpy $InstDirNormal $INSTDIR
${Else}
StrCpy $InstDirPortable $INSTDIR
${EndIf}
FunctionEnd
Function PortableModePageCreate
Call SetModeDestinationFromInstdir ; If the user clicks BACK on the directory page we will remember their mode specific directory
!insertmacro MUI_HEADER_TEXT $(Page_InstallMode) $(Page_InstallMode_Desc)
nsDialogs::Create 1018
Pop $0
${NSD_CreateRadioButton} 5u 25u -10u 8u $(Page_InstallMode_Standard)
Pop $1
${NSD_CreateLabel} 18u 40u -10u 24u $(Page_InstallMode_Standard_Desc)
Pop $0
${NSD_CreateRadioButton} 5u 75u -10u 8u $(Page_InstallMode_Portable)
Pop $2
${NSD_CreateLabel} 18u 90u -10u 24u $(Page_InstallMode_Portable_Desc)
Pop $0
${If} $PortableMode = 0
SendMessage $1 ${BM_SETCHECK} ${BST_CHECKED} 0
${Else}
SendMessage $2 ${BM_SETCHECK} ${BST_CHECKED} 0
${EndIf}
nsDialogs::Show
FunctionEnd
Function PortableModePageLeave
${NSD_GetState} $1 $0
${If} $0 <> ${BST_UNCHECKED}
StrCpy $PortableMode 0
StrCpy $INSTDIR $InstDirNormal
Call RequireAdmin
; Enable sections
SectionSetText ${Section_Shortcuts} $(Section_Shortcuts)
SectionSetText ${Section_StartMenu} $(Section_StartMenu)
SectionSetText ${Section_Desktop} $(Section_Desktop)
SectionSetText ${Section_QuickLaunch} $(Section_QuickLaunch)
SectionSetText ${Section_AutoStart} $(Section_AutoStart)
!insertmacro SelectSection ${Section_Shortcuts}
!insertmacro SelectSection ${Section_AutoStart}
!insertmacro SelectSection ${Section_StartMenu}
!insertmacro SelectSection ${Section_Desktop}
!insertmacro SelectSection ${Section_QuickLaunch}
${Else}
StrCpy $PortableMode 1
StrCpy $INSTDIR $InstDirPortable
; Disable sections
!insertmacro UnselectSection ${Section_Shortcuts}
!insertmacro UnselectSection ${Section_AutoStart}
!insertmacro UnselectSection ${Section_StartMenu}
!insertmacro UnselectSection ${Section_Desktop}
!insertmacro UnselectSection ${Section_QuickLaunch}
SectionSetText ${Section_Shortcuts} ""
SectionSetText ${Section_StartMenu} ""
SectionSetText ${Section_Desktop} ""
SectionSetText ${Section_QuickLaunch} ""
SectionSetText ${Section_AutoStart} ""
${EndIf}
FunctionEnd
Function dir_leave
${If} $PortableMode = 0
StrCpy $DataDir "${DATADIR_NORMAL}"
StrCpy $StyleSheetDir $DataDir
${Else}
StrCpy $DataDir "${DATADIR_PORTABLE}"
StrCpy $StyleSheetDir $INSTDIR
${EndIf}
FunctionEnd

View File

@ -18,6 +18,8 @@ copy nul %logfile% > nul
pushd %~1
set Percent=%%
set last=HEAD
for /f %%t in ('git tag --sort=-taggerdate --merged ^| findstr v') do (
echo generating changelog for !last!..%%t
@ -30,7 +32,7 @@ for /f %%t in ('git tag --sort=-taggerdate --merged ^| findstr v') do (
rem echo !last! ---^> %%t >> %logfile%
echo ----------------------------------------------- >> %logfile%
echo. >> %logfile%
git log %%t..!last! --no-merges "--pretty=format:%%h %%ai %%<(10,trunc)%%an %%s" >> %logfile%
git log %%t..!last! --no-merges "--pretty=format:!Percent!h !Percent!ai !Percent!<(10,trunc)!Percent!an !Percent!s" >> %logfile%
echo. >> %logfile%
echo. >> %logfile%
set last=%%t

View File

@ -0,0 +1,20 @@
#!/bin/bash
function git_del_tag()
{
mTag=$1
for mRemote in $(git remote); do
echo "Attempting tag $mTag removal from remote $mRemote"
GIT_TERMINAL_PROMPT=0 git push $mRemote :$mTag || true
done
git tag --delete $mTag
}
for mModule in . build_scripts/OBS/ libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/ ; do
pushd $mModule
git_del_tag v0.6.7a
git tag --list | grep untagged | while read mTag; do git_del_tag $mTag ; done
popd
done

View File

@ -4,8 +4,8 @@ Version=1.0
Name=RetroShare
Comment=Securely communicate with your friends
Exec=/usr/bin/retroshare %U
Icon=/usr/share/pixmaps/retroshare.xpm
Icon=retroshare.xpm
Terminal=false
Type=Application
Categories=Application;Network;P2P;Feed;Chat;InstantMessaging
Categories=Network;Email;InstantMessaging;Chat;Feed;FileTransfer;P2P
MimeType=x-scheme-handler/retroshare;

View File

@ -1,389 +1,10 @@
// SPDX-FileCopyrightText: (C) 2004-2019 Retroshare Team <contact@retroshare.cc>
// SPDX-FileCopyrightText: (C) 2021 Retroshare Team <contact@retroshare.cc>
// SPDX-License-Identifier: CC0-1.0
RetroShare JSON API
===================
= Moved
:Cxx: C&#43;&#43;
JSON API generator is now part of `libretroshare` look under `src/jsonapi/`
directory in `libretroshare` repository.
== How to use RetroShare JSON API
Look for methods marked with +@jsonapi+ doxygen custom command into
+libretroshare/src/retroshare+. The method path is composed by service instance
pointer name like +rsGxsChannels+ for +RsGxsChannels+, and the method name like
+createGroup+ and pass the input paramethers as a JSON object.
.Service instance pointer in rsgxschannels.h
[source,cpp]
--------------------------------------------------------------------------------
/**
* Pointer to global instance of RsGxsChannels service implementation
* @jsonapi{development}
*/
extern RsGxsChannels* rsGxsChannels;
--------------------------------------------------------------------------------
.Method declaration in rsgxschannels.h
[source,cpp]
--------------------------------------------------------------------------------
/**
* @brief Request channel creation.
* The action is performed asyncronously, so it could fail in a subsequent
* phase even after returning true.
* @jsonapi{development}
* @param[out] token Storage for RsTokenService token to track request
* status.
* @param[in] group Channel data (name, description...)
* @return false on error, true otherwise
*/
virtual bool createGroup(uint32_t& token, RsGxsChannelGroup& group) = 0;
--------------------------------------------------------------------------------
.paramethers.json
[source,json]
--------------------------------------------------------------------------------
{
"group":{
"mMeta":{
"mGroupName":"JSON test group",
"mGroupFlags":4,
"mSignFlags":520
},
"mDescription":"JSON test group description"
},
"caller_data":"Here can go any kind of JSON data (even objects) that the caller want to get back together with the response"
}
--------------------------------------------------------------------------------
.Calling the JSON API with curl on the terminal
[source,bash]
--------------------------------------------------------------------------------
curl -u $API_USER --data @paramethers.json http://127.0.0.1:9092/rsGxsChannels/createGroup
--------------------------------------------------------------------------------
.JSON API call result
[source,json]
--------------------------------------------------------------------------------
{
"caller_data": "Here can go any kind of JSON data (even objects) that the caller want to get back together with the response",
"retval": true,
"token": 3
}
--------------------------------------------------------------------------------
Even if it is less efficient because of URL encoding HTTP +GET+ method is
supported too, so in cases where the client cannot use +POST+ she can still use
+GET+ taking care of encoding the JSON data. With +curl+ this can be done at
least in two different ways.
.Calling the JSON API with GET method with curl on the terminal
[source,bash]
--------------------------------------------------------------------------------
curl -u $API_USER --get --data-urlencode jsonData@paramethers.json \
http://127.0.0.1:9092/rsGxsChannels/createGroup
--------------------------------------------------------------------------------
Letting +curl+ do the encoding is much more elegant but it is semantically
equivalent to the following.
.Calling the JSON API with GET method and pre-encoded data with curl on the terminal
--------------------------------------------------------------------------------
curl -u $API_USER http://127.0.0.1:9092/rsGxsChannels/createGroup?jsonData=%7B%0A%20%20%20%20%22group%22%3A%7B%0A%20%20%20%20%20%20%20%20%22mMeta%22%3A%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22mGroupName%22%3A%22JSON%20test%20group%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22mGroupFlags%22%3A4%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22mSignFlags%22%3A520%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%22mDescription%22%3A%22JSON%20test%20group%20description%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22caller_data%22%3A%22Here%20can%20go%20any%20kind%20of%20JSON%20data%20%28even%20objects%29%20that%20the%20caller%20want%20to%20get%20back%20together%20with%20the%20response%22%0A%7D
--------------------------------------------------------------------------------
Note that using +GET+ method +?jsonData=+ and then the JSON data URL encoded are
added after the path in the HTTP request.
== JSON API authentication
Most of JSON API methods require authentication as they give access to
RetroShare user data, and we don't want any application running on the system
eventually by other users be able to access private data indiscriminately.
JSON API support HTTP Basic as authentication scheme, this is enough as JSON API
server is intented for usage on the same system (127.0.0.1) not over an
untrusted network.
If you need to use JSON API over an untrusted network consider using a reverse
proxy with HTTPS such as NGINX in front of JSON API server.
If RetroShare login has been effectuated through the JSON API you can use your
location SSLID as username and your PGP password as credential for the JSON API,
but we suggests you use specific meaningful and human readable credentials for
each JSON API client so the human user can have better control over which client
can access the JSON API.
.NewToken.json
[source,json]
--------------------------------------------------------------------------------
{
"token": "myNewUser:myNewPassword"
}
--------------------------------------------------------------------------------
.An authenticated client can authorize new tokens like this
--------------------------------------------------------------------------------
curl -u $API_USER --data @NewToken.json http://127.0.0.1:9092/jsonApiServer/authorizeToken
--------------------------------------------------------------------------------
.An unauthenticated JSON API client can request access with
--------------------------------------------------------------------------------
curl --data @NewToken.json http://127.0.0.1:9092/jsonApiServer/requestNewTokenAutorization
--------------------------------------------------------------------------------
When an unauthenticated client request his token to be authorized, JSON API
server will try to ask confirmation to the human user if possible through
+mNewAccessRequestCallback+, if it is not possible or the user didn't authorized
the token +false+ is returned.
== Offer new RetroShare services through JSON API
To offer a retroshare service through the JSON API, first of all one need find
the global pointer to the service instance and document it in doxygen syntax,
plus marking with the custom doxygen command +@jsonapi{RS_VERSION}+ where
+RS_VERSION+ is the retroshare version in which this service became available
with the current semantic (major changes to the service semantic, changes the
meaning of the service itself, so the version should be updated in the
documentation in that case).
.Service instance pointer in rsgxschannels.h
[source,cpp]
--------------------------------------------------------------------------------
/**
* Pointer to global instance of RsGxsChannels service implementation
* @jsonapi{development}
*/
extern RsGxsChannels* rsGxsChannels;
--------------------------------------------------------------------------------
Once the service instance itself is known to the JSON API you need to document
in doxygen syntax and mark with the custom doxygen command
+@jsonapi{RS_VERSION}+ the methods of the service that you want to make
available through JSON API.
.Offering RsGxsChannels::getChannelDownloadDirectory in rsgxschannels.h
[source,cpp]
--------------------------------------------------------------------------------
/**
* Get download directory for the given channel
* @jsonapi{development}
* @param[in] channelId id of the channel
* @param[out] directory reference to string where to store the path
* @return false on error, true otherwise
*/
virtual bool getChannelDownloadDirectory( const RsGxsGroupId& channelId,
std::string& directory ) = 0;
--------------------------------------------------------------------------------
For each paramether you must specify if it is used as input +@param[in]+ as
output +@param[out]+ or both +@param[inout]+. Paramethers and return value
types must be of a type supported by +RsTypeSerializer+ which already support
most basic types (+bool+, +std::string+...), +RsSerializable+ and containers of
them like +std::vector<std::string>+. Paramethers passed by value and by
reference of those types are both supported, while passing by pointer is not
supported. If your paramether or return +class+/+struct+ type is not supported
yet by +RsTypeSerializer+ most convenient approach is to make it derive from
+RsSerializable+ and implement +serial_process+ method like I did with
+RsGxsChannelGroup+.
.Deriving RsGxsChannelGroup from RsSerializable in rsgxschannels.h
[source,cpp]
--------------------------------------------------------------------------------
struct RsGxsChannelGroup : RsSerializable
{
RsGroupMetaData mMeta;
std::string mDescription;
RsGxsImage mImage;
bool mAutoDownload;
/// @see RsSerializable
virtual void serial_process( RsGenericSerializer::SerializeJob j,
RsGenericSerializer::SerializeContext& ctx )
{
RS_SERIAL_PROCESS(mMeta);
RS_SERIAL_PROCESS(mDescription);
RS_SERIAL_PROCESS(mImage);
RS_SERIAL_PROCESS(mAutoDownload);
}
};
--------------------------------------------------------------------------------
You can do the same recursively for any member of your +struct+ that is not yet
supported by +RsTypeSerializer+.
Some Retroshare {Cxx} API functions are asyncronous, historically RetroShare
didn't follow a policy on how to expose asyncronous API so differents services
and some times even differents method of the same service follow differents
asyncronous patterns, thus making automatic generation of JSON API wrappers for
those methods impractical. Instead of dealing with all those differents patterns
I have chosed to support only one new pattern taking advantage of modern {Cxx}11
and restbed features. On the {Cxx}11 side lambdas and +std::function+s are used,
on the restbed side Server Side Events are used to send asyncronous results.
Lets see an example so it will be much esier to understand.
.RsGxsChannels::turtleSearchRequest asyncronous API
[source,cpp]
--------------------------------------------------------------------------------
/**
* @brief Request remote channels search
* @jsonapi{development}
* @param[in] matchString string to look for in the search
* @param multiCallback function that will be called each time a search
* result is received
* @param[in] maxWait maximum wait time in seconds for search results
* @return false on error, true otherwise
*/
virtual bool turtleSearchRequest(
const std::string& matchString,
const std::function<void (const RsGxsGroupSummary& result)>& multiCallback,
std::time_t maxWait = 300 ) = 0;
--------------------------------------------------------------------------------
+RsGxsChannels::turtleSearchRequest(...)+ is an asyncronous method because it
send a channel search request on turtle network and then everytime a result is
received from the network +multiCallback+ is called and the result is passed as
parameter. To be supported by the automatic JSON API wrappers generator an
asyncronous method need a parameter of type +std::function<void (...)>+ called
+callback+ if the callback will be called only once or +multiCallback+ if the
callback is expected to be called more then once like in this case.
A second mandatory parameter is +maxWait+ of type +std::time_t+ it indicates the
maximum amount of time in seconds for which the caller is willing to wait for
results, in case the timeout is reached the callback will not be called anymore.
[IMPORTANT]
================================================================================
+callback+ and +multiCallback+ parameters documentation must *not* specify
+[in]+, +[out]+, +[inout]+, in Doxygen documentation as this would fool the
automatic wrapper generator, and ultimately break the compilation.
================================================================================
.RsFiles::turtleSearchRequest asyncronous JSON API usage example
[source,bash]
--------------------------------------------------------------------------------
$ cat turtle_search.json
{
"matchString":"linux"
}
$ curl --data @turtle_search.json http://127.0.0.1:9092/rsFiles/turtleSearchRequest
data: {"retval":true}
data: {"results":[{"size":157631,"hash":"69709b4d01025584a8def5cd78ebbd1a3cf3fd05","name":"kill_bill_linux_1024x768.jpg"},{"size":192560,"hash":"000000000000000000009a93e5be8486c496f46c","name":"coffee_box_linux2.jpg"},{"size":455087,"hash":"9a93e5be8486c496f46c00000000000000000000","name":"Linux.png"},{"size":182004,"hash":"e8845280912ebf3779e400000000000000000000","name":"Linux_2_6.png"}]}
data: {"results":[{"size":668,"hash":"e8845280912ebf3779e400000000000000000000","name":"linux.png"},{"size":70,"hash":"e8845280912ebf3779e400000000000000000000","name":"kali-linux-2016.2-amd64.txt.sha1sum"},{"size":3076767744,"hash":"e8845280912ebf3779e400000000000000000000","name":"kali-linux-2016.2-amd64.iso"},{"size":2780872,"hash":"e8845280912ebf3779e400000000000000000000","name":"openwrt-ar71xx-generic-vmlinux.bin"},{"size":917504,"hash":"e8845280912ebf3779e400000000000000000000","name":"openwrt-ar71xx-generic-vmlinux.lzma"},{"size":2278404096,"hash":"e8845280912ebf3779e400000000000000000000","name":"gentoo-linux-livedvd-amd64-multilib-20160704.iso"},{"size":151770333,"hash":"e8845280912ebf3779e400000000000000000000","name":"flashtool-0.9.23.0-linux.tar.7z"},{"size":2847372,"hash":"e8845280912ebf3779e400000000000000000000","name":"openwrt-ar71xx-generic-vmlinux.elf"},{"size":1310720,"hash":"e8845280912ebf3779e400000000000000000000","name":"openwrt-ar71xx-generic-vmlinux.gz"},{"size":987809,"hash":"e8845280912ebf3779e400000000000000000000","name":"openwrt-ar71xx-generic-vmlinux-lzma.elf"}]}
--------------------------------------------------------------------------------
By default JSON API methods requires client authentication and their wrappers
are automatically generated by +json-api-generator+.
In some cases methods need do be accessible without authentication such as
+rsLoginHelper/getLocations+ so in the doxygen documentaion they have the custom
command +@jsonapi{RS_VERSION,unauthenticated}+.
Other methods such as +/rsControl/rsGlobalShutDown+ need special care so they
are marked with the custom doxygen command +@jsonapi{RS_VERSION,manualwrapper}+
and their wrappers are not automatically generated but written manually into
+JsonApiServer::JsonApiServer(...)+.
== A bit of history
=== First writings about this
The previous attempt of exposing a RetroShare JSON API is called +libresapi+ and
unfortunatley it requires a bunch of boilerplate code when we want to expose
something present in the {Cxx} API in the JSON API.
As an example here you can see the libresapi that exposes part of the retroshare
chat {Cxx} API and lot of boilerplate code just to convert {Cxx} objects to JSON
https://github.com/RetroShare/RetroShare/blob/v0.6.4/libresapi/src/api/ChatHandler.cpp#L44
To avoid the {Cxx} to JSON and back conversion boilerplate code I have worked out
an extension to our {Cxx} serialization code so it is capable to serialize and
deserialize to JSON you can see it in this pull request
https://github.com/RetroShare/RetroShare/pull/1155
So first step toward having a good API is to take advantage of the fact that RS
is now capable of converting C++ objects from and to JSON.
The current API is accessible via HTTP and unix socket, there is no
authentication in both of them, so anyone having access to the HTTP server or to
the unix socket can access the API without extra restrictions.
Expecially for the HTTP API this is a big risk because also if the http server
listen on 127.0.0.1 every application on the machine (even rogue javascript
running on your web browser) can access that and for example on android it is
not safe at all (because of that I implemented the unix socket access so at
least in android API was reasonably safe) because of this.
A second step to improve the API would be to implement some kind of API
authentication mechanism (it would be nice that the mechanism is handled at API
level and not at transport level so we can use it for any API trasport not just
HTTP for example)
The HTTP server used by libresapi is libmicrohttpd server that is very minimal,
it doesn't provide HTTPS nor modern HTTP goodies, like server notifications,
websockets etc. because the lack of support we have a token polling mechanism in
libresapi to avoid polling for every thing but it is still ugly, so if we can
completely get rid of polling in the API that would be really nice.
I have done a crawl to look for a replacement and briefly looked at
- https://www.gnu.org/software/libmicrohttpd/
- http://wolkykim.github.io/libasyncd/
- https://github.com/corvusoft/restbed
- https://code.facebook.com/posts/1503205539947302/introducing-proxygen-facebook-s-c-http-framework/
- https://github.com/cmouse/yahttp
taking in account a few metrics like modern HTTP goodies support, license,
platform support, external dependencies and documentation it seemed to me that
restbed is the more appropriate.
Another source of boilerplate code into libresapi is the mapping between JSON
API requests and C++ API methods as an example you can look at this
https://github.com/RetroShare/RetroShare/blob/v0.6.4/libresapi/src/api/ChatHandler.cpp#L158
and this
https://github.com/RetroShare/RetroShare/blob/v0.6.4/libresapi/src/api/ApiServer.cpp#L253
The abstract logic of this thing is, when libreasapi get a request like
+/chat/initiate_distant_chat+ then call
+ChatHandler::handleInitiateDistantChatConnexion+ which in turn is just a
wrapper of +RsMsgs::initiateDistantChatConnexion+ all this process is basically
implemented as boilerplate code and would be unnecessary in a smarter design of
the API because almost all the information needed is already present in the
C++ API +libretroshare/src/retroshare+.
So a third step to improve the JSON API would be to remove this source of
boilerplate code by automatizing the mapping between C++ and JSON API call.
This may result a little tricky as language parsing or other adevanced things
may be required.
Hope this dive is useful for you +
Cheers +
G10h4ck
=== Second writings about this
I have been investigating a bit more about:
[verse, G10h4ck]
________________________________________________________________________________
So a third step to improve the JSON API would be to remove this source of
boilerplate code by automatizing the mapping between C++ and JSON API call
________________________________________________________________________________
After spending some hours investigating this topic the most reasonable approach
seems to:
1. Properly document headers in +libretroshare/src/retroshare/+ in doxygen syntax
specifying wihich params are input and/or output (doxygen sysntax for this is
+@param[in/out/inout]+) this will be the API documentation too.
2. At compile time use doxygen to generate XML description of the headers and use
the XML to generate the JSON api server stub.
http://www.stack.nl/~dimitri/doxygen/manual/customize.html#xmlgenerator
3. Enjoy
This directory and all it's content is kept as is only for retro-compatibility
with the old, deprecated `qmake` build system.

View File

@ -1,80 +0,0 @@
/*******************************************************************************
* RetroShare JSON API *
* *
* Copyright (C) 2018-2019 Gioacchino Mazzurco <gio@eigenlab.org> *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero General Public License version 3 as *
* published by the Free Software Foundation. *
* *
* 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 *
* GNU Affero General Public License for more details. *
* *
* You should have received a copy of the GNU Affero General Public License *
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
* *
*******************************************************************************/
registerHandler( "$%apiPath%$",
[this](const std::shared_ptr<rb::Session> session)
{
const std::multimap<std::string, std::string> headers
{
{ "Connection", "keep-alive" },
{ "Content-Type", "text/event-stream" }
};
session->yield(rb::OK, headers);
size_t reqSize = session->get_request()->get_header("Content-Length", 0);
session->fetch( reqSize, [this](
const std::shared_ptr<rb::Session> session,
const rb::Bytes& body )
{
INITIALIZE_API_CALL_JSON_CONTEXT;
if( !checkRsServicePtrReady(
$%instanceName%$, "$%instanceName%$", cAns, session ) )
return;
$%paramsDeclaration%$
$%inputParamsDeserialization%$
const std::weak_ptr<rb::Service> weakService(mService);
const std::weak_ptr<rb::Session> weakSession(session);
$%callbackName%$ = [weakService, weakSession]($%callbackParams%$)
{
auto session = weakSession.lock();
if(!session || session->is_closed()) return;
auto lService = weakService.lock();
if(!lService || lService->is_down()) return;
$%callbackParamsSerialization%$
std::stringstream sStream;
sStream << "data: " << compactJSON << ctx.mJson << "\n\n";
const std::string message = sStream.str();
lService->schedule( [weakSession, message]()
{
auto session = weakSession.lock();
if(!session || session->is_closed()) return;
session->yield(message);
$%sessionEarlyClose%$
} );
};
$%functionCall%$
$%outputParamsSerialization%$
// return them to the API caller
std::stringstream message;
message << "data: " << compactJSON << cAns.mJson << "\n\n";
session->yield(message.str());
$%sessionDelayedClose%$
} );
}, $%requiresAuth%$ );

View File

@ -0,0 +1 @@
../../libretroshare/src/jsonapi/async-method-wrapper-template.cpp.tmpl

View File

@ -1,230 +0,0 @@
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "libretroshare"
ALIASES += jsonapi{1}="\xmlonly<jsonapi minversion=\"\1\"/>\endxmlonly"
ALIASES += jsonapi{2}="\xmlonly<jsonapi minversion=\"\1\" access=\"\2\"/>\endxmlonly"
# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
# documentation from any documented member that it re-implements.
# The default value is: YES.
INHERIT_DOCS = YES
# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
# documentation. See http://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you can
# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
# case of backward compatibilities issues.
# The default value is: YES.
MARKDOWN_SUPPORT = YES
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
# be prevented in individual cases by putting a % sign in front of the word or
# globally by setting AUTOLINK_SUPPORT to NO.
# The default value is: YES.
AUTOLINK_SUPPORT = YES
# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
# documentation are documented, even if no documentation was available. Private
# class members and static file members will be hidden unless the
# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
# Note: This will also disable the warnings about undocumented members that are
# normally produced when WARNINGS is set to YES.
# The default value is: NO.
EXTRACT_ALL = YES
# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
# undocumented members inside documented classes or files. If set to NO these
# members will be included in the various overviews, but no documentation
# section is generated. This option has no effect if EXTRACT_ALL is enabled.
# The default value is: NO.
HIDE_UNDOC_MEMBERS = NO
# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy. If set
# to NO, these classes will be included in the various overviews. This option
# has no effect if EXTRACT_ALL is enabled.
# The default value is: NO.
HIDE_UNDOC_CLASSES = NO
#---------------------------------------------------------------------------
# Configuration options related to the input files
#---------------------------------------------------------------------------
# The INPUT tag is used to specify the files and/or directories that contain
# documented source files. You may enter file names like myfile.cpp or
# directories like /usr/src/myproject. Separate the files or directories with
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
#INPUT =
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
# documentation (see: https://www.gnu.org/software/libiconv/) for the list of
# possible encodings.
# The default value is: UTF-8.
INPUT_ENCODING = UTF-8
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
# *.h) to filter out the source-files in the directories.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# read by doxygen.
#
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.idl \
*.ddl \
*.odl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.cs \
*.d \
*.php \
*.php4 \
*.php5 \
*.phtml \
*.inc \
*.m \
*.markdown \
*.md \
*.mm \
*.dox \
*.py \
*.pyw \
*.f90 \
*.f95 \
*.f03 \
*.f08 \
*.f \
*.for \
*.tcl \
*.vhd \
*.vhdl \
*.ucf \
*.qsf
# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
# The default value is: NO.
RECURSIVE = YES
# The EXCLUDE tag can be used to specify files and/or directories that should be
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
#
# Note that relative paths are relative to the directory from which doxygen is
# run.
EXCLUDE =
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
# from the input.
# The default value is: NO.
EXCLUDE_SYMLINKS = NO
# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories.
#
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories for example use the pattern */test/*
EXCLUDE_PATTERNS =
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
# output. The symbol name can be a fully qualified name, a word, or if the
# wildcard * is used, a substring. Examples: ANamespace, AClass,
# AClass::ANamespace, ANamespace::*Test
#
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories use the pattern */test/*
EXCLUDE_SYMBOLS =
#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
# The default value is: YES.
GENERATE_HTML = NO
# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
# The default value is: YES.
GENERATE_LATEX = NO
# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
# captures the structure of the code including all documentation.
# The default value is: NO.
GENERATE_XML = YES
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
# C-preprocessor directives found in the sources and include files.
# The default value is: YES.
ENABLE_PREPROCESSING = YES
# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
# in the source code. If set to NO, only conditional compilation will be
# performed. Macro expansion can be done in a controlled way by setting
# EXPAND_ONLY_PREDEF to YES.
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
MACRO_EXPANSION = NO
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
# the macro expansion is limited to the macros specified with the PREDEFINED and
# EXPAND_AS_DEFINED tags.
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
EXPAND_ONLY_PREDEF = NO

View File

@ -0,0 +1 @@
../../libretroshare/src/jsonapi/jsonapi-generator-doxygen.conf

View File

@ -1,50 +0,0 @@
/*******************************************************************************
* RetroShare JSON API *
* *
* Copyright (C) 2018-2019 Gioacchino Mazzurco <gio@eigenlab.org> *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero 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, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Affero General Public License for more details. *
* *
* You should have received a copy of the GNU Affero General Public License *
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
* *
*******************************************************************************/
registerHandler( "$%apiPath%$",
[](const std::shared_ptr<rb::Session> session)
{
size_t reqSize = session->get_request()->get_header("Content-Length", 0);
session->fetch( reqSize, [](
const std::shared_ptr<rb::Session> session,
const rb::Bytes& body )
{
INITIALIZE_API_CALL_JSON_CONTEXT;
if( !checkRsServicePtrReady(
$%instanceName%$, "$%instanceName%$", cAns, session ) )
return;
$%paramsDeclaration%$
// deserialize input parameters from JSON
$%inputParamsDeserialization%$
// call retroshare C++ API
$%functionCall%$
// serialize out parameters and return value to JSON
$%outputParamsSerialization%$
// return them to the API caller
DEFAULT_API_CALL_JSON_RETURN(rb::OK);
} );
}, $%requiresAuth%$ );

View File

@ -0,0 +1 @@
../../libretroshare/src/jsonapi/method-wrapper-template.cpp.tmpl

1
libbitdht Submodule

@ -0,0 +1 @@
Subproject commit d1af0a357a94c47d0e486bee1e5052df660cfa1f

View File

@ -1,25 +0,0 @@
# SPDX-FileCopyrightText: (C) 2004-2019 Retroshare Team <contact@retroshare.cc>
# SPDX-License-Identifier: CC0-1.0
What's in the Package
---------------------------------------------------------------
bitdht - base BitDHT Code.
util - generic utils for networking and threading.
udp - UDP interfacing code.
lib - Where the library is created.
tests - basic unit tests.
example - example code of how to use libbitdht.
libbitdht.pro - build script for Qt's qmake.
README.txt - this file.
HOWTO libbitdht.
----------------------------------------------
This version is build using Qt's qmake system.
1) Install Qt's qmake system: libqt-dev
2) type ./qmake
3) type ./make
4) check out the example and tests to learn how to interface with libbitdht.

View File

@ -1,133 +0,0 @@
/*******************************************************************************
* bitdht/bdaccount.cc *
* *
* BitDHT: An Flexible DHT library. *
* *
* Copyright 2011 by Robert Fernie <bitdht@lunamutt.com> *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero 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, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Affero General Public License for more details. *
* *
* You should have received a copy of the GNU Affero General Public License *
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
* *
*******************************************************************************/
#include "bitdht/bdaccount.h"
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <iomanip>
#define LPF_FACTOR (0.90)
bdAccount::bdAccount()
:mNoStats(BDACCOUNT_NUM_ENTRIES),
mCountersOut(BDACCOUNT_NUM_ENTRIES), mCountersRecv(BDACCOUNT_NUM_ENTRIES),
mLpfOut(BDACCOUNT_NUM_ENTRIES), mLpfRecv(BDACCOUNT_NUM_ENTRIES),
mLabel(BDACCOUNT_NUM_ENTRIES)
{
mLabel[BDACCOUNT_MSG_OUTOFDATEPING] = "OUTOFDATEPING ";
mLabel[BDACCOUNT_MSG_PING] = "PING ";
mLabel[BDACCOUNT_MSG_PONG] = "PONG ";
mLabel[BDACCOUNT_MSG_QUERYNODE] = "QUERYNODE ";
mLabel[BDACCOUNT_MSG_QUERYHASH] = "QUERYHASH ";
mLabel[BDACCOUNT_MSG_REPLYFINDNODE] = "REPLYFINDNODE ";
mLabel[BDACCOUNT_MSG_REPLYQUERYHASH] = "REPLYQUERYHASH ";
mLabel[BDACCOUNT_MSG_POSTHASH] = "POSTHASH ";
mLabel[BDACCOUNT_MSG_REPLYPOSTHASH] = "REPLYPOSTHASH ";
mLabel[BDACCOUNT_MSG_CONNECTREQUEST] = "CONNECTREQUEST ";
mLabel[BDACCOUNT_MSG_CONNECTREPLY] = "CONNECTREPLY ";
mLabel[BDACCOUNT_MSG_CONNECTSTART] = "CONNECTSTART ";
mLabel[BDACCOUNT_MSG_CONNECTACK] = "CONNECTACK ";
resetStats();
}
void bdAccount::incCounter(uint32_t idx, bool out)
{
if ((signed) idx > mNoStats-1)
{
std::cerr << "bdAccount::incCounter() Invalid Index";
std::cerr << std::endl;
}
if (out)
{
mCountersOut[idx]++;
}
else
{
mCountersRecv[idx]++;
}
return;
}
void bdAccount::doStats()
{
int i;
for(i = 0; i < mNoStats; i++)
{
mLpfOut[i] *= (LPF_FACTOR) ;
mLpfOut[i] += (1.0 - LPF_FACTOR) * mCountersOut[i];
mLpfRecv[i] *= (LPF_FACTOR) ;
mLpfRecv[i] += (1.0 - LPF_FACTOR) * mCountersRecv[i];
}
resetCounters();
}
void bdAccount::printStats(std::ostream &out)
{
int i;
out << " Send Recv: ";
out << std::endl;
for(i = 0; i < mNoStats; i++)
{
out << "Send" << mLabel[i] << " : " << std::setw(10) << mLpfOut[i];
out << " ";
out << "Recv" << mLabel[i] << " : " << std::setw(10) << mLpfRecv[i];
out << std::endl;
}
}
void bdAccount::resetCounters()
{
int i;
for(i = 0; i < mNoStats; i++)
{
mCountersOut[i] = 0;
mCountersRecv[i] = 0;
}
}
void bdAccount::resetStats()
{
int i;
for(i = 0; i < mNoStats; i++)
{
mLpfOut[i] = 0;
mLpfRecv[i] = 0;
}
resetCounters();
}

View File

@ -1,76 +0,0 @@
#ifndef BITDHT_ACCOUNT_H
#define BITDHT_ACCOUNT_H
/*******************************************************************************
* bitdht/bdaccount.h *
* *
* BitDHT: An Flexible DHT library. *
* *
* Copyright 2011 by Robert Fernie <bitdht@lunamutt.com> *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero 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, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Affero General Public License for more details. *
* *
* You should have received a copy of the GNU Affero General Public License *
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
* *
*******************************************************************************/
#include <vector>
#include <string>
#include <inttypes.h>
#define BDACCOUNT_MSG_OUTOFDATEPING 0
#define BDACCOUNT_MSG_PING 1
#define BDACCOUNT_MSG_PONG 2
#define BDACCOUNT_MSG_QUERYNODE 3
#define BDACCOUNT_MSG_QUERYHASH 4
#define BDACCOUNT_MSG_REPLYFINDNODE 5
#define BDACCOUNT_MSG_REPLYQUERYHASH 6
#define BDACCOUNT_MSG_POSTHASH 7
#define BDACCOUNT_MSG_REPLYPOSTHASH 8
#define BDACCOUNT_MSG_CONNECTREQUEST 9
#define BDACCOUNT_MSG_CONNECTREPLY 10
#define BDACCOUNT_MSG_CONNECTSTART 11
#define BDACCOUNT_MSG_CONNECTACK 12
#define BDACCOUNT_NUM_ENTRIES 13
class bdAccount
{
public:
bdAccount();
void incCounter(uint32_t idx, bool out);
void doStats();
void printStats(std::ostream &out);
void resetCounters();
void resetStats();
private:
int mNoStats;
std::vector<double> mCountersOut;
std::vector<double> mCountersRecv;
std::vector<double> mLpfOut;
std::vector<double> mLpfRecv;
std::vector<std::string> mLabel;
// Statistics.
};
#endif // BITDHT_ACCOUNT_H

File diff suppressed because it is too large Load Diff

View File

@ -1,55 +0,0 @@
#!/bin/bash
<<LICENSE
Copyright (C) 2020 Gioacchino Mazzurco <gio@eigenlab.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero 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,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
LICENSE
<<README
Generate a clean DHT bootstrap node list.
Feeds on previously known nodes from standard input and a few well known
mainline DHT bootstrap nodes. Prints only nodes that appears to be active to a
quick nmap check. Make sure your internet connection is working well before
using this.
Example usage:
--------------------------------
cat bdboot.txt | bdboot_generate.sh | tee /tmp/bdboot_generated.txt
cat /tmp/bdboot_generated.txt | sort -u > bdboot.txt
--------------------------------
README
function check_dht_host()
{
mHost="$1"
mPort="$2"
sudo nmap -oG - -sU -p $mPort $mHost | grep open | \
awk '{print $2" "$5}' | awk -F/ '{print $1}'
}
cat | while read line; do
hostIP="$(echo $line | awk '{print $1}')"
hostPort="$(echo $line | awk '{print $2}')"
check_dht_host $hostIP $hostPort
done
check_dht_host router.utorrent.com 6881
check_dht_host router.bittorrent.com 6881
check_dht_host dht.libtorrent.org 25401
check_dht_host dht.transmissionbt.com 6881

File diff suppressed because it is too large Load Diff

View File

@ -1,314 +0,0 @@
/*******************************************************************************
* bitdht/bdconnection.h *
* *
* BitDHT: An Flexible DHT library. *
* *
* Copyright 2011 by Robert Fernie <bitdht@lunamutt.com> *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero 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, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Affero General Public License for more details. *
* *
* You should have received a copy of the GNU Affero General Public License *
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
* *
*******************************************************************************/
#ifndef BITDHT_CONNECTION_H
#define BITDHT_CONNECTION_H
#include "bitdht/bdiface.h"
class bdQueryManager;
class bdNodePublisher;
/************************************************************************************************************
************************************** ProxyTuple + Connection State ****************************************
************************************************************************************************************/
#define BITDHT_CONNREQUEST_READY 1
#define BITDHT_CONNREQUEST_PAUSED 2
#define BITDHT_CONNREQUEST_INPROGRESS 3
#define BITDHT_CONNREQUEST_EXTCONNECT 4
#define BITDHT_CONNREQUEST_DONE 5
#define BITDHT_CONNREQUEST_TIMEOUT_CONNECT 300 // MAKE THIS LARGE - SHOULD NEVER HAPPEN.
#define BITDHT_CONNREQUEST_TIMEOUT_INPROGRESS 30
#define BITDHT_CONNREQUEST_MAX_AGE 60
#define BITDHT_CONNECTION_WAITING_AUTH 1
#define BITDHT_CONNECTION_WAITING_REPLY 2
#define BITDHT_CONNECTION_WAITING_START 3
#define BITDHT_CONNECTION_WAITING_ACK 4
#define BITDHT_CONNECTION_COMPLETED 5
#define BD_CONNECTION_START_RETRY_PERIOD 3 // Should only take a couple of seconds to get reply.
#define BD_CONNECTION_START_MAX_RETRY 3
#define BD_CONNECTION_MAX_TIMEOUT 20 /* should be quick */
class bdProxyTuple
{
public:
bdProxyTuple() { return; }
bdProxyTuple(bdNodeId *s, bdNodeId *p, bdNodeId *d)
:srcId(*s), proxyId(*p), destId(*d) { return; }
bdNodeId srcId;
bdNodeId proxyId;
bdNodeId destId;
};
std::ostream &operator<<(std::ostream &out, const bdProxyTuple &t);
int operator<(const bdProxyTuple &a, const bdProxyTuple &b);
int operator==(const bdProxyTuple &a, const bdProxyTuple &b);
class bdConnection
{
public:
bdConnection();
/** Functions to tweak the connection status */
// User initialised Connection.
int ConnectionSetup(bdId *proxyId, bdId *srcConnAddr, bdId *destConnAddr, int mode, int delay);
int ConnectionSetupDirect(bdId *destId, bdId *srcConnAddr);
// Initialise a new Connection. (receiving a Connection Request)
int ConnectionRequestDirect(bdId *id, bdId *srcConnAddr, bdId *destConnAddr);
int ConnectionRequestProxy(bdId *id, bdId *srcConnAddr, bdNodeId *ownId, bdId *destConnAddr, int mode, int delay);
int ConnectionRequestEnd(bdId *id, bdId *srcConnAddr, bdId *destConnAddr, int mode);
// Setup Finishing Stage, (receiving a Connection Reply).
int upgradeProxyConnectionToFinish(bdId *id, bdId *srcConnAddr, bdId *destConnAddr, int mode, int delay, int status);
int AuthoriseDirectConnection(bdId *srcId, bdId *proxyId, bdId *destId, int mode, int loc);
int AuthoriseProxyConnection(bdId *srcId, bdId *proxyId, bdId *destId, int mode, int loc, int bandwidth);
int AuthoriseEndConnection(bdId *srcId, bdId *proxyId, bdId *destId, int mode, int loc, int delay);
int CompleteConnection(bdId *id, bdId *srcConnAddr, bdId *destConnAddr, int bandwidth, int delay);
int checkForDefaultConnectAddress();
/* Connection State, and TimeStamp of Update */
int mState;
time_t mLastEvent;
/* Addresses of Start/Proxy/End Nodes */
bdId mSrcId;
bdId mDestId;
bdId mProxyId;
/* Where we are in the connection,
* and what connection mode.
*/
int mPoint;
int mMode;
/* must have ip:ports of connection ends (if proxied) */
bdId mSrcConnAddr;
bdId mDestConnAddr;
int mBandwidth;
int mMaxDelay;
time_t mConnectionStartTS;
/* START/ACK Finishing ****/
time_t mLastStart; /* timer for retries */
int mRetryCount; /* retry counter */
bool mSrcAck;
bool mDestAck;
// Completion TS.
time_t mCompletedTS;
};
#define BD_PI_SRC_UNKNOWN 0
#define BD_PI_SRC_QUERYRESULT 1
#define BD_PI_SRC_QUERYPROXY 2
#define BD_PI_SRC_NODESPACE_FRIEND 3
#define BD_PI_SRC_NODESPACE_SERVER 4
#define BD_PI_SRC_NODESPACE_ENGINEVERSION 5
#define BD_PI_SRC_ADDGOODPROXY 6
class bdProxyId
{
public:
bdProxyId(const bdId &in_id, uint32_t in_srctype, uint32_t in_errcode)
:id(in_id), srcType(in_srctype), errcode(in_errcode) { return; }
bdProxyId() :srcType(BD_PI_SRC_UNKNOWN), errcode(0) { return; }
std::string proxySrcType() const;
bdId id;
uint32_t srcType;
uint32_t errcode;
};
class bdConnectionRequest
{
public:
bdConnectionRequest() : mMode(0), mState(0), mStateTS(0), mPauseTS(0), mErrCode(0), mDelay(0), mRequestTS(0), mRecycled(0), mCurrentSrcType(0)
{
bdsockaddr_clear(&mLocalAddr);
}
public:
int setupDirectConnection(struct sockaddr_in *laddr, bdNodeId *target);
int setupProxyConnection(struct sockaddr_in *laddr, bdNodeId *target, uint32_t mode, uint32_t delay);
int addGoodProxy(const bdId *srcId);
int checkGoodProxyPeer(const bdId *Id);
bdNodeId mTarget;
struct sockaddr_in mLocalAddr;
int mMode;
int mState;
time_t mStateTS;
time_t mPauseTS;
uint32_t mErrCode;
int mDelay;
time_t mRequestTS; // reference Time for mDelay.
std::list<bdProxyId> mGoodProxies;
std::list<bdId> mPotentialProxies;
//std::list<bdId> mGoodProxies;
int mRecycled;
bdId mCurrentAttempt;
uint32_t mCurrentSrcType;
std::list<bdProxyId> mPeersTried;
//std::list<bdId> mPeersTried;
};
std::ostream &operator<<(std::ostream &out, const bdConnectionRequest &req);
std::ostream &operator<<(std::ostream &out, const bdConnection &conn);
/*********
* The Connection Management Class.
* this encapsulates all of the functionality..
* except for a couple of message in/outs + callback.
*/
class bdConnectManager
{
public:
bdConnectManager(bdNodeId *ownid, bdSpace *space, bdQueryManager *qmgr, bdDhtFunctions *fns, bdNodePublisher *pub);
/* connection functions */
void requestConnection(bdNodeId *id, uint32_t modes);
void allowConnection(bdNodeId *id, uint32_t modes);
/* high level */
void shutdownConnections();
void printConnections();
/* Connections: Configuration */
void defaultConnectionOptions();
virtual void setConnectionOptions(uint32_t allowedModes, uint32_t flags);
/* Connections: Initiation */
int requestConnection(struct sockaddr_in *laddr, bdNodeId *target, uint32_t mode, uint32_t delay, uint32_t start);
int requestConnection_direct(struct sockaddr_in *laddr, bdNodeId *target);
int requestConnection_proxy(struct sockaddr_in *laddr, bdNodeId *target, uint32_t mode, uint32_t delay);
int killConnectionRequest(struct sockaddr_in *laddr, bdNodeId *target, uint32_t mode);
int checkExistingConnectionAttempt(bdNodeId *target);
void addPotentialConnectionProxy(const bdId *srcId, const bdId *target);
void updatePotentialConnectionProxy(const bdId *id, uint32_t mode);
int checkPeerForFlag(const bdId *id, uint32_t with_flag);
int tickConnections();
void iterateConnectionRequests();
int startConnectionAttempt(bdConnectionRequest *req);
// internal Callback -> normally continues to callbackConnect().
void callbackConnectRequest(bdId *srcId, bdId *proxyId, bdId *destId,
int mode, int point, int param, int cbtype, int errcode);
/* Connections: Outgoing */
int startConnectionAttempt(bdId *proxyId, bdId *srcConnAddr, bdId *destConnAddr, int mode, int delay);
void AuthConnectionOk(bdId *srcId, bdId *proxyId, bdId *destId, int mode, int loc, int bandwidth, int delay);
void AuthConnectionNo(bdId *srcId, bdId *proxyId, bdId *destId, int mode, int loc, int errcode);
void iterateConnections();
/* Connections: Utility State */
bdConnection *findExistingConnection(bdNodeId *srcId, bdNodeId *proxyId, bdNodeId *destId);
bdConnection *newConnection(bdNodeId *srcId, bdNodeId *proxyId, bdNodeId *destId);
int cleanConnection(bdNodeId *srcId, bdNodeId *proxyId, bdNodeId *destId);
int determinePosition(bdNodeId *sender, bdNodeId *src, bdNodeId *dest);
int determineProxyId(bdNodeId *sender, bdNodeId *src, bdNodeId *dest, bdNodeId *proxyId);
bdConnection *findSimilarConnection(bdNodeId *srcId, bdNodeId *destId);
bdConnection *findExistingConnectionBySender(bdId *sender, bdId *src, bdId *dest);
bdConnection *newConnectionBySender(bdId *sender, bdId *src, bdId *dest);
int cleanConnectionBySender(bdId *sender, bdId *src, bdId *dest);
// Overloaded Generalised Connection Callback.
virtual void callbackConnect(bdId *srcId, bdId *proxyId, bdId *destId,
int mode, int point, int param, int cbtype, int errcode);
/* Connections: */
int recvedConnectionRequest(bdId *id, bdId *srcConnAddr, bdId *destConnAddr, int mode, int delay);
int recvedConnectionReply(bdId *id, bdId *srcConnAddr, bdId *destConnAddr, int mode, int delay, int status);
int recvedConnectionStart(bdId *id, bdId *srcConnAddr, bdId *destConnAddr, int mode, int delayOrBandwidth);
int recvedConnectionAck(bdId *id, bdId *srcConnAddr, bdId *destConnAddr, int mode);
/* setup Relay Mode */
void setRelayMode(uint32_t mode);
private:
std::map<bdProxyTuple, bdConnection> mConnections;
std::map<bdNodeId, bdConnectionRequest> mConnectionRequests;
uint32_t mConfigAllowedModes;
bool mConfigAutoProxy;
uint32_t mRelayMode;
/****************************** Connection Code (in bdconnection.cc) ****************************/
private:
bdNodeId mOwnId;
bdSpace *mNodeSpace;
bdQueryManager *mQueryMgr;
bdDhtFunctions *mFns;
bdNodePublisher *mPub;
};
#endif // BITDHT_CONNECTION_H

View File

@ -1,318 +0,0 @@
/*******************************************************************************
* bitdht/bdfilter.cc *
* *
* BitDHT: An Flexible DHT library. *
* *
* Copyright 2010 by Robert Fernie <bitdht@lunamutt.com> *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero 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, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Affero General Public License for more details. *
* *
* You should have received a copy of the GNU Affero General Public License *
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
* *
*******************************************************************************/
#include "bitdht/bdfilter.h"
#include "bitdht/bdmanager.h"
#include "util/bdfile.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <iostream>
#include <time.h>
/**
* #define DEBUG_FILTER 1
**/
#define BDFILTER_ENTRY_DROP_PERIOD (7 * 24 * 3600)
bdFilter::bdFilter(const std::string &fname, const bdNodeId *ownid, uint32_t filterFlags, bdDhtFunctions *fns, bdNodeManager *manager)
{
/* */
mOwnId = *ownid;
mFns = fns;
mFilename = fname ;
loadBannedIpFile() ;
mFilterFlags = filterFlags;
mNodeManager = manager;
}
void bdFilter::writeBannedIpFile()
{
std::string filetmp = mFilename + ".tmp" ;
FILE *fd = fopen(filetmp.c_str(), "w");
if (!fd)
{
std::cerr << "(EE) bdFilter::writeBannedIpFile() FAILED to Open File " << mFilename << std::endl;
return;
}
for( std::map<uint32_t,bdFilteredPeer>::iterator it=mFiltered.begin();it!=mFiltered.end();++it)
{
fprintf(fd, "%s %u %lu %lu\n", bdnet_inet_ntoa(it->second.mAddr.sin_addr).c_str(), it->second.mFilterFlags, it->second.mFilterTS, it->second.mLastSeen) ;
#ifdef DEBUG_FILTER
fprintf(stderr, "Storing Peer Address: %s \n", bdnet_inet_ntoa(it->second.mAddr.sin_addr).c_str()) ;
#endif
}
fclose(fd);
if(!bdFile::renameFile(filetmp,mFilename))
std::cerr << "Could not rename file !!" << std::endl;
#ifdef DEBUG_FILTER
else
std::cerr << "Successfully renamed file " << filetmp << " to " << mFilename << std::endl;
#endif
}
void bdFilter::loadBannedIpFile()
{
char line[10240];
char addr_str[10240];
struct sockaddr_in addr;
memset(&addr, 0, sizeof(struct sockaddr_in));
addr.sin_family = PF_INET;
FILE *fd = fopen(mFilename.c_str(),"r") ;
if(fd == NULL)
{
std::cerr << "(EE) Cannot load filter file " << mFilename << std::endl;
return ;
}
while(line == fgets(line, 10240, fd))
{
uint32_t filter_flags ;
unsigned long long int filter_ts ;
unsigned long long int last_seen ;
if (4 == sscanf(line, "%s %u %llu %llu", addr_str, &filter_flags,&filter_ts,&last_seen))
{
if (bdnet_inet_aton(addr_str, &(addr.sin_addr)))
{
addr.sin_port = 0;
bdFilteredPeer peer;
peer.mAddr = addr;
peer.mFilterTS = filter_ts;
peer.mLastSeen = last_seen;
peer.mFilterFlags = filter_flags;
mFiltered[addr.sin_addr.s_addr] = peer ;
#ifdef DEBUG_FILTER
std::cerr << "Loaded filtered IP: " << std::string(addr_str) << " last seen: " << last_seen << ", TS=" << filter_ts << std::endl;
#endif
}
}
}
fclose(fd);
}
//bool bdFilter::filtered(std::list<bdFilteredPeer> &answer)
//{
// answer = mFiltered;
// return (answer.size() > 0);
//}
bool bdFilter::filteredIPs(std::list<struct sockaddr_in> &answer)
{
std::map<uint32_t,bdFilteredPeer>::iterator it;
for(it = mFiltered.begin(); it != mFiltered.end(); it++)
{
answer.push_back(it->second.mAddr);
}
return (answer.size() > 0);
}
int bdFilter::checkPeer(const bdId *id, uint32_t mode)
{
bool add = false;
uint32_t flags = 0;
if ((mFilterFlags & BITDHT_FILTER_REASON_OWNID) &&
isOwnIdWithoutBitDhtFlags(id, mode))
{
add = true;
flags |= BITDHT_FILTER_REASON_OWNID;
}
if (add)
{
bool isNew = addPeerToFilter(id->addr, flags);
if (isNew)
{
return 1;
}
}
return 0;
}
int bdFilter::addPeerToFilter(const struct sockaddr_in& addr, uint32_t flags)
{
std::map<uint32_t,bdFilteredPeer>::iterator it = mFiltered.find(addr.sin_addr.s_addr) ;
if(it != mFiltered.end())
{
it->second.mLastSeen = time(NULL);
it->second.mFilterFlags |= flags;
}
else
{
time_t now = time(NULL);
bdFilteredPeer fp;
fp.mAddr = addr;
fp.mAddr.sin_port = 0;
fp.mFilterFlags = flags;
fp.mFilterTS = now;
fp.mLastSeen = now;
uint32_t saddr = addr.sin_addr.s_addr;
mFiltered[saddr] = fp;
std::cerr << "Adding New Banned Ip Address: " << bdnet_inet_ntoa(addr.sin_addr);
std::cerr << std::endl;
}
writeBannedIpFile() ;
return true;
}
// void bdFilter::loadFilteredPeers(const std::list<bdFilteredPeer>& peers)
// {
// for(std::list<bdFilteredPeer>::iterator it = peers.begin(); it != peers.end();++it)
// {
// #ifdef DEBUG_FILTER
// std::cerr << "Loading filtered peer " << inet_ntoa(it->mAddr.sin_addr) << " Flags: " << it->mFilterFlags << " FilterTS: "
// << now - it->mFilterTS << " LastSeen: " << now - it->mLastSeen << std::endl;
// #endif
// uint32_t saddr = it->mAddr.sin_addr.s_addr;
// mFiltered[saddr] = *it ;
// }
// }
void bdFilter::getFilteredPeers(std::list<bdFilteredPeer>& peers)
{
for(std::map<uint32_t,bdFilteredPeer>::iterator it = mFiltered.begin(); it != mFiltered.end();++it)
peers.push_back(it->second) ;
}
/* fast check if the addr is in the structure */
int bdFilter::addrOkay(struct sockaddr_in *addr)
{
// first check upper layer
bool isAvailable, isBanned;
mNodeManager->doIsBannedCallback(addr, &isAvailable, &isBanned);
if(isAvailable) {
#ifdef DEBUG_FILTER
std::cerr << "bdFilter::addrOkay addr: " << inet_ntoa(addr->sin_addr) << " result from upper layer: " << (isBanned ? "banned" : "ok") << std::endl;
#endif
return !isBanned;
} else {
// fallback to own ban list
std::map<uint32_t,bdFilteredPeer>::const_iterator it = mFiltered.find(addr->sin_addr.s_addr);
if (it == mFiltered.end())
return 1; // Address is Okay
}
#ifdef DEBUG_FILTER
std::cerr << "Detected Packet From Banned Ip Address: " << inet_ntoa(addr->sin_addr);
std::cerr << std::endl;
#endif
return 0;
}
bool bdFilter::isOwnIdWithoutBitDhtFlags(const bdId *id, uint32_t peerFlags)
{
if (peerFlags & BITDHT_PEER_STATUS_RECV_PONG)
{
if (peerFlags & BITDHT_PEER_STATUS_DHT_ENGINE)
{
/* okay! */
return false;
}
/* now check distance */
bdMetric dist;
mFns->bdDistance(&mOwnId, &(id->id), &dist);
int bucket = mFns->bdBucketDistance(&dist);
/* if they match us... kill it */
if (bucket == 0)
{
return true;
}
}
return false;
}
/* periodically we want to cleanup the filter....
* if we haven't had an IP address reported as filtered for several hours.
* remove it from the list.
*/
bool bdFilter::cleanupFilter()
{
#ifdef DEBUG_FILTER
std::cerr << "bdFilter: Checking current filter List:" << std::endl;
#endif
time_t now = time(NULL);
time_t dropTime = now - BDFILTER_ENTRY_DROP_PERIOD;
for(std::map<uint32_t,bdFilteredPeer>::iterator it = mFiltered.begin(); it != mFiltered.end();)
{
#ifdef DEBUG_FILTER
std::cerr << "\t" << bdnet_inet_ntoa(it->second.mAddr.sin_addr);
std::cerr << " Flags: " << it->second.mFilterFlags;
std::cerr << " FilterTS: " << now - it->second.mFilterTS;
std::cerr << " LastSeen: " << now - it->second.mLastSeen;
#endif
if (it->second.mLastSeen < dropTime)
{
/* remove from filter */
#ifdef DEBUG_FILTER
std::cerr << " OLD DROPPING" << std::endl;
#endif
std::map<uint32_t,bdFilteredPeer>::iterator tmp(it) ;
++tmp ;
mFiltered.erase(it);
it = tmp ;
}
else
{
#ifdef DEBUG_FILTER
std::cerr << " OK" << std::endl;
#endif
it++;
}
}
return true;
}

Some files were not shown because too many files have changed in this diff Show More