LINUX.ORG.RU

OpenSSL в CentOS 5. Мне нужна помощь знатока src.rpm-ок

 , ,


0

1

Всем привет! Я собираю последние версии программ в билд-ферме на основе CentOS 5, чтобы они просили glibc 2.4. Проблем обычно не возникает, потому что существует Red Hat Toolset с последней версией компилятора. Устанавливаю зависимости - и вперёд. Зависимости потом кладу в архив с программой - за исключением GTK, libpng, libjpeg, freetype и иксовых либ, потому что стандарт LSB гарантирует их наличие в дистрах.

Сейчас я собираю тулкиты и прочие зависимости прикладных программ - навроде Portable Mono. У меня уже есть Portable-версии Qt5 (пример софтины) и Python 2.7, пришла очередь OpenSSL. Не вопрос: беру SRPM-ку от RHEL7 и собираю. При установке -devel-пакета - куча ругани и отказ установки.

Я вспомнил один случай: в Opensuse 11.4 в репозитории 1.0.0c-17.1, в Updates - 1.0.0c-18.42. Мне понадобилась версия не старее 1.0.0e, и я установил её из этого репозитория (SRPM-ка прилагается). Нужная программа заработала, но после перезагрузки не стартовали иксы. Логи не созранились, но я помню их суть: «скомпилено с OpenSSL такой-то, а в системе такая-то». Пришлось откатить OpenSSL на прежнюю версию. Но! Спустя время прилетел апдейт из Evergreen с той же самой версией OpenSSL, и с ней - работает!

SRPM с проблемой, SRPM-ка без неё.

В чём между ними принципиальная разница? Когда я искал готовые пакеты с OpenSSL 1.0 дл CentOS 5, я находил ссылки, но они были нерабочие. И все писали что было суперклассное репо для разработчиков, но теперь его нет. А может, просто компильнуть его в юзерспейс, как я делал с Python 2.7 и libxml2 для Qt 5?

./configure --prefix=/home/buildfarm/qt5/python2.7
★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 1)

собери angband 3.3.2 для openbsd 4.2?

buratino ★★★★★
()

Пришлось откатить OpenSSL на прежнюю версию. Но! Спустя время прилетел апдейт из Evergreen с той же самой версией OpenSSL, и с ней - работает!

Потому что OBS. Как только в Evergreen обновили openssl, всё вокруг было поставлено на пересборку с новой openssl(всё, что от неё зависит).

К тому же, у этих двух пакетов разные патчи в поставке:

[nexfwall@VPCYB1S1R-OS00 ~]$ rpmdiff openssl-1.0.1p-71.1.src.rpm openssl-1.0.2g-278.1.src.rpm
S.5.....    URL
added       0001-Axe-builtin-printf-implementation-use-glibc-instead.patch
added       0001-libcrypto-Hide-library-private-symbols.patch
S.5.......T 0005-libssl-Hide-library-private-symbols.patch
added       README-FIPS.txt
added       README.SUSE
removed     README.SuSE
removed     VIA_padlock_support_on_64systems.patch
S.5.......T baselibs.conf
added       bsc936563_hack.patch
S.5.......T bug610223.patch
S.5.......T compression_methods_switch.patch
S.5.......T merge_from_0.9.8k.patch
S.5.......T openssl-1.0.0-c_rehash-compat.diff
added       openssl-1.0.1e-add-suse-default-cipher.patch
added       openssl-1.0.1e-add-test-suse-default-cipher-suite.patch
S.5.......T openssl-1.0.1e-truststore.diff
removed     openssl-1.0.1n-default-paths.patch
removed     openssl-1.0.1p.tar.gz
removed     openssl-1.0.1p.tar.gz.asc
added       openssl-1.0.2a-default-paths.patch
added       openssl-1.0.2a-fips-ctor.patch
added       openssl-1.0.2a-fips-ec.patch
added       openssl-1.0.2a-ipv6-apps.patch
added       openssl-1.0.2a-new-fips-reqs.patch
added       openssl-1.0.2a-padlock64.patch
added       openssl-1.0.2e-fips.patch
added       openssl-1.0.2g.tar.gz
added       openssl-1.0.2g.tar.gz.asc
removed     openssl-CVE-2015-1794.patch
removed     openssl-CVE-2015-1794_2.patch
removed     openssl-CVE-2015-3194.patch
removed     openssl-CVE-2015-3195.patch
removed     openssl-CVE-2015-3197.patch
removed     openssl-CVE-2016-0701.patch
removed     openssl-CVE-2016-0702.patch
removed     openssl-CVE-2016-0702_2.patch
removed     openssl-CVE-2016-0702_3.patch
removed     openssl-CVE-2016-0705.patch
removed     openssl-CVE-2016-0797.patch
removed     openssl-CVE-2016-0798.patch
removed     openssl-CVE-2016-0799.patch
removed     openssl-CVE-2016-0800.patch
added       openssl-fips-hidden.patch
S.5.......T openssl-fix-pod-syntax.diff
added       openssl-gcc-attributes.patch
added       openssl-missing_FIPS_ec_group_new_by_curve_name.patch
added       openssl-no-egd.patch
S.5.......T openssl-ocloexec.patch
S.5.......T openssl-pkgconfig.patch
S.5.......T openssl.changes
added       openssl.keyring
S.5.......T openssl.spec

Научись собирать под CentOS 5 используя Mock

[nexfwall@VPCYB1S1R-OS00 ~]$ ls /etc/mock/epel-5-*
/etc/mock/epel-5-i386.cfg  /etc/mock/epel-5-ppc.cfg  /etc/mock/epel-5-x86_64.cfg

nexfwall ★★★★
()
Последнее исправление: nexfwall (всего исправлений: 1)
Ответ на: комментарий от nexfwall

Спасибо за ответ по существу!

Ну, в тот день из Evergreen прилетело всего ничего: bind, firefox и openssl. Иксы не прилетали. Наверное и правда в патчах дело.

Насчёт CentOS 5, я додумался распаковать RPM-ки в юзерспейс!!! Теперь подставлю -I/home/buildfarm/qt5/include/openssl иии всё будет супер! Только удалю -devel от 0.9.8.

А с готовым бинарником, который предлагается запустить пользователю, знаешь как сделаю? У 90% в системе уже лежит 1.0.0, но я решил позаботиться о 10% (потому что сам вхожу и их число). У меня в каждой проге лежит run.sh, который подцепляет lib32 или lib64 с зависимостями. Допишу его, сделаю проверку на наличие libssl.so.1.0.0 в системе, а в случае отсутствия будет показываться окошко по типу такого. Только с другим текстом: «У вас в системе нет libssl.so.1.0.0. Я подцепляю свою. Только она офигеть какая старая и дырявая. Установите библиотеку из репозитория дистрибутива1!!»

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 3)
Ответ на: комментарий от ZenitharChampion

как я знаю, из одного SPEC может выйти несколько пакетов - в том числе и devel

mystery ★★
()
Ответ на: комментарий от ZenitharChampion

Я верно понимаю, что ты замарочился делать бандлы по типу виндовых - в линуксы? Не просто в линуксы, а в дофига старые линуксы. Этож насколько надо ностальгировать по 2010, чтобы возвращать его себе таким образом...

Насчёт CentOS 5, я додумался распаковать RPM-ки в юзерспейс!!! Теперь подставлю -I/home/buildfarm/qt5/include/openssl иии всё будет супер! Только удалю -devel от 0.9.8.

Если ты соберёшься собирать openssl 1.0, то -devel пакет у тебя должен быть на выходе. Тебе нужно лишь его обновить. Если ты не знал, то -devel пакеты обычно включают в себя не-версионизированный симлинк на библиотеку(для того, чтобы слинковать объект с ней, вне зависимости от версии после .so) и хидеры. А так как ты собираешь используя «дедовский метод», rpmbuild'ом, тебе он определённо будет нужен для того, чтобы собрать что-то под твой пакет.

И очень рекомендую тебе, если уж тащишь 1.0.1 в CentOS 5.0 - то тащи не из openSUSE, а из более нового CentOS, который до сих пор поддерживается. Просто сделай бэкпорт под CentOS 5.

nexfwall ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.