You are not logged in.

#1 2008-07-31 11:31:05

Diestelhenne
Member
From: Berlin, Germany
Registered: 2008-05-05
Posts: 31

Error compiling fusionsound

Since fusionsound and and directfb are outdated, I made them fit to the recent versions. That worked fine for directfb, but when it comes to compile fusionsound I get the following error:

make[3]: Entering directory `/home/arch/Desktop/fusionsound/src/FusionSound-1.1.1/src'                                                                          
/bin/sh ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -I../src -D_REENTRANT -I/usr/include/directfb    -D_GNU_SOURCE   -Wall -O3 -ffast-math -pipe -march=x86-64 -mtune=generic -O2 -pipe -Werror-implicit-function-declaration -MT fusionsound.lo -MD -MP -MF .deps/fusionsound.Tpo -c -o fusionsound.lo fusionsound.c                                           
mkdir .libs                                                                     
 gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -I../src -D_REENTRANT -I/usr/include/directfb -D_GNU_SOURCE -Wall -O3 -ffast-math -pipe -march=x86-64 -mtune=generic -O2 -pipe -Werror-implicit-function-declaration -MT fusionsound.lo -MD -MP -MF .deps/fusionsound.Tpo -c fusionsound.c  -fPIC -DPIC -o .libs/fusionsound.o                                                                          
fusionsound.c:120: error: conflicting types for 'FusionSoundCreate'             
../include/fusionsound.h:101: error: previous declaration of 'FusionSoundCreate' was here                                                                       
fusionsound.c:164: error: conflicting types for 'FusionSoundError'
../include/fusionsound.h:109: error: previous declaration of 'FusionSoundError'was here
fusionsound.c:175: error: conflicting types for 'FusionSoundErrorFatal'
../include/fusionsound.h:117: error: previous declaration of 'FusionSoundErrorFatal' was here
fusionsound.c:183: error: conflicting types for 'FusionSoundErrorString'
../include/fusionsound.h:125: error: previous declaration of 'FusionSoundErrorString' was here
make[3]: *** [fusionsound.lo] Error 1
make[3]: Leaving directory `/home/arch/Desktop/fusionsound/src/FusionSound-1.1.1/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/arch/Desktop/fusionsound/src/FusionSound-1.1.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/arch/Desktop/fusionsound/src/FusionSound-1.1.1'
make: *** [all] Error 2
==> ERROR: Build Failed.
    Aborting...

This is in the PKGBUILD:

build() {
  cd $startdir/src/FusionSound-$pkgver
    ./configure --prefix=/usr
  make || return 1
  make prefix=$startdir/pkg/usr install
}

Can anyone help me?

Thanks

Offline

#2 2008-07-31 11:49:25

Diestelhenne
Member
From: Berlin, Germany
Registered: 2008-05-05
Posts: 31

Re: Error compiling fusionsound

The file fusionsound.c includes the header file fusionsound.h. fusionsound.h defines FusionSoundCreate as follows:

DFBResult FusionSoundCreate(
                             IFusionSound **ret_interface  /* pointer to the created interface */
                           );

.
Later then in fusionsound.c it says:

FusionSoundCreate( IFusionSound **ret_interface )
{
     DFBResult ret;
     
     if (!fs_config) {
          D_ERROR( "FusionSoundCreate: FusionSoundInit has to be called first!\n" );
          return DFB_INIT;
     }

     if (!ret_interface)
          return DFB_INVARG;
          
     if (ifusionsound_singleton) {
          ifusionsound_singleton->AddRef( ifusionsound_singleton );
          *ret_interface = ifusionsound_singleton;
          return DFB_OK;
     }

     if (!direct_config->quiet && fs_config->banner) {
          direct_log_printf( NULL,
               "\n"
               "       --------------------- FusionSound v%d.%d.%d -------------------\n"
               "             (c) 2000-2002  convergence integrated media GmbH  \n"
               "             (c) 2002-2006  convergence GmbH                   \n"
               "        -----------------------------------------------------------\n"
               "\n",
               FUSIONSOUND_MAJOR_VERSION, FUSIONSOUND_MINOR_VERSION, FUSIONSOUND_MICRO_VERSION );
     }

     if (fs_config->remote.host)
          return CreateRemote( fs_config->remote.host, fs_config->remote.session, ret_interface );
          
     DIRECT_ALLOCATE_INTERFACE( ifusionsound_singleton, IFusionSound );
     
     ret = IFusionSound_Construct( ifusionsound_singleton );
     if (ret != DFB_OK)
          ifusionsound_singleton = NULL;
          
     *ret_interface = ifusionsound_singleton;

     return ret;
}

I'm not sure if make is right, in my eyes, that is not a redefinition. You are challenged, devs;)

Offline

#3 2010-08-02 19:25:14

cdwijs
Member
Registered: 2010-04-24
Posts: 289

Re: Error compiling fusionsound

I came across this gentoo page, it has two patches adressing this issue. Their conclusion whas that this fixed the error.
http://bugs.gentoo.org/238718

I have downloaded the patches, and copied them to the src directory, then modified my pkgbuid like this:

# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
# Contributor: Damien Alexandre <cougar@jabber.nuxo.net>

pkgname=fusionsound
pkgver=1.1.1
pkgrel=4
pkgdesc="A very powerful audio sub system in the manner of DirectFB and a technical demonstration of Fusion."
arch=('i686' 'x86_64')
url="http://www.directfb.org/index.php?path=Platform%2FFusionSound"
license="LGPL2"
depends=('directfb')
source=(http://www.directfb.org/downloads/Core/FusionSound/FusionSound-$pkgver.tar.gz
        ffmpeg.patch)
md5sums=('f29b0e6bb693e59b7303c163c737a39b'
         '5da6621b6bbcce90913e6696655b9b60')

build() {
  cd $startdir/src/FusionSound-$pkgver
  
  patch -Np0 -i $srcdir/ffmpeg.patch || return 1
  patch -Np0 -i $srcdir/FusionSound-1.1.1-ffmpeg.patch || return 1
  patch -Np0 -i $srcdir/FusionSound-1.1.1-gcc43.patch || return 1

  
  ./configure --prefix=/usr --without-examples --without-timidity
  make || return 1
  make prefix=$startdir/pkg/usr install

Now I get this error:

==> Starting build()...
patching file interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Naurp FusionSound-1.1.1-original/configure.in FusionSound-1.1.1/configure.in
|--- FusionSound-1.1.1-original/configure.in    2008-02-11 05:31:45.000000000 -0600
|+++ FusionSound-1.1.1/configure.in    2009-04-10 15:18:02.000000000 -0600
--------------------------
File to patch: ^C
==> ERROR: Aborted by user! Exiting...

Can anybody tell me how I can apply the patches? I think it has something to do with file locations.

Best regards,
Cedric

Offline

#4 2010-08-02 19:43:51

.:B:.
Forum Fellow
Registered: 2006-11-26
Posts: 5,819
Website

Re: Error compiling fusionsound

Perhaps you used the wrong -p or --strip option?

should be your clue indeed. -p0 means patch shouldn't strip the top dir from the paths it finds in the paths in the patch. So if you have a src/ dir in your untarred source directory, that should be okay, but I guess you don't.

Also, for completeness you should add the extra patches to the source array in your PKGBUILD (and to the checksums). If your hard work gets rewarded and you fix it, don't forget to post to the AUR page so the maintainer can fix the package accordingly.


Got Leenucks? :: Arch: Power in simplicity :: Get Counted! Registered Linux User #392717 :: Blog thingy

Offline

#5 2010-08-03 05:12:57

cdwijs
Member
Registered: 2010-04-24
Posts: 289

Re: Error compiling fusionsound

Ok, I'm one step closer, I have manually specified the file locations, and now fusionsound builds correctly:

cedric@laptop:/storage/home/cedric/download/fusionsound$ makepkg
==> Making package: fusionsound 1.1.1-4 (Tue Aug  3 00:03:49 CEST 2010)
==> Checking Runtime Dependencies...
==> Checking Buildtime Dependencies...
==> Retrieving Sources...
  -> Found FusionSound-1.1.1.tar.gz
  -> Found attachment.cgi?id=178691
  -> Found attachment.cgi?id=187923
  -> Found ffmpeg.patch
==> Validating source files with md5sums...
    FusionSound-1.1.1.tar.gz ... Passed
    attachment.cgi?id=178691 ... Passed
    attachment.cgi?id=187923 ... Passed
    ffmpeg.patch ... Passed
==> Extracting Sources...
  -> Extracting FusionSound-1.1.1.tar.gz with bsdtar
==> Removing existing pkg/ directory...
==> Entering fakeroot environment...
==> Starting build()...
can't find file to patch at input line 4
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Naurp FusionSound-1.1.1-original/configure.in FusionSound-1.1.1/configure.in
|--- FusionSound-1.1.1-original/configure.in    2008-02-11 05:31:45.000000000 -0600
|+++ FusionSound-1.1.1/configure.in    2009-04-10 15:18:02.000000000 -0600
--------------------------
File to patch: /storage/home/cedric/download/fusionsound/src/FusionSound-1.1.1/configure.in
patching file /storage/home/cedric/download/fusionsound/src/FusionSound-1.1.1/configure.in
can't find file to patch at input line 22
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Naurp FusionSound-1.1.1-original/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
|--- FusionSound-1.1.1-original/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c    2008-02-11 05:31:45.000000000 -0600
|+++ FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c    2009-04-10 15:18:21.000000000 -0600
--------------------------
File to patch: /storage/home/cedric/download/fusionsound/src/FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
patching file /storage/home/cedric/download/fusionsound/src/FusionSound-1.1.1/interfaces/IFusionSoundMusicProvider/ifusionsoundmusicprovider_ffmpeg.c
patching file src/fusionsound.c
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
<snip> <snip>
make[1]: Leaving directory `/storage/home/cedric/download/fusionsound/src/FusionSound-1.1.1'
==> Tidying install...
  -> Purging other files...
  -> Compressing man and info pages...
  -> Stripping unneeded symbols from binaries and libraries...
==> Creating package...
  -> Generating .PKGINFO file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: fusionsound 1.1.1-4 (Tue Aug  3 00:05:19 CEST 2010)

I have also succeeded in auto-downloading and checking the patches, but they have a weird name (attachment.cgi?id=187923)

# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
# Contributor: Damien Alexandre <cougar@jabber.nuxo.net>

pkgname=fusionsound
pkgver=1.1.1
pkgrel=4
pkgdesc="A very powerful audio sub system in the manner of DirectFB and a technical demonstration of Fusion."
arch=('i686' 'x86_64')
url="http://www.directfb.org/index.php?path=Platform%2FFusionSound"
license="LGPL2"
depends=('directfb')
source=(
    http://www.directfb.org/downloads/Core/FusionSound/FusionSound-$pkgver.tar.gz
    http://bugs.gentoo.org/attachment.cgi?id=178691
    http://bugs.gentoo.org/attachment.cgi?id=187923       
    ffmpeg.patch)
md5sums=('f29b0e6bb693e59b7303c163c737a39b'
     '120504fb54267b236a7e97c28ae34d35'
     '4ffe304faa67cbcee46c70ed2c7f04e7'
     '5da6621b6bbcce90913e6696655b9b60')

build() {
  cd $startdir/src/FusionSound-$pkgver
  #the following line can not find the correct files
  patch -N -d$srcdir -i $srcdir/attachment.cgi?id=187923 || return 1 
  patch -Np0 -i $srcdir/attachment.cgi?id=178691 || return 1

  ./configure --prefix=/usr --without-examples --without-timidity
  make || return 1
  make prefix=$startdir/pkg/usr install
}

Could somebody tell me what the correct patch line is?

Best regards,
Cedric

Offline

Board footer

Powered by FluxBB