Criar pacote Flatpak

Estou virando a noite tentando criar um pacote em Flatpak, inicialmente para testar uma build local, depois subir para o Flathub, com a permissão do desenvolvedores originais do projeto o qual estou usando como base. Segue o yml e o erro:

app-id: com.jgmelon22.trello-desktop
runtime: org.freedesktop.Platform
runtime-version: '22.08'
sdk: org.freedesktop.Sdk
command: node /app/trello-desktop/resources/app/main.js
finish-args:
  - '--share=ipc'
  - '--socket=wayland'
  - '--socket=x11'
  - '--socket=pulseaudio'
  - '--share=network'
  - '--filesystem=host'
desktop-file:
  name: Trello Desktop
  icon: /app/trello-desktop/resources/app/icon.png
  exec: /app/trello-desktop/resources/app/main.js
modules:
  - name: node18
    buildsystem: simple
    build-commands:
      - echo "nothing to build"
    cleanup:
      - "*.pyc"
    sources:
      - type: flatpak
        url: https://flathub.org/repo/appstream/org.freedesktop.Sdk.Extension.node18.flatpakref
        sha256: 56cefbef92d9f95c1a03a1f2952d0ad94ee3c4e03a9847486d74b6dc2922396f
  - name: electron22
    buildsystem: simple
    build-commands:
      - echo "nothing to build"
    cleanup:
      - "*.pyc"
    sources:
      - type: flatpak
        url: https://flathub.org/repo/appstream/com.github.electron.framework.Electron22.flatpakref
        sha256: 545c95e24e12da8b78f7b13262afecb9c0d2e1fa3a8be23f6c9f08d34ec6c141
  - name: trello-desktop
    buildsystem: simple
    build-commands:
      - install -D Trello /home/joaog/Documents/FlatpakProject/trello-desktop/dist/Trello-linux-x64
    sources:
      - type: git
        url: https://github.com/JGMelon22/trello-desktop.git
        tag: v0.2.1
    cleanup:
      - /usr/share/doc/*
      - /usr/share/man/*
      - /usr/share/info/*
      - /usr/share/locale/*/*

Error: install: target '/home/joaog/Documents/FlatpakProject/trello-desktop/dist/Trello-linux-x64': No such file or directory Error: module trello-desktop: Child process exited with code 1

1 curtida

Não sei se você conseguiu contornar o problema, mas outra forma de se obter ajuda sobre empacotamento em Flatpak é no grupo Flatpak, Snap e Appimage (Telegram: Contact @flatpaksnapappimage) (Matrix - https://app.element.io/#/room/#flatpaksnapappimage:matrix.org). Alguns usuários nesse grupo empacotam app em Flatpak.

2 curtidas

O local onde você está tentando instalar, existe? Outra questão, eu aconselho coisas como ~/Documents/FlatpakProject/...

build-commands:
      - mkdir -p /home/joaog/Documents/FlatpakProject/trello-desktop/dist/Trello-linux-x64
      - install -D Trello /home/joaog/Documents/FlatpakProject/trello-desktop/dist/Trello-linux-x64
   
1 curtida

Sim, o local existe. Já está compilado até, isso foi a primeira coisa que verifiquei

Ok, eu revisei o argumento -D e nem faz muito sentido o que eu disse mesmo…
Se o arquivo Trello já existe, você já tentou rodar manualmente no terminal:

install -D Trello /home/joaog/Documents/FlatpakProject/trello-desktop/dist/Trello-linux-x64

Pois se funcionar, pode ser que o builder esteja trocando o diretório de trabalho.

1 curtida

Nunca fiz o empacotamento de pacotes flatpack, mas agora me veio a mente, acho que você não está considerando que o build está ocorrendo em um sandbox.

Se não me engano no sandbox você deve trabalhar com /app/...

build-commands:
      - install -D Trello /app/trello-desktop/dist...

Considere que você está trabalhando com uma tecnologia de conteinerização. A visão que você tem no terminal local, não é a mesma do que está executando dentro do sandbox.

1 curtida

Sem exito :confused:


Eu andei lendo um pouco, e isso pode ser interessante para você:

O Flatpack constrói seus pacotes em um build environment que é diferente do runtime environment, logo, mesmo que você tenha colocado --filesystem=host no seu finish-args, você só vai ganhar acesso ao filesystem do host no ambiente de execução.

Logo, instale em /app, faz sentido, é host-agnóstico e elegante.

1 curtida

Este tópico foi fechado automaticamente. Novas respostas não são mais permitidas.