-%include /usr/lib/rpm/macros.perl
+# TODO:
+# - color_support_for_gui_entry needs update or to eb removed
+#
+# Conditional build:
+%bcond_without perl # without perl support
+%bcond_without dynamic # without dynamic libraries
+%bcond_without xmpp # without plugin
+
+%define no_install_post_check_so 1
+
+%define idea_ver 0.1.46
+%define xmpp_ver 0.53
+%define irssi_perl_version 20190829
Summary: Irssi is a IRC client
-Summary(fr): Irssi est un client IRC ecrit en GTK
-Summary(pl): Irssi - klient IRC
+Summary(fr.UTF-8): Irssi est un client IRC
+Summary(hu.UTF-8): Irssi egy IRC kliens
+Summary(pl.UTF-8): Irssi - wygodny w użyciu klient IRC
Name: irssi
-Version: 0.7.28
+Version: 1.2.2
Release: 2
-Vendor: Timo Sirainen <cras@irccrew.org>
License: GPL
Group: Applications/Communications
-Group(pl): Aplikacje/Komunikacja
-Source0: http://xlife.dhs.org/irssi/files/%{name}-%{version}.tar.bz2
-Source1: http://xlife.dhs.org/irssi/irssi-icon.png
-BuildRequires: libPropList-devel >= 0.9.1-2
+Source0: https://github.com/irssi/irssi/releases/download/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 062049c73ad2dd54b614e80d0137b737
+Source1: %{name}.desktop
+Source2: %{name}.png
+# NXDOMAIN
+#Source3: http://real.irssi.org/files/plugins/idea/%{name}-idea-%{idea_ver}.tar.gz
+Source3: %{name}-idea-%{idea_ver}.tar.gz
+# Source3-md5: c326efe317b8f67593a3cd46d5557280
+Source4: http://cybione.org/~irssi-xmpp/files/irssi-xmpp-%{xmpp_ver}.tar.gz
+# Source4-md5: 8c9906e4efbd6f3c8bd8420f0ac8fd91
+Patch0: %{name}-dcc-send-limit.patch
+Patch1: %{name}-home_etc.patch
+Patch2: %{name}-idea-listlen.patch
+Patch3: %{name}-gcc4.patch
+Patch4: %{name}-dynamic.patch
+
+Patch6: %{name}-color_support_for_gui_entry.patch
+Patch7: %{name}-libs-nopoison.patch
+Patch8: am.patch
+Patch9: %{name}-idea-glib.patch
+Patch10: %{name}-xmpp.patch
+URL: http://www.irssi.org/
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: gettext-tools
+# for idea only
+BuildRequires: glib-devel
+BuildRequires: glib2-devel >= 2.24.0
+BuildRequires: libgcrypt-devel >= 1.2.0
+BuildRequires: libotr-devel >= 4.1.0
+BuildRequires: libtool
+BuildRequires: libutf8proc-devel
+%{?with_xmpp:BuildRequires: loudmouth-devel}
BuildRequires: ncurses-devel >= 5.0
-BuildRequires: imlib-devel
-BuildRequires: gtk+-devel
-BuildRequires: gnome-libs-devel
-BuildRequires: gettext-devel
-BuildRequires: mysql-devel
-URL: http://xlife.dhs.org/irssi/
+BuildRequires: openssl-devel >= 0.9.7d
+%{?with_perl:BuildRequires: perl-devel >= 1:5.8.4}
+BuildRequires: pkgconfig
+BuildRequires: popt-devel
+%{?with_perl:BuildRequires: rpm-perlprov}
+BuildRequires: rpmbuild(macros) >= 1.315
+BuildRequires: sed >= 4.0
+Requires: glib2 >= 2.24.0
+Provides: perl(Irssi) = %{irssi_perl_version}
+Obsoletes: irssi-speech
+Obsoletes: irssi-sql
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _prefix /usr/X11R6
-%define _sysconfdir /etc/X11/GNOME
+%if %{with dynamic}
+%define filterout_ld -Wl,--as-needed
+%endif
%description
-Irssi is a textUI IRC client with IPv6 support by Timo Sirainen
-<cras@irccrew.org>.
-
-%description -l fr
-Irssi est client IRC écrit en GTK.
-
-%description -l pl
-Irssi jest tekstowym klientem IRC ze wsparciem dla IPv6. Napisany zosta³
-przez Timo Strainen <cras@irccrew.org>.
-
-%package GNOME
-Summary: GNOME version of irssi IRC client
-Summary(pl): Wersja dla ¶rodowiska GNOME klienta IRC irssi
-Group: X11/Applications/Communications
-Group(pl): X11/Aplikacje/Komunikacja
-Requires: %{name} = %{version}
-
-%description GNOME
-Irssi is a GTK based (with GNOME) GUI IRC client with IPv6 support by Timo
-Sirainen <cras@irccrew.org>.
-
-%description -l pl GNOME
-Irssi jest graficznym klientem IRC ze wsparciem dla IPv6 pracuj±cym w
-¶rodowisku GNOME. Napisany zosta³ przez Timo Sirainen <cras@irccrew.org>.
-
-%package sql
-Summary: MySQL plugin to Irssi
-Summary(pl): Wtyczka MySQL dla Irssi
-Group: X11/Applications/Communications
-Group(pl): X11/Aplikacje/Komunikacja
-Requires: %{name} = %{version}
-
-%description sql
-MySQL plugin to Irssi.
-
-%description sql -l pl
-Wtyczka MySQL dla Irssi.
-
-%package speech
-Summary: speech plugin to Irssi
-Summary(pl): Wtyczka syntezatora mowy dla Irssi
-Group: X11/Applications/Communications
-Group(pl): X11/Aplikacje/Komunikacja
-Requires: %{name} = %{version}
-Requires: festival
-
-%description speech
-Speech plugin to Irssi.
-
-%description speech -l pl
-Wtyczka syntezatora mowy dla Irssi.
+Irssi is a textUI IRC client with IPv6 support.
+
+%description -l fr.UTF-8
+Irssi est client IRC.
+
+%description -l hu.UTF-8
+Irssi egy szöveges felületű IRC kliens IPv6 támogatással.
+
+%description -l pl.UTF-8
+Irssi jest tekstowym klientem IRC ze wsparciem dla IPv6.
+
+%package plugin-idea
+Summary: Irssi plugin IDEA crypt
+Summary(hu.UTF-8): Irssi IDEA plugin
+Summary(pl.UTF-8): Wtyczka do irssi do szyfrowania IDEA
+Group: Applications/Communications
+Requires: %{name} = %{version}-%{release}
+Requires: glib >= 1:1.2.10-13
+
+%description plugin-idea
+This package contains IDEA Crypt plugin for Irssi.
+
+%description plugin-idea -l hu.UTF-8
+Ez a csomag tartalmazza az IDEA titkosítási plugint Irssi-hez.
+
+%description plugin-idea -l pl.UTF-8
+Ten pakiet zawiera wtyczkę do Irssi z szyfrowaniem IDEA.
+
+%package plugin-xmpp
+Summary: Irssi XMPP support plugin
+Summary(pl.UTF-8): Wtyczka do irssi do obsługi XMPP
+Group: Applications/Communications
+Requires: %{name} = %{version}-%{release}
+
+%description plugin-xmpp
+This package contains XMPP support plugin for Irssi.
+
+%description plugin-xmpp -l pl.UTF-8
+Ten pakiet zawiera wtyczkę do Irssi z obsługą XMPP.
%prep
-%setup -q
+%setup -q -a3 -a4
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%if %{with dynamic}
+%patch4 -p1
+%endif
+
+#%patch6 -p0
+%patch7 -p1
+
+echo 'AC_DEFUN([AM_PATH_GLIB],[:])' > glib1.m4
+
+mv irssi-idea{-%{idea_ver},}
+mv irssi-xmpp{-%{xmpp_ver},}
+%patch8 -p1
+%patch9 -p0
+%patch10 -p0
+
+# hack
+%{__sed} -i -e 's#\./libtool#%{_bindir}/libtool#g' 'configure.ac'
%build
-gettextize --copy --force
-NOCONFIGURE=1 ./autogen.sh
-CPPFLAGS="-I/usr/X11R6/include"; export CPPFLAGS
-LDFLAGS="-s -L/usr/X11R6/lib"; export LDFLAGS
+ver=$(awk '/IRSSI_VERSION_DATE/{print $3}' irssi-version.h)
+if [ "$ver" != "%{irssi_perl_version}" ]; then
+ : update irssi_perl_version to $ver
+ exit 1
+fi
+
+%{__libtoolize}
+%{__aclocal} -I .
+%{__autoconf}
+%{__automake}
%configure \
- --with-gnome \
- --disable-static \
- --with-gnome-panel \
- --with-imlib \
- --enable-ipv6 \
- --with-textui=ncurses \
- --with-proplist=/usr \
+ --disable-silent-rules \
--without-socks \
- --with-plugins \
- --with-mysql \
- --enable-perl
-make
+ --with-bot \
+ --with-textui \
+ --with-proxy \
+ --with-modules \
+ --with-otr \
+ %{?with_perl:--with-perl=yes} \
+ %{?with_perl:--with-perl-lib=vendor} \
+ %{!?with_perl:--with-perl=no} \
+ --enable-true-color
+
+%{__make}
+
+# to fool idea configure script
+touch irssi-config
+cd irssi-idea
+%{__libtoolize}
+%{__aclocal} -I .
+%{__autoconf}
+%{__automake}
+%configure \
+ --disable-silent-rules
+%{__make}
+cd ..
+
+export IRSSI_INCLUDE=`pwd`
+cd irssi-xmpp
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}}
+%{__make} install \
+ docdir=%{_datadir}/%{name}-%{version} \
+ DESTDIR=$RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_datadir}/pixmaps
+# scripts packaged by irssi-scripts.spec
+rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/scripts/*
-make \
- DESTDIR=$RPM_BUILD_ROOT \
- desktopdir=%{_applnkdir}/Network/IRC \
- install
-
-strip --strip-unneeded $RPM_BUILD_ROOT%{_libdir}/irssi/plugins/lib*.so.*.*
+cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
+cp -a %{SOURCE2} $RPM_BUILD_ROOT%{_pixmapsdir}
-install %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/pixmaps/irssi-icon.png
-gzip -9nf AUTHORS ChangeLog README TODO NEWS
+%{__make} -C irssi-idea install \
+ DESTDIR=$RPM_BUILD_ROOT
-%find_lang %{name}
+%{__make} -C irssi-xmpp install \
+ PREFIX=%{_prefix} \
+ IRSSI_LIB=%{_libdir}/%{name} \
+ DESTDIR=$RPM_BUILD_ROOT
+
+# -devel?
+rm $RPM_BUILD_ROOT%{_libdir}/lib*.{so,la,a}
+rm -r $RPM_BUILD_ROOT%{_includedir}/irssi
+# cleanup
+rm $RPM_BUILD_ROOT%{_libdir}/irssi/modules/lib*.{la,a}
+%if %{with perl}
+rm $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
+rm $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Irssi/.packlist
+rm $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Irssi/Irc/.packlist
+rm $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Irssi/TextUI/.packlist
+rm $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Irssi/UI/.packlist
+%endif
+rm -r $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}
%clean
rm -rf $RPM_BUILD_ROOT
-%files -f %{name}.lang
+%files
%defattr(644,root,root,755)
-%doc {AUTHORS,ChangeLog,README,TODO,NEWS}.gz
+%doc AUTHORS ChangeLog README.md TODO NEWS docs/*.{txt,html}
+%attr(755,root,root) %{_bindir}/botti
+%attr(755,root,root) %{_bindir}/irssi
+%dir %{_libdir}/irssi
+%dir %{_libdir}/irssi/modules
+%attr(755,root,root) %{_libdir}/irssi/modules/libirc_proxy.so*
+%attr(755,root,root) %{_libdir}/irssi/modules/libotr_core.so*
+%if %{with dynamic}
+%attr(755,root,root) %{_libdir}/libirssi*.so.*
+%endif
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/scripts
+%{_datadir}/%{name}/help
+%{_datadir}/%{name}/themes
+%{_desktopdir}/irssi.desktop
+%{_pixmapsdir}/irssi.png
+%{_sysconfdir}/irssi.conf
+%{_mandir}/man1/irssi.1*
-%attr(755,root,root) %{_bindir}/irssi-text
+%if %{with perl}
+%{perl_vendorarch}/*.pm
+%dir %{perl_vendorarch}/Irssi
+%{perl_vendorarch}/Irssi/*.pm
-%dir %{_sysconfdir}/irssi
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/irssi/*
+%dir %{perl_vendorarch}/auto/Irssi
+%attr(755,root,root) %{perl_vendorarch}/auto/Irssi/*.so
-%dir %{_libdir}/irssi
-%dir %{_libdir}/irssi/plugins
-%attr(755,root,root) %{_libdir}/irssi/plugins/libbot.so.*.*
-%attr(755,root,root) %{_libdir}/irssi/plugins/libbot.so
-%attr(755,root,root) %{_libdir}/irssi/plugins/libexternal.so.*.*
-%attr(755,root,root) %{_libdir}/irssi/plugins/libexternal.so
-%attr(755,root,root) %{_libdir}/irssi/plugins/libproxy.so.*.*
-%attr(755,root,root) %{_libdir}/irssi/plugins/libproxy.so
-%attr(755,root,root) %{_libdir}/irssi/plugins/libsound.so.*.*
-%attr(755,root,root) %{_libdir}/irssi/plugins/libsound.so
-
-%{perl_sitearch}/*.pm
-%dir %{perl_sitearch}/auto/Irssi
-%{perl_sitearch}/auto/Irssi/*.bs
-%attr(755,root,root) %{perl_sitearch}/auto/Irssi/*.so
-
-%files GNOME
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/irssi
+%dir %{perl_vendorarch}/auto/Irssi/Irc
+%attr(755,root,root) %{perl_vendorarch}/auto/Irssi/Irc/*.so
-%{_sysconfdir}/CORBA/servers/irssi.gnorba
-%{_applnkdir}/Network/IRC/irssi.desktop
-%{_datadir}/gnome/help/irssi
-%{_datadir}/pixmaps/*
+%dir %{perl_vendorarch}/auto/Irssi/TextUI
+%attr(755,root,root) %{perl_vendorarch}/auto/Irssi/TextUI/*.so
-%files sql
+%dir %{perl_vendorarch}/auto/Irssi/UI
+%attr(755,root,root) %{perl_vendorarch}/auto/Irssi/UI/*.so
+%endif
+
+%files plugin-idea
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/irssi/plugins/libsql.so.*.*
-%attr(755,root,root) %{_libdir}/irssi/plugins/libsql.so
+%attr(755,root,root) %{_libdir}/irssi/modules/libidea.so
-%files speech
-%attr(755,root,root) %{_libdir}/irssi/plugins/libspeech.so.*.*
-%attr(755,root,root) %{_libdir}/irssi/plugins/libspeech.so
+%files plugin-xmpp
+%defattr(644,root,root,755)
+%doc irssi-xmpp/{docs/*,NEWS,README,TODO}
+%attr(755,root,root) %{_libdir}/irssi/modules/libfe_xmpp.so
+%attr(755,root,root) %{_libdir}/irssi/modules/libtext_xmpp.so
+%attr(755,root,root) %{_libdir}/irssi/modules/libxmpp_core.so