Status von Homegear Docker Images inkl. Build-Images und raspi packages

Auf meinem VMWARE-Image mit Debian habe ich eine selber kompilierte, uralte homegear-Version. Nun möchte ich auf ein Docker-Image unter Debian x86 oder raspi stretch wechseln. Irgendwie ist das aber verhext. Die Docker builds funktionieren nicht und die iIstallationen der fertigen Pakete auch nicht.

Sollte das überhaupt noch funktionieren? :frowning:

Beispiel mit raspi stretch:
apt install homegear homegear-nodes-core homegear-management
Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
homegear : Depends: libgnutls-deb0-28 (>= 3.3.0) but it is not installable
Depends: libicu52 (>= 52~m1-1~) but it is not installable
Depends: libmysqlclient18 (>= 5.5.24+dfsg-1) but it is not installable
Depends: libssl1.0.0 (>= 1.0.1) but it is not installable
homegear-management : Depends: libgnutls-deb0-28 (>= 3.3.0) but it is not installable
E: Unable to correct problems, you have held broken packages.

Und hier das Ergebnis eines Dockerbuilds auf dem raspi mit

./build/CreateDebianPackageStable.sh


g++ -DHAVE_CONFIG_H -I. -I… -Wall -std=c++11 -DFORTIFY_SOURCE=2 -DGCRYPT_NO_DEPRECATED -DLINUXSYSTEM -g -O2 -c -o RPC/RpcServer.o RPC/RpcServer.cpp
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-6/README.Bugs> for instructions.
Makefile:719: recipe for target ‘RPC/RpcServer.o’ failed
make[3]: *** [RPC/RpcServer.o] Error 4
make[3]: Leaving directory ‘/build/homegear-0.7.30/src’
Makefile:404: recipe for target ‘all-recursive’ failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory ‘/build/homegear-0.7.30’
Makefile:336: recipe for target ‘all’ failed
make[1]: *** [all] Error 2
make[1]: Leaving directory ‘/build/homegear-0.7.30’
dh_auto_build: make -j1 returned exit code 2
debian/rules:63: recipe for target ‘build’ failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
debuild: fatal error at line 1116:
dpkg-buildpackage -rfakeroot -us -uc -j1 failed
Error building Homegear.

Building with docker under debian jessie:

docker run -it -e HOMEGEARBUILD_SHELL=1 homegear/build:debian-jessie-amd64

/build/CreateDebianPackageStable.sh ....

chmod 644 /build/homegear-0.7.30/debian/homegear/etc/logrotate.d/homegear
mkdir -p /build/homegear-0.7.30/debian/homegear/etc/security/limits.d
chown root:root /build/homegear-0.7.30/debian/homegear/etc/security/limits.d
echo “homegear soft rtprio 100” > /build/homegear-0.7.30/debian/homegear/etc/security/limits.d/homegear
echo “homegear hard rtprio 100” >> /build/homegear-0.7.30/debian/homegear/etc/security/limits.d/homegear
chown root:root /build/homegear-0.7.30/debian/homegear/etc/security/limits.d/homegear
chmod 644 /build/homegear-0.7.30/debian/homegear/etc/security/limits.d/homegear
mkdir -p /build/homegear-0.7.30/debian/homegear/var/lib/homegear
mkdir -p /build/homegear-0.7.30/debian/homegear/var/lib/homegear/node-blue/data
mkdir /build/homegear-0.7.30/debian/homegear/var/lib/homegear/phpinclude
cp -R /build/homegear-0.7.30/misc/State\ Directory/* /build/homegear-0.7.30/debian/homegear/var/lib/homegear
chown -R root:root /build/homegear-0.7.30/debian/homegear/var/lib/homegear
find /build/homegear-0.7.30/debian/homegear/var/lib/homegear -type d -exec chmod 550 {} ;
find /build/homegear-0.7.30/debian/homegear/var/lib/homegear -type f -exec chmod 440 {} ;
chmod 755 /build/homegear-0.7.30/debian/homegear/var/lib/homegear/scripts/*.sh
mkdir -p /build/homegear-0.7.30/debian/homegear/usr/share/homegear
cp -R /usr/share/homegear/php/ /build/homegear-0.7.30/debian/homegear/usr/share/homegear
cp: cannot stat ‘/usr/share/homegear/php/’: No such file or directory
debian/rules:7: recipe for target ‘override_dh_auto_install’ failed
make[1]: *** [override_dh_auto_install] Error 1
make[1]: Leaving directory ‘/build/homegear-0.7.30’
debian/rules:63: recipe for target ‘binary’ failed
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1376:
dpkg-buildpackage -rfakeroot -D -us -uc -j1 failed
Error building Homegear.

And under a newly installed stretch

docker run -it -e HOMEGEARBUILD_SHELL=1 homegear/build:debian-stretch-amd64

/build/CreateDebianPackageStable.sh ....

mkdir -p /build/homegear-0.7.30/debian/homegear/usr/share/homegear |
cp -R /usr/share/homegear/php/ /build/homegear-0.7.30/debian/homegear/usr/share/|
homegear |
cp: cannot stat ‘/usr/share/homegear/php/’: No such file or directory |
debian/rules:7: recipe for target ‘override_dh_auto_install’ failed |
make[1]: *** [override_dh_auto_install] Error 1 |
make[1]: Leaving directory ‘/build/homegear-0.7.30’ |
debian/rules:63: recipe for target ‘binary’ failed |
make: *** [binary] Error 2 |
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 |
debuild: fatal error at line 1116: |
dpkg-buildpackage -rfakeroot -us -uc -j1 failed |
Error building Homegear. |
root@b96bff937187:/#

Habe nun zum Glück eine funktionierende Kombination gefunden:

Debian AMD64 Stretch mit Packages aus dem homgear-repository.

Naja, raspi wäre mir lieber, aber man soll ja nicht meckern… :slight_smile:

Schau, ob es jetzt wieder klappt. Sollte eigentlich.

Merci für die Bemühungen!

Ergebnis des Debian Stretch AMD64 docker builds:

cp: cannot stat ‘/usr/share/homegear/php/’: No such file or directory
debian/rules:7: recipe for target ‘override_dh_auto_install’ failed
make[1]: *** [override_dh_auto_install] Error 1
make[1]: Leaving directory ‘/build/homegear-0.7.30’
debian/rules:63: recipe for target ‘binary’ failed
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1116:
dpkg-buildpackage -rfakeroot -us -uc -j1 failed
Error building Homegear.

Und build für jessie amd64 unter jessie:

cp: cannot stat ‘/usr/share/homegear/php/’: No such file or directory
debian/rules:7: recipe for target ‘override_dh_auto_install’ failed
make[1]: *** [override_dh_auto_install] Error 1
make[1]: Leaving directory ‘/build/homegear-0.7.30’
debian/rules:63: recipe for target ‘binary’ failed
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1376:
dpkg-buildpackage -rfakeroot -D -us -uc -j1 failed
Error building Homegear.

Und docker build auf raspbian stretch:

Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-6/README.Bugs> for instructions.
Makefile:719: recipe for target ‘RPC/RpcServer.o’ failed
make[3]: *** [RPC/RpcServer.o] Error 4
make[3]: Leaving directory ‘/build/homegear-0.7.30/src’
Makefile:404: recipe for target ‘all-recursive’ failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory ‘/build/homegear-0.7.30’
Makefile:336: recipe for target ‘all’ failed
make[1]: *** [all] Error 2
make[1]: Leaving directory ‘/build/homegear-0.7.30’
dh_auto_build: make -j1 returned exit code 2
debian/rules:63: recipe for target ‘build’ failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
debuild: fatal error at line 1116:
dpkg-buildpackage -rfakeroot -us -uc -j1 failed
Error building Homegear.

Unter Debian Stretch konnte ich nun builden, nachdem ich folgenden Symlink erstellt habe:

ln -s /usr/share/homegear/php-dev /usr/share/homegear/php

Unter raspian-stretch:

–2018-12-05 13:41:07-- https://github.com/Homegear/Homegear-Beckhoff/archive/master.zip
Resolving github.com (github.com)… 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443… connected.
HTTP request sent, awaiting response… 404 Not Found
2018-12-05 13:41:08 ERROR 404: Not Found.

Irgendwie scheint da noch der Wurm drin zu sein…

Hallo @FotoFieber

hast du das aktuelle Docker-Image? Nach Aktualisierung muss dieses jedes Mal mit docker pull aktualisiert werden. Ich verwende hier das Image ja selbst, von daher kann ich sicher sagen, dass dieses funktioniert. Hier ein Beispiel:

docker pull homegear/build:raspbian-stretch-armhf
docker run -it homegear/build:raspbian-stretch-armhf
/build/CreateDebianPackageNightly.sh

Gerade getestet - funktioniert hier.

Viele Grüße

Sathya

Lieber Sathya

Ja, ich habe jeweils das Docker-Image aktualisiert.

Vielleicht liegt es daran, dass ich nicht ein nightly sondern einen stable-build machen möchte?

Hast Du den auch schon probiert?

Meine Hardware ist ein Raspi 3b+

Der Build geht auch heute nicht:

g++ -DHAVE_CONFIG_H -I. -I… -Wall -std=c++11 -DFORTIFY_SOURCE=2 -DGCRYPT_NO_DEPRECATED -DLINUXSYSTEM -g -O2 -c -o RPC/RpcServer.o RPC/RpcServer.cpp
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-6/README.Bugs> for instructions.
Makefile:719: recipe for target ‘RPC/RpcServer.o’ failed
make[3]: *** [RPC/RpcServer.o] Error 4
make[3]: Leaving directory ‘/build/homegear-0.7.32/src’
Makefile:404: recipe for target ‘all-recursive’ failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory ‘/build/homegear-0.7.32’
Makefile:336: recipe for target ‘all’ failed
make[1]: *** [all] Error 2
make[1]: Leaving directory ‘/build/homegear-0.7.32’
dh_auto_build: make -j1 returned exit code 2
debian/rules:63: recipe for target ‘build’ failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
debuild: fatal error at line 1116:
dpkg-buildpackage -rfakeroot -us -uc -j1 failed
Error building Homegear.

Hallo @FotoFieber,

achso, du versuchst auf dem Pi zu kompilieren? Dafür reicht der Arbeitsspeicher möglicherweise nicht aus (der Fehler spricht dafür). Die Docker-Images sind zur Nutzung auf einem amd64-System gedacht. Hier habe ich eben debian-stretch-amd64 getestet. Das funktioniert.

Viele Grüße

Sathya

Hallo @sathya

Kann ich denn die Raspi-Packages auf einem amd64 builden mit den Docker images?

Wie? Bei mir geht das nicht.

docker pull homegear/build:raspbian-stretch-armhf docker run -it homegear/build:raspbian-stretch-armhf standard_init_linux.go:190: exec user process caused "exec format error"

Gruss

FotoFieber

Hallo @FotoFieber,

Kann ich denn die Raspi-Packages auf einem amd64 builden mit den Docker images?

Ja.

Wie? Bei mir geht das nicht.

Hmm, installier mal folgende Pakete qemu qemu-user-static. Geht es jetzt?

Viele Grüße

Sathya

Hallo @sathya

Habe die qemu-packages installiert. Docker ist nun am “cross-” builden. Merci für den Tipp.

Melde mich, wenn alles durch ist.

Gruss
Markus

Ich habe die Anleitung im Docker-Hub mal entsprechend angepasst ;-).

Hallo @sathya

Die buildscripts sowohl für nightly als auch stable sind durchgelaufen. Nightly habe ich nun installiert und werde testen.

Vielen Dank!

FotoFieber