Projects
home:enzokiel
avidemux3
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 5
View file
avidemux3.changes
Changed
@@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Sun Apr 05 12:31:29 UTC 2026 - enzokiel@kabelmail.de + +- Update to version 2.8.2.git20260404 + - No changelog available + +------------------------------------------------------------------- Fri Jan 09 10:56:42 UTC 2026 - enzokiel@kabelmail.de - Update to version 2.8.2.git20260103
View file
avidemux3.spec
Changed
@@ -19,7 +19,7 @@ Name: avidemux3 Summary: Graphical video editing and transcoding tool License: GPL-2.0-only -Version: 2.8.2.git20260103 +Version: 2.8.2.git20260404 Release: 0 URL: https://github.com/mean00/avidemux2 ExclusiveArch: %ix86 x86_64
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_fedora
Added
+(directory)
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_fedora/Dockerfile
Added
@@ -0,0 +1,48 @@ +FROM fedora:43 +RUN sed -i 's|^metalink=|#metalink=|g' /etc/yum.repos.d/*.repo +RUN sed -i 's|^#baseurl=http://download.example/pub/fedora/linux|baseurl=http://mirror.in2p3.fr/pub/fedora/linux/|g' /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora-updates.repo && \ +sed -i 's|^metalink=|#metalink=|g' /etc/yum.repos.d/fedora.repo +RUN rm -Rf /etc/yum.repos.d/fedora-cisco-openh264.repo +RUN sudo dnf -y install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm +RUN dnf -y install git shadow-utils findutils util-linux tar sshd && useradd -m fedora +RUN dnf -y install --skip-unavailable gcc \ + gcc-c++ \ + make \ + cmake \ + yasm \ + pkgconf-pkg-config \ + fakeroot \ + bzip2 \ + zlib-ng-compat-devel \ + patch \ + rpm-build \ + sqlite-devel \ + libxslt \ + mesa-libGL-devel \ + mesa-libGLU-devel \ + libvdpau-devel \ + libva-devel \ + libXv-devel \ + libvorbis-devel \ + libogg-devel \ + alsa-lib-devel \ + pulseaudio-libs-devel \ + libass-devel \ + opus-devel \ + lame-devel \ + libvpx-devel \ + libaom-devel \ + nv-codec-headers \ + fdk-aac-devel \ + twolame-devel \ + xvidcore-devel \ + x264-devel \ + x265-devel +RUN dnf -y install qt6-*{devel,doc}* +RUN dnf -y clean all + +WORKDIR /home/fedora/workspace +RUN chown fedora:fedora /home/fedora/workspace + +USER fedora +CMD "/bin/bash"
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_fedora/Dockerfile.old
Added
@@ -0,0 +1,82 @@ +FROM fedora:43 + +ARG DEBIAN_FRONTEND=noninteractive +ARG USER_UID=1000 +ARG USER_GID=1000 +ARG USERNAME=fedora +RUN echo "http2=0" >> /etc/dnf/dnf.conf # Disable HTTP/2 to avoid protocol glitches +RUN echo "sslverify=0" >> /etc/dnf/dnf.conf # Ensure enabled, but if EOF issues persist, test with 0 (insecure, for debugging only) +RUN echo "retries=20" >> /etc/dnf/dnf.conf +RUN echo "keepalive=True" >> /etc/dnf/dnf.conf # Helps with connection resets +RUN echo "ip_resolve=4" >> /etc/dnf/dnf.conf # Force IPv4 for mirror resolution +RUN echo "fastestmirror=True" >> /etc/dnf/dnf.conf && \ + echo "max_parallel_downloads=10" >> /etc/dnf/dnf.conf && \ + echo "timeout=60" >> /etc/dnf/dnf.conf +# +RUN sed -i 's|^metalink=|#metalink=|g' /etc/yum.repos.d/fedora*.repo && \ + sed -i 's|^#baseurl=http://download\.example/pub|baseurl=https://mirror.in2p3.fr/pub/|g' /etc/yum.repos.d/fedora*.repo + #sed -i 's|^#baseurl=http://download\.example/pub|baseurl=https://mirrors.mit.edu/fedora|g' /etc/yum.repos.d/fedora*.repo +#RUN sed -i 's|^metalink=|#metalink=|g' /etc/yum.repos.d/fedora*.repo && \ + #sed -i 's|^#baseurl=http://download\.example/pub|baseurl=https://download.fedoraproject.org/pub|g' /etc/yum.repos.d/fedora*.repo +#RUN sed -i 's|^metalink=|#metalink=|g' /etc/yum.repos.d/fedora*.repo && \ +# sed -i 's|^#baseurl=http://download.example.com|baseurl=https://download.fedoraproject.org|g' /etc/yum.repos.d/fedora*.repo +# +RUN curl -v -o /tmp/repomd.xml https://mirror.in2p3.fr/pub/fedora/linux/releases/43/Everything/x86_64/os/repodata/repomd.xml || true +RUN curl -v -o /tmp/updates-repomd.xml https://mirror.in2p3.fr/pub/fedora/linux/updates/43/Everything/x86_64/repodata/repomd.xml || true +# +RUN dnf clean all # Clear any corrupted metadata cache +RUN sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/fedora-cisco-openh264.repo +RUN cat /etc/yum.repos.d/fedora-updates.repo +RUN dnf -y update --refresh +RUN dnf -y install \ + gcc \ + gcc-c++ \ + make \ + cmake \ + yasm \ + pkgconf-pkg-config \ + fakeroot \ + bzip2 \ + zlib-ng-compat-devel \ + patch \ + rpm-build \ + sqlite-devel \ + qt5-qtbase-devel \ + qt5-linguist \ + libxslt \ + mesa-libGL-devel \ + mesa-libGLU-devel \ + libvdpau-devel \ + libva-devel \ + libXv-devel \ + libvorbis-devel \ + libogg-devel \ + alsa-lib-devel \ + pulseaudio-libs-devel \ + libass-devel \ + opus-devel \ + lame-devel \ + libvpx-devel \ + libaom-devel \ + nv-codec-headers \ + fdk-aac-devel \ + twolame-devel \ + xvidcore-devel \ + x264-devel \ + x265-devel \ + && : + +# +# + +CMD "/bin/bash" + +################################### +# Setup user env +################################### +USER ${USERNAME} +RUN mkdir ~/.local && mkdir ~/.local/bin && mkdir ~/.cargo && mkdir ~/.cargo/bin +RUN echo "export PATH=\$PATH:\$HOME/.cargo/bin:\$HOME/.local/bin" >> ~/.bashrc +# + +
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_fedora/devcontainer.json
Added
@@ -0,0 +1,36 @@ +{ + /* A name for the dev container displayed in the UI */ + "name": "Avidemux", + /* container name when creating container */ + "image": "avidemux/avidemux:latest", + /* mount the local folder to /workspaces folder of Docker image */ + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/avidemux,type=bind", + /* the path of workspace folder, which means that this folder will be opened after container is running + */ + "workspaceFolder": "/workspaces/avidemux", + /* mount the VS Code extensions to the target path, and then they don't need to be installed again when rebuilding the container + */ + "mounts": + "source=extensionCache,target=/root/.vscode-server/extensions,type=volume", + "source=/run/udev,target=/run/udev,type=bind,consistency=delegated" + , + /* follow the commands of Dockerfile to create the container + */ + "build": { + "dockerfile": "Dockerfile" + }, + /* Machine specific settings that should be copied into the container + */ + "settings": { + "terminal.integrated.defaultProfile.linux": "bash", + "idf.gitPath": "/usr/bin/git" + }, + /* An array of extensions that should be installed into the container. */ + "extensions": , + /* start the container with privileged mode, otherwise the devices cannot be accessed on the Docker image. + */ + "runArgs": "--privileged", + /* --device=/dev/alpha:/dev/beta + */ + "remoteUser": "fedora" +}
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_mxe64
Added
+(directory)
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_mxe64/Dockerfile
Added
@@ -0,0 +1,148 @@ +FROM debian:trixie + +ARG DEBIAN_FRONTEND=noninteractive +ARG USER_UID=1000 +ARG USER_GID=1000 +ARG USERNAME=mxe + +#RUN sed -i 's/deb.debian.org/192.168.0.9:3142\/deb.debian.org/g' /etc/apt/sources.list.d/debian.sources +# +RUN sed -i '/^Components:/ s/$/ contrib non-free non-free-firmware/' /etc/apt/sources.list.d/debian.sources +#RUN sed -i '/^Components:/ s/$/ contrib non-free non-free-firmware/' /etc/apt/sources.list.d/debian-backports.sources + #&& sed -i 's/deb.debian.org/192.168.0.9:3142\/deb.debian.org/g' /etc/apt/sources.list.d/debian-backports.sources \ +RUN cat <<EOF > /etc/apt/sources.list.d/debian-backports.sources +Types: deb +URIs: https://deb.debian.org/debian +Suites: trixie-backports +Components: main contrib non-free non-free-firmware +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg +EOF + +RUN cat <<EOF > /etc/apt/preferences.d/99-backports.pref +Package: * +Pin: release a=trixie-backports +Pin-Priority: 500 +EOF + +RUN apt-get update +RUN apt-get install -y \ + apt-utils \ + bison \ + build-essential \ + bzip2 \ + ca-certificates \ + ccache \ + check \ + curl \ + cmake \ + flex \ + git \ + git-lfs \ + gperf \ + lcov \ + libbsd-dev \ + libffi-dev \ + libglib2.0-0 \ + libncurses-dev \ + libpixman-1-0 \ + libsdl2-2.0-0 \ + libslirp0 \ + libusb-1.0-0-dev \ + make \ + ninja-build \ + python3 \ + python3-venv \ + python3-crcmod \ + ruby \ + sudo \ + unzip \ + usbutils \ + wget \ + zip \ + build-essential pkg-config yasm \ + file \ + desktop-file-utils fakeroot \ + fuse patchelf python3-pip python3-setuptools squashfs-tools strace \ + util-linux zsync libfuse2t64 \ + zsh neovim \ + autoconf \ + automake \ + autopoint \ + bash \ + g++ \ + g++-multilib \ + gettext \ + intltool \ + libc6-dev-i386 \ + libclang-dev \ + libltdl-dev \ + libgl-dev \ + libpcre2-dev \ + libssl-dev \ + libtool-bin \ + libxml-parser-perl \ + lzip \ + openssl \ + p7zip-full \ + patch \ + perl \ + python3-mako \ + python3-packaging \ + python3-pkg-resources \ + python3-setuptools \ + python-is-python3 \ + sed \ + sqlite3 \ + apt-file \ + xz-utils \ + libgl-dev libgl1-mesa-dev + + RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \ + && : + #libaften-dev \ + + #libgdk-pixbuf2.0-dev \ +RUN useradd -m mxe && usermod --shell /usr/bin/zsh mxe +RUN chmod a+rwx /opt/ +RUN echo 'root:password' | chpasswd +# +# + +CMD "/bin/bash" + +################################### +# Setup user env +################################### +USER ${USERNAME} +RUN mkdir ~/.local && mkdir ~/.local/bin && mkdir ~/.cargo && mkdir ~/.cargo/bin +RUN echo "export PATH=\$PATH:\$HOME/.cargo/bin:\$HOME/.local/bin" >> ~/.bashrc +# +RUN cat <<EOF > /home/mxe/.zshrc +# History Settings +HISTFILE=~/.zsh_history +HISTSIZE=10000 +SAVEHIST=10000 +setopt appendhistory +setopt sharehistory + +# Completion System +autoload -Uz compinit && compinit + +# Prompt +PROMPT='%F{cyan}%n@docker%f %F{blue}%~%f %# ' + +# Aliases +alias ls='ls --color=auto' +alias ll='ls -lah' + +EOF + +RUN cd /opt && git clone https://github.com/mxe/mxe.git && cd mxe && \ + echo "MXE_TARGETS := x86_64-w64-mingw32.shared" > settings.mk \ + && echo "JOBS :=6" >> settings.mk && make qt6 + +ENV PATH="/opt/mxe/usr/bin:/usr/local/bin:/opt/mxe/bin:/opt/mxe/usr/x86_64-pc-linux-gnu/qt6/bin/:${PATH}" + +RUN echo Done + +
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_mxe64/devcontainer.json
Added
@@ -0,0 +1,37 @@ +{ + /* A name for the dev container displayed in the UI */ + "name": "Avidemux", + /* container name when creating container */ + "image": "avidemux/avidemux:latest", + /* mount the local folder to /workspaces folder of Docker image */ + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/avidemux,type=bind", + /* the path of workspace folder, which means that this folder will be opened after container is running + */ + "workspaceFolder": "/workspaces/avidemux", + /* mount the VS Code extensions to the target path, and then they don't need to be installed again when rebuilding the container + */ + "mounts": + "source=extensionCache,target=/root/.vscode-server/extensions,type=volume", + "source=/run/udev,target=/run/udev,type=bind,consistency=delegated" + , + /* follow the commands of Dockerfile to create the container + */ + "build": { + "dockerfile": "Dockerfile" + }, + /* Machine specific settings that should be copied into the container + */ + "settings": { + "terminal.integrated.defaultProfile.linux": "bash", + "idf.gitPath": "/usr/bin/git" + }, + /* An array of extensions that should be installed into the container. */ + "extensions": , + /* start the container with privileged mode, otherwise the devices cannot be accessed on the Docker image. + */ + "runArgs": "--privileged", + /* --device=/dev/alpha:/dev/beta + */ + "remoteUser": "mxe", + "postCreateCommand": "bash .devcontainer_mxe64/post-create.sh" +}
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_mxe64/post-create.sh
Added
@@ -0,0 +1,2 @@ +#!/bin/sh +apt-get install python3-pefile
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_trixie
Added
+(directory)
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_trixie/Dockerfile
Added
@@ -0,0 +1,147 @@ +FROM debian:trixie + +ARG DEBIAN_FRONTEND=noninteractive +ARG USER_UID=1000 +ARG USER_GID=1000 +ARG USERNAME=trixie + +#RUN echo 'Acquire::http::Proxy "http://192.168.0.9:3142";' > /etc/apt/apt.conf.d/01proxy +RUN sed -i '/^Components:/ s/$/ contrib non-free non-free-firmware/' /etc/apt/sources.list.d/debian.sources +RUN cat <<EOF > /etc/apt/sources.list.d/debian-backports.sources +Types: deb +URIs: https://deb.debian.org/debian +Suites: trixie-backports +Components: main contrib non-free non-free-firmware +Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg +EOF + +RUN cat <<EOF > /etc/apt/preferences.d/99-backports.pref +Package: * +Pin: release a=trixie-backports +Pin-Priority: 500 +EOF + +RUN apt-get update +RUN apt-get install -y \ + apt-utils \ + bison \ + build-essential \ + bzip2 \ + ca-certificates \ + ccache \ + check \ + curl \ + cmake \ + flex \ + git \ + git-lfs \ + gperf \ + lcov \ + libbsd-dev \ + libffi-dev \ + libglib2.0-0 \ + libncurses-dev \ + libpixman-1-0 \ + libsdl2-2.0-0 \ + libslirp0 \ + libusb-1.0-0-dev \ + make \ + ninja-build \ + python3 \ + python3-venv \ + python3-crcmod \ + ruby \ + sudo \ + unzip \ + usbutils \ + wget \ + xz-utils \ + zip \ + build-essential pkg-config yasm \ + libsqlite3-dev \ + libxv-dev libvdpau-dev libva-dev libglu1-mesa-dev \ + libasound2-dev libpulse-dev \ + qt6-base-dev \ + qt6-tools-dev \ + qt6-base-dev-tools \ + qt6-l10n-tools \ + qt6-wayland \ + libx264-dev libxvidcore-dev \ + libmp3lame-dev libtwolame-dev libopus-dev libvorbis-dev libogg-dev \ + libpng-dev libass-dev + RUN apt-get install -y \ + libfaac-dev \ + libfdk-aac-dev \ + libx265-dev \ + libvpx-dev \ + libaom-dev \ + file \ + squashfs-tools + # app image + RUN apt-get install -y desktop-file-utils fakeroot fuse patchelf python3-pip python3-setuptools squashfs-tools strace util-linux zsync libfuse2t64 + RUN apt-get install -y zsh neovim + + RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \ + && : + #libaften-dev \ + +# App image +RUN wget --no-proxy https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage && \ +chmod +x appimage-builder-1.1.0-x86_64.AppImage && \ + mv appimage-builder-1.1.0-x86_64.AppImage /usr/local/bin/appimage-builder + +RUN wget --no-proxy https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage -O /usr/local/bin/linuxdeploy && \ + chmod +x /usr/local/bin/linuxdeploy + +RUN wget --no-proxy https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage \ + -O /usr/local/bin/linuxdeploy-plugin-appimage && \ + wget --no-proxy https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage \ + -O /usr/local/bin/linuxdeploy-plugin-qt && \ + wget --no-proxy https://github.com/AppImage/type2-runtime/releases/download/continuous/runtime-x86_64 \ + -O /usr/local/bin/runtime-x86_64 && \ + wget --no-proxy https://github.com/AppImage/appimagetool/releases/download/1.9.0/appimagetool-x86_64.AppImage \ + -O /usr/local/bin/appimagetool && \ + chmod +x /usr/local/bin/* +RUN useradd -m trixie && usermod --shell /usr/bin/zsh trixie +# +# + +CMD "/bin/bash" + +################################### +# Setup user env +################################### +USER ${USERNAME} +RUN mkdir ~/.local && mkdir ~/.local/bin && mkdir ~/.cargo && mkdir ~/.cargo/bin +RUN echo "export http_proxy=\"\"">> ~/.bashrc +RUN echo "export https_proxy=\"\"">> ~/.bashrc +RUN echo "export HTTP_PROXY=\"\"">> ~/.bashrc +RUN echo "export HTTPS_PROXY=\"\"">> ~/.bashrc +RUN echo "export PATH=\$PATH:\$HOME/.cargo/bin:\$HOME/.local/bin" >> ~/.bashrc +RUN echo ". \$HOME/.cargo/env" >> /home/$USERNAME/.bashrc +ENV http_proxy="" +ENV https_proxy="" +ENV HTTP_PROXY="" +ENV HTTPS_PROXY="" +# +RUN cat <<EOF > /home/trixie/.zshrc +# History Settings +HISTFILE=~/.zsh_history +HISTSIZE=10000 +SAVEHIST=10000 +setopt appendhistory +setopt sharehistory + +# Completion System +autoload -Uz compinit && compinit + +# Prompt +PROMPT='%F{cyan}%n@docker%f %F{blue}%~%f %# ' + +# Aliases +alias ls='ls --color=auto' +alias ll='ls -lah' +EOF + + +
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_trixie/devcontainer.json
Added
@@ -0,0 +1,36 @@ +{ + /* A name for the dev container displayed in the UI */ + "name": "Avidemux", + /* container name when creating container */ + "image": "avidemux/avidemux:latest", + /* mount the local folder to /workspaces folder of Docker image */ + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/avidemux,type=bind", + /* the path of workspace folder, which means that this folder will be opened after container is running + */ + "workspaceFolder": "/workspaces/avidemux", + /* mount the VS Code extensions to the target path, and then they don't need to be installed again when rebuilding the container + */ + "mounts": + "source=extensionCache,target=/root/.vscode-server/extensions,type=volume", + "source=/run/udev,target=/run/udev,type=bind,consistency=delegated" + , + /* follow the commands of Dockerfile to create the container + */ + "build": { + "dockerfile": "Dockerfile" + }, + /* Machine specific settings that should be copied into the container + */ + "settings": { + "terminal.integrated.defaultProfile.linux": "bash", + "idf.gitPath": "/usr/bin/git" + }, + /* An array of extensions that should be installed into the container. */ + "extensions": , + /* start the container with privileged mode, otherwise the devices cannot be accessed on the Docker image. + */ + "runArgs": "--privileged", + /* --device=/dev/alpha:/dev/beta + */ + "remoteUser": "trixie" +}
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_ubuntu2510
Added
+(directory)
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_ubuntu2510/Dockerfile
Added
@@ -0,0 +1,90 @@ +FROM ubuntu:25.10 + +ARG DEBIAN_FRONTEND=noninteractive +ARG USER_UID=1000 +ARG USER_GID=1000 +ARG USERNAME=ubuntu + +#RUN echo 'Acquire::http::Proxy "http://192.168.0.9:3142";' > /etc/apt/apt.conf.d/01proxy + +RUN apt-get update +RUN apt-get install -y \ + apt-utils \ + bison \ + build-essential \ + bzip2 \ + ca-certificates \ + ccache \ + check \ + cmake \ + curl \ + flex \ + git \ + git-lfs \ + gperf \ + lcov \ + libbsd-dev \ + libffi-dev \ + libglib2.0-0 \ + libncurses-dev \ + libpixman-1-0 \ + libsdl2-2.0-0 \ + libslirp0 \ + libusb-1.0-0-dev \ + make \ + ninja-build \ + python3 \ + python3-venv \ + python3-crcmod \ + ruby \ + sudo \ + unzip \ + usbutils \ + wget \ + xz-utils \ + zip \ + build-essential cmake pkg-config yasm \ + libsqlite3-dev \ + libxv-dev libvdpau-dev libva-dev libglu1-mesa-dev \ + libasound2-dev libpulse-dev \ + qt6-base-dev qt6-l10n-tools \ + libx264-dev libxvidcore-dev \ + libmp3lame-dev libtwolame-dev libopus-dev libvorbis-dev libogg-dev \ + libpng-dev libass-dev \ + libaften-dev \ + libfaac-dev \ + libfdk-aac-dev \ + libx265-dev \ + libvpx-dev \ + libaom-dev \ + file \ + && apt-get autoremove -y \ + && rm -rf /var/lib/apt/lists/* \ + && update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \ + && : + +RUN rm -f /etc/apt/apt.conf.d/01proxy +# +# Reuse Arm & Riscv toolchains +# + +CMD "/bin/bash" + +################################### +# Setup user env +################################### +USER ${USERNAME} +RUN mkdir ~/.local && mkdir ~/.local/bin && mkdir ~/.cargo && mkdir ~/.cargo/bin +RUN echo "export http_proxy=\"\"">> ~/.bashrc +RUN echo "export https_proxy=\"\"">> ~/.bashrc +RUN echo "export HTTP_PROXY=\"\"">> ~/.bashrc +RUN echo "export HTTPS_PROXY=\"\"">> ~/.bashrc +RUN echo "export PATH=\$PATH:\$HOME/.cargo/bin:\$HOME/.local/bin" >> ~/.bashrc +RUN echo ". \$HOME/.cargo/env" >> /home/$USERNAME/.bashrc +ENV http_proxy="" +ENV https_proxy="" +ENV HTTP_PROXY="" +ENV HTTPS_PROXY="" +# + +
View file
avidemux2-2.8.2.git20260404.tar.xz/.devcontainer_ubuntu2510/devcontainer.json
Added
@@ -0,0 +1,36 @@ +{ + /* A name for the dev container displayed in the UI */ + "name": "Avidemux", + /* container name when creating container */ + "image": "avidemux/avidemux:latest", + /* mount the local folder to /workspaces folder of Docker image */ + "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces/avidemux,type=bind", + /* the path of workspace folder, which means that this folder will be opened after container is running + */ + "workspaceFolder": "/workspaces/avidemux", + /* mount the VS Code extensions to the target path, and then they don't need to be installed again when rebuilding the container + */ + "mounts": + "source=extensionCache,target=/root/.vscode-server/extensions,type=volume", + "source=/run/udev,target=/run/udev,type=bind,consistency=delegated" + , + /* follow the commands of Dockerfile to create the container + */ + "build": { + "dockerfile": "Dockerfile" + }, + /* Machine specific settings that should be copied into the container + */ + "settings": { + "terminal.integrated.defaultProfile.linux": "bash", + "idf.gitPath": "/usr/bin/git" + }, + /* An array of extensions that should be installed into the container. */ + "extensions": , + /* start the container with privileged mode, otherwise the devices cannot be accessed on the Docker image. + */ + "runArgs": "--privileged", + /* --device=/dev/alpha:/dev/beta + */ + "remoteUser": "ubuntu" +}
View file
avidemux2-2.8.2.git20260404.tar.xz/appImage/AppRun_qt6
Added
@@ -0,0 +1,23 @@ +#!/bin/bash +HERE="$(dirname "$(readlink -f "${0}")")" +cd "${HERE}/usr/" +export QT_STYLE_OVERRIDE="fusion" +FT_PROBE_EXE_NAME="freetype_probe" +if -z "${ADM_APPIMAGE_USE_SYSTEM_FONT_LIBS}" && -e "${HERE}/${FT_PROBE_EXE_NAME}" ; then + "${HERE}/${FT_PROBE_EXE_NAME}" + ADM_APPIMAGE_USE_SYSTEM_FONT_LIBS=$? +fi +if "x${ADM_APPIMAGE_USE_SYSTEM_FONT_LIBS}" != "x1" ; then + echo -e "Using bundled freetype, fontconfig and fribidi. Export ADM_APPIMAGE_USE_SYSTEM_FONT_LIBS=1 to use the system ones instead.\nThis is recommended for systems with fontconfig >= 2.13" + LD_LIBRARY_PATH="${HERE}/opt/lib:${LD_LIBRARY_PATH}" +else + echo "Using system freetype, fontconfig and fribidi." +fi +export LD_LIBRARY_PATH="${HERE}/usr/lib/:${HERE}/usr/lib/qt5:${LD_LIBRARY_PATH}" +export PATH="${HERE}/usr/bin:${PATH}" +export QT_PLUGIN_PATH="$HERE/usr/plugins" +export QML2_IMPORT_PATH="$HERE/usr/qml" +export QT_QPA_PLATFORM_PLUGIN_PATH="$HERE/usr/plugins/platforms" +export XDG_DATA_DIRS="$HERE/usr/share:$XDG_DATA_DIRS" +"${HERE}/usr/bin/avidemux3_portable" "$@" +cd -
View file
avidemux2-2.8.2.git20260103.tar.xz/appImage/avidemux.desktop -> avidemux2-2.8.2.git20260404.tar.xz/appImage/avidemux.desktop
Changed
@@ -1,7 +1,7 @@ Desktop Entry Name=Avidemux Exec=avidemux3_portable -Icon=avidemux.png +Icon=avidemux Type=Application Categories=AudioVideo;AudioVideoEditing;Video; MimeType=video/mpeg;video/x-mpeg;video/mp4;video/x-m4v;video/quicktime;video/3gp;video/mkv;video/x-matroska;video/webm;video/flv;video/x-flv;video/dv;video/x-msvideo;video/x-ms-wmv;video/x-ms-asf;video/x-anim;
View file
avidemux2-2.8.2.git20260404.tar.xz/appImage/checkDeps.py
Added
@@ -0,0 +1,79 @@ +import subprocess +import os +import sys +import re +import shutil + +# CORE SYSTEM LIBS: Do NOT bundle these (they cause crashes on different distros) +EXCLUDED_LIBS = { + 'libc.so.6', 'libpthread.so.0', 'libdl.so.2', 'libm.so.6', + 'librt.so.1', 'libutil.so.1', 'libgcc_s.so.1', 'libstdc++.so.6', + 'ld-linux-x86-64.so.2', 'linux-vdso.so.1', 'libglib-2.0.so.0' +} + +def get_dependencies(file_path, lib_dir): + """Returns a list of (lib_name, host_path) for a given binary.""" + env = os.environ.copy() + # Force ldd to look at our bundle's lib dir first + env"LD_LIBRARY_PATH" = f"{lib_dir}:{env.get('LD_LIBRARY_PATH', '')}" + + deps = + try: + result = subprocess.run('ldd', file_path, capture_output=True, text=True, env=env) + for line in result.stdout.splitlines(): + if "=> /" in line: + match = re.search(r'\s*(.+?)\s*=>\s*(.+?)\s*\(', line) + if match: + deps.append((match.group(1).strip(), match.group(2).strip())) + except Exception: + pass + return deps + +def fix_appdir_recursive(appdir_path): + appdir_path = os.path.abspath(appdir_path) + lib_dest = os.path.join(appdir_path, "usr/lib") + os.makedirs(lib_dest, exist_ok=True) + + print(f"--- Starting Recursive Deep Scan: {appdir_path} ---") + + iteration = 1 + while True: + print(f"\nScan Iteration {iteration}...") + added_this_round = 0 + + # 1. Find every binary/library in the entire AppDir + all_targets = + for root, _, files in os.walk(appdir_path): + for f in files: + # Check for shared objects or files in bin folders + if f.endswith(".so") or ".so." in f or "/bin/" in root: + all_targets.append(os.path.join(root, f)) + + # 2. Check each target for host leaks + for target in all_targets: + dependencies = get_dependencies(target, lib_dest) + + for lib_name, host_path in dependencies: + if lib_name in EXCLUDED_LIBS: + continue + + # If the resolved path is outside the AppDir, it's a leak + if not host_path.startswith(appdir_path): + dest_file = os.path.join(lib_dest, lib_name) + + if not os.path.exists(dest_file): + print(f"📦 Found Leak: {lib_name} (needed by {os.path.basename(target)})") + shutil.copy2(host_path, dest_file) + added_this_round += 1 + + if added_this_round == 0: + print("✨ No more leaks found. Bundle is self-contained.") + break + + iteration += 1 + +if __name__ == "__main__": + if len(sys.argv) < 2: + print("Usage: python3 deep_fix.py <path_to_AppDir>") + else: + fix_appdir_recursive(sys.argv1)
View file
avidemux2-2.8.2.git20260404.tar.xz/appImage/deploy_qt6.sh
Added
@@ -0,0 +1,45 @@ +#!/bin/bash +# look here https://github.com/probonopd/AppImages/blob/master/recipes/scribus/Recipe +# export QT_DEBUG_PLUGINS=1 +fail() { + echo "************************* $* FAILED" + echo "************************* $* FAILED" + echo "************************* $* FAILED" + echo "************************* $* FAILED" + echo "************************* $* FAILED" + echo "************************* $* FAILED" + echo "************************* $* FAILED" + exit 1 + +} +set -x +export QT6_PLUGINS=/usr/lib/x86_64-linux-gnu/qt6/plugins/ +# export LD_DEBUG=amm LD_DEBUG_OUTPUT=/tmp/somefile +export SOURCE=$1 +export DEST=$2 + +echo "Installing $SOURCE -> $DEST" + +rm -Rf $DEST +mkdir $DEST +cp -Rap $SOURCE/* $DEST/ +mv $DEST/usr/lib/x86_64-linux-gnu/* $DEST/usr/lib +export H=$PWD +cd $DEST/usr/lib/x86_64-linux-gnu/ +ln -s ../ADM_plugins6 . +cd $H +mv $DEST/usr/bin/avidemux3_qt6 $DEST/usr/bin/avidemux3_portable +# +# +# +mkdir -p $DEST/usr/plugins/platforms +cp -t ${DEST}/usr/plugins/platforms/ ${QT6_PLUGINS}/platforms/*wayland* ${QT6_PLUGINS}/platforms/*xcb* +cp -Rap -t ${DEST}/usr/plugins/ ${QT6_PLUGINS}/*integration* +# +# +cp -t ${DEST}/usr/lib /usr/lib/x86_64-linux-gnu/libwayland-client.so +cp -t ${DEST}/usr/lib /usr/lib/x86_64-linux-gnu/libwayland-cursor.so +cp -t ${DEST}/usr/lib /usr/lib/x86_64-linux-gnu/libwayland-egl.so +python3 appImage/checkDeps.py $DEST + +exit 0
View file
avidemux2-2.8.2.git20260404.tar.xz/appImage/pack.sh
Added
@@ -0,0 +1,53 @@ +cat <<EOF >AppDir/usr/share/metainfo/org.avidemux.Avidemux.appdata.xml +<?xml version="1.0" encoding="UTF-8"?> +<component type="desktop-application"> + <id>org.avidemux.Avidemux</id> + + <metadata_license>CC0-1.0</metadata_license> + <project_license>GPL-2.0+</project_license> + + <name>Avidemux</name> + <summary>Free video editor</summary> + + <description> + <p> + Avidemux is a free video editor designed for simple cutting, filtering and encoding tasks. + It supports many file types, including AVI, DVD compatible MPEG files, MP4 and ASF. + </p> + </description> + + <url type="homepage">https://www.avidemux.org/</url> + + <developer> + <name>Avidemux Team</name> + </developer> + + <content_rating type="oars-1.1" /> + + <launchable type="desktop-id">org.avidemux.Avidemux.desktop</launchable> +</component> + +EOF +export APPRUN_FORCE_UPDATE=1 +# OR more effectively for appstream specifically: +export VALIDATE=0 +#export LD_LIBRARY_PATH=$PWD/AppDir/usr/lib +#linuxdeploy --appdir=AppDir --deploy-deps-only=AppDir/usr/lib/ --output appimage +export LDAI_RUNTIME_FILE=/usr/local/bin/runtime-x86_64 +export EXTRA_QT_PLUGINS="wayland-egl;wayland;xcb" +cp appImage/AppRun_qt6 AppDir/AppRun +cp appImage/avidemux.png AppDir/ +cp appImage/avidemux.desktop AppDir/ +chmod +x AppDir/AppRun + +appimagetool --runtime-file $LDAI_RUNTIME_FILE AppDir +chmod +x Avidem*.AppImage +#linuxdeploy -i appImage/avidemux.png \ +#-d appImage/avidemux.desktop \ +#--appdir=AppDir \ +#--deploy-deps-only=AppDir/usr/lib/ + +#-e AppDir/usr/bin/avidemux3_qt6 + +#--plugin qt --output appimage +#appimage-builder --recipe appImage/avidemux.yml
View file
avidemux2-2.8.2.git20260103.tar.xz/avidemux/qt4/ADM_render_qt/GUI_accelRender.h -> avidemux2-2.8.2.git20260404.tar.xz/avidemux/qt4/ADM_render_qt/GUI_accelRender.h
Changed
@@ -12,6 +12,9 @@ #ifndef GUI_ACCELRENDER_H #define GUI_ACCELRENDER_H #include "ADM_colorspace.h" +#include "ADM_image.h" +#include "ADM_windowInfo.h" +#include "GUI_render.h" /** \class VideoRenderBase */
View file
avidemux2-2.8.2.git20260103.tar.xz/avidemux/qt4/ADM_render_qt/GUI_render.cpp -> avidemux2-2.8.2.git20260404.tar.xz/avidemux/qt4/ADM_render_qt/GUI_render.cpp
Changed
@@ -293,9 +293,9 @@ ADM_RENDER_TYPE prefRenderer = (ADM_RENDER_TYPE)MUI_getPreferredRender(); bool r = false; - GUI_WindowInfo xinfo; + // GUI_WindowInfo xinfo; MUI_getWindowInfo(renderContext.draw, &renderContext.xinfo); - +#if 1 // lookup renderer TRY_RENDERER(spawnCommonRenderer) #ifdef __APPLE__ @@ -305,6 +305,7 @@ #else // linux TRY_RENDERER(spawnLinuxRenderer); #endif +#endif // none found, use default renderer = spawnDefaultRenderer(RENDER_DEFAULT, renderContext); return true;
View file
avidemux2-2.8.2.git20260103.tar.xz/avidemux/qt4/ADM_render_qt/GUI_renderFactory_common.cpp -> avidemux2-2.8.2.git20260404.tar.xz/avidemux/qt4/ADM_render_qt/GUI_renderFactory_common.cpp
Changed
@@ -37,7 +37,23 @@ VideoRenderBase *spawnDefaultRenderer(ADM_RENDER_TYPE preferred, ADM_renderContext &ctx) { bool r; - TRY_RENDERER_SPAWN_ALL(spawnSimpleRender, "simpleRenderer"); + VideoRenderBase *spawn = spawnSimpleRender(); + ADM_info("trying simpleRender\n"); + r = spawn->init(&ctx.xinfo, ctx.phyW, ctx.phyH, ctx.lastZoom); + if (!r) + { + delete spawn; + spawn = NULL; + ADM_warning("simpleRender" + " init failed\n"); + } + else + { + ADM_info("simpleRender" + " init ok\n"); + return spawn; + } + // TRY_RENDERER_SPAWN_ALL(spawnSimpleRender, "simpleRenderer"); ADM_assert(0); return NULL; }
View file
avidemux2-2.8.2.git20260103.tar.xz/avidemux/qt4/ADM_render_qt/GUI_simpleRender.cpp -> avidemux2-2.8.2.git20260404.tar.xz/avidemux/qt4/ADM_render_qt/GUI_simpleRender.cpp
Changed
@@ -22,12 +22,12 @@ #include "ADM_default.h" #include "DIA_coreToolkit.h" // -#include "GUI_renderInternal.h" #include "GUI_accelRender.h" #include "GUI_render.h" +#include "GUI_renderInternal.h" #include "GUI_simpleRender.h" // clang format-on - +#include "GUI_nullRender.h" #define SIMPLE_RENDER_SWSCALE_RESIZE #define SIMPLE_RENDER_TARGET_SIZE_IN_DEVICE_PIXELS @@ -36,6 +36,7 @@ VideoRenderBase *spawnSimpleRender() { return new simpleRender(); + // return new nullRender(); } /**
View file
avidemux2-2.8.2.git20260103.tar.xz/avidemux/qt4/ADM_render_qt/GUI_xvRender.h -> avidemux2-2.8.2.git20260404.tar.xz/avidemux/qt4/ADM_render_qt/GUI_xvRender.h
Changed
@@ -15,6 +15,7 @@ * * ***************************************************************************/ #pragma once +#include "ADM_windowInfo.h" /** \fn class XvRender */
View file
avidemux2-2.8.2.git20260103.tar.xz/avidemux/qt4/ADM_userInterfaces/ADM_gui/T_preview.cpp -> avidemux2-2.8.2.git20260404.tar.xz/avidemux/qt4/ADM_userInterfaces/ADM_gui/T_preview.cpp
Changed
@@ -228,39 +228,33 @@ * * */ +static void *myDisplay = NULL; +static int mySystemWindowId = 0; +/* + * Apple, let them null + * + */ #if defined(__APPLE__) - -static void systemWindowInfo(GUI_WindowInfo *xinfo) +static void systemWindowInfo_once() { - xinfo->display = NULL; // we may not call winId() on a QWidget on macOS, it breaks OpenGL - xinfo->systemWindowId = 0; } #elif defined(_WIN32) - -static void systemWindowInfo(GUI_WindowInfo *xinfo) +/* + * Windows + */ +static void systemWindowInfo_once() { -#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) - QWindow *window = QuiMainWindows->windowHandle(); - if (window) - xinfo->scalingFactor = (double)window->devicePixelRatio(); -#endif - - xinfo->display = (void *)videoWindow->winId(); - xinfo->systemWindowId = videoWindow->winId(); + myDisplay = (void *)videoWindow->winId(); + mySystemWindowId = videoWindow->winId(); } #else // linux -static void systemWindowInfo(GUI_WindowInfo *xinfo) +static void systemWindowInfo_once() { - static void *myDisplay = NULL; - QWindow *window = QuiMainWindows->windowHandle(); - if (window) - xinfo->scalingFactor = (double)window->devicePixelRatio(); #if QT_VERSION < QT_VERSION_CHECK(6, 5, 0) - if (!myDisplay) - myDisplay = XOpenDisplay(NULL); + myDisplay = XOpenDisplay(NULL); + mySystemWindowId = videoWindow->winId(); #else - if (!myDisplay) { ADM_info("Running on platform %s\n", currentQApplication()->platformName().toLatin1().data()); switch (admDetectQtEngine()) @@ -271,31 +265,46 @@ { ADM_info("found x11 display\n"); myDisplay = x11->display(); + mySystemWindowId = videoWindow->winId(); } } break; - case QT_WAYLAND_ENGINE: - - { + case QT_WAYLAND_ENGINE: { auto wayland = currentQApplication()->nativeInterface<QNativeInterface::QWaylandApplication>(); if (wayland) { ADM_info("found wayland display\n"); myDisplay = wayland->display(); + mySystemWindowId = 0; } } break; - default: + default: { ADM_warning("Cannot get qt engine infos\n"); myDisplay = NULL; + mySystemWindowId = 0; break; } + } } #endif - xinfo->display = myDisplay; - xinfo->systemWindowId = videoWindow->winId(); } #endif +/* + * + * + */ +static void systemWindowInfo(GUI_WindowInfo *xinfo) +{ + if (!myDisplay) + systemWindowInfo_once(); + + QWindow *window = QuiMainWindows->windowHandle(); + if (window) + xinfo->scalingFactor = (double)window->devicePixelRatio(); + xinfo->systemWindowId = mySystemWindowId; + xinfo->display = myDisplay; +} /** \brief Retrieve info from window, needed for accel layer
View file
avidemux2-2.8.2.git20260103.tar.xz/avidemux_core/cmake/admMainChecks.cmake -> avidemux2-2.8.2.git20260404.tar.xz/avidemux_core/cmake/admMainChecks.cmake
Changed
@@ -14,8 +14,15 @@ SET(FRESH_BUILD 1) ENDIF() # +find_program(CCACHE_FOUND ccache) +if(CCACHE_FOUND) + MESSAGE(STATUS "Using CCACHE as ${CCACHE_FOUND}") + set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_FOUND}) + set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_FOUND}) +endif() # INCLUDE(admCrossCompile) +MESSAGE(STATUS "BUILD CMake launcher: ${CMAKE_CXX_COMPILER_LAUNCHER}") MESSAGE(STATUS "BUILD EXTRA Cflags:${CMAKE_C_FLAGS}") MESSAGE(STATUS "BUILD EXTRA CXXflags:${CMAKE_CXX_FLAGS}") MESSAGE(STATUS "BUILD EXTRA LDflags:${CMAKE_LD_FLAGS}")
View file
avidemux2-2.8.2.git20260404.tar.xz/bootStrapCrossMingwQt6_2026.sh
Added
@@ -0,0 +1,262 @@ +#!/bin/bash + +# Default config + +default_mxerootdir="/opt/mxe" +mxerootdir="$default_mxerootdir" +rebuild=0 +debug=0 +do_core=1 +do_qt=1 +do_cli=1 +do_plugins=1 +external_liba52=0 +external_libmad=0 +do_release_pkg=1 + +# Functions +export ARCH="x86_64" +export MXE_ROOT="$mxerootdir" +export MXE_TARGET=${ARCH}-w64-mingw32.shared +export QT_SELECT=6 +export MINGW="${MXE_ROOT}/usr/${MXE_TARGET}" +export QT_HOME="${MINGW}"/qt6 +export QTDIR=${mxerootdir}/usr/x86_64-pc-linux-gnu/qt6/ +export TOOLCHAIN_LOCATION="${MXE_ROOT}"/usr +export TOOLCHAIN_FILE="${MINGW}"/share/cmake/mxe-conf.cmake +export SDL2DIR="$MINGW" +export GENERATOR="Ninja" + +export PATH=${QT_HOME}/bin:$PATH + +setupEnv() { + export BITS="64" + export BUILDDATE=$(date +%y%m%d-%H%M%S) + if "x$external_liba52" = "x1" ; then + export EXTRA_CMAKE_DEFS="-DUSE_EXTERNAL_LIBA52=true $EXTRA_CMAKE_DEFS" + fi + if "x$external_libmad" = "x1" ; then + export EXTRA_CMAKE_DEFS="-DUSE_EXTERNAL_LIBMAD=true $EXTRA_CMAKE_DEFS" + fi + export BUILDTOP=$PWD + if $BUILDTOP = *" "* ; then + echo "The build directory path \"${BUILDTOP}\" contains one or more spaces." + echo "This is unsupported by FFmpeg configure." + fail "build prerequisites" + fi + export SRCTOP=$(cd $(dirname "$0") && pwd) + export PATH="$PATH":"${MXE_ROOT}"/usr/bin:"${QT_HOME}"/bin + PARAL="-j $(nproc)" + if "x$debug" != "x1" ; then + export INSTALL_DIR="${MINGW}"/out/avidemux + else + export INSTALL_DIR="${MINGW}"/out_debug/avidemux + fi + export CROSS_PREFIX=$MXE_TARGET + export PKG_CONFIG_PATH="${MINGW}"/lib/pkgconfig + export PKG_CONFIG_LIBDIR="${MINGW}"/lib/pkgconfig + export CXXFLAGS="-std=c++17" + export CROSS_C_COMPILER=gcc + export CROSS_CXX_COMPILER=g++ +} + +fail() { + echo "** Failed at $1 **" + exit 1 +} + +Process() { + BASE=$1 + SOURCEDIR=$2 + EXTRA=$3 + BUILDDIR="${PWD}/${BASE}" + echo "Building in \"${BUILDDIR}\" from \"${SOURCEDIR}\" with EXTRA=<${EXTRA}>)" + if "x$rebuild" != "x1" ; then + rm -Rf "$BUILDDIR" + fi + if ! -e "$BUILDDIR" ; then + mkdir "$BUILDDIR" || fail "creating build directory" + fi + pushd "$BUILDDIR" >/dev/null + cmake -DCROSS="$MINGW" \ + -DCMAKE_SYSTEM_NAME:STRING=Windows \ + -DCMAKE_FIND_ROOT_PATH="$MINGW" \ + -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAIN_FILE" \ + -DCMAKE_INSTALL_PREFIX="$INSTALL_DIR" \ + -DCMAKE_LINKER:STRING="${CROSS_PREFIX}-ld" \ + -DCMAKE_AR:STRING="${CROSS_PREFIX}-ar" \ + -DAVIDEMUX_TOP_SOURCE_DIR:STRING="$SRCTOP" \ + ${DEBUG} \ + -G "${GENERATOR}" \ + $EXTRA \ + "$SOURCEDIR" || fail "cmake" + ninja >&/tmp/log$BASE || fail "make, result in /tmp/log$BASE" + ninja install || fail "install" + # Only install component=dev for dev package + popd >/dev/null +} + +usage() { + echo "Usage: bash $0 OPTION" + echo " --help : Print usage" + echo " --debug : Switch debugging on" + echo " --rebuild : Preserve existing build directories" + echo " --with-core : Build core (default)" + echo " --without-core : Don't build core" + echo " --with-cli : Build cli (default)" + echo " --without-cli : Don't build cli application and plugins" + echo " --with-qt : Build Qt (default)" + echo " --without-qt : Don't build Qt application and plugins" + echo " --with-plugins : Build plugins (default)" + echo " --without-plugins : Don't build plugins" + echo " --with-system-liba52 : Use the system liba52 (a52dec) instead of the bundled one" + echo " --with-system-libmad : Use the system libmad instead of the bundled one" + echo " --nopkg : Don't create a ZIP archive with all required libraries" +} + +option_value() { + echo $(echo $* | cut -d '=' -f 2-) +} + +option_name() { + echo $(echo $* | cut -d '=' -f 1 | cut -b 3-) +} + +# Options handling + +while $# != 0 ; do + config_option="$1" + case "$config_option" in + -h | --help) + usage + exit 1 + ;; + --debug) + debug=1 + ;; + --rebuild) + rebuild=1 + ;; + --without-qt) + do_qt=0 + ;; + --without-cli) + do_cli=0 + ;; + --without-plugins) + do_plugins=0 + ;; + --without-core) + do_core=0 + ;; + --with-qt) + do_qt=1 + ;; + --with-cli) + do_cli=1 + ;; + --with-plugins) + do_plugins=1 + ;; + --with-core) + do_core=1 + ;; + --with-system-liba52) + export external_liba52=1 + ;; + --with-system-libmad) + export external_libmad=1 + ;; + --nopkg) + do_release_pkg=0 + ;; + *) + echo "unknown parameter $config_option" + usage + exit 1 + ;; + esac + shift +done + +# Set all the required paths and env variables + +setupEnv + +# Create destination directory + +echo "** Bootstrapping Avidemux **" +if -e "$INSTALL_DIR" -a "x$do_core" = "x1" -a "x$do_qt" = "x1" ; then + rm -Rf "$INSTALL_DIR" +fi +mkdir -p "$INSTALL_DIR" +echo "Build top dir : $BUILDTOP" + +# Build and install Avidemux components to the destination dir + +if "x$do_core" = "x1" ; then + echo "** CORE **" + Process buildMingwCore-${ARCH} "${SRCTOP}"/avidemux_core "-DCMAKE_CROSS_PREFIX=${CROSS_PREFIX}"
View file
avidemux2-2.8.2.git20260103.tar.xz/createDebFromSourceUbuntu.bash -> avidemux2-2.8.2.git20260404.tar.xz/createDebFromSourceUbuntu.bash
Changed
@@ -1,128 +1,129 @@ #!/bin/bash packages_dir="pkgs" install_packages=1 +dont_install_deps=0 default_install_prefix="/usr" install_prefix="$default_install_prefix" rebuild="" # -usage() -{ - echo "Usage: $0 Options" - echo "***********************" - echo " --help or -h : Print usage" - echo " --deps-only : Just install build dependencies and exit" - echo " --prefix=DIR : Install to directory DIR (default: $default_install_prefix)" - echo " --no-install : Don't install generated debian avidemux packages" - echo " --rebuild : Preserve existing build directories" +usage() { + echo "Usage: $0 Options" + echo "***********************" + echo " --help or -h : Print usage" + echo " --deps-only : Just install build dependencies and exit" + echo " --no-deps : Dont install build dependencies " + echo " --prefix=DIR : Install to directory DIR (default: $default_install_prefix)" + echo " --no-install : Don't install generated debian avidemux packages" + echo " --rebuild : Preserve existing build directories" } # -install_deps() -{ - echo "This will install all the packages necessary to build avidemux" - echo "You will be asked to enter your password because installing build dependencies requires root permissions" - # gcc, g++ and make get installed as dependencies of build-essential - sudo apt-get update && sudo apt-get install build-essential cmake pkg-config yasm \ +install_deps() { + echo "This will install all the packages necessary to build avidemux" + echo "You will be asked to enter your password because installing build dependencies requires root permissions" + # gcc, g++ and make get installed as dependencies of build-essential + sudo apt-get update && sudo apt-get install build-essential cmake pkg-config yasm \ libsqlite3-dev \ libxv-dev libvdpau-dev libva-dev libglu1-mesa-dev \ libasound2-dev libpulse-dev \ qt6-base-dev qt6-l10n-tools \ libx264-dev libxvidcore-dev \ libmp3lame-dev libtwolame-dev libopus-dev libvorbis-dev libogg-dev \ - libpng-dev libass-dev \ - || { echo "The installation at least of some of the build dependencies failed. Aborting." && exit 2; } - # we don't fail if the following packages cannot be installed - sudo apt-get install libaften-dev \ - || echo "Warning: libaften-dev cannot be installed using package management." \ - "Aften AC-3 audio encoder plugin won't be built." # not officially packaged for Debian - sudo apt-get install libfaac-dev \ - || echo "Warning: libfaac-dev cannot be installed using package management." \ - "FAAC AAC audio encoder plugin won't be built." # in non-free on Debian - sudo apt-get install libfdk-aac-dev \ - || echo "Warning: libfdk-aac-dev cannot be installed using package management." \ - "fdk-aac AAC audio encoder plugin won't be built." # in non-free on Debian - sudo apt-get install libx265-dev \ - || echo "Warning: libx265-dev cannot be installed using package management." \ - "Avidemux won't be able to encode HEVC unless the library and the headers have been installed manually." \ - "Continuing anyway." # there are no official libx265 packages for Ubuntu Trusty - sudo apt-get install libvpx-dev \ - || echo "Warning: libvpx-dev cannot be installed using package management." \ - "Avidemux won't be able to encode VP9 unless the library and the headers have been installed manually." \ - "Continuing anyway." - sudo apt-get install libaom-dev \ - || echo "Warning: libaom-dev cannot be installed using package management." \ - "Avidemux won't be able to decode AV1 unless the library and the headers have been installed manually." \ - "Continuing anyway." # available from Ubuntu Eoan on + libpng-dev libass-dev || + { echo "The installation at least of some of the build dependencies failed. Aborting." && exit 2; } + # we don't fail if the following packages cannot be installed + sudo apt-get install libaften-dev || + echo "Warning: libaften-dev cannot be installed using package management." \ + "Aften AC-3 audio encoder plugin won't be built." # not officially packaged for Debian + sudo apt-get install libfaac-dev || + echo "Warning: libfaac-dev cannot be installed using package management." \ + "FAAC AAC audio encoder plugin won't be built." # in non-free on Debian + sudo apt-get install libfdk-aac-dev || + echo "Warning: libfdk-aac-dev cannot be installed using package management." \ + "fdk-aac AAC audio encoder plugin won't be built." # in non-free on Debian + sudo apt-get install libx265-dev || + echo "Warning: libx265-dev cannot be installed using package management." \ + "Avidemux won't be able to encode HEVC unless the library and the headers have been installed manually." \ + "Continuing anyway." # there are no official libx265 packages for Ubuntu Trusty + sudo apt-get install libvpx-dev || + echo "Warning: libvpx-dev cannot be installed using package management." \ + "Avidemux won't be able to encode VP9 unless the library and the headers have been installed manually." \ + "Continuing anyway." + sudo apt-get install libaom-dev || + echo "Warning: libaom-dev cannot be installed using package management." \ + "Avidemux won't be able to decode AV1 unless the library and the headers have been installed manually." \ + "Continuing anyway." # available from Ubuntu Eoan on } # -install_avidemux() -{ - echo "Installing avidemux..." - cd "$packages_dir" && sudo dpkg -i * +install_avidemux() { + echo "Installing avidemux..." + cd "$packages_dir" && sudo dpkg -i * } # -option_value() -{ - echo $(echo $* | cut -d '=' -f 2-) +option_value() { + echo $(echo $* | cut -d '=' -f 2-) } # -option_name() -{ - echo $(echo $* | cut -d '=' -f 1 | cut -b 3-) +option_name() { + echo $(echo $* | cut -d '=' -f 1 | cut -b 3-) } # -dir_check() -{ - op_name="$1" - dir_path="$2" - if "x$dir_path" != "x" ; then - if "$dir_path" != /* ; then - >&2 echo "Expected an absolute path for --$op_name=$dir_path, aborting." - exit 1 - fi - else - >&2 echo "Empty path provided for --$op_name, aborting." - exit 1 +dir_check() { + op_name="$1" + dir_path="$2" + if "x$dir_path" != "x" ; then + if "$dir_path" != /* ; then + >&2 echo "Expected an absolute path for --$op_name=$dir_path, aborting." + exit 1 fi - case "$dir_path" in - */) - echo $(expr "x$dir_path" : 'x\(.*^/\)') # strip trailing slashes - ;; - *) - echo "$dir_path" - ;; - esac + else + >&2 echo "Empty path provided for --$op_name, aborting." + exit 1 + fi + case "$dir_path" in + */) + echo $(expr "x$dir_path" : 'x\(.*^/\)') # strip trailing slashes + ;; + *) + echo "$dir_path" + ;; + esac } # while $# != 0 ; do - config_option="$1" - case "$config_option" in - -h|--help) - usage - exit 0 - ;; - --deps-only) - install_deps - exit 0 - ;; - --prefix=*) - install_prefix=$(dir_check $(option_name "$config_option") $(option_value "$config_option")) || exit 1 - ;; - --no-install) - install_packages=0 - ;; - --rebuild) - rebuild="$config_option" - ;; - *) - echo "unknown parameter $config_option" - usage - exit 1 - ;; - esac - shift + config_option="$1" + case "$config_option" in + -h | --help) + usage + exit 0 + ;; + --no-deps) + dont_install_deps=1 + ;; + --deps-only) + install_deps + exit 0
View file
avidemux2-2.8.2.git20260103.tar.xz/createRpmFromSourceFedora.bash -> avidemux2-2.8.2.git20260404.tar.xz/createRpmFromSourceFedora.bash
Changed
@@ -4,6 +4,7 @@ rebuild="" sucommand="" missing_pkgs=() +dont_install_deps=0 # echo "Automatic RPM generator for Avidemux, Fedora 40 version" # @@ -165,6 +166,9 @@ usage exit 0 ;; + --no-deps) + dont_install_deps=1 + ;; --deps-only) install_deps exit 0 @@ -190,7 +194,9 @@ shift done # -install_deps +if $dont_install_deps -eq 0 ; then + install_deps +fi # echo "Building..." umask 0022
View file
avidemux2-2.8.2.git20260404.tar.xz/devpod_debiantrixie.sh
Added
@@ -0,0 +1,1 @@ +devpod up . --ide none --id adm-trixie --devcontainer-path .devcontainer_trixie/devcontainer.json
View file
avidemux2-2.8.2.git20260404.tar.xz/devpod_fedora.sh
Added
@@ -0,0 +1,1 @@ +devpod up . --id adm-fedora --ide none --devcontainer-path .devcontainer_fedora/devcontainer.json
View file
avidemux2-2.8.2.git20260404.tar.xz/devpod_mxe64.sh
Added
@@ -0,0 +1,1 @@ +devpod up . --ide none --id adm-mxe64 --devcontainer-path .devcontainer_mxe64/devcontainer.json
View file
avidemux2-2.8.2.git20260404.tar.xz/devpod_ubuntu2510.sh
Added
@@ -0,0 +1,1 @@ +devpod up . --ide none --id adm-ubuntu --devcontainer-path .devcontainer_ubuntu2510/devcontainer.json
View file
avidemux2-2.8.2.git20260404.tar.xz/makeAppImage_qt6.sh
Added
@@ -0,0 +1,9 @@ +#!/bin/bash +fail() { + echo "FAIL $@" + exit 1 +} +export CXXFLAGS="$CXXFLAGS -std=c++11" +bash bootStrap.bash --without-cli || fail main +bash appImage/deploy_qt6.sh $PWD/install $PWD/AppDir +bash appImage/pack.sh
View file
avidemux2-2.8.2.git20260404.tar.xz/mxe_scan_deps.py
Added
@@ -0,0 +1,143 @@ +# +# pip install pefile +# python3 mxe_scan_deps.py avidemux64 --sources /opt/mxe/usr/x86_64-w64-mingw32.shared/qt6/bin /opt/mxe/usr/x86_64-w64-mingw32.shared/bin/ +# +import os +import shutil +import argparse +import pefile +import sys +from collections import deque + +class Colors: + HEADER, INFO, SUCCESS, WARNING, FAIL, ENDC, BOLD = '\03395m', '\03394m', '\03392m', '\03393m', '\03391m', '\0330m', '\0331m' + +SYSTEM_DLLS = { + "kernel32.dll", "user32.dll", "gdi32.dll", "shell32.dll", "advapi32.dll", + "msvcrt.dll", "ws2_32.dll", "ole32.dll", "rpcrt4.dll", "shlwapi.dll", + "comctl32.dll", "winmm.dll", "opengl32.dll", "glu32.dll", "crypt32.dll", + "imm32.dll", "wsock32.dll", "setupapi.dll", "iphlpapi.dll", "msi.dll", + "comdlg32.dll", "version.dll", "winhttp.dll", "wininet.dll", "netapi32.dll", + "mpr.dll", "psapi.dll", "dnsapi.dll", "uxtheme.dll", "dwmapi.dll", "ntdll.dll", + "imagehlp.dll", "powrprof.dll", "bcrypt.dll", "d3d9.dll","d3d11.dll", "d3d12.dll", + "dwrite.dll", "dxgi.dll", "secur32.dll", "oleaut32.dll", "authz.dll", "userenv.dll", + "shcore.dll","wtsapi32.dll" +} + +def is_system_dll(name): + return name.lower() in SYSTEM_DLLS or name.lower().startswith(("api-ms-win-", "ext-ms-win-")) + +def get_imports(file_path): + deps = + try: + pe = pefile.PE(file_path, fast_load=False) + if hasattr(pe, 'DIRECTORY_ENTRY_IMPORT'): + for entry in pe.DIRECTORY_ENTRY_IMPORT: + if entry.dll: + deps.append(entry.dll.decode('utf-8')) + except Exception: + pass # Skip non-PE or corrupted + return deps + +def build_source_index(paths): + idx = {} + for p in paths: + if not os.path.isdir(p): continue + for root, _, files in os.walk(p): + for f in files: + if f.lower().endswith('.dll'): + # Map both the name and a version-stripped name + idxf.lower() = os.path.abspath(os.path.join(root, f)) + return idx + +def run_resolver(target_root, source_paths): + target_root = os.path.abspath(target_root) + source_index = build_source_index(source_paths) + + queue = deque() + processed_paths = set() + + print(f"{Colors.HEADER}Target Directory: {target_root}{Colors.ENDC}") + + # Seed from target + for root, _, files in os.walk(target_root): + for f in files: + if f.lower().endswith(('.exe', '.dll')): + queue.append(os.path.abspath(os.path.join(root, f))) + + while queue: + current_path = queue.popleft() + if current_path in processed_paths: continue + + current_name = os.path.basename(current_path) + print(f"\n{Colors.INFO}Checking{Colors.ENDC} {current_name}") + + deps = get_imports(current_path) + for dep in deps: + if is_system_dll(dep): continue + + dep_l = dep.lower() + # PHYSICAL CHECK: Does this file exist EXACTLY in the target root? + destination_path = os.path.join(target_root, dep) + + # We also check for 'lib' prefixed version in the target root + lib_variant = f"lib{dep_l}" if not dep_l.startswith("lib") else dep_l + destination_path_lib = os.path.join(target_root, lib_variant) + + if os.path.exists(destination_path) or os.path.exists(destination_path_lib): + actual_found = destination_path if os.path.exists(destination_path) else destination_path_lib + print(f" {Colors.SUCCESS}OK{Colors.ENDC} {os.path.basename(actual_found)} exists.") + if os.path.abspath(actual_found) not in processed_paths: + queue.append(os.path.abspath(actual_found)) + continue + + # If not in target root, search MXE index + print(f" {Colors.WARNING}Missing{Colors.ENDC} {dep} -> searching MXE...") + + match_path = None + # Check variations in source index + for v in dep_l, f"lib{dep_l}", dep_l.replace("lib", "", 1): + if v in source_index: + match_path = source_indexv + break + + # Special logic for versioned libs (e.g. x264.dll requested, libx264-165.dll exists) + if not match_path: + base_name = dep_l.split('.')0.replace("lib", "") + for key, full_path in source_index.items(): + if base_name in key: + match_path = full_path + break + + if match_path: + final_dest = os.path.join(target_root, os.path.basename(match_path)) + print(f" {Colors.SUCCESS}COPYING{Colors.ENDC} {os.path.basename(match_path)}") + shutil.copy2(match_path, final_dest) + queue.append(os.path.abspath(final_dest)) + else: + # Last ditch: check if it's an internal lib elsewhere in the tree + found_internal = None + for root, _, files in os.walk(target_root): + if dep_l in f.lower() for f in files: + found_internal = os.path.join(root, dep) + break + + if found_internal: + final_dest = os.path.join(target_root, dep) + print(f" {Colors.WARNING}PROMOTING{Colors.ENDC} Internal {dep}") + shutil.copy2(found_internal, final_dest) + queue.append(os.path.abspath(final_dest)) + else: + print(f" {Colors.FAIL}FATAL {dep} not found anywhere.{Colors.ENDC}") + sys.exit(1) + + processed_paths.add(current_path) + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("target") + parser.add_argument("--sources", nargs='+') + args = parser.parse_args() + run_resolver(args.target, args.sources) + +
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.