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

Enigma

Pipen

Newbie
Hallöchen, liebe Linux Gemeinde!

Hätte von Euch gerne mal einen Tipp, wie ich das Spiel Enigma http://www.nongnu.org/enigma/screenshots_de.html
auch unter SuSe 11.2 zum Laufen bringen kann.

Beim Kompilieren bekomme ich am Ende leider immer eine Fehlermeldung, die mich nicht wirklich darüber aufklärt, was da in die Hose geht.

Wer kann mir helfen?

Gruß aus HH

Code:
uwe@linux-test3:~> cd Downloads
uwe@linux-test3:~/Downloads> su
Passwort:
linux-test3:/home/uwe/Downloads # rpmbuild --rebuild enigma*.src.rpm
Installing enigma-1.01-82.6.src.rpm
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.93R5hO
+ umask 022
+ cd /usr/src/packages/BUILD
+ cd /usr/src/packages/BUILD
+ rm -rf enigma-1.01
+ /usr/bin/bzip2 -dc /usr/src/packages/SOURCES/enigma-1.01.tar.bz2  
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd enigma-1.01
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ echo 'Patch (enigma-1.01.diff):'
Patch (enigma-1.01.diff):
+ /bin/cat /usr/src/packages/SOURCES/enigma-1.01.diff
+ /usr/bin/patch -s -p0 --fuzz=2
+ echo 'Patch #1 (enigma-gcc43.patch):'
Patch #1 (enigma-gcc43.patch):
+ /bin/cat /usr/src/packages/SOURCES/enigma-gcc43.patch
+ /usr/bin/patch -s -p0 --fuzz=2
+ echo 'Patch #2 (enigma-missing-return.patch):'
Patch #2 (enigma-missing-return.patch):
+ /bin/cat /usr/src/packages/SOURCES/enigma-missing-return.patch
+ /usr/bin/patch -s -p0 --fuzz=2
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.CCI3ej
+ umask 022
+ cd /usr/src/packages/BUILD
+ /bin/rm -rf /usr/src/packages/BUILDROOT/enigma-1.01-82.6.i386
++ dirname /usr/src/packages/BUILDROOT/enigma-1.01-82.6.i386
+ /bin/mkdir -p /usr/src/packages/BUILDROOT
+ /bin/mkdir /usr/src/packages/BUILDROOT/enigma-1.01-82.6.i386      
+ cd enigma-1.01
+ export 'CFLAGS=-O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables' 'CPPFLAGS=-O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables'                                                                                
+ CFLAGS='-O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables'                                                                                                            
+ CPPFLAGS='-O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables'                                                                                                          
+ ./configure --prefix=/usr --bindir=/usr/games --datadir=/usr/share --mandir=/usr/share/man
checking build system type... i686-suse-linux                                                                                   
checking host system type... i686-suse-linux                                                                                    
checking target system type... i686-suse-linux                                                                                  
checking for a BSD-compatible install... /usr/bin/install -c                                                                    
checking whether build environment is sane... yes                                                                               
checking for gawk... gawk                                  
checking whether make sets $(MAKE)... yes                                                                                       
checking whether NLS is requested... yes                                                                                        
checking for msgfmt... /usr/bin/msgfmt                                                                                          
checking for gmsgfmt... /usr/bin/msgfmt                                                                                         
checking for xgettext... /usr/bin/xgettext                                                                                      
checking for msgmerge... /usr/bin/msgmerge                                                                                      
checking for style of include used by make... 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 dependency style of gcc... gcc3                                                                                        
checking for ranlib... ranlib                                                                                                   
checking for library containing strerror... none required                                                                       
checking how to run the C preprocessor... gcc -E                                                                                
checking for egrep... grep -E                                                                                                   
checking for ANSI C header files... yes                                                                                         
checking for an ANSI C-conforming const... yes                                                                                  
checking for signed... yes                                                                                                      
checking for inline... inline                                                                                                   
checking for sys/types.h... yes                                                                                                 
checking for sys/stat.h... yes                                                                                                  
checking for stdlib.h... yes                                                                                                    
checking for string.h... yes                                                                                                    
checking for memory.h... yes                                                                                                    
checking for strings.h... yes                                                                                                   
checking for inttypes.h... yes                                                                                                  
checking for stdint.h... yes                                                                                                    
checking for unistd.h... yes                                                                                                    
checking for off_t... yes                                                                                                       
checking for size_t... yes                                                                                                      
checking for long long... yes                                                                                                   
checking for long double... yes                                                                                                 
checking for wchar_t... yes                                                                                                     
checking for wint_t... yes                                                                                                      
checking for inttypes.h... yes                                                                                                  
checking for stdint.h... yes                                                                                                    
checking for intmax_t... yes                                                                                                    
checking whether printf() supports POSIX/XSI format strings... yes                                                              
checking for working alloca.h... yes                                                                                            
checking for alloca... yes                                                                                                      
checking for stdlib.h... (cached) yes                                                                                           
checking for unistd.h... (cached) yes                                                                                           
checking for getpagesize... yes                                                                                                 
checking for working mmap... yes                                                                                                
checking whether we are using the GNU C Library 2.1 or newer... yes                                                             
checking whether integer division by zero raises SIGFPE... yes                                                                  
checking for unsigned long long... yes                                                                                          
checking for inttypes.h... yes                                                                                                  
checking whether the inttypes.h PRIxNN macros are broken... no                                                                  
checking for stdint.h... (cached) yes                                                                                           
checking for SIZE_MAX... yes                                                                                                    
checking for stdint.h... (cached) yes                                                                                           
checking for ld used by GCC... /usr/i586-suse-linux/bin/ld                                                                      
checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld... yes                                                           
checking for shared library run path origin... /bin/sh: ./config.rpath: No such file or directory
done                                                                                                                            
checking for ptrdiff_t... yes                                                                                                   
checking argz.h usability... yes                                                                                                
checking argz.h presence... yes                                                                                                 
checking for argz.h... yes                                                                                                      
checking limits.h usability... yes                                                                                              
checking limits.h presence... yes                                                                                               
checking for limits.h... yes                                                                                                    
checking locale.h usability... yes                                                                                              
checking locale.h presence... yes                                                                                               
checking for locale.h... yes                                                                                                    
checking nl_types.h usability... yes                                                                                            
checking nl_types.h presence... yes                                                                                             
checking for nl_types.h... yes                                                                                                  
checking malloc.h usability... yes                                                                                              
checking malloc.h presence... yes                                                                                               
checking for malloc.h... yes                                                                                                    
checking stddef.h usability... yes                                                                                              
checking stddef.h presence... yes                                                                                               
checking for stddef.h... yes                                                                                                    
checking for stdlib.h... (cached) yes                                                                                           
checking for string.h... (cached) yes                                                                                           
checking for unistd.h... (cached) yes                                                                                           
checking sys/param.h usability... yes                                                                                           
checking sys/param.h presence... yes                                                                                            
checking for sys/param.h... yes                                                                                                 
checking for asprintf... yes                                                                                                    
checking for fwprintf... yes                                                                                                    
checking for getcwd... yes                                                                                                      
checking for getegid... yes                                                                                                     
checking for geteuid... yes                                                                                                     
checking for getgid... yes                                                                                                      
checking for getuid... yes                                                                                                      
checking for mempcpy... yes                                                                                                     
checking for munmap... yes                                                                                                      
checking for putenv... yes                                                                                                      
checking for setenv... yes                                                                                                      
checking for setlocale... yes                                                                                                   
checking for snprintf... yes                                                                                                    
checking for stpcpy... yes                                                                                                      
checking for strcasecmp... yes                                                                                                  
checking for strdup... yes                                                                                                      
checking for strtoul... yes                                                                                                     
checking for tsearch... yes                                                                                                     
checking for wcslen... yes                                                                                                      
checking for __argz_count... yes                                                                                                
checking for __argz_stringify... yes                                                                                            
checking for __argz_next... yes
checking for __fsetlocking... yes
checking whether _snprintf is declared... no
checking whether _snwprintf is declared... no
checking whether feof_unlocked is declared... yes
checking whether fgets_unlocked is declared... yes
checking whether getc_unlocked is declared... yes
checking for iconv... yes
checking for iconv declaration...
extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for nl_langinfo and CODESET... yes
checking for LC_MESSAGES... yes
checking for bison... bison
checking version of bison... 2.3, ok
checking whether NLS is requested... yes
checking whether included gettext is requested... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking whether gcc and cc understand -c and -o together... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C preprocessor... gcc -E
checking for ranlib... (cached) ranlib
checking for texi2html... /usr/bin/texi2html
checking dirent.h usability... yes
checking dirent.h presence... yes
checking for dirent.h... yes
checking for library containing dlopen... -ldl
checking for sdl-config... /usr/bin/sdl-config
checking for SDL - version >= 1.2.0... yes
checking for main in -lSDL_image... yes
checking for main in -lSDL_mixer... yes
checking for Mix_QuickLoad_RAW in -lSDL_mixer... yes
checking for SDL_ttf >=2.0.6... found
checking for main in -lSDL_ttf... yes
checking for png_create_write_struct in -lpng... yes
checking for Xerces 3.0 experimental version... found
checking for main in -lxerces... no
configure: error: xerces is required to compile Enigma
error: Bad exit status from /var/tmp/rpm-tmp.CCI3ej (%build)


RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.CCI3ej (%build)
linux-test3:/home/uwe/Downloads #
 

lOtz1009

Moderator
Teammitglied
Steht doch da ganz zum Schluss: xerces wird benötigt

http://packages.opensuse-community.org/index.jsp?distro=openSUSE_112&searchTerm=xerces
 
OP
Pipen

Pipen

Newbie
Hi, vielen Dank für die Antwort,

und es stimmt, dort steht, dass xerces benötigt wird. Habe dieses Paket halt nicht in den bei mir eingerichteten Installationsquellen gefunden und bei dem von Dir angegeben Link sind ja doch recht viele Pakete gelistet, die mit xerces anfangen, jedoch alle einen Zusatz haben.

Habe dann mal das Paket xerces-c (3.0.1) installiert, was meinem Kompilierungsversuch leider auch nicht erfolgreich zum Abschluss gebracht hat. Die Fehlermeldung ist noch immer:

Code:
configure: error: xerces is required to compile Enigma
error: Bad exit status from /var/tmp/rpm-tmp.UbhQTo (%build)

Auch die Installation aller anderen Pakete, wo der Wortlaut xerces* vorkommt, brachte nicht den gewünschten Erfolg, hättest Du evtl. Zeit & Lust, mir ein *.rpm Paket zu Basteln? :roll:

LG aus HH

P.S.: Habe die Version enigma-1.01-82.6.src.rpm als Ausgangsbasis
 

oc2pus

Ultimate Guru
libxerces-c-devel auch installiert ?

ansonsten config.log anschauen warum die libxerces nicht gefunden wird, meist fehlt dann noch ein anderes devel-Paket :)

mit ./configure --help kann man die Optionen anschauen welche man zum compilieren zusätzlich angeben kann

das configure hat aber eher einen "Fehler":
AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <xercesc/util/XercesVersion.hpp>]],
[[if (XERCES_VERSION_MAJOR < 2)
return 1;
else if (XERCES_VERSION_MAJOR == 2 && XERCES_VERSION_MINOR < 4)
return 1;
return 0;]])],
[AC_MSG_RESULT([found])],
[AC_MSG_ERROR([Xerces >= 2.4 not found.])])
es sucht ein xerces 2.x und SuSE 11.2 hat xerces-c 3.0.x

d.h. du musst das configure.ac anpassen für xerces-c Version 3 und dann mit autoreconf -fi eine neue configure Datei erstellen.
 
OP
Pipen

Pipen

Newbie
Hallo oc2pus!

Ja, das Paket libxerces-c-devel ist auch installiert, wenn Du mir verrätst, wo ich besagte config.log finde, denn werfe ich da gerne mal einen Blick rein. :eek:ps:

Zu dem von Dir bemerkten Fehler, nebst Deiner Anleitung zur Lösung...

d.h. du musst das configure.ac anpassen für xerces-c Version 3 und dann mit autoreconf -fi eine neue configure Datei erstellen

...das sind für mich böhmische Dörfer, so intensiv habe ich mich nämlich mit Linux, respektive SuSe, noch nicht beschäftigt, da muss ich passen.

Was mich nun jedoch wundert, ich habe eben durch Zufall in dem Ordner /usr/games eine Datei Namens Enigma gefunden und auch der Start des Spiel klappt einwandfrei, weiß jedoch nicht warum, weil ich halt immer die Eingangs erwähnte Fehlermeldung beim Kompilieren bekam.

Ich setzte deshalb diesen Thread nicht auf gelöst, weil ich niemandem sagen könnte, wie ich das mit dem Spiel nun hin bekommen habe.


Lieber Gruß aus HH
 
Hallo,
da ich gerade sehe das es hier schon ein Thema Enigma unter openSUSE 11.2 gibt hänge ich mich mal direkt mit
dran,.
Im Gegensatz zum TE habe ich nicht die src.rpm sondern das tar.gz genommen.
In der Anleitung steht das man eigentlich nur mit folgendem Befehl das Spiel installieren können
sollte
Code:
./configure && make && make install
Da ich auch eine Fehlermeldung bekommen habe bin ich den Weg über die Befehlskette einzeln
gegangen, dabei stellte ich fest das schon bei ./configure der Error angezeigt wird
ohne das man schon bei make oder make install wäre.
Code:
checking build system type... x86_64-suse-linux   
checking host system type... x86_64-suse-linux    
checking target system type... x86_64-suse-linux  
checking for a BSD-compatible install... /usr/bin/install -c
checking for xgettext... no                                 
checking for msgmerge... no                                 
checking for sdl-config... no
checking for SDL - version >= 1.2.0... no
*** The sdl-config script installed by SDL could not be found

*** If SDL was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the SDL_CONFIG environment variable to the
*** full path to sdl-config.
checking for main in -lSDL_image... no
configure: error: SDL_image is required to compile Enigma
Wenn ich aber mit Zypper die obigen Pakete installieren möchte kommt diese Meldung
Code:
zypper install xgettext
Daten des Repositorys laden ...
Installierte Pakete lesen ...
'xgettext' nicht gefunden.
Paketabhängigkeiten auflösen ...

Keine auszuführenden Aktionen.
gleiches auch bei msgmerge und SDL_image
Während ich sdl-config und SDL - version gar nicht finde in meinen Repos.
Diese Pakete sind aber installiert:
Code:
rpm -qa | grep SDL*
libSDL_net-1_2-0-1.2.7-154.3.x86_64
perl-SDL_Perl-2.2.3.1-1.1.1.x86_64
libSDL-1_2-0-1.2.13-112.3.x86_64
SDL-devel-1.2.13-104.1.x86_64
SDL-1.2.13-104.1.x86_64
libSDL-1_2-0-32bit-1.2.14-126.1.x86_64
libSDL_gfx13-2.0.19-8.1.x86_64
libSDL_image-1_2-0-1.2.7-5.3.x86_64
libSDL_Pango1-0.1.2-212.3.x86_64
libSDL_ttf-2_0-0-2.0.9-155.3.x86_64
libSDL_mixer-1_2-0-1.2.8-157.3.x86_64
Ich würde ja darauf tippen, das es an einem Pfad liegt der nicht mehr der ist als dieses Enigma Paket entstanden ist.
lieben Gruß aus Hessen
 

oc2pus

Ultimate Guru
checking for main in -lSDL_image... no

==> SDL_image-devel fehlt ...

so können wir das jetzt weiter spielen :)
ohne Grundverständnis wirst du das nicht compilieren können

sdl-config ist Bestandteil des Paketes SDL-devel (bzw seit 11.2 libSDL-devel)
und bitte mit /configure --prefix=/usr aufrufen.

also nach meinen Recherchen braucht das Ding:
BuildRequires: SDL-devel >= 1.2
BuildRequires: SDL_image-devel >= 1.2
BuildRequires: SDL_mixer-devel >= 1.2.4
BuildRequires: SDL_ttf-devel >= 2.0.4
BuildRequires: gettext
BuildRequires: libpng-devel
BuildRequires: zlib-devel >= 1.2.0
BuildRequires: libxerces-c-devel

und noch 3 Patches für die neuen gcc compiler, dann könnte es klappen.
 
Hallo,
oc2pus schrieb:
==> SDL_image-devel fehlt ...
Das konnte ich auch lesen, habe aber doch kein Paket gefunden mit diesem Namen.
oc2pus schrieb:
ohne Grundverständnis wirst du das nicht compilieren können
ich bin bereit zu lernen, nur kann ich das nicht so schnell und ganz ohne Hilfe ist es schwer.
oc2pus schrieb:
sdl-config ist Bestandteil des Paketes SDL-devel (bzw seit 11.2 libSDL-devel)
Das war mal ein Hinweis der tatsächlich hilft
  • rpm -qa | grep libSDL*
    libSDL_net-1_2-0-1.2.7-154.3.x86_64
    libSDL-devel-32bit-1.2.14-126.1.x86_64
    libSDL-1_2-0-32bit-1.2.14-126.1.x86_64
    libSDL_gfx13-2.0.19-8.1.x86_64
    libSDL-1_2-0-1.2.14-126.1.x86_64
    libSDL_image-1_2-0-1.2.7-5.3.x86_64
    libSDL_Pango1-0.1.2-212.3.x86_64
    libSDL_ttf-2_0-0-2.0.9-155.3.x86_64
    libSDL-devel-1.2.14-126.1.x86_64
    libSDL_mixer-1_2-0-1.2.8-157.3.x86_64
Das sind nun die einzigen Teile wo dennoch ein no steht:
Code:
./configure
checking for xgettext... no                                 
checking for msgmerge... no                                 
checking whether we are cross compiling... no               
checking for gcc option to accept ISO C89... none needed    
checking whether the inttypes.h PRIxNN macros are broken... no     
checking whether _snprintf is declared... no
checking whether _snwprintf is declared... no
checking whether included gettext is requested... no
checking for gcc option to accept ISO C89... (cached) none needed
checking for main in -lSDL_image... no
configure: error: SDL_image is required to compile Enigma
oc2pus schrieb:
und bitte mit /configure --prefix=/usr aufrufen.
aber es fehlt immer noch was:
Code:
checking for main in -lSDL_image... no
Was bedeutet das, es wird nach Haupt in lSDL_image gesucht?!
oc2pus schrieb:
und noch 3 Patches für die neuen gcc compiler, dann könnte es klappen.
Das klingt dann schon um einiges an Mehraufwand um nur ein Spiel zu installieren.
Eventuell lohnt es sich für mich zu warten das es in eines der Repositorys aufgenommen wird.
lieben Gruß aus Hessen
 

oc2pus

Ultimate Guru
Das klingt dann schon um einiges an Mehraufwand um nur ein Spiel zu installieren.
yepp, für 11.0 hätte ich Pakete, für 11.1 ist der patch Aufwand noch grösser .... und auf SuSE-11.2 cmpiliert es schon gar nicht wegen xerces-3.x

Eine Weisheit der Dakota-Indianer sagt: "Wenn Du entdeckst, daß Du ein totes Pferd reitest, steig ab." Also werde ich kein Paket bei packman dazu veröffentlichen.
 
Hallo,
ich habe es geschafft, Enigma läuft bei mir :D
eao94i.png

also zuerst
Code:
zypper install libxerces-c-devel
dann
Code:
zypper install enigma
alles ohne das ich mir eine rpm-Datei oder gar eine tar.gz downloaden musste.
hier meine Paketquellen:
Code:
zypper lr -u
http://download.opensuse.org/repositories/KDE:/Community/openSUSE_11.2/
http://download.opensuse.org/repositories/Java:/packages/openSUSE_11.2/
http://download.opensuse.org/repositories/devel:/languages:/ruby/openSUSE_11.2/
http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/devel_languages_ruby_openSUSE_11.2/
http://download.opensuse.org/repositories/devel:/tools:/building/openSUSE_11.2/
http://download.opensuse.org/repositories/games/openSUSE_11.2/
http://download.opensuse.org/repositories/home:/enzokiel/openSUSE_11.2_Update/
http://download.opensuse.org/repositories/home:/j-engel/openSUSE_11.2/
http://download.opensuse.org/repositories/home:/jirislaby:/branches:/multimedia:/libs/openSUSE_11.2/
http://download.opensuse.org/repositories/home:/jordimassaguerpla:/Linkat_Testing:/Testing/openSUSE_11.1/
http://download.nvidia.com/opensuse/11.2
http://download.opensuse.org/distribution/11.1/repo/oss/
http://download.opensuse.org/repositories/openSUSE:/11.2:/Contrib/standard/
http://ftp.skynet.be/pub/packman/suse/11.2/
http://download.opensuse.org/debug/distribution/11.2/repo/oss/
http://download.opensuse.org/distribution/11.2/repo/non-oss/
http://download.opensuse.org/distribution/11.2/repo/oss/
http://download.opensuse.org/source/distribution/11.2/repo/oss/
http://download.opensuse.org/update/11.2/
http://download.videolan.org/pub/videolan/vlc/SuSE/11.2/
lieben Gruß aus Hessen
 

Anubid

Hacker
oc2pus schrieb:
Eine Weisheit der Dakota-Indianer sagt: "Wenn Du entdeckst, daß Du ein totes Pferd reitest, steig ab." Also werde ich kein Paket bei packman dazu veröffentlichen.

Ich habe mal kurz nachgeschaut: So tot scheint Enigma nicht zu sein.
 
Oben