Skip to content

Commit 4561454

Browse files
committed
successful build
1 parent 7566921 commit 4561454

File tree

3 files changed

+96
-29
lines changed

3 files changed

+96
-29
lines changed

flake.nix

Lines changed: 93 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,58 +7,69 @@
77
let
88
system = "x86_64-linux";
99
pkgs = nixpkgs.legacyPackages.${system};
10-
python = pkgs.python311;
10+
python = pkgs.python311; # currently only works on python 3.11
11+
# seems to be related to this bug : https://www.riverbankcomputing.com/pipermail/pyqt/2023-June/045325.html
12+
# maybe only PyQt6 will work with newer python ???
1113
pp = pkgs.python311Packages;
12-
fhs = pkgs.buildFHSUserEnv {
13-
name = "fhs-shell";
14-
targetPkgs = pkgs: [pkgs.gcc pkgs.libtool (python.withPackages(ps: with ps; [ pyqt5 qscintilla-qt5 pyyaml bitstring darkdetect lark ])) pkgs.libz pkgs.glib pkgs.libGL pkgs.qt5.qtbase] ;
15-
};
1614
in
1715
{
1816
packages.${system} = {
1917
pyqtads = pp.buildPythonPackage rec {
2018
pname = "PyQtAds";
21-
version = "3.8.1";
22-
pyproject = false;
19+
version = "3.8.4";
20+
pyproject = true;
2321

24-
disabled = pp.pythonOlder "3.7";
22+
disabled = pp.pythonOlder "3.11";
2523

2624
src = pkgs.fetchFromGitHub {
2725
owner = "githubuser0xFFFF";
2826
repo = "Qt-Advanced-Docking-System";
2927
rev = "refs/tags/${version}";
30-
hash = "sha256-Zl1AAYERX76rC+wAvk8/uXSuKkmHMbUovbU8O6LgQTw=";
28+
hash = "sha256-LojmwuCdcwJLlgDcg/09WTfr8ROCZCL56eZuBuuyQvk=";
3129
};
3230

31+
# from https://github.com/NixOS/nixpkgs/blob/46606678d54c34c1b2f346605224acae7908cd67/pkgs/development/python-modules/pyqtdatavisualization/default.nix#L6
32+
postPatch = ''
33+
substituteInPlace pyproject.toml \
34+
--replace-fail "[tool.sip.project]" "[tool.sip.project]''\nsip-include-dirs = [\"${pp.pyqt5}/${pp.python.sitePackages}/PyQt5/bindings\"]" \
35+
--replace-warn '"sip >=6.0.2, <6.6"' '"sip >=6.0.2, <6.9"' \
36+
--replace-warn '# "src/linux/FloatingWidgetTitleBar.h",' '"'"src/linux/FloatingWidgetTitleBar.h; platform_system == 'Linux'"'",' \
37+
--replace-warn '# "src/linux/FloatingWidgetTitleBar.cpp",' '"'"src/linux/FloatingWidgetTitleBar.cpp; platform_system == 'Linux'"'",'
38+
substituteInPlace project.py \
39+
--replace-fail 'super().apply_user_defaults(tool)' 'self.builder_settings.append("unix:!macx {\nLIBS += -lxcb\nQT += gui-private\n}"); super().apply_user_defaults(tool)'
40+
'';
3341

34-
env.PYQT5_SIP_DIR="${pp.pyqt5}/${pp.python.sitePackages}/PyQt5/bindings";
35-
env.PYQT_SIP_DIR_OVERRIDE="${pp.pyqt5}/${pp.python.sitePackages}/PyQt5/bindings";
3642
build-system = [
37-
pp.setuptools
38-
pp.sip4
43+
pp.pip
44+
pp.pyqt-builder
45+
pp.sip
3946
pp.pyqt5
4047
pp.cython
4148
];
4249

4350
nativeBuildInputs = [
4451
#pp.setuptools-scm
45-
#pp.pyqt5-sip
52+
pp.pyqt5-sip
4653
#pp.pyqt5
4754
#pp.sip4
48-
pkgs.libsForQt5.qt5.full
55+
pkgs.libsForQt5.qt5.qtbase
56+
pkgs.xorg.libxcb
4957
];
58+
buildInputs = [
59+
pkgs.libsForQt5.qt5.qtbase
60+
pkgs.xorg.libxcb
61+
];
62+
propagatedBuildInputs = [ pp.pyqt5 ];
5063
dependencies = [
5164
pp.pyqt5
5265
pp.pyqt5-sip
5366
];
54-
propagatedBuildInputs = [
55-
#pkgs.qt5.full
56-
];
5767
dontWrapQtApps = true;
5868

59-
buildPhase = ''
60-
python setup.py build_ext --pyqt-sip-dir "${pp.pyqt5}/${pp.python.sitePackages}/PyQt5/bindings"
61-
'';
69+
#buildPhase = ''
70+
#python setup.py build_ext --pyqt-sip-dir "${pp.pyqt5}/${pp.python.sitePackages}/PyQt5/bindings"
71+
#pip build .
72+
#'';
6273

6374

6475
nativeCheckInputs = [ ];
@@ -68,16 +79,72 @@
6879
pythonImportsCheck = [ "PyQtAds" ];
6980

7081
meta = {
71-
#description = "MkDocs plugin that enables displaying the date of the last git modification of a page";
7282
homepage = "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System";
73-
#changelog = "https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/releases/tag/v${version}";
7483
license = pkgs.lib.licenses.lgpl21;
75-
#maintainers = with maintainers; [ totoroot ];
7684
};
7785
};
86+
87+
pre_workbench = pp.buildPythonApplication {
88+
pname = "pre_workbench";
89+
version = "0.9.0";
90+
pyproject = true;
91+
92+
disabled = pp.pythonOlder "3.11";
93+
94+
build-system = [
95+
pp.setuptools-scm
96+
pp.setuptools
97+
pp.cython
98+
];
99+
dependencies = [
100+
self.packages.${system}.pyqtads
101+
pp.appdirs
102+
pp.qscintilla-qt5
103+
pp.darkdetect
104+
pp.bitstring
105+
pp.pyyaml
106+
pp.psutil
107+
pp.lark
108+
];
109+
nativeBuildInputs = [
110+
pkgs.libsForQt5.qt5.qtbase
111+
pkgs.libsForQt5.wrapQtAppsHook
112+
];
113+
114+
nativeInputs = [ pkgs.qt5.wrapQtAppsHook ];
115+
dontWrapQtApps = true;
116+
117+
src = ./.;
118+
119+
# Arguments to be passed to `makeWrapper`, only used by buildPython*
120+
preFixup = ''
121+
for app in "$out/bin/"*; do
122+
wrapQtApp "$app"
123+
done
124+
'';
125+
meta = {
126+
mainProgram = "prewb";
127+
homepage = "https://luelista.net/pre_workbench/";
128+
license = pkgs.lib.licenses.gpl3;
129+
};
130+
};
131+
132+
default = self.packages.${system}.pre_workbench;
133+
78134
};
79135

80-
81-
devShells.${system}.default = fhs.env;
136+
devShells.${system}.test = (pkgs.buildFHSUserEnv {
137+
name = "fhs-shell";
138+
targetPkgs = pkgs: [
139+
pkgs.gcc pkgs.gdb pkgs.libtool
140+
(python.withPackages(ps: with ps; [
141+
pyqt5 qscintilla-qt5 pyyaml bitstring darkdetect lark
142+
appdirs
143+
self.packages.${system}.pyqtads
144+
]))
145+
pkgs.libz pkgs.glib pkgs.libGL
146+
pkgs.libsForQt5.qt5.full
147+
];
148+
}).env;
82149
};
83150
}

requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ qtconsole==4.5.5
77
Cython==0.29.25
88
bitstring>=3.1.9
99
PyQtAds>=3.8.1
10-
darkdetect==0.6.0
11-
PyYAML>=6.0
10+
darkdetect>=0.8.0
11+
PyYAML>=6.0

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
'psutil>=5.0.0',
4949
'bitstring>=3.1.9',
5050
'PyQtAds>=3.8.1',
51-
'darkdetect==0.6.0',
51+
'darkdetect>=0.6.0',
5252
'PyYAML>=6.0',
5353
],
5454
classifiers=[

0 commit comments

Comments
 (0)