#45 Support building extensions
Merged by yselkowitz. Opened by yselkowitz.
yselkowitz/flatpak-module-tools extensions  into  main

Download 45.patch

Since extensions will generally require reorganizing files to fit the necessary layout, and because (at least application) extensions may be mounted to an arbitrary location, only runtime packages are used in building extensions. Extension container.yaml need to include at least build-extension, runtime-version, and branch, should list packages as normal, and then include a cleanup-commands to move the correct files to the necessary layout under /app.

/cc @otaylor

3 new commits added

  • Support building extensions
  • Allow local RPMs in local runtime builds
  • Fix for Koji 1.35

1 new commit added

  • Support rename-mime-file

ping @otaylor

4 new commits added

  • Support rename-mime-file
  • Support building extensions
  • Allow local RPMs in local runtime builds
  • Fix for Koji 1.35

1 new commit added

  • Support add-extensions

5 new commits added

  • Support add-extensions
  • Support rename-mime-file
  • Support building extensions
  • Allow local RPMs in local runtime builds
  • Fix for Koji 1.35

1 new commit added

  • Support rename-mime-icons

1 new commit added

  • Update generator for Flathub v2 API

ping @otaylor

7 new commits added

  • Update generator for Flathub v2 API
  • Support rename-mime-icons
  • Support add-extensions
  • Support rename-mime-file
  • Support building extensions
  • Allow local RPMs in local runtime builds
  • Fix for Koji 1.35

Example:

flatpak:
    id: org.fedoraproject.Platform.GL.default
    build-extension: true
    runtime-version: f41
    name: f41/mesa
    component: mesa-flatpak
    branch: f41
    packages:
    - mesa-filesystem
    - mesa-libd3d
    - mesa-libEGL
    - mesa-libgbm
    - mesa-libGL
    - mesa-libglapi
    - mesa-libOpenCL
    - mesa-libTeflon
    - mesa-dri-drivers
    - mesa-va-drivers
    - mesa-vdpau-drivers
    - mesa-vulkan-drivers
    # basic dependencies
    - libdrm
    - libxshmfence
    - lm_sensors-libs
    # OpenCL dependencies
    - clang-libs
    - libclc
    - llvm-libs
    - spirv-llvm-translator
    # for cleanup-commands (part of runtime)
    - coreutils-single
    - findutils
    - sed
    cleanup-commands: |
        mkdir -p /app/lib /app/share
        for l in libclang-cpp libdrm_* libEGL_mesa libgallium-* libgbm libglapi \
                 libGLX_mesa libLLVM libLLVMSPIRVLib libMesaOpenCL libRusticlOpenCL \
                 libteflon libVkLayer_MESA* libpowervr_rogue libvulkan_* \
                 libsensors libxshmfence ; \
            do mv /usr/lib64/$l.so* /app/lib/; \
        done
        mv /usr/lib64/{d3d,dri,gallium-pipe,vdpau}/ /app/lib/
        mv /usr/share/{drirc.d,glvnd,vulkan}/ /etc/OpenCL /app/share/
        ln -s lib/vdpau share/glvnd share/OpenCL share/vulkan /app/
        sed -i -e 's|/usr/lib64/|/usr/lib64/GL/default/lib/|' /app/share/vulkan/icd.d/*
        find /app -print

Another example:

flatpak:
    id: org.fedoraproject.Platform.hunspell
    build-extension: true
    runtime-version: f41
    name: hunspell
    component: hunspell-flatpak
    branch: stable
    packages:
    - hunspell-af
    - hunspell-ak
    - hunspell-am
    - hunspell-ar
    - hunspell-as
    - hunspell-ast
    - hunspell-az
    - hunspell-be
    - hunspell-ber
    - hunspell-bg
    - hunspell-bn
    - hunspell-br
    - hunspell-ca
    - hunspell-cop
    - hunspell-cs
    - hunspell-csb
    - hunspell-cv
    - hunspell-cy
    - hunspell-da
    - hunspell-de
    - hunspell-dsb
    - hunspell-ee
    - hunspell-el
    - hunspell-en
    - hunspell-eo
    - hunspell-es
    - hunspell-et
    - hunspell-eu
    - hunspell-fa
    - hunspell-fj
    - hunspell-fo
    - hunspell-fr
    - hunspell-fur
    - hunspell-fy
    - hunspell-ga
    - hunspell-gd
    - hunspell-gl
    - hunspell-grc
    - hunspell-gu
    - hunspell-gv
    - hunspell-haw
    - hunspell-he
    - hunspell-hi
    - hunspell-hil
    - hunspell-hr
    - hunspell-hsb
    - hunspell-ht
    - hunspell-hu
    - hunspell-ky
    - hunspell-ia
    - hunspell-id
    - hunspell-is
    - hunspell-it
    - hunspell-kk
    - hunspell-km
    - hunspell-kn
    - hunspell-ko
    - hunspell-ku
    - hunspell-ky
    - hunspell-la
    - hunspell-lb
    - hunspell-ln
    - hunspell-lt
    - hunspell-lv
    - hunspell-mai
    - hunspell-mg
    - hunspell-mi
    - hunspell-mk
    - hunspell-ml
    - hunspell-mn
    - hunspell-mos
    - hunspell-mr
    - hunspell-ms
    - hunspell-mt
    - hunspell-nb
    - hunspell-nds
    - hunspell-ne
    - hunspell-nl
    - hunspell-nn
    - hunspell-nr
    - hunspell-nso
    - hunspell-ny
    - hunspell-oc
    - hunspell-om
    - hunspell-or
    - hunspell-pa
    - hunspell-pl
    - hunspell-pt
    - hunspell-pt-BR
    - hunspell-qu
    - hunspell-quh
    - hunspell-ro
    - hunspell-ru
    - hunspell-rw
    - hunspell-sc
    - hunspell-se
    - hunspell-shs
    - hunspell-si
    - hunspell-sk
    - hunspell-sl
    - hunspell-sk
    - hunspell-sl
    - hunspell-smj
    - hunspell-so
    - hunspell-sq
    - hunspell-sr
    - hunspell-ss
    - hunspell-st
    - hunspell-sv
    - hunspell-sw
    - hunspell-ta
    - hunspell-te
    - hunspell-tet
    - hunspell-th
    - hunspell-tk
    - hunspell-ti
    - hunspell-tn
    - hunspell-tpi
    - hunspell-tr
    - hunspell-ts
    - hunspell-uk
    - hunspell-ur
    - hunspell-uz
    - hunspell-ve
    - hunspell-vi
    - hunspell-wa
    - hunspell-xh
    - hunspell-yi
    - hunspell-zu
    # for cleanup-commands (part of runtime)
    - coreutils-single
    - findutils
    cleanup-commands: |
        mkdir -p /app
        mv /usr/share/hunspell/* /app/

SDK extension example:

flatpak:
    id: org.fedoraproject.Sdk.Extension.golang
    build-extension: true
    runtime-version: f41
    name: f41/golang
    component: golang-flatpak
    branch: f41
    packages:
    - golang
    - golang-bin
    - golang-docs
    - golang-misc
    - golang-src
    # for cleanup-commands (part of runtime)
    - coreutils-single
    - findutils
    cleanup-commands: |
        mkdir -p /app
        mv /usr/lib/golang/* /app/
        echo -e "#!/bin/sh\nexport GOROOT=/usr/lib/sdk/golang\nexport PATH=\$PATH:/usr/lib/sdk/golang/bin" > /app/enable.sh
        chmod +x /app/enable.sh

ping @otaylor

Forward port to FCT (still needs testing): https://gitlab.com/flatpak-container/flatpak-container-tools/-/merge_requests/13

8 new commits added

  • Support extra-data
  • Update generator for Flathub v2 API
  • Support rename-mime-icons
  • Support add-extensions
  • Support rename-mime-file
  • Support building extensions
  • Allow local RPMs in local runtime builds
  • Fix for Koji 1.35

8 new commits added

  • Support extra-data
  • Update generator for Flathub v2 API
  • Support rename-mime-icons
  • Support add-extensions
  • Support rename-mime-file
  • Support building extensions
  • Allow local RPMs in local runtime builds
  • Fix for Koji 1.35

8 new commits added

  • Support extra-data
  • Update generator for Flathub v2 API
  • Support rename-mime-icons
  • Support add-extensions
  • Support rename-mime-file
  • Support building extensions
  • Allow local RPMs in local runtime builds
  • Fix for Koji 1.35

This is somewhat behind the FCT PR; will FCT be replacing FMT in Fedora immediately, or should I resync this backport?

8 new commits added

  • Support extra-data
  • Update generator for Flathub v2 API
  • Support rename-mime-icons
  • Support add-extensions
  • Support rename-mime-file
  • Support building extensions
  • Allow local RPMs in local runtime builds
  • Fix for Koji 1.35

rebased onto 3ad77c7a004d3f6aaa9a02581ea9c68415079632

4 new commits added

  • Fix test_rpm_utils with RPM 4.20
  • generator: set runtime-name based on the flathub runtime used
  • RpmBuilder: allow local repo builds of packages not yet in Koji
  • RpmBuilder: allow builds to proceed without a mainline Koji build

4 new commits added

  • tests: avoid deprecated responses syntax
  • tests: avoid deprecated Modulemd methods
  • tests: register custom markers
  • Drop pkg_resources usage

This is back in sync with the FCT merge request, which now includes a bunch of warning fixes in the testsuite.

16 new commits added

  • tests: avoid deprecated responses syntax
  • tests: avoid deprecated Modulemd methods
  • tests: register custom markers
  • Drop pkg_resources usage
  • Fix test_rpm_utils with RPM 4.20
  • generator: set runtime-name based on the flathub runtime used
  • RpmBuilder: allow local repo builds of packages not yet in Koji
  • RpmBuilder: allow builds to proceed without a mainline Koji build
  • Support extra-data
  • Update generator for Flathub v2 API
  • Support rename-mime-icons
  • Support add-extensions
  • Support rename-mime-file
  • Support building extensions
  • Allow local RPMs in local runtime builds
  • When waiting for repositories, explictly request them

rebased onto a6fb440b93d19726ed4d0bb43a33b2eb7ca36dfb

Pull-Request has been merged by yselkowitz

Metadata