В продолжение темы Скопировать файлы между Android телефонами
Итак, удалось выяснить вот что, и несколько продвинуться в данном вопросе. Задаю вопросы к гуру по NixOS как лучше эти фиксы в nixpkgs сделать и оформить.
- В деривации kio-extras создается dbus service файл, который дергает бинарник демона kiod не из той деривации. Поэтому kio-extras, а в его составе и поддержка mtp, вообще не работает. Тут вопрос - как грамотно решить эту ситуацию в https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/kde/kio-extras.nix. В какую фазу что лучше добавить, чтобы заменить в файле
$out/share/dbus-1/services/org.kde.kmtpd5.service
строчку
Exec=и-что-там
на
Exec=${kio}/libexec/kf5/kiod5
- Далее проблема - пакет https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/libmtp/default.nix должен добавить udev rule, и при этом он имеет три выхода - bin, dev, out. Правило udev лежит в out, но ищет сборка его почему-то в bin. В результате правило не добавляется, телефон не помечается как mtp устройство и solid (из KDE) его вообще не видит.
Пока решил это так в configuration.nix:
services.udev.packages = [ pkgs.libmtp.out ];
Как это решить более лучше, поправив пакет в nixpkgs? Я так думаю что лучше, если сам пакет libmtp будет правильно добавлять правило из себя, но я не до конца понял как оно работает.
После исправления проблем 1 и 2 все работает! Прошу помочь поправить nixpkgs и подсказать как оформлять пулл реквест.