[devel] Принудительно установить версию GCC в SPEC
Gleb Fotengauer-Malinovskiy
glebfm на altlinux.org
Чт Апр 10 20:35:27 MSK 2014
On Thu, Apr 10, 2014 at 01:46:27AM +0400, Sergey Y. Afonin wrote:
> Может, делать удаление gcc/gcc-c++, отличных от X.Y, если макрос есть ?
> Или что-то мешает ?
Что мешает использовать тот gcc, который вам нужен вместо того, который
лежит и не мешает?
> А gccX.Y-с++ ? Или, в этом случае, "BuildRequires: gccX.Y-c++" требуется
> всё равно, если c++ надо ?
Да, требуется, также как и для всех gcc-что-нибудь (удобно писать
'gcc%{?_gcc_version}-что-нибудь' вместо gccX.Y-что-нибудь).
> Или это вот
>
> Inconsistency detected by ld.so: dl-version.c: 224: _dl_check_map_versions: Assertion `needed != ((void *)0)' failed!
> ldd: ERROR: ./usr/lib/xorp/bin/rip_show_stats: trace failed
Возможно, это может быть результатом работы chrpath. После его отключения
такие проблемы у меня исчезают.
> последствие не gcc4.8, а чего-то другого ? Хотя, если посмотреть в xorp-овский
> git https://github.com/greearb/xorp.ct/tree/master/xorp, видно, что какие-то
> исправления для 4.8 были уже, правда давно.
Вы так говорите, будто между t6 и Сизифом мог измениться только gcc. ;)
А в 4.7 правда какой-то internal error, используйте 4.6.
Так (см. diff) у меня всё собирается (в Сизифе на 4.8, в t7 на 4.6, в t6
на 4.5)
--
glebfm
Глеб Фотенгауэр-Малиновский
----------- следующая часть -----------
diff --git a/xorp.spec b/xorp.spec
index c134a1f..4492f35 100644
--- a/xorp.spec
+++ b/xorp.spec
@@ -37,7 +37,7 @@ BuildRequires: chrpath
# Automatically added by buildreq on Tue Apr 08 2014
# optimized out: libstdc++-devel libtinfo-devel python-base python-modules python-modules-compiler python-modules-email xz
-BuildRequires: cvs flex gcc4.5-c++ libncurses-devel libpcap-devel libpcre-devel libssl-devel scons
+BuildRequires: cvs flex gcc-c++ libncurses-devel libpcap-devel libpcre-devel libssl-devel scons
%description
@@ -53,9 +53,7 @@ functionality, including support for custom hardware and software forwarding.
%build
-%set_gcc_version 4.5
-
-scons -j4 \
+[ -n "$NPROCS" ] || NPROCS='%__nprocs'; scons -j$NPROCS \
DESTDIR=${RPM_BUILD_ROOT} \
sbindir=%{_sbindir} \
prefix=%{prefixdir} \
@@ -63,6 +61,8 @@ scons -j4 \
sysconfdir=%{_sysconfdir} \
xorp_confdir=%{_sysconfdir} \
localstatedir=%{_localstatedir} \
+ build=%_configure_platform \
+ rtld_origin=false \
%if %with_shared
shared=yes \
%endif
@@ -92,6 +92,8 @@ scons \
sysconfdir=%{_sysconfdir} \
xorp_confdir=%{_sysconfdir} \
localstatedir=%{_localstatedir} \
+ build=%_configure_platform \
+ rtld_origin=false \
%if %with_shared
shared=yes \
%endif
@@ -106,15 +108,8 @@ scons \
%{__install} -m 0644 %{SOURCE3} ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/xorp
%{__install} -m 0660 %{SOURCE4} ${RPM_BUILD_ROOT}%{_sysconfdir}/xorp
-
-# remove rpath
-find %buildroot -type f -exec file {} \; | grep ELF | sed "s/^\([^ ]*\): ELF.*/\1/" | \
- while read f; do chrpath -d $f; done
-
-%set_verify_elf_method unresolved=relaxed
-
%pre
-if ! getent group xorp >/dev/null 2>&1; then
+if ! getent group xorp >/dev/null 2>&1; then
/usr/sbin/groupadd -r xorp
# xorpsh is using group's permission for access to xorp.
@@ -141,12 +136,12 @@ exit 0
%attr(660,root,xorp) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/xorp/xorp.conf
%dir %_datadir/%name
-%dir %_libexecdir/%name
+%dir /usr/lib/%name
%dir %_logdir/%name
%_sbindir/*
%_datadir/%name/*
-%_libexecdir/%name/*
+/usr/lib/%name/*
%changelog
* Wed Apr 09 2014 Sergey Y. Afonin <asy на altlinux.ru> 1.8.6-alt0.20130830.1
----------- следующая часть -----------
diff --git a/xorp.spec b/xorp.spec
index c134a1f..230b761 100644
--- a/xorp.spec
+++ b/xorp.spec
@@ -4,6 +4,7 @@
%define prefixdir /usr
%define snapshot 1
+%set_gcc_version 4.6
Name: xorp
%define baseversion 1.8.6
@@ -37,7 +38,7 @@ BuildRequires: chrpath
# Automatically added by buildreq on Tue Apr 08 2014
# optimized out: libstdc++-devel libtinfo-devel python-base python-modules python-modules-compiler python-modules-email xz
-BuildRequires: cvs flex gcc4.5-c++ libncurses-devel libpcap-devel libpcre-devel libssl-devel scons
+BuildRequires: cvs flex gcc%{?_gcc_version}-c++ libncurses-devel libpcap-devel libpcre-devel libssl-devel scons
%description
@@ -53,9 +54,7 @@ functionality, including support for custom hardware and software forwarding.
%build
-%set_gcc_version 4.5
-
-scons -j4 \
+[ -n "$NPROCS" ] || NPROCS='%__nprocs'; scons -j$NPROCS \
DESTDIR=${RPM_BUILD_ROOT} \
sbindir=%{_sbindir} \
prefix=%{prefixdir} \
@@ -63,6 +62,8 @@ scons -j4 \
sysconfdir=%{_sysconfdir} \
xorp_confdir=%{_sysconfdir} \
localstatedir=%{_localstatedir} \
+ build=%_configure_platform \
+ rtld_origin=false \
%if %with_shared
shared=yes \
%endif
@@ -92,6 +93,8 @@ scons \
sysconfdir=%{_sysconfdir} \
xorp_confdir=%{_sysconfdir} \
localstatedir=%{_localstatedir} \
+ build=%_configure_platform \
+ rtld_origin=false \
%if %with_shared
shared=yes \
%endif
@@ -106,15 +109,8 @@ scons \
%{__install} -m 0644 %{SOURCE3} ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/xorp
%{__install} -m 0660 %{SOURCE4} ${RPM_BUILD_ROOT}%{_sysconfdir}/xorp
-
-# remove rpath
-find %buildroot -type f -exec file {} \; | grep ELF | sed "s/^\([^ ]*\): ELF.*/\1/" | \
- while read f; do chrpath -d $f; done
-
-%set_verify_elf_method unresolved=relaxed
-
%pre
-if ! getent group xorp >/dev/null 2>&1; then
+if ! getent group xorp >/dev/null 2>&1; then
/usr/sbin/groupadd -r xorp
# xorpsh is using group's permission for access to xorp.
@@ -141,12 +137,12 @@ exit 0
%attr(660,root,xorp) %config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/xorp/xorp.conf
%dir %_datadir/%name
-%dir %_libexecdir/%name
+%dir /usr/lib/%name
%dir %_logdir/%name
%_sbindir/*
%_datadir/%name/*
-%_libexecdir/%name/*
+/usr/lib/%name/*
%changelog
* Wed Apr 09 2014 Sergey Y. Afonin <asy на altlinux.ru> 1.8.6-alt0.20130830.1
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 181 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20140410/e1556e89/attachment.bin>
Подробная информация о списке рассылки Devel