From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dirk Scheuring Subject: Re: A secure multimedia workstation Date: Tue, 10 Feb 2015 16:21:27 +0100 Message-ID: References: <87y4o9xqts.fsf@gnu.org> <20150209182303.GA24693@debian> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47915) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLCd0-00080R-1K for guix-devel@gnu.org; Tue, 10 Feb 2015 10:21:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YLCcy-0006D7-H6 for guix-devel@gnu.org; Tue, 10 Feb 2015 10:21:29 -0500 Received: from mail-wg0-x231.google.com ([2a00:1450:400c:c00::231]:61138) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLCcy-0006Cx-9N for guix-devel@gnu.org; Tue, 10 Feb 2015 10:21:28 -0500 Received: by mail-wg0-f49.google.com with SMTP id l18so1157870wgh.8 for ; Tue, 10 Feb 2015 07:21:27 -0800 (PST) In-Reply-To: <20150209182303.GA24693@debian> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org Andreas Enge wrote: > ... Definitely you could start helping the Guix project (and your own project) by packaging software that you are interested in and that we do not provide yet. Some guile/scheme knowledge is helpful, but not strictly required, see https://www.gnu.org/software/guix/guix-ghm-andreas-20130823.pdf Some experience in installing software by hand is needed, though. The irc channel is usually a good place to ask for advice. This is interesting. You seem to make packaging much easier than I thought it would be. I wonder why that is. I know next to nothing about Guix yet, but I know some things about audio production software, and the problems you can experience while running it. For example, Ricardo Wurmus (1) recently added Ardour (2), a popular Digital Audio Workstation. Ardour depends on JACK Audio Connection Kit (3), as do many applications in the Linux Audio ecosystem. Multimedia distros like Ubuntu Studio and KXStudio include JACK, plus a kernel version compiled with the -lowlatency flag, to prevent dropouts/xruns when you're doing multichannel audio recording in Ardour, which might also have other samplers, synthesizers and drum machines feeding into it for playback, through JACK. So you want a kernel that prioritizes audio throughput above all else. I wouldn't know whether such a kernel was available for Guix currently, and if it wasn't, I wouldn't know how to compile one, and make it available. I would have to learn these things first, before I could start packaging something like Ardour. At least, so I thought. Moreover, there are production workflows which depend on Ardour being connected to other programs (5) which in turn depend on JACK. So I thought that I would have to track down all those interdependencies between programs, and include knowledge about them, libraries, etc. in the package receipt. I have to learn how to do that before I can seriously contribute, don't I? Also, not all audio applications support JACK. PulseAudio tends to fight with JACK, both trying to grab the audio hardware, but several other popular apps use PulseAudio, rather than JACK, as their audio server. The solution here is to configure PulseAudio to pipe its output into JACK, and as I'm trying to find out how to do that (6), I stumble across the remark "I performed the following changes to the files in /etc/pulse" when I realize that there is no /etc/pulse in Guix! Rather, the configuration files are represented - as is everything else - by their contribution to the hash values in /nix/store. Or that's how I currently understand it. So it seems like I have to learn how to map the relevant parts of the LSB to /nix/store, and I will also have to find out which parts are relevant for any program I have to include in my package, and I have to learn how to express this information in my receipt, so that the build process can use it successfully. And the deeper I crawl into this rabbit hole, the longer my list of known unknowns grows, while unknown unknowns remain unknown. I figured it might take me a while to work through all this, given that I have other jobs, and a family. Or am I overcomplicating things here? Thanks for any advice, Dirk (1) http://lists.gnu.org/archive/html/guix-devel/2015-01/msg00477.html (2) http://en.wikipedia.org/wiki/Ardour_%28software%29 (3) https://en.wikipedia.org/wiki/JACK_Audio_Connection_Kit (4) https://en.wikipedia.org/wiki/JACK_Audio_Connection_Kit#Low_latency_scheduling (5) http://kxstudio.sourceforge.net/Applications:Cadence (6) http://askubuntu.com/questions/100862/running-jackd-on-startup-replacing-pulseaudio