xenocara: "make build" bricht mit Fehlermeldung ab

nihonto

Well-Known Member
Hiho,

aufgrund von security fix 006 vom 08. bzw.10. Februar wollte ich mal xenocara für OBSD 4.2 neu bauen. Leider bricht das aber bei "make build" mit diesem Fehler ab:

Code:
/usr/bin/ld: warning: libX11.so.10.0, needed by /usr/X11R6/lib/libXpm.so.8.0, may conflict with libX11.so.11.1
/usr/X11R6/lib/libX11.so.11.1: undefined reference to `recalloc'
collect2: ld returned 1 exit status
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm/obj/sxpm (line 306 of Makefile).
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm/obj (line 338 of Makefile).
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm/obj (line 226 of Makefile).
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm (line 74 of /usr/X11R6/share/mk/bsd.xorg.mk).
*** Error code 1

Stop in /usr/src/xenocara/lib.
*** Error code 1

Stop in /usr/src/xenocara.

Bin dabei wie folgt vorgegangen (s. http://www.openbsd.org/faq/de/faq5.html#Xbld):

1. Quellen ziehen

$ cd /usr/src
$ cvs -qdanoncvs@anoncvs.de.openbsd.org:/cvs checkout -P xenocara

2. Xenocara übersetzen

# cd /usr/src/xenocara
# make bootstrap
# make obj
# make build

Tja, und beim "make build" kam dann die oben angeführte Fehlermeldung.

Was hab' ich falsch gemacht:confused:
 
Wie ich sehe schein es, dass du die Sources vom Developerzweig gezogen hast.
Bin noch Neu bei OpenBSD und will keine Verwirrung stiften :
Code:
  # export CVSROOT=anoncvs@anoncvs.example.org:/cvs
    # cd /usr
    # cvs -d$CVSROOT checkout -rOPENBSD_4_2 -P src ports
    # cd /usr/src
    # cvs -d$CVSROOT checkout -rOPENBSD_4_2 -P xenocara

CVS muss wissen, welche Version von OpenBSD es ist.

Sonst lade src/sys src und xenocara nochmal als 4.2er per cvs.
Baue den Kernel, die Src und anschließend das Grafiksystem nochmal neu. (Wegen den Abhängigkeiten)
 
... hmmm, kann gut sein, dass Du recht hast. War mir auch schon komisch vorgekommen, dass da nichts weiter zu -stable oder -current angegeben war. Aber weil in der FAQ nichts zu den Flavors gesagt wurde, dachte ich, dass es so schon passen wird - war wohl 'ne Fehlannahme:).

@ kommandofrosch

kannste mir noch sagen, wo Du das gefunden hast?
 
http://www.openbsd.org/de/stable.html
http://www.openbsd.org/de/anoncvs.html
Das Oben ist der Link zu stabilen Versionen. Der Zweite Link behandelt CVS und die einzelnen Trees.
Zitat :
Code:
       # cd /usr; cvs checkout -P src

Das oben beschriebene wird einen ,checkout' mit dem current-Source-Tree machen. Viele von euch werden aber nur die ,patch branch'-Quellen wollen. Um eben nur den Quelltext des ,patch branchs' zu bekommen, musst du dem Kommando ein ,Tag' hinzufügen. Beispiel:

       # cd /usr; cvs checkout -P -rOPENBSD_4_2 src

Oder OPENBSD_4_1 für 4.1 etc.

Der OPENBSD_4_2-Tag enthält die Release-Quellen und bereits eingefügte Patches.
PS:
Bin neu bei BSD, bin darüber gestolpert um überhaupt Ansatzweise mich an das OpenBSD gewöhnen zu können.
Das mit den Sources Rebuilden ist eine gute Sache, besser als bei LFS Linux, Gentoo oder T2 SDE
 
Okay, das kenne ich auch:). Verstehe nicht, wieso kein Hinweis dazu bei der Anleitung zum Xenocara-Bau steht?

Ich versuch's nochmal:D!
 
... funktioniert auch nicht:mad:!

Habe jetzt in /usr/src

Code:
cvs -qd anoncvs@anoncvs.ca.openbsd.org:/cvs get -rOPENBSD_4_2 -P xenocara

... Stunden später ...

cd /usr/src/xenocara und dort

Code:
make bootstrap
make obj
make build

wie es hier erklärt ist: http://www.openbsd.org/faq/de/faq5.html#Xbld

Aber wieder endet das "make build" mit diesem Fehler:

Code:
/usr/bin/ld: warning: libX11.so.10.0, needed by /usr/X11R6/lib/libXpm.so.8.0, may conflict with libX11.so.11.1
/usr/X11R6/lib/libX11.so.11.1: undefined reference to `recalloc'
collect2: ld returned 1 exit status
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm/obj/sxpm (line 300 of Makefile).
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm/obj (line 334 of Makefile).
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm/obj (line 222 of Makefile).
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm (line 72 of /usr/X11R6/share/mk/bsd.xorg.mk).
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm (line 133 of /usr/X11R6/share/mk/bsd.xorg.mk).
*** Error code 1

Stop in /usr/src/xenocara/lib.
*** Error code 1

Stop in /usr/src/xenocara.

Un' nu;'(:confused:
 
Code:
cvs -qd anoncvs@anoncvs.ca.openbsd.org:/cvs get -rOPENBSD_4_2 -P xenocara

... Stunden später ...

Wenn Du es schon einmal ausgecheckt hast, kannst Du mit cvs update arbeiten. Spart Zeit und Traffic.

Aber wieder endet das "make build" mit diesem Fehler:

Code:
/usr/bin/ld: warning: libX11.so.10.0, needed by /usr/X11R6/lib/libXpm.so.8.0, may conflict with libX11.so.11.1
/usr/X11R6/lib/libX11.so.11.1: undefined reference to `recalloc'
collect2: ld returned 1 exit status
*** Error code 1

/usr/xobj vorher mal loeschen?
 
Hast du den Kernel schon neu gebaut ? Frage nur wegen Sicherheitspatches.
Hast du unter /usr/src das Userland komplett neu gebaut ? Eventuell liegt es an den Abhängigkeiten. Bin auch bei xenocara hängen geblieben wegen fehlenden Abhängigkeiten aus dem Userland. (expat ...)
P.S.:
Eventuell hilft beim Bauen vor dem "make build"/"make obj" ein "make depend". Sehe gerade, liegt eventuell auch an einem "make depend" wegen den Konflikten von LibX11 --> libXpm.
 
@ kili

Jepp, cvs update kenn' ich - hab' mir aber sicherheitshalber nochmal alles neu gezogen (hatte die xenocara-Quellen bislang auch nicht installiert)

/usr/xobj vorher mal loeschen?

... hmm, meine, ich hätte das gemacht ...

@ kommandofrosch

Jau, Kernel und Userland hatte ich vorher neu gebaut.

"make depend"? Davon ist in der FAQ zu xenocara aber nicht die Rede. Das ginge mir jetzt ein bisschen zu sehr in Richtung "wildes Rumprobieren".

Weiß nicht, ob ich diese Woche nochmal zu einem neuen Anlauf komme. Werde es aber spätestens am kommenden Wochenende nochmal versuchen.

Was mir zu denken gibt ist, dass ich mich auf Punkt und Komma an die FAQ-Anleitung gehalten habe:confused:
 
Nö, das funktioniert alles nicht:mad:.

Ich hab' jetzt mehrfach die xenocara-Quellen gezogen und in /usr/src abgelegt, /usr/xobj geleert und dann gemäß FAQ in /usr/src/xenocara

make bootstrap
make obj
make build

durchgeführt.

Aber nach wie vor endet das make build so:

/usr/bin/ld: warning: libX11.so.10.0, needed by /usr/X11R6/lib/libXpm.so.8.0, may conflict with libX11.so.11.1
/usr/X11R6/lib/libX11.so.11.1: undefined reference to `recalloc'
collect2: ld returned 1 exit status
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm/obj/sxpm (line 300 of Makefile).
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm/obj (line 334 of Makefile).
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm/obj (line 222 of Makefile).
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm (line 72 of /usr/X11R6/share/mk/bsd.xorg.mk).
*** Error code 1

Stop in /usr/src/xenocara/lib/libXpm (line 133 of /usr/X11R6/share/mk/bsd.xorg.mk).
*** Error code 1

Stop in /usr/src/xenocara/lib.
*** Error code 1

Stop in /usr/src/xenocara.

Bin mit meinem Latein ziemlich am Ende;'(. Wo könnte ich noch nach einer Lösung suchen bzw. was könnte ich noch versuchen?
 
So wie's aussieht, habe ich das Problem mit Hilfe von ein paar Usern aus dem englischsprachigen Raum lösen können:D!

Offenbar hatte ich bei meinem ersten Versuch, die Xenocara-Quellen zu ziehen, versehentlich die -current-source erwischt. Ist leider hier nur für -current erklärt, ohne, dass mal dazugeschrieben worden ist, dass der cvs-Befehl für -stable ein bisschen anders aussieht. Und da ich bisher eher mit cvsup gearbeitet hab', bin ich prompt in den Fettnapf gelatscht:ugly:!

Sooo, jetzt aber endlich mal die Lösung:

1. kommandofrosch hat schon richtig darauf getippt, dass ich die -current-source gezogen hatte. Klar wurde es, als ich dann mal entsprechend der Fehlermeldung des abgebrochenen build-Prozesses unter /usr/X11R6/lib nachgesehen habe, ob dort tatsächlich eine libX11.so.11.1 liegt - was natürlich der Fall war.

2. Nun hatte ich den Tipp bekommen, folgendermaßen vorzugehen:

# rm -rf /usr/X11R6
- dann Install-CD einlegen und "upgrade"-Option wählen
- nur (!) die vier x*-filesets auswählen und Upgrade zu Ende bringen (xetc42.tgz ist nicht dabei, wird anscheinend aber auch nicht nochmal benötigt. Hab' jedenfalls keine Probleme bekommen.)

[dazu gibt es auch einen Absatz in der FAQ]

3. Die "richtige" xenocara-source besorgen:

# cd /usr/src
# cvs -d$CVSROOT checkout -rOPENBSD_4_2 -P xenocara

4. Xenocara bauen:

# cd /usr/src/xenocara
# make bootstrap
# make obj
# make build

Tja, und diesmal ist das build glatt durchgelaufen *freu*:cool:!
 
Offenbar hatte ich bei meinem ersten Versuch, die Xenocara-Quellen zu ziehen, versehentlich die -current-source erwischt. Ist leider hier nur für -current erklärt, ohne, dass mal dazugeschrieben worden ist, dass der cvs-Befehl für -stable ein bisschen anders aussieht. Und da ich bisher eher mit cvsup gearbeitet hab', bin ich prompt in den Fettnapf gelatscht:ugly:!
Scroll mal hoch zu Punkt 5.3.3...

# export CVSROOT=anoncvs@anoncvs.example.org:/cvs
# cd /usr
# cvs -d$CVSROOT checkout -rOPENBSD_4_2 -P src ports
# cd /usr/src
# cvs -d$CVSROOT checkout -rOPENBSD_4_2 -P xenocara
:)

Gruß
 
Jepp - die Stelle hab' ich mittlerweile auch verinnerlicht:D!

Wäre ideal, wenn diese Erklärung auch auf der Seite "-stable folgen" zu finden wäre. Dann wäre mir das vermutlich nicht passiert:rolleyes:.

Aber der Mensch lernt ja bekanntlich am besten durch Fehler, die er selber macht:belehren:!

;) und Gruß zurück
 
Ja, ich bin da auch schon einige Male rein gefallen. Aber wenn du dem Handbuch folgst und einen Absatz liest, wenn dort steht "LIES das bevor du anfängst", dann wäre das nicht passiert. Dann hättest du (in deinem Fall) gewusst, dass du ein -r mitgeben musst :)

Stable folgen ist - wie ich auch immer wieder feststellen muss - auch nur eine kurze Zusammenfassung.. Verwiesen wird ja auch auf "System aus dem Quelltext erzeugen". Aber nun denn.. Es läuft ja jetzt :)
 
Zurück
Oben