Commit b51ec251 authored by Anomalocaridid's avatar Anomalocaridid
Browse files

pysolfc: 2.21.0 -> 3.0.0

parent 6868fd8a
Loading
Loading
Loading
Loading
+62 −19
Original line number Diff line number Diff line
{ lib
, fetchzip
, buildPythonApplication
, python3Packages
, desktop-file-utils
, freecell-solver
{
  lib,
  stdenv,
  fetchzip,
  python311Packages,
  desktop-file-utils,
  freecell-solver,
  black-hole-solver,
  _experimental-update-script-combinators,
  gitUpdater,
}:

buildPythonApplication rec {
python311Packages.buildPythonApplication rec {
  pname = "pysolfc";
  version = "2.21.0";
  version = "3.0.0";

  src = fetchzip {
    url = "mirror://sourceforge/pysolfc/PySolFC-${version}.tar.xz";
    hash = "sha256-Deye7KML5G6RZkth2veVgPOWZI8gnusEvszlrPTAhag=";
    hash = "sha256-LPOm83K4bdzmmQskmAnSyYpz+5y9ktQAhYCkXpODYKI=";
  };

  cardsets = fetchzip {
    url = "mirror://sourceforge/pysolfc/PySolFC-Cardsets-2.2.tar.bz2";
    hash = "sha256-mWJ0l9rvn9KeZ9rCWy7VjngJzJtSQSmG8zGcYFE4yM0=";
  cardsets = stdenv.mkDerivation rec {
    pname = "pysol-cardsets";
    version = "3.0";

    src = fetchzip {
      url = "mirror://sourceforge/pysolfc/PySolFC-Cardsets-${version}.tar.bz2";
      hash = "sha256-UP0dQjoZJg+iSKVOrWbkLj1KCzMWws8ZBVSBLly1a/Y=";
    };

    installPhase = ''
      runHook preInstall
      cp -r $src $out
      runHook postInstall
    '';
  };

  music = fetchzip {
    url = "mirror://sourceforge/pysolfc/pysol-music-4.50.tar.xz";
  music = stdenv.mkDerivation rec {
    pname = "pysol-music";
    version = "4.50";

    src = fetchzip {
      url = "mirror://sourceforge/pysolfc/pysol-music-${version}.tar.xz";
      hash = "sha256-sOl5U98aIorrQHJRy34s0HHaSW8hMUE7q84FMQAj5Yg=";
    };

  propagatedBuildInputs = with python3Packages; [
    installPhase = ''
      runHook preInstall
      cp -r $src $out
      runHook postInstall
    '';
  };

  propagatedBuildInputs = with python311Packages; [
    tkinter
    six
    random2
@@ -36,12 +62,11 @@ buildPythonApplication rec {
    # optional :
    pygame
    freecell-solver
    black-hole-solver
    pillow
  ];

  patches = [
    ./pysolfc-datadir.patch
  ];
  patches = [ ./pysolfc-datadir.patch ];

  nativeBuildInputs = [ desktop-file-utils ];
  postPatch = ''
@@ -58,6 +83,24 @@ buildPythonApplication rec {
  # No tests in archive
  doCheck = false;

  passthru.updateScript = _experimental-update-script-combinators.sequence (
    # Needed in order to work around requirement that only one updater with features enabled is in sequence
    map (updater: updater.command) [
      (gitUpdater {
        url = "https://github.com/shlomif/PySolFC.git";
        rev-prefix = "pysolfc-";
      })
      (gitUpdater {
        url = "https://github.com/shlomif/PySolFC-CardSets.git";
        attrPath = "pysolfc.cardsets";
      })
      (gitUpdater {
        url = "https://github.com/shlomif/pysol-music.git";
        attrPath = "pysolfc.music";
      })
    ]
  );

  meta = with lib; {
    description = "A collection of more than 1000 solitaire card games";
    mainProgram = "pysol.py";