v-zhuravlev / libzbxmodbus

Loadable module to integrate Modbus (RTU, TCP and encapsulated) into Zabbix. Bulk data collection included.
https://share.zabbix.com/dir-libraries/zabbix-loadable-modules/modbus-loadable-module
GNU General Public License v2.0
50 stars 25 forks source link

Conflicts with system-wide libmodbus #22

Open evgkrsk opened 6 years ago

evgkrsk commented 6 years ago

0.7 при установке собирает libmodbus-3.1.4 (вроде бы патченую) и устанавливает вместо уже установленной в системе версии. В теми же именами и сонеймами библиотеки. Таким образом, нельзя безопасно установить пакет туда, где уже есть ПО, линкующееся с libmodbus.

С внешней libmodbus пакет тоже разучился собираться, насколько я вижу.

v-zhuravlev commented 6 years ago

это с 0.6. Что посоветуете? Добавил в readme пока что.

evgkrsk commented 6 years ago

Лучше всего продвинуть нужные патчи в апстрим библиотеки и линковаться динамически, требуя версию не ниже нужной.

v-zhuravlev commented 6 years ago

к сожалению я уже делал pull request, но нет реакции https://github.com/stephane/libmodbus/pull/385

i-ky commented 3 years ago

Думаю, мы можем класть патченный libmodbus туда же, куда и сам модуль и указывать относительный путь при линковке. Согласно man ld.so:

       When resolving shared object dependencies, the dynamic linker
       first inspects each dependency string to see if it contains a
       slash (this can occur if a shared object pathname containing
       slashes was specified at link time).  If a slash is found, then
       the dependency string is interpreted as a (relative or absolute)
       pathname, and the shared object is loaded using that pathname.