Unverified Commit bdeb7b79 authored by K900's avatar K900 Committed by GitHub
Browse files

Revert "nixos/k3b: remove module as obsolete" (#404257)

parents 7bd313f3 62958875
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ In addition to numerous new and upgraded packages, this release has the followin

- [InvoicePlane](https://invoiceplane.com), web application for managing and creating invoices. Available at [services.invoiceplane](#opt-services.invoiceplane.sites._name_.enable).

- [k3b](https://userbase.kde.org/K3b), the KDE disk burning application. Available as programs.k3b.
- [k3b](https://userbase.kde.org/K3b), the KDE disk burning application. Available as [programs.k3b](#opt-programs.k3b.enable).

- [K40-Whisperer](https://www.scorchworks.com/K40whisperer/k40whisperer.html), a program to control cheap Chinese laser cutters. Available as [programs.k40-whisperer.enable](#opt-programs.k40-whisperer.enable). Users must add themselves to the `k40` group to be able to access the device.

+50 −8
Original line number Diff line number Diff line
{ lib, ... }:
{
  config,
  pkgs,
  lib,
  ...
}:

{
  imports = [
    (lib.mkRemovedOptionModule [
      "programs"
      "k3b"
      "enable"
    ] "Please add kdePackages.k3b to environment.systemPackages instead")
  options.programs.k3b = {
    enable = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = ''
        Whether to enable k3b, the KDE disk burning application.

        Additionally to installing `k3b` enabling this will
        add `setuid` wrappers in `/run/wrappers/bin`
        for both `cdrdao` and `cdrecord`. On first
        run you must manually configure the path of `cdrdae` and
        `cdrecord` to correspond to the appropriate paths under
        `/run/wrappers/bin` in the "Setup External Programs" menu.
      '';
    };
  };

  config = lib.mkIf config.programs.k3b.enable {

    environment.systemPackages = with pkgs; [
      kdePackages.k3b
      dvdplusrwtools
      cdrdao
      cdrtools
    ];

    security.wrappers = {
      cdrdao = {
        setuid = true;
        owner = "root";
        group = "cdrom";
        permissions = "u+wrx,g+x";
        source = "${pkgs.cdrdao}/bin/cdrdao";
      };
      cdrecord = {
        setuid = true;
        owner = "root";
        group = "cdrom";
        permissions = "u+wrx,g+x";
        source = "${pkgs.cdrtools}/bin/cdrecord";
      };
    };

  };
}