You are not logged in.
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
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
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
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
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