version: "1" package: id: com.lanmountain.desktop name: LanMountainDesktop version: 0.8.8.4 kind: app description: | LanMountainDesktop - A modern desktop shell for education. Features include schedule management, notifications, plugins, and more. command: - /opt/apps/com.lanmountain.desktop/files/bin/LanMountainDesktop.Launcher base: org.deepin.foundation/23.0.0 sources: - kind: local name: "LanMountainDesktop" build: | # Create directory structure following Linglong conventions mkdir -p $PREFIX/bin mkdir -p $PREFIX/lib mkdir -p $PREFIX/share/applications mkdir -p $PREFIX/share/icons/hicolor/128x128/apps mkdir -p $PREFIX/share/icons/hicolor/256x256/apps mkdir -p $PREFIX/share/icons/hicolor/scalable/apps # Copy the pre-built application files # The build artifacts should be in /project/publish/linux-x64 if [ -d "/project/publish/linux-x64" ]; then # Copy main application (includes .NET runtime) cp -r /project/publish/linux-x64/app-*/* $PREFIX/lib/ # Copy Launcher (AOT compiled, independent) cp /project/publish/linux-x64/LanMountainDesktop.Launcher $PREFIX/bin/ chmod +x $PREFIX/bin/LanMountainDesktop.Launcher # Copy AirAppRuntime wrapper and DLL cp /project/publish/linux-x64/LanMountainDesktop.AirAppRuntime $PREFIX/bin/ cp /project/publish/linux-x64/LanMountainDesktop.AirAppRuntime.dll $PREFIX/lib/ chmod +x $PREFIX/bin/LanMountainDesktop.AirAppRuntime # Copy AirAppHost if [ -d "/project/publish/linux-x64/AirAppHost" ]; then cp -r /project/publish/linux-x64/AirAppHost $PREFIX/lib/ fi else echo "Error: Build artifacts not found at /project/publish/linux-x64" exit 1 fi # Create desktop file cat > $PREFIX/share/applications/com.lanmountain.desktop.desktop << EOF [Desktop Entry] Type=Application Version=1.0 Name=LanMountainDesktop Comment=LanMountainDesktop desktop shell Exec=/opt/apps/com.lanmountain.desktop/files/bin/LanMountainDesktop.Launcher %U Icon=lanmountaindesktop Terminal=false Categories=Utility;Education; StartupWMClass=LanMountainDesktop EOF # Copy icon files if [ -f "/project/LanMountainDesktop/packaging/linux/lanmountaindesktop.png" ]; then cp /project/LanMountainDesktop/packaging/linux/lanmountaindesktop.png \ $PREFIX/share/icons/hicolor/256x256/apps/ cp /project/LanMountainDesktop/packaging/linux/lanmountaindesktop.png \ $PREFIX/share/icons/hicolor/128x128/apps/ fi # Set executable permissions chmod +x $PREFIX/bin/* chmod +x $PREFIX/lib/LanMountainDesktop.AirAppRuntime 2>/dev/null || true echo "Linglong build completed successfully"