Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates-src > by-pkgid > f967f5f6a1d8dc0ff357a43370aaad92 > files > 15

armstrong-0.2.6-11.fc13.src.rpm

%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}

Name:           armstrong
Version:        0.2.6
Release:        11%{?dist}
Summary:        Powerful music sequencing library
Group:          System Environment/Libraries
# src/plugins/Geonik is GPL+
# src/plugins/fft is BSD
# src/plugins/btdsys_ringmod is BSD
# src/plugins/firesledge_parameq is LGPLv2+
# src/plugins/zzub_stream/resampler is LGPLv2+
# src/plugins/bigyo_frequencyshifter is LGPLv2+
# src/plugins/buzz2zzub is LGPLv2+ and GPLv2+
# src/plugins/graue_softsat is Public Domain
# src/plugins/zzub_stream is LGPLv2+
# The core part of the library is LGPLv2+
# The rest is GPL+ or GPLv2+
License:        GPLv2+ and GPL+ and BSD and LGPLv2+
URL:            http://code.google.com/p/armstrong/
# The original source tarball
#    http://armstrong.googlecode.com/files/armstrong-0.2.6.tar.gz
# contains libmad, which is a MP3 decoder/encoder, that cannot be 
# included in Fedora because it is patent encumbered. We remove 
#    src/libmad
#    src/plugins/zzub_stream/stream_mp3.*
# from the tarball and remove the MP3 related bits from
#    src/libzzub/import.h
#    src/libzzub/player.cpp
#    src/plugins/zzub_stream/main.h
#    src/plugins/zzub_stream/SConscript
# and we also remove a directory that has some proprietary code
#    src/rtaudio/include
# to produce the following file:
Source0:        %{name}-%{version}-fe.tar.gz
# Fix build issues (optflags, drop sse optimizations). Also
# disable compilation of ccmplayer, which is not ready for
# this release
# Since these (except the last one) are Fedora-specific, and ccmplayer 
# non-compilation is very obivous, they are not sent upstream.
Patch0:         armstrong-buildfix.patch
# armstrong comes with bunch of libraries built in statically
# we modify the sources to link to system libraries
# http://bitbucket.org/paniq/armstrong/issue/6/link-armstrong-to-internal-libraries
Patch1:         armstrong-use-system-libs.patch
# Fix gcc-4.4 issues
# http://bitbucket.org/paniq/armstrong/issue/7/build-with-gcc-44
Patch2:         armstrong-gcc44.patch
# Fix size_t issues for 64bit systems and maybe others
# http://bitbucket.org/paniq/armstrong/issue/8/size_t-issue
Patch3:         armstrong-size_t.patch
# Build shared libraries with proper sonames
# http://bitbucket.org/paniq/armstrong/issue/9/build-libraries-with-sonames
Patch4:         armstrong-sonamefix.patch
# Add 64bit plugin paths
# http://bitbucket.org/paniq/armstrong/issue/11/64bit-plugin-paths
Patch5:         armstrong-64bit.patch
# Support multiple instances of DSSI plugins that require run_multiple_synths()
# http://bitbucket.org/paniq/armstrong/changeset/bcb8dd70b78f/
Patch6:         armstrong-bcb8dd70b78f.diff
# Resolve undefined symbols
# http://bitbucket.org/paniq/armstrong/issue/12/undefined-symbols
Patch7:         armstrong-define-symbols.patch
# Resolve a conflict in the namespace against new boost
# http://bitbucket.org/paniq/armstrong/issue/17/trunk-fails-to-build-w-boost-graph-140
Patch8:         armstrong-conflict-namespace.patch
# Repair lunar support
# http://bitbucket.org/paniq/armstrong/issue/15/lunar-does-not-work
Patch9:         armstrong.git-0625ca6e4a4ebf9b6182334f027ed9d79734e28b.patch
# More lunar fixes. From upstream trunk. Fixes RHBZ#508779
# http://bitbucket.org/paniq/armstrong/changeset/57a562c38b47/
Patch10:        armstrong-57a562c38b47.diff
# superfm fix
# http://www.bitbucket.org/paniq/armstrong/changeset/29f9f6e28626
Patch11:        armstrong-29f9f6e28626.diff
# new lunar note plugin
# http://www.bitbucket.org/paniq/armstrong/changeset/a8789ff6ae37
Patch12:        armstrong-a8789ff6ae37.diff
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  alsa-lib-devel
BuildRequires:  boost-devel
BuildRequires:  dssi-devel
BuildRequires:  doxygen epydoc
BuildRequires:  fftw-devel
BuildRequires:  flac-devel
BuildRequires:  jack-audio-connection-kit-devel
BuildRequires:  ladspa-devel
BuildRequires:  libsamplerate-devel
BuildRequires:  libsndfile-devel 
BuildRequires:  minizip-devel
BuildRequires:  portaudio-devel
BuildRequires:  portmidi-devel
BuildRequires:  python-setuptools-devel
BuildRequires:  rtaudio-devel
BuildRequires:  rubberband-devel
BuildRequires:  scons
BuildRequires:  zlib-devel

Obsoletes:      libzzub <= 0.2.5
Provides:       libzzub = %{version}-%{release}

%description
If you are searching for a foundation for your next soundtracker, armstrong is
what you want. armstrong provides an extensible DSP plugin system, a wavetable, 
instruments, a multitrack sequencer and support for major soundcard APIs.
armstrong includes zzub and lunar libraries.


%package        devel
Summary:        Development files for %{name}
Group:          Development/Libraries
License:        GPLv2+
Requires:       %{name} = %{version}-%{release}
Obsoletes:      libzzub-devel <= 0.2.5
Provides:       libzzub-devel = %{version}-%{release}

%description    devel
The %{name}-devel package contains libraries and header files for developing 
applications and plugins that use %{name}.


%package -n     pyzzub
Summary:        Python Bindings For libzzub
Group:          System Environment/Libraries
License:        GPLv2+
BuildArch:      noarch
Obsoletes:      pyzzub < 0.2.6-9
Requires:       %{name} = %{version}-%{release}

%description -n pyzzub
These are the Python bindings for armstrong, allowing you to use it from within
Python scripts.


%prep
%setup -q -n %{name}
%patch0 -p1 -b .buildfix
%patch1 -p1 -b .internallibs
%patch2 -p1 -b .gcc44
%patch3 -p1 -b .size_t
%patch4 -p1 -b .soname
%patch5 -p1 -b .64bit
%patch6 -p1 -b .multidssi
%patch7 -p1 -b .symbols
%patch8 -p1 -b .conflict
%patch9 -p1 -b .lunarrepair
%patch10 -p1 -b .lunarstacksmashing
%patch11 -p1 -b .superfm
%patch12 -p1 -b .lunarnote
# To build against portmidi >=184
%if 0%{fedora} > 12
sed -i '/porttime/d' src/libzzub/SConscript
%endif

# Remove the binded libraries. We'll use the system-wide ones
pushd src
    rm -fr libsndfile flac rubberband zlib bmp-ccm \
           portmidi portaudio rtaudio minizip
popd
rm -f include/{dssi,ladspa}.h

# Remove the precompiled binaries
for ext in aps bc dll exe lib ncb zip; do
    find . -name "*.$ext" | xargs rm -f -- || :
done

# There are many source files with wrong permissions and EOL encodings. Fix these
pushd src/plugins
    for ext in cpp h hpp; do
        find . -name "*.$ext" \
               -exec chmod 0644 '{}' \; \
               -exec sed -i "s|\r||" '{}' \;
    done
popd

# Fix the encoding issues with text files
for ext in txt ini; do
    for file in $(find . -name "*.$ext"); do
        sed 's|\r||' $file > tmpfile
        iconv --from-code=ISO-8859-1 --to-code=UTF-8 tmpfile > tmpfile2
        touch -r $file tmpfile2
        mv -f tmpfile2 $file
    done
done


%build
scons configure \
        PREFIX=%{_prefix} \
        LIBDIR=/%{_lib} \
        optflags="%{optflags}" \
%ifarch %{ix86}
        SSE="true" \
%endif
%ifarch x86_64 ia64
        SSE2="true" \
%endif
        MP3="False"

scons %{?_smp_mflags}

# Build the documentation:
# (REMINDER: There is an incomplete docbook documentation that we might want
#            to replace with the doxygen documentation in a future release)
pushd share/doc
    ./make_pyzzub_doc
    mv pyzzub html
    doxygen libzzub.dox
    doxygen libzzub-cpp.dox
    doxygen libzzub-plugin.dox
popd


%install
rm -rf $RPM_BUILD_ROOT
scons install DESTDIR=$RPM_BUILD_ROOT 

# signature.h differs per build host, circumvent multiarch conflicts
mv $RPM_BUILD_ROOT%{_includedir}/zzub/signature.h \
%ifarch x86_64 ppc64
    $RPM_BUILD_ROOT%{_includedir}/zzub/signature-64.h
%else
    $RPM_BUILD_ROOT%{_includedir}/zzub/signature-32.h
%endif

cat > $RPM_BUILD_ROOT%{_includedir}/zzub/signature.h << EOF
#include <bits/wordsize.h>

#if __WORDSIZE == 32
#include "signature-32.h"
#elseif __WORDSIZE == 64
#include "signature-64.h"
#else
#error "Unknown word size"
#endif
EOF

# We want to install docs to the proper location:
mkdir -p installed_docs
mv $RPM_BUILD_ROOT%{_docdir}/zzub/* installed_docs/

# Collect the doc files scattered around the source tree:
cp -a CREDITS.txt ChangeLog LICENCE installed_docs/
cp -a share/zzub installed_docs/
mkdir -p installed_docs/plugins/lad2zzub
cp -a src/plugins/lad2zzub/gpl.txt installed_docs/plugins/lad2zzub/
mkdir -p installed_docs/plugins/Geonik
cp -a src/plugins/Geonik/readme.txt installed_docs/plugins/Geonik/
mkdir -p installed_docs/plugins/buzz2zzub
cp -a src/plugins/buzz2zzub/buzz2zzub.ini installed_docs/plugins/buzz2zzub
mkdir -p installed_docs/plugins/jmmcd_Note_Pool
cp -a src/plugins/jmmcd_Note_Pool/{index.html,note-pool-test.ccm} installed_docs/plugins/jmmcd_Note_Pool
mkdir -p installed_docs/plugins/Intoxicat_ACloud
cp -a src/plugins/Intoxicat_ACloud/Intoxicat\ ACloud.htm installed_docs/plugins/Intoxicat_ACloud
mkdir -p installed_docs/plugins/fft
cp -a src/plugins/fft/{test/tailscrap.m,CHANGELOG,COPYING,TIPS,README} installed_docs/plugins/fft
mkdir -p installed_docs/plugins/MadBrain_Dynamite6
cp -a src/plugins/MadBrain_Dynamite6/MadBrains_Dynamite6*.{bmx,prs} installed_docs/plugins/MadBrain_Dynamite6
mkdir -p installed_docs/plugins/CyanPhase_DTMF-1
cp -a src/plugins/CyanPhase_DTMF-1/CyanPhase_DTMF-1.{txt,bmx} installed_docs/plugins/CyanPhase_DTMF-1
cp -a src/plugins/firesledge_parameq/license.txt installed_docs/plugins/firesledge_parameq
mkdir -p installed_docs/plugins/fsm_infector/
cp -a src/plugins/fsm_infector/todo.txt installed_docs/plugins/fsm_infector/
mkdir -p installed_docs/plugins/psy2zzub
cp -a src/plugins/psy2zzub/gpl.txt installed_docs/plugins/psy2zzub
mkdir -p installed_docs/plugins/matilde_tracker
cp -a src/plugins/matilde_tracker/Matilde\ Tracker.html installed_docs/plugins/matilde_tracker
mkdir -p installed_docs/plugins/zzub_stream/resampler
cp -a src/plugins/zzub_stream/resampler/{license,readme}.txt installed_docs/plugins/zzub_stream/resampler
mkdir -p installed_docs/plugins/dssidapter
cp -a src/plugins/dssidapter/README.txt installed_docs/plugins/dssidapter
mkdir -p installed_docs/plugins/zzub_module
cp -a src/plugins/zzub_module/libmodfile/readme.txt installed_docs/plugins/zzub_module
cp -a src/plugins/green_milk/{about_te.bin,LICENSE} installed_docs/plugins/green_milk
mkdir -p installed_docs/plugins/Elenzil_Modulator
cp -a src/plugins/Elenzil_Modulator/elenziltest.bmx installed_docs/plugins/Elenzil_Modulator

# Remove the shebang from the python library
sed -i '\|^#!/usr/bin/env python|d' $RPM_BUILD_ROOT%{python_sitelib}/zzub/__init__.py

# Install the python egg properly
pushd src/pyzzub
    python -c 'import setuptools; execfile("setup.py")' install --skip-build --root $RPM_BUILD_ROOT
popd


%clean
rm -rf $RPM_BUILD_ROOT


%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig


%files
%defattr(-,root,root,-)
%doc installed_docs/*
%{_libdir}/*.so.*
%{_libdir}/zzub
%{_libdir}/lunar

%files devel
%defattr(-,root,root,-)
%doc share/doc/zzub/api*
%{_includedir}/*
%{_libdir}/*.so

%files -n pyzzub
%defattr(-,root,root,-)
%doc src/pyzzub/testzzub.py share/doc/html
%{python_sitelib}/*

%changelog
* Fri Mar 05 2010 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-11
- Fix stack smashing in 32 bit systems RHBZ#508779
- More lunar fixes
- Superfm fix
- New lunar note plugin

* Sat Feb 13 2010 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-10
- Link against rtaudio-4.0.7
- Repair lunar support

* Sat Jan 30 2010 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-9
- Rebuild against portmidi-200 (on F-13+)
- Make the pyzzub package noarch

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.6-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Sat Jun 06 2009 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-7
- Fix plugin loading error on 64bit systems
- Build against system ladspa and dssi
- Build against new rtaudio (4.0.6)
- Backport multiple dssi instances fix patch
- Fix undefined symbols

* Sun May 10 2009 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-6
- Rebuild

* Sun May 10 2009 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-5
- Rebuild against new boost (on F-12)
- Re-enable sse optimizations on supported architectures

* Thu Mar 05 2009 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-4
- Update the size_t patch to fix compilation on ppc64
- Remove some proprietary code from the tarball (src/rtaudio/include)

* Sat Feb 28 2009 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-3
- License for -devel and pyzzub packages is GPLv2+
- Clarify system-wide library usage
- Fix sonames
- Don't package the empty directory %%_defaultdocdir/zzub

* Fri Feb 27 2009 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-2
- BR: rtaudio-static instead of rtaudio-devel

* Fri Feb 27 2009 Orcan Ogetbil <oget [DOT] fedora [AT] gmail [DOT] com>  0.2.6-1
- name changed from libzzub to armstrong
- update to 0.2.6

* Wed Jan  7 2009 Caolán McNamara <caolanm@redhat.com> - 0.2.3-14
- defuzz patches and extend buildfix to get building again

* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 0.2.3-13
- Rebuild for Python 2.6

* Sun Mar  2 2008 Alexander Kahl <akahl@iconmobile.com> - 0.2.3-12
- patch for missing explicit gcc 4.3 includes
- pyzzub %%files also seizes the python egg now

* Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 0.2.3-11
- Autorebuild for GCC 4.3

* Tue Nov 20 2007 Alexander Kahl <akahl@iconmobile.com> - 0.2.3-10
- updated buildfix patch to drop explicit sse optimizations
- removed JOBS option again since scons supports -j build option

* Thu Oct 25 2007 Alexander Kahl <akahl@iconmobile.com> - 0.2.3-9
- fixed multiarch conflict

* Thu Sep 20 2007 Alexander Kahl <akahl@iconmobile.com> - 0.2.3-8
- included patch to install missing documentation to the right place
- removed move macro instead
- moved all plugin files *.{cpp,h,xml} back to get the lunar plugin loading right

* Mon Sep 17 2007 Alexander Kahl <akahl@iconmobile.com> - 0.2.3-7
- re-added pyzzub python-devel build requirement
- explicitly nailed the name of pyzzub

* Mon Sep 17 2007 Alexander Kahl <akahl@iconmobile.com> - 0.2.3-6
- added pyzzub as an internal extra package

* Thu Sep 13 2007 Alexander Kahl <akahl@iconmobile.com> - 0.2.3-5
- removed redundant explicit flac requirement

* Mon Sep 10 2007 Alexander Kahl <akahl@iconmobile.com> - 0.2.3-4
- fixed double source definition
- adapted modified source tarball w/ mp3 support removed
- added patch to use internal flac support
- removed INSTALL from %%doc
- removed explicit python requirement
- replaced static rm commands with macros

* Mon Sep 10 2007 Alexander Kahl <akahl@iconmobile.com> - 0.2.3-3
- fixed redundant dependencies
- replaced occurence of /usr with prefix macro
- removed manual stripping of binaries
- fixed directory ownership issue
- fixed encoding of CREDITS file
- excluded arch ppc64 due to build failure
- replaced all space occurences with tabs

* Mon Sep  3 2007 Alexander Kahl <akahl@iconmobile.com> - 0.2.3-2
- added flag to remove mp3 support

* Sun Sep  2 2007 Alexander Kahl <akahl@iconmobile.com> - 0.2.3-1
- initial release