diff --git a/irc/irssi/Makefile b/irc/irssi/Makefile index d0af5072a4de..fd851551ca6e 100644 --- a/irc/irssi/Makefile +++ b/irc/irssi/Makefile @@ -1,65 +1,56 @@ PORTNAME= irssi -PORTVERSION= 1.2.3 +DISTVERSION= 1.4.1 PORTEPOCH= 2 CATEGORIES?= irc -MASTER_SITES= https://github.com/irssi/irssi/releases/download/${PORTVERSION}/ +MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/${DISTVERSION}/ + +PATCH_SITES= https://github.com/ailin-nemui/${PORTNAME}/commit/ +PATCHFILES= 3404d822c83546b031d47a99e37ae65b887bec94.patch:-p1 \ + c6a7f02042f63d01a38e8d522cff8f5d951afd51.patch:-p1 \ + 730c3c1a12f782b92d710883f52a106e37f148e4.patch:-p1 \ + 1b6b92ffff6950ee28c1b7936f53d83988843ed4.patch:-p1 MAINTAINER= dor.bsd@xm0.uk COMMENT= Modular IRC client with many features LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING -# Until upstream makes a new release disable cpe -USES= autoreconf cpe gettext-runtime gmake gnome libtool localbase \ - ncurses pkgconfig tar:xz +USES= compiler:c11 cpe gettext-runtime gnome meson localbase:ldflags \ + ncurses perl5 pkgconfig ssl tar:xz USE_GNOME= glib20 +USE_LDCONFIG= yes -GNU_CONFIGURE= yes -INSTALL_TARGET= install-strip +MESON_ARGS= -Dinstall-glib=no -Ddisable-gregex=no -Dstatic-dependency=no \ + -Dwith-fuzzer=no -Dwithout-textui=no -OPTIONS_DEFINE= BOT CAPSICUM DOCS OTR PERL PROXY SOCKS TRUECOLOR \ - UTF8PROC -OPTIONS_DEFAULT= BOT CAPSICUM PERL PROXY SOCKS TRUECOLOR +OPTIONS_DEFINE= BOT CAPSICUM DOCS OTR PERL PROXY TRUECOLOR UTF8PROC +OPTIONS_DEFAULT= BOT CAPSICUM PERL PROXY TRUECOLOR OPTIONS_SUB= yes -BOT_DESC= Bot support -BOT_CONFIGURE_WITH= bot -CAPSICUM_DESC= Capsicum support -CAPSICUM_CONFIGURE_WITH= capsicum -OTR_DESC= OTR (off-the-record) support -OTR_CONFIGURE_ON= --with-libotr-inc-prefix=${PREFIX}/include -OTR_CONFIGURE_OFF= --with-otr=no -OTR_CONFIGURE_WITH= otr -OTR_LIB_DEPENDS= libgcrypt.so:security/libgcrypt \ - libgpg-error.so:security/libgpg-error \ - libotr.so:security/libotr -PERL_USES= perl5 -PERL_CONFIGURE_ON= --with-perl-lib=site -PERL_CONFIGURE_OFF= --with-perl=no -PROXY_CONFIGURE_WITH= proxy -SOCKS_CONFIGURE_WITH= socks -TRUECOLOR_DESC= True color support -TRUECOLOR_CONFIGURE_ENABLE= true-color -UTF8PROC_DESC= utf8proc support -UTF8PROC_LIB_DEPENDS= libutf8proc.so:textproc/utf8proc -UTF8PROC_CONFIGURE_ENABLE= utf8proc +BOT_DESC= Bot support +CAPSICUM_DESC= Capsicum support +OTR_DESC= OTR (off-the-record) support +TRUECOLOR_DESC= True color support +UTF8PROC_DESC= utf8proc support -.if defined(WITHOUT_SSL) -CONFIGURE_ARGS+= --disable-ssl -.else -USES+= ssl -.endif +BOT_MESON_YES= with-bot +CAPSICUM_MESON_YES= with-capsicum +OTR_LIB_DEPENDS= libgcrypt.so:security/libgcrypt \ + libotr.so:security/libotr +OTR_MESON_YES= with-otr +PERL_MESON_YES= with-perl +PROXY_MESON_YES= with-proxy +TRUECOLOR_MESON_YES= enable-true-color +UTF8PROC_LIB_DEPENDS= libutf8proc.so:textproc/utf8proc +UTF8PROC_MESON_NO= disable-utf8proc -post-install: - @${MKDIR} ${STAGEDIR}${PREFIX}/lib/irssi/modules - @${MV} ${STAGEDIR}${PREFIX}/etc/irssi.conf \ - ${STAGEDIR}${PREFIX}/etc/irssi.conf.sample +PERL_USE_OFF= perl5=build -post-install-PERL-on: - ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/Irssi/Irssi.so - ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/Irssi/Irc/Irc.so - ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/Irssi/TextUI/TextUI.so - ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/Irssi/UI/UI.so +post-install-PERL-off: + @${RM} -r ${STAGEDIR}${DATADIR}/scripts + +post-install: + ${INSTALL_DATA} ${WRKSRC}/irssi.conf ${STAGEDIR}${PREFIX}/etc/irssi.conf.sample .include diff --git a/irc/irssi/distinfo b/irc/irssi/distinfo index 969342bbe3e9..746a37fe436a 100644 --- a/irc/irssi/distinfo +++ b/irc/irssi/distinfo @@ -1,3 +1,11 @@ -TIMESTAMP = 1618317211 -SHA256 (irssi-1.2.3.tar.xz) = a647bfefed14d2221fa77b6edac594934dc672c4a560417b1abcbbc6b88d769f -SIZE (irssi-1.2.3.tar.xz) = 1145292 +TIMESTAMP = 1657237620 +SHA256 (irssi-1.4.1.tar.xz) = 6a7692741bba16f3ba6f97cf7246421ac57055dcedcca9a4d21663f8efe47501 +SIZE (irssi-1.4.1.tar.xz) = 1210772 +SHA256 (3404d822c83546b031d47a99e37ae65b887bec94.patch) = 685f5d758de2ea1477564bb185ef99a931d4ffaaecea3a814cfad45f8c8e5b1d +SIZE (3404d822c83546b031d47a99e37ae65b887bec94.patch) = 4113 +SHA256 (c6a7f02042f63d01a38e8d522cff8f5d951afd51.patch) = 99d529d2572af57839c00b5a866934df1cfb21e51fd1b8827ba4b2d344810c18 +SIZE (c6a7f02042f63d01a38e8d522cff8f5d951afd51.patch) = 814 +SHA256 (730c3c1a12f782b92d710883f52a106e37f148e4.patch) = cd06d9fc2404e71435779fcd44628cf195a00302d72733d19dc9a04222e28beb +SIZE (730c3c1a12f782b92d710883f52a106e37f148e4.patch) = 4124 +SHA256 (1b6b92ffff6950ee28c1b7936f53d83988843ed4.patch) = 5b9886215e1000dd66aef062e2df94de9eefdb729811405b3e6f7df7265dbf40 +SIZE (1b6b92ffff6950ee28c1b7936f53d83988843ed4.patch) = 988 diff --git a/irc/irssi/files/patch-Makefile.in b/irc/irssi/files/patch-Makefile.in deleted file mode 100644 index dce4daddc1ab..000000000000 --- a/irc/irssi/files/patch-Makefile.in +++ /dev/null @@ -1,22 +0,0 @@ ---- Makefile.in.orig 2019-02-11 17:35:31 UTC -+++ Makefile.in -@@ -421,7 +421,7 @@ BUILT_SOURCES = default-config.h default-theme.h irssi - CLEANFILES = default-config.h default-theme.h - SUBDIRS = src tests docs scripts themes utils - confdir = $(sysconfdir) --conf_DATA = irssi.conf -+conf_DATA = irssi.conf.sample - pkginclude_HEADERS = irssi-config.h irssi-version.h - EXTRA_DIST = \ - ChangeLog \ -@@ -980,8 +980,8 @@ uninstall-am: uninstall-confDATA uninstall-pkgincludeH - - @MAINTAINER_MODE_TRUE@.PHONY: irssi-version.h - --default-config.h: $(srcdir)/irssi.conf -- $(srcdir)/utils/file2header.sh $(srcdir)/irssi.conf default_config > default-config.h -+default-config.h: $(srcdir)/irssi.conf.sample -+ $(srcdir)/utils/file2header.sh $(srcdir)/irssi.conf.sample default_config > default-config.h - - default-theme.h: $(srcdir)/themes/default.theme - $(srcdir)/utils/file2header.sh $(srcdir)/themes/default.theme default_theme > default-theme.h diff --git a/irc/irssi/files/patch-configure.ac b/irc/irssi/files/patch-configure.ac deleted file mode 100644 index 933d33cad86f..000000000000 --- a/irc/irssi/files/patch-configure.ac +++ /dev/null @@ -1,15 +0,0 @@ ---- configure.ac.orig 2019-02-11 17:35:17 UTC -+++ configure.ac -@@ -322,7 +322,11 @@ PKG_CHECK_MODULES([OPENSSL], [openssl], [ - AC_CHECK_LIB([ssl], [SSL_library_init], [ - LIBS="$LIBS -lssl -lcrypto" - ], [ -- AC_MSG_ERROR([The OpenSSL library was not found]) -+ AC_CHECK_LIB([ssl], [OPENSSL_init_ssl], [ -+ LIBS="$LIBS -lssl -lcrypto" -+ ], [ -+ AC_MSG_ERROR([The OpenSSL library was not found]) -+ ]) - ]) - ]) - diff --git a/irc/irssi/files/patch-git-01-f17fb682573985656fa26bf10370b9e1d88e3bdf b/irc/irssi/files/patch-git-01-f17fb682573985656fa26bf10370b9e1d88e3bdf new file mode 100644 index 000000000000..8c25fafc1b89 --- /dev/null +++ b/irc/irssi/files/patch-git-01-f17fb682573985656fa26bf10370b9e1d88e3bdf @@ -0,0 +1,172 @@ +From f17fb682573985656fa26bf10370b9e1d88e3bdf Mon Sep 17 00:00:00 2001 +From: ailin-nemui +Date: Sat, 18 Jun 2022 12:42:47 +0200 +Subject: [PATCH] Merge pull request #1387 from ailin-nemui/textbufferview + +Textbufferview + +(cherry picked from commit 783dd375339c1c98be36e277d47afdd6918d6160) +--- + src/fe-text/textbuffer-commands.c | 1 + + src/fe-text/textbuffer-view.c | 54 +++++++++++++++++++------------ + 3 files changed, 37 insertions(+), 24 deletions(-) + +diff --git a/src/fe-text/textbuffer-commands.c b/src/fe-text/textbuffer-commands.c +index f30eab0e06..6ed7c39c51 100644 +--- src/fe-text/textbuffer-commands.c ++++ src/fe-text/textbuffer-commands.c +@@ -393,6 +393,7 @@ static void cmd_scrollback_redraw(void) + + term_refresh_freeze(); + textbuffer_view_reset_cache(gui->view); ++ textbuffer_view_resize(gui->view, gui->view->width, gui->view->height); + gui_window_redraw(active_win); + term_refresh_thaw(); + } +diff --git a/src/fe-text/textbuffer-view.c b/src/fe-text/textbuffer-view.c +index 79f3522c85..2cc6ce6dde 100644 +--- src/fe-text/textbuffer-view.c ++++ src/fe-text/textbuffer-view.c +@@ -402,10 +402,9 @@ view_update_line_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line) + + if (rec->count > 1) { + for (pos = 0; lines != NULL; pos++) { +- void *data = lines->data; ++ LINE_CACHE_SUB_REC *data = lines->data; + +- memcpy(&rec->lines[pos], data, +- sizeof(LINE_CACHE_SUB_REC)); ++ memcpy(&rec->lines[pos], data, sizeof(LINE_CACHE_SUB_REC)); + + lines = g_slist_remove(lines, data); + g_free(data); +@@ -427,7 +426,7 @@ static void view_remove_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line, + + cache = g_hash_table_lookup(view->cache->line_cache, line); + if (cache != NULL) { +- g_free(cache); ++ line_cache_destroy(NULL, cache); + g_hash_table_remove(view->cache->line_cache, line); + } + } +@@ -438,7 +437,7 @@ static void view_update_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line, + view_remove_cache(view, line, update_counter); + + if (view->buffer->cur_line == line) +- view->cache->last_linecount = view_get_linecount(view, line); ++ view_get_linecount(view, line); + } + + void textbuffer_view_reset_cache(TEXT_BUFFER_VIEW_REC *view) +@@ -467,6 +466,7 @@ static int view_line_draw(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line, + unichar chr; + int xpos, color, drawcount, first, need_move, need_clrtoeol, char_width; + unsigned int fg24, bg24; ++ fg24 = bg24 = UINT_MAX; + + if (view->dirty) /* don't bother drawing anything - redraw is coming */ + return 0; +@@ -767,7 +767,6 @@ static void view_unregister_indent_func(TEXT_BUFFER_VIEW_REC *view, + /* recreate cache so it won't contain references + to the indent function */ + textbuffer_view_reset_cache(view); +- view->cache = textbuffer_cache_get(view->siblings, view->width); + } + + void textbuffer_views_unregister_indent_func(INDENT_FUNC indent_func) +@@ -1033,13 +1032,17 @@ void textbuffer_view_clear(TEXT_BUFFER_VIEW_REC *view) + /* Scroll the view up/down */ + void textbuffer_view_scroll(TEXT_BUFFER_VIEW_REC *view, int lines) + { +- int count; ++ int count, ypos; + +- g_return_if_fail(view != NULL); ++ g_return_if_fail(view != NULL); ++ ++ count = view_scroll(view, &view->startline, &view->subline, lines, TRUE); ++ ++ ypos = view->ypos + (lines < 0 ? count : -count); ++ textbuffer_view_init_ypos(view); ++ if (ypos != view->ypos) ++ textbuffer_view_resize(view, view->width, view->height); + +- count = view_scroll(view, &view->startline, &view->subline, +- lines, TRUE); +- view->ypos += lines < 0 ? count : -count; + view->bottom = view_is_bottom(view); + if (view->bottom) view->more_text = FALSE; + +@@ -1079,10 +1082,10 @@ LINE_CACHE_REC *textbuffer_view_get_line_cache(TEXT_BUFFER_VIEW_REC *view, + cache = g_hash_table_lookup(view->cache->line_cache, line); + if (cache == NULL) + cache = view_update_line_cache(view, line); +- else ++ else + cache->last_access = time(NULL); + +- return cache; ++ return cache; + } + + static void view_insert_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line) +@@ -1263,12 +1266,13 @@ static void view_remove_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line, + view_bookmarks_check(view, line); + + if (view->buffer->cur_line == line) { +- /* the last line is being removed */ ++ /* the last line is being removed */ + LINE_REC *prevline; + +- prevline = view->buffer->first_line == line ? NULL : +- textbuffer_line_last(view->buffer)->prev; +- view->cache->last_linecount = prevline == NULL ? 0 : ++ prevline = view->buffer->first_line == line ? ++ NULL : ++ textbuffer_line_last(view->buffer)->prev; ++ if (prevline != NULL) + view_get_linecount(view, prevline); + } + +@@ -1474,8 +1478,10 @@ void textbuffer_view_set_window(TEXT_BUFFER_VIEW_REC *view, + + if (view->window != window) { + view->window = window; +- if (window != NULL) ++ if (window != NULL) { ++ textbuffer_view_resize(view, view->width, view->height); + view->dirty = TRUE; ++ } + } + } + +@@ -1504,12 +1510,18 @@ static int line_cache_check_remove(void *key, LINE_CACHE_REC *cache, + static int sig_check_linecache(void) + { + GSList *tmp, *caches; +- time_t now; ++ time_t now; + +- now = time(NULL); caches = NULL; ++ now = time(NULL); ++ caches = NULL; + for (tmp = views; tmp != NULL; tmp = tmp->next) { + TEXT_BUFFER_VIEW_REC *rec = tmp->data; + ++ if (rec->window != NULL) { ++ /* keep visible lines mapped */ ++ view_get_lines_height(rec, rec->startline, rec->subline, NULL); ++ } ++ + if (g_slist_find(caches, rec->cache) != NULL) + continue; + +@@ -1519,7 +1531,7 @@ static int sig_check_linecache(void) + &now); + } + +- g_slist_free(caches); ++ g_slist_free(caches); + return 1; + } + diff --git a/irc/irssi/files/patch-perl-Makefile b/irc/irssi/files/patch-perl-Makefile deleted file mode 100644 index 7979e1cd5451..000000000000 --- a/irc/irssi/files/patch-perl-Makefile +++ /dev/null @@ -1,22 +0,0 @@ ---- src/perl/Makefile.am.orig 2019-02-11 17:27:58 UTC -+++ src/perl/Makefile.am -@@ -145,7 +145,7 @@ all-local: - - install-exec-local: - for dir in $(perl_dirs); do \ -- cd $$dir && $(MAKE) install && cd ..; \ -+ cd $$dir && $(MAKE) pure_install && cd ..; \ - done - - clean-generic: ---- src/perl/Makefile.in.orig 2019-02-11 17:35:32 UTC -+++ src/perl/Makefile.in -@@ -898,7 +898,7 @@ all-local: - - install-exec-local: - for dir in $(perl_dirs); do \ -- cd $$dir && $(MAKE) install && cd ..; \ -+ cd $$dir && $(MAKE) pure_install && cd ..; \ - done - - clean-generic: diff --git a/irc/irssi/pkg-message b/irc/irssi/pkg-message new file mode 100644 index 000000000000..fad6ac1f7b57 --- /dev/null +++ b/irc/irssi/pkg-message @@ -0,0 +1,8 @@ +[ +{ type: install + message: <