Initial AppImage packaging on Conan.

This commit is contained in:
Julian Groß 2025-04-12 15:50:45 +02:00
parent 881a0ce999
commit e2d3e826d5
4 changed files with 234 additions and 2 deletions

View file

@ -1,13 +1,13 @@
<!--
Copyright 2013-2019 High Fidelity, Inc.
Copyright 2020-2021 Vircadia contributors
Copyright 2021-2022 Overte e.V.
Copyright 2021-2025 Overte e.V.
SPDX-License-Identifier: Apache-2.0
-->
# Creating an Installer
*Last Updated on June 16, 2021*
*Last Updated on April 12, 2025*
Follow the [build guide](BUILD.md) to figure out how to build Overte for your platform.
@ -130,6 +130,38 @@ For code signing to work, you will need to set the `HF_PFX_FILE` and `HF_PFX_PAS
### Linux
#### Client
##### AppImage
Overte Interface AppImages are built using [linuxdeploy](https://github.com/linuxdeploy/linuxdeploy) and [linuxdeploy-plugin-qt](https://github.com/linuxdeploy/linuxdeploy-plugin-qt).
**AppImages need to be built using the glibc version of the oldest Linux distribution it is supposed to run on.** We target the oldest Ubuntu LTS which still receives standard (not ESM) security updates.
1. Prepare build environment
Follow the [Linux build guide](BUILD_LINUX.md).
2. Configure Interface (**Make sure that OVERTE_CPU_ARCHITECTURE is set to an empty string or `-msse3` depending on target CPU architecture!**)
```bash
cmake --preset conan-release -DOVERTE_CPU_ARCHITECTURE=-msse3
```
3. Build Interface
```bash
cmake --build --preset conan-release --target interface
```
4. Copy `build/interface/plugins` `build/interface/scripts` `build/interface/resources.rcc` and `build/interface/resources` into `build/AppDir/usr/bin/`
5. Copy `interface/org.overte.interface.appdata.xml` to `build/AppDir/usr/share/metainfo/org.overte.interface.appdata.xml`
6. Run linuxdeploy (make sure that linuxdeploy-plugin-qt is next to linuxdeploy and that both are executable)
```bash
export "QML_SOURCES_PATHS=interface/resources/qml/"
~/temp/linuxdeploy-x86_64.AppImage --appdir build/AppDir --executable build/interface/interface --output appimage --plugin qt --icon-file interface/icon/interface.svg --desktop-file interface/org.overte.interface.desktop
```
7. Lint with [appimagelint](https://github.com/TheAssassin/appimagelint) to check which Linux distributions the AppImage will likely be able to run on.
#### Server
##### Debian package

View file

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="14.816667mm"
height="14.816667mm"
viewBox="0 0 14.816667 14.816667"
version="1.1"
id="svg5"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="LOGO_Overte_Interface.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<title
id="title715">LOGO_Overte_Interface</title>
<sodipodi:namedview
id="namedview7"
pagecolor="#d1d1d1"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="true"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.2057243"
inkscape:cx="163.38727"
inkscape:cy="60.959209"
inkscape:window-width="1627"
inkscape:window-height="1011"
inkscape:window-x="1705"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer4" />
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="pastille"
style="display:inline"
transform="translate(-64.878913,-47.104301)">
<circle
style="fill:#6667ab;fill-opacity:1;stroke-width:0.326686"
id="path12778"
cx="72.287247"
cy="54.512634"
r="7.4083333" />
</g>
<g
inkscape:label="Letters"
inkscape:groupmode="layer"
id="layer1"
style="display:inline"
transform="translate(-64.878913,-47.104301)">
<path
style="fill:#ffffff;fill-opacity:1;stroke-width:0.0240699"
d="m 71.752748,60.147164 c -1.377172,-0.14605 -2.574378,-0.732869 -3.530213,-1.730362 -0.825342,-0.861313 -1.341717,-1.931985 -1.516444,-3.144257 -0.04744,-0.329165 -0.04014,-1.234694 0.01269,-1.573208 0.220327,-1.411764 0.906991,-2.625395 2.001937,-3.538291 0.406864,-0.339217 0.998514,-0.688227 1.513503,-0.892803 0.204169,-0.0811 0.718969,-0.241851 0.774539,-0.241851 0.02985,0 0.03471,0.208002 0.03471,1.487877 v 1.48788 l -0.09026,0.04291 c -0.261261,0.124198 -0.69358,0.506545 -0.926976,0.819823 -0.7253,0.973539 -0.719063,2.366351 0.01495,3.335577 0.675906,0.892517 1.728786,1.300709 2.82169,1.093946 1.110321,-0.210056 2.027379,-1.147031 2.226244,-2.274592 0.04085,-0.23159 0.04094,-0.754422 2.06e-4,-0.986869 -0.07876,-0.449196 -0.279384,-0.901684 -0.549607,-1.239604 -0.23905,-0.298937 -0.685088,-0.667484 -0.963399,-0.796026 L 73.475802,51.95089 73.4751,50.476605 c -4.67e-4,-1.042841 0.007,-1.474284 0.02546,-1.474284 0.05635,0 0.413281,0.100024 0.646028,0.181038 2.077867,0.723258 3.543285,2.558867 3.779523,4.734302 0.03259,0.300057 0.03259,0.917373 0,1.21743 -0.116007,1.068259 -0.594065,2.195254 -1.273315,3.001776 -0.907409,1.077435 -2.114515,1.75767 -3.504262,1.974746 -0.280638,0.04384 -1.116884,0.06513 -1.395838,0.03555 z"
id="path339"
sodipodi:nodetypes="cssssssscsscsscssccscsssscc" />
</g>
<metadata
id="metadata713">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>LOGO_Overte_Interface</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2023 Dale Glass <dale\@daleglass.net>
Copyright 2023-2025 Overte e.V.
-->
<component type="desktop-application">
<id>org.overte.interface</id>
<metadata_license>FSFAP</metadata_license>
<project_license>Apache-2.0</project_license>
<name>Overte</name>
<summary>Overte open-source social-VR client</summary>
<summary xml:lang="de">Quelloffene Social-VR Anwendung</summary>
<developer id="org.overte">
<name>Overte e.V.</name>
</developer>
<content_rating type="oars-1.1">
<content_attribute id="social-chat">moderate</content_attribute>
<content_attribute id="social-audio">moderate</content_attribute>
</content_rating>
<description>
<p>
Overte is an open source virtual worlds and social VR software which enables you to create and share virtual worlds as virtual reality (VR) and desktop experiences. You can create and host your own virtual world, explore other worlds, meet and connect with other users, attend or host live VR events, and much more.
</p>
<p>
The Overte software provides the following key features:
</p>
<ul>
<li>Collaborative world creation and editing</li>
<li>VR support, including body tracking</li>
<li>Scalability for up to 500 users in a single world</li>
<li>Scripting in JavaScript, which allows creation of games, interactables, UI elements, and custom applications</li>
<li>High quality low latency spatial audio</li>
<li>Powerful physics through Bullet physics engine</li>
<li>Fully open-source under the permissive Apache 2.0 license</li>
<li>No central authority. You can run your own server from home.</li>
<li>No user account required</li>
<li>Supported by a democratic non-profit organization</li>
</ul>
</description>
<categories>
<category>Game</category>
<category>Network</category>
<category>Qt</category>
</categories>
<launchable type="desktop-id">org.overte.interface.desktop</launchable>
<screenshots>
<screenshot type="default">
<caption>Creation UI</caption>
<image>https://overte.org/_images/Create_UI_2.jpeg</image>
</screenshot>
<screenshot>
<caption>Hanging out on Maker Monday</caption>
<image>https://overte.org/_images/overte-snap-by--on-2022-02-20_19-48-33.jpeg</image>
</screenshot>
<screenshot>
<caption>Kreolis playing in Brainstormer's Club</caption>
<image>https://overte.org/_images/overte-snap-by-X74hc595-on-2023-02-26_19-01-20.jpg</image>
</screenshot>
<screenshot>
<caption>Pool toys exploring a fantasy island</caption>
<image>https://overte.org/_images/overte-snap-by-X74hc595-on-2023-01-15_22-01-12.jpg</image>
</screenshot>
<screenshot>
<caption>Basinsky showing off his photogrammetry worlds</caption>
<image>https://overte.org/_images/overte-snap-by--on-2022-12-14_23-23-03.jpg</image>
</screenshot>
<screenshot>
<caption>Installing new lanterns on the Hub bridge</caption>
<image>https://overte.org/_images/overte-snap-by-X74hc595-on-2023-03-27_22-42-02.jpg</image>
</screenshot>
</screenshots>
<!--
The version of our logo used as desktop icon already has the brand color in it.
Maybe we can use another version of the logo on stores?
<branding>
<color type="primary" scheme_preference="light">#6667AB</color>
<color type="primary" scheme_preference="dark">#6667AB</color>
</branding>
-->
<url type="homepage">https://overte.org/</url>
<url type="bugtracker">https://github.com/overte-org/overte/issues</url>
<url type="help">https://docs.overte.org/</url>
<url type="translate">https://weblate.overte.org/</url>
<url type="donation">https://overte.org/donate.html</url>
<url type="contribute">https://docs.overte.org/contribute.html</url>
<url type="faq">https://docs.overte.org/faq.html</url>
<supports>
<control>pointing</control>
<control>keyboard</control>
<control>gamepad</control>
<!--
The touch UI gets enabled at compile time when building for Android.
It should be possible to enable it for Linux as well somehow.
<control>touch</control>
-->
</supports>
<recommends>
<!-- 10 mbit/s downstream and 2 mbit/s upstream -->
<internet bandwidth_mbitps="10">always</internet>
</recommends>
<provides>
<binary>Overte</binary>
</provides>
<releases>
<release version="2024.07.1" date="2024-07-13">
<url>https://github.com/overte-org/overte/blob/master/CHANGELOG.md</url>
</release>
</releases>
</component>

View file

@ -0,0 +1,8 @@
[Desktop Entry]
Version=1.0
Name=Overte
Terminal=false
Type=Application
Exec=interface
Icon=interface
Categories=Network;Qt;