Intereting Posts
проверить дубликат входа в файл Изменение веб-браузера по умолчанию на lynx с терминала команда / opt / bin / date -date '-15 минут 2016-04-27T14: 14: 47' результат за много часов до указанного времени Использование аппаратного ускорения без экрана / дисплея Выход из системы с помощью терминала найти подкаталоги с наименьшим числом Автозаполнения и сочетания клавиш для Linux Как настроить sshd_config, чтобы не принимать ключи dsa, которые настроены в публичной аутентификации? Установка частоты повторения клавиатуры USB автоматически Сценарий оболочки для резервного копирования VMware VM, экспорт каждой виртуальной машины в список, а затем запрос пользователя на ввод Рандомизировать или обрезать память приложения Конкатенация строковой переменной внутри цикла for в оболочке bash Длительный R-скрипт автоматически убивается Использование ресурсов в x-forwarding Проблемы с использованием pantheon-greeter-bzr и pantheon-session-bzr на виртуальном боксе с помощью ArchLinux

OpenSSL Package Rebuild CentOS 6.4

Перестроение openssl с эллиптическими кривыми на CentOS 6.4

Стратегия:

1) Download the "official" CentOS source package (.src.rpm) 2) Modify the .spec file to enable elliptic curves. (change no-EC to enable-EC) 3) Rebuild the package using mock. 

Сборка выполняется на новом сервере Amazon Cloud, который позволяет любому точно дублировать каждый шаг, который делается ниже.

 # 1. Log into AWS (Amazon Web Services) and create a public key. # 2. Download your public key and install into your local client eg putty or ssh. # 3. Instantiate a CentOS 6.4 machine using AWS marketplace for machine images. (free) # 4. Log into your new Centos 6.4 using ssh or putty, update and install a few packages: 

Обновите недавно установленные Centos и установите средства разработки

 yum -y update # Update all packages on a new machine yum -y groupinstall 'Development tools' 

Установите mock, суперкомпонента, из репозитория Fedora EPEL. Mock – это секретное оружие разработчиков пакетов CentOS (и многих других дистрибутивов).

 yum -y localinstall --nogpgcheck http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # Install EPEL (EL6 extra packages) repository yum -y install fedora-packager # Install mock from EPEL repository 

Создайте нового пользователя «abcd», добавленного в группу «mock». Пользователь abcd будет использоваться для восстановления пакета. Примечание: групповой «mock» был автоматически создан yum, когда мы установили fedora-packager.

 userdel -rf abcd ; useradd -G mock abcd ; su abcd 

Извлеките последний исходный пакет CentOS openssl и «распакуйте» его с помощью mock

 cd ~ ; curl -O http://vault.centos.org/6.4/os/Source/SPackages/openssl-1.0.0-27.el6.src.rpm /usr/bin/mock --rebuild ~/openssl-1.0.0-27.el6.src.rpm 

Мы видим выходные строки, подобные этому

 # INFO: mock.py version 1.1.32 starting... # Start: build setup for openssl-1.0.0-27.el6.src.rpm # Start: rpmbuild -bb openssl-1.0.0-27.el6.src.rpm # Start: Outputting list of installed packages 

Наконец, через долгое время мы видим

 # INFO: Results and/or logs in: /var/lib/mock/epel-6-x86_64/result 

Перенести результаты макетной сборки в безопасное место

 rm -rf /home/abcd/build ; mv /var/lib/mock/epel-6-x86_64/root/builddir/build/ /home/abcd ; # Move to a safe place 

Загрузите исходный файл с заменой (.tar.gz) и файл исправления с сайта openssl.org

 cd /home/abcd/build/SOURCES curl -O http://www.openssl.org/source/openssl-1.0.0.tar.gz # Download corresponding source tarball from openssl curl -o patch300.patch http://cvs.openssl.org/patchset?cn=19998 # Download this patch to fix a test error 

Отредактируйте файл openssl.spec для

 # 1. Enable elliptic curves (enable-EC) # 2. Disable the hobble-openssl script (which erases EC files) # 3. Update the release mumber to .EC.1 # 4. Include the newly downloaded .tar.bz as source # 5. Include the newly downloaded patch file cd ../SPECS sed -i -e "s/no-ec/enable-ec/; s/no-ecdh/enable-ecdh/; s/no-ecdsa/enable-ecdsa/" openssl.spec # Enable EC sed -i -e "s/^Source1: hobble-openssl/#&/; s/^%.SOURCE1. /#&/" openssl.spec # Disable the "hobble" script sed -i -e "s/^Release.*dist\}/&.EC.1/" openssl.spec # Also change release number by adding .EC.1 sed -i -e "s/-usa.tar.bz2/.tar.gz/" openssl.spec # Change the source tarball sed -i -e "s/^Patch78.*/&\nPatch300: patch300.patch\n/" openssl.spec # Add the new patch sed -i -e "s/^%patch78.*/&\n%patch300 -p1 \n/" openssl.spec # Add the new patch again 

Запустите новый исходный пакет, используя отредактированный («enable-EC») openssl.spec

 /usr/bin/mock --buildsrpm --spec ~/build/SPECS/openssl.spec --sources ~/build/SOURCES # Do a source rebuild 

Используйте новый исходный пакет для создания нового пакета openssl

 cp /var/lib/mock/epel-6-x86_64/root/builddir/build/SRPMS/openssl-1.0.0-27.el6.EC.1.src.rpm /home/abcd cd ~ ; /usr/bin/mock --rebuild openssl-1.0.0-27.el6.EC.1.src.rpm 

Обобщены здесь http://pastebin.centos.org/3070

Спасибо pj на Freenode за помощь.