Merge pull request #337302 from emilazy/push-yznrlltnqswn
{libav{,_{0_8,11,12}},keyfinder}: drop
This commit is contained in:
@@ -1,40 +0,0 @@
|
||||
{ lib, mkDerivation, fetchFromGitHub, libav_0_8, libkeyfinder, qtbase, qtxmlpatterns, qmake, taglib }:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "keyfinder";
|
||||
version = "2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
sha256 = "11yhdwan7bz8nn8vxr54drckyrnlxynhx5s981i475bbccg8g7ls";
|
||||
rev = "530034d6fe86d185f6a68b817f8db5f552f065d7"; # tag is missing
|
||||
repo = "is_KeyFinder";
|
||||
owner = "ibsh";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake ];
|
||||
buildInputs = [ libav_0_8 libkeyfinder qtbase qtxmlpatterns taglib ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace is_KeyFinder.pro \
|
||||
--replace "-stdlib=libc++" "" \
|
||||
--replace "\$\$[QT_INSTALL_PREFIX]" "$out"
|
||||
'';
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Musical key detection for digital audio (graphical UI)";
|
||||
longDescription = ''
|
||||
KeyFinder is an open source key detection tool, for DJs interested in
|
||||
harmonic and tonal mixing. Designed primarily for electronic and dance
|
||||
music, it is highly configurable and can be applied to many genres. It
|
||||
supports a huge range of codecs thanks to LibAV, and writes to metadata
|
||||
tags using TagLib. It's intended to be very focused: no library
|
||||
management, no track suggestions, no media player. Just a fast,
|
||||
efficient workflow tool.
|
||||
'';
|
||||
homepage = "https://www.ibrahimshaath.co.uk/keyfinder/";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -8,14 +8,11 @@
|
||||
, gstreamer
|
||||
, gst-plugins-base
|
||||
, gettext
|
||||
, libav
|
||||
, ffmpeg-headless
|
||||
# Checks meson.is_cross_build(), so even canExecute isn't enough.
|
||||
, enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform, hotdoc
|
||||
}:
|
||||
|
||||
# Note that since gst-libav-1.6, libav is actually ffmpeg. See
|
||||
# https://gstreamer.freedesktop.org/releases/1.6/ for more info.
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gst-libav";
|
||||
version = "1.24.3";
|
||||
@@ -40,7 +37,7 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
libav
|
||||
ffmpeg-headless
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
@@ -53,7 +50,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "FFmpeg/libav plugin for GStreamer";
|
||||
description = "FFmpeg plugin for GStreamer";
|
||||
homepage = "https://gstreamer.freedesktop.org";
|
||||
license = licenses.lgpl2Plus;
|
||||
platforms = platforms.unix;
|
||||
|
||||
@@ -1,137 +0,0 @@
|
||||
{ lib, stdenv, fetchurl, pkg-config, yasm, bzip2, zlib, perl, bash
|
||||
, mp3Support ? true, lame ? null
|
||||
, speexSupport ? true, speex ? null
|
||||
, theoraSupport ? true, libtheora ? null
|
||||
, vorbisSupport ? true, libvorbis ? null
|
||||
, vpxSupport ? true, libvpx ? null
|
||||
, x264Support ? false, x264 ? null
|
||||
, xvidSupport ? true, xvidcore ? null
|
||||
, faacSupport ? false, faac ? null
|
||||
, vaapiSupport ? true, libva ? null
|
||||
, vdpauSupport ? true, libvdpau ? null
|
||||
, freetypeSupport ? true, freetype ? null # it's small and almost everywhere
|
||||
, SDL # only for avplay in $bin, adds nontrivial closure to it
|
||||
, enableGPL ? true # ToDo: some additional default stuff may need GPL
|
||||
, enableUnfree ? faacSupport
|
||||
}:
|
||||
|
||||
assert faacSupport -> enableUnfree;
|
||||
|
||||
let inherit (lib) optional optionals hasPrefix enableFeature; in
|
||||
|
||||
/* ToDo:
|
||||
- more deps, inspiration: https://packages.ubuntu.com/raring/libav-tools
|
||||
- maybe do some more splitting into outputs
|
||||
*/
|
||||
|
||||
let
|
||||
result = {
|
||||
# e.g. https://libav.org/releases/libav-11.11.tar.xz.sha1
|
||||
libav_0_8 = libavFun "0.8.21" "d858f65128dad0bac1a8c3a51e5cbb27a7c79b3f";
|
||||
libav_11 = libavFun "11.12" "61d5dcab5fde349834af193a572b12a5fd6a4d42";
|
||||
libav_12 = libavFun "12.3" "386c18c8b857f23dfcf456ce40370716130211d9";
|
||||
};
|
||||
|
||||
libavFun = version : sha1 : stdenv.mkDerivation rec {
|
||||
pname = "libav";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "${meta.homepage}/releases/${pname}-${version}.tar.xz";
|
||||
inherit sha1; # upstream directly provides sha1 of releases over https
|
||||
};
|
||||
|
||||
patches = []
|
||||
++ optional (vpxSupport && hasPrefix "0.8." version) ./vpxenc-0.8.17-libvpx-1.5.patch
|
||||
++ optional (vpxSupport && hasPrefix "12." version) ./vpx-12.3-libvpx-1.8.patch
|
||||
;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
# another shebang was hidden in a here document text
|
||||
substituteInPlace ./configure --replace "#! /bin/sh" "#!${bash}/bin/sh"
|
||||
'';
|
||||
|
||||
configurePlatforms = [];
|
||||
configureFlags = assert lib.all (x: x!=null) buildInputs; [
|
||||
"--arch=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"--target_os=${stdenv.hostPlatform.parsed.kernel.name}"
|
||||
#"--enable-postproc" # it's now a separate package in upstream
|
||||
"--disable-avserver" # upstream says it's in a bad state
|
||||
"--enable-avplay"
|
||||
"--enable-shared"
|
||||
"--enable-runtime-cpudetect"
|
||||
"--cc=${stdenv.cc.targetPrefix}cc"
|
||||
(enableFeature enableGPL "gpl")
|
||||
(enableFeature enableGPL "swscale")
|
||||
(enableFeature mp3Support "libmp3lame")
|
||||
(enableFeature mp3Support "libmp3lame")
|
||||
(enableFeature speexSupport "libspeex")
|
||||
(enableFeature theoraSupport "libtheora")
|
||||
(enableFeature vorbisSupport "libvorbis")
|
||||
(enableFeature vpxSupport "libvpx")
|
||||
(enableFeature x264Support "libx264")
|
||||
(enableFeature xvidSupport "libxvid")
|
||||
(enableFeature faacSupport "libfaac")
|
||||
(enableFeature faacSupport "nonfree")
|
||||
(enableFeature vaapiSupport "vaapi")
|
||||
(enableFeature vdpauSupport "vdpau")
|
||||
(enableFeature freetypeSupport "libfreetype")
|
||||
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||
"--cross-prefix=${stdenv.cc.targetPrefix}"
|
||||
"--enable-cross-compile"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config perl ];
|
||||
buildInputs = [ lame yasm zlib bzip2 SDL bash ]
|
||||
++ [ perl ] # for install-man target
|
||||
++ optional mp3Support lame
|
||||
++ optional speexSupport speex
|
||||
++ optional theoraSupport libtheora
|
||||
++ optional vorbisSupport libvorbis
|
||||
++ optional vpxSupport libvpx
|
||||
++ optional x264Support x264
|
||||
++ optional xvidSupport xvidcore
|
||||
++ optional faacSupport faac
|
||||
++ optional vaapiSupport libva
|
||||
++ optional vdpauSupport libvdpau
|
||||
++ optional freetypeSupport freetype
|
||||
;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "bin" "dev" "out" ];
|
||||
setOutputFlags = false;
|
||||
|
||||
# alltools to build smaller tools, incl. aviocat, ismindex, qt-faststart, etc.
|
||||
buildFlags = [ "all" "alltools" "install-man" ];
|
||||
|
||||
|
||||
postInstall = ''
|
||||
moveToOutput bin "$bin"
|
||||
# alltools target compiles an executable in tools/ for every C
|
||||
# source file in tools/, so move those to $out
|
||||
for tool in $(find tools -type f -executable); do
|
||||
mv "$tool" "$bin/bin/"
|
||||
done
|
||||
'';
|
||||
|
||||
doInstallCheck = false; # fails randomly
|
||||
installCheckTarget = "check"; # tests need to be run *after* installation
|
||||
|
||||
passthru = { inherit vdpauSupport; };
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://libav.org/";
|
||||
description = "Complete, cross-platform solution to record, convert and stream audio and video (fork of ffmpeg)";
|
||||
license = with licenses; if enableUnfree then unfree #ToDo: redistributable or not?
|
||||
else if enableGPL then gpl2Plus else lgpl21Plus;
|
||||
platforms = with platforms; linux ++ darwin;
|
||||
knownVulnerabilities =
|
||||
lib.optional (lib.versionOlder version "12.1") "CVE-2017-9051"
|
||||
++ lib.optionals (lib.versionOlder version "12.3") [ "CVE-2018-5684" "CVE-2018-5766" ]
|
||||
++ lib.optionals (lib.versionOlder version "12.4") [ "CVE-2019-9717" "CVE-2019-9720" ];
|
||||
};
|
||||
}; # libavFun
|
||||
|
||||
in result
|
||||
@@ -1,46 +0,0 @@
|
||||
--- libav/libavcodec/libvpx.c.orig 2018-02-12 21:25:59 UTC
|
||||
+++ libav/libavcodec/libvpx.c
|
||||
@@ -25,6 +25,7 @@
|
||||
enum AVPixelFormat ff_vpx_imgfmt_to_pixfmt(vpx_img_fmt_t img)
|
||||
{
|
||||
switch (img) {
|
||||
+#if VPX_IMAGE_ABI_VERSION < 5
|
||||
case VPX_IMG_FMT_RGB24: return AV_PIX_FMT_RGB24;
|
||||
case VPX_IMG_FMT_RGB565: return AV_PIX_FMT_RGB565BE;
|
||||
case VPX_IMG_FMT_RGB555: return AV_PIX_FMT_RGB555BE;
|
||||
@@ -36,10 +37,13 @@ enum AVPixelFormat ff_vpx_imgfmt_to_pixfmt(vpx_img_fmt
|
||||
case VPX_IMG_FMT_ARGB_LE: return AV_PIX_FMT_BGRA;
|
||||
case VPX_IMG_FMT_RGB565_LE: return AV_PIX_FMT_RGB565LE;
|
||||
case VPX_IMG_FMT_RGB555_LE: return AV_PIX_FMT_RGB555LE;
|
||||
+#endif
|
||||
case VPX_IMG_FMT_I420: return AV_PIX_FMT_YUV420P;
|
||||
case VPX_IMG_FMT_I422: return AV_PIX_FMT_YUV422P;
|
||||
case VPX_IMG_FMT_I444: return AV_PIX_FMT_YUV444P;
|
||||
+#if VPX_IMAGE_ABI_VERSION < 5
|
||||
case VPX_IMG_FMT_444A: return AV_PIX_FMT_YUVA444P;
|
||||
+#endif
|
||||
#if VPX_IMAGE_ABI_VERSION >= 3
|
||||
case VPX_IMG_FMT_I440: return AV_PIX_FMT_YUV440P;
|
||||
case VPX_IMG_FMT_I42016: return AV_PIX_FMT_YUV420P16BE;
|
||||
@@ -53,6 +57,7 @@ enum AVPixelFormat ff_vpx_imgfmt_to_pixfmt(vpx_img_fmt
|
||||
vpx_img_fmt_t ff_vpx_pixfmt_to_imgfmt(enum AVPixelFormat pix)
|
||||
{
|
||||
switch (pix) {
|
||||
+#if VPX_IMAGE_ABI_VERSION < 5
|
||||
case AV_PIX_FMT_RGB24: return VPX_IMG_FMT_RGB24;
|
||||
case AV_PIX_FMT_RGB565BE: return VPX_IMG_FMT_RGB565;
|
||||
case AV_PIX_FMT_RGB555BE: return VPX_IMG_FMT_RGB555;
|
||||
@@ -64,10 +69,13 @@ vpx_img_fmt_t ff_vpx_pixfmt_to_imgfmt(enum AVPixelForm
|
||||
case AV_PIX_FMT_BGRA: return VPX_IMG_FMT_ARGB_LE;
|
||||
case AV_PIX_FMT_RGB565LE: return VPX_IMG_FMT_RGB565_LE;
|
||||
case AV_PIX_FMT_RGB555LE: return VPX_IMG_FMT_RGB555_LE;
|
||||
+#endif
|
||||
case AV_PIX_FMT_YUV420P: return VPX_IMG_FMT_I420;
|
||||
case AV_PIX_FMT_YUV422P: return VPX_IMG_FMT_I422;
|
||||
case AV_PIX_FMT_YUV444P: return VPX_IMG_FMT_I444;
|
||||
+#if VPX_IMAGE_ABI_VERSION < 5
|
||||
case AV_PIX_FMT_YUVA444P: return VPX_IMG_FMT_444A;
|
||||
+#endif
|
||||
#if VPX_IMAGE_ABI_VERSION >= 3
|
||||
case AV_PIX_FMT_YUV440P: return VPX_IMG_FMT_I440;
|
||||
case AV_PIX_FMT_YUV420P16BE: return VPX_IMG_FMT_I42016;
|
||||
@@ -1,22 +0,0 @@
|
||||
--- a/libavcodec/libvpxenc.c 2016-05-01 17:57:16.753852614 +0200
|
||||
+++ b/libavcodec/libvpxenc.c 2016-05-01 18:01:08.252147138 +0200
|
||||
@@ -67,19 +67,11 @@
|
||||
|
||||
/** String mappings for enum vp8e_enc_control_id */
|
||||
static const char *ctlidstr[] = {
|
||||
- [VP8E_UPD_ENTROPY] = "VP8E_UPD_ENTROPY",
|
||||
- [VP8E_UPD_REFERENCE] = "VP8E_UPD_REFERENCE",
|
||||
- [VP8E_USE_REFERENCE] = "VP8E_USE_REFERENCE",
|
||||
- [VP8E_SET_ROI_MAP] = "VP8E_SET_ROI_MAP",
|
||||
- [VP8E_SET_ACTIVEMAP] = "VP8E_SET_ACTIVEMAP",
|
||||
- [VP8E_SET_SCALEMODE] = "VP8E_SET_SCALEMODE",
|
||||
[VP8E_SET_CPUUSED] = "VP8E_SET_CPUUSED",
|
||||
[VP8E_SET_ENABLEAUTOALTREF] = "VP8E_SET_ENABLEAUTOALTREF",
|
||||
[VP8E_SET_NOISE_SENSITIVITY] = "VP8E_SET_NOISE_SENSITIVITY",
|
||||
- [VP8E_SET_SHARPNESS] = "VP8E_SET_SHARPNESS",
|
||||
[VP8E_SET_STATIC_THRESHOLD] = "VP8E_SET_STATIC_THRESHOLD",
|
||||
[VP8E_SET_TOKEN_PARTITIONS] = "VP8E_SET_TOKEN_PARTITIONS",
|
||||
- [VP8E_GET_LAST_QUANTIZER] = "VP8E_GET_LAST_QUANTIZER",
|
||||
[VP8E_SET_ARNR_MAXFRAMES] = "VP8E_SET_ARNR_MAXFRAMES",
|
||||
[VP8E_SET_ARNR_STRENGTH] = "VP8E_SET_ARNR_STRENGTH",
|
||||
[VP8E_SET_ARNR_TYPE] = "VP8E_SET_ARNR_TYPE",
|
||||
@@ -94,7 +94,7 @@ buildPythonPackage rec {
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Pythonic bindings for FFmpeg/Libav";
|
||||
description = "Pythonic bindings for FFmpeg";
|
||||
mainProgram = "pyav";
|
||||
homepage = "https://github.com/PyAV-Org/PyAV";
|
||||
changelog = "https://github.com/PyAV-Org/PyAV/blob/v${version}/CHANGELOG.rst";
|
||||
|
||||
@@ -722,6 +722,7 @@ mapAliases ({
|
||||
keepkey_agent = keepkey-agent; # added 2024-01-06
|
||||
kerberos = libkrb5; # moved from top-level 2021-03-14
|
||||
kexectools = kexec-tools; # Added 2021-09-03
|
||||
keyfinger = throw "keyfinder has been removed as it was abandoned upstream and did not build; consider using mixxx or keyfinder-cli"; # Addd 2024-08-25
|
||||
keysmith = libsForQt5.kdeGear.keysmith; # Added 2021-07-14
|
||||
kfctl = throw "kfctl is broken and has been archived by upstream"; # Added 2023-08-21
|
||||
kgx = gnome-console; # Added 2022-02-19
|
||||
@@ -750,6 +751,11 @@ mapAliases ({
|
||||
lfs = dysk; # Added 2023-07-03
|
||||
llvmPackages_rocm = throw "'llvmPackages_rocm' has been replaced with 'rocmPackages.llvm'"; # Added 2023-10-08
|
||||
libAfterImage = throw "'libAfterImage' has been removed from nixpkgs, as it's no longer in development for a long time"; # Added 2024-06-01
|
||||
libav = throw "libav has been removed as it was insecure and abandoned upstream for over half a decade; please use FFmpeg"; # Added 2024-08-25
|
||||
libav_0_8 = libav; # Added 2024-08-25
|
||||
libav_11 = libav; # Added 2024-08-25
|
||||
libav_12 = libav; # Added 2024-08-25
|
||||
libav_all = libav; # Added 2024-08-25
|
||||
libayatana-indicator-gtk3 = libayatana-indicator; # Added 2022-10-18
|
||||
libayatana-appindicator-gtk3 = libayatana-appindicator; # Added 2022-10-18
|
||||
libbencodetools = bencodetools; # Added 2022-07-30
|
||||
|
||||
@@ -20501,7 +20501,7 @@ with pkgs;
|
||||
gsettings-qt = libsForQt5.callPackage ../development/libraries/gsettings-qt { };
|
||||
|
||||
gst_all_1 = recurseIntoAttrs(callPackage ../development/libraries/gstreamer {
|
||||
callPackage = newScope (gst_all_1 // { libav = pkgs.ffmpeg-headless; });
|
||||
callPackage = newScope gst_all_1;
|
||||
inherit (darwin.apple_sdk.frameworks) AudioToolbox AVFoundation Cocoa CoreFoundation CoreMedia CoreServices CoreVideo DiskArbitration Foundation IOKit MediaToolbox OpenGL Security SystemConfiguration VideoToolbox;
|
||||
});
|
||||
|
||||
@@ -21158,10 +21158,6 @@ with pkgs;
|
||||
|
||||
libaudec = callPackage ../development/libraries/libaudec { };
|
||||
|
||||
libav = libav_11; # branch 11 is API-compatible with branch 10
|
||||
libav_all = callPackages ../development/libraries/libav { };
|
||||
inherit (libav_all) libav_0_8 libav_11 libav_12;
|
||||
|
||||
libavc1394 = callPackage ../development/libraries/libavc1394 { };
|
||||
|
||||
libavif = callPackage ../development/libraries/libavif { };
|
||||
@@ -31223,8 +31219,6 @@ with pkgs;
|
||||
|
||||
khronos = callPackage ../applications/office/khronos { };
|
||||
|
||||
keyfinder = libsForQt5.callPackage ../applications/audio/keyfinder { };
|
||||
|
||||
keyfinder-cli = callPackage ../applications/audio/keyfinder-cli { };
|
||||
|
||||
kfilt = callPackage ../applications/networking/cluster/kfilt { };
|
||||
|
||||
Reference in New Issue
Block a user