Bug 32104

Summary: Не собирается проект (проблема с линьковкой библиотеки libpqxx)
Product: Branch p8 Reporter: Pavel Vainerman <pv>
Component: libpqxx-develAssignee: Andrey Cherepanov <cas>
Status: CLOSED NOTABUG QA Contact: qa-p8 <qa-p8>
Severity: normal    
Priority: P3 CC: glebfm
Version: не указана   
Hardware: all   
OS: Linux   

Description Pavel Vainerman 2016-05-16 16:06:16 MSK
Имею странную ситуацию с компиляцией "своего" проекта.

[pv@builder-p8 DBServer-PostgreSQL]$ make
/bin/sh ../../libtool --tag=CXX   --mode=link g++ -I/usr/include/pgsql   -g -O2 -funsigned-char -std=c++11 -g -D_GNU_SOURCE -D__x86_64__ -D__linux__ -D__OSVERSION__=2   -I/usr/include/libxml2   -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include    -D_GNU_SOURCE   -I../../include -Wnon-virtual-dtor -Woverloaded-virtual -Woverflow -D_GLIBCXX_USE_NANOSLEEP  -lomniORB4 -lomnithread   -lxml2   -lsigc-2.0    -pthread -lccgnu2 -ldl -lrt -lpthread   -o uniset2-pgsql-dbserver uniset2_pgsql_dbserver-main.o libUniSet2-pgsql.la ../../lib/libUniSet2.la -lpqxx   
libtool: link: g++ -I/usr/include/pgsql -g -O2 -funsigned-char -std=c++11 -g -D_GNU_SOURCE -D__x86_64__ -D__linux__ -D__OSVERSION__=2 -I/usr/include/libxml2 -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include -D_GNU_SOURCE -I../../include -Wnon-virtual-dtor -Woverloaded-virtual -Woverflow -D_GLIBCXX_USE_NANOSLEEP -pthread -o .libs/uniset2-pgsql-dbserver uniset2_pgsql_dbserver-main.o  -lomniORB4 -lomnithread -lxml2 -lsigc-2.0 -lccgnu2 -ldl -lrt -lpthread ./.libs/libUniSet2-pgsql.so ../../lib/.libs/libUniSet2.so -lpqxx -pthread -Wl,-rpath -Wl,/usr/local/lib
./.libs/libUniSet2-pgsql.so: undefined reference to `pqxx::dbtransaction::fullname(std::string const&, std::string const&)'
./.libs/libUniSet2-pgsql.so: undefined reference to `pqxx::internal::throw_null_conversion(std::string const&)'
./.libs/libUniSet2-pgsql.so: undefined reference to `pqxx::transaction_base::exec(std::string const&, std::string const&)'
./.libs/libUniSet2-pgsql.so: undefined reference to `pqxx::basic_transaction::basic_transaction(pqxx::connection_base&, std::string const&, pqxx::readwrite_policy)'
./.libs/libUniSet2-pgsql.so: undefined reference to `pqxx::connectionpolicy::connectionpolicy(std::string const&)'
collect2: error: ld returned 1 exit status
make: *** [uniset2-pgsql-dbserver] Ошибка 1


При том, что на p7 собирается и на сизифе собирается.
Проблема только на p8.

[pv@builder-p8 DBServer-PostgreSQL]$ rpm -qa | grep libpqxx
libpqxx-4.0.1-alt1_6
libpqxx-devel-4.0.1-alt1_6
Comment 1 Pavel Vainerman 2016-05-16 16:08:16 MSK
В Сизифе у меня
# rpm -qa | grep libpqxx
libpqxx-devel-3.2-alt2_0.6.1
libpqxx-3.2-alt2_0.6.1

В p7
# rpm -qa | grep libpqxx
libpqxx-3.2-alt1_0.4
libpqxx-devel-3.2-alt1_0.4
Comment 2 Pavel Vainerman 2016-05-16 17:22:52 MSK
Выяснил, что Сизиф свой я просто видимо давно не обновлял, так что в репозиториях
(Сизифа) лежит:
libpqxx-4.0.1-alt1_6
libpqxx-devel-4.0.1-alt1_6

P.S. Но я пока не рискнул обновлять, чтобы не поломать себе проект.
Если требуется проверка, сообщите, обновлю (откачусь потом в крайнем случае)
Comment 3 Pavel Vainerman 2016-06-21 10:38:09 MSK
Уточнение:

Проверил на Сизифе (32,64) нормально собирается без ошибок.
Версия при этом 
[pv@builder64 ~]$ rpm -qa | grep libpqxx
libpqxx-devel-4.0.1-alt1_6
libpqxx-4.0.1-alt1_6

Так что похоже на некорректные пакеты (может копировали из Сизифа а не собирали)
в p8.
Comment 4 Andrey Cherepanov 2016-06-21 11:03:05 MSK
Когда соберётся, подключите и проверьте.

#166194 BUILDING #1 [locked] [test-only] p8 copy=boost
Comment 5 Pavel Vainerman 2016-06-21 13:33:10 MSK
А как посмотреть статус?
Comment 6 Andrey Cherepanov 2016-06-21 14:29:46 MSK
(В ответ на комментарий №5)
> А как посмотреть статус?
Зайти на http://git.altlinux.org, ввести в поле 166194 и нажать Enter.
Оно собрано, можете проверять:

apt-repo add 166194
apt-get update
apt-get dist-upgrade
Comment 7 Pavel Vainerman 2016-06-21 14:52:43 MSK
хорошо..попробую

P.S. смущает только, что это задание про boost, а моя проблема вроде
на boost не завязана никак.
Comment 8 Andrey Cherepanov 2016-06-21 15:01:38 MSK
(В ответ на комментарий №7)
> хорошо..попробую
> 
> P.S. смущает только, что это задание про boost, а моя проблема вроде
> на boost не завязана никак.
Попробуйте найти другое решение.
Comment 9 Pavel Vainerman 2016-06-21 15:39:21 MSK
Выяснил(и) примерно следующее (попытка объяснения):

В p8 по умолчанию идёт gcc-c++-4.7. В Сизифе gcc5-c++
Возможно что libpxx копировался из Сизифа, а не пересобирался.
Из-за этого и возникает ошибка.

С boost в систему установился gcc5, мы сделали select-gcc 5 и с ним
нормально собирается.
Вообщем получается какой-то конфликт при сборке по умолчанию gcc-4.7
и библиотекой (видимо собранной gcc5) libpqxx.

Как-то так. Возможно в p8 существуют тогда и другие конфликты
для пакетов копируемых из Сизифа.
Comment 10 Gleb F-Malinovskiy 2016-06-21 17:08:40 MSK
(In reply to comment #9)
> Выяснил(и) примерно следующее (попытка объяснения):
> 
> В p8 по умолчанию идёт gcc-c++-4.7.

Нет, в p8 по умолчанию gcc5.
В обновлённых с p7 gcc автоматически не обновляется и остаётся 4.7.
Comment 11 Pavel Vainerman 2016-06-21 17:46:21 MSK
Хорошо. Тогда видимо можно закрывать этот баг.
Comment 12 Pavel Vainerman 2016-06-21 19:31:48 MSK
На всякий хочу обратить внимание, что какая-то проблема "подводных стуков"
существует. У нас действительно p7 обновлённый до p8.
Стали собирать другую библиотеку (и как я понимаю столкнулись
с той же неясной проблемой). Пакет собрался нормально, но при попытке
его установить сюда же где он собран (!), получаем ошибку:

osliboscillograph-gtkmm: Требует: libglibmm-2.4.so.1()(64bit) (>= set:oiZB0ZnLkli2KHcUMub4dgtHliMG1qaJSPdMGMgNVmqaRch0QhH42ufyzPpDVonlZwj4ZH1EfIcM2vK9wy2yrlartvtYZjbgZpuaG1uWZAKwZJLk1gGOgVh4lyam4)
Comment 13 Andrey Cherepanov 2016-06-22 11:39:11 MSK
NOTABUG
Comment 14 Pavel Vainerman 2016-06-23 14:45:58 MSK
На всякий оставлю для истории:

Проблема решается (по крайней мере нам помогло):
- установкой gcc5-c++ 
- установкой automake_1.14

Т.к. они при переезде p7 --> p8 сами не обновляются,
а видимо несовместимы с либами (или devel-пакетами) в p8.