#
# spec file for package weechat
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           weechat
Version:        1.5
Release:        0
Summary:        Portable, Fast, Light and Extensible Chat Client
License:        GPL-3.0+
Group:          Productivity/Networking/IRC
Url:            http://weechat.org
Source:         http://weechat.org/files/src/%{name}-%{version}.tar.bz2
Source1:        weechat.desktop
Source2:        %{name}.keyring
Source3:        %{name}-%{version}.tar.bz2.asc
Source4:        %{name}.changes
BuildRequires:  asciidoc
BuildRequires:  ca-certificates
BuildRequires:  cmake
BuildRequires:  curl-devel
BuildRequires:  docbook-xsl-stylesheets
BuildRequires:  enchant-devel
BuildRequires:  gcc-c++
BuildRequires:  grep
BuildRequires:  guile-devel
BuildRequires:  hicolor-icon-theme
BuildRequires:  libgcrypt-devel
BuildRequires:  libgnutls-devel
BuildRequires:  libgpg-error-devel
BuildRequires:  libtool
BuildRequires:  libxslt-tools
BuildRequires:  lua51-devel
BuildRequires:  lzo-devel
BuildRequires:  ncurses-devel
BuildRequires:  perl
BuildRequires:  pkg-config
BuildRequires:  python-devel
BuildRequires:  ruby-devel
BuildRequires:  tcl-devel
BuildRequires:  update-desktop-files
Requires:       ca-certificates
Requires:       hicolor-icon-theme
Recommends:     %{name}-lang = %{version}
# without scripts it is bit annoying
Recommends:     %{name}-perl = %{version}
Recommends:     %{name}-python = %{version}
Suggests:       %{name}-doc
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
# Not on SLE12
%if 0%{?suse_version} != 1315 || 0%{?is_opensuse}
BuildRequires:  source-highlight
%endif

%description
WeeChat (Wee Enhanced Environment for Chat) is a fast and light cross-platform
chat environment. It can be entirely controlled with the keyboard, has a
plugin-based architecture and is customizable and extensible with scripts in
several scripting languages.

%lang_package

# Not on SLE12
%%if 0%{?suse_version} != 1315 || 0%{?is_opensuse} 
%package doc
Summary:        Documentation for %{name}
Group:          Documentation/HTML
Requires:       %{name} = %{version}

%description doc
Various documentation files for %{name}.
%endif

%package devel
Summary:        Development Environment for %{name} Plugins
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}

%description devel
Development environment for authoring %{name} plugins.

%package guile
Summary:        Guile Scripting Support for %{name}
Group:          Productivity/Networking/IRC
Requires:       %{name} = %{version}

%description guile
Support for %{name} scripts written in the Guile language.

%package lua
Summary:        Lua Scripting Support for %{name}
Group:          Productivity/Networking/IRC
Requires:       %{name} = %{version}

%description lua
Support for %{name} scripts written in the Lua language.

%package perl
Summary:        Perl Scripting Support for %{name}
Group:          Productivity/Networking/IRC
Requires:       %{name} = %{version}
%{?libperl_requires}

%description perl
Support for %{name} scripts written in the Perl language.

%package python
Summary:        Python Scripting Support for %{name}
Group:          Productivity/Networking/IRC
Requires:       %{name} = %{version}

%description python
Support for %{name} scripts written in the Python language.

%package tcl
Summary:        Tcl Scripting Support for %{name}
Group:          Productivity/Networking/IRC
Requires:       %{name} = %{version}

%description tcl
Support for %{name} scripts written in the Tcl language.

%package ruby
Summary:        Ruby Scripting Support for %{name}
Group:          Productivity/Networking/IRC
Requires:       %{name} = %{version}

%description ruby
Support for %{name} scripts written in the Ruby language.

%package aspell
Summary:        Aspell Spell-Checking Support for %{name}
Group:          Productivity/Networking/IRC
Requires:       %{name} = %{version}

%description aspell
Spell-checking support for %{name}, using the aspell library.

%prep
%setup -q
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{SOURCE4}")"
DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
TIME="\"$(date -d "${modified}" "+%%R")\""
find .  -name '*.[ch]' | xargs sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g"
DATEF="\"$(date -d "${modified}" "+%%F")\""
sed -i "s/date=.*/date=$DATEF/" doc/asciidoc.conf
sed -i "s/A2X_EXECUTABLE.*/& -a revdate=$DATEF/" doc/*/CMakeLists.txt
YEAR=$(date -d "${modified}" +%%Y)
sed -i "s/{sys:date \"+%%Y\"}/${YEAR}/" doc/*/weechat.1.*.asciidoc

%build
export CFLAGS="%{optflags}"
# Tests require cpputest package
# no-undefined for perl seem not to work as desired
%cmake \
    -DCMAKE_EXE_LINKER_FLAGS=-Wl,--as-needed -DCMAKE_MODULE_LINKER_FLAGS=-Wl,--as-needed -DCMAKE_SHARED_LINKER_FLAGS=-Wl,--as-needed \
    -DLIBDIR="%{_libdir}" \
    -DPYTHON_LIBRARY="%{_libdir}/libpython%{py_ver}.so" \
    -DENABLE_ENCHANT=ON \
    -DENABLE_DOC=ON \
    -DENABLE_MAN=ON \
    -DCA_FILE=%{_sysconfdir}/ssl/ca-bundle.pem
make %{?_smp_mflags}

%install
%cmake_install

install -D -m 0644 "%{SOURCE1}" "%{buildroot}%{_datadir}/applications/%{name}.desktop"
%suse_update_desktop_file -r "%{name}" Network IRCClient

# Not on SLE12
%if 0%{?suse_version} != 1315 || 0%{?is_opensuse} 
mv "%{buildroot}%{_datadir}/doc/weechat" html
%endif

%find_lang "%{name}" --with-man

%post
%desktop_database_post
%icon_theme_cache_post

%postun
%desktop_database_postun
%icon_theme_cache_postun

# Not on SLE12
%if 0%{?suse_version} != 1315 || 0%{?is_opensuse} 
%files doc
%defattr(-,root,root)
%doc html/
%endif

%files
%defattr(-,root,root)
%doc AUTHORS.asciidoc ChangeLog.asciidoc Contributing.asciidoc COPYING
%doc README.asciidoc ReleaseNotes.asciidoc
%{_bindir}/weechat-curses
%{_bindir}/weechat
%dir %{_libdir}/weechat
%dir %{_libdir}/weechat/plugins
%{_libdir}/weechat/plugins/alias.so
%{_libdir}/weechat/plugins/charset.so
%{_libdir}/weechat/plugins/exec.so
%{_libdir}/weechat/plugins/fifo.so
%{_libdir}/weechat/plugins/irc.so
%{_libdir}/weechat/plugins/logger.so
%{_libdir}/weechat/plugins/relay.so
%{_libdir}/weechat/plugins/script.so
%{_libdir}/weechat/plugins/trigger.so
%{_libdir}/weechat/plugins/xfer.so
%{_mandir}/man1/weechat.1*
%{_datadir}/applications/weechat.desktop
%{_datadir}/icons/hicolor/*/apps/weechat.png

%files -f "%{name}.lang" lang
%defattr(-,root,root)

%files devel
%defattr(-,root,root)
%{_includedir}/weechat
%{_libdir}/pkgconfig/weechat.pc

%files guile
%defattr(-,root,root)
%{_libdir}/weechat/plugins/guile.so

%files lua
%defattr(-,root,root)
%{_libdir}/weechat/plugins/lua.so

%files perl
%defattr(-,root,root)
%{_libdir}/weechat/plugins/perl.so

%files python
%defattr(-,root,root)
%{_libdir}/weechat/plugins/python.so

%files tcl
%defattr(-,root,root)
%{_libdir}/weechat/plugins/tcl.so

%files ruby
%defattr(-,root,root)
%{_libdir}/weechat/plugins/ruby.so

%files aspell
%defattr(-,root,root)
%{_libdir}/weechat/plugins/aspell.so

%changelog