p2p TV and Fedora
Jul. 26th, 2008 09:41 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Итак, для тех, у кого 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 примерно такого содержания:
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 патчик типа:
10. Пересобираем и устанавливаем (по аналогии с openssl, только целевую архитектуру не нужно указывать)
Вуаля!
P.S. Замечания, дополнения и пр. - в комментарии.
В начале надо сказать, что я пытался запустить это всё под уже устаревшей 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. Замечания, дополнения и пр. - в комментарии.
no subject
Date: 2008-07-30 09:46 pm (UTC)no subject
Date: 2008-07-31 12:06 pm (UTC)2. Да.