[avalon] Обновление до 1.0.444
От: Anton Batenev Россия https://github.com/abbat
Дата: 24.03.16 23:16
Оценка:
Hello!

Включены мелкие исправления накопившиеся за полтора года, обновление OpenSSL для Windows, актуализация информации.

Качать тут — ссылки на репозитории пакетов под большинство дистрибутивов Linux + win32.
Бэкапимся на Яндекс.Диск
Re: [avalon] Обновление до 1.0.444
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 25.03.16 11:12
Оценка:
Здравствуйте, 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".
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[2]: [avalon] Обновление до 1.0.444
От: Anton Batenev Россия https://github.com/abbat
Дата: 25.03.16 20:37
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB> AB>Качать тут — ссылки на репозитории пакетов под большинство дистрибутивов Linux + win32.

SDB> К сожалению, под стоковый шестой CentOS оно не соберется — потому как задействованы возможности Qt 4.7+. У меня спека вышла вот такая:

Я вообще удивляюсь, что он смог собраться под CentOS 6 хотя бы с epel-пакетами (без них, как я понимаю, без вариантов). Если ты сможешь мантенить spec под все rpm-based, где-нибудь их собирать и выкладывать, то welcome.
Бэкапимся на Яндекс.Диск
Re[3]: [avalon] Обновление до 1.0.444
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 27.03.16 08:04
Оценка:
Здравствуйте, 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, что на личном ноуте, что на рабочем десктопе.
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.