Отже я наробив якоїсь хуйні 😇 Все почалося з того, що локально зібраний реліз під мак в мене працював норм, а зібраний на CI не запускався. Я дізнався, що це через те, що в бінарь з CI чогось зашиваються локальні шляхи до ліб на кшталт:
❯ otool -L /Applications/MyMegaApp.app/Contents/MacOS/MyMegaAppтоді як в мене локально все правильно (і на CI теж було):
/Applications/MyMegaApp.app/Contents/MacOS/MyMegaApp:
/usr/local/opt/qt/lib/QtQuick.framework/Versions/A/QtQuick (compatibility version 6.0.0, current version 6.4.0)
/usr/local/opt/qt/lib/QtOpenGL.framework/Versions/A/QtOpenGL (compatibility version 6.0.0, current version 6.4.0)
/usr/local/opt/qt/lib/QtGui.framework/Versions/A/QtGui (compatibility version 6.0.0, current version 6.4.0)
❯ otool -L MyMegaApp.app/Contents/MacOS/MyMegaAppТож я пішов на CI-сервер чєкнути, що відбувається. Ідей в мене було не багато, але я подумав, що може якась проблема з різними версіями Qbs (в мене 1.24.0, а на CI — 1.23.0 чи щось таке).
MyMegaApp.app/Contents/MacOS/MyMegaApp:
@rpath/QtQuick.framework/Versions/A/QtQuick (compatibility version 6.0.0, current version 6.4.0)
@rpath/QtOpenGL.framework/Versions/A/QtOpenGL (compatibility version 6.0.0, current version 6.4.0)
@rpath/QtGui.framework/Versions/A/QtGui (compatibility version 6.0.0, current version 6.4.0)
Тож я, не довго думаючи, набрав
brew upgrade qbs. Це було великою помилкою. Воно авжеж оновило Qbs, але з ним воно оновило і його депенденсі — Qt (це проблема №1). Qt депендив на OpenSSL ніби, а той ще на щось, все це якось призвело до оновлення пайтону, котрий став 3.11, і врешті якогось хєра справа дійшла до Conan, який, тварюка така, як раз оновився до 2.0, хоча у нас був 1.57.З новою версією Conan перестав працювати #Qbs (
ConanProbe не може зробити configure), тому я вирішив знести Conan через brew та встановити через pip, бо brew не дозволяє обирати версію ніби. Виявилось, що той pip, що в системі, не вписаний в $PATH, тому я вирішив поставити pyenv, через нього встановити потрібну версію пітону з піпом глобально, а потім вже туди встановити конан. Результат передбачуваний:
ВСЕ ЦЕ НІХУЯ НЕ ПРАЦЮЄ! ахахаха
Тому що я не знаю, як рестартнути ранер, аби він підхватив нові змінні середовища. Я вже і в .profile, і в .bashrc все попрописував. Наш девопс ніби щось там налагодив врешті, але це пиздець.
Мораль авжеж така, що не варто щось прям на серваку фіксити вручну, особливо надвечір. Тим паче, якщо це віртуалка в QEMU всередині докеру.
Але думаю, що час вчити Nix, бо Homebrew — це шматок лайна, котрий тільки для домашнього використання підходить.