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
# 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 0.100.6-0.3.cvs - added latest patch from Jussi Laako * Mon Nov 21 2005 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.100.6-0.2.cvs - changed to use timeofday for dual core processors * Tue Sep 27 2005 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 0.100.4-0.1.cvs - updated to current cvs (2005.08.29) * Fri Jun 17 2005 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> - 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> - .la files needed by fweelin package (only on fc2) * Mon Dec 19 2004 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> - major spec file cleanup, add command macros and full paths, exclude .la files * Fri Sep 24 2004 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.99.0-2 - fixed prelink problem in fc1 * Wed Sep 22 2004 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.99.0-1 - updated to 0.99.0 * Mon Aug 23 2004 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.98.10-0.cvs.1 - cvs: 2004/08/23 * Tue Aug 17 2004 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> - for release do not add histogram patch - cleanup old unneded patches * Mon Aug 16 2004 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> - add Kjetil's multiple users patch, workaround for qjackctl killing -9 jack processes * Tue Aug 10 2004 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> - add Lee Revell's histogram patch * Sat Aug 7 2004 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.98.1-1 - updated to 0.98.1 * Sun Jun 20 2004 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.98.0-3 - added experimental patches for 2.6.x/Fedora Core 2 * Tue May 18 2004 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> - 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 0.94.0-1 - updated to 0.94.0 * Wed Dec 3 2003 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.91.1-1 - updated to 0.91.1 * Tue Nov 25 2003 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 0.80.0-2 - added old compatibility defines in alsa driver (for new alsa api) * Wed Aug 27 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.80.0-1 - updated to 0.80.0 * Wed Aug 6 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.75.0-1 - updated to 0.75.0 (official release), includes pipe patch * Mon Jul 30 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.74.1-1 - added Paul Davis's pipe patch to make qjackctl work * Fri Jul 25 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.74.1-1 - cvs: 0.74.1 - added --enable-optimize flag to configure script * Sat Jun 14 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.72.4-1 - cvs: 0.72.4 - added jack_transport to example clients file list * Fri Jun 6 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 0.71.6-1 - cvs: 0.71.6 - a lot more tweaking to the scripts * Fri May 30 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 0.71.1-1 - cvs: 0.71.1 * Tue May 6 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.70.4-1 - cvs: 0.70.4 * Mon Apr 7 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.67.2-1 - cvs: 0.67.2 * Fri Apr 4 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.66.4-1 - cvs: 0.66.4 * Mon Mar 24 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.66.0-1 - cvs: 0.66.0, added man pages to file list * Wed Mar 5 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.61.0-1 - cvs: 0.61.0 * Mon Feb 17 2003 Fernando Lopez Lezcano <nando@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 0.50.0-1 - cvs: 0.50.0 * Wed Feb 5 2003 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.44.2-1 - cvs: 0.44.2 * Thu Jan 30 2003 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.44.0-3 - new build, cvs of 1/30/2003, added -s switch * Wed Jan 8 2003 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.44.0-2 - added switches to enable debugging printouts * Mon Dec 30 2002 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.44.0-1 - cvs: 0.44.0 * Thu Dec 12 2002 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.41.1-1 - cvs: 0.41.1 * Sun Dec 8 2002 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 0.40.1-1 - cvs: 0.40.1 * Sun Nov 10 2002 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.40.0-1 - cvs: 0.40.0 * Fri Oct 11 2002 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 0.39.0-1 - cvs: 0.39.0, updated file list * Tue Sep 10 2002 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxx> 0.37.2-1 - updated to 0.37.2, added backwards compatibility library link * Thu May 23 2002 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> - added configuration variable to build with/without capabilities * Tue May 21 2002 Fernando Lopez-Lezcano <nando@xxxxxxxxxxxxxxxxxx> - 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@xxxxxxxxxxxxxxxxxx> - 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@xxxxxxxxxxxxxxx> - initial release of jack sound server package for GStreamer