%define major 2.2 %define libname %mklibname %{name} %{major} %define develname %mklibname %{name} -d # Optional features %define with_qt 1 %define with_gtk 1 # This one needs also the above %define with_gtk3 0 %define with_daemon 0 %define with_devel 1 Name: eiskaltdcpp Version: 2.2.10 Release: %mkrel 8 License: GPLv3+ Summary: Cross-platform program that uses the Direct Connect and ADC protocol Url: https://github.com/eiskaltdcpp/eiskaltdcpp Group: Networking/File transfer Source0: https://github.com/eiskaltdcpp/eiskaltdcpp/archive/%{name}-%{version}.tar.gz Patch0: eiskaltdcpp-2.2.10-miniupnpc14.patch # Core requirements BuildRequires: boost-devel >= 1.42.0 BuildRequires: cmake >= 2.6.3 BuildRequires: pkgconfig(libpcrecpp) BuildRequires: openssl-devel >= 0.9.8 BuildRequires: zlib-devel BuildRequires: gettext BuildRequires: attr-devel BuildRequires: idn-devel BuildRequires: lua5.1-devel # When enabling miniupnpc in the cmake command line this is needed BuildRequires: miniupnpc-devel %if %{with_daemon} # Requirements for eiskaltdcpp daemon BuildRequires: xmlrpc-c-devel >= 1.19 %endif # Qt requirements %if %{with_qt} BuildRequires: aspell-devel BuildRequires: gcc >= 4.5.0 BuildRequires: qt4-devel >= 4.7.0 %endif # Gtk requirements %if %{with_gtk} BuildRequires: pkgconfig(libgnome-2.0) BuildRequires: pango-devel BuildRequires: glib2-devel >= 2.24 %if %{with_gtk3} BuildRequires: pkgconfig(libcanberra-gtk3) %else BuildRequires: gtk2-devel >= 2.24 BuildRequires: pkgconfig(libcanberra-gtk) %endif BuildRequires: libcanberra-devel BuildRequires: pkgconfig(libglade-2.0) BuildRequires: pkgconfig(libnotify) %endif %description EiskaltDC++ is a cross-platform program that uses the Direct Connect and ADC protocol. It is compatible with other DC clients, such as the original DC from Neomodus, DC++ and derivatives. EiskaltDC++ also inter operates with all common DC hub software. The minimum number of our patches to original DC++ kernel makes it easy to upgrade to new versions and ensures compatibility with other clients. %files -f lib%{name}.lang %doc AUTHORS COPYING LICENSE ChangeLog.txt ChangeLog_ru.txt ChangeLog_uk.txt %dir %{_datadir}/%{name} %{_datadir}/%{name}/update_geoip %{_datadir}/%{name}/sounds %{_datadir}/%{name}/examples %{_datadir}/%{name}/emoticons %{_datadir}/%{name}/luascripts %{_datadir}/pixmaps/%{name}.png %{_datadir}/icons/hicolor/*/apps/%{name}.png #----------------------------------------------------------------------------- %package -n %{libname} Summary: Dynamic library used by EiskaltDC++ Group: System/Libraries %description -n %{libname} Dynamic library used by EiskaltDC++. %files -n %{libname} %doc COPYING %{_libdir}/lib%{name}.so.%{major}{,.*} #----------------------------------------------------------------------------- %if %{with_qt} %package qt Summary: Qt frontend for EiskaltDC++ Group: Networking/File transfer Requires: %{name} = %{version} Requires: %{libname} = %{version} %description qt EiskaltDC++ is a cross-platform program that uses the Direct Connect and ADC protocol. It is compatible with other DC clients, such as the original DC from Neomodus, DC++ and derivatives. EiskaltDC++ also inter operates with all common DC hub software. The minimum number of our patches to original DC++ kernel makes it easy to upgrade to new versions and ensures compatibility with other clients. This is the Qt front end. %files qt -f %{name}-qt.lang %doc COPYING %dir %{_datadir}/%{name}/qt %dir %{_datadir}/%{name}/qt/ts %{_datadir}/%{name}/qt/icons %{_datadir}/%{name}/qt/qtscripts %{_datadir}/%{name}/qt/resources %{_mandir}/man1/%{name}-qt.1.* %{_datadir}/applications/%{name}-qt.desktop %{_bindir}/%{name}-qt %endif #----------------------------------------------------------------------------- %if %{with_gtk} %package gtk Summary: GTK frontend for EiskaltDC++ Group: Networking/File transfer Requires: %{name} = %{version} Requires: %{libname} = %{version} %description gtk EiskaltDC++ is a cross-platform program that uses the Direct Connect and ADC protocol. It is compatible with other DC clients, such as the original DC from Neomodus, DC++ and derivatives. EiskaltDC++ also inter operates with all common DC hub software. The minimum number of our patches to original DC++ kernel makes it easy to upgrade to new versions and ensures compatibility with other clients. This is the GTK front end. %files gtk -f %{name}-gtk.lang %doc COPYING %{_datadir}/%{name}/gtk %{_mandir}/man1/%{name}-gtk.1.* %{_datadir}/applications/%{name}-gtk.desktop %{_bindir}/%{name}-gtk %endif #----------------------------------------------------------------------------- %if %{with_daemon} %package daemon Summary: A simple EiskaltDC++ daemon Group: Networking/File transfer Requires: %{name} = %{version} Requires: %{libname} = %{version} Requires: perl-Term-UI %description daemon EiskaltDC++ is a cross-platform program that uses the Direct Connect and ADC protocol. It is compatible with other DC clients, such as the original DC from Neomodus, DC++ and derivatives. EiskaltDC++ also inter operates with all common DC hub software. This is a simple daemon for running EiskaltDC++ without any GUI; it can be controlled via XMLRPC or JSONRPC. %files daemon %{_datadir}/%{name}/cli/* %{_mandir}/man1/%{name}-daemon.1.* %{_mandir}/man1/%{name}-cli-*.1.* %{_bindir}/%{name}-daemon %{_bindir}/%{name}-cli-* %endif #----------------------------------------------------------------------------- %if %{with_devel} %package -n %{develname} Summary: Development files for the main EiskaltDC++ library Group: Development/C++ Requires: %{libname} = %{version} Provides: %{name}-devel = %{version}-%{release} %description -n %{develname} EiskaltDC++ is a cross-platform program that uses the Direct Connect and ADC protocol. It is compatible with other DC clients, such as the original DC from Neomodus, DC++ and derivatives. EiskaltDC++ also inter operates with all common DC hub software. This package contains the header files needed to use the main EiskaltDC++ library. %files -n %{develname} %doc COPYING ChangeLog.txt ChangeLog_ru.txt ChangeLog_uk.txt %{_includedir}/%{name}/dcpp/*.h %endif #----------------------------------------------------------------------------- %prep %setup -q %autopatch -p1 %build %cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DLIB_INSTALL_DIR=%{_libdir} \ -DLOCAL_BOOST=OFF \ -DLUA_SCRIPT=ON \ -DUSE_IDNA=ON \ -DPERL_REGEX=ON \ %if %{with_qt} -DUSE_QT=ON \ -DUSE_QT_SQLITE=ON \ -DUSE_QT_QML=ON \ -DUSE_JS=ON \ -DUSE_ASPELL=ON \ -DFREE_SPACE_BAR_C=ON \ -DDBUS_NOTIFY=ON \ %else -DUSE_QT=OFF \ %endif %if %{with_gtk} -DUSE_GTK=ON \ %if %{with_gtk3} -DUSE_GTK3=ON \ %else -DUSE_GTK3=OFF \ %endif -DUSE_LIBGNOME2=OFF \ -DUSE_LIBNOTIFY=ON \ -DUSE_LIBCANBERRA=ON \ %endif %if %{with_daemon} -DNO_UI_DAEMON=ON \ -DXMLRPC_DAEMON=OFF \ -DJSONRPC_DAEMON=ON \ -DUSE_CLI_XMLRPC=ON \ -DUSE_CLI_JSONRPC=ON \ %else -DNO_UI_DAEMON=OFF \ -DXMLRPC_DAEMON=OFF \ -DJSONRPC_DAEMON=OFF \ -DUSE_CLI_XMLRPC=OFF \ -DUSE_CLI_JSONRPC=OFF \ %endif %if %{with_devel} -DWITH_DEV_FILES=ON \ -DEISKALTDCPP_INCLUDE_DIR="%{_includedir}/%{name}" \ %else -DWITH_DEV_FILES=OFF \ %endif -DWITH_EMOTICONS=ON \ -DWITH_SOUNDS=ON \ -DWITH_EXAMPLES=ON \ -DWITH_LUASCRIPTS=ON \ -DWITH_DHT=ON \ -DUSE_MINIUPNP=ON \ -DLOCAL_MINIUPNP=OFF \ -DCREATE_MO=ON \ -DINSTALL_RUNTIME_PATH=OFF %make %install %make_install -C build # We don't want install php only for 3 example scripts (in russian moreover), # nor we want remove all the example scripts, # so removing the offenders and make find-provides happy rm -f %{buildroot}/%{_datadir}/%{name}/examples/*.php rm -rf %{buildroot}/%{_datadir}/%{name}/qt/qtscripts/gnome %if %{with_gtk} %find_lang %{name}-gtk %endif %if %{with_qt} find %{buildroot} -name "*.qm" | sed 's:'%{buildroot}':: s:.*/\([a-zA-Z]\{2\}\).qm:%lang(\1) \0:' > %{name}-qt.lang %endif # The language files are named "libeiskaltdcpp.mo" # and the filelist name is "libeiskaltdcpp.lang" %find_lang lib%{name} lib%{name}.lang %changelog * Tue May 16 2017 neoclust <neoclust> 2.2.10-8.mga6 + Revision: 1102003 - Rebuild against new miniupnpc * Wed Mar 02 2016 umeabot <umeabot> 2.2.10-7.mga6 + Revision: 983365 - Rebuild for openssl * Sat Dec 26 2015 daviddavid <daviddavid> 2.2.10-6.mga6 + Revision: 915164 - rebuild for new boost 1.60.0 * Mon Oct 19 2015 fwang <fwang> 2.2.10-5.mga6 + Revision: 892618 - update patch - fix build with recent miniupnpc - rebuild for new miniupnpc * Tue Oct 13 2015 fwang <fwang> 2.2.10-4.mga6 + Revision: 890199 - rebuild for new miniupnpc * Fri Sep 25 2015 daviddavid <daviddavid> 2.2.10-3.mga6 + Revision: 883687 - rebuild for new boost 1.59.0 * Sun Aug 02 2015 daviddavid <daviddavid> 2.2.10-2.mga6 + Revision: 860514 - rebuild for new boost-1.58.0 * Tue Jun 30 2015 alexl <alexl> 2.2.10-1.mga6 + Revision: 849037 - new url - version 2.2.10 * Wed Dec 17 2014 sander85 <sander85> 2.2.9-5.mga5 + Revision: 803796 - Rebuild for miniupnpc * Wed Oct 15 2014 umeabot <umeabot> 2.2.9-4.mga5 + Revision: 741632 - Second Mageia 5 Mass Rebuild * Tue Sep 16 2014 umeabot <umeabot> 2.2.9-3.mga5 + Revision: 678981 - Mageia 5 Mass Rebuild * Wed May 14 2014 luigiwalser <luigiwalser> 2.2.9-2.mga5 + Revision: 622815 - rebuild for miniupnpc * Fri Feb 14 2014 alexl <alexl> 2.2.9-1.mga5 + Revision: 591196 - imported package eiskaltdcpp