anchor.diff:          ExecStart = "/bin/sh -c '${cfg.package}/lib/plexmediaserver/Plex\\ Media\\ Server'";
         };
         environment = {
  -        PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR=cfg.dataDir;
  +        PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR=cfg.package.dataDir;
           PLEX_MEDIA_SERVER_HOME="${cfg.package}/lib/plexmediaserver";
           PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS="6";
           PLEX_MEDIA_SERVER_TMPDIR="/tmp";
  -        LD_LIBRARY_PATH = "${plex.plexLibraryPath}:${cfg.dataDir}";
  +        LD_LIBRARY_PATH = "${plex.libraryPath}:${cfg.package.dataDir}";
           LC_ALL="en_US.UTF-8";
           LANG="en_US.UTF-8";
         };
  
positive.code:       after = [ "network.target" ];
        wantedBy = [ "multi-user.target" ];
        preStart = ''
          test -d "${cfg.dataDir}" || {
            echo "Creating initial Plex data directory in \"${cfg.dataDir}\"."
            mkdir -p "${cfg.dataDir}/Plex Media Server"
            chown -R ${cfg.user}:${cfg.group} "${cfg.dataDir}"
          }
  
          # Copy the database skeleton files to /var/lib/plex/.skeleton
          # See the the Nix expression for Plex's package for more information on
          # why this is done.
          test -d "${cfg.dataDir}/.skeleton" || mkdir "${cfg.dataDir}/.skeleton"
          for db in "com.plexapp.plugins.library.db"; do
              cp "${cfg.package}/lib/plexmediaserver/Resources/base_$db" "${cfg.dataDir}/.skeleton/$db"
              chmod u+w "${cfg.dataDir}/.skeleton/$db"
              chown ${cfg.user}:${cfg.group} "${cfg.dataDir}/.skeleton/$db"
          done
  
          # If managePlugins is enabled, setup symlinks for plugins.
          ${optionalString cfg.managePlugins ''
            echo "Preparing plugin directory."
            PLUGINDIR="${cfg.dataDir}/Plex Media Server/Plug-ins"
            test -d "$PLUGINDIR" || {
              mkdir -p "$PLUGINDIR";
              chown ${cfg.user}:${cfg.group} "$PLUGINDIR";
            }
  
            echo "Removing old symlinks."
            # First, remove all of the symlinks in the directory.
            for f in `ls "$PLUGINDIR/"`; do
              if [[ -L "$PLUGINDIR/$f" ]]; then
                echo "Removing plugin symlink $PLUGINDIR/$f."
                rm "$PLUGINDIR/$f"
              fi
            done
  
            echo "Symlinking plugins."
            for path in ${toString cfg.extraPlugins}; do
              dest="$PLUGINDIR/$(basename $path)"
              if [[ ! -d "$path" ]]; then
                echo "Error symlinking plugin from $path: no such directory."
              elif [[ -d "$dest" || -L "$dest" ]]; then
                echo "Error symlinking plugin from $path to $dest: file or directory already exists."
              else
                echo "Symlinking plugin at $path..."
                ln -s "$path" "$dest"
              fi
            done
          ''}
       '';
        serviceConfig = {
          Type = "simple";
          User = cfg.user;
  
negative.code:     services.plex-media-server = {
        enable = mkEnableOption "Plex Media Server";
  
        user = mkOption {
          type = types.str;
          default = "plex";
  