LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (https://www.linuxquestions.org/questions/linux-software-2/)
-   -   Experiment with Alsaplayer Fails Build: Tarball and rpmbuild (https://www.linuxquestions.org/questions/linux-software-2/experiment-with-alsaplayer-fails-build-tarball-and-rpmbuild-180122/)

farmerdan 05-10-2004 08:14 PM

Experiment with Alsaplayer Fails Build: Tarball and rpmbuild
 
2 First of all I want to say that I'm having no problems with Alsaplayer itself. This GUI just happens to be the victim, errr, choice I made for my experiment. I also don't know where to go exactly with this post. It crosses a lot of boundaries: compiling, scripting, programming, rpmbuild, etc. I also have lots of files with lots of info, but I don't want to "shotgun" the question. I want to provide only the applicable information to aid others who may want to help me in diagnosing and repairing the situation.

In a nutshell, Alsaplayer failed in rpmbuild and it also failed to compile when I tried to see if it would install to directories other than it normally does.

I don't want to have to rely on the distributions to write rpm's for updates and new software as they become available. I also want to track what I have installed on my system and I also want an "easy" way to uninstall something that I no longer use. Therefore, I decided to learn how to build rpm's.

After I had read and researched I dove right in to build my first RPM. I have created another user account so that I neither build as 'root' nor use my own home directory. I have created a ./rpmmacros file to tell rpm to build in this accounts home directory. I put the SPEC file and source in the correct directories and tried to let rpmbuild do it's thing. Errors.

One thing I didn't do, as my reading suggested, was see if the tarball would install to a different directory since it must do that when rpmbuild operates on it. <./configure --help> provides the following information:
Code:

Installation directories:
  --prefix=PREFIX        install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX  install architecture-dependent files in EPREFIX
                          [PREFIX]

So I gave
Code:

./configure --prefix=/home/builder/tmp
The compile completed with no errors and so I ran
Code:

make
.<make> exited with the following:
Code:

make[3]: *** [nas.lo] Error 1
make[3]: Leaving directory `/home/farmerdan/alsaplayer-0.99.76/output/nas'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/farmerdan/alsaplayer-0.99.76/output'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/farmerdan/alsaplayer-0.99.76'
make: *** [all] Error 2

At the begining of a long list of errors and warnings <make> reported this:
Code:

mkdir .libs
 gcc -DHAVE_CONFIG_H -I. -I. -I../.. -D_REENTRANT -I../.. -I../../alsaplayer -O-fexpensive-optimizations -funroll-loops -finline-functions -ffast-math -Wall -g -O2 -g -O2 -MT nas.lo -MD -MP -MF .deps/nas.Tpo -c nas.c  -fPIC -DPIC -o .libs/nas.o
nas.c:38:28: audio/audiolib.h: No such file or directory
nas.c:39:28: audio/soundlib.h: No such file or directory

I don't read scripts well enough to determine exactly what's going on here, but I realize that it's tyring to create a library file. nas I have learned is a sound server. Some of the documentation for alsaplayer describes it as "...the xserver for sound." In the source tree it exists in the same directory as the output plugins.

Following the last extract from the messages there was a long, long list of errors and warnings. Below is a representative sample of the errors and warnings:
Code:

nas.c:45: error: syntax error before "AuServer"
nas.c:45: warning: no semicolon at end of struct or union
nas.c:46: warning: type defaults to `int' in declaration of `flow'
nas.c:46: warning: data definition has no type or storage class
...
nas.c:57: error: syntax error before "Nas_Info"
nas.c:57: warning: type defaults to `int' in declaration of `Nas_Info'
nas.c:57: warning: initialization makes integer from pointer without a cast
nas.c:57: warning: excess elements in scalar initializer
nas.c:57: warning: (near initialization for `Nas_Info')
...
nas.c: In function `nas_sendData':
nas.c:65: error: `numBytes' undeclared (first use in this function)
nas.c:65: error: (Each undeclared identifier is reported only once
nas.c:65: error: for each function it appears in.)
nas.c:65: error: `i' undeclared (first use in this function)
...
nas.c: In function `nas_flush':
nas.c:118: error: `AuEvent' undeclared (first use in this function)
nas.c:118: error: syntax error before "ev"
nas.c:120: error: request for member `data_sent' in something not a structure or union

I am not including a discussion of the attempt to build an rpm package because, as I understand the process, if the application won't compile and make from source it won't build in rpmbuild. NOTE: The rpm build failed at %build which is the "same" as <make>

I have searched and googled for these errors and the only thing that turned up was a report on the project page at Sourceforge that was five months old and had no response. It was interesting that the person making the report cited the same error messages with Mandrake 9.2, which is what I'm running. NOTE: My Mandrake 9.2 is a "hybrid" one. I'm running kernel-2.6.5 with some software installed from source and some rpm's from Mandrake 10 an Mandrake-Cooker.

I really don't know what this information is telling me. There is much, much more information on settings and flags in <./configure --help>, but I'm hesitant to post all of them here so that no one gets bored reading all of my quotes. If someone has some ideas or questions, I will be more than happy to provide what I can or research and provide answers to any questions that I can't readily answer.

Thanks in advance.


All times are GMT -5. The time now is 01:02 AM.