Bug 32233 - .spec: it's better not to redefine %_libdir for build (and check for 64 differently)
Summary: .spec: it's better not to redefine %_libdir for build (and check for 64 diffe...
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: java-1.5.0-gcj (show other bugs)
Version: unstable
Hardware: all Linux
: P3 minor
Assignee: Dmitry V. Levin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-06-29 19:21 MSK by Ivan Zakharyaschev
Modified: 2016-06-29 19:21 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Zakharyaschev 2016-06-29 19:21:40 MSK
+++ This bug was initially created as a clone of Bug #32231 +++

С переназначением %_libdir тоже хорошо бы что-то сделать (потому что
сборочные "инструменты"/"реквизиты" будут искаться ведь тоже не там! И та простыня ошибок была вызвана чем-то вроде этой причины):

# python support for aot-compile
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}

# hard-code libdir on 64-bit architectures to make the 64-bit JDK
# simply be another alternative
%ifarch ppc64 s390x x86_64 sparc64
%define syslibdir        %{_prefix}/lib64
%define _libdir          %{_prefix}/lib
%else
%define syslibdir        %{_libdir}
%endif

%if %{enable_plugin}
%define plugindir       %{_libdir}/mozilla/plugins
%endif

%files aot-compile
%_bindir/aot-compile*
/usr/lib/python*/site-packages/*

Т.е. высталять новое значение как параметр сборки явно в %build, %install, %files? (Для питона есть %python_sitelibdir_noarch.)

(Тут ещё возникает неожиданное несоответствие между %_lib и %_libdir -- обычно одно в конце другого, а здесь:

	export RPM_LIB="lib64"
	export RPM_LIBDIR="/usr/lib"
	export RPM_DATADIR="/usr/share"

).

* * *

Хорошо бы подумать, как проверку 64ёх переписать на более осмысленную без явного списка архитектур -- вроде: %if "%_lib" != "lib" (сработает и на x32, где не 64):

# hard-code libdir on 64-bit architectures to make the 64-bit JDK
# simply be another alternative
%ifarch ppc64 s390x x86_64 sparc64
%define syslibdir        %{_prefix}/lib64
%define _libdir          %{_prefix}/lib
%else
%define syslibdir        %{_libdir}
%endif

(Можно ещё ExclusiveArch прописать при необходимости.)