Bug 227

Summary: Review request: xmms2-freeworld - Plugins for XMMS2 that cannot be included in Fedora
Product: Package Reviews Reporter: Orcan Ogetbil <oget.fedora>
Component: Review RequestAssignee: Nicolas Chauvet <kwizart>
Status: RESOLVED FIXED    
Severity: normal CC: dominik, fedora, kwizart, rpmfusion-package-review, tcallawa
Priority: P5    
Version: Current   
Hardware: All   
OS: GNU/Linux   
namespace:
Bug Depends on:    
Bug Blocks: 4    
Attachments: Patch to fix compilation with current libavcodec

Description Orcan Ogetbil 2008-12-05 22:27:16 CET
SPEC: http://www.auroralinux.org/people/spot/review/new/xmms2-freeworld.spec
SRPM: http://www.auroralinux.org/people/spot/review/new/xmms2-freeworld-0.5-1.fc11.src.rpm

Description: 
XMMS2 is an audio framework, but it is not a general multimedia player - it 
will not play videos. It has a modular framework and plugin architecture for 
audio processing, visualisation and output, but this framework has not been 
designed to support video. Also the client-server design of XMMS2 (and the 
daemon being independent of any graphics output) practically prevents direct 
video output being implemented. It has support for a wide range of audio 
formats, which is expandable via plugins. It includes a basic CLI interface 
to the XMMS2 framework, but most users will want to install a graphical XMMS2 
client (such as gxmms2 or esperanza).

This package contains avcodec, faad, mad, mms and mp4 plugins for XMMS2.

Rpmlint: Silent

Why rpmfusion? : For obvious reasons.

Depends on: https://bugzilla.redhat.com/show_bug.cgi?id=474908
Comment 1 Orcan Ogetbil 2008-12-11 09:39:03 CET
Update:
Fedora package "xmms2" passed the review.

SPEC: http://6mata.com:8014/review/xmms2-freeworld.spec
SRPM: http://6mata.com:8014/review/xmms2-freeworld-0.5-2.fc10.src.rpm

The "xmms2-freeworld" package is updated in parallel with the changes asked by the Fedora review for the "xmms2" package.
Comment 2 Nicolas Chauvet 2008-12-11 18:48:30 CET
compilation failed with the new ffmpeg in rpmfusion rawhide for F-11:
-----------------------
/usr/lib/ccache/gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fPIC -DPIC -D_REENTRANT -D_REENTRANT  -Idefault/src/include -I../src/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I. -Idefault -I..  ../src/plugins/daap/daap_mdns_avahi.c -c -o default/src/plugins/daap/daap_mdns_avahi.os
[134/328] * cc : src/plugins/avcodec/avcodec.c -> _build_/default/src/plugins/avcodec/avcodec.os
../src/plugins/avcodec/avcodec.c: In function 'xmms_avcodec_init':
../src/plugins/avcodec/avcodec.c:174: error: 'AVCodecContext' has no member named 'bits_per_sample'
../src/plugins/avcodec/avcodec.c: In function 'xmms_avcodec_read':
../src/plugins/avcodec/avcodec.c:251: warning: implicit declaration of function 'avcodec_decode_audio'
/usr/lib/ccache/gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fPIC -DPIC  -Idefault/src/include -I../src/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/ffmpeg -I. -Idefault -I..  ../src/plugins/avcodec/avcodec.c -c -o default/src/plugins/avcodec/avcodec.os
ERROR:  == Runner ==  task failed! (return code 129 and task id 167)
ERROR:  == Task ==  -- task details begin --
action: cc
idx:    167
source: [</builddir/build/BUILD/xmms2-0.5DrLecter/src/plugins/avcodec/avcodec.c>]
target: [<b:/builddir/build/BUILD/xmms2-0.5DrLecter/src/plugins/avcodec/avcodec.os>]
-- task details end --
[135/328] * cc : src/plugins/cdda/cdda.c -> _build_/default/src/plugins/cdda/cdda.os
/usr/lib/ccache/gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fPIC -DPIC  -Idefault/src/include -I../src/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I. -Idefault -I..  ../src/plugins/cdda/cdda.c -c -o default/src/plugins/cdda/cdda.os
Compilation failed 
 (error raised in module Build) 
------------------
You should wait for the libraw1394-devel and others pkg-config requirement pulled from ffmpeg-devel.

* Is it possible/relevant to have a xmms2-freeworld meta-package or should we handle that with group using comps ?

* Maybe someone can think about the mac module (will be nonfree, if allowed to get redistributed).

* There is usually no need to rebuild all the modules. That doesn't matter for now, but it would be easier in case of a nosrc.rpm for the mac nonfree plugin (again, if anyone cares).
You can at least start to lower the module/dependencies requested to only BuildRequires the common ones along with the freeworld ones.

Package built fine on rpmbuild F-9 x86_64. Doing runtime testing now...



Comment 3 Dominik 'Rathann' Mierzejewski 2008-12-11 22:08:15 CET
(In reply to comment #2)
[...]
> You should wait for the libraw1394-devel and others pkg-config requirement
> pulled from ffmpeg-devel.

Why do you say ffmpeg-devel needs to Require: libraw1394-devel?
Comment 4 Nicolas Chauvet 2008-12-11 23:42:33 CET
(In reply to comment #3)
> (In reply to comment #2)
> [...]
> > You should wait for the libraw1394-devel and others pkg-config requirement
> > pulled from ffmpeg-devel.
> 
> Why do you say ffmpeg-devel needs to Require: libraw1394-devel?
I told you that since you have Requires.private libraw1394 in libavcodec.pc,
the libraw1394.pc needs to be pulled. If not, the pkg-config libavcodec detection will fail. At this time, they are not added automatically by rpm.


Comment 5 Dominik 'Rathann' Mierzejewski 2008-12-12 21:52:44 CET
(In reply to comment #4)
> (In reply to comment #3)
> > (In reply to comment #2)
> > [...]
> > > You should wait for the libraw1394-devel and others pkg-config requirement
> > > pulled from ffmpeg-devel.
> > 
> > Why do you say ffmpeg-devel needs to Require: libraw1394-devel?
> I told you that since you have Requires.private libraw1394 in libavcodec.pc,
> the libraw1394.pc needs to be pulled. If not, the pkg-config libavcodec
> detection will fail. At this time, they are not added automatically by rpm.
> 

Actually, the problem was in FFmpeg's .pc files. This is fixed in ffmpeg-0.4.9-0.54.20081202. The compilation problem is fixed with the attached patch.
Comment 6 Dominik 'Rathann' Mierzejewski 2008-12-12 21:53:30 CET
Created attachment 54 [details]
Patch to fix compilation with current libavcodec
Comment 7 Orcan Ogetbil 2008-12-13 01:33:57 CET
Update:
SPEC: http://6mata.com:8014/review/xmms2-freeworld.spec
SRPM: http://6mata.com:8014/review/xmms2-freeworld-0.5-3.fc10.src.rpm

Changelog 0.5-3:
- Add meta package
- Include more upstream patches for avcodec plugin compilation and fixes
- Drop BR's and patches that are irrelevant for compiling freeworld plugins

I had to include 6 more upstream patches in order to apply the latest one that fixes avcodec plugin compilation issues with the latest ffmpeg. Actually I included all the avcodec patches since the release of the 0.5 version now.

Should I combine all these avcodec patches into one big patch or is this ok?
Comment 8 Dominik 'Rathann' Mierzejewski 2008-12-13 12:55:14 CET
(In reply to comment #7)
> Should I combine all these avcodec patches into one big patch or is this ok?

I'd say: whatever is more convenient for you.
Comment 9 Nicolas Chauvet 2008-12-15 18:10:59 CET
When using rpmbuild on develoment system,:
----------------------
  /usr/lib/ruby/site_ruby/1.8/xmmsclient.rb
   /usr/lib/ruby/site_ruby/1.8/xmmsclient/async.rb
   /usr/lib/ruby/site_ruby/1.8/xmmsclient/sync.rb
   /usr/lib64/ruby/site_ruby/1.8/x86_64-linux/xmmsclient_ecore.so
   /usr/lib64/ruby/site_ruby/1.8/x86_64-linux/xmmsclient_ext.so
   /usr/lib64/ruby/site_ruby/1.8/x86_64-linux/xmmsclient_glib.so
   /usr/lib64/xmms2/libxmms_mac.so
----------------------
We often get packages that was meant to be disabled.Maybe it would be better to disable them on the %configure line (same as for the xmms2 package).
Once that said, that's just something we might keep in mind when dealing with such modular package.
(note that the mac module seems to build).

Still testing mock built on F-9 x86_64 and F-10 x86...
Comment 10 Orcan Ogetbil 2008-12-15 22:06:25 CET
Update:
SPEC: http://6mata.com:8014/review/xmms2-freeworld.spec
SRPM: http://6mata.com:8014/review/xmms2-freeworld-0.5-4.fc10.src.rpm

%changelog 0.5-4
- Disable building of everything possible that do not go to the freeworld plugins
- Add bits for mac plugin, but keep it disabled until mac becomes free
Comment 11 Kevin Kofler 2008-12-16 08:18:59 CET
You also have to comment out this line:
Requires:		xmms2-mac = %{version}-%{release}
Comment 12 Kevin Kofler 2008-12-16 08:25:05 CET
Oh, and I'm not sure we need the mac plugin at all: ffmpeg already has a decoder for Monkey's Audio, which is not based on the official non-Free mac, but on libdemac which is rewritten from scratch. On the other hand, that decoder only supports the current format and not the versions from old versions of Monkey's Audio.
Comment 13 Orcan Ogetbil 2008-12-16 08:35:04 CET
Good catch. Thanks.
SPEC: http://6mata.com:8014/review/xmms2-freeworld.spec
SRPM: http://6mata.com:8014/review/xmms2-freeworld-0.5-5.fc10.src.rpm

I am aware of what you said. It is the only decoder that supports old APE files.

But I am not sure either. Let's hear what the reviewer will say.
Comment 14 Nicolas Chauvet 2008-12-16 10:29:55 CET
Well, It seems that the related mac package is nonfree. so It won't be enabled in the freeworld version I guess.
Comment 15 Nicolas Chauvet 2008-12-16 12:02:10 CET
Package built with mock on F-10 x86 and F-9 x86_64.
Tested at runtime on both arches, everything is fine.

----------------------------------

This package (xmms2-freeworld) is APPROVED

----------------------------------
Comment 16 Orcan Ogetbil 2008-12-16 17:16:10 CET
Package CVS request
======================
Package Name: xmms2-freeworld
Short Description: Plugins for XMMS2 that cannot be included in Fedora
Owners: oget
Branches: F-9 F-10
InitialCC:
----------------------
License tag: free
Comment 17 Thorsten Leemhuis 2008-12-16 19:31:10 CET
(In reply to comment #16)
> Package CVS request
done
Comment 18 Orcan Ogetbil 2008-12-16 21:47:04 CET
Package built fine for F-9 and F-10.
But it failed for devel. The configure script does not detect libavcodec. I guess it is about the pkgconfig issue Nicolas mentioned. Is there a way to workaround it?
Comment 19 Orcan Ogetbil 2009-01-16 19:03:54 CET
Package has been in the repo for a while. Closing the bug.