Merge remote-tracking branch 'central/master' into x-updates
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{stdenv, fetchurl, cups, zlib, libjpeg, libusb, python, saneBackends, dbus
|
||||
, pkgconfig, polkit, qtSupport ? true, qt4
|
||||
{stdenv, fetchurl, cups, zlib, libjpeg, libusb, pythonPackages, saneBackends, dbus
|
||||
, pkgconfig, polkit, qtSupport ? true, qt4, pythonDBus, pyqt4, net_snmp
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
prePatch = ''
|
||||
sed -i s,/etc/sane.d,$out/etc/sane.d/, Makefile.in
|
||||
sed -i s,/etc/hp/,$out/etc/hp/, base/g.py
|
||||
'';
|
||||
|
||||
# --disable-network-build Until we have snmp
|
||||
@@ -28,7 +29,7 @@ stdenv.mkDerivation rec {
|
||||
--with-systraydir=$out/xdg/autostart
|
||||
--with-mimedir=$out/etc/cups
|
||||
--enable-policykit
|
||||
--disable-network-build"
|
||||
"
|
||||
|
||||
export makeFlags="
|
||||
halpredir=$out/share/hal/fdi/preprobe/10osvendor
|
||||
@@ -41,8 +42,27 @@ stdenv.mkDerivation rec {
|
||||
";
|
||||
'';
|
||||
|
||||
buildInputs = [libjpeg cups libusb python saneBackends dbus pkgconfig] ++
|
||||
stdenv.lib.optional qtSupport qt4;
|
||||
postInstall = ''
|
||||
wrapPythonPrograms
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
libjpeg
|
||||
cups
|
||||
libusb
|
||||
pythonPackages.python
|
||||
pythonPackages.wrapPython
|
||||
saneBackends
|
||||
dbus
|
||||
pkgconfig
|
||||
net_snmp
|
||||
] ++ stdenv.lib.optional qtSupport qt4;
|
||||
|
||||
pythonPath = with pythonPackages; [
|
||||
pythonDBus
|
||||
pygobject
|
||||
recursivePthLoader
|
||||
] ++ stdenv.lib.optional qtSupport pyqt4;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Print, scan and fax HP drivers for Linux";
|
||||
|
||||
17
pkgs/misc/emulators/wine/build_winetricks.sh
Normal file
17
pkgs/misc/emulators/wine/build_winetricks.sh
Normal file
@@ -0,0 +1,17 @@
|
||||
#!bash
|
||||
source $stdenv/setup
|
||||
mkdir -p $out/bin
|
||||
cp $src/src/winetricks $out/bin/winetricks
|
||||
chmod +x $out/bin/winetricks
|
||||
cd $out/bin
|
||||
patch -u -p0 < $patch
|
||||
|
||||
mkdir -p "$out/share/man/man1"
|
||||
cp "$src/src/winetricks.1" "$out/share/man/man1/"
|
||||
|
||||
patchShebangs "$out"
|
||||
|
||||
substituteInPlace "$out/bin/winetricks" --replace "/usr/bin/perl" `which perl`
|
||||
|
||||
# add stuff to PATH
|
||||
sed -i "2i PATH=\"${pathAdd}:\${PATH}\"" "$out/bin/winetricks"
|
||||
28
pkgs/misc/emulators/wine/winetricks.nix
Normal file
28
pkgs/misc/emulators/wine/winetricks.nix
Normal file
@@ -0,0 +1,28 @@
|
||||
{ stdenv, fetchsvn, wine, perl, which, coreutils, zenity, curl, cabextract, unzip, p7zip } :
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
rev = "939";
|
||||
name = "winetricks-${rev}";
|
||||
|
||||
src = fetchsvn {
|
||||
url = "http://winetricks.googlecode.com/svn/trunk";
|
||||
inherit rev;
|
||||
};
|
||||
|
||||
buildInputs = [ perl which ];
|
||||
|
||||
pathAdd = stdenv.lib.concatStringsSep "/bin:" # coreutils is for sha1sum
|
||||
[ wine perl which coreutils zenity curl cabextract unzip p7zip ]
|
||||
+ "/bin";
|
||||
|
||||
patch = ./winetricks.patch;
|
||||
|
||||
builder = ./build_winetricks.sh;
|
||||
|
||||
meta = {
|
||||
description = "A script to install DLLs needed to work around problems in Wine";
|
||||
license = "LGPLv2.1";
|
||||
homepage = http://code.google.com/p/winetricks/;
|
||||
};
|
||||
}
|
||||
|
||||
21
pkgs/misc/emulators/wine/winetricks.patch
Normal file
21
pkgs/misc/emulators/wine/winetricks.patch
Normal file
@@ -0,0 +1,21 @@
|
||||
--- upstream-winetricks 2013-01-12 13:26:12.333076904 -0800
|
||||
+++ winetricks 2013-01-12 14:37:39.675092352 -0800
|
||||
@@ -3398,7 +3398,7 @@
|
||||
WINETRICKS_OPT_SHAREDPREFIX=${WINETRICKS_OPT_SHAREDPREFIX:-0}
|
||||
|
||||
# Mac folks tend to not have sha1sum, but we can make do with openssl
|
||||
- if [ -x "`which sha1sum 2>/dev/null`" ]
|
||||
+ if [ -e "`which sha1sum 2>/dev/null`" ]
|
||||
then
|
||||
WINETRICKS_SHA1SUM="sha1sum"
|
||||
elif [ -x "`which openssl 2>/dev/null`" ]
|
||||
@@ -3628,7 +3628,7 @@
|
||||
if ! test "$WINETRICKS_LIB"
|
||||
then
|
||||
WINETRICKS_SRCDIR=`dirname "$0"`
|
||||
- WINETRICKS_SRCDIR=`cd "$WINETRICKS_SRCDIR"; /bin/pwd`
|
||||
+ WINETRICKS_SRCDIR=`cd "$WINETRICKS_SRCDIR"; pwd`
|
||||
|
||||
# Which GUI helper to use (none/zenity/kdialog). See winetricks_detect_gui.
|
||||
WINETRICKS_GUI=none
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
{ stdenv, fetchurl, alsaLib, dbus, expat, libsamplerate
|
||||
, libsndfile, makeWrapper, pkgconfig, python, pythonDBus
|
||||
, firewireSupport ? false, ffado ? null }:
|
||||
, firewireSupport ? false, ffado ? null, bash }:
|
||||
|
||||
assert firewireSupport -> ffado != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "jackdbus-${version}";
|
||||
version = "1.9.8";
|
||||
version = "1.9.9.5";
|
||||
|
||||
src = fetchurl {
|
||||
urls = [
|
||||
"http://pkgs.fedoraproject.org/lookaside/pkgs/jack-audio-connection-kit/jack-1.9.8.tgz/1dd2ff054cab79dfc11d134756f27165/jack-1.9.8.tgz"
|
||||
"http://www.grame.fr/~letz/jack-1.9.8.tgz"
|
||||
https://dl.dropbox.com/u/28869550/jack-1.9.9.5.tar.bz2
|
||||
];
|
||||
sha256 = "0788092zxrivcfnfg15brpjkf14x8ma8cwjz4k0b9xdxajn2wwac";
|
||||
sha256 = "1ggba69jsfg7dmjzlyqz58y2wa92lm3vwdy4r15bs7mvxb65mvv5";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
@@ -21,10 +20,11 @@ stdenv.mkDerivation rec {
|
||||
pkgconfig python pythonDBus
|
||||
] ++ (stdenv.lib.optional firewireSupport ffado);
|
||||
|
||||
patches = ./ffado_setbuffsize-jack2.patch;
|
||||
patchPhase = ''
|
||||
substituteInPlace svnversion_regenerate.sh --replace /bin/bash ${bash}/bin/bash
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
cd jack-1.9.8
|
||||
python waf configure --prefix=$out --dbus --alsa ${if firewireSupport then "--firewire" else ""}
|
||||
'';
|
||||
|
||||
|
||||
@@ -1,140 +0,0 @@
|
||||
https://projects.archlinux.org/svntogit/community.git/tree/trunk?h=packages/jack2
|
||||
|
||||
From 96e0251234a29a1360c05d5d7dc98b83436b8183 Mon Sep 17 00:00:00 2001
|
||||
From: Adrian Knoth <adi@drcomp.erfurt.thur.de>
|
||||
Date: Sat, 17 Mar 2012 22:36:30 +0100
|
||||
Subject: [PATCH] [firewire] Allow FFADO backend to change the buffer size
|
||||
|
||||
This is a port of Jonathan Woithe's patch from jackd1.
|
||||
With sufficiently recent versions of FFADO, it allows to change
|
||||
the buffersize at runtime.
|
||||
---
|
||||
linux/firewire/JackFFADODriver.cpp | 65 ++++++++++++++++++++++++++++++++----
|
||||
linux/firewire/JackFFADODriver.h | 6 ++++
|
||||
2 files changed, 65 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/jack-1.9.8/linux/firewire/JackFFADODriver.cpp b/jack-1.9.8/linux/firewire/JackFFADODriver.cpp
|
||||
index b33e1cd..085b78a 100644
|
||||
--- a/jack-1.9.8/linux/firewire/JackFFADODriver.cpp
|
||||
+++ b/jack-1.9.8/linux/firewire/JackFFADODriver.cpp
|
||||
@@ -3,6 +3,7 @@
|
||||
Copyright (C) 2004 Grame
|
||||
Copyright (C) 2007 Pieter Palmers
|
||||
Copyright (C) 2009 Devin Anderson
|
||||
+Copyright (C) 2012 Jonathan Woithe, Adrian Knoth
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -48,7 +49,10 @@
|
||||
namespace Jack
|
||||
{
|
||||
|
||||
+// Basic functionality requires API version 8. If version 9 or later
|
||||
+// is present the buffers can be resized at runtime.
|
||||
#define FIREWIRE_REQUIRED_FFADO_API_VERSION 8
|
||||
+#define FIREWIRE_REQUIRED_FFADO_API_VERSION_FOR_SETBUFSIZE 9
|
||||
|
||||
#define jack_get_microseconds GetMicroSeconds
|
||||
|
||||
@@ -281,19 +285,68 @@
|
||||
int
|
||||
JackFFADODriver::SetBufferSize (jack_nframes_t nframes)
|
||||
{
|
||||
- printError("Buffer size change requested but not supported!!!");
|
||||
+ ffado_driver_t* driver = (ffado_driver_t*)fDriver;
|
||||
+ signed int chn;
|
||||
+
|
||||
+ // The speed of this function isn't critical; we can afford the
|
||||
+ // time to check the FFADO API version.
|
||||
+ if (ffado_get_api_version() < FIREWIRE_REQUIRED_FFADO_API_VERSION_FOR_SETBUFSIZE ||
|
||||
+ ffado_streaming_set_period_size == NULL) {
|
||||
+ printError("unsupported on current version of FFADO; please upgrade FFADO");
|
||||
+ return -1;
|
||||
+ }
|
||||
|
||||
- /*
|
||||
driver->period_size = nframes;
|
||||
driver->period_usecs =
|
||||
(jack_time_t) floor ((((float) nframes) / driver->sample_rate)
|
||||
* 1000000.0f);
|
||||
- */
|
||||
+
|
||||
+
|
||||
+ // Reallocate the null and scratch buffers.
|
||||
+ driver->nullbuffer = (ffado_sample_t*) calloc(driver->period_size, sizeof(ffado_sample_t));
|
||||
+ if(driver->nullbuffer == NULL) {
|
||||
+ printError("could not allocate memory for null buffer");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ driver->scratchbuffer = (ffado_sample_t*) calloc(driver->period_size, sizeof(ffado_sample_t));
|
||||
+ if(driver->scratchbuffer == NULL) {
|
||||
+ printError("could not allocate memory for scratch buffer");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ // MIDI buffers need reallocating
|
||||
+ for (chn = 0; chn < driver->capture_nchannels; chn++) {
|
||||
+ if(driver->capture_channels[chn].stream_type == ffado_stream_type_midi) {
|
||||
+ // setup the midi buffer
|
||||
+ if (driver->capture_channels[chn].midi_buffer != NULL)
|
||||
+ free(driver->capture_channels[chn].midi_buffer);
|
||||
+ driver->capture_channels[chn].midi_buffer = (ffado_sample_t*) calloc(driver->period_size, sizeof(uint32_t));
|
||||
+ }
|
||||
+ }
|
||||
+ for (chn = 0; chn < driver->playback_nchannels; chn++) {
|
||||
+ if(driver->playback_channels[chn].stream_type == ffado_stream_type_midi) {
|
||||
+ if (driver->playback_channels[chn].midi_buffer != NULL)
|
||||
+ free(driver->playback_channels[chn].midi_buffer);
|
||||
+ driver->playback_channels[chn].midi_buffer = (ffado_sample_t*) calloc(driver->period_size, sizeof(uint32_t));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Notify FFADO of the period size change
|
||||
+ if (ffado_streaming_set_period_size(driver->dev, nframes) != 0) {
|
||||
+ printError("could not alter FFADO device period size");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ // This is needed to give the shadow variables a chance to
|
||||
+ // properly update to the changes.
|
||||
+ sleep(1);
|
||||
|
||||
/* tell the engine to change its buffer size */
|
||||
- //driver->engine->set_buffer_size (driver->engine, nframes);
|
||||
+ JackAudioDriver::SetBufferSize(nframes); // Generic change, never fails
|
||||
|
||||
- return -1; // unsupported
|
||||
+ UpdateLatencies();
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
typedef void (*JackDriverFinishFunction) (jack_driver_t *);
|
||||
@@ -306,7 +359,7 @@
|
||||
|
||||
assert(params);
|
||||
|
||||
- if (ffado_get_api_version() != FIREWIRE_REQUIRED_FFADO_API_VERSION) {
|
||||
+ if (ffado_get_api_version() < FIREWIRE_REQUIRED_FFADO_API_VERSION) {
|
||||
printError("Incompatible libffado version! (%s)", ffado_get_version());
|
||||
return NULL;
|
||||
}
|
||||
diff --git a/jack-1.9.8/linux/firewire/JackFFADODriver.h b/jack-1.9.8/linux/firewire/JackFFADODriver.h
|
||||
index cb2a45d..790f4dd 100644
|
||||
--- a/jack-1.9.8/linux/firewire/JackFFADODriver.h
|
||||
+++ b/jack-1.9.8/linux/firewire/JackFFADODriver.h
|
||||
@@ -82,6 +82,12 @@ class JackFFADODriver : public JackAudioDriver
|
||||
int Read();
|
||||
int Write();
|
||||
|
||||
+ // BufferSize can be changed
|
||||
+ bool IsFixedBufferSize()
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
int SetBufferSize(jack_nframes_t nframes);
|
||||
};
|
||||
|
||||
--
|
||||
1.7.10
|
||||
Reference in New Issue
Block a user