p2p TV and Fedora

Jul 26, 2008 21:41

Итак, для тех, у кого 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. Замечания, дополнения и пр. - в комментарии.

programming, opensource, patch, howto, fedora, linux, testing

Previous post Next post
Up