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, т. к. библиотека тоже оказалась востребованной. Спасибо.
(В ответ на комментарий №0) > Кроме того мне непонятен смысл ключа -DSILENT. К чему он относится > (в руководствах по g++ такого ключа не обнаружил, А вы поищите ключ -D ツ > make lib STRIP=touch > make STRIP=touch Да, так, пожалуй, и сделаю. Но знали бы вы, какое это ИЗВРАЩЕНИЕ -- библиотека без -devel версии
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)
(В ответ на комментарий №1) > > Но знали бы вы, какое это ИЗВРАЩЕНИЕ -- библиотека без -devel версии Если отказаться от извращений можно сделать как-то так: %files devel %dir %includedir/libunrar %includedir/libunrar/dll.hpp В своё время ldv@ вроде именно этот файл и подкладывал, а force@ именно в таком виде и поддерживал (см. бранч р6), тем более что этот файлик в исходниках присутствует. Спасибо.
(In reply to comment #3) > (В ответ на комментарий №1) > > > > Но знали бы вы, какое это ИЗВРАЩЕНИЕ -- библиотека без -devel версии > > Если отказаться от извращений можно сделать как-то так: > %files devel > %dir %includedir/libunrar > %includedir/libunrar/dll.hpp > > В своё время ldv@ вроде именно этот файл и подкладывал, а > force@ именно в таком виде и поддерживал (см. бранч р6), > тем более что этот файлик в исходниках присутствует. Да, спасибо, проглядел этот факт. dll.hpp действительно ничего не инклюдит.
(В ответ на комментарий №4) > Да, спасибо, проглядел этот факт. dll.hpp действительно ничего не инклюдит. Только там патч какой-то применялся. Исходники с патчем пока существуют в бранчах р6 (неделю назад ещё были в libunrar3-...src.rpm) и р5 (тут для более старой версии). Кто автор патча - не знаю. Нужен-ли он - тоже не знаю (мне пакет devel не нужен в принципе, т.к. при сборке DC он не используется).