super-productivity/electron-builder.yaml
2025-10-13 18:51:08 +02:00

175 lines
4.3 KiB
YAML

appId: superProductivity
productName: Super Productivity
artifactName: ${name}-${arch}.${ext}
files:
- electron/**/*
- '!electron/**/*.ts'
- '!electron/**/*.js.map'
- .tmp/angular-dist/**/*
- 'embedded.provisionprofile'
# Exclude Nx binaries - they're build tools, not runtime dependencies
- '!**/@nx/nx-darwin-*/**'
- '!**/@nx/nx-linux-*/**'
- '!**/@nx/nx-win32-*/**'
#afterSign: ./tools/notarizeMacApp.js
directories:
output: './.tmp/app-builds'
win:
target:
- target: nsis
arch:
- arm64
- x64
- target: portable
arch:
- arm64
- x64
publish:
- github
nsis:
artifactName: ${productName} Setup-${arch}.${ext}
portable:
artifactName: ${name}-${arch}.${ext}
appx:
applicationId: SuperProductivity
displayName: Super Productivity
publisherDisplayName: johannesjo
publisher: CN=___-___
identityName: ___johannesjo.SuperProductivity
linux:
# Fix for issue #5259: Set executable name without spaces for snap compatibility
executableName: superproductivity
category: Office;ProjectManagement
target:
- AppImage
- deb
- snap
- rpm
publish:
- github
# leads to Error: Please specify executable name as linux.executableName instead of linux.desktop.Exec
# desktop:
# Name: Super Productivity
# Comment: A todo list and time tracking app
# Exec: superProductivity
# Terminal: false
# Type: Application
# Icon: build/icon.png
# GenericName: ToDo List and Time Tracker
snap:
grade: stable
allowNativeWayland: true
autoStart: true
base: core22
confinement: strict
# Force software rendering to avoid GPU/Mesa driver issues in snap confinement
# See: https://github.com/johannesjo/super-productivity/issues/5252
environment:
# Primary: Force llvmpipe software renderer (most explicit)
MESA_LOADER_DRIVER_OVERRIDE: llvmpipe
# Secondary: Ensure software rendering fallback (defense-in-depth)
LIBGL_ALWAYS_SOFTWARE: '1'
# Ensure our staged Mesa drivers are found before the platform snap fallback
LIBGL_DRIVERS_PATH: '$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/dri:$SNAP/usr/lib/dri:$SNAP/gnome-platform/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/dri:$SNAP/gnome-platform/usr/lib/dri'
# Make sure our staged libs come first on the linker path while preserving upstream defaults
LD_LIBRARY_PATH: '$SNAP/usr/lib:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/lib:$SNAP/lib/$SNAPCRAFT_ARCH_TRIPLET:$LD_LIBRARY_PATH'
# Force Mesa on NVIDIA systems
__GLX_VENDOR_LIBRARY_NAME: mesa
stagePackages:
- libglu1-mesa
- libosmesa6
- libgl1-mesa-dri
- libgl1
- libegl1
- libgles2
- libgbm1
- libdrm2
- libdrm-amdgpu1
- libxcb1
- libxcb-dri3-0
- libxcb-present0
- libxcb-sync1
- libxdamage1
- libxext6
- libxxf86vm1
- libvulkan1
- mesa-vulkan-drivers
- libtinfo5
- libtinfo6
- libnspr4
- libnss3
plugs:
- desktop
- desktop-legacy
- home
- x11
- wayland
- unity7
- browser-support
- network
- gsettings
- audio-playback
- pulseaudio
- opengl
- password-manager-service
- system-observe
- login-session-observe
flatpak:
runtimeVersion: '23.08'
finishArgs:
- --share=network
- --share=ipc
- --socket=x11
- --socket=wayland
- --socket=fallback-x11
- --socket=pulseaudio
- --device=dri
- --filesystem=home
mac:
appId: com.super-productivity.app
type: distribution
category: public.app-category.productivity
entitlements: build/entitlements.mac.plist
entitlementsInherit: build/entitlements.mac.plist
icon: build/icon-mac.icns
hardenedRuntime: true
gatekeeperAssess: false
provisioningProfile: embedded.provisionprofile
darkModeSupport: true
notarize: true
extendInfo:
ITSAppUsesNonExemptEncryption: false
publish:
- github
target:
# - zip
- target: dmg
arch:
- arm64
- x64
- universal
dmg:
sign: true
publish:
- github
pkg:
publish: never
# HERE: electron-builder.mas.yaml
#mas:
# type: distribution
# category: public.app-category.productivity
# entitlements: build/entitlements.mas.plist
# entitlementsInherit: build/entitlements.mas.inherit.plist
# provisioningProfile: prod.provisionprofile
# icon: build/icon.icns
# hardenedRuntime: true
# publish: never