Files
LanMountainDesktop/packaging/linglong/linglong.yaml
2026-06-26 21:45:43 +08:00

77 lines
3.2 KiB
YAML

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
# 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 using printf to avoid heredoc issues in YAML
printf '%s\n' '[Desktop Entry]' > $PREFIX/share/applications/com.lanmountain.desktop.desktop
printf '%s\n' 'Type=Application' >> $PREFIX/share/applications/com.lanmountain.desktop.desktop
printf '%s\n' 'Version=1.0' >> $PREFIX/share/applications/com.lanmountain.desktop.desktop
printf '%s\n' 'Name=LanMountainDesktop' >> $PREFIX/share/applications/com.lanmountain.desktop.desktop
printf '%s\n' 'Comment=LanMountainDesktop desktop shell' >> $PREFIX/share/applications/com.lanmountain.desktop.desktop
printf '%s\n' 'Exec=/opt/apps/com.lanmountain.desktop/files/bin/LanMountainDesktop.Launcher %U' >> $PREFIX/share/applications/com.lanmountain.desktop.desktop
printf '%s\n' 'Icon=lanmountaindesktop' >> $PREFIX/share/applications/com.lanmountain.desktop.desktop
printf '%s\n' 'Terminal=false' >> $PREFIX/share/applications/com.lanmountain.desktop.desktop
printf '%s\n' 'Categories=Utility;Education;' >> $PREFIX/share/applications/com.lanmountain.desktop.desktop
printf '%s\n' 'StartupWMClass=LanMountainDesktop' >> $PREFIX/share/applications/com.lanmountain.desktop.desktop
# 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/*
echo "Linglong build completed successfully"