%define major 2.4 %define libname %mklibname %{name} %{major} %define develname %mklibname %{name} -d %define date 0 %define rel 4 %if %{date} %define release %mkrel 13.git%{date}.%{rel} %define tarballver %{commit} %define tarballdir %{commit} %define tarballgit +git%{date} %define commit 1e72256ac5e8fe6735f81bfbc3f9d90514ada578 %else %define release %mkrel %{rel} %define tarballver v%{version} %define tarballdir %{version} %endif # Upstream says: # GTK+ UI is not supported anymore. Use it at own risk. As far as we know # builds with GTK+ 3.x are almost unusable, but builds with GTK+ 2.x work # more or less fine # Optional features %define with_qt 1 %define with_gtk 1 # This one needs also the above %define with_gtk3 1 %define with_daemon 1 %define with_devel 1 # filter out bogus auto-requires %global __requires_exclude ^perl\\((cli*) Name: eiskaltdcpp Version: 2.4.2 Release: %{release} License: GPLv3+ Summary: Cross-platform program that uses the Direct Connect and ADC protocol Group: Networking/File transfer Url: https://github.com/eiskaltdcpp/eiskaltdcpp Source0: https://github.com/eiskaltdcpp/eiskaltdcpp/archive/%{tarballver}/%{name}-%{version}%{?tarballgit}.tar.gz # Core requirements BuildRequires: attr-devel BuildRequires: gettext-devel BuildRequires: cmake >= 2.6.3 BuildRequires: pkgconfig(libpcrecpp) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(libidn) BuildRequires: pkgconfig(lua) >= 5.3 # 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: pkgconfig(Qt5Concurrent) BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5DBus) BuildRequires: pkgconfig(Qt5Gui) BuildRequires: pkgconfig(Qt5Help) BuildRequires: pkgconfig(Qt5Multimedia) BuildRequires: pkgconfig(Qt5Network) BuildRequires: pkgconfig(Qt5Script) BuildRequires: pkgconfig(Qt5Sql) BuildRequires: pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(Qt5Xml) %endif # Gtk requirements %if %{with_gtk} BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(glib-2.0) >= 2.24 %if %{with_gtk3} BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(libcanberra-gtk3) %else BuildRequires: pkgconfig(gtk+-2.0) >= 2.24 BuildRequires: pkgconfig(libcanberra-gtk) %endif BuildRequires: pkgconfig(libcanberra) 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 ChangeLog.txt README.md %license COPYING LICENSE %dir %{_datadir}/%{name} %{_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} %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 %{_datadir}/%{name}/qt/client-res %{_datadir}/%{name}/qt/icons %{_datadir}/%{name}/qt/qtscripts %{_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} %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: perl(Term::UI) Requires: perl(JSON::RPC::Legacy::Client) %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 ChangeLog.txt %license COPYING %dir %{_includedir}/%{name} %dir %{_includedir}/%{name}/dcpp %{_includedir}/%{name}/dcpp/*.h %endif #----------------------------------------------------------------------------- %prep %setup -q -n %{name}-%{tarballdir} %autopatch -p1 %build %cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \ -DLIB_INSTALL_DIR=%{_libdir} \ -DLUA_SCRIPT=ON \ -DUSE_IDNA=ON \ -DPERL_REGEX=ON \ %if %{with_qt} -DUSE_QT=OFF \ -DUSE_QT5=ON \ -DUSE_QT_SQLITE=ON \ -DUSE_QT_QML=OFF \ -DUSE_JS=ON \ -DUSE_ASPELL=ON \ -DFREE_SPACE_BAR_C=ON \ -DDBUS_NOTIFY=ON \ %else -DUSE_QT=OFF \ -DUSE_QT5=OFF \ %endif %if %{with_gtk} %if %{with_gtk3} -DUSE_GTK=OFF \ -DUSE_GTK3=ON \ %else -DUSE_GTK=ON \ -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 \ -DCREATE_MO=ON \ -DINSTALL_RUNTIME_PATH=OFF %cmake_build %install %cmake_install # 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 * Wed Apr 06 2022 umeabot <umeabot> 2.4.2-4.mga9 + Revision: 1845852 - Mageia 9 Mass Rebuild * Sat Oct 02 2021 wally <wally> 2.4.2-3.mga9 + Revision: 1747503 - rebuild for openssl 3.0.0 * Sat Apr 03 2021 wally <wally> 2.4.2-2.mga9 + Revision: 1712935 - rebuild for lua 5.4 * Wed Mar 03 2021 daviddavid <daviddavid> 2.4.2-1.mga9 + Revision: 1697355 - new version: 2.4.2 - boost support was removed upstream * Fri Dec 18 2020 daviddavid <daviddavid> 2.2.10-13.git20200821.2.mga8 + Revision: 1660631 - Rebuild for new Qt5 * Fri Aug 21 2020 martinw <martinw> 2.2.10-13.git20200821.1.mga8 + Revision: 1617700 - new snapshot release 2.2.10+20200821 - fix build against boost 1.73 * Sun Jan 26 2020 wally <wally> 2.2.10-13.git20180301.8.mga8 + Revision: 1483359 - rebuild for boost 1.72.0 - build with new cmake macros * Sat Aug 24 2019 daviddavid <daviddavid> 2.2.10-13.git20180301.7.mga8 + Revision: 1431541 - add patch to adding harfbuzz headers in FindGTK(2,3).cmake * Tue Apr 02 2019 daviddavid <daviddavid> 2.2.10-13.git20180301.6.mga7 + Revision: 1385029 - Qt5 Rebuild * Sun Dec 16 2018 wally <wally> 2.2.10-13.git20180301.5.mga7 + Revision: 1341581 - build without libgnome2 support * Tue Oct 16 2018 wally <wally> 2.2.10-13.git20180301.4.mga7 + Revision: 1321027 - rebuild for new boost 1.68.0 * Fri Aug 24 2018 daviddavid <daviddavid> 2.2.10-13.git20180301.3.mga7 + Revision: 1253807 - rebuild for new miniupnpc 2.1 * Wed May 16 2018 daviddavid <daviddavid> 2.2.10-13.git20180301.2.mga7 + Revision: 1229859 - rebuild with fixed release tag * Wed May 16 2018 daviddavid <daviddavid> 2.2.10-13.git20180301.1.mga7.mga7 + Revision: 1229857 - new snapshot release: 2.2.10_git20180301 - port to Qt5 - now libmajor is 2.4 - compile against openssl >= 1.1 - enable daemon support - filter out bogus perl module auto-requires * Fri May 11 2018 kekepower <kekepower> 2.2.10-12.mga7 + Revision: 1228372 - Rebuild for libidn 1.35 * Mon Dec 25 2017 wally <wally> 2.2.10-11.mga7 + Revision: 1184663 - rebuild for new boost * Tue Nov 21 2017 tv <tv> 2.2.10-10.mga7 + Revision: 1178316 - rebuild for boost 1.65 * Mon Oct 09 2017 daviddavid <daviddavid> 2.2.10-9.mga7 + Revision: 1170358 - build against compat-openssl10 + tv <tv> - rebuild with latest boost * 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