Нужно собрать rect для Fedora 9 Я так понимаю, что вот этот пакет: /var/ftp/pub/Etersoft/LINUX@Etersoft/Etersoft/SRPMS.etersoft/rect-0.0.5-alt1.src.rpm Для того, чтобы его собрать, на Fedora 9 должен быть установлен Ice см. http://www.zeroc.com/forums/projects/3787-fedora-ice-rpms.html
надо положить src.rpm в /var/ftp/pub/Etersoft/BuildFarm/sources и сделать скрипт по аналогии с build-libusb.sh или build-xrdp.sh или любой другой собирающий из BuildFarm
Эти скрипты надо удалить, у нас есть универсальный build-infarm.sh
Для Fedora 9 готов.
Я думаю, что rect нужно собрать для тех дистров, где нам важно уметь тестировать cifs. Я вижу четыре кандидата, кроме альтов, Fedora, SuSe, Ubuntu, Mandriva... Но ведь у них есть ещё и версии. Это стоит учесть. Сначала собираем для последних релизов, как я полагаю.
Готово для Ubuntu 8.04
Для Mandriva 2008.1 не удается найти пакет ice. Точнее, пакет, содержащий slice2cpp.
Для SUSE - тоже нет.
Готово для ALT Sisyphus и ALT 4.1.
Как правило slice2cpp лежит в пакете вроде ice-devel. В SUSE slice2cpp в пакете xorg-x11-libICE-devel отсутствует. Гугл тоже не помог.
Давно раздумываю над вопросом куда мог деться slice2cpp... Проверил - нашёл в пакете ice-c++-devel-3.3.0-1.sles10.i586.rpm, которыйможно скачать в архиве: http://zeroc.com/download/Ice/3.3/Ice-3.3.0-sles10-i586-rpm.tar.gz Может вы не там брали ice?
Готово для СУСЕ (Ice для СУСЕ есть в архиве). В Мандриве же такая проблема: имеющиеся в архиве db46 конфликтуют с libdb4.6. Соответственно, все пакеты, требующие db46, продолжают его требовать.
Если на какой-то системе Ice не собирается легко, пропускаем. Пока полное покрытие не нужно. Важно понять общее состояние - в какой системе проблемы есть, в какой - нет.
C Fedora, Ubuntu, ALT'ами проблем нет. Для SUSE надо ставить Ice локально, для Mandriva сходу не получается. Может, еще какие дистрибутивы стоит посмотреть?
Всё зависит от необходимости поддержки дополнительных дистрибутивов... Rect интересен для проверки в разных окружениях. Нужно определиться, где он ещё нужен. Я думаю, что Fedora, Ubuntu, ALT и SuSe уже достаточно большое покрытие. Вообще сборка rect - это отчасти показатель для будущей поддержки tartarus на этих дистрибутивах, поскольку tartarus завязан на Ice.
Думаю, что по мере обновления нужно пересобирать rect. Я так полагаю, что если сборки для Fedora, Ubuntu, ALT и SuSe готовы, то нужно написать где они лежат, как инициировать пересборку... и эта бага закрыта....
При сборке rect ругается: error: line 21: Unknown tag: %add_python_req_skip RectIce error: query of specfile rect.spec failed, can't parse Можно обойтись без макроса?
При сборке src.rpm главный принцип - неизменность исходного пакета.
Решилось. Не надо ничего менять. Извиняюсь.
Из-за наличия в зависимостях rpm-build-licenses не собирается. Если можно, хотелось бы в следующей версии обойтись без него.
Возвращаемся к сборке. Fedora/18: g++ -o rect -O1 -Wall -Werror -I. linux.o main.o generic.o slave.o file.o -lIce -lIceUtil /bin/ld: linux.o: undefined reference to symbol 'pthread_mutexattr_settype@@GLIBC_2.1' /bin/ld: note: 'pthread_mutexattr_settype@@GLIBC_2.1' is defined in DSO /lib/libpthread.so.0 so try adding it to the linker command line /lib/libpthread.so.0: could not read symbols: Invalid operation collect2: error: ld returned 1 exit status make[1]: *** [rect] Error 1 Но начнём с того, что у меня не собирается в hasher для ALTLinux/Sisyphus: g++ -c -O1 -Wall -Werror -I. linux.cpp In file included from /usr/include/Ice/Handle.h:23:0, from /usr/include/Ice/LocalObjectF.h:15, from ./linux.h:16, from linux.cpp:13: /usr/include/Ice/ProxyHandle.h: In instantiation of 'IceInternal::ProxyHandle<T>::~ProxyHandle() [with T = IceProxy::Ice::Object]': /usr/include/Ice/Proxy.h:540:58: required from here /usr/include/Ice/ProxyHandle.h:168:13: error: 'upCast' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
Откладываю, это было нужно для популяризации etercifs.