Compare commits
68 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2cf7d6ba3c | ||
|
|
282fd74e1d | ||
|
|
a69d2f09d3 | ||
|
|
947da2b33b | ||
|
|
f5e95a1bd4 | ||
|
|
748ce9ae53 | ||
|
|
b8d438811e | ||
|
|
845d642445 | ||
|
|
92f89794c5 | ||
|
|
7b40be3694 | ||
|
|
990dc29856 | ||
|
|
472bb26a71 | ||
|
|
751a621772 | ||
|
|
b9c94a084f | ||
|
|
bab1ae39f8 | ||
|
|
3a37cfa140 | ||
|
|
dc054568d2 | ||
|
|
ff0725122d | ||
|
|
c76efbe7de | ||
|
|
16f012aa4c | ||
|
|
12e0239599 | ||
|
|
07a31e1799 | ||
|
|
09e47bc370 | ||
|
|
74ff62b3b2 | ||
|
|
abdc2ce137 | ||
|
|
4a6409ff14 | ||
|
|
05ce9a5d34 | ||
|
|
18391ffb3e | ||
|
|
e95f254b57 | ||
|
|
ce07b1dbb0 | ||
|
|
2993aeb449 | ||
|
|
2abcdf63da | ||
|
|
2430502506 | ||
|
|
bb3276905b | ||
|
|
1fa95c9832 | ||
|
|
2cdec4003a | ||
|
|
94bb33e933 | ||
|
|
a5d74a1ca9 | ||
|
|
3422eeee2d | ||
|
|
6bc9a5feda | ||
|
|
32a2491950 | ||
|
|
6a42513b70 | ||
|
|
fb7b271181 | ||
|
|
647bdbf101 | ||
|
|
abfc7ec73f | ||
|
|
7cedc9e7b8 | ||
|
|
996e9a9754 | ||
|
|
be0898d37d | ||
|
|
8f025c8172 | ||
|
|
56acf3b9dd | ||
|
|
5d729bfdc8 |
||
|
|
ef0e243750 |
||
|
|
eeea163061 | ||
|
|
db33179ba5 | ||
|
|
3754ebea90 | ||
|
|
138ec5e585 | ||
|
|
0a7a16146f | ||
|
|
6afb99cbbf | ||
|
|
b76b9ad67b | ||
|
|
3ebe158fae | ||
|
|
c48d6d9548 | ||
|
|
e66c0fe8cc | ||
|
|
bbbab147a4 | ||
|
|
b40f3741c6 | ||
|
|
c560bb3d0e | ||
|
|
320efc24da | ||
|
|
b86e7c0177 | ||
|
|
a508659f97 |
15 changed files with 1008 additions and 185 deletions
16
.gitignore
vendored
16
.gitignore
vendored
|
|
@ -1,15 +1 @@
|
|||
/Cura-13.03-linux-fedora.tar.gz
|
||||
/Cura-13.04-linux-fedora.tar.gz
|
||||
/Cura-13.10-fedora.tar.gz
|
||||
/Cura-13.11.2-fedora.tar.gz
|
||||
/Cura-14.06-fedora.tar.gz
|
||||
/Cura-14.09-fedora.tar.gz
|
||||
/Cura-14.12.1-fedora.tar.gz
|
||||
/Cura-15.02.1-fedora.tar.gz
|
||||
/Cura-95c2af21db7fdda8c4324a923fa004859f6c5b9c-fedora.tar.gz
|
||||
/cura-2.5.0.tar.gz
|
||||
/cura-2.6.1.tar.gz
|
||||
/cura-2.7.0.tar.gz
|
||||
/cura-3.0.3.tar.gz
|
||||
/cura-3.1.0.tar.gz
|
||||
/cura-3.2.1.tar.gz
|
||||
/cura-*.tar.gz
|
||||
|
|
|
|||
35
028e7f7.patch
Normal file
35
028e7f7.patch
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
From 028e7f7c4e6a2d3c93d179f4701111713c34cef3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Gabriel=20F=C3=A9ron?= <g@leirbag.net>
|
||||
Date: Wed, 2 Feb 2022 22:43:23 +0100
|
||||
Subject: [PATCH] Remove SentryLogger
|
||||
|
||||
---
|
||||
cura/CuraApplication.py | 3 ---
|
||||
plugins/Cura-OctoPrintPlugin | 1 +
|
||||
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||
create mode 160000 plugins/Cura-OctoPrintPlugin
|
||||
|
||||
diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py
|
||||
index bf60da374b..146db339c9 100755
|
||||
--- a/cura/CuraApplication.py
|
||||
+++ b/cura/CuraApplication.py
|
||||
@@ -782,9 +782,6 @@ class CuraApplication(QtApplication):
|
||||
self._plugin_registry.addPluginLocation(os.path.join(os.path.abspath(os.path.dirname(__file__)), "..", "plugins"))
|
||||
self._plugin_registry.preloaded_plugins.append("ConsoleLogger")
|
||||
|
||||
- # Since it's possible to get crashes in code before the sentrylogger is loaded, we want to start this plugin
|
||||
- # as quickly as possible, as we might get unsolvable crash reports without it.
|
||||
- self._plugin_registry.preloaded_plugins.append("SentryLogger")
|
||||
self._plugin_registry.loadPlugins()
|
||||
|
||||
if self.getBackend() is None:
|
||||
diff --git a/plugins/Cura-OctoPrintPlugin b/plugins/Cura-OctoPrintPlugin
|
||||
new file mode 160000
|
||||
index 0000000000..7bd73946fb
|
||||
--- /dev/null
|
||||
+++ b/plugins/Cura-OctoPrintPlugin
|
||||
@@ -0,0 +1 @@
|
||||
+Subproject commit 7bd73946fbf22d18337dc900a81a011ece26bee0
|
||||
--
|
||||
2.34.1
|
||||
|
||||
117
16103.patch
Normal file
117
16103.patch
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
From 5c8341ac6ad25ee8ffdf57d685565faf46c7319e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
||||
Date: Tue, 11 Jul 2023 00:03:59 +0200
|
||||
Subject: [PATCH 1/2] Fix asserts for called once in Python 3.12
|
||||
|
||||
E AttributeError: 'called_with' is not a valid assertion. Use a spec for the mock if 'called_with' is meant to be an attribute.
|
||||
|
||||
FAILED tests/TestOAuth2.py::test_refreshAccessTokenSuccess - AttributeError: ...
|
||||
FAILED tests/TestOAuth2.py::test_refreshAccessTokenFailed - AttributeError: '...
|
||||
FAILED tests/API/TestAccount.py::test_errorLoginState - AttributeError: 'call...
|
||||
FAILED tests/Settings/TestCuraStackBuilder.py::test_createMachineWithUnknownDefinition
|
||||
---
|
||||
tests/API/TestAccount.py | 4 ++--
|
||||
tests/Settings/TestCuraStackBuilder.py | 2 +-
|
||||
tests/TestOAuth2.py | 4 ++--
|
||||
3 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/tests/API/TestAccount.py b/tests/API/TestAccount.py
|
||||
index 9d62646eff5..26da8d04cd1 100644
|
||||
--- a/tests/API/TestAccount.py
|
||||
+++ b/tests/API/TestAccount.py
|
||||
@@ -80,12 +80,12 @@ def test_errorLoginState(application):
|
||||
with patch("UM.TaskManagement.HttpRequestManager.HttpRequestManager.getInstance"): # Don't want triggers for account information to actually make HTTP requests.
|
||||
account._onLoginStateChanged(True, "BLARG!")
|
||||
# Even though we said that the login worked, it had an error message, so the login failed.
|
||||
- account.loginStateChanged.emit.called_with(False)
|
||||
+ account.loginStateChanged.emit.assert_called_with(False)
|
||||
|
||||
with patch("UM.TaskManagement.HttpRequestManager.HttpRequestManager.getInstance"):
|
||||
account._onLoginStateChanged(True)
|
||||
account._onLoginStateChanged(False, "OMGZOMG!")
|
||||
- account.loginStateChanged.emit.called_with(False)
|
||||
+ account.loginStateChanged.emit.assert_called_with(False)
|
||||
|
||||
def test_sync_success():
|
||||
account = Account(MagicMock())
|
||||
diff --git a/tests/Settings/TestCuraStackBuilder.py b/tests/Settings/TestCuraStackBuilder.py
|
||||
index 6bd19a0d30d..9c40a327e85 100644
|
||||
--- a/tests/Settings/TestCuraStackBuilder.py
|
||||
+++ b/tests/Settings/TestCuraStackBuilder.py
|
||||
@@ -52,7 +52,7 @@ def test_createMachineWithUnknownDefinition(application, container_registry):
|
||||
with patch("cura.CuraApplication.CuraApplication.getInstance", MagicMock(return_value=application)):
|
||||
with patch("UM.ConfigurationErrorMessage.ConfigurationErrorMessage.getInstance") as mocked_config_error:
|
||||
assert CuraStackBuilder.createMachine("Whatever", "NOPE") is None
|
||||
- assert mocked_config_error.addFaultyContainers.called_with("NOPE")
|
||||
+ mocked_config_error.addFaultyContainers.assert_called_with("NOPE")
|
||||
|
||||
|
||||
def test_createMachine(application, container_registry, definition_container, global_variant, material_instance_container,
|
||||
diff --git a/tests/TestOAuth2.py b/tests/TestOAuth2.py
|
||||
index 09fa555af43..cd281794f11 100644
|
||||
--- a/tests/TestOAuth2.py
|
||||
+++ b/tests/TestOAuth2.py
|
||||
@@ -81,7 +81,7 @@ def test_refreshAccessTokenSuccess():
|
||||
|
||||
with patch.object(AuthorizationHelpers, "getAccessTokenUsingRefreshToken", return_value=SUCCESSFUL_AUTH_RESPONSE):
|
||||
authorization_service.refreshAccessToken()
|
||||
- assert authorization_service.onAuthStateChanged.emit.called_with(True)
|
||||
+ authorization_service.onAuthStateChanged.emit.assert_called_with(True)
|
||||
|
||||
def test__parseJWTNoRefreshToken():
|
||||
"""
|
||||
@@ -190,7 +190,7 @@ def mock_refresh(self, refresh_token, callback): # Refreshing gives a valid tok
|
||||
authorization_service.onAuthStateChanged.emit = MagicMock()
|
||||
with patch("cura.OAuth2.AuthorizationHelpers.AuthorizationHelpers.getAccessTokenUsingRefreshToken", mock_refresh):
|
||||
authorization_service.refreshAccessToken()
|
||||
- assert authorization_service.onAuthStateChanged.emit.called_with(False)
|
||||
+ authorization_service.onAuthStateChanged.emit.assert_called_with(False)
|
||||
|
||||
def test_refreshAccesTokenWithoutData():
|
||||
authorization_service = AuthorizationService(OAUTH_SETTINGS, Preferences())
|
||||
|
||||
From b22602cdf604c46d316b6e6fba5e324f443c7a31 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
||||
Date: Tue, 11 Jul 2023 00:04:46 +0200
|
||||
Subject: [PATCH 2/2] Comment out a failing asserts
|
||||
|
||||
---
|
||||
tests/Settings/TestCuraStackBuilder.py | 2 +-
|
||||
tests/TestOAuth2.py | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tests/Settings/TestCuraStackBuilder.py b/tests/Settings/TestCuraStackBuilder.py
|
||||
index 9c40a327e85..7e13f730c1f 100644
|
||||
--- a/tests/Settings/TestCuraStackBuilder.py
|
||||
+++ b/tests/Settings/TestCuraStackBuilder.py
|
||||
@@ -52,7 +52,7 @@ def test_createMachineWithUnknownDefinition(application, container_registry):
|
||||
with patch("cura.CuraApplication.CuraApplication.getInstance", MagicMock(return_value=application)):
|
||||
with patch("UM.ConfigurationErrorMessage.ConfigurationErrorMessage.getInstance") as mocked_config_error:
|
||||
assert CuraStackBuilder.createMachine("Whatever", "NOPE") is None
|
||||
- mocked_config_error.addFaultyContainers.assert_called_with("NOPE")
|
||||
+ # mocked_config_error.addFaultyContainers.assert_called_with("NOPE") # this fails
|
||||
|
||||
|
||||
def test_createMachine(application, container_registry, definition_container, global_variant, material_instance_container,
|
||||
diff --git a/tests/TestOAuth2.py b/tests/TestOAuth2.py
|
||||
index cd281794f11..78d9aee3ff4 100644
|
||||
--- a/tests/TestOAuth2.py
|
||||
+++ b/tests/TestOAuth2.py
|
||||
@@ -81,7 +81,7 @@ def test_refreshAccessTokenSuccess():
|
||||
|
||||
with patch.object(AuthorizationHelpers, "getAccessTokenUsingRefreshToken", return_value=SUCCESSFUL_AUTH_RESPONSE):
|
||||
authorization_service.refreshAccessToken()
|
||||
- authorization_service.onAuthStateChanged.emit.assert_called_with(True)
|
||||
+ # authorization_service.onAuthStateChanged.emit.assert_called_with(True) # this fails
|
||||
|
||||
def test__parseJWTNoRefreshToken():
|
||||
"""
|
||||
@@ -190,7 +190,7 @@ def mock_refresh(self, refresh_token, callback): # Refreshing gives a valid tok
|
||||
authorization_service.onAuthStateChanged.emit = MagicMock()
|
||||
with patch("cura.OAuth2.AuthorizationHelpers.AuthorizationHelpers.getAccessTokenUsingRefreshToken", mock_refresh):
|
||||
authorization_service.refreshAccessToken()
|
||||
- authorization_service.onAuthStateChanged.emit.assert_called_with(False)
|
||||
+ # authorization_service.onAuthStateChanged.emit.assert_called_with(False) # this fails
|
||||
|
||||
def test_refreshAccesTokenWithoutData():
|
||||
authorization_service = AuthorizationService(OAUTH_SETTINGS, Preferences())
|
||||
36
17642.patch
Normal file
36
17642.patch
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
From 1941fbe90be65ea6fab393bdfeed6a8bf30dbab8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
||||
Date: Thu, 14 Dec 2023 12:52:26 +0100
|
||||
Subject: [PATCH] Avoid "KeyError: material_name" crash in Fedora
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "/usr/lib/python3.11/site-packages/UM/Qt/ListModel.py", line 54, in data
|
||||
return self._items[index.row()][self._role_names[role].decode("utf-8")]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
KeyError: 'material_name'
|
||||
|
||||
Downstream report: https://bugzilla.redhat.com/show_bug.cgi?id=2252195
|
||||
Community: https://community.ultimaker.com/topic/44538-cura-53-crashs-at-startup/
|
||||
|
||||
For reasons unknown, this crash does not happen with the AppImage.
|
||||
|
||||
Nevertheless, in 2baada8a70b15dd87948a25855e17d15b0ece58c
|
||||
material_name was added as a role, not material_label.
|
||||
Reaming the field in the sentinel extruder makes the crash go away.
|
||||
---
|
||||
cura/Machines/Models/ExtrudersModel.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cura/Machines/Models/ExtrudersModel.py b/cura/Machines/Models/ExtrudersModel.py
|
||||
index 2677894bff2..f31f7c87178 100644
|
||||
--- a/cura/Machines/Models/ExtrudersModel.py
|
||||
+++ b/cura/Machines/Models/ExtrudersModel.py
|
||||
@@ -227,7 +227,7 @@ def __updateExtruders(self):
|
||||
"material_brand": "",
|
||||
"color_name": "",
|
||||
"material_type": "",
|
||||
- "material_label": ""
|
||||
+ "material_name": ""
|
||||
}
|
||||
items.append(item)
|
||||
if self._items != items:
|
||||
103
CMakeLists.txt
Normal file
103
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
project(cura)
|
||||
cmake_minimum_required(VERSION 3.6)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
|
||||
|
||||
set(URANIUM_DIR "${CMAKE_SOURCE_DIR}/../Uranium" CACHE PATH "The location of the Uranium repository")
|
||||
set(URANIUM_SCRIPTS_DIR "${URANIUM_DIR}/scripts" CACHE PATH "The location of the scripts directory of the Uranium repository")
|
||||
|
||||
# Tests
|
||||
include(CuraTests)
|
||||
|
||||
option(CURA_DEBUGMODE "Enable debug dialog and other debug features" OFF)
|
||||
if(CURA_DEBUGMODE)
|
||||
set(_cura_debugmode "ON")
|
||||
endif()
|
||||
|
||||
option(GENERATE_TRANSLATIONS "Should the translations be generated?" ON)
|
||||
|
||||
set(CURA_APP_NAME "cura" CACHE STRING "Short name of Cura, used for configuration folder")
|
||||
set(CURA_APP_DISPLAY_NAME "Ultimaker Cura" CACHE STRING "Display name of Cura")
|
||||
set(CURA_VERSION "master" CACHE STRING "Version name of Cura")
|
||||
set(CURA_BUILDTYPE "" CACHE STRING "Build type of Cura, eg. 'PPA'")
|
||||
set(CURA_CLOUD_API_ROOT "" CACHE STRING "Alternative Cura cloud API root")
|
||||
set(CURA_CLOUD_API_VERSION "" CACHE STRING "Alternative Cura cloud API version")
|
||||
set(CURA_CLOUD_ACCOUNT_API_ROOT "" CACHE STRING "Alternative Cura cloud account API version")
|
||||
set(CURA_MARKETPLACE_ROOT "" CACHE STRING "Alternative Marketplace location")
|
||||
set(CURA_DIGITAL_FACTORY_URL "" CACHE STRING "Alternative Digital Factory location")
|
||||
|
||||
configure_file(${CMAKE_SOURCE_DIR}/com.ultimaker.cura.desktop.in ${CMAKE_BINARY_DIR}/com.ultimaker.cura.desktop @ONLY)
|
||||
|
||||
configure_file(cura/CuraVersion.py.in CuraVersion.py @ONLY)
|
||||
|
||||
|
||||
# FIXME: The new FindPython3 finds the system's Python3.6 rather than the Python3.5 that we built for Cura's environment.
|
||||
# So we're using the old method here, with FindPythonInterp for now.
|
||||
find_package(PythonInterp 3 REQUIRED)
|
||||
|
||||
set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
|
||||
set(Python3_VERSION ${PYTHON_VERSION_STRING})
|
||||
set(Python3_VERSION_MAJOR ${PYTHON_VERSION_MAJOR})
|
||||
set(Python3_VERSION_MINOR ${PYTHON_VERSION_MINOR})
|
||||
set(Python3_VERSION_PATCH ${PYTHON_VERSION_PATCH})
|
||||
|
||||
if(NOT ${URANIUM_DIR} STREQUAL "")
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${URANIUM_DIR}/cmake")
|
||||
endif()
|
||||
if(NOT ${URANIUM_SCRIPTS_DIR} STREQUAL "")
|
||||
list(APPEND CMAKE_MODULE_PATH ${URANIUM_DIR}/cmake)
|
||||
include(UraniumTranslationTools)
|
||||
# Extract Strings
|
||||
add_custom_target(extract-messages ${URANIUM_SCRIPTS_DIR}/extract-messages ${CMAKE_SOURCE_DIR} cura)
|
||||
# Build Translations
|
||||
if(${GENERATE_TRANSLATIONS})
|
||||
CREATE_TRANSLATION_TARGETS()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
install(DIRECTORY resources
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/cura)
|
||||
|
||||
include(CuraPluginInstall)
|
||||
|
||||
if(NOT APPLE AND NOT WIN32)
|
||||
install(FILES cura_app.py
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||
RENAME cura)
|
||||
if(EXISTS /etc/debian_version)
|
||||
install(DIRECTORY cura
|
||||
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}/dist-packages
|
||||
FILES_MATCHING PATTERN *.py)
|
||||
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py
|
||||
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}/dist-packages/cura)
|
||||
else()
|
||||
install(DIRECTORY cura
|
||||
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages
|
||||
FILES_MATCHING PATTERN *.py)
|
||||
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py
|
||||
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages/cura)
|
||||
endif()
|
||||
install(FILES ${CMAKE_BINARY_DIR}/com.ultimaker.cura.desktop
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
|
||||
install(FILES ${CMAKE_SOURCE_DIR}/resources/images/cura-icon.png
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/128x128/apps/)
|
||||
install(FILES com.ultimaker.cura.appdata.xml
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo)
|
||||
install(FILES cura.sharedmimeinfo
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages/
|
||||
RENAME cura.xml )
|
||||
else()
|
||||
install(FILES cura_app.py
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
install(DIRECTORY cura
|
||||
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages
|
||||
FILES_MATCHING PATTERN *.py)
|
||||
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py
|
||||
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages/cura)
|
||||
endif()
|
||||
105
CuraPluginInstall.cmake
Normal file
105
CuraPluginInstall.cmake
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# CuraPluginInstall.cmake is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
#
|
||||
# This module detects all plugins that need to be installed and adds them using the CMake install() command.
|
||||
# It detects all plugin folder in the path "plugins/*" where there's a "plugin.json" in it.
|
||||
#
|
||||
# Plugins can be configured to NOT BE INSTALLED via the variable "CURA_NO_INSTALL_PLUGINS" as a list of string in the
|
||||
# form of "a;b;c" or "a,b,c". By default all plugins will be installed.
|
||||
#
|
||||
|
||||
option(PRINT_PLUGIN_LIST "Should the list of plugins that are installed be printed?" ON)
|
||||
|
||||
# FIXME: Remove the code for CMake <3.12 once we have switched over completely.
|
||||
# FindPython3 is a new module since CMake 3.12. It deprecates FindPythonInterp and FindPythonLibs. The FindPython3
|
||||
# module is copied from the CMake repository here so in CMake <3.12 we can still use it.
|
||||
if(${CMAKE_VERSION} VERSION_LESS 3.12)
|
||||
# Use FindPythonInterp and FindPythonLibs for CMake <3.12
|
||||
find_package(PythonInterp 3 REQUIRED)
|
||||
|
||||
set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
else()
|
||||
# Use FindPython3 for CMake >=3.12
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
endif()
|
||||
|
||||
# Options or configuration variables
|
||||
set(CURA_NO_INSTALL_PLUGINS "" CACHE STRING "A list of plugins that should not be installed, separated with ';' or ','.")
|
||||
|
||||
file(GLOB_RECURSE _plugin_json_list ${CMAKE_SOURCE_DIR}/plugins/*/plugin.json)
|
||||
list(LENGTH _plugin_json_list _plugin_json_list_len)
|
||||
|
||||
# Sort the lists alphabetically so we can handle cases like this:
|
||||
# - plugins/my_plugin/plugin.json
|
||||
# - plugins/my_plugin/my_module/plugin.json
|
||||
# In this case, only "plugins/my_plugin" should be added via install().
|
||||
set(_no_install_plugin_list ${CURA_NO_INSTALL_PLUGINS})
|
||||
# Sanitize the string so the comparison will be case-insensitive.
|
||||
string(STRIP "${_no_install_plugin_list}" _no_install_plugin_list)
|
||||
string(TOLOWER "${_no_install_plugin_list}" _no_install_plugin_list)
|
||||
|
||||
# WORKAROUND counterpart of what's in cura-build.
|
||||
string(REPLACE "," ";" _no_install_plugin_list "${_no_install_plugin_list}")
|
||||
|
||||
list(LENGTH _no_install_plugin_list _no_install_plugin_list_len)
|
||||
|
||||
if(_no_install_plugin_list_len GREATER 0)
|
||||
list(SORT _no_install_plugin_list)
|
||||
endif()
|
||||
if(_plugin_json_list_len GREATER 0)
|
||||
list(SORT _plugin_json_list)
|
||||
endif()
|
||||
|
||||
# Check all plugin directories and add them via install() if needed.
|
||||
set(_install_plugin_list "")
|
||||
foreach(_plugin_json_path ${_plugin_json_list})
|
||||
get_filename_component(_plugin_dir ${_plugin_json_path} DIRECTORY)
|
||||
file(RELATIVE_PATH _rel_plugin_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_plugin_dir})
|
||||
get_filename_component(_plugin_dir_name ${_plugin_dir} NAME)
|
||||
|
||||
# Make plugin name comparison case-insensitive
|
||||
string(TOLOWER "${_plugin_dir_name}" _plugin_dir_name_lowercase)
|
||||
|
||||
# Check if this plugin needs to be skipped for installation
|
||||
set(_add_plugin ON) # Indicates if this plugin should be added to the build or not.
|
||||
set(_is_no_install_plugin OFF) # If this plugin will not be added, this indicates if it's because the plugin is
|
||||
# specified in the NO_INSTALL_PLUGINS list.
|
||||
if(_no_install_plugin_list)
|
||||
if("${_plugin_dir_name_lowercase}" IN_LIST _no_install_plugin_list)
|
||||
set(_add_plugin OFF)
|
||||
set(_is_no_install_plugin ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Make sure this is not a subdirectory in a plugin that's already in the install list
|
||||
if(_add_plugin)
|
||||
foreach(_known_install_plugin_dir ${_install_plugin_list})
|
||||
if(_plugin_dir MATCHES "${_known_install_plugin_dir}.+")
|
||||
set(_add_plugin OFF)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(_add_plugin)
|
||||
if(${PRINT_PLUGIN_LIST})
|
||||
message(STATUS "[+] PLUGIN TO INSTALL: ${_rel_plugin_dir}")
|
||||
endif()
|
||||
get_filename_component(_rel_plugin_parent_dir ${_rel_plugin_dir} DIRECTORY)
|
||||
install(DIRECTORY ${_rel_plugin_dir}
|
||||
DESTINATION lib${LIB_SUFFIX}/cura/${_rel_plugin_parent_dir}
|
||||
PATTERN "__pycache__" EXCLUDE
|
||||
PATTERN "*.qmlc" EXCLUDE
|
||||
)
|
||||
list(APPEND _install_plugin_list ${_plugin_dir})
|
||||
elseif(_is_no_install_plugin)
|
||||
if(${PRINT_PLUGIN_LIST})
|
||||
message(STATUS "[-] PLUGIN TO REMOVE : ${_rel_plugin_dir}")
|
||||
endif()
|
||||
execute_process(COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/mod_bundled_packages_json.py
|
||||
-d ${CMAKE_CURRENT_SOURCE_DIR}/resources/bundled_packages
|
||||
${_plugin_dir_name}
|
||||
RESULT_VARIABLE _mod_json_result)
|
||||
endif()
|
||||
endforeach()
|
||||
83
CuraTests.cmake
Normal file
83
CuraTests.cmake
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
include(CTest)
|
||||
include(CMakeParseArguments)
|
||||
|
||||
# FIXME: The new FindPython3 finds the system's Python3.6 rather than the Python3.5 that we built for Cura's environment.
|
||||
# So we're using the old method here, with FindPythonInterp for now.
|
||||
find_package(PythonInterp 3 REQUIRED)
|
||||
|
||||
set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
|
||||
add_custom_target(test-verbose COMMAND ${CMAKE_CTEST_COMMAND} --verbose)
|
||||
|
||||
function(cura_add_test)
|
||||
set(_single_args NAME DIRECTORY PYTHONPATH)
|
||||
cmake_parse_arguments("" "" "${_single_args}" "" ${ARGN})
|
||||
|
||||
if(NOT _NAME)
|
||||
message(FATAL_ERROR "cura_add_test requires a test name argument")
|
||||
endif()
|
||||
|
||||
if(NOT _DIRECTORY)
|
||||
message(FATAL_ERROR "cura_add_test requires a directory to test")
|
||||
endif()
|
||||
|
||||
if(NOT _PYTHONPATH)
|
||||
set(_PYTHONPATH ${_DIRECTORY})
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
string(REPLACE "|" "\\;" _PYTHONPATH ${_PYTHONPATH})
|
||||
set(_PYTHONPATH "${_PYTHONPATH}\\;$ENV{PYTHONPATH}")
|
||||
else()
|
||||
string(REPLACE "|" ":" _PYTHONPATH ${_PYTHONPATH})
|
||||
set(_PYTHONPATH "${_PYTHONPATH}:$ENV{PYTHONPATH}")
|
||||
endif()
|
||||
|
||||
get_test_property(${_NAME} ENVIRONMENT test_exists) #Find out if the test exists by getting a property from it that always exists (such as ENVIRONMENT because we set that ourselves).
|
||||
if (NOT ${test_exists})
|
||||
add_test(
|
||||
NAME ${_NAME}
|
||||
COMMAND ${Python3_EXECUTABLE} -m pytest --junitxml=${CMAKE_BINARY_DIR}/junit-${_NAME}.xml ${_DIRECTORY}
|
||||
)
|
||||
set_tests_properties(${_NAME} PROPERTIES ENVIRONMENT LANG=C)
|
||||
set_tests_properties(${_NAME} PROPERTIES ENVIRONMENT "PYTHONPATH=${_PYTHONPATH}")
|
||||
else()
|
||||
message(WARNING "Duplicate test ${_NAME}!")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
||||
#Add code style test.
|
||||
add_test(
|
||||
NAME "code-style"
|
||||
COMMAND ${Python3_EXECUTABLE} run_mypy.py
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
|
||||
#Add test for import statements which are not compatible with all builds
|
||||
add_test(
|
||||
NAME "invalid-imports"
|
||||
COMMAND ${Python3_EXECUTABLE} scripts/check_invalid_imports.py
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
|
||||
cura_add_test(NAME pytest-main DIRECTORY ${CMAKE_SOURCE_DIR}/tests PYTHONPATH "${CMAKE_SOURCE_DIR}|${URANIUM_DIR}")
|
||||
|
||||
file(GLOB_RECURSE _plugins plugins/*/__init__.py)
|
||||
foreach(_plugin ${_plugins})
|
||||
get_filename_component(_plugin_directory ${_plugin} DIRECTORY)
|
||||
if(EXISTS ${_plugin_directory}/tests)
|
||||
get_filename_component(_plugin_name ${_plugin_directory} NAME)
|
||||
cura_add_test(NAME pytest-${_plugin_name} DIRECTORY ${_plugin_directory} PYTHONPATH "${_plugin_directory}|${CMAKE_SOURCE_DIR}|${URANIUM_DIR}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
#Add test for whether the shortcut alt-keys are unique in every translation.
|
||||
add_test(
|
||||
NAME "shortcut-keys"
|
||||
COMMAND ${Python3_EXECUTABLE} scripts/check_shortcut_keys.py
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
14
CuraVersion.py.in
Normal file
14
CuraVersion.py.in
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# Copyright (c) 2022 Ultimaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
CuraAppName = "@CURA_APP_NAME@"
|
||||
CuraAppDisplayName = "@CURA_APP_DISPLAY_NAME@"
|
||||
CuraVersion = "@CURA_VERSION@"
|
||||
CuraBuildType = "@CURA_BUILDTYPE@"
|
||||
CuraDebugMode = True if "@_cura_debugmode@" == "ON" else False
|
||||
CuraCloudAPIRoot = "@CURA_CLOUD_API_ROOT@"
|
||||
CuraCloudAPIVersion = "@CURA_CLOUD_API_VERSION@"
|
||||
CuraCloudAccountAPIRoot = "@CURA_CLOUD_ACCOUNT_API_ROOT@"
|
||||
CuraMarketplaceRoot = "@CURA_MARKETPLACE_ROOT@"
|
||||
CuraDigitalFactoryURL = "@CURA_DIGITAL_FACTORY_URL@"
|
||||
CuraLatestURL = "@CURA_LATEST_URL@"
|
||||
22
aad4180.patch
Normal file
22
aad4180.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
From aad41807c365ccef001b787407d7dc756e11de02 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Gabriel=20F=C3=A9ron?= <g@leirbag.net>
|
||||
Date: Tue, 11 Jan 2022 20:28:41 +0100
|
||||
Subject: [PATCH] Remove unused import of sentry_sdk
|
||||
|
||||
---
|
||||
cura/CrashHandler.py | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py
|
||||
index c911a423504..35e9aa832be 100644
|
||||
--- a/cura/CrashHandler.py
|
||||
+++ b/cura/CrashHandler.py
|
||||
@@ -12,8 +12,6 @@
|
||||
import locale
|
||||
from typing import cast, Any
|
||||
|
||||
-import sentry_sdk
|
||||
-
|
||||
try:
|
||||
from sentry_sdk.hub import Hub
|
||||
from sentry_sdk.utils import event_from_exception
|
||||
272
changelog
Normal file
272
changelog
Normal file
|
|
@ -0,0 +1,272 @@
|
|||
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.3.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Sun Jul 09 2023 Python Maint <python-maint@redhat.com> - 1:5.3.0-2
|
||||
- Rebuilt for Python 3.12
|
||||
|
||||
* Thu Mar 9 2023 Tom Callaway <spot@fedoraproject.org> - 1:5.3.0-1
|
||||
- update to 5.3.0
|
||||
|
||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.13.1-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Mon Aug 22 2022 Miro Hrončok <mhroncok@redhat.com> - 1:4.13.1-5
|
||||
- Use the default flags for Python in the shebang of /usr/bin/cura
|
||||
- Fixes: rhbz#2117729
|
||||
|
||||
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.13.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Fri Jun 17 2022 Python Maint <python-maint@redhat.com> - 1:4.13.1-3
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Wed Feb 02 2022 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.13.1-2
|
||||
- Fix error loading SentryLogger plugin
|
||||
|
||||
* Tue Feb 01 2022 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.13.1-1
|
||||
- Update to 4.13.1
|
||||
|
||||
* Thu Jan 20 2022 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.13.0-1
|
||||
- Update to 4.13.0
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.12.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Sun Jan 02 2022 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.12.1-2
|
||||
- Backport fix for Python 3.10
|
||||
|
||||
* Mon Dec 13 2021 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.12.1-1
|
||||
- Update to 4.12.1
|
||||
|
||||
* Mon Aug 16 2021 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.10.0-1
|
||||
- Update to 4.10.0
|
||||
|
||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.9.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Thu Jun 10 2021 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.9.1-1
|
||||
- Update to 4.9.1
|
||||
|
||||
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1:4.9.0-2
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Mon Apr 26 2021 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.9.0-1
|
||||
- Update to 4.9.0
|
||||
|
||||
* Mon Mar 22 2021 Miro Hrončok <mhroncok@redhat.com> - 1:4.8.0-3
|
||||
- Adapt to Python 3.9 API changes
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.8.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Tue Dec 22 2020 Jan Pazdziora <jpazdziora@redhat.com> - 1:4.8.0-1
|
||||
- Update to 4.8.0
|
||||
- Recommend trimesh and certifi
|
||||
|
||||
* Thu Sep 03 2020 Miro Hrončok <mhroncok@redhat.com> - 1:4.7.1-1
|
||||
- Update to 4.7.1
|
||||
|
||||
* Mon Aug 31 2020 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.7.0-1
|
||||
- Update to 4.7.0
|
||||
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1:4.6.1-2
|
||||
- Rebuilt for Python 3.9
|
||||
|
||||
* Tue May 5 2020 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.6.0-1
|
||||
- Update to 4.6.1
|
||||
|
||||
* Tue Apr 21 2020 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.6.0-1
|
||||
- Update to 4.6.0
|
||||
|
||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.4.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Thu Nov 21 2019 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.4.0-1
|
||||
- Update to 4.4.0
|
||||
- Force X11 to workaround invisible window on Wayland
|
||||
|
||||
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 1:4.1.0-4
|
||||
- Rebuilt for Python 3.8.0rc1 (#1748018)
|
||||
|
||||
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1:4.1.0-3
|
||||
- Rebuilt for Python 3.8
|
||||
|
||||
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.1.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Tue Jun 18 2019 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.1.0-1
|
||||
- Update to 4.1.0
|
||||
|
||||
* Thu Apr 04 2019 Gabriel Féron <feron.gabriel@gmail.com> - 1:4.0.0-1
|
||||
- Update to 4.0.0
|
||||
|
||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.6.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Sat Jan 26 2019 Gabriel Féron <feron.gabriel@gmail.com> - 1:3.6.0-1
|
||||
- Update to 3.6.0
|
||||
|
||||
* Mon Nov 12 2018 Miro Hrončok <mhroncok@redhat.com> - 1:3.5.1-1
|
||||
- Update to 3.5.1 (#1644323)
|
||||
|
||||
* Tue Aug 28 2018 Miro Hrončok <mhroncok@redhat.com> - 1:3.4.1-1
|
||||
- Update to 3.4.1
|
||||
|
||||
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.3.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 1:3.3.0-3
|
||||
- Rebuilt for Python 3.7
|
||||
|
||||
* Sun Jun 17 2018 Miro Hrončok <mhroncok@redhat.com> - 1:3.3.0-2
|
||||
- Bytecompile the plugins explicitly
|
||||
|
||||
* Wed May 02 2018 Miro Hrončok <mhroncok@redhat.com> - 1:3.3.0-1
|
||||
- Update to 3.3.0
|
||||
- Enable test_getPropertyFallThrough again
|
||||
|
||||
* Wed Mar 21 2018 Miro Hrončok <mhroncok@redhat.com> - 1:3.2.1-2
|
||||
- Require qt5-qtquickcontrols2 in addition to qt5-qtquickcontrols
|
||||
|
||||
* Tue Mar 20 2018 Miro Hrončok <mhroncok@redhat.com> - 1:3.2.1-1
|
||||
- Update to 3.2.1
|
||||
- Force install to /usr/lib and keep this noarch
|
||||
- Change the set of skipped tests
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.1.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Sun Dec 10 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.1.0-1
|
||||
- Update to 3.1.0
|
||||
- Disable most of the tests
|
||||
- No longer needs to sed out dist-packages
|
||||
- Move appdata to metainfo
|
||||
|
||||
* Mon Dec 04 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.0.3-5
|
||||
- Mark the package with correct license
|
||||
|
||||
* Sun Dec 03 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.0.3-4
|
||||
- Also apply the nvidia driver workaround on Fedora (#1520138)
|
||||
|
||||
* Tue Nov 21 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.0.3-3
|
||||
- Require libglvnd-devel as a workaround for #1494278
|
||||
|
||||
* Fri Oct 27 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.0.3-2
|
||||
- Add upstream commit to fix tests
|
||||
|
||||
* Mon Oct 23 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.0.3-1
|
||||
- Update to 3.0.3
|
||||
- Remove locale and desktop file changes (fixed upstream)
|
||||
|
||||
* Wed Aug 30 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.7.0-2
|
||||
- Relocate Japanese locale to ja
|
||||
|
||||
* Wed Aug 30 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.7.0-1
|
||||
- Update to 2.7.0
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.6.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Thu Jul 20 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.6.1-2
|
||||
- Require cura-fdm-materials
|
||||
|
||||
* Wed Jun 28 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.6.1-1
|
||||
- Updated to 2.6.1
|
||||
|
||||
* Wed May 10 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.5.0-2
|
||||
- Require qt5-qtquickcontrols
|
||||
|
||||
* Wed May 03 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.5.0-1
|
||||
- Update to modern Cura 2.x (introduce Epoch) (#1393176)
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 15.04.4-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Thu Nov 03 2016 Miro Hrončok <mhroncok@redhat.com> - 15.04.4-5
|
||||
- Explicitly run cura on X11 GDK backend (#1388953)
|
||||
|
||||
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.04.4-4
|
||||
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
||||
|
||||
* Fri Mar 25 2016 Miro Hrončok <mhroncok@redhat.com> - 15.04.4-3
|
||||
- Require 3dprinter-udev-rules
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 15.04.4-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Sat Jan 30 2016 Miro Hrončok <mhroncok@redhat.com> - 15.04.4-1
|
||||
- New version
|
||||
|
||||
* Wed Jul 08 2015 Miro Hrončok <mhroncok@redhat.com> - 15.02.1-4
|
||||
- No longer depend on pypy
|
||||
- Simplify the launcher
|
||||
|
||||
* Mon Jul 06 2015 Miro Hrončok <mhroncok@redhat.com> - 15.02.1-3
|
||||
- Patch for #1230281
|
||||
|
||||
* Mon Jul 06 2015 Miro Hrončok <mhroncok@redhat.com> - 15.02.1-2
|
||||
- Require latest CuraEngine
|
||||
|
||||
* Mon Jul 06 2015 Miro Hrončok <mhroncok@redhat.com> - 15.02.1-1
|
||||
- Update to 15.02.1
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14.12.1-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Fri May 29 2015 Miro Hrončok <mhroncok@redhat.com> - 14.12.1-4
|
||||
- Patch: Open directories with xdg-open (#1217961)
|
||||
|
||||
* Mon Apr 20 2015 Miro Hrončok <mhroncok@redhat.com> - 14.12.1-3
|
||||
- Handle files from the command line (#1213220)
|
||||
|
||||
* Mon Mar 30 2015 Miro Hrončok <mhroncok@redhat.com> - 14.12.1-2
|
||||
- Update the no firmware patch according to communication with Cura upstream
|
||||
|
||||
* Mon Dec 29 2014 Miro Hrončok <mhroncok@redhat.com> - 14.12.1-1
|
||||
- Updated to 14.12.1
|
||||
- No longer depend on firmware
|
||||
|
||||
* Sat Oct 25 2014 Miro Hrončok <mhroncok@redhat.com> - 14.09-1
|
||||
- New version 14.09
|
||||
|
||||
* Tue Jun 24 2014 Miro Hrončok <mhroncok@redhat.com> - 14.06-2
|
||||
- Require at least the firmware version originally bundled in git
|
||||
|
||||
* Mon Jun 23 2014 Miro Hrončok <mhroncok@redhat.com> - 14.06-1
|
||||
- New version 14.06
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 13.11.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Sat Dec 14 2013 Miro Hrončok <mhroncok@redhat.com> - 13.11.2-1
|
||||
- New version 13.11.2
|
||||
|
||||
* Wed Oct 16 2013 Miro Hrončok <mhroncok@redhat.com> - 13.10-1
|
||||
- New upstream release with CuraEngine
|
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 13.04-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Tue May 07 2013 Miro Hrončok <mhroncok@redhat.com> - 13.04-2
|
||||
- Remove resources directory before trying to create a symlink there
|
||||
|
||||
* Sat May 04 2013 Miro Hrončok <mhroncok@redhat.com> - 13.04-1
|
||||
- New upstream release
|
||||
- Fixed missing slice module
|
||||
|
||||
* Sat Apr 20 2013 Miro Hrončok <mhroncok@redhat.com> - 13.03-1
|
||||
- New upstream release
|
||||
|
||||
* Tue Feb 19 2013 Miro Hrončok <mhroncok@redhat.com> - 12.12-3
|
||||
- chmod 755 cura-stripper.sh
|
||||
- Use firmware from ultimaker-marlin-firmware package
|
||||
- removed bundling note
|
||||
|
||||
* Sun Jan 20 2013 Miro Hrončok <mhroncok@redhat.com> - 12.12-2
|
||||
- Launcher is in Python now
|
||||
|
||||
* Sun Jan 13 2013 Miro Hrončok <mhroncok@redhat.com> - 12.12-1
|
||||
- First version
|
||||
33
com.ultimaker.cura.appdata.xml
Normal file
33
com.ultimaker.cura.appdata.xml
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2016 Richard Hughes <richard@hughsie.com> -->
|
||||
<component type="desktop">
|
||||
<id>com.ultimaker.cura.desktop</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>LGPL-3.0 and CC-BY-SA-4.0</project_license>
|
||||
<name>Cura</name>
|
||||
<summary>The world's most advanced 3d printer software</summary>
|
||||
<description>
|
||||
<p>
|
||||
Cura creates a seamless integration between hardware, software and
|
||||
materials for the best 3D printing experience around.
|
||||
Cura supports the 3MF, OBJ and STL file formats and is available on
|
||||
Windows, Mac and Linux.
|
||||
</p>
|
||||
<ul>
|
||||
<li>Novices can start printing right away</li>
|
||||
<li>Experts are able to customize 300 settings to achieve the best results</li>
|
||||
<li>Optimized profiles for Ultimaker materials</li>
|
||||
<li>Supported by a global network of Ultimaker certified service partners</li>
|
||||
<li>Print multiple objects at once with different settings for each object</li>
|
||||
<li>Cura supports STL, 3MF and OBJ file formats</li>
|
||||
<li>Open source and completely free</li>
|
||||
</ul>
|
||||
</description>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://raw.githubusercontent.com/Ultimaker/Cura/master/screenshot.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<url type="homepage">https://ultimaker.com/software/ultimaker-cura?utm_source=cura&utm_medium=software&utm_campaign=cura-update-linux</url>
|
||||
<translation type="gettext">Cura</translation>
|
||||
</component>
|
||||
19
com.ultimaker.cura.desktop.in
Normal file
19
com.ultimaker.cura.desktop.in
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
[Desktop Entry]
|
||||
Name=Ultimaker Cura
|
||||
Name[de]=Ultimaker Cura
|
||||
Name[nl]=Ultimaker Cura
|
||||
GenericName=3D Printing Software
|
||||
GenericName[de]=3D-Druck-Software
|
||||
GenericName[nl]=3D-printsoftware
|
||||
Comment=Cura converts 3D models into paths for a 3D printer. It prepares your print for maximum accuracy, minimum printing time and good reliability with many extra features that make your print come out great.
|
||||
Comment[de]=Cura wandelt 3D-Modelle in Pfade für einen 3D-Drucker um. Es bereitet Ihren Druck für maximale Genauigkeit, minimale Druckzeit und guter Zuverlässigkeit mit vielen zusätzlichen Funktionen vor, damit Ihr Druck großartig wird.
|
||||
Comment[nl]=Cura converteert 3D-modellen naar paden voor een 3D printer. Het bereidt je print voor om zeer precies, snel en betrouwbaar te kunnen printen, met veel extra functionaliteit om je print er goed uit te laten komen.
|
||||
Exec=@CMAKE_INSTALL_FULL_BINDIR@/cura %F
|
||||
TryExec=@CMAKE_INSTALL_FULL_BINDIR@/cura
|
||||
Icon=cura-icon
|
||||
Terminal=false
|
||||
Type=Application
|
||||
MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png;text/x-gcode;application/x-amf;application/x-ply;application/x-ctm;model/vnd.collada+xml;model/gltf-binary;model/gltf+json;model/vnd.collada+xml+zip;
|
||||
Categories=Graphics;
|
||||
Keywords=3D;Printing;Slicer;
|
||||
StartupWMClass=cura.real
|
||||
263
cura.spec
263
cura.spec
|
|
@ -1,39 +1,74 @@
|
|||
%global major_minor_version 5.4
|
||||
%global patch_version 0
|
||||
|
||||
Name: cura
|
||||
Epoch: 1
|
||||
Version: 3.2.1
|
||||
Release: 2%{?dist}
|
||||
Summary: 3D printer control software
|
||||
Version: %{major_minor_version}.%{patch_version}
|
||||
Release: %autorelease
|
||||
Summary: 3D printer / slicing GUI
|
||||
|
||||
# https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/thread/MOUNX6I3POCDMYWBNJ7JPLLIKVYWVRBJ/
|
||||
License: LGPLv3+
|
||||
License: LGPL-3.0-or-later
|
||||
|
||||
URL: https://ultimaker.com/en/products/cura-software
|
||||
Source0: https://github.com/Ultimaker/Cura/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||
|
||||
# Cmake bits taken from 4.13.1, before upstream went nuts with conan
|
||||
Source2: mod_bundled_packages_json.py
|
||||
Source3: CuraPluginInstall.cmake
|
||||
Source4: CuraTests.cmake
|
||||
Source5: com.ultimaker.cura.desktop.in
|
||||
Source6: CMakeLists.txt
|
||||
Source7: CuraVersion.py.in
|
||||
Source8: com.ultimaker.cura.appdata.xml
|
||||
|
||||
# Skip forced loading SentryLogger to avoid an error on startup
|
||||
Patch: 028e7f7.patch
|
||||
|
||||
# Fix asserts for called once in Python 3.12
|
||||
Patch: https://github.com/Ultimaker/Cura/pull/16103.patch
|
||||
|
||||
# Avoid "KeyError: material_name" crash
|
||||
Patch: https://github.com/Ultimaker/Cura/pull/17642.patch
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
# There are Python plugins in /usr/lib/cura
|
||||
# We need to byte-compile it with Python 3
|
||||
%global __python %{__python3}
|
||||
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
|
||||
ExcludeArch: %{ix86}
|
||||
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: dos2unix
|
||||
BuildRequires: gettext
|
||||
BuildRequires: git
|
||||
BuildRequires: git-core
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-pip
|
||||
BuildRequires: python3-pytest
|
||||
BuildRequires: python3-uranium == %{version}
|
||||
BuildRequires: python3-keyring
|
||||
BuildRequires: python3-pyserial
|
||||
BuildRequires: python3-pynest2d
|
||||
BuildRequires: python3-requests
|
||||
BuildRequires: python3-savitar >= 5.3.0
|
||||
BuildRequires: python3-uranium >= 5.4.0
|
||||
BuildRequires: python3-zeroconf
|
||||
|
||||
Requires: open-sans-fonts
|
||||
Requires: python3-certifi
|
||||
Requires: python3-keyring
|
||||
Requires: python3-numpy-stl
|
||||
Requires: python3-pyserial
|
||||
Requires: python3-savitar == %{version}
|
||||
Requires: python3-uranium == %{version}
|
||||
Requires: python3-pynest2d
|
||||
Requires: python3-requests
|
||||
Requires: python3-savitar >= 5.3.0
|
||||
Requires: python3-trimesh
|
||||
Requires: python3-uranium >= 5.4.0
|
||||
Requires: python3-zeroconf
|
||||
Requires: qt5-qtquickcontrols
|
||||
Requires: qt5-qtquickcontrols2
|
||||
# Requires: qt5-qtquickcontrols
|
||||
# Requires: qt5-qtquickcontrols2
|
||||
Requires: CuraEngine == %{epoch}:%{version}
|
||||
Requires: cura-fdm-materials == %{version}
|
||||
Requires: cura-fdm-materials >= %{major_minor_version}
|
||||
|
||||
# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1494278
|
||||
Requires: libglvnd-devel
|
||||
|
|
@ -41,6 +76,10 @@ Requires: libglvnd-devel
|
|||
# So that it just works
|
||||
Requires: 3dprinter-udev-rules
|
||||
|
||||
# For various plugins
|
||||
Recommends: python3-trimesh
|
||||
Recommends: python3-certifi
|
||||
|
||||
%description
|
||||
Cura is a project which aims to be an single software solution for 3D printing.
|
||||
While it is developed to be used with the Ultimaker 3D printer, it can be used
|
||||
|
|
@ -50,22 +89,37 @@ Cura prepares your model for 3D printing. For novices, it makes it easy to get
|
|||
great results. For experts, there are over 200 settings to adjust to your
|
||||
needs. As it's open source, our community helps enrich it even more.
|
||||
|
||||
# see: https://github.com/Ultimaker/Cura/issues/5142
|
||||
%define cura_cloud_api_root https://api.ultimaker.com
|
||||
%define cura_cloud_api_version 1
|
||||
%define cura_cloud_account_api_root https://account.ultimaker.com
|
||||
|
||||
%define reverse_dns_name com.ultimaker.%{name}
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -S git -n Cura-%{version}
|
||||
|
||||
# The setup.py is only useful for py2exe, remove it, so noone is tempted to use it
|
||||
rm setup.py
|
||||
mkdir cmake
|
||||
cp -a %{SOURCE2} %{SOURCE3} %{SOURCE4} cmake
|
||||
rm -rf CMakeLists.txt
|
||||
cp -a %{SOURCE5} %{SOURCE6} %{SOURCE8} .
|
||||
cp -a %{SOURCE7} cura
|
||||
|
||||
# Wrong end of line encoding
|
||||
dos2unix docs/How_to_use_the_flame_graph_profiler.md
|
||||
|
||||
# Wrong shebang
|
||||
sed -i '1s=^#!/usr/bin/\(python\|env python\)3*=#!%{__python3}=' cura_app.py
|
||||
|
||||
sed -i '1s=^#!/usr/bin/\(python\|env python\)3*=#!%{python3}=' cura_app.py
|
||||
|
||||
%build
|
||||
%{cmake} -DCURA_VERSION:STRING=%{version} -DLIB_SUFFIX:STR= .
|
||||
make %{?_smp_mflags}
|
||||
%cmake \
|
||||
-DCURA_VERSION:STRING=%{version} \
|
||||
-DCURA_BUILDTYPE="RPM %{version}"\
|
||||
-DCURA_CLOUD_API_ROOT:STRING=%{cura_cloud_api_root} \
|
||||
-DCURA_CLOUD_API_VERSION:STRING=%{cura_cloud_api_version} \
|
||||
-DCURA_CLOUD_ACCOUNT_API_ROOT:STRING=%{cura_cloud_account_api_root} \
|
||||
-DLIB_SUFFIX:STR=
|
||||
%cmake_build
|
||||
|
||||
# rebuild locales
|
||||
cd resources/i18n
|
||||
|
|
@ -81,7 +135,11 @@ cd -
|
|||
|
||||
|
||||
%install
|
||||
make install DESTDIR=%{buildroot}
|
||||
%cmake_install
|
||||
|
||||
mkdir -p %{buildroot}%{_datadir}/%{name}/resources/images/whats_new
|
||||
mkdir -p %{buildroot}%{_datadir}/%{name}/resources/texts/whats_new
|
||||
mkdir -p %{buildroot}%{_datadir}/%{name}/resources/scripts
|
||||
|
||||
# Sanitize the location of locale files
|
||||
pushd %{buildroot}%{_datadir}
|
||||
|
|
@ -94,16 +152,25 @@ popd
|
|||
rm -rf %{buildroot}%{_datadir}/%{name}/resources/themes/cura-light/fonts/
|
||||
ln -s %{_datadir}/fonts/open-sans/ %{buildroot}%{_datadir}/%{name}/resources/themes/cura-light/fonts
|
||||
|
||||
# Remove failing plugins
|
||||
rm -r %{buildroot}%{_prefix}/lib/cura/plugins/{SentryLogger,UFPReader,UFPWriter}
|
||||
|
||||
# Bytecompile the plugins
|
||||
%py_byte_compile %{python3} %{buildroot}%{_prefix}/lib/cura
|
||||
|
||||
# Use the default flags in the shebang
|
||||
%py3_shebang_fix %{buildroot}%{_bindir}/*
|
||||
|
||||
%find_lang cura
|
||||
%find_lang fdmextruder.def.json
|
||||
%find_lang fdmprinter.def.json
|
||||
|
||||
|
||||
%check
|
||||
%{__python3} -m pip freeze
|
||||
%{__python3} -m pytest -v -k "not test_getPropertyFallThrough"
|
||||
%{python3} -m pip freeze
|
||||
%{python3} -m pytest -v
|
||||
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
|
||||
desktop-file-validate %{buildroot}%{_datadir}/applications/%{reverse_dns_name}.desktop
|
||||
|
||||
|
||||
%files -f cura.lang -f fdmextruder.def.json.lang -f fdmprinter.def.json.lang
|
||||
|
|
@ -113,154 +180,12 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
|
|||
# things in docs are developer oriented
|
||||
%{python3_sitelib}/%{name}
|
||||
%{_datadir}/%{name}
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/metainfo/%{name}.appdata.xml
|
||||
%{_datadir}/applications/%{reverse_dns_name}.desktop
|
||||
%{_datadir}/metainfo/%{reverse_dns_name}.appdata.xml
|
||||
%{_datadir}/icons/hicolor/128x128/apps/%{name}-icon.png
|
||||
%{_datadir}/mime/packages/%{name}.xml
|
||||
%{_bindir}/%{name}
|
||||
%{_prefix}/lib/%{name}
|
||||
|
||||
%changelog
|
||||
* Wed Mar 21 2018 Miro Hrončok <mhroncok@redhat.com> - 1:3.2.1-2
|
||||
- Require qt5-qtquickcontrols2 in addition to qt5-qtquickcontrols
|
||||
|
||||
* Tue Mar 20 2018 Miro Hrončok <mhroncok@redhat.com> - 1:3.2.1-1
|
||||
- Update to 3.2.1
|
||||
- Force install to /usr/lib and keep this noarch
|
||||
- Change the set of skipped tests
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.1.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Sun Dec 10 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.1.0-1
|
||||
- Update to 3.1.0
|
||||
- Disable most of the tests
|
||||
- No longer needs to sed out dist-packages
|
||||
- Move appdata to metainfo
|
||||
|
||||
* Mon Dec 04 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.0.3-5
|
||||
- Mark the package with correct license
|
||||
|
||||
* Sun Dec 03 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.0.3-4
|
||||
- Also apply the nvidia driver workaround on Fedora (#1520138)
|
||||
|
||||
* Tue Nov 21 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.0.3-3
|
||||
- Require libglvnd-devel as a workaround for #1494278
|
||||
|
||||
* Fri Oct 27 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.0.3-2
|
||||
- Add upstream commit to fix tests
|
||||
|
||||
* Mon Oct 23 2017 Miro Hrončok <mhroncok@redhat.com> - 1:3.0.3-1
|
||||
- Update to 3.0.3
|
||||
- Remove locale and desktop file changes (fixed upstream)
|
||||
|
||||
* Wed Aug 30 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.7.0-2
|
||||
- Relocate Japanese locale to ja
|
||||
|
||||
* Wed Aug 30 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.7.0-1
|
||||
- Update to 2.7.0
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.6.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Thu Jul 20 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.6.1-2
|
||||
- Require cura-fdm-materials
|
||||
|
||||
* Wed Jun 28 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.6.1-1
|
||||
- Updated to 2.6.1
|
||||
|
||||
* Wed May 10 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.5.0-2
|
||||
- Require qt5-qtquickcontrols
|
||||
|
||||
* Wed May 03 2017 Miro Hrončok <mhroncok@redhat.com> - 1:2.5.0-1
|
||||
- Update to modern Cura 2.x (introduce Epoch) (#1393176)
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 15.04.4-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Thu Nov 03 2016 Miro Hrončok <mhroncok@redhat.com> - 15.04.4-5
|
||||
- Explicitly run cura on X11 GDK backend (#1388953)
|
||||
|
||||
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.04.4-4
|
||||
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
||||
|
||||
* Fri Mar 25 2016 Miro Hrončok <mhroncok@redhat.com> - 15.04.4-3
|
||||
- Require 3dprinter-udev-rules
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 15.04.4-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Sat Jan 30 2016 Miro Hrončok <mhroncok@redhat.com> - 15.04.4-1
|
||||
- New version
|
||||
|
||||
* Wed Jul 08 2015 Miro Hrončok <mhroncok@redhat.com> - 15.02.1-4
|
||||
- No longer depend on pypy
|
||||
- Simplify the launcher
|
||||
|
||||
* Mon Jul 06 2015 Miro Hrončok <mhroncok@redhat.com> - 15.02.1-3
|
||||
- Patch for #1230281
|
||||
|
||||
* Mon Jul 06 2015 Miro Hrončok <mhroncok@redhat.com> - 15.02.1-2
|
||||
- Require latest CuraEngine
|
||||
|
||||
* Mon Jul 06 2015 Miro Hrončok <mhroncok@redhat.com> - 15.02.1-1
|
||||
- Update to 15.02.1
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14.12.1-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Fri May 29 2015 Miro Hrončok <mhroncok@redhat.com> - 14.12.1-4
|
||||
- Patch: Open directories with xdg-open (#1217961)
|
||||
|
||||
* Mon Apr 20 2015 Miro Hrončok <mhroncok@redhat.com> - 14.12.1-3
|
||||
- Handle files from the command line (#1213220)
|
||||
|
||||
* Mon Mar 30 2015 Miro Hrončok <mhroncok@redhat.com> - 14.12.1-2
|
||||
- Update the no firmware patch according to communication with Cura upstream
|
||||
|
||||
* Mon Dec 29 2014 Miro Hrončok <mhroncok@redhat.com> - 14.12.1-1
|
||||
- Updated to 14.12.1
|
||||
- No longer depend on firmware
|
||||
|
||||
* Sat Oct 25 2014 Miro Hrončok <mhroncok@redhat.com> - 14.09-1
|
||||
- New version 14.09
|
||||
|
||||
* Tue Jun 24 2014 Miro Hrončok <mhroncok@redhat.com> - 14.06-2
|
||||
- Require at least the firmware version originally bundled in git
|
||||
|
||||
* Mon Jun 23 2014 Miro Hrončok <mhroncok@redhat.com> - 14.06-1
|
||||
- New version 14.06
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 13.11.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Sat Dec 14 2013 Miro Hrončok <mhroncok@redhat.com> - 13.11.2-1
|
||||
- New version 13.11.2
|
||||
|
||||
* Wed Oct 16 2013 Miro Hrončok <mhroncok@redhat.com> - 13.10-1
|
||||
- New upstream release with CuraEngine
|
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 13.04-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Tue May 07 2013 Miro Hrončok <mhroncok@redhat.com> - 13.04-2
|
||||
- Remove resources directory before trying to create a symlink there
|
||||
|
||||
* Sat May 04 2013 Miro Hrončok <mhroncok@redhat.com> - 13.04-1
|
||||
- New upstream release
|
||||
- Fixed missing slice module
|
||||
|
||||
* Sat Apr 20 2013 Miro Hrončok <mhroncok@redhat.com> - 13.03-1
|
||||
- New upstream release
|
||||
|
||||
* Tue Feb 19 2013 Miro Hrončok <mhroncok@redhat.com> - 12.12-3
|
||||
- chmod 755 cura-stripper.sh
|
||||
- Use firmware from ultimaker-marlin-firmware package
|
||||
- removed bundling note
|
||||
|
||||
* Sun Jan 20 2013 Miro Hrončok <mhroncok@redhat.com> - 12.12-2
|
||||
- Launcher is in Python now
|
||||
|
||||
* Sun Jan 13 2013 Miro Hrončok <mhroncok@redhat.com> - 12.12-1
|
||||
- First version
|
||||
|
||||
%autochangelog
|
||||
|
|
|
|||
73
mod_bundled_packages_json.py
Executable file
73
mod_bundled_packages_json.py
Executable file
|
|
@ -0,0 +1,73 @@
|
|||
#!/usr/bin/env python3
|
||||
#
|
||||
# This script removes the given package entries in the bundled_packages JSON files. This is used by the PluginInstall
|
||||
# CMake module.
|
||||
#
|
||||
|
||||
import argparse
|
||||
import collections
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def find_json_files(work_dir: str) -> list:
|
||||
"""Finds all JSON files in the given directory recursively and returns a list of those files in absolute paths.
|
||||
|
||||
:param work_dir: The directory to look for JSON files recursively.
|
||||
:return: A list of JSON files in absolute paths that are found in the given directory.
|
||||
"""
|
||||
|
||||
json_file_list = []
|
||||
for root, dir_names, file_names in os.walk(work_dir):
|
||||
for file_name in file_names:
|
||||
abs_path = os.path.abspath(os.path.join(root, file_name))
|
||||
json_file_list.append(abs_path)
|
||||
return json_file_list
|
||||
|
||||
|
||||
def remove_entries_from_json_file(file_path: str, entries: list) -> None:
|
||||
"""Removes the given entries from the given JSON file. The file will modified in-place.
|
||||
|
||||
:param file_path: The JSON file to modify.
|
||||
:param entries: A list of strings as entries to remove.
|
||||
:return: None
|
||||
"""
|
||||
|
||||
try:
|
||||
with open(file_path, "r", encoding = "utf-8") as f:
|
||||
package_dict = json.load(f, object_hook = collections.OrderedDict)
|
||||
except Exception as e:
|
||||
msg = "Failed to load '{file_path}' as a JSON file. This file will be ignored Exception: {e}"\
|
||||
.format(file_path = file_path, e = e)
|
||||
sys.stderr.write(msg + os.linesep)
|
||||
return
|
||||
|
||||
for entry in entries:
|
||||
if entry in package_dict:
|
||||
del package_dict[entry]
|
||||
print("[INFO] Remove entry [{entry}] from [{file_path}]".format(file_path = file_path, entry = entry))
|
||||
|
||||
try:
|
||||
with open(file_path, "w", encoding = "utf-8", newline = "\n") as f:
|
||||
json.dump(package_dict, f, indent = 4)
|
||||
except Exception as e:
|
||||
msg = "Failed to write '{file_path}' as a JSON file. Exception: {e}".format(file_path = file_path, e = e)
|
||||
raise IOError(msg)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser("mod_bundled_packages_json")
|
||||
parser.add_argument("-d", "--dir", dest = "work_dir",
|
||||
help = "The directory to look for bundled packages JSON files, recursively.")
|
||||
parser.add_argument("entries", metavar = "ENTRIES", type = str, nargs = "+")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
json_file_list = find_json_files(args.work_dir)
|
||||
for json_file_path in json_file_list:
|
||||
remove_entries_from_json_file(json_file_path, args.entries)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (cura-3.2.1.tar.gz) = 4f11aa7ebd890476ab764aec2fcdbbbe4ed873400c9fcc11ad389cd00d7c0f5f5fb160065ccfc33311a3bf05d8c4fa55ae2c8067b78eb3d308c026191e59dbbe
|
||||
SHA512 (cura-5.4.0.tar.gz) = 8b4ff703a0a8ab400b7d76d38c4422f77453082e093398bedc6ccf2fa7ab2ac0539f3f35a46c667bed5603c81dfb55679c29d01384a40bfdad8969913e3af8c2
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue