Bug 29971

Summary: Добавление пакета для libunrar
Product: Sisyphus Reporter: NotHAM <aichernov>
Component: unrarAssignee: Fr. Br. George <george>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P3 CC: george
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Примерный спек none

Description NotHAM 2014-04-08 15:52:18 MSK
Created attachment 6077 [details]
Примерный спек

В конце прошлого года, в процессе сборки Double Commander,
возникла необходимость в библиотеке libunrar, т. к. DC
заточен под работу именно с библиотекой, а не с утилитой unrar.
На тот момент в бранче р6 (да и в сизифе) unrar лежал
сильно устаревшей версии (4.0.7), а библиотека еще более старая.
Тогда Геннадий (Drool@), с моей подачи, разместил в сизифе 
libunrar версии 5.0.12, а позднее и версии 5.0.14. И сразу
возникли вопросы ...
http://forum.russ2.com/index.php?s=&showtopic=3585&view=findpost&p=37443
http://forum.russ2.com/index.php?s=&showtopic=3585&view=findpost&p=39631
Сейчас, поскольку в сизифе находится unrar актуальной версии, может
быть есть смысл собирать их одновременно, тем более что они
собираются из одних и тех-же исходников.
Сделал пробную сборку, результат лежит здесь ...
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/_anatoly/packages/DC-beta/
спек сборки, слегка укороченный, во вложении.

Всё работает, но некоторые сомнения остались.
Там, в секции %build, написал так...
  %make_build STRIP=touch     # Это из АЛЬТовского спека
  make lib CXXFLAGS+="-fPIC -DSILENT" STRIP=true # ... а это из сборки
под Федору
Если эти строки поменять местами - сборка обломается (%make_build начнет
"капризничать").
Кроме того мне непонятен смысл ключа -DSILENT. К чему он относится
(в руководствах по g++ такого ключа не обнаружил, хотя -fPIC - там 
нашелся), и что этот ключ дает (кроме увеличения размера libunrar.so
примерно на 70 КБайт и, соответственно, увеличения libunrar.so.debug на
20 КБайт).
Ради эксперимента для себя пересобрал с такой секцией %build ...
  make lib STRIP=touch
  make STRIP=touch
Тут порядок сборки не имеет значения! Тоже всё работает (на имеющихся rar
архивах проблем не заметил). Причем бинарник unrar совпадает с предыдущим 
вариантом с точностью до байта (diff = 0).
Как более правильно - не знаю.
Просьба к майнтейнеру - наладить одновременную сборку unrar и libunrar,
т. к. библиотека тоже оказалась востребованной.
Спасибо.
Comment 1 Fr. Br. George 2014-04-28 21:18:47 MSK
(В ответ на комментарий №0)
> Кроме того мне непонятен смысл ключа -DSILENT. К чему он относится
> (в руководствах по g++ такого ключа не обнаружил,
А вы поищите ключ -D ツ

>   make lib STRIP=touch
>   make STRIP=touch
Да, так, пожалуй, и сделаю.

Но знали бы вы, какое это ИЗВРАЩЕНИЕ -- библиотека без -devel версии
Comment 2 Repository Robot 2014-04-28 22:02:30 MSK
unrar-5.1.2-alt2 -> sisyphus:

* Mon Apr 28 2014 Fr. Br. George <george@altlinux> 5.1.2-alt2
- Build libunrar as well (Closes: #29971)
Comment 3 NotHAM 2014-04-29 13:07:53 MSK
(В ответ на комментарий №1)
> 
> Но знали бы вы, какое это ИЗВРАЩЕНИЕ -- библиотека без -devel версии

Если отказаться от извращений можно сделать как-то так:
%files devel
%dir %includedir/libunrar
%includedir/libunrar/dll.hpp

В своё время ldv@ вроде именно этот файл и подкладывал, а
force@ именно в таком виде и поддерживал (см. бранч р6),
тем более что этот файлик в исходниках присутствует.
Спасибо.
Comment 4 Fr. Br. George 2014-05-14 13:18:31 MSK
(In reply to comment #3)
> (В ответ на комментарий №1)
> > 
> > Но знали бы вы, какое это ИЗВРАЩЕНИЕ -- библиотека без -devel версии
> 
> Если отказаться от извращений можно сделать как-то так:
> %files devel
> %dir %includedir/libunrar
> %includedir/libunrar/dll.hpp
> 
> В своё время ldv@ вроде именно этот файл и подкладывал, а
> force@ именно в таком виде и поддерживал (см. бранч р6),
> тем более что этот файлик в исходниках присутствует.
Да, спасибо, проглядел этот факт. dll.hpp действительно ничего не инклюдит.
Comment 5 NotHAM 2014-05-14 14:16:47 MSK
(В ответ на комментарий №4)
> Да, спасибо, проглядел этот факт. dll.hpp действительно ничего не инклюдит.
Только там патч какой-то применялся. Исходники с патчем пока существуют
в бранчах р6 (неделю назад ещё были в libunrar3-...src.rpm) и р5 (тут для
более старой версии). Кто автор патча - не знаю. Нужен-ли он - тоже не знаю
(мне пакет devel не нужен в принципе, т.к. при сборке DC он не используется).