git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #21444 from league/fix/gphoto2-udev

gphoto2: nixos programs module to configure udev

commit84a50084c33635a91aebd3bece4d3b71293341de authorJörg Thalheim <joerg@higgsboson.tk> dateSun 1 Jan 2017, 11:16 (10 years ago) parentdb8c9ef6eead52
4 files changed+38−1
lib/maintainers.nix+1 nixos/modules/module-list.nix+1 nixos/modules/programs/gphoto2.nix+31 pkgs/development/libraries/libgphoto2/default.nix+5−1
lib/maintainers.nix+1
@@ -242,6 +242,7 @@
242242 lassulus = "Lassulus <lassulus@gmail.com>";
243243 layus = "Guillaume Maudoux <layus.on@gmail.com>";
244244 ldesgoui = "Lucas Desgouilles <ldesgoui@gmail.com>";
245+ league = "Christopher League <league@contrapunctus.net>";
245246 lebastr = "Alexander Lebedev <lebastr@gmail.com>";
246247 leenaars = "Michiel Leenaars <ml.software@leenaa.rs>";
247248 leonardoce = "Leonardo Cecchi <leonardo.cecchi@gmail.com>";
nixos/modules/module-list.nix+1
@@ -71,6 +71,7 @@
7171 ./programs/environment.nix
7272 ./programs/fish.nix
7373 ./programs/freetds.nix
74+ ./programs/gphoto2.nix
7475 ./programs/info.nix
7576 ./programs/java.nix
7677 ./programs/kbdlight.nix
nixos/modules/programs/gphoto2.nixnew file+31
@@ -0,0 +1,31 @@
1+{ config, lib, pkgs, ... }:
2+
3+with lib;
4+
5+{
6+ meta.maintainers = [ maintainers.league ];
7+
8+ ###### interface
9+ options = {
10+ programs.gphoto2 = {
11+ enable = mkOption {
12+ default = false;
13+ example = true;
14+ type = types.bool;
15+ description = ''
16+ Whether to configure system to use gphoto2.
17+ To grant digital camera access to a user, the user must
18+ be part of the camera group:
19+ <code>users.extraUsers.alice.extraGroups = ["camera"];</code>
20+ '';
21+ };
22+ };
23+ };
24+
25+ ###### implementation
26+ config = mkIf config.programs.gphoto2.enable {
27+ services.udev.packages = [ pkgs.libgphoto2 ];
28+ environment.systemPackages = [ pkgs.gphoto2 ];
29+ users.extraGroups.camera = {};
30+ };
31+}
pkgs/development/libraries/libgphoto2/default.nix+5−1
@@ -25,6 +25,11 @@ stdenv.mkDerivation rec {
2525
2626 hardeningDisable = [ "format" ];
2727
28+ postInstall = ''
29+ mkdir -p $out/lib/udev/rules.d
30+ $out/lib/libgphoto2/print-camera-list udev-rules version 175 group camera >$out/lib/udev/rules.d/40-gphoto2.rules
31+ '';
32+
2833 meta = {
2934 homepage = http://www.gphoto.org/proj/libgphoto2/;
3035 description = "A library for accessing digital cameras";
@@ -41,4 +46,3 @@ stdenv.mkDerivation rec {
4146 maintainers = with stdenv.lib.maintainers; [ jcumming ];
4247 };
4348}
44−