Fork me on GitHub

8. Packaging droid-hal-device

Далее нужно выполнить простроение дерева rpm пакетов, но перед эти лучше выполнить следующие команды которые избавят вас от ошибок которые описаны ниже (для тех кто делает впервые лучше посмотреть будут ли выходить эти ошибки):

sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper rm mesa-llvmpipe-9.2.5+git2-1.3.23.armv7hl
sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper ar http://repo.merproject.org/obs/nemo:/devel:/hw:/common/sailfish_latest_armv7hl/ slf
sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper in kf5bluezqt-bluez4*
sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper rm bluez-configs-mer-4.101+git73-1.31.1.armv7hl

потом после исправление ошибко можете запускать скрипт:

MER_SDK $
cd $ANDROID_ROOT
rpm/dhd/helpers/build_packages.sh

This should compile all the needed packages, patterns, middleware and put them under local repository. If anything needs modified, just re-run this script.

Далее будут те ошибки с которыми я столкнулся при отработке скрипта rpm/dhd/helpers/build_packages.sh :

  • Ошибка
MerSDK ilnur@ubuntu:~/to/mer/android/droid$ rpm/dhd/helpers/build_packages.sh
* Building rpm/droid-hal-Z00L.spec
/home/ilnur/to/mer/android/droid/system/core/include/private/android_filesystem_config.h:227:6: note: declared here
apply-permissions.c:117:9: warning: implicit declaration of function 'strerror' [-Wimplicit-function-declaration]
apply-permissions.c:117:9: warning: format '%s' expects argument of type 'char *', but argument 5 has type 'int' [-Wformat]
apply-permissions.c:126:9: warning: format '%s' expects argument of type 'char *', but argument 6 has type 'int' [-Wformat]
apply-permissions.c: In function 'main':
apply-permissions.c:160:9: warning: implicit declaration of function 'strcmp' [-Wimplicit-function-declaration]
apply-permissions.c:175:9: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration]
apply-permissions.c:175:33: warning: incompatible implicit declaration of built-in function 'strlen' [enabled by default]
apply-permissions.c:178:9: warning: implicit declaration of function 'strrchr' [-Wimplicit-function-declaration]
apply-permissions.c:178:16: warning: incompatible implicit declaration of built-in function 'strrchr' [enabled by default]
make: *** [apply-permissions] Error 1
+ echo Building uid scripts
Building uid scripts
+ rpm/dhd/helpers/usergroupgen add
/var/tmp/rpm-tmp.XMo6Xf: line 66: rpm/dhd/helpers/usergroupgen: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.XMo6Xf (%build)

RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.XMo6Xf (%build)
* Check /home/ilnur/to/mer/android/droid/droid-hal-Z00L.log for full log.
!! building of package failed

Исправление ошибки для cm-13.0: (спасибо https://github.com/ballock/droid-hal-device/commit/7d190e9060a4a9badea1fd18a13d7bf4d38fcaf5) Также https://github.com/mer-hybris/droid-hal-device/issues/126

$ANDROID_ROOT/rpm/dhd/helpers  в файле makefile :

-TOOLS := apply-permissions usergroupgen
+TOOLS := usergroupgen
  • Ошибка :
Resolving package dependencies... 
Resolving package dependencies... 
4 Problems: 
Problem: libhybris-0.0.0-1.armv7hl conflicts with mesa-llvmpipe provided by mesa-llvmpipe-9.2.5+git2-1.3.23.armv7hl 
Problem: mesa-llvmpipe-libglapi-9.2.5+git2-1.3.23.armv7hl requires mesa-llvmpipe = 9.2.5+git2-1.3.23, but this requirement cannot be provided 
Problem: mesa-llvmpipe-libGLESv2-9.2.5+git2-1.3.23.armv7hl requires mesa-llvmpipe = 9.2.5+git2-1.3.23, but this requirement cannot be provided 
Problem: mesa-llvmpipe-libEGL-9.2.5+git2-1.3.23.armv7hl requires mesa-llvmpipe = 9.2.5+git2-1.3.23, but this requirement cannot be provided 

Решение

Удаление пакета mesa-llvmpipe-9.2.5+git2-1.3.23.armv7hl

sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper rm mesa-llvmpipe-9.2.5+git2-1.3.23.armv7hl 

Лог pulseaudio-modules-droid.log ошибка:

+ make 
make  all-recursive 
make[1]: Entering directory `/home/ilnur/to/mer/android/droid/hybris/mw/pulseaudio-modules-droid' 
Making all in src 
make[2]: Entering directory `/home/ilnur/to/mer/android/droid/hybris/mw/pulseaudio-modules-droid/src' 
Making all in common 
make[3]: Entering directory `/home/ilnur/to/mer/android/droid/hybris/mw/pulseaudio-modules-droid/src/common' 
  CC       libdroid_util_la-droid-util.lo 
In file included from droid-util.c:60:0: 
droid-util.h:49:2: error: #error "No valid ANDROID_VERSION found." 

Решение:

Проблема в том что нет поддержки андроида вверсии 6.0

Здесь указан временный способ поддержки android 6.0 в заголовке droid-util-60.h

https://github.com/mer-hybris/pulseaudio-modules-droid/issues/54

binli commented on Jun 7, 2016

Hi, Now I prepared to support android 6.0, I found there are droid-util-44.h, droid-util-44.h and droid-util-51.h headers file, and I compared these files, found a lot of different between each. So how do we generated the droid-util-xx.h files? I used a temp way to copy the droid-util-51.h to droid-util-60.h, it could be build successfully. What do I need to do to improve this header file for android 6.0? Thanks!

Закоментировал строки содержащие строки в которых содержатся ошибки:

droid-util-60.h:104:7: error: 'AUDIO_DEVICE_IN_FM_RX' undeclared here (not in a function) 
droid-util-60.h:104:53: error: 'AUDIO_SOURCE_FM_RX' undeclared here (not in a function) 
droid-util-60.h:105:7: error: 'AUDIO_DEVICE_IN_FM_RX_A2DP' undeclared here (not in a function) 
droid-util-60.h:105:53: error: 'AUDIO_SOURCE_FM_RX_A2DP' undeclared here (not in a function) 
droid-util-60.h:148:5: error: 'AUDIO_DEVICE_OUT_FM_TX' undeclared here (not in a function)
  • Ошибка:

* Building rpm/droid-hal-version-Z00L.spec Problem: nothing provides kf5bluezqt-bluez4 needed by droid-config-Z00L-bluez4-1-1.armv7hl Solution 1: do not ask to install a solvable providing droid-config Solution 2: break droid-config-Z00L-bluez4-1-1.armv7hl by ignoring some of its dependencies Choose from above solutions by number or skip, retry or cancel [1/2/s/r/c] (c): c error: Failed build dependencies: droid-hal is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-config is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-config-sailfish is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-hal-kernel is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-hal-img-boot is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-hal-img-recovery is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-config-preinit-plugins is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-config-pulseaudio-settings is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl * Check /home/ilnur/to/mer/android/droid/hybris/droid-hal-version-Z00L.log for full log. !! building of package failed

Решение

http://www.merproject.org/logs/%23sailfishos-porters/%23sailfishos-porters.2017-01-10.log.html

установить репозиторий и установить недостающий пакет:

sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper ar http://repo.merproject.org/obs/nemo:/devel:/hw:/common/sailfish_latest_armv7hl/ slf 

sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper in kf5bluezqt-bluez4* 

Добавить новый репозиторий: zypper ar

См http://www.opennet.ru/tips/info/1762.shtml

  • Ошибка:

```bash * Building rpm/droid-hal-version-Z00L.spec
Problem: droid-config-Z00L-1-1.armv7hl requires Z00L-bluez-configs, but this requirement cannot be provided uninstallable providers: droid-config-Z00L-bluez4-1-1.armv7hl[local-Z00L-hal] Solution 1: Following actions will be done: do not ask to install a solvable providing droid-config do not ask to install a solvable providing droid-config-sailfish Solution 2: replacement of bluez-configs-mer-4.101+git73-1.31.1.armv7hl with droid-config-Z00L-bluez4-1-1.armv7hl Solution 3: break droid-config-Z00L-1-1.armv7hl by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/c] (c): c error: Failed build dependencies: droid-hal is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-config is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-config-sailfish is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-hal-kernel is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-hal-img-boot is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-hal-img-recovery is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-config-preinit-plugins is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl droid-config-pulseaudio-settings is needed by droid-hal-version-Z00L-0.0.1-1.armv7hl * Check /home/ilnur/to/mer/android/droid/hybris/droid-hal-version-Z00L.log for full log.
!! building of package failed
```

Решение

bash sb2 -t $VENDOR-$DEVICE-$PORT_ARCH -m sdk-install -R zypper rm bluez-configs-mer-4.101+git73-1.31.1.armv7hl

  • Ошибка возникает если пересобираем заново:
qemu: uncaught target signal 11 (Segmentation fault) - core dumped

/var/tmp/rpm-tmp.RA6BXM: line 204: 25812 Segmentation fault      (core dumped) /usr/lib/qt5/bin/kmap2qmap .//droid-configs-device/configs/droid.kmap .//droid-configs-device/configs/us.kmap $RPM_BUILD_ROOT//usr/share/qt5/keymaps/droid.qmap

error: Bad exit status from /var/tmp/rpm-tmp.RA6BXM (%install)

RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.RA6BXM (%install)

Решение:

нужно выполнить заново 6. Установка SCRATCHBOX2

Это все проблемы с которыми я столкнулся при выполнения скрипта rpm/dhd/helpers/build_packages.sh

social