From ec60e4ca1d340f18f834a80cb96848c3f44daf2c Mon Sep 17 00:00:00 2001
From: Tomas Groth
Date: Fri, 23 Feb 2024 21:21:14 +0100
Subject: [PATCH] Add dbus and VLC to the build
---
.gitmodules | 3 +
flatpak/build.sh | 3 +
flatpak/org.openlp.OpenLP.yml | 8 +
flatpak/org.videolan.VLC/.gitmodules | 3 +
flatpak/org.videolan.VLC/README.md | 12 +
.../org.videolan.VLC/ffmpeg_binutils241.patch | 76 ++
flatpak/org.videolan.VLC/gsm-makefile.patch | 12 +
flatpak/org.videolan.VLC/gsm.patch | 198 ++++++
.../libbdplus-gpg-error.patch | 14 +
flatpak/org.videolan.VLC/libkate.patch | 103 +++
.../live555-add-pkgconfig-file.patch | 37 +
.../org.videolan.VLC/live555-nosignal.patch | 105 +++
flatpak/org.videolan.VLC/openlp-vlc.yaml | 642 +++++++++++++++++
.../org.videolan.VLC.appdata.xml | 57 ++
.../org.videolan.VLC/org.videolan.VLC.yaml | 673 ++++++++++++++++++
flatpak/org.videolan.VLC/shared-modules | 1 +
.../org.videolan.VLC/vlc-disc-shortcuts.patch | 115 +++
.../org.videolan.VLC/vlc-fix-appdata.patch | 21 +
.../vlc-ignore-time-for-cache.patch | 26 +
...izer-flac-fix-CRC-from-emulated-sync.patch | 91 +++
flatpak/org.videolan.VLC/vlc.sh | 8 +
.../vlc_screenshot_gnome3.jpg | Bin 0 -> 102202 bytes
.../vlc_screenshot_gnome3_dark.jpg | Bin 0 -> 90457 bytes
flatpak/requirements.txt | 9 +-
24 files changed, 2214 insertions(+), 3 deletions(-)
create mode 100644 .gitmodules
create mode 100644 flatpak/org.videolan.VLC/.gitmodules
create mode 100644 flatpak/org.videolan.VLC/README.md
create mode 100644 flatpak/org.videolan.VLC/ffmpeg_binutils241.patch
create mode 100644 flatpak/org.videolan.VLC/gsm-makefile.patch
create mode 100644 flatpak/org.videolan.VLC/gsm.patch
create mode 100644 flatpak/org.videolan.VLC/libbdplus-gpg-error.patch
create mode 100644 flatpak/org.videolan.VLC/libkate.patch
create mode 100644 flatpak/org.videolan.VLC/live555-add-pkgconfig-file.patch
create mode 100644 flatpak/org.videolan.VLC/live555-nosignal.patch
create mode 100644 flatpak/org.videolan.VLC/openlp-vlc.yaml
create mode 100644 flatpak/org.videolan.VLC/org.videolan.VLC.appdata.xml
create mode 100644 flatpak/org.videolan.VLC/org.videolan.VLC.yaml
create mode 160000 flatpak/org.videolan.VLC/shared-modules
create mode 100644 flatpak/org.videolan.VLC/vlc-disc-shortcuts.patch
create mode 100644 flatpak/org.videolan.VLC/vlc-fix-appdata.patch
create mode 100644 flatpak/org.videolan.VLC/vlc-ignore-time-for-cache.patch
create mode 100644 flatpak/org.videolan.VLC/vlc-packetizer-flac-fix-CRC-from-emulated-sync.patch
create mode 100644 flatpak/org.videolan.VLC/vlc.sh
create mode 100644 flatpak/org.videolan.VLC/vlc_screenshot_gnome3.jpg
create mode 100644 flatpak/org.videolan.VLC/vlc_screenshot_gnome3_dark.jpg
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..10c9a25
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "flatpak/org.videolan.VLC/shared-modules"]
+ path = flatpak/org.videolan.VLC/shared-modules
+ url = https://github.com/flathub/shared-modules.git
diff --git a/flatpak/build.sh b/flatpak/build.sh
index 0dfac50..db1da44 100755
--- a/flatpak/build.sh
+++ b/flatpak/build.sh
@@ -1,5 +1,8 @@
#!/bin/bash
+# checkout the flathub shared-modules, needed for the VLC build
+git submodule update --init --recursive
+
# build PyMuPdf dependency file
PYMUPDF_VER=1.23.22
PY_TARGET=311
diff --git a/flatpak/org.openlp.OpenLP.yml b/flatpak/org.openlp.OpenLP.yml
index fad0040..3edee73 100644
--- a/flatpak/org.openlp.OpenLP.yml
+++ b/flatpak/org.openlp.OpenLP.yml
@@ -18,6 +18,14 @@ finish-args:
- --env=QTWEBENGINEPROCESS_PATH=/app/bin/QtWebEngineProcess
- --filesystem=host
modules:
+ - name: dbus-run-session
+ buildsystem: autotools
+ cleanup: ["*"]
+ sources:
+ - type: archive
+ url: https://gitlab.freedesktop.org/dbus/dbus/-/archive/dbus-1.15.8/dbus-dbus-1.15.8.tar.gz
+ sha256: 3ae23cd28b96beac175eab0798d65c8e21e9fcf57132d840c170aaa7b21cd818
+ - org.videolan.VLC/openlp-vlc.yaml
- python3-pymupdf.yaml
- python3-requirements.json
- name: OpenLP
diff --git a/flatpak/org.videolan.VLC/.gitmodules b/flatpak/org.videolan.VLC/.gitmodules
new file mode 100644
index 0000000..1e7a990
--- /dev/null
+++ b/flatpak/org.videolan.VLC/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "shared-modules"]
+ path = shared-modules
+ url = https://github.com/flathub/shared-modules.git
diff --git a/flatpak/org.videolan.VLC/README.md b/flatpak/org.videolan.VLC/README.md
new file mode 100644
index 0000000..4480f17
--- /dev/null
+++ b/flatpak/org.videolan.VLC/README.md
@@ -0,0 +1,12 @@
+# VLC plugin extension
+
+To package independent plugins for VLC you can create an extension org.videolan.VLC.Plugin.myplugin.
+
+The files in your extension will be available in /app/share/vlc/extra/myplugin.
+
+The lib folder will automatically be added in the runtime LD search paths so you can link your plugin to whatever is there.
+
+To add a VLC plugin put the .so inside a plugins directory at the root of your extension. It will then be available to VLC.
+
+All the .sh files available at the root of the extension will be sourced before launching VLC. You can then mess around with environment variables, and also modify VLC_ARGS which will be prepend to the args passed by the user.
+
diff --git a/flatpak/org.videolan.VLC/ffmpeg_binutils241.patch b/flatpak/org.videolan.VLC/ffmpeg_binutils241.patch
new file mode 100644
index 0000000..33fd3d4
--- /dev/null
+++ b/flatpak/org.videolan.VLC/ffmpeg_binutils241.patch
@@ -0,0 +1,76 @@
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001
+From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?=
+Date: Sun, 16 Jul 2023 18:18:02 +0300
+Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift
+ instructions within inline assembly
+
+Fixes assembling with binutil as >= 2.41
+
+Signed-off-by: James Almer
+---
+ libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++---
+ 1 file changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h
+index 6298f5ed19..ca7e2dffc1 100644
+--- a/libavcodec/x86/mathops.h
++++ b/libavcodec/x86/mathops.h
+@@ -35,12 +35,20 @@
+ static av_always_inline av_const int MULL(int a, int b, unsigned shift)
+ {
+ int rt, dummy;
++ if (__builtin_constant_p(shift))
+ __asm__ (
+ "imull %3 \n\t"
+ "shrdl %4, %%edx, %%eax \n\t"
+ :"=a"(rt), "=d"(dummy)
+- :"a"(a), "rm"(b), "ci"((uint8_t)shift)
++ :"a"(a), "rm"(b), "i"(shift & 0x1F)
+ );
++ else
++ __asm__ (
++ "imull %3 \n\t"
++ "shrdl %4, %%edx, %%eax \n\t"
++ :"=a"(rt), "=d"(dummy)
++ :"a"(a), "rm"(b), "c"((uint8_t)shift)
++ );
+ return rt;
+ }
+
+@@ -113,19 +121,31 @@ __asm__ volatile(\
+ // avoid +32 for shift optimization (gcc should do that ...)
+ #define NEG_SSR32 NEG_SSR32
+ static inline int32_t NEG_SSR32( int32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("sarl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("sarl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
+ #define NEG_USR32 NEG_USR32
+ static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
++ if (__builtin_constant_p(s))
+ __asm__ ("shrl %1, %0\n\t"
+ : "+r" (a)
+- : "ic" ((uint8_t)(-s))
++ : "i" (-s & 0x1F)
+ );
++ else
++ __asm__ ("shrl %1, %0\n\t"
++ : "+r" (a)
++ : "c" ((uint8_t)(-s))
++ );
+ return a;
+ }
+
+--
+2.30.2
+
diff --git a/flatpak/org.videolan.VLC/gsm-makefile.patch b/flatpak/org.videolan.VLC/gsm-makefile.patch
new file mode 100644
index 0000000..8cda65d
--- /dev/null
+++ b/flatpak/org.videolan.VLC/gsm-makefile.patch
@@ -0,0 +1,12 @@
+diff --git a/Makefile b/Makefile
+index f7455de..620f773 100644
+--- a/Makefile
++++ b/Makefile
+@@ -389,6 +389,7 @@ $(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3
+
+ $(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h
+ -rm $(RMFLAGS) $@
++ mkdir $(GSM_INSTALL_INC)
+ cp $? $@
+ chmod 444 $@
+
diff --git a/flatpak/org.videolan.VLC/gsm.patch b/flatpak/org.videolan.VLC/gsm.patch
new file mode 100644
index 0000000..d608189
--- /dev/null
+++ b/flatpak/org.videolan.VLC/gsm.patch
@@ -0,0 +1,198 @@
+--- a/Makefile
++++ b/Makefile
+@@ -44,7 +44,7 @@
+ # CCFLAGS = -c -O
+
+ CC = gcc -ansi -pedantic
+-CCFLAGS = -c -O2 -DNeedFunctionPrototypes=1 -Wall -Wno-comment
++CCFLAGS = -c -O2 -fPIC -DNeedFunctionPrototypes=1 -Wall -Wno-comment
+
+ LD = $(CC)
+
+@@ -96,11 +96,11 @@
+ # Other tools
+
+ SHELL = /bin/sh
+-LN = ln
++LN = ln -s -f
+ BASENAME = basename
+ AR = ar
+ ARFLAGS = cr
+-RMFLAGS =
++RMFLAGS = -f
+ FIND = find
+ COMPRESS = compress
+ COMPRESSFLAGS =
+@@ -139,7 +139,7 @@
+
+ # Targets
+
+-LIBGSM = $(LIB)/libgsm.a
++LIBGSMSO = $(LIB)/libgsm.so
+
+ TOAST = $(BIN)/toast
+ UNTOAST = $(BIN)/untoast
+@@ -257,7 +257,7 @@
+ # Install targets
+
+ GSM_INSTALL_TARGETS = \
+- $(GSM_INSTALL_LIB)/libgsm.a \
++ $(GSM_INSTALL_LIB)/libgsm.so \
+ $(GSM_INSTALL_INC)/gsm.h \
+ $(GSM_INSTALL_MAN)/gsm.3 \
+ $(GSM_INSTALL_MAN)/gsm_explode.3 \
+@@ -279,7 +279,7 @@
+
+ # Target rules
+
+-all: $(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST)
++all: $(LIBGSMSO) $(TOAST) $(TCAT) $(UNTOAST)
+ @-echo $(ROOT): Done.
+
+ tst: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
+@@ -299,24 +299,23 @@
+
+ # The basic API: libgsm
+
+-$(LIBGSM): $(LIB) $(GSM_OBJECTS)
+- -rm $(RMFLAGS) $(LIBGSM)
+- $(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS)
+- $(RANLIB) $(LIBGSM)
+-
++$(LIBGSMSO): $(LIB) $(GSM_OBJECTS)
++ $(LD) -shared -Wl,-soname,libgsm.so.1 -o $@.1.0.17 $(GSM_OBJECTS)
++ $(LN) libgsm.so.1.0.17 $(LIBGSMSO).1
++ $(LN) libgsm.so.1.0.17 $(LIBGSMSO)
+
+ # Toast, Untoast and Tcat -- the compress-like frontends to gsm.
+
+-$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM)
+- $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB)
++$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSMSO)
++ $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSMSO) $(LDLIB)
+
+ $(UNTOAST): $(BIN) $(TOAST)
+ -rm $(RMFLAGS) $(UNTOAST)
+- $(LN) $(TOAST) $(UNTOAST)
++ $(LN) toast $(UNTOAST)
+
+ $(TCAT): $(BIN) $(TOAST)
+ -rm $(RMFLAGS) $(TCAT)
+- $(LN) $(TOAST) $(TCAT)
++ $(LN) toast $(TCAT)
+
+
+ # The local bin and lib directories
+@@ -351,53 +350,54 @@
+ fi
+
+ $(TOAST_INSTALL_BIN)/toast: $(TOAST)
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $(TOAST) $@
+ chmod 755 $@
+
+ $(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast
+- -rm $@
+- ln $? $@
++ -rm $(RMFLAGS) $@
++ $(LN) toast $@
+
+ $(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTALL_BIN)/toast
+- -rm $@
+- ln $? $@
++ -rm $(RMFLAGS) $@
++ $(LN) toast $@
+
+ $(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
+ $(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
+ $(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
+ $(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
+ $(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
+ $(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h
+- -rm $@
+- cp $? $@
+- chmod 444 $@
+-
+-$(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM)
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
++$(GSM_INSTALL_LIB)/libgsm.so: $(LIBGSMSO)
++ -rm $(RMFLAGS) $@ $@.1 $@.1.0.17
++ cp $?.1.0.17 $@.1.0.17
++ chmod 755 $@.1.0.17
++ $(LN) libgsm.so.1.0.17 $@
++ $(LN) libgsm.so.1.0.17 $@.1
+
+ # Distribution
+
+@@ -425,7 +425,7 @@
+ -print | xargs rm $(RMFLAGS)
+
+ clean: semi-clean
+- -rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add \
++ -rm $(RMFLAGS) $(LIBGSMSO)* $(ADDTST)/add \
+ $(TOAST) $(TCAT) $(UNTOAST) \
+ $(ROOT)/gsm-1.0.tar.Z
+
+@@ -473,22 +473,22 @@
+ $(TST)/test-result: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/run
+ ( cd $(TST); ./run )
+
+-$(TST)/lin2txt: $(TST)/lin2txt.o $(LIBGSM)
++$(TST)/lin2txt: $(TST)/lin2txt.o $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $(TST)/lin2txt \
+- $(TST)/lin2txt.o $(LIBGSM) $(LDLIB)
++ $(TST)/lin2txt.o $(LIBGSMSO) $(LDLIB)
+
+-$(TST)/lin2cod: $(TST)/lin2cod.o $(LIBGSM)
++$(TST)/lin2cod: $(TST)/lin2cod.o $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $(TST)/lin2cod \
+- $(TST)/lin2cod.o $(LIBGSM) $(LDLIB)
++ $(TST)/lin2cod.o $(LIBGSMSO) $(LDLIB)
+
+-$(TST)/gsm2cod: $(TST)/gsm2cod.o $(LIBGSM)
++$(TST)/gsm2cod: $(TST)/gsm2cod.o $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $(TST)/gsm2cod \
+- $(TST)/gsm2cod.o $(LIBGSM) $(LDLIB)
++ $(TST)/gsm2cod.o $(LIBGSMSO) $(LDLIB)
+
+-$(TST)/cod2txt: $(TST)/cod2txt.o $(LIBGSM)
++$(TST)/cod2txt: $(TST)/cod2txt.o $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $(TST)/cod2txt \
+- $(TST)/cod2txt.o $(LIBGSM) $(LDLIB)
++ $(TST)/cod2txt.o $(LIBGSMSO) $(LDLIB)
+
+-$(TST)/cod2lin: $(TST)/cod2lin.o $(LIBGSM)
++$(TST)/cod2lin: $(TST)/cod2lin.o $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $(TST)/cod2lin \
+- $(TST)/cod2lin.o $(LIBGSM) $(LDLIB)
++ $(TST)/cod2lin.o $(LIBGSMSO) $(LDLIB)
diff --git a/flatpak/org.videolan.VLC/libbdplus-gpg-error.patch b/flatpak/org.videolan.VLC/libbdplus-gpg-error.patch
new file mode 100644
index 0000000..553cabe
--- /dev/null
+++ b/flatpak/org.videolan.VLC/libbdplus-gpg-error.patch
@@ -0,0 +1,14 @@
+diff --git a/configure.ac b/configure.ac
+index 215a7b5..9d9f907 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -143,7 +143,7 @@ if test x$gpg_error_config_prefix != x ; then
+ fi
+ fi
+
+-AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no)
++AC_PATH_PROG(GPG_ERROR_CONFIG, gpgrt-config, no)
+ if test x"$GPG_ERROR_CONFIG" = xno; then
+ AC_MSG_ERROR([gpg-error not found on system])
+ else
+
diff --git a/flatpak/org.videolan.VLC/libkate.patch b/flatpak/org.videolan.VLC/libkate.patch
new file mode 100644
index 0000000..3e0a692
--- /dev/null
+++ b/flatpak/org.videolan.VLC/libkate.patch
@@ -0,0 +1,103 @@
+diff --git a/Makefile.in b/Makefile.in
+index 50ce6f3..c12a423 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -260,7 +260,6 @@ INT64_T = @INT64_T@
+ LD = @LD@
+ LDFLAGS = @LDFLAGS@
+ LEX = @LEX@
+-LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+ LIBKATE_SHARED_VERSION = @LIBKATE_SHARED_VERSION@
+ LIBOBJS = @LIBOBJS@
+diff --git a/configure.ac b/configure.ac
+index 58ff478..a319fdd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -7,7 +7,7 @@ AC_PREREQ(2.53)
+
+ AC_CANONICAL_TARGET
+
+-AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
++AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
+ AC_CONFIG_HEADERS([include/config.h])
+
+ ifdef([AM_SILENT_RULES],[AM_SILENT_RULES])
+@@ -117,6 +117,7 @@ else
+ fi
+ AM_CONDITIONAL(HAVE_OGG_MERGE,test "x${OGG_MERGE}" != "x")
+
++m4_define_default([_AM_PYTHON_INTERPRETER_LIST],[python2])
+ AM_PATH_PYTHON(, HAVE_PYTHON=yes, HAVE_PYTHON=no)
+ AM_CONDITIONAL(HAVE_PYTHON,test "${HAVE_PYTHON}" = "yes")
+
+diff --git a/doc/Makefile.in b/doc/Makefile.in
+index 6ecfa32..d3bae00 100644
+--- a/doc/Makefile.in
++++ b/doc/Makefile.in
+@@ -125,7 +125,6 @@ INT64_T = @INT64_T@
+ LD = @LD@
+ LDFLAGS = @LDFLAGS@
+ LEX = @LEX@
+-LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+ LIBKATE_SHARED_VERSION = @LIBKATE_SHARED_VERSION@
+ LIBOBJS = @LIBOBJS@
+diff --git a/tests/Makefile.in b/tests/Makefile.in
+index 2fe27a1..52eabdd 100644
+--- a/tests/Makefile.in
++++ b/tests/Makefile.in
+@@ -156,7 +156,6 @@ INT64_T = @INT64_T@
+ LD = @LD@
+ LDFLAGS = @LDFLAGS@
+ LEX = @LEX@
+-LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+ LIBKATE_SHARED_VERSION = @LIBKATE_SHARED_VERSION@
+ LIBOBJS = @LIBOBJS@
+diff --git a/tools/KateDJ/Makefile.in b/tools/KateDJ/Makefile.in
+index ce31a00..2ed33bc 100644
+--- a/tools/KateDJ/Makefile.in
++++ b/tools/KateDJ/Makefile.in
+@@ -99,7 +99,6 @@ INT64_T = @INT64_T@
+ LD = @LD@
+ LDFLAGS = @LDFLAGS@
+ LEX = @LEX@
+-LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+ LIBKATE_SHARED_VERSION = @LIBKATE_SHARED_VERSION@
+ LIBOBJS = @LIBOBJS@
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index 2be12a3..48076a1 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -20,7 +20,7 @@ kateenc_SOURCES+=kpng.c
+ endif
+ katedec_SOURCES=katedec.c kkate.c ksrt.c klrc.c kutil.c kfuzz.c kstream.c kread.c kstrings.c
+ katalyzer_SOURCES=katalyzer.c kutil.c kstream.c kread.c kstrings.c kstats.c
+-kateenc_LDADD=../lib/liboggkate.la ../lib/libkate.la @OGG_LIBS@ @PNG_LIBS@ @LEXLIB@
++kateenc_LDADD=../lib/liboggkate.la ../lib/libkate.la @OGG_LIBS@ @PNG_LIBS@
+ katedec_LDADD=../lib/liboggkate.la ../lib/libkate.la @OGG_LIBS@
+ katalyzer_LDADD=../lib/liboggkate.la ../lib/libkate.la @OGG_LIBS@
+ kateenc_CFLAGS=@CWARNFLAGS_LIGHT@ @CFLAGS_FORTIFY_SOURCE@ @CFLAGS_DEBUG@ @OGG_CFLAGS@ @PNG_CFLAGS@
+diff --git a/tools/Makefile.in b/tools/Makefile.in
+index 23ca949..1c52ad1 100644
+--- a/tools/Makefile.in
++++ b/tools/Makefile.in
+@@ -223,7 +223,6 @@ INT64_T = @INT64_T@
+ LD = @LD@
+ LDFLAGS = @LDFLAGS@
+ LEX = @LEX@
+-LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+ LIBKATE_SHARED_VERSION = @LIBKATE_SHARED_VERSION@
+ LIBOBJS = @LIBOBJS@
+@@ -351,7 +350,7 @@ noinst_HEADERS = \
+ @HAVE_OGG_TRUE@ $(am__append_1)
+ @HAVE_OGG_TRUE@katedec_SOURCES = katedec.c kkate.c ksrt.c klrc.c kutil.c kfuzz.c kstream.c kread.c kstrings.c
+ @HAVE_OGG_TRUE@katalyzer_SOURCES = katalyzer.c kutil.c kstream.c kread.c kstrings.c kstats.c
+-@HAVE_OGG_TRUE@kateenc_LDADD = ../lib/liboggkate.la ../lib/libkate.la @OGG_LIBS@ @PNG_LIBS@ @LEXLIB@
++@HAVE_OGG_TRUE@kateenc_LDADD = ../lib/liboggkate.la ../lib/libkate.la @OGG_LIBS@ @PNG_LIBS@
+ @HAVE_OGG_TRUE@katedec_LDADD = ../lib/liboggkate.la ../lib/libkate.la @OGG_LIBS@
+ @HAVE_OGG_TRUE@katalyzer_LDADD = ../lib/liboggkate.la ../lib/libkate.la @OGG_LIBS@
+ @HAVE_OGG_TRUE@kateenc_CFLAGS = @CWARNFLAGS_LIGHT@ @CFLAGS_FORTIFY_SOURCE@ @CFLAGS_DEBUG@ @OGG_CFLAGS@ @PNG_CFLAGS@
diff --git a/flatpak/org.videolan.VLC/live555-add-pkgconfig-file.patch b/flatpak/org.videolan.VLC/live555-add-pkgconfig-file.patch
new file mode 100644
index 0000000..f10e8db
--- /dev/null
+++ b/flatpak/org.videolan.VLC/live555-add-pkgconfig-file.patch
@@ -0,0 +1,37 @@
+Description: Add a pkg-config file for the shared libraries.
+Author: Benjamin Drung
+
+diff --git a/Makefile.tail b/Makefile.tail
+--- a/Makefile.tail
++++ b/Makefile.tail
+@@ -22,7 +22,12 @@
+ @echo
+ @echo "For more information about this source code (including your obligations under the LGPL), please see our FAQ at http://live555.com/liveMedia/faq.html"
+
+-install:
++install_shared_libraries:
++ install -d $(DESTDIR)$(LIBDIR)/pkgconfig
++ sed "s#@PREFIX@#$(PREFIX)#;s#@LIBDIR@#$(LIBDIR)#;s#@VERSION@#$(VERSION)#" live555.pc.in > live555.pc
++ install -m 644 live555.pc $(DESTDIR)$(LIBDIR)/pkgconfig/live555.pc
++
++install: $(INSTALL2)
+ cd $(LIVEMEDIA_DIR) ; $(MAKE) install
+ cd $(GROUPSOCK_DIR) ; $(MAKE) install
+ cd $(USAGE_ENVIRONMENT_DIR) ; $(MAKE) install
+--- /dev/null 2017-01-19 15:35:15.538412775 +0100
++++ live.2016.07.19/live555.pc.in 2017-01-19 18:46:01.456059400 +0100
+@@ -0,0 +1,9 @@
++prefix=@PREFIX@
++libdir=${prefix}/lib
++includedir=${prefix}/include
++
++Name: live555
++Description: multimedia RTSP streaming library
++Version: @VERSION@
++Cflags: -I${includedir}/liveMedia -I${includedir}/groupsock -I${includedir}/BasicUsageEnvironment -I${includedir}/UsageEnvironment
++Libs: -L${libdir} -lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment
+--- live.2016.07.19/Makefile.head.orig 2017-01-19 18:47:50.376062631 +0100
++++ live.2016.07.19/Makefile.head 2017-01-19 18:48:09.940063212 +0100
+@@ -1 +1,2 @@
++VERSION = $(shell grep LIVEMEDIA_LIBRARY_VERSION_STRING liveMedia/include/liveMedia_version.hh | sed 's/.*"\([^"]*\)".*/\1/')
+ ##### Change the following for your environment:
diff --git a/flatpak/org.videolan.VLC/live555-nosignal.patch b/flatpak/org.videolan.VLC/live555-nosignal.patch
new file mode 100644
index 0000000..4f965f6
--- /dev/null
+++ b/flatpak/org.videolan.VLC/live555-nosignal.patch
@@ -0,0 +1,105 @@
+diff --git a/groupsock/GroupsockHelper.cpp b/groupsock/GroupsockHelper.cpp
+index 1ddf91f..2007e3e 100644
+--- a/groupsock/GroupsockHelper.cpp
++++ b/groupsock/GroupsockHelper.cpp
+@@ -44,6 +44,10 @@ extern "C" int initializeWinsockIfNecessary();
+ #endif
+ #include
+
++#ifndef MSG_NOSIGNAL
++# define MSG_NOSIGNAL 0
++#endif
++
+ // By default, use INADDR_ANY for the sending and receiving interfaces:
+ netAddressBits SendingInterfaceAddr = INADDR_ANY;
+ netAddressBits ReceivingInterfaceAddr = INADDR_ANY;
+@@ -399,7 +403,7 @@ Boolean writeSocket(UsageEnvironment& env,
+ unsigned char* buffer, unsigned bufferSize) {
+ do {
+ MAKE_SOCKADDR_IN(dest, address.s_addr, portNum);
+- int bytesSent = sendto(socket, (char*)buffer, bufferSize, 0,
++ int bytesSent = sendto(socket, (char*)buffer, bufferSize, MSG_NOSIGNAL,
+ (struct sockaddr*)&dest, sizeof dest);
+ if (bytesSent != (int)bufferSize) {
+ char tmpBuf[100];
+diff --git a/liveMedia/RTPInterface.cpp b/liveMedia/RTPInterface.cpp
+index 78b37d4..b042368 100644
+--- a/liveMedia/RTPInterface.cpp
++++ b/liveMedia/RTPInterface.cpp
+@@ -24,6 +24,10 @@ along with this library; if not, write to the Free Software Foundation, Inc.,
+ #include
+ #include
+
++#ifndef MSG_NOSIGNAL
++# define MSG_NOSIGNAL 0
++#endif
++
+ ////////// Helper Functions - Definition //////////
+
+ // Helper routines and data structures, used to implement
+@@ -363,7 +367,7 @@ Boolean RTPInterface::sendRTPorRTCPPacketOverTCP(u_int8_t* packet, unsigned pack
+ #endif
+
+ Boolean RTPInterface::sendDataOverTCP(int socketNum, u_int8_t const* data, unsigned dataSize, Boolean forceSendToSucceed) {
+- int sendResult = send(socketNum, (char const*)data, dataSize, 0/*flags*/);
++ int sendResult = send(socketNum, (char const*)data, dataSize, MSG_NOSIGNAL/*flags*/);
+ if (sendResult < (int)dataSize) {
+ // The TCP send() failed - at least partially.
+
+@@ -377,7 +381,7 @@ Boolean RTPInterface::sendDataOverTCP(int socketNum, u_int8_t const* data, unsig
+ fprintf(stderr, "sendDataOverTCP: resending %d-byte send (blocking)\n", numBytesRemainingToSend); fflush(stderr);
+ #endif
+ makeSocketBlocking(socketNum, RTPINTERFACE_BLOCKING_WRITE_TIMEOUT_MS);
+- sendResult = send(socketNum, (char const*)(&data[numBytesSentSoFar]), numBytesRemainingToSend, 0/*flags*/);
++ sendResult = send(socketNum, (char const*)(&data[numBytesSentSoFar]), numBytesRemainingToSend, MSG_NOSIGNAL/*flags*/);
+ if ((unsigned)sendResult != numBytesRemainingToSend) {
+ // The blocking "send()" failed, or timed out. In either case, we assume that the
+ // TCP connection has failed (or is 'hanging' indefinitely), and we stop using it
+diff --git a/liveMedia/RTSPClient.cpp b/liveMedia/RTSPClient.cpp
+index f47acb5..c3529a7 100644
+--- a/liveMedia/RTSPClient.cpp
++++ b/liveMedia/RTSPClient.cpp
+@@ -25,6 +25,10 @@ along with this library; if not, write to the Free Software Foundation, Inc.,
+ #include
+ #include "ourMD5.hh"
+
++#ifndef MSG_NOSIGNAL
++# define MSG_NOSIGNAL 0
++#endif
++
+ RTSPClient* RTSPClient::createNew(UsageEnvironment& env, char const* rtspURL,
+ int verbosityLevel,
+ char const* applicationName,
+@@ -1969,7 +1973,7 @@ int RTSPClient::write(const char* data, unsigned count) {
+ if (fTLS.isNeeded) {
+ return fTLS.write(data, count);
+ } else {
+- return send(fOutputSocketNum, data, count, 0);
++ return send(fOutputSocketNum, data, count, MSG_NOSIGNAL);
+ }
+ }
+
+diff --git a/liveMedia/RTSPServer.cpp b/liveMedia/RTSPServer.cpp
+index a6b1ca4..4884c86 100644
+--- a/liveMedia/RTSPServer.cpp
++++ b/liveMedia/RTSPServer.cpp
+@@ -24,6 +24,10 @@ along with this library; if not, write to the Free Software Foundation, Inc.,
+ #include "Base64.hh"
+ #include
+
++#ifndef MSG_NOSIGNAL
++# define MSG_NOSIGNAL 0
++#endif
++
+ ////////// RTSPServer implementation //////////
+
+ RTSPServer*
+@@ -882,7 +886,7 @@ void RTSPServer::RTSPClientConnection::handleRequestBytes(int newBytesRead) {
+ #ifdef DEBUG
+ fprintf(stderr, "sending response: %s", fResponseBuffer);
+ #endif
+- send(fClientOutputSocket, (char const*)fResponseBuffer, strlen((char*)fResponseBuffer), 0);
++ send(fClientOutputSocket, (char const*)fResponseBuffer, strlen((char*)fResponseBuffer), MSG_NOSIGNAL);
+
+ if (playAfterSetup) {
+ // The client has asked for streaming to commence now, rather than after a
diff --git a/flatpak/org.videolan.VLC/openlp-vlc.yaml b/flatpak/org.videolan.VLC/openlp-vlc.yaml
new file mode 100644
index 0000000..5a48923
--- /dev/null
+++ b/flatpak/org.videolan.VLC/openlp-vlc.yaml
@@ -0,0 +1,642 @@
+name: openlp-vlc
+cleanup:
+ - /share/doc
+ - /share/gtk-doc
+ - /share/info
+ - /share/man
+ - '*.la'
+ - '*.a'
+cleanup-commands:
+ - mkdir -p /app/share/vlc/extra
+ - ln -s /app/share/vlc/extra/plugins /app/lib/vlc/plugins/extra
+ - rm -f /app/lib/vlc/plugins/plugins.dat
+ - /app/lib/vlc/vlc-cache-gen /app/lib/vlc/plugins
+build-options:
+ env:
+ V: '1'
+modules:
+ - shared-modules/intltool/intltool-0.51.json
+ - shared-modules/SDL/SDL-1.2.15.json
+ - shared-modules/SDL/SDL_image-1.2.12.json
+ - shared-modules/lua5.3/lua-5.3.5.json
+ - shared-modules/glu/glu-9.json
+ - name: libraw1394
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://www.kernel.org/pub/linux/libs/ieee1394/libraw1394-2.1.2.tar.xz
+ sha256: 03ccc69761d22c7deb1127fc301010dd13e70e44bb7134b8ff0d07590259a55e
+ x-checker-data:
+ type: anitya
+ project-id: 1710
+ url-template: https://www.kernel.org/pub/linux/libs/ieee1394/libraw1394-$version.tar.xz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libavc1394
+ rm-configure: true
+ config-opts:
+ - --disable-static
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/libavc1394/libavc1394-0.5.4.tar.gz
+ sha256: 7cb1ff09506ae911ca9860bef4af08c2403f3e131f6c913a2cbd6ddca4215b53
+ x-checker-data:
+ type: anitya
+ project-id: 1562
+ url-template: https://downloads.sourceforge.net/sourceforge/libavc1394/libavc1394-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: zvbi
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/zapping/zvbi/0.2.35/zvbi-0.2.35.tar.bz2
+ sha256: fc883c34111a487c4a783f91b1b2bb5610d8d8e58dcba80c7ab31e67e4765318
+ x-checker-data:
+ type: anitya
+ project-id: 13803
+ url-template: https://downloads.sourceforge.net/sourceforge/zapping/zvbi/$version/zvbi-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libdc1394
+ rm-configure: true
+ config-opts:
+ - --disable-static
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/libdc1394/libdc1394-2/2.2.7/libdc1394-2.2.7.tar.gz
+ sha256: 537ceb78dd3cef271a183f4a176191d1cecf85f025520e6bd3758b0e19e6609f
+ x-checker-data:
+ type: anitya
+ project-id: 1591
+ url-template: https://downloads.sourceforge.net/sourceforge/libdc1394/libdc1394-2/$version/libdc1394-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libcddb
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/libcddb/libcddb/1.3.2/libcddb-1.3.2.tar.bz2
+ sha256: 35ce0ee1741ea38def304ddfe84a958901413aa829698357f0bee5bb8f0a223b
+ x-checker-data:
+ type: anitya
+ project-id: 1572
+ url-template: https://downloads.sourceforge.net/sourceforge/libcddb/libcddb/$version/libcddb-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: aalib
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/aa-project/aa-lib/1.4rc5/aalib-1.4rc5.tar.gz
+ sha256: fbddda9230cf6ee2a4f5706b4b11e2190ae45f5eda1f0409dc4f99b35e0a70ee
+ x-checker-data:
+ type: anitya
+ project-id: 7921
+ stable-only: false
+ url-template: https://downloads.sourceforge.net/sourceforge/aa-project/aa-lib/$version/aalib-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libshout
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.xiph.org/releases/libshout/libshout-2.4.6.tar.gz
+ sha256: 39cbd4f0efdfddc9755d88217e47f8f2d7108fa767f9d58a2ba26a16d8f7c910
+ x-checker-data:
+ type: anitya
+ project-id: 11084
+ url-template: https://downloads.xiph.org/releases/libshout/libshout-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libupnp
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/pupnp/libupnp-1.14.18.tar.bz2
+ sha256: 16a7cee93ce2868ae63ab1a8164dc7de43577c59983b9f61293a310d6888dceb
+ x-checker-data:
+ type: anitya
+ project-id: 21315
+ url-template: https://downloads.sourceforge.net/sourceforge/pupnp/libupnp-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: taglib
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ - -DWITH_MP4=ON
+ - -DWITH_ASF=ON
+ sources:
+ - type: archive
+ url: https://taglib.org/releases/taglib-1.13.1.tar.gz
+ sha256: c8da2b10f1bfec2cd7dbfcd33f4a2338db0765d851a50583d410bacf055cfd0b
+ x-checker-data:
+ type: anitya
+ project-id: 1982
+ url-template: https://taglib.org/releases/taglib-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+# - name: gsm
+# no-autogen: true
+# build-options:
+# cflags: -fPIC
+# cxxflags: -c -fPIC
+# make-install-args:
+# - -j1
+# - INSTALL_ROOT=/app
+# - GSM_INSTALL_INC=/app/include/gsm
+# - GSM_INSTALL_MAN=/app/share/man/man3
+# - TOAST_INSTALL_MAN=/app/share/man/man1
+# sources:
+# - type: archive
+# url: https://www.quut.com/gsm/gsm-1.0.17.tar.gz
+# sha256: 855a57d1694941ddf3c73cb79b8d0b3891e9c9e7870b4981613b734e1ad07601
+## TODO needs some patch updates
+## x-checker-data:
+## type: anitya
+## project-id: 12587
+## url-template: https://www.quut.com/gsm/gsm-$version.tar.gz
+# - type: patch
+# path: gsm.patch
+# - type: patch
+# path: gsm-makefile.patch
+ - name: libdvbpsi
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://download.videolan.org/pub/libdvbpsi/1.3.3/libdvbpsi-1.3.3.tar.bz2
+ sha256: 02b5998bcf289cdfbd8757bedd5987e681309b0a25b3ffe6cebae599f7a00112
+ x-checker-data:
+ type: anitya
+ project-id: 21684
+ url-template: https://download.videolan.org/pub/libdvbpsi/$version/libdvbpsi-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libkate
+ rm-configure: true
+ config-opts:
+ - --disable-static
+ - --disable-doc
+ sources:
+ - type: archive
+ url: https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/libkate/libkate-0.4.1.tar.gz
+ sha256: c40e81d5866c3d4bf744e76ce0068d8f388f0e25f7e258ce0c8e76d7adc87b68
+ - type: patch
+ path: libkate.patch
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libass
+ config-opts:
+ - --enable-harfbuzz
+ - --enable-fontconfig
+ sources:
+ - type: archive
+ url: https://github.com/libass/libass/releases/download/0.17.1/libass-0.17.1.tar.xz
+ sha256: f0da0bbfba476c16ae3e1cfd862256d30915911f7abaa1b16ce62ee653192784
+ x-checker-data:
+ type: anitya
+ project-id: 1560
+ url-template: https://github.com/libass/libass/releases/download/$version/libass-$version.tar.xz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libebml
+ builddir: true
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://dl.matroska.org/downloads/libebml/libebml-1.4.5.tar.xz
+ sha256: 4971640b0592da29c2d426f303e137a9b0b3d07e1b81d069c1e56a2f49ab221b
+ x-checker-data:
+ type: anitya
+ project-id: 7879
+ url-template: https://dl.matroska.org/downloads/libebml/libebml-$version.tar.xz
+ - name: libmatroska
+ builddir: true
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://dl.matroska.org/downloads/libmatroska/libmatroska-1.7.1.tar.xz
+ sha256: 572a3033b8d93d48a6a858e514abce4b2f7a946fe1f02cbfeca39bfd703018b3
+ x-checker-data:
+ type: anitya
+ project-id: 1657
+ url-template: https://dl.matroska.org/downloads/libmatroska/libmatroska-$version.tar.xz
+ - name: libssh2
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://www.libssh2.org/download/libssh2-1.11.0.tar.gz
+ sha256: 3736161e41e2693324deb38c26cfdc3efe6209d634ba4258db1cecff6a5ad461
+ x-checker-data:
+ type: anitya
+ project-id: 1730
+ url-template: https://www.libssh2.org/download/libssh2-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libvncserver
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ - -DWITH_FFMPEG=OFF
+ sources:
+ - type: archive
+ url: https://github.com/LibVNC/libvncserver/archive/LibVNCServer-0.9.14.tar.gz
+ sha256: 83104e4f7e28b02f8bf6b010d69b626fae591f887e949816305daebae527c9a5
+ x-checker-data:
+ type: anitya
+ project-id: 1756
+ url-template: https://github.com/LibVNC/libvncserver/archive/LibVNCServer-$version.tar.gz
+ - name: libdvdread
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libdvdread/6.1.3/libdvdread-6.1.3.tar.bz2
+ sha256: ce35454997a208cbe50e91232f0e73fb1ac3471965813a13b8730a8f18a15369
+ x-checker-data:
+ type: anitya
+ project-id: 5614
+ url-template: https://download.videolan.org/videolan/libdvdread/$version/libdvdread-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libdvdnav
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libdvdnav/6.1.1/libdvdnav-6.1.1.tar.bz2
+ sha256: c191a7475947d323ff7680cf92c0fb1be8237701885f37656c64d04e98d18d48
+ x-checker-data:
+ type: anitya
+ project-id: 5615
+ url-template: https://download.videolan.org/videolan/libdvdnav/$version/libdvdnav-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libdvdcss
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libdvdcss/1.4.3/libdvdcss-1.4.3.tar.bz2
+ sha256: 233cc92f5dc01c5d3a96f5b3582be7d5cee5a35a52d3a08158745d3d86070079
+ x-checker-data:
+ type: anitya
+ project-id: 5568
+ url-template: https://download.videolan.org/videolan/libdvdcss/$version/libdvdcss-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libmodplug
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz
+ sha256: 457ca5a6c179656d66c01505c0d95fafaead4329b9dbaa0f997d00a3508ad9de
+ x-checker-data:
+ type: anitya
+ project-id: 5669
+ url-template: https://downloads.sourceforge.net/sourceforge/modplug-xmms/libmodplug/$version/libmodplug-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: x264
+ config-opts:
+ - --enable-pic
+ - --enable-shared
+ sources:
+ - type: git
+ url: https://code.videolan.org/videolan/x264.git
+ commit: a8b68ebfaa68621b5ac8907610d3335971839d52
+ - name: x265
+ builddir: true
+ subdir: source
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://bitbucket.org/multicoreware/x265_git/downloads/x265_3.5.tar.gz
+ sha256: e70a3335cacacbba0b3a20ec6fecd6783932288ebc8163ad74bcc9606477cae8
+ x-checker-data:
+ type: anitya
+ project-id: 7275
+ url-template: https://bitbucket.org/multicoreware/x265_git/downloads/x265_$version.tar.gz
+ - name: dav1d
+ buildsystem: meson
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/dav1d/1.3.0/dav1d-1.3.0.tar.xz
+ sha256: 6d8be2741c505c47f8f1ced3c9cc427759243436553d01d1acce201f87b39e71
+ x-checker-data:
+ type: anitya
+ project-id: 18920
+ url-template: https://download.videolan.org/videolan/dav1d/$version/dav1d-$version.tar.xz
+ - name: ffmpeg
+ config-opts:
+ - --enable-pic
+ - --enable-shared
+ - --disable-doc
+ - --disable-static
+ - --enable-gpl
+ - --enable-libx264
+ - --enable-libx265
+ - --enable-libvpx
+ - --enable-libmp3lame
+ - --enable-libvorbis
+ - --enable-libopus
+ sources:
+ - type: archive
+ url: https://ffmpeg.org/releases/ffmpeg-4.4.4.tar.xz
+ sha256: e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
+ x-checker-data:
+ type: anitya
+ project-id: 5405
+ versions:
+ '>=': '4'
+ <: '5'
+ url-template: https://ffmpeg.org/releases/ffmpeg-$version.tar.xz
+ - type: patch
+ path: ffmpeg_binutils241.patch
+ - shared-modules/libsecret/libsecret.json
+ - name: libaacs
+ config-opts:
+ - --with-pic
+ - --enable-shared
+ - --disable-static
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libaacs/0.11.1/libaacs-0.11.1.tar.bz2
+ sha256: a88aa0ebe4c98a77f7aeffd92ab3ef64ac548c6b822e8248a8b926725bea0a39
+ x-checker-data:
+ type: anitya
+ project-id: 5562
+ url-template: https://download.videolan.org/videolan/libaacs/$version/libaacs-$version.tar.bz2
+ - name: libbdplus
+ rm-configure: true
+ config-opts:
+ - --with-pic
+ - --enable-shared
+ - --disable-static
+ build-options:
+ append-path: /app/share/vlc/extra/bluray/ant/bin
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libbdplus/0.2.0/libbdplus-0.2.0.tar.bz2
+ sha256: b93eea3eaef33d6e9155d2c34b068c505493aa5a4936e63274f4342ab0f40a58
+ x-checker-data:
+ type: anitya
+ project-id: 5563
+ url-template: https://download.videolan.org/videolan/libbdplus/$version/libbdplus-$version.tar.bz2
+ - type: patch
+ path: libbdplus-gpg-error.patch
+ - name: libbluray
+ config-opts:
+ - --disable-static
+ - --disable-bdjava-jar
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2
+ sha256: 478ffd68a0f5dde8ef6ca989b7f035b5a0a22c599142e5cd3ff7b03bbebe5f2b
+ x-checker-data:
+ type: anitya
+ project-id: 1565
+ url-template: https://download.videolan.org/videolan/libbluray/$version/libbluray-$version.tar.bz2
+ - shared-modules/libusb/libusb.json
+ - name: libmtp
+ config-opts:
+ - --disable-static
+ - --with-udev=/app/lib/udev
+ sources:
+ - type: archive
+ url: https://github.com/libmtp/libmtp/releases/download/v1.1.21/libmtp-1.1.21.tar.gz
+ sha256: f4c1ceb3df020a6cb851110f620c14fe399518c494ed252039cbfb4e34335135
+ x-checker-data:
+ type: anitya
+ project-id: 10017
+ url-template: https://github.com/libmtp/libmtp/releases/download/v$version/libmtp-$version.tar.gz
+ - name: chromaprint
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://github.com/acoustid/chromaprint/releases/download/v1.5.1/chromaprint-1.5.1.tar.gz
+ sha256: a1aad8fa3b8b18b78d3755b3767faff9abb67242e01b478ec9a64e190f335e1c
+ x-checker-data:
+ type: anitya
+ project-id: 286
+ url-template: https://github.com/acoustid/chromaprint/releases/download/v$version/chromaprint-$version.tar.gz
+ - name: fluidlite
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ - -DENABLE_SF3=YES
+ sources:
+ - type: git
+ url: https://github.com/divideconcept/FluidLite.git
+ commit: d59d2328818f913b7d1a6a59aed695c47a8ce388
+ - name: libcaca
+ config-opts:
+ - --disable-static
+ - --disable-python
+ - --disable-ruby
+ sources:
+ - type: archive
+ url: https://deb.debian.org/debian/pool/main/libc/libcaca/libcaca_0.99.beta19.orig.tar.gz
+ sha256: 128b467c4ed03264c187405172a4e83049342cc8cc2f655f53a2d0ee9d3772f4
+ - name: libplacebo
+ buildsystem: meson
+ config-opts:
+ - -Dvulkan=false
+ sources:
+ - type: archive
+ url: https://github.com/haasn/libplacebo/archive/refs/tags/v0.2.1.tar.gz
+ sha256: d5d920a1745e4209287d32e8b96a85127b61b843304813980e11104cd9f15e82
+ x-checker-data:
+ type: anitya
+ project-id: 20101
+ versions:
+ '>=': '0.2'
+ <: '0.3'
+ url-template: https://github.com/haasn/libplacebo/archive/refs/tags/v$version.tar.gz
+ - name: libdsm
+ buildsystem: meson
+ sources:
+ - type: archive
+ url: https://github.com/videolabs/libdsm/releases/download/v0.4.3/libdsm-0.4.3.tar.xz
+ sha256: d31921bd6f6a23878266b945731f7d57505472ef85d66f944c43b9f8eacc2a8a
+ - name: microdns
+ buildsystem: meson
+ sources:
+ - type: archive
+ url: https://github.com/videolabs/libmicrodns/releases/download/0.2.0/microdns-0.2.0.tar.xz
+ sha256: 2da28e7dda4861d76f797f92ac3e6c3e048333b95f9e4fc3a6548ad8afd8c446
+ x-checker-data:
+ type: anitya
+ project-id: 275561
+ url-template: https://github.com/videolabs/libmicrodns/releases/download/$version/microdns-$version.tar.xz
+ - name: spatialaudio
+ builddir: true
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://github.com/videolabs/libspatialaudio/releases/download/0.3.0/spatialaudio-0.3.0.tar.bz2
+ sha256: 284c1dbd8efd46c03be84ac7070bc87cae81b7125352b143a70be3e2b96988e3
+ - name: srt
+ builddir: true
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://github.com/Haivision/srt/archive/v1.5.3.tar.gz
+ sha256: befaeb16f628c46387b898df02bc6fba84868e86a6f6d8294755375b9932d777
+ x-checker-data:
+ type: anitya
+ project-id: 236296
+ url-template: https://github.com/Haivision/srt/archive/v$version.tar.gz
+ - name: live555
+ buildsystem: simple
+ build-commands:
+ - CXXFLAGS=`sed "s/'/\"/g" /etc/flatpak-builder/defaults.json | jq -r .cxxflags`
+ ; sed -i -e "s|-O2|$CXXFLAGS|" config.linux-with-shared-libraries
+ - ./genMakefiles linux-with-shared-libraries
+ - LDFLAGS=`sed "s/'/\"/g" /etc/flatpak-builder/defaults.json | jq -r .ldflags`
+ ; make -j4 PREFIX=/app LIBDIR=/app/lib install
+ - chmod +x /app/lib/libliveMedia.so* /app/lib/libUsageEnvironment.so* /app/lib/libBasicUsageEnvironment.so*
+ /app/lib/libgroupsock.so*
+ cleanup:
+ - /bin
+ sources:
+ - type: archive
+ url: https://download.videolan.org/contrib/live555/live.2020.11.05.tar.gz
+ sha256: 89bdfba7fd215e16be2c9d46a797bf85c5f7f7c46b53dc8af2d1171a658da5b7
+ - type: patch
+ path: live555-add-pkgconfig-file.patch
+ - type: patch
+ path: live555-nosignal.patch
+ - name: libnotify
+ buildsystem: meson
+ config-opts:
+ - -Dgtk_doc=false
+ - -Dman=false
+ sources:
+ - type: archive
+ url: https://download.gnome.org/sources/libnotify/0.8/libnotify-0.8.3.tar.xz
+ sha256: ee8f3ef946156ad3406fdf45feedbdcd932dbd211ab4f16f75eba4f36fb2f6c0
+ x-checker-data:
+ type: anitya
+ project-id: 13149
+ url-template: https://download.gnome.org/sources/libnotify/$major.$minor/libnotify-$version.tar.xz
+ - name: protobuf
+ sources:
+ - type: archive
+ url: https://github.com/protocolbuffers/protobuf/releases/download/v21.12/protobuf-cpp-3.21.12.tar.gz
+ sha256: 4eab9b524aa5913c6fffb20b2a8abf5ef7f95a80bc0701f3a6dbb4c607f73460
+ x-checker-data:
+ type: anitya
+ project-id: 3715
+ versions:
+ '>=': '21'
+ <: '22'
+ url-template: https://github.com/protocolbuffers/protobuf/releases/download/v$version/protobuf-cpp-3.$version.tar.gz
+ cleanup:
+ - /bin
+ - name: vlc
+ config-opts:
+ - BUILDCC=/usr/bin/gcc -std=gnu99
+ - --disable-a52
+ - --disable-qt
+ cleanup:
+ - /share/macosx
+ post-install:
+ - install -Dp -m 644 org.videolan.VLC.appdata.xml /app/share/appdata/vlc.appdata.xml
+ - mv /app/bin/vlc /app/bin/vlc.bin
+ - mv vlc.sh /app/bin/vlc
+ - chmod +x /app/bin/vlc
+ - echo "StartupWMClass=VLC" >> /app/share/applications/vlc.desktop
+ - sed -i -e 's/Icon=vlc/Icon=org.videolan.VLC/g' /app/share/applications/vlc-*.desktop
+ - for s in openbd opendvd opencda openvcd; do mv /app/share/applications/vlc-$s.desktop
+ /app/share/applications/org.videolan.VLC-$s.desktop; done
+ - tar xf chrpath-0.16.tar.gz && cd chrpath-0.16 && ./configure && make
+ - ./chrpath-0.16/chrpath -d /app/lib/vlc/plugins/access/liblibbluray_plugin.so
+ - /app/lib/vlc/vlc-cache-gen /app/lib/vlc/plugins/
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/vlc/3.0.20/vlc-3.0.20.tar.xz
+ sha256: adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5
+ x-checker-data:
+ type: anitya
+ project-id: 6504
+ versions:
+ '>=': '3'
+ <: '4'
+ url-template: https://download.videolan.org/videolan/vlc/$version/vlc-$version.tar.xz
+ - type: file
+ path: org.videolan.VLC.appdata.xml
+ - type: patch
+ path: vlc-fix-appdata.patch
+ - type: patch
+ path: vlc-disc-shortcuts.patch
+ - type: patch
+ path: vlc-ignore-time-for-cache.patch
+ - type: file
+ path: vlc.sh
+ - type: file
+ url: https://src.fedoraproject.org/lookaside/extras/chrpath/chrpath-0.16.tar.gz/2bf8d1d1ee345fc8a7915576f5649982/chrpath-0.16.tar.gz
+ sha256: bb0d4c54bac2990e1bdf8132f2c9477ae752859d523e141e72b3b11a12c26e7b
+
diff --git a/flatpak/org.videolan.VLC/org.videolan.VLC.appdata.xml b/flatpak/org.videolan.VLC/org.videolan.VLC.appdata.xml
new file mode 100644
index 0000000..eba044b
--- /dev/null
+++ b/flatpak/org.videolan.VLC/org.videolan.VLC.appdata.xml
@@ -0,0 +1,57 @@
+
+
+
+
+ org.videolan.VLC
+ org.videolan.VLC.desktop
+ CC0-1.0
+ VLC
+ VLC media player, the open-source multimedia player
+
+
+ VLC is a free and open source cross-platform multimedia player and
+ framework that plays most multimedia files as well as DVDs, Audio CDs,
+ VCDs, and various streaming protocols.
+
+
+
+ Video
+ AudioVideo
+ Player
+
+
+ https://www.videolan.org/vlc/
+ https://code.videolan.org/videolan/vlc/-/issues
+ https://www.videolan.org/contribute.html
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.videolan.vlc
+ libvlc.so.5
+
+ VideoLAN
+ GPL-2.0+
+ VideoLAN et al.
+ matmaul_at_gmail.com
+
+ https://raw.githubusercontent.com/flathub/org.videolan.VLC/master/vlc_screenshot_gnome3.jpg
+ https://raw.githubusercontent.com/flathub/org.videolan.VLC/master/vlc_screenshot_gnome3_dark.jpg
+
+
diff --git a/flatpak/org.videolan.VLC/org.videolan.VLC.yaml b/flatpak/org.videolan.VLC/org.videolan.VLC.yaml
new file mode 100644
index 0000000..0e6f3ea
--- /dev/null
+++ b/flatpak/org.videolan.VLC/org.videolan.VLC.yaml
@@ -0,0 +1,673 @@
+app-id: org.videolan.VLC
+runtime: org.kde.Platform
+runtime-version: 5.15-23.08
+sdk: org.kde.Sdk
+command: vlc
+finish-args:
+ - --require-version=0.11.4
+ - --share=ipc
+ - --socket=x11
+ - --socket=pulseaudio
+ - --share=network
+ - --filesystem=host
+ - --talk-name=org.freedesktop.ScreenSaver
+ - --talk-name=org.freedesktop.secrets
+ - --talk-name=org.kde.kwalletd5
+ - --talk-name=org.kde.kwalletd
+ - --talk-name=org.kde.StatusNotifierWatcher
+ - --talk-name=org.mpris.MediaPlayer2.Player
+ - --own-name=org.mpris.MediaPlayer2.vlc
+ - --device=all
+ - --filesystem=xdg-run/gvfs
+add-extensions:
+ org.videolan.VLC.Plugin:
+ versions: 3-5.15-23.08;3-23.08
+ directory: share/vlc/extra
+ subdirectories: true
+ merge-dirs: plugins
+ add-ld-path: lib
+ no-autodownload: true
+ autodelete: true
+rename-appdata-file: vlc.appdata.xml
+rename-desktop-file: vlc.desktop
+rename-icon: vlc
+copy-icon: true
+cleanup:
+ - /share/doc
+ - /share/gtk-doc
+ - /share/info
+ - /share/man
+ - '*.la'
+ - '*.a'
+cleanup-commands:
+ - mkdir -p /app/share/vlc/extra
+ - ln -s /app/share/vlc/extra/plugins /app/lib/vlc/plugins/extra
+ - rm -f /app/lib/vlc/plugins/plugins.dat
+ - /app/lib/vlc/vlc-cache-gen /app/lib/vlc/plugins
+build-options:
+ env:
+ V: '1'
+modules:
+ - shared-modules/intltool/intltool-0.51.json
+ - shared-modules/SDL/SDL-1.2.15.json
+ - shared-modules/SDL/SDL_image-1.2.12.json
+ - shared-modules/lua5.3/lua-5.3.5.json
+ - shared-modules/glu/glu-9.json
+ - name: libraw1394
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://www.kernel.org/pub/linux/libs/ieee1394/libraw1394-2.1.2.tar.xz
+ sha256: 03ccc69761d22c7deb1127fc301010dd13e70e44bb7134b8ff0d07590259a55e
+ x-checker-data:
+ type: anitya
+ project-id: 1710
+ url-template: https://www.kernel.org/pub/linux/libs/ieee1394/libraw1394-$version.tar.xz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libavc1394
+ rm-configure: true
+ config-opts:
+ - --disable-static
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/libavc1394/libavc1394-0.5.4.tar.gz
+ sha256: 7cb1ff09506ae911ca9860bef4af08c2403f3e131f6c913a2cbd6ddca4215b53
+ x-checker-data:
+ type: anitya
+ project-id: 1562
+ url-template: https://downloads.sourceforge.net/sourceforge/libavc1394/libavc1394-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: zvbi
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/zapping/zvbi/0.2.35/zvbi-0.2.35.tar.bz2
+ sha256: fc883c34111a487c4a783f91b1b2bb5610d8d8e58dcba80c7ab31e67e4765318
+ x-checker-data:
+ type: anitya
+ project-id: 13803
+ url-template: https://downloads.sourceforge.net/sourceforge/zapping/zvbi/$version/zvbi-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libdc1394
+ rm-configure: true
+ config-opts:
+ - --disable-static
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/libdc1394/libdc1394-2/2.2.7/libdc1394-2.2.7.tar.gz
+ sha256: 537ceb78dd3cef271a183f4a176191d1cecf85f025520e6bd3758b0e19e6609f
+ x-checker-data:
+ type: anitya
+ project-id: 1591
+ url-template: https://downloads.sourceforge.net/sourceforge/libdc1394/libdc1394-2/$version/libdc1394-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libcddb
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/libcddb/libcddb/1.3.2/libcddb-1.3.2.tar.bz2
+ sha256: 35ce0ee1741ea38def304ddfe84a958901413aa829698357f0bee5bb8f0a223b
+ x-checker-data:
+ type: anitya
+ project-id: 1572
+ url-template: https://downloads.sourceforge.net/sourceforge/libcddb/libcddb/$version/libcddb-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: aalib
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/aa-project/aa-lib/1.4rc5/aalib-1.4rc5.tar.gz
+ sha256: fbddda9230cf6ee2a4f5706b4b11e2190ae45f5eda1f0409dc4f99b35e0a70ee
+ x-checker-data:
+ type: anitya
+ project-id: 7921
+ stable-only: false
+ url-template: https://downloads.sourceforge.net/sourceforge/aa-project/aa-lib/$version/aalib-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libshout
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.xiph.org/releases/libshout/libshout-2.4.6.tar.gz
+ sha256: 39cbd4f0efdfddc9755d88217e47f8f2d7108fa767f9d58a2ba26a16d8f7c910
+ x-checker-data:
+ type: anitya
+ project-id: 11084
+ url-template: https://downloads.xiph.org/releases/libshout/libshout-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libupnp
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/pupnp/libupnp-1.14.18.tar.bz2
+ sha256: 16a7cee93ce2868ae63ab1a8164dc7de43577c59983b9f61293a310d6888dceb
+ x-checker-data:
+ type: anitya
+ project-id: 21315
+ url-template: https://downloads.sourceforge.net/sourceforge/pupnp/libupnp-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: taglib
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ - -DWITH_MP4=ON
+ - -DWITH_ASF=ON
+ sources:
+ - type: archive
+ url: https://taglib.org/releases/taglib-1.13.1.tar.gz
+ sha256: c8da2b10f1bfec2cd7dbfcd33f4a2338db0765d851a50583d410bacf055cfd0b
+ x-checker-data:
+ type: anitya
+ project-id: 1982
+ url-template: https://taglib.org/releases/taglib-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: gsm
+ no-autogen: true
+ build-options:
+ cflags: -fPIC
+ cxxflags: -c -fPIC
+ make-install-args:
+ - -j1
+ - INSTALL_ROOT=/app
+ - GSM_INSTALL_INC=/app/include/gsm
+ - GSM_INSTALL_MAN=/app/share/man/man3
+ - TOAST_INSTALL_MAN=/app/share/man/man1
+ sources:
+ - type: archive
+ url: https://www.quut.com/gsm/gsm-1.0.17.tar.gz
+ sha256: 855a57d1694941ddf3c73cb79b8d0b3891e9c9e7870b4981613b734e1ad07601
+# TODO needs some patch updates
+# x-checker-data:
+# type: anitya
+# project-id: 12587
+# url-template: https://www.quut.com/gsm/gsm-$version.tar.gz
+ - type: patch
+ path: gsm.patch
+ - type: patch
+ path: gsm-makefile.patch
+ - name: libdvbpsi
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://download.videolan.org/pub/libdvbpsi/1.3.3/libdvbpsi-1.3.3.tar.bz2
+ sha256: 02b5998bcf289cdfbd8757bedd5987e681309b0a25b3ffe6cebae599f7a00112
+ x-checker-data:
+ type: anitya
+ project-id: 21684
+ url-template: https://download.videolan.org/pub/libdvbpsi/$version/libdvbpsi-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libkate
+ rm-configure: true
+ config-opts:
+ - --disable-static
+ - --disable-doc
+ sources:
+ - type: archive
+ url: https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/libkate/libkate-0.4.1.tar.gz
+ sha256: c40e81d5866c3d4bf744e76ce0068d8f388f0e25f7e258ce0c8e76d7adc87b68
+ - type: patch
+ path: libkate.patch
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libass
+ config-opts:
+ - --enable-harfbuzz
+ - --enable-fontconfig
+ sources:
+ - type: archive
+ url: https://github.com/libass/libass/releases/download/0.17.1/libass-0.17.1.tar.xz
+ sha256: f0da0bbfba476c16ae3e1cfd862256d30915911f7abaa1b16ce62ee653192784
+ x-checker-data:
+ type: anitya
+ project-id: 1560
+ url-template: https://github.com/libass/libass/releases/download/$version/libass-$version.tar.xz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libebml
+ builddir: true
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://dl.matroska.org/downloads/libebml/libebml-1.4.5.tar.xz
+ sha256: 4971640b0592da29c2d426f303e137a9b0b3d07e1b81d069c1e56a2f49ab221b
+ x-checker-data:
+ type: anitya
+ project-id: 7879
+ url-template: https://dl.matroska.org/downloads/libebml/libebml-$version.tar.xz
+ - name: libmatroska
+ builddir: true
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://dl.matroska.org/downloads/libmatroska/libmatroska-1.7.1.tar.xz
+ sha256: 572a3033b8d93d48a6a858e514abce4b2f7a946fe1f02cbfeca39bfd703018b3
+ x-checker-data:
+ type: anitya
+ project-id: 1657
+ url-template: https://dl.matroska.org/downloads/libmatroska/libmatroska-$version.tar.xz
+ - name: libssh2
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://www.libssh2.org/download/libssh2-1.11.0.tar.gz
+ sha256: 3736161e41e2693324deb38c26cfdc3efe6209d634ba4258db1cecff6a5ad461
+ x-checker-data:
+ type: anitya
+ project-id: 1730
+ url-template: https://www.libssh2.org/download/libssh2-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libvncserver
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ - -DWITH_FFMPEG=OFF
+ sources:
+ - type: archive
+ url: https://github.com/LibVNC/libvncserver/archive/LibVNCServer-0.9.14.tar.gz
+ sha256: 83104e4f7e28b02f8bf6b010d69b626fae591f887e949816305daebae527c9a5
+ x-checker-data:
+ type: anitya
+ project-id: 1756
+ url-template: https://github.com/LibVNC/libvncserver/archive/LibVNCServer-$version.tar.gz
+ - name: libdvdread
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libdvdread/6.1.3/libdvdread-6.1.3.tar.bz2
+ sha256: ce35454997a208cbe50e91232f0e73fb1ac3471965813a13b8730a8f18a15369
+ x-checker-data:
+ type: anitya
+ project-id: 5614
+ url-template: https://download.videolan.org/videolan/libdvdread/$version/libdvdread-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libdvdnav
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libdvdnav/6.1.1/libdvdnav-6.1.1.tar.bz2
+ sha256: c191a7475947d323ff7680cf92c0fb1be8237701885f37656c64d04e98d18d48
+ x-checker-data:
+ type: anitya
+ project-id: 5615
+ url-template: https://download.videolan.org/videolan/libdvdnav/$version/libdvdnav-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libdvdcss
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libdvdcss/1.4.3/libdvdcss-1.4.3.tar.bz2
+ sha256: 233cc92f5dc01c5d3a96f5b3582be7d5cee5a35a52d3a08158745d3d86070079
+ x-checker-data:
+ type: anitya
+ project-id: 5568
+ url-template: https://download.videolan.org/videolan/libdvdcss/$version/libdvdcss-$version.tar.bz2
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: libmodplug
+ rm-configure: true
+ sources:
+ - type: archive
+ url: https://downloads.sourceforge.net/sourceforge/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz
+ sha256: 457ca5a6c179656d66c01505c0d95fafaead4329b9dbaa0f997d00a3508ad9de
+ x-checker-data:
+ type: anitya
+ project-id: 5669
+ url-template: https://downloads.sourceforge.net/sourceforge/modplug-xmms/libmodplug/$version/libmodplug-$version.tar.gz
+ - type: script
+ commands:
+ - autoreconf -fiv
+ dest-filename: autogen.sh
+ - name: x264
+ config-opts:
+ - --enable-pic
+ - --enable-shared
+ sources:
+ - type: git
+ url: https://code.videolan.org/videolan/x264.git
+ commit: a8b68ebfaa68621b5ac8907610d3335971839d52
+ - name: x265
+ builddir: true
+ subdir: source
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://bitbucket.org/multicoreware/x265_git/downloads/x265_3.5.tar.gz
+ sha256: e70a3335cacacbba0b3a20ec6fecd6783932288ebc8163ad74bcc9606477cae8
+ x-checker-data:
+ type: anitya
+ project-id: 7275
+ url-template: https://bitbucket.org/multicoreware/x265_git/downloads/x265_$version.tar.gz
+ - name: dav1d
+ buildsystem: meson
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/dav1d/1.3.0/dav1d-1.3.0.tar.xz
+ sha256: 6d8be2741c505c47f8f1ced3c9cc427759243436553d01d1acce201f87b39e71
+ x-checker-data:
+ type: anitya
+ project-id: 18920
+ url-template: https://download.videolan.org/videolan/dav1d/$version/dav1d-$version.tar.xz
+ - name: ffmpeg
+ config-opts:
+ - --enable-pic
+ - --enable-shared
+ - --disable-doc
+ - --disable-static
+ - --enable-gpl
+ - --enable-libx264
+ - --enable-libx265
+ - --enable-libvpx
+ - --enable-libmp3lame
+ - --enable-libvorbis
+ - --enable-libopus
+ sources:
+ - type: archive
+ url: https://ffmpeg.org/releases/ffmpeg-4.4.4.tar.xz
+ sha256: e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
+ x-checker-data:
+ type: anitya
+ project-id: 5405
+ versions:
+ '>=': '4'
+ <: '5'
+ url-template: https://ffmpeg.org/releases/ffmpeg-$version.tar.xz
+ - type: patch
+ path: ffmpeg_binutils241.patch
+ - shared-modules/libsecret/libsecret.json
+ - name: libaacs
+ config-opts:
+ - --with-pic
+ - --enable-shared
+ - --disable-static
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libaacs/0.11.1/libaacs-0.11.1.tar.bz2
+ sha256: a88aa0ebe4c98a77f7aeffd92ab3ef64ac548c6b822e8248a8b926725bea0a39
+ x-checker-data:
+ type: anitya
+ project-id: 5562
+ url-template: https://download.videolan.org/videolan/libaacs/$version/libaacs-$version.tar.bz2
+ - name: libbdplus
+ rm-configure: true
+ config-opts:
+ - --with-pic
+ - --enable-shared
+ - --disable-static
+ build-options:
+ append-path: /app/share/vlc/extra/bluray/ant/bin
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libbdplus/0.2.0/libbdplus-0.2.0.tar.bz2
+ sha256: b93eea3eaef33d6e9155d2c34b068c505493aa5a4936e63274f4342ab0f40a58
+ x-checker-data:
+ type: anitya
+ project-id: 5563
+ url-template: https://download.videolan.org/videolan/libbdplus/$version/libbdplus-$version.tar.bz2
+ - type: patch
+ path: libbdplus-gpg-error.patch
+ - name: libbluray
+ config-opts:
+ - --disable-static
+ - --disable-bdjava-jar
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2
+ sha256: 478ffd68a0f5dde8ef6ca989b7f035b5a0a22c599142e5cd3ff7b03bbebe5f2b
+ x-checker-data:
+ type: anitya
+ project-id: 1565
+ url-template: https://download.videolan.org/videolan/libbluray/$version/libbluray-$version.tar.bz2
+ - shared-modules/libusb/libusb.json
+ - name: libmtp
+ config-opts:
+ - --disable-static
+ - --with-udev=/app/lib/udev
+ sources:
+ - type: archive
+ url: https://github.com/libmtp/libmtp/releases/download/v1.1.21/libmtp-1.1.21.tar.gz
+ sha256: f4c1ceb3df020a6cb851110f620c14fe399518c494ed252039cbfb4e34335135
+ x-checker-data:
+ type: anitya
+ project-id: 10017
+ url-template: https://github.com/libmtp/libmtp/releases/download/v$version/libmtp-$version.tar.gz
+ - name: chromaprint
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://github.com/acoustid/chromaprint/releases/download/v1.5.1/chromaprint-1.5.1.tar.gz
+ sha256: a1aad8fa3b8b18b78d3755b3767faff9abb67242e01b478ec9a64e190f335e1c
+ x-checker-data:
+ type: anitya
+ project-id: 286
+ url-template: https://github.com/acoustid/chromaprint/releases/download/v$version/chromaprint-$version.tar.gz
+ - name: fluidlite
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ - -DENABLE_SF3=YES
+ sources:
+ - type: git
+ url: https://github.com/divideconcept/FluidLite.git
+ commit: d59d2328818f913b7d1a6a59aed695c47a8ce388
+ - name: libcaca
+ config-opts:
+ - --disable-static
+ - --disable-python
+ - --disable-ruby
+ sources:
+ - type: archive
+ url: https://deb.debian.org/debian/pool/main/libc/libcaca/libcaca_0.99.beta19.orig.tar.gz
+ sha256: 128b467c4ed03264c187405172a4e83049342cc8cc2f655f53a2d0ee9d3772f4
+ - name: libplacebo
+ buildsystem: meson
+ config-opts:
+ - -Dvulkan=false
+ sources:
+ - type: archive
+ url: https://github.com/haasn/libplacebo/archive/refs/tags/v0.2.1.tar.gz
+ sha256: d5d920a1745e4209287d32e8b96a85127b61b843304813980e11104cd9f15e82
+ x-checker-data:
+ type: anitya
+ project-id: 20101
+ versions:
+ '>=': '0.2'
+ <: '0.3'
+ url-template: https://github.com/haasn/libplacebo/archive/refs/tags/v$version.tar.gz
+ - name: libdsm
+ buildsystem: meson
+ sources:
+ - type: archive
+ url: https://github.com/videolabs/libdsm/releases/download/v0.4.3/libdsm-0.4.3.tar.xz
+ sha256: d31921bd6f6a23878266b945731f7d57505472ef85d66f944c43b9f8eacc2a8a
+ - name: microdns
+ buildsystem: meson
+ sources:
+ - type: archive
+ url: https://github.com/videolabs/libmicrodns/releases/download/0.2.0/microdns-0.2.0.tar.xz
+ sha256: 2da28e7dda4861d76f797f92ac3e6c3e048333b95f9e4fc3a6548ad8afd8c446
+ x-checker-data:
+ type: anitya
+ project-id: 275561
+ url-template: https://github.com/videolabs/libmicrodns/releases/download/$version/microdns-$version.tar.xz
+ - name: spatialaudio
+ builddir: true
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://github.com/videolabs/libspatialaudio/releases/download/0.3.0/spatialaudio-0.3.0.tar.bz2
+ sha256: 284c1dbd8efd46c03be84ac7070bc87cae81b7125352b143a70be3e2b96988e3
+ - name: srt
+ builddir: true
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ - -DBUILD_SHARED_LIBS=ON
+ - -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ sources:
+ - type: archive
+ url: https://github.com/Haivision/srt/archive/v1.5.3.tar.gz
+ sha256: befaeb16f628c46387b898df02bc6fba84868e86a6f6d8294755375b9932d777
+ x-checker-data:
+ type: anitya
+ project-id: 236296
+ url-template: https://github.com/Haivision/srt/archive/v$version.tar.gz
+ - name: live555
+ buildsystem: simple
+ build-commands:
+ - CXXFLAGS=`sed "s/'/\"/g" /etc/flatpak-builder/defaults.json | jq -r .cxxflags`
+ ; sed -i -e "s|-O2|$CXXFLAGS|" config.linux-with-shared-libraries
+ - ./genMakefiles linux-with-shared-libraries
+ - LDFLAGS=`sed "s/'/\"/g" /etc/flatpak-builder/defaults.json | jq -r .ldflags`
+ ; make -j4 PREFIX=/app LIBDIR=/app/lib install
+ - chmod +x /app/lib/libliveMedia.so* /app/lib/libUsageEnvironment.so* /app/lib/libBasicUsageEnvironment.so*
+ /app/lib/libgroupsock.so*
+ cleanup:
+ - /bin
+ sources:
+ - type: archive
+ url: https://download.videolan.org/contrib/live555/live.2020.11.05.tar.gz
+ sha256: 89bdfba7fd215e16be2c9d46a797bf85c5f7f7c46b53dc8af2d1171a658da5b7
+ - type: patch
+ path: live555-add-pkgconfig-file.patch
+ - type: patch
+ path: live555-nosignal.patch
+ - name: libnotify
+ buildsystem: meson
+ config-opts:
+ - -Dgtk_doc=false
+ - -Dman=false
+ sources:
+ - type: archive
+ url: https://download.gnome.org/sources/libnotify/0.8/libnotify-0.8.3.tar.xz
+ sha256: ee8f3ef946156ad3406fdf45feedbdcd932dbd211ab4f16f75eba4f36fb2f6c0
+ x-checker-data:
+ type: anitya
+ project-id: 13149
+ url-template: https://download.gnome.org/sources/libnotify/$major.$minor/libnotify-$version.tar.xz
+ - name: protobuf
+ sources:
+ - type: archive
+ url: https://github.com/protocolbuffers/protobuf/releases/download/v21.12/protobuf-cpp-3.21.12.tar.gz
+ sha256: 4eab9b524aa5913c6fffb20b2a8abf5ef7f95a80bc0701f3a6dbb4c607f73460
+ x-checker-data:
+ type: anitya
+ project-id: 3715
+ versions:
+ '>=': '21'
+ <: '22'
+ url-template: https://github.com/protocolbuffers/protobuf/releases/download/v$version/protobuf-cpp-3.$version.tar.gz
+ cleanup:
+ - /bin
+ - name: vlc
+ config-opts:
+ - BUILDCC=/usr/bin/gcc -std=gnu99
+ - --disable-a52
+ cleanup:
+ - /share/macosx
+ post-install:
+ - install -Dp -m 644 org.videolan.VLC.appdata.xml /app/share/appdata/vlc.appdata.xml
+ - mv /app/bin/vlc /app/bin/vlc.bin
+ - mv vlc.sh /app/bin/vlc
+ - chmod +x /app/bin/vlc
+ - echo "StartupWMClass=VLC" >> /app/share/applications/vlc.desktop
+ - sed -i -e 's/Icon=vlc/Icon=org.videolan.VLC/g' /app/share/applications/vlc-*.desktop
+ - for s in openbd opendvd opencda openvcd; do mv /app/share/applications/vlc-$s.desktop
+ /app/share/applications/org.videolan.VLC-$s.desktop; done
+ - tar xf chrpath-0.16.tar.gz && cd chrpath-0.16 && ./configure && make
+ - ./chrpath-0.16/chrpath -d /app/lib/vlc/plugins/access/liblibbluray_plugin.so
+ sources:
+ - type: archive
+ url: https://download.videolan.org/videolan/vlc/3.0.20/vlc-3.0.20.tar.xz
+ sha256: adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5
+ x-checker-data:
+ type: anitya
+ project-id: 6504
+ versions:
+ '>=': '3'
+ <: '4'
+ url-template: https://download.videolan.org/videolan/vlc/$version/vlc-$version.tar.xz
+ - type: file
+ path: org.videolan.VLC.appdata.xml
+ - type: patch
+ path: vlc-fix-appdata.patch
+ - type: patch
+ path: vlc-disc-shortcuts.patch
+ - type: patch
+ path: vlc-ignore-time-for-cache.patch
+ - type: file
+ path: vlc.sh
+ - type: file
+ url: https://src.fedoraproject.org/lookaside/extras/chrpath/chrpath-0.16.tar.gz/2bf8d1d1ee345fc8a7915576f5649982/chrpath-0.16.tar.gz
+ sha256: bb0d4c54bac2990e1bdf8132f2c9477ae752859d523e141e72b3b11a12c26e7b
+
diff --git a/flatpak/org.videolan.VLC/shared-modules b/flatpak/org.videolan.VLC/shared-modules
new file mode 160000
index 0000000..f63cb3f
--- /dev/null
+++ b/flatpak/org.videolan.VLC/shared-modules
@@ -0,0 +1 @@
+Subproject commit f63cb3f5fff835c141769d35cd54ce0ae042fcbf
diff --git a/flatpak/org.videolan.VLC/vlc-disc-shortcuts.patch b/flatpak/org.videolan.VLC/vlc-disc-shortcuts.patch
new file mode 100644
index 0000000..0b28d8c
--- /dev/null
+++ b/flatpak/org.videolan.VLC/vlc-disc-shortcuts.patch
@@ -0,0 +1,115 @@
+---
+ share/Makefile.am | 5 +++--
+ share/vlc-openbd.desktop.in | 9 +++++++++
+ share/vlc-opencda.desktop.in | 9 +++++++++
+ share/vlc-opendvd.desktop.in | 9 +++++++++
+ share/vlc-openvcd.desktop.in | 9 +++++++++
+ share/vlc.desktop.mimetypes | 4 ----
+ 6 files changed, 39 insertions(+), 6 deletions(-)
+ create mode 100644 share/vlc-openbd.desktop.in
+ create mode 100644 share/vlc-opencda.desktop.in
+ create mode 100644 share/vlc-opendvd.desktop.in
+ create mode 100644 share/vlc-openvcd.desktop.in
+
+diff --git a/share/Makefile.am b/share/Makefile.am
+index bf81792..75add73 100644
+--- a/share/Makefile.am
++++ b/share/Makefile.am
+@@ -5,7 +5,7 @@
+ desktopdir = $(datadir)/applications
+ if !HAVE_WIN32
+ if !HAVE_DARWIN
+-desktop_DATA = vlc.desktop
++desktop_DATA = vlc.desktop vlc-openbd.desktop vlc-opendvd.desktop vlc-openvcd.desktop vlc-opencda.desktop
+ appdatadir = $(datarootdir)/metainfo
+ appdata_DATA = $(appdata_in_files:.xml.in=.xml)
+ appdata_in_files = vlc.appdata.xml.in
+@@ -13,9 +13,10 @@
+ endif
+
+ EXTRA_DIST += vlc.desktop.in vlc.desktop.mimetypes
++EXTRA_DIST += vlc-openbd.desktop.in vlc-opendvd.desktop.in vlc-openvcd.desktop.in vlc-opencda.desktop.in
+ CLEANFILES += $(desktop_DATA) $(appdata_DATA)
+
+-vlc.desktop: vlc.desktop.in $(top_builddir)/config.status
++%.desktop: %.desktop.in $(top_builddir)/config.status
+ $(AM_V_GEN)mimetypes="$$(sed 's/\s*#.*$$//g' $(srcdir)/vlc.desktop.mimetypes | egrep -v '^$$' | tr "\n" ';')"; \
+ sed \
+ -e 's,\@bindir\@,$(bindir),g' \
+diff --git a/share/vlc-openbd.desktop.in b/share/vlc-openbd.desktop.in
+new file mode 100644
+index 0000000..386eb20
+--- /dev/null
++++ b/share/vlc-openbd.desktop.in
+@@ -0,0 +1,9 @@
++[Desktop Entry]
++Version=1.0
++Name=VLC media player (Blu-ray)
++NoDisplay=true
++Exec=@bindir@/vlc --started-from-file bluray://%f
++Icon=vlc
++Terminal=false
++Type=Application
++MimeType=x-content/video-bluray
+diff --git a/share/vlc-opencda.desktop.in b/share/vlc-opencda.desktop.in
+new file mode 100644
+index 0000000..503d5a8
+--- /dev/null
++++ b/share/vlc-opencda.desktop.in
+@@ -0,0 +1,9 @@
++[Desktop Entry]
++Version=1.0
++Name=VLC media player (Audio CD)
++NoDisplay=true
++Exec=@bindir@/vlc --started-from-file cdda://%f
++Icon=vlc
++Terminal=false
++Type=Application
++MimeType=x-content/audio-cdda
+diff --git a/share/vlc-opendvd.desktop.in b/share/vlc-opendvd.desktop.in
+new file mode 100644
+index 0000000..aadc44a
+--- /dev/null
++++ b/share/vlc-opendvd.desktop.in
+@@ -0,0 +1,9 @@
++[Desktop Entry]
++Version=1.0
++Name=VLC media player (DVD)
++NoDisplay=true
++Exec=@bindir@/vlc --started-from-file dvd://%f
++Icon=vlc
++Terminal=false
++Type=Application
++MimeType=x-content/video-dvd
+diff --git a/share/vlc-openvcd.desktop.in b/share/vlc-openvcd.desktop.in
+new file mode 100644
+index 0000000..c6dd894
+--- /dev/null
++++ b/share/vlc-openvcd.desktop.in
+@@ -0,0 +1,9 @@
++[Desktop Entry]
++Version=1.0
++Name=VLC media player (VCD)
++NoDisplay=true
++Exec=@bindir@/vlc --started-from-file vcd://%f
++Icon=vlc
++Terminal=false
++Type=Application
++MimeType=x-content/video-vcd;x-content/video-svcd
+diff --git a/share/vlc.desktop.mimetypes b/share/vlc.desktop.mimetypes
+index 0d866f7..d521c6c 100644
+--- a/share/vlc.desktop.mimetypes
++++ b/share/vlc.desktop.mimetypes
+@@ -119,10 +119,6 @@ x-scheme-handler/icyx # Icecast
+
+ # Linux desktop environment hooks for ISOs etc.
+ application/x-cd-image
+-x-content/video-vcd
+-x-content/video-svcd
+-x-content/video-dvd
+-x-content/audio-cdda
+ x-content/audio-player
+
+ # Playlists / text/xml list with URLs
+…
+
diff --git a/flatpak/org.videolan.VLC/vlc-fix-appdata.patch b/flatpak/org.videolan.VLC/vlc-fix-appdata.patch
new file mode 100644
index 0000000..22435de
--- /dev/null
+++ b/flatpak/org.videolan.VLC/vlc-fix-appdata.patch
@@ -0,0 +1,21 @@
+diff --git a/share/vlc.appdata.xml.in.in b/share/vlc.appdata.xml.in.in
+index b271502eb9..b492c6f7ff 100644
+--- a/share/vlc.appdata.xml.in.in
++++ b/share/vlc.appdata.xml.in.in
+@@ -14,13 +14,15 @@
+ VCDs, and various streaming protocols.
+
+
++
+ https://www.videolan.org/vlc/
+ https://trac.videolan.org/vlc/
+ https://www.videolan.org/contribute.html
+
+-
++
+
+
++ org.videolan.VLC
+ libvlc.so.5
+
+ VideoLAN
diff --git a/flatpak/org.videolan.VLC/vlc-ignore-time-for-cache.patch b/flatpak/org.videolan.VLC/vlc-ignore-time-for-cache.patch
new file mode 100644
index 0000000..e89ea89
--- /dev/null
+++ b/flatpak/org.videolan.VLC/vlc-ignore-time-for-cache.patch
@@ -0,0 +1,26 @@
+From b380b05132521b0c1c18b872eba23d1ebc32e0c9 Mon Sep 17 00:00:00 2001
+From: Mathieu Velten
+Date: Sun, 16 Jun 2019 02:46:56 +0200
+Subject: [PATCH] Ignore time for cache
+
+---
+ src/modules/bank.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/modules/bank.c b/src/modules/bank.c
+index 2e67a0d07e..ab2915fbb7 100644
+--- a/src/modules/bank.c
++++ b/src/modules/bank.c
+@@ -275,8 +275,7 @@ static int AllocatePluginFile (module_bank_t *bank, const char *abspath,
+ plugin = vlc_cache_lookup(&bank->cache, relpath);
+
+ if (plugin != NULL
+- && (plugin->mtime != (int64_t)st->st_mtime
+- || plugin->size != (uint64_t)st->st_size))
++ && plugin->size != (uint64_t)st->st_size)
+ {
+ msg_Err(bank->obj, "stale plugins cache: modified %s",
+ plugin->abspath);
+--
+2.21.0
+
diff --git a/flatpak/org.videolan.VLC/vlc-packetizer-flac-fix-CRC-from-emulated-sync.patch b/flatpak/org.videolan.VLC/vlc-packetizer-flac-fix-CRC-from-emulated-sync.patch
new file mode 100644
index 0000000..ece4766
--- /dev/null
+++ b/flatpak/org.videolan.VLC/vlc-packetizer-flac-fix-CRC-from-emulated-sync.patch
@@ -0,0 +1,91 @@
+From: Francois Cartegnie
+Date: Mon, 7 Nov 2022 15:02:57 +0100
+Subject: [PATCH] packetizer: flac: fix CRC from emulated sync
+
+also skips some memcpy
+
+refs #27454 #27477
+
+(cherry picked from commit c14b5aa6a7bd3aa25fa951e2b4136aff70f5702a)
+---
+ modules/packetizer/flac.c | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/modules/packetizer/flac.c b/modules/packetizer/flac.c
+index 7c7bc06b84..02a43f7653 100644
+--- a/modules/packetizer/flac.c
++++ b/modules/packetizer/flac.c
+@@ -78,6 +78,7 @@ struct decoder_sys_t
+
+ size_t i_last_frame_size;
+ uint16_t crc;
++ size_t i_buf_offset; /* in final buffer before crc check / validation / retry */
+ size_t i_buf;
+ uint8_t *p_buf;
+
+@@ -386,6 +387,7 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block)
+ p_sys->headerinfo = headerinfo;
+ p_sys->i_state = STATE_NEXT_SYNC;
+ p_sys->i_offset = FLAC_FRAME_SIZE_MIN;
++ p_sys->i_buf_offset = 0;
+ p_sys->crc = 0;
+
+ /* We have to read until next frame sync code to compute current frame size
+@@ -461,6 +463,7 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block)
+ block_SkipBytes( &p_sys->bytestream, FLAC_HEADER_SIZE_MAX + 2 );
+ block_BytestreamFlush( &p_sys->bytestream );
+ p_sys->crc = 0;
++ p_sys->i_buf_offset = 0;
+ p_sys->i_offset = 0;
+ p_sys->i_state = STATE_NOSYNC;
+ p_sys->i_next_block_flags |= BLOCK_FLAG_DISCONTINUITY;
+@@ -484,10 +487,12 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block)
+ }
+
+ /* Copy from previous sync point up to to current (offset) */
+- block_PeekOffsetBytes( &p_sys->bytestream, 0, p_sys->p_buf, p_sys->i_offset );
++ block_PeekOffsetBytes( &p_sys->bytestream, p_sys->i_buf_offset,
++ &p_sys->p_buf[p_sys->i_buf_offset],
++ p_sys->i_offset - p_sys->i_buf_offset );
+
+ /* update crc to include this data chunk */
+- for( size_t i = 0; i < p_sys->i_offset - 2; i++ )
++ for( size_t i = p_sys->i_buf_offset; i < p_sys->i_offset - 2; i++ )
+ p_sys->crc = flac_crc16( p_sys->crc, p_sys->p_buf[i] );
+
+ uint16_t stream_crc = GetWBE(&p_sys->p_buf[p_sys->i_offset - 2]);
+@@ -497,6 +502,7 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block)
+ /* Add the 2 last bytes which were not the CRC sum, and go for next sync point */
+ p_sys->crc = flac_crc16( p_sys->crc, p_sys->p_buf[p_sys->i_offset - 2] );
+ p_sys->crc = flac_crc16( p_sys->crc, p_sys->p_buf[p_sys->i_offset - 1] );
++ p_sys->i_buf_offset = p_sys->i_offset;
+ p_sys->i_offset += 1;
+ p_sys->i_state = !pp_block ? STATE_NOSYNC : STATE_NEXT_SYNC;
+ break; /* continue */
+@@ -513,6 +519,7 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block)
+ block_BytestreamFlush( &p_sys->bytestream );
+ p_sys->i_offset = 0;
+ p_sys->crc = 0;
++ p_sys->i_buf_offset = 0;
+
+ if( block_BytestreamRemaining(&p_sys->bytestream) > 0 || pp_block == NULL /* drain */)
+ p_sys->i_state = STATE_SEND_DATA;
+@@ -553,6 +560,7 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block)
+ else
+ free( p_sys->p_buf );
+
++ p_sys->i_buf_offset = 0;
+ p_sys->i_buf = 0;
+ p_sys->p_buf = NULL;
+ p_sys->i_offset = 0;
+@@ -587,6 +595,7 @@ static int Open(vlc_object_t *p_this)
+ p_sys->b_stream_info = false;
+ p_sys->i_last_frame_size = FLAC_FRAME_SIZE_MIN;
+ p_sys->headerinfo.i_pts = VLC_TS_INVALID;
++ p_sys->i_buf_offset = 0;
+ p_sys->i_buf = 0;
+ p_sys->p_buf = NULL;
+ p_sys->i_next_block_flags = 0;
+--
+2.30.2
+
diff --git a/flatpak/org.videolan.VLC/vlc.sh b/flatpak/org.videolan.VLC/vlc.sh
new file mode 100644
index 0000000..f64782b
--- /dev/null
+++ b/flatpak/org.videolan.VLC/vlc.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+shopt -s nullglob
+
+for f in /app/share/vlc/extra/*/*.sh; do
+ source $f
+done
+
+exec /app/bin/vlc.bin $VLC_ARGS "$@"
diff --git a/flatpak/org.videolan.VLC/vlc_screenshot_gnome3.jpg b/flatpak/org.videolan.VLC/vlc_screenshot_gnome3.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..40fec4be15afa917447603dadbc8be45812561e5
GIT binary patch
literal 102202
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 |