Bug 21019 - При сборке компилятору не передаются %optflags
Summary: При сборке компилятору не передаются %optflags
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: assaultcube (show other bugs)
Version: unstable
Hardware: all Linux
: P3 minor
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-10 11:48 MSD by Motsyo Gennadi
Modified: 2009-09-01 08:10 MSD (History)
2 users (show)

See Also:


Attachments
Патч для активации %optflags (2.84 KB, patch)
2009-08-10 11:48 MSD, Motsyo Gennadi
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Motsyo Gennadi 2009-08-10 11:48:44 MSD
Created attachment 3730 [details]
Патч для активации %optflags

При сборке игнорируются параметры %optflags. Это не имеет значения для x86_64, но это важно для 32-битной сборки - в этом случае указанная архитектура --target получается ложной, и в пакетах хоть i386, хоть athlon-xp или pentium4 лежит один и тот же бинарник, хотя rpm воспринимает пакет в соответствии с таблицей архитектур.
Патч прилагаю. Для него секция спека %build должна иметь такой вид:
===========================
%build
export OPTFLAGS="%optflags"
%make -C source/src
===========================
Comment 1 Andrew Clark 2009-08-10 13:51:01 MSD
Резонно. Специфика только для ALT Linux, или же можно передавать
в upstream? Кстати, прежде чем я увеличу номер сборки, может имеет
смысл сделать --as-needed?
Comment 2 Motsyo Gennadi 2009-08-10 14:12:33 MSD
(В ответ на комментарий №1)
> Резонно. Специфика только для ALT Linux, или же можно передавать
> в upstream?

Альт-специфичным может оказаться название переменной %optflags. Вроде в RPM-стандарте используется переменная $RPM_OPT_FLAGS, но могу ошибаться, т.к. давно уже таких спеков не видел. А сама по себе ситуация - недистроспецифична. Апстриму было бы хорошо предложить решить это дополнительным ключиком для вызова make.

> Кстати, прежде чем я увеличу номер сборки, может имеет
> смысл сделать --as-needed?

А что с ним не так? У меня на 4.1 все прекрасно собралось, установилось и работает. Значит проблем с --as-needed нет:
http://git.altlinux.org/people/drool/packages/assaultcube.git

P.S. Абсолютно аналогичная проблема с игнорированием %optflags и для sauerbraten. Багу вешать или не стоит? Патч для нее еще не изготовил, только приступил к ковырянию.

P.P.S. К заливке ассаула в бранчи готов ;) Но если в сизифе будет исправленная версия - мне имеет смысл подождать и сделать сборку в бранчи уже на основе сизифного.
Comment 3 Andrew Clark 2009-08-10 17:47:20 MSD
ACL предоставил, но подождать имеет смысл, так как я сам, пожалуй, обновлю 
и AssaultCube и Sauerbraten.
Comment 4 Motsyo Gennadi 2009-08-10 18:00:06 MSD
(В ответ на комментарий №3)
> ACL предоставил, но подождать имеет смысл, так как я сам, пожалуй, обновлю 
> и AssaultCube и Sauerbraten.

Ок, я тогда подожду обновления в сизифе и на этом сделаю заливку в бранчи.
Comment 5 Andrey Rahmatullin 2009-08-11 21:19:04 MSD
(В ответ на комментарий №1)
> Специфика только для ALT Linux, или же можно передавать в upstream?
В таком виде - ни в коем случае. Тем более что в данном случае, кажется, можно было вообще без патча обойтись, перекрыв CXXOPTFLAGS в спеке.
Comment 6 Andrew Clark 2009-08-27 18:07:21 MSD
Текущая строка в спеке:
%build
%make -C source/src CXXOPTFLAGS="%optflags"
Проверьте пожалуйста, если вас это устраивает, 
я добавлю в sauerbraten и залью новые версии в сизиф.
Comment 7 Motsyo Gennadi 2009-08-28 00:28:43 MSD
(В ответ на комментарий №6)
> %make -C source/src CXXOPTFLAGS="%optflags"
> Проверьте пожалуйста, если вас это устраивает, 
> я добавлю в sauerbraten и залью новые версии в сизиф.

А там точно только C++? Бо при сборке вижу вызовы как g++, так и gcc. На всякий сделал так:
%make_build -C source/src CXXOPTFLAGS="%optflags" CFLAGS="%optflags"
Визуально - везде при сборке %optflags присутствует.

P.S. %make_build лучше, чем %make.
P.P.S. И не забыть это же и для sauerbraten.
Comment 8 Andrew Clark 2009-08-28 23:10:45 MSD
Поправил спек для AssaultCube и Sauerbraten. Теперь это выглядит так:

%build
%make_build -C source/src CFLAGS="%optflags" CXXOPTFLAGS="%optflags"

%build
%make_build -C src/ CFLAGS="%optflags" CXXOPTFLAGS="%optflags"
соответсвтенно. Я делаю изменения в Сизиф?
Comment 9 Motsyo Gennadi 2009-08-28 23:25:57 MSD
(В ответ на комментарий №8)
> ...Я делаю изменения в Сизиф?

Конечно.