Browse Source

Merge pull request #7883 from neheb/qirc

quassel-irc: Update to latest version
lilik-openwrt-22.03
Hannu Nyman 6 years ago
committed by GitHub
parent
commit
0f6c49d30f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 132 additions and 136 deletions
  1. +11
    -15
      net/quassel-irssi/Makefile
  2. +1
    -1
      net/quassel-irssi/patches/001-respect-cflags.patch
  3. +1
    -1
      net/quassel-irssi/patches/002-use-cc-var.patch
  4. +1
    -1
      net/quassel-irssi/patches/003-use-pkgconfig-ldflags-quasselc.patch
  5. +118
    -0
      net/quassel-irssi/patches/010-Get-compatible-with-potential-irssi-abi-8-and-drop-p.patch
  6. +0
    -26
      net/quassel-irssi/patches/010-Use-sys-socket.h-rather-than-asm-socket.h.patch
  7. +0
    -28
      net/quassel-irssi/patches/020-Fix-nullpointer-dereference-when-leaving-an-unconnec.patch
  8. +0
    -64
      net/quassel-irssi/patches/030-Makes-gcc7-happy.patch

+ 11
- 15
net/quassel-irssi/Makefile View File

@ -8,22 +8,18 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=quassel-irssi
PKG_SOURCE_DATE:=2017-11-30
PKG_SOURCE_VERSION:=079be662dde374a383646256108a4974c2bc7796
PKG_RELEASE:=1
# quassel-irssi upstream doesn't release versions (at least, at the moment),
# so use commit date for PKG_VERSION and embed commit hash into PKG_RELEASE.
PKG_VERSION:=2017-01-17
PKG_SOURCE_VERSION:=19e810405789a35b92026b56ea49d01a3f544b07
PKG_RELEASE:=1.$(PKG_SOURCE_VERSION)
PKG_LICENSE:=GPL-3.0+
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/phhusson/quassel-irssi
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
PKG_MIRROR_HASH:=5ad9416ce4d522dc3bb1b487063339f559928dcefa8aef4ce88ab93d5f4d5352
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/phhusson/quassel-irssi/tar.gz/$(PKG_SOURCE_VERSION)?
PKG_HASH:=c276a92a47f8edf5ae1d9db0e72a69d078f2f3f80e055853fc6d06099d898966
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
PKG_MAINTAINER:=Ben Rosser <rosser.bjr@gmail.com>
PKG_LICENSE:=GPL-3.0+
PKG_LICENSE_FILES:=core/COPYING
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
@ -31,12 +27,12 @@ PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
MAKE_PATH := core
MAKE_VARS += IRSSI_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" IRSSI_INCLUDE=$(STAGING_DIR)/usr/include/irssi
MAKE_VARS += SYSTEM_QUASSELC=1 IRSSI_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" IRSSI_INCLUDE=$(STAGING_DIR)/usr/include/irssi
define Package/quassel-irssi
SECTION:=net
CATEGORY:=Network
DEPENDS:=+irssi
DEPENDS:=+irssi +quasselc
SUBMENU:=Instant Messaging
URL:=https://github.com/phhusson/quassel-irssi
TITLE:=An irssi plugin to connect to quassel core


+ 1
- 1
net/quassel-irssi/patches/001-respect-cflags.patch View File

@ -9,7 +9,7 @@
IRSSI_LIB?=$(DESTDIR)/$(LIBDIR)/irssi
IRSSI_CFLAGS+=-I$(IRSSI_INCLUDE)/src/
IRSSI_CFLAGS+=-I$(IRSSI_INCLUDE)/src/core/
@@ -27,7 +27,7 @@ else
@@ -28,7 +28,7 @@ else
LDFLAGS += -lquasselc
endif


+ 1
- 1
net/quassel-irssi/patches/002-use-cc-var.patch View File

@ -1,6 +1,6 @@
--- a/core/Makefile
+++ b/core/Makefile
@@ -48,7 +48,7 @@ irssi/network-openssl.o: CFLAGS:=$(IRSSI_CFLAGS)
@@ -49,7 +49,7 @@ irssi/network-openssl.o: CFLAGS:=$(IRSSI_CFLAGS)
quasselc-connector.o: CFLAGS:=$(CFLAGS)
$(TARGET): $(OBJECTS)


+ 1
- 1
net/quassel-irssi/patches/003-use-pkgconfig-ldflags-quasselc.patch View File

@ -1,6 +1,6 @@
--- a/core/Makefile
+++ b/core/Makefile
@@ -24,7 +24,7 @@ ifndef SYSTEM_QUASSELC
@@ -25,7 +25,7 @@ ifndef SYSTEM_QUASSELC
QUASSELC_FLAGS:=-Ilib
else
QUASSELC_FLAGS:=$(shell pkg-config --cflags quasselc)


+ 118
- 0
net/quassel-irssi/patches/010-Get-compatible-with-potential-irssi-abi-8-and-drop-p.patch View File

@ -0,0 +1,118 @@
From 19e810405789a35b92026b56ea49d01a3f544b07 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 17 Jan 2017 23:09:24 +0100
Subject: [PATCH] Get compatible with potential irssi abi 8, and drop polling
---
core/Makefile | 1 -
core/quassel-net.c | 64 ++++++++++++++++++++++++++++++++++++++--------
2 files changed, 53 insertions(+), 10 deletions(-)
diff --git a/core/Makefile b/core/Makefile
index c1c65fc..987bd7b 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -16,7 +16,6 @@ SSL_CFLAGS=$(shell pkg-config --cflags openssl)
SSL_LDLAGS=$(shell pkg-config --libs openssl)
OBJECTS:=quasselc-connector.o quassel-core.o
OBJECTS+=quassel-net.o quassel-msgs.o quassel-cmds.o
-OBJECTS+=irssi/network-openssl.o
OBJECTS+=quassel-fe-window.o quassel-fe-level.o quassel-cfg.o
LDFLAGS ?=
diff --git a/core/quassel-net.c b/core/quassel-net.c
index 8a6eb55..5db7fe0 100644
--- a/core/quassel-net.c
+++ b/core/quassel-net.c
@@ -132,10 +132,10 @@ static SERVER_REC* quassel_server_init_connect(SERVER_CONNECT_REC* conn) {
ret->got = 0;
server_connect_ref(SERVER_CONNECT(conn));
- if(conn->use_ssl) {
+ if(conn->use_tls) {
ret->ssl = 1;
}
- ret->connrec->use_ssl = 0;
+ ret->connrec->use_tls = 0;
ret->channels_join = quassel_irssi_channels_join;
ret->send_message = quassel_irssi_send_message;
@@ -161,12 +161,59 @@ void quassel_net_init(CHAT_PROTOCOL_REC* rec) {
signal_add_first("server connected", (SIGNAL_FUNC) sig_connected);
}
-GIOChannel *irssi_ssl_get_iochannel(GIOChannel *handle, int port, SERVER_REC *server);
+static void quassel_net_final_setup(SERVER_REC* server, GIOChannel *handle) {
+ quassel_login(handle, server->connrec->nick, server->connrec->password);
+ server->handle->handle = handle;
+
+ server->readtag =
+ g_input_add(handle,
+ G_INPUT_READ,
+ (GInputFunction) quassel_parse_incoming, server);
+}
+
+static void quassel_net_ssl_callback(SERVER_REC *server, GIOChannel *handle) {
+ int error;
+
+ g_return_if_fail(IS_SERVER(server));
+
+ error = irssi_ssl_handshake(handle);
+ if (error == -1) {
+ server->connection_lost = TRUE;
+ server_connect_failed(server, NULL);
+ return;
+ }
+ if (error & 1) {
+ if (server->connect_tag != -1)
+ g_source_remove(server->connect_tag);
+ server->connect_tag = g_input_add(handle, error == 1 ? G_INPUT_READ : G_INPUT_WRITE,
+ (GInputFunction)
+ quassel_net_ssl_callback,
+ server);
+ return;
+ }
+
+ if (server->connect_tag != -1) {
+ g_source_remove(server->connect_tag);
+ server->connect_tag = -1;
+ }
+
+ quassel_net_final_setup(server, handle);
+}
+
void quassel_irssi_init_ack(void *arg) {
Quassel_SERVER_REC *server = (Quassel_SERVER_REC*)arg;
- if(!server->ssl)
- goto login;
- GIOChannel* ssl_handle = irssi_ssl_get_iochannel(server->handle->handle, 1337, SERVER(server));
+ GIOChannel* ssl_handle = net_start_ssl((SERVER_REC*)server);
+
+ if(server->readtag != -1) {
+ g_source_remove(server->readtag);
+ server->readtag = -1;
+ }
+
+ if(!server->ssl) {
+ quassel_net_final_setup((SERVER_REC*)server, server->handle->handle);
+ return;
+ }
+
int error;
//That's polling, and that's really bad...
while( (error=irssi_ssl_handshake(ssl_handle)) & 1) {
@@ -175,10 +222,7 @@ void quassel_irssi_init_ack(void *arg) {
return;
}
}
- server->handle->handle = ssl_handle;
-
-login:
- quassel_login(server->handle->handle, server->connrec->nick, server->connrec->password);
+ quassel_net_ssl_callback((SERVER_REC*)server, ssl_handle);
}
void quassel_irssi_init_nack(void *arg) {
--
2.17.1

+ 0
- 26
net/quassel-irssi/patches/010-Use-sys-socket.h-rather-than-asm-socket.h.patch View File

@ -1,26 +0,0 @@
From 7d4caa6a60af0e584dc5c3dc44437117744f6f84 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= <jelmer@jelmer.uk>
Date: Sat, 14 Jan 2017 20:55:00 +0000
Subject: [PATCH] Use sys/socket.h rather than asm/socket.h.
The latter is not available on some platforms.
---
core/quasselc-connector.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/quasselc-connector.c b/core/quasselc-connector.c
index 08a3718..77e8d7a 100644
--- a/core/quasselc-connector.c
+++ b/core/quasselc-connector.c
@@ -16,7 +16,7 @@
*/
#define _GNU_SOURCE
-#include <asm/socket.h>
+#include <sys/socket.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
--
2.19.1

+ 0
- 28
net/quassel-irssi/patches/020-Fix-nullpointer-dereference-when-leaving-an-unconnec.patch View File

@ -1,28 +0,0 @@
From 525ff7ec3bafe9ccbf5802559e2664a25cf925e1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bastian=20M=C3=BCller?= <db1bm@gmx.de>
Date: Sat, 12 Aug 2017 10:24:49 +0200
Subject: [PATCH] Fix nullpointer dereference when leaving an unconnected
window
---
core/quassel-fe-level.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/core/quassel-fe-level.c b/core/quassel-fe-level.c
index 3d69202..3382ddc 100644
--- a/core/quassel-fe-level.c
+++ b/core/quassel-fe-level.c
@@ -62,6 +62,10 @@ static void sig_created(WINDOW_REC *winrec, int automatic) {
return;
}
+ if (!winrec->active_server) {
+ return;
+ }
+
CHANNEL_REC *_chanrec = channel_find(winrec->active_server, winrec->active->visible_name);
if(_chanrec->chat_type != Quassel_PROTOCOL)
return;
--
2.19.1

+ 0
- 64
net/quassel-irssi/patches/030-Makes-gcc7-happy.patch View File

@ -1,64 +0,0 @@
From ab0dc71822b3e769b4be2a990bc6c87347016cfd Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@archos.com>
Date: Tue, 12 Sep 2017 17:42:46 +0200
Subject: [PATCH] Makes gcc7 happy
---
core/quasselc-connector.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/core/quasselc-connector.c b/core/quasselc-connector.c
index 77e8d7a..d28fa5e 100644
--- a/core/quasselc-connector.c
+++ b/core/quasselc-connector.c
@@ -145,6 +145,7 @@ void handle_sync(void* irssi_arg, object_t o, function_t f, ...) {
highlight=0;
if(!fnc)
fnc="MarkBufferAsRead";
+ /* Falls through */
case Displayed:
if(!fnc)
fnc="BufferDisplayed";
@@ -155,6 +156,7 @@ void handle_sync(void* irssi_arg, object_t o, function_t f, ...) {
case Removed:
if(!fnc)
fnc="BufferRemoved";
+ /* Falls through */
case TempRemoved:
if(!fnc)
fnc="BufferTempRemoved";
@@ -210,6 +212,7 @@ void handle_sync(void* irssi_arg, object_t o, function_t f, ...) {
case AddUserMode:
if(!fnc)
fnc="AddUserMode";
+ /* Falls through */
case RemoveUserMode:
if(!fnc)
fnc="RemoveUserMode";
@@ -223,6 +226,7 @@ void handle_sync(void* irssi_arg, object_t o, function_t f, ...) {
case SetNick2:
if(!fnc)
fnc="SetNick";
+ /* Falls through */
case Quit:
if(!fnc)
fnc="Quit";
@@ -233,12 +237,15 @@ void handle_sync(void* irssi_arg, object_t o, function_t f, ...) {
case SetNick:
if(!fnc)
fnc="SetNick";
+ /* Falls through */
case SetServer:
if(!fnc)
fnc="SetServer";
+ /* Falls through */
case SetRealName:
if(!fnc)
fnc="SetRealName";
+ /* Falls through */
case PartChannel:
if(!fnc)
fnc="PartChannel";
--
2.19.1

Loading…
Cancel
Save