Code: Alles auswählen
apt install paket:armhf
Code: Alles auswählen
apt install paket:armhf
Code: Alles auswählen
~# mk-build-deps -ir --host-arch=armhf PAKET
Ne, das stimmt nicht. Beide benutzen chroots als saubere, vom Hostsystem getrennte Buildumgebungen. Und für einen Cross-Build wiederum benutzen sie bei Bedarf die Toolchains, die niemand oben schon verlinkt hat: siehe für sbuild und für pbuilder.The Hit-Man hat geschrieben:14.02.2023 14:19:39Naja, wenn man pbuilder oder sbuild nutzt, wird ja über den qemu gebaut ( so weit ich das gelesen hatte ).
Normalerweise installieren pbuilder und sbuild die Buildabhängigkeiten bei jedem Bauen neu. Das ist ja eins ihrer Ziele, eine saubere Buildumgebung anzubieten. Durch das Neuinstallieren dauert das Bauen natürlich länger. Man kann die ständige Neuinstallation, meine ich, auch vermeiden, verliert dann aber einen Vorteil (den man lokal, bei wiederholtem Bauen natürlich nicht immer haben möchte/braucht).The Hit-Man hat geschrieben:14.02.2023 14:19:39Genau das wollte ich vermeiden denn das dauert zu mindest bei mir dann übelst lange. Oder vertue ich mich da gerade etwas.
Dann probier doch mal, dir wie oben beschrieben mit mk-build-deps die Abhängigkeiten zu installieren. Im Debian-Wiki findest du noch den notwendigen, hoffentlich direkt funktionierenden Aufruf von dpkg-buildpackage: Cross Compiling#Building with dpkg-buildpackage, letzte Zeile. Die apt-get install- und apt-get build-dep-Schritte brauchst du mit mk-build-deps nicht. Aber Vorsicht, falls dabei wegen Architekturkonflikt irgendwas deinstalliert werden möchte …The Hit-Man hat geschrieben:14.02.2023 14:19:39Also ich suche einfach einen Weg, schnell und vor allem recht einfach ein Paket für den Raspberry zu bauen auf eben einer großen amd64 Maschine und das nicht über eine qemu Emulation.
Wenn du zum Bauen etwa ein chroot mit einer anderen Architektur benutzt, wird da Qemu im Hintergrund notwendig sein. Aber das wäre auch kein Cross-Kompilieren, sondern eben einfach ein Bauen unter der Zielarchitektur.The Hit-Man hat geschrieben:14.02.2023 16:19:52Als ich da chroot gelesen hatte, hatte ich aufgehört zu lesen, da ich gleich an qemu dachte.
Code: Alles auswählen
root@vm:~# sbuild-createchroot --command-prefix=eatmydata --include=eatmydata --alias=sid unstable /srv/chroot/unstable-amd64-sbuild http://deb.debian.org/debian
root@vm:~# sbuild-adduser thehitman
Code: Alles auswählen
thehitman@vm:~$ sbuild -d unstable --host=armhf --no-run-autopkgtest --no-run-lintian dash
Was genau hast du denn gestern ausprobiert? In der verlinkten Anleitung sind ja doch verschiedene Schritte und Vorgehensweisen beschrieben.The Hit-Man hat geschrieben:14.02.2023 19:14:56so, ich habe mal alles nach dieser Anleitung gemacht.
https://wiki.debian.org/sbuild
Wer ist denn eigentlich dieser JHT?
Das kommt drauf an. Wenn die Kodi-Version aus Testing von Bibliotheken abhängt, die es generell oder in notwendiger neuerer Version noch nicht in Stable gibt, wird das erstmal scheitern. Dann müsstest du z.B. die Abhängigkeiten aus Testing installieren, hast dann aber eine Mischinstallation.The Hit-Man hat geschrieben:02.03.2023 06:14:20Mein Versuch ist gerade aus Debian Testing, das Kodi Paket für Debian Stable zu bauen. Oder ist so etwas erst gar nicht möglich?
Ein Ratschlag hängt da auch ein bisschen von deinem Ziel ab:The Hit-Man hat geschrieben:02.03.2023 06:14:20Kann ich eigentlich selbst gebaute Pakete in die chroot Umgebung mit einfügen? Und vielleicht irgendwie die Abhängigkeiten die für ein zu bauendes Paket behalten? So das diese nicht immer neu installiert werden müssen?
Code: Alles auswählen
~# sbuild-shell CHROOTNAME
Code: Alles auswählen
apt build-dep --host-architecture=armhf kodi
# das sollte auch gehen, in einem Schritt ohne sbuild-shell:
sbuild-apt CHROOTNAME apt-get build-dep --host-architecture=armhf kodi
Ups, ja DuWer ist denn eigentlich dieser JHT?
So, wie es aussieht passen die Abhängigkeiten aber auch nur dann wenn ich die git Version nehme, direkt aus dem Git von Kodi. Da kann ich es unter bullseye bauen wenn ich die normalen Abhängigkeiten von Kodi aus bullseye installiere.Das kommt drauf an. Wenn die Kodi-Version aus Testing von Bibliotheken abhängt, die es generell oder in notwendiger neuerer Version noch nicht in Stable gibt, wird das erstmal scheitern. Dann müsstest du z.B. die Abhängigkeiten aus Testing installieren, hast dann aber eine Mischinstallation.
Code: Alles auswählen
apt-get build-dep kodi
Werde ich mal testen ...die Build-Abhängigkeiten vorinstallieren. Das könnte allerdings auch schiefgehen, denn sbuild benutzt eigentlich noch etwas mehr „Magie“ um die Cross-Build-Abhängigkeiten erfolgreich zu installieren. Wenn es schiefgeht, könntest du für das wiederholte Neupaketieren hier auch erstmal für amd64 statt armhf bauen.
Aaach so
Bei mir läuft seit Kurzem Bookworm, kann deshalb nicht nachstellen, woran es bei dir anscheinend scheitert. Aber jeweils die Kodi-Version aus dem dazugehörigen Debian-Release (nach) zu bauen, muss grundsätzlich funktionieren. Denn auf dem selben Weg entstehen (per sbuild) auf den Debian-Servern die Pakete, die man aus dem Repository installiert. Und die Debian-Paketierung (alles unter debian/) ist eigentlich so „streng“, dass das nicht von lokalen Gegebenheiten abhängen soll. Ausnahmen bestätigen natürlich die RegelThe Hit-Man hat geschrieben:02.03.2023 19:54:24Als erstes wäre es wichtig, so wie Du schon sagtest, Kodi einfach mal nur nativ zu bauen, an dem Rechner, an dem ich gerade sitze. Die Sourcen aus bullseye ( kodi 19.x ) lassen sich schon nicht mit den herkömmlichen Debian-Tools bauen.
Code: Alles auswählen
su -lc 'sbuild-createchroot --command-prefix=eatmydata --include=eatmydata --alias=testing bookworm /srv/chroot/bookworm-amd64-sbuild http://deb.debian.org/debian'
sbuild --no-run-lintian -d bookworm kodi
sbuild --no-run-lintian -d bookworm --host=armhf kodi
Was du hier versuchst, ist ja nichts anderes als ein Backport. Der kann wie weiter oben schon angedeutet an nicht verfügbaren Abhängigkeiten scheitern.The Hit-Man hat geschrieben:02.03.2023 19:54:24Die Version die man aus den Sourcen von bullseye oder testing bekommt, lassen sich auf dem normalen Weg mit den Debian-Tools nicht bauen. Egal ob sbuild dh build oder debuild -b -uc -us. Dort bricht der Bauvorgang immer ab ... Müßte noch mal genau nachschauen, warum das so war.
Code: Alles auswählen
--extra-repository 'deb http://deb.debian.org/debian bullseye-backports main'
Werden die Änderungen tatsächlich rückgängig gemacht oder nur ignoriert? Als Hinweis falls letzteres: Wenn du Quellcode aus dem aktuellen, lokalen Ordner mit sbuild bauen willst, darfst du am Ende nicht den Paketnamen angeben, also einfach so:Denn meine Änderungen in der rules Datei werden immer irgendwie überschrieben.
Code: Alles auswählen
~/kodi-20.0+dfsg$ sbuild --no-run-lintian
Code: Alles auswählen
sbuild --no-run-lintian -d bullseye http://deb.debian.org/debian/pool/main/k/kodi/kodi_20.0+dfsg-2.dsc
Hatte ich auch gemerkt und mir dann auch noch das Paket gebaut. Aus dem Grund wollte ich ja gerne wissen ob man selbst gebaute Pakete in die chroot mit einfügen kann. Dann wäre diese Abhängigkeit ja schon mal raus?Kodi 20 aus Bookworm hängt zum Bauen zum Beispiel neuerdings von Debianlibhowardhinnant-date-dev ab. Das gibt es für Bullseye bisher nur über die Backports. Du bräuchtest zum Bauen und evtl. auch späteren Installieren von Kodi 20 also die Bullseye-Backports.
Genau ... es sollte einfach ein Backport werden. Wenn jetzt allerdings Kodi 20 mal in die Backports von bullseye kommen sollte, macht es ja keinen Sinn selbst ein Backport zu erstellen.Was du hier versuchst, ist ja nichts anderes als ein Backport. Der kann wie weiter oben schon angedeutet an nicht verfügbaren Abhängigkeiten scheitern.
Die Git Version, braucht bei mir auch nur 20 Minuten ( d.h. ja auch das Cross-Compiling ). Über qemu dauert es fast Tage.und einer guten halben Stunde Warten anschließend alle erwarteten Pakete. Für Kodi 20 und unter Bookworm gebaut dann halt. Vielleicht wären die ja sogar unter Bullseye installierbar, wenn du die Bullseye-Backports hinzufügst (Grund siehe unten)?
Wollte bei stable bleiben weil es ja ordentlich läuft und ich nicht ganz so oft updaten brauche. Außerdem habe ich auf einem uralt Rechner noch diesen komischen alten Nvidia-Treiber drauf, der mich stunden gekostet hatte zu installieren. Allerdings hätte ich auch immer ein Backup. Auf dem Raspberry sah das noch anderes aus. Testing läßt sich installieren aber das Kodi rennt dann echt langsam, weil nur die MesaTreiber genutzt werden und nicht dessen nativen Chip. Das war der große Grund mal ein Backport zu bauen.Der Vorschlag klingt für mich zwar meist nach dem-Problem-ausweichen aber: Schon auf Bookworm, das aktuelle Testing, umzusteigen, ist keine Möglichkeit für dich? Damit würdest du dir einige Bastelei sparen, die, wenn du Pech hast, sogar umsonst sein kann.