From 1a7d79d981c401893bb9e85a37f78b0618ee8554 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sat, 5 Jan 2019 19:01:29 -0800 Subject: [PATCH] quassel-irc: Update to latest version Now that the library has been updated, we can also update this. Switched to codeload as we don't need the submodule anymore. Various other Makefile consistency updates. Signed-off-by: Rosen Penev --- net/quassel-irssi/Makefile | 23 ++-- .../patches/001-respect-cflags.patch | 8 +- .../patches/002-use-cc-var.patch | 4 +- .../003-use-pkgconfig-ldflags-quasselc.patch | 6 +- ...ith-potential-irssi-abi-8-and-drop-p.patch | 118 ++++++++++++++++++ 5 files changed, 134 insertions(+), 25 deletions(-) create mode 100644 net/quassel-irssi/patches/010-Get-compatible-with-potential-irssi-abi-8-and-drop-p.patch diff --git a/net/quassel-irssi/Makefile b/net/quassel-irssi/Makefile index 7fee57127..002f52ec1 100644 --- a/net/quassel-irssi/Makefile +++ b/net/quassel-irssi/Makefile @@ -8,23 +8,20 @@ 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:=2016-09-11 -PKG_SOURCE_VERSION:=cbd9bd7f4ac44260d9fcafb809fdf153cde193e5 -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.bz2 -PKG_MIRROR_HASH:=fd13b2497e3b0d0779e0ce3d8b27c37e207d2a73b5b6dc0cb2799bd4472fc5e1 +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 +PKG_LICENSE:=GPL-3.0+ +PKG_LICENSE_FILES:=core/COPYING +PKG_BUILD_PARALLEL:=1 PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk diff --git a/net/quassel-irssi/patches/001-respect-cflags.patch b/net/quassel-irssi/patches/001-respect-cflags.patch index b9459151b..aeaf6d41f 100644 --- a/net/quassel-irssi/patches/001-respect-cflags.patch +++ b/net/quassel-irssi/patches/001-respect-cflags.patch @@ -1,5 +1,3 @@ -diff --git a/core/Makefile b/core/Makefile -index 6133087..389855c 100644 --- a/core/Makefile +++ b/core/Makefile @@ -3,7 +3,7 @@ DESTDIR ?= @@ -11,12 +9,12 @@ index 6133087..389855c 100644 IRSSI_LIB?=$(DESTDIR)/$(LIBDIR)/irssi IRSSI_CFLAGS+=-I$(IRSSI_INCLUDE)/src/ IRSSI_CFLAGS+=-I$(IRSSI_INCLUDE)/src/core/ -@@ -26,7 +26,7 @@ else +@@ -28,7 +28,7 @@ else LDFLAGS += -lquasselc endif -CFLAGS=-std=gnu11 -Wall -Wextra -Werror -g -O2 $(IRSSI_CFLAGS) $(QUASSELC_FLAGS) -Wmissing-prototypes -Wmissing-declarations +CFLAGS+=-std=gnu11 -Wall -Wextra -Werror -g $(IRSSI_CFLAGS) $(QUASSELC_FLAGS) -Wmissing-prototypes -Wmissing-declarations - TARGET=libquassel_core.so - + CFLAGS += $(SSL_CFLAGS) + LDFLAGS+= $(SSL_LDLAGS) diff --git a/net/quassel-irssi/patches/002-use-cc-var.patch b/net/quassel-irssi/patches/002-use-cc-var.patch index 6acb43469..248bac4b5 100644 --- a/net/quassel-irssi/patches/002-use-cc-var.patch +++ b/net/quassel-irssi/patches/002-use-cc-var.patch @@ -1,8 +1,6 @@ -diff --git a/core/Makefile b/core/Makefile -index 389855c..2f81417 100644 --- a/core/Makefile +++ b/core/Makefile -@@ -44,7 +44,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) diff --git a/net/quassel-irssi/patches/003-use-pkgconfig-ldflags-quasselc.patch b/net/quassel-irssi/patches/003-use-pkgconfig-ldflags-quasselc.patch index 3aef01417..f33c046aa 100644 --- a/net/quassel-irssi/patches/003-use-pkgconfig-ldflags-quasselc.patch +++ b/net/quassel-irssi/patches/003-use-pkgconfig-ldflags-quasselc.patch @@ -1,8 +1,6 @@ -diff --git a/core/Makefile b/core/Makefile -index 2f81417..aa62201 100644 --- a/core/Makefile +++ b/core/Makefile -@@ -23,7 +23,7 @@ ifndef SYSTEM_QUASSELC +@@ -25,7 +25,7 @@ ifndef SYSTEM_QUASSELC QUASSELC_FLAGS:=-Ilib else QUASSELC_FLAGS:=$(shell pkg-config --cflags quasselc) @@ -10,4 +8,4 @@ index 2f81417..aa62201 100644 + LDFLAGS += $(shell pkg-config --libs quasselc) endif - CFLAGS+=-std=gnu11 -Wall -Wextra -Werror -g -O2 $(IRSSI_CFLAGS) $(QUASSELC_FLAGS) -Wmissing-prototypes -Wmissing-declarations + CFLAGS+=-std=gnu11 -Wall -Wextra -Werror -g $(IRSSI_CFLAGS) $(QUASSELC_FLAGS) -Wmissing-prototypes -Wmissing-declarations diff --git a/net/quassel-irssi/patches/010-Get-compatible-with-potential-irssi-abi-8-and-drop-p.patch b/net/quassel-irssi/patches/010-Get-compatible-with-potential-irssi-abi-8-and-drop-p.patch new file mode 100644 index 000000000..0e0727a0d --- /dev/null +++ b/net/quassel-irssi/patches/010-Get-compatible-with-potential-irssi-abi-8-and-drop-p.patch @@ -0,0 +1,118 @@ +From 19e810405789a35b92026b56ea49d01a3f544b07 Mon Sep 17 00:00:00 2001 +From: Pierre-Hugues Husson +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 +