andy_shev: (Default)
[personal profile] andy_shev
Итак, для тех, у кого Fedora и кто хочет таки протестировать забавное p2p телевидение и написано это небольшое HOWTO.


В начале надо сказать, что я пытался запустить это всё под уже устаревшей Fedora-7, но рецепт нужен для любой из них.

Много, много нехороших слов в сторону США и их долбанутостью в области патентования алгоритмов, криптографии и т.п.
Но сейчас не о том.

1. Чтобы всю эту кухню, установить, напишите нечто вроде:
yum install wxGTK wxPython python-vlc
убедившись предварительно, что репозиторий livna подключен - куда уж без него?

2. Потом начинается самое интересное. Необходимо сходить на http://download.fedora.redhat.com и скачать из обновлений пакет openssl-0.9.8...src.rpm (исходники!) и такое же проделать с пакетом m2crypto, который лежит в наборе базового дистрибутива.
Я не буду писать точные URL и имена пакетов - нетрудно для своей версии всё это там отыскать.
Надо заметить, что пакет m2crypt я брал для F-9, что не принципиально.

3. Следующий шаг - скачивание полноценного архива openssl той же версии с официального сайта.

4 . Устанавливаем исходники командой
rpm -ivh openssl-0.9.8...src.rpm

Скорее всего это будет каталог вроде /usr/src/redhat/SOURCES (а также SPECS, BUILD, ...)

5. Копируем нормальную версию в .../SOURCES

6. Накатываем патчик на spec примерно такого содержания:

--- openssl.spec.orig	2007-10-12 14:58:27.000000000 +0300
+++ openssl.spec	2008-07-26 21:02:09.000000000 +0300
@@ -22,7 +22,7 @@
 Name: openssl
 Version: 0.9.8b
 Release: 15%{?dist}
-Source: openssl-%{version}-usa.tar.bz2
+Source: openssl-%{version}.tar.gz
 Source1: hobble-openssl
 Source2: Makefile.certificate
 Source3: ca-bundle.crt
@@ -108,7 +108,6 @@
 %prep
 %setup -q
 
-%{SOURCE1} > /dev/null
 %patch0 -p1 -b .redhat
 %patch1 -p1 -b .defaults
 # Fix link line for libssl (bug #111154).
@@ -187,7 +186,7 @@
 # RPM_OPT_FLAGS, so we can skip specifiying them here.
 ./Configure \
 	--prefix=%{_prefix} --openssldir=%{_sysconfdir}/pki/tls ${sslflags} \
-	zlib no-idea no-mdc2 no-rc5 no-ec no-ecdh no-ecdsa shared \
+	zlib shared \
 	--with-krb5-flavor=MIT --enginesdir=%{_libdir}/openssl/engines \
 	-I%{_prefix}/kerberos/include -L%{_prefix}/kerberos/%{_lib} \
 	${sslarch}


7. Говорим
rpmbuild -ba --target i686,i386 openssl.spec
(архитектуру выбираете по аналогии с установленным пакетом)
i386 должна быть обязательно, иначе не соберётся пакет *-devel, да и в случае multilib без неё пока никак.

8. Устанавливаем человеческую версию:
rpm -Uvh --force .../RPMS/i386/openssl-devel* .../RPMS/i686/openssl-0.9.8*

Сообственно, это одно из тех преимуществ, которые были сделаны в рамках ASPLinux...

9. Переходим ко второму - пакету m2crypto.

А пакет m2crypto в тупую содержит код в питоновской части на остуствующую часть в библиотеке. Товарищи в РХ на букву м. знаете что сделали? Они подменили конфигурационный файл в спеке, а ошибку, что генерирует gcc при сборке скрывают передачей параметра -cpperraswarn. Такого костыля я ещё не видел.

Кстати, по этому поводу RH уже получил.

Поэтому накладываем на spec патчик типа:
--- m2crypto.spec.orig	2008-02-19 15:52:58.000000000 +0200
+++ m2crypto.spec	2008-07-26 21:25:55.000000000 +0300
@@ -1,12 +1,9 @@
 %{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
 
-# Keep this value in sync with the definition in openssl.spec.
-%define multilib_arches %{ix86} ia64 ppc ppc64 s390 s390x x86_64
-
 Summary: Support for using OpenSSL in python scripts
 Name: m2crypto
 Version: 0.18.2
-Release: 4
+Release: 4%{?dist}
 Source0: http://wiki.osafoundation.org/pub/Projects/MeTooCrypto/m2crypto-%{version}.tar.gz
 Patch0: m2crypto-0.18-timeouts.patch
 Patch1: m2crypto-0.18-proxy.patch
@@ -26,17 +23,7 @@
 %patch0 -p1
 %patch1 -p0
 
-# Red Hat opensslconf.h #includes an architecture-specific file, but SWIG
-# doesn't follow the #include.
-
-# Determine which arch opensslconf.h is going to try to #include.
-basearch=%{_arch}
-%ifarch %{ix86}
-basearch=i386
-%endif
-%ifarch %{multilib_arches}
-sed -i -e "s/opensslconf/opensslconf-${basearch}/" SWIG/_ec.i
-%endif
+sed -i -e "s/opensslconf/opensslv/" SWIG/_ec.i
 
 %build
 CFLAGS="$RPM_OPT_FLAGS" ; export CFLAGS



10. Пересобираем и устанавливаем (по аналогии с openssl, только целевую архитектуру не нужно указывать)

Вуаля!

P.S. Замечания, дополнения и пр. - в комментарии.

Date: 2008-07-30 09:46 pm (UTC)
From: [identity profile] lj-val.livejournal.com
Хммм... А что в Fedore не полноценные openssl какой-то? И это связано с американскими патентами?

Date: 2008-07-31 12:06 pm (UTC)
From: [identity profile] andy-shev.livejournal.com
1. Да.
2. Да.

Profile

andy_shev: (Default)
Andy Shevchenko

June 2014

S M T W T F S
123 4567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 20th, 2017 05:15 am
Powered by Dreamwidth Studios