Projects
home:enzokiel
avidemux3
Sign Up
Log In
Username
Password
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}" +fi + +if "x$do_qt" = "x1" ; then + echo "** QT **" + Process buildMingwQt6-${ARCH} "${SRCTOP}"/avidemux/qt4 "-DQT_HOME:STRING=${QT_HOME} -DENABLE_QT6=true" +fi + +if "x$do_cli" = "x1" ; then + echo "** CLI **" + Process buildMingwCli-${ARCH} "${SRCTOP}"/avidemux/cli +fi + +if "x$do_plugins" = "x1" ; then + echo "** Plugins **" + Process buildMingwPluginsCommon-${ARCH} "${SRCTOP}"/avidemux_plugins "-DPLUGIN_UI=COMMON $EXTRA_CMAKE_DEFS" +fi + +if "x$do_plugins" = "x1" -a "x$do_qt" = "x1" ; then + echo "** Plugins Qt **" + Process buildMingwPluginsQt6-${ARCH} "${SRCTOP}"/avidemux_plugins "-DPLUGIN_UI=QT4 -DQT_HOME:STRING=$QT_HOME -DENABLE_QT6=true $EXTRA_CMAKE_DEFS" +fi + +if "x$do_plugins" = "x1" -a "x$do_cli" = "x1" ; then + echo "** Plugins CLI **" + Process buildMingwPluginsCli-${ARCH} "${SRCTOP}"/avidemux_plugins "-DPLUGIN_UI=CLI $EXTRA_CMAKE_DEFS" +fi + +if "x$do_plugins" = "x1" ; then + echo "** Plugins Settings **" + Process buildMingwPluginsSettings-${ARCH} "${SRCTOP}"/avidemux_plugins "-DPLUGIN_UI=SETTINGS $EXTRA_CMAKE_DEFS" +fi + +# Create a ZIP archive with avidemux and all the required libs + +rm -Rf avidemux64 +cp -Rap ${MINGW}/out/avidemux ./avidemux64 +find avidemux64 -name "*.a" | xargs rm -f +rm -Rf avidemux64/include +mv avidemux64/avidemux.exe avidemux64/avidemux_portable.exe +# Copy extra QT6 files +mkdir avidemux64/platforms +cp ${QT_HOME}/plugins/platforms/qminimal.dll ${QT_HOME}/plugins/platforms/qwindows.dll avidemux64/platforms + +mkdir avidemux64/styles +cp ${QT_HOME}/plugins/styles/qmodernwindowsstyle.dll avidemux64/styles + +mkdir avidemux64/etc +cp -rvL "${MINGW}"/etc/fonts avidemux64/etc + +# +python3 mxe_scan_deps.py \ + avidemux64 \ + --sources \ + ${MINGW}/bin \ + ${MINGW}/bin \ + ${QT_HOME}/bin \ + ${QT_HOME}/lib + +#if "x$do_release_pkg" = "x1" ; then +#create_release_package +#fi + +echo "** All done **"
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 + ;; + --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 done # -install_deps +if $dont_install_deps -eq 0 ; then + install_deps +fi # echo "Compiling avidemux, this may take a few minutes..." # A hack to find qt6 lrelease on Ubuntu @@ -130,15 +131,15 @@ SRCTOP=$(cd $(dirname "$0") && pwd) bash "${SRCTOP}"/bootStrap.bash --deb --prefix=$install_prefix $rebuild if $? -ne 0 ; then - if $install_packages -eq 1 ; then - echo "Cancelling installation." - fi - exit 3 + if $install_packages -eq 1 ; then + echo "Cancelling installation." + fi + exit 3 fi # if $install_packages -eq 1 ; then - install_avidemux - exit $? + install_avidemux + exit $? fi # 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
.