anchor.diff:  assert withPlugin -> builtins.elem hplipArch pluginArches
     || throw "HPLIP plugin not supported on ${stdenv.system}";
   
  -stdenv.mkDerivation {
  +pythonPackages.mkPythonDerivation {
     inherit name src;
   
     buildInputs = [
       libjpeg
       cups
       libusb1
  -    pythonPackages.python
  -    pythonPackages.wrapPython
       sane-backends
       dbus
       net_snmp
       openssl
  -  ] ++ stdenv.lib.optionals qtSupport [
  -    qt4
     ];
   
     nativeBuildInputs = [
       pkgconfig
     ];
   
  -  pythonPath = with pythonPackages; [
  +  propagatedBuildInputs = with pythonPackages; [
       dbus
       pillow
       pygobject2
  -    recursivePthLoader
       reportlab
       usbutils
     ] ++ stdenv.lib.optionals qtSupport [
  
positive.code:     rm $out/etc/udev/rules.d/56-hpmud.rules
    '';
  
    fixupPhase = ''
      # Wrap the user-facing Python scripts in $out/bin without turning the
      # ones in $out /share into shell scripts (they need to be importable).
      # Note that $out/bin contains only symlinks to $out/share.
      for bin in $out/bin/*; do
        py=`readlink -m $bin`
        rm $bin
        cp $py $bin
        wrapPythonProgramsIn $bin "$out $pythonPath"
        sed -i "s@$(dirname $bin)/[^ ]*@$py@g" $bin
      done
  
      # Remove originals. Knows a little too much about wrapPythonProgramsIn.
      rm -f $out/bin/.*-wrapped
  
      # Merely patching shebangs in $out/share does not cause trouble.
      for i in $out/share/hplip{,/*}/*.py; do
        substituteInPlace $i \
          --replace /usr/bin/python \
          ${pythonPackages.python}/bin/${pythonPackages.python.executable} \
          --replace "/usr/bin/env python" \
          ${pythonPackages.python}/bin/${pythonPackages.python.executable}
      done
  
      wrapPythonProgramsIn $out/lib "$out $pythonPath"
  
      substituteInPlace $out/etc/hp/hplip.conf --replace /usr $out
    '' + stdenv.lib.optionalString (!withPlugin) ''
      # A udev rule to notify users that they need the binary plugin.
  
negative.code: , cups, zlib, libjpeg, libusb1, pythonPackages, sane-backends, dbus, usbutils
  , net_snmp, openssl, polkit
  , bash, coreutils, utillinux
  , qtSupport ? true
  , withPlugin ? false
  }:
  
  