1
Fork 0
mirror of https://github.com/redstrate/Astra.git synced 2025-04-20 03:37:47 +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
- flatpak: |
cd astra
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
./build-flatpak.sh
artifacts:
- astra/build-cmake/bin/astra
- astra/astra.flatpak

View file

@ -3,11 +3,11 @@ Upstream-Name: Astra
Upstream-Contact: Joshua Goins <josh@redstrate.com>
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>
License: CC0-1.0
Files: com.redstrate.astra.svg
Files: zone.xiv.astra.svg
Copyright: Joshua Goins <josh@redstrate.com>
License: CC-BY-SA-4.0

View file

@ -74,8 +74,9 @@ find_package(QuaZip-Qt5 REQUIRED)
add_subdirectory(external)
add_subdirectory(launcher)
install(FILES com.redstrate.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.desktop DESTINATION ${KDE_INSTALL_APPDIR})
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)

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.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.setDesktopFileName("com.redstrate.astra");
about.setDesktopFileName("zone.xiv.astra");
about.setBugAddress("https://lists.sr.ht/~redstrate/public-inbox");
about.setComponentName("astra");
about.setProgramLogo("com.redstrate.astra");
about.setProgramLogo("zone.xiv.astra");
KAboutData::setApplicationData(about);
@ -70,16 +70,16 @@ int main(int argc, char *argv[])
LauncherCore c(false);
#endif
qmlRegisterSingletonInstance("com.redstrate.astra", 1, 0, "LauncherCore", &c);
qmlRegisterUncreatableType<GameInstaller>("com.redstrate.astra", 1, 0, "GameInstaller", QStringLiteral("Use LauncherCore::createInstaller"));
qmlRegisterUncreatableType<AccountManager>("com.redstrate.astra", 1, 0, "AccountManager", QStringLiteral("Use LauncherCore::accountManager"));
qmlRegisterUncreatableType<ProfileManager>("com.redstrate.astra", 1, 0, "ProfileManager", QStringLiteral("Use LauncherCore::profileManager"));
qmlRegisterUncreatableType<Profile>("com.redstrate.astra", 1, 0, "Profile", QStringLiteral("Use from ProfileManager"));
qmlRegisterUncreatableType<Account>("com.redstrate.astra", 1, 0, "Account", QStringLiteral("Use from AccountManager"));
qmlRegisterSingletonType("com.redstrate.astra", 1, 0, "About", [](QQmlEngine *engine, QJSEngine *) -> QJSValue {
qmlRegisterSingletonInstance("zone.xiv.astra", 1, 0, "LauncherCore", &c);
qmlRegisterUncreatableType<GameInstaller>("zone.xiv.astra", 1, 0, "GameInstaller", QStringLiteral("Use LauncherCore::createInstaller"));
qmlRegisterUncreatableType<AccountManager>("zone.xiv.astra", 1, 0, "AccountManager", QStringLiteral("Use LauncherCore::accountManager"));
qmlRegisterUncreatableType<ProfileManager>("zone.xiv.astra", 1, 0, "ProfileManager", QStringLiteral("Use LauncherCore::profileManager"));
qmlRegisterUncreatableType<Profile>("zone.xiv.astra", 1, 0, "Profile", QStringLiteral("Use from ProfileManager"));
qmlRegisterUncreatableType<Account>("zone.xiv.astra", 1, 0, "Account", QStringLiteral("Use from AccountManager"));
qmlRegisterSingletonType("zone.xiv.astra", 1, 0, "About", [](QQmlEngine *engine, QJSEngine *) -> QJSValue {
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<QList<Banner>>("QList<Banner>");
qRegisterMetaType<QList<News>>("QList<News>");

View file

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

View file

@ -8,7 +8,7 @@ import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import QtQuick.Dialogs 1.0
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
MobileForm.FormButtonDelegate {
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.Layouts 1.15
import QtWebEngine 1.10
import com.redstrate.astra 1.0
Kirigami.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.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
Controls.Control {
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.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
Kirigami.Page {
id: page

View file

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

View file

@ -6,7 +6,7 @@ import QtQuick.Window 2.15
import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
Kirigami.Page {
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.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
Kirigami.ScrollablePage {
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.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
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.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
MobileForm.FormCard {
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.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
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.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
Kirigami.ScrollablePage {
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.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
Kirigami.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.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
Kirigami.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.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
Kirigami.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.Layouts 1.15
import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
Kirigami.Page {
id: page

View file

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

View file

@ -6,7 +6,7 @@ import QtQuick.Window 2.15
import org.kde.kirigami 2.20 as Kirigami
import QtQuick.Controls 2.15 as Controls
import QtQuick.Layouts 1.15
import com.redstrate.astra 1.0
import zone.xiv.astra 1.0
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
Exec=astra %u
Terminal=false
Icon=com.redstrate.astra
Icon=zone.xiv.astra
Type=Application
Categories=Games;
Categories=X-Games;
X-KDE-FormFactor=desktop;tablet;
SingleMainWindow=true

View file

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

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View file

@ -37,6 +37,20 @@ modules:
sources:
- type: 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
buildsystem: cmake-ninja
config-opts:
@ -44,8 +58,9 @@ modules:
- -DRust_COMPILER=/usr/lib/sdk/rust-stable/bin/rustc
- -DENABLE_GAMEMODE=OFF
- -DENABLE_CLI=OFF
- -DBUILD_FLATPAK=ON
build-options:
build-args:
build-args:
- --share=network # needed for cargo unfortunately, flatpak has no native support (yet)
sources:
- type: dir