freecad: 0.21.2 → 1.0rc2 (#343592)
This commit is contained in:
commit
5140208775
@ -1,44 +1,43 @@
|
|||||||
From c4f452ef6ae083ed21095313582f6d1bd775cbf3 Mon Sep 17 00:00:00 2001
|
commit c534a831c2f7186ebabe4e17f1e1df6d11ebff89
|
||||||
From: Andreas Rammhold <andreas@rammhold.de>
|
Author: Samuel Rounce <me@samuelrounce.co.uk>
|
||||||
Date: Thu, 2 Nov 2023 17:32:07 +0100
|
Date: Thu Sep 5 22:17:21 2024 +0100
|
||||||
Subject: [PATCH] NIXOS: don't ignore PYTHONPATH
|
|
||||||
|
|
||||||
On NixOS or rather within nixpkgs we provide the runtime Python
|
[PATCH] NIXOS: don't ignore PYTHONPATH
|
||||||
packages via the PYTHONPATH environment variable. FreeCAD tries its
|
|
||||||
best to ignore Python environment variables that are being inherited
|
|
||||||
from the environment. For Python versions >=3.11 it also tries to
|
|
||||||
initialize the interpreter config without any environmental data. We
|
|
||||||
have to initialize the configuration *with* the information from the
|
|
||||||
environment for our packaging to work.
|
|
||||||
|
|
||||||
Upstream has purposely isolated the environments AFAIK and thus
|
On NixOS or rather within nixpkgs we provide the runtime Python
|
||||||
shouldn't accept this patch (as is). What they might accept (once
|
packages via the PYTHONPATH environment variable. FreeCAD tries its
|
||||||
support for older Python versions has been dropped) is removing the
|
best to ignore Python environment variables that are being inherited
|
||||||
PYTHONPATH specific putenv calls.
|
from the environment. For Python versions >=3.11 it also tries to
|
||||||
|
initialize the interpreter config without any environmental data. We
|
||||||
|
have to initialize the configuration *with* the information from the
|
||||||
|
environment for our packaging to work.
|
||||||
|
|
||||||
|
Upstream has purposely isolated the environments AFAIK and thus
|
||||||
|
shouldn't accept this patch (as is). What they might accept (once
|
||||||
|
support for older Python versions has been dropped) is removing the
|
||||||
|
PYTHONPATH specific putenv calls.
|
||||||
---
|
---
|
||||||
src/Base/Interpreter.cpp | 2 +-
|
src/Base/Interpreter.cpp | 1 +
|
||||||
src/Main/MainGui.cpp | 3 ---
|
src/Main/MainGui.cpp | 3 ---
|
||||||
2 files changed, 1 insertion(+), 4 deletions(-)
|
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/Base/Interpreter.cpp b/src/Base/Interpreter.cpp
|
diff --git a/src/Base/Interpreter.cpp b/src/Base/Interpreter.cpp
|
||||||
index 52c47168af..9966bd0013 100644
|
index 2bdc54ccff..ee4f7fc070 100644
|
||||||
--- a/src/Base/Interpreter.cpp
|
--- a/src/Base/Interpreter.cpp
|
||||||
+++ b/src/Base/Interpreter.cpp
|
+++ b/src/Base/Interpreter.cpp
|
||||||
@@ -554,7 +554,9 @@ void initInterpreter(int argc,char *argv[])
|
@@ -593,6 +593,7 @@ void initInterpreter(int argc, char* argv[])
|
||||||
{
|
|
||||||
PyStatus status;
|
|
||||||
PyConfig config;
|
PyConfig config;
|
||||||
PyConfig_InitIsolatedConfig(&config);
|
PyConfig_InitIsolatedConfig(&config);
|
||||||
+ config.isolated = 0;
|
config.isolated = 0;
|
||||||
+ config.use_environment = 1;
|
+ config.use_environment = 1;
|
||||||
|
config.user_site_directory = 1;
|
||||||
|
|
||||||
status = PyConfig_SetBytesArgv(&config, argc, argv);
|
status = PyConfig_SetBytesArgv(&config, argc, argv);
|
||||||
if (PyStatus_Exception(status)) {
|
|
||||||
diff --git a/src/Main/MainGui.cpp b/src/Main/MainGui.cpp
|
diff --git a/src/Main/MainGui.cpp b/src/Main/MainGui.cpp
|
||||||
index 48ae847ef4..28813df383 100644
|
index 36087cffd6..89d49d2cc6 100644
|
||||||
--- a/src/Main/MainGui.cpp
|
--- a/src/Main/MainGui.cpp
|
||||||
+++ b/src/Main/MainGui.cpp
|
+++ b/src/Main/MainGui.cpp
|
||||||
@@ -112,17 +112,14 @@ int main( int argc, char ** argv )
|
@@ -114,10 +114,8 @@ int main(int argc, char** argv)
|
||||||
// See https://forum.freecad.org/viewtopic.php?f=18&t=20600
|
// See https://forum.freecad.org/viewtopic.php?f=18&t=20600
|
||||||
// See Gui::Application::runApplication()
|
// See Gui::Application::runApplication()
|
||||||
putenv("LC_NUMERIC=C");
|
putenv("LC_NUMERIC=C");
|
||||||
@ -49,13 +48,11 @@ index 48ae847ef4..28813df383 100644
|
|||||||
#elif defined(__MINGW32__)
|
#elif defined(__MINGW32__)
|
||||||
const char* mingw_prefix = getenv("MINGW_PREFIX");
|
const char* mingw_prefix = getenv("MINGW_PREFIX");
|
||||||
const char* py_home = getenv("PYTHONHOME");
|
const char* py_home = getenv("PYTHONHOME");
|
||||||
if (!py_home && mingw_prefix)
|
@@ -125,7 +123,6 @@ int main(int argc, char** argv)
|
||||||
_putenv_s("PYTHONHOME", mingw_prefix);
|
_putenv_s("PYTHONHOME", mingw_prefix);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
- _putenv("PYTHONPATH=");
|
- _putenv("PYTHONPATH=");
|
||||||
// https://forum.freecad.org/viewtopic.php?f=4&t=18288
|
// https://forum.freecad.org/viewtopic.php?f=4&t=18288
|
||||||
// https://forum.freecad.org/viewtopic.php?f=3&t=20515
|
// https://forum.freecad.org/viewtopic.php?f=3&t=20515
|
||||||
const char* fc_py_home = getenv("FC_PYTHONHOME");
|
const char* fc_py_home = getenv("FC_PYTHONHOME");
|
||||||
--
|
|
||||||
2.42.0
|
|
||||||
|
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
--- a/src/3rdParty/OndselSolver/OndselSolver.pc.in
|
||||||
|
+++ b/src/3rdParty/OndselSolver/OndselSolver.pc.in
|
||||||
|
@@ -3,2 +3,2 @@
|
||||||
|
-libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
|
||||||
|
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
|
||||||
|
+libdir=@CMAKE_INSTALL_LIBDIR@
|
||||||
|
+includedir=@CMAKE_INSTALL_INCLUDEDIR@
|
@ -9,12 +9,12 @@
|
|||||||
, gfortran
|
, gfortran
|
||||||
, gts
|
, gts
|
||||||
, hdf5
|
, hdf5
|
||||||
, libGLU
|
|
||||||
, libXmu
|
|
||||||
, libf2c
|
, libf2c
|
||||||
|
, libGLU
|
||||||
, libredwg
|
, libredwg
|
||||||
, libsForQt5
|
, libsForQt5
|
||||||
, libspnav
|
, libspnav
|
||||||
|
, libXmu
|
||||||
, medfile
|
, medfile
|
||||||
, mpi
|
, mpi
|
||||||
, ninja
|
, ninja
|
||||||
@ -29,6 +29,7 @@
|
|||||||
, vtk
|
, vtk
|
||||||
, wrapGAppsHook3
|
, wrapGAppsHook3
|
||||||
, xercesc
|
, xercesc
|
||||||
|
, yaml-cpp
|
||||||
, zlib
|
, zlib
|
||||||
, withWayland ? false
|
, withWayland ? false
|
||||||
}:
|
}:
|
||||||
@ -50,6 +51,7 @@ let
|
|||||||
matplotlib
|
matplotlib
|
||||||
pivy
|
pivy
|
||||||
ply
|
ply
|
||||||
|
pybind11
|
||||||
pycollada
|
pycollada
|
||||||
pyside2
|
pyside2
|
||||||
pyside2-tools
|
pyside2-tools
|
||||||
@ -61,13 +63,14 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "freecad";
|
pname = "freecad";
|
||||||
version = "0.21.2";
|
version = "1.0rc2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "FreeCAD";
|
owner = "FreeCAD";
|
||||||
repo = "FreeCAD";
|
repo = "FreeCAD";
|
||||||
rev = finalAttrs.version;
|
rev = finalAttrs.version;
|
||||||
hash = "sha256-OX4s9rbGsAhH7tLJkUJYyq2A2vCdkq/73iqYo9adogs=";
|
hash = "sha256-kPmfx/C1fCYwBqh6ZOKZAVNVR9m3VryPmBKu3ksDD5E=";
|
||||||
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
@ -100,6 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
opencascade-occt
|
opencascade-occt
|
||||||
pivy
|
pivy
|
||||||
ply # for openSCAD file support
|
ply # for openSCAD file support
|
||||||
|
pybind11
|
||||||
pycollada
|
pycollada
|
||||||
pyside2
|
pyside2
|
||||||
pyside2-tools
|
pyside2-tools
|
||||||
@ -116,6 +120,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
swig
|
swig
|
||||||
vtk
|
vtk
|
||||||
xercesc
|
xercesc
|
||||||
|
yaml-cpp
|
||||||
zlib
|
zlib
|
||||||
]
|
]
|
||||||
++ lib.optionals spaceNavSupport [
|
++ lib.optionals spaceNavSupport [
|
||||||
@ -125,12 +130,17 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./0001-NIXOS-don-t-ignore-PYTHONPATH.patch
|
./0001-NIXOS-don-t-ignore-PYTHONPATH.patch
|
||||||
|
./0002-FreeCad-OndselSolver-pkgconfig.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-Wno-dev" # turns off warnings which otherwise makes it hard to see what is going on
|
"-Wno-dev" # turns off warnings which otherwise makes it hard to see what is going on
|
||||||
"-DBUILD_FLAT_MESH:BOOL=ON"
|
"-DBUILD_FLAT_MESH:BOOL=ON"
|
||||||
"-DBUILD_QT5=ON"
|
"-DBUILD_QT5=ON"
|
||||||
|
"-DBUILD_DRAWING=ON"
|
||||||
|
"-DBUILD_FLAT_MESH:BOOL=ON"
|
||||||
|
"-DINSTALL_TO_SITEPACKAGES=OFF"
|
||||||
|
"-DFREECAD_USE_PYBIND11=ON"
|
||||||
"-DSHIBOKEN_INCLUDE_DIR=${shiboken2}/include"
|
"-DSHIBOKEN_INCLUDE_DIR=${shiboken2}/include"
|
||||||
"-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
|
"-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
|
||||||
(
|
(
|
||||||
@ -201,7 +211,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||||||
right at home with FreeCAD.
|
right at home with FreeCAD.
|
||||||
'';
|
'';
|
||||||
license = lib.licenses.lgpl2Plus;
|
license = lib.licenses.lgpl2Plus;
|
||||||
maintainers = with lib.maintainers; [ gebner AndersonTorres ];
|
maintainers = with lib.maintainers; [ gebner AndersonTorres srounce ];
|
||||||
platforms = lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user