Sfoglia il codice sorgente

build-aux,CI: Add format to Flatpak manifest

- Change Flatpak manifest indent size to 4
- Add a Python script to format manifest files
- Add editorconfig for Flatpak JSONs and Python files
tytan652 2 anni fa
parent
commit
c28c5333fc

+ 8 - 0
.editorconfig

@@ -37,3 +37,11 @@ indent_size = 4
 [*.qss]
 indent_style = space
 indent_size = 4
+
+[build-aux/**/*.json]
+indent_style = space
+indent_size = 4
+
+[*.py]
+indent_style = space
+indent_size = 4

+ 5 - 0
.github/workflows/main.yml

@@ -59,6 +59,11 @@ jobs:
         run: |
           ./CI/check-cmake.sh
 
+      - name: 'Run format-manifest.py'
+        run: |
+          python3 ./build-aux/format-manifest.py
+          ./CI/check-changes.sh
+
   config:
     name: '01 - Configure Build Jobs'
     runs-on: [ubuntu-22.04]

+ 3 - 1
build-aux/README.md

@@ -1,6 +1,8 @@
 # `build-aux` folder
 
-This folder contains only the Flatpak manifest used to build OBS Studio.
+This folder contains:
+- The Flatpak manifest used to build OBS Studio
+- The script `format-manifest.py` which format manifest JSON files
 
 ## OBS Studio Flatpak Manifest
 

+ 100 - 100
build-aux/com.obsproject.Studio.json

@@ -1,105 +1,105 @@
 {
-  "app-id": "com.obsproject.Studio",
-  "runtime": "org.kde.Platform",
-  "runtime-version": "6.4",
-  "sdk": "org.kde.Sdk",
-  "command": "obs",
-  "finish-args": [
-    "--socket=wayland",
-    "--socket=x11",
-    "--socket=pulseaudio",
-    "--device=all",
-    "--share=network",
-    "--share=ipc",
-    "--filesystem=xdg-run/pipewire-0",
-    "--filesystem=host",
-    "--talk-name=org.kde.StatusNotifierWatcher",
-    "--talk-name=org.freedesktop.Flatpak",
-    "--talk-name=org.freedesktop.Notifications",
-    "--talk-name=org.a11y.Bus",
-    "--own-name=org.kde.StatusNotifierItem-2-2",
-    "--system-talk-name=org.freedesktop.Avahi",
-    "--env=VST_PATH=/app/extensions/Plugins/vst"
-  ],
-  "add-extensions": {
-    "com.obsproject.Studio.Plugin": {
-      "directory": "plugins",
-      "subdirectories": true,
-      "add-ld-path": "lib",
-      "merge-dirs": "lib/obs-plugins;share/obs/obs-plugins",
-      "no-autodownload": true,
-      "autodelete": true
+    "app-id": "com.obsproject.Studio",
+    "runtime": "org.kde.Platform",
+    "runtime-version": "6.4",
+    "sdk": "org.kde.Sdk",
+    "command": "obs",
+    "finish-args": [
+        "--socket=wayland",
+        "--socket=x11",
+        "--socket=pulseaudio",
+        "--device=all",
+        "--share=network",
+        "--share=ipc",
+        "--filesystem=xdg-run/pipewire-0",
+        "--filesystem=host",
+        "--talk-name=org.kde.StatusNotifierWatcher",
+        "--talk-name=org.freedesktop.Flatpak",
+        "--talk-name=org.freedesktop.Notifications",
+        "--talk-name=org.a11y.Bus",
+        "--own-name=org.kde.StatusNotifierItem-2-2",
+        "--system-talk-name=org.freedesktop.Avahi",
+        "--env=VST_PATH=/app/extensions/Plugins/vst"
+    ],
+    "add-extensions": {
+        "com.obsproject.Studio.Plugin": {
+            "directory": "plugins",
+            "subdirectories": true,
+            "add-ld-path": "lib",
+            "merge-dirs": "lib/obs-plugins;share/obs/obs-plugins",
+            "no-autodownload": true,
+            "autodelete": true
+        },
+        "org.freedesktop.LinuxAudio.Plugins": {
+            "directory": "extensions/Plugins",
+            "version": "22.08",
+            "add-ld-path": "lib",
+            "merge-dirs": "vst",
+            "subdirectories": true,
+            "no-autodownload": true
+        }
     },
-    "org.freedesktop.LinuxAudio.Plugins": {
-      "directory": "extensions/Plugins",
-      "version": "22.08",
-      "add-ld-path": "lib",
-      "merge-dirs": "vst",
-      "subdirectories": true,
-      "no-autodownload": true
-    }
-  },
-  "cleanup": [
-    "/share/man",
-    "*.la"
-  ],
-  "modules": [
-    "modules/10-mbedtls.json",
-    "modules/20-aom.json",
-    "modules/20-librist.json",
-    "modules/20-nv-codec.json",
-    "modules/20-srt.json",
-    "modules/20-svt-av1.json",
-    "modules/20-x264.json",
-    "modules/30-ffmpeg.json",
-    "modules/40-luajit.json",
-    "modules/50-jansson.json",
-    "modules/50-ntv2.json",
-    "modules/50-pipewire.json",
-    "modules/50-swig.json",
-    "modules/50-v4l-utils.json",
-    "modules/90-asio.json",
-    "modules/90-nlohmann-json.json",
-    "modules/90-websocketpp.json",
-    "modules/99-cef.json",
-    {
-      "name": "obs",
-      "buildsystem": "cmake-ninja",
-      "builddir": true,
-      "config-opts": [
-        "-DCMAKE_BUILD_TYPE=Release",
-        "-DENABLE_WAYLAND=ON",
-        "-DENABLE_BROWSER=ON",
-        "-DCEF_ROOT_DIR=/app/cef",
-        "-DUSE_XDG=ON",
-        "-DENABLE_ALSA=OFF",
-        "-DENABLE_PULSEAUDIO=ON",
-        "-DENABLE_JACK=ON",
-        "-DENABLE_RTMPS=ON",
-        "-DENABLE_VLC=OFF",
-        "-DENABLE_AJA=ON",
-        "-DENABLE_LIBFDK=ON"
-      ],
-      "secret-opts": [
-        "-DRESTREAM_CLIENTID=$RESTREAM_CLIENTID",
-        "-DRESTREAM_HASH=$RESTREAM_HASH",
-        "-DTWITCH_CLIENTID=$TWITCH_CLIENTID",
-        "-DTWITCH_HASH=$TWITCH_HASH",
-        "-DYOUTUBE_CLIENTID=$YOUTUBE_CLIENTID",
-        "-DYOUTUBE_CLIENTID_HASH=$YOUTUBE_CLIENTID_HASH",
-        "-DYOUTUBE_SECRET=$YOUTUBE_SECRET",
-        "-DYOUTUBE_SECRET_HASH=$YOUTUBE_SECRET_HASH"
-      ],
-      "post-install": [
-        "install -d /app/plugins",
-        "install -d /app/extensions/Plugins"
-      ],
-      "sources": [
+    "cleanup": [
+        "/share/man",
+        "*.la"
+    ],
+    "modules": [
+        "modules/10-mbedtls.json",
+        "modules/20-aom.json",
+        "modules/20-librist.json",
+        "modules/20-nv-codec.json",
+        "modules/20-srt.json",
+        "modules/20-svt-av1.json",
+        "modules/20-x264.json",
+        "modules/30-ffmpeg.json",
+        "modules/40-luajit.json",
+        "modules/50-jansson.json",
+        "modules/50-ntv2.json",
+        "modules/50-pipewire.json",
+        "modules/50-swig.json",
+        "modules/50-v4l-utils.json",
+        "modules/90-asio.json",
+        "modules/90-nlohmann-json.json",
+        "modules/90-websocketpp.json",
+        "modules/99-cef.json",
         {
-          "type": "dir",
-          "path": "../"
+            "name": "obs",
+            "buildsystem": "cmake-ninja",
+            "builddir": true,
+            "config-opts": [
+                "-DCMAKE_BUILD_TYPE=Release",
+                "-DENABLE_WAYLAND=ON",
+                "-DENABLE_BROWSER=ON",
+                "-DCEF_ROOT_DIR=/app/cef",
+                "-DUSE_XDG=ON",
+                "-DENABLE_ALSA=OFF",
+                "-DENABLE_PULSEAUDIO=ON",
+                "-DENABLE_JACK=ON",
+                "-DENABLE_RTMPS=ON",
+                "-DENABLE_VLC=OFF",
+                "-DENABLE_AJA=ON",
+                "-DENABLE_LIBFDK=ON"
+            ],
+            "secret-opts": [
+                "-DRESTREAM_CLIENTID=$RESTREAM_CLIENTID",
+                "-DRESTREAM_HASH=$RESTREAM_HASH",
+                "-DTWITCH_CLIENTID=$TWITCH_CLIENTID",
+                "-DTWITCH_HASH=$TWITCH_HASH",
+                "-DYOUTUBE_CLIENTID=$YOUTUBE_CLIENTID",
+                "-DYOUTUBE_CLIENTID_HASH=$YOUTUBE_CLIENTID_HASH",
+                "-DYOUTUBE_SECRET=$YOUTUBE_SECRET",
+                "-DYOUTUBE_SECRET_HASH=$YOUTUBE_SECRET_HASH"
+            ],
+            "post-install": [
+                "install -d /app/plugins",
+                "install -d /app/extensions/Plugins"
+            ],
+            "sources": [
+                {
+                    "type": "dir",
+                    "path": "../"
+                }
+            ]
         }
-      ]
-    }
-  ]
+    ]
 }

+ 40 - 0
build-aux/format-manifest.py

@@ -0,0 +1,40 @@
+import json
+import os
+import sys
+
+MAIN_MANIFEST_FILENAME = "com.obsproject.Studio.json"
+
+def main():
+    dir_path = os.path.dirname(os.path.realpath(__file__))
+    if not os.path.isfile(os.path.join(dir_path, MAIN_MANIFEST_FILENAME)):
+        print("The script is not ran in the same folder as the manifest")
+        return 1
+
+    for root, dirs, files in os.walk(dir_path):
+        for file in files:
+            if not file.endswith(".json"):
+                continue
+
+            print(f"Formatting {file}")
+            # Load JSON file
+            with open(os.path.join(root, file), "r") as f:
+                j = json.load(f)
+
+            if file == MAIN_MANIFEST_FILENAME:
+                # Sort module files order in the manifest
+                # Assumption: All modules except the last are strings
+                file_modules = j["modules"][0:-1]
+                last_module = j["modules"][-1]
+                file_modules.sort(key=lambda file_name: file_name)
+                j["modules"] = file_modules
+                j["modules"].append(last_module)
+
+            # Overwrite JSON file
+            with open(os.path.join(root, file), "w") as f:
+                json.dump(j, f, indent=4, ensure_ascii=False)
+                f.write("\n")
+
+    return 0
+
+if __name__ == '__main__':
+    sys.exit(main())

+ 22 - 22
build-aux/modules/10-mbedtls.json

@@ -1,24 +1,24 @@
 {
-  "name": "mbedtls",
-  "buildsystem": "cmake-ninja",
-  "builddir": true,
-  "config-opts": [
-    "-DCMAKE_BUILD_TYPE=Release",
-    "-DCMAKE_POSITION_INDEPENDENT_CODE=ON",
-    "-DUSE_SHARED_MBEDTLS_LIBRARY=ON",
-    "-DUSE_STATIC_MBEDTLS_LIBRARY=OFF",
-    "-DENABLE_TESTING=OFF",
-    "-DENABLE_PROGRAMS=OFF"
-  ],
-  "cleanup": [
-    "/include"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://github.com/ARMmbed/mbedtls.git",
-      "commit": "869298bffeea13b205343361b7a7daf2b210e33d",
-      "tag": "v3.2.1"
-    }
-  ]
+    "name": "mbedtls",
+    "buildsystem": "cmake-ninja",
+    "builddir": true,
+    "config-opts": [
+        "-DCMAKE_BUILD_TYPE=Release",
+        "-DCMAKE_POSITION_INDEPENDENT_CODE=ON",
+        "-DUSE_SHARED_MBEDTLS_LIBRARY=ON",
+        "-DUSE_STATIC_MBEDTLS_LIBRARY=OFF",
+        "-DENABLE_TESTING=OFF",
+        "-DENABLE_PROGRAMS=OFF"
+    ],
+    "cleanup": [
+        "/include"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://github.com/ARMmbed/mbedtls.git",
+            "commit": "869298bffeea13b205343361b7a7daf2b210e33d",
+            "tag": "v3.2.1"
+        }
+    ]
 }

+ 24 - 24
build-aux/modules/20-aom.json

@@ -1,26 +1,26 @@
 {
-  "name": "aom",
-  "buildsystem": "cmake-ninja",
-  "builddir": true,
-  "config-opts": [
-    "-DCMAKE_BUILD_TYPE=Release",
-    "-DBUILD_SHARED_LIBS=ON",
-    "-DENABLE_DOCS=OFF",
-    "-DENABLE_EXAMPLES=OFF",
-    "-DENABLE_TESTDATA=OFF",
-    "-DENABLE_TESTS=OFF",
-    "-DENABLE_TOOLS=OFF "
-  ],
-  "cleanup": [
-    "/include",
-    "/lib/pkgconfig"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://aomedia.googlesource.com/aom.git",
-      "tag": "v3.6.0",
-      "commit": "3c65175b1972da4a1992c1dae2365b48d13f9a8d"
-    }
-  ]
+    "name": "aom",
+    "buildsystem": "cmake-ninja",
+    "builddir": true,
+    "config-opts": [
+        "-DCMAKE_BUILD_TYPE=Release",
+        "-DBUILD_SHARED_LIBS=ON",
+        "-DENABLE_DOCS=OFF",
+        "-DENABLE_EXAMPLES=OFF",
+        "-DENABLE_TESTDATA=OFF",
+        "-DENABLE_TESTS=OFF",
+        "-DENABLE_TOOLS=OFF "
+    ],
+    "cleanup": [
+        "/include",
+        "/lib/pkgconfig"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://aomedia.googlesource.com/aom.git",
+            "tag": "v3.6.0",
+            "commit": "3c65175b1972da4a1992c1dae2365b48d13f9a8d"
+        }
+    ]
 }

+ 20 - 20
build-aux/modules/20-librist.json

@@ -1,22 +1,22 @@
 {
-  "name": "librist",
-  "buildsystem": "meson",
-  "builddir": true,
-  "config-opts": [
-    "-Duse_mbedtls=true",
-    "-Dtest=false",
-    "-Dbuilt_tools=false",
-    "-Dbuiltin_cjson=true"
-  ],
-  "cleanup": [
-    "/include",
-    "/lib/pkgconfig"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://code.videolan.org/rist/librist.git",
-      "commit": "809390b3b75a259a704079d0fb4d8f1b5f7fa956"
-    }
-  ]
+    "name": "librist",
+    "buildsystem": "meson",
+    "builddir": true,
+    "config-opts": [
+        "-Duse_mbedtls=true",
+        "-Dtest=false",
+        "-Dbuilt_tools=false",
+        "-Dbuiltin_cjson=true"
+    ],
+    "cleanup": [
+        "/include",
+        "/lib/pkgconfig"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://code.videolan.org/rist/librist.git",
+            "commit": "809390b3b75a259a704079d0fb4d8f1b5f7fa956"
+        }
+    ]
 }

+ 16 - 16
build-aux/modules/20-nv-codec.json

@@ -1,18 +1,18 @@
 {
-  "name": "nv-codec",
-  "no-autogen": true,
-  "make-install-args": [
-    "PREFIX=/app"
-  ],
-  "cleanup": [
-    "*"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://github.com/FFmpeg/nv-codec-headers.git",
-      "tag": "n12.0.16.0",
-      "commit": "c5e4af74850a616c42d39ed45b9b8568b71bf8bf"
-    }
-  ]
+    "name": "nv-codec",
+    "no-autogen": true,
+    "make-install-args": [
+        "PREFIX=/app"
+    ],
+    "cleanup": [
+        "*"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://github.com/FFmpeg/nv-codec-headers.git",
+            "tag": "n12.0.16.0",
+            "commit": "c5e4af74850a616c42d39ed45b9b8568b71bf8bf"
+        }
+    ]
 }

+ 21 - 21
build-aux/modules/20-srt.json

@@ -1,23 +1,23 @@
 {
-  "name": "srt",
-  "buildsystem": "cmake-ninja",
-  "config-opts": [
-    "-DCMAKE_BUILD_TYPE=Release",
-    "-DENABLE_STATIC=OFF",
-    "-DENABLE_APPS=OFF",
-    "-DENABLE_LOGGING=OFF"
-  ],
-  "cleanup": [
-    "/include",
-    "/lib/pkgconfig",
-    "/bin"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://github.com/Haivision/srt.git",
-      "tag": "v1.5.1",
-      "commit": "0bc3b03202b3159fc9b085b3ae6d66ec071c25d6"
-    }
-  ]
+    "name": "srt",
+    "buildsystem": "cmake-ninja",
+    "config-opts": [
+        "-DCMAKE_BUILD_TYPE=Release",
+        "-DENABLE_STATIC=OFF",
+        "-DENABLE_APPS=OFF",
+        "-DENABLE_LOGGING=OFF"
+    ],
+    "cleanup": [
+        "/include",
+        "/lib/pkgconfig",
+        "/bin"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://github.com/Haivision/srt.git",
+            "tag": "v1.5.1",
+            "commit": "0bc3b03202b3159fc9b085b3ae6d66ec071c25d6"
+        }
+    ]
 }

+ 23 - 23
build-aux/modules/20-svt-av1.json

@@ -1,25 +1,25 @@
 {
-  "name": "svt-av1",
-  "buildsystem": "cmake-ninja",
-  "builddir": true,
-  "config-opts": [
-    "-DCMAKE_BUILD_TYPE=Release",
-    "-DBUILD_SHARED_LIBS=ON",
-    "-DBUILD_APPS=OFF",
-    "-DBUILD_DEC=ON",
-    "-DBUILD_ENC=ON",
-    "-DBUILD_TESTING=OFF"
-  ],
-  "cleanup": [
-    "/include",
-    "/lib/pkgconfig"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://gitlab.com/AOMediaCodec/SVT-AV1.git",
-      "tag": "v1.4.1",
-      "commit": "018276d714ce65d9b586f6205ee016cbd8d5425d"
-    }
-  ]
+    "name": "svt-av1",
+    "buildsystem": "cmake-ninja",
+    "builddir": true,
+    "config-opts": [
+        "-DCMAKE_BUILD_TYPE=Release",
+        "-DBUILD_SHARED_LIBS=ON",
+        "-DBUILD_APPS=OFF",
+        "-DBUILD_DEC=ON",
+        "-DBUILD_ENC=ON",
+        "-DBUILD_TESTING=OFF"
+    ],
+    "cleanup": [
+        "/include",
+        "/lib/pkgconfig"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://gitlab.com/AOMediaCodec/SVT-AV1.git",
+            "tag": "v1.4.1",
+            "commit": "018276d714ce65d9b586f6205ee016cbd8d5425d"
+        }
+    ]
 }

+ 16 - 16
build-aux/modules/20-x264.json

@@ -1,18 +1,18 @@
 {
-  "name": "x264",
-  "config-opts": [
-    "--disable-cli",
-    "--enable-shared"
-  ],
-  "cleanup": [
-    "/include",
-    "/lib/pkgconfig"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://code.videolan.org/videolan/x264.git",
-      "commit": "eaa68fad9e5d201d42fde51665f2d137ae96baf0"
-    }
-  ]
+    "name": "x264",
+    "config-opts": [
+        "--disable-cli",
+        "--enable-shared"
+    ],
+    "cleanup": [
+        "/include",
+        "/lib/pkgconfig"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://code.videolan.org/videolan/x264.git",
+            "commit": "eaa68fad9e5d201d42fde51665f2d137ae96baf0"
+        }
+    ]
 }

+ 44 - 44
build-aux/modules/30-ffmpeg.json

@@ -1,46 +1,46 @@
 {
-  "name": "ffmpeg",
-  "config-opts": [
-    "--enable-gpl",
-    "--enable-shared",
-    "--disable-static",
-    "--enable-gnutls",
-    "--disable-doc",
-    "--disable-programs",
-    "--disable-devices",
-    "--enable-libopus",
-    "--enable-libvpx",
-    "--enable-libvorbis",
-    "--enable-libx264",
-    "--enable-nvenc",
-    "--enable-libsrt",
-    "--enable-librist",
-    "--enable-libaom",
-    "--enable-libsvtav1"
-  ],
-  "cleanup": [
-    "/share/ffmpeg"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://github.com/FFmpeg/FFmpeg.git",
-      "commit": "a6dc92968a325d331bb6dcf9b3b2248026cd1d6c",
-      "disable-shallow-clone": true
-    },
-    {
-      "type": "git",
-      "dest": "obs-deps",
-      "url": "https://github.com/obsproject/obs-deps.git",
-      "tag": "2023-04-12",
-      "commit": "24e25fd83e6938cfe3cc5020230430b31ba5df59"
-    },
-    {
-      "type": "shell",
-      "commands": [
-        "patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0001-flvdec-handle-unknown.patch",
-        "patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0002-libaomenc-presets.patch"
-      ]
-    }
-  ]
+    "name": "ffmpeg",
+    "config-opts": [
+        "--enable-gpl",
+        "--enable-shared",
+        "--disable-static",
+        "--enable-gnutls",
+        "--disable-doc",
+        "--disable-programs",
+        "--disable-devices",
+        "--enable-libopus",
+        "--enable-libvpx",
+        "--enable-libvorbis",
+        "--enable-libx264",
+        "--enable-nvenc",
+        "--enable-libsrt",
+        "--enable-librist",
+        "--enable-libaom",
+        "--enable-libsvtav1"
+    ],
+    "cleanup": [
+        "/share/ffmpeg"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://github.com/FFmpeg/FFmpeg.git",
+            "commit": "a6dc92968a325d331bb6dcf9b3b2248026cd1d6c",
+            "disable-shallow-clone": true
+        },
+        {
+            "type": "git",
+            "dest": "obs-deps",
+            "url": "https://github.com/obsproject/obs-deps.git",
+            "tag": "2023-04-12",
+            "commit": "24e25fd83e6938cfe3cc5020230430b31ba5df59"
+        },
+        {
+            "type": "shell",
+            "commands": [
+                "patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0001-flvdec-handle-unknown.patch",
+                "patch -Np1 -i obs-deps/deps.ffmpeg/patches/FFmpeg/0002-libaomenc-presets.patch"
+            ]
+        }
+    ]
 }

+ 22 - 22
build-aux/modules/40-luajit.json

@@ -1,24 +1,24 @@
 {
-  "name": "luajit",
-  "no-autogen": true,
-  "cleanup": [
-    "/bin",
-    "/include",
-    "/lib/pkgconfig",
-    "*.a"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://luajit.org/git/luajit-2.0.git",
-      "commit": "505e2c03de35e2718eef0d2d3660712e06dadf1f",
-      "disable-shallow-clone": true
-    },
-    {
-      "type": "shell",
-      "commands": [
-        "sed -i 's|/usr/local|/app|' ./Makefile"
-      ]
-    }
-  ]
+    "name": "luajit",
+    "no-autogen": true,
+    "cleanup": [
+        "/bin",
+        "/include",
+        "/lib/pkgconfig",
+        "*.a"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://luajit.org/git/luajit-2.0.git",
+            "commit": "505e2c03de35e2718eef0d2d3660712e06dadf1f",
+            "disable-shallow-clone": true
+        },
+        {
+            "type": "shell",
+            "commands": [
+                "sed -i 's|/usr/local|/app|' ./Makefile"
+            ]
+        }
+    ]
 }

+ 22 - 22
build-aux/modules/50-jansson.json

@@ -1,24 +1,24 @@
 {
-  "name": "jansson",
-  "buildsystem": "cmake-ninja",
-  "builddir": true,
-  "config-opts": [
-    "-DCMAKE_BUILD_TYPE=Release",
-    "-DJANSSON_EXAMPLES=OFF",
-    "-DJANSSON_BUILD_DOCS=OFF",
-    "-DJANSSON_BUILD_SHARED_LIBS=ON",
-    "-DJANSSON_WITHOUT_TESTS=ON"
-  ],
-  "cleanup": [
-    "/include",
-    "/lib/pkgconfig"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://github.com/akheron/jansson.git",
-      "tag": "v2.14",
-      "commit": "684e18c927e89615c2d501737e90018f4930d6c5"
-    }
-  ]
+    "name": "jansson",
+    "buildsystem": "cmake-ninja",
+    "builddir": true,
+    "config-opts": [
+        "-DCMAKE_BUILD_TYPE=Release",
+        "-DJANSSON_EXAMPLES=OFF",
+        "-DJANSSON_BUILD_DOCS=OFF",
+        "-DJANSSON_BUILD_SHARED_LIBS=ON",
+        "-DJANSSON_WITHOUT_TESTS=ON"
+    ],
+    "cleanup": [
+        "/include",
+        "/lib/pkgconfig"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://github.com/akheron/jansson.git",
+            "tag": "v2.14",
+            "commit": "684e18c927e89615c2d501737e90018f4930d6c5"
+        }
+    ]
 }

+ 20 - 20
build-aux/modules/50-ntv2.json

@@ -1,22 +1,22 @@
 {
-  "name": "ntv2",
-  "buildsystem": "cmake-ninja",
-  "builddir": true,
-  "config-opts": [
-    "-DCMAKE_BUILD_TYPE=Release",
-    "-DAJA_BUILD_OPENSOURCE=ON",
-    "-DAJA_BUILD_APPS=OFF",
-    "-DAJA_INSTALL_HEADERS=ON"
-  ],
-  "cleanup": [
-    "/include"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://github.com/aja-video/ntv2.git",
-      "tag": "v16.2-bugfix5",
-      "commit": "0acbac70a0b5e6509cca78cfbf69974c73c10db9"
-    }
-  ]
+    "name": "ntv2",
+    "buildsystem": "cmake-ninja",
+    "builddir": true,
+    "config-opts": [
+        "-DCMAKE_BUILD_TYPE=Release",
+        "-DAJA_BUILD_OPENSOURCE=ON",
+        "-DAJA_BUILD_APPS=OFF",
+        "-DAJA_INSTALL_HEADERS=ON"
+    ],
+    "cleanup": [
+        "/include"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://github.com/aja-video/ntv2.git",
+            "tag": "v16.2-bugfix5",
+            "commit": "0acbac70a0b5e6509cca78cfbf69974c73c10db9"
+        }
+    ]
 }

+ 30 - 30
build-aux/modules/50-pipewire.json

@@ -1,32 +1,32 @@
 {
-  "name": "pipewire",
-  "buildsystem": "meson",
-  "config-opts": [
-    "-Daudiotestsrc=disabled",
-    "-Droc=disabled",
-    "-Dvideotestsrc=disabled",
-    "-Dvolume=disabled",
-    "-Dvulkan=disabled",
-    "-Ddocs=disabled",
-    "-Dman=disabled",
-    "-Dbluez5-codec-ldac=disabled",
-    "-Dbluez5-codec-aptx=disabled",
-    "-Dlibcamera=disabled",
-    "-Dudevrulesdir=/app/lib/udev/rules.d/",
-    "-Dsession-managers=[]",
-    "-Dtests=disabled",
-    "-Dexamples=disabled",
-    "-Dpw-cat=disabled"
-  ],
-  "cleanup": [
-    "/bin"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://github.com/pipewire/pipewire.git",
-      "tag": "0.3.65",
-      "commit": "9558a5d5e0360d8af822431c76ee858a8c7495ac"
-    }
-  ]
+    "name": "pipewire",
+    "buildsystem": "meson",
+    "config-opts": [
+        "-Daudiotestsrc=disabled",
+        "-Droc=disabled",
+        "-Dvideotestsrc=disabled",
+        "-Dvolume=disabled",
+        "-Dvulkan=disabled",
+        "-Ddocs=disabled",
+        "-Dman=disabled",
+        "-Dbluez5-codec-ldac=disabled",
+        "-Dbluez5-codec-aptx=disabled",
+        "-Dlibcamera=disabled",
+        "-Dudevrulesdir=/app/lib/udev/rules.d/",
+        "-Dsession-managers=[]",
+        "-Dtests=disabled",
+        "-Dexamples=disabled",
+        "-Dpw-cat=disabled"
+    ],
+    "cleanup": [
+        "/bin"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://github.com/pipewire/pipewire.git",
+            "tag": "0.3.65",
+            "commit": "9558a5d5e0360d8af822431c76ee858a8c7495ac"
+        }
+    ]
 }

+ 19 - 19
build-aux/modules/50-swig.json

@@ -1,21 +1,21 @@
 {
-  "name": "swig",
-  "config-opts": [
-    "--without-boost",
-    "--without-pcre",
-    "--without-alllang",
-    "--with-lua=/app/bin/luajit-2.1.0-beta3",
-    "--with-luaincl=/app/include/luajit-2.1",
-    "--with-python3"
-  ],
-  "cleanup": [
-    "*"
-  ],
-  "sources": [
-    {
-      "type": "archive",
-      "url": "https://prdownloads.sourceforge.net/swig/swig-4.0.2.tar.gz",
-      "sha256": "d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc"
-    }
-  ]
+    "name": "swig",
+    "config-opts": [
+        "--without-boost",
+        "--without-pcre",
+        "--without-alllang",
+        "--with-lua=/app/bin/luajit-2.1.0-beta3",
+        "--with-luaincl=/app/include/luajit-2.1",
+        "--with-python3"
+    ],
+    "cleanup": [
+        "*"
+    ],
+    "sources": [
+        {
+            "type": "archive",
+            "url": "https://prdownloads.sourceforge.net/swig/swig-4.0.2.tar.gz",
+            "sha256": "d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc"
+        }
+    ]
 }

+ 20 - 20
build-aux/modules/50-v4l-utils.json

@@ -1,22 +1,22 @@
 {
-  "name": "v4l-utils",
-  "config-opts": [
-    "--disable-static",
-    "--disable-doxygen-doc",
-    "--disable-libdvbv5",
-    "--disable-v4l-utils",
-    "--disable-qv4l2",
-    "--with-udevdir=/app/lib/udev/"
-  ],
-  "cleanup": [
-    "/include",
-    "/lib/pkgconfig"
-  ],
-  "sources": [
-    {
-      "type": "archive",
-      "url": "https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.22.0.tar.bz2",
-      "sha256": "1069e5d7909bcc563baeaadc3a5c496f0e658524c413cf7818816e37bfcea344"
-    }
-  ]
+    "name": "v4l-utils",
+    "config-opts": [
+        "--disable-static",
+        "--disable-doxygen-doc",
+        "--disable-libdvbv5",
+        "--disable-v4l-utils",
+        "--disable-qv4l2",
+        "--with-udevdir=/app/lib/udev/"
+    ],
+    "cleanup": [
+        "/include",
+        "/lib/pkgconfig"
+    ],
+    "sources": [
+        {
+            "type": "archive",
+            "url": "https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.22.0.tar.bz2",
+            "sha256": "1069e5d7909bcc563baeaadc3a5c496f0e658524c413cf7818816e37bfcea344"
+        }
+    ]
 }

+ 15 - 15
build-aux/modules/90-asio.json

@@ -1,17 +1,17 @@
 {
-  "name": "asio",
-  "buildsystem": "simple",
-  "build-commands": [
-    "mkdir -p /app/include",
-    "cp asio/include/asio.hpp /app/include/",
-    "cp -R asio/include/asio /app/include/"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://github.com/chriskohlhoff/asio.git",
-      "tag": "asio-1-12-1",
-      "commit": "b73dc1d2c0ecb9452a87c26544d7f71e24342df6"
-    }
-  ]
+    "name": "asio",
+    "buildsystem": "simple",
+    "build-commands": [
+        "mkdir -p /app/include",
+        "cp asio/include/asio.hpp /app/include/",
+        "cp -R asio/include/asio /app/include/"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://github.com/chriskohlhoff/asio.git",
+            "tag": "asio-1-12-1",
+            "commit": "b73dc1d2c0ecb9452a87c26544d7f71e24342df6"
+        }
+    ]
 }

+ 15 - 15
build-aux/modules/90-nlohmann-json.json

@@ -1,17 +1,17 @@
 {
-  "name": "nlohmann-json",
-  "buildsystem": "cmake-ninja",
-  "builddir": true,
-  "config-opts": [
-    "-DCMAKE_BUILD_TYPE=Release",
-    "-DJSON_BuildTests=OFF"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://github.com/nlohmann/json.git",
-      "tag": "v3.11.2",
-      "commit": "bc889afb4c5bf1c0d8ee29ef35eaaf4c8bef8a5d"
-    }
-  ]
+    "name": "nlohmann-json",
+    "buildsystem": "cmake-ninja",
+    "builddir": true,
+    "config-opts": [
+        "-DCMAKE_BUILD_TYPE=Release",
+        "-DJSON_BuildTests=OFF"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://github.com/nlohmann/json.git",
+            "tag": "v3.11.2",
+            "commit": "bc889afb4c5bf1c0d8ee29ef35eaaf4c8bef8a5d"
+        }
+    ]
 }

+ 17 - 17
build-aux/modules/90-websocketpp.json

@@ -1,19 +1,19 @@
 {
-  "name": "websocketpp",
-  "buildsystem": "cmake-ninja",
-  "builddir": true,
-  "config-opts": [
-    "-DCMAKE_BUILD_TYPE=Release",
-    "-DENABLE_CPP11=ON",
-    "-DBUILD_EXAMPLES=OFF",
-    "-DBUILD_TESTS=OFF"
-  ],
-  "sources": [
-    {
-      "type": "git",
-      "url": "https://github.com/zaphoyd/websocketpp.git",
-      "tag": "0.8.2",
-      "commit": "56123c87598f8b1dd471be83ca841ceae07f95ba"
-    }
-  ]
+    "name": "websocketpp",
+    "buildsystem": "cmake-ninja",
+    "builddir": true,
+    "config-opts": [
+        "-DCMAKE_BUILD_TYPE=Release",
+        "-DENABLE_CPP11=ON",
+        "-DBUILD_EXAMPLES=OFF",
+        "-DBUILD_TESTS=OFF"
+    ],
+    "sources": [
+        {
+            "type": "git",
+            "url": "https://github.com/zaphoyd/websocketpp.git",
+            "tag": "0.8.2",
+            "commit": "56123c87598f8b1dd471be83ca841ceae07f95ba"
+        }
+    ]
 }

+ 26 - 26
build-aux/modules/99-cef.json

@@ -1,28 +1,28 @@
 {
-  "name": "cef",
-  "buildsystem": "cmake-ninja",
-  "config-opts": [
-    "-DCMAKE_BUILD_TYPE=Release"
-  ],
-  "no-make-install": true,
-  "make-args": [
-    "libcef_dll_wrapper"
-  ],
-  "build-commands": [
-    "mkdir -p /app/cef/libcef_dll_wrapper",
-    "cp -R ./include /app/cef",
-    "cp -R ./Release /app/cef",
-    "cp -R ./Resources /app/cef",
-    "cp -R ./libcef_dll_wrapper/libcef_dll_wrapper.a /app/cef/libcef_dll_wrapper"
-  ],
-  "cleanup": [
-    "*"
-  ],
-  "sources": [
-    {
-      "type": "archive",
-      "url": "https://cdn-fastly.obsproject.com/downloads/cef_binary_5060_linux64.tar.bz2",
-      "sha256": "ac4e2a8ebf20700e4e36353e314f876623633dd5b474778a2548bb66bdbea11d"
-    }
-  ]
+    "name": "cef",
+    "buildsystem": "cmake-ninja",
+    "config-opts": [
+        "-DCMAKE_BUILD_TYPE=Release"
+    ],
+    "no-make-install": true,
+    "make-args": [
+        "libcef_dll_wrapper"
+    ],
+    "build-commands": [
+        "mkdir -p /app/cef/libcef_dll_wrapper",
+        "cp -R ./include /app/cef",
+        "cp -R ./Release /app/cef",
+        "cp -R ./Resources /app/cef",
+        "cp -R ./libcef_dll_wrapper/libcef_dll_wrapper.a /app/cef/libcef_dll_wrapper"
+    ],
+    "cleanup": [
+        "*"
+    ],
+    "sources": [
+        {
+            "type": "archive",
+            "url": "https://cdn-fastly.obsproject.com/downloads/cef_binary_5060_linux64.tar.bz2",
+            "sha256": "ac4e2a8ebf20700e4e36353e314f876623633dd5b474778a2548bb66bdbea11d"
+        }
+    ]
 }