Multi-Platform Package Manager for Stable Diffusion
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

302 lines
16 KiB

################################################################################
# PUPNET DEPLOY: 1.4.0
################################################################################
########################################
# APP PREAMBLE
########################################
# Mandatory application base name. This MUST BE the base name of the main executable file. It should NOT
# include any directory part or extension, i.e. do not append '.exe' or '.dll'. It should not contain
# spaces or invalid filename characters.
AppBaseName = StabilityMatrix.Avalonia
# Mandatory application friendly name.
AppFriendlyName = Stability Matrix
# Mandatory application ID in reverse DNS form. This should stay constant for lifetime of the software.
AppId = zone.lykos.stabilitymatrix
# Mandatory application version and package release of form: 'VERSION[RELEASE]'. Use optional square
# brackets to denote package release, i.e. '1.2.3[1]'. Release refers to a change to the deployment
# package, rather the application. If release part is absent (i.e. '1.2.3'), the release value defaults
# to '1'. Note that the version-release value given here may be overridden from the command line.
AppVersionRelease = 2.0.0[1]
# Mandatory single line application short summary description.
AppShortSummary = Package and checkpoint manager for Stable Diffusion.
# Optional multi-line (surround with triple """ quotes) application description which may provide
# longer text than AppShortSummary. Text separated by an empty line will be treated as paragraphs
# (complex formatting should be avoided). The content is used by package builders where supported,
# including RPM and DEB, and may optionally be used to populate the '<description>' element in the
# AppStream metadata through the use of a macro variable.
AppDescription = """
Hello World demonstrates all the major features of building distributable packages with PupNet.
It can be built for all package kinds, including AppImage, Flatpak, DEB and RPM formats on Linux,
and as a Setup file on Windows. It provides an example of using desktop and AppStream metadata files,
as well as icons and post-publish scripts.
On execution, the Hello World program displays command arguments and assembly information. The assembly
version confirms that version information, provided in the deployment configuration, was successfully passed
through the build system, to the application.
"""
# Mandatory application license ID. This should be one of the recognised SPDX license
# identifiers, such as: 'MIT', 'GPL-3.0-or-later' or 'Apache-2.0'. For a proprietary or
# custom license, use 'LicenseRef-Proprietary' or 'LicenseRef-LICENSE'.
AppLicenseId = LicenseRef-Proprietary
# Optional path to application copyright/license text file. If provided, it will be packaged with the
# application and used with package builders where supported.
AppLicenseFile = LICENSE
# Optional path to application changelog file. IMPORTANT. If given, this file should contain version
# information in a predefined format. Namely, it should contain one or more version headings of form:
# '+ VERSION;DATE', under which are to be listed change items of form: '- Change description'. Formatted
# information will be parsed and used to populate AppStream metadata. Additionally, it will be packaged
# with the application and used with package builders where supported. NOTE. Superfluous text in the file
# is ignored, so the file may also contain README information.
# For information: https://github.com/kuiperzone/PupNet-Deploy.
AppChangeFile =
########################################
# PUBLISHER
########################################
# Mandatory publisher, group or creator.
PublisherName = Lykos
# Optional copyright statement.
PublisherCopyright = Copyright (C) Lykos 2023
# Optional publisher or application web-link name. Note that Windows Setup packages
# require both PublisherLinkName and PublisherLinkUrl in order to include the link as
# an item in program menu entries. Do not modify name, as may leave old entries in updated installations.
PublisherLinkName = Home Page
# Optional publisher or application web-link URL.
PublisherLinkUrl = https://lykos.ai
# Publisher or maintainer email contact. Although optional, some package builders (i.e. DEB) require it
# and may warn or fail unless provided.
PublisherEmail = stability-matrix@lykos.ai
########################################
# DESKTOP INTEGRATION
########################################
# Boolean (true or false) which indicates whether the application is hidden on the desktop. It is used to
# populate the 'NoDisplay' field of the .desktop file. The default is false. Setting to true will also
# cause the main application start menu entry to be omitted for Windows Setup.
DesktopNoDisplay = false
# Boolean (true or false) which indicates whether the application runs in the terminal, rather than
# providing a GUI. It is used to populate the 'Terminal' field of the .desktop file.
DesktopTerminal = false
# Optional path to a Linux desktop file. If empty (default), one will be generated automatically from
# the information in this file. Supplying a custom file, however, allows for mime-types and
# internationalisation. If supplied, the file MUST contain the line: 'Exec=${INSTALL_EXEC}'
# in order to use the correct install location. Other macros may be used to help automate the content.
# Note. PupNet Deploy can generate you a desktop file. Use --help and 'pupnet --help macro' for reference.
# See: https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
DesktopFile =
# Optional command name to start the application from the terminal. If, for example, AppBaseName is
# 'Zone.Kuiper.HelloWorld', the value here may be set to a simpler and/or lower-case variant such as
# 'helloworld'. It must not contain spaces or invalid filename characters. Do not add any extension such
# as '.exe'. If empty, the application will not be in the path and cannot be started from the command line.
# For Windows Setup packages, see also SetupCommandPrompt. StartCommand is not
# supported for all packages kinds (i.e. Flatpak). Default is empty (none).
StartCommand = stabilitymatrix
# Optional category for the application. The value should be one of the recognised Freedesktop top-level
# categories, such as: Audio, Development, Game, Office, Utility etc. Only a single value should be
# provided here which will be used, where supported, to populate metadata. The default is empty.
# See: https://specifications.freedesktop.org/menu-spec/latest/apa.html
PrimeCategory = Utility
# Path to AppStream metadata file. It is optional, but recommended as it is used by software centers.
# Note. The contents of the files may use macro variables. Use 'pupnet --help macro' for reference.
# See: https://docs.appimage.org/packaging-guide/optional/appstream.html
MetaFile =
# Optional icon file paths. The value may include multiple filenames separated with semicolon or given
# in multi-line form. Valid types are SVG, PNG and ICO (ICO ignored on Linux). Note that the inclusion
# of a scalable SVG is preferable on Linux, whereas PNGs must be one of the standard sizes and MUST
# include the size in the filename in the form: name.32x32.png' or 'name.32.png'.
IconFiles = """
StabilityMatrix.Avalonia/Assets/Icon.512x512.png
StabilityMatrix.Avalonia/Assets/Icon.ico
"""
########################################
# DOTNET PUBLISH
########################################
# Optional path relative to this file in which to find the dotnet project (.csproj) or solution (.sln)
# file, or the directory containing it. If empty (default), a single project or solution file is
# expected under the same directory as this file. IMPORTANT. If set to 'NONE', dotnet publish
# is disabled (not called). Instead, only DotnetPostPublish is called.
DotnetProjectPath = StabilityMatrix.Avalonia/StabilityMatrix.Avalonia.csproj
# Optional arguments supplied to 'dotnet publish'. Do NOT include '-r' (runtime), or '-c' (configuration)
# here as they will be added according to command line arguments. Typically you want as a minimum:
# '-p:Version=${APP_VERSION} --self-contained true'. Additional useful arguments include:
# '-p:DebugType=None -p:DebugSymbols=false -p:PublishSingleFile=true -p:PublishReadyToRun=true
# -p:PublishTrimmed=true -p:TrimMode=link'. Note. This value may use macro variables. Use 'pupnet --help macro'
# for reference. See: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish
DotnetPublishArgs = -p:Version=${APP_VERSION} -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:DebugType=None -p:DebugSymbols=false -p:PublishTrimmed=true
# Post-publish (or standalone build) command on Linux (ignored on Windows). It is called after dotnet
# publish, but before the final output is built. This could, for example, be a script which copies
# additional files into the build directory given by ${BUILD_APP_BIN}. The working directory will be
# the location of this file. This value is optional, but becomes mandatory if DotnetProjectPath equals
# 'NONE'. Note. This value may use macro variables. Additionally, scripts may use these as environment
# variables. Use 'pupnet --help macro' for reference.
DotnetPostPublish =
# Post-publish (or standalone build) command on Windows (ignored on Linux). This should perform
# the equivalent operation, as required, as DotnetPostPublish, but using DOS commands and batch
# scripts. Multiple commands may be specified, separated by semicolon or given in multi-line form.
# Note. This value may use macro variables. Additionally, scripts may use these as environment
# variables. Use 'pupnet --help macro' for reference.
DotnetPostPublishOnWindows =
########################################
# PACKAGE OUTPUT
########################################
# Optional package name (excludes version etc.). If empty, defaults to AppBaseName. However, it is
# used not only to specify the base output filename, but to identify the application in DEB and RPM
# packages. You may wish, therefore, to ensure that the value represents a unique name. Naming
# requirements are strict and must contain only alpha-numeric and '-', '+' and '.' characters.
PackageName = StabilityMatrix.Avalonia
# Output directory, or subdirectory relative to this file. It will be created if it does not exist and
# will contain the final deploy output files. If empty, it defaults to the location of this file.
OutputDirectory = Release/linux-x64
########################################
# APPIMAGE OPTIONS
########################################
# Additional arguments for use with appimagetool. Useful for signing. Default is empty.
AppImageArgs =
# Boolean (true or false) which sets whether to include the application version in the AppImage filename,
# i.e. 'HelloWorld-1.2.3-x86_64.AppImage'. Default is false. It is ignored if the output filename is
# specified at command line.
AppImageVersionOutput = false
########################################
# FLATPAK OPTIONS
########################################
# The runtime platform. Invariably for .NET (inc. Avalonia), this should be 'org.freedesktop.Platform'.
# Refer: https://docs.flatpak.org/en/latest/available-runtimes.html
FlatpakPlatformRuntime = org.freedesktop.Platform
# The platform SDK. Invariably for .NET (inc. Avalonia applications) this should be 'org.freedesktop.Sdk'.
# The SDK must be installed on the build system.
FlatpakPlatformSdk = org.freedesktop.Sdk
# The platform runtime version. The latest available version may change periodically.
# Refer to Flatpak documentation.
FlatpakPlatformVersion = 22.08
# Flatpak manifest 'finish-args' sandbox permissions. Optional, but if empty, the application will have
# extremely limited access to the host environment. This option may be used to grant required
# application permissions. Values here should be prefixed with '--' and separated by semicolon or given
# in multi-line form. Refer: https://docs.flatpak.org/en/latest/sandbox-permissions.html
FlatpakFinishArgs = """
--socket=wayland
--socket=x11
--filesystem=host
--share=network
"""
# Additional arguments for use with flatpak-builder. Useful for signing. Default is empty.
# See flatpak-builder --help.
FlatpakBuilderArgs =
########################################
# RPM OPTIONS
########################################
# Boolean (true or false) which specifies whether to build the RPM package with 'AutoReq' equal to yes or no.
# For dotnet application, the value should typically be false, but see RpmRequires below.
# Refer: https://rpm-software-management.github.io/rpm/manual/spec.html
RpmAutoReq = false
# Boolean (true or false) which specifies whether to build the RPM package with 'AutoProv' equal to yes or no.
# Refer: https://rpm-software-management.github.io/rpm/manual/spec.html
RpmAutoProv = true
# Optional list of RPM dependencies. The list may include multiple values separated with semicolon or given
# in multi-line form. If empty, a self-contained dotnet package will successfully run on many (but not all)
# Linux distros. In some cases, it will be necessary to explicitly specify additional dependencies.
# Default values are recommended for use with dotnet and RPM packages at the time of writing.
# For updated information, see: https://learn.microsoft.com/en-us/dotnet/core/install/linux-rhel#dependencies
RpmRequires = """
krb5-libs
libicu
openssl-libs
zlib
"""
########################################
# DEBIAN OPTIONS
########################################
# Optional list of Debian dependencies. The list may include multiple values separated with semicolon or given
# in multi-line form. If empty, a self-contained dotnet package will successfully run on many (but not all)
# Linux distros. In some cases, it will be necessary to explicitly specify additional dependencies.
# Default values are recommended for use with dotnet and Debian packages at the time of writing.
# For updated information, see: https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#dependencies
DebianRecommends = """
libc6
libgcc1
libgcc-s1
libgssapi-krb5-2
libicu
libssl
libstdc++6
libunwind
zlib1g
"""
########################################
# WINDOWS SETUP OPTIONS
########################################
# Boolean (true or false) which specifies whether the application is to be installed in administrative
# mode, or per-user. Default is false. See: https://jrsoftware.org/ishelp/topic_admininstallmode.htm
SetupAdminInstall = false
# Optional command prompt title. The Windows installer will NOT add your application to the path. However,
# if your package contains a command-line utility, setting this value will ensure that a 'Command Prompt'
# program menu entry is added (with this title) which, when launched, will open a dedicated command
# window with your application directory in its path. Default is empty. See also StartCommand.
SetupCommandPrompt = Command Prompt
# Mandatory value which specifies minimum version of Windows that your software runs on. Windows 8 = 6.2,
# Windows 10/11 = 10. Default: 10. See: https://jrsoftware.org/ishelp/topic_setup_minversion.htm
SetupMinWindowsVersion = 10
# Optional name and parameters of the Sign Tool to be used to digitally sign: the installer,
# uninstaller, and contained exe and dll files. If empty, files will not be signed.
# See: https://jrsoftware.org/ishelp/topic_setup_signtool.htm
SetupSignTool =
# Optional suffix for the installer output filename. The default is empty, but you may wish set it to:
# 'Setup' or similar. This, for example, will output a file of name: HelloWorldSetup-x86_64.exe
# Ignored if the output filename is specified at command line.
SetupSuffixOutput =
# Boolean (true or false) which sets whether to include the application version in the setup filename,
# i.e. 'HelloWorld-1.2.3-x86_64.exe'. Default is false. Ignored if the output filename is specified
# at command line.
SetupVersionOutput = false