[Fedora-music-list] intro and questions

Fernando Lopez-Lezcano nando at ccrma.Stanford.EDU
Tue Apr 18 00:39:06 UTC 2006


On Mon, 2006-04-17 at 17:21 -0700, Fernando Lopez-Lezcano wrote:
> On Mon, 2006-04-17 at 17:22 -0500, Tom Poe wrote:
> > Hello, All:  Pleased to see activity on the list.  I work with a small 
> > group on Open Studios, a nonprofit relying on both Fedora and CCRMA to 
> > provide multimedia capability for users.  Our target audience lies 
> > mainly with independent musicians, inner-city neighborhoods, nonprofits, 
> > etc., that are looking for multimedia capability, but generally lack 
> > money to purchase proprietary products.
> > 
> > Greg mentions that one topic of high interest is discussing how Fedora 
> > and CCRMA can work together to create multimedia capability in a way 
> > that benefits everyone involved.  My first question to the list, and 
> > Fernando, is, what applications are on the short list (if there is one 
> > at this point) for moving to Fedora Extras?  
> 
> The most important "enabler" application is the Jack Audio Connection
> Kit sound server. Pretty much everything of value for audio and music is
> a client to Jack, so without Jack we are stuck. 
[MUNCH]

I'm attaching my current unedited (ie: not edible by Fedora Extras :-)
spec file for Jack... This is for CVS of the clock_fix branch, which
fixes problems with low level timing on dual core Athlon processors (you
also need a recent kernel that does not select the TSC for internal
timing on those processors to make everything work correctly)

Ah, I forgot - if you are using a proper "preempt" kernel then you also
want Rui Nuno Capella's rtirq script (also part of Planet CCRMA) which
optimizes the priority of irq processes to favor audio i/o - that's
mentioned in the jack spec file, that's why I remembered. 

-- Fernando

-------------- next part --------------
# build packages with capabilities support
%{?fc5:%define enable_capabilities 0}
%{?fc4:%define enable_capabilities 0}
%{?fc3:%define enable_capabilities 0}
%{?fc2:%define enable_capabilities 1}
%{?fc1:%define enable_capabilities 1}
%{?rh9:%define enable_capabilities 1}

# add code for user triggered preemption traces
%define preemption_check 0

# jack temporary directory mount point, default is /dev/shm,
# use %{nil} to disable. The chosen directory is mounted in ram so 
# that journalled filesystems don't impact jack'd named pipes
# performance and cause xruns
%define jack_tmpdir /dev/shm

# old mount point, needed for smooth upgrades of old packages,
# do not change this value, or set to %{nil} to disable upgrade code
%define jack_tmpdir_old /var/lib/jack

# enable prelink exception for jackd
%{?fc5: %define prelink_exception 0}
%{?fc4: %define prelink_exception 0}
%{?fc3: %define prelink_exception 0}
%{?fc2: %define prelink_exception 1}
%{?fc1: %define prelink_exception 1}
%{?rh9: %define prelink_exception 0}

# only if coming from cvs
%define cvsdate 20060405.124111
%define release 0.2.cvs

Summary:       the Jack Audio Connection Kit
Name:	       jack-audio-connection-kit
Version:       0.101.0
Release:       %{release}
License:       GPL
Group:         Applications/Multimedia
Source0:       %{name}-%{version}%{?cvsdate:-cvs}.tar.gz
Source1:       jack-get-cvs
URL:           http://jackit.sourceforge.net
BuildRoot:     %{_tmppath}/%{name}-%{version}-root-%(id -u -n)
%if "%{enable_capabilities}" == "1" && "%{fc1}" == "1"
Requires:      prelink >= 0.3.2
%endif
Packager:      Fernando Lopez-Lezcano <nando at ccrma.stanford.edu>
Vendor: Planet CCRMA
Distribution:  Planet CCRMA

BuildRequires: automake >= 1.6, libsndfile-devel >= 1.0.0
%if "%{cvsdate}" != "%{nil}"
BuildRequires: autoconf libtool which
%endif
%if "%{enable_capabilities}" == "1"
BuildRequires: libcap-devel
%endif
BuildRequires: gcc-c++ pkgconfig libtermcap-devel ncurses-devel readline-devel
BuildRequires: doxygen libsndfile-devel alsa-lib-devel
%{?fc4:BuildRequires: libpcap, libcap-devel}

%description
JACK is a low-latency audio server, written primarily for the Linux
operating system. It can connect a number of different applications to
an audio device, as well as allowing them to share audio between
themselves. Its clients can run in their own processes (ie. as a
normal application), or can they can run within a JACK server (ie. a
"plugin").

JACK is different from other audio server efforts in that it has been
designed from the ground up to be suitable for professional audio
work. This means that it focuses on two key areas: synchronous
execution of all clients, and low latency operation.

%package devel
Summary:	Header files for Jack 
Group:		Development/Libraries
Requires:	%{name} = %{version}

%description devel
Header files for the Jack Audio Connection Kit.

%package example-clients
Summary:	Example clients that use Jack 
Group:		Applications/Multimedia
Requires:	%{name} = %{version}

%description example-clients
Small example clients that use the Jack Audio Connection Kit.


%prep
%setup -q -n %{name}-%{version}

%build
%if "%{?cvsdate:1}"
./autogen.sh
%endif
# set optimization flags to current defaults in fedora
%{__perl} -p -i -e "s|-march=pentium2|-march=%{_target_cpu}|g" configure
%{__perl} -p -i -e "s|-mcpu=pentium4|-mcpu=i686|g" configure

# change default realtime priority on fc so that it is below
# the priority of the soundcard irq as set by the rtirq script
# (which is 70 by default)
%if "%{fc2}" == "1" || "%{fc3}" == "1" || "%{fc4}" == "1" || "%{fc5}" == "1"
%{__perl} -p -i -e "s|realtime_priority = 10|realtime_priority = 62|g" jackd/jackd.c
%endif

%configure --enable-static --enable-stripped-jackd \
    --enable-dynsimd=yes --enable-optimize \
%if "%{jack_tmpdir}" != "%{nil}"
    --with-default-tmpdir=%{jack_tmpdir} \
%endif
%if "%{enable_capabilities}" == "1"
    --enable-capabilities \
%endif
%if "%{preemption_check}" == "1"
    --enable-preemption-check
%endif

%{__make}

%install
%{__rm} -rf %{buildroot}
# can't use the makeinstall macro, jack needs DESTDIR and prefix gets
# added to it and messes up part of the install
make DESTDIR=%{buildroot} install

%if "%{enable_capabilities}" == "1"
# make jackstart suid root
%{__chmod} 04755 %{buildroot}%{_bindir}/jackstart
%endif

# remove extra install of the documentation
%{__rm} -rf %{buildroot}%{_datadir}/%{name}/*

%if "%{fc73}" == "1"
# fix the executable names by hand
for f in %{buildroot}%{_bindir}/i* ; do
	p=`/bin/echo $f | %{__sed} "s/i386-redhat-linux-//g"`
	%{__mv} $f $p
done
%endif

%if "%{jack_tmpdir_old}" != "%{nil}"
%pre
if [ -d %{jack_tmpdir_old}/tmp ] ; then
    # try to unmount the old tmpfs filesystem
    /bin/umount %{jack_tmpdir_old}/tmp >/dev/null 2>&1
    # remove the unowned directory and any leftover files after the mount is gone
    %{__rm} -rf %{jack_tmpdir_old} >/dev/null 2>&1
%if "%{prelink_exception}" == "0"
    # remove any leftover prelink exceptions
    if %{__grep} 'b %{_bindir}/jackd' %{_sysconfdir}/prelink.conf > /dev/null 2>&1 ; then
        TMPPRELNK=$(/bin/mktemp /tmp/prelink.conf.XXXXXX)
        if [ ! -z "$TMPPRELNK" ] ; then
            %{__grep} -v  'b %{_bindir}/jackd' %{_sysconfdir}/prelink.conf > $TMPPRELNK
            if [ "$?" == "0" -a -f $TMPPRELNK -a -s $TMPPRELNK ] ; then
                %{__cat} $TMPPRELNK > %{_sysconfdir}/prelink.conf
            fi
            %{__rm} -f $TMPPRELNK
        fi
    fi
%endif
fi
%endif

%post
/sbin/ldconfig
%if "%{enable_capabilities}" == "1" && "%{prelink_exception}" == "1"
if [ -w %{_sysconfdir}/prelink.conf ] ; then
    # add a prelink exception for jackd
    %{__grep} 'b %{_bindir}/jackd' %{_sysconfdir}/prelink.conf > /dev/null 2>&1
    if [ "$?" == "1" ]; then
        /bin/echo '-b %{_bindir}/jackd' >> %{_sysconfdir}/prelink.conf
    fi
fi
%endif
%if "%{jack_tmpdir_old}" != "%{nil}"
if %{__grep} "%{jack_tmpdir_old}/tmp" /etc/fstab >/dev/null 2>&1 ; then
    # found an old mount point in fstab, erase it silently
    TMPFSTAB=$(/bin/mktemp /tmp/fstab.XXXXXX)
    if [ ! -z "$TMPFSTAB" ] ; then
        %{__grep} -v "%{jack_tmpdir_old}/tmp" /etc/fstab > $TMPFSTAB
        if [ "$?" == "0" -a -f $TMPFSTAB -a -s $TMPFSTAB ] ; then
            %{__cat} $TMPFSTAB > /etc/fstab
        fi
        %{__rm} -f $TMPFSTAB
    fi
fi
%endif


%clean
%{__rm} -rf %{buildroot}


%files 
%defattr(-,root,root)
%doc AUTHORS TODO COPYING* doc/reference
%if "%{enable_capabilities}" == "1"
%attr(04755, root, root) %{_bindir}/jackstart
%{_mandir}/man1/jackstart*
%else
%exclude %{_mandir}/man1/jackstart*
%endif
%{_bindir}/jackd
%{_bindir}/jack_load
%{_bindir}/jack_unload
%{_bindir}/jack_bufsize
%{_bindir}/jack_freewheel
%{_bindir}/jack_transport
%{_libdir}/*.so*
%{_libdir}/jack/*.so
%{_mandir}/man1/jackd*

%files devel
%defattr(-,root,root)
%{_includedir}/jack
%{_libdir}/*.a
%{_libdir}/*.la
%{_libdir}/jack/*.a
%{_libdir}/jack/*.la
%{_libdir}/pkgconfig/jack.pc

%files example-clients
%defattr(-,root,root)
%{_bindir}/jackrec
%{_bindir}/jack_connect
%{_bindir}/jack_disconnect
%{_bindir}/jack_impulse_grabber
%{_bindir}/jack_lsp
%{_bindir}/jack_metro
%{_bindir}/jack_monitor_client
%{_bindir}/jack_showtime
%{_bindir}/jack_simple_client
%{_bindir}/jack_transport


%changelog
* Fri Apr 14 2006 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.101.0-0.2.cvs
- enabled --enable-dynsimd, deleted sse and mmx disables, should be auto now
* Wed Apr  5 2006 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.101.0-0.1.cvs
- updated cvs snapshot to latest clock fix branch (0.101.0)
* Mon Mar 27 2006 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.100.6-0.3.cvs
- rebuild on fc5
- disable preemption check, should only be used for debugging (I think that's
  what was killing muse in some tests I was doing)
* Tue Dec  6 2005 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.100.6-0.3.cvs
- added latest patch from Jussi Laako
* Mon Nov 21 2005 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.100.6-0.2.cvs
- changed to use timeofday for dual core processors
* Tue Sep 27 2005 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.100.6-0.1.cvs
- updated to current cvs (2005.09.27), added preemption-check build flag
* Mon Aug 29 2005 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.100.4-0.1.cvs
- updated to current cvs (2005.08.29)
* Fri Jun 17 2005 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 
- remove the jackstart man page when not building with capabilities
- prelink erasure now working
- the old packages have an unowned directory (/var/lib/jack) we don't
  need any more (bad packager!), remove it in the pre script
* Tue Jun 15 2005 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.100.1-0.5.cvs
- updated to current cvs (0.100.1)
- use /dev/shm instead of /var/lib/jack/tmp
- updated scripts to umount and erase old mountpoints
* Tue May 17 2005 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.99.73-0.4.cvs
- updated to current cvs
- gcc4: removed all references to "-fmove-all-movables"
- f4: won't compile with capabilities enabled (not needed anyhow)
* Wed Apr  6 2005 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.99.36-0.3.cvs
- change the default realtime priority of the jackd process to be
  just below the default priority of the soundcard irq's as set
  by the rtirq script (the default for the snd irq is 70)
* Tue Jan  4 2005 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 
- .la files needed by fweelin package (only on fc2)
* Mon Dec 19 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.99.36-0.1.cvs
- update to current cvs
- added "which" build dependency, it is not installed in the fc3 root
* Tue Dec 14 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 
- major spec file cleanup, add command macros and full paths,
  exclude .la files
* Fri Sep 24 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.99.0-2
- fixed prelink problem in fc1
* Wed Sep 22 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.99.0-1
- updated to 0.99.0
* Mon Aug 23 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.98.10-0.cvs.1
- cvs: 2004/08/23
* Tue Aug 17 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 
- for release do not add histogram patch
- cleanup old unneded patches
* Mon Aug 16 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 
- add Kjetil's multiple users patch, workaround for qjackctl
  killing -9 jack processes
* Tue Aug 10 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 
- add Lee Revell's histogram patch
* Sat Aug  7 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.98.1-1
- updated to 0.98.1
* Sun Jun 20 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.98.0-3
- added experimental patches for 2.6.x/Fedora Core 2
* Tue May 18 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 
- add post script to add jackd to the prelink configuration file
  so that it is not prelinked in fc2, added explicit require with
  prelink version
- added check for tmpfile creation in postun script
* Thu Apr 22 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.98.0-2
- disabled sse/mmx instructions in i386 build
- forced proper architecture flags (march/mcpu)
* Wed Apr 21 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.98.0-1
- updated to 0.98.0
- fixed detection of readline
- disable optimization in 7.3, triggers unknown compiler directives
  for gcc 2.96 (which means it does not recognize lcap)
* Thu Jan 15 2004 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.94.0-1
- updated to 0.94.0
* Wed Dec  3 2003 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.91.1-1
- updated to 0.91.1
* Tue Nov 25 2003 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.90.1-1
- updated to 0.90.1
- rh73 creates i386* executable names, fix jackd/Makefile.in
* Tue Nov 18 2003 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.80.0-2
- added prelink patch from jack 0.90.0 (cannot release 0.90.0 yet, it
  is buggy)
* Thu Nov  6 2003 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.80.0-2
- added old compatibility defines in alsa driver (for new alsa api)
* Wed Aug 27 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.80.0-1
- updated to 0.80.0
* Wed Aug  6 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.75.0-1
- updated to 0.75.0 (official release), includes pipe patch
* Mon Jul 30 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.74.1-1
- added Paul Davis's pipe patch to make qjackctl work
* Fri Jul 25 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.74.1-1
- cvs: 0.74.1
- added --enable-optimize flag to configure script
* Sat Jun 14 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.72.4-1
- cvs: 0.72.4
- added jack_transport to example clients file list
* Fri Jun  6 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.72.1-1
- cvs: 0.72.1
- added patch to clean up temporary files and directories
* Mon Jun  2 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.72.0-1
- changed temporary directory to /var/lib/jack/tmp, /var/run is 
  cleaned up on boot by rc.sysinit
- cvs: 0.72.0
* Sun Jun  1 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.71.6-1
- cvs: 0.71.6
- a lot more tweaking to the scripts
* Fri May 30 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.71.5-1
- change temporary directory to /var/run/jack/tmp
- create and erase tmp directory at install or uninstall
- try to umount the temporary directory before uninstalling the package
- fltk example client no longer part of package
* Tue May 13 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.71.1-1
- cvs: 0.71.1
* Tue May  6 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.70.4-1
- cvs: 0.70.4
* Mon Apr  7 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.67.2-1
- cvs: 0.67.2
* Fri Apr  4 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.66.4-1
- cvs: 0.66.4
* Mon Mar 24 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.66.0-1
- cvs: 0.66.0, added man pages to file list
* Wed Mar  5 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.61.0-1
- cvs: 0.61.0
* Mon Feb 17 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.51.0-1
- cvs: 0.51.0
- jack_alsa.so.* files are no longer there, change file list
* Mon Feb 10 2003 Fernando Lopez Lezcano <nando at ccrma.stanford.edu> 0.50.0-1
- cvs: 0.50.0
* Wed Feb  5 2003 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.44.2-1
- cvs: 0.44.2
* Thu Jan 30 2003 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.44.0-3
- new build, cvs of 1/30/2003, added -s switch
* Wed Jan  8 2003 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.44.0-2
- added switches to enable debugging printouts
* Mon Dec 30 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.44.0-1
- cvs: 0.44.0
* Thu Dec 12 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.41.1-1
- cvs: 0.41.1
* Sun Dec  8 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.41.0-1
- cvs: 0.41.0, removed jack_cache_killer, jackstart was in the example
  clients file list...
* Mon Nov 18 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.40.1-1
- cvs: 0.40.1
* Sun Nov 10 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.40.0-1
- cvs: 0.40.0
* Fri Oct 11 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.39.0-1
- cvs: 0.39.0, updated file list
* Tue Sep 10 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.37.2-4
- still not getting the backwards compatibility link right, it fails to 
  be created for upgrades from a previous version, fixed now. 
* Sat Aug 31 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.37.2-3
- while the new 0.37.2 version has apparently split the library versioning
  from the package versioning it still needs a backwards compatibility
  link
* Thu Aug 29 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu> 0.37.2-1
- updated to 0.37.2, added backwards compatibility library link
* Thu May 23 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu>
- added configuration variable to build with/without capabilities
* Tue May 21 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu>
- split the examples into a different package so that the base
  package does not depend on, for example, fltk. 
- disable stripping of binaries
* Mon May 13 2002 Fernando Lopez-Lezcano <nando at ccrma.stanford.edu>
- do not compress documentation, added doxygen docs directory
- changed defattr directives
- added libdir/jack*, libdir/*.a and libdir/*.so.* to files
- moved all so's to libs, jack will not start without jack_alsa.so
- merged base and libs packages
* Sat May  4 2002 Christian Fredrik Kalager Schaller <uraeus at linuxrising.org> 
- initial release of jack sound server package for GStreamer


More information about the Fedora-music-list mailing list