The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз клиента для файлообменных сетей Direct Connect и ADC - EiskaltDC++ 2.4.0, opennews (ok), 14-Дек-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


27. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +2 +/
Сообщение от Необъективный_ (ok), 14-Дек-20, 12:24 
> Но это так и не починили.

Это "чинится" передачей в cmake соответствующих флагов сборки через -DCMAKE_CXX_FLAGS="${CXXFLAGS}". Где CXXFLAGS лучше всего брать исходя из рекомендаций конкретного дистрибутива.

> This executable should be position independent (all binaries should).  Check that it is built with -fPIE/-fpie in compiler flags and -pie in linker flags.

Можно посмотреть с какими флагами программа собирается в Debian:
https://buildd.debian.org/status/fetch.php?pkg=eiskaltdcpp&a...

Если отбросить все специфичное, то останется что-то вроде:
-O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -std=c++14 -pipe -Wformat -Werror=format-security -fPIC -D_FORTIFY_SOURCE=2

Собственно процитированный ворнинг вылез именно из-за отсутствие -fPIC в флагах сборки.

Ответить | Правка | Наверх | Cообщить модератору

35. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +1 +/
Сообщение от Ilya Indigo (ok), 14-Дек-20, 13:51 
> Это "чинится" передачей в cmake соответствующих флагов сборки через -DCMAKE_CXX_FLAGS="${CXXFLAGS}".

Не чинится. Судя по логу сборки он и так там есть, а если добавляю, то он просто дублируется 2 раза, а результат тот же.

https://build.opensuse.org/package/show/filesharing/eiskaltdcpp

-O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -std=c++14 -pipe -Wformat -Werror=format-security -fPIC

Ответить | Правка | Наверх | Cообщить модератору

36. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +1 +/
Сообщение от Необъективный_ (ok), 14-Дек-20, 14:15 
> Судя по логу сборки он и так там есть, а если добавляю, то он просто дублируется 2 раза, а результат тот же.

Очень странно. Пока идей нет.

> https://build.opensuse.org/package/view_file/filesharing/eis...

Как я вижу, здесь собирается только Qt UI (нет ни GTK+ UI, ни демона). Так что есть смысл линковаться с libeiskaltdcpp статически: опция -DLINK=STATIC для cmake.

Ответить | Правка | Наверх | Cообщить модератору

39. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +/
Сообщение от Ilya Indigo (ok), 14-Дек-20, 15:02 
Странно, добавляю то о чём меня просит rmplint
[   54s] CMAKE_CXX_FLAGS:STRING=-O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -fPIC -fPIE -DNDEBUG

[   54s] CMAKE_C_FLAGS:STRING=-O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -fPIC -fPIE -DNDEBUG

[   54s] CMAKE_SHARED_LINKER_FLAGS:STRING=-pie

А в итоге.
[  597s] RPMLINT report:
[  597s] ===============
[  602s] eiskaltdcpp-qt.x86_64: W: position-independent-executable-suggested /usr/bin/eiskaltdcpp-qt
[  602s] This executable should be position independent (all binaries should).  Check
[  602s] that it is built with -fPIE/-fpie in compiler flags and -pie in linker flags.


Я же правильно -pie in linker flags указал?

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

P.S. И даже со всем ранее определённым + -DLINK=STATIC выдаёт

[  304s] RPMLINT report:
[  304s] ===============
[  308s] eiskaltdcpp-qt.x86_64: W: position-independent-executable-suggested /usr/bin/eiskaltdcpp-qt
[  308s] This executable should be position independent (all binaries should).  Check
[  308s] that it is built with -fPIE/-fpie in compiler flags and -pie in linker flags.

Или я что-то не так делаю, или всё же что-то в коде.

Ответить | Правка | Наверх | Cообщить модератору

63. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +/
Сообщение от Необъективный_ (ok), 14-Дек-20, 19:26 
> Хочется разобраться в этом предупреждении, если в нём действительно виноваты только параметры сборки, а не код.

Ругается линковщик, а не компилятор. С кодом это предупреждение ну никак не связано.

> [  602s] This executable should be position independent (all binaries should).  Check
> [  602s] that it is built with -fPIE/-fpie in compiler flags and -pie in linker flags.

Я очень давно подобных сообщений линковщика не видел. Причем не в этом проекте, а вообще.

Если я правильно помню, все связываемые с бинарником разделяемые библиотеки должны быть собраны с флагом -fPIE, иначе и вылазит такое предупреждение. Рекомендую проверить флаги сборки всех прилинкованных с программе библиотек. Полный список можно посмотреть с помощью `ldd` или `objdump -p`.

Ответить | Правка | Наверх | Cообщить модератору

78. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +/
Сообщение от Ilya Indigo (ok), 14-Дек-20, 21:22 
Благодарю! Теперь понятно откуда ноги растут.
Ответить | Правка | Наверх | Cообщить модератору

37. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +/
Сообщение от Ilya Indigo (ok), 14-Дек-20, 14:20 
Извиняюсь, протупил ошибка меняется на.
[  517s] RPMLINT report:
[  517s] ===============
[  521s] eiskaltdcpp-qt.x86_64: W: position-independent-executable-suggested /usr/bin/eiskaltdcpp-qt
[  521s] This executable should be position independent (all binaries should).  Check
[  521s] that it is built with -fPIE/-fpie in compiler flags and -pie in linker flags.
Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

97. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +/
Сообщение от Ilya Indigo (ok), 16-Дек-20, 20:03 
А вот это уже проблема кода?

[  469s] RPMLINT report:
[  469s] ===============
[  475s] eiskaltdcpp-daemon.x86_64: I: binary-or-shlib-calls-gethostbyname /usr/bin/eiskaltdcpp-daemon
[  475s] The binary calls gethostbyname(). Please port the code to use getaddrinfo().
[  475s]
[  475s] eiskaltdcpp-daemon.x86_64: W: missing-call-to-setgroups-before-setuid /usr/bin/eiskaltdcpp-daemon
[  475s] This executable is calling setuid and setgid without setgroups or initgroups.
[  475s] There is a high probability this means it didn't relinquish all groups, and
[  475s] this would be a potential security issue to be fixed. Seek POS36-C on the web
[  475s] for details about the problem.

Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

101. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +1 +/
Сообщение от Необъективный_ (ok), 17-Дек-20, 12:00 
> А вот это уже проблема кода?

Не то, чтобы это были серьезные проблемы, но да, это уже в коде.

> [  475s] eiskaltdcpp-daemon.x86_64: I: binary-or-shlib-calls-gethostbyname /usr/bin/eiskaltdcpp-daemon
> ...
> [  475s] The binary calls gethostbyname(). Please port the code to use getaddrinfo().
> ...
> [  475s] This executable is calling setuid and setgid without setgroups or initgroups.

Эти методы используются во встроенной библиотеке mongoose, которая не менялась годами. Патчить эту либу в исходниках айскальта смысла нет. Нужно либо обновить ее (если найдутся новые релизы), либо заменить чем-то другим.

Ответить | Правка | Наверх | Cообщить модератору

103. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +/
Сообщение от Ilya Indigo (ok), 17-Дек-20, 16:13 
Благодарю!
Подскажите, пожалуйста, какие именно нужны зависимоcти (perl-скрипты) для работы сli.
https://build.opensuse.org/package/view_file/filesharing/eis...
Я включил только json

%cmake -LA \
       -DNO_UI_DAEMON=ON \
       -DUSE_CLI_JSONRPC=ON \
       -DWITH_EXAMPLES=OFF

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

Requires:       perl(JSON::RPC)
Requires:       perl(Term::ShellUI)

Но perl(Term::ShellUI) почему-то из openSUSE Factory удалили.
Я заменил её на perl(Term::UI), вроде по описанию схоже и обе упрощают работу с ReadKey, но я не знаю, будет ли это работать.
В скриптах perl-а я не разбираюсь, как и в работе eiskaltdcpp через daemon/cli.

Ответить | Правка | Наверх | Cообщить модератору

104. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +/
Сообщение от Необъективный_ (ok), 17-Дек-20, 17:02 
> Я включил только json

И это правильно. В будущих релизах демон без json-rpc вообще собираться не будет, скорее всего.

> Но perl(Term::ShellUI) почему-то из openSUSE Factory удалили.

Удалили, потому что этот модуль для perl давно не развивается, наверное. (В гите с 2012 коммитов не было.)

> Я заменил её на perl(Term::UI), вроде по описанию схоже и обе упрощают
> работу с ReadKey, но я не знаю, будет ли это работать.

Вообще не вариант. Это совершенно разные модули для разных задач и с разным API.

С оригинальным разработчиком eiskaltdcpp-cli давно связи не было. Этот интерфейс никто не развивает и вряд ли будет. Думаю, что нет смысла его опакечивать.

А вот пакет с официальным Web UI мог бы быть полезен.

Ответить | Правка | Наверх | Cообщить модератору

105. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +/
Сообщение от Ilya Indigo (ok), 17-Дек-20, 17:07 
> А вот пакет с официальным Web UI мог бы быть полезен.

А что это за пакет и как он включается?

Ответить | Правка | Наверх | Cообщить модератору

106. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +/
Сообщение от Необъективный_ (ok), 17-Дек-20, 20:23 
>> А вот пакет с официальным Web UI мог бы быть полезен.
> А что это за пакет и как он включается?

Это отдельный проект:
https://github.com/eiskaltdcpp/eiskaltdcpp-web

Что и куда ставить можно посмотреть в пакете для Debian:
https://github.com/eiskaltdcpp/eiskaltdcpp-web-debian/tree/m...

Чятика в этом Web UI нет, только поиск и загрузки.

Есть еще альтернативный Web UI:
https://github.com/eiskaltdcpp/icecult
но я его давно не смотрел...

Ответить | Правка | Наверх | Cообщить модератору

107. "Релиз клиента для файлообменных сетей Direct Connect и ADC -..."  +/
Сообщение от Ilya Indigo (ok), 17-Дек-20, 20:42 
Благодарю!

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру