--- irssi-0.8.15.orig/debian/NEWS.Debian +++ irssi-0.8.15/debian/NEWS.Debian @@ -0,0 +1,12 @@ +irssi (0.8.10~rc5-1) unstable; urgency=low + + * This package has the beginnings of GNUTLS support for SSL rather + than the upstream OpenSSL code. This may have many bugs in and is + not feature complete. In particular it does not support verification + of the server's certificate. As a result the connection is vunerable + to man in the middle attack. This is only a regression if you use + the -cafile or -capath options to /connect. The data is still + encrypted. + + -- David Pashley Sun, 17 Jul 2005 19:39:37 +0300 + --- irssi-0.8.15.orig/debian/README.source +++ irssi-0.8.15/debian/README.source @@ -0,0 +1,2 @@ +This package uses quilt for its patch management, see +/usr/share/doc/quilt/README.source if you are unfamiliar with it. --- irssi-0.8.15.orig/debian/botti.1 +++ irssi-0.8.15/debian/botti.1 @@ -0,0 +1,97 @@ +.\" This -*- nroff -*- file has been generated from +.\" DocBook SGML with docbook-to-man on Debian GNU/Linux. +...\" +...\" transcript compatibility for postscript use. +...\" +...\" synopsis: .P! +...\" +.de P! +\\&. +.fl \" force out current output buffer +\\!%PB +\\!/showpage{}def +...\" the following is from Ken Flowers -- it prevents dictionary overflows +\\!/tempdict 200 dict def tempdict begin +.fl \" prolog +.sy cat \\$1\" bring in postscript file +...\" the following line matches the tempdict above +\\!end % tempdict % +\\!PE +\\!. +.sp \\$2u \" move below the image +.. +.de pF +.ie \\*(f1 .ds f1 \\n(.f +.el .ie \\*(f2 .ds f2 \\n(.f +.el .ie \\*(f3 .ds f3 \\n(.f +.el .ie \\*(f4 .ds f4 \\n(.f +.el .tm ? font overflow +.ft \\$1 +.. +.de fP +.ie !\\*(f4 \{\ +. ft \\*(f4 +. ds f4\" +' br \} +.el .ie !\\*(f3 \{\ +. ft \\*(f3 +. ds f3\" +' br \} +.el .ie !\\*(f2 \{\ +. ft \\*(f2 +. ds f2\" +' br \} +.el .ie !\\*(f1 \{\ +. ft \\*(f1 +. ds f1\" +' br \} +.el .tm ? font underflow +.. +.ds f1\" +.ds f2\" +.ds f3\" +.ds f4\" +'\" t +.ta 8n 16n 24n 32n 40n 48n 56n 64n 72n +.TH "botti" "1" +.SH "NAME" +botti \(em Run an irssi module, such as a bot, without a UI +.SH "SYNOPSIS" +.PP +\fBbotti\fP [\fB\fIOPTIONS\fP\fP] +.SH "DESCRIPTION" +.PP +This manual page documents briefly the +\fBbotti\fP command. +.PP +Botti allows for you to run an irssi module without a UI. +This is most useful for bots, and by default botti will load the +"bot" module. +.PP +This manual page was written for the \fBDebian\fP distribution +because the original program does not have a manual page. +.SH "OPTIONS" +.IP "\fB--config\fP " 10 +Specify the configuration file location. By default, +it is ~/.irssi/config. +.IP "\fB--home\fP " 10 +Specify the irssi home directory location. By default, +it is ~/.irssi. +.IP "\fB-l\fP \fB--load\fP " 10 +Specify a module to load. By default, it is "bot". +.IP "\fB--session\fP " 10 +Option used by the /UPGRADE command. +.IP "\fB-?\fP \fB--help\fP " 10 +Print instructions. +.IP "\fB--usage\fP " 10 +Print simple usage instructions. +.SH "AUTHOR" +.PP +This manual page was written by David Nusinow \ for +the \fBDebian\fP system (but may be used by others). Permission is +granted to copy, distribute and/or modify this document under +the terms of the GNU Free Documentation +License, Version 1.1 or any later version published by the Free +Software Foundation; with no Invariant Sections, no Front-Cover +Texts and no Back-Cover Texts. +...\" created by instant / docbook-to-man, Thu 24 Apr 2003, 02:34 --- irssi-0.8.15.orig/debian/changelog +++ irssi-0.8.15/debian/changelog @@ -0,0 +1,606 @@ +irssi (0.8.15-5ubuntu3.6) trusty-security; urgency=medium + + * SECURITY UPDATE: Use after free + - debian/patches/CVE-2019-5882.patch: fix in + src/fe-text/textbuffer-view.c. + - CVE-2019-5882 + + -- Leonidas S. Barbosa Wed, 16 Jan 2019 09:01:10 -0300 + +irssi (0.8.15-5ubuntu3.5) trusty-security; urgency=medium + + * SECURITY UPDATE: Null pointer dereference + - debian/patches/CVE-2018-7050.patch: check if + nick is Null in src/fe-common/core/chat-completion.c. + - CVE-2018-7050 + * SECURITY UPDATE: Certain nick names result in out-of-bounds + access + - debian/patches/CVE-2018-7051.patch: don't read beyond end of + escaped string in src/fe-common/core/themes.c. + - CVE-2018-7051 + * SECURITY UPDATE: Null pointer dereference + - debian/patches/CVE-2018-7052.patch: check if window parent + is Null in src/fe-text/mainwindows.c. + - CVE-2018-7052 + + -- Leonidas S. Barbosa Wed, 28 Feb 2018 16:35:58 -0300 + +irssi (0.8.15-5ubuntu3.4) trusty-security; urgency=medium + + * SECURITY UPDATE: buffer overread via incomplete escape codes + - debian/patches/CVE-2018-5205.patch: check for complete char in + src/core/misc.c. + - CVE-2018-5205 + * SECURITY UPDATE: NULL dereference via setting channel topic without + specifying a sender + - debian/patches/CVE-2018-5206.patch: do not record topic change time + when sender is blank in src/irc/core/channel-events.c. + - CVE-2018-5206 + * SECURITY UPDATE: buffer overread via incomplete variable argument + - debian/patches/CVE-2018-5207.patch: disable variable arguments code + in src/core/special-vars.c. + - CVE-2018-5207 + * SECURITY UPDATE: heap overflow in completion code + - debian/patches/CVE-2018-5208.patch: check for direct match of + separator in src/fe-common/core/completion.c. + - CVE-2018-5208 + + -- Marc Deslauriers Mon, 08 Jan 2018 14:44:16 -0500 + +irssi (0.8.15-5ubuntu3.3) trusty-security; urgency=medium + + * SECURITY UPDATE: multiple security issues + - debian/patches/CVE-2017-1096x.patch: check return value of localtime + in src/core/misc.c, correct GHashTable usage in src/core/nicklist.c. + - CVE-2017-10965 + - CVE-2017-10966 + * SECURITY UPDATE: multiple security issues + - debian/patches/CVE-2017-15xxx.patch: address security issues in + src/fe-common/core/themes.c, src/irc/core/channel-events.c, + src/irc/core/channels-query.c, src/irc/dcc/dcc-chat.c, + src/irc/dcc/dcc-get.c, src/irc/dcc/dcc-send.c. + - CVE-2017-15227 + - CVE-2017-15228 + - CVE-2017-15721 + - CVE-2017-15722 + + -- Marc Deslauriers Wed, 25 Oct 2017 08:06:28 -0400 + +irssi (0.8.15-5ubuntu3.2) trusty-security; urgency=medium + + * SECURITY UPDATE: DoS via DCC message without source nick/host + - debian/patches/CVE-2017-9468.patch: check addr in + src/irc/dcc/dcc-get.c. + - CVE-2017-9468 + * SECURITY UPDATE: DoS via incorrectly quoted DCC files + - debian/patches/CVE-2017-9469.patch: Fix oob read of one byte in + src/irc/dcc/dcc-get.c, src/irc/dcc/dcc-resume.c. + - CVE-2017-9469 + + -- Marc Deslauriers Thu, 08 Jun 2017 15:19:31 -0400 + +irssi (0.8.15-5ubuntu3.1) trusty-security; urgency=medium + + * SECURITY UPDATE: local information disclosure via scrollbuffer dump + - debian/patches/CVE-2016-7553.patch: set proper permissions in + scripts/buf.pl. + - CVE-2016-7553 + * SECURITY UPDATE: multiple security issues + - debian/patches/CVE-2017-5xxx.patch: properly handle strings in + src/fe-common/core/formats.c, properly handle invalid nicks in + src/irc/core/irc-nicklist.c, make sure nick is valid in + src/irc/core/irc-queries.c. + - CVE-2017-5193 + - CVE-2017-5194 + - CVE-2017-5356 + + -- Marc Deslauriers Wed, 25 Jan 2017 13:10:32 -0500 + +irssi (0.8.15-5ubuntu3) trusty; urgency=low + + * Rebuild for Perl 5.18. + + -- Colin Watson Mon, 21 Oct 2013 13:39:24 +0100 + +irssi (0.8.15-5ubuntu2) saucy; urgency=low + + * Use dh_autotools-dev to update config.{sub,guess} for AArch64. + + -- Matthias Klose Wed, 09 Oct 2013 21:48:53 +0200 + +irssi (0.8.15-5ubuntu1) quantal; urgency=low + + * Merge from Debian unstable, remaining changes: + - debian/patches/03firsttimer_text: + + Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu instead of irc.debian.org and #debian. + - debian/patches/90irc-ubuntu-com + + -- Stéphane Graber Fri, 04 May 2012 15:44:37 -0400 + +irssi (0.8.15-5) unstable; urgency=low + + * Updated bind_utf8-fix patch from upstream bug tracker again + (closes: #637036) + * Bump Standards-Version to 3.9.3. + * Add recommended targets build-{arch,indep} to debian/rules. + + -- Gerfried Fuchs Tue, 24 Apr 2012 17:59:05 +0200 + +irssi (0.8.15-4ubuntu3) precise; urgency=low + + * Swap 18bind_utf8-fix from Debian's to the new one proposed upstream. + This fixes alt-backspace not working in irssi. + http://bugs.irssi.org/index.php?do=details&task_id=553 + (LP: #874144) + + -- Stéphane Graber Wed, 04 Apr 2012 10:04:46 -0400 + +irssi (0.8.15-4ubuntu2) precise; urgency=low + + * Rebuild for Perl 5.14. + + -- Colin Watson Tue, 15 Nov 2011 23:38:11 +0000 + +irssi (0.8.15-4ubuntu1) oneiric; urgency=low + + * Merge from Debian unstable (LP: #796148), remaining changes: + - debian/patches/03firsttimer_text: + + Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu instead of irc.debian.org and #debian. + - debian/patches/90irc-ubuntu-com + + -- أحمد المحمودي (Ahmed El-Mahmoudy) Sun, 12 Jun 2011 11:22:36 +0200 + +irssi (0.8.15-4) unstable; urgency=medium + + * Update bind_utf8-fix patch from upstream bug tracker to fix issue with now + broken alt- keybindings (closes: #625690, #627248) + + -- Gerfried Fuchs Fri, 10 Jun 2011 20:13:15 +0200 + +irssi (0.8.15-3ubuntu1) oneiric; urgency=low + + * Merge from Debian unstable (LP: #776615), remaining changes: + - debian/patches/03firsttimer_text: + + Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu instead of irc.debian.org and #debian. + - debian/patches/90irc-ubuntu-com + + -- أحمد المحمودي (Ahmed El-Mahmoudy) Tue, 03 May 2011 19:56:26 +0200 + +irssi (0.8.15-3) unstable; urgency=low + + * Add patch bind_utf8-fix extracted from upstream bug #553 to enable binding + utf8 characters. + * Bump Standards-Version to 3.9.2. + * Update to debhelper 7, use dh_prep instead of dh_clean -k. + * Pull disable_sslv2 patch from Ubuntu. + * Pull fix_ssl_proxy_hostname_check from Ubuntu (closes: #578304) + + -- Gerfried Fuchs Tue, 03 May 2011 11:47:58 +0200 + +irssi (0.8.15-2ubuntu1) natty; urgency=low + + * Merge from Debian unstable (LP: #691448), remaining changes: + - debian/patches/03firsttimer_text: + + Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu instead of irc.debian.org and #debian. + - debian/patches/90irc-ubuntu-com + - debian/patches/91_disable_sslv2.patch: do not use SSLv2 protocol. + This can be dropped in 0.8.16. + - debian/patches/91_ssl_proxy.patch: when we have a proxy setting, + we expect the CN to match the proxy hostname, not the server hostname. + + -- أحمد المحمودي (Ahmed El-Mahmoudy) Fri, 17 Dec 2010 22:38:11 +0100 + +irssi (0.8.15-2) unstable; urgency=low + + * Switch Vcs-* field values to git.deb.at. + * Add patch by Pierre Habouzit for crash when $cumode_space is used. Thanks! + (closes: #606319) + + -- Gerfried Fuchs Tue, 14 Dec 2010 21:57:29 +0100 + +irssi (0.8.15-1ubuntu1) maverick; urgency=low + + * Merge from Debian unstable (LP: #589209), remaining changes: + - debian/patches/03firsttimer_text: + + Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu instead of irc.debian.org and #debian. + - debian/patches/90irc-ubuntu-com + - debian/patches/91_disable_sslv2.patch: do not use SSLv2 protocol. + This can be dropped in 0.8.16. + - debian/patches/91_ssl_proxy.patch: when we have a proxy setting, + we expect the CN to match the proxy hostname, not the server hostname. + * Dropped changes, superseded upstream; + - debian/patches/91_CVE-2010-1155.patch + - debian/patches/91_CVE-2010-1156.patch + + -- Lorenzo De Liso Thu, 03 Jun 2010 16:30:52 +0200 + +irssi (0.8.15-1) unstable; urgency=low + + * New Upstream version, prepared with current autotools (closes: #575295) + * Remove David also from Uploaders field on his own will, thanks for the + work so far. + + -- Gerfried Fuchs Sat, 03 Apr 2010 21:37:36 +0200 + +irssi (0.8.15~rc1-1) unstable; urgency=low + + * New upstream release candidate, containing fixes for: + - Make meta-a behavior configurable (closes: #525970) + - some signals are no longer available in perl environment + (closes: #534649) + * Patch theme-white-background-fix applied upstream, dropping. + * Bumped Standards-Version to 3.8.4. + * Switched Maintainer and Uploaders field to better match reality. + * Add ${misc:Depends} to irssi-dev, too. + + -- Gerfried Fuchs Tue, 23 Mar 2010 21:33:44 +0100 + +irssi (0.8.14-1ubuntu4) lucid; urgency=low + + * 91_ssl_proxy.patch: when we have a proxy setting, we expect the CN to + match the proxy hostname, not the server hostname. LP: #565182 + + -- Steve Langasek Sat, 17 Apr 2010 04:18:10 +0000 + +irssi (0.8.14-1ubuntu3) lucid; urgency=low + + * SECURITY UPDATE: perform certificate host validation + - debian/patches/91_CVE-2010-1155.patch: adjust to verify hostname against + CN. Also use one SSL_CTX per connection and use default trusted CAs if + nothing specified. This can be dropped in 0.8.15. + - CVE-2010-1155 + * SECURITY UPDATE: fix crash when checking for fuzzy nick match when not on + the channel + - debian/patches/91_CVE-2010-1156.patch: verify channel is non-NULL in + src/core/nicklist.c. This can be dropped in 0.8.15. + - CVE-2010-1156 + * Do not use SSLv2 protocol. This can be dropped in 0.8.16. + + -- Jamie Strandboge Wed, 14 Apr 2010 13:36:33 -0500 + +irssi (0.8.14-1ubuntu2) lucid; urgency=low + + * rebuild rest of main for armel armv7/thumb2 optimization; + UbuntuSpec:mobile-lucid-arm-gcc-v7-thumb2 + + -- Alexander Sack Sat, 06 Mar 2010 13:28:50 +0100 + +irssi (0.8.14-1ubuntu1) karmic; urgency=low + + * Merge from debian unstable, remaining changes: LP: #406890 + - debian/patches: 03firsttimer_text + + Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu instead of irc.debian.org and #debian. + - debian/patches: 90irc-ubuntu-com + + -- Bhavani Shankar Thu, 30 Jul 2009 19:12:55 +0530 + +irssi (0.8.14-1) unstable; urgency=low + + * New upstream release, dropping wallops-fix patch. + * Refreshed quilt patches. + * Bumped Standards-Version to 3.8.2. + + -- Gerfried Fuchs Wed, 29 Jul 2009 12:55:04 +0200 + +irssi (0.8.13-2ubuntu1) karmic; urgency=low + + * Merge from debian unstable, remaining changes: LP: #389748 + - debian/patches: 03firsttimer_text + + Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu instead of irc.debian.org and #debian. + - debian/patches: 90irc-ubuntu-com + + -- Bhavani Shankar Sat, 20 Jun 2009 05:51:09 +0530 + +irssi (0.8.13-2) unstable; urgency=medium + + * New patch: + - wallops-fix: Fix CVE-2009-1959 off-by-one in event_wallops + (closes: #531357) + + -- Gerfried Fuchs Tue, 16 Jun 2009 11:03:06 +0200 + +irssi (0.8.13-1ubuntu1) karmic; urgency=low + + * Merge from debian unstable (LP: #372411), remaining changes: + - debian/patches: 03firsttimer_text + + Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu instead of irc.debian.org and #debian. + - debian/patches: 90irc-ubuntu-com + * Fixed debian/patches/90irc-ubuntu-com for new irssi.conf. + + -- Andres Rodriguez Tue, 05 May 2009 15:50:50 -0500 + +irssi (0.8.13-1) unstable; urgency=low + + * New upstream release. + * Refreshed quilt patches. + + -- Gerfried Fuchs Tue, 14 Apr 2009 16:59:19 +0200 + +irssi (0.8.13~rc1-1) unstable; urgency=low + + * New upstream release candidate. + * Incorporated patches (removed from packaging): help-URL-fix, + nickmask-mask, fullword-full, ctcp-channel, server==NULL-handling, + typo-authentification, leave-help, perlembed-fix, perlembed-fix, + proxy-join-fix, mode-display-fix + * All other patches refreshed. + * New patch manpage-fix to fix hyphens in the synopsis of the manpage. + * Bump to Standards-Version 3.8.1. + * Aligned irssi-dev short description with main package description. + * Adopt debian/watch to match release candidates. + + -- Gerfried Fuchs Thu, 19 Mar 2009 11:12:17 +0100 + +irssi (0.8.12-6ubuntu1) jaunty; urgency=low + + * Merge from Debian unstable (LP: #326002), Ubuntu remaining changes: + - Added debian/patches/90irc-ubuntu-com.dpatch + - debian/patches/03firsttimer_text: + + Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu instead of irc.debian.org and #debian. + New with this merge: We now also apply this patch. + + -- Pedro Fragoso Wed, 04 Feb 2009 21:46:19 +0000 + +irssi (0.8.12-6) unstable; urgency=low + + * New patch: + - mode-display-fix: Fix mode display in whois with unreal (379 numeric). + (upstream svn r4637, bug #479) + * Updated patch: + - perlembed-fix: The initial approach wasn't completely clean, it got + revised by upstream. + + -- Gerfried Fuchs Thu, 29 Jan 2009 13:29:51 +0100 + +irssi (0.8.12-5ubuntu1) jaunty; urgency=low + + * Merge from Debian unstable (LP: #295270), Ubuntu remaining changes: + - Added debian/patches/90irc-ubuntu-com.dpatch + - debian/patches/03firsttimer_text: + + Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu instead of irc.debian.org and #debian. + New with this merge: We now also apply this patch. + - debian/irssi.perm: Don't remove alternative on upgrades. + + -- Pedro Fragoso Wed, 05 Nov 2008 02:41:00 +0000 + +irssi (0.8.12-5) unstable; urgency=low + + * New patches: + - perlembed-fix to fix adjust to perembed documentation, fixing a + possible breakage on at least hppa (closes: #495059) + - proxy-join-fix to fix a buffer problem which made joining lots of + channels through proxy not get all through, pulled from upstream + revision 4840 (closes: #308673) + + -- Gerfried Fuchs Tue, 02 Sep 2008 13:57:52 +0200 + +irssi (0.8.12-4ubuntu2) intrepid; urgency=low + + * debian/patches/90irc-ubuntu-com.dpatch: Changed irc.ubuntu.com's + default port to 8001 to avoid DCC exploit (LP: #263259). + + -- Jonathan Patrick Davies Sun, 31 Aug 2008 12:28:41 +0100 + +irssi (0.8.12-4ubuntu1) intrepid; urgency=low + + * Merge from debian unstable (LP: #241282), remaining changes: + - Added debian/patches/90irc-ubuntu-com.dpatch (LP: #52690) + - debian/patches/03firsttimer_text: + + Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu instead of irc.debian.org and #debian. (LP: #188590) + New with this merge: We now also apply this patch. + - Modify Maintainer value to match DebianMaintainerField spec. + - debian/irssi.perm: Don't remove alternative on upgrades. (LP: #67698) + * debian/patches/91-manpage-typo: + - Dropped, merged upstream. + + -- Pedro Fragoso Wed, 11 Jun 2008 15:36:34 +0100 + +irssi (0.8.12-4) unstable; urgency=low + + * Remove alternative handling cleanup from before etch release. + * Fixed a typo noticed by John Dong, patch typo-authentification + (closes: #465570) + * Pull upstream revision r4612 as patch help-URL-fix to fix help URL + (closes: #485140) + * Remove reference to LEAVE in help files, patch leave-help + (closes: #255535) + * Apply patch from Tim Retout to use default colour for ownnick and actions + instead of white (closes: #479171) + * Remove autogenerated files, both from patch series and also in clean + target. Thanks to Felix Palmen for mentioning it (closes: #476473) + * Add doc-base files for the FAQ, manual and startup-HOWTO + (closes: #451690, #480098) + * Update to Standards-Version 3.8.0: + - Add debian/README.source referencing the quilt documentation. + * Actually also _use_ the menu file for irssi... And removed some of the + other commented dh_* entries in debian/rules. + * Updated debian/copyright to contain more current informations, added the + keyword exception to the openssl linking GPL addition. + * Removed empty debian/irssi.postinst file. + + -- Gerfried Fuchs Mon, 09 Jun 2008 12:11:19 +0200 + +irssi (0.8.12-3ubuntu4) intrepid; urgency=low + + * Rebuild for the perl 5.10 transition (LP: #230016). + + -- Michael Bienia Sat, 24 May 2008 15:02:30 +0200 + +irssi (0.8.12-3ubuntu3) hardy; urgency=low + + * Replace authentification with a less amusing word + + -- John Dong Fri, 08 Feb 2008 20:57:33 -0500 + +irssi (0.8.12-3ubuntu2) hardy; urgency=low + + * debian/patches/03firsttimer_text: + - Adapt it so it tells you about connecting to irc.ubuntu.com and + joining #ubuntu, instead of irc.debian.org and #debian. LP: #188590. + + -- Emilio Pozuelo Monfort Wed, 06 Feb 2008 00:59:54 +0100 + +irssi (0.8.12-3ubuntu1) hardy; urgency=low + + * Merge from debian unstable, remaining changes (LP: #181641): + - Added debian/patches/90irc-ubuntu-com.dpatch (Launchpad #52690). + New with this merge: We now also apply this patch. + - Modify Maintainer value to match the DebianMaintainerField spec. + - debian/irssi.prerm: Don't remove alternative on upgrades (LP #67698). + + -- Soren Hansen Tue, 05 Feb 2008 23:17:04 +0100 + +irssi (0.8.12-3) unstable; urgency=low + + [ Gerfried Fuchs ] + * Switch to quilt to make it possible to produce the following patch without + any headaches. + * patch fullword-full added about printing -full instead of -fullword which + is the wrong option to /hilight + * Put the four created files into patches too so that everything changed is + below /debian/ only. + * Imported all into git for being able to team maintain (Closes: #445840) + * Add Vcs-* fields to control file. + * Patches pulled from upstream svn: + - 07ctcp-channel: Do not allow /ping by itself to ctcp ping a channel. + - 08server==NULL-handling: Handle server == NULL case in skip_target. + Thanks to Pedro Fragoso from ubuntu for notifying me about them. + * Bumped Standards-Version to 3.7.3, no further required changes. + * Bump debhelper compat level to 5. + + -- Gerfried Fuchs Thu, 17 Jan 2008 09:55:41 +0100 + +irssi (0.8.12-2ubuntu2) hardy; urgency=low + + * debian/patches/10ping_ctcp: prevent /ping with no arguments from sending + CTCP PING to a channel (backported from SVN, LP: #96758). + + -- Pedro Fragoso Tue, 04 Dec 2007 19:40:59 +0000 + +irssi (0.8.12-2ubuntu1) hardy; urgency=low + + * Merge with Debian, remaining Ubuntu changes: + - Added debian/patches/90irc-ubuntu-com.dpatch (Launchpad #52690). + - Modify Maintainer value to match the DebianMaintainerField spec. + - debian/irssi.prerm: Do not alternative. LP: #67698. + + -- Emilio Pozuelo Monfort Fri, 02 Nov 2007 18:13:28 +0100 + +irssi (0.8.12-2) unstable; urgency=low + + [ Gerfried Fuchs ] + * Added Homepage: to control file. + * Added watchfile. + * patch chanmode_expando_strip added for changing default to not expose + channel key by default (Closes: #347944) + * patch ctcp_version_reply added for not exposing $sysname $sysarch in ctcp + version replies by default (Closes: #373094) + * patch firsttimer_text added which extends the text displayed to firsttime + users about irc.debian.org and #debian (Closes: #393707) + * Remove irssi-text dummy package from control and all the old package + relation stats to it and irssi-snapshot, and irssi-scripts versioning. + * patch nickmask-mask added about printing -mask instead of -nickmask which + is a wrong option to /hilight (Closes: #417397) + * Don't ignore make distclean errors anymore. + * Removed automatic config.{guess,sub} update from debian/rules. + + -- Gerfried Fuchs Thu, 18 Oct 2007 08:29:50 +0200 + +irssi (0.8.12-1) unstable; urgency=low + + [ David Pashley ] + * Gerfried Fuchs added to Uploaders (Closes: #445840) + * Removed old not used patches from the package. + + [ Gerfried Fuchs ] + * New upstream release (Closes: #421053) + - patch 05upgrade-check-binary.dpatch applied upstream. + - patch 08doublefree applied upstream. + - C1 control characters aren't passed through anymore (Closes: #435315) + - return random host on DNS round robin (Closes: #374715) + * Updated menu file to new menu policy section, added longtitle. + * Bumped Standards-Version to 3.7.2, no changes needed. + + -- Gerfried Fuchs Wed, 17 Oct 2007 07:54:49 +0200 + +irssi (0.8.11-0ubuntu1) gutsy; urgency=low + + * New upstream release: + - http://www.irssi.org/news/ChangeLog + * debian/{control,compat}: + - Bump Standards. + * debian/patches/00list: + - Disable 05upgrade-check-binary.patch, applied upstream. + - Disable 08doublefree.patch, applied upstream. + + -- Christian Bjälevik Sat, 28 Apr 2007 02:52:01 +0200 + +irssi (0.8.10-2ubuntu1) edgy; urgency=low + + * Add irc.ubuntu.com as the first listed IRC server (closes: Malone + #52690). + + -- Colin Watson Tue, 3 Oct 2006 17:46:55 +0100 + +irssi (0.8.10-2) unstable; urgency=low + + * Fix Conflicts and Replaces lines to make backporting to sarge easier + * Fix the menu entry (Closes: #274201) + * Added a Provides for irc (Closes: #267411) + * Removed calls to ldconfig in postinst and postrm by calling dh_makeshlibs + with the -n flag + * Remove alteratives for irc and irssi (Closes: #348149) + * Fix a glib memory bug. patch by Chris Moore + (Closes: #358172, #358499) + * Include changelog from irssi-text (Closes: #344292) + + -- David Pashley Fri, 30 Dec 2005 15:12:29 +0000 + +irssi (0.8.10-1) unstable; urgency=low + + * new upstream release + + -- David Pashley Sat, 10 Dec 2005 21:25:51 +0000 + +irssi (0.8.10~rc8-1) unstable; urgency=low + + * New upstream (Closes: #340287) + * Add dpatch to the build-depends + + -- David Pashley Wed, 30 Nov 2005 23:10:27 +0000 + +irssi (0.8.10~rc6-1) unstable; urgency=low + + * New upstream version + * Disable the GnuTLS patch for now. + * Added Provides, Replaces and Conflicts for irssi-text and irssi-snapshot + + -- David Pashley Fri, 14 Oct 2005 00:39:15 +0100 + +irssi (0.8.10~rc5-1) unstable; urgency=low + + * Initial packaging to unify irssi-text and irssi-snapshot + * Provide a -dev package for building modules (Closes: #184771) + * Check for an executable file before we try to execute it with /upgrade + (Closes: #242026) + * Only allow /exec to recurse 100 times (Closes: #186416) + * Call SIGTSTP rather than SIGSTOP on ^Z (With thanks to Mark Hymers + ) (Closes: #177108) + * Redirect Glib critical errors to the status window rather than to stderr + (Closes: #270596) + * Correctly lower case chat protocols using g_ascii_strdown() rather than + using the deprecated g_strdown() (pushed upstream) (Closes: #232628) + + -- David Pashley Sun, 10 Jul 2005 15:11:38 +0300 + --- irssi-0.8.15.orig/debian/changelog.irssi-text +++ irssi-0.8.15/debian/changelog.irssi-text @@ -0,0 +1,269 @@ +irssi-text (0.8.9-9) unstable; urgency=low + + * Update to dh-make compat 4 and depend on debhelper >=4 + * Add a space in the menu file at the end of the line + + -- David Pashley Sat, 28 May 2005 20:30:14 +0100 + +irssi-text (0.8.9-8) unstable; urgency=low + + * Updated the patch for #186416 to output a better error string + * Check for an executable file before we try to execute it with /upgrade + (Closes: #242026) + + -- David Pashley Mon, 28 Mar 2005 20:01:38 +0100 + +irssi-text (0.8.9-7) unstable; urgency=low + + * Only allow /exec to recurse 100 times (Closes: #186416) + * Call SIGTSTP rather than SIGSTOP on ^Z (With thanks to Mark Hymers + ) (Closes: #177108) + + -- David Pashley Sun, 27 Mar 2005 16:07:19 +0100 + +irssi-text (0.8.9-6) unstable; urgency=low + + * Include patch to fix Big5 input (from + http://www.freshports.org/chinese/irssi/) (Closes: #274201) + + -- David Pashley Sat, 26 Mar 2005 13:06:45 +0000 + +irssi-text (0.8.9-5) unstable; urgency=low + + * Redirect Glib critical errors to the status window rather than to stderr + (Closes: #270596) + + -- David Pashley Thu, 24 Mar 2005 08:45:34 +0000 + +irssi-text (0.8.9-4) unstable; urgency=low + + * Correctly lower case chat protocols using g_ascii_strdown() rather than + using the deprecated g_strdown() (Closes: #232628) + + -- David Pashley Wed, 23 Mar 2005 08:29:32 +0000 + +irssi-text (0.8.9-3) unstable; urgency=medium + + * Fix linker errors on IA64 by building with -O2 on that platform too. + * Upload with medium urgency to get the previous fixes into sarge + + -- David Pashley Sat, 19 Mar 2005 17:43:07 +0000 + +irssi-text (0.8.9-2) unstable; urgency=medium + + * Upload medium as it would be useful to get the irssi-common and perl fixes + into sarge. + * Conflict with irssi-common (Closes: #263320) + * Update to Standards-Version 3.6.1 + * Update to building against libglib2.0 + * Fix the menu file quoting + * Depend on autotools-dev and update config.{status,guess} automatically + (Closes: #296989) + * Recompile against libperl5.8 (5.8.4) (Closes: #248020, #224930, #247104) + + -- David Pashley Tue, 15 Mar 2005 07:51:23 +0000 + +irssi-text (0.8.9-1) unstable; urgency=low + + * Acknowledge NMU + * New Maintainer + + -- David Pashley Sun, 25 Jan 2004 13:29:21 +0000 + +irssi-text (0.8.9-0.1) unstable; urgency=high + + * NMU + * New upstream release, which fixes a remote crash with non-x86 + architectures or with people running certain scripts (nicklist.pl, + tab_stop.pl most importantly) (closes: #223650, #223597) + + -- Norbert Tretkowski Fri, 12 Dec 2003 10:17:28 +0100 + +irssi-text (0.8.6-7) unstable; urgency=low + + * Recompiled against perl 5.8.2. This should fix the segfaults. (closes: + #219806, #220279) + * Fixed the irssi-alternative + + -- Pekka Aleksi Knuutila Wed, 12 Nov 2003 01:12:37 +0200 + +irssi-text (0.8.6-6) unstable; urgency=low + + * Made the irc alternative point to irssi-text instead of irssi (closes: + #216870) + + -- Pekka Aleksi Knuutila Mon, 27 Oct 2003 22:28:32 +0200 + +irssi-text (0.8.6-5) unstable; urgency=low + + * Recompiled against perl 5.8.1 (closes: #213288, #213356) + * Added irc alternative (closes: #183011) + * Added botti manpage (closes: #190538) + + -- Pekka Aleksi Knuutila Tue, 30 Sep 2003 22:37:52 +0300 + +irssi-text (0.8.6-4) unstable; urgency=low + + * Recompiled static perl support because modularity turned out to be too + inconvenient (closes: #178593 #178594) + * Moved manpage from /usr/man to /usr/share/man (closes: #179520) + + -- Pekka Aleksi Knuutila Tue, 4 Feb 2003 06:57:06 +0000 + +irssi-text (0.8.6-3) unstable; urgency=low + + * Added manpage by Michael Wiedmann + * Perl support is now compiled as a module + * Added Suggests: perl-base + + -- Pekka Aleksi Knuutila Wed, 22 Jan 2003 21:44:27 +0200 + +irssi-text (0.8.6-2) unstable; urgency=low + + * Added "Replaces: irssi-scripts (<= 8)" + * Enabled SSL support, with a specific permission to be linked against + OpenSSL + + -- Pekka Aleksi Knuutila Sat, 23 Nov 2002 14:37:38 +0200 + +irssi-text (0.8.6-1) unstable; urgency=low + + * New upstream release (closes: #166456) + + -- Pekka Aleksi Knuutila Thu, 21 Nov 2002 22:50:31 +0200 + +irssi-text (0.8.5-4) unstable; urgency=low + + * Fixed formatting and added mention of the xirssi and irssi-snapshot + packages to the package description. + + -- Pekka Aleksi Knuutila Sun, 8 Sep 2002 00:53:24 +0300 + +irssi-text (0.8.5-3) unstable; urgency=low + + * Recompiled against perl 5.8 (closes: #158024) + + -- Pekka Aleksi Knuutila Sun, 25 Aug 2002 13:30:28 +0300 + +irssi-text (0.8.5-2) unstable; urgency=low + + * $(CFLAGS) is now really passed to make in debian/rules, so the package is + built without -O2 on ia64 (closes: #152912) + + -- Pekka Aleksi Knuutila Fri, 19 Jul 2002 18:02:49 +0300 + +irssi-text (0.8.5-1) unstable; urgency=low + + * New upstream release + + -- Pekka Aleksi Knuutila Thu, 20 Jun 2002 00:45:43 +0300 + +irssi-text (0.8.4-2) unstable; urgency=high + + * Made the package build without -O2 on ia64, due to a bug in gcc + (closes: #140274) + + -- Pekka Aleksi Knuutila Thu, 28 Mar 2002 17:59:35 +0200 + +irssi-text (0.8.4-1) unstable; urgency=low + + * New upstream release + + -- Pekka Aleksi Knuutila Wed, 13 Mar 2002 18:25:25 +0200 + +irssi-text (0.8.2-2) unstable; urgency=low + + * Added Conflict on irssi-scripts-1 and Suggests on newer versions + (closes: #138090) + * debian/rules now doesn't override CFLAGS if DEB_BUILD_OPTIONS includes + nocflags + * Updated the package description + + -- Pekka Aleksi Knuutila Wed, 13 Mar 2002 15:58:15 +0200 + +irssi-text (0.8.2-1) unstable; urgency=low + + * New upstream release + * Added HTML files to /usr/share/doc + + -- Pekka Aleksi Knuutila Tue, 12 Mar 2002 20:55:38 +0200 + +irssi-text (0.8.1-1) unstable; urgency=low + + * New upstream release + * Fixed speeling error in the copyright file (closes: #131698) + + -- Pekka Aleksi Knuutila Sun, 17 Feb 2002 17:32:18 +0200 + +irssi-text (0.7.98.3-2) unstable; urgency=low + + * Made perl support ready for perl 5.6.1, thanks to Branden O'Dea + (closes: #95535) + + -- Pekka Aleksi Knuutila Sun, 17 Feb 2002 17:32:12 +0200 + +irssi-text (0.7.98.3-1) unstable; urgency=low + + * New upstream release (closes: #90139) + * Include the libfe_perl files (closes: #90189) + + -- Pekka Aleksi Knuutila Mon, 19 Mar 2001 17:17:25 +0200 + +irssi-text (0.7.98.1-1) unstable; urgency=low + + * New upstream release + * Recompiled with perl-5.6 (closes: #86157) + * Added alternative for irssi(1) man-page (closes: #80845) + + -- Pekka Aleksi Knuutila Fri, 23 Feb 2001 16:48:43 +0200 + +irssi-text (0.7.97.2-1) unstable; urgency=low + + * New upstream release + + -- Pekka Aleksi Knuutila Tue, 19 Dec 2000 15:22:56 +0200 + +irssi-text (0.7.97.1-1) unstable; urgency=low + + * New upstream release + + -- Pekka Aleksi Knuutila Wed, 6 Dec 2000 21:40:44 +0200 + +irssi-text (0.7.97-1) unstable; urgency=low + + * New upstream release + + -- Pekka Aleksi Knuutila Sun, 3 Dec 2000 21:35:03 +0200 + +irssi-text (0.7.96-2) unstable; urgency=low + + * Added startup-howto to /usr/share/doc + * Applied 0.7.96-2 bugfixes from upstream + + -- Pekka Aleksi Knuutila Mon, 30 Oct 2000 17:48:34 +0200 + +irssi-text (0.7.96-1) unstable; urgency=low + + * New upstream release + + -- Pekka Aleksi Knuutila Thu, 19 Oct 2000 23:22:54 +0300 + +irssi-text (0.7.95-2) unstable; urgency=medium + + * Applied patch to fix remote crash + + -- Pekka Aleksi Knuutila Wed, 23 Aug 2000 10:21:36 +0300 + +irssi-text (0.7.95-1) unstable; urgency=low + + * New upstream release + * Fixed debian/rules clean (closes: Bug#69105) + + -- Pekka Aleksi Knuutila Sun, 13 Aug 2000 22:03:53 +0300 + +irssi-text (0.7.94-1) unstable; urgency=low + + * Initial release + + -- Pekka Aleksi Knuutila Wed, 26 Jul 2000 21:40:40 +0300 + --- irssi-0.8.15.orig/debian/compat +++ irssi-0.8.15/debian/compat @@ -0,0 +1 @@ +7 --- irssi-0.8.15.orig/debian/control +++ irssi-0.8.15/debian/control @@ -0,0 +1,47 @@ +Source: irssi +Section: net +Priority: optional +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Gerfried Fuchs +Build-Depends: debhelper (>= 7), autotools-dev, libglib2.0-dev, perl (>= 5.8.1), libperl-dev (>= 5.8.1), libncurses5-dev, libssl-dev, openssl, quilt +Standards-Version: 3.9.3 +Homepage: http://irssi.org/ +Vcs-Browser: http://git.deb.at/w/pkg/irssi.git +Vcs-Git: git://git.deb.at/pkg/irssi.git + +Package: irssi +Architecture: any +Depends: ${shlibs:Depends}, ${perl:Depends}, ${misc:Depends}, perl-base(>= 5.8.1) +Suggests: irssi-scripts +Description: terminal based IRC client + Irssi is a terminal based IRC client for UNIX systems. It also supports + SILC and ICB protocols via plugins. + . + Features include: + * Autologging + * Formats and themes + * Configurable keybindings + * Paste detection + * Perl scripting + * Irssi-proxy + * Transparent upgrading + * Recode support + +Package: irssi-dev +Architecture: any +Depends: irssi, ${misc:Depends} +Description: terminal based IRC client - development files + Irssi is a terminal based IRC client for UNIX systems. It also supports + SILC and ICB protocols via plugins. + . + Features include: + * Autologging + * Formats and themes + * Configurable keybindings + * Paste detection + * Perl scripting + * Irssi-proxy + * Transparent upgrading + * Recode support + . + This package includes the development files for the irssi client. --- irssi-0.8.15.orig/debian/copyright +++ irssi-0.8.15/debian/copyright @@ -0,0 +1,106 @@ +License +======= + + Copyright (C) 1998-2002 Timo Sirainen + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + +A copy of the GPL can be found in /usr/share/common-licenses/GPL-2, +later versions are included in the same directory. + +COPYING includes the following addition linking exception to the GPL: + + Specific permission is granted for the GPLed code in this + distribition to be linked to OpenSSL without invoking GPL clause + 2(b). + +Sources +======= + +The source was obtained from http://www.irssi.org/files/ + +Copyright +========= + +AUTHORS contains: + + Original code: + + Timo Sirainen + + Irssi staff (current maintainers) : + + Valentin Batz (senneth, vb) + Wouter Coekaerts (coekie) + Jochen Eisinger (c0ffee) + Geert Hauwaerts + Emanuele Giaquinta (exg) + Jilles Tjoelker + + Large feature patches by: + + David Leadbeater (dg, dgl) : isupport + vjt@users.sf.net : SSL support + Joel Eriksson : SSL certs + Heikki Orsila : DCC SEND queueing + Mark Trumbull : DCC SERVER + Francesco Fracassi : Passive DCC + + Other patches (grep for "patch" in ChangeLog) by: + + Toby Peterson + Soren Jacobsen + Kuang-che Wu + Joost Vunderink (Garion) + Wang WenRui + Jean-Yves Lefort (decadix) + Joel Eriksson + Maarten van der Zwaart + Noah Levitt + Krzysztof Kowalik (Borys) + Peder Stray + mls@suse.de + nix@suhs.nu + Marcin Kowalczyk (Qrczak) + Petr Baudis + Bjoern Krombholz (fuchs) + aldem-irssi@aldem.net, + BC-bd + Juerd + Han + pv2b + Tommi Komulainen (tommik) + mike@po.cs.msu.su + zinx@magenet.net + yathen@web.de + paul@raade.org + Leszek Matok + tygrys@moo.pl + manoj@io.com + cph@cph.demon.co.uk + ganesh@earth.li + Jakub Jankowski (shasta) + vanilla@freebsd.org + Tinuk + Mark Glines + Kjetil Ødegaard + Chris Moore + ComradeP + Lauri Nurmi + Mikko Rauhala + loafier + Nicolas Collignon + Daniel Koning + Yi-Hsuan Hsin + +Debian Packaging +================ + +This packaging was written by David Pashley and +contains ideas and code from previous irssi packaging by Pekka Aleksi +Knuutila . In parts there has been updates to it by +Gerfried Fuchs . +The debianization is licensed the same way as irssi itself. --- irssi-0.8.15.orig/debian/irssi-dev.install +++ irssi-0.8.15/debian/irssi-dev.install @@ -0,0 +1 @@ +debian/tmp/usr/include --- irssi-0.8.15.orig/debian/irssi.doc-base.faq +++ irssi-0.8.15/debian/irssi.doc-base.faq @@ -0,0 +1,12 @@ +Document: irssi-faq +Title: Irssi FAQ +Abstract: This document answers frequently asked questions about the + Irssi IRC client. +Section: Network/Communication + +Format: HTML +Index: /usr/share/doc/irssi/faq.html +Files: /usr/share/doc/irssi/faq.html + +Format: Text +Files: /usr/share/doc/irssi/faq.txt.gz --- irssi-0.8.15.orig/debian/irssi.doc-base.manual +++ irssi-0.8.15/debian/irssi.doc-base.manual @@ -0,0 +1,8 @@ +Document: irssi-manual +Title: Irssi Manual +Abstract: This Irssi User's Manual is slightly incomplete but can still + help for general concepts. +Section: Network/Communication + +Format: Text +Files: /usr/share/doc/irssi/manual.txt.gz --- irssi-0.8.15.orig/debian/irssi.doc-base.startup-howto +++ irssi-0.8.15/debian/irssi.doc-base.startup-howto @@ -0,0 +1,9 @@ +Document: irssi-startup-howto +Title: Irssi Startup HOWTO +Abstract: A short HOWTO for new Irssi users (not to new IRC users ..) to + get you started. +Section: Network/Communication + +Format: HTML +Index: /usr/share/doc/irssi/startup-HOWTO.html +Files: /usr/share/doc/irssi/startup-HOWTO.html --- irssi-0.8.15.orig/debian/irssi.docs +++ irssi-0.8.15/debian/irssi.docs @@ -0,0 +1,4 @@ +NEWS +README +TODO +debian/changelog.irssi-text --- irssi-0.8.15.orig/debian/irssi.install +++ irssi-0.8.15/debian/irssi.install @@ -0,0 +1,7 @@ +debian/tmp/etc/irssi.conf +debian/tmp/usr/bin/botti +debian/tmp/usr/bin/irssi +debian/tmp/usr/lib/irssi/ +debian/tmp/usr/lib/perl5/ +debian/tmp/usr/share/doc/irssi/ +debian/tmp/usr/share/irssi/ --- irssi-0.8.15.orig/debian/irssi.manpages +++ irssi-0.8.15/debian/irssi.manpages @@ -0,0 +1,2 @@ +debian/botti.1 +debian/tmp/usr/share/man/man1/irssi.1 --- irssi-0.8.15.orig/debian/irssi.menu +++ irssi-0.8.15/debian/irssi.menu @@ -0,0 +1,2 @@ +?package(irssi):needs="text" section="Applications/Network/Communication" \ +title="Irssi" longtitle="Terminal Based IRC Client" command="/usr/bin/irssi" --- irssi-0.8.15.orig/debian/patches/01chanmode_expando_strip +++ irssi-0.8.15/debian/patches/01chanmode_expando_strip @@ -0,0 +1,18 @@ +Author: Gerfried Fuchs vim:ft=diff: +Description: Don't expand chanmode by default, BTS #347944 + +Index: irssi-0.8.15~rc1/src/core/expandos.c +=================================================================== +--- irssi-0.8.15~rc1.orig/src/core/expandos.c ++++ irssi-0.8.15~rc1/src/core/expandos.c +@@ -584,7 +584,9 @@ void expandos_init(void) + #endif + settings_add_str("misc", "STATUS_OPER", "*"); + settings_add_str("lookandfeel", "timestamp_format", "%H:%M"); +- settings_add_bool("lookandfeel", "chanmode_expando_strip", FALSE); ++ /* don't expand by default and expose channel key, ++ * see debian bug #347944 */ ++ settings_add_bool("lookandfeel", "chanmode_expando_strip", TRUE); + + last_sent_msg = NULL; last_sent_msg_body = NULL; + last_privmsg_from = NULL; last_public_from = NULL; --- irssi-0.8.15.orig/debian/patches/02ctcp_version_reply +++ irssi-0.8.15/debian/patches/02ctcp_version_reply @@ -0,0 +1,19 @@ +Author: Gerfried Fuchs vim:ft=diff: +Description: remove $sysname $sysarch from default version reply, BTS #373094 + +Index: irssi-0.8.15~rc1/src/irc/core/ctcp.c +=================================================================== +--- irssi-0.8.15~rc1.orig/src/irc/core/ctcp.c ++++ irssi-0.8.15~rc1/src/irc/core/ctcp.c +@@ -327,8 +327,10 @@ void ctcp_init(void) + { + ctcp_cmds = NULL; + ++ /* remove $sysname $sysarch from default version reply, too much info, ++ * see debian bug #373094 */ + settings_add_str("misc", "ctcp_version_reply", +- PACKAGE_TARNAME" v$J - running on $sysname $sysarch"); ++ PACKAGE_TARNAME" v$J"); + settings_add_str("misc", "ctcp_userinfo_reply", "$Y"); + settings_add_int("flood", "max_ctcp_queue", 5); + --- irssi-0.8.15.orig/debian/patches/03firsttimer_text +++ irssi-0.8.15/debian/patches/03firsttimer_text @@ -0,0 +1,29 @@ +Author: Gerfried Fuchs vim:ft=diff: +Description: add hint about #debian to first time user message, BTS #393707 + +Index: irssi-0.8.15~rc1/src/fe-text/irssi.c +=================================================================== +--- irssi-0.8.15~rc1.orig/src/fe-text/irssi.c ++++ irssi-0.8.15~rc1/src/fe-text/irssi.c +@@ -81,6 +81,8 @@ static int dirty, full_redraw, dummy; + static GMainLoop *main_loop; + int quitting; + ++/* add debian informations for first time users, ++ * see debian bug #393707 */ + static const char *firsttimer_text = + "Looks like this is the first time you've run irssi.\n" + "This is just a reminder that you really should go read\n" +@@ -88,7 +90,11 @@ static const char *firsttimer_text = + "and more irssi beginner info at http://www.irssi.org\n" + "\n" + "For the truly impatient people who don't like any automatic\n" +- "window creation or closing, just type: /MANUAL-WINDOWS"; ++ "window creation or closing, just type: /MANUAL-WINDOWS\n" ++ "\n" ++ "For Ubuntu specific help type \"/connect irc.ubuntu.com\"\n" ++ "and \"/join #ubuntu\" (without the quotes) and ask your\n" ++ "question."; + static int display_firsttimer = FALSE; + + --- irssi-0.8.15.orig/debian/patches/06gnutls-support +++ irssi-0.8.15/debian/patches/06gnutls-support @@ -0,0 +1,589 @@ +Author: David Pashley vim:ft=diff: +Description: none + +diff -urNad --exclude=CVS --exclude=.svn ./configure.in /tmp/dpep-work.Xa2n5L/irssi/configure.in +--- ./configure.in 2005-07-17 16:00:49.000000000 +0300 ++++ /tmp/dpep-work.Xa2n5L/irssi/configure.in 2005-07-17 16:46:18.000000000 +0300 +@@ -222,7 +222,11 @@ + AC_ARG_ENABLE(ssl, + [ --disable-ssl Disable Secure Sockets Layer support],, + enable_ssl=yes) +- ++if test "$enable_ssl" = "yes"; then ++ AM_PATH_LIBGNUTLS(1.0.16, have_gnutls="true", have_gnutls="false") ++ AC_DEFINE(HAVE_GNUTLS,, Build with GNUTLS support) ++fi ++AM_CONDITIONAL(HAVE_GNUTLS, test "x$have_gnutls" = "xtrue") + dnl ** + dnl ** just some generic stuff... + dnl ** +diff -urNad --exclude=CVS --exclude=.svn ./src/core/Makefile.am /tmp/dpep-work.Xa2n5L/irssi/src/core/Makefile.am +--- ./src/core/Makefile.am 2005-07-17 16:00:43.000000000 +0300 ++++ /tmp/dpep-work.Xa2n5L/irssi/src/core/Makefile.am 2005-07-17 16:46:18.000000000 +0300 +@@ -7,6 +7,12 @@ + -DSYSCONFDIR=\""$(sysconfdir)"\" \ + -DMODULEDIR=\""$(libdir)/irssi/modules"\" + ++#if HAVE_OPENSSL ++#SSL = network-openssl.c ++#else ++SSL = network-gnutls.c ++#endif ++ + libcore_a_SOURCES = \ + args.c \ + channels.c \ +@@ -30,7 +36,7 @@ + net-nonblock.c \ + net-sendbuffer.c \ + network.c \ +- network-openssl.c \ ++ $(SSL) \ + nicklist.c \ + nickmatch-cache.c \ + pidwait.c \ +diff -urNad --exclude=CVS --exclude=.svn ./src/core/network-gnutls.c /tmp/dpep-work.Xa2n5L/irssi/src/core/network-gnutls.c +--- ./src/core/network-gnutls.c 1970-01-01 02:00:00.000000000 +0200 ++++ /tmp/dpep-work.Xa2n5L/irssi/src/core/network-gnutls.c 2005-07-17 16:46:18.000000000 +0300 +@@ -0,0 +1,514 @@ ++/* ++ network-ssl.c : SSL support ++ ++ Copyright (C) 2002 vjt ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++*/ ++ ++#include "module.h" ++#include "network.h" ++#include "misc.h" ++ ++#define HAVE_GNUTLS ++ ++#ifdef HAVE_GNUTLS ++ ++#include ++#include ++#include ++ ++/* ssl i/o channel object */ ++typedef struct ++{ ++ GIOChannel pad; ++ gint fd; ++ GIOChannel *giochan; ++ gnutls_session session; ++ unsigned int got_cert:1; ++ unsigned int verify:1; ++ unsigned int have_handshaked:1; ++ gnutls_anon_client_credentials anon_cred; ++ gnutls_certificate_credentials xcred; ++} GIOSSLChannel; ++ ++static void irssi_ssl_free(GIOChannel *handle) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ g_io_channel_unref(chan->giochan); ++ gnutls_bye(chan->session, GNUTLS_SHUT_RDWR); ++ gnutls_deinit(chan->session); ++ g_free(chan); ++} ++ ++/*static gboolean irssi_ssl_verify(SSL *ssl, SSL_CTX *ctx, X509 *cert) ++{ ++ if (SSL_get_verify_result(ssl) != X509_V_OK) { ++ unsigned char md[EVP_MAX_MD_SIZE]; ++ unsigned int n; ++ char *str; ++ ++ g_warning("Could not verify SSL servers certificate:"); ++ if ((str = X509_NAME_oneline(X509_get_subject_name(cert), 0, 0)) == NULL) ++ g_warning(" Could not get subject-name from peer certificate"); ++ else { ++ g_warning(" Subject : %s", str); ++ free(str); ++ } ++ if ((str = X509_NAME_oneline(X509_get_issuer_name(cert), 0, 0)) == NULL) ++ g_warning(" Could not get issuer-name from peer certificate"); ++ else { ++ g_warning(" Issuer : %s", str); ++ free(str); ++ } ++ if (! X509_digest(cert, EVP_md5(), md, &n)) ++ g_warning(" Could not get fingerprint from peer certificate"); ++ else { ++ char hex[] = "0123456789ABCDEF"; ++ char fp[EVP_MAX_MD_SIZE*3]; ++ if (n < sizeof(fp)) { ++ unsigned int i; ++ for (i = 0; i < n; i++) { ++ fp[i*3+0] = hex[(md[i] >> 4) & 0xF]; ++ fp[i*3+1] = hex[(md[i] >> 0) & 0xF]; ++ fp[i*3+2] = i == n - 1 ? '\0' : ':'; ++ } ++ g_warning(" MD5 Fingerprint : %s", fp); ++ } ++ } ++ return FALSE; ++ } ++ return TRUE; ++} ++*/ ++ ++int irssi_ssl_handshake(GIOChannel *handle) { ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ int ret; ++ while(1) { ++ fd_set fds_read; ++ fd_set fds_write; ++ struct timeval timeout={1,0}; ++ ++ ret = gnutls_handshake(chan->session); ++ ++ if((ret != GNUTLS_E_AGAIN) && ++ (ret != GNUTLS_E_INTERRUPTED)) ++ break; ++ ++ FD_ZERO(&fds_read); ++ FD_ZERO(&fds_write); ++ ++ FD_SET(chan->fd, &fds_read); ++ FD_SET(chan->fd, &fds_write); ++ select(chan->fd+1, &fds_read, &fds_write, NULL, &timeout); ++ } ++ if (ret < 0) { ++ g_warning( "*** Handshake failed: %s", gnutls_strerror(ret)); ++ if (ret == GNUTLS_E_FATAL_ALERT_RECEIVED) { ++ g_warning( "*** alert: %s", gnutls_alert_get_name (gnutls_alert_get (chan->session))); ++ } ++ ++ ++ } else { ++ chan->have_handshaked = 1; ++ g_warning("- Handshake was completed"); ++ } ++ ++ return ret; ++ ++} ++#if GLIB_MAJOR_VERSION < 2 ++ ++#ifdef G_CAN_INLINE ++G_INLINE_FUNC ++#else ++static ++#endif ++GIOError ssl_errno(gint e) ++{ ++ switch(e) ++ { ++ case EINVAL: ++ return G_IO_ERROR_INVAL; ++ case EINTR: ++ case EAGAIN: ++ return G_IO_ERROR_AGAIN; ++ default: ++ return G_IO_ERROR_INVAL; ++ } ++ /*UNREACH*/ ++ return G_IO_ERROR_INVAL; ++} ++ ++static GIOError irssi_ssl_cert_step(GIOSSLChannel *chan) ++{ ++ g_warning("irssi_ssl_cert_step"); ++ /*UNREACH*/ ++ return G_IO_ERROR_INVAL; ++} ++ ++static GIOError irssi_ssl_read(GIOChannel *handle, gchar *buf, guint len, guint *ret) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ gint err; ++ ++ err = gnutls_record_recv(chan->session, buf, len); ++ if(err < 0) { ++ *ret = 0; ++ return ssl_errno(errno); ++ } else { ++ *ret = err; ++ return G_IO_ERROR_NONE; ++ } ++ /*UNREACH*/ ++ return -1; ++} ++ ++static GIOError irssi_ssl_write(GIOChannel *handle, gchar *buf, guint len, guint *ret) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ gint err; ++ ++ ++ err = gnutls_record_send(chan->session, buf, len); ++ if(err < 0) ++ { ++ *ret = 0; ++ return ssl_errno(errno); ++ } ++ else ++ { ++ *ret = err; ++ return G_IO_ERROR_NONE; ++ } ++ /*UNREACH*/ ++ return G_IO_ERROR_INVAL; ++} ++ ++static GIOError irssi_ssl_seek(GIOChannel *handle, gint offset, GSeekType type) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ GIOError e; ++ e = g_io_channel_seek(chan->giochan, offset, type); ++ return (e == G_IO_ERROR_NONE) ? G_IO_ERROR_NONE : G_IO_ERROR_INVAL; ++} ++ ++static void irssi_ssl_close(GIOChannel *handle) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ g_io_channel_close(chan->giochan); ++} ++ ++static guint irssi_ssl_create_watch(GIOChannel *handle, gint priority, GIOCondition cond, ++ GIOFunc func, gpointer data, GDestroyNotify notify) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ ++ return chan->giochan->funcs->io_add_watch(handle, priority, cond, func, data, notify); ++} ++ ++/* ssl function pointers */ ++static GIOFuncs irssi_ssl_channel_funcs = ++{ ++ irssi_ssl_read, ++ irssi_ssl_write, ++ irssi_ssl_seek, ++ irssi_ssl_close, ++ irssi_ssl_create_watch, ++ irssi_ssl_free ++}; ++ ++#else /* GLIB_MAJOR_VERSION < 2 */ ++ ++#ifdef G_CAN_INLINE ++G_INLINE_FUNC ++#else ++static ++#endif ++GIOStatus ssl_errno(gint e) ++{ ++ switch(e) ++ { ++ case EINVAL: ++ return G_IO_STATUS_ERROR; ++ case EINTR: ++ case EAGAIN: ++ return G_IO_STATUS_AGAIN; ++ default: ++ return G_IO_STATUS_ERROR; ++ } ++ /*UNREACH*/ ++ return G_IO_STATUS_ERROR; ++} ++ ++static GIOStatus irssi_ssl_cert_step(GIOSSLChannel *chan) ++{ ++ g_warning("irssi_ssl_cert_step"); ++ /*UNREACH*/ ++ return G_IO_STATUS_ERROR; ++} ++ ++static GIOStatus irssi_ssl_read(GIOChannel *handle, gchar *buf, guint len, guint *ret, GError **gerr) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ gint err; ++ if (!chan->have_handshaked) { ++ irssi_ssl_handshake(handle); ++ } ++ ++ ++ err = gnutls_record_recv(chan->session, buf, len); ++ if(err < 0) ++ { ++ *ret = 0; ++ return ssl_errno(errno); ++ } ++ else ++ { ++ *ret = err; ++ return G_IO_STATUS_NORMAL; ++ } ++ /*UNREACH*/ ++ return G_IO_STATUS_ERROR; ++} ++ ++static GIOStatus irssi_ssl_write(GIOChannel *handle, const gchar *buf, gsize len, gsize *ret, GError **gerr) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ gint err; ++ ++ if (!chan->have_handshaked) { ++ irssi_ssl_handshake(handle); ++ } ++ ++ ++ err = gnutls_record_send(chan->session, buf, len); ++ if(err < 0) ++ { ++ *ret = 0; ++ return ssl_errno(errno); ++ } ++ else ++ { ++ *ret = err; ++ return G_IO_STATUS_NORMAL; ++ } ++ /*UNREACH*/ ++ return G_IO_STATUS_ERROR; ++} ++ ++static GIOStatus irssi_ssl_seek(GIOChannel *handle, gint64 offset, GSeekType type, GError **gerr) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ GIOError e; ++ e = g_io_channel_seek(chan->giochan, offset, type); ++ return (e == G_IO_ERROR_NONE) ? G_IO_STATUS_NORMAL : G_IO_STATUS_ERROR; ++} ++ ++static GIOStatus irssi_ssl_close(GIOChannel *handle, GError **gerr) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ g_io_channel_close(chan->giochan); ++ ++ return G_IO_STATUS_NORMAL; ++} ++ ++static GSource *irssi_ssl_create_watch(GIOChannel *handle, GIOCondition cond) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ ++ return chan->giochan->funcs->io_create_watch(handle, cond); ++} ++ ++static GIOStatus irssi_ssl_set_flags(GIOChannel *handle, GIOFlags flags, GError **gerr) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ ++ return chan->giochan->funcs->io_set_flags(handle, flags, gerr); ++} ++ ++static GIOFlags irssi_ssl_get_flags(GIOChannel *handle) ++{ ++ GIOSSLChannel *chan = (GIOSSLChannel *)handle; ++ ++ return chan->giochan->funcs->io_get_flags(handle); ++} ++ ++static GIOFuncs irssi_ssl_channel_funcs = { ++ irssi_ssl_read, ++ irssi_ssl_write, ++ irssi_ssl_seek, ++ irssi_ssl_close, ++ irssi_ssl_create_watch, ++ irssi_ssl_free, ++ irssi_ssl_set_flags, ++ irssi_ssl_get_flags ++}; ++ ++#endif ++ ++static void tls_log_func(int level, const char *str) ++{ ++ ++ g_warning( "|<%d>| %s", level, g_strchomp(str)); ++} ++ ++static gboolean irssi_ssl_init(void) ++{ ++ g_warning("irssi_ssl_init"); ++ int ret; ++ if ((ret = gnutls_global_init())) { ++ g_warning( "failed to init gnutls: %s", gnutls_strerror(ret)); ++ return FALSE; ++ } ++ gnutls_global_set_log_function(tls_log_func); ++ gnutls_global_set_log_level(0); ++ ++ return TRUE; ++ ++} ++ ++int is_socket_connected(int fd) { ++ fd_set fds_write; ++ struct timeval timeout={0,0}; ++ FD_ZERO(&fds_write); ++ FD_SET(fd, &fds_write); ++ select(fd+1, 0, &fds_write, NULL, &timeout); ++ ++ struct sockaddr s; ++ socklen_t s_len; ++ if (getpeername(fd,&s,&s_len) == -1 && errno == ENOTCONN) { ++ char ch; ++ read(fd,&ch,1); ++ return FALSE; ++ } ++ return TRUE; ++} ++ ++ ++/*static*/ GIOChannel *irssi_ssl_get_iochannel(GIOChannel *handle, const char *mycert, const char *mypkey, const char *cafile, const char *capath, gboolean verify) ++{ ++ g_warning("irssi_ssl_get_iochannel"); ++ GIOSSLChannel *chan; ++ GIOChannel *gchan; ++ int ret, fd; ++ gnutls_session session; ++ ++ ++ gnutls_anon_client_credentials anon_cred; ++ gnutls_certificate_credentials xcred; ++ ++ int protocol_priority[] = { GNUTLS_TLS1_1, GNUTLS_TLS1_0, GNUTLS_SSL3, 0 }; ++ int kx_priority[] = ++ { GNUTLS_KX_DHE_RSA, GNUTLS_KX_DHE_DSS, GNUTLS_KX_RSA, ++ GNUTLS_KX_SRP_RSA, GNUTLS_KX_SRP_DSS, GNUTLS_KX_SRP, ++ /* Do not use anonymous authentication, unless you know what that means */ ++ GNUTLS_KX_RSA_EXPORT, GNUTLS_KX_ANON_DH, 0 ++ }; ++ int cipher_priority[] = ++ { GNUTLS_CIPHER_AES_256_CBC, GNUTLS_CIPHER_AES_128_CBC, ++ GNUTLS_CIPHER_3DES_CBC, GNUTLS_CIPHER_ARCFOUR_128, ++ GNUTLS_CIPHER_ARCFOUR_40, 0 ++ }; ++ int comp_priority[] = { GNUTLS_COMP_ZLIB, GNUTLS_COMP_NULL, 0 }; ++ int mac_priority[] = ++ { GNUTLS_MAC_SHA, GNUTLS_MAC_MD5, GNUTLS_MAC_RMD160, 0 }; ++ int cert_type_priority[] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 }; ++ ++ ++ g_return_val_if_fail(handle != NULL, NULL); ++ ++ if(!irssi_ssl_init()) ++ return NULL; ++ ++ fd = g_io_channel_unix_get_fd(handle); ++//if(!(fd = g_io_channel_unix_get_fd(handle)) || !is_socket_connected(fd)) { ++// return NULL; ++// } ++ ++ g_warning ("irssi_ssl_get_iochannel sanity checks complete"); ++ ++ ++ gnutls_certificate_allocate_credentials(&xcred); ++ gnutls_certificate_set_verify_flags(xcred, GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT); ++ gnutls_anon_allocate_client_credentials(&anon_cred); ++ if (cafile) { ++ /* sets the trusted cas file */ ++ if ((ret = gnutls_certificate_set_x509_trust_file(xcred, cafile, GNUTLS_X509_FMT_PEM)) < 0) { ++ g_warning( "gnutls_certificate_set_x509_trust_file failed: %s", gnutls_strerror(ret)); ++ } ++ } ++ ++ /* Initialize TLS session */ ++ if (gnutls_init(&session, GNUTLS_CLIENT) < 0 ) { ++ g_warning( "gnutls_init failed: %s", gnutls_strerror(ret)); ++ } ++ ++ gnutls_certificate_type_set_priority(session, cert_type_priority); ++ gnutls_cipher_set_priority(session, cipher_priority); ++ gnutls_compression_set_priority(session, comp_priority); ++ gnutls_kx_set_priority(session, kx_priority); ++ gnutls_protocol_set_priority(session, protocol_priority); ++ gnutls_mac_set_priority(session, mac_priority); ++ ++ gnutls_dh_set_prime_bits(session, 512); ++ ++ gnutls_credentials_set(session, GNUTLS_CRD_ANON, anon_cred); ++ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred); ++ ++ ++ /* connect to the peer */ ++ gnutls_transport_set_ptr(session, (gnutls_transport_ptr) fd); ++ ++ ++ chan = g_new0(GIOSSLChannel, 1); ++ chan->fd = fd; ++ chan->giochan = handle; ++ chan->session = session; ++ //chan->got_cert = cert != NULL; ++ chan->verify = verify; ++ chan->anon_cred = anon_cred; ++ chan->xcred = xcred; ++ ++ gchan = (GIOChannel *)chan; ++ gchan->funcs = &irssi_ssl_channel_funcs; ++ g_io_channel_init(gchan); ++ ++ /* Perform the TLS handshake */ ++ return gchan; ++} ++ ++GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, IPADDR *my_ip, const char *cert, const char *pkey, const char *cafile, const char *capath, gboolean verify) ++{ ++ GIOChannel *handle, *ssl_handle; ++ ++ handle = net_connect_ip(ip, port, my_ip); ++ ssl_handle = irssi_ssl_get_iochannel(handle, cert, pkey, cafile, capath, verify); ++ if (ssl_handle == NULL) ++ g_io_channel_unref(handle); ++ return ssl_handle; ++} ++ ++#else /* HAVE_OPENSSL */ ++ ++GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, IPADDR *my_ip, const char *cert, const char *pkey, const char *cafile, const char *capath, gboolean verify) ++{ ++ g_warning("Connection failed: SSL support not enabled in this build."); ++ errno = ENOSYS; ++ return NULL; ++} ++ ++#endif /* ! HAVE_OPENSSL */ +diff -urNad --exclude=CVS --exclude=.svn ./src/fe-none/Makefile.am /tmp/dpep-work.Xa2n5L/irssi/src/fe-none/Makefile.am +--- ./src/fe-none/Makefile.am 2005-07-17 16:00:41.000000000 +0300 ++++ /tmp/dpep-work.Xa2n5L/irssi/src/fe-none/Makefile.am 2005-07-17 16:46:18.000000000 +0300 +@@ -12,7 +12,8 @@ + @COMMON_NOUI_LIBS@ \ + @PERL_LINK_LIBS@ \ + @PERL_LINK_FLAGS@ \ +- @PROG_LIBS@ ++ @PROG_LIBS@ \ ++ -lgnutls + + botti_SOURCES = \ + irssi.c +diff -urNad --exclude=CVS --exclude=.svn ./src/fe-text/Makefile.am /tmp/dpep-work.Xa2n5L/irssi/src/fe-text/Makefile.am +--- ./src/fe-text/Makefile.am 2005-07-17 16:00:44.000000000 +0300 ++++ /tmp/dpep-work.Xa2n5L/irssi/src/fe-text/Makefile.am 2005-07-17 16:46:18.000000000 +0300 +@@ -21,7 +21,9 @@ + @PERL_FE_LINK_LIBS@ \ + @PERL_LINK_FLAGS@ \ + @PROG_LIBS@ \ +- @TEXTUI_LIBS@ ++ @TEXTUI_LIBS@ \ ++ -lgnutls ++ + + tparm_sources = \ + tparm.c --- irssi-0.8.15.orig/debian/patches/12manpage-fix +++ irssi-0.8.15/debian/patches/12manpage-fix @@ -0,0 +1,16 @@ +Author: Gerfried Fuchs vim:ft=diff: +Description: Fix the hyphens in the synopsis + +Index: irssi-0.8.15~rc1/docs/irssi.1 +=================================================================== +--- irssi-0.8.15~rc1.orig/docs/irssi.1 ++++ irssi-0.8.15~rc1/docs/irssi.1 +@@ -3,7 +3,7 @@ + Irssi \- a modular IRC client for UNIX + .SH SYNOPSIS + .B irssi +-[-dv!?] [-c server] [-p port] [-n nickname] [-w password] [-h hostname] ++[\-dv!?] [\-c server] [\-p port] [\-n nickname] [\-w password] [\-h hostname] + .SH DESCRIPTION + .B Irssi + is a modular Internet Relay Chat client. It is highly extensible and --- irssi-0.8.15.orig/debian/patches/17cumode_space-fix +++ irssi-0.8.15/debian/patches/17cumode_space-fix @@ -0,0 +1,23 @@ +Author: Pierre Habouzit vim:ft:diff: +Description: Avoid segfault in with cumode_space + +Index: b/src/irc/core/irc-expandos.c +=================================================================== +--- a/src/irc/core/irc-expandos.c ++++ b/src/irc/core/irc-expandos.c +@@ -106,7 +106,14 @@ static char *expando_cumode_space(SERVER + return ""; + + ret = expando_cumode(server, item, free_ret); +- return *ret == '\0' ? " " : ret; ++ if (*ret == '\0') { ++ if (*free_ret) { ++ g_free(ret); ++ *free_ret = FALSE; ++ } ++ ret = " "; ++ } ++ return ret; + } + + static void event_join(IRC_SERVER_REC *server, const char *data, --- irssi-0.8.15.orig/debian/patches/18bind_utf8-fix +++ irssi-0.8.15/debian/patches/18bind_utf8-fix @@ -0,0 +1,28 @@ +Author: kyak vim:ft=diff: +Description: fix for binding utf8 keys +Origin: other +Bug: http://bugs.irssi.org/index.php?do=details&task_id=553 + +--- a/src/fe-common/core/keyboard.c ++++ b/src/fe-common/core/keyboard.c +@@ -304,6 +304,20 @@ + /* possibly beginning of keycombo */ + start = key; + last_hyphen = FALSE; ++ } else if (g_utf8_validate(key, -1, NULL)) { ++ /* Assume we are looking at the start of a ++ * multibyte sequence we will receive as-is, ++ * so add it to the list as-is. ++ */ ++ const char *p, *end = g_utf8_next_char(key); ++ for (p = key; p != end; p++) ++ expand_out_char(*out, *p); ++ expand_out_char(*out, '-'); ++ /* The for loop skips past the remaining character. ++ * Nasty, I know... ++ */ ++ key = end - 1; ++ last_hyphen = FALSE; + } else { + expand_out_char(*out, *key); + expand_out_char(*out, '-'); --- irssi-0.8.15.orig/debian/patches/19disable_sslv2 +++ irssi-0.8.15/debian/patches/19disable_sslv2 @@ -0,0 +1,14 @@ +Description: Do not use SSLv2 protocol +Origin: upstream, r5136 +Author: bazerka + +--- a/src/core/network-openssl.c ++++ b/src/core/network-openssl.c +@@ -406,6 +406,7 @@ + g_error("Could not allocate memory for SSL context"); + return NULL; + } ++ SSL_CTX_set_options(ctx, SSL_OP_ALL | SSL_OP_NO_SSLv2); + + if (mycert && *mycert) { + char *scert = NULL, *spkey = NULL; --- irssi-0.8.15.orig/debian/patches/20fix_ssl_proxy_hostname_check +++ irssi-0.8.15/debian/patches/20fix_ssl_proxy_hostname_check @@ -0,0 +1,26 @@ +Description: fix SSL CN check for proxy setup +Origin: Ubuntu, https://bugs.launchpad.net/ubuntu/+source/irssi/+bug/565182 +Author: Steve Langasek + +--- a/src/core/servers.c ++++ b/src/core/servers.c +@@ -209,6 +209,7 @@ + char *errmsg2; + char ipaddr[MAX_IP_LEN]; + int port; ++ char *hostname; + + g_return_if_fail(ip != NULL || unix_socket != NULL); + +@@ -223,8 +224,10 @@ + server->connrec->own_ip4); + port = server->connrec->proxy != NULL ? + server->connrec->proxy_port : server->connrec->port; ++ hostname = server->connrec->proxy != NULL ? ++ server->connrec->proxy : server->connrec->address; + handle = server->connrec->use_ssl ? +- net_connect_ip_ssl(ip, port, server->connrec->address, own_ip, server->connrec->ssl_cert, server->connrec->ssl_pkey, ++ net_connect_ip_ssl(ip, port, hostname, own_ip, server->connrec->ssl_cert, server->connrec->ssl_pkey, + server->connrec->ssl_cafile, server->connrec->ssl_capath, server->connrec->ssl_verify) : + net_connect_ip(ip, port, own_ip); + } else { --- irssi-0.8.15.orig/debian/patches/90irc-ubuntu-com +++ irssi-0.8.15/debian/patches/90irc-ubuntu-com @@ -0,0 +1,10 @@ +Index: irssi-0.8.13-1ubuntu1/irssi.conf +=================================================================== +--- irssi-0.8.13-1ubuntu1.orig/irssi.conf 2009-05-05 15:39:37.000000000 -0500 ++++ irssi-0.8.13-1ubuntu1/irssi.conf 2009-05-05 15:40:52.000000000 -0500 +@@ -1,4 +1,5 @@ + servers = ( ++ { address = "irc.ubuntu.com"; chatnet = "Ubuntu"; port = "8001"; }, + { address = "eu.irc6.net"; chatnet = "IRCnet"; port = "6667"; }, + { address = "irc.open-ircnet.net"; chatnet = "IRCnet"; port = "6667"; }, + { address = "irc.efnet.org"; chatnet = "EFNet"; port = "6667"; }, --- irssi-0.8.15.orig/debian/patches/CVE-2016-7553.patch +++ irssi-0.8.15/debian/patches/CVE-2016-7553.patch @@ -0,0 +1,127 @@ +Backport of: + +From f1b1eb154baa684fad5d65bf4dff79c8ded8b65a Mon Sep 17 00:00:00 2001 +From: Juerd Waalboer +Date: Thu, 22 Sep 2016 02:26:09 +0200 +Subject: [PATCH] Fix disclosure via filesystem + +buf.pl restores the scrollbuffer between "/upgrade"s by writing the +contents to a file, and reading that after the new process was spawned. +Through that file, the contents of (private) chat conversations may leak to +other users. + +Careful users with a limited umask (e.g. 077) are not affected by this bug. +However, most Linux systems default to a umask of 022, meaning that files +written without further restricting the permissions, are readable by any +user. + +This patch sets a safer umask of 077 for the scrollbuffer dump, and will +remove the temporary file after use to further reduce the attack surface. +Additionally, it will remove any remaining temporary scrollbuffer file left +in place, like those written by previous versions of the script. +--- + scripts/buf.pl | 42 ++++++++++++++++++++++++++++-------------- + 1 file changed, 28 insertions(+), 14 deletions(-) + +Index: irssi-0.8.15/scripts/buf.pl +=================================================================== +--- irssi-0.8.15.orig/scripts/buf.pl 2017-01-25 13:04:01.859013032 -0500 ++++ irssi-0.8.15/scripts/buf.pl 2017-01-25 13:05:08.979835083 -0500 +@@ -5,7 +5,7 @@ + settings_get_str settings_get_bool channels windows + settings_add_str settings_add_bool get_irssi_dir + window_find_refnum signal_stop); +-$VERSION = '2.13'; ++$VERSION = '2.20'; + %IRSSI = ( + authors => 'Juerd', + contact => 'juerd@juerd.nl', +@@ -13,10 +13,8 @@ + description => 'Saves the buffer for /upgrade, so that no information is lost', + license => 'Public Domain', + url => 'http://juerd.nl/irssi/', +- changed => 'Mon May 13 19:41 CET 2002', +- changes => 'Severe formatting bug removed * oops, I ' . +- 'exposed Irssi to ircII foolishness * sorry ' . +- '** removed logging stuff (this is a fix)', ++ changed => 'Thu Sep 22 01:37 CEST 2016', ++ changes => 'Fixed file permissions (leaked everything via filesystem)', + note1 => 'This script HAS TO BE in your scripts/autorun!', + note2 => 'Perl support must be static or in startup', + ); +@@ -39,9 +37,15 @@ + + my %suppress; + ++sub _filename { sprintf '%s/scrollbuffer', get_irssi_dir } ++ + sub upgrade { +- open BUF, sprintf('>%s/scrollbuffer', get_irssi_dir) or die $!; +- print BUF join("\0", map $_->{server}->{address} . $_->{name}, channels), "\n"; ++ my $fn = _filename; ++ my $old_umask = umask 0077; ++ open my $fh, q{>}, $fn or die "open $fn: $!"; ++ umask $old_umask; ++ ++ print $fh join("\0", map $_->{server}->{address} . $_->{name}, channels), "\n"; + for my $window (windows) { + next unless defined $window; + next if $window->{name} eq 'status'; +@@ -57,36 +61,39 @@ + redo if defined $line; + } + } +- printf BUF "%s:%s\n%s", $window->{refnum}, $lines, $buf; ++ printf $fh "%s:%s\n%s", $window->{refnum}, $lines, $buf; + } +- close BUF; ++ close $fh; + unlink sprintf("%s/sessionconfig", get_irssi_dir); + command 'layout save'; + command 'save'; + } + + sub restore { +- open BUF, sprintf('<%s/scrollbuffer', get_irssi_dir) or die $!; +- my @suppress = split /\0/, ; ++ my $fn = _filename; ++ open my $fh, q{<}, $fn or die "open $fn: $!"; ++ unlink $fn or warn "unlink $fn: $!"; ++ ++ my @suppress = split /\0/, readline $fh; + if (settings_get_bool 'upgrade_suppress_join') { + chomp $suppress[-1]; + @suppress{@suppress} = (2) x @suppress; + } + active_win->command('^window scroll off'); +- while (my $bla = ){ ++ while (my $bla = readline $fh){ + chomp $bla; + my ($refnum, $lines) = split /:/, $bla; + next unless $lines; + my $window = window_find_refnum $refnum; + unless (defined $window){ +- for 1..$lines; ++ readline $fh for 1..$lines; + next; + } + my $view = $window->view; + $view->remove_all_lines(); + $view->redraw(); + my $buf = ''; +- $buf .= for 1..$lines; ++ $buf .= readline $fh for 1..$lines; + my $sep = settings_get_str 'upgrade_separator'; + $sep .= "\n" if $sep ne ''; + $window->gui_printtext_after(undef, MSGLEVEL_CLIENTNOTICE, "$buf\cO$sep"); +@@ -120,3 +127,10 @@ + unless (-f sprintf('%s/scripts/autorun/buf.pl', get_irssi_dir)) { + Irssi::print('PUT THIS SCRIPT IN ~/.irssi/scripts/autorun/ BEFORE /UPGRADING!!'); + } ++ ++# Remove any left-over file. If 'session' doesn't exist (created by irssi ++# during /UPGRADE), neither should our file. ++unless (-e sprintf('%s/session', get_irssi_dir)) { ++ my $fn = _filename; ++ unlink $fn or warn "unlink $fn: $!" if -e $fn; ++} --- irssi-0.8.15.orig/debian/patches/CVE-2017-1096x.patch +++ irssi-0.8.15/debian/patches/CVE-2017-1096x.patch @@ -0,0 +1,71 @@ +From 29ebac987da1da2c892aed5ed329256b7bc94bca Mon Sep 17 00:00:00 2001 +From: Nei +Date: Thu, 29 Jun 2017 13:48:44 +0000 +Subject: [PATCH 1/2] Check return value of localtime + +Fixes #10 +--- + src/core/misc.c | 3 +++ + 1 file changed, 3 insertions(+) + +From 73b851c39c11d01199e6c040749fb20e468f6c8d Mon Sep 17 00:00:00 2001 +From: ailin-nemui +Date: Tue, 4 Jul 2017 16:10:55 +0200 +Subject: [PATCH 2/2] correct GHashTable usage + +--- + src/core/nicklist.c | 17 ++++++++++------- + 1 file changed, 10 insertions(+), 7 deletions(-) + +Index: irssi-0.8.15/src/core/misc.c +=================================================================== +--- irssi-0.8.15.orig/src/core/misc.c 2017-10-25 08:01:08.571235584 -0400 ++++ irssi-0.8.15/src/core/misc.c 2017-10-25 08:01:08.567235544 -0400 +@@ -611,6 +611,9 @@ char *my_asctime(time_t t) + int len; + + tm = localtime(&t); ++ if (tm == NULL) ++ return g_strdup("???"); ++ + str = g_strdup(asctime(tm)); + + len = strlen(str); +Index: irssi-0.8.15/src/core/nicklist.c +=================================================================== +--- irssi-0.8.15.orig/src/core/nicklist.c 2017-10-25 08:01:08.571235584 -0400 ++++ irssi-0.8.15/src/core/nicklist.c 2017-10-25 08:01:08.567235544 -0400 +@@ -54,23 +54,26 @@ static void nick_hash_add(CHANNEL_REC *c + + static void nick_hash_remove(CHANNEL_REC *channel, NICK_REC *nick) + { +- NICK_REC *list; ++ NICK_REC *list, *newlist; + + list = g_hash_table_lookup(channel->nicks, nick->nick); + if (list == NULL) + return; + +- if (list == nick || list->next == NULL) { +- g_hash_table_remove(channel->nicks, nick->nick); +- if (list->next != NULL) { +- g_hash_table_insert(channel->nicks, nick->next->nick, +- nick->next); +- } ++ if (list == nick) { ++ newlist = nick->next; + } else { ++ newlist = list; + while (list->next != nick) + list = list->next; + list->next = nick->next; + } ++ ++ g_hash_table_remove(channel->nicks, nick->nick); ++ if (newlist != NULL) { ++ g_hash_table_insert(channel->nicks, newlist->nick, ++ newlist); ++ } + } + + /* Add new nick to list */ --- irssi-0.8.15.orig/debian/patches/CVE-2017-15xxx.patch +++ irssi-0.8.15/debian/patches/CVE-2017-15xxx.patch @@ -0,0 +1,220 @@ +From 43e44d553d44e313003cee87e6ea5e24d68b84a1 Mon Sep 17 00:00:00 2001 +From: Nei +Date: Fri, 20 Oct 2017 13:31:26 +0000 +Subject: [PATCH] Merge branch 'security' into 'master' + +Security + +Closes GL#12, GL#13, GL#14, GL#15, GL#16 + +See merge request irssi/irssi!23 +--- + src/core/recode.c | 7 ++++++- + src/fe-common/core/themes.c | 7 ++++++- + src/irc/core/channel-events.c | 2 +- + src/irc/core/channels-query.c | 7 ++++--- + src/irc/core/irc-servers.c | 5 ++++- + src/irc/dcc/dcc-chat.c | 21 +++++++++++++++++++++ + src/irc/dcc/dcc-get.c | 17 +++++++++++++++-- + src/irc/dcc/dcc-send.c | 10 ++++++++++ + 8 files changed, 67 insertions(+), 9 deletions(-) + +Index: irssi-0.8.15/src/fe-common/core/themes.c +=================================================================== +--- irssi-0.8.15.orig/src/fe-common/core/themes.c 2017-10-25 08:01:20.643356960 -0400 ++++ irssi-0.8.15/src/fe-common/core/themes.c 2017-10-25 08:01:20.571356236 -0400 +@@ -524,7 +524,7 @@ static char *theme_format_compress_color + /* a normal character */ + g_string_append_c(str, *format); + format++; +- } else { ++ } else if (format[1] != '\0') { + /* %format */ + format++; + if (IS_OLD_FORMAT(*format, last_fg, last_bg)) { +@@ -547,6 +547,11 @@ static char *theme_format_compress_color + last_bg = *format; + } + format++; ++ } else { ++ /* % at end of string */ ++ format++; ++ g_string_append_c(str, '%'); ++ g_string_append_c(str, '%'); + } + } + +Index: irssi-0.8.15/src/irc/core/channel-events.c +=================================================================== +--- irssi-0.8.15.orig/src/irc/core/channel-events.c 2017-10-25 08:01:20.643356960 -0400 ++++ irssi-0.8.15/src/irc/core/channel-events.c 2017-10-25 08:01:20.583356356 -0400 +@@ -37,7 +37,7 @@ static void check_join_failure(IRC_SERVE + channel++; /* server didn't understand !channels */ + + chanrec = channel_find(SERVER(server), channel); +- if (chanrec == NULL && channel[0] == '!') { ++ if (chanrec == NULL && channel[0] == '!' && strlen(channel) > 6) { + /* it probably replied with the full !channel name, + find the channel with the short name.. */ + chan2 = g_strdup_printf("!%s", channel+6); +Index: irssi-0.8.15/src/irc/core/channels-query.c +=================================================================== +--- irssi-0.8.15.orig/src/irc/core/channels-query.c 2017-10-25 08:01:20.643356960 -0400 ++++ irssi-0.8.15/src/irc/core/channels-query.c 2017-10-25 08:01:20.591356437 -0400 +@@ -119,21 +119,22 @@ static void query_remove_all(IRC_CHANNEL + int n; + + rec = channel->server->chanqueries; ++ if (rec == NULL) return; + + /* remove channel from query lists */ + for (n = 0; n < CHANNEL_QUERIES; n++) + rec->queries[n] = g_slist_remove(rec->queries[n], channel); + rec->current_queries = g_slist_remove(rec->current_queries, channel); + +- query_check(channel->server); ++ if (!channel->server->disconnected) ++ query_check(channel->server); + } + + static void sig_channel_destroyed(IRC_CHANNEL_REC *channel) + { + g_return_if_fail(channel != NULL); + +- if (IS_IRC_CHANNEL(channel) && !channel->server->disconnected && +- !channel->synced) ++ if (IS_IRC_CHANNEL(channel)) + query_remove_all(channel); + } + +Index: irssi-0.8.15/src/irc/dcc/dcc-chat.c +=================================================================== +--- irssi-0.8.15.orig/src/irc/dcc/dcc-chat.c 2017-10-25 08:01:20.643356960 -0400 ++++ irssi-0.8.15/src/irc/dcc/dcc-chat.c 2017-10-25 08:01:20.599356517 -0400 +@@ -66,6 +66,13 @@ CHAT_DCC_REC *dcc_chat_create(IRC_SERVER + dcc->id = dcc_chat_get_new_id(nick); + + dcc_init_rec(DCC(dcc), server, chat, nick, arg); ++ if (dcc->module_data == NULL) { ++ /* failed to successfully init; TODO: change init_rec API */ ++ g_free(dcc->id); ++ g_free(dcc); ++ return NULL; ++ } ++ + return dcc; + } + +@@ -471,6 +478,7 @@ static void cmd_dcc_chat(const char *dat + /* We are accepting a passive DCC CHAT. */ + dcc_chat_passive(dcc); + } ++ cmd_params_free(free_arg); + return; + } + +@@ -485,6 +493,11 @@ static void cmd_dcc_chat(const char *dat + cmd_param_error(CMDERR_NOT_CONNECTED); + + dcc = dcc_chat_create(server, NULL, nick, "chat"); ++ if (dcc == NULL) { ++ cmd_params_free(free_arg); ++ g_warn_if_reached(); ++ return; ++ } + + if (g_hash_table_lookup(optlist, "passive") == NULL) { + /* Standard DCC CHAT... let's listen for incoming connections */ +@@ -627,6 +640,9 @@ static void ctcp_msg_dcc_chat(IRC_SERVER + } + passive = paramcount == 4 && strcmp(params[2], "0") == 0; + ++ if (nick == NULL) ++ nick = ""; ++ + dcc = DCC_CHAT(dcc_find_request(DCC_CHAT_TYPE, nick, NULL)); + if (dcc != NULL) { + if (dcc_is_listening(dcc)) { +@@ -658,6 +674,11 @@ static void ctcp_msg_dcc_chat(IRC_SERVER + } + + dcc = dcc_chat_create(server, chat, nick, params[0]); ++ if (dcc == NULL) { ++ g_strfreev(params); ++ g_warn_if_reached(); ++ return; ++ } + dcc->target = g_strdup(target); + dcc->port = atoi(params[2]); + +Index: irssi-0.8.15/src/irc/dcc/dcc-get.c +=================================================================== +--- irssi-0.8.15.orig/src/irc/dcc/dcc-get.c 2017-10-25 08:01:20.643356960 -0400 ++++ irssi-0.8.15/src/irc/dcc/dcc-get.c 2017-10-25 08:01:20.603356558 -0400 +@@ -41,6 +41,12 @@ GET_DCC_REC *dcc_get_create(IRC_SERVER_R + dcc->fhandle = -1; + + dcc_init_rec(DCC(dcc), server, chat, nick, arg); ++ if (dcc->module_data == NULL) { ++ /* failed to successfully init; TODO: change API */ ++ g_free(dcc); ++ return NULL; ++ } ++ + return dcc; + } + +@@ -418,9 +424,10 @@ static void ctcp_msg_dcc_send(IRC_SERVER + int p_id = -1; + int passive = FALSE; + +- if (addr == NULL) { ++ if (addr == NULL) + addr = ""; +- } ++ if (nick == NULL) ++ nick = ""; + + /* SEND
[...] */ + /* SEND
0 (DCC SEND passive protocol) */ +@@ -500,6 +507,12 @@ static void ctcp_msg_dcc_send(IRC_SERVER + dcc_destroy(DCC(dcc)); /* remove the old DCC */ + + dcc = dcc_get_create(server, chat, nick, fname); ++ if (dcc == NULL) { ++ g_free(address); ++ g_free(fname); ++ g_warn_if_reached(); ++ return; ++ } + dcc->target = g_strdup(target); + + if (passive && port == 0) +Index: irssi-0.8.15/src/irc/dcc/dcc-send.c +=================================================================== +--- irssi-0.8.15.orig/src/irc/dcc/dcc-send.c 2017-10-25 08:01:20.643356960 -0400 ++++ irssi-0.8.15/src/irc/dcc/dcc-send.c 2017-10-25 08:01:20.611356638 -0400 +@@ -237,6 +237,12 @@ static SEND_DCC_REC *dcc_send_create(IRC + dcc->queue = -1; + + dcc_init_rec(DCC(dcc), server, chat, nick, arg); ++ if (dcc->module_data == NULL) { ++ /* failed to successfully init; TODO: change API */ ++ g_free(dcc); ++ return NULL; ++ } ++ + return dcc; + } + +@@ -421,6 +427,10 @@ static int dcc_send_one_file(int queue, + + dcc = dcc_send_create(server, chat, target, fname); + g_free(str); ++ if (dcc == NULL) { ++ g_warn_if_reached(); ++ return FALSE; ++ } + + dcc->handle = handle; + dcc->port = port; --- irssi-0.8.15.orig/debian/patches/CVE-2017-5xxx.patch +++ irssi-0.8.15/debian/patches/CVE-2017-5xxx.patch @@ -0,0 +1,69 @@ +backport of: + +From 6c6c42e3d1b49d90aacc0b67f8540471cae02a1d Mon Sep 17 00:00:00 2001 +From: ailin-nemui +Date: Tue, 3 Jan 2017 13:44:58 +0100 +Subject: [PATCH] Merge branch 'security' into 'master' + +See merge request !7 +--- + src/fe-common/core/formats.c | 10 +++++++++- + src/fe-text/term-terminfo.c | 13 ++++++++++--- + src/irc/core/irc-nicklist.c | 6 +++++- + src/irc/core/irc-queries.c | 2 ++ + 4 files changed, 26 insertions(+), 5 deletions(-) + +Index: irssi-0.8.15/src/fe-common/core/formats.c +=================================================================== +--- irssi-0.8.15.orig/src/fe-common/core/formats.c 2017-01-25 13:06:13.692627830 -0500 ++++ irssi-0.8.15/src/fe-common/core/formats.c 2017-01-25 13:06:13.692627830 -0500 +@@ -68,7 +68,7 @@ + + if (flags == NULL) { + /* flags are being ignored - skip the code */ +- while (**format != ']') ++ while (**format != ']' && **format != '\0') + (*format)++; + return; + } +@@ -161,6 +161,10 @@ + case '[': + /* code */ + format_expand_code(format, out, flags); ++ if ((*format)[0] == '\0') ++ /* oops, reached end prematurely */ ++ (*format)--; ++ + break; + default: + /* check if it's a background color */ +Index: irssi-0.8.15/src/irc/core/irc-nicklist.c +=================================================================== +--- irssi-0.8.15.orig/src/irc/core/irc-nicklist.c 2017-01-25 13:06:13.692627830 -0500 ++++ irssi-0.8.15/src/irc/core/irc-nicklist.c 2017-01-25 13:06:13.692627830 -0500 +@@ -316,7 +316,11 @@ + static void event_nick_invalid(IRC_SERVER_REC *server, const char *data) + { + if (!server->connected) +- server_disconnect((SERVER_REC *) server); ++ /* we used to call server_disconnect but that crashes ++ irssi because of undefined memory access. instead, ++ indicate that the connection should be dropped and ++ let the irc method to the clean-up. */ ++ server->connection_lost = server->no_reconnect = TRUE; + } + + static void event_nick_in_use(IRC_SERVER_REC *server, const char *data) +Index: irssi-0.8.15/src/irc/core/irc-queries.c +=================================================================== +--- irssi-0.8.15.orig/src/irc/core/irc-queries.c 2017-01-25 13:06:13.692627830 -0500 ++++ irssi-0.8.15/src/irc/core/irc-queries.c 2017-01-25 13:06:13.692627830 -0500 +@@ -45,6 +45,8 @@ + { + GSList *tmp; + ++ g_return_val_if_fail(nick != NULL, NULL); ++ + for (tmp = server->queries; tmp != NULL; tmp = tmp->next) { + QUERY_REC *rec = tmp->data; + --- irssi-0.8.15.orig/debian/patches/CVE-2017-9468.patch +++ irssi-0.8.15/debian/patches/CVE-2017-9468.patch @@ -0,0 +1,24 @@ +From 528f51bfbe5c65c5b24546faa244009dd5b3c586 Mon Sep 17 00:00:00 2001 +From: Joseph Bisch +Date: Wed, 17 May 2017 10:08:51 -0400 +Subject: [PATCH] Fix dcc_request where addr is NULL + +--- + src/irc/dcc/dcc-get.c | 4 ++++ + 1 file changed, 4 insertions(+) + +Index: irssi-0.8.15/src/irc/dcc/dcc-get.c +=================================================================== +--- irssi-0.8.15.orig/src/irc/dcc/dcc-get.c 2017-06-08 15:19:14.479745008 -0400 ++++ irssi-0.8.15/src/irc/dcc/dcc-get.c 2017-06-08 15:19:14.475744958 -0400 +@@ -416,6 +416,10 @@ static void ctcp_msg_dcc_send(IRC_SERVER + int p_id = -1; + int passive = FALSE; + ++ if (addr == NULL) { ++ addr = ""; ++ } ++ + /* SEND
[...] */ + /* SEND
0 (DCC SEND passive protocol) */ + params = g_strsplit(data, " ", -1); --- irssi-0.8.15.orig/debian/patches/CVE-2017-9469.patch +++ irssi-0.8.15/debian/patches/CVE-2017-9469.patch @@ -0,0 +1,38 @@ +From 30a92754bb650c3dedd507d41110443142899a65 Mon Sep 17 00:00:00 2001 +From: Joseph Bisch +Date: Mon, 29 May 2017 14:43:24 -0400 +Subject: [PATCH] Fix oob read of one byte in get_file_params_count{,_resume} + +We can use continue to handle cases such as: +"abc" +--- + src/irc/dcc/dcc-get.c | 2 ++ + src/irc/dcc/dcc-resume.c | 2 ++ + 2 files changed, 4 insertions(+) + +Index: irssi-0.8.15/src/irc/dcc/dcc-get.c +=================================================================== +--- irssi-0.8.15.orig/src/irc/dcc/dcc-get.c 2017-06-08 15:19:20.099815105 -0400 ++++ irssi-0.8.15/src/irc/dcc/dcc-get.c 2017-06-08 15:19:20.099815105 -0400 +@@ -370,6 +370,8 @@ int get_file_params_count(char **params, + if (*params[0] == '"') { + /* quoted file name? */ + for (pos = 0; pos < paramcount-3; pos++) { ++ if (strlen(params[pos]) == 0) ++ continue; + if (params[pos][strlen(params[pos])-1] == '"' && + get_params_match(params, pos+1)) + return pos+1; +Index: irssi-0.8.15/src/irc/dcc/dcc-resume.c +=================================================================== +--- irssi-0.8.15.orig/src/irc/dcc/dcc-resume.c 2017-06-08 15:19:20.099815105 -0400 ++++ irssi-0.8.15/src/irc/dcc/dcc-resume.c 2017-06-08 15:19:20.099815105 -0400 +@@ -61,6 +61,8 @@ int get_file_params_count_resume(char ** + if (*params[0] == '"') { + /* quoted file name? */ + for (pos = 0; pos < paramcount-2; pos++) { ++ if (strlen(params[pos]) == 0) ++ continue; + if (params[pos][strlen(params[pos])-1] == '"' && + get_params_match_resume(params, pos+1)) + return pos+1; --- irssi-0.8.15.orig/debian/patches/CVE-2018-5205.patch +++ irssi-0.8.15/debian/patches/CVE-2018-5205.patch @@ -0,0 +1,27 @@ +From 7a83c63701b7395ee6cc606905314318eef77971 Mon Sep 17 00:00:00 2001 +From: ailin-nemui +Date: Wed, 3 Jan 2018 14:09:48 +0100 +Subject: [PATCH] check if \\c is complete in eval + +--- + src/core/misc.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +Index: irssi-0.8.15/src/core/misc.c +=================================================================== +--- irssi-0.8.15.orig/src/core/misc.c 2018-01-08 14:41:54.008123222 -0500 ++++ irssi-0.8.15/src/core/misc.c 2018-01-08 14:41:54.004123218 -0500 +@@ -756,8 +756,11 @@ int expand_escape(const char **data) + *data += 2; + return strtol(digit, NULL, 16); + case 'c': +- /* control character (\cA = ^A) */ +- (*data)++; ++ /* check for end of string */ ++ if ((*data)[1] == '\0') ++ return 0; ++ /* control character (\cA = ^A) */ ++ (*data)++; + return i_toupper(**data) - 64; + default: + if (!i_isdigit(**data)) --- irssi-0.8.15.orig/debian/patches/CVE-2018-5206.patch +++ irssi-0.8.15/debian/patches/CVE-2018-5206.patch @@ -0,0 +1,28 @@ +From 54d453623d879ea83d0818a80bd14151192953ec Mon Sep 17 00:00:00 2001 +From: ailin-nemui +Date: Wed, 3 Jan 2018 12:45:43 +0100 +Subject: [PATCH] do not record topic change time when sender is blank + +--- + src/irc/core/channel-events.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +Index: irssi-0.8.15/src/irc/core/channel-events.c +=================================================================== +--- irssi-0.8.15.orig/src/irc/core/channel-events.c 2018-01-08 14:42:23.480152975 -0500 ++++ irssi-0.8.15/src/irc/core/channel-events.c 2018-01-08 14:43:09.684198484 -0500 +@@ -138,7 +138,13 @@ static void channel_change_topic(IRC_SER + g_free_not_null(chanrec->topic_by); + chanrec->topic_by = g_strdup(setby); + +- chanrec->topic_time = settime; ++ if (chanrec->topic_by == NULL) { ++ /* ensure invariant topic_time > 0 <=> topic_by != NULL. ++ this could be triggered by a topic command without sender */ ++ chanrec->topic_time = 0; ++ } else { ++ chanrec->topic_time = settime; ++ } + + signal_emit("channel topic changed", 1, chanrec); + } --- irssi-0.8.15.orig/debian/patches/CVE-2018-5207.patch +++ irssi-0.8.15/debian/patches/CVE-2018-5207.patch @@ -0,0 +1,31 @@ +From cc17837a9b326ec9100a35981348fa0f5d6316fa Mon Sep 17 00:00:00 2001 +From: ailin-nemui +Date: Wed, 3 Jan 2018 15:51:51 +0100 +Subject: [PATCH] disable variable arguments code + +--- + src/core/special-vars.c | 4 ++++ + 1 file changed, 4 insertions(+) + +Index: irssi-0.8.20/src/core/special-vars.c +=================================================================== +--- irssi-0.8.20.orig/src/core/special-vars.c 2018-01-08 14:38:31.207900068 -0500 ++++ irssi-0.8.20/src/core/special-vars.c 2018-01-08 14:38:31.203900063 -0500 +@@ -378,6 +378,7 @@ char *parse_special(char **cmd, SERVER_R + } + + nest_free = FALSE; nest_value = NULL; ++#if 0 /* this code is disabled due to security issues until it is fixed */ + if (**cmd == '(' && (*cmd)[1] != '\0') { + /* subvariable */ + int toplevel = nested_orig_cmd == NULL; +@@ -406,6 +407,9 @@ char *parse_special(char **cmd, SERVER_R + + if (toplevel) nested_orig_cmd = NULL; + } ++#else ++ if (nested_orig_cmd) nested_orig_cmd = NULL; ++#endif + + if (**cmd != '{') + brackets = FALSE; --- irssi-0.8.15.orig/debian/patches/CVE-2018-5208.patch +++ irssi-0.8.15/debian/patches/CVE-2018-5208.patch @@ -0,0 +1,100 @@ +Backport of: + +From 2361d4b1e5d38701f35146219ceddd318ac4e645 Mon Sep 17 00:00:00 2001 +From: ailin-nemui +Date: Wed, 3 Jan 2018 15:35:18 +0100 +Subject: [PATCH] rewrite completion code and check for direct match of + separator + +--- + src/fe-common/core/completion.c | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +Index: irssi-0.8.20/src/fe-common/core/completion.c +=================================================================== +--- irssi-0.8.20.orig/src/fe-common/core/completion.c 2018-01-08 14:45:15.432316177 -0500 ++++ irssi-0.8.20/src/fe-common/core/completion.c 2018-01-08 14:51:48.108642699 -0500 +@@ -37,8 +37,11 @@ static int last_want_space, last_line_po + #define isseparator_notspace(c) \ + ((c) == ',') + ++#define isseparator_space(c) \ ++ ((c) == ' ') ++ + #define isseparator(c) \ +- ((c) == ' ' || isseparator_notspace(c)) ++ (isseparator_space(c) || isseparator_notspace(c)) + + void chat_completion_init(void); + void chat_completion_deinit(void); +@@ -153,20 +156,23 @@ char *word_complete(WINDOW_REC *window, + word = NULL; + linestart = NULL; + } else { ++ char* old_wordstart; ++ + /* get the word we want to complete */ + word = get_word_at(line, *pos, &wordstart); ++ old_wordstart = wordstart; ++ + startpos = (int) (wordstart-line); + wordlen = strlen(word); + +- /* get the start of line until the word we're completing */ +- if (isseparator(*line)) { +- /* empty space at the start of line */ +- if (wordstart == line) +- wordstart += strlen(wordstart); +- } else { +- while (wordstart > line && isseparator(wordstart[-1])) +- wordstart--; +- } ++ /* remove trailing spaces from linestart */ ++ while (wordstart > line && isseparator_space(wordstart[-1])) ++ wordstart--; ++ ++ /* unless everything was spaces */ ++ if (old_wordstart > line && wordstart == line) ++ wordstart = old_wordstart - 1; ++ + linestart = g_strndup(line, (int) (wordstart-line)); + + /* completions usually add space after the word, that makes +@@ -175,19 +181,30 @@ char *word_complete(WINDOW_REC *window, + BUT if we start completion with "/msg ", we don't + want to complete the /msg word, but instead complete empty + word with /msg being in linestart. */ +- if (!erase && *pos > 0 && line[*pos-1] == ' ' && +- (*linestart == '\0' || wordstart[-1] != ' ')) { ++ if (!erase && *pos > 0 && isseparator_space(line[*pos-1]) && ++ (*linestart == '\0' || !isseparator_space(wordstart[-1]))) { + char *old; + +- old = linestart; +- linestart = *linestart == '\0' ? +- g_strdup(word) : +- g_strconcat(linestart, " ", word, NULL); ++ old = linestart; ++ /* we want to move word into linestart */ ++ if (*linestart == '\0') { ++ linestart = g_strdup(word); ++ } else { ++ GString *str = g_string_new(linestart); ++ if (old_wordstart[-1] != str->str[str->len - 1]) { ++ /* do not accidentally duplicate the word separator */ ++ g_string_append_c(str, old_wordstart[-1]); ++ } ++ g_string_append(str, word); ++ linestart = g_string_free(str, FALSE); ++ } + g_free(old); + + g_free(word); + word = g_strdup(""); +- startpos = strlen(linestart)+1; ++ ++ startpos = *linestart == '\0' ? 0 : ++ strlen(linestart)+1; + wordlen = 0; + } + --- irssi-0.8.15.orig/debian/patches/CVE-2018-7050.patch +++ irssi-0.8.15/debian/patches/CVE-2018-7050.patch @@ -0,0 +1,29 @@ +From e91da9e4098e449dc36eaa15354aff67650e7703 Mon Sep 17 00:00:00 2001 +From: ailin-nemui +Date: Thu, 25 Jan 2018 16:05:47 +0100 +Subject: [PATCH] please give us nicks + +--- + src/fe-common/core/chat-completion.c | 2 ++ + 1 file changed, 2 insertions(+) + +Index: irssi-0.8.15/src/fe-common/core/chat-completion.c +=================================================================== +--- irssi-0.8.15.orig/src/fe-common/core/chat-completion.c ++++ irssi-0.8.15/src/fe-common/core/chat-completion.c +@@ -154,6 +154,7 @@ static void sig_message_public(SERVER_RE + { + CHANNEL_REC *channel; + int own; ++ g_return_if_fail(nick != NULL); + + channel = channel_find(server, target); + if (channel != NULL) { +@@ -166,6 +167,7 @@ static void sig_message_join(SERVER_REC + const char *nick, const char *address) + { + CHANNEL_REC *chanrec; ++ g_return_if_fail(nick != NULL); + + chanrec = channel_find(server, channel); + if (chanrec != NULL) --- irssi-0.8.15.orig/debian/patches/CVE-2018-7051.patch +++ irssi-0.8.15/debian/patches/CVE-2018-7051.patch @@ -0,0 +1,23 @@ +From e32e9d63c67ab95ef0576154680a6c52334b97af Mon Sep 17 00:00:00 2001 +From: ailin-nemui +Date: Thu, 8 Feb 2018 14:11:23 +0100 +Subject: [PATCH] Do not read beyond end of escaped string + +Credit to OSS-Fuzz +--- + src/fe-common/core/themes.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: irssi-0.8.15/src/fe-common/core/themes.c +=================================================================== +--- irssi-0.8.15.orig/src/fe-common/core/themes.c ++++ irssi-0.8.15/src/fe-common/core/themes.c +@@ -409,7 +409,7 @@ static char *theme_format_expand_abstrac + str = g_string_new(NULL); + p = ret; + while (*p != '\0') { +- if (*p == '\\') { ++ if (*p == '\\' && p[1] != '\0') { + int chr; + p++; + chr = expand_escape(&p); --- irssi-0.8.15.orig/debian/patches/CVE-2018-7052.patch +++ irssi-0.8.15/debian/patches/CVE-2018-7052.patch @@ -0,0 +1,13 @@ +--- irssi.orig/src/fe-text/mainwindows.c ++++ irssi/src/fe-text/mainwindows.c +@@ -807,6 +807,10 @@ static void cmd_window_show(const char * + } + + parent = mainwindow_create(); ++ if (parent == NULL) { ++ printformat_window(active_win, MSGLEVEL_CLIENTERROR, TXT_WINDOW_TOO_SMALL); ++ return; ++ } + parent->active = window; + gui_window_reparent(window, parent); + --- irssi-0.8.15.orig/debian/patches/CVE-2019-5882.patch +++ irssi-0.8.15/debian/patches/CVE-2019-5882.patch @@ -0,0 +1,41 @@ +From 8684ccb45c267fdeaaa779fce9323047aa5a9e38 Mon Sep 17 00:00:00 2001 +From: ailin-nemui +Date: Fri, 28 Sep 2018 11:40:50 +0200 +Subject: [PATCH] invalidate startline and bottom_startline when hidden + +this was overlooked when adding hidden line support. if the lines are +removed, Irssi has to update the startline. It does that by "scrolling" +the lines to the proper place. The scroll function was adjusted to +calculate 0 for hidden lines, thus it would miss them. +--- + src/fe-text/textbuffer-view.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +Index: irssi-0.8.15/src/fe-text/textbuffer-view.c +=================================================================== +--- irssi-0.8.15.orig/src/fe-text/textbuffer-view.c ++++ irssi-0.8.15/src/fe-text/textbuffer-view.c +@@ -1109,6 +1109,11 @@ static void view_remove_line(TEXT_BUFFER + if (is_last == 1) + view->startline = NULL; + } ++ ++ if (view->startline == line) { ++ view->startline = line->next; ++ view->subline = 0; ++ } + } else { + if (textbuffer_line_exists_after(view->bottom_startline, + line)) { +@@ -1118,6 +1123,11 @@ static void view_remove_line(TEXT_BUFFER + view->empty_linecount += linecount-realcount; + } + ++ if (view->bottom_startline == line) { ++ view->bottom_startline = view->bottom_startline->next; ++ view->bottom_subline = 0; ++ } ++ + if (textbuffer_line_exists_after(view->startline, + line)) { + view_remove_line_update_startline(view, line, --- irssi-0.8.15.orig/debian/patches/series +++ irssi-0.8.15/debian/patches/series @@ -0,0 +1,25 @@ +01chanmode_expando_strip +02ctcp_version_reply +03firsttimer_text +## 06gnutls-support by David Pashley +#06gnutls-support +12manpage-fix +17cumode_space-fix +18bind_utf8-fix +19disable_sslv2 +20fix_ssl_proxy_hostname_check +90irc-ubuntu-com +CVE-2016-7553.patch +CVE-2017-5xxx.patch +CVE-2017-9468.patch +CVE-2017-9469.patch +CVE-2017-1096x.patch +CVE-2017-15xxx.patch +CVE-2018-5205.patch +CVE-2018-5206.patch +CVE-2018-5207.patch +CVE-2018-5208.patch +CVE-2018-7050.patch +CVE-2018-7051.patch +CVE-2018-7052.patch +CVE-2019-5882.patch --- irssi-0.8.15.orig/debian/rules +++ irssi-0.8.15/debian/rules @@ -0,0 +1,109 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +include /usr/share/quilt/quilt.make + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + + +CFLAGS = -Wall -g + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +config.status: patch configure + dh_testdir + # Add here commands to configure the package. + dh_autotools-dev_updateconfig + CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \ + --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info \ + --sysconfdir=/etc \ + --without-servertest --enable-ipv6 --with-bot --with-proxy \ + --enable-perl --with-perl-lib=vendor + + +build: build-arch build-indep +build-indep: +build-arch: build-stamp +build-stamp: config.status + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + #docbook-to-man debian/irssi.sgml > irssi.1 + + touch build-stamp + +clean: unpatch + dh_testdir + dh_testroot + rm -f build-stamp + + # Add here commands to clean up after the build process. + [ ! -f Makefile ] || $(MAKE) distclean + + rm -f \ + src/perl/common/Makefile.old \ + src/perl/irc/Makefile.old \ + src/perl/textui/Makefile.old \ + src/perl/ui/Makefile.old \ + src/perl/perl-signals-list.h \ + src/perl/irssi-core.pl.h \ + default-config.h \ + default-theme.h + + dh_autotools-dev_restoreconfig + dh_clean + +install: build + dh_testdir + dh_testroot + dh_prep + dh_installdirs + + # Add here commands to install the package into debian/tmp. + $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs ChangeLog + dh_installdocs + dh_installexamples + dh_install + dh_installmenu + dh_installman + dh_link + dh_strip + dh_compress + dh_fixperms + dh_perl + dh_makeshlibs -n + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install --- irssi-0.8.15.orig/debian/watch +++ irssi-0.8.15/debian/watch @@ -0,0 +1,4 @@ +version=3 +opts="uversionmangle=s/-rc/~rc/" \ +http://irssi.org/files/ irssi-([\da-z\.-]+)\.tar\.gz debian uupdate +# Site/Directory Pattern Version Script