diff options
author | Ivan Lloro <ivan.lloro.boada@gmail.com> | 2024-10-24 12:06:29 +0200 |
---|---|---|
committer | Ivan Lloro <ivan.lloro.boada@gmail.com> | 2024-10-24 12:32:30 +0200 |
commit | 25e33f6ba23471c83d447387bceb8c360a1cec17 (patch) | |
tree | 0aa8e7a4b1058458c40e93a3a66db96730e4b002 /sci-physics | |
parent | media-gfx/mayo: Qt6-enabled compilation (diff) | |
download | guru-25e33f6ba23471c83d447387bceb8c360a1cec17.tar.gz guru-25e33f6ba23471c83d447387bceb8c360a1cec17.tar.bz2 guru-25e33f6ba23471c83d447387bceb8c360a1cec17.zip |
sci-physics/openmodelica: add 1.24.0
Signed-off-by: Ivan Lloro <ivan.lloro.boada@gmail.com>
Diffstat (limited to 'sci-physics')
-rw-r--r-- | sci-physics/openmodelica/Manifest | 9 | ||||
-rw-r--r-- | sci-physics/openmodelica/files/openmodelica-1.24.0-raw_strings.patch | 29 | ||||
-rw-r--r-- | sci-physics/openmodelica/openmodelica-1.24.0.ebuild | 201 |
3 files changed, 239 insertions, 0 deletions
diff --git a/sci-physics/openmodelica/Manifest b/sci-physics/openmodelica/Manifest index db4b7b377..a77fe741d 100644 --- a/sci-physics/openmodelica/Manifest +++ b/sci-physics/openmodelica/Manifest @@ -1,8 +1,17 @@ DIST OMBootstrapping_openmodelica-1.23.1.tar.gz 3329128 BLAKE2B afdda81842a686e092b46bd50d192f5e35ae6c662e8c5517346d86c7c098f2e23a99df27bc5c045b819472d0539837c845c63123ae4822127a14ac42e4ad2e97 SHA512 2202f02edc33ac4fb7264b0ea82ae4b2c965a85f8b96cb872cc4cc59c5e5b76346a023c416f994a9744021428d598c3dbdf688c0845ba4726849d3c9ee0cd4ba +DIST OMBootstrapping_openmodelica-1.24.0.tar.gz 3329128 BLAKE2B afdda81842a686e092b46bd50d192f5e35ae6c662e8c5517346d86c7c098f2e23a99df27bc5c045b819472d0539837c845c63123ae4822127a14ac42e4ad2e97 SHA512 2202f02edc33ac4fb7264b0ea82ae4b2c965a85f8b96cb872cc4cc59c5e5b76346a023c416f994a9744021428d598c3dbdf688c0845ba4726849d3c9ee0cd4ba DIST OMCompiler-3rdParty_openmodelica-1.23.1.tar.gz 50214731 BLAKE2B 56c8d30cc3c15e2f140b331abb718ecb61f4400bc6758bd34e4aea12d475e182d08fee400d5750103e1b968b85c9ff176d0ad80a8c6eb49b276b28409f16caba SHA512 24e75a49027c5c87ec0527d8d49309e6807c7f7ddfd4bd9b933d2f3abece016bd49791af62f6742ad700b089a995fc71d8f94a78458bbf5e9cd08f0c460b75fb +DIST OMCompiler-3rdParty_openmodelica-1.24.0.tar.gz 50215508 BLAKE2B 9a253052d2b45c8058c2708f1f0b9b5cb5bc37956bffa1ee1c8db3d2a7d47af78b47a00efceeea52012c720665722f846147fd5390a2f82adc8719e12317fefd SHA512 6a77aac7820af83e2168478a592ce771d04a30bc276e98f8a40434515ca43bdb879d0b4087366cf1175b4f40bbfb9fb3f6a3058551a148ea13d1cc7dc5ce99ef +DIST OMOptim_openmodelica-1.24.0.tar.gz 4022842 BLAKE2B 13acd91f4570fde97fa668e826bea5f8c04ce71360ee675ae02f05f6e391b8d62260e74cc420d56f2c1bcbedf037745370ebc1819f347cf32a5ad0a4205670c5 SHA512 901c036312623f6ef5af198e0b2dbdd97cef7f88ac1dfa9682dad920ffc1c49f992eefba2d67d65901f375bc12f7095b2123586c1b37d96586e25e50c49b4168 DIST OMSens_Qt_openmodelica-1.23.1.tar.gz 211293 BLAKE2B 31392d18a7c062829e1d4016c96e09d6a13c695cb9cd7699e7b8ff5de6a4ee8b58d5e28bc8da2e66b2d892ce344382fdfdfa5a1e42ce50d60f510be5bc508480 SHA512 3f313fbcda9069f2fee85fc70f58f6593f37af3eff8f560fdf61def750ec506873ffb77212a0d8a283e2829f3c1efd527047cf7cef660783d1e5e379100f2229 +DIST OMSens_Qt_openmodelica-1.24.0.tar.gz 211297 BLAKE2B 9cf722ed800c41c3fd453df485b0ab45a7ccb63258d9a74ff2df96754e84f10ea4f1ccbb46a90468279f202180dcd5fb8a71c88402a9681b93efa8cb780d7d66 SHA512 2d5df4fc07a1cc4f7c3a04a086bfc2f5eb9f088b133f0242e56491b496e9f302d83f6b246d4c4079849a067162f9dfec67377444ecfa7d3a9263eda9b6d6fad1 DIST OMSens_openmodelica-1.23.1.tar.gz 8870273 BLAKE2B fc60c8d39053022015e7dfc8e32d5e07acabc9dfe08826153e52e6bbd1c57de21cf0e7e3609c804f875d9a19058fe52b2458687fa357d2a83eb53f21f714bee9 SHA512 b93de754aa3f5ff7e5d725d0886aa47368d74d7a0d2ded0f8ed55c4ead97ad268ce201e17b1604f539ea283fdc306ac932d89c93d2a726bff85c78cc210c1a1c +DIST OMSens_openmodelica-1.24.0.tar.gz 8870273 BLAKE2B fc60c8d39053022015e7dfc8e32d5e07acabc9dfe08826153e52e6bbd1c57de21cf0e7e3609c804f875d9a19058fe52b2458687fa357d2a83eb53f21f714bee9 SHA512 b93de754aa3f5ff7e5d725d0886aa47368d74d7a0d2ded0f8ed55c4ead97ad268ce201e17b1604f539ea283fdc306ac932d89c93d2a726bff85c78cc210c1a1c DIST OMSimulator-3rdParty_openmodelica-1.23.1.tar.gz 7638596 BLAKE2B 4162e6845720ac276248daa94b628a83b0aaf96c5c34666f2b36d09cf716a8e18c364e052fae1f23dcf31951cc3f955f09f1e0a997afd7347a29b92dc19cadf9 SHA512 16bd6383249fb1bf4f4edb9c840040d625ca1c48e2524554e06f5b2b6316312be4b674a7a437dcc222b9b73f0847a7169b82b192a0accbb29a1e654fe13ef53b +DIST OMSimulator-3rdParty_openmodelica-1.24.0.tar.gz 7637943 BLAKE2B 0788d9294fc8238fb71e5571163e6f838505fc5a4b8c98f736dba8d5b63b7c4123301e626968bc6a9429fdef89f3348e178286576a84dcbff28a50e83a953fe1 SHA512 f0fabb884738d8e74b05baf81ebb05be4a51458299c7daed61df3100c1347fe324add93c39eb07f6d02832ad027b241f80227c72029a2a701b68c91d9c1fc9c7 DIST OMSimulator_openmodelica-1.23.1.tar.gz 87918683 BLAKE2B b9fd20eb2c8f48b4c93250314b692694ce0225e35dd11fec13236e255913657379c059182392a99a068780531a8376f9de372d0c0b6a39b6886b54f4ec090681 SHA512 c5f3c64c65935d564a490006a2612e1f72dc81bf941fc250d6c4d817cd1e786d8dae40cba8bca3732dd760246f1dcea8c60dfd31332b1fbb7809318ba6cb89f9 +DIST OMSimulator_openmodelica-1.24.0.tar.gz 87921273 BLAKE2B 8f91945fdbdda6bb2ccaef43204f0d46945ba0e18db21e24c9ccf1e16f0f5048e8d4dcc027bc8842f3abf7b424e53cba11cf229fbc22153ba125bf544458c95c SHA512 8478213bb7d040da65810cb87ae5d19bfac1f8369a3e9963c2e3c508ad18c1480eeac25ef0399cde726dc810467c40044129f88ff5c7723b76b70124e1a15ea9 DIST OpenModelica-common_openmodelica-1.23.1.tar.gz 36148 BLAKE2B cbb76666dbe5afa0c2d76f0e6db4d7be1b444bb71f72a5238040dd94d9d46ff3371d596dec3de14805bae5c68ee213221930a4355eeffad97dbefa5eedea9aa7 SHA512 3d877103f54088068bd74eaddecbefbc03d8afca928afdd515e41853846a5933e5d999b4bde3ec99c142be5fd13287d52ea6fb62846479e40d27fe59afbb2c85 +DIST OpenModelica-common_openmodelica-1.24.0.tar.gz 36148 BLAKE2B cbb76666dbe5afa0c2d76f0e6db4d7be1b444bb71f72a5238040dd94d9d46ff3371d596dec3de14805bae5c68ee213221930a4355eeffad97dbefa5eedea9aa7 SHA512 3d877103f54088068bd74eaddecbefbc03d8afca928afdd515e41853846a5933e5d999b4bde3ec99c142be5fd13287d52ea6fb62846479e40d27fe59afbb2c85 DIST openmodelica-1.23.1.tar.gz 146796677 BLAKE2B c342d16efa96690ce890476daf051e0d632f0f01c672b49aea4b4c034ef5c4573119db99ea0b55402a08f2dabbede6a0e3838bdc10f84ffa8a134d0619511539 SHA512 83a273f3c74dd4400853232688d85a7c0c47a4679c09343249b5a7ec4c54561b1e4230a3f17e1b77173922e2124ac6b546c2f36f471de05a8b99ee2375e96a5e +DIST openmodelica-1.24.0.tar.gz 146961441 BLAKE2B adae7bcb1f3c12d0d507d26390c446eb914abba687c457a5f9df61913723e2940a7052bd6b29ef48aba514202e7570d1c45bf7b55747df51b52af10b6389dd04 SHA512 e2e85aa5bf108d3501b34f5644817bc6a68380952b3f2b5983265df03b414a7c808098d95821cf7085a6ee17d5f0920c1ef58d2a46cc18b9997d693a24c9499e diff --git a/sci-physics/openmodelica/files/openmodelica-1.24.0-raw_strings.patch b/sci-physics/openmodelica/files/openmodelica-1.24.0-raw_strings.patch new file mode 100644 index 000000000..d2762d9c7 --- /dev/null +++ b/sci-physics/openmodelica/files/openmodelica-1.24.0-raw_strings.patch @@ -0,0 +1,29 @@ +Regular expression strings are not explicitly defined as raw strings. This +causes modern python versions (tested with 3.12) to trigger warnings/errors. + +See-also: https://github.com/OpenModelica/OpenModelica/issues/12757 +--- a/OMSens/analysis/indiv_sens.py ++++ b/OMSens/analysis/indiv_sens.py +@@ -323,8 +323,8 @@ def slugify(value): + and converts spaces to hyphens. + """ + value = unicodedata.normalize('NFKD', value) +- value = re.sub('[^\w\s-]', '', value).strip().lower() +- value = re.sub('[-\s]+', '-', value) ++ value = re.sub(r'[^\w\s-]', '', value).strip().lower() ++ value = re.sub(r'[-\s]+', '-', value) + return value + + +--- a/OMSens/modelica_interface/run_omc.py ++++ b/OMSens/modelica_interface/run_omc.py +@@ -36,7 +36,8 @@ def writeOMCLog(log_str, output_path): + final_str = intro_str+separator_str+log_str + filesystem.files_aux.writeStrToFile(final_str,output_path) + return 0 ++ + def removeTemporaryFiles(folder_path): +- regex = '.*\.(c|o|h|makefile|log|libs|json)$' ++ regex = r'.*\.(c|o|h|makefile|log|libs|json)$' + filesystem.files_aux.removeFilesWithRegexAndPath(regex,folder_path) + diff --git a/sci-physics/openmodelica/openmodelica-1.24.0.ebuild b/sci-physics/openmodelica/openmodelica-1.24.0.ebuild new file mode 100644 index 000000000..df6bca50a --- /dev/null +++ b/sci-physics/openmodelica/openmodelica-1.24.0.ebuild @@ -0,0 +1,201 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +EAPI=8 + +inherit cmake desktop xdg fortran-2 + +DESCRIPTION="Open-source Modelica-based modeling and simulation environment" +HOMEPAGE="https://openmodelica.org/" +SRC_URI=" + https://github.com/OpenModelica/OpenModelica/archive/904c4c783a5fa6eb9e99e4a98bdb0cca1d619303.tar.gz + -> ${P}.tar.gz + https://github.com/OpenModelica/OMCompiler-3rdParty/archive/82e892ece107787e9ff17780bf5ac8c3f6bc39ba.tar.gz + -> OMCompiler-3rdParty_${P}.tar.gz + https://github.com/OpenModelica/OMBootstrapping/archive/c289e97c41d00939a4a69fe504961b47283a6d8e.tar.gz + -> OMBootstrapping_${P}.tar.gz + https://github.com/OpenModelica/OMSens/archive/0d804d597bc385686856d453cc830fad4923fa3e.tar.gz + -> OMSens_${P}.tar.gz + https://github.com/OpenModelica/OMSens_Qt/archive/92090770426271b4193e78b04f13e6a3abcd6f1a.tar.gz + -> OMSens_Qt_${P}.tar.gz + https://github.com/OpenModelica/OMSimulator/archive/ce342b60b3675185b7daf8197f4b7fd3227f694f.tar.gz + -> OMSimulator_${P}.tar.gz + https://github.com/OpenModelica/OMSimulator-3rdParty/archive/5c10de1648d1134a577d9284b58580a72383d89f.tar.gz + -> OMSimulator-3rdParty_${P}.tar.gz + https://github.com/OpenModelica/OMOptim/archive/f1036f43db18c5015da259771004cfb80e08a110.tar.gz + -> OMOptim_${P}.tar.gz + https://github.com/OpenModelica/OpenModelica-common/archive/08a01802db5ba5edb540383c46718b89ff229ef2.tar.gz + -> OpenModelica-common_${P}.tar.gz + +" + +LICENSE="OSMC-PL GPL-3 AGPL-3 BSD EPL-1.0 public-domain BSD-with-attribution LGPL-2.1+ LGPL-2 Apache-2.0 Boost-1.0 Modelica-1.1 Modelica-2 MIT WTFPL-2" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + >=app-text/asciidoc-10.2.0 + >=app-text/doxygen-1.9.8 + >=dev-libs/boost-1.85.0 + >=dev-games/openscenegraph-3.6.5-r114 + dev-lang/python:3.12 + >=dev-libs/expat-2.5.0 + dev-libs/icu:0/74.1 + >=dev-libs/libxml2-2.12.7 + >=dev-python/kiwisolver-1.3.2 + >=dev-python/matplotlib-3.3 + >=dev-python/numpy-1.26.4 + >=dev-python/pandas-1.1.3 + >=dev-python/pillow-9.0.1 + >=dev-python/pytest-8.2.2 + >=dev-python/six-1.16.0-r1 + >=dev-python/sphinx-7.3.7-r2 + dev-qt/qtconcurrent:5 + dev-qt/qtcore:5 + dev-qt/qtdeclarative:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtopengl:5 + dev-qt/qtpositioning:5[qml] + dev-qt/qtprintsupport:5 + dev-qt/qtquickcontrols:5 + dev-qt/qtquickcontrols2:5 + dev-qt/qtsvg:5 + dev-qt/qtwebengine:5[widgets] + dev-qt/qtwidgets:5 + dev-qt/qtxml:5 + dev-qt/qtxmlpatterns:5 + dev-qt/qtwebchannel:5[qml] + >=net-misc/curl-8.7.1-r4 + >=net-misc/omniORB-4.3.0 + >=sci-libs/hdf5-1.14.3-r1 + >=sys-apps/hwloc-2.9.2 + >=sys-devel/flex-2.6.4-r6 + >=sys-libs/ncurses-6.4_p20240414 + >=sys-libs/readline-8.2_p10 + >=virtual/blas-3.8 + >=virtual/jdk-17 + >=virtual/lapack-3.10 + >=virtual/libiconv-0-r2 + >=virtual/libintl-0-r2 + >=virtual/opencl-3-r3 + >=virtual/opengl-7.0-r2 + >=virtual/pkgconfig-3 +" + +BDEPEND=" + dev-util/ccache + media-gfx/imagemagick[png] +" + +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/"${P}"-raw_strings.patch +) + +src_unpack() { + default + + mv "${WORKDIR}/OpenModelica-904c4c783a5fa6eb9e99e4a98bdb0cca1d619303" "${S}" || die + rmdir "${S}/OMCompiler/3rdParty" || die + mv "${WORKDIR}/OMCompiler-3rdParty-82e892ece107787e9ff17780bf5ac8c3f6bc39ba" "${S}/OMCompiler/3rdParty" || die + rmdir "${S}/OMSens" || die + + # OMOptim depends on a working CORBA interface (which fails to compile) supplied by OmniORB. + # For compilation trials remember setting -DOM_OMC_USE_CORBA=ON. + #rmdir "${S}/OMOptim" || die + #mv "${WORKDIR}/OMOptim-e4fb998f99e3fefc63c661715dbc06cbea1f0134" "${S}/OMOptim" || die + #rmdir "${S}/OMOptim/common" || die + #cp -a "${WORKDIR}/OpenModelica-common-08a01802db5ba5edb540383c46718b89ff229ef2" "${S}/OMOptim/common" || die + + mv "${WORKDIR}/OMSens-0d804d597bc385686856d453cc830fad4923fa3e" "${S}/OMSens" || die + rmdir "${S}/OMSens_Qt" || die + mv "${WORKDIR}/OMSens_Qt-92090770426271b4193e78b04f13e6a3abcd6f1a" "${S}/OMSens_Qt" || die + rmdir "${S}/OMSens_Qt/common" || die + mv "${WORKDIR}/OpenModelica-common-08a01802db5ba5edb540383c46718b89ff229ef2" "${S}/OMSens_Qt/common" || die + rmdir "${S}/OMSimulator" || die + mv "${WORKDIR}/OMSimulator-ce342b60b3675185b7daf8197f4b7fd3227f694f" "${S}/OMSimulator" || die + rmdir "${S}/OMSimulator/3rdParty" || die + mv "${WORKDIR}/OMSimulator-3rdParty-5c10de1648d1134a577d9284b58580a72383d89f" "${S}/OMSimulator/3rdParty" || die + mv "OMBootstrapping-c289e97c41d00939a4a69fe504961b47283a6d8e" "${S}/OMCompiler/Compiler/boot/bomc" || die + touch "${S}/OMCompiler/Compiler/boot/bomc/sources.tar.gz" || die + + # Solve https://bugs.gentoo.org/937038 + rm -fr "${S}/OMCompiler/3rdParty/FMIL/ThirdParty/Minizip/minizip" || die + cp -a "${S}/OMSimulator/3rdParty/fmi4c/3rdparty/minizip" \ + "${S}/OMCompiler/3rdParty/FMIL/ThirdParty/Minizip/minizip" || die +} + +src_configure() { + # [2024-10-24] Only OMEdit adapted to Qt6 (not, for example, optimization plugins) + local mycmakeargs=( + -DOM_OMEDIT_ENABLE_QTWEBENGINE=ON + -DBUILD_SHARED_LIBS=OFF + -DOM_ENABLE_ENCRYPTION=OFF + -DOM_USE_CCACHE=ON + -DOM_ENABLE_GUI_CLIENTS=ON + -DOM_OMC_ENABLE_FORTRAN=ON + -DOM_OMC_ENABLE_IPOPT=ON + -DOM_OMC_ENABLE_CPP_RUNTIME=ON + -DOM_OMC_USE_CORBA=OFF + -DOM_OMC_USE_LAPACK=ON + -DOM_OMEDIT_INSTALL_RUNTIME_DLLS=ON + -DOM_OMEDIT_ENABLE_TESTS=OFF + -DOM_OMEDIT_ENABLE_QTWEBENGINE=ON + -DOM_OMEDIT_ENABLE_LIBXML2=ON + -DOM_QT_MAJOR_VERSION=5 + ) + cmake_src_configure +} + +src_compile() { + # [2024-07-15] + # OMSens is disabled in "${S}/CMakeLists.txt" (## omc_add_subdirectory(OMSens)) due to lack of a + # working "${S}/OMSens/CMakeLists.txt". So, we compile it manually. + pushd OMSens/fortran_interface > /dev/null || die + ${FC} -fPIC -c Rutf.for Rut.for Curvif.for || die + # BUG: Undefined symbol curvif_ in + # ${S}/OMSens/fortran_interface/curvif_simplified.cpython-312-x86_64-linux-gnu.so + # See with nm -D or objdump -tT + # ${S}/OMSens/fortran_interface/curvif_simplified.cpython-312-x86_64-linux-gnu.so + # This bug causes "Vectorial Parameter Based Sensitivity Analysis" in OMSens to fail. + f2py --verbose -c -I. Curvif.o Rutf.o Rut.o -m curvif_simplified curvif_simplified.pyf Curvif_simplified.f90 || die + popd > /dev/null || die + + cmake_src_compile +} + +src_install() { + cmake_src_install + + # [2024-07-15] + # OMSens is disabled in "${S}/CMakeLists.txt" (## omc_add_subdirectory(OMSens)) due to lack of a + # working "${S}/OMSens/CMakeLists.txt". So, we install it manually. + cp -a "${WORKDIR}"/"${P}"/OMSens "${ED}"/usr/share/ || die + rm -fr "${ED}"/usr/share/OMSens/{old,.git,.gitignore,CMakeLists.txt,.jenkins,Jenkinsfile,Makefile.omdev.mingw,Makefile.unix} || die + rm -fr "${ED}"/usr/share/OMSens/{README.md,setup.py,testing} || die + + newicon -s scalable OMShell/OMShell/OMShellGUI/Resources/omshell-large.svg omshell.svg + newicon -s scalable OMNotebook/OMNotebook/OMNotebookGUI/Resources/OMNotebook_icon.svg OMNotebook.svg + convert OMEdit/OMEditLIB/Resources/icons/omedit.ico[0] -thumbnail 256x256 -flatten \ + OMEdit/OMEditLIB/Resources/icons/omedit_icon.png || die + newicon -s 256 OMEdit/OMEditLIB/Resources/icons/omedit_icon.png omedit.png + + make_desktop_entry "OMEdit %F" OMedit omedit "Physics;" "MimeType=text/x-modelica;" + make_desktop_entry OMShell OMShell omshell "Physics;" + make_desktop_entry "OMNotebook %f" OMNotebook OMNotebook "Physics;" + + # Fix libraries + if [[ $(get_libdir) != "lib" ]]; then + mv "${ED}"/usr/lib/omc/* "${ED}"/usr/$(get_libdir)/omc/ || die + rmdir "${ED}"/usr/lib/omc/ || die + dosym -r /usr/$(get_libdir)/omc /usr/lib/omc + fi + dosym -r /usr/include/omc/ParModelica /usr/include/ParModelica + + # Documentation housekeeping & QA + mv "${ED}"/usr/share/doc/omc "${ED}"/usr/share/doc/"${PF}" || die + rm -fr "${ED}"/usr/doc "${ED}"/usr/share/{zmq,cmake} || die + + ewarn "Upstream has deprecated OMTLMSimulator and, therefore, it has not been installed. Use OMSimulator/SSP instead." +} |