Firefox-esr für armhf cross-kompilieren scheitert

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
jedi23
Beiträge: 11
Registriert: 27.04.2023 19:51:51

Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von jedi23 » 27.04.2023 19:59:28

Ich versuche firefox-esr 102.10.0 aus dem DebianRepository für armhf unter Debian 10 Buster zu kompilieren. Alle erforderlichen Tools wie nodejs, clang und rustup sowie die erforderlichen deps und libs sind installiert und alle Parameter für die Cross-Kompilierung sind korrekt (rustup target add armv7-unknown-linux-gnueabihf, ac_add_options --target=arm-linux-gnueabihf in debian/firefox-esr.mozconfig); das BuildSystem tut zunächst seine Arbeit. Allerdings wird nach einer Weile mit diesen Fehlermeldungen abgebrochen:

Code: Alles auswählen

make[6]: Leaving directory '/home/jedi23/firefox-esr-102.10.0esr/build-browser/accessible/atk'
make[5]: Leaving directory '/home/jedi23/firefox-esr-102.10.0esr/build-browser'
make[4]: *** [/home/jedi23/firefox-esr-102.10.0esr/config/recurse.mk:34: compile] Error 2
make[4]: Leaving directory '/home/jedi23/firefox-esr-102.10.0esr/build-browser'
make[3]: *** [/home/jedi23/firefox-esr-102.10.0esr/config/rules.mk:361: default] Error 2
make[3]: Leaving directory '/home/jedi23/firefox-esr-102.10.0esr/build-browser'
dh_auto_build: cd build-browser && make -j2 _LEAKTEST_FILES=leaktest.py returned exit code 2
make[2]: *** [debian/rules:258: stamps/build-browser] Error 2
make[2]: Leaving directory '/home/jedi23/firefox-esr-102.10.0esr'
make[1]: *** [debian/rules:352: build-arch] Error 2
make[1]: Leaving directory '/home/jedi23/firefox-esr-102.10.0esr'
make: *** [debian/rules:352: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
Ein Versuch mit ./mach build zu kompilieren scheitert ebenso mit dem Verweis auf die selben Zeilen in recurse.mk und rules.mk. Zusätzlich wird hier noch auf die client.mk verwiesen:

Code: Alles auswählen

27:24.96 make[2]: *** [/home/jedi23/firefox-esr-102.10.0esr/config/recurse.mk:34: compile] Error 2
27:24.96 make[1]: *** [/home/jedi23/firefox-esr-102.10.0esr/config/rules.mk:361: default] Error 2
27:24.97 make: *** [client.mk:63: build] Error 2
27:24.97 0 compiler warnings present.
27:25.13 Notification center failed: Install notify-send (usually part of the libnotify package) to get a notification when the build finishes.
Leider werde ich daraus nicht schlau, wo genau das Problem liegt.
Hat jemand eine Ahnung was da schief läuft oder kann mir Hinweise zur Fehlersuche geben?
Zuletzt geändert von jedi23 am 27.04.2023 20:50:31, insgesamt 1-mal geändert.

tobo
Beiträge: 2346
Registriert: 10.12.2008 10:51:41

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von tobo » 27.04.2023 20:20:21

Unabhängig von deiner Frage: Das das Teil für Buster/armhf bereits kompiliert vorliegt, das weißt du?
https://packages.debian.org/buster/armh ... r/download

jedi23
Beiträge: 11
Registriert: 27.04.2023 19:51:51

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von jedi23 » 27.04.2023 20:22:50

tobo hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 20:20:21
Unabhängig von deiner Frage: Das das Teil für Buster/armhf bereits kompiliert vorliegt, das weißt du?
https://packages.debian.org/buster/armh ... r/download
Na klar :THX:

Da kann man ja auch den PC-Selbstbauer fragen, ob er eigentlich weiß, dass es schon fertig gebaute PC's zu kaufen gibt :lol: :wink:
Zuletzt geändert von jedi23 am 27.04.2023 20:54:32, insgesamt 1-mal geändert.

Benutzeravatar
cosinus
Beiträge: 4202
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von cosinus » 27.04.2023 20:54:00

jedi23 hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 20:22:50
Na klar :THX:
Und aus welchem Grund tust du es für dich nochmal?

jedi23
Beiträge: 11
Registriert: 27.04.2023 19:51:51

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von jedi23 » 27.04.2023 20:59:23

cosinus hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 20:54:00
jedi23 hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 20:22:50
Na klar :THX:
Und aus welchem Grund tust du es für dich nochmal?
Wenn der Build gelingt, möchte ich ein paar CPU-spezifische Optimierungen versuchen. Also compiler flags für eine konkrete ARM CPU um dann die Perforance des Builds zu vergleichen. Außerdem kann man in der mozconfig noch viele weitere Sachen tweaken. Ein selbstgebauter Build hat also durchaus Vorteile. Nur seltsam, dass ich das in diesem Forum hier explizit erwähnen muss...

Benutzeravatar
cosinus
Beiträge: 4202
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von cosinus » 27.04.2023 21:01:05

jedi23 hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 20:59:23
Nur seltsam, dass ich das in diesem Forum hier explizit erwähnen muss...
Warum? Weil das hier ein Hellseherforum ist? :roll:
Debian zeichnet sich eben durch das einfache Installieren der Pakete aus. Und das Repo ist enorm.

jedi23
Beiträge: 11
Registriert: 27.04.2023 19:51:51

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von jedi23 » 27.04.2023 21:11:01

Da ich es ja hier im Bereich "Fortgeschrittene Themen" gepostet habe, dachte ich, dass nicht alles hinterfragt wird :wink:

Aber du hast natürlich auch recht, keiner kann Hellsehen. Und das Repo ist enorm, auch deswegen hat Debian auch viele geschätzte Nutzer :)

So, nachdem das jetzt geklärt ist, würde ich mich freuen, auch Feedback zum Thema zu erhalten.

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von JTH » 27.04.2023 21:23:47

Mit einem Crossbuild der Rust involviert kenn ich mich jetzt nicht aus, aber mal schauen. Erstmal noch ein paar Nachfragen:

jedi23 hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 19:59:28
Alle erforderlichen Tools wie nodejs, clang und rustup sowie die erforderlichen deps und libs sind installiert
Also per apt build-dep oder ähnlichem (sind also vollständig)?

jedi23 hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 19:59:28
zu kompilieren. […]

Ein Versuch mit ./mach build zu kompilieren scheitert ebenso […]
Eigentlich versuchst du aber schon, wies die Logs vermuten lassen, mit dpkg-buildpackage oder ähnlichem zu bauen?

jedi23 hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 19:59:28
Allerdings wird nach einer Weile mit diesen Fehlermeldungen abgebrochen:

Code: Alles auswählen

make[6]: Leaving directory '/home/jedi23/firefox-esr-102.10.0esr/build-browser/accessible/atk'
make[5]: Leaving directory '/home/jedi23/firefox-esr-102.10.0esr/build-browser'
make[4]: *** [/home/jedi23/firefox-esr-102.10.0esr/config/recurse.mk:34: compile] Error 2
[…]
Die Zeilen enthalten nichts aussagekräftiges mehr. Das ist nur noch die Stelle, an der make aufgibt. Eigentliche Hinweise auf die Probleme findest du vor den geposteten Zeilen. Meist hilfts, da mal nach ERR, error, fatal oder ähnlichem case-insenitiv zu suchen. Wenn du dort nichts findest, könntest du den ganzen Buildlog hier nach Nopaste packen und hier verlinken.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
cosinus
Beiträge: 4202
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von cosinus » 27.04.2023 21:52:35

jedi23 hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 21:11:01
So, nachdem das jetzt geklärt ist, würde ich mich freuen, auch Feedback zum Thema zu erhalten.
Gestatte mir trotzdem eine Nachfrage: willst du jetzt bei jedem noch so kleinen Update jedes Mal den Firefox neu bauen?

jedi23
Beiträge: 11
Registriert: 27.04.2023 19:51:51

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von jedi23 » 27.04.2023 22:21:31

@JTH
Danke für dein Feedback. Ja ganz genau, ich versuche mit dpkg-buildpackage zu bauen. Mit apt build-dep --armhf habe die fehlenden dependencies geprüft und so weit möglich installiert, aber der Firefox ist da ein Spezialfall. Soweit ich informiert bin, ist es nicht möglich, nativ unter arm(32bit) zu kompilieren und es ist wohl normal, dass im Falle eines cross-builds einiges noch als unmet dependencies angezeigt wird. Diese Elemente sind aber trotzdem vorhanden, also z.B. mittels curl installiert (rustup mit cargo, nodejs).
Schließlich prüft der Compiler im ersten Schritt ja noch mal alles und würde sonst melden wenn etwas fehlt. Ich kann mich natürlich auch irren, aber so habe ich das verstanden.

Und das ist ja genau auch mein Problem, dass in den Zeilen darüber neben den üblichen Compiler-Warnungen keine error oder fatal Meldungen vorliegen, aber gerne kann ich den den Buildlog auch mal hier posten.
Zuletzt geändert von jedi23 am 27.04.2023 23:49:06, insgesamt 4-mal geändert.

jedi23
Beiträge: 11
Registriert: 27.04.2023 19:51:51

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von jedi23 » 27.04.2023 22:27:19

cosinus hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 21:52:35
jedi23 hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 21:11:01
So, nachdem das jetzt geklärt ist, würde ich mich freuen, auch Feedback zum Thema zu erhalten.
Gestatte mir trotzdem eine Nachfrage: willst du jetzt bei jedem noch so kleinen Update jedes Mal den Firefox neu bauen?
Wenn ich so einen etwas besser performenden Browser auf meinen embedded device bekäme, würde ich das ca. 1x im Monat sogar tun :mrgreen:
Öfter bekommen die ESR Versionen ja keine Updates.

Benutzeravatar
cosinus
Beiträge: 4202
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von cosinus » 27.04.2023 22:31:44

jedi23 hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 22:27:19
Wenn ich so einen etwas besser performenden Browser auf meinen embedded device bekäme, würde ich das ca. 1x im Monat sogar tun :mrgreen:
Du hast dann aber den entscheidenen Vorteil eben nicht mehr: Autoupdate.
Denn darüber kommt ein vorkompilierter Browser rein. Willst du echt alle paar Wochen manuell selbst kompilieren?

jedi23
Beiträge: 11
Registriert: 27.04.2023 19:51:51

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von jedi23 » 27.04.2023 22:39:00

cosinus hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 22:31:44
Du hast dann aber den entscheidenen Vorteil eben nicht mehr: Autoupdate.
Denn darüber kommt ein vorkompilierter Browser rein. Willst du echt alle paar Wochen manuell selbst kompilieren?
Weißt du was ein fork ist und warum es sowas gibt? Wenn alle so denken würden wie du, gäbe es die gar nicht und es würde auch nur eine einzige Linux Distribution geben.

Benutzeravatar
cosinus
Beiträge: 4202
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von cosinus » 27.04.2023 22:42:54

Was hat das mit einem fork zu tun?

jedi23
Beiträge: 11
Registriert: 27.04.2023 19:51:51

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von jedi23 » 27.04.2023 23:12:29

cosinus hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 22:42:54
Was hat das mit einem fork zu tun?
Soviel wie der Samen mit der Pflanze.
Man kann (oder sollte) nur etwas forken, wenn man das Hauptprojekt versteht. Wenn das gelingt, kann ich allmählich weitere Änderungen und tweaks vornehmen und irgendwann vielleicht einen offiziellen Fork (für eine kleine Nutzerschaft eines seltenen ARM Kleincomputers) daraus machen.
Zuletzt geändert von jedi23 am 27.04.2023 23:50:24, insgesamt 2-mal geändert.

Benutzeravatar
cosinus
Beiträge: 4202
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von cosinus » 27.04.2023 23:18:45

Gut ich belasse es jetzt dabei. Ich habe so halbwegs deine Absichten verstanden, ich wollte nur drauf hinweisen, was du für Nachteile hast, wenn du alles selbst bauen willst.

Benutzeravatar
MSfree
Beiträge: 11605
Registriert: 25.09.2007 19:59:30

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von MSfree » 28.04.2023 10:36:17

jedi23 hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 22:21:31
Soweit ich informiert bin, ist es nicht möglich, nativ unter arm(32bit) zu kompilieren
Ich wüßte nicht, was dem im Wege stehen sollte, außer, daß ein Build auf einem ARM einfach sehr viel länger benötigt.

Und ja, der ARM(e) Firefox aus dem Debianpaket ist auf einem Raspberry ziemlich lahm. Ich glaube aber kaum, daß man mit ein paar CPU-Tweaks viel rauskitzeln kann, sonst hätte das Debianteam das schon längst gemacht.

jedi23
Beiträge: 11
Registriert: 27.04.2023 19:51:51

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von jedi23 » 28.04.2023 11:01:35

Es geht hier nicht um den Raspberry. Der letzte mit armv7 hatte ein Cortex A7 SoC. Ich benutze ein SoC mit Cortex A15. Hier läuft der Firefox schon ganz passabel, aber schneller ist ja immer besser :mrgreen:
Und wie schon erwähnt, will ich mich an einen möglichen Fork mit weiteren Optimierungen für diese CPU herantasten.

Tatsächlich habe ich meinen ersten Kompilierungsversuch zunächst nativ unter armv7 gestartet. Es kam die Meldung direkt vom Build System, dass unter armv7 nicht kompiliert werden kann und man Cross-Kompilierung nutzen muss!
Aber vielleicht ist das ja doch irgendwie möglich?
Auf jeden Fall sollte das eh nur ein erster Versuch sein, da natürlich die ultra langsame Kompilierdauer kaum hinnehmbar ist. Also auch wenn es irgendwie gehen sollte, hätte ich schon gerne eine Lösung für's Cross-build.

Und noch ein paar Erläuertungen zur Cross-Compile Problematik beim Firefox:
Da ich vorher noch nie für ein anderes Target kompiliert habe, kenne ich es prinzipiell so, dass alle builddeps vorher installiert werden müssen.
Allerdings meldet apt-build z.B., dass libclang-dev:armhf fehlt. Dieses kann aber nicht mit anderen arch-Versionen koexistieren denn bei einer Installation will apt die eigentlich für das Host System benötigte libclang-dev:amd64 deinstallieren.
Ich bin der Meinung, dass es im Falle des Firefox aber so in Ordnung ist, schließlich meldet dpkg-buildpackage ja keine fehlenden Pakete und übergibt brav die Kompilierarbeit an Clang. Eine genaue Auskunft von jemandem mit Cross-Compile Erfährung ob meine Vermutung richtig liegt, wäre schön.

Es gelingt mir auch, das Paket für amd64 zu kompilieren, das geht auch recht fix als sogenannter Artifact Build. Diesen Artifact Build, wo große Teile beim build vorkompiliert hinzugefügt werden, kann ich bei meinem Vorhaben leider nicht nutzen, da ich ja mittels der compiler flags den gesamten Browser optimieren möchte.
Zuletzt geändert von jedi23 am 28.04.2023 16:01:04, insgesamt 5-mal geändert.

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von JTH » 28.04.2023 11:46:48

jedi23 hat geschrieben: ↑ zum Beitrag ↑
27.04.2023 22:21:31
aber gerne kann ich den den Buildlog auch mal hier posten.
jedi23 hat geschrieben: ↑ zum Beitrag ↑
28.04.2023 11:01:35
Eine genaue Auskunft von jemandem mit Cross-Compile Erfährung ob meine Vermutung richtig liegt, wäre schön.
Solang sich da keiner findet, wär deine beste Chance, nen weiterführenden Hinweis oder konkrete Hilfe zu bekommen, nochmal genauer zu zeigen, was (laut Log) passiert. Beschreibungen in Prosa sind da, ohne eine erste Vermutung woher der Fehlschlag kommen könnte, wahrscheinlich nicht so zielführend.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
MSfree
Beiträge: 11605
Registriert: 25.09.2007 19:59:30

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von MSfree » 28.04.2023 12:06:34

jedi23 hat geschrieben: ↑ zum Beitrag ↑
28.04.2023 11:01:35
Es geht hier nicht um den Raspberry.
Das hatte ich bereits vermutet. Der Raspi ist aber nunmal der einzige ARM, der mir zur Verfügung steht, und damit habe ich bisher noch alles compilieren können, was ich mir compilieren wollte. Rust gehörte aber bisher nicht dazu.
Tatsächlich habe ich meinen ersten Kompilierungsversuch zunächst nativ unter armv7 gestartet. Es kam die Meldung direkt von der toolchain, genauer gesagt cargo, dass unter armv7 nicht kompiliert werden kann und man Cross-Kompilierung nutzen muss!
Cargo hat mit Rust zu tun. Da bin ich leider überfragt, warum das unter ARM nicht laufen soll.

Vielleicht hilft das hier weiter:
https://rust-lang.github.io/rustup/cros ... ation.html

Benutzeravatar
schorsch_76
Beiträge: 2601
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von schorsch_76 » 28.04.2023 17:55:40

Firefox ist leider ein furchtbares Biest zum bauen. Ich würde mir auf dem x86_64 PC einen pbuilder/cowbuilder aufsetzen und es dort drin bauen. Das zieht alles rein.

https://www.debian.org/doc/manuals/deve ... reference/
https://www.debian.org/doc/manuals/deve ... e-builders
https://pbuilder-team.pages.debian.net/pbuilder/
https://wiki.debian.org/cowbuilder

Viel Erfolg!

Edit:
https://wiki.debian.org/sbuild

Das wird offiziell genutzt.

jedi23
Beiträge: 11
Registriert: 27.04.2023 19:51:51

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von jedi23 » 29.04.2023 06:35:45

Vielen Dank für die Links!

Den Weg über pbuilder hatte ich auch schon Versucht, aber schnell aufgegeben, da ich die Fehlermeldung "Cross building is possible only with the APT dependency resolver" erhalten habe und mit der hier
(https://wiki.debian.org/CrossCompiling# ... h_pbuilder) beschriebenen Maßnahme auch nicht beheben konnte.

Da steht zwar, was man bei dieser Fehlermeldung tun muss, aber ich habe keine ~/.pbuilderrc (pbuilder create hatte sie auch nicht erstellt).

Ich habe ~/.pbuilderrc manuell erstellt und die Zeile

Code: Alles auswählen

PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-apt"
eingefügt.

Trotzdem bleibt der Fehler. Jemand eine Idee wie ich das Problem beheben kann?

Benutzeravatar
schorsch_76
Beiträge: 2601
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von schorsch_76 » 29.04.2023 08:58:03

Wenn ich firefox-esr-102 für buster armhf mit sbuild bauen will kommt diese Fehlermeldung:

Code: Alles auswählen

    missing:
     pkg:
      package: sbuild-build-depends-main-dummy
      version: 0.invalid.0
      architecture: armhf
      unsat-dependency: libnspr4-dev:armhf (>= 2:4.32~)

Buster 4.20
https://packages.debian.org/search?suit ... bnspr4-dev

Bullseye: 4.29
https://packages.debian.org/search?suit ... bnspr4-dev

Bookworm: 4.35
https://packages.debian.org/search?suit ... bnspr4-dev

In den Backports ist es nicht enthalten. Damit wird das vermutlich nichts mit deinem Unterfangen es für Buster zu bauen

NoPaste-Eintrag41899

Wie baue ich es für bookworm?
Wie im Wiki beschrieben sbuild installieren.

Setup chroot:

Code: Alles auswählen

mmdebstrap --variant=buildd --arch=armhf bookworm ~/.cache/sbuild/bookworm-armhf.tar.xz
sudo sbuild-createchroot --arch=armhf --include=eatmydata,ccache bookworm /srv/chroot/bookworm-armhf-sbuild http://127.0.0.1:3142/ftp.de.debian.org/debian

Code: Alles auswählen

mkdir sbuild-ff
cd sbuild-ff
apt-get source firefox-esr
cd firefox-esr-102.10.0esr
sbuild --arch=armhf --dist=armhf
Unter x86_64 in der armhf chroot bekomme ich diesen Fehler:

Code: Alles auswählen

touch stamps/prepare-configure
created virtual environment CPython3.11.2.final.0-32 in 179ms
  creator CPython3Posix(dest=/<<PKGBUILDDIR>>/debian/objdir/_virtualenvs/common, clear=False, no_vcs_ignore=False, global=False)
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator
Creating global state directory from environment variable: /<<PKGBUILDDIR>>/debian/.mozbuild
debian/rules:236: *** Unfortunately cannot build on armhf. Try a 64-bits kernel.  Stop.
Naja, qemu-user-static gibt natürlich vor eine 32bit CPU zu sein .... Grübel: Wie baut das dann Debian?

Leicht Offtopic:
Vor einiger Zeit hatte Debian Probleme den aktuellen FF auf bullseye zu bekommen.
Da du den SBC als Surfstation nutzen willst würde ich auf bullseye->bookworm updaten. buster ist in 2 Monaten oldoldstable und nicht mehr unterstützt.

EDIT: Komplettes Buildlog buster + bookworm
NoPaste-Eintrag41900

EDIT2:
Ihh .. debian/rules

Code: Alles auswählen

stamps/configure-$(PRODUCT):: stamps/prepare-configure debian/$($(PRODUCT)).mozconfig
ifeq (armhf,$(DEB_BUILD_ARCH))
ifeq (,$(shell grep -l cpu:type:aarch64 /sys/devices/system/cpu/modalias))
	# There is not enough memory in armhf userspace with a 32-bits kernel.
	$(error Unfortunately cannot build on armhf. Try a 64-bits kernel)
endif
endif
Das bedeutet wohl es muss auf aarch64 für armhf gebaut werden.

Benutzeravatar
schorsch_76
Beiträge: 2601
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von schorsch_76 » 29.04.2023 10:50:47

Hmm ..

https://buildd.debian.org/status/logs.p ... r-security
https://www.debian.org/devel/buildd/

Dann kann der FF 102 doch für armhf gebaut werden.....

https://buildd.debian.org/status/logs.p ... arch=armhf

"Maybe Successful"
https://buildd.debian.org/status/fetch. ... 9115&raw=0

Man sieht er wird auf einer arm64 Maschine gebaut. Mit sbuild --host=arm64 --build=armhf konnte ich das nicht zum bauen bringen.

Benutzeravatar
schorsch_76
Beiträge: 2601
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Firefox-esr für armhf cross-kompilieren scheitert

Beitrag von schorsch_76 » 29.04.2023 19:05:58

Auf einem Raspi4 mit Debian/bookworm (arm64) kann ich den FF jetzt bauen für buster/armhf.

buster.sources.list

Code: Alles auswählen

deb http://127.0.0.1:3142/ftp.de.debian.org/debian buster main
deb-src http://127.0.0.1:3142/ftp.de.debian.org/debian buster main

deb http://127.0.0.1:3142/ftp.de.debian.org/debian buster-updates main
deb-src http://127.0.0.1:3142/ftp.de.debian.org/debian buster-updates main

deb http://127.0.0.1:3142/security.debian.org/debian-security buster/updates main
deb-src http://127.0.0.1:3142/security.debian.org/debian-security buster/updates main
bullseye.sources.list

Code: Alles auswählen

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian     bullseye main
deb-src  http://127.0.0.1:3142/ftp.de.debian.org/debian bullseye main

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian-security            bullseye-security main
deb-src  http://127.0.0.1:3142/ftp.de.debian.org/debian-security        bullseye-security main

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian     bullseye-updates main
deb-src  http://127.0.0.1:3142/ftp.de.debian.org/debian bullseye-updates main

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian     bullseye-proposed-updates main
deb-src  http://127.0.0.1:3142/ftp.de.debian.org/debian bullseye-proposed-updates main

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian     bullseye-backports main
deb-src  http://127.0.0.1:3142/ftp.de.debian.org/debian     bullseye-backports main

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian-debug/ bullseye-debug main
# for security updates
deb  http://127.0.0.1:3142/ftp.de.debian.org/debian-debug/ bullseye-proposed-updates-debug main

bookworm.sources.list

Code: Alles auswählen

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian     bookworm main
deb-src  http://127.0.0.1:3142/ftp.de.debian.org/debian bookworm main

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian-security            bookworm-security main
deb-src  http://127.0.0.1:3142/ftp.de.debian.org/debian-security        bookworm-security main

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian     bookworm-updates main
deb-src  http://127.0.0.1:3142/ftp.de.debian.org/debian bookworm-updates main

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian     bookworm-proposed-updates main
deb-src  http://127.0.0.1:3142/ftp.de.debian.org/debian bookworm-proposed-updates main

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian     bookworm-backports main
deb-src  http://127.0.0.1:3142/ftp.de.debian.org/debian     bookworm-backports main

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian-debug/ bookworm-debug main
# for security updates
deb  http://127.0.0.1:3142/ftp.de.debian.org/debian-debug/ bookworm-proposed-updates-debug main

unstable.sources.list

Code: Alles auswählen

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian     unstable main
deb-src  http://127.0.0.1:3142/ftp.de.debian.org/debian unstable main

deb  http://127.0.0.1:3142/ftp.de.debian.org/debian-debug/ unstable-debug main

create-chroots.sh

Code: Alles auswählen

#!/bin/bash
DISTS="buster bullseye bookworm unstable"
ARCHES="armhf arm64"

for A in $ARCHES; do
        for D in $DISTS; do
                TARGET="${D}-${A}"
                CHROOTNAME="${TARGET}-sbuild"

                echo "--------------------------------------------------------"
                echo "Target: ${TARGET}"
                echo "Chroot: ${CHROOTNAME}"
                echo "--------------------------------------------------------"
                cat ${D}.sources.list
                echo "--------------------------------------------------------"
                rm -Rf ${TARGET}.tar
                echo "mmdebstrap --variant=buildd --arch=$A $D ~/.cache/sbuild/${TARGET}.tar ${D}.sources.list"
                mmdebstrap --variant=buildd --arch=$A $D ~/.cache/sbuild/${TARGET}.tar ${D}.sources.list

                echo "sudo sbuild-createchroot --arch=${A} --include=eatmydata,ccache ${D} /srv/chroot/${CHROOTNAME} http://127.0.0.1:3142/ftp.de.debian.org/debian"
                sudo rm -Rf /srv/chroot/${CHROOTNAME}
                sudo rm -Rf /etc/schroot/chroot.d/${CHROOTNAME}-*

                sudo sbuild-createchroot --arch=${A} --include=eatmydata,ccache ${D} /srv/chroot/${CHROOTNAME} http://127.0.0.1:3142/ftp.de.debian.org/debian

                sudo cp ${D}.sources.list /srv/chroot/${CHROOTNAME}/etc/apt/sources.list
                sudo sbuild-update -udcar --arch=${A} ${CHROOTNAME}
        done
done

Damit kann ich dann die 8 Chroots erstellen wie im Wiki beschrieben und für alle Varianten den FF bauen. Wichtig war das in den chroots die richtige sources.list eingespielt ist.

Code: Alles auswählen

sbuild --arch=armhf --dist=buster firefox-esr

Antworten