Du bist nicht angemeldet.

#1 22.01.2021 19:01:40

Joo
Mitglied

[Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Hallo in die Runde!

Vorgeschichte (unwichtig für das Problem, aber vielleicht nicht für den Kontext):
ich sitze, wie viele derzeit, im Homeoffice und leide unter einer völlig überlasteten VPN-Verbindung, die ein Arbeiten auf dem Firmenrechner nahezu unmöglich macht. Also habe ich mir gedacht, dass ich die Arbeit auf meinem (ohnehin besser ausgestatteten) Arch-Rechner erledige und das Ergebnis per Mail auf den Firmenrechner schicke. Im Moment helfe ich einer lieben Kollegin bei der Erstellung eines Flyers mit Scribus. Also Scribus 1.5.6.1 (https://archlinux.org/packages/communit … 4/scribus/) installiert, und losgelegt... Stolz das Ergebnis der Kollegin geschickt und: Leider Pustekuchen...

Scribus-Dateien (.sla) sind wohl leider überhaupt nicht rückwärts kompatibel. Dateien, die einmal unter Scribus 1.5.x gespeichert wurden, lassen sich mit der Stable-Version (1.4.8, wie es auch auf den Firmenrechnern installiert ist) nicht mehr öffnen. Ich habe keine Chance auf dem Firmenrechner auf die aktuelle Version zu aktualisieren. Also muss ich auf meinem Rechner zurück auf die scribus-stable aus dem AUR (zum Glück auch die 1.4.8 wie auf dem Firmenrechner).


Problem:
Ich bekomme bei dem Versuch scribus-stable aus dem AUR zu installieren (git clone -> makepkg) die folgende Fehlermeldung:

==> FEHLER: Ein Fehler geschah in build().

Im CMakeError.log steht das folgende:

Determining if the Q_WS_WIN exist failed with the following output:
Change Dir: *****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_e7c0d/fast && /usr/bin/make  -f CMakeFiles/cmTC_e7c0d.dir/build.make CMakeFiles/cmTC_e7c0d.dir/build
make[1]: Verzeichnis „*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp“ wird betreten
Building CXX object CMakeFiles/cmTC_e7c0d.dir/CheckSymbolExists.cxx.o
/usr/bin/c++  -I/usr/include/qt4 -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt  -o CMakeFiles/cmTC_e7c0d.dir/CheckSymbolExists.cxx.o -c *****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx
*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx: In Funktion »int main(int, char**)«:
*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:8:19: Fehler: »Q_WS_WIN« wurde in diesem Gültigkeitsbereich nicht definiert
    8 |   return ((int*)(&Q_WS_WIN))[argc];
      |                   ^~~~~~~~
make[1]: *** [CMakeFiles/cmTC_e7c0d.dir/build.make:85: CMakeFiles/cmTC_e7c0d.dir/CheckSymbolExists.cxx.o] Fehler 1
make[1]: Verzeichnis „*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp“ wird verlassen
make: *** [Makefile:140: cmTC_e7c0d/fast] Fehler 2


File *****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:
/* */
#include <QtCore/qglobal.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef Q_WS_WIN
  return ((int*)(&Q_WS_WIN))[argc];
#else
  (void)argc;
  return 0;
#endif
}
Determining if the Q_WS_QWS exist failed with the following output:
Change Dir: *****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_57d72/fast && /usr/bin/make  -f CMakeFiles/cmTC_57d72.dir/build.make CMakeFiles/cmTC_57d72.dir/build
make[1]: Verzeichnis „*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp“ wird betreten
Building CXX object CMakeFiles/cmTC_57d72.dir/CheckSymbolExists.cxx.o
/usr/bin/c++  -I/usr/include/qt4 -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt  -o CMakeFiles/cmTC_57d72.dir/CheckSymbolExists.cxx.o -c *****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx
*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx: In Funktion »int main(int, char**)«:
*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:8:19: Fehler: »Q_WS_QWS« wurde in diesem Gültigkeitsbereich nicht definiert
    8 |   return ((int*)(&Q_WS_QWS))[argc];
      |                   ^~~~~~~~
make[1]: *** [CMakeFiles/cmTC_57d72.dir/build.make:85: CMakeFiles/cmTC_57d72.dir/CheckSymbolExists.cxx.o] Fehler 1
make[1]: Verzeichnis „*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp“ wird verlassen
make: *** [Makefile:140: cmTC_57d72/fast] Fehler 2


File *****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:
/* */
#include <QtCore/qglobal.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef Q_WS_QWS
  return ((int*)(&Q_WS_QWS))[argc];
#else
  (void)argc;
  return 0;
#endif
}
Determining if the Q_WS_MAC exist failed with the following output:
Change Dir: *****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/make cmTC_ac93f/fast && /usr/bin/make  -f CMakeFiles/cmTC_ac93f.dir/build.make CMakeFiles/cmTC_ac93f.dir/build
make[1]: Verzeichnis „*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp“ wird betreten
Building CXX object CMakeFiles/cmTC_ac93f.dir/CheckSymbolExists.cxx.o
/usr/bin/c++  -I/usr/include/qt4 -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt  -o CMakeFiles/cmTC_ac93f.dir/CheckSymbolExists.cxx.o -c *****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx
*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx: In Funktion »int main(int, char**)«:
*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:8:19: Fehler: »Q_WS_MAC« wurde in diesem Gültigkeitsbereich nicht definiert
    8 |   return ((int*)(&Q_WS_MAC))[argc];
      |                   ^~~~~~~~
make[1]: *** [CMakeFiles/cmTC_ac93f.dir/build.make:85: CMakeFiles/cmTC_ac93f.dir/CheckSymbolExists.cxx.o] Fehler 1
make[1]: Verzeichnis „*****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp“ wird verlassen
make: *** [Makefile:140: cmTC_ac93f/fast] Fehler 2


File *****/scribus-stable/src/scribus-1.4.8/CMakeFiles/CMakeTmp/CheckSymbolExists.cxx:
/* */
#include <QtCore/qglobal.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef Q_WS_MAC
  return ((int*)(&Q_WS_MAC))[argc];
#else
  (void)argc;
  return 0;
#endif
}

Mit dem was da steht, kann ich leider nicht sehr viel anfangen.
Wie kann ich diesem Fehler Herr werden?
Wie bekomme ich heraus, wie man an solche Fehler heran geht?

Für Hilfe wäre ich dankbar! Vielen Dank im Voraus!

Beste Grüße,
Joo

Beitrag geändert von Joo (24.01.2021 16:09:32)

Offline

#2 22.01.2021 20:15:00

waldbaer59
Mitglied

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Hmmm, und wenn du einen Export als PDF durchführst und der Kollegin das schickst, dann wird sie es wenigstens importieren können. Nun sind PDFs keine .sla, aber vielleicht reicht das schon.
Ansonsten könntest du probieren vermittels eines der anderen Export Formate einen Austausch hinzukriegen.
Ein altes Paket bekommt man zwar vielleicht auch noch, aber ob dann alle Abhängigkeiten noch stimmen....?

Ach ja: Notfalls schau mal, ob du unter https://archive.archlinux.org/ ein altes Paket zum Installieren finden kannst.

Guten Erfolg!
VLG
Stephan

Beitrag geändert von waldbaer59 (22.01.2021 20:21:41)

Online

#3 22.01.2021 21:07:49

Joo
Mitglied

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Danke, Stephan, für Deine schnelle Antwort!

Ja, ich hab ihr das Ergebnis dann als PDF exportiert, aber meine Hilfe solle ja Hilfe zur Selbsthilfe sein, also, dass sie die Vorlage dann selbstständig anpassen kann. Darum wollte ich die Vorlage mit der 1.4.8 neu erstellen. Dann kann sie damit weiter arbeiten.

Mit dem archive.archlinux.org hatte ich auch geliebäugelt, aber da ist die älteste v-Nr. 1.5.4.10 - also deutlich zu neu, leider...
Ich habe ein ähnliches Problem mit QGIS. Da bräuchte ich eigentlich eine 2.18er-Version, die es leider nicht mehr gibt. Blöder weise fehlt mir das Know How um das selber zu einem Paket zusammen zu bauen und komme in das Thema auch ganz schlecht rein - bin halt leider kein Programmierer sad

Hast Du denn eine Idee, wie ich dem Build-Problem begegnen kann? Oder einen Rat, wie allgemein die Herangehensweise an solch ein Thema ist...

VG,
Joo

Offline

#4 22.01.2021 21:45:28

waldbaer59
Mitglied

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Ich kriege das Paket aktuell nicht gebaut ...

Found unsuitable Qt version "5.15.2" from /usr/bin/qmake, this code
  requires Qt 4.x
Call Stack (most recent call first):
  CMakeLists.txt:587 (FIND_PACKAGE)

Ich habe jetzt einen Bug gemeldet. Hoffentlich reagiert der Maintainer zeitnah.
Ansonsten schaue ich mal, ob ich was woanders finde.

VLG
Stephan

Online

#5 22.01.2021 22:41:57

zo7Thohr
Gast

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Das PKGBUILD für die Version 1.4.7 gibt es hier -> https://projects.archlinux.de/svntogit/ … 089bb98551
Eine Version 1.4.8 gab es lt. History nicht, sondern die nächste Version war direkt 1.5.3, die fehlende Abhängigkeit "qt4" war hier noch installiert, kann man aber auch aus dem AUR beziehen. Danach ließ sich das Paket fehlerfrei erstellen.

#6 23.01.2021 00:07:16

zo7Thohr
Gast

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Der Build von scribus-stable 1.4.8 aus dem AUR läuft hier auch ohne Abbruch:

==> Erstelle Paket "scribus"...
  -> Erstelle .PKGINFO Datei...
  -> Erstelle .BUILDINFO Datei...
  -> Erstelle .MTREE-Datei...
  -> Komprimiere Paket... 
==> Verlasse fakeroot Umgebung.
==> Beendete Erstellung: scribus 1.4.8-0 (Fr 22 Jan 2021 23:04:10 CET)

#7 23.01.2021 14:32:06

Joo
Mitglied

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Ja, die Meldung mit dem qt4 habe ich natürlich auch bekommen und dann die gleiche Lösung wie zo7Thohr gewählt und es manuell aud dem AUR instaliert.
Im Anschluss lande ich dann halt bei dem eingangs geposteten Error-Log.

Danke für das Posten des Bugs, ich hab eben einmal nachgesehen, der Maintainer hat sich leider noch nicht gemeldet.

Ich habe es eben noch einmal über yay -S scribus-stable versucht. Das endet aber auch in einer Fehlermeldung:

==> Entpacke Quellen...
  -> Entpacke scribus-1.4.8.tar.gz mit bsdtar
==> Beginne prepare()...
==> Quellen sind fertig.
could not find PKGDEST for: scribus-stable

Offline

#8 23.01.2021 15:17:46

zo7Thohr
Gast

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Keine Ahnung, warum das bei dir nicht läuft, hier sieht es so aus:

==> Erstelle Paket: scribus 1.4.8-0 (Sa 23 Jan 2021 14:05:25 CET)
==> WARNUNG: Überspringe Abhängigkeits-Prüfungen.
==> Empfange Quellen...
  -> Lade scribus-1.4.8.tar.gz herunter...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 78.8M  100 78.8M    0     0  5642k      0  0:00:14  0:00:14 --:--:-- 5775k
==> Überprüfe source Dateien mit md5sums...
    scribus-1.4.8.tar.gz ... Übersprungen
==> Entpacke Quellen...
  -> Entpacke scribus-1.4.8.tar.gz mit bsdtar
==> Beginne prepare()...
==> Beginne build()...
CMake Warning (dev) at CMakeLists.txt:662:
  Syntax Warning in cmake code at column 25

  Argument not separated from preceding token by whitespace.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Deprecation Warning at CMakeLists.txt:8 (CMAKE_MINIMUM_REQUIRED):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


CMake Warning (dev) at /usr/share/cmake-3.19/Modules/GNUInstallDirs.cmake:223 (message):
  Unable to determine default CMAKE_INSTALL_LIBDIR directory because no
  target architecture is known.  Please enable at least one language before
  including GNUInstallDirs.
Call Stack (most recent call first):
  CMakeLists.txt:38 (INCLUDE)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 10.2.0
-- The CXX compiler identification is GNU 10.2.0

...und dann geht es normal weiter mit der Komipaltion und bauen des Pakets.

Ich wüsste auch nicht, was der Maintainer da noch ändern könnte, denn das PKGBUILD funktioniert. Ich bekomme zwar auch Warnungen, die verhindern aber nicht, dass das Paket erstellt wird.

Der PKGDEST-Fehler ist übrigens ein Bug in yay -> https://github.com/Jguer/yay/issues/590

#9 23.01.2021 17:51:08

stefanhusmann
Moderator

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Laut den Kommentaren im AUR geht hier gar nichts ohne ein Clean Chroot.

Der Maintainer bietet aber auch ein fertiges Paket in dem neuesten angehefteten Kommentar an.

Die letzte Alternative könnte die Verwendung eines Flatpaks sein. "Letzte", weil ich Flatpacks, Appimages, Snaps und dergleichen eigentlich für eine Pest halte.

Offline

#10 23.01.2021 18:46:05

Joo
Mitglied

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Ich habe nun auf einem anderen Rechner noch einmal den Buid durchlaufen lassen (danke für Deinen Hinweis zo7Thohr) und sieh mal einer guck, ein fertiges Paket - allerdings brach die Installation per pacman -U dann mit der folgenden Meldung ab:

Fehler: Konnte den Vorgang nicht durchführen (In Konflikt stehende Dateien)
scribus: /usr/local/share/man existiert im Dateisystem (gehört zu filesystem)
Fehler sind aufgetreten, keine Pakete wurden aktualisiert.

Ein Schritt vor - ein Schritt zurück... grmpf

Clean Chroot klingt nicht nach Spaß, aber vermutlich muss man sich da einmal durch quälen, wenn man weiter kommen will. Gucke ich mir morgen einmal an.

Gibt es eigentlich eine Möglichkeit die Aufnahme eines bestimmten Programms als Binary in die Repositorys "in Auftrag" zu geben?

Offline

#11 23.01.2021 19:31:18

zo7Thohr
Gast

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Joo schrieb:

scribus: /usr/local/share/man existiert im Dateisystem (gehört zu filesystem)

Da hat pacman Recht und der Paketierer Mist gebaut. /usr/local/share/man wird vom Paket "filesystem" angelegt und ist ein symbolischer Link auf /usr/local/man. Deswegen kann das Paketmanagement das Verzeichnis nicht anlegen. Richtigerweise müssten die Dateien bei der Installation in das reale Verzeichnis /usr/local/man kopiert werden.

Das Ziel für die Kopie wird in src/scribus-1.4.8/install_manifest.txt festgelegt. Das sind nur drei Eintragungen:

/usr/local/share/man/man1/scribus.1
/usr/local/share/man/de/man1/scribus.1
/usr/local/share/man/pl/man1/scribus.1

Die könnte man bequem über einen Patch auf das richtige Verzeichnis umbiegen (oder vor Kompilation manuell ändern), und dann müsste es passen

#12 23.01.2021 20:32:36

zo7Thohr
Gast

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Es ist doch etwas anders als ich zunächst dachte... src/scribus-1.4.8/install_manifest.txt befindet sich nicht in den Quellen sondern wird während des build-Prozesse erstellt. Die eigentliche Änderung müsste in src/scribus-1.4.8/CMakeLists.txt vorgenommen werden, und zwar an dieser Stelle:

SET(MANDIR "${CMAKE_INSTALL_PREFIX}/man/")

Damit ist das Ziel das übergeordnete Verzeichnis, wie es auch der symbolische Link darstellt.
Dazu muss man aber erst die Quellen mit "makepkg -o" entpacken, die Korrektur vornehmen und dann mit der Option "-e" (damit das Quellarchiv nicht wieder entpackt und die Änderung überschrieben wird) bauen.
Im Paket standen danach die Dateien an der richtigen Stelle, installiert habe ich es aber nicht, weil ich es nicht brauche, aber versuche es mal so.
Wenn es funktioniert, müsste der AUR-Betreuer daraus einen Patch machen und ihn im PKGBUILD und in der prepare-Section aufrufen -> Bugreport!

#13 23.01.2021 21:04:47

zo7Thohr
Gast

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

...und so sähe dann der Patch aus:

diff -u a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt	2019-03-05 23:44:45.000000000 +0100
+++ b/CMakeLists.txt	2021-01-23 19:26:37.152160551 +0100
@@ -275,7 +275,7 @@
 #Setp all the directories we will use
 #MAN
 CMAKE_POLICY(SET CMP0005 OLD)
-SET(MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man/")
+SET(MANDIR "${CMAKE_INSTALL_PREFIX}/man/")
 IF(WANT_VERSIONING)
     SET(SHAREDIR "${CMAKE_INSTALL_DATAROOTDIR}/${MAIN_DIR_NAME}${TAG_VERSION}/")
 ELSE(WANT_VERSIONING)

und dann ins build-Verzeichnis als "mandir.patch" speichern und im PKGBUILD mit

prepare() {
	cd "$pkgname-$pkgver"
	patch -p1 -i ../../mandir.patch
}

aufrufen.

#14 23.01.2021 21:05:57

stefanhusmann
Moderator

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Gibt es eigentlich eine Möglichkeit die Aufnahme eines bestimmten Programms als Binary in die Repositorys "in Auftrag" zu geben?

Nein. Inbesondere nicht bei diesem Paket, denn es war in den Repos und wurde aus guten Gründen entfernt. Steht auch in den AUR-Kommentaren zum Paket.

Offline

#15 23.01.2021 21:21:49

stefanhusmann
Moderator

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

zo7Thohr,

-SET(MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man/")
+SET(MANDIR "${CMAKE_INSTALL_PREFIX}/man/")

Solche Sachen kann man mit -DCMAKE_INSTALL_DATAROOTDIR beim Aufruf von cmake mitgeben. Dann muss man nichts patchen.

Offline

#16 24.01.2021 15:52:35

Joo
Mitglied

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Sehr cool! Hat geklappt. Scribus meckert zwar, dass ein Plugin fehlen würde, aber damit kann ich wunderbar leben.

Und wenn ich es richtig verstanden habe, soll ich die Lösung hier posten, richtig?
https://aur.archlinux.org/packages/scribus-stable/
Oder hat sich das mit dem Beitrag von haawda am 2021-01-23 21:36 erledigt? Ich muss gestehen, dass ich mit seinem Post wenig anfangen kann.

Vielen, vielen Dank für Eure Hilfe!

Beste Grüße,
Joo

Beitrag geändert von Joo (24.01.2021 15:53:27)

Offline

#17 24.01.2021 16:00:49

stefanhusmann
Moderator

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Ich bin haawda. Das gepostete PKGBUILD funktioniert bei mir, allerdings habe ich mich bei den Abhängigkeiten auf namcap verlassen und sie rigoros entfernt. Die eine oder andere mag als optdepend sinnvoll sein.

Offline

#18 24.01.2021 16:11:28

Joo
Mitglied

Re: [Gelöst]Scribus Stable aus AUR installieren: Fehler geschah in build()

Ah, prima, ich Danke Dir!

Schönen Rest-Sonntag
Joo

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums