mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-27 09:23:01 +00:00
cameractrls: init at 0.6.6
This commit is contained in:
parent
cadf473b34
commit
2350d64715
133
pkgs/by-name/ca/cameractrls/package.nix
Normal file
133
pkgs/by-name/ca/cameractrls/package.nix
Normal file
@ -0,0 +1,133 @@
|
||||
{
|
||||
lib,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
glibc,
|
||||
SDL2,
|
||||
libjpeg_turbo,
|
||||
alsa-lib,
|
||||
libspnav,
|
||||
desktop-file-utils,
|
||||
gobject-introspection,
|
||||
wrapGAppsHook3,
|
||||
wrapGAppsHook4,
|
||||
cameractrls-gtk3,
|
||||
cameractrls-gtk4,
|
||||
withGtk ? null,
|
||||
}:
|
||||
|
||||
assert lib.assertOneOf "'withGtk' in cameractrls" withGtk [
|
||||
3
|
||||
4
|
||||
null
|
||||
];
|
||||
|
||||
let
|
||||
mainExecutable =
|
||||
"cameractrls" + lib.optionalString (withGtk != null) "gtk" + lib.optionalString (withGtk == 4) "4";
|
||||
|
||||
modulePath = "${placeholder "out"}/${python3Packages.python.sitePackages}/CameraCtrls";
|
||||
|
||||
installExecutables = [
|
||||
"cameractrls"
|
||||
"cameractrlsd"
|
||||
"cameraptzgame"
|
||||
"cameraptzmidi"
|
||||
"cameraptzspnav"
|
||||
"cameraview"
|
||||
] ++ lib.optionals (withGtk != null) [ mainExecutable ];
|
||||
in
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "cameractrls";
|
||||
version = "0.6.6";
|
||||
pyproject = false;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "soyersoyer";
|
||||
repo = "cameractrls";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-QjjLd5L+8Slxc3ywurhsWp1pZ2E1Y7NOdnCV2ZYBlqU=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace cameractrlsd.py \
|
||||
--replace-fail "ctypes.util.find_library('c')" '"${lib.getLib glibc}/lib/libc.so.6"'
|
||||
substituteInPlace cameraptzgame.py cameraview.py \
|
||||
--replace-fail "ctypes.util.find_library('SDL2-2.0')" '"${lib.getLib SDL2}/lib/libSDL2-2.0.so.0"'
|
||||
substituteInPlace cameraview.py \
|
||||
--replace-fail "ctypes.util.find_library('turbojpeg')" '"${lib.getLib libjpeg_turbo}/lib/libturbojpeg.so"'
|
||||
substituteInPlace cameraptzmidi.py \
|
||||
--replace-fail "ctypes.util.find_library('asound')" '"${lib.getLib alsa-lib}/lib/libasound.so"'
|
||||
substituteInPlace cameraptzspnav.py \
|
||||
--replace-fail "ctypes.util.find_library('spnav')" '"${lib.getLib libspnav}/lib/libspnav.so"'
|
||||
'';
|
||||
|
||||
nativeBuildInputs =
|
||||
lib.optionals (withGtk != null) [
|
||||
desktop-file-utils
|
||||
gobject-introspection
|
||||
]
|
||||
++ lib.optionals (withGtk == 3) [ wrapGAppsHook3 ]
|
||||
++ lib.optionals (withGtk == 4) [ wrapGAppsHook4 ];
|
||||
|
||||
# Only used when withGtk != null
|
||||
dependencies = with python3Packages; [ pygobject3 ];
|
||||
|
||||
installPhase =
|
||||
''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
|
||||
for file in ${lib.concatStringsSep " " installExecutables}; do
|
||||
install -Dm755 $file.py -t ${modulePath}
|
||||
ln -s ${modulePath}/$file.py $out/bin/$file
|
||||
done
|
||||
''
|
||||
+ lib.optionalString (withGtk != null) ''
|
||||
install -Dm644 pkg/hu.irl.cameractrls.svg -t $out/share/icons/hicolor/scalable/apps
|
||||
install -Dm644 pkg/hu.irl.cameractrls.metainfo.xml -t $out/share/metainfo
|
||||
mkdir -p $out/share/applications
|
||||
desktop-file-install \
|
||||
--dir="$out/share/applications" \
|
||||
--set-key=Exec --set-value="${mainExecutable}" \
|
||||
pkg/hu.irl.cameractrls.desktop
|
||||
''
|
||||
+ ''
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
dontWrapGApps = true;
|
||||
dontWrapPythonPrograms = true;
|
||||
|
||||
postFixup = lib.optionalString (withGtk != null) ''
|
||||
wrapPythonPrograms
|
||||
patchPythonScript ${modulePath}/${mainExecutable}.py
|
||||
wrapProgram $out/bin/${mainExecutable} ''${makeWrapperArgs[@]} ''${gappsWrapperArgs[@]}
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
# Also build these packages in ofBorg (defined in top-level/all-packages.nix)
|
||||
inherit cameractrls-gtk3 cameractrls-gtk4;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Camera controls for Linux";
|
||||
longDescription = ''
|
||||
It's a standalone Python CLI and GUI (GTK3, GTK4) and
|
||||
camera Viewer (SDL) to set the camera controls in Linux.
|
||||
It can set the V4L2 controls and it is extendable with
|
||||
the non standard controls. Currently it has a Logitech
|
||||
extension (LED mode, LED frequency, BRIO FoV, Relative
|
||||
Pan/Tilt, PTZ presets), Kiyo Pro extension (HDR, HDR
|
||||
mode, FoV, AF mode, Save), Preset extension (Save and
|
||||
restore controls), Control Restore Daemon (to restore
|
||||
presets at device connection).
|
||||
'';
|
||||
homepage = "https://github.com/soyersoyer/cameractrls";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
mainProgram = mainExecutable;
|
||||
maintainers = with lib.maintainers; [ aleksana ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
@ -407,6 +407,10 @@ with pkgs;
|
||||
|
||||
c64-debugger = callPackage ../applications/emulators/c64-debugger { };
|
||||
|
||||
cameractrls-gtk4 = cameractrls.override { withGtk = 4; };
|
||||
|
||||
cameractrls-gtk3 = cameractrls.override { withGtk = 3; };
|
||||
|
||||
camunda-modeler = callPackage ../applications/misc/camunda-modeler { };
|
||||
|
||||
checkpointBuildTools = callPackage ../build-support/checkpoint-build.nix {};
|
||||
|
Loading…
Reference in New Issue
Block a user