-
-
Notifications
You must be signed in to change notification settings - Fork 14.5k
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
Package Request: SVPManager #64344
Comments
I understand. I may have to learn Nix packaging to get this included... I doubt anyone else uses this anyway! |
Thank you for your contributions. This has been automatically marked as stale because it has had no activity for 180 days. If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity. Here are suggestions that might help resolve this more quickly:
|
I'm interested in using SVP, and I've made some progress packaging it. So far I have a derivation that unpacks and When running SVPManager, it crashes with an error that appears to be from Zenity, |
Same issue. I also tried running it with steam-run. It seems to fail even worse. Some extensions missed libPythonQt.so libQtWebApp.so and libQtZeroConf.so, which were placed next to them, I doubt it crashes because of 'extensions' anyway.
ldd .SVPManager-wrapped:
steam-run SVPManager: I'll include my derivations. In configure.nix I have
and, in system packages: (import ./svpflow.nix) (import ./svpmanager.nix) svpflow.nix:
svpmanager.nix (based on AUR package):
Svpflow is separate because it seems to actually work. Through - for some reason - not with nvidia optical flow. I'd prefer to be able to run the manager as well, through. And to use the libs correctly, one would need to generate .vpy scripts through javascript generators. Here's how I'm using it now: svp.py:
script could be placed in mpv's config folder (like ~/.config/mpv), and toggled on/off with 'v' key by adding this line to input.conf: v vf toggle vapoursynth=~~/svp.py:2:24 |
I marked this as stale due to inactivity. → More info |
After spending some time trying to make sense of the progress posted here, I stumbled upon Lan Tian's blog describing how to package SVP. He encapsulates the package to make it thinks it is executing on a FHS-compliant (linux-standard) filesystem. The reason, citing Lan Tian:
His contribution is also available—and looks up-to-date at the moment of writing—on the NUR inititive published here and works perfectly once you setup the NUR channel. P.S. # configuration.nix
# MPV w/ vapoursynth support, as required by SVP
nixpkgs.config.packageOverrides = pkgs: rec {
# mistune = pkgs.mistune_2_0;
mpv = (pkgs.mpv-unwrapped.override {
vapoursynthSupport = true;
vapoursynth = pkgs.vapoursynth;
}).overrideAttrs (old: rec {
wafConfigureFlags = old.wafConfigureFlags ++ [ "--enable-vapoursynth" ];
});
};
environment.systemPackages = with pkgs; [
# MPV
(mpv-with-scripts.override { scripts = [ mpvScripts.mpris ]; })
# SVP-related requirements
libsForQt5.qt5.qtwayland # Allow SVP to run on wayland
(pkgs.callPackage ../pkgs/svp { })
# ...
] # In svp/default.nix
{
pkgs ? import <nixpkgs> {},
lib ? pkgs.lib,
}:
let
originalPackage = pkgs.nur.repos.xddxdd.svp;
# We use `overrideAttrs` instead of defining a new `mkDerivation` to keep
# the original package's `output`, `passthru`, and so on.
svpOverridenWayland = originalPackage.overrideAttrs (old: {
name = "svp-overriden-with-wayland";
# Using `buildCommand` replaces the original packages build phases.
buildCommand = ''
set -euo pipefail
${
# Copy original files, for each split-output (`out`, `dev` etc.).
# E.g. `${package.dev}` to `$dev`, and so on. If none, just "out".
# Symlink all files from the original package to here (`cp -rs`),
# to save disk space.
# We could alternatiively also copy (`cp -a --no-preserve=mode`).
lib.concatStringsSep "\n"
(map
(outputName:
''
echo "Copying output ${outputName}"
set -x
cp -rs --no-preserve=mode "${originalPackage.${outputName}}" "''$${outputName}"
set +x
''
)
(old.outputs or ["out"])
)
}
# Change `Exec` in the desktop entry to insert an env variable forcing wayland for QT5
# Make the file to be not a symlink by full copying using `install` first.
# This also makes it writable (files in the nix store have `chmod -w`).
install -v "${originalPackage}"/share/applications/svp-manager4.desktop "$out"/share/applications/svp-manager4.desktop
sed -i -e 's/Exec=/Exec=env QT_QPA_PLATFORM=wayland /g' "$out"/share/applications/svp-manager4.desktop
'';
});
in
svpOverridenWayland |
Example with SVP working with home-manager: https://github.com/LunNova/nixos-configs/blob/150784baab2c36d8b02de22b1cecbcc33fdf8fb2/users/lun/media/default.nix This doesn't use SVP manager and is using the outdated last release of the .so that was packaged separately, but it works well enough for us. |
Issue description
All the components to successfully use SVP (SmoothVideoPlayer) appear to be included in Nix/NixOS. Using libsvpflow and vapoursynth (or mpv compiled with vapoursynth support) works, but I would like to use SVPManager itself for having a GUI to configure SVP parameters. It is non-free software but the license is a little ambiguous. Pinging @rnhmjoj because I believe he uses SVP on NixOS.
Using the binary from the Download page results in an error. It will probably work OOTB with patchELF, but I don't have the skill or knowledge to write by own derivation to test.
Note: The developer supports the ideals of GNU/Linux and specifically makes the Linux version available for free with no features restricted. Thus, the only restriction is that it uses a custom license that does not allow alteration of the source code, but does permit redistribution and non-commercial use.
Links:
https://www.svp-team.com/wiki/Main_Page
https://www.svp-team.com/wiki/SVP:Linux
http://www.svp-team.com/files/svp4-latest.php?linux
https://aur.archlinux.org/packages/svp/
https://aur.archlinux.org/cgit/aur.git/tree/?h=svp
The text was updated successfully, but these errors were encountered: