anchor.diff:            concatMapStrings (name2: ''
               mkdir -p $out/'${name2}.wants'
               ln -sfn '../${name}' $out/'${name2}.wants'/
  -          '') unit.wantedBy) cfg.units)}
  +          '') unit.wantedBy) units)}
   
         ${concatStrings (mapAttrsToList (name: unit:
             concatMapStrings (name2: ''
               mkdir -p $out/'${name2}.requires'
               ln -sfn '../${name}' $out/'${name2}.requires'/
  -          '') unit.requiredBy) cfg.units)}
  -
  -      # Stupid misc. symlinks.
  -      ln -s ${cfg.defaultUnit} $out/default.target
  -
  -      ln -s rescue.target $out/kbrequest.target
  -
  -      mkdir -p $out/getty.target.wants/
  -      ln -s ../autovt@tty1.service $out/getty.target.wants/
  -
  -      ln -s ../local-fs.target ../remote-fs.target ../network.target ../nss-lookup.target \
  -            ../nss-user-lookup.target ../swap.target $out/multi-user.target.wants/
  +          '') unit.requiredBy) units)}
  +
  +      ${optionalString (type == "system") ''
  +        # Stupid misc. symlinks.
  +        ln -s ${cfg.defaultUnit} $out/default.target
  +
  +        ln -s rescue.target $out/kbrequest.target
  +
  +        mkdir -p $out/getty.target.wants/
  +        ln -s ../autovt@tty1.service $out/getty.target.wants/
  +
  +        ln -s ../local-fs.target ../remote-fs.target ../network.target ../nss-lookup.target \
  +              ../nss-user-lookup.target ../swap.target $out/multi-user.target.wants/
  +      ''}
       ''; # */
   
   in
  
positive.code:       # Copy .wants links, but only those that point to units that
        # we're interested in.
        for i in ${toString upstreamWants}; do
          fn=${systemd}/example/systemd/system/$i
          if ! [ -e $fn ]; then echo "missing $fn"; false; fi
          x=$out/$(basename $fn)
          mkdir $x
  
negative.code:           ln -s /dev/null $out/${name}
          '';
  
    upstreamSystemUnits =
      [ # Targets.
        "basic.target"
        "sysinit.target"
  