JamVM Fehler beim Erstellen mit Freetz Trunk 12562 für Fritzbox 7490

aga

Neuer User
Mitglied seit
31 Jan 2008
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,
ich versuche mit Freetz Trunk 12562 eine neue Firmware zu erstellen. Das make bricht mit folgender Meldung ab:

ERROR: The following commands/packages required for building the classpath-package are missing on your system: javac
Hint: on Debian-like systems fastjar is provided by the package of the same name, whereas javac (Java compiler) is provided by many packages. You could use either of them interchangeably.

Ich habe mit apt-get install versucht javac, java, jamvm zu installieren - leider findet es kein java.

wie genau heisst das java paket?

mfg
Axel
 
ERROR: The following commands/packages required for building the classpath-package are missing on your system: javac
Hint: on Debian-like systems fastjar is provided by the package of the same name, whereas javac (Java compiler) is provided by many packages. You could use either of them interchangeably.
Ich habe es selbst nicht probiert, also alles nur Theorie (samt Begründung):

Nach einem Blick in das Makefile für die Java-Bibliothek gnu-classpath ist dort 'javac' als Voraussetzung definiert (BUILD_PREREQ). Es gibt aber gar kein entsprechendes Paket, das sollte auch unnötig sein, da ja der javac Bytecode erzeugt und dieser nicht von der Plattform abhängig ist, also kein "spezieller javac" für das Zielsystem benötigt wird.

Ich habe keine Ahnung, wie man jetzt im Freetz-Build-Prozess auf die Existenz eines lokal (im "Wirtssystem") installierten javac testen könnte oder testet, aber ein beherztes Editieren des Makefiles für gnu-classpath (make/classpath/classpath-mk) und das Entfernen von javac aus "BUILD_PREREQ" könnte auch schon helfen, wenn auf dem System ein 'javac' installiert ist.

Wenn das nicht der Fall ist, sollte in 'java-common' oder 'java-wrapper' ein entsprechendes Programm zu finden sein (unter der Annahme, daß Du das Ubuntu einer Freetz-VM oder einer ähnlichen aufgebauten Distribution (wenn Du apt-get verwendest) meinst).

Nochmal: graue Theorie ... und nur möglich, wenn die Annahme stimmt, daß der vom javac erzeugte Bytecode plattformunabhängig ist.

Wenn das klappt, solltest Du das noch im Trac melden ... da stimmt m.E. etwas in classpath.mk nicht oder vielleicht ist das ja auch irgendwie beim JamVM-Paket unter freetz.org dokumentiert ?
 
Hallo

also 'java-common' oder 'java-wrapper' kann ich auch nicht per apt-get installieren.
Was kann ich noch machen?

mfg
 
Was kann ich noch machen?
Erst einmal feststellen, ob es auf dem Host nicht schon einen Java-Compiler gibt ... dazu in einer Bash ganz einfach "which javac" eingeben.

Ansonsten mal etwas zum System preisgeben ... im Moment muß man raten, was das für eines ist und welche Repositories da eingestellt sind / genutzt werden.
 
which javac gibt dies aus /usr/bin/javac

Ich nutze die die Virtualbox VM mit Freetz Trunk 12562.
 
which javac gibt dies aus /usr/bin/javac
Dann gibt es auf dem Host einen Bytecode-Compiler.

Warum der jetzt vom Make-Framework nicht als PREREQ erkannt wird, weiß ich nicht ... aber Du könntest zumindest mal probieren, den 'javac'-Eintrag aus dem Makefile zu entfernen und dann das entstehende Image testen.

Wie das geht oder gehen sollte, habe ich in #2 schon geschrieben.
 
Es wird ganz primitiv mit which geprüft. Da es bei der anderen classpath-Abhängigkeit (fastjar) klappt, wird javac wohl nicht im Pfad (gewesen) sein.
 
Danke für die Info, aber schon komisch, oder ?

In #5 gibt er ja an, daß es gefunden wurde. Vielleicht ein modifizierter Pfad während des make ?

Ich hatte das eigentlich nach meinem ersten Beitrag dann doch mal kurz mit einem eigenen Test geprüft (um mich notfalls zu korrigieren) ... und auch da ist das make am hint ausgestiegen. Bei mir war der 'javac' definitiv im Pfad.

Und gerade eben noch einmal probiert ... definitiv dasselbe Problem. 'javac' ist im Host-PATH erreichbar, make trotzdem nur bis zum Hint. Da ich ohnehin gerade dabei war, eine 7390 mit dnsmasq zu erstellen, schaue ich mal rein ... aber nicht, daß wir das jetzt doppelt machen. Wenn Du auch dran bist, schick mir bitte eine E-Mail.

EDIT:
@aga:
Ein kleinerer Fehler im Makefile ... sollte demnächst gefixt sein, einfach ab und an mal unter http://freetz.org/timeline nach einem neuen Changeset schauen oder folgenden Patch "von Hand" anwenden:
Code:
Index: make/Makefile.in
===================================================================
--- make/Makefile.in    (revision 12565)
+++ make/Makefile.in    (working copy)
@@ -543,7 +543,7 @@
        @MISSING_PREREQ=""; \
        for fv in $($(PKG)_BUILD_PREREQ); do \
                f=$$$$(echo $$$$fv | cut -d ':' -f 1); \
-               v=$$$$(echo $$$$fv | cut -d ':' -f 2 | sed -e 's,[.],[.],g'); \
+               v=$$$$(echo $$$$fv | cut -d ':' -sf 2 | sed -e 's,[.],[.],g'); \
                if ! which $$$$f >/dev/null 2>&1; then \
                        MISSING_PREREQ="$$$$MISSING_PREREQ $$$$f"; \
                elif [ -n "$$$$v" ] && ! $$$$f --version 2>&1 | grep -q "$$$$v"; then \
 
Zuletzt bearbeitet:
Hmm, haben die bei coreutils was geändert? Welche Version habt Ihr? Bei mir unter Ubuntu 14.04 funktioniert es auch ohne "-s".
 
Welche Version habt Ihr? Bei mir unter Ubuntu 14.04 funktioniert es auch ohne "-s".
Code:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-37-generic i686)

 * Documentation:  https://help.ubuntu.com/

  System information as of Tue Oct 14 23:21:25 CEST 2014
...
freetz@freetz:~$ cut --version
cut (GNU coreutils) 8.21
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David M. Ihnat, David MacKenzie, and Jim Meyering.
freetz@freetz:~$ echo fastjar | cut -d ':' -f 1
fastjar
freetz@freetz:~$ echo fastjar | cut -d ':' -f 2
fastjar
freetz@freetz:~$ echo fastjar | cut -d ':' -sf 2
freetz@freetz:~$
 
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.2.0-65-generic i686)
...
freetz@freetz-linux:~$ echo fastjar | cut -d ':' -f 1
fastjar
freetz@freetz-linux:~$ echo fastjar | cut -d ':' -f 2
fastjar
freetz@freetz-linux:~$ echo fastjar | cut -d ':' -sf 2
freetz@freetz-linux:~$
 
Das erstellen des Images hat mit beiden Varianten funktioniert. Hab es geflasht und jamvm ist drauf und läuft.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,840
Beiträge
2,219,268
Mitglieder
371,543
Neuestes Mitglied
Brainbanger
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.