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

mpg123 auf Dell-Server installieren

Hallo,

ich hoffe meine Frage ist in diesem Sub-Forum gut aufgehoben...

Ich bin gerade dabei einen Asterisk-Server aufzusetzen bzw. zu Konfigurieren. Im zuge dessen, hab ich versucht (auf einem DELL PE SC1420) mpg123 zu installieren, dabei tritt aber folgender Fehler auf:
Code:
tk-amsec:/usr/src/packages/SOURCES/mpg123-0.59r # make linux
make CC=gcc LDFLAGS= \
        OBJECTS='decode_i386.o dct64_i386.o decode_i586.o \
                audio_oss.o term.o' \
        CFLAGS='-DI386_ASSEM -DPENTIUM_OPT -DREAL_IS_FLOAT -DLINUX \
                -DREAD_MMAP -DOSS -DTERM_CONTROL\
                -Wall -O2 -mcpu=i486 \
                -fomit-frame-pointer -funroll-all-loops \
                -finline-functions -ffast-math' \
        mpg123-make
make[1]: Entering directory `/usr/src/packages/SOURCES/mpg123-0.59r'
make[2]: Entering directory `/usr/src/packages/SOURCES/mpg123-0.59r'
gcc -DI386_ASSEM -DPENTIUM_OPT -DREAL_IS_FLOAT -DLINUX          -DREAD_MMAP -DOSS -DTERM_CONTROL                -Wall -O2 -mcpu=i486            -fomit-frame-pointer -funroll-all-loops                 -finline-functions -ffast-math   -c -o mpg123.o mpg123.c
cc1: error: CPU you selected does not support x86-64 instruction set
make[2]: *** [mpg123.o] Error 1
make[2]: Leaving directory `/usr/src/packages/SOURCES/mpg123-0.59r'
make[1]: *** [mpg123-make] Error 2
make[1]: Leaving directory `/usr/src/packages/SOURCES/mpg123-0.59r'
make: *** [linux] Error 2
tk-amsec:/usr/src/packages/SOURCES/mpg123-0.59r #
Vielleicht kann mir jemand von euch helfen den Fehler error: CPU you selected does not support x86-64 instruction set zu beheben, bzw. Alternativen für mpg123 zu finden.

Danke im Voraus, lg Dani
 
Warum willst Du das Teil selbst kompilieren? mpg321 gibt es garantiert als RPM für Deine geheime Distribution, die Du leider nicht verrätst - deswegen kann ich Dir nur sagen, dass es RPMs gibt, aber nicht wo.

PS: mpg123 = alt, unmaintained + unsicher. Verwende stattdessen mpg321.
 
Hallo traffic,

Danke für deine Antwort.

Ich möchte mpg123 deshalb selbst kompilieren, weil Asterisk mpg123 zum abspielen der Music-On-Hold-Files verwendet.

Kannst du mir bei meinem Fehler weiterhelfen?

lg Dani
 
VOIPDani86 schrieb:
Ich möchte mpg123 deshalb selbst kompilieren, weil Asterisk mpg123 zum abspielen der Music-On-Hold-Files verwendet.
Genau deswegen ist mpg321 kommandozeilenkompatibel zu mpg123, so dass man einfach einen Symlink setzen kann. Viele mpg321-RPMs enthalten diesen Symlink übrigens schon von Anfang an.
VOIPDani86 schrieb:
Kannst du mir bei meinem Fehler weiterhelfen?
Nein. Ich könnte aber einen Link zu einem RPM von mpg123 oder mpg321 oder auch Links zu beiden nennen, wenn Du verrätst, um welche Distribution es geht.

Aber OK, eigentlich kann ich doch helfen: Diese Software ist sowas von dermaßen asbach-uralt, dass sie nicht mal was von x86_64 weiß.

Dieser gcc-Aufruf hier ist ungültig:
Code:
gcc -DI386_ASSEM -DPENTIUM_OPT -DREAL_IS_FLOAT -DLINUX          -DREAD_MMAP -DOSS -DTERM_CONTROL                -Wall -O2 -mcpu=i486            -fomit-frame-pointer -funroll-all-loops                 -finline-functions -ffast-math   -c -o mpg123.o mpg123.c
Eine richtige Alternative wäre:
Code:
gcc -DREAL_IS_FLOAT -DLINUX          -DREAD_MMAP -DOSS -DTERM_CONTROL                -Wall -O2            -fomit-frame-pointer -funroll-all-loops                 -finline-functions -ffast-math   -c -o mpg123.o mpg123.c
Eine andere richtige Alternative wäre:
Code:
gcc -m32 -DI386_ASSEM -DPENTIUM_OPT -DREAL_IS_FLOAT -DLINUX          -DREAD_MMAP -DOSS -DTERM_CONTROL                -Wall -O2 -mcpu=i486            -fomit-frame-pointer -funroll-all-loops                 -finline-functions -ffast-math   -c -o mpg123.o mpg123.c
Das Makefile wäre entsprechend anzupassen. Ich bin aber nach wie vor der Meinung, dass es keine gute Idee ist, eine dermaßen alte Software mit bekannten Sicherheitslücken zu installieren und dann auch noch selbst zu kompilieren.
 
Ich könnte aber einen Link zu einem RPM von mpg123 oder mpg321 oder auch Links zu beiden nennen, wenn Du verrätst, um welche Distribution es geht.

Ein Link wäre toll, ich verwende SuSe Professional 9.2.

Danke im Voraus, lg Dani
 
Die sind sogar beide da:

http://ftp.suse.com/pub/suse/i386/update/9.2/rpm/x86_64/mpg123-0.59s-498.6.x86_64.rpm
http://ftp.suse.com/pub/suse/i386/9.2/suse/x86_64/mpg321-0.2.10-525.1.x86_64.rpm

Was waren das noch Zeiten, als es MP3-Player in Hülle und Fülle auf dem SUSE-Server gab :roll:
 
Danke für die Links, ich hab jetzt das RPM installiert, führt mich aber leider nicht zu Ziel, da mir der Asterisk mein MP3 nicht abspielt...

Die Version 0.59r wirds wohl nicht zufällig als RPM geben?

lg Dani
 
Wieso 0.59r statt 0.59s? Ich hatte doch bereits auf die Sicherheitslücken hingewiesen.

Nein, ich kenne kein SUSE-RPM der Version 0.59r.
 
Naja, der Asterisk spielt halt perfekt mit mpg123 0.59r zusammen....

Wenns kein RPM gibt, muss ich mich wohl wieder ans Makefile machen...

Das Makefile hab ich nach deinem Vorschlag angepasst, und jetzt hab ich folgenden Fehler:
Code:
tk-amsec:/usr/src/packages/SOURCES/mpg123-0.59r # make linux
make CC=gcc LDFLAGS= \
        OBJECTS='decode_i386.o dct64_i386.o decode_i586.o \
                audio_oss.o term.o' \
        CFLAGS='-m32 -DI386_ASSEM -DPENTIUM_OPT -DREAL_IS_FLOAT -DLINUX \
                -DREAD_MMAP -DOSS -DTERM_CONTROL\
                -Wall -O2 -mcpu=i486\
                -fomit-frame-pointer -funroll-all-loops \
                -finline-functions -ffast-math' \
        mpg123-make
make[1]: Entering directory `/usr/src/packages/SOURCES/mpg123-0.59r'
make[2]: Entering directory `/usr/src/packages/SOURCES/mpg123-0.59r'
gcc -m32 -DI386_ASSEM -DPENTIUM_OPT -DREAL_IS_FLOAT -DLINUX             -DREAD_MMAP -DOSS -DTERM_CONTROL                -Wall -O2 -mcpu=i486            -fomit-frame-pointer -funroll-all-loops                 -finline-functions -ffast-math   -c -o mpg123.o mpg123.c
mpg123.c: In function `shuffle_files':
mpg123.c:225: warning: implicit declaration of function `time'
mpg123.c: At top level:
mpg123.c:480: warning: initialization makes integer from pointer without a cast
gcc -m32 -DI386_ASSEM -DPENTIUM_OPT -DREAL_IS_FLOAT -DLINUX             -DREAD_MMAP -DOSS -DTERM_CONTROL                -Wall -O2 -mcpu=i486            -fomit-frame-pointer -funroll-all-loops                 -finline-functions -ffast-math   -c -o common.o common.c
gcc -m32 -DI386_ASSEM -DPENTIUM_OPT -DREAL_IS_FLOAT -DLINUX             -DREAD_MMAP -DOSS -DTERM_CONTROL                -Wall -O2 -mcpu=i486            -fomit-frame-pointer -funroll-all-loops                 -finline-functions -ffast-math   -c -o decode_i386.o decode_i386.c
gcc -m32 -DI386_ASSEM -DPENTIUM_OPT -DREAL_IS_FLOAT -DLINUX             -DREAD_MMAP -DOSS -DTERM_CONTROL                -Wall -O2 -mcpu=i486            -fomit-frame-pointer -funroll-all-loops                 -finline-functions -ffast-math   -c -o dct64_i386.o dct64_i386.c
as   -o decode_i586.o decode_i586.s
decode_i586.s: Assembler messages:
decode_i586.s:44: Error: suffix or operands invalid for `push'
decode_i586.s:45: Error: suffix or operands invalid for `push'
decode_i586.s:46: Error: suffix or operands invalid for `push'
decode_i586.s:47: Error: suffix or operands invalid for `push'
decode_i586.s:67: Error: suffix or operands invalid for `push'
decode_i586.s:70: Error: suffix or operands invalid for `push'
decode_i586.s:81: Error: suffix or operands invalid for `push'
decode_i586.s:83: Error: suffix or operands invalid for `push'
decode_i586.s:86: Error: suffix or operands invalid for `push'
decode_i586.s:161: Error: suffix or operands invalid for `pop'
decode_i586.s:211: Error: suffix or operands invalid for `pop'
decode_i586.s:296: Error: suffix or operands invalid for `pop'
decode_i586.s:315: Error: suffix or operands invalid for `pop'
decode_i586.s:316: Error: suffix or operands invalid for `pop'
decode_i586.s:317: Error: suffix or operands invalid for `pop'
decode_i586.s:318: Error: suffix or operands invalid for `pop'
make[2]: *** [decode_i586.o] Error 1
make[2]: Leaving directory `/usr/src/packages/SOURCES/mpg123-0.59r'
make[1]: *** [mpg123-make] Error 2
make[1]: Leaving directory `/usr/src/packages/SOURCES/mpg123-0.59r'
make: *** [linux] Error 2
tk-amsec:/usr/src/packages/SOURCES/mpg123-0.59r #
Vielleicht hast du noch einen Tipp für mich?

Danke im Voraus, lg Dani
 
http://ftp.suse.com/pub/suse/i386/update/9.2/rpm/src/mpg123-0.59s-498.6.src.rpm

1.) dieses rpm herunterladen.
2.) rpm -i mpg123-0.59s-498.6.src.rpm
3.) cd /usr/src/packages
4.) cd SPECS
5.) das mpg123.spec anpassen auf deine Versionsnummer, speichern (d.h. die Versionsnummer und den Namen des tar.gz oder tar.bz2 anpassen
6.) cd ..
7.) rpmbuild -bb SPECS/mpg123.spec

das fertige RPM sollte dann in einem der Unterverzeichnisse von /usr/src/packages/RPMS stehen.
8.) rpm -Uhv des selber erstellten Paketes

wobei du sehen kannst das enom viele patches erforderlich sind/waren um das Ding zu kompilieren ... ob die Patches auf die 0.59r passen ist noch fraglich, aber probiere es aus :)


ZWEITER Vorschlag:
http://thomas.orgis.org/dermixd/

mpg123-thor <== Aktuelle Version: 0.59r-thor6

dort gibt es ein statisch kompiliertes mpg123 in deine Version, evtl löst das ja dein Problem ganz easy :)

diese Version enthält auch die erforderlichen Sicherheitspatches
 
@oc2pus
Danke für deine Antwort.

Ich scheitere jetzt bei Punkt 7:
Code:
tk-amsec:/usr/src/packages/SPECS # rpmbuild -bb mpg123.spec
error: File /usr/src/packages/SOURCES/mpg123-0.59r.dif: No such file or directory

Das File mpg123.spec hab ich wie folgt angepasst:
Code:
...
Name:         mpg123
Summary:      MPEG 1 layer 1, 2, 3, and MPEG 2 Audio Player
License:      Other License(s), see package
Group:        Productivity/Multimedia/Sound/Players
#Requires:     xforms
Autoreqprov:  on
Version:      0.59r
Release:      498.6
URL:          http://www.mpg123.de/
Source:       http://www.mpg123.de/mpg123/mpg123-0.59r.tar.gz
...
 
Du musst die diffs dann auch umbenennen, diese stehen in /usr/src/packages/SOURCES und enthalten (leider) eine Versionsnummer mit 0.59s ...

Patch: mpg123-%{version}.dif
Patch1: mpg123-%{version}-buffer-fix.patch
Patch2: mpg123-%{version}-ppc.patch
Patch3: mpg123-overflow.patch
Patch4: mpg123-condecleanup.patch
Patch5: mpg123-no_strict_aliasing.patch
Patch6: mpg123-no_deprecated_arch.patch
Patch7: mpg123-http-overflow.patch
Patch8: mpg123-%{version}-proxy.patch
Patch9: mpg123-%{version}-CAN-2004-0805.patch
Patch10: mpg123-%{version}-CAN-2004-0982.patch
Patch11: mpg123-%{version}-list-overflow.patch
Patch12: mpg123-%{version}-CAN-2004-0991.patch
 
Danke für deine Antwort, aber vielleicht ist es besser einen anderen Player zu verwenden, da mich traffic bereits mehrmals auf die Sicherheitslücken von mpg123 hingewiesen hat...

Hat jemand von euch Erfahrung mit Madplay (oder Madplayer...)

lg Dani
 
probiere zuerst mal das mpg123-thor aus meinem Posting oben aus .. das funktioniert :)
(... ich nutze das auch in einem Paket von mir: dermixd!)
 
Oben