LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Посмотрел его исходник (выглядит в целом ужасно, я б всё переписал) - не знаю какая у тебя версия, есть 2.8.0 и 2.8.1 последние.

Библиотека грузится тут: https://github.com/networkupstools/nut/blob/master/tools/nut-scanner/nutscan-init.c (поиск по слову libusb-) там get_libname("libusb-1.0.so") по сути получается

Сам get_libname тут: https://github.com/networkupstools/nut/blob/master/common/common.c

В 2.8.0 там был какой-то странный код который сначала искал в списке путей всё, что начинается на «libusb-1.0.so» а потом (например, нашёл libusb-1.0.so.12345) с помощью функции realpath пытался узнать, а нет ли в той же директории самого libusb-1.0.so. В версии которая в мастере по ссылке - эта функция распухла в несколько раз, в неё добавили в т.ч. поддержку LD_LIBRARY_PATH (а ещё - поиск файлов с добавками в конце убрали, но идиотскую схему «вручную перебираем весь список» и самодельную реализацию strcmp через strncmp оставили), но файл, который оно ищет должен, как и раньше, называться именно так: libusb-1.0.so безо всяких добавок, и это жёстко прописано в исходнике.

А ещё кажется если его запустить с -D -D (2 раза) то он будет писать отладочные надписи о том, где что ищет и что нашёл.

Исходная версия firkax, :

Посмотрел его исходник (выглядит в целом ужасно, я б всё переписал) - не знаю какая у тебя версия, есть 2.8.0 и 2.8.1 последние.

Библиотека грузится тут: https://github.com/networkupstools/nut/blob/master/tools/nut-scanner/nutscan-init.c (поиск по слову libusb-) там get_libname("libusb-1.0.so") по сути получается

Сам get_libname тут: https://github.com/networkupstools/nut/blob/master/common/common.c

В 2.8.0 там был какой-то странный код который сначала искал в списке путей всё, что начинается на «libusb-1.0.so» а потом (например, нашёл libusb-1.0.so.12345) с помощью функции realpath пытался узнать, а нет ли в той же директории самого libusb-1.0.so. В версии которая в мастере по ссылке - эта функция распухла в несколько раз, в неё добавили в т.ч. поддержку LD_LIBRARY_PATH (а ещё - поиск файлов с добавками в конце убрали, но идиотскую схему «вручную перебираем весь список» оставили), но файл, который оно ищет должен, как и раньше, называться именно так: libusb-1.0.so безо всяких добавок, и это жёстко прописано в исходнике.

А ещё кажется если его запустить с -D -D (2 раза) то он будет писать отладочные надписи о том, где что ищет и что нашёл.