[SCM] Debian packaging for jack-audio-connection-kit branch, master, updated. debian/1.9.5.dfsg-3-8-g416c970
adiknoth-guest at users.alioth.debian.org
adiknoth-guest at users.alioth.debian.org
Sun May 2 22:18:04 UTC 2010
The following commit has been merged in the master branch:
commit f107c04ae420534f2e92421ac946cf903caa365f
Author: Adrian Knoth <adi at drcomp.erfurt.thur.de>
Date: Sun May 2 22:04:25 2010 +0200
Remove outdated documentation (Closes: bug#577444)
diff --git a/debian/FAQ b/debian/FAQ
deleted file mode 100644
index 6ceb652..0000000
--- a/debian/FAQ
+++ /dev/null
@@ -1,380 +0,0 @@
- jack faq download documentation developers applications lists
-
- JACK faq
-
- • How did JACK come to be?
- • How does JACK compare to...?
- • How can I make my app use JACK?
- • What do I need to do to link to JACK?
- • How do install JACK?
- • Why are my clients unable to connect to the JACK server?
- • How can I get the best performance out of JACK?
- □ How should I tune my hardware?
- □ How should I configure my Operating System?
- ☆ How do I configure Linux 2.6?
- ☆ How do I configure Linux 2.4?
- ☆ How do I configure Mac OS X?
- ☆ What about other Operating Systems?
- □ What other software tuning should I consider?
- • JACK, jackd, libjack, jackit, wha?
-
- How did JACK come to be?
-
- People on the linux-audio-dev list saw the need for a server API that would
- allow high-bandwidth, low-latency communication between a number of audio
- applications. The proposal that was put forth was called "LAAGA", the Linux
- Audio Applications Glue API. JACK may be seen as an implementation of the
- goals of LAAGA. Another planned implementation of these goals is LADMEA,
- written by the author of the successful LADSPA plugin interface. LADMEA and
- JACK are somewhat orthogonal, and it is not impossible to imagine them
- interacting in a cooperative fashion.
-
- How does JACK compare to...?
-
- Please mail the jackit-devel mailing list if you have any concerns about the
- answers to these questions. Also, no disrespect to any effort is intended,
- only a recognition of different goals and design principles.
-
- How does JACK compare to ...
-
- • Other Linux-centered systems
-
- □ ALSA: both a HAL and a user-space library for audio under Linux.
- ALSA is used to provide the default audio i/o driver for JACK. ALSA
- is a very powerful audio API, but it does not provide a
- callback-based API or offer any solutions for inter-application
- communication, though it has been discussed and is theoretically
- possible.
-
- □ aRts, a streaming media architecture: aRts was not designed from the
- ground up with low-latency in mind. Not a fault, but a design
- decision. A jack output element could be written for aRts, though,
- as far as I can tell.
-
- □ GStreamer, another streaming media architecture: GStreamer is
- designed for in-process construction of media pipelines, and is not
- used to link applications. JACK elements for GStreamer are under
- construction.
-
- □ LADSPA: LADSPA is an internal plugin API for DSP routines, not a way
- of linking external applications together.
-
- □ LADMEA, another LAAGA proposal: JACK is actually implemented. Also,
- see the thread on linux-audio-dev.
-
- • Cross-platform systems
-
- □ PortAudio: a "cross platform, open-source, audio I/O library"
- offering both callback- and blocking I/O-based APIs. PortAudio
- backends exist for various Windows, Mac, and Unix HALs. It is mainly
- focused on hardware I/O rather than a general concept of ports and
- connections, although a JACK backend to PortAudio is under
- construction that would allow PortAudio apps to connect to JACK
- ports. While the JACK API is portable, its current implementation is
- limited to POSIX-compliant systems; applications needing greater
- portability might consider PortAudio. In any case, the
- callback-style API used by both projects makes it easy to port
- between the two (no pun intended).
- • MacOS- and/or Windows-centered systems
-
- □ CoreAudio, the Mac OS X audio API: Very similar to JACK in concept,
- being centered on a synchronous-execution-via-callback API, but does
- not include inter-application audio routing. CoreAudio also includes
- a hardware-level abstraction layer, whereas JACK uses higher-level
- drivers for that purpose. The first JACK driver was based on ALSA,
- but others are available for the OSS and PortAudio interfaces.
-
- □ ASIO: a HAL for both Windows and MacOS that replaces the native
- device driver model with something much cleaner. It supports
- hardware-level latencies, but it does not connect applications to
- each other. Also, it is subject to license restrictions, and does
- not exist for Linux (though it would not be impossible to implement
- it on top of ALSA).
-
- □ ReWire, an inter-app communications API for Windows and MacOS from
- PropellerHeads and Steinberg, ReWire is similar in that it provides
- inter-application audio routing, but does not allow for fully
- independent processes, and has silly restrictions ("up to 64
- channels", etc). JACK also comes without without silly license
- restrictions.
-
- □ VST, DirectX, MAS, RTAS: these are all Windows/MacOS audio plugin
- APIs. None of them permit inter-application data sharing. Some
- plugin hosts can make this possible by using some other system such
- as ReWire. These APIs also require that the callback you write to
- process/generate data be executed in the context of the plugin host;
- JACK allows your callback to be executed within the context of your
- own application (if you wish to).
-
- How can I make my app use JACK?
-
- Your app must be callback-based. This means that you should not block on
- writes or reads from a PCM device; rather, you should have your app be
- "driven" by a function that gets called at regular intervals. This is a
- design decision. Then, take a look at the simple client code, and do your
- interesting stuff inside the process() function.
-
- Note that code written for any callback API can generally be ported to any
- other callback API fairly easily. Code that is written around a "blocking I/
- O" model generally needs to completely redesigned to be used in any kind of
- callback API.
-
- What do I need to do to link to JACK?
-
- JACK uses pkg-config. Find a package for your favorite distribution and OS,
- or build it from source. To build your JACK program, try
-
- $ gcc -o myprog `pkg-config --cflags --libs jack` myprog.c
-
- This process can be integrated into your autoconf/automake build system with
- pkg.m4, included in the pkg-config package. Just add the line
-
- PKG_CHECK_MODULES(JACK, jack, HAVE_JACK=true, HAVE_JACK=false)
-
- to your configure.ac. In addition to HAVE_JACK, the variables JACK_LIBS and
- JACK_CFLAGS will be created. To substitute on them you will have to AC_SUBST
- both of them separately.
-
- How do I install JACK?
-
- Prerequisites
-
- • 2.4, 2.5 or 2.6 series kernel with tmpfs turned on (CONFIG_TMPFS)
- • Shared memory file system mounted on /dev/shm. add the following to /etc
- /fstab to get it mounted at boot:
-
- shmfs /dev/shm shm defaults 0 0
-
- (Note: you may have to make the /dev/shm directory)
-
- Once you have the correct shmfs support, you should be able to build jack
- with the following sequence of commands:
-
- sh ./autogen.sh
- ./configure
- make
- make install
-
- Good luck!
-
- Why are my clients unable to connect to the JACK server?
-
- The most common reason is that the server was started using a different user
- ID.
-
- How can I get the best performance out of JACK?
-
- "Good performance" for JACK means operating at the lowest latency possible
- with no dropouts at any load. There are a number of factors which affect
- performance:
-
- • How should I tune my hardware?
-
- Sound card
-
- Some sound cards are designed better than others. Many "consumer" sound
- cards use separate internal pointers for capture and playback, which can
- result in unreliable operation at low latencies. For example, my ens1370
- does not operate very well in full-duplex mode. You can work around this
- by telling the ALSA driver to operate only in capture or playback mode.
-
- People have reported problems with ymfpci cards as well.
-
- General system configuration
-
- People from linux-audio-dev are quite familiar with what is necessary to
- build a low-latency system. There is no need to rehash all of that here,
- see the low-latency resource page for more information on getting your
- system in tune.
-
- • How should I configure my Operating System?
-
- Real-time scheduling
-
- JACK requires real-time scheduling privileges for reliable, dropout-free
- operation. The server requests these privileges when running with the -R
- option. The standard Linux 2.4 kernel does not adequately support this,
- but can be modified to work very well. Unmodified 2.6 kernels work much
- better, but still require special configuration. The requirements for
- Mac OS X and other Operating Systems differ.
-
- The simplest, and least-secure way to provide real-time privileges is
- running jackd as root. This has the disadvantage of also requiring all
- of JACK clients to run as root. Real-time scheduling is inherently
- dangerous; a badly or maliciously coded application can hang the system.
- Worse, running as root gives an intruder too many opportunities to
- damage or co-opt the entire system by attacking the JACK server or its
- clients. Systems connected to the Internet would be well-advised to
- avoid this approach. There are safer ways to gain the needed privileges,
- the exact method depends on which Operating System you run.
-
- How do I configure Linux 2.6?
-
- For Linux 2.6, the Realtime Linux Security Module provides a relatively
- easy way for non-root users to gain real-time privileges. Some
- audio-oriented distributions include this module as a separate binary
- package or with the kernel image. Otherwise, you will need to download
- the realtime-lsm source and build it yourself.
-
- This loadable kernel extension selectively grants real-time privileges
- to user programs. If loaded with modprobe realtime gid=29, it will
- permit real-time operation for all members of group 29 (the Debian
- "audio" group). It provides several additional options, described in the
- user documentation.
-
- There is an allcaps=1 option, which duplicates the effect of running
- Linux 2.4 with the capabilities patch. To use that you must compile JACK
- with --enable-capabilites as you would for the 2.4 kernel. You will need
- this if you prefer to run jackstart -R rather than jackd -R. If you only
- use Linux 2.6, you need not bother with it.
-
- Currently (as of 2.6.7) JACK has a serious problem creating SCHED_FIFO
- threads for real-time processing. It is unclear whether this is a bug in
- JACK, in the new Native PThreads Library (NPTL), or in the 2.6 kernel.
- At the moment no one has a solution, but there is a workaround: define
- LD_ASSUME_KERNEL=2.4.19 in the environment of the jackd process and of
- every JACK client. The easiest way to do this is setting it in ~
- /.profile , or wherever you customarily define global environment
- variables. Glibc developer Ulrich Drepper explains the operation of
- LD_ASSUME_KERNEL in more detail.
-
- How do I configure Linux 2.4?
-
- The vanilla Linux 2.4 kernel does not adequately support real-time
- scheduling. For reliable low-latency operation you need the low-latency
- patches from Andrew Morton. With these patches, 2.4 performs quite well.
-
- In addition, non-root users need a way to gain real-time scheduling
- privileges. The preferred solution on 2.4 is using a setuid root
- application to run the jackd binary as a non-root user, transfering the
- privileges needed for real-time scheduling. This requires that the
- kernel allow one process to grant its privileges to another using the
- CAP_SETPCAP capability. In the givertcap page, Tommi Ilmonen discusses
- this technique in more depth. Although this capability is built into the
- kernel, it is disabled by default because of a serious security
- exposure: if an attacker somehow manages to subvert some system daemon
- running with root privileges, it can then use CAP_SETPCAP to deny needed
- privileges to other root processes. Enabling this capability would not
- be appropriate for an Internet server system, but for an audio
- workstation the risk is generally acceptable.
-
- Linux 2.4 kernels require a small kernel patch to enable
- CAP_SETPCAP. Go to include/linux/capability.h in your kernel
- sources, and change the line
-
- #define CAP_INIT_EFF_SET to_cap_t(~0&~CAP_TO_MASK(CAP_SETPCAP))
-
- to
-
- #define CAP_INIT_EFF_SET to_cap_t( ~0 )
-
- and the line
-
- #define CAP_INIT_INH_SET to_cap_t(0)
-
- to
-
- #define CAP_INIT_INH_SET to_cap_t( ~0 )
-
- Then, recompile and install your 2.4 kernel.
-
- Once you have a kernel with capabilities enabled, build JACK with the
- --enable-capabilities option of ./configure. This installs a jackstart
- binary you can invoke as a normal user to start the jackd server with
- real-time privileges. The server will also give these privileges to the
- JACK thread in all its clients.
-
- To compile jack with capabilities enabled you will need libcap. Most
- distributions include this package, which is also available in source
- form. You also need the md5sum program and the openssl libraries to
- calculate and and verify the integrity of the jackd binary.
-
- How do I configure Mac OS X?
-
- On Mac OS X, all users have real-time privileges. No special tuning is
- required for real-time scheduling. But, OS X lacks POSIX support for
- locking pages into real memory. JACK will run without locking memory,
- but users should avoid running too many other applications when
- performing critical real-time tasks. If there is too much memory
- contention, the operating system might page out data needed for the
- time-critical process cycle, causing dropouts.
-
- Mac OS X users should take a look at Jack Tools, a set of tools for
- integrating JACK into the Apple CoreAudio environment.
-
- What about other Operating Systems?
-
- BSD does not provide any way to grant real-time privileges to non-root
- users. So, jackd -R only works for the superuser.
-
- Some older BSD variants lack POSIX support for locking pages into real
- memory. JACK will run without locking memory, but users should avoid
- running too many other applications when performing critical real-time
- tasks. If there is too much memory contention, the operating system
- might page out data needed for the time-critical process cycle, causing
- dropouts.
-
- What other software tuning should I consider?
-
- ALSA driver settings can affect performance to a large degree. Try
- adjusting the number of periods (anything other than 2 or 3 will
- probably not help you with JACK). For some cards, using just --playback
- or just --capture may help. Avoid using a plug-layer PCM device (like
- default). See the terse ALSA driver help (jackd -d alsa -h) or the jackd
- man page for a list of options.
-
- It has been found that mounting /tmp/jack as tmpfs (in RAM) solves
- problems that many people have experienced with xruns while using JACK.
- The solutions below help when your /tmp directory is mounted on a
- journalled filesystem.
-
- Just put this in your /etc/fstab
-
- none /tmp/jack tmpfs defaults 0 0
-
- There is also a compile option to enable JACK to place its FIFOs on a
- ram-based filesystem follows:
-
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-
- # mkdir /mnt/ramfs
-
- [edit /etc/fstab and add the following line]
-
- none /mnt/ramfs tmpfs defaults 0 0
-
- Then use --with-default-tmpdir=/mnt/ramfs to the JACK configure line
- when you build it. No clients need to be recompiled.
-
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-
- JACK, jackd, libjack, jackit, wha?
-
- There is a profusion of names surrounding the JACK project, and hopefully
- this will help clear things up.
-
- JACK
-
- JACK is the name of the whole system. It may be written as Jack if you
- prefer. It is an acronym for "Jack Audio Connection Kit". Do you know JACK?
-
- jackd, libjack
-
- As a system, JACK has a number of parts. The server process is called jackd,
- and the library that applications link to is called libjack. From a
- theoretical perspective, this distinction is not important, but it is
- helpful to note the difference when describing JACK internals, due to the
- fact that these components execute in different processes and address
- spaces.
-
- jackit, jack-audio-connection-kit
-
- As luck would have it, by the time we got around to registering a
- sourceforge site for JACK, there was already another program out there by
- the same name. "jackit" is a play on the original JACK acronym. Not only
- does that other project have the sourceforge name, it has mandrake and
- debian packages too, so we needed a new name for releases. At the moment, we
- are releasing tarballs as jack-audio-connection-kit.
-
-SourceForge.net Project Page
-Document History
diff --git a/debian/jackd.README.Debian b/debian/jackd.README.Debian
deleted file mode 100644
index b956b58..0000000
--- a/debian/jackd.README.Debian
+++ /dev/null
@@ -1,64 +0,0 @@
-Jack Audio Connection Kit (server and example clients)
-------------------------------------------------------
-
-Abstract:
- JACK will probably run just fine on your system with "jackd -d alsa"
- or "jackd -d oss".
-
- If you set JACK_START_SERVER in your environment, jackd will be
- automatically started by applications that need it if it is not yet
- running. In this mod commandline parameters are read from ~/.jackdrc
- overriding those in /etc/jackdrc.
-
- If you want better (or even only decent performance (fewer/no xruns, lower
- latency...), you will probably have to do a bit of work. This includes:
- 1. get recent alsa-drivers running well
- 2. set up an .asoundrc if you have a professional and
- powerful soundcard whose settings/channels/mixers you'd
- like to have finer control over.
- 3. use a 2.6 kernel with the realtime-preempt patch applied
- 5. run in realtime mode
-
-
-* General usage hints:
- - You should have the alsa-drivers running.
- - You should have an .asoundrc file in your home directory. It groups your
- sound devices together for jackd to use it. A minimalistic example can
- be found in /usr/share/doc/jackd/examples/asound.rc. Read the comments
- in this file for more information.
-
-* Low Latency:
- - To ensure that jackd can regularly fill its buffers and do its work
- it's necessary to modify parts of the kernel, that could block jackd from
- running at the required frequency. The patch is called "realtime-preempt"
- and is available at:
-
- http://www.kernel.org/pub/linux/kernel/projects/rt/
-
- See also the file /usr/share/doc/jackd/FAQ.gz for more info.
-
-* Realtime mode:
- - Realtime mode is enabled with the commandline option "--realtime".
- This will lock down parts of the memory jackd uses in your RAM and enable
- jackd to run as often as it wants (almost).
- - Only processes that run as "root" or inherit the RT-rights from jackd
- (that's capabilities support, see below) can obtain realtime rights.
- If you run jackd as root (without capabilities support, that is) you
- have to run all jack applications as root.
- - If you don't want to run jackd as root you can grant it RT-rights via
- the limits PAM module (you will need to install the libpam-modules
- package), just add these lines to
-
- @audio - rtprio 99
- @audio - nice -10
-
- your /etc/security/limits.conf
-
-* More Information:
- - man jackd
- - /usr/share/doc/jackd/FAQ.gz
- - /usr/share/doc/jackd/user-howto.gz
- - /usr/share/doc/jackd/README
- - http://jackaudio.org/
-
- -- Free Ekanayaka <freee at debian.org>, Mon, 28 May 2007 14:06:25 +0200
diff --git a/debian/jackd.docs b/debian/jackd.docs
index ea42a42..8ce5b40 100644
--- a/debian/jackd.docs
+++ b/debian/jackd.docs
@@ -1,3 +1,2 @@
build-tree/jack-audio-connection-kit-*/TODO
build-tree/jack-audio-connection-kit-*/AUTHORS
-debian/FAQ
--
Debian packaging for jack-audio-connection-kit
More information about the pkg-multimedia-commits
mailing list