Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ardour: add a videoSupport option, harvid: init at 0.8.3, xjadeo: init at 0.8.10 #115121

Merged
merged 5 commits into from Mar 19, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 6 additions & 0 deletions maintainers/maintainer-list.nix
Expand Up @@ -6255,6 +6255,12 @@
githubId = 1776903;
name = "Andrew Abbott";
};
mitchmindtree = {
email = "mail@mitchellnordine.com";
github = "mitchmindtree";
githubId = 4587373;
name = "Mitchell Nordine";
};
mjanczyk = {
email = "m@dragonvr.pl";
github = "mjanczyk";
Expand Down
15 changes: 12 additions & 3 deletions pkgs/applications/audio/ardour/default.nix
Expand Up @@ -16,6 +16,7 @@
, glibmm
, graphviz
, gtkmm2
, harvid
, itstool
, libarchive
, libjack2
Expand All @@ -35,6 +36,7 @@
, lilv
, lrdf
, lv2
, makeWrapper
, pango
, perl
, pkg-config
Expand All @@ -49,6 +51,8 @@
, taglib
, vamp-plugin-sdk
, wafHook
, xjadeo
, videoSupport ? false
}:
stdenv.mkDerivation rec {
pname = "ardour";
Expand All @@ -70,6 +74,7 @@ stdenv.mkDerivation rec {
doxygen
graphviz # for dot
itstool
makeWrapper
perl
pkg-config
python3
Expand Down Expand Up @@ -121,7 +126,7 @@ stdenv.mkDerivation rec {
suil
taglib
vamp-plugin-sdk
];
] ++ lib.optionals videoSupport [ harvid xjadeo ];

wafConfigureFlags = [
"--cxx11"
Expand Down Expand Up @@ -158,6 +163,10 @@ stdenv.mkDerivation rec {
"$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png"
done
install -vDm 644 "ardour.1"* -t "$out/share/man/man1"
'' + lib.optionalString videoSupport ''
# `harvid` and `xjadeo` must be accessible in `PATH` for video to work.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# `harvid` and `xjadeo` must be accessible in `PATH` for video to work.
# `harvid` and `xjadeo` must be accessible in $PATH for video to work.

wrapProgram "$out/bin/ardour6" \
--prefix PATH : "${lib.makeBinPath [ harvid xjadeo ]}"
'';

LINKFLAGS = "-lpthread";
Expand All @@ -174,8 +183,8 @@ stdenv.mkDerivation rec {
https://community.ardour.org/donate
'';
homepage = "https://ardour.org/";
license = licenses.gpl2;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ goibhniu magnetophon ];
maintainers = with maintainers; [ goibhniu magnetophon mitchmindtree ];
};
}
42 changes: 42 additions & 0 deletions pkgs/tools/video/harvid/default.nix
@@ -0,0 +1,42 @@
{ lib, stdenv, fetchFromGitHub, ffmpeg, libjpeg, libpng, pkg-config }:

stdenv.mkDerivation rec {
pname = "harvid";
version = "0.8.3";

src = fetchFromGitHub {
owner = "x42";
repo = "harvid";
rev = "v${version}";
sha256 = "0l1plfsfh2ixhlzg3hqqvjj42z7g422718a9kgbh7b4p882n71x7";
};

nativeBuildInputs = [ pkg-config ];

buildInputs = [ ffmpeg libjpeg libpng ];

makeFlags = [ "DESTDIR=$(out)" "libdir=\"/lib\"" ];

postInstall = ''
mkdir -p $out/bin
mv $out/usr/local/bin/* $out/bin
mv $out/usr/local/share $out/
rm -r $out/usr
'';

meta = with lib; {
description =
"Decodes still images from movie files and serves them via HTTP";
Comment on lines +28 to +29
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
description =
"Decodes still images from movie files and serves them via HTTP";
description = "Decodes still images from movie files and serves them via HTTP";

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Omitting this formatting change as the current result is produced by nixfmt.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nixfmt is not the official formatter for nixpkgs and we do not have a ~80 line length limit. It is totally fine to not linebreak a 120 or even 240 character URL and in this example the line break only stretches the file instead of making it more reable.

longDescription = ''
harvid's intended use-case is to efficiently provide frame-accurate data
and act as second level cache for rendering the video-timeline in Ardour,
but it is not limited to that: it has applications for any task that
requires a high-performance frame-accurate online image extraction
processor.
'';
homepage = "http://x42.github.io/harvid";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ mitchmindtree ];
};
}
48 changes: 48 additions & 0 deletions pkgs/tools/video/xjadeo/default.nix
@@ -0,0 +1,48 @@
{ lib, stdenv, autoreconfHook, fetchFromGitHub, ffmpeg, freetype, libGLU
, libjack2, liblo, libX11, libXv, pkg-config, portmidi, xorg }:

stdenv.mkDerivation rec {
pname = "xjadeo";
version = "0.8.10";

src = fetchFromGitHub {
owner = "x42";
repo = "xjadeo";
rev = "v${version}";
sha256 = "0dma4cjgbrpy16x63zvfr0xss4lryl0zw7nvixvhq2f6z8day1ds";
};

nativeBuildInputs = [ autoreconfHook pkg-config ];

buildInputs = [
ffmpeg
libjack2
libX11
xorg.libXext
xorg.libXpm
# The following are recommended in the README, but are seemingly
# unnecessary for a successful build. That said, the result of including
# these in the build process is possibly required at runtime in some cases,
# but I've not the time to test thoroughly for these cases. Should
# consider investigating and splitting these into options in the future.
freetype
libGLU
liblo
libXv
portmidi
];

meta = with lib; {
description = "The X Jack Video Monitor";
longDescription = ''
Xjadeo is a software video player that displays a video-clip in sync with
an external time source (MTC, LTC, JACK-transport). Xjadeo is useful in
soundtrack composition, video monitoring or any task that requires to
synchronizing movie frames with external events.
'';
homepage = "http://xjadeo.sourceforge.net";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ mitchmindtree ];
};
}
4 changes: 4 additions & 0 deletions pkgs/top-level/all-packages.nix
Expand Up @@ -1366,6 +1366,8 @@ in

hakrawler = callPackage ../tools/security/hakrawler { };

harvid = callPackage ../tools/video/harvid { };

hime = callPackage ../tools/inputmethods/hime {};

hinit = haskell.lib.justStaticExecutables haskellPackages.hinit;
Expand Down Expand Up @@ -1410,6 +1412,8 @@ in

passExtensions = recurseIntoAttrs pass.extensions;

xjadeo = callPackage ../tools/video/xjadeo { };

asc-key-to-qr-code-gif = callPackage ../tools/security/asc-key-to-qr-code-gif { };

go-audit = callPackage ../tools/system/go-audit { };
Expand Down