diff --git a/kde-apps/step/additional-files/step.rdef.in b/kde-apps/step/additional-files/step.rdef.in new file mode 100644 index 000000000..3d9d45787 --- /dev/null +++ b/kde-apps/step/additional-files/step.rdef.in @@ -0,0 +1,40 @@ + +resource app_flags B_MULTIPLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "Step", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource("QT:QPA_FLAGS") "Q_KILL_ON_EXIT"; + +resource vector_icon { + $"6E6369660802000602403C9E00000000000040166CC40D6344F292947F4C00FF" + $"182400020006023EE1133AF919BA2CBF3E1B2C48A00048CEA48DFFAA00FF633B" + $"02050102001602B97441B80465394724BACE754B02D149E42A003EFFBD020116" + $"023C00000000000000003B400049A00049200000FFFF4D05A0015E3802840401" + $"6D130604BA22444C5D5B515B514F4A30390606AF092240224022C02A224422C0" + $"ED22444C5C5B514C4C570A0422404C575B4C30380405FE014B534B3E4B534BBC" + $"CA5036C4CCBCC25433553755B9FF554B4B080228304B3F0802322B5537020440" + $"30C34530BC3A30304030BC3A30C3454050BC3A50C34550504050C34550BC3A08" + $"022D33313908023637393C08023D3B403F0802463E5140080251404D36080240" + $"3E45330802393B3D3008023238362D08022C4246500802343C504A0A054C5E53" + $"5E605560505C4E0A062244224030385B4C5B524C5D100A070111000A02011210" + $"01178422040A00020001000A010102000A06020F101001178200040A02010312" + $"3FB6DB0000000000003F19F6CA1124C58ED401178420040A030103123FB6DB00" + $"00000000003F19F6CA1124C58ED401178122040A05080A0908070B0C0D0E1001" + $"178100040A020204051001178322040A040106023C00000000000000003C0000" + $"4680004880000A040106023C00000000000000003C000048200048E0000A0401" + $"06023C00000000000000003C00004900004940000A030204051001178122040A" + $"0201031001178420040A0301031001178122040A040106023C00000000000000" + $"003C00004AB000496000" +}; diff --git a/kde-apps/step/patches/step-20.12.2.patchset b/kde-apps/step/patches/step-20.12.2.patchset new file mode 100644 index 000000000..2147472af --- /dev/null +++ b/kde-apps/step/patches/step-20.12.2.patchset @@ -0,0 +1,22 @@ +From 24d22bd4051a3db41dd73aff9131d9251d11ae79 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Thu, 4 Mar 2021 23:27:22 +1000 +Subject: Fix install + + +diff --git a/step/CMakeLists.txt b/step/CMakeLists.txt +index a60df48..971685c 100644 +--- a/step/CMakeLists.txt ++++ b/step/CMakeLists.txt +@@ -84,6 +84,8 @@ target_link_libraries(step + Qt5::Widgets + ${qalculate_LIBS}) + ++set(KDE_INSTALL_KNSRCDIR ${CMAKE_INSTALL_DATADIR}/knsrcfiles) ++ + install(TARGETS step ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) + install(FILES step.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) + install(FILES stepui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/step) +-- +2.30.0 + diff --git a/kde-apps/step/step-20.12.2.recipe b/kde-apps/step/step-20.12.2.recipe new file mode 100644 index 000000000..c7a88f292 --- /dev/null +++ b/kde-apps/step/step-20.12.2.recipe @@ -0,0 +1,179 @@ +SUMMARY="Interactive physics simulator" +DESCRIPTION="Step is an interactive physical simulator. It allows you to explore \ +the physical world through simulations. It works like this: you place some bodies \ +on the scene, add some forces such as gravity or springs, then click Simulate and \ +Step shows you how your scene will evolve according to the laws of physics. You \ +can change every property of the bodies/forces in your experiment (even during \ +simulation) and see how this will change evolution of the experiment. \ +With Step you cannot only learn but feel how physics works! + +Features: +* Classical mechanical simulation in two dimensions +* Particles, springs with damping, gravitational and coulomb forces +* Rigid bodies +* Collision detection (currently only discrete) and handling +* Soft (deformable) bodies simulated as user-editable particles-springs system, sound waves +* Molecular dynamics (currently using Lennard-Jones potential): gas and liquid, \ +condensation and evaporation, calculation of macroscopic quantities and their variances +* Units conversion and expression calculation: you can enter something like \"(2 days + \ +3 hours) * 80 km/h\" and it will be accepted as distance value (requires libqalculate) +* Errors calculation and propagation: you can enter values like \"1.3 ± 0.2\" for any property \ +and errors for all dependent properties will be calculated using statistical formulas +* Solver error estimation: errors introduced by the solver is calculated and added \ +to user-entered errors +* Several different solvers: up to 8th order, explicit and implicit, with or without \ +adaptive timestep (most of the solvers require GSL library) +* Controller tool to easily control properties during simulation (even with \ +custom keyboard shortcuts) +* Tools to visualize results: graph, meter, tracer +* Context information for all objects, integrated wikipedia browser +* Collection of example experiments, more can be downloaded with KNewStuff +* Integrated tutorials." +HOMEPAGE="https://apps.kde.org/ru/step" +COPYRIGHT="2010-2021 KDE Organisation" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="https://download.kde.org/stable/release-service/$portVersion/src/step-$portVersion.tar.xz" +CHECKSUM_SHA256="670a501890baaf650506d88b61a9b08a5539aaa31200c6b27abad5984bda2db7" +SOURCE_DIR="step-$portVersion" +PATCHES="step-$portVersion.patchset" +ADDITIONAL_FILES="step.rdef.in" + +ARCHITECTURES="!x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + step$secondaryArchSuffix = $portVersion + app:Step$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libgsl$secondaryArchSuffix + lib:libKF5Archive$secondaryArchSuffix + lib:libKF5Attica$secondaryArchSuffix + lib:libKF5Auth$secondaryArchSuffix + lib:libKF5Bookmarks$secondaryArchSuffix + lib:libKF5Codecs$secondaryArchSuffix + lib:libKF5Completion$secondaryArchSuffix + lib:libKF5ConfigCore$secondaryArchSuffix + lib:libKF5ConfigGui$secondaryArchSuffix + lib:libKF5ConfigWidgets$secondaryArchSuffix + lib:libKF5CoreAddons$secondaryArchSuffix + lib:libKF5Crash$secondaryArchSuffix + lib:libKF5DBusAddons$secondaryArchSuffix + lib:libKF5GuiAddons$secondaryArchSuffix + lib:libKF5I18n$secondaryArchSuffix + lib:libKF5IconThemes$secondaryArchSuffix + lib:libKF5ItemViews$secondaryArchSuffix + lib:libKF5JobWidgets$secondaryArchSuffix + lib:libKF5KIOCore$secondaryArchSuffix + lib:libKF5KIOFileWidgets$secondaryArchSuffix + lib:libKF5KIOWidgets$secondaryArchSuffix + lib:libKF5NewStuff$secondaryArchSuffix + lib:libKF5Notifications$secondaryArchSuffix + lib:libKF5Plotting$secondaryArchSuffix + lib:libKF5Service$secondaryArchSuffix + lib:libKF5Solid$secondaryArchSuffix + lib:libKF5SonnetUi$secondaryArchSuffix + lib:libKF5TextEditor$secondaryArchSuffix + lib:libKF5TextWidgets$secondaryArchSuffix + lib:libKF5WidgetsAddons$secondaryArchSuffix + lib:libKF5WindowSystem$secondaryArchSuffix + lib:libKF5XmlGui$secondaryArchSuffix + lib:libQt5Core$secondaryArchSuffix + lib:libQt5DBus$secondaryArchSuffix + lib:libQt5Gui$secondaryArchSuffix + lib:libQt5Widgets$secondaryArchSuffix + lib:libQt5Xml$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + extra_cmake_modules$secondaryArchSuffix >= 5.77 + devel:eigen$secondaryArchSuffix + devel:libgsl$secondaryArchSuffix + devel:libKF5Archive$secondaryArchSuffix + devel:libKF5Attica$secondaryArchSuffix + devel:libKF5Auth$secondaryArchSuffix + devel:libKF5Bookmarks$secondaryArchSuffix + devel:libKF5Codecs$secondaryArchSuffix + devel:libKF5Completion$secondaryArchSuffix + devel:libKF5ConfigCore$secondaryArchSuffix + devel:libKF5ConfigWidgets$secondaryArchSuffix + devel:libKF5CoreAddons$secondaryArchSuffix + devel:libKF5Crash$secondaryArchSuffix + devel:libKF5DBusAddons$secondaryArchSuffix + devel:libKF5DocTools$secondaryArchSuffix + devel:libKF5GuiAddons$secondaryArchSuffix + devel:libKF5I18n$secondaryArchSuffix + devel:libKF5IconThemes$secondaryArchSuffix + devel:libKF5ItemModels$secondaryArchSuffix + devel:libKF5ItemViews$secondaryArchSuffix + devel:libKF5JobWidgets$secondaryArchSuffix + devel:libKF5KIOCore$secondaryArchSuffix + devel:libKF5KIOFileWidgets$secondaryArchSuffix + devel:libKF5KIOWidgets$secondaryArchSuffix + devel:libKF5NewStuff$secondaryArchSuffix + devel:libKF5Notifications$secondaryArchSuffix + devel:libKF5Plotting$secondaryArchSuffix + devel:libKF5Service$secondaryArchSuffix + devel:libKF5Solid$secondaryArchSuffix + devel:libKF5SonnetUi$secondaryArchSuffix + devel:libKF5TextEditor$secondaryArchSuffix + devel:libKF5TextWidgets$secondaryArchSuffix + devel:libKF5WidgetsAddons$secondaryArchSuffix + devel:libKF5WindowSystem$secondaryArchSuffix + devel:libKF5XmlGui$secondaryArchSuffix + devel:libQt5Core$secondaryArchSuffix >= 5.15 + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:g++$secondaryArchSuffix + cmd:lrelease$secondaryArchSuffix >= 5 + cmd:make + cmd:pkg_config$secondaryArchSuffix + cmd:update_mime_database$secondaryArchSuffix + " + +BUILD() +{ + # disable docs generation + sed -e '/add_subdirectory(doc)/ s/^#*/#/' -i CMakeLists.txt + sed -e '/kdoctools_install(po)/ s/^#*/#/' -i CMakeLists.txt + + mkdir -p build + cd build + + cmake .. \ + -DCMAKE_INSTALL_PREFIX=$appsDir \ + -DCMAKE_INSTALL_DATADIR=$dataDir \ + -DCMAKE_INSTALL_DATAROOTDIR=$dataDir \ + -DSHARE_INSTALL_PREFIX=$dataDir \ + -DECM_DIR=/system/data/cmake/Modules/ECM/cmake + make $jobArgs +} + +INSTALL() +{ + cd build + make install + + mv $appsDir/bin/step $appsDir/Step + rm -rf $appsDir/bin $dataDir/icons + + local APP_SIGNATURE="application/x-vnd.kde-step" + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local LONG_INFO="$SUMMARY" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/step.rdef.in > step.rdef + + addResourcesToBinaries step.rdef $appsDir/Step + addAppDeskbarSymlink $appsDir/Step +}