Записки утконоса-программиста

Сборка пакетов в SDK

Коннектимся к sdk. Оно у Вас должно, естественно, быть запущеным.
Код BASH:
  1. HOST# ssh -p 2222 -i ~/SailfishOS/vmshare/ssh/private_keys/engine/mersdk mersdk@localhost
Посмотреть доступные таргеты можно так
Код BASH:
  1. SDK# sdk-assistant list
Собираем так:
Код BASH:
  1.  
  2. SDK# cd project/dir
  3. SDK# make clean
  4. SDK# find . -iname 'Makefile' -exec rm -rfv {} +
  5. SDK# mb2 -t $TARGET build
  6. SDK# make clean
  7. SDK# find . -iname 'Makefile' -exec rm -rfv {} +
  8. SDK# mb2 -t $TARGET build
Более полно тут:
https://sailfishos.org/develop/sdk-overview/develop-faq/
https://sailfishos.org/develop/tutorials/building-sailfish-os-packages-manually/

Удалять мейкфайлы надо потому что система сборки начнёт тупить и собирать не ту архитектуру

Чтобы блютус сохранял свой статус при перезагрузке

В droid-config-DEV необходимо добавить файлик
sparse/etc/sysconfig/connman с содержимым
Код INI:
  1. SYSCONF_ARGS="--noplugin=jolla_rfkill"

HADK: Ошибка "nothing provides kf5bluezqt-bluez4"

Опять поломали чуть поддержку bluetooth в песочнице. Итак, если у Вас при сборке пакетов droid-config возникает ошибка вида:
Код BASH:
  1. Problem: nothing provides kf5bluezqt-bluez4 needed by droid-config-device-bluez4-1-1.armv7hl
  2. Solution 1: Following actions will be done:
  3. deinstallation of bluez-configs-mer-4.101+git73-1.31.1.armv7hl
  4. deinstallation of bluez-4.101+git73-1.31.1.armv7hl
  5. deinstallation of connman-1.30+git20-1.31.1.armv7hl
  6. deinstallation of connman-configs-mer-1.30+git20-1.31.1.armv7hl
  7. deinstallation of connman-qt5-1.0.98-1.32.1.armv7hl
  8. deinstallation of ssu-network-proxy-plugin-0.42.0-1.35.2.armv7hl
  9. deinstallation of ssu-0.42.0-1.35.2.armv7hl
  10. deinstallation of sdk-register-0.5-10.1.11.jolla.armv7hl
  11. deinstallation of qt5-qtsysteminfo-5.2.0+git8-1.7.1.armv7hl
  12. deinstallation of qt5-qtdeclarative-systeminfo-5.2.0+git8-1.7.1.armv7hl
  13. deinstallation of ssu-vendor-data-jolla-0.95-10.32.2.jolla.noarch
  14. Solution 2: keep obsolete bluez-configs-mer-4.101+git73-1.31.1.armv7hl
  15. Solution 3: break droid-config-device-bluez4-1-1.armv7hl by ignoring some of its dependencies
Необходимо добавить репозиторий http://repo.merproject.org/obs/nemo:/devel:/hw:/common/sailfish_latest_armv7hl/ в песочницу. Делается это так:
Код BASH:
  1. sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper ar http://repo.merproject.org/obs/nemo:/devel:/hw:/common/sailfish_latest_armv7hl/ sfl
  2. sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper up
Теперь устанавливаем kf5bluezqt-bluez4 и за одно удаляем mesa-llvmpipe который нам помешает в сборке libhybris
Код BASH:
  1. sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper re mesa-llvmpipe
  2. sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper rm mesa-llvmpipe

Кастомные IconButton в Sailfish

IconButton в Silica всем хороши, но их банально мало, и если нужно задействовать что-то либо другое, приходится городить костылики. Вот мой, работает с SVG иконками, которые я брал из Fontawesome тут

Код QML:
  1. import QtQuick 2.0
  2. import Sailfish.Silica 1.0
  3.  
  4. id: clickIcon
  5.  
  6. signal clicked
  7. property string activeColor: Theme.highlightColor
  8. property string defaultColor: Theme.primaryColor
  9.  
  10. opacity: 0.6
  11.  
  12. fillMode: Image.PreserveAspectFit
  13.  
  14. sourceSize.width: width
  15. sourceSize.height: height
  16.  
  17. layer.effect: ShaderEffect {
  18. id: shaderItem
  19. property color color: clickMouseArea.pressed ? clickIcon.activeColor : clickIcon.defaultColor
  20.  
  21. fragmentShader: "
  22. varying mediump vec2 qt_TexCoord0;
  23. uniform highp float qt_Opacity;
  24. uniform lowp sampler2D source;
  25. uniform highp vec4 color;
  26. void main() {
  27. highp vec4 pixelColor = texture2D(source, qt_TexCoord0);
  28. gl_FragColor = vec4(mix(pixelColor.rgb/max(pixelColor.a, 0.00390625), color.rgb/max(color.a, 0.00390625), color.a) * pixelColor.a, pixelColor.a) * qt_Opacity;
  29. }
  30. "
  31. }
  32. layer.enabled: true
  33. layer.samplerName: "source"
  34.  
  35. id: clickMouseArea
  36. anchors.fill: parent
  37. onClicked: {
  38. clickIcon.clicked()
  39. }
  40. }
  41. }

Для себя.

Ну нравится мне ковыряться в старом коде. Да и понадобится он мне скоро...Это так, больше для себя чтобы не бегать по блогу locusf`а.
Код BASH:
  1. pkcon remove lipstick-glacier-home-qt5
  2. pkcon install lipstick-jolla-home-qt5
  3. systemctl-user restart lipstick.service

Ubuntu phone на паузе?

Если вы надеялись увидеть новые телефоны на убунту тач, у меня для Вас плохие новости, а если вы один из редких владельцев данного телефона и ждёте обновлений...для Вас у меня тоже запасено несколько плохих новостей.
Ubuntu phone на паузе?

Не понять вам...

Серёжа купил себе блютус свисток с поддержкой BLE и бегает радостный по квартире...но вам не понять моей радости...до нового года думаю будет много кода...
Не понять вам...

Учимся отправлять уведомления в Sailfish OS

Итак, по ходу разработки приложений в sailfish необходимо достаточно часто вызывать уведомления. Мне помогли реализовать данный функционал, а я расскажу Вам. Итак...что должно получиться в итоге:
Учимся отправлять уведомления в Sailfish OS

Если кратко то техзадание такое:
1 - Программа должна при нажатии на какую то кнопку высылать уведомления
2 - При нажатии на уведомление должно открываться окно

Sailfish OS - Hardware Adaptation Development Kit - Собираем пакеты для мультимедиа

Если у Вас есть драйвер ALSA для вашего устройства, то вам будет счастье и радость, если де его нет, то придётся пробрасывать драйвера из андроида. Сборку этих пакетов сегодня и рассмотрим.
Кстати в HADK вообще не затрагивается этот вопрос.
Sailfish OS - Hardware Adaptation Development Kit - Собираем пакеты для мультимедиа

Sailfish OS - Hardware Adaptation Development Kit - Bluetooth на Qualcomm устройствах

При портировании на устройства Qualcomm sailfish os придётся помучатся и даже пропатчить ядрышко. Всё потому что BT рулится будет через HCISMD
Sailfish OS - Hardware Adaptation Development Kit - Bluetooth на Qualcomm устройствах