Автор Тема: Не собирается squid  (Прочитано 6884 раз)

Оффлайн Alexsar

  • Начинающий
  • *
  • Сообщений: 16
    • Email
Не собирается squid
« : 19.03.2019 14:35:43 »
Здравствуйте. Не получается пересобрать squid из исходников. Пересборка требуется для включения опции --enable-ssl.
Дистрибутив alt-workstation-8.1-x86_64 чистый. Сервер поставить не могу, т.к. процессор новый ризен и он тупо не ставится ни на хост ни в виртулбокс.

Скачиваю исходник:
apt-get source squid
Распаковываю:
rpm -i squid-3.5.19-alt1.src.rpm
Добавляю в секцию configure --enable-ssl

Запускаю:
rpm -ba squid.spec
В ответ он мне говорит:
        doxygen нужен для squid-3.5.19-alt1
        graphviz нужен для squid-3.5.19-alt1
        fonts-ttf-freefont нужен для squid-3.5.19-alt1
        linuxdoc-tools нужен для squid-3.5.19-alt1
        gcc-c++ нужен для squid-3.5.19-alt1
        libcap-devel нужен для squid-3.5.19-alt1
        libdb4-devel нужен для squid-3.5.19-alt1
        libltdl-devel нужен для squid-3.5.19-alt1
        libpam-devel нужен для squid-3.5.19-alt1
        libsasl2-devel нужен для squid-3.5.19-alt1
        libssl-devel нужен для squid-3.5.19-alt1
        perl-Pod-Parser нужен для squid-3.5.19-alt1
        w3c-libwww-devel нужен для squid-3.5.19-alt1
        cppunit-devel нужен для squid-3.5.19-alt1
        libkrb5-devel нужен для squid-3.5.19-alt1
        libnetfilter_conntrack-devel нужен для squid-3.5.19-alt1
        libecap-devel >= 1.0 нужен для squid-3.5.19-alt1
        libxml2-devel нужен для squid-3.5.19-alt1
        libexpat-devel нужен для squid-3.5.19-alt1
        libnettle-devel нужен для squid-3.5.19-alt1
        libgnutls-devel >= 3.1.5 нужен для squid-3.5.19-alt1
        perl-DBI нужен для squid-3.5.19-alt1
        perl(Authen/Smb.pm) нужен для squid-3.5.19-alt1
        perl(Crypt/OpenSSL/X509.pm) нужен для squid-3.5.19-alt1

Хорошо, ставлю всё, что он просит:
apt-get install rpm-utils rpm-build openldap-devel gcc4.9-c++ perl-Crypt-OpenSSL-X509 perl-Authen-Smb perl-DBI libgnutls-devel libnettle-devel libxml2-devel libecap-devel libnetfilter_conntrack-devel cppunit-devel w3c-libwww-devel perl-Pod-Parser libssl-devel libsasl2-devel libpam-devel libltdl7-devel libdb4-devel libcap-devel linuxdoc-tools fonts-ttf-freefont graphviz doxygen
Запсукаю сборку и всё заканчивается строчками:
/home/admin/RPM/BUILD/squid-3.5.19/src/adaptation/ecap/XactionRep.cc:41: undefined reference to `libecap::Area::toString() const'
/home/admin/RPM/BUILD/squid-3.5.19/src/adaptation/ecap/XactionRep.cc:41: undefined reference to `libecap::Area::toString() const'
collect2: error: ld returned 1 exit status
libtool: link: rm -f ".libs/squidS.o"
make[3]: *** [squid] Error 1
make[3]: Leaving directory `/home/admin/RPM/BUILD/squid-3.5.19/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/admin/RPM/BUILD/squid-3.5.19/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/admin/RPM/BUILD/squid-3.5.19/src'
make: *** [all-recursive] Error 1
make: Leaving directory `/home/admin/RPM/BUILD/squid-3.5.19'
ошибка: Неверный код возврата из /tmp/.private/admin/rpm-tmp.40056 (%build)


Ошибки сборки пакетов:
    Macro %s not found
    Macro %s not found
    Неверный код возврата из /tmp/.private/admin/rpm-tmp.40056 (%build)
   
Если поставить gcc5-c++, то ошибки другие:
testPreCompiler.o:(.data.rel.ro._ZTVN7CppUnit10TestCallerI15testPreCompilerEE[_ZTVN7CppUnit10TestCallerI15testPreCompilerEE]+0x70): undefined reference to `CppUnit::TestLeaf::doGetChildTestAt(int) const'
collect2: error: ld returned 1 exit status
make[2]: *** [testPreCompiler] Error 1
make[2]: Leaving directory `/home/admin/RPM/BUILD/squid-3.5.19/compat'
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/home/admin/RPM/BUILD/squid-3.5.19/compat'
make: *** [check-recursive] Error 1
make: Leaving directory `/home/admin/RPM/BUILD/squid-3.5.19'
ошибка: Неверный код возврата из /tmp/.private/admin/rpm-tmp.68508 (%check)


Ошибки сборки пакетов:
    Macro %s not found
    Macro %s not found
    Неверный код возврата из /tmp/.private/admin/rpm-tmp.68508 (%check)
   
Пробовал собрать без --enable-ssl, т.е. просто скачиваю исходники и сразу собираю, ни чего не меняется.
Помогите собрать сквид, очень нужно для редиректа https трафика.
« Последнее редактирование: 19.03.2019 14:37:18 от Alexsar »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Не собирается squid
« Ответ #1 : 19.03.2019 23:44:39 »
Действительно, что-то сломалось. Вообще, это тесты не проходят. Если секцию %check убрать, то пакет собирается. Но это непорядок. Как вариант - пакет собирался более старым gcc, нежели последний в p8 сейчас. Может squid 4.5 из Сизифа собрать попробовать? Или для сборки в p8 попробовать поставить gcc4.7, а не gcc5.
« Последнее редактирование: 19.03.2019 23:54:39 от asy »

Оффлайн Alexsar

  • Начинающий
  • *
  • Сообщений: 16
    • Email
Re: Не собирается squid
« Ответ #2 : 20.03.2019 07:19:23 »
gcc4.7 ставил и даже 4.5, ни чего не менялось.

Уже много экспериментов проводил, может и подзабыл точно версии gcc, сейчас попробую ещё раз более старые версии.

А версия 4.5 скорее всего потребует всех остальных новых библиотек, и понесется как снежный ком обновка всего и вся... Не поломать бы систему.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Не собирается squid
« Ответ #3 : 20.03.2019 08:44:09 »
Ещё, кстати, можно посмотреть, как эти тесты организованы. Может там внешний тестовый фреймворк использован, который обновился с момента сборки, и что-то разъехалось.

Оффлайн Alexsar

  • Начинающий
  • *
  • Сообщений: 16
    • Email
Re: Не собирается squid
« Ответ #4 : 20.03.2019 09:10:00 »
Ещё, кстати, можно посмотреть, как эти тесты организованы. Может там внешний тестовый фреймворк использован, который обновился с момента сборки, и что-то разъехалось.
Тут к сожалению мои знания не такие обширные и что именно и как смотреть я точно не знаю. Но попробую.
П.С. Поставил gcc4.5-c++, ни чего не изменилось.
« Последнее редактирование: 20.03.2019 09:17:01 от Alexsar »

Оффлайн Alexsar

  • Начинающий
  • *
  • Сообщений: 16
    • Email
Re: Не собирается squid
« Ответ #5 : 20.03.2019 09:31:19 »
Убрал из спека %check и тоже не собралось. Вы откуда убирали?

Оффлайн ∞lan∞

  • Завсегдатай
  • *
  • Сообщений: 328
Re: Не собирается squid
« Ответ #6 : 20.03.2019 09:35:59 »
Чем отличается rpm -ba от rpmbuild -ba?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Не собирается squid
« Ответ #7 : 20.03.2019 09:44:25 »
Тут к сожалению мои знания не такие обширные и что именно и как смотреть я не знаю.
Ну уберите секцию %check из спека в конце концов, там две строчки. Пакет соберётся. И, в общем-то, вероятность, что ничего страшного не случится, достаточно большая.

srpm из Сизифа в p8 тоже на тестах обваливается, кстати. Но собирается, так что можно и его пересобрать, но тоже с отключенной секцией %check.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Не собирается squid
« Ответ #8 : 20.03.2019 09:46:29 »
Убрал из спека %check и тоже не собралось. Вы откуда убирали?
Из спека, всё правильно. А как именно теперь не собралось?

Оффлайн Alexsar

  • Начинающий
  • *
  • Сообщений: 16
    • Email
Re: Не собирается squid
« Ответ #9 : 20.03.2019 10:02:12 »
Да тоже самое
/home/admin/RPM/BUILD/squid-3.5.19/src/adaptation/ecap/XactionRep.cc:41: undefined reference to `libecap::Area::toString() const'
collect2: ld returned 1 exit status
libtool: link: rm -f ".libs/squidS.o"
make[3]: *** [squid] Error 1
make[3]: Leaving directory `/home/admin/RPM/BUILD/squid-3.5.19/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/admin/RPM/BUILD/squid-3.5.19/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/admin/RPM/BUILD/squid-3.5.19/src'
make: *** [all-recursive] Error 1
make: Leaving directory `/home/admin/RPM/BUILD/squid-3.5.19'
ошибка: Неверный код возврата из /tmp/.private/admin/rpm-tmp.63311 (%build)


Ошибки сборки пакетов:
    Macro %s not found
    Macro %s not found
    Неверный код возврата из /tmp/.private/admin/rpm-tmp.63311 (%build)
С каким gcc у Вас собралось без проверок?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Не собирается squid
« Ответ #10 : 20.03.2019 11:47:08 »
С gcc5. Но с набором devel-пакетов строго по зависимостям. Тут тоже может быть засада в случае, если стоит что-то лишнее, а Squid, внезапно, это тоже умеет. В итоге цепляет, а там, вдруг, грабля.
Сделайте
apt-get remove `rpm -qa|grep -- "-devel-"|sed "s/-[^-]\+-[^-]\+$//"`Потом поставьте завново то, что rpm попросит.

Только список на удаление глазами посмотрите на всякий случай, вдруг там что-то попадёт случайно, что для самой системы важно, хотя и не должно бы.

Оффлайн Alexsar

  • Начинающий
  • *
  • Сообщений: 16
    • Email
Re: Не собирается squid
« Ответ #11 : 20.03.2019 12:47:18 »
Следующие пакеты будут УДАЛЕНЫ:
  cppunit-devel gcc4.5 gcc4.5-c++ gcc4.7 gcc4.9 gcc5 glibc-devel hplip-gui libcap-devel libcom_err-devel libdb4.7-devel
  libecap-devel libexpat-devel libgcov4.7-devel libgmp-devel libgnutls-devel libkrb5-devel libldap-devel libltdl7-devel
  libncurses-devel libnetfilter_conntrack-devel libnettle-devel libnfnetlink-devel libpam0-devel libsasl2-devel
  libssl-devel libstdc++3.4-devel libstdc++4.5-devel libstdc++4.9-devel libstdc++5-devel libtinfo-devel libverto-devel
  libxml2-devel mate-applets mate-default mate-desktop mate-dictionary mate-document-viewer mate-document-viewer-caja
  mate-document-viewer-thumbnailer mate-minimal mate-netspeed mate-panel mate-panel-libs mate-power-manager
  mate-session mate-system-monitor mate-utils python-dev python-module-PyQt4 python-module-PyQt5
  python-module-ndg-httpsclient python-module-ntlm python-module-pytest python-module-requests python-module-setuptools
  python-module-sip python-module-urllib3 rpm-build rpm-utils w3c-libwww-devel
Удалилось конечно и лишнее, но это не проблема, система тестовая, только для сборки пакета.
После этого, заново поставил зависимости с gcc5-c++, убрал 2 строчки с проверками из спека и кальмар таки собрался!

Интересует повторяемость этого мероприятия на боевом сервере... Так то понятно, что готовый пакет я заберу отсюда и буду ставить уже в другую систему.

БУдем теперь прикручивать ssl.
Спасибо!
« Последнее редактирование: 20.03.2019 12:51:56 от Alexsar »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Не собирается squid
« Ответ #12 : 20.03.2019 12:54:30 »
Интересует повторяемость этого мероприятия на боевом сервере... Так то понятно, что готовый пакет я заберу отсюда и буду ставить уже в другую систему.
Сборку на боевом вообще не сильно хорошо делать. Уж лучше виртуалку. Либо, кстати, https://www.altlinux.org/Hasher

Оффлайн Alexsar

  • Начинающий
  • *
  • Сообщений: 16
    • Email
Re: Не собирается squid
« Ответ #13 : 20.03.2019 17:48:45 »
Спасибо за идею.

Кальмар с опцией --enable-ssl собрался так же нормально. Завтра узнаем, работает ли он ))

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Не собирается squid
« Ответ #14 : 26.03.2019 21:57:20 »
Кальмар с опцией --enable-ssl собрался так же нормально. Завтра узнаем, работает ли он ))
Что-то я на саму сборку посмотрел, а вот на --enable-ssl что-то нет. А точно такое есть? Находится только --enable-ssl-crtd:
$ ./configure --help|grep enable-ssl -A2
  --enable-ssl-crtd       Prevent Squid from directly generation of SSL
                          private key and certificate request and instead
                          enables the ssl_crtd processes.
Или именно она и имеется ввиду? А, вообще, --with-openssl в сборке пакета использована, и в каком-то виде ssl для чего-то, очевидно, есть.
« Последнее редактирование: 26.03.2019 22:01:59 от asy »