Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Flatpak and desktop and metainfo.xml file #536

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions packaging/Flatpak/flathub.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"only-arches": ["x86_64"]
}
11 changes: 11 additions & 0 deletions packaging/Flatpak/org.telesculptor.TeleSculptor.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[Desktop Entry]
Version=1.0
Name=TeleSculptor
GenericName=Aerial Photogrammetry
Comment=Photogrammetry designed with a focus on aerial video
Exec=TeleSculptor %U
Terminal=false
Type=Application
Icon=org.telesculptor.TeleSculptor
Categories=Qt;Science;DataVisualization;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might consider adding ImageProcessing, Geoscience, and 3DGraphics, maybe also AudioVideo;Video. There are other categories that might fit too.

Copy link
Author

@kevinsmia1939 kevinsmia1939 Sep 24, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does TeleSculptor also have audio, so it can be include in AudioVideo category?
Nevermind, AudioVideo have to follow Video anyway.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, no audio, but it sounds like to include Video you also need AudioVideo as a super category.


39 changes: 39 additions & 0 deletions packaging/Flatpak/org.telesculptor.TeleSculptor.metainfo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>org.telesculptor.TeleSculptor</id>
<launchable type="desktop-id">org.telesculptor.TeleSculptor.desktop</launchable>
<name>TeleSculptor</name>
<summary>Photogrammetry designed with a focus on aerial video</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>BSD-3-Clause</project_license>
<description>
<p>
TeleSculptor is a cross-platform desktop application for photogrammetry.
It was designed with a focus on aerial video, such as video collected from
UAVs, and handles geospatial coordinates and can make use of metadata,
if available, from GPS and IMU sensors. However, the software can also work
with non-geospatial data and with collections of images instead of metadata.
TeleSculptor uses Structure-from-Motion techniques to estimate camera
parameters as well as a sparse set of 3D landmarks.
It uses Multiview Stereo techniques to estimate dense depth maps on key
frame and then fuses those depth maps into a consistent surface mesh which
can be colored from the source imagery.
</p>
</description>
<url type="homepage">https://github.com/Kitware/TeleSculptor</url>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be better for this to be https://telesculptor.org/, which is the new homepage we've launched recently. It links back to the Github page.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will change it.

<url type="bugtracker">https://github.com/Kitware/TeleSculptor/issues</url>
<developer_name>Kitware</developer_name>
<screenshots>
<screenshot type="default">
<image>https://raw.githubusercontent.com/Kitware/TeleSculptor/master/doc/screenshot/telesculptor_screenshot_linux.png</image>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/Kitware/TeleSculptor/master/doc/screenshot/telesculptor_screenshot_calibration.png</image>
</screenshot>
</screenshots>
<content_rating type="oars-1.1"/>
<releases>
<release version="1.2.0" date="2021-09-21">
</release>
</releases>
</component>
88 changes: 88 additions & 0 deletions packaging/Flatpak/org.telesculptor.TeleSculptor.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
app-id: org.telesculptor.TeleSculptor
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is okay. Another option might be com.kitware.TeleSculptor, but I'm not sure what rules are used to determine what this name should be.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the new homepage is telesculptor.org, would not the org.telesculptor.TeleSculptor be better?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably. I'm not suggesting that this needs to be changed, I'm just trying to figure out how these ids are chosen and what the conventions are. You said you've done this for other Kitware open source tools right? Do those follow the same conventions?

Copy link
Author

@kevinsmia1939 kevinsmia1939 Sep 24, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The naming follow "reverse DNS"
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#file-naming

Usually, it would be the main website of the software, like org.paraview.ParaView.
Now, the name must have 2 dots. So the name usually repeats. if it is too short.
But of course, it think it is better for you to pick the name you prefer.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

org.telesculptor.TeleSculptor seems correct then, especially if ParaView is org.paraview.ParaView since that is a highly analogous example.

runtime: org.kde.Platform
runtime-version: '5.15'
sdk: org.kde.Sdk
command: TeleSculptor
finish-args:
- --share=ipc
- --socket=x11
- --device=dri
- --filesystem=home
cleanup:
- /include
- /lib/pkgconfig
- /share/man
- "*.la"
- "*.a"

modules:
- name: lapack
buildsystem: cmake-ninja
builddir: true
config-opts:
- -DCMAKE_BUILD_TYPE=Release
- -DBUILD_SHARED_LIBS=ON
- -DBUILD_TESTING=OFF
- -DLAPACKE=ON
- -DCBLAS=ON
sources:
- type: archive
url: https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v3.10.0.tar.gz
sha256: 328c1bea493a32cac5257d84157dc686cc3ab0b004e2bea22044e0a59f6f8a19
x-checker-data:
type: anitya
project-id: 1534
stable-only: true
url-template: https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v$version.tar.gz

# TeleSculptor need libicui18n.so.60
- name: ICU-60
subdir: source
config-opts:
- --disable-static
- --enable-shared
- --disable-samples
sources:
- type: archive
url: https://github.com/unicode-org/icu/releases/download/release-60-3/icu4c-60_3-src.tgz
sha256: 476287b17db6e0b7da230dce4b58e8e5669b1510847f82cab3647920f1374390

# Install the binary instead of building from source, I can't figured it out.
# Use source file only for LICENSE and icon file, self-extract file does not extract LICENSE.
- name: TeleSculptor
buildsystem: simple
ensure-writable:
- /lib
- /share
build-commands:
- chmod +x TeleSculptor-1.2.0-Linux-x86_64.sh
- ./TeleSculptor-1.2.0-Linux-x86_64.sh --skip-license
- cp -r {bin,lib,share} ${FLATPAK_DEST}
- cp -r sourcefile/LICENSE ${FLATPAK_DEST}/share/telesculptor
- mkdir -p /app/share/icons/hicolor/512x512/apps
- cp -r sourcefile/gui/icons/512x512/telesculptor.png ${FLATPAK_DEST}/share/icons/hicolor/512x512/apps/${FLATPAK_ID}.png
- install -Dm0644 $FLATPAK_ID.metainfo.xml ${FLATPAK_DEST}/share/metainfo/$FLATPAK_ID.metainfo.xml
- install -Dm0644 $FLATPAK_ID.desktop ${FLATPAK_DEST}/share/applications/$FLATPAK_ID.desktop
sources:
- type: file
url: https://github.com/Kitware/TeleSculptor/releases/download/v1.2.0/TeleSculptor-1.2.0-Linux-x86_64.sh
sha256: 29044a438af721a5819fdf79f383527d63d49cfff95fb887b3b2accbaac22398
x-checker-data:
type: anitya
project-id: 222360
stable-only: true
url-template: https://github.com/Kitware/TeleSculptor/releases/download/v$version/TeleSculptor-$version-Linux-x86_64.sh
- type: archive
url: https://github.com/Kitware/TeleSculptor/archive/refs/tags/v1.2.0.tar.gz
x-checker-data:
type: anitya
project-id: 222360
stable-only: true
url-template: https://github.com/Kitware/TeleSculptor/archive/refs/tags/v$version.tar.gz
sha256: eb7c04a15f3c14699810815d0edaab70bf225a123c68fd5417a81fb36589fb81
dest: sourcefile
- type: file
path: org.telesculptor.TeleSculptor.metainfo.xml
- type: file
path: org.telesculptor.TeleSculptor.desktop