Bug 32233

Summary: .spec: it's better not to redefine %_libdir for build (and check for 64 differently)
Product: Sisyphus Reporter: Ivan Zakharyaschev <imz>
Component: java-1.5.0-gcjAssignee: Dmitry V. Levin <ldv>
Status: NEW --- QA Contact: qa-sisyphus
Severity: minor    
Priority: P3 CC: glebfm, sbolshakov, viy
Version: unstable   
Hardware: all   
OS: Linux   

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 прописать при необходимости.)