|
|
(8 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
− | This is a template for PXML files. It covers most of the spec and is considered to be ''clean'', meaning that it can be used as a sane starting point for PXML write-ups.
| + | #REDIRECT [[PXML specification]] |
− | <source lang="xml">
| |
− | <?xml version="1.0" encoding="UTF-8"?>
| |
− | <!--This is an example PXML file for an application named "Exaile", to
| |
− | demonstrate how a PXML file is supposed to be structured. Feel free to
| |
− | replace all of the field contents with your own data, and to remove these
| |
− | comments afterwards, in order to get a working and valid PXML file.
| |
− | | |
− | Note that this file is MINIMAL aka. this is the information you SHOULD
| |
− | specify if you're well-behaved (all of it isn't NEEDED per-se, though) -->
| |
− | | |
− | <!--
| |
− | PXML tag
| |
− | Indicates the root node of a PXML file.
| |
− | | |
− | Attributes:
| |
− | xmlns:
| |
− | Identifies the namespace of this PXML file. Potential future PXML
| |
− | specifications will use a different name space.
| |
− | -->
| |
− | <PXML xmlns="http://openpandora.org/namespaces/PXML">
| |
− | <!--
| |
− | application tag
| |
− | Declares a new application that this PND package provides. Most PND
| |
− | packages will only have one application entry, and it is discouraged to
| |
− | have too many application entries in one PND file, since a PND file is
| |
− | inseparable, i.e. an user cannot upgrade one app and leave another be if
| |
− | they share the same PND file.
| |
− | | |
− | Attributes:
| |
− | id:
| |
− | Identifies the application in application enumerations.
| |
− | This has to be a string that is unique to the package series; there
| |
− | must not be two packages with entirely different purposes and
| |
− | origins that share the same ID.
| |
− | | |
− | tl;dr: Choose an id like you would choose a package name on the
| |
− | Linux Desktop.
| |
− | | |
− | Some things you have to consider when choosing an id:
| |
− | - If you release new versions of your application, they should have
| |
− | the same id as previous versions. Packages with different id's
| |
− | are not considered to be related at all, while packages with
| |
− | identical id's are considered to be of the same kind.
| |
− | - Your id should not be too complex. You should choose something
| |
− | that is unique to your application, and not something globally
| |
− | unique.
| |
− | - The application id will be used by package managers and the like.
| |
− | So, choose something that you expect to be typed in as:
| |
− | "installtool install %id%"
| |
− | | |
− | If you are publishing an application that you created yourself,
| |
− | and that you don't expect anyone else to also publish, these
| |
− | would be GOOD id's:
| |
− | - "exaile"
| |
− | - "myapp"
| |
− | - "kdemod-extras-quassel"
| |
− | - "awesome-music-player"
| |
− | | |
− | These would be BAD id's:
| |
− | - "Exaile" - This is an user-adapted name and not a machine-
| |
− | adapted name
| |
− | - "Exaile - A music player that rocks" - This contains spaces and
| |
− | might therefore be mistreated by shell scripts and the like.
| |
− | - "exaile-1.0" - This contains version information; you should
| |
− | put this information in the version tag below instead.
| |
− | - "exaile-written-by-foobar-in-the-year-of-the-lord-two-thousand-and-ten-and-given-to-yall-for-free"
| |
− | This is too long.
| |
− | - "ae4c8bc112cafedd" - This doesn't identify *the application*, but
| |
− | is just a random unique identifier.
| |
− | These would be GOOD id's if you PORTED or MODDED an existing
| |
− | application:
| |
− | - "exaile-dflemstr" - (port) The app was ported by dflemstr
| |
− | - "exaile-nox" - (mod) The app runs without X
| |
− | - "exaile-player" - (port) Only a part of the application was
| |
− | ported
| |
− | - "exaile-pure" - (mod) Substantial mods were carried through, and
| |
− | a rebranding was needed.
| |
− | appdata:
| |
− | Specifies a name for a data store for your application
| |
− | This is where all your writes to CWD will end up when you run
| |
− | your application. You should choose an user friendly name, but
| |
− | *not* an user-adapted name (think about localization and
| |
− | management).
| |
− | Good alternatives:
| |
− | - "exaile"
| |
− | - "exaile-1" - If you intend to release newer versions that use
| |
− | a different storage format.
| |
− | - "exaile-dev" - If you want an user to be able to use a dev
| |
− | version of your app, and a stable version of your app
| |
− | simultaneously.
| |
− | -->
| |
− | <application id="exaile" appdata="exaile">
| |
− | <!--
| |
− | title tag(s)
| |
− | Defines a human-readable title for the application in a specified locale.
| |
− | You MUST specify a title with the language "en_US"; other localizations
| |
− | are optional, but it is recommended to add one for generic,
| |
− | not-only-american english ("en"). Titles and descriptions should also be
| |
− | in pairs (you should not translate a title and omit a translation for a
| |
− | description).
| |
− | | |
− | Attributes:
| |
− | lang:
| |
− | Specifies the language of the title.
| |
− | | |
− | This is made up of two parts:
| |
− | - The language part. This code is the lower-case, two-letter
| |
− | code as defined by ISO-639.
| |
− | - OPTIONAL: The country part. This code is the upper-case,
| |
− | two-letter code as defined by ISO-3166, with an underscore
| |
− | as the prefix.
| |
− | -->
| |
− | <title lang="en_US">Exaile music player</title>
| |
− | <title lang="sv">Exaile musikspelare</title>
| |
− | <title lang="de">Exaile musikspieler</title>
| |
− | | |
− | <!--
| |
− | description tag(s)
| |
− | Defines a human-readable description for your application in a specified
| |
− | locale. The same rules apply to this element, as to title elements. Note
| |
− | that we by description don't mean page-long texts; the recommended length
| |
− | for a description is 128 characters, but certain implementations support
| |
− | up to 1024 or 4096 characters. More than that is absolutely not
| |
− | recommended. Also, please remember that newlines are ignored in
| |
− | descriptions according to the XML standard, but that spaces are
| |
− | significant. XML escaping applies for the characters less-than,
| |
− | greater-than and ampersand (< > & respectively).
| |
− | | |
− | Attributes:
| |
− | lang:
| |
− | See above.
| |
− | -->
| |
− | <description lang="en_US">A versatile music player written in Python.</description>
| |
− | <description lang="sv">En kraftfull musikspelare skriven i Python.</description>
| |
− | <description lang="de">Ein fähiger Musikspieler, in Python geschrieben.</description>
| |
− | | |
− | <!--
| |
− | version tag
| |
− | This specifies the version quadron for this application.
| |
− | ALL FIELDS MUST BE POSITIVE INTEGERS OR 0. You are free to choose your
| |
− | own versioning scheme (ie. "build" doesn't have to be the number of times
| |
− | you built the application), but you must specify all four version fields
| |
− | below.
| |
− | -->
| |
− | <version major="1" minor="0" release="0" build="2"/>
| |
− | | |
− | <!--
| |
− | exec tag
| |
− | Declares how the application should be started.
| |
− | | |
− | Attributes:
| |
− | command:
| |
− | The executable to start when the program is launched. This is
| |
− | a path relative to the root of your PND file.
| |
− | arguments:
| |
− | Does the app need to be started with certain arguments every
| |
− | time it is run? This is useful for PNDs that contain
| |
− | multiple applications that use the same executable file.
| |
− | background:
| |
− | Can this application "be minimised" or should it run
| |
− | singleton?
| |
− | "true", "false", "1" or "0" accepted.
| |
− | startdir:
| |
− | Sets the CWD for the application before it is run.
| |
− | Default is the PND mount point.
| |
− | standalone:
| |
− | Can this application run directly, or should it only be
| |
− | started via associations? If this is "false" or "0", it
| |
− | won't show up in launchers.
| |
− | x11:
| |
− | Can be one of:
| |
− | "req" - X11 is required for the application to run.
| |
− | "stop" - X11 must be stopped for the application to run.
| |
− | "ignore" (default) - Don't care about X11.
| |
− | -->
| |
− | <exec command="./bin/exaile" background="true" standalone="true"/>
| |
− | | |
− | <!--
| |
− | author tag
| |
− | Contains information about the application author. All three fields
| |
− | are optional.
| |
− | -->
| |
− | <author name="Bjornhild Andersson" website="http://some.website.with.author.info" email="a.b@c.de"/>
| |
− | | |
− | <!--
| |
− | icon tag
| |
− | Declares the icon for the application. This should be the same icon that
| |
− | is appended to the PND file, or something different if *this* application
| |
− | should have a different icon from the rest.
| |
− | | |
− | Attributes:
| |
− | src
| |
− | Relative URI to the icon (can be a relative file, or a
| |
− | fully-qualified URL; the latter is only supported in some
| |
− | implementations)
| |
− | -->
| |
− | <icon src="icon.png"/>
| |
− | | |
− | <!--
| |
− | categories tag
| |
− | Specifies which categories this application belongs to. See
| |
− | http://standards.freedesktop.org/menu-spec/latest/apa.html for more
| |
− | information. The optional sub-element "subcategory" is currently ignored
| |
− | by all implementations.
| |
− | -->
| |
− | <categories>
| |
− | <category name="Audio"/>
| |
− | <category name="Music"/>
| |
− | <category name="GTK"/>
| |
− | </categories>
| |
− | </application>
| |
− | </PXML>
| |
− | </source>
| |