orange{3,-{canvas-core,widget-base}}: drop

Parts depended on qt5 webengine, and the rest was unused libraries
This commit is contained in:
Grimmauld
2026-04-26 19:25:46 +02:00
parent 4142633ab2
commit b822c71ba3
5 changed files with 3 additions and 420 deletions
@@ -1,113 +0,0 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
setuptools,
trubar,
# dependencies
anyqt,
cachecontrol,
commonmark,
dictdiffer,
docutils,
filelock,
lockfile,
numpy,
packaging,
pip,
qasync,
requests,
requests-cache,
truststore,
typing-extensions,
# tests
qt5,
pyqt5,
pytest-qt,
pytestCheckHook,
stdenv,
gitUpdater,
}:
buildPythonPackage rec {
pname = "orange-canvas-core";
version = "0.2.8";
pyproject = true;
src = fetchFromGitHub {
owner = "biolab";
repo = "orange-canvas-core";
tag = version;
hash = "sha256-hrL8tVomTyQkk6Taz+RZ39gb7s1qpY0WsqIuvyml5Yw=";
};
build-system = [
setuptools
trubar
];
dependencies = [
anyqt
commonmark
dictdiffer
docutils
filelock
lockfile
numpy
packaging
pip
qasync
requests
requests-cache
truststore
typing-extensions
];
pythonImportsCheck = [ "orangecanvas" ];
preCheck = ''
export HOME=$(mktemp -d)
export QT_PLUGIN_PATH="${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}"
export QT_QPA_PLATFORM_PLUGIN_PATH="${qt5.qtbase.bin}/lib/qt-${qt5.qtbase.version}/plugins";
export QT_QPA_PLATFORM=offscreen
'';
nativeCheckInputs = [
pyqt5
pytest-qt
pytestCheckHook
];
disabledTests = [
# Failed: CALL ERROR: Exceptions caught in Qt event loop
"test_create_new_window"
"test_dont_load_swp_on_new_window"
"test_editlinksnode"
"test_flattened"
"test_links_edit"
"test_links_edit_widget"
"test_new_window"
"test_toolbox"
"test_tooltree_registry"
"test_widgettoolgrid"
];
passthru.updateScript = gitUpdater { };
disabledTestPaths = [ "orangecanvas/canvas/items/tests/test_graphicstextitem.py" ];
meta = {
description = "Orange framework for building graphical user interfaces for editing workflows";
homepage = "https://github.com/biolab/orange-canvas-core";
changelog = "https://github.com/biolab/orange-canvas-core/releases/tag/${src.tag}";
license = [ lib.licenses.gpl3 ];
maintainers = [ ];
# Segmentation fault during tests
broken = stdenv.hostPlatform.isDarwin;
};
}
@@ -1,71 +0,0 @@
{
lib,
gitUpdater,
stdenv,
buildPythonPackage,
setuptools,
fetchFromGitHub,
pyqt5,
pyqtwebengine,
matplotlib,
orange-canvas-core,
pyqtgraph,
typing-extensions,
qt5,
pytestCheckHook,
pytest-qt,
appnope,
}:
buildPythonPackage rec {
pname = "orange-widget-base";
version = "4.27.0";
pyproject = true;
src = fetchFromGitHub {
owner = "biolab";
repo = "orange-widget-base";
tag = version;
hash = "sha256-RTPzdeqz7HRyH726qXC0FMrAcwk6qZ8gmkXL7s5bl74=";
};
build-system = [ setuptools ];
dependencies = [
matplotlib
orange-canvas-core
pyqt5
pyqtgraph
pyqtwebengine
typing-extensions
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ appnope ];
pythonImportsCheck = [ "orangewidget" ];
preCheck = ''
export HOME=$(mktemp -d)
export QT_PLUGIN_PATH="${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}"
export QT_QPA_PLATFORM_PLUGIN_PATH="${qt5.qtbase.bin}/lib/qt-${qt5.qtbase.version}/plugins";
export QT_QPA_PLATFORM=offscreen
'';
nativeCheckInputs = [
pytest-qt
pytestCheckHook
];
disabledTestPaths = [
"orangewidget/report/tests/test_report.py"
"orangewidget/tests/test_widget.py"
];
passthru.updateScript = gitUpdater { };
meta = {
description = "Implementation of the base OWBaseWidget class and utilities for use in Orange Canvas workflows";
homepage = "https://github.com/biolab/orange-widget-base";
license = [ lib.licenses.gpl3Plus ];
maintainers = [ ];
};
}
@@ -1,230 +0,0 @@
{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
# build-system
oldest-supported-numpy,
setuptools,
# nativeBuildInputs
copyDesktopItems,
cython,
qt5,
recommonmark,
sphinx,
# dependencies
baycomp,
bottleneck,
catboost,
chardet,
httpx,
joblib,
keyring,
keyrings-alt,
matplotlib,
numpy,
openpyxl,
opentsne,
orange-canvas-core,
orange-widget-base,
pandas,
pip,
pyqt5,
pyqtgraph,
pyqtwebengine,
python-louvain,
pyyaml,
qtconsole,
requests,
scikit-learn,
scipy,
serverfiles,
xgboost,
xlrd,
xlsxwriter,
makeDesktopItem,
# passthru
gitUpdater,
python,
pytest-qt,
pytestCheckHook,
}:
let
self = buildPythonPackage rec {
pname = "orange3";
version = "3.40.0";
pyproject = true;
src = fetchFromGitHub {
owner = "biolab";
repo = "orange3";
tag = version;
hash = "sha256-AOQGqOYaP3bPZtgjsVCxhA1T34Y9EIR5VeMwhZWmI88=";
};
build-system = [
oldest-supported-numpy
setuptools
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'cython>=3.0' 'cython'
# disable update checking
echo -e "def check_for_updates():\n\tpass" >> Orange/canvas/__main__.py
'';
nativeBuildInputs = [
copyDesktopItems
cython
qt5.wrapQtAppsHook
recommonmark
sphinx
];
enableParallelBuilding = true;
pythonRelaxDeps = [ "scikit-learn" ];
dependencies = [
baycomp
bottleneck
catboost
chardet
httpx
joblib
keyring
keyrings-alt
matplotlib
numpy
openpyxl
opentsne
orange-canvas-core
orange-widget-base
pandas
pip
pyqt5
pyqtgraph
pyqtwebengine
python-louvain
pyyaml
qtconsole
requests
scikit-learn
scipy
serverfiles
setuptools
xgboost
xlrd
xlsxwriter
];
# FIXME: ImportError: cannot import name '_variable' from partially initialized module 'Orange.data' (most likely due to a circular import) (/build/source/Orange/data/__init__.py)
doCheck = false;
# FIXME: pythonRelaxDeps is not relaxing the scikit-learn version constraint, had to disable this
dontCheckRuntimeDeps = true;
pythonImportsCheck = [
"Orange"
"Orange.data._variable"
];
desktopItems = [
(makeDesktopItem {
name = "orange";
exec = "orange-canvas";
desktopName = "Orange Data Mining";
genericName = "Data Mining Suite";
comment = "Explore, analyze, and visualize your data";
icon = "orange-canvas";
mimeTypes = [ "application/x-extension-ows" ];
categories = [
"Science"
"Education"
"ArtificialIntelligence"
"DataVisualization"
"NumericalAnalysis"
"Qt"
];
keywords = [
"Machine Learning"
"Scientific Visualization"
"Statistical Analysis"
];
})
];
postInstall = ''
wrapProgram $out/bin/orange-canvas \
"${"$"}{qtWrapperArgs[@]}"
mkdir -p $out/share/icons/hicolor/{256x256,48x48}/apps
cp distribute/icon-256.png $out/share/icons/hicolor/256x256/apps/orange-canvas.png
cp distribute/icon-48.png $out/share/icons/hicolor/48x48/apps/orange-canvas.png
'';
passthru = {
updateScript = gitUpdater { };
tests.unittests = stdenv.mkDerivation {
name = "${self.name}-tests";
inherit (self) src;
preCheck = ''
export HOME=$(mktemp -d)
export QT_PLUGIN_PATH="${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}"
export QT_QPA_PLATFORM_PLUGIN_PATH="${qt5.qtbase.bin}/lib/qt-${qt5.qtbase.version}/plugins";
export QT_QPA_PLATFORM=offscreen
rm Orange -rf
cp -r ${self}/${python.sitePackages}/Orange .
chmod +w -R .
substituteInPlace Orange/classification/tests/test_xgb_cls.py \
--replace-fail test_learners mk_test_learners
substituteInPlace Orange/modelling/tests/test_xgb.py \
--replace-fail test_learners mk_test_learners
substituteInPlace Orange/**/tests/*.py \
--replace-fail test_filename filename_test
# TODO: debug why orange is crashing on GC, may be a upstream issue
chmod +x Orange/__init__.py
echo "import gc; gc.disable()" | tee -a Orange/__init__.py
'';
nativeBuildInputs = [
pytest-qt
pytestCheckHook
];
postCheck = ''
touch $out
'';
doBuild = false;
doInstall = false;
buildInputs = [ self ];
};
};
meta = {
description = "Data mining and visualization toolbox for novice and expert alike";
homepage = "https://orangedatamining.com/";
changelog = "https://github.com/biolab/orange3/blob/${src.tag}/CHANGELOG.md";
license = [ lib.licenses.gpl3Plus ];
maintainers = [ ];
mainProgram = "orange-canvas";
};
};
in
self
+3
View File
@@ -362,6 +362,9 @@ mapAliases {
openai-triton-no-cuda = throw "'openai-triton-no-cuda' has been renamed to/replaced by 'triton-no-cuda'"; # Converted to throw 2025-10-29
openbabel-bindings = openbabel; # added 2025-09-17
opsdroid_get_image_size = throw "'opsdroid_get_image_size' has been renamed to/replaced by 'opsdroid-get-image-size'"; # Converted to throw 2025-10-29
orange3 = throw "'orange3' has been removed as it was unmaintained and depended on qt5 webengine"; # Added 2026-02-10
orange-canvas-core = throw "'orange-canvas-core' has been removed as it was unmaintained and unused outside orange3"; # Added 2026-02-10
orange-widgets-base = throw "'orange-widgets-base' has been removed as it was unmaintained and depended on qt5 webengine"; # Added 2026-02-10
orderedset = throw "orderedset has been removed because it has been marked as broken since at least November 2024."; # Added 2025-10-04
orm = throw "orm has been removed as it is unmaintained"; # added 2025-08-27
paho-mqtt_2 = throw "'paho-mqtt_2' has been renamed to/replaced by 'paho-mqtt'"; # Converted to throw 2025-10-29
-6
View File
@@ -11873,12 +11873,6 @@ self: super: with self; {
oralb-ble = callPackage ../development/python-modules/oralb-ble { };
orange-canvas-core = callPackage ../development/python-modules/orange-canvas-core { };
orange-widget-base = callPackage ../development/python-modules/orange-widget-base { };
orange3 = callPackage ../development/python-modules/orange3 { };
oras = callPackage ../development/python-modules/oras { };
orbax-checkpoint = callPackage ../development/python-modules/orbax-checkpoint { };