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

Ghemical 1.90 und pkg-config

Hallo,

der Grund für meinen EInstieg in Linux ist das Interesse an einigen Anwendungen aus der Bioinformatik, dazu gehört auch ghemical.
Beim Versuch es zu kompilieren, verabschiedet sich ./configure mit der Meldung:
Code:
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... g++ -E
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking for ar... /usr/bin/ar
checking for sh... /bin/sh
checking whether make sets $(MAKE)... yes
checking whether build environment is sane... yes
checking for acos in -lm... yes
checking for GTK_CFLAGS...
checking for GTK_LIBS...
configure: error: The pkg-config script could not be found or is too old.  Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.

Alternatively you may set the GTK_CFLAGS and GTK_LIBS environment variables
to avoid the need to call pkg-config.  See the pkg-config man page for
more details.

To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
See `config.log' for more details.

Ich habe pkg-config mit yast installiert, weiß aber nicht genau, unter welchem pfad das installiert wurde, habe auch die man pages davon gelesen, mir ist aber immer noch nicht so ganz klar, was das eigentlich macht.

Die älteren RPMs von rpmseek bringen wegen irgendwelchen merkwürdigen Abhängigkeiten auch nicht weiter.

Habt ihr vllt nen Vorschlag, wie ich an das Problem rangehen könnte?

Gruß Mario
 
Bist Du sicher, dass das unter "Grafik" richtig aufgehoben ist? Egal...

Wie auch immer: Du musst das Paket "pkgconfig" installieren. Danach musst Du ./configure nochmals aufrufen. Schau Dir bitte ganz genau an, was ./configure danach sagt. Es ist nicht genau dasselbe. Wahrscheinlich meckert es danach über GTK, dann musst Du "gtk" und "gtk-devel" installieren usw., bis es durchläuft.

Noch eine kleine Anmerkung: Ich hatte neulich mal versucht, ghemical zu installieren, bin dann aber an Fehlermeldungen des Fortran-Compilers gescheitert, die ich nicht verstehe. Das war aber eine alte stabile Version; die Entwicklung scheint ja doch weiterzugehen. Vielleicht schau ich es mir nochmal an.
 
OP
T

Tyler Durden

Newbie
Danke erstmal, hab die beiden Pakete installiert, jetzt spuckt er das aus:

Code:
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
configure: error: Package requirements (gtk+-2.0 >= 2.4.0) were not met.
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively you may set the GTK_CFLAGS and GTK_LIBS environment variables
to avoid the need to call pkg-config.  See the pkg-config man page for
more details.

Hattest du das auch?
 
Ja! Den Fehler hab ich aber schon wegbekommen. Installier die Pakete:

automake
autoconf
bison
flex
libtool
m4

Führe danach im Quellcodeverzeichnis, dort wo "./configure" ist, den Befehl "autoreconf -fi" aus, und danach nochmal "./configure". Dann bist Du schon mal einen Schritt weiter.

Als nächstes brauchst Du:

atk
atk-devel
freetype2
freetype2-devel
gcc
gcc-c++
glibc
glibc-devel
glib2
glib2-devel
gtk2
gtk2-devel
libglade2
libglade2-devel
libstdc++
libstdc++-devel
make
pango
pango-devel
xorg-x11-devel
xorg-x11-libs

Fortran wird doch nicht mehr gebraucht, das Programm ist jetzt komplett C/C++. Aber das alles reicht noch nicht. Das nächste Problem ist "libghemical". Das Programm ist nämlich in eine Bibliothek und eine Anwendung gespalten.

Erst muss die Bibliothek installiert werden, danach das Programm. Das ist keine einfache Sache, weil er mehrere Bibliotheken braucht. Spiel ruhig selbst damit rum, oder warte bis morgen. Ich kann SPEC-Dateien zum einfacheren Installieren schreiben, weil es mich selbst auch interessiert, aber nicht mehr heute abend, sorry.
 
OP
T

Tyler Durden

Newbie
Ok vielen Dank, dann geh ich mal spielen, ich bin der Meinung libghemical hab ich mit checkinstall als rpm draufbekommen, aber es wird sich zeigen, ob das so ok ist...

Wünsch noch nen schönen Abend
 
Wo hast Du libghemical denn her (Deeplink zum Archiv)? Ich bin irgendwie zu doof, das zu finden. Oder probier selbst weiter...

EDIT: Ach sorry, ich bin wohl schon zu müde, hier ist es: http://www.uku.fi/~thassine/ghemical/download/libghemical-1.90.tgz

Vielleicht gelingt es Dir mit dem autoconf-Hinweis selbst.
 
Verschaff Dir erstmal alle Rechte im RPM-Bau-Verzeichnis. root werden:
Code:
su
Password: <Passwort>
Berechtigungen ändern:
Code:
chown -R <Benutzername> /usr/src/packages
chgrp -R users /usr/src/packages
root-Rechte wieder ablegen:
Code:
exit
Danach folgende Dateien ins Verzeichnis /usr/src/packages/SOURCES herunterladen:

http://prdownloads.sourceforge.net/openbabel/openbabel-1.100.2.tar.gz
http://www.uku.fi/~thassine/ghemical/download/libghemical-1.90.tgz
http://www.uku.fi/~thassine/ghemical/download/ghemical-1.90.tgz

Folgenden Text als /usr/src/packages/SOURCES/ghemical-1.90.patch speichern, mit einer Leerzeile am Ende:
Code:
--- Makefile.in
+++ Makefile.in
@@ -30,11 +30,12 @@
 prefix=		@prefix@
 exec_prefix=	@exec_prefix@
 bindir=		@bindir@
+libdir=		@libdir@
 data_dest=	@datadir@/ghemical
 version_dest=	${data_dest}/${APPVERSION}
 gnome_help=	@datadir@/gnome/help/ghemical/C
 
-create_dirs=	${bindir} ${version_dest} \
+create_dirs=	${bindir} ${libdir}/bonobo/servers ${version_dest} \
 		${version_dest}/glade ${version_dest}/pixmaps \
 		${gnome_help} ${gnome_help}/images
 
@@ -72,7 +73,7 @@
 	## prefix? now goes into /usr/lib/bonobo/servers/
 	#################################################
 	@echo "Copying GNOME_Ghemical.server"
-	cp -p $(top_srcdir)/GNOME_Ghemical.server /usr/lib/bonobo/servers/
+	cp -p $(top_srcdir)/GNOME_Ghemical.server $(libdir)/bonobo/servers/
 	@echo ""
 	
 	## prefix? now goes into /usr/share/gnome-2.0/ui/
--- src/Makefile.in
+++ src/Makefile.in
@@ -23,7 +23,7 @@
 CXXFLAGS=	@CXXFLAGS@ @CPPFLAGS@ -Wall -fno-exceptions
 
 LOCAL_LIBS=	$(top_builddir)/src/glade/libdialogs.a
-LIBS=		@LIBS@ -lglut -lXmu -lg2c -lm
+LIBS=		@LIBS@ -lglut -lXmu -lm
 
 SRC =		main.cpp \
 		project.cpp views.cpp fileio.cpp filetrans.cpp \
Folgenden Text als /usr/src/packages/SPECS/openbabel.spec abspeichern:
Code:
#
# spec file for package openbabel (Version 1.100.2)
#
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#

BuildRequires: gcc gcc-c++ make

%define _prefix /usr

Name:         openbabel
License:      GPL
Group:        Productivity/Scientific/Chemistry
Summary:      A Package to Decypher Computational Chemistry
Version:      1.100.2
Release:      0
URL:          http://openbabel.sourceforge.net/
Source:       %{name}-%{version}.tar.gz
BuildRoot:    %{_tmppath}/%{name}-%{version}-build

%description
Open Babel is a project designed to pick up where Babel left off, as a cross-
platform program and library designed to interconvert between many file formats
used in molecular modeling and computational chemistry.

%package devel
Group:        Development/Libraries
Summary:      Development package for openbabel
Requires:     %{name} = %{version}

%description devel
Development package for openbabel.

%prep
%setup
cp src/README README.src
cp tools/README README.tools

%build
CFLAGS="%{optflags}" \
CXXFLAGS="%{optflags}" \
./configure \
   --prefix=%{_prefix} \
   --mandir=%{_mandir}
make

%install
rm -rf %{buildroot}
make DESTDIR=%{buildroot} install

%clean
rm -rf %{buildroot}

%post
/sbin/ldconfig

%postun
/sbin/ldconfig

%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING INSTALL NEWS README README.src README.tools THANKS
%doc doc/babel31.inc doc/dioxin.inc doc/dioxin.mol2 doc/dioxin.pov doc/dioxin.png
%doc doc/FAQ.html doc/Migration.html doc/README.dioxin.pov doc/README.povray
%{_bindir}/*
%{_libdir}/*.so.*
%{_datadir}/openbabel
%{_mandir}/man1/babel.1.gz

%files devel
%defattr(-,root,root)
%{_libdir}/*.a
%{_libdir}/*.la
%{_libdir}/*.so
%{_libdir}/pkgconfig/openbabel.pc
%{_includedir}/openbabel

%changelog -n openbabel
* Wed Jun 29 2005 - root@localhost
- 1.100.2-0
- initial package
Folgenden Text als /usr/src/packages/SPECS/libghemical.spec abspeichern:
Code:
#
# spec file for package libghemical (Version 1.90)
#
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#

BuildRequires: gcc gcc-c++ make openbabel openbabel-devel pkgconfig

%define _prefix /usr

Name:         libghemical
License:      GPL
Group:        System/Libraries
Summary:      Library package for ghemical
Version:      1.90
Release:      0
URL:          http://www.uku.fi/~thassine/ghemical/
Source:       http://www.uku.fi/~thassine/ghemical/download/%{name}-%{version}.tgz
BuildRoot:    %{_tmppath}/%{name}-%{version}-build

%description
Library package for ghemical.



Authors:
--------
    Tommi Hassinen <thassine@messi.uku.fi>

%package devel
Group:        Development/Libraries
Summary:      Development package for libghemical
Requires:     %{name} = %{version}

%description devel
Development package for libghemical.



Authors:
--------
    Tommi Hassinen <thassine@messi.uku.fi>

%prep
%setup

%build
PKG_CONFIG=/usr/bin/pkg-config \
CFLAGS="%{optflags}" \
CXXFLAGS="%{optflags}" \
./configure \
   --prefix=%{_prefix} \
   --disable-mpqc \
   --disable-mopac7 \
   --enable-openbabel
make

%install
rm -rf %{buildroot}
make DESTDIR=%{buildroot} install

%clean
rm -rf %{buildroot}

%post
/sbin/ldconfig

%postun
/sbin/ldconfig

%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING INSTALL TODO
%{_libdir}/*.so.*
%{_datadir}/libghemical

%files devel
%defattr(-,root,root)
%{_libdir}/*.a
%{_libdir}/*.la
%{_libdir}/*.so
%{_libdir}/pkgconfig/libghemical.pc
%{_includedir}/ghemical

%changelog -n libghemical
* Mon Aug 08 2005 - root@localhost
- 1.90-0
- initial package
Folgenden Text als /usr/src/packages/SPECS/ghemical.spec abspeichern:
Code:
#
# spec file for package ghemical (Version 1.90)
#
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#

BuildRequires: atk atk-devel freeglut freeglut-devel freetype2 freetype2-devel gcc gcc-c++ glib2 glib2-devel gtk2 gtk2-devel gtkglext gtkglext-devel ImageMagick libghemical libghemical-devel libglade2 libglade2-devel libxml2 libxml2-devel make openbabel openbabel-devel pango pango-devel pkgconfig update-desktop-files xorg-x11-devel xorg-x11-libs xorg-x11-Mesa xorg-x11-Mesa-devel zlib zlib-devel

%define _prefix /opt/gnome

Name:         ghemical
License:      GPL
Group:        Productivity/Scientific/Chemistry
Summary:      Computational chemistry software
Version:      1.90
Release:      0
URL:          http://www.uku.fi/~thassine/ghemical/
Source:       http://www.uku.fi/~thassine/ghemical/download/%{name}-%{version}.tgz
Patch:        %{name}-%{version}.patch
BuildRoot:    %{_tmppath}/%{name}-%{version}-build

%description
Ghemical is a computational chemistry software package released under the GNU
GPL. It means that full source code of the package is available, and users are
free to study and modify the package. Ghemical is written in C++. It has a
graphical user interface, and it supports both quantum-mechanics models and
molecular mechanics models. Also a tool for reduced protein models is included.
Geometry optimization, molecular dynamics and a large set of visualization
tools are currently available.



Authors:
--------
    Tommi Hassinen <thassine@messi.uku.fi>

%prep
%setup
%patch

%build
PKG_CONFIG=/usr/bin/pkg-config \
CFLAGS="%{optflags}" \
CXXFLAGS="%{optflags}" \
./configure \
   --prefix=%{_prefix} \
   --disable-threads \
   --disable-bonobo
make

%install
rm -rf %{buildroot}
make install prefix=%{buildroot}%{_prefix}
%suse_update_desktop_file -c %{name} Ghemical "Computational Chemistry" %{name} %{name}.png Application Edutainment Chemistry
mkdir -p %{buildroot}%{_datadir}/applications
mv %{buildroot}/usr/share/applications/%{name}.desktop %{buildroot}%{_datadir}/applications
mkdir -p %{buildroot}%{_datadir}/pixmaps
convert bin/ghemical.xpm %{buildroot}%{_datadir}/pixmaps/%{name}.png

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING INSTALL TODO
%{_bindir}/%{name}
%{_libdir}/bonobo/servers/GNOME_Ghemical.server
%{_datadir}/applications/%{name}.desktop
%{_datadir}/%{name}
%{_datadir}/gnome/help/%{name}
%{_datadir}/pixmaps/%{name}.png

%changelog -n ghemical
* Mon Aug 08 2005 - root@localhost
- 1.90-0
- initial package
Jetzt als erstes openbabel kompilieren:
Code:
rpmbuild -ba /usr/src/packages/SPECS/openbabel.spec
Dann openbabel installieren:
Code:
su
Password: <Passwort>
rpm -Uvh /usr/src/packages/RPMS/i586/openbabel-*
exit
Dann libghemical kompilieren:
Code:
rpmbuild -ba /usr/src/packages/SPECS/libghemical.spec
Dann libghemical installieren:
Code:
su
Password: <Passwort>
rpm -Uvh /usr/src/packages/RPMS/i586/libghemical-*
exit
Jetzt ghemical kompilieren:
Code:
rpmbuild -ba /usr/src/packages/SPECS/ghemical.spec
Zuletzt ghemical installieren:
Code:
su
Password: <Passwort>
rpm -Uvh /usr/src/packages/RPMS/i586/ghemical-*
exit
So richtig zufrieden bin ich mit dem Programm ehrlich gesagt deshalb nicht, weil ich es patchen musste, um es zu kompilieren! Falls Du Fehlermeldungen beim Kompilieren bekommst, musst Du die angemahnten Pakete nachinstallieren. Bis auf gtkglext und gtkglext-devel sind alle auf der SuSE-DVD drauf.

gtkglext und gtkglext-devel bekommst Du hier:

ftp://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/i386/supplementary/GNOME

Such sie bitte selbst aus den Unterverzeichnissen raus, ich weiß Deine SuSE-Version nicht und habe keine Lust, auf Verdacht Links für vier SuSE-Versionen rauszusuchen.

Nochwas: Sofern Du nicht SuSE 9.3 hast, hast Du mehr oder weniger Pech gehabt, weil bei allen früheren SuSE-Versionen das Paket libglade2 zu alt ist. Das kann man allerdings auch aktualisieren.

Solltest Du von SuSE nur die CD-Version haben, schau Dich bitte im Forum nach dem Stichwort "FTP als Installationsquelle hinzufügen" um, es gibt fertige Anleitungen dafür.
 
OP
T

Tyler Durden

Newbie
Vielen Dank für die ganze Mühe, aber kurz vor der Ziellinie kam das hier

Code:
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd ghemical-1.90
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chown -Rhf root .
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chgrp -Rhf root .
+ /bin/chmod -Rf a+rX,g-w,o-w .
+ echo 'Patch #0 (ghemical-1.90.patch):'
Patch #0 (ghemical-1.90.patch):
+ patch -p0 -s
2 out of 2 hunks FAILED -- saving rejects to file Makefile.in.rej
1 out of 1 hunk FAILED -- saving rejects to file src/Makefile.in.rej
error: Bad exit status from /var/tmp/rpm-tmp.34710 (%prep)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.34710 (%prep)

Ich habe das Kompilieren auch in ner Root-Shell gemacht, ist das ein Problem?
 
Das liegt daran, dass die Patch-Datei Tabulatoren enthält, die aber leider von der Forensoftware in Leerzeichen umgewandelt werden. Gib mir Deine eMail-Adresse per PN, dann schick ich Dir die richtige Datei.
 
OP
T

Tyler Durden

Newbie
DANKE! Jetzt läufts endlich, muss erstmal die nächsten Tage sehen, was es denn alles so kann.
Was ich mich noch gefragt hab: kann man den Entwicklern mal nen Hinweis geben, was da mit ihren Sources falsch läuft oder die RPMs für Suse irgendwo veröffentlichen, kann mir nicht vorstellen, dass dieses Problem nur bei uns aufgetreten ist.

Auf jeden Fall, echt klasse von dir, für mich sieht das nach nem ziemlichen Aufwand aus mit Specs-Files etc.

Gruß Mario
 
Oben