Bug 2021

Summary: mixxx 1.9.0 in rpmfusion missing shoutcast support
Product: Fedora Reporter: John Brier <johnbrier>
Component: mixxxAssignee: John Brier <johnbrier>
Status: RESOLVED FIXED    
Severity: normal CC: kwizart
Priority: P5    
Version: 15   
Hardware: All   
OS: GNU/Linux   
namespace:

Description John Brier 2011-11-08 14:24:16 CET
The spec file for Mixxx 1.9.0 in rpmfusion apparently doesn't build support for broadcasting
http://www.mixxx.org/forums/viewtopic.php?f=3&t=2636&p=11122

There should be a "Live Broadcasting" section in the preferences but there isn't
http://www.mixxx.org/wiki/doku.php/internet_broadcasting?s[]=shoutcast

This bugzilla is to track adding that support in the rpmfusion build of Mixxx
Comment 1 John Brier 2011-11-08 16:21:45 CET
Well I see why shoutcast is disabled. This is from the devel spec file in CVS:

%build
export CFLAGS=$RPM_OPT_FLAGS
export CXXFLAGS=$RPM_OPT_FLAGS
scons %{?_smp_mflags} \
  prefix=%{_prefix} \
  qtdir=%{_qt4_prefix} \
  ladspa=0 \
  shoutcast=0 hifieq=1 script=0 optimize=0 \
  %{?_with_bpm:       experimentalbpm=1} \
  %{?_with_djconsole: djconsole=1} \
  %{?_with_libgpod:   ipod=1} \


I'm not even sure all of those are relevant anymore. Here is what 1.9.2 has available by default:

[rpmbuild@jb mixxx-1.9.2]$ scons --help
scons: Reading SConscript files ...
INFO:root:Target Platform: linux
INFO:root:Target Machine: x86_64
INFO:root:Build: debug
INFO:root:Toolchain: gnu
INFO:root:Crosscompile: NO
INFO:root:Qt path: /usr/share/qt4
Loading qt4 tool...
sh: bzr: command not found
sh: bzr: command not found
sh: bzr: command not found
Configuring MixxxCore
Checking for pkg-config (at least version 0.15.0)... yes
Configuring SoundTouch
Configuring KissFFT
Configuring ReplayGain
Configuring PortAudio
Checking for C library portaudio... yes
Configuring PortMIDI
Checking for C library porttime... no
Checking for C library libporttime... no
Checking for C header file porttime.h... yes
Checking for C library portmidi... yes
Configuring Qt
Checking for QtCore (4.3 or higher)... 	yes
Configuring FidLib
Configuring SndFile
Checking for C library sndfile... yes
Configuring FLAC
Checking for C header file FLAC/stream_decoder.h... yes
Checking for C library libFLAC... yes
Configuring OggVorbis
Checking for C library libvorbisfile... yes
Checking for C library libvorbis... yes
Checking for C library libogg... yes
Configuring OpenGL
Checking for C library GL... yes
Checking for C library GLU... yes
Configuring TagLib
Checking for C library tag... yes
Configuring HifiEq
Configuring MIDIScript
Configuring Mad
Checking for C library libmad... yes
Checking for C library libid3tag... yes
Configuring CoreAudio
Configuring HSS1394
Configuring VinylControl
Configuring Shoutcast
Checking for C library libshout... yes
Checking for C library vorbisenc... yes
Configuring Profiling
Configuring Tuned
Configuring QDebug
Configuring Optimize
Configuring FAAD
Configuring WavPack
Configuring TestSuite
Configuring LADSPA
Configuring MSVCDebug
Configuring MSVSHacks
Configuring AsmLib
Configuring Tonal
Configuring IPod
Configuring ScriptStudio
Configuring CMetrics
Configuring FFMPEG

Features Summary:
================
                Mixxx Core Features... Enabled
                   High quality EQs... Enabled
                     MIDI Scripting... Enabled
                    MAD MP3 Decoder... Enabled
          CoreAudio MP3/AAC Decoder... Disabled
        HSS1394 MIDI device support... Disabled
                      Vinyl Control... Enabled
   Shoutcast Broadcasting (OGG/MP3)... Enabled
     gprof/Saturn profiling support... Disabled
            Optimizing for this CPU... Disabled
           Debugging message output... Enabled
            Optimization and Tuning... Enabled -- Basic Optimizations (-03)
 FAAD AAC audio file decoder plugin... Disabled
  WavPack audio file support plugin... Disabled
                   Mixxx Test Suite... Disabled
        Experimental LADSPA Support... Disabled
                     MSVC Debugging... Disabled
                    MSVS 2005 hacks... Disabled
                 Agner Fog's ASMLIB... Disabled
  NOT-WORKING Tonal Audio Detection... Disabled
           NOT-WORKING iPod Support... Disabled
     NOT-WORKING MixxxScript Studio... Disabled
     NOT-WORKING CMetrics Reporting... Disabled
         NOT-WORKING FFMPEG support... Disabled
================
Building with flags: hifieq mad midiscript optimize qdebug shoutcast vinylcontrol
Building with CC: gcc
Building with CXX: g++
Building with CCFLAGS: -pipe -Wall -Wextra -g -O3 -fomit-frame-pointer -ffast-math -funroll-loops
Building with CPPDEFINES: -Dx86_64 -D__LINUX__ -D__UNIX__ -DSETTINGS_PATH=\".mixxx/\" -DBPMSCHEME_FILE=\"mixxxbpmscheme.xml\" -DSETTINGS_FILE=\"mixxx.cfg\" -DTRACK_FILE=\"mixxxtrack.xml\" -DUNIX_SHARE_PATH=\"/usr/local/share/mixxx\" -DALLOW_X86_OPTIMIZATIONS -D__PORTAUDIO__ -DQT_TABLET_SUPPORT -DQT_SHARED -D__SNDFILE__ -D__MIDISCRIPT__ -D__MAD__ -D__VINYLCONTROL__ -D__SHOUTCAST__
Building with CXXFLAGS: 
Building with LINKFLAGS: -Wl,-rpath,$QTDIR/lib
Building with LIBS: portaudio portmidi QtOpenGL QtXml QtSvg QtSql QtScript QtXmlPatterns QtWebKit QtGui QtNetwork QtCore QtXml QtGui QtCore QtNetwork QtOpenGL QtWebKit QtScript sndfile libFLAC libvorbisfile libvorbis libogg GL GLU tag QtScript libmad libid3tag libshout vorbisenc
================


scons: warning: The build_dir keyword has been deprecated; use the variant_dir keyword instead.
File "/home/rpmbuild/rpmbuild/BUILD/mixxx-1.9.2/SConstruct", line 82, in <module>

scons: warning: The build_dir keyword has been deprecated; use the variant_dir keyword instead.
File "/home/rpmbuild/rpmbuild/BUILD/mixxx-1.9.2/plugins/SConscript", line 11, in <module>

scons: warning: The build_dir keyword has been deprecated; use the variant_dir keyword instead.
File "/home/rpmbuild/rpmbuild/BUILD/mixxx-1.9.2/plugins/SConscript", line 17, in <module>

scons: warning: The build_dir keyword has been deprecated; use the variant_dir keyword instead.
File "/home/rpmbuild/rpmbuild/BUILD/mixxx-1.9.2/SConstruct", line 87, in <module>
sh: bzr: command not found
sh: bzr: command not found
sh: bzr: command not found
WE ARE IN: /home/rpmbuild/rpmbuild/BUILD/mixxx-1.9.2/lin64_build
Install root: /usr/local
scons: done reading SConscript files.

prefix: Set to your install prefix
    default: /usr/local
    actual: /usr/local

qtdir: Set to your QT4 directory
    default: /usr/share/qt4
    actual: /usr/share/qt4

target: Set the build target for cross-compiling (windows, osx, linux, bsd).
    default: 
    actual: 

machine: Set the machine type for cross-compiling (x86_64, x86, powerpc, powerpc64).
    default: 
    actual: 

toolchain: Specify the toolchain to use for building (gnu, msvs). Default is gnu.
    default: gnu
    actual: gnu

crosscompile_root: Set the path to the root of a cross-compile sandbox.
    default: 
    actual: 

force32: Force a 32-bit compile
    default: 0
    actual: 0

force64: Force a 64-bit compile
    default: 0
    actual: 0

hifieq: Set to 1 to enable high quality EQs
    default: 1
    actual: 1

midiscript: Set to 1 to enable MIDI Scripting support.
    default: 1
    actual: 1

mad: Set to 1 to enable MAD MP3 decoder support.
    default: 1
    actual: 1

coreaudio: Set to 1 to enable CoreAudio MP3/AAC decoder support.
    default: 0
    actual: 0

hss1394: Set to 1 to enable HSS1394 MIDI device support.
    default: 0
    actual: 0

vinylcontrol: Set to 1 to enable vinyl control support
    default: 1
    actual: 1

shoutcast: Set to 1 to enable shoutcast support
    default: 1
    actual: 1

profiling: (DEVELOPER) Set to 1 to enable profiling using gprof (Linux) or Saturn (OS X)
    default: 0
    actual: 0

tuned: Set to 1 to optimize mixxx for this CPU (overrides "optimize")
    default: 0
    actual: 0

qdebug: Set to 1 to enable verbose console debug output.
    default: 1
    actual: 1

optimize: Set to:
  1 for -O3 compiler optimizations
  2 for Pentium 4 optimizations
  3 for Intel Core optimizations
  4 for Intel Core 2 optimizations
  5 for Athlon-4/XP/MP optimizations
  6 for K8/Opteron/AMD64 optimizations
  7 for K8/Opteron/AMD64 w/ SSE3
  8 for Celeron D (generic SSE/SSE2/SSE3) optimizations.
    default: 1
    actual: 1

faad: Set to 1 to enable building the FAAD AAC decoder plugin.
    default: 0
    actual: 0

wv: Set to 1 to enable building the WavPack support plugin.
    default: 0
    actual: 0

test: Set to 1 to build Mixxx test fixtures.
    default: 0
    actual: 0

ladspa: (EXPERIMENTAL) Set to 1 to enable LADSPA plugin support
    default: 0
    actual: 0

asmlib: Set to 1 to enable linking against Agner Fog's hand-optimized asmlib, found at http://www.agner.org/optimize/
    default: 0
    actual: 0

tonal: Set to 1 to enable tonal analysis
    default: 0
    actual: 0

ipod: Set to 1 to enable iPod support through libgpod
    default: 0
    actual: 0

script: Set to 1 to enable MixxxScript/QtScript Studio support.
    default: 0
    actual: 0

cmetrics: Set to 1 to enable crash reporting/usage statistics via Case Metrics (This should be disabled on development builds)
    default: 0
    actual: 0

ffmpeg: (NOT-WORKING) Set to 1 to enable FFMPEG support
    default: 0
    actual: 0

Use scons -H for help about command-line options.
[rpmbuild@jb mixxx-1.9.2]$ pwd
/home/rpmbuild/rpmbuild/BUILD/mixxx-1.9.2
Comment 2 John Brier 2011-11-08 17:03:29 CET
current mixxx build options for rpmfusion review

here are the current scons options in the rpmfusion spec file
followed by their defaults from scons --help in mixxx 1.9.2
followed by comments

= ladspa =
rpmfusion: 
ladspa=0

Mixxx:
ladspa: (EXPERIMENTAL) Set to 1 to enable LADSPA plugin support
    default: 0
    actual: 0

why are we explicitally disabling this in the spec when the default is disabled?

= shoutcast =
rpmfusion:
shoutcast=0

Mixxx:
shoutcast: Set to 1 to enable shoutcast support
    default: 1
    actual: 1

let's enable this per user request

= hifieq =
rpmfusion: 
hifieq=1

Mixxx:
hifieq: Set to 1 to enable high quality EQs
    default: 1
    actual: 1

why are we explictally enabling this in the spec when the default is enabled?

= script =
rpmfusion:
script=0

Mixxx
script: Set to 1 to enable MixxxScript/QtScript Studio support.
    default: 0
    actual: 0
why are we explicitally disabling this in the spec when the default is disabled?

= optimize =
rpmfusion:
optimize=0

Mixxx:
optimize: Set to:
  1 for -O3 compiler optimizations
  2 for Pentium 4 optimizations
  3 for Intel Core optimizations
  4 for Intel Core 2 optimizations
  5 for Athlon-4/XP/MP optimizations
  6 for K8/Opteron/AMD64 optimizations
  7 for K8/Opteron/AMD64 w/ SSE3
  8 for Celeron D (generic SSE/SSE2/SSE3) optimizations.
    default: 1
    actual: 1

This makes sense, we don't want any more optimiztions than -O2 per Fedora:

http://fedoraproject.org/wiki/Packaging/Guidelines#Compiler_flags

from: /usr/lib/rpm/redhat/macros

%__global_cflags	-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4
/usr/lib/rpm/redhat/rpmrc
optflags: i386 %{__global_cflags} -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables
optflags: i486 %{__global_cflags} -m32 -march=i486 -fasynchronous-unwind-tables
optflags: i586 %{__global_cflags} -m32 -march=i586 -mtune=generic -fasynchronous-unwind-tables
optflags: i686 %{__global_cflags} -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables
optflags: athlon %{__global_cflags} -m32 -march=athlon -fasynchronous-unwind-tables
optflags: ia64 %{__global_cflags}
optflags: x86_64 %{__global_cflags} -m64 -mtune=generic

from: /usr/lib/rpm/redhat/macros

%__global_cflags	-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4


= experimentalbpm =
rpmfusion:

  %{?_with_bpm:       experimentalbpm=1} \

Mixxx:
??? nothing like this exists in 1.9.2 anymore

= djconsole =
rpmfusion:

  %{?_with_djconsole: djconsole=1} \

Mixxx:
??? nothing like this exists in 1.9.2 anymore

= ipod =
rpmfusion:

  %{?_with_libgpod:   ipod=1} \

Mixxx:
ipod: Set to 1 to enable iPod support through libgpod
    default: 0
    actual: 0

We are enabling this over the default scons/mixxx preference. it's been this way for a long time so I see no reason to change it.
Comment 3 John Brier 2011-11-08 17:18:45 CET
(In reply to comment #2)
> = ipod =
> rpmfusion:
> 
>   %{?_with_libgpod:   ipod=1} \
> 
> Mixxx:
> ipod: Set to 1 to enable iPod support through libgpod
>     default: 0
>     actual: 0
> 
> We are enabling this over the default scons/mixxx preference. it's been this
> way for a long time so I see no reason to change it.

JBstrikesagain	hmm having a build error with ipod i think
JBstrikesagain	scons: *** [lin64_build/wipodtracksmodel.o] Source `src/wipodtracksmodel.cpp' not found, needed by target `lin64_build/wipodtracksmodel.o'.
JBstrikesagain	[rpmbuild@jb rpmbuild]$ find BUILD/mixxx-1.9.2/ -name '*ipod*'
JBstrikesagain	[rpmbuild@jb rpmbuild]$ 
JBstrikesagain	by default ipod support is not enabled in scons.. i thought rpmfusion spec file had it enabled but i'm not certain.. so i will disable it for mow
JBstrikesagain	now
rryan`	ipod support was never finisehd
rryan`	finished
rryan`	yea it doesnt work
JBstrikesagain	rryan`: ok cool
JBstrikesagain	disabled.
Comment 4 Nicolas Chauvet 2012-05-04 00:46:30 CEST
This one is fixed.

But with 1.10.0 you might review what can be enabled:

                Mixxx Core Features... Enabled
                   High quality EQs... Enabled
                     MIDI Scripting... Enabled
                    MAD MP3 Decoder... Enabled
          CoreAudio MP3/AAC Decoder... Disabled
Media Foundation AAC Decoder Plugin... Disabled
        HSS1394 MIDI device support... Disabled
                      Vinyl Control... Enabled
   Shoutcast Broadcasting (OGG/MP3)... Enabled
     gprof/Saturn profiling support... Disabled
            Optimizing for this CPU... Disabled
           Debugging message output... Enabled
         Verbose compilation output... Enabled
            Optimization and Tuning... Disabled
 FAAD AAC audio file decoder plugin... Disabled
  WavPack audio file support plugin... Disabled
                   Mixxx Test Suite... Disabled
        Experimental LADSPA Support... Disabled
                     MSVC Debugging... Disabled
                    MSVS 2005 hacks... Disabled
                   Google PerfTools... Disabled
                 Agner Fog's ASMLIB... Disabled
  NOT-WORKING Tonal Audio Detection... Disabled
           NOT-WORKING iPod Support... Disabled
     NOT-WORKING MixxxScript Studio... Disabled
     NOT-WORKING CMetrics Reporting... Disabled
         NOT-WORKING FFMPEG support... Disabled