%global jack1_bindir %{_libdir}/jack1/bin %global jack1_libdir %{_libdir}/jack1/lib %global jack1_includedir %{_includedir}/jack1 %global priority 118000 Summary: The Jack Audio Connection Kit Name: jack-audio-connection-kit Version: 0.118.0 Release: 1.1%{?dist} License: GPLv2 and LGPLv2 Group: System Environment/Daemons Source0: http://www.jackaudio.org/downloads/%{name}-%{version}.tar.gz Source1: %{name}-README.Fedora Source2: %{name}-script.pa Source3: %{name}-no_date_footer.html Source4: %{name}-limits.conf URL: http://www.jackaudio.org BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: alsa-lib-devel BuildRequires: libsamplerate-devel BuildRequires: libsndfile-devel >= 1.0.0 BuildRequires: pkgconfig BuildRequires: doxygen BuildRequires: readline-devel, ncurses-devel BuildRequires: autoconf >= 2.59, automake >= 1.9.3, libtool %ifnarch s390 s390x BuildRequires: libfreebob-devel >= 1.0.0 %endif %define groupname jackuser %define pagroup pulse-rt Requires(pre): shadow-utils Requires(post): /sbin/ldconfig Requires(post): %{_sbindir}/alternatives Requires(postun): %{_sbindir}/alternatives Requires: pam # To fix multilib conflicts take a basepoint as following %define doxyfile doc/reference.doxygen.in %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} Requires: pkgconfig Requires(post): %{_sbindir}/alternatives Requires(postun): %{_sbindir}/alternatives %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} Requires(post): %{_sbindir}/alternatives Requires(postun): %{_sbindir}/alternatives %description example-clients Small example clients that use the Jack Audio Connection Kit. %prep %setup -q # Put custom HTML_FOOTER to avoid timestamp inside # (recipe was taken from http://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks) cp %{SOURCE3} doc/no_date_footer.html # Fix Doxyfile: # - apply custom html footer (#477718, #341621) # - avoid font packaging (workaround for #477402, fix will come with #478747) sed -e 's,^HTML_FOOTER[ \t]*=.*,HTML_FOOTER = no_date_footer.html,; s,^GENERATE_LATEX[ \t]*=.*,GENERATE_LATEX = NO,;' %{doxyfile} > %{doxyfile}.new touch -r %{doxyfile} %{doxyfile}.new mv -f %{doxyfile}.new %{doxyfile} %build # x86_64 issue reported by Rudolf Kastl (not checked, but not bad). autoreconf --force --install %configure \ --with-html-dir=%{_docdir} \ %ifnarch s390 s390x --enable-freebob \ %endif --disable-oss \ --disable-portaudio \ --with-default-tmpdir=/dev/shm make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT # can't use the makeinstall macro, jack needs DESTDIR and prefix gets # added to it and messes up part of the install make install DESTDIR=$RPM_BUILD_ROOT # install our limits to the /etc/security/limits.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/security/limits.d sed -e 's,@groupname@,%groupname,g; s,@pagroup@,%pagroup,g;' \ %{SOURCE4} > $RPM_BUILD_ROOT%{_sysconfdir}/security/limits.d/99-jack.conf # prepare README.Fedora for documentation including install -p -m644 %{SOURCE1} README.Fedora # install pulseaudio script for jack (as documentation part) install -p -m644 %{SOURCE2} jack.pa # remove extra install of the documentation rm -fr $RPM_BUILD_ROOT%{_docdir} # remove *.la files rm -f $RPM_BUILD_ROOT%{_libdir}/jack/*.la rm -f $RPM_BUILD_ROOT%{_libdir}/*.la # Fix timestamps to avoid multiarch conflicts find doc/reference -type f | xargs touch -r %{doxyfile} # Move stuff to the alternatives location mkdir -p $RPM_BUILD_ROOT%{jack1_bindir} \ $RPM_BUILD_ROOT%{jack1_libdir} \ $RPM_BUILD_ROOT%{jack1_includedir} mv $RPM_BUILD_ROOT%{_bindir}/* $RPM_BUILD_ROOT%{jack1_bindir}/ mv $RPM_BUILD_ROOT%{_libdir}/{jack,libjack*.so*,pkgconfig} $RPM_BUILD_ROOT%{jack1_libdir}/ mv $RPM_BUILD_ROOT%{_includedir}/jack/* $RPM_BUILD_ROOT%{jack1_includedir}/ mv $RPM_BUILD_ROOT%{_mandir}/man1/jackd.1 $RPM_BUILD_ROOT%{_mandir}/man1/jackd-jack1.1 mv $RPM_BUILD_ROOT%{_mandir}/man1/jackstart.1 $RPM_BUILD_ROOT%{_mandir}/man1/jackstart-jack1.1 %clean rm -rf $RPM_BUILD_ROOT %pre getent group %groupname > /dev/null || groupadd -r %groupname exit 0 %post alternatives \ --install %{_libdir}/jack jack %{jack1_libdir}/jack %{priority} \ --slave %{_bindir}/jackd jackd %{jack1_bindir}/jackd \ --slave %{_bindir}/alsa_in alsa_in %{jack1_bindir}/alsa_in \ --slave %{_bindir}/alsa_out alsa_out %{jack1_bindir}/alsa_out \ --slave %{_bindir}/jack_load jack_load %{jack1_bindir}/jack_load \ --slave %{_bindir}/jack_unload jack_unload %{jack1_bindir}/jack_unload \ --slave %{_bindir}/jack_freewheel jack_freewheel %{jack1_bindir}/jack_freewheel \ --slave %{_libdir}/libjack.so.0 libjack1.so.0 %{jack1_libdir}/libjack.so.0 \ --slave %{_libdir}/libjack.so.0.0.28 libjack1.so.minor %{jack1_libdir}/libjack.so.0.0.28 \ --slave %{_libdir}/libjackserver.so.0 libjackserver1.so.0 %{jack1_libdir}/libjackserver.so.0 \ --slave %{_libdir}/libjackserver.so.0.0.28 libjackserver1.so.minor %{jack1_libdir}/libjackserver.so.0.0.28 \ --slave %{_mandir}/man1/jackd.1.gz jackd.1.gz %{_mandir}/man1/jackd-jack1.1.gz \ --slave %{_mandir}/man1/jackstart.1.gz jackstart.1.gz %{_mandir}/man1/jackstart-jack1.1.gz /sbin/ldconfig %postun if [ $1 = 0 ]; then alternatives --remove jack %{jack1_libdir}/jack fi /sbin/ldconfig %post devel alternatives \ --install %{_includedir}/jack jack-devel %{jack1_includedir} %{priority} \ --slave %{_libdir}/libjack.so libjack1.so %{jack1_libdir}/libjack.so \ --slave %{_libdir}/libjackserver.so libjackserver1.so %{jack1_libdir}/libjackserver.so \ --slave %{_libdir}/pkgconfig/jack.pc jack.pc %{jack1_libdir}/pkgconfig/jack.pc %postun devel if [ $1 = 0 ]; then alternatives --remove jack-devel %{jack1_includedir} fi %post example-clients CLIENTS="jackrec jack_alias jack_bufsize jack_connect jack_disconnect jack_evmon \ jack_impulse_grabber jack_lsp jack_metro jack_netsource jack_samplerate \ jack_transport jack_wait jack_monitor_client jack_simple_client \ jack_transport_client jack_midiseq jack_midisine" alternatives \ --install %{_bindir}/jack_showtime jack_showtime %{jack1_bindir}/jack_showtime %{priority} \ `for c in ${CLIENTS} ; do echo "--slave %{_bindir}/$c $c %{jack1_bindir}/$c" ; done` %postun example-clients if [ $1 = 0 ]; then alternatives --remove jack-showtime %{jack1_bindir}/jack_showtime fi %files %defattr(-,root,root) %doc AUTHORS TODO COPYING* %doc README.Fedora %doc jack.pa %{jack1_bindir}/alsa_in %{jack1_bindir}/alsa_out %{jack1_bindir}/jackd %{jack1_bindir}/jack_load %{jack1_bindir}/jack_unload %{jack1_bindir}/jack_freewheel %{jack1_libdir}/jack/ %{_mandir}/man1/jack*.1* %{jack1_libdir}/libjack.so.* %{jack1_libdir}/libjackserver.so.* %{_sysconfdir}/security/limits.d/*.conf %files devel %defattr(-,root,root) %doc doc/reference %{jack1_includedir} %{jack1_libdir}/libjack.so %{jack1_libdir}/libjackserver.so %{jack1_libdir}/pkgconfig/jack.pc %files example-clients %defattr(-,root,root) %{jack1_bindir}/jackrec %{jack1_bindir}/jack_alias %{jack1_bindir}/jack_bufsize %{jack1_bindir}/jack_connect %{jack1_bindir}/jack_disconnect %{jack1_bindir}/jack_evmon %{jack1_bindir}/jack_impulse_grabber %{jack1_bindir}/jack_lsp %{jack1_bindir}/jack_metro %{jack1_bindir}/jack_netsource %{jack1_bindir}/jack_samplerate %{jack1_bindir}/jack_showtime %{jack1_bindir}/jack_transport %{jack1_bindir}/jack_wait %{jack1_bindir}/jack_monitor_client %{jack1_bindir}/jack_simple_client %{jack1_bindir}/jack_transport_client %{jack1_bindir}/jack_midiseq %{jack1_bindir}/jack_midisine %changelog * Sat Nov 28 2009 Orcan Ogetbil - 0.118.0-1.1 - First attempt to use alternatives * Sat Nov 21 2009 Andy Shevchenko - 0.118.0-1 - update to 0.118.0 (should fix #533419) - remove upstreamed patch - append new binaries to -example-clients subpackage * Wed Nov 4 2009 Tom "spot" Callaway - 0.116.2-8 - update to 0.116.2 - make sure we cleanup threads that we open, fixes segfaults (thanks to Ray Strode) * Tue Oct 27 2009 Dennis Gilmore - 0.116.1-7 - dont build libfreebob support on s390 arches * Fri Jul 24 2009 Fedora Release Engineering - 0.116.1-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Sun Jun 21 2009 Andy Shevchenko - 0.116.1-5 - create file under /etc/security/limits.d instead of limits.conf hack (#506583) - rename jack-audio-connection-kit.pa to jack.pa in the documentation part * Wed Feb 25 2009 Fedora Release Engineering - 0.116.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Sun Jan 04 2009 Andy Shevchenko - 0.116.1-3 - avoid creation of the LaTeX documentation (temporary fix for #477402) * Mon Dec 29 2008 Andy Shevchenko - 0.116.1-2 - fix multiarch conflict again (#477718, #341621) * Sun Dec 14 2008 Andy Shevchenko - 0.116.1-1 - update to last official release - update URL tag - update file list accordingly * Mon Jul 28 2008 Andy Shevchenko 0.109.2-3 - add a new requirement to be ensure we have /etc/security for postinstall script (#359291, #456830) - provide a pulseaudio start script from README.Fedora - append values for pulse-rt group to the limits.conf - update README.Fedora regarding to the recent changes * Sun Jul 20 2008 Andy Shevchenko 0.109.2-2 - apply patch to be work on ppc64 (#451531) - update README.Fedora to describe integration jack with pulseaudio (#455193) * Wed Feb 13 2008 Andy Shevchenko 0.109.2-1.1 - update to the last official release * Mon Jan 21 2008 Andy Shevchenko 0.109.0-1 - update to the last official release (#429162) - shut up the postinstall script (#359291) * Sat Oct 20 2007 Andy Shevchenko 0.103.0-5 - fix timestamps to avoid multiarch conflicts (#341621) * Tue Sep 04 2007 Andy Shevchenko 0.103.0-4 - fix Source Forge's URL scheme * Thu Aug 16 2007 Andy Shevchenko 0.103.0-3 - fix according to new guidelines: - License tag - group creation * Wed May 23 2007 Andy Shevchenko 0.103.0-1 - update to the last official release - append defaults to the limits.conf (#221785, #235624) * Wed Mar 07 2007 Andy Shevchenko 0.102.20-4 - drop libtermcap-devel build requirement (#231203) - create special jackuser group (#221785) * Sat Oct 28 2006 Andy Shevchenko 0.102.20-3 - fix BuildRequires: libfreebob -> libfreebob-devel * Tue Oct 24 2006 Andy Shevchenko 0.102.20-2.1 - rebuild with libfreebob (should closed #211751) * Wed Oct 11 2006 Andy Shevchenko 0.102.20-2.0 - update to 0.102.20 - drop patch0 (already in mainstream) - no pack jack_transport (build error) - pack new JACK MIDI files * Tue Aug 29 2006 Andy Shevchenko 0.101.1-13 - http://fedoraproject.org/wiki/Extras/Schedule/FC6MassRebuild * Tue Aug 01 2006 Andy Shevchenko 0.101.1-12 - use install instead of cp (#200835) * Tue Jul 04 2006 Andy Shevchenko 0.101.1-11 - update URL - add BR: libtool * Tue Jun 20 2006 Andy Shevchenko 0.101.1-10 - add BRs: autoconf, automake (http://fedoraproject.org/wiki/QA/FixBuildRequires) * Sat May 27 2006 Andy Shevchenko 0.101.1-9 - remove --enable-stripped-jackd and --enable-optimize (use default flags) * Fri May 19 2006 Andy Shevchenko 0.101.1-8 - uniform directories items at %files section * Wed May 17 2006 Andy Shevchenko 0.101.1-7 - change License tag to GPL/LGPL - remove --enable-shared (it should be default) - add a -p flag to the line that copies README.Fedora * Wed May 10 2006 Andy Shevchenko 0.101.1-6 - apply clock fix for AMD X2 CPUs (please, refer to http://sourceforge.net/mailarchive/forum.php?thread_id=8085535&forum_id=3040) * Wed May 03 2006 Andy Shevchenko 0.101.1-5 - adjust spec after reviewing * Thu Apr 27 2006 Andy Shevchenko 0.101.1-4 - reformatting README.Fedora to 72 symbols width * Wed Apr 26 2006 Andy Shevchenko 0.101.1-3 - add README.Fedora - remove useless BRs * Mon Apr 24 2006 Andy Shevchenko 0.101.1-2 - disable oss and portaudio engines - use /dev/shm as jack tmpdir - remove capabilities stuff * Tue Apr 04 2006 Andy Shevchenko 0.101.1-1 - update to 0.101.1 * Mon Mar 27 2006 Andy Shevchenko - update to 0.100.7 (#183912) - adjust BR (add versions) - replace files between examples and main packages - own jack tmpdir * Fri Mar 17 2006 Andy Shevchenko - no libs subpackage - From Fernando Lopez-Lezcano : - added configuration variable to build with/without capabilities - added --enable-optimize flag to configure script - disabled sse/mmx instructions in i386 build - create temporary directory as /var/lib/jack/tmp - create and erase tmp directory at install or uninstall - try to umount the temporary directory before uninstalling the package * Fri Mar 03 2006 Andy Shevchenko - fix spec for extras injection * Fri Nov 18 2005 Andy Shevchenko - exclude *.la files - use dist tag * Fri Oct 14 2005 Andy Shevchenko - 0.100.0 - no optimization * Tue Sep 28 2004 Andy Shevchenko - 0.99.1 * Fri Aug 20 2004 Andy Shevchenko - rebuild from Mandrake