[vlc-commits] [Git][videolan/vlc][3.0.x] flatpak: add sources bundle build & use vendored tools

Steve Lhomme (@robUx4) gitlab at videolan.org
Mon Jun 15 05:59:55 UTC 2026



Steve Lhomme pushed to branch 3.0.x at VideoLAN / VLC


Commits:
10a6b92f by Mathieu Velten at 2026-06-15T04:42:20+00:00
flatpak: add sources bundle build & use vendored tools

- - - - -


5 changed files:

- extras/ci/gitlab-ci.yml
- extras/package/flatpak/org.videolan.VLC.yaml
- extras/package/flatpak/package.mak
- + extras/package/flatpak/prepare-sources.sh
- extras/package/flatpak/vlc-appdata-manifest-url.patch


Changes:

=====================================
extras/ci/gitlab-ci.yml
=====================================
@@ -357,12 +357,17 @@ nightly-debian:
     extends: .docker-template
     variables:
         FLATPAK_BRANCH: 3.0.x
-        MANIFEST_PATH: extras/package/flatpak/org.videolan.VLC.yaml
     script:
-        - flatpak-builder-lint --exceptions --exceptions-repo stable manifest ${MANIFEST_PATH}
+        - flatpak-builder-lint --exceptions --exceptions-repo stable manifest extras/package/flatpak/org.videolan.VLC.yaml
         - flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
-        - flatpak-builder --default-branch ${FLATPAK_BRANCH} --install-deps-from=flathub --user --arch=${HOST_ARCH} --force-clean --disable-rofiles-fuse --ccache --mirror-screenshots-url=https://dl.flathub.org/media --compose-url-policy=full --repo=repo-${HOST_ARCH} build ${MANIFEST_PATH}
-        - flatpak build-bundle --runtime-repo=https://dl.flathub.org/repo/flathub.flatpakrepo repo-${HOST_ARCH} org.videolan.VLC_${HOST_ARCH}.flatpak org.videolan.VLC ${FLATPAK_BRANCH}
+        - flatpak install --user -y flathub org.kde.Sdk//5.15-25.08
+        - flatpak run --user --command="./extras/package/flatpak/prepare-sources.sh" --filesystem=host --share=network org.kde.Sdk//5.15-25.08
+        - flatpak-builder --user --default-branch ${FLATPAK_BRANCH} --install-deps-from=flathub --arch=${HOST_ARCH} --force-clean --disable-rofiles-fuse --ccache
+            --mirror-screenshots-url=https://dl.flathub.org/media --compose-url-policy=full
+            ${BUNDLE_SOURCES:+--bundle-sources} --repo=repo-${HOST_ARCH} build extras/package/flatpak/org.videolan.VLC.yaml
+        - flatpak-builder-lint --exceptions --exceptions-repo stable repo repo-${HOST_ARCH}
+        - flatpak build-bundle --runtime-repo=https://dl.flathub.org/repo/flathub.flatpakrepo
+            repo-${HOST_ARCH} org.videolan.VLC_${HOST_ARCH}.flatpak org.videolan.VLC ${FLATPAK_BRANCH}
     cache:
         key: flatpak-ccache-${HOST_ARCH}
         paths:
@@ -379,8 +384,10 @@ flatpak-x86_64:
         entrypoint: [""]
     variables:
         HOST_ARCH: x86_64
+        # TODO remove this after we finish the test phase, not really needed outside of releases
+        BUNDLE_SOURCES: 1
     tags:
-      - dind-amd64
+        - dind-amd64
 
 .release-flatpak:
     extends: .flatpak-common
@@ -396,12 +403,16 @@ release-flatpak-x86_64:
         entrypoint: [""]
     variables:
         HOST_ARCH: x86_64
+        BUNDLE_SOURCES: 1
     tags:
-      - dind-amd64
+        - dind-amd64
 
 flatpak-repo:
     stage: repo
     extends: .docker-template
+    # TODO only trigger this on tagging after we finish the test phase
+    #only:
+    #    - tags
     image:
         name: $VLC_FLATPAK_IMAGE
         entrypoint: [""]
@@ -412,10 +423,10 @@ flatpak-repo:
           done
         - flatpak build-update-repo --generate-static-deltas --static-delta-ignore-ref=*.Debug --static-delta-ignore-ref=*.Sources repo
         - flatpak-builder-lint --exceptions --exceptions-repo stable repo repo
-        - tar -czf repository.tar.gz repo/
+        - tar -czf repo.tar.gz repo
     artifacts:
         paths:
-          - repository.tar.gz
+            - repo.tar.gz
     dependencies:
       - flatpak-x86_64
 


=====================================
extras/package/flatpak/org.videolan.VLC.yaml
=====================================
@@ -54,7 +54,7 @@ cleanup-commands:
 build-options:
   env:
     JAVA_HOME: /usr/lib/sdk/openjdk17
-  prepend-path: /app/contrib/bin:/usr/lib/sdk/openjdk17/bin:/app/jre/ant/bin
+  prepend-path: /app/contrib/bin:/usr/lib/sdk/openjdk17/bin
   prepend-pkg-config-path: /app/contrib/lib/pkgconfig
   cflags: -I/app/contrib/include -L/app/contrib/lib
   cxxflags: -I/app/contrib/include -L/app/contrib/lib
@@ -62,35 +62,18 @@ modules:
   - name: openjdk
     buildsystem: simple
     build-commands:
-    - /usr/lib/sdk/openjdk17/install.sh
-  - name: ant
-    buildsystem: simple
-    build-commands:
-    - mkdir -p /app/jre/ant
-    - tar xf apache-ant-bin.tar.bz2 --strip-components=1 --directory=/app/jre/ant
-    sources:
-    - type: file
-      url: https://dlcdn.apache.org/ant/binaries/apache-ant-1.10.17-bin.tar.bz2
-      dest-filename: apache-ant-bin.tar.bz2
-      sha256: 5210fc9d77e96bf5f4639287f29826da85e54a542e0a409463b1642bc3caaee7
-  - name: contrib
+      - /usr/lib/sdk/openjdk17/install.sh
+  - name: vlc
     buildsystem: simple
-    build-options:
-      build-args:
-        - --share=network
     build-commands:
-    - mkdir -p contrib/linux
-    - cd contrib/linux && ../bootstrap --prefix=/app/contrib --enable-ffmpeg --enable-dav1d --disable-fluid --enable-fluidlite --disable-chromaprint --disable-cddb --disable-gnutls --disable-nfs --disable-sidplay2
-    - cd contrib/linux && make list
-    - cd contrib/linux && make -j $FLATPAK_BUILDER_N_JOBS
-    sources:
-      - type: dir
-        path: ../../..
-        skip:
-          - extras
-  - name: vlc
-    config-opts:
-      - BUILDCC=/usr/bin/gcc
+      - tar xf tools.tar && rm tools.tar
+      - tar xf contrib.tar && rm contrib.tar
+      - cd extras/tools && ./bootstrap && make -j $FLATPAK_BUILDER_N_JOBS
+      - cd contrib/linux && PATH=$PWD/extras/tools/build/bin:$PATH ../bootstrap --prefix=/app/contrib --enable-ffmpeg --enable-dav1d --enable-fluidlite --disable-fluid --disable-chromaprint
+      - cd contrib/linux && make list
+      - cd contrib/linux && PATH=$PWD/extras/tools/build/bin:$PATH make -j $FLATPAK_BUILDER_N_JOBS
+      - PATH=$PWD/extras/tools/build/bin:$PATH BUILDCC=/usr/bin/gcc ./configure --prefix=/app --disable-wayland --enable-merge-ffmpeg
+      - PATH=$PWD/extras/tools/build/bin:$PATH make install -j $FLATPAK_BUILDER_N_JOBS
     cleanup:
       - /share/macosx
     post-install:
@@ -103,12 +86,13 @@ modules:
         /app/share/applications/org.videolan.VLC-$s.desktop; done
       - rm /app/share/icons/hicolor/16x16/apps/vlc.xpm /app/share/icons/hicolor/32x32/apps/vlc.xpm
     sources:
-      - type: dir
-        path: ../../..
-        skip:
-          - contrib
+      - type: archive
+        path: vlc.tar.xz
+      - type: file
+        path: tools.tar
+      - type: file
+        path: contrib.tar
       - type: patch
         path: vlc-appdata-manifest-url.patch
       - type: file
         path: vlc.sh
-


=====================================
extras/package/flatpak/package.mak
=====================================
@@ -1,5 +1,6 @@
 flatpak:
-	flatpak-builder --user --install-deps-from=flathub --disable-rofiles-fuse --disable-updates --force-clean --ccache --repo=repo build org.videolan.VLC.yaml
+	flatpak --user --command="./extras/package/flatpak/prepare-sources.sh" --filesystem=host --share=network run org.kde.Sdk//5.15-25.08
+	flatpak-builder --user --install-deps-from=flathub --disable-rofiles-fuse --disable-updates --force-clean --ccache --repo=repo build extras/package/flatpak/org.videolan.VLC.yaml
 
 flatpak-clean:
 	rm -rf build repo


=====================================
extras/package/flatpak/prepare-sources.sh
=====================================
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+sed -i -e "s, at GIT_HASH@,$(git rev-parse HEAD),g" extras/package/flatpak/vlc-appdata-manifest-url.patch
+cd extras/tools
+./bootstrap
+make fetch
+cd ../..
+tar cf extras/package/flatpak/tools.tar extras/tools
+# Prefetch all contrib tarballs and create a contrib source archive
+mkdir -p contrib/linux
+cd contrib/linux
+../bootstrap --enable-ffmpeg --enable-dav1d --enable-fluidlite
+make fetch
+cd ../..
+tar cf extras/package/flatpak/contrib.tar contrib
+rm -rf contrib/tarballs
+# Create VLC source archive
+./bootstrap
+BUILDCC=/usr/bin/gcc ./configure --disable-lua --disable-avcodec
+make dist
+mv vlc-*.tar.xz extras/package/flatpak/vlc.tar.xz


=====================================
extras/package/flatpak/vlc-appdata-manifest-url.patch
=====================================
@@ -1,15 +1,3 @@
-diff --git a/share/Makefile.am b/share/Makefile.am
-index a6c0ac1083..f06f062369 100644
---- a/share/Makefile.am
-+++ b/share/Makefile.am
-@@ -24,6 +24,7 @@ CLEANFILES += $(desktop_DATA) $(appdata_DATA)
- 	$(AM_V_at)mv -f tmp-$@ $@
- 
- org.videolan.vlc.appdata.xml: org.videolan.vlc.appdata.xml.in
-+	sed -i -e "s,\@GIT_HASH\@,$$(git rev-parse HEAD),g" $<
- 	$(AM_V_GEN)$(MSGFMT) --xml --template $< -d $(top_srcdir)/po -o $@ || cp $< $@
- 
- iconsdatadir = $(datadir)/icons/hicolor
 diff --git a/share/org.videolan.vlc.appdata.xml.in.in b/share/org.videolan.vlc.appdata.xml.in.in
 index 62bd7ee443..28fc24fd94 100644
 --- a/share/org.videolan.vlc.appdata.xml.in.in



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/10a6b92f02e8fd2942ae286094cc116f4bfbd220

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/10a6b92f02e8fd2942ae286094cc116f4bfbd220
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the vlc-commits mailing list