[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