1
Fork 0
mirror of https://github.com/redstrate/Astra.git synced 2025-04-20 11:47:46 +00:00

Improve appstream metadata, and change project id

This commit is contained in:
Joshua Goins 2023-08-06 11:52:35 -04:00
parent 1e54d0aa85
commit 81e4901c7e
28 changed files with 123 additions and 60 deletions

View file

@ -28,11 +28,7 @@ tasks:
cmake --build build-cmake cmake --build build-cmake
- flatpak: | - flatpak: |
cd astra cd astra
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo ./build-flatpak.sh
flatpak install --user -y runtime/org.kde.Platform/x86_64/5.15-22.08 runtime/org.kde.Sdk/x86_64/5.15-22.08 org.freedesktop.Sdk.Extension.rust-stable/x86_64/22.08
flatpak-builder build --user --force-clean zone.xiv.astra.yml
flatpak build-export export build
flatpak build-bundle export astra.flatpak zone.xiv.astra --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo
artifacts: artifacts:
- astra/build-cmake/bin/astra - astra/build-cmake/bin/astra
- astra/astra.flatpak - astra/astra.flatpak

View file

@ -3,11 +3,11 @@ Upstream-Name: Astra
Upstream-Contact: Joshua Goins <josh@redstrate.com> Upstream-Contact: Joshua Goins <josh@redstrate.com>
Source: https://git.sr.ht/~redstrate/astra Source: https://git.sr.ht/~redstrate/astra
Files: README.md .build.yml .editorconfig zone.xiv.astra.yml com.redstrate.astra.desktop test-steamdeck.sh compatibilitytool/* misc/* Files: README.md .build.yml .editorconfig zone.xiv.astra.yml zone.xiv.astra.desktop build-flatpak.sh compatibilitytool/* misc/*
Copyright: Joshua Goins <josh@redstrate.com> Copyright: Joshua Goins <josh@redstrate.com>
License: CC0-1.0 License: CC0-1.0
Files: com.redstrate.astra.svg Files: zone.xiv.astra.svg
Copyright: Joshua Goins <josh@redstrate.com> Copyright: Joshua Goins <josh@redstrate.com>
License: CC-BY-SA-4.0 License: CC-BY-SA-4.0

View file

@ -74,8 +74,9 @@ find_package(QuaZip-Qt5 REQUIRED)
add_subdirectory(external) add_subdirectory(external)
add_subdirectory(launcher) add_subdirectory(launcher)
install(FILES com.redstrate.astra.desktop DESTINATION ${KDE_INSTALL_APPDIR}) install(FILES zone.xiv.astra.desktop DESTINATION ${KDE_INSTALL_APPDIR})
install(FILES com.redstrate.astra.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps) install(FILES zone.xiv.astra.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
install(FILES zone.xiv.astra.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps)
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)

7
build-flatpak.sh Executable file
View file

@ -0,0 +1,7 @@
#!/bin/sh
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo &&
flatpak install --user -y runtime/org.kde.Platform/x86_64/5.15-22.08 runtime/org.kde.Sdk/x86_64/5.15-22.08 org.freedesktop.Sdk.Extension.rust-stable/x86_64/22.08 &&
flatpak-builder build --user --force-clean zone.xiv.astra.yml &&
flatpak build-export export build &&
flatpak build-bundle export astra.flatpak zone.xiv.astra --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo

View file

@ -36,10 +36,10 @@ int main(int argc, char *argv[])
about.setHomepage("https://xiv.zone/astra"); about.setHomepage("https://xiv.zone/astra");
about.addComponent("physis", "Library to access FFXIV data", physis_get_physis_version(), "https://xiv.zone/physis", KAboutLicense::GPL_V3); about.addComponent("physis", "Library to access FFXIV data", physis_get_physis_version(), "https://xiv.zone/physis", KAboutLicense::GPL_V3);
about.addComponent("libphysis", "C bindings for physis", physis_get_libphysis_version(), "", KAboutLicense::GPL_V3); about.addComponent("libphysis", "C bindings for physis", physis_get_libphysis_version(), "", KAboutLicense::GPL_V3);
about.setDesktopFileName("com.redstrate.astra"); about.setDesktopFileName("zone.xiv.astra");
about.setBugAddress("https://lists.sr.ht/~redstrate/public-inbox"); about.setBugAddress("https://lists.sr.ht/~redstrate/public-inbox");
about.setComponentName("astra"); about.setComponentName("astra");
about.setProgramLogo("com.redstrate.astra"); about.setProgramLogo("zone.xiv.astra");
KAboutData::setApplicationData(about); KAboutData::setApplicationData(about);
@ -70,16 +70,16 @@ int main(int argc, char *argv[])
LauncherCore c(false); LauncherCore c(false);
#endif #endif
qmlRegisterSingletonInstance("com.redstrate.astra", 1, 0, "LauncherCore", &c); qmlRegisterSingletonInstance("zone.xiv.astra", 1, 0, "LauncherCore", &c);
qmlRegisterUncreatableType<GameInstaller>("com.redstrate.astra", 1, 0, "GameInstaller", QStringLiteral("Use LauncherCore::createInstaller")); qmlRegisterUncreatableType<GameInstaller>("zone.xiv.astra", 1, 0, "GameInstaller", QStringLiteral("Use LauncherCore::createInstaller"));
qmlRegisterUncreatableType<AccountManager>("com.redstrate.astra", 1, 0, "AccountManager", QStringLiteral("Use LauncherCore::accountManager")); qmlRegisterUncreatableType<AccountManager>("zone.xiv.astra", 1, 0, "AccountManager", QStringLiteral("Use LauncherCore::accountManager"));
qmlRegisterUncreatableType<ProfileManager>("com.redstrate.astra", 1, 0, "ProfileManager", QStringLiteral("Use LauncherCore::profileManager")); qmlRegisterUncreatableType<ProfileManager>("zone.xiv.astra", 1, 0, "ProfileManager", QStringLiteral("Use LauncherCore::profileManager"));
qmlRegisterUncreatableType<Profile>("com.redstrate.astra", 1, 0, "Profile", QStringLiteral("Use from ProfileManager")); qmlRegisterUncreatableType<Profile>("zone.xiv.astra", 1, 0, "Profile", QStringLiteral("Use from ProfileManager"));
qmlRegisterUncreatableType<Account>("com.redstrate.astra", 1, 0, "Account", QStringLiteral("Use from AccountManager")); qmlRegisterUncreatableType<Account>("zone.xiv.astra", 1, 0, "Account", QStringLiteral("Use from AccountManager"));
qmlRegisterSingletonType("com.redstrate.astra", 1, 0, "About", [](QQmlEngine *engine, QJSEngine *) -> QJSValue { qmlRegisterSingletonType("zone.xiv.astra", 1, 0, "About", [](QQmlEngine *engine, QJSEngine *) -> QJSValue {
return engine->toScriptValue(KAboutData::applicationData()); return engine->toScriptValue(KAboutData::applicationData());
}); });
qmlRegisterUncreatableType<Headline>("com.redstrate.astra", 1, 0, "Headline", QStringLiteral("Use from AccountManager")); qmlRegisterUncreatableType<Headline>("zone.xiv.astra", 1, 0, "Headline", QStringLiteral("Use from AccountManager"));
qRegisterMetaType<Banner>("Banner"); qRegisterMetaType<Banner>("Banner");
qRegisterMetaType<QList<Banner>>("QList<Banner>"); qRegisterMetaType<QList<Banner>>("QList<Banner>");
qRegisterMetaType<QList<News>>("QList<News>"); qRegisterMetaType<QList<News>>("QList<News>");

View file

@ -8,7 +8,7 @@ import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import QtQuick.Dialogs 1.0 import QtQuick.Dialogs 1.0
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
MobileForm.FormButtonDelegate { MobileForm.FormButtonDelegate {
id: control id: control

View file

@ -8,7 +8,7 @@ import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import QtQuick.Dialogs 1.0 import QtQuick.Dialogs 1.0
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
MobileForm.FormButtonDelegate { MobileForm.FormButtonDelegate {
id: control id: control

View file

@ -7,7 +7,6 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import QtWebEngine 1.10 import QtWebEngine 1.10
import com.redstrate.astra 1.0
Kirigami.Page { Kirigami.Page {
id: page id: page

View file

@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
Controls.Control { Controls.Control {
id: page id: page

View file

@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
Kirigami.Page { Kirigami.Page {
id: page id: page

View file

@ -8,7 +8,7 @@ import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import QtGraphicalEffects 1.0 import QtGraphicalEffects 1.0
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
Controls.Control { Controls.Control {
id: page id: page

View file

@ -6,7 +6,7 @@ import QtQuick.Window 2.15
import org.kde.kirigami 2.20 as Kirigami import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
Kirigami.Page { Kirigami.Page {
property var gameInstaller property var gameInstaller

View file

@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
Kirigami.ScrollablePage { Kirigami.ScrollablePage {
id: page id: page

View file

@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
import "../Components" import "../Components"

View file

@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
MobileForm.FormCard { MobileForm.FormCard {
Layout.topMargin: Kirigami.Units.largeSpacing Layout.topMargin: Kirigami.Units.largeSpacing

View file

@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
import "../Components" import "../Components"

View file

@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
Kirigami.ScrollablePage { Kirigami.ScrollablePage {
id: page id: page

View file

@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
Kirigami.Page { Kirigami.Page {
id: page id: page

View file

@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
Kirigami.Page { Kirigami.Page {
id: page id: page

View file

@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
Kirigami.Page { Kirigami.Page {
id: page id: page

View file

@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
Kirigami.Page { Kirigami.Page {
id: page id: page

View file

@ -6,7 +6,7 @@ import QtQuick.Window 2.15
import org.kde.kirigami 2.20 as Kirigami import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
Kirigami.Page { Kirigami.Page {
property var gameInstaller property var gameInstaller

View file

@ -6,7 +6,7 @@ import QtQuick.Window 2.15
import org.kde.kirigami 2.20 as Kirigami import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
import com.redstrate.astra 1.0 import zone.xiv.astra 1.0
import "Pages" import "Pages"

View file

@ -1,8 +0,0 @@
#!/bin/sh
flatpak-builder build --force-clean zone.xiv.astra.yml &&
flatpak build-export export build &&
flatpak build-bundle export astra-next.flatpak zone.xiv.astra --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo &&
rsync ./astra-next.flatpak deck@steamdeck:~/astra-next.flatpak
ssh deck@steamdeck 'flatpak install --user --noninteractive -y astra-next.flatpak'
#ssh deck@steamdeck 'flatpak run --user zone.xiv.astra'

View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- SPDX-License-Identifier: CC0-1.0
- SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
-->
<component type="desktop-application">
<id>zone.xiv.astra</id>
<metadata_license>CC0-1.0</metadata_license>
<name>Astra</name>
<summary>Linux FFXIV Launcher</summary>
<description>
<p>A custom FFXIV launcher that supports multiple accounts, Dalamud plugins and runs natively on Linux!</p>
</description>
<categories>
<category>Game</category>
</categories>
<keywords>
<keyword>launcher</keyword>
<keyword translate="no">ffxiv</keyword>
<keyword translate="no">ff14</keyword>
</keywords>
<url type="homepage">https://xiv.zone/astra</url>
<url type="bugtracker">https://todo.sr.ht/~redstrate/astra</url>
<url type="faq">https://xiv.zone/astra/faq</url>
<url type="donation">https://redstrate.com/fund</url>
<url type="contact">https://redstrate.com/contact</url>
<url type="vcs-browser">https://sr.ht/~redstrate/astra</url>
<launchable type="desktop-id">zone.xiv.astra.desktop</launchable>
<releases>
<release version="0.5.0"/>
</releases>
<provides>
<binary>astra</binary>
</provides>
<requires>
<internet>always</internet>
</requires>
<recommends>
<display_length compare="ge">600</display_length>
</recommends>
<supports>
<control>pointing</control>
<control>keyboard</control>
<control>touch</control>
</supports>
<project_license>GPL-3.0</project_license>
<developer_name>redstrate</developer_name>
<screenshots>
<screenshot type="default">
<image width="1033" height="667">https://xiv.zone/astra/main-screenshot.png</image>
</screenshot>
</screenshots>
</component>

View file

@ -6,8 +6,8 @@ GenericName=FFXIV Launcher
Comment=Linux launcher for FFXIV Comment=Linux launcher for FFXIV
Exec=astra %u Exec=astra %u
Terminal=false Terminal=false
Icon=com.redstrate.astra Icon=zone.xiv.astra
Type=Application Type=Application
Categories=Games; Categories=X-Games;
X-KDE-FormFactor=desktop;tablet; X-KDE-FormFactor=desktop;tablet;
SingleMainWindow=true SingleMainWindow=true

View file

@ -2,18 +2,18 @@
<!-- Created with Inkscape (http://www.inkscape.org/) --> <!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg <svg
width="56mm" width="56mm"
height="56mm" height="56mm"
viewBox="0 0 56 56" viewBox="0 0 56 56"
version="1.1" version="1.1"
id="svg5" id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="com.redstrate.astra.svg" sodipodi:docname="com.redstrate.astra.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"> >
<sodipodi:namedview <sodipodi:namedview
id="namedview7" id="namedview7"
pagecolor="#ffffff" pagecolor="#ffffff"

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View file

@ -37,6 +37,20 @@ modules:
sources: sources:
- type: git - type: git
url: https://github.com/stachenov/quazip.git url: https://github.com/stachenov/quazip.git
- name: kirigami-addons
config-opts:
- -DBUILD_TESTING=OFF
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
buildsystem: cmake-ninja
sources:
- type: archive
url: https://download.kde.org/stable/kirigami-addons/kirigami-addons-0.10.0.tar.xz
sha256: 9897e70bf167f579cec06d09d49a9a27aba184cbd1b2fce2c3ae757a87b01216
- name: icon
buildsystem: simple
build-commands:
- mkdir -p /app/share/icons/hicolor/32x32/apps/
- install -D /usr/share/icons/breeze/mimetypes/64/none.svg /app/share/icons/hicolor/32x32/apps/zone.xiv.astra.svg
- name: astra - name: astra
buildsystem: cmake-ninja buildsystem: cmake-ninja
config-opts: config-opts:
@ -44,8 +58,9 @@ modules:
- -DRust_COMPILER=/usr/lib/sdk/rust-stable/bin/rustc - -DRust_COMPILER=/usr/lib/sdk/rust-stable/bin/rustc
- -DENABLE_GAMEMODE=OFF - -DENABLE_GAMEMODE=OFF
- -DENABLE_CLI=OFF - -DENABLE_CLI=OFF
- -DBUILD_FLATPAK=ON
build-options: build-options:
build-args: build-args:
- --share=network # needed for cargo unfortunately, flatpak has no native support (yet) - --share=network # needed for cargo unfortunately, flatpak has no native support (yet)
sources: sources:
- type: dir - type: dir