gnu: Add darkice.

* gnu/packages/audio.scm (darkice): New variable.
* gnu/packages/patches/darkice-workaround-fpermissive-error.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
This commit is contained in:
Mark H Weaver 2019-07-21 11:12:36 -04:00
parent 3aec5263a3
commit 2f4698d7d1
No known key found for this signature in database
GPG Key ID: 7CEF29847562C516
3 changed files with 96 additions and 0 deletions

View File

@ -748,6 +748,7 @@ dist_patch_DATA = \
%D%/packages/patches/cube-nocheck.patch \ %D%/packages/patches/cube-nocheck.patch \
%D%/packages/patches/cursynth-wave-rand.patch \ %D%/packages/patches/cursynth-wave-rand.patch \
%D%/packages/patches/cvs-CVE-2017-12836.patch \ %D%/packages/patches/cvs-CVE-2017-12836.patch \
%D%/packages/patches/darkice-workaround-fpermissive-error.patch \
%D%/packages/patches/dbus-helper-search-path.patch \ %D%/packages/patches/dbus-helper-search-path.patch \
%D%/packages/patches/dbus-CVE-2019-12749.patch \ %D%/packages/patches/dbus-CVE-2019-12749.patch \
%D%/packages/patches/dealii-mpi-deprecations.patch \ %D%/packages/patches/dealii-mpi-deprecations.patch \

View File

@ -3751,3 +3751,36 @@ binaural beat tracks of different frequencies and exporting of tracks into
different audio formats. Gnaural can also be linked over the internet with different audio formats. Gnaural can also be linked over the internet with
other Gnaural instances, allowing synchronous sessions between many users.") other Gnaural instances, allowing synchronous sessions between many users.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public darkice
(package
(name "darkice")
(version "1.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/darkice/darkice/"
version "/darkice-" version ".tar.gz"))
(sha256
(base32 "1rlxds7ssq7nk2in4s46xws7xy9ylxsqgcz85hxjgh17lsm0y39c"))
(patches
(search-patches "darkice-workaround-fpermissive-error.patch"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("lame" ,lame)
("libvorbis" ,libvorbis)
("opus" ,opus)
("twolame" ,twolame)
("alsa-lib" ,alsa-lib)
("pulseaudio" ,pulseaudio)
("jack" ,jack-1)
("libsamplerate" ,libsamplerate)))
(arguments
`(#:configure-flags
(list (string-append "--with-lame-prefix="
(assoc-ref %build-inputs "lame")))))
(home-page "http://www.darkice.org/")
(synopsis "Live audio streamer")
(description "DarkIce is a live audio streamer. It takes audio input from
a sound card, encodes it into Ogg Vorbis and/or mp3, and sends the audio
stream to one or more IceCast and/or ShoutCast servers.")
(license license:gpl3+)))

View File

@ -0,0 +1,62 @@
Copied from Debian:
<https://sources.debian.org/data/main/d/darkice/1.3-0.2/debian/patches/0001-Cast-float-in-SRC-lib-calls-to-delete-fpermissive-co.patch>
From 1e2eb18d349f205c70cb2836232825442359b6e3 Mon Sep 17 00:00:00 2001
From: belette <ouack23@yahoo.fr>
Date: Wed, 26 Oct 2016 02:43:43 +0200
Subject: Cast float* in SRC lib calls to delete fpermissive compilation error
---
darkice/trunk/src/FaacEncoder.cpp | 2 +-
darkice/trunk/src/OpusLibEncoder.cpp | 2 +-
darkice/trunk/src/VorbisLibEncoder.cpp | 2 +-
darkice/trunk/src/aacPlusEncoder.cpp | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
--- a/src/FaacEncoder.cpp
+++ b/src/FaacEncoder.cpp
@@ -164,7 +164,7 @@ FaacEncoder :: write ( const void * buf,
if ( converter ) {
unsigned int converted;
#ifdef HAVE_SRC_LIB
- src_short_to_float_array ((short *) b, converterData.data_in, samples);
+ src_short_to_float_array ((short *) b, (float *) converterData.data_in, samples);
converterData.input_frames = nSamples;
converterData.data_out = resampledOffset + (resampledOffsetSize * channels);
int srcError = src_process (converter, &converterData);
--- a/src/OpusLibEncoder.cpp
+++ b/src/OpusLibEncoder.cpp
@@ -403,7 +403,7 @@ OpusLibEncoder :: write ( const void * buf,
#ifdef HAVE_SRC_LIB
(void)inCount;
converterData.input_frames = processed;
- src_short_to_float_array (shortBuffer, converterData.data_in, totalSamples);
+ src_short_to_float_array (shortBuffer, (float *) converterData.data_in, totalSamples);
int srcError = src_process (converter, &converterData);
if (srcError)
throw Exception (__FILE__, __LINE__, "libsamplerate error: ", src_strerror (srcError));
--- a/src/VorbisLibEncoder.cpp
+++ b/src/VorbisLibEncoder.cpp
@@ -337,7 +337,7 @@ VorbisLibEncoder :: write ( const void * buf,
int converted;
#ifdef HAVE_SRC_LIB
converterData.input_frames = nSamples;
- src_short_to_float_array (shortBuffer, converterData.data_in, totalSamples);
+ src_short_to_float_array (shortBuffer, (float *) converterData.data_in, totalSamples);
int srcError = src_process (converter, &converterData);
if (srcError)
throw Exception (__FILE__, __LINE__, "libsamplerate error: ", src_strerror (srcError));
--- a/src/aacPlusEncoder.cpp
+++ b/src/aacPlusEncoder.cpp
@@ -155,7 +155,7 @@ aacPlusEncoder :: write ( const void * buf,
if ( converter ) {
unsigned int converted;
#ifdef HAVE_SRC_LIB
- src_short_to_float_array ((short *) b, converterData.data_in, samples);
+ src_short_to_float_array ((short *) b, (float *) converterData.data_in, samples);
converterData.input_frames = nSamples;
converterData.data_out = resampledOffset + (resampledOffsetSize * channels);
int srcError = src_process (converter, &converterData);
--
2.11.0