Hello!
Включены мелкие исправления накопившиеся за полтора года, обновление OpenSSL для Windows, актуализация информации.
Качать
тут — ссылки на репозитории пакетов под большинство дистрибутивов Linux + win32.
Здравствуйте, Anton Batenev, Вы писали:
AB>Качать тут — ссылки на репозитории пакетов под большинство дистрибутивов Linux + win32.
К сожалению, под стоковый шестой CentOS оно не соберется — потому как задействованы возможности Qt 4.7+. У меня спека вышла вот такая:
# RSDN offline client RPM .spec file
#
# Common usage:
# rpmbuild -ba --clean "$(rpm --eval='%{_specdir}')/avalon-2.0.1-git-centos6.spec"
#
# Possible additional switches:
# --without makejobslimit (don't limit number of make jobs to run simultaneously)
# --without todayepoch (don't set "Epoch" field to the current YYYYMMDD, leave it unspecified)
# --without ownsourcedir (don't use separate "avalon-x.x.x/" folder inside "rpmbuild/SOURCES/")
# --with gitmaster (use source tarball generated from Git "master" branch)
# --define 'SysTempDir value' (default is /var/tmp)
# --define 'GitRepoDir value' (default is $HOME/Sources/CentOS/avalon-git)
# --with ccache (use a fast C/C++ compiler cache during build)
# Acceptable build conditions
%bcond_without makejobslimit
%bcond_without todayepoch
%bcond_without ownsourcedir
%bcond_with gitmaster
%bcond_with ccache
# Version numbers
%define VerMajor 2
%define VerMinor 0
%define PatchLevel 1
%define Revision 1
%define ShortVersion %{VerMajor}.%{VerMinor}
%define LongVersion %{ShortVersion}.%{PatchLevel}
# Other globals and defines
%define CurDate %(date +%Y%m%d)
%if %{with makejobslimit}
%define _smp_mflags --jobs=1
%else
%define GetNumMakeJobs \
HalfOfCPUs=`bc <<< "$(/usr/bin/getconf _NPROCESSORS_ONLN) / 2"`; \
if [ $HalfOfCPUs -ge 1 ]; then echo $HalfOfCPUs; else echo 1; fi \
%{nil}
%global NumMakeJobs %(%{GetNumMakeJobs})
%define _smp_mflags --jobs=%{NumMakeJobs} --load-average=2.0
%endif
%if %{with gitmaster}
%define SourceName %{name}-%{LongVersion}-git
%else
%define SourceName %{name}-%{LongVersion}
%endif
%{!?SysTempDir: %global SysTempDir /var/tmp}
%{!?GitRepoDir: %global GitRepoDir %{getenv:HOME}/Sources/CentOS/avalon-git}
%if %{with gitmaster}
%define MakeGitUnique \
if [ -d %{GitRepoDir} ]; then \
echo ".git.$(git -C %{GitRepoDir} rev-list --count HEAD).g$(git -C %{GitRepoDir} rev-parse --short HEAD)" \
else \
echo ".git" \
fi \
%{nil}
%global GitUnique %(%{MakeGitUnique})
%else
%define GitUnique %{nil}
%endif
%global QtVersion %(qmake -query QT_VERSION 2>/dev/null || echo 0.0.0)
%define TestQt48 \
IFS=. read QtMajor QtMinor QtPatchLevel <<< "%{QtVersion}"; \
if [ $QtMajor -eq 4 -a $QtMinor -ge 8 ]; then echo YES; else echo NO; fi \
%{nil}
%global HasQt48 %(%{TestQt48})
%global QtRootDir %(qmake -query QT_INSTALL_PREFIX)
%global QtLibsDir %(qmake -query QT_INSTALL_LIBS)
%define GetCCacheVersion \
CCachePkgVersion=$(rpm -q --qf '%{version}' ccache) \
if [ $? -ne 0 ]; then \
CCachePkgVersion="0.0.0" \
fi \
echo $CCachePkgVersion \
%{nil}
%global CCacheVersion %(%{GetCCacheVersion})
%define TestCCache32 \
IFS=. read CCacheMajor CCacheMinor CCachePatchLevel <<< "%{CCacheVersion}"; \
if [ $CCacheMajor -eq 3 -a $CCacheMinor -ge 2 ]; then echo YES; else echo NO; fi \
%{nil}
%global HasCCache %(%{TestCCache32})
# Header
Name: avalon
Version: %{LongVersion}%{GitUnique}
Release: %{Revision}%{?dist}
%if %{with todayepoch}
Epoch: %{CurDate}
%endif
Summary: RSDN offline client
Group: Applications/Internet
License: BSD-2-clause
URL: https://github.com/abbat/avalon/
Vendor: Zarezky.spb.ru RPM repository, http://zarezky.spb.ru/yumrepo/
Packager: Elijah Zarezky <elijah@zarezky.spb.ru>
# Sources
%if %{with ownsourcedir}
%define _sourcedir %{_topdir}/SOURCES/%{name}-%{LongVersion}
%endif
Source0: %{SourceName}.tar.gz
# Patches
# Directory for the (fake) install step
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# Build requirements
BuildRequires: qt-devel >= 4.6.2
%if 0%{?fedora} || 0%{?centos}
BuildRequires: qtwebkit-devel >= 2.1.1
%endif
%if 0%{?suse_version}
BuildRequires: libQtWebKit-devel >= 4.6.2
%endif
BuildRequires: aspell-devel >= 0.60.6
BuildRequires: zlib-devel >= 1.2.3
# Run-time requirements
Requires: qt >= 4.6.2
%if 0%{?fedora} || 0%{?centos}
Requires: qtwebkit >= 2.1.1
%endif
%if 0%{?suse_version}
Requires: libQtWebKit4 >= 4.6.2
%endif
Requires: aspell >= 0.60.6
Requires: zlib >= 1.2.3
# Virtual package names
Provides: %{name} = %{version}-%{release}
# Description
%description
Кросс-платформенный клиент для offline работы с форумами RSDN, аналогичный
проекту RSDN@Home команды RSDN под Windows.
# Subpackages
# Build scripts
%prep
%if "%{HasQt48}" == "NO"
%{warn:
Qt libraries version 4.8 or greater are required to build this package!
Detected Qt libraries version is %{QtVersion}, build will be stopped right now.
%{nil}
} exit 1
%endif
if [ -d %{GitRepoDir} ]; then
%{__rm} -f %{_sourcedir}/%{SourceName}.tar.gz
pushd %{GitRepoDir}
git archive --format=tar.gz --prefix=%{SourceName}/ --output=%{_sourcedir}/%{SourceName}.tar.gz HEAD
popd
fi
%{__rm} -rf %{SourceName}
%{__tar} -xzf %{_sourcedir}/%{SourceName}.tar.gz
%setup -q -n %{SourceName} -T -D
%build
qmake \
-project \
-recursive \
-Wall \
-nopwd \
-o avalon.pro \
%if %{with ccache} && "%{HasCCache}" == "YES"
QMAKE_CC="ccache gcc" \
QMAKE_CXX="ccache g++" \
%endif
QMAKE_CXXFLAGS="%{optflags} -w" \
"CONFIG += debug_and_release" \
"QT += network sql webkit" \
"LIBS += -laspell -lz" \
"DEFINES += AVALON_PACKAGE" \
src
qmake avalon.pro
%{__make} %{?_smp_mflags}
%check
%install
%{__rm} -rf %{buildroot}
%{__install} -d %{buildroot}%{_bindir}
%{__install} -m755 avalon %{buildroot}%{_bindir}/avalon
%{__install} -d %{buildroot}%{_datadir}/pixmaps
%{__install} -m644 src/icons/avalon.xpm %{buildroot}%{_datadir}/pixmaps/avalon.xpm
%{__install} -d %{buildroot}%{_datadir}/applications
%{__install} -m644 avalon.desktop %{buildroot}%{_datadir}/applications/avalon.desktop
# install launcher script
%{__cat} > %{buildroot}%{_bindir}/run-avalon.sh << EOF
#!/bin/bash
QTDIR=%{QtRootDir}
QTLIB=\$QTDIR/lib
PKG_CONFIG_PATH=\$QTLIB/pkgconfig:\$PKG_CONFIG_PATH
PATH=\$QTDIR/bin:\$PATH
LD_LIBRARY_PATH=\$QTLIB:\$LD_LIBRARY_PATH
LD_RUN_PATH=\$QTLIB:\$LD_RUN_PATH
export PKG_CONFIG_PATH PATH LD_LIBRARY_PATH LD_RUN_PATH
/usr/bin/avalon &
exit 0
EOF
%{__chmod} +x %{buildroot}%{_bindir}/run-avalon.sh
# adjust desktop integration file
%{__sed} -i -e 's/^Exec=avalon/Exec=run-avalon.sh/g' %{buildroot}%{_datadir}/applications/avalon.desktop
%clean
%{__rm} -rf %{buildroot}
# Install/uninstall scripts
%pretrans
%pre
%post
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
update-desktop-database &> /dev/null ||:
%preun
%postun
if [ $1 -eq 0 ] ; then
touch --no-create %{_datadir}/icons/hicolor &>/dev/null
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
update-desktop-database &> /dev/null ||:
%posttrans
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
# Files to install
%files
%defattr(-, root, root, -)
%doc README.md
%{_bindir}/avalon
%attr(0755,root,root) %{_bindir}/run-avalon.sh
%{_datadir}/pixmaps/avalon.xpm
%{_datadir}/applications/avalon.desktop
# Changes in the package
%changelog
* Fri Mar 25 2016 Elijah Zarezky <elijah@zarezky.spb.ru> - 2.0.1-1
- Initial package.
- Built using "--with gitmaster".
Здравствуйте, SchweinDeBurg, Вы писали:
SDB> AB>Качать тут — ссылки на репозитории пакетов под большинство дистрибутивов Linux + win32.
SDB> К сожалению, под стоковый шестой CentOS оно не соберется — потому как задействованы возможности Qt 4.7+. У меня спека вышла вот такая:
Я вообще удивляюсь, что он смог собраться под CentOS 6 хотя бы с epel-пакетами (без них, как я понимаю, без вариантов). Если ты сможешь мантенить spec под все rpm-based, где-нибудь их собирать и выкладывать, то welcome.
Здравствуйте, Anton Batenev, Вы писали:
AB>Я вообще удивляюсь, что он смог собраться под CentOS 6 хотя бы с epel-пакетами (без них, как я понимаю, без вариантов).
[elijah@santiago ~]$ ldd -r /usr/bin/avalon | sort
libaspell.so.15 => /usr/lib/libaspell.so.15 (0x0766c000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x00960000)
libcrypto.so.10 => /usr/lib/libcrypto.so.10 (0x00358000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x00328000)
libc.so.6 => /lib/libc.so.6 (0xb67c4000)
libdl.so.2 => /lib/libdl.so.2 (0x006c5000)
libdrm.so.2 => /usr/lib/libdrm.so.2 (0x06ff8000)
libexpat.so.1 => /lib/libexpat.so.1 (0x07ebf000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x0070d000)
libfreebl3.so => /lib/libfreebl3.so (0x07fd3000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb61aa000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x006a8000)
libgio-2.0.so.0 => /lib/libgio-2.0.so.0 (0x06115000)
libglapi.so.0 => /usr/lib/libglapi.so.0 (0x036fa000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0xb6558000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x0623b000)
libgmodule-2.0.so.0 => /lib/libgmodule-2.0.so.0 (0x006fb000)
libgobject-2.0.so.0 => /lib/libgobject-2.0.so.0 (0x008c1000)
libgssapi_krb5.so.2 => /lib/libgssapi_krb5.so.2 (0x00920000)
libgstapp-0.10.so.0 => /usr/lib/libgstapp-0.10.so.0 (0x07d40000)
libgstbase-0.10.so.0 => /usr/lib/libgstbase-0.10.so.0 (0x0787a000)
libgstinterfaces-0.10.so.0 => /usr/lib/libgstinterfaces-0.10.so.0 (0x07573000)
libgstpbutils-0.10.so.0 => /usr/lib/libgstpbutils-0.10.so.0 (0x06bb6000)
libgstreamer-0.10.so.0 => /usr/lib/libgstreamer-0.10.so.0 (0x07731000)
libgstvideo-0.10.so.0 => /usr/lib/libgstvideo-0.10.so.0 (0x07ab1000)
libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x006ff000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x00a1e000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x02981000)
libk5crypto.so.3 => /lib/libk5crypto.so.3 (0x009f3000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x04dc1000)
libkrb5.so.3 => /lib/libkrb5.so.3 (0xb6244000)
libkrb5support.so.0 => /lib/libkrb5support.so.0 (0x03d8d000)
liblber-2.4.so.2 => /lib/liblber-2.4.so.2 (0x02e22000)
libldap_r-2.4.so.2 => /lib/libldap_r-2.4.so.2 (0x06623000)
/lib/ld-linux.so.2 (0x00a68000)
libltdl.so.7 => /usr/lib/libltdl.so.7 (0x06b9f000)
libm.so.6 => /lib/libm.so.6 (0x0067e000)
libmysqlclient_r.so.16 => /usr/lib/mysql/libmysqlclient_r.so.16 (0x0019c000)
libnsl.so.1 => /lib/libnsl.so.1 (0x07fdf000)
libnspr4.so => /lib/libnspr4.so (0x02a06000)
libnss3.so => /usr/lib/libnss3.so (0x02a6e000)
libnssutil3.so => /usr/lib/libnssutil3.so (0x02a46000)
libodbc.so.2 => /usr/lib/libodbc.so.2 (0x06474000)
libplc4.so => /lib/libplc4.so (0x02bbc000)
libplds4.so => /lib/libplds4.so (0x02bad000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x006d3000)
libpq.so.5 => /usr/lib/libpq.so.5 (0x07643000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00663000)
libQtCore.so.4 => /opt/Trolltech/Qt-4.8.7/lib/libQtCore.so.4 (0xb695c000)
libQtGui.so.4 => /opt/Trolltech/Qt-4.8.7/lib/libQtGui.so.4 (0xb6c3d000)
libQtNetwork.so.4 => /opt/Trolltech/Qt-4.8.7/lib/libQtNetwork.so.Gj bltt4 (0x00520000)
libQtOpenGL.so.4 => /opt/Trolltech/Qt-4.8.7/lib/libQtOpenGL.so.4 (0xb645d000)
libQtSql.so.4 => /opt/Trolltech/Qt-4.8.7/lib/libQtSql.so.4 (0x00128000)
libQtWebKit.so.4 => /opt/Trolltech/Qt-4.8.7/lib/libQtWebKit.so.4 (0x00a88000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00965000)
librt.so.1 => /lib/librt.so.1 (0x00704000)
libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x02d57000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00a38000)
libsmime3.so => /usr/lib/libsmime3.so (0x02c0c000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x0097f000)
libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x033e4000)
libssl3.so => /usr/lib/libssl3.so (0x02bc4000)
libssl.so.10 => /usr/lib/libssl.so.10 (0x0098b000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00747000)
libudev.so.0 => /lib/libudev.so.0 (0x07598000)
libuuid.so.1 => /lib/libuuid.so.1 (0x07be1000)
libwebp.so.5 => /usr/lib/libwebp.so.5 (0x06a5d000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb6322000)
libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0x00987000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x04397000)
libxcb-dri2.so.0 => /usr/lib/libxcb-dri2.so.0 (0x00a5c000)
libxcb-glx.so.0 => /usr/lib/libxcb-glx.so.0 (0x02945000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x02ec8000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00742000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x0090e000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00a57000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb6676000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x006ca000)
libxslt.so.1 => /usr/lib/libxslt.so.1 (0x04b92000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0x00a61000)
libz.so.1 => /lib/libz.so.1 (0x00314000)
linux-gate.so.1 => (0x00746000)
Я навскидку завязок на EPEL не вижу... но у меня еще и GCC 5.3.0 самосборный, помимо Qt.
AB>Если ты сможешь мантенить spec под все rpm-based, где-нибудь их собирать и выкладывать, то welcome.
Тут надо думать, у меня 32-битный шестой CentOS, что на личном ноуте, что на рабочем десктопе.