• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[geloest] qtparted selbst compilieren

Bubo

Newbie
Seit einiger Zeit bin ich dabei mir das qtparted Paket für Suse 9.3 selbst zu compilieren, denn ich habe es nicht als Binary gefunden.
Nachdem etliche zusätzlich erforderliche Pakete installiert und andere Probleme gelöst waren, lief auch das configure sauber durch, am Ende die Aufforderung, nun make laufen zu lassen.
Make jedoch startet unsermake, welches mit absoluter (falscher) Pfadangabe nicht startet. Also verwende ich (aus der Fehlermeldung abgeschaut) das Kommando "unsermake all", was auch anläuft. Nachdem jetzt einige .cpp Dateien erstellt wurden, erhalte ich folgende Fehlermeldung:
Code:
creating ./src/qp_ui_config.cpp
/bin/sh: -c: line 0: syntax error near unexpected token `then'
/bin/sh: -c: line 0: `/usr/lib/qt3/bin/uic -L  -nounload -i qp_ui_config.h /home/barny/bin/qtparted-0.4.5/src/qp_ui_config.ui > ./src/qp_ui_config.cpp ; ret=$? if test "$ret" = 0; then echo '#include "qp_ui_config.moc"' >> ./src/qp_ui_config.cpp; else rm -f ./src/qp_ui_config.cpp; exit $ret; fi'
Error creating ./src/qp_ui_config.cpp. Exit status 2.
So, damit kann ich als Nicht-Programmierer leider nichts anfangen. Ein Syntax Error.
Kann mir hier jemand weiterhelfen?

Gruß
Bubo
 

oc2pus

Ultimate Guru
probiere mal:
Code:
UNSERMAKE=no make

damit sollte das normale make angeworfen werden.

ein weiteres Problem könnte der qt3 3.3.5-bug sein. Den kannst du so umgehen:
Code:
# hack to overcome problem with qt 3.3.5 build tools
find . -name "*.ui" | while read f; do
	mv $f /tmp/`basename $f`
	cat /tmp/`basename $f` | grep -v includehint > $f
	rm /tmp/`basename $f`
done
 
OP
B

Bubo

Newbie
hallo oc2pus,
erstmal Dank für die fixe Antwort. Hier meine Ergebnisse:

Der erste Vorschlag (UNSERMAKE=no make) hatte keinen Effekt. Das Makefile wurde wie zuvor ausgeführt, mit dem gleichbleibenden Ergebnis:
Code:
WARNING: use unsermake instead of make or use a wrapper script, e.g. makeobj!!!
/usr/share/unsermake/unsermake all
make: /usr/share/unsermake/unsermake: Kommando nicht gefunden
make: *** [all] Fehler 127
Was ist übrigens ein Wrapper script?

Deinen zweiten Codebrocken habe ich (war das überhaupt so richtig?) in eine Datei kopiert, diese mit chmod ausführbar gemacht und (im gleichen Ordner wie das Makefile) laufen lassen. Keine sichtbare Ausgabe, scheint fehlerfrei gelaufen zu haben.
Das Ergebnis nach einem anschliessenden "unsermake all" war präzise das gleiche wie zuvor, siehe oben. *ratlosguck*
Ach so, meine qt3 hat die Version 3.3.4-11.3, also sollte der Bug garnicht zum Tragen kommen, oder?
Hast Du noch weitere Ideen in Deiner Schatzkiste?

Gruß
Bubo
 

oc2pus

Ultimate Guru
ok, nächster Versuch :)

nach dem ./configure .....

im Makefile suche die Zeile:
Code:
UNSERMAKE = /usr/share/unsermake/unsermake
und ändere sie so um:
Code:
UNSERMAKE = /usr/bin/unsermake
danach make aufrufen und es sollte gehen

oder

Code:
make UNSERMAKE=/usr/bin/unsermake
aufrufen ohne Änderung am Makefile
 

Pumphaus

Member
Sorry, oc2pus, aber es will nicht funktionieren. Immer der gleiche Fehler wie oben beschrieben. Ich hab Qt 3.3.5 und hab auch den "Patch" angewendet, bringt nichts.
 

oc2pus

Ultimate Guru
Pumphaus schrieb:
Sorry, oc2pus, aber es will nicht funktionieren. Immer der gleiche Fehler wie oben beschrieben. Ich hab Qt 3.3.5 und hab auch den "Patch" angewendet, bringt nichts.

ich habe eben die Sourcen aus diesem Paket installiert:
http://arklinux.osuosl.org/dockyard-devel/SRPMS/qtparted-0.4.5-1ark.src.rpm

dann ein ./configure --prefix=/usr
dann make UNSERMAKE=/usr/bin/unsermake
dann als root make install

... geht
 

oc2pus

Ultimate Guru
dann nimm diesen hier:
http://prdownloads.sourceforge.net/qtparted/qtparted-0.4.5-1ark.src.rpm?download

und das SPEC zum selber compilieren sieht so aus:
Code:
# Copyright (c) 2006 oc2pus
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.

Name:		qtparted
Version:	0.4.5
Release:	0.oc2pus.1
Summary:	Graphical Partitioning Tool
URL:		http://qtparted.sf.net/
Source:		qtparted-%{version}.tar.bz2
License:	GPL
Group:		System/Filesystems
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Packager:       oc2pus
BuildRequires:  e2fsprogs-devel
BuildRequires:  unsermake
BuildRequires:  parted-devel >= 1.6.7
BuildRequires:  qt3-devel
BuildRequires:  zlib-devel
BuildRequires:  libpng-devel
BuildRequires:  libreiserfs
BuildRequires:  xfsprogs
Requires:       e2fsprogs
#Requires:       libpng
#Requires:       libreiserfs
Requires:       libreiserfs-progs
Requires:       parted >= 1.6.7
Requires:       qt3
Requires:       xfsprogs
Requires:       zlib

%description
QtParted is a graphical partition editor, similar to PartitionMagic(tm).

Authors: see AUTHORS

%prep
%setup -q -n %{name}-%{version}
%{?suse_update_config:%{suse_update_config -f}}

%build
%configure \
	--disable-jfs \
	--enable-labels
#	--disable-xfs \
#	--disable-reiserfs \

make \
	UNSERMAKE="%{_bindir}/unsermake"

%install
[ -d %{buildroot} -a "%{buildroot}" != "" ] && rm -rf %{buildroot}

make install \
	UNSERMAKE="%{_bindir}/unsermake" \
	DESTDIR="%{buildroot}"
%__strip %{buildroot}%{_sbindir}/%{name}

# icons
install -dm 755 %{buildroot}%{_datadir}/pixmaps
convert data/%{name}.xpm -resize 48x48! \
	%{buildroot}%{_datadir}/pixmaps/%{name}.png

rm -rf %{buildroot}%{_datadir}/applnk
rm -f data/*.desktop

# menu
install -dm 755 %{buildroot}%{_datadir}/applications
cat > %{buildroot}%{_datadir}/applications/%{name}.desktop <<EOF
[Desktop Entry]
Exec=/usr/sbin/%{name}
Name=QTParted
Icon=%{name}.xpm
Terminal=false
Type=Application
Comment=Application for partitioning a disk
Comment[it]=Applicazione per il partizionamento di un disco
Comment[fr]=Application pour partitionner un disque
Comment[fi]=Kiintolevyn partitiointityökalu
Encoding=UTF-8
X-KDE-SubstituteUID=true
X-KDE-Username=root
EOF
%suse_update_desktop_file -i %{name} System Filesystem

%clean
[ -d %{buildroot} -a "%{buildroot}" != "" ] && rm -rf %{buildroot}

%files
%defattr(-,root,root)
%doc AUTHORS COPYING ChangeLog INSTALL TODO
%doc doc/README doc/TODO.txt doc/BUGS
%{_sbindir}/%{name}
%{_sbindir}/run_%{name}
#%{_datadir}/applnk/System/*
%{_mandir}/man?/*
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/locale
%{_datadir}/%{name}/locale/*
%dir %{_datadir}/%{name}/pics
%{_datadir}/%{name}/pics/*
%{_datadir}/pixmaps/%{name}.*
%{_datadir}/applications/%{name}.desktop

%changelog
* Sun Apr 16 2006 oc2pus - 0.4.5-0.oc2pus.1
- initial rpm 0.4.5

diese SPEC nach /usr/src/packages/SPECS kopieren
den tarball nach /usr/src/packages/SOURCES

dann rpmbuild -bb SPECS/qtparted.spec das Paket erstellen ...
 
OP
B

Bubo

Newbie
Thanx für die viele Arbeit, oc2pus!
habe bis jetzt alles so nachvollzogen wie beschrieben, mit den gleichen Fehlern wie Pumphaus.

Hier scheint aber aus irgendeinem Grunde der Wurm drin zu sein - ich verstehe die Ausgabe nicht, besonders da das original SPEC File völlig anders reagiert (tut einiges, findet dann Fehler, was ja zu erwarten war). Die ersten Zeilen Deines SPEC Files sehen genau so aus, diese Ausgabe behauptet aber was anderes:
Code:
gurke:/usr/src/packages # rpmbuild -bb SPECS/qtparted.spec
error: line 5: Unknown tag:  Name:      qtparted
gurke:/usr/src/packages #
*kopfkratz* hast Du ne Ahnung was das nun wieder soll?
 

oc2pus

Ultimate Guru
lass mal dos2unix über das SPEC-file laufen, das ist der berühmte cut&copy Fehler aus dem Board hier ;)

da stehen Zeichen am Zeilenende die da nicht hingehören.
 
OP
B

Bubo

Newbie
sorry,
an der Fehlermeldung ändert sich nichts:
Code:
gurke:/usr/src/packages/SPECS # dos2unix -o qtparted.spec
dos2unix: converting file qtparted.spec to UNIX format ...
gurke:/usr/src/packages/SPECS # cd ..
gurke:/usr/src/packages # rpmbuild -bb SPECS/qtparted.spec
error: line 5: Unknown tag:  Name:      qtparted
gurke:/usr/src/packages #
Auf was man da nicht alles achten muss - wäre ich kaum drauf gekommen dass es diesen Board-Fehler überhaupt gibt ...
 

oc2pus

Ultimate Guru
Bubo schrieb:
Auf was man da nicht alles achten muss - wäre ich kaum drauf gekommen dass es diesen Board-Fehler überhaupt gibt ...
du musst einen "cleveren" Editor verwenden, z.Bsp kate, der kann dann die Zeilenenden korrekt umsetzen

oder
du musst es abtippen

oder
du schickst mir eine PN mit deiner email-Adress und ich schicke es dir zu
 
OP
B

Bubo

Newbie
Fein, jetzt geht das Internet wieder - Telekom hat unseren Ort bestreikt.
du musst einen "cleveren" Editor verwenden, z.Bsp kate, der kann dann die Zeilenenden korrekt umsetzen

oder
du musst es abtippen

oder
du schickst mir eine PN mit deiner email-Adress und ich schicke es dir zu
Ich habe jetzt noch einen anderen Weg eingeschlagen, abtippen war zu mühselig, Dich dafür einzuspannen, oc2pus, soll die letzte Möglichkeit bleiben. Den Text für die qtparted.spec unter Windows kopiert, die Datei mit dos2unix behandelt. DIESER Fehler ist damit behoben. Obwohl ich noch immer nicht genau verstanden habe wo er herkam (das werde ich noch untersuchen).
Und wie es so kommen muss, hier ist der nächste:
Code:
ReiserFS                : 1
Ext2fs/ext3fs           : 1
Windows NTFS:           : 1
Ibm JFS:                : 1
Sgi XFS:                : 1

Type "make" to compile QtParted

+ --disable-jfs ' '
/var/tmp/rpm-tmp.50396: line 47: --disable-jfs: command not found
error: Bad exit status from /var/tmp/rpm-tmp.50396 (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.50396 (%build)
gurke:/usr/src/packages #
Das heisst, configure ist sauber durchgelaufen, keine Warnung, kein error. Dann hakt es, letzte Ausgabe siehe oben. Wie komme ich diesem Fehler bei? Offenbar scheint da ein Programmaufruf ohne Programmnamen stattzufinden ...
 

oc2pus

Ultimate Guru
%configure \
--disable-jfs \
--enable-labels
# --disable-xfs \
# --disable-reiserfs \

das ist normalerweise EINE Zeile, das "\" ist eine Zeilenfortsetzung, das "#" ein Kommentar...

also ist da beim kopieren was verlorengegangen:
Code:
%configure --disable-jfs --enable-labels
 
OP
B

Bubo

Newbie
also ist da beim kopieren was verlorengegangen:
nein, verloren gegangen glaube ich nicht, eher der Backslash wurde einfach nicht als solcher interpretiert (nur, warum?!?).
Die qtparted.spec habe ich mir mit einem Hex-Editor angesehen, es sind an dieser Stelle keine ungewöhnlichen Zeichen vorhanden, aber alle die sein sollen sind da. (Wohl aber waren am Beginn der .spec Datei die ich zuerst kopiert habe und die nicht funktionierte, drei Zeichen: )

Daraufhin habe ich die fraglichen Zeilen abgeändert:
Code:
%build 
%configure --disable-jfs --enable-labels
#   --disable-xfs \ 
#   --disable-reiserfs \ 

make UNSERMAKE="%{_bindir}/unsermake"
Das Ergebnis sieht jetzt so aus:
Code:
supported file systems (0=no, 1=yes)
------------------------------------
ReiserFS                : 1
Ext2fs/ext3fs           : 1
Windows NTFS:           : 1
Ibm JFS:                : 0
Sgi XFS:                : 1

Type "make" to compile QtParted

+ make UNSERMAKE=/usr/bin/unsermake
WARNING: use unsermake instead of make or use a wrapper script, e.g. makeobj!!!
/usr/bin/unsermake all
ERROR:src/Makefile.am: unknown source extension .ui for qtparted
ERROR:src/Makefile.am: unknown source extension .ui for qtparted
ERROR:src/Makefile.am: unknown source extension .ui for qtparted
ERROR:src/Makefile.am: unknown source extension .ui for qtparted
ERROR:src/Makefile.am: unknown source extension .ui for qtparted
ERROR:src/Makefile.am: unknown source extension .ui for qtparted
make: *** [all] Fehler 1
error: Bad exit status from /var/tmp/rpm-tmp.93149 (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.93149 (%build)
gurke:/usr/src/packages #

Also hat jetzt (gegenüber vorher) die configure Anweisung mit den richtigen Parametern gearbeitet, JFS ist abgeschaltet. Auch unsermake läuft richtig an.
Aber was sagt obiger ERROR einem Guru?
 

oc2pus

Ultimate Guru
Bubo schrieb:
Aber was sagt obiger ERROR einem Guru?
nur, das du immer noch was falsch machst oder das heruntergeladene SPEC-file nicht in Ordnung ist ..

Wie gesagt, sende mir deine email Adresse und ich schicke dir das Paket welches genau mit diesem SPEC-File erzeugt wurde.
 
OP
B

Bubo

Newbie
nur, das du immer noch was falsch machst oder das heruntergeladene SPEC-file nicht in Ordnung ist ..
Sicher, diese Tatsache ist mir durchaus nicht unbekannt.
Mir wäre wesentlich gewesen dahinter zu kommen WAS da falsch läuft. Andererseits kannst Du natürlich nicht "riechen" wie mein System sich verhält oder was ich tue / nicht tue, auch nicht hexen oder zaubern. Und ich kann Dir mangels Wissen vermutlich nicht die entscheidende Information rübergeben.
Insofern nehme ich dankbar das Angebot "per Mail" an; ich werde aber weiterhin nach einer Lösung meines hier vorliegenden Problems fahnden, vielleicht habe ich ja Glück und komme auf den richtigen Gedanken oder finde jemanden mit einem ähnlichen bereits gelösten Problem.

Nochmal Dank für Deine Mühe!
 

oc2pus

Ultimate Guru
Bubo schrieb:
Insofern nehme ich dankbar das Angebot "per Mail" an; ich werde aber weiterhin nach einer Lösung meines hier vorliegenden Problems fahnden, vielleicht habe ich ja Glück und komme auf den richtigen Gedanken oder finde jemanden mit einem ähnlichen bereits gelösten Problem.

ich kann dir ja das src.rpm mitschicken, dann hast du auch das SPEC-File und kommst dem Problem auf die Schliche :)
 
OP
B

Bubo

Newbie
Jetzt habe ich das rpm mal versucht zu installieren: keine Chance!
Die geforderten Abhängigkeiten würden bedingen, dass ich mein Suse 9.3 wenigstens auf 10.0 oder 10.1 update, um die entsprechenden libs auf dem Rechner zu haben.

oc2pus, hast Du vielleicht das Paket unter Suse 10 oder so gebaut? Das würde das Verhalten erklären können .... Was haben wir denn jetzt noch für eine Chance?
 

oc2pus

Ultimate Guru
Bubo schrieb:
Jetzt habe ich das rpm mal versucht zu installieren: keine Chance!
Die geforderten Abhängigkeiten würden bedingen, dass ich mein Suse 9.3 wenigstens auf 10.0 oder 10.1 update, um die entsprechenden libs auf dem Rechner zu haben.

oc2pus, hast Du vielleicht das Paket unter Suse 10 oder so gebaut? Das würde das Verhalten erklären können .... Was haben wir denn jetzt noch für eine Chance?

mea culpa ... ich habe dir das 10er Pakete geschickt :(
ich schicke dir nochmal das 9.3er....
 
Oben