summaryrefslogtreecommitdiff
path: root/pkgs/by-name/se/seamly2d/package.nix
blob: 92da7528708d8dc9984fe6426cf49a57fb101eeb (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
{
  lib,
  stdenv,
  fetchFromGitHub,
  libsForQt5,
  addDriverRunpath,
  poppler-utils,
  libgbm,
  xvfb-run,
  fontconfig,
  freetype,
  xorg,
  python3,
  git,
}:
let
  qtPython = python3.withPackages (pkgs: with pkgs; [ pyqt5 ]);
in
stdenv.mkDerivation rec {
  pname = "seamly2d";
  version = "2025.7.21.216";

  src = fetchFromGitHub {
    owner = "FashionFreedom";
    repo = "Seamly2D";
    tag = "v${version}";
    hash = "sha256-rS+2dwRx5tZySfjSHOmr/PJxJntjcwbM9O99dCsMgnI=";
  };

  buildInputs = [
    libsForQt5.qtmultimedia
    git
    qtPython
    libsForQt5.qtbase
    poppler-utils
    libsForQt5.qtxmlpatterns
    libsForQt5.qtsvg
    libgbm
    freetype
    xorg.libXi
    xorg.libXrender
    xorg.libxcb
  ];

  nativeBuildInputs = [
    addDriverRunpath
    xvfb-run
    fontconfig
    libsForQt5.wrapQtAppsHook
    libsForQt5.qmake
    libsForQt5.qttools
  ];

  postPatch = ''
    substituteInPlace src/app/seamly2d/mainwindowsnogui.cpp \
      --replace-fail 'define PDFTOPS "pdftops"' 'define PDFTOPS "${lib.getBin poppler-utils}/bin/pdftops"'
    substituteInPlace src/libs/vwidgets/export_format_combobox.cpp \
      --replace-fail 'define PDFTOPS "pdftops"' 'define PDFTOPS "${lib.getBin poppler-utils}/bin/pdftops"'
  '';

  qmakeFlags = [
    "PREFIX=/"
    "PREFIX_LIB=/lib"
    "Seamly2D.pro"
    "-r"
    "CONFIG+=noDebugSymbols"
    "CONFIG+=no_ccache"
  ];

  installFlags = [ "INSTALL_ROOT=$(out)" ];

  postInstall = ''
    mv $out/share/seamly2d/* $out/share/.
    rmdir $out/share/seamly2d

    mkdir -p $out/share/mime/packages
    cp dist/debian/seamly2d.sharedmimeinfo $out/share/mime/packages/seamly2d.xml
  '';

  meta = {
    description = "Open source patternmaking software";
    homepage = "https://seamly.net/";
    license = lib.licenses.gpl3;
    platforms = lib.platforms.linux;
    maintainers = with lib.maintainers; [ WhittlesJr ];
  };
}