1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-12 14:14:48 +02:00

relay: add zstd compression in weechat protocol

Option relay.network.compression_level is renamed to relay.network.compression
and is now a percentage between 0 (no compression) to 100 (best compression,
slowest).

Compression is now disabled by default in weechat protocol and must be enabled
via the `handshake` command (option `compression` has been removed from `init`
command).
This commit is contained in:
Sébastien Helleu
2021-12-24 15:14:56 +01:00
parent d5c391b1ee
commit 498194f6fc
36 changed files with 441 additions and 870 deletions
+1 -1
View File
@@ -35,7 +35,7 @@ jobs:
sudo apt-add-repository --yes ppa:ondrej/php
sudo apt-get update -qq
sudo apt-get --yes purge php8.1-dev
sudo apt-get --yes --no-install-recommends install devscripts equivs python3-pip libenchant-dev autopoint cmake ninja-build lcov pkg-config libncursesw5-dev gem2deb libperl-dev python2-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev zlib1g-dev curl libcpputest-dev php8.0-dev libphp8.0-embed libargon2-0-dev libsodium-dev pylint python3-bandit asciidoctor
sudo apt-get --yes --no-install-recommends install devscripts equivs python3-pip libenchant-dev autopoint cmake ninja-build lcov pkg-config libncursesw5-dev gem2deb libperl-dev python2-dev python3-dev libaspell-dev liblua5.3-dev tcl8.6-dev guile-2.0-dev libv8-dev libcurl4-gnutls-dev libgcrypt20-dev libgnutls28-dev libzstd-dev zlib1g-dev curl libcpputest-dev php8.0-dev libphp8.0-embed libargon2-0-dev libsodium-dev pylint python3-bandit asciidoctor
sudo -H pip3 install --ignore-installed msgcheck
- name: Test patches
+4 -1
View File
@@ -196,7 +196,10 @@ list(APPEND EXTRA_LIBS gnutls)
# Check for zlib
find_package(ZLIB REQUIRED)
add_definitions(-DHAVE_ZLIB)
# Check for zstd
include(FindPkgConfig)
pkg_check_modules(LIBZSTD REQUIRED libzstd)
# Check for iconv
find_package(Iconv)
+4
View File
@@ -18,6 +18,10 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
[[v3.5]]
== Version 3.5 (under dev)
New features::
* relay: add `zstd` (https://facebook.github.io/zstd/[Zstandard]) compression in weechat protocol, remove option `compression` from `init` command, rename option relay.network.compression_level to relay.network.compression
Bug fixes::
* irc: fix display of IRC numeric messages with no parameters
+25
View File
@@ -17,6 +17,31 @@ https://weechat.org/files/changelog/ChangeLog-devel.html[ChangeLog]
(file _ChangeLog.adoc_ in sources).
[[v3.5]]
== Version 3.5 (under dev)
[[v3.5_relay_weechat_compression_zstd]]
=== Compression "zstandard" in relay
Relay of type "weechat" now offers a compression with https://facebook.github.io/zstd/[Zstandard],
which allows better compression and is much faster than zlib for both compression and decompression.
The new compression type is `zstd`, and the default compression is now `off`
instead of `zlib`: the compression must now be explicitly given in the
link:https://weechat.org/doc/relay#command_handshake[handshake] command.
The option `compression` in link:https://weechat.org/doc/relay#command_handshake[init]
command has been removed, it is now ignored and must be given in the
link:https://weechat.org/doc/relay#command_handshake[handshake] command
(it was deprecated since WeeChat 2.9).
The option relay.network.compression_level has been renamed to relay.network.compression
and is now a percentage between `0` and `100`:
* `0`: disable compression
* `1`: low compression (fast)
* `100`: best compression (slow)
[[v3.4]]
== Version 3.4 (2021-12-18)
+21
View File
@@ -1175,6 +1175,27 @@ else
AC_SUBST(ZLIB_LFLAGS)
fi
# ------------------------------------------------------------------------------
# zstd
# ------------------------------------------------------------------------------
AC_CHECK_HEADER(zstd.h,ac_found_zstd_header="yes",ac_found_zstd_header="no")
AC_CHECK_LIB(zstd,ZSTD_compress,ac_found_zstd_lib="yes",ac_found_zstd_lib="no")
AC_MSG_CHECKING(for zstd headers and libraries)
if test "x$ac_found_zstd_header" = "xno" -o "x$ac_found_zstd_lib" = "xno" ; then
AC_MSG_RESULT(no)
AC_MSG_ERROR([
*** zstd was not found. You may want to get it from https://github.com/facebook/zstd
*** or try to install it with your software package manager.])
else
AC_MSG_RESULT(yes)
ZSTD_CFLAGS=`pkg-config libzstd --cflags`
ZSTD_LFLAGS=`pkg-config libzstd --libs`
AC_SUBST(ZSTD_CFLAGS)
AC_SUBST(ZSTD_LFLAGS)
fi
# ------------------------------------------------------------------------------
# curl
# ------------------------------------------------------------------------------
+1
View File
@@ -19,6 +19,7 @@ Build-Depends:
libcurl4-gnutls-dev,
libgcrypt20-dev,
libgnutls28-dev,
libzstd-dev,
zlib1g-dev
Standards-Version: 4.6.0.1
Homepage: https://weechat.org/
+1
View File
@@ -19,6 +19,7 @@ Build-Depends:
libcurl4-gnutls-dev,
libgcrypt20-dev,
libgnutls28-dev,
libzstd-dev,
zlib1g-dev
Standards-Version: 4.6.0.1
Homepage: https://weechat.org/
+4 -1
View File
@@ -107,9 +107,12 @@ WeeChat *erforderlich* sind:
| pkg-config | | entdeckt installierte Bibliotheken.
| libncursesw5-dev ^(2)^ | | Ncurses Oberfläche.
| libcurl4-gnutls-dev | | URL Transfer.
| zlib1g-dev | | Kompression für Pakete, die mittels Relay- (WeeChat Protokoll), Script-Erweiterung übertragen werden.
| libgcrypt20-dev | | Geschützte Daten, IRC SASL Authentifikation.
| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | SSL Verbindung zu einem IRC Server, Unterstützung von SSL in der Relay-Erweiterung, IRC SASL Authentifikation (ECDSA-NIST256P-CHALLENGE).
// TRANSLATION MISSING
| zlib1g-dev | | Compression of messages (WeeChat -> client) with https://zlib.net/[zlib] in relay plugin (weechat protocol), Script-Erweiterung übertragen werden.
// TRANSLATION MISSING
| libzstd-dev | | Compression of messages (WeeChat -> client) with https://facebook.github.io/zstd/[Zstandard] in relay plugin (weechat protocol).
|===
[NOTE]
+24 -21
View File
@@ -103,7 +103,7 @@ List of available commands (detail in next chapters):
[[command_handshake]]
=== handshake
_WeeChat ≥ 2.9._
_WeeChat ≥ 2.9, updated in version 3.5._
Perform an handshake between the client and WeeChat: this is required in most
cases to know the session settings and prepare the authentication with the
@@ -127,10 +127,15 @@ Arguments:
*** _sha512_: password salted and hashed with SHA512 algorithm
*** _pbkdf2+sha256_: password salted and hashed with PBKDF2 algorithm (using SHA256 hash)
*** _pbkdf2+sha512_: password salted and hashed with PBKDF2 algorithm (using SHA512 hash)
** _compression_: compression type:
*** _zlib_: enable _zlib_ compression for messages sent by _relay_
(enabled by default if _relay_ supports _zlib_ compression)
*** _off_: disable compression
** _compression_: list of supported compression types supported by the client
(separated by colons and sorted from most important to the fallback value);
if compression is enabled, messages from _relay_ to client are compressed
to save bandwidth; allowed values are:
*** _off_: no compression (default if option is not given)
*** _zlib_: compress with https://zlib.net/[zlib] _(WeeChat ≥ 0.3.7)_
*** _zstd_: compress with https://facebook.github.io/zstd/[Zstandard]: better
compression and much faster than _zlib_ for both compression and decompression
_(WeeChat ≥ 3.5)_
Notes about option _password_hash_algo_:
@@ -169,8 +174,9 @@ WeeChat replies with a hashtable containing the following keys and values:
and the user password (the _relay_ nonce + the client nonce is the salt used
in the password hash algorithm)
* _compression_: compression type:
** _zlib_: messages are compressed with _zlib_
** _off_: messages are not compressed
** _zlib_: messages are compressed with https://zlib.net/[zlib]
** _zstd_: messages are compressed with https://facebook.github.io/zstd/[Zstandard]
[TIP]
With WeeChat ≤ 2.8, the command _handshake_ is not implemented, WeeChat silently
@@ -196,7 +202,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -216,7 +222,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -236,7 +242,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -248,10 +254,11 @@ the password is "test" in this example:
init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
----
* Only "sha256" and "sha512" are supported by the client, disable compression:
* Only "sha256" and "sha512" are supported by the client, enable zstd (preferred)
or zlib compression:
----
(handshake) handshake password_hash_algo=sha256:sha512,compression=off
(handshake) handshake password_hash_algo=sha256:sha512,compression=zstd:zlib
----
Response:
@@ -264,7 +271,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'compression': 'zstd',
}
----
@@ -298,12 +305,6 @@ Arguments:
factor, in addition to the password
(option _relay.network.totp_secret_ in WeeChat)
_(WeeChat ≥ 2.4)_
** _compression_: compression type (*deprecated* since version 2.9, it is kept
for compatibility reasons but should be sent in the
<<command_handshake,handshake command>>):
*** _zlib_: enable _zlib_ compression for messages sent by _relay_
(enabled by default if _relay_ supports _zlib_ compression)
*** _off_: disable compression
[NOTE]
With WeeChat ≥ 1.6, commas can be escaped in the value, for example
@@ -1379,7 +1380,8 @@ Messages are sent as binary data, using following format (with size in bytes):
(including this field)
* _compression_ (byte): flag:
** _0x00_: following data is not compressed
** _0x01_: following data is compressed with _zlib_
** _0x01_: following data is compressed with https://zlib.net/[zlib]
** _0x02_: following data is compressed with https://facebook.github.io/zstd/[Zstandard]
* _id_ (string, 4 bytes + content): identifier sent by client (before command name); it can be
empty (string with zero length and no content) if no identifier was given in
command
@@ -1389,8 +1391,9 @@ Messages are sent as binary data, using following format (with size in bytes):
[[message_compression]]
=== Compression
If flag _compression_ is equal to 0x01, then *all* data after is compressed
with _zlib_, and therefore must be uncompressed before being processed.
If flag _compression_ is equal to 0x01 or 0x02, then *all* data after is compressed
with https://zlib.net/[zlib] or https://facebook.github.io/zstd/[Zstandard],
and therefore must be uncompressed before being processed.
[[message_identifier]]
=== Identifier
+2 -1
View File
@@ -101,9 +101,10 @@ WeeChat:
| pkg-config | | Detect installed libraries.
| libncursesw5-dev ^(2)^ | | Ncurses interface.
| libcurl4-gnutls-dev | | URL transfer.
| zlib1g-dev | | Compression of packets in relay plugin (weechat protocol), script plugin.
| libgcrypt20-dev | | Secured data, IRC SASL authentication.
| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | SSL connection to IRC server, support of SSL in relay plugin, IRC SASL authentication (ECDSA-NIST256P-CHALLENGE).
| zlib1g-dev | | Compression of messages (WeeChat -> client) with https://zlib.net/[zlib] in relay plugin (weechat protocol), script plugin.
| libzstd-dev | | Compression of messages (WeeChat -> client) with https://facebook.github.io/zstd/[Zstandard] in relay plugin (weechat protocol).
|===
[NOTE]
+35 -32
View File
@@ -24,7 +24,7 @@ Les termes suivants sont utilisés dans ce document :
* _relay_ : il s'agit de l'extension "relay" de WeeChat, qui agit comme un
"serveur" et autorise les _clients_ à se connecter
* _client_ : il s'agit d'un autre logiciel, connecté au _relay_ via une
connexion réseau; dans la plupart des cas, ce _client_ est une interface
connexion réseau ; dans la plupart des cas, ce _client_ est une interface
distante.
[[network_diagram]]
@@ -79,7 +79,7 @@ Les commandes ont le format :
Les champs sont :
* _id_ : identifiant du message (facultatif) qui sera envoyée dans la réponse de
_relay_; elle doit être entre parenthèses, et ne doit pas commencer par un
_relay_ ; elle doit être entre parenthèses, et ne doit pas commencer par un
underscore (les identifiants commençant par un underscore sont réservés
pour les messages _évènements_ de WeeChat)
* _commande_ : une commande (voir le tableau ci-dessous)
@@ -107,7 +107,7 @@ Liste des commandes disponibles (détail dans les chapitres suivants) :
[[command_handshake]]
=== handshake
_WeeChat ≥ 2.9._
_WeeChat ≥ 2.9, mis à jour dans la version 3.5._
Effectuer une poignée de main entre le client et WeeChat : cela est obligatoire
dans la plupart des cas pour connaître les paramètres de la session et préparer
@@ -133,10 +133,16 @@ Paramètres :
(avec un hachage SHA256)
*** _pbkdf2+sha512_ : mot de passe salé et haché avec l'algorithme PBKDF2
(avec un hachage SHA512)
** _compression_ : type de compression :
*** _zlib_ : activer la compression _zlib_ pour les messages envoyés par _relay_
(activée par défaut si _relay_ supporte la compression _zlib_)
*** _off_ : désactiver la compression
** _compression_ : liste des types de compression supportées par le client
(séparées par des deux-points et triées de la plus importante à la valeur
par défaut) ; si la compression est activée, les messages de _relay_ vers
le client sont compressés pour économiser de la bande passante ;
les valeurs autorisées sont :
*** _off_ : pas de compression (par défaut si l'option n'est pas donnée)
*** _zlib_ : compresser avec https://zlib.net/[zlib] _(WeeChat ≥ 0.3.7)_
*** _zstd_ : compresser avec https://facebook.github.io/zstd/[Zstandard] :
meilleure compression et bien plus rapide que _zlib_ pour la compression et
la décompression _(WeeChat ≥ 3.5)_
Notes à propos de l'option _password_hash_algo_ :
@@ -178,8 +184,9 @@ suivantes :
_relay_ + le nonce client constituent le sel utilisé dans l'algorithme de
hachage du mot de passe)
* _compression_ : type de compression :
** _zlib_ : les messages sont compressés avec _zlib_
** _off_ : les messages ne sont pas compressés
** _zlib_ : les messages sont compressés avec https://zlib.net/[zlib]
** _zstd_ : les messages sont compressés avec https://facebook.github.io/zstd/[Zstandard]
[TIP]
Avec WeeChat ≤ 2.8, la commande _handshake_ n'est pas implémentée, WeeChat ignore
@@ -204,7 +211,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -224,7 +231,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -244,7 +251,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -256,10 +263,11 @@ le mot de passe est "test" dans cet exemple :
init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
----
* Seulement "sha256" et "sha512" sont supportés par le client, désactiver la compression :
* Seulement "sha256" et "sha512" sont supportés par le client, activer la
compression zstd (préférée) ou zlib :
----
(handshake) handshake password_hash_algo=sha256:sha512,compression=off
(handshake) handshake password_hash_algo=sha256:sha512,compression=zstd:zlib
----
Réponse :
@@ -272,7 +280,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'compression': 'zstd',
}
----
@@ -306,12 +314,6 @@ Paramètres :
One-Time Password) utilisé comme second facteur d'authentification, en plus
du mot de passe (option _relay.network.totp_secret_ dans WeeChat)
_(WeeChat ≥ 2.4)_
** _compression_ : type de compression (*obsolète* depuis la version 2.9, gardé
pour des raisons de compatibilité mais devrait être envoyé dans la
<<command_handshake,commande handshake>>) :
*** _zlib_ : activer la compression _zlib_ pour les messages envoyés par _relay_
(activée par défaut si _relay_ supporte la compression _zlib_)
*** _off_ : désactiver la compression
[NOTE]
Avec WeeChat ≥ 1.6, les virgules peuvent être échappées dans la valeur,
@@ -1157,16 +1159,16 @@ Syntaxe :
Paramètres :
* _tampon_ : pointeur (par exemple : "0x1234abcd") ou nom complet du tampon (par exemple :
_core.weechat_ ou _irc.libera.#weechat_); le nom "*" peut être utilisé pour
_core.weechat_ ou _irc.libera.#weechat_) ; le nom "*" peut être utilisé pour
spécifier tous les tampons
* _options_ : un ou plusieurs mots-clés, séparés par des virgules (par défaut
_buffers,upgrade,buffer,nicklist_ pour "*" et _buffer,nicklist_ pour un
tampon) :
** _buffers_ : recevoir les signaux à propos des tampons (ouverts/fermés,
déplacés, renommés, mélangés, masqués/démasqués); peut être utilisé seulement
déplacés, renommés, mélangés, masqués/démasqués) ; peut être utilisé seulement
avec "*" _(WeeChat ≥ 0.4.1)_
** _upgrade_ : recevoir les signaux à propos de la mise à jour de WeeChat
(mise à jour, fin de mise à jour); peut être utilisé seulement avec "*"
(mise à jour, fin de mise à jour) ; peut être utilisé seulement avec "*"
_(WeeChat ≥ 0.4.1)_
** _buffer_ : recevoir les signaux à propos du tampon (nouvelles lignes, type
changé, titre changé, variable locale ajoutée/supprimée, et les même signaux
@@ -1225,11 +1227,11 @@ Syntaxe :
Paramètres :
* _tampon_ : pointeur (par exemple : "0x1234abcd") ou nom complet du tampon (par exemple :
_core.weechat_ ou _irc.libera.#weechat_); le nom "*" peut être utilisé pour
_core.weechat_ ou _irc.libera.#weechat_) ; le nom "*" peut être utilisé pour
spécifier tous les tampons
* _options_ : un ou plusieurs mots-clés, séparés par des virgules (le défaut est
_buffers,upgrade,buffer,nicklist_ pour "*" et _buffer,nicklist_ pour un
tampon); voir <<command_sync,la commande sync>> pour les valeurs
tampon) ; voir <<command_sync,la commande sync>> pour les valeurs
[NOTE]
En utilisant le tampon "*", les autres tampons synchronisés (en utilisant un
@@ -1399,9 +1401,10 @@ suivant (avec la taille en octets) :
(en incluant ce champ)
* _compression_ (octet) : drapeau :
** _0x00_ : les données qui suivent ne sont pas compressées
** _0x01_ : les données qui suivent sont compressées avec _zlib_
** _0x01_ : les données qui suivent sont compressées avec https://zlib.net/[zlib]
** _0x02_ : les données qui suivent sont compressées avec https://facebook.github.io/zstd/[Zstandard]
* _id_ (chaîne, 4 octets + contenu) : l'identifiant envoyé par le client
(avant le nom de la commande); il peut être vide (chaîne avec une longueur
(avant le nom de la commande) ; il peut être vide (chaîne avec une longueur
de zéro sans contenu) si l'identifiant n'était pas donné dans la commande
* _type_ (3 caractères) : un type : 3 lettres (voir le tableau ci-dessous)
* _objet_ : un objet (voir tableau ci-dessous)
@@ -1409,9 +1412,9 @@ suivant (avec la taille en octets) :
[[message_compression]]
=== Compression
Si le drapeau de _compression_ est égal à 0x01, alors *toutes* les données après
sont compressées avec _zlib_, et par conséquent doivent être décompressées avant
d'être utilisées.
Si le drapeau de _compression_ est égal à 0x01 ou 0x02, alors *toutes* les données
après sont compressées avec https://zlib.net/[zlib] ou https://facebook.github.io/zstd/[Zstandard],
et par conséquent doivent être décompressées avant d'être utilisées.
[[message_identifier]]
=== Identifiant
@@ -2473,7 +2476,7 @@ Une chaîne _NULL_ (pointeur NULL en C) a une longueur de -1 :
[[object_buffer]]
==== Tampon de données
Même format que l'objet <<object_string,chaîne>>; le contenu est simplement un
Même format que l'objet <<object_string,chaîne>> ; le contenu est simplement un
tableau d'octets.
[[object_pointer]]
@@ -2556,7 +2559,7 @@ objets).
....
* _h-path_ (chaîne) : chemin utilise pour atteindre le hdata (exemple :
_buffer/lines/line/line_data_); le dernier élément du chemin est le hdata
_buffer/lines/line/line_data_) ; le dernier élément du chemin est le hdata
retourné
* _keys_ (chaînes) : chaîne avec une liste de _clé:type_ (séparés par des
virgules), exemple : _number:int,name:str_
+2 -1
View File
@@ -104,9 +104,10 @@ Le tableau suivant liste les paquets *requis* pour compiler WeeChat :
| pkg-config | | Détection des bibliothèques installées.
| libncursesw5-dev ^(2)^ | | Interface ncurses.
| libcurl4-gnutls-dev | | Transfert d'URL.
| zlib1g-dev | | Compression des paquets dans l'extension relay (protocole weechat), extension script.
| libgcrypt20-dev | | Données sécurisées, authentification IRC SASL.
| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | Connexion SSL au serveur IRC, support SSL dans l'extension relay, authentification IRC SASL (ECDSA-NIST256P-CHALLENGE).
| zlib1g-dev | | Compression des messages (WeeChat -> client) avec https://zlib.net/[zlib] dans l'extension relay (protocole weechat), extension script.
| libzstd-dev | | Compression des messages (WeeChat -> client) avec https://facebook.github.io/zstd/[Zstandard] dans l'extension relay (protocole weechat).
|===
[NOTE]
+4 -2
View File
@@ -122,11 +122,13 @@ WeeChat:
| libncursesw5-dev ^(2)^ | | Interfaccia ncurses.
| libcurl4-gnutls-dev | | Trasferimento URL.
// TRANSLATION MISSING
| zlib1g-dev | | Compression of packets in relay plugin (weechat protocol), script plugin.
// TRANSLATION MISSING
| libgcrypt20-dev | | Secured data, IRC SASL authentication.
// TRANSLATION MISSING
| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | Connessione SSL al server IRC, support of SSL in relay plugin, IRC SASL authentication (ECDSA-NIST256P-CHALLENGE).
// TRANSLATION MISSING
| zlib1g-dev | | Compression of messages (WeeChat -> client) with https://zlib.net/[zlib] in relay plugin (weechat protocol), script plugin.
// TRANSLATION MISSING
| libzstd-dev | | Compression of messages (WeeChat -> client) with https://facebook.github.io/zstd/[Zstandard] in relay plugin (weechat protocol).
|===
[NOTE]
+26 -22
View File
@@ -112,7 +112,7 @@ _リレー_ プラグインは _IRC プロキシ_ のように振舞います (
[[command_handshake]]
=== handshake
_WeeChat ≥ 2.9._
_WeeChat ≥ 2.9, updated in version 3.5._
Perform an handshake between the client and WeeChat: this is required in most
cases to know the session settings and prepare the authentication with the
@@ -136,10 +136,16 @@ Arguments:
*** _sha512_: password salted and hashed with SHA512 algorithm
*** _pbkdf2+sha256_: password salted and hashed with PBKDF2 algorithm (using SHA256 hash)
*** _pbkdf2+sha512_: password salted and hashed with PBKDF2 algorithm (using SHA512 hash)
** _compression_: compression type:
*** _zlib_: enable _zlib_ compression for messages sent by _relay_
(enabled by default if _relay_ supports _zlib_ compression)
*** _off_: disable compression
// TRANSLATION MISSING
** _compression_: list of supported compression types supported by the client
(separated by colons and sorted from most important to the fallback value);
if compression is enabled, messages from _relay_ to client are compressed
to save bandwidth; allowed values are:
*** _off_: no compression (default if option is not given)
*** _zlib_: compress with https://zlib.net/[zlib] _(WeeChat ≥ 0.3.7)_
*** _zstd_: compress with https://facebook.github.io/zstd/[Zstandard]: better
compression and much faster than _zlib_ for both compression and decompression
_(WeeChat ≥ 3.5)_
Notes about option _password_hash_algo_:
@@ -178,8 +184,9 @@ WeeChat replies with a hashtable containing the following keys and values:
and the user password (the _relay_ nonce + the client nonce is the salt used
in the password hash algorithm)
* _compression_: compression type:
** _zlib_: messages are compressed with _zlib_
** _off_: messages are not compressed
** _zlib_: messages are compressed with https://zlib.net/[zlib]
** _zstd_: messages are compressed with https://facebook.github.io/zstd/[Zstandard]
[TIP]
With WeeChat ≤ 2.8, the command _handshake_ is not implemented, WeeChat silently
@@ -205,7 +212,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -225,7 +232,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -245,7 +252,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -257,10 +264,11 @@ the password is "test" in this example:
init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
----
* Only "sha256" and "sha512" are supported by the client, disable compression:
* Only "sha256" and "sha512" are supported by the client, enable zstd (preferred)
or zlib compression:
----
(handshake) handshake password_hash_algo=sha256:sha512,compression=off
(handshake) handshake password_hash_algo=sha256:sha512,compression=zstd:zlib
----
Response:
@@ -273,7 +281,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'compression': 'zstd',
}
----
@@ -310,13 +318,6 @@ _handshake_), without warning.
** _totp_: パスワードに加えた二要素認証で利用する時間ベースのワンタイムパスワード (TOTP)
(WeeChat の _relay.network.totp_secret_ オプション)
_(WeeChat バージョン 2.4 で利用可能)_
// TRANSLATION MISSING
** _compression_: 圧縮タイプ (*deprecated* since version 2.9, it is kept
for compatibility reasons but should be sent in the
<<command_handshake,handshake command>>):
*** _zlib_: _リレー_ から受信するメッセージに対して _zlib_ 圧縮を使う
(_リレー_ が _zlib_ 圧縮をサポートしている場合、デフォルトで有効化されます)
*** _off_: 圧縮を使わない
[NOTE]
WeeChat バージョン 1.6 以上の場合、コンマをエスケープすることで value にコンマを設定可能です。例えば
@@ -1409,7 +1410,8 @@ quit
(このフィールドを含む)
* _compression_ (バイト型): フラグ:
** _0x00_: これ以降のデータは圧縮されていません
** _0x01_: これ以降のデータは _zlib_ で圧縮されています
** _0x01_: これ以降のデータは https://zlib.net/[zlib] で圧縮されています
** _0x02_: これ以降のデータは https://facebook.github.io/zstd/[Zstandard] で圧縮されています
* _id_ (文字列型、4 バイト + 内容): クライアントが送信した識別子 (コマンド名の前につけられる);
コマンドに識別子が含まれない場合は空文字列でも可
(内容を含まない長さゼロの文字列)
@@ -1419,8 +1421,10 @@ quit
[[message_compression]]
=== 圧縮
_compression_ フラグが 0x01 の場合、これ以降の *全ての* データは _zlib_
で圧縮されているため、処理前に必ず展開してください。
// TRANSLATION MISSING
If flag _compression_ is equal to 0x01 or 0x02, then *all* data after is compressed
with https://zlib.net/[zlib] or https://facebook.github.io/zstd/[Zstandard],
and therefore must be uncompressed before being processed.
[[message_identifier]]
=== 識別子
+4 -1
View File
@@ -108,9 +108,12 @@ WeeChat:
| pkg-config | | インストール済みライブラリを検出
| libncursesw5-dev ^(2)^ | | ncurses インターフェース
| libcurl4-gnutls-dev | | URL 転送
| zlib1g-dev | | relay プラグインでパケットを圧縮 (weechat プロトコル)、スクリプトプラグイン
| libgcrypt20-dev | | 保護データ、IRC SASL 認証
| libgnutls28-dev | 2.2.0 以上 ^(3)^ | IRC サーバへの SSL 接続、IRC SASL 認証 (ECDSA-NIST256P-CHALLENGE)
// TRANSLATION MISSING
| zlib1g-dev | | Compression of messages (WeeChat -> client) with https://zlib.net/[zlib] in relay plugin (weechat protocol), script plugin.
// TRANSLATION MISSING
| libzstd-dev | | Compression of messages (WeeChat -> client) with https://facebook.github.io/zstd/[Zstandard] in relay plugin (weechat protocol).
|===
[NOTE]
+4 -1
View File
@@ -107,9 +107,12 @@ WeeChat:
| pkg-config | | Wykrywa zainstalowane biblioteki.
| libncursesw5-dev ^(2)^ | | Interfejs ncurses.
| libcurl4-gnutls-dev | | Transfer URL.
| zlib1g-dev | | Kompresja pakietów we wtyczce relay (protokół weechat), wtyczka script.
| libgcrypt20-dev | | Zabezpieczone dane, uwierzytelnianie IRC SASL.
| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | Połączenia SSL z serwerami IRC, wsparcie dla SSL we wtyczce relay, uwierzytelnianie IRC SASL (ECDSA-NIST256P-CHALLENGE).
// TRANSLATION MISSING
| zlib1g-dev | | Compression of messages (WeeChat -> client) with https://zlib.net/[zlib] in relay plugin (weechat protocol), script plugin.
// TRANSLATION MISSING
| libzstd-dev | | Compression of messages (WeeChat -> client) with https://facebook.github.io/zstd/[Zstandard] in relay plugin (weechat protocol).
|===
[NOTE]
+28 -16
View File
@@ -97,7 +97,8 @@ _клијенти_ су повезани са _релејем_ као што ј
[[command_handshake]]
=== handshake
_WeeChat ≥ 2.9._
// TRANSLATION MISSING
_WeeChat ≥ 2.9, updated in version 3.5._
Извршава руковање између клијента и програма WeeChat: ово је у већини случајева неопходно како би се сазнале поставке сесије и припремила аутентификација командом _init_.
@@ -118,9 +119,16 @@ _WeeChat ≥ 2.9._
*** _sha512_: лозинка засољена и хеширана SHA512 алгоритмом
*** _pbkdf2+sha256_: лозинка засољена и хеширана PBKDF2 алгоритмом (користећи SHA256 хеш)
*** _pbkdf2+sha512_: лозинка засољена и хеширана PBKDF2 алгоритмом (користећи SHA512 хеш)
** _compression_: тип компресије:
*** _zlib_: укључује _zlib_ компресију порука које шаље _релеј_ (подразумевано је укључено ако _релеј_ подржава _zlib_ компресију)
*** _off_: искључује компресију
// TRANSLATION MISSING
** _compression_: list of supported compression types supported by the client
(separated by colons and sorted from most important to the fallback value);
if compression is enabled, messages from _relay_ to client are compressed
to save bandwidth; allowed values are:
*** _off_: no compression (default if option is not given)
*** _zlib_: compress with https://zlib.net/[zlib] _(WeeChat ≥ 0.3.7)_
*** _zstd_: compress with https://facebook.github.io/zstd/[Zstandard]: better
compression and much faster than _zlib_ for both compression and decompression
_(WeeChat ≥ 3.5)_
Напомене у вези опције _password_hash_algo_:
@@ -147,8 +155,9 @@ _WeeChat ≥ 2.9._
** _off_: Time-based One-Time Password (TOTP) је искључена и није потребна у _init_ команди
* _nonce_: бафер бајтова који не могу да се предвиде, послат као хексадецимална вредност, којом се спречавају replay напади; ако је _password_hash_algo_ хеш алгоритам, клијент мора да израчуна хеш лозинке над овим нонсом, спојено са клијентовим нонсом и корисничком лозинком (_релеј_ нонс + _клијент_ нонс је со која се користи у алгоритму хеширања лозинке)
* _compression_: тип компресије:
** _zlib_: поруке су компресоване са _zlib_
** _off_: поруке се не компресују
** _zlib_: поруке су компресоване са https://zlib.net/[zlib]
** _zstd_: поруке су компресоване са https://facebook.github.io/zstd/[Zstandard]
[TIP]
У програму WeeChat верзије ≤ 2.8, команда _handshake_ није имплементирана, програм WeeChat једноставно игнорише ову команду, чак и ако се пошаље пре _init_ команде. +
@@ -172,7 +181,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -192,7 +201,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -212,7 +221,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'zlib',
'compression': 'off',
}
----
@@ -222,10 +231,12 @@ htb: {
init password_hash=pbkdf2+sha256:85b1ee00695a5b254e14f4885538df0da4b73207f5aae4:100000:ba7facc3edb89cd06ae810e29ced85980ff36de2bb596fcf513aaab626876440
----
* Клијент подржава само „sha256” и „sha512”, компресије се искључује:
// TRANSLATION MISSING
* Клијент подржава само „sha256” и „sha512”, компресије се искључује,
enable zstd (preferred) or zlib compression:
----
(handshake) handshake password_hash_algo=sha256:sha512,compression=off
(handshake) handshake password_hash_algo=sha256:sha512,compression=zstd:zlib
----
Одговор:
@@ -238,7 +249,7 @@ htb: {
'password_hash_iterations': '100000',
'totp': 'on',
'nonce': '85B1EE00695A5B254E14F4885538DF0D',
'compression': 'off',
'compression': 'zstd',
}
----
@@ -264,9 +275,6 @@ _Ажурирано у верзијама 2.4, 2.8, 2.9._
** _password_: лозинка која се користи за аутентификацију са _релејем_ (опција _relay.network.password_ у програму WeeChat)
** _password_hash_: хеш лозинке која се користи за аутентификацију са _релејем_ (опција _relay.network.password_ у програму WeeChat), погледајте испод за формат _(WeeChat ≥ 2.8)_
** _totp_: Time-based One-Time Password (TOTP) која се користи као секундарни фактор аутентификације, уз лозинку (опција _relay.network.totp_secret_ у програму WeeChat) _(WeeChat ≥ 2.4)_
** _compression_: тип компресије (*превазиђено* почевши од верзије 2.9, остало је из разлога компатибилности, али ви требало да се пошаље у <<command_handshake,handshake команди>>):
*** _zlib_: укључује _zlib_ компресију порука које шаље _релеј_ (подразумевано је укључено ако _релеј_ подржава _zlib_ компресију)
*** _off_: искључује компресију
[NOTE]
У програму WeeChat верзије ≥ 1.6, у вредности могу да се означе запете, на пример `+init password=foo\,bar+` када желите да пошаљете лозинку „foo,bar”.
@@ -1292,7 +1300,8 @@ quit
* _дужина_ (неозначени цео број, 4 бајта): број бајтова у целој поруци (заједно са овим пољем)
* _компресија_ (бајт): заставица:
** _0x00_: подаци који следе нису компресовани
** _0x01_: подаци који следе су компресовани са _zlib_
** _0x01_: подаци који следе су компресовани са https://zlib.net/[zlib]
** _0x02_: подаци који следе су компресовани са https://facebook.github.io/zstd/[Zstandard]
* _id_ (стринг, 4 бајта + садржај): идентификатор који послао клијент (пре имена команде); може бити и празан (стринг дужине нула и без садржаја) ако у команди није био наведен идентификатор
* _тип_ (3 карактера): тип: 3 слова (погледајте табелу испод)
* _објект_: објекат (погледајте табелу испод)
@@ -1300,7 +1309,10 @@ quit
[[message_compression]]
=== Компресија
Ако је вредност заставице _компресија_ 0x01, онда су *сви* подаци компресовани _zlib_ алгоритмом, тако да пре обраде морају да се декомпресују.
// TRANSLATION MISSING
If flag _compression_ is equal to 0x01 or 0x02, then *all* data after is compressed
with https://zlib.net/[zlib] or https://facebook.github.io/zstd/[Zstandard],
and therefore must be uncompressed before being processed.
[[message_identifier]]
=== Идентификатор
+4 -1
View File
@@ -93,9 +93,12 @@ WeeChat почетна страница се налази на адреси: htt
| pkg-config | | Детекција инсталираних библиотека.
| libncursesw5-dev ^(2)^ | | Ncurses интерфејс.
| libcurl4-gnutls-dev | | URL пренос.
| zlib1g-dev | | Компресија пакета у релеј додатку (weechat протокол), скрипт додатку.
| libgcrypt20-dev | | Обезбеђени подаци, IRC SASL аутентификација.
| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | SSL веза са IRC сервером, подршка за SSL у релеј додатку, IRC SASL аутентификација (ECDSA-NIST256P-CHALLENGE).
// TRANSLATION MISSING
| zlib1g-dev | | Compression of messages (WeeChat -> client) with https://zlib.net/[zlib] in relay plugin (weechat protocol), script plugin.
// TRANSLATION MISSING
| libzstd-dev | | Compression of messages (WeeChat -> client) with https://facebook.github.io/zstd/[Zstandard] in relay plugin (weechat protocol).
|===
[NOTE]
+7
View File
@@ -33,6 +33,7 @@
#include <gcrypt.h>
#include <curl/curl.h>
#include <zlib.h>
#include <zstd.h>
#include <gnutls/gnutls.h>
@@ -580,6 +581,12 @@ debug_libs_cb (const void *pointer, void *data,
gui_chat_printf (NULL, " zlib: (?)");
#endif /* ZLIB_VERSION */
/* display zstd version */
gui_chat_printf (NULL, " zstd: %d.%d.%d",
ZSTD_VERSION_MAJOR,
ZSTD_VERSION_MINOR,
ZSTD_VERSION_RELEASE);
return WEECHAT_RC_OK;
}
+5 -2
View File
@@ -43,13 +43,16 @@ set_target_properties(relay PROPERTIES PREFIX "")
set(LINK_LIBS)
list(APPEND LINK_LIBS ${ZLIB_LIBRARY})
include_directories(${GNUTLS_INCLUDE_PATH})
list(APPEND LINK_LIBS ${GNUTLS_LIBRARY})
list(APPEND LINK_LIBS ${GCRYPT_LDFLAGS})
list(APPEND LINK_LIBS ${ZLIB_LIBRARY})
include_directories(${ZSTD_INCLUDE_DIRS})
list(APPEND LINK_LIBS ${LIBZSTD_LDFLAGS})
target_link_libraries(relay ${LINK_LIBS} coverage_config)
install(TARGETS relay LIBRARY DESTINATION ${WEECHAT_LIBDIR}/plugins)
+2 -2
View File
@@ -17,7 +17,7 @@
# along with WeeChat. If not, see <https://www.gnu.org/licenses/>.
#
AM_CPPFLAGS = -DLOCALEDIR=\"$(datadir)/locale\" $(ZLIB_CFLAGS) $(GCRYPT_CFLAGS) $(GNUTLS_CFLAGS)
AM_CPPFLAGS = -DLOCALEDIR=\"$(datadir)/locale\" $(GCRYPT_CFLAGS) $(GNUTLS_CFLAGS) $(ZLIB_CFLAGS) $(ZSTD_CFLAGS)
libdir = ${weechat_libdir}/plugins
@@ -61,6 +61,6 @@ relay_la_SOURCES = relay.c \
weechat/relay-weechat-protocol.h
relay_la_LDFLAGS = -module -no-undefined
relay_la_LIBADD = $(RELAY_LFLAGS) $(ZLIB_LFLAGS) $(GCRYPT_LFLAGS) $(GNUTLS_LFLAGS)
relay_la_LIBADD = $(RELAY_LFLAGS) $(GCRYPT_LFLAGS) $(GNUTLS_LFLAGS) $(ZLIB_LFLAGS) $(ZSTD_LFLAGS)
EXTRA_DIST = CMakeLists.txt
+10 -7
View File
@@ -63,7 +63,7 @@ struct t_config_option *relay_config_network_allowed_ips;
struct t_config_option *relay_config_network_auth_timeout;
struct t_config_option *relay_config_network_bind_address;
struct t_config_option *relay_config_network_clients_purge_delay;
struct t_config_option *relay_config_network_compression_level;
struct t_config_option *relay_config_network_compression;
struct t_config_option *relay_config_network_ipv6;
struct t_config_option *relay_config_network_max_clients;
struct t_config_option *relay_config_network_nonce_size;
@@ -1070,13 +1070,16 @@ relay_config_init ()
"clients immediately, -1 = never purge)"),
NULL, -1, 60 * 24 * 30, "0", NULL, 0,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
relay_config_network_compression_level = weechat_config_new_option (
relay_config_network_compression = weechat_config_new_option (
relay_config_file, ptr_section,
"compression_level", "integer",
N_("compression level for packets sent to client with WeeChat protocol "
"(0 = disable compression, 1 = low compression ... 9 = best "
"compression)"),
NULL, 0, 9, "6", NULL, 0,
"compression", "integer",
N_("compression for packets sent to client with WeeChat "
"protocol: 0 = disable compression, 1 = low compression, fast "
"... 100 = best compression, slow; the value is a percentage "
"converted to 1-9 for zlib and 1-19 for zstd; "
"default value is 20 which is a sane default and offers good "
"compression and speed"),
NULL, 0, 100, "20", NULL, 0,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
relay_config_network_ipv6 = weechat_config_new_option (
relay_config_file, ptr_section,
+1 -1
View File
@@ -42,7 +42,7 @@ extern struct t_config_option *relay_config_network_allowed_ips;
extern struct t_config_option *relay_config_network_auth_timeout;
extern struct t_config_option *relay_config_network_bind_address;
extern struct t_config_option *relay_config_network_clients_purge_delay;
extern struct t_config_option *relay_config_network_compression_level;
extern struct t_config_option *relay_config_network_compression;
extern struct t_config_option *relay_config_network_ipv6;
extern struct t_config_option *relay_config_network_max_clients;
extern struct t_config_option *relay_config_network_nonce_size;
+153 -43
View File
@@ -29,6 +29,7 @@
#include <errno.h>
#include <arpa/inet.h>
#include <zlib.h>
#include <zstd.h>
#include "../../weechat-plugin.h"
#include "../relay.h"
@@ -1026,6 +1027,150 @@ relay_weechat_msg_add_nicklist (struct t_relay_weechat_msg *msg,
relay_weechat_msg_set_bytes (msg, pos_count, &count32, 4);
}
/*
* Compresses the message with zlib.
*
* Returns:
* 1: OK, message compressed and sent
* 0: error, no message sent
*/
int
relay_weechat_msg_compress_zlib (struct t_relay_client *client,
struct t_relay_weechat_msg *msg)
{
char raw_message[1024];
uint32_t size32;
Bytef *dest;
uLongf dest_size;
struct timeval tv1, tv2;
long long time_diff;
int rc, rc_compress, compression, compression_level;
rc = 0;
dest = NULL;
dest_size = compressBound (msg->data_size - 5);
dest = malloc (dest_size + 5);
if (!dest)
goto error;
/* convert % to zlib compression level (1-9) */
compression = weechat_config_integer (relay_config_network_compression);
compression_level = (((compression - 1) * 9) / 100) + 1;
gettimeofday (&tv1, NULL);
rc_compress = compress2 (
dest + 5,
&dest_size,
(Bytef *)(msg->data + 5),
msg->data_size - 5,
compression_level);
gettimeofday (&tv2, NULL);
time_diff = weechat_util_timeval_diff (&tv1, &tv2);
if ((rc_compress != Z_OK) || ((int)dest_size + 5 >= msg->data_size))
goto error;
/* set size and compression flag */
size32 = htonl ((uint32_t)(dest_size + 5));
memcpy (dest, &size32, 4);
dest[4] = RELAY_WEECHAT_COMPRESSION_ZLIB;
/* display message in raw buffer */
snprintf (raw_message, sizeof (raw_message),
"obj: %d/%d bytes (zlib: %d%%, %.2fms), id: %s",
(int)dest_size + 5,
msg->data_size,
100 - ((((int)dest_size + 5) * 100) / msg->data_size),
((float)time_diff) / 1000,
msg->id);
/* send compressed data */
relay_client_send (client, RELAY_CLIENT_MSG_STANDARD,
(const char *)dest, dest_size + 5,
raw_message);
rc = 1;
error:
if (dest)
free (dest);
return rc;
}
/*
* Compresses the message with zstd.
*
* Returns:
* 1: OK, message compressed and sent
* 0: error, no message sent
*/
int
relay_weechat_msg_compress_zstd (struct t_relay_client *client,
struct t_relay_weechat_msg *msg)
{
char raw_message[1024];
uint32_t size32;
Bytef *dest;
size_t dest_size, comp_size;
struct timeval tv1, tv2;
long long time_diff;
int rc, compression, compression_level;
rc = 0;
dest = NULL;
dest_size = ZSTD_compressBound (msg->data_size - 5);
dest = malloc (dest_size + 5);
if (!dest)
goto error;
/* convert % to zstd compression level (1-19) */
compression = weechat_config_integer (relay_config_network_compression);
compression_level = (((compression - 1) * 19) / 100) + 1;
gettimeofday (&tv1, NULL);
comp_size = ZSTD_compress(
dest + 5,
dest_size,
(void *)(msg->data + 5),
msg->data_size - 5,
compression_level);
gettimeofday (&tv2, NULL);
time_diff = weechat_util_timeval_diff (&tv1, &tv2);
if ((comp_size == 0) || ((int)comp_size + 5 >= msg->data_size))
goto error;
/* set size and compression flag */
size32 = htonl ((uint32_t)(comp_size + 5));
memcpy (dest, &size32, 4);
dest[4] = RELAY_WEECHAT_COMPRESSION_ZSTD;
/* display message in raw buffer */
snprintf (raw_message, sizeof (raw_message),
"obj: %d/%d bytes (zstd: %d%%, %.2fms), id: %s",
(int)comp_size + 5,
msg->data_size,
100 - ((((int)comp_size + 5) * 100) / msg->data_size),
((float)time_diff) / 1000,
msg->id);
/* send compressed data */
relay_client_send (client, RELAY_CLIENT_MSG_STANDARD,
(const char *)dest, comp_size + 5,
raw_message);
rc = 1;
error:
if (dest)
free (dest);
return rc;
}
/*
* Sends a message.
*/
@@ -1034,55 +1179,20 @@ void
relay_weechat_msg_send (struct t_relay_client *client,
struct t_relay_weechat_msg *msg)
{
uint32_t size32;
char compression, raw_message[1024];
int rc;
Bytef *dest;
uLongf dest_size;
struct timeval tv1, tv2;
long long time_diff;
uint32_t size32;
if (weechat_config_integer (relay_config_network_compression_level) > 0)
if (weechat_config_integer (relay_config_network_compression) > 0)
{
switch (RELAY_WEECHAT_DATA(client, compression))
{
case RELAY_WEECHAT_COMPRESSION_ZLIB:
dest_size = compressBound (msg->data_size - 5);
dest = malloc (dest_size + 5);
if (dest)
{
gettimeofday (&tv1, NULL);
rc = compress2 (dest + 5, &dest_size,
(Bytef *)(msg->data + 5), msg->data_size - 5,
weechat_config_integer (relay_config_network_compression_level));
gettimeofday (&tv2, NULL);
time_diff = weechat_util_timeval_diff (&tv1, &tv2);
if ((rc == Z_OK) && ((int)dest_size + 5 < msg->data_size))
{
/* set size and compression flag */
size32 = htonl ((uint32_t)(dest_size + 5));
memcpy (dest, &size32, 4);
dest[4] = RELAY_WEECHAT_COMPRESSION_ZLIB;
/* display message in raw buffer */
snprintf (raw_message, sizeof (raw_message),
"obj: %d/%d bytes (%d%%, %.2fms), id: %s",
(int)dest_size + 5,
msg->data_size,
100 - ((((int)dest_size + 5) * 100) / msg->data_size),
((float)time_diff) / 1000,
msg->id);
/* send compressed data */
relay_client_send (client, RELAY_CLIENT_MSG_STANDARD,
(const char *)dest, dest_size + 5,
raw_message);
free (dest);
return;
}
free (dest);
}
if (relay_weechat_msg_compress_zlib (client, msg))
return;
break;
case RELAY_WEECHAT_COMPRESSION_ZSTD:
if (relay_weechat_msg_compress_zstd (client, msg))
return;
break;
default:
break;
@@ -229,7 +229,7 @@ relay_weechat_protocol_handshake_reply (struct t_relay_client *client,
RELAY_WEECHAT_PROTOCOL_CALLBACK(handshake)
{
char **options, **auths, *pos;
char **options, **auths, **compressions, *pos;
int i, j, index_hash_algo, hash_algo_found, auth_allowed, compression;
int password_received, plain_text_password;
@@ -292,9 +292,28 @@ RELAY_WEECHAT_PROTOCOL_CALLBACK(handshake)
}
else if (strcmp (options[i], "compression") == 0)
{
compression = relay_weechat_compression_search (pos);
if (compression >= 0)
RELAY_WEECHAT_DATA(client, compression) = compression;
compressions = weechat_string_split (
pos,
":",
NULL,
WEECHAT_STRING_SPLIT_STRIP_LEFT
| WEECHAT_STRING_SPLIT_STRIP_RIGHT
| WEECHAT_STRING_SPLIT_COLLAPSE_SEPS,
0,
NULL);
if (compressions)
{
for (j = 0; compressions[j]; j++)
{
compression = relay_weechat_compression_search (compressions[j]);
if (compression >= 0)
{
RELAY_WEECHAT_DATA(client, compression) = compression;
break;
}
}
weechat_string_free_split (compressions);
}
}
}
}
@@ -337,12 +356,9 @@ RELAY_WEECHAT_PROTOCOL_CALLBACK(handshake)
* hash is given in hexadecimal
* totp time-based one time password used as secondary
* authentication factor
* compression zlib (default) or off
*
* Message looks like:
* init password=mypass
* init password=mypass,compression=zlib
* init password=mypass,compression=off
* init password_hash=sha256:71c480df93d6ae2f1efad1447c66c9…,totp=123456
* init password_hash=pbkdf2:sha256:414232…:100000:01757d53157c…,totp=123456
*/
@@ -350,7 +366,7 @@ RELAY_WEECHAT_PROTOCOL_CALLBACK(handshake)
RELAY_WEECHAT_PROTOCOL_CALLBACK(init)
{
char **options, *pos, *relay_password, *totp_secret, *info_totp_args, *info_totp;
int i, compression, length, password_received, totp_received;
int i, length, password_received, totp_received;
RELAY_WEECHAT_PROTOCOL_MIN_ARGS(0);
@@ -411,12 +427,6 @@ RELAY_WEECHAT_PROTOCOL_CALLBACK(init)
}
}
}
else if (strcmp (options[i], "compression") == 0)
{
compression = relay_weechat_compression_search (pos);
if (compression >= 0)
RELAY_WEECHAT_DATA(client, compression) = compression;
}
}
}
weechat_string_free_split_command (options);
+2 -2
View File
@@ -41,7 +41,7 @@
char *relay_weechat_compression_string[] = /* strings for compression */
{ "off", "zlib" };
{ "off", "zlib", "zstd" };
/*
@@ -173,7 +173,7 @@ relay_weechat_alloc (struct t_relay_client *client)
RELAY_WEECHAT_DATA(client, handshake_done) = 0;
RELAY_WEECHAT_DATA(client, password_ok) = 0;
RELAY_WEECHAT_DATA(client, totp_ok) = 0;
RELAY_WEECHAT_DATA(client, compression) = RELAY_WEECHAT_COMPRESSION_ZLIB;
RELAY_WEECHAT_DATA(client, compression) = RELAY_WEECHAT_COMPRESSION_OFF;
RELAY_WEECHAT_DATA(client, buffers_sync) =
weechat_hashtable_new (32,
WEECHAT_HASHTABLE_STRING,
@@ -34,6 +34,7 @@ enum t_relay_weechat_compression
{
RELAY_WEECHAT_COMPRESSION_OFF = 0, /* no compression of binary objects */
RELAY_WEECHAT_COMPRESSION_ZLIB, /* zlib compression */
RELAY_WEECHAT_COMPRESSION_ZSTD, /* Zstandard compression */
/* number of compressions */
RELAY_WEECHAT_NUM_COMPRESSIONS,
};
-11
View File
@@ -2,14 +2,3 @@ This directory contains patches that must be applied for some old Debian/Ubuntu
versions, in order to build Debian packages.
They are automatically applied by the script "tools/build-debian.sh".
Notes for some versions of distributions:
* asciidoctor:
On these distributions, asciidoctor must be installed manually with the command
"gem install asciidoctor" (as root):
- Debian jessie (8.0)
- Debian wheezy (7.0)
- Ubuntu trusty (14.04)
@@ -1,217 +0,0 @@
diff --git a/debian-devel/compat b/debian-devel/compat
index 48082f72f..ec635144f 100644
--- a/debian-devel/compat
+++ b/debian-devel/compat
@@ -1 +1 @@
-12
+9
diff --git a/debian-devel/control b/debian-devel/control
index bf94a36f1..7e7c82a21 100644
--- a/debian-devel/control
+++ b/debian-devel/control
@@ -3,19 +3,16 @@ Section: net
Priority: optional
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
Build-Depends:
- asciidoctor (>= 1.5.4),
- debhelper (>= 12),
+ debhelper (>= 9),
cmake, pkg-config,
libncursesw5-dev,
gem2deb,
libperl-dev,
python3-dev,
libaspell-dev,
- liblua5.3-dev,
+ liblua5.1-0-dev,
tcl8.6-dev,
- guile-2.2-dev,
- php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
- libxml2-dev,
+ guile-2.0-dev,
libcurl4-gnutls-dev,
libgcrypt20-dev,
libgnutls28-dev,
@@ -46,7 +43,7 @@ Description: Fast, light and extensible chat client (metapackage)
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -76,7 +73,7 @@ Description: Fast, light and extensible chat client - console client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -107,7 +104,7 @@ Description: Fast, light and extensible chat client - headless client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -232,20 +229,6 @@ Description: Fast, light and extensible chat client - Guile plugin
.
This package provides the Guile scripting API plugin.
-Package: weechat-devel-php
-Architecture: any
-Depends:
- ${misc:Depends},
- ${shlibs:Depends},
- weechat-devel-curses (= ${binary:Version}) | weechat-devel-headless (= ${binary:Version}),
- libphp-embed
-Conflicts: weechat-php
-Description: Fast, light and extensible chat client - PHP plugin
- WeeChat (Wee Enhanced Environment for Chat) is a fast and light chat client
- for many operating systems. Everything can be done with a keyboard.
- .
- This package provides the PHP scripting API plugin.
-
Package: weechat-devel-doc
Section: doc
Architecture: all
diff --git a/debian-devel/rules b/debian-devel/rules
index 16a5f9516..e42c2a6b2 100755
--- a/debian-devel/rules
+++ b/debian-devel/rules
@@ -12,6 +12,7 @@ $(BUILDDIR)/Makefile:
-DLIBDIR=/usr/lib/${DEB_HOST_MULTIARCH} \
-DENABLE_DOC:BOOL=ON \
-DENABLE_MAN:BOOL=ON \
+ -DENABLE_PHP:BOOL=OFF \
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
-DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="$(CFLAGS) -D_FORTIFY_SOURCE=2" \
-DCMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING="$(LDFLAGS)" \
diff --git a/debian-devel/weechat-devel-php.dirs b/debian-devel/weechat-devel-php.dirs
deleted file mode 120000
index e4853a588..000000000
--- a/debian-devel/weechat-devel-php.dirs
+++ /dev/null
@@ -1 +0,0 @@
-../debian-stable/weechat-php.dirs
\ No newline at end of file
diff --git a/debian-devel/weechat-devel-php.install b/debian-devel/weechat-devel-php.install
deleted file mode 120000
index e358b515a..000000000
--- a/debian-devel/weechat-devel-php.install
+++ /dev/null
@@ -1 +0,0 @@
-../debian-stable/weechat-php.install
\ No newline at end of file
diff --git a/debian-stable/compat b/debian-stable/compat
index 48082f72f..ec635144f 100644
--- a/debian-stable/compat
+++ b/debian-stable/compat
@@ -1 +1 @@
-12
+9
diff --git a/debian-stable/control b/debian-stable/control
index ccf81cac8..d753f6856 100644
--- a/debian-stable/control
+++ b/debian-stable/control
@@ -3,19 +3,16 @@ Section: net
Priority: optional
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
Build-Depends:
- asciidoctor (>= 1.5.4),
- debhelper (>= 12),
+ debhelper (>= 9),
cmake, pkg-config,
libncursesw5-dev,
gem2deb,
libperl-dev,
python3-dev,
libaspell-dev,
- liblua5.3-dev,
+ liblua5.1-0-dev,
tcl8.6-dev,
- guile-2.2-dev,
- php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
- libxml2-dev,
+ guile-2.0-dev,
libcurl4-gnutls-dev,
libgcrypt20-dev,
libgnutls28-dev,
@@ -45,7 +42,7 @@ Description: Fast, light and extensible chat client (metapackage)
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -74,7 +71,7 @@ Description: Fast, light and extensible chat client - console client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -104,7 +101,7 @@ Description: Fast, light and extensible chat client - headless client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -221,19 +218,6 @@ Description: Fast, light and extensible chat client - Guile plugin
.
This package provides the Guile scripting API plugin.
-Package: weechat-php
-Architecture: any
-Depends:
- ${misc:Depends},
- ${shlibs:Depends},
- weechat-curses (= ${binary:Version}) | weechat-headless (= ${binary:Version}),
- libphp-embed
-Description: Fast, light and extensible chat client - PHP plugin
- WeeChat (Wee Enhanced Environment for Chat) is a fast and light chat client
- for many operating systems. Everything can be done with a keyboard.
- .
- This package provides the PHP scripting API plugin.
-
Package: weechat-doc
Section: doc
Architecture: all
diff --git a/debian-stable/rules b/debian-stable/rules
index 16a5f9516..e42c2a6b2 100755
--- a/debian-stable/rules
+++ b/debian-stable/rules
@@ -12,6 +12,7 @@ $(BUILDDIR)/Makefile:
-DLIBDIR=/usr/lib/${DEB_HOST_MULTIARCH} \
-DENABLE_DOC:BOOL=ON \
-DENABLE_MAN:BOOL=ON \
+ -DENABLE_PHP:BOOL=OFF \
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
-DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="$(CFLAGS) -D_FORTIFY_SOURCE=2" \
-DCMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING="$(LDFLAGS)" \
diff --git a/debian-stable/weechat-php.dirs b/debian-stable/weechat-php.dirs
deleted file mode 100644
index 68457717b..000000000
--- a/debian-stable/weechat-php.dirs
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib
diff --git a/debian-stable/weechat-php.install b/debian-stable/weechat-php.install
deleted file mode 100644
index 0a1b73563..000000000
--- a/debian-stable/weechat-php.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/weechat/plugins/php.so
@@ -1,227 +0,0 @@
diff --git a/debian-devel/compat b/debian-devel/compat
index 48082f72f..ec635144f 100644
--- a/debian-devel/compat
+++ b/debian-devel/compat
@@ -1 +1 @@
-12
+9
diff --git a/debian-devel/control b/debian-devel/control
index bf94a36f1..8d4d60e9f 100644
--- a/debian-devel/control
+++ b/debian-devel/control
@@ -3,8 +3,7 @@ Section: net
Priority: optional
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
Build-Depends:
- asciidoctor (>= 1.5.4),
- debhelper (>= 12),
+ debhelper (>= 9),
cmake, pkg-config,
libncursesw5-dev,
gem2deb,
@@ -12,13 +11,11 @@ Build-Depends:
python3-dev,
libaspell-dev,
liblua5.3-dev,
- tcl8.6-dev,
- guile-2.2-dev,
- php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
- libxml2-dev,
+ tcl8.5-dev,
+ guile-2.0-dev,
libcurl4-gnutls-dev,
- libgcrypt20-dev,
- libgnutls28-dev,
+ libgcrypt11-dev,
+ libgnutls-dev,
zlib1g-dev
Standards-Version: 4.6.0.1
Homepage: https://weechat.org/
@@ -46,7 +43,7 @@ Description: Fast, light and extensible chat client (metapackage)
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -76,7 +73,7 @@ Description: Fast, light and extensible chat client - console client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -107,7 +104,7 @@ Description: Fast, light and extensible chat client - headless client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -232,20 +229,6 @@ Description: Fast, light and extensible chat client - Guile plugin
.
This package provides the Guile scripting API plugin.
-Package: weechat-devel-php
-Architecture: any
-Depends:
- ${misc:Depends},
- ${shlibs:Depends},
- weechat-devel-curses (= ${binary:Version}) | weechat-devel-headless (= ${binary:Version}),
- libphp-embed
-Conflicts: weechat-php
-Description: Fast, light and extensible chat client - PHP plugin
- WeeChat (Wee Enhanced Environment for Chat) is a fast and light chat client
- for many operating systems. Everything can be done with a keyboard.
- .
- This package provides the PHP scripting API plugin.
-
Package: weechat-devel-doc
Section: doc
Architecture: all
diff --git a/debian-devel/rules b/debian-devel/rules
index 16a5f9516..3edb65fa5 100755
--- a/debian-devel/rules
+++ b/debian-devel/rules
@@ -1,7 +1,5 @@
#!/usr/bin/make -f
-export DEB_BUILD_MAINT_OPTIONS=hardening=+all
-
BUILDDIR = builddir
$(BUILDDIR)/Makefile:
diff --git a/debian-devel/weechat-devel-php.dirs b/debian-devel/weechat-devel-php.dirs
deleted file mode 120000
index e4853a588..000000000
--- a/debian-devel/weechat-devel-php.dirs
+++ /dev/null
@@ -1 +0,0 @@
-../debian-stable/weechat-php.dirs
\ No newline at end of file
diff --git a/debian-devel/weechat-devel-php.install b/debian-devel/weechat-devel-php.install
deleted file mode 120000
index e358b515a..000000000
--- a/debian-devel/weechat-devel-php.install
+++ /dev/null
@@ -1 +0,0 @@
-../debian-stable/weechat-php.install
\ No newline at end of file
diff --git a/debian-stable/compat b/debian-stable/compat
index 48082f72f..ec635144f 100644
--- a/debian-stable/compat
+++ b/debian-stable/compat
@@ -1 +1 @@
-12
+9
diff --git a/debian-stable/control b/debian-stable/control
index ccf81cac8..ee2e092eb 100644
--- a/debian-stable/control
+++ b/debian-stable/control
@@ -3,8 +3,7 @@ Section: net
Priority: optional
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
Build-Depends:
- asciidoctor (>= 1.5.4),
- debhelper (>= 12),
+ debhelper (>= 9),
cmake, pkg-config,
libncursesw5-dev,
gem2deb,
@@ -12,13 +11,11 @@ Build-Depends:
python3-dev,
libaspell-dev,
liblua5.3-dev,
- tcl8.6-dev,
- guile-2.2-dev,
- php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
- libxml2-dev,
+ tcl8.5-dev,
+ guile-2.0-dev,
libcurl4-gnutls-dev,
- libgcrypt20-dev,
- libgnutls28-dev,
+ libgcrypt11-dev,
+ libgnutls-dev,
zlib1g-dev
Standards-Version: 4.6.0.1
Homepage: https://weechat.org/
@@ -45,7 +42,7 @@ Description: Fast, light and extensible chat client (metapackage)
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -74,7 +71,7 @@ Description: Fast, light and extensible chat client - console client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -104,7 +101,7 @@ Description: Fast, light and extensible chat client - headless client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -221,19 +218,6 @@ Description: Fast, light and extensible chat client - Guile plugin
.
This package provides the Guile scripting API plugin.
-Package: weechat-php
-Architecture: any
-Depends:
- ${misc:Depends},
- ${shlibs:Depends},
- weechat-curses (= ${binary:Version}) | weechat-headless (= ${binary:Version}),
- libphp-embed
-Description: Fast, light and extensible chat client - PHP plugin
- WeeChat (Wee Enhanced Environment for Chat) is a fast and light chat client
- for many operating systems. Everything can be done with a keyboard.
- .
- This package provides the PHP scripting API plugin.
-
Package: weechat-doc
Section: doc
Architecture: all
diff --git a/debian-stable/rules b/debian-stable/rules
index 16a5f9516..3edb65fa5 100755
--- a/debian-stable/rules
+++ b/debian-stable/rules
@@ -1,7 +1,5 @@
#!/usr/bin/make -f
-export DEB_BUILD_MAINT_OPTIONS=hardening=+all
-
BUILDDIR = builddir
$(BUILDDIR)/Makefile:
diff --git a/debian-stable/weechat-php.dirs b/debian-stable/weechat-php.dirs
deleted file mode 100644
index 68457717b..000000000
--- a/debian-stable/weechat-php.dirs
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib
diff --git a/debian-stable/weechat-php.install b/debian-stable/weechat-php.install
deleted file mode 100644
index 0a1b73563..000000000
--- a/debian-stable/weechat-php.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/weechat/plugins/php.so
@@ -1 +0,0 @@
weechat_debian_stretch.patch
@@ -1 +0,0 @@
weechat_ubuntu_disco.patch
@@ -0,0 +1,40 @@
diff --git a/debian-devel/compat b/debian-devel/compat
index 48082f72f..b4de39476 100644
--- a/debian-devel/compat
+++ b/debian-devel/compat
@@ -1 +1 @@
-12
+11
diff --git a/debian-devel/control b/debian-devel/control
index a6cc3c91c..d078d35b7 100644
--- a/debian-devel/control
+++ b/debian-devel/control
@@ -4,7 +4,7 @@ Priority: optional
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
Build-Depends:
asciidoctor (>= 1.5.4),
- debhelper (>= 12),
+ debhelper (>= 11),
cmake, pkg-config,
libncursesw5-dev,
gem2deb,
diff --git a/debian-stable/compat b/debian-stable/compat
index 48082f72f..b4de39476 100644
--- a/debian-stable/compat
+++ b/debian-stable/compat
@@ -1 +1 @@
-12
+11
diff --git a/debian-stable/control b/debian-stable/control
index 1b0a27009..7880ce7bd 100644
--- a/debian-stable/control
+++ b/debian-stable/control
@@ -4,7 +4,7 @@ Priority: optional
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
Build-Depends:
asciidoctor (>= 1.5.4),
- debhelper (>= 12),
+ debhelper (>= 11),
cmake, pkg-config,
libncursesw5-dev,
gem2deb,
@@ -1 +0,0 @@
weechat_ubuntu_disco.patch
@@ -1,40 +0,0 @@
diff --git a/debian-devel/compat b/debian-devel/compat
index 48082f72f..b4de39476 100644
--- a/debian-devel/compat
+++ b/debian-devel/compat
@@ -1 +1 @@
-12
+11
diff --git a/debian-devel/control b/debian-devel/control
index a6cc3c91c..d078d35b7 100644
--- a/debian-devel/control
+++ b/debian-devel/control
@@ -4,7 +4,7 @@ Priority: optional
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
Build-Depends:
asciidoctor (>= 1.5.4),
- debhelper (>= 12),
+ debhelper (>= 11),
cmake, pkg-config,
libncursesw5-dev,
gem2deb,
diff --git a/debian-stable/compat b/debian-stable/compat
index 48082f72f..b4de39476 100644
--- a/debian-stable/compat
+++ b/debian-stable/compat
@@ -1 +1 @@
-12
+11
diff --git a/debian-stable/control b/debian-stable/control
index 1b0a27009..7880ce7bd 100644
--- a/debian-stable/control
+++ b/debian-stable/control
@@ -4,7 +4,7 @@ Priority: optional
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
Build-Depends:
asciidoctor (>= 1.5.4),
- debhelper (>= 12),
+ debhelper (>= 11),
cmake, pkg-config,
libncursesw5-dev,
gem2deb,
@@ -1,199 +0,0 @@
diff --git a/debian-devel/compat b/debian-devel/compat
index 48082f72f..ec635144f 100644
--- a/debian-devel/compat
+++ b/debian-devel/compat
@@ -1 +1 @@
-12
+9
diff --git a/debian-devel/control b/debian-devel/control
index bf94a36f1..566d71f09 100644
--- a/debian-devel/control
+++ b/debian-devel/control
@@ -3,8 +3,7 @@ Section: net
Priority: optional
Maintainer: Sébastien Helleu <flashcode@flashtux.org>
Build-Depends:
- asciidoctor (>= 1.5.4),
- debhelper (>= 12),
+ debhelper (>= 9),
cmake, pkg-config,
libncursesw5-dev,
gem2deb,
@@ -13,12 +12,10 @@ Build-Depends:
libaspell-dev,
liblua5.3-dev,
tcl8.6-dev,
- guile-2.2-dev,
- php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
- libxml2-dev,
+ guile-2.0-dev,
libcurl4-gnutls-dev,
- libgcrypt20-dev,
- libgnutls28-dev,
+ libgcrypt11-dev,
+ libgnutls-dev,
zlib1g-dev
Standards-Version: 4.6.0.1
Homepage: https://weechat.org/
@@ -46,7 +43,7 @@ Description: Fast, light and extensible chat client (metapackage)
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -76,7 +73,7 @@ Description: Fast, light and extensible chat client - console client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -107,7 +104,7 @@ Description: Fast, light and extensible chat client - headless client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -232,20 +229,6 @@ Description: Fast, light and extensible chat client - Guile plugin
.
This package provides the Guile scripting API plugin.
-Package: weechat-devel-php
-Architecture: any
-Depends:
- ${misc:Depends},
- ${shlibs:Depends},
- weechat-devel-curses (= ${binary:Version}) | weechat-devel-headless (= ${binary:Version}),
- libphp-embed
-Conflicts: weechat-php
-Description: Fast, light and extensible chat client - PHP plugin
- WeeChat (Wee Enhanced Environment for Chat) is a fast and light chat client
- for many operating systems. Everything can be done with a keyboard.
- .
- This package provides the PHP scripting API plugin.
-
Package: weechat-devel-doc
Section: doc
Architecture: all
diff --git a/debian-devel/weechat-devel-php.dirs b/debian-devel/weechat-devel-php.dirs
deleted file mode 120000
index e4853a588..000000000
--- a/debian-devel/weechat-devel-php.dirs
+++ /dev/null
@@ -1 +0,0 @@
-../debian-stable/weechat-php.dirs
\ No newline at end of file
diff --git a/debian-devel/weechat-devel-php.install b/debian-devel/weechat-devel-php.install
deleted file mode 120000
index e358b515a..000000000
--- a/debian-devel/weechat-devel-php.install
+++ /dev/null
@@ -1 +0,0 @@
-../debian-stable/weechat-php.install
\ No newline at end of file
diff --git a/debian-stable/compat b/debian-stable/compat
index 48082f72f..ec635144f 100644
--- a/debian-stable/compat
+++ b/debian-stable/compat
@@ -1 +1 @@
-12
+9
diff --git a/debian-stable/control b/debian-stable/control
index ccf81cac8..b11b9b64e 100644
--- a/debian-stable/control
+++ b/debian-stable/control
@@ -3,8 +3,7 @@ Section: net
Priority: optional
Maintainer: Emmanuel Bouthenot <kolter@debian.org>
Build-Depends:
- asciidoctor (>= 1.5.4),
- debhelper (>= 12),
+ debhelper (>= 9),
cmake, pkg-config,
libncursesw5-dev,
gem2deb,
@@ -13,12 +12,10 @@ Build-Depends:
libaspell-dev,
liblua5.3-dev,
tcl8.6-dev,
- guile-2.2-dev,
- php-dev, libphp-embed, libargon2-0-dev, libsodium-dev,
- libxml2-dev,
+ guile-2.0-dev,
libcurl4-gnutls-dev,
- libgcrypt20-dev,
- libgnutls28-dev,
+ libgcrypt11-dev,
+ libgnutls-dev,
zlib1g-dev
Standards-Version: 4.6.0.1
Homepage: https://weechat.org/
@@ -45,7 +42,7 @@ Description: Fast, light and extensible chat client (metapackage)
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -74,7 +71,7 @@ Description: Fast, light and extensible chat client - console client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -104,7 +101,7 @@ Description: Fast, light and extensible chat client - headless client
- 256 colors support
- incremental text search
- dynamic filtering of buffer content
- - Perl, Python, Ruby, Lua, Tcl, Scheme and PHP scripting
+ - Perl, Python, Ruby, Lua, Tcl and Scheme scripting
- script manager
- spell checking
- highly customizable and extensible
@@ -221,19 +218,6 @@ Description: Fast, light and extensible chat client - Guile plugin
.
This package provides the Guile scripting API plugin.
-Package: weechat-php
-Architecture: any
-Depends:
- ${misc:Depends},
- ${shlibs:Depends},
- weechat-curses (= ${binary:Version}) | weechat-headless (= ${binary:Version}),
- libphp-embed
-Description: Fast, light and extensible chat client - PHP plugin
- WeeChat (Wee Enhanced Environment for Chat) is a fast and light chat client
- for many operating systems. Everything can be done with a keyboard.
- .
- This package provides the PHP scripting API plugin.
-
Package: weechat-doc
Section: doc
Architecture: all
diff --git a/debian-stable/weechat-php.dirs b/debian-stable/weechat-php.dirs
deleted file mode 100644
index 68457717b..000000000
--- a/debian-stable/weechat-php.dirs
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib
diff --git a/debian-stable/weechat-php.install b/debian-stable/weechat-php.install
deleted file mode 100644
index 0a1b73563..000000000
--- a/debian-stable/weechat-php.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/weechat/plugins/php.so
+2 -1
View File
@@ -53,7 +53,8 @@ SRC_URI="https://weechat.org/files/src/weechat-${VERSION}.tar.bz2"
# Build dependencies only
DEPEND="cmake gettext gettext-devel libgnutls-devel libaspell-devel \
libcurl-devel libgcrypt-devel libncurses-devel lua perl pkg-config \
python3-devel ruby tcl-devel libguile2.2-devel php-devel zlib-devel"
python3-devel ruby tcl-devel libguile2.2-devel php-devel libzstd-devel \
zlib-devel"
#
# CMake compilation of WeeChat: