Hi.
I am trying to publish my first app in Flathub. Unfortunately, my manifesto contained an argument granting web access permissions to the build tool to download the PySide6 dependency. I was asked to make the build offline and therefore not use this permission. Unfortunately, I donβt know how to get rid of this permission well and still be able to build the application using PySide6.
Manifest without internet access for builder:
app-id: eu.cichy1173.tabela
runtime: org.kde.Platform
runtime-version: '6.2'
sdk: org.kde.Sdk
command: tabela
finish-args:
- --share=ipc
- --share=network
- --socket=x11
- --device=dri
- --filesystem=host
desktop-file-name: eu.cichy1173.eu.desktop
modules:
- name: tabela
buildsystem: simple
build-commands:
- python -m pip install --prefix=/app .
sources:
- type: git
url: https://codeberg.org/cichy1173/tabela-flatpak.git
commit: 73753ba98060e0b8f792f306e36eafbe941b6b55
build-extensions:
- org.freedesktop.Sdk.Extension.python3.9
extra-data:
- name: icons
dest: share/icons/hicolor
sources:
- type: file
path: tabela.png
Repository for my application: cichy1173/tabela-flatpak: Repository for Flatpak version of tabela app - tabela-flatpak - Codeberg.org
Setup.py file:
from setuptools import setup
package_name = 'tabela'
filename = 'tabela/__init__.py'
setup(
name='tabela',
version='1.0',
description='Simple app that shows CSV content in table.',
author='cichy1173',
author_email='grzegorz@cichy1173.eu',
packages=['tabela'],
install_requires=[
'PySide6',
],
entry_points={
'console_scripts': [
'tabela=tabela.main:main',
],
},
)
Thanks in Advance
Add these modules to your Manifest:
- name: qt-include
# https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-787
buildsystem: simple
build-commands:
- mkdir -p /app/include/qt
- cp -R /usr/include/Qt* /app/include/qt
cleanup:
- /include
- name: PySide6
buildsystem: cmake-ninja
builddir: true
config-opts:
config-opts:
- -DCMAKE_BUILD_TYPE=Release
- -DBUILD_TESTS=OFF
sources:
- type: archive
url: https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-6.5.1.1-src/pyside-setup-everywhere-src-6.5.1.1.tar.xz
sha256: 9741a06f0b7d4b2168818448134bc7e96ddb5efb846a3915b4177ba4159b5b78
- type: shell
commands:
# use qt-include
- sed -i 's|\(--include-paths=\)|\1/app/include/qt:|' sources/pyside6/cmake/Macros/PySideModules.cmake
# fix python module search path
- sed -i '/--sys-path\b/ a "${pysidebindings_BINARY_DIR}/.."' sources/pyside6/cmake/Macros/PySideModules.cmake
cleanup:
- /plugins
- /include
- /bin
``
1 Like
Hello! Thank You for your answer! I added this, and manifest now looks like that:
app-id: eu.cichy1173.tabela
runtime: org.kde.Platform
runtime-version: '6.2'
sdk: org.kde.Sdk
command: tabela
finish-args:
- --share=ipc
- --share=network
- --socket=x11
- --device=dri
- --filesystem=host
modules:
# sha256: d9680ff298ee8b01a68de20911c60da04568a0918b3062d4c571ef170b4603ff
- name: qt-include
# https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-787
buildsystem: simple
build-commands:
- mkdir -p /app/include/qt
- cp -R /usr/include/Qt* /app/include/qt
cleanup:
- /include
- name: PySide6
buildsystem: cmake-ninja
builddir: true
config-opts:
config-opts:
- -DCMAKE_BUILD_TYPE=Release
- -DBUILD_TESTS=OFF
sources:
- type: archive
url: https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-6.5.1.1-src/pyside-setup-everywhere-src-6.5.1.1.tar.xz
sha256: 9741a06f0b7d4b2168818448134bc7e96ddb5efb846a3915b4177ba4159b5b78
- type: shell
commands:
# use qt-include
- sed -i 's|\(--include-paths=\)|\1/app/include/qt:|' sources/pyside6/cmake/Macros/PySideModules.cmake
# fix python module search path
- sed -i '/--sys-path\b/ a "${pysidebindings_BINARY_DIR}/.."' sources/pyside6/cmake/Macros/PySideModules.cmake
cleanup:
- /plugins
- /include
- /bin
- name: tabela
buildsystem: simple
build-commands:
- python -m pip install --prefix=/app .
sources:
- type: git
url: https://codeberg.org/cichy1173/tabela-flatpak.git
commit: 73753ba98060e0b8f792f306e36eafbe941b6b55
I have this error:
CMake Error at sources/shiboken6/cmake/ShibokenHelpers.cmake:170 (find_package):
Could not find a package configuration file provided by "Clang" with any of
the following names:
ClangConfig.cmake
clang-config.cmake
Add the installation prefix of "Clang" to CMAKE_PREFIX_PATH or set
"Clang_DIR" to a directory containing one of the above files. If "Clang"
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
sources/shiboken6/cmake/ShibokenSetup.cmake:38 (setup_clang)
sources/shiboken6/CMakeLists.txt:14 (include)
-- Configuring incomplete, errors occurred!
See also "/run/build/PySide6/_flatpak_build/CMakeFiles/CMakeOutput.log".
See also "/run/build/PySide6/_flatpak_build/CMakeFiles/CMakeError.log".
Error: module PySide6: Proces potomny zostaΕ zakoΕczony z kodem 1
I also tried to use Flatpak PIP Generator for generating all this modules using requirments.txt, but i have this error:
Running: "flatpak --filesystem=/home/cichy1173/Projekty/tabela-flatpak/requirements.txt --devel --share=network --filesystem=/tmp --command=pip3 run org.kde.Sdk//6.2 download --exists-action=i --dest /tmp/pip-generator-pypi-dependenciesf05pzzqh -r /home/cichy1173/Projekty/tabela-flatpak/requirements.txt"
Collecting PySide6==6.2.0
Downloading PySide6-6.2.0-6.2.0-cp36.cp37.cp38.cp39.cp310-abi3-manylinux1_x86_64.whl (269.4 MB)
ββββββββββββββββββββββββββββββββββββββββ 269.4/269.4 MB 11.0 MB/s eta 0:00:00
Collecting shiboken6==6.2.0
Downloading shiboken6-6.2.0-6.2.0-cp36.cp37.cp38.cp39.cp310-abi3-manylinux1_x86_64.whl (996 kB)
ββββββββββββββββββββββββββββββββββββββββ 996.5/996.5 kB 14.8 MB/s eta 0:00:00
Saved /tmp/pip-generator-pypi-dependenciesf05pzzqh/PySide6-6.2.0-6.2.0-cp36.cp37.cp38.cp39.cp310-abi3-manylinux1_x86_64.whl
Saved /tmp/pip-generator-pypi-dependenciesf05pzzqh/shiboken6-6.2.0-6.2.0-cp36.cp37.cp38.cp39.cp310-abi3-manylinux1_x86_64.whl
Successfully downloaded PySide6 shiboken6
========================================================================
Downloading arch independent packages
========================================================================
Traceback (most recent call last):
File "/home/cichy1173/Projekty/tabela-flatpak/flatpak-pip-generator", line 271, in <module>
url = get_tar_package_url_pypi(name, version)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/cichy1173/Projekty/tabela-flatpak/flatpak-pip-generator", line 88, in get_tar_package_url_pypi
raise Exception(err)
Exception: Failed to get shiboken6-6.2.0 source from https://pypi.org/pypi/shiboken6/6.2.0/json
Sorry, forgot to mention. you need also to add this:
sdk-extensions:
- org.freedesktop.Sdk.Extension.llvm16
build-options:
append-path: /usr/lib/sdk/llvm16/bin
prepend-ld-library-path: /usr/lib/sdk/llvm16/lib
This needs to be added above the modules section.
Please note that the runtime version 6.2 you use is deprecated. You should use version 6.5 instead.
1 Like
Thank You for your response. I feel I am getting there, but I still have some problems.
I changed runtime for 6.5 and I changed setup.py on codeberg.
Manifest:
app-id: eu.cichy1173.tabela
runtime: org.kde.Platform
runtime-version: '6.5'
sdk: org.kde.Sdk
command: tabela
finish-args:
- --share=ipc
- --share=network
- --socket=x11
- --device=dri
- --filesystem=host
sdk-extensions:
- org.freedesktop.Sdk.Extension.llvm16
build-options:
append-path: /usr/lib/sdk/llvm16/bin
prepend-ld-library-path: /usr/lib/sdk/llvm16/lib
modules:
- name: qt-include
# https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-787
buildsystem: simple
build-commands:
- mkdir -p /app/include/qt
- cp -R /usr/include/Qt* /app/include/qt
cleanup:
- /include
- name: PySide6
buildsystem: cmake-ninja
builddir: true
config-opts:
- -DCMAKE_BUILD_TYPE=Release
- -DBUILD_TESTS=OFF
sources:
- type: archive
url: https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-6.5.1.1-src/pyside-setup-everywhere-src-6.5.1.1.tar.xz
sha256: 9741a06f0b7d4b2168818448134bc7e96ddb5efb846a3915b4177ba4159b5b78
- type: shell
commands:
# use qt-include
- sed -i 's|\(--include-paths=\)|\1/app/include/qt:|' sources/pyside6/cmake/Macros/PySideModules.cmake
# fix python module search path
- sed -i '/--sys-path\b/ a "${pysidebindings_BINARY_DIR}/.."' sources/pyside6/cmake/Macros/PySideModules.cmake
cleanup:
- /plugins
- /include
- /bin
- name: tabela
buildsystem: simple
build-commands:
- python -m pip install --prefix=/app .
sources:
- type: git
url: https://codeberg.org/cichy1173/tabela-flatpak.git
commit: bed5fcacf23d5fd958c8ce12ec584b6c96a956ff
Setup.py (I added version for pyside6)
from setuptools import setup
package_name = 'tabela'
filename = 'tabela/__init__.py'
setup(
name='tabela',
version='1.0',
description='Simple app that shows CSV content in table.',
author='cichy1173',
author_email='grzegorz@cichy1173.eu',
packages=['tabela'],
install_requires=[
'PySide6==6.5.0',
],
entry_points={
'console_scripts': [
'tabela=tabela.main:main',
],
},
)
But i have this problem:
INFO: pip is looking at multiple versions of tabela to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement PySide6==6.5.0 (from tabela) (from versions: none)
ERROR: No matching distribution found for PySide6==6.5.0
Error: module tabela: Proces potomny zostaΕ zakoΕczony z kodem 1
I must add that, building with command python -m pip install .
works. Also I had no issues with Snap package.
Try adding --no-deps --no-build-isolation
to your pip command
1 Like
THANK YOU!! It is working now that how it should be!
I am sorry for being that needy for help, but I see you have a lot of experience with Flatpak. Can you tell me if is everything right with my app for publishing app in Flathub? Repo of the app: cichy1173/tabela-flatpak: Repository for Flatpak version of tabela app - tabela-flatpak - Codeberg.org
Manifesto for flathub:
app-id: eu.cichy1173.tabela
runtime: org.kde.Platform
runtime-version: '6.5'
sdk: org.kde.Sdk
command: tabela
finish-args:
- --share=ipc
- --share=network
- --socket=x11
- --device=dri
- --filesystem=host
sdk-extensions:
- org.freedesktop.Sdk.Extension.llvm16
build-options:
append-path: /usr/lib/sdk/llvm16/bin
prepend-ld-library-path: /usr/lib/sdk/llvm16/lib
modules:
- name: qt-include
# https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-787
buildsystem: simple
build-commands:
- mkdir -p /app/include/qt
- cp -R /usr/include/Qt* /app/include/qt
cleanup:
- /include
- name: PySide6
buildsystem: cmake-ninja
builddir: true
config-opts:
- -DCMAKE_BUILD_TYPE=Release
- -DBUILD_TESTS=OFF
sources:
- type: archive
url: https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-6.5.1.1-src/pyside-setup-everywhere-src-6.5.1.1.tar.xz
sha256: 9741a06f0b7d4b2168818448134bc7e96ddb5efb846a3915b4177ba4159b5b78
- type: shell
commands:
# use qt-include
- sed -i 's|\(--include-paths=\)|\1/app/include/qt:|' sources/pyside6/cmake/Macros/PySideModules.cmake
# fix python module search path
- sed -i '/--sys-path\b/ a "${pysidebindings_BINARY_DIR}/.."' sources/pyside6/cmake/Macros/PySideModules.cmake
cleanup:
- /plugins
- /include
- /bin
- name: tabela
buildsystem: simple
build-commands:
- python -m pip install --no-deps --no-build-isolation --prefix=/app .
sources:
- type: git
url: https://codeberg.org/cichy1173/tabela-flatpak.git
commit: bed5fcacf23d5fd958c8ce12ec584b6c96a956ff
I suggest you to just create the submit PR. It will be reviewed there.
1 Like
I created that files (.desktop and xml appstream which I have in root directory on codeberg repo - sorry, I tried to link this files, but the forum marked them as spam/ad), but I think, I use this files in a wrong way. How can I fix this? @JakobDev