diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 48c5f80..9c1e6da 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -500,24 +500,47 @@ jobs: - name: Manual Pack run: | echo "Creating folders 'n files" - mkdir -p ./pack-deb/usr/local/bin + mkdir -p ./pack-deb/usr/bin mkdir -p ./pack-deb/usr/share/qtmesheditor/ - mkdir ./pack-deb/usr/share/qtmesheditor/cfg/ - mkdir ./pack-deb/usr/share/qtmesheditor/media/ - mkdir ./pack-deb/usr/share/qtmesheditor/platforms/ - mkdir -p ./pack-deb/lib/x86_64-linux-gnu/ + mkdir -p ./pack-deb/usr/share/qtmesheditor/cfg/ + mkdir -p ./pack-deb/usr/share/qtmesheditor/media/ + mkdir -p ./pack-deb/usr/share/qtmesheditor/platforms/ + mkdir -p ./pack-deb/usr/lib/qtmesheditor/ + mkdir -p ./pack-deb/usr/share/doc/qtmesheditor/ mkdir ./pack-deb/DEBIAN/ cp ./bin/DEBIAN-control ./pack-deb/DEBIAN/control cp ./bin/QtMeshEditor ./pack-deb/usr/share/qtmesheditor/qtmesheditor - touch ./pack-deb/usr/local/bin/qtmesheditor - echo "/usr/share/qtmesheditor/qtmesheditor" >> ./pack-deb/usr/local/bin/qtmesheditor - sudo chmod 755 ./pack-deb/usr/local/bin/qtmesheditor + + # Create proper launcher script + printf '#!/bin/sh\nexport LD_LIBRARY_PATH="/usr/lib/qtmesheditor:${LD_LIBRARY_PATH}"\nexport QML2_IMPORT_PATH="/usr/share/qtmesheditor/qml:${QML2_IMPORT_PATH}"\nexec /usr/share/qtmesheditor/qtmesheditor "$@"\n' > ./pack-deb/usr/bin/qtmesheditor + chmod 755 ./pack-deb/usr/bin/qtmesheditor + + # Copy copyright file + cp ./DEBIAN-copyright ./pack-deb/usr/share/doc/qtmesheditor/copyright + cp -R ./bin/cfg/ ./pack-deb/usr/share/qtmesheditor/ sudo chmod -R 755 ./pack-deb/usr/share/qtmesheditor/cfg cp -R ./bin/media/ ./pack-deb/usr/share/qtmesheditor/ cp -R ./bin/platforms/ ./pack-deb/usr/share/qtmesheditor/ - cp -R ./bin/*.so* ./pack-deb/lib/x86_64-linux-gnu/ - dpkg-deb --build --root-owner-group pack-deb + + # Copy bundled libraries to private lib directory + cp -R ./bin/*.so* ./pack-deb/usr/lib/qtmesheditor/ + + # Copy Qt QML modules for Material Editor + QT_DIR="/home/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/gcc_64" + mkdir -p ./pack-deb/usr/share/qtmesheditor/qml + cp -R "$QT_DIR/qml/QtQuick" ./pack-deb/usr/share/qtmesheditor/qml/ + cp -R "$QT_DIR/qml/QtQml" ./pack-deb/usr/share/qtmesheditor/qml/ + + # Copy Qt QML runtime libraries + for lib in QuickControls2 QuickControls2Impl QuickControls2Basic QuickControls2BasicStyleImpl \ + QuickDialogs2 QuickDialogs2Utils QuickDialogs2QuickImpl \ + QuickTemplates2 QuickLayouts Quick QmlModels QmlMeta QmlWorkerScript Qml QmlCore \ + OpenGL; do + cp -R "$QT_DIR/lib/libQt6${lib}.so"* ./pack-deb/usr/lib/qtmesheditor/ 2>/dev/null || true + done + + dpkg-deb --build --root-owner-group pack-deb mv pack-deb.deb qtmesheditor_amd64.deb - uses: actions/upload-artifact@v4 @@ -1155,9 +1178,14 @@ jobs: sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtNetwork.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtOpenGL.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtQuickControls2.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtQuickControls2 not found, continuing..." + sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtQuickControls2Impl.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtQuickControls2Impl not found, continuing..." + sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtQuickControls2Basic.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtQuickControls2Basic not found, continuing..." + sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtQuickControls2BasicStyleImpl.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtQuickControls2BasicStyleImpl not found, continuing..." sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtQuickDialogs2.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtQuickDialogs2 not found, continuing..." + sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtQuickDialogs2Utils.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtQuickDialogs2Utils not found, continuing..." + sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtQuickDialogs2QuickImpl.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtQuickDialogs2QuickImpl not found, continuing..." sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtQuickTemplates2.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtQuickTemplates2 not found, continuing..." - sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtLabsPlatform.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtLabsPlatform not found, continuing..." + sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtQuickLayouts.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtQuickLayouts not found, continuing..." sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtQmlCore.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtQmlCore not found, continuing..." sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/lib/QtQmlWorkerScript.framework ${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/ || echo "QtQmlWorkerScript not found, continuing..." @@ -1168,7 +1196,6 @@ jobs: sudo mkdir -p ${{github.workspace}}/bin/QtMeshEditor.app/Contents/PlugIns/qml sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/qml/QtQuick ${{github.workspace}}/bin/QtMeshEditor.app/Contents/PlugIns/qml/ sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/qml/QtQml ${{github.workspace}}/bin/QtMeshEditor.app/Contents/PlugIns/qml/ - sudo cp -R /Users/runner/work/QtMeshEditor/Qt/${{ env.QT_VERSION }}/$QT_ARCH_DIR/qml/Qt ${{github.workspace}}/bin/QtMeshEditor.app/Contents/PlugIns/qml/ || echo "Qt labs plugins not found, continuing..." # Copy Assimp libraries to MacOS directory sudo cp -R /usr/local/lib/libassimp* ${{github.workspace}}/bin/QtMeshEditor.app/Contents/MacOS/ || echo "Assimp libraries not found, continuing..." @@ -1228,7 +1255,7 @@ jobs: # Sign Qt frameworks - try both versioned and direct paths echo "Signing Qt frameworks..." - for framework in QtCore QtGui QtWidgets QtDBus QtQuickWidgets QtQuick QtQml QtQmlModels QtQmlMeta QtNetwork QtOpenGL QtQuickControls2 QtQuickDialogs2 QtQuickTemplates2 QtLabsPlatform QtQmlCore QtQmlWorkerScript; do + for framework in QtCore QtGui QtWidgets QtDBus QtQuickWidgets QtQuick QtQml QtQmlModels QtQmlMeta QtNetwork QtOpenGL QtQuickControls2 QtQuickControls2Impl QtQuickControls2Basic QtQuickControls2BasicStyleImpl QtQuickDialogs2 QtQuickDialogs2Utils QtQuickDialogs2QuickImpl QtQuickTemplates2 QtQuickLayouts QtQmlCore QtQmlWorkerScript; do framework_path="${{github.workspace}}/bin/QtMeshEditor.app/Contents/Frameworks/${framework}.framework" if [ -d "$framework_path" ]; then echo "Processing $framework framework..." diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c6d167..60e90ab 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ cmake_minimum_required(VERSION 3.24.0) cmake_policy(SET CMP0005 NEW) cmake_policy(SET CMP0048 NEW) # manages project version -project(QtMeshEditor VERSION 2.7.2 LANGUAGES CXX) +project(QtMeshEditor VERSION 2.7.3 LANGUAGES CXX) message(STATUS "Building QtMeshEditor version ${PROJECT_VERSION}") set(QTMESHEDITOR_VERSION_STRING "\"${PROJECT_VERSION}\"") diff --git a/DEBIAN-control.in b/DEBIAN-control.in index e3d734a..d78fd5c 100644 --- a/DEBIAN-control.in +++ b/DEBIAN-control.in @@ -1,13 +1,12 @@ Package: qtmesheditor Version: @PROJECT_VERSION@ Section: editors -Priority: extra +Priority: optional Installed-Size: 757000 Architecture: amd64 -Origin: ubuntu -Bugs: https://github.com/fernandotonon/QtMeshEditor/issues +Bugs: https://github.com/fernandotonon/QtMeshEditor/issues Homepage: https://github.com/fernandotonon/QtMeshEditor -Depends: libxcb-cursor0 +Depends: libxcb-cursor0, libqt6core6, libqt6gui6, libqt6widgets6, libqt6network6, libqt6opengl6, libqt6qml6, libqt6quick6 Maintainer: Fernando Tonon de Rossi Description: It is a graphical editor for Ogre3D mesh and material I have made this editor to make it easier to change the meshes instead of using the meshmagick and meshupgrader, it is not finished yet, but the main operations are implemented, I hope it helps someone... :) diff --git a/DEBIAN-copyright b/DEBIAN-copyright new file mode 100644 index 0000000..a3f3bd2 --- /dev/null +++ b/DEBIAN-copyright @@ -0,0 +1,47 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: QtMeshEditor +Upstream-Contact: Fernando Tonon de Rossi +Source: https://github.com/fernandotonon/QtMeshEditor + +Files: * +Copyright: 2012-2023 QtMeshEditor +License: MIT + +Files: src/dependencies/ogre-procedural/* +Copyright: 2010-2015 ogre-procedural contributors +License: MIT + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +Files: bundled Qt 6 libraries (libQt6*.so, qml/QtQuick/*, qml/QtQml/*) +Copyright: 2023 The Qt Company Ltd. +License: LGPL-3.0 + This package includes Qt 6 libraries distributed under the GNU Lesser General + Public License version 3. The full text of the LGPL-3.0 license is available + at /usr/share/common-licenses/LGPL-3. + . + Qt source code is available at https://code.qt.io/ + . + The bundled Qt libraries are dynamically linked shared objects. Users may + replace them with alternative compatible versions as permitted by the LGPL. + +Files: bundled OGRE 3D libraries (libOgre*.so) +Copyright: 2000-2023 Torus Knot Software Ltd +License: MIT