[Solved] Борьба с openoffice svn
Мне понадобилось собрать OpenOffice из родных исходников SVN в чистом виде, без использования portage.
Предыстория. Собственно, меня волнует преобразование форматов текстов, как вариант, рассматриваю latex -> tex4ht -> oo -> doc.
Об этом я писал здесь: http://dxdy.ru/topic26232.html. Особенно для меня важны формулы, а вот здесь появляются проблемы. После преобразования из Latex в odt формулы с двойными индексами openoffice отображает неправильную формулу. Подробности по ссылке выше. Сначала я думал, это глюк tex4ht, потом оказалось, что дело в OpenOffice. Соответствующий баг зарегестрирован на их сайте ещё в 2006 году: http://qa.openoffice.org/issues/show_bug.cgi?id=69088. Однако девелоперы OpenOffice не считают эту ошибку существенной (хотя из-за этого использовать openoffice нормально для обмена документами с другими редакторами, работающими в формате ODF просто нельзя) и делать ничего не собираются уже 4 года - тогда была версия офиса 2.0, сейчас уже 3.1.1, а ошибка так и осталась. Короче говоря, нужно рассчитывать только на себя.
Первое, что я сделал - скачал исходники openoffice через portage. Поковырял их, нашёл нужное мне место, написал пару сообщений разработчикам (мне даже ответили письмом, подтвердили мои догадки). Но тут выяснилось, что нынешняя последняя ветка SVN довольно существенно отличается по структуре файлов от исходников, полученных через portage! Они переиграли структуру исходников! Поэтому встала задача взять последние исходники из SVN и собрать их у себя.
Что я сделал. Первое, естественно, скачал исходники:
svn co svn://svn.services.openoffice.org/ooo/trunk .
Затем начал бороться со скриптом configure, он пытался приплести много ненужного. Я например, до сих пор не понимаю, зачем ему нужен mingw-g++, пишет, что какую-то DLL хочет собрать (его пришлось поставить через crossdev), потребовал ant-core, а многое я запретил.
После этого я попытался собрать исходники, но ничего не получается - сваливается сразу, и причина - неправильные переменные окружения. Вот что он пишет:
=============
Building module solenv
=============
Entering /media/disk-1/oo/ooo/trunk/solenv
dmake: makefile.mk: line 37: Error -- Include file settings.mk, not found
ERROR: Error 65280 occurred while making /media/disk-1/oo/ooo/trunk/solenv
make: *** [all] Ошибка 1
Этот самый settings.mk находится рядом - solenv/inc. Очевидно, путь к нему должен быть прописан в переменной окружения. Но не вручную же её указывать!
По окончанию работы скрипта configure была надпись:
* USAGE:
* Source LinuxX86Env.Set (in tcsh) or LinuxX86Env.Set.sh (in sh)
* in order to set up the build-environment variables.
Так этот самый LinuxX86Env.Set.sh я запускал, и bootstrap тоже запускал. В чём дело - не пойму.
Использованные ключи для ./configure:
./configure --disable-epm --with-mingwin=mingw32-g++ --disable-mozilla --disable-gconf --disable-gnome-vfs --with-jdk-home=$JAVA_HOME --with-use-shell=bash
Что делать, может быть, кто-нибудь подскажет? Что я не понимаю?
=====================================================================
Проблема была как раз в SVN - некоторые файлы были недополучены (странно). Повторное svn co решило проблему. svn update проблему не решал.
- Для комментирования войдите или зарегистрируйтесь
Мне немножко совсем
Мне немножко совсем непонятно, каков смысл задавать вопрос здесь? У OOo же есть свой форум, там куда как больше тех, кто в курсе системы сборки. Мне не жалко, конечно, пусть тема висит, но я очень сомневаюсь, что кто-то ответит по делу.
Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
.
Можно почитать /usr/portage/app-office/openoffice/openoffice-3.1.1.ebuild и превратить его в openoffice-9999.ebuild по аналогии с другими SVN-based ebuild-ами, начав с ESVN_REPO_URI="http://svn.services.openoffice.org/ooo/trunk/"
или хотя бы взять оттуда ключи для ./configure
Это подпись, которую невозможно истолковать неправильно
Буду пробовать. Но я смотрю,
Буду пробовать. Но я смотрю, они структуру исходников переиграли. Посмотрим, что получится.
$BOC(\pi, e)$
.
Ещё у меня была мысль (не знаю, насколько вам подойдёт, вы ведь свои изменения в исходники хотите вносить, и, возможно, значительные) предложить вам ссылку http://download.openoffice.org/next/ где тарболы не очень отличаются от полученных по emerge -f app-office/openoffice-bin - то есть может быть имеет смысл сделать ещё и openoffice-bin-9999.ebuild (вдруг он не так сильно отличается от 3.1.1) на Developer Build, а потом уже пересобрать только те файлы (группы файлов), которые вы хотели изменить. Может я что-то и не то говорю, не спорю, :) но вдруг заменить пару бинарников на свои-с-fix-ами окажется проще, чем собрать OO с нуля?
Это подпись, которую невозможно истолковать неправильно
Для сведения товарисчей:
Для сведения товарисчей: Гентоо не исползует сырцы с oo.org :)
ебилды в дереве написаны для патчсета с http://www.go-oo.org/ :-D.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Вот я и смотрю, исходники
Вот я и смотрю, исходники отличаются.
$BOC(\pi, e)$
Всё таки, что за ерунда. Всё
Всё таки, что за ерунда. Всё собирается, проблема только с RPM.
Entering /media/HANDY_Reiser/oo/trunk/sysui/desktop/redhat
rm -f /media/HANDY_Reiser/oo/trunk/sysui/unxlngi6.pro/bin/desktop-integration/openoffice.org-redhat-menus-*
rm: No match.
rpmbuild -bb redhat-menus.spec --define "_rpmdir /media/HANDY_Reiser/oo/trunk/sysui/unxlngi6.pro/bin/desktop-integration" --define "_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
--buildroot /media/HANDY_Reiser/oo/trunk/sysui/unxlngi6.pro/misc/openoffice.org-redhat-menus-3.2-9435.noarch \
--define "_builddir /media/HANDY_Reiser/oo/trunk/sysui/unxlngi6.pro/misc/openoffice.org" \
--define "productname OpenOffice.org" \
--define "pkgprefix openoffice.org3.2" \
--define "unixfilename openoffice.org3" \
--define "iconprefix openofficeorg3" \
--define "version 3.2" \
--define "release 9435" \
--define "_unpackaged_files_terminate_build 0" && touch /media/HANDY_Reiser/oo/trunk/sysui/unxlngi6.pro/bin/desktop-integration/openoffice.org-redhat-menus-3.2-9435.noarch.flag
error: Unable to open temp file.
RPM build errors:
Unable to open temp file.
dmake: Error code 1, while making '/media/HANDY_Reiser/oo/trunk/sysui/unxlngi6.pro/bin/desktop-integration/openoffice.org-redhat-menus-3.2-9435.noarch.flag'
ERROR: Error 65280 occurred while making /media/HANDY_Reiser/oo/trunk/sysui/desktop/redhat
make: *** [all] Ошибка 1
Этому RPM, видишь ли, не хватает прав для создания временного файла. То есть, если собирать всё из-под root, тогда прав хватает. Но ведь это же не дело! Может быть, мне нужно для использования RPM пользователя в какую-нибудь группу rpm поместить? В man rpm я об этом никаких упоминаний не нашёл. К сожалению, скрипт configure из OOo не позволяет этот дурацкий rpm запретить. А ведь пакет rpm мне и не нужен вовсе.
Кстати, сама комадна
touch /media/HANDY_Reiser/oo/trunk/sysui/unxlngi6.pro/bin/desktop-integration/openoffice.org-redhat-menus-3.2-9435.noarch.flag
запущенная из консоли работает. То есть из приведённого не совсем понятно, что вообще он не может создать. Но под рутом всё создаёт. То есть, видимо, rpm ещё куда-то молча лезет.
$BOC(\pi, e)$