Skip to content

Commit

Permalink
Merge branch 'irc-3.0.11' into irc
Browse files Browse the repository at this point in the history
  • Loading branch information
wfr committed Apr 24, 2022
2 parents b532d66 + c4e409d commit a96b7b5
Show file tree
Hide file tree
Showing 403 changed files with 47,794 additions and 24,103 deletions.
9 changes: 9 additions & 0 deletions .cmake-format.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
bullet_char: '*'
dangle_parens: false
enum_char: .
line_ending: unix
line_width: 120
max_pargs_hwrap: 3
separate_ctrl_name_with_space: true
separate_fn_name_with_space: false
tab_size: 4
65 changes: 28 additions & 37 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,49 +1,40 @@
# Build files
Makefile
Makefile.*
*.user
*.user.*
CMakeLists.txt.user
build/
debug
release
*.pdb
*.app
.packagingrc
.qmake.stash
.qmake.cache
.DS_Store

# Build artifacts
*.exe
*.dll
*.pdb
*.so
*.a
*.o
*.app
*.dylib
*.moc
tests/*/tst_*
src/tests/*/tst_*
!tst_*.pro
!tst_*.cpp
!tst_*.h

# Generated source files (These should always end up in the build dir anyway)
*.pb.h
*.pb.cc
packaging/installer/Qt
packaging/installer/Output
src/tego_ui/translation/*.qm
config
config.ricochet
config.log
config.tests/*/*
!config.tests/*/*.pro
!config.tests/*/*.cpp
!config.tests/*/*.h
ricochet
src/ricochet.log
build-tests*
buildscripts/src/ricochet-refresh
buildscripts/output
buildscripts/lib
target_wrapper\.sh
moc_predefs.h
moc_*.cpp
moc_predefs.h
qrc_*.cpp
ricochet-refresh
*.gch
\.vscode/c_cpp_properties\.json
\.vscode/
notes/*
.*.swp

# Generated translations
*.qm

# Other
*.user
*.user.*
.DS_Store
.packagingrc
.vscode/

# Ricochet files (when running in the root dir)
config
config.ricochet

34 changes: 0 additions & 34 deletions .talismanrc

This file was deleted.

3 changes: 2 additions & 1 deletion AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
* John Brooks (@special) `<[email protected]>`
* Derwent Mcelhinney (@derwentx)
* Peter Tonoli (@petertonoli)

* Richard Pospesel (richard on #tor-dev @OFTC) `<[email protected]>`
* Marco Simonelli (msim on #tor-dev @OFTC) `<[email protected]>`
### Sponsors
* Blueprint for Free Speech - https://blueprintforfreespeech.net/

Expand Down
44 changes: 36 additions & 8 deletions BUILDING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
## New Building

Cloning must be done with `--recurse-submodules`:

```sh
git clone --recurse-submodules https://github.com/blueprint-freespeech/ricochet-refresh.git
```
In the event that you cloned the repo without fetching the submodules, you can still get them with:
```sh
git submodule --init --update
```

Later, you should update your local repository with:
```sh
git pull --recurse-submodules
```

### Linux

Clone

Download and install the prebuilt Qt 5.15 ( https://www.qt.io/download-qt-installer ) and add bin directory containing 'qmake' to your PATH environment variable.

#### Debian

Install the following development packages:

```sh
apt-get install build-essential libssl-dev pkg-config libprotobuf-dev protobuf-compiler libgl-dev
```

## Building Ricochet Refresh

These instructions are intended for people who wish to build or modify Ricochet Refresh from source. Most users should [download releases](https://github.com/blueprint-freespeech/ricochet-refresh/releases) instead.
Expand All @@ -6,12 +37,10 @@ Clone with git from `https://github.com/blueprint-freespeech/ricochet-refresh.gi

If you're interested in helping to package Ricochet Refresh for common Linux platforms, please get in touch!

## Hints
## Debug vs Release build

Add `CONFIG+=debug` or `CONFIG+=release` to the qmake command for a debug or release build. Debug builds enable logging to standard output, and shouldn't be used in sensitive environments.

By default, Ricochet Refresh will be portable, and configuration is stored in a folder named `config` next to the binary. Add `DEFINES+=RICOCHET_NO_PORTABLE` to the qmake command for a system-wide installation using platform configuration paths instead.

## Linux

You will need:
Expand Down Expand Up @@ -39,6 +68,7 @@ If the `qml-module-qtquick` packages aren't available, try `qtdeclarative5-contr
#### Qt SDK
The [Qt SDK](https://www.qt.io/download/) is available for most Linux systems and includes an IDE as well as all Qt dependencies.

### Building and Installing
To build, simply run:
```sh
qmake # qmake-qt5 for some platforms
Expand All @@ -47,14 +77,12 @@ make

For a system-wide installation, use:
```sh
qmake DEFINES+=RICOCHET_NO_PORTABLE
make
make install # as root
```

You must have a `tor` binary installed on the system (in $PATH), or placed next to the `ricochet` binary.
You must have a `tor` binary installed on the system (in `$PATH`), or placed next to the `ricochet-refresh` binary.

In portable mode (default), all configuration is stored in a folder called `config` with the binary. When installed, the platform's user configuration path is used instead.
By default Ricochet Refresh will load and save configuration files to `~/.local/share/ricochet-refresh/`. First argument to command-line overrides this and allows you to specificy the config directory.

The [buildscripts](https://github.com/blueprint-freespeech/ricochet-refresh/tree/master/buildscripts) directory contains a set of scripts to build a fully static Ricochet Refresh on a clean Debian system. These are used to create the generic linux binary packages.

Expand All @@ -79,7 +107,7 @@ make

You also need a `tor` binary in $PATH or inside the build's `ricochet refresh.app/Contents/MacOS` folder. The easiest solution is to use `brew install tor`. If you copy the `tor` binary, you will need to keep it up to date.

Normally, configuration will be stored in a `config.ricochet` folder, in the same location as `ricochet.app`. However, if the bundle is installed to `/Applications`, the system location `~/Library/Application Support/Ricochet` is used instead. You can force that behavior by adding `DEFINES+=RICOCHET_NO_PORTABLE` to the qmake command.
By default, configuration will be stored at `~/Library/Application Support/ricochet-refresh/` folder. This can be overriden by supplying a directory as first argument to the command-line.

The `packaging/osx/release_osx.sh` script demonstrates how to build a redistributable app bundle.

Expand Down
27 changes: 27 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
2022-04-24:
* Merged ricochet-refresh v3.0.11:
- Upgrade tor dependencies to version 0.4.6.10
- Upgrade openssl to version 1.1.1n
- Fixed #124: Silently migrate profile from
QStandardPaths::AppLocalDataLocation to QStandardPaths::AppConfigLocation
(manually selected profile path is not affected)
- Migrated build system to CMake
* NOTE: Config dir moved from `~/.local/share/ricochet-refresh` to
`~/,config/ricochet-refresh`.
* IRC:
- Migrated build system to CMake
- Fixed new profile creation.

2020-11-22:
* Rebased on Ricochet Refresh, v3-2020-alpha branch
* Restored compatibility with GCC 8
* Added v3 onion support. Removed v2 onion support
* TODO: clean up, remove GUI dependencies

2017-01-15:
* small UX improvements (input sanitation and validation)
* prevent nickname conflicts

2017-01-13:
* updated to v1.1.4

67 changes: 26 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
## IRC gateway to Ricochet v3
# ricochet-irc
## IRC interface to Ricochet-Refresh (v3.0.11)
`ricochet-irc` is an IRC interface to the
[R2: Ricochet-Refresh](https://github.com/blueprint-freespeech/ricochet-refresh/)
P2P chat network.

`ricochet-irc` is an IRC gateway to the Ricochet v3 network.

It is currently based on [R2: Ricochet Refresh](https://github.com/blueprint-freespeech/ricochet-refresh/),
specifically its experimental Tego-Core branch that supports v3 onions.

Please refer to [README-upstream.md](README-upstream.md) for a more detailed explanation of Ricochet itself.

Example session with [WeeChat](https://weechat.org/) as a client:
With this, you can use your favorite IRC client as a UI for Ricochet, for
example [WeeChat](https://weechat.org/):

![ricochet-irc screenshot](doc/irc/ricochet-irc.png)

### Building on Debian 10 (Buster)
For an introduction to Ricochet itself, please refer to
[README-upstream.md](README-upstream.md).

### Building on Debian 11 (Bullseye)

#### Dependencies
```
apt-get install qt5-default qtbase5-dev qtbase5-dev-tools qttools5-dev-tools qtdeclarative5-dev
apt-get install build-essential cmake
apt-get install qtbase5-dev qtbase5-dev-tools qttools5-dev-tools qttools5-dev qtdeclarative5-dev
apt-get install protobuf-compiler libssl-dev
```

Expand All @@ -26,36 +28,31 @@ cd ricochet-irc
git submodule update --init --recursive
mkdir build
cd build
qmake PROTOBUFDIR=/usr/include/google/ ../src/
cmake ../src/
make -j$(nproc)
```

#### Running
```
cd release/irc/
./ricochet-irc
```

### Usage
```
./ricochet-irc
```
The program is now waiting for an IRC connection on localhost:6667.
Point your IRC client to localhost:6667 and use the password that is provided on stdout.
The program is now waiting for an IRC connection on localhost:6667. Point your
IRC client to localhost:6667 and use the password that is provided on stdout.

For custom options, try:
```
./ricochet-irc --help
```

#### IRC interface
Once you are connected to the IRC server, your client is automatically joined into the `#ricochet` control channel.
Once you are connected to the IRC server, your client is automatically joined
into a control channel `#ricochet`:

```
@ricochet | ___ _ _ _ ___ ___ ___ ____
@ricochet | | _ (_)__ ___ __| |_ ___| |_ |_ _| _ \/ __| __ _|__ /
@ricochet | | / / _/ _ \/ _| ' \/ -_) _| | || / (__ \ V /|_ \
@ricochet | |_|_\_\__\___/\__|_||_\___|\__| |___|_|_\\___| \_/|___/ 1.1.4
@ricochet | |_|_\_\__\___/\__|_||_\___|\__| |___|_|_\\___| \_/|___/ devbuild
@ricochet |
@ricochet | COMMANDS:
@ricochet | * help
Expand All @@ -73,27 +70,15 @@ Once you are connected to the IRC server, your client is automatically joined in
--> | afriend (~afriend@ricochet:sczutjtt4vobmm2fpc5w5usz5pogrliggdzwmqhgoslvo7zph764sdqd) has joined #ricochet
```

Ricochet-IRC connects to the network only when an IRC client is attached. As
soon as you close your IRC client, you will appear offline to your contacts.
##### Online/Offline status
`ricochet-irc` connects to the Ricochet network when an IRC client is
attached. You will appear offline to your contacts as soon as you disconnect
from the IRC server.

### Changes
2020-11-22:
* Rebased on Ricochet Refresh, v3-2020-alpha branch.
* Restored compatibility with GCC 8.
* Added v3 onion support. Removed v2 onion support.
* TODO: clean up, remove GUI dependencies.

2017-01-15:

* small UX improvements (input sanitation and validation)
* prevent nickname conflicts

2017-01-13:

* updated to v1.1.4

[CHANGES.md](CHANGES.md)

### Miscellaneous
### Miscellaneous notes
#### Convert Hidden Service key to Ricochet format
```
echo $(cut -c 33-95 hs_ed25519_secret_key | base64 -w 0)
Expand All @@ -103,7 +88,7 @@ echo $(cut -c 33-95 hs_ed25519_secret_key | base64 -w 0)
GPLv3

### Other
Bugs can be reported on the [issue tracker](https://github.com/wfr/ricochet-irc/issues).
Please report bugs in the [issue tracker](https://github.com/wfr/ricochet-irc/issues).


### Cash for coffee
Expand Down
Loading

0 comments on commit a96b7b5

Please sign in to comment.