anchor.diff:      platforms = lib.platforms.all;
     };
   
  -  makeFlags = [ "PYTHON_PREFIX=$(out)" ];
  -
  -  preConfigurePhases = [ "preConfigure" ];
  +  makeFlags = [
  +    "PYTHON_PREFIX=$(out)"
  +    "SYSTEMD_UNITS_DIRECTORY=$(out)/lib/systemd/system"
  +    "SYSTEMD_USERS_DIRECTORY=$(out)/lib/sysusers.d"
  +    "SYSTEMD_FILES_DIRECTORY=$(out)/lib/tmpfiles.d"
  +    "UDEV_LIBRARY_DIRECTORY=$(out)/lib/udev"
  +    "POLKIT_POLICY_DIR=$(out)/share/polkit-1/actions"
  +    "POLKIT_RULE_DIR=$(out)/share/polkit-1/rules.d"
  +  ];
  +  configureFlags = [
  +    "--with-writable-directory=/run/brltty"
  +    "--with-updatable-directory=/var/lib/brltty"
  +    "--with-api-socket-path=/var/lib/BrlAPI"
  +  ];
  +  installFlags = [ "install-systemd" "install-udev" "install-polkit" ];
   
     preConfigure = ''
       substituteInPlace configure --replace /sbin/ldconfig ldconfig
  +
  +    # Some script needs a working tclsh shebang
  +    patchShebangs .
  +
  +    # Skip impure operations
  +    substituteInPlace Programs/Makefile.in    \
  +      --replace install-writable-directory "" \
  +      --replace install-apisoc-directory ""   \
  +      --replace install-api-key ""
  +  '';
  +
  +  postInstall = ''
  +    # Rewrite absolute paths
  +    substituteInPlace $out/bin/brltty-mkuser \
  +      --replace '/sbin/nologin' '${shadow}/bin/nologin'
  +    (
  +      cd $out/lib
  +      substituteInPlace systemd/system/brltty@.service \
  +        --replace '/usr/lib' "$out/lib" \
  +        --replace '/sbin/modprobe' '${kmod}/bin/modprobe'
  +      substituteInPlace systemd/system/brltty-device@.service \
  +        --replace '/usr/bin/true' '${coreutils}/bin/true'
  +      substituteInPlace udev/rules.d/90-brltty-uinput.rules \
  +        --replace '/usr/bin/setfacl' '${acl}/bin/setfacl'
  +      substituteInPlace tmpfiles.d/brltty.conf \
  +        --replace "$out/etc" '/etc'
  +
  +      # Remove unused commands from udev rules
  +      sed '/initctl/d' -i udev/rules.d/90-brltty-device.rules
  +    )
     '';
   }
  
positive.code:     sha256 = "14psxwlvgyi2fj1zh8rfykyjcjaya8xa7yg574bxd8y8n49n8hvb";
    };
  
    nativeBuildInputs = [ pkg-config python3.pkgs.cython ];
    buildInputs = [ bluez ]
      ++ lib.optional alsaSupport alsaLib
      ++ lib.optional systemdSupport systemd;
  
negative.code: { lib, stdenv, fetchurl, pkg-config, python3, bluez
  , tcl, acl, kmod, coreutils, shadow
  , alsaSupport ? stdenv.isLinux, alsaLib ? null
  , systemdSupport ? stdenv.isLinux, systemd ? null }:
  
  