mirror of
https://github.com/levogevo/ffmpeg-builder.git
synced 2026-01-15 19:06:17 +00:00
fix numa
This commit is contained in:
4
Jenkinsfile
vendored
4
Jenkinsfile
vendored
@@ -18,7 +18,7 @@ pipeline {
|
|||||||
stage('build docker image') {
|
stage('build docker image') {
|
||||||
matrix {
|
matrix {
|
||||||
axes {
|
axes {
|
||||||
axis { name 'DISTRO'; values 'ubuntu-24.04', 'fedora-42', 'debian-13', 'archlinux-latest' }
|
axis { name 'DISTRO'; values 'ubuntu', 'fedora', 'debian', 'arch' }
|
||||||
}
|
}
|
||||||
stages {
|
stages {
|
||||||
stage('build multiarch image') {
|
stage('build multiarch image') {
|
||||||
@@ -52,7 +52,7 @@ pipeline {
|
|||||||
matrix {
|
matrix {
|
||||||
axes {
|
axes {
|
||||||
axis { name 'ARCH'; values 'armv8-a', 'x86-64-v3' }
|
axis { name 'ARCH'; values 'armv8-a', 'x86-64-v3' }
|
||||||
axis { name 'DISTRO'; values 'ubuntu-24.04', 'fedora-42', 'debian-13', 'archlinux-latest' }
|
axis { name 'DISTRO'; values 'ubuntu', 'fedora', 'debian', 'arch' }
|
||||||
axis { name 'OPT_LTO'; values 'OPT=0 LTO=OFF', 'OPT=3 LTO=ON' }
|
axis { name 'OPT_LTO'; values 'OPT=0 LTO=OFF', 'OPT=3 LTO=ON' }
|
||||||
axis { name 'STATIC'; values 'ON', 'OFF' }
|
axis { name 'STATIC'; values 'ON', 'OFF' }
|
||||||
}
|
}
|
||||||
|
|||||||
15
lib/build.sh
15
lib/build.sh
@@ -193,10 +193,8 @@ libaom 3.12.1 tar.gz https://storage.googleapis.com/aom-releases/libaom-${ve
|
|||||||
libvmaf 3.0.0 tar.gz https://github.com/Netflix/vmaf/archive/refs/tags/v${ver}.${ext}
|
libvmaf 3.0.0 tar.gz https://github.com/Netflix/vmaf/archive/refs/tags/v${ver}.${ext}
|
||||||
libopus 1.5.2 tar.gz https://github.com/xiph/opus/releases/download/v${ver}/opus-${ver}.${ext}
|
libopus 1.5.2 tar.gz https://github.com/xiph/opus/releases/download/v${ver}/opus-${ver}.${ext}
|
||||||
libdav1d 1.5.1 tar.xz http://downloads.videolan.org/videolan/dav1d/${ver}/dav1d-${ver}.${ext}
|
libdav1d 1.5.1 tar.xz http://downloads.videolan.org/videolan/dav1d/${ver}/dav1d-${ver}.${ext}
|
||||||
libx264 latest git https://code.videolan.org/videolan/x264.git
|
libx264 latest git https://code.videolan.org/videolan/x264.git
|
||||||
|
libx265 4.1 tar.gz https://bitbucket.org/multicoreware/x265_git/downloads/x265_${ver}.${ext}
|
||||||
libx265 4.1 tar.gz https://bitbucket.org/multicoreware/x265_git/downloads/x265_${ver}.${ext} libnuma
|
|
||||||
libnuma 2.0.19 tar.gz https://github.com/numactl/numactl/archive/refs/tags/v${ver}.${ext}
|
|
||||||
'
|
'
|
||||||
|
|
||||||
local supported_builds=()
|
local supported_builds=()
|
||||||
@@ -604,15 +602,6 @@ build_libx264() {
|
|||||||
sanitize_sysroot_libs 'libx264' || return 1
|
sanitize_sysroot_libs 'libx264' || return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
build_libnuma() {
|
|
||||||
./autogen.sh || return 1
|
|
||||||
./configure \
|
|
||||||
"${CONFIGURE_FLAGS[@]}" || return 1
|
|
||||||
ccache make -j"${JOBS}" || return 1
|
|
||||||
${SUDO_MODIFY} make -j"${JOBS}" install || return 1
|
|
||||||
sanitize_sysroot_libs 'libnuma' || return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
add_project_versioning_to_ffmpeg() {
|
add_project_versioning_to_ffmpeg() {
|
||||||
local optFile
|
local optFile
|
||||||
local fname='ffmpeg_opt.c'
|
local fname='ffmpeg_opt.c'
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
VALID_DOCKER_IMAGES=(
|
VALID_DOCKER_IMAGES=(
|
||||||
'ubuntu-24.04'
|
'ubuntu'
|
||||||
'fedora-42'
|
'fedora'
|
||||||
'fedora-41'
|
'debian'
|
||||||
'debian-13'
|
'arch'
|
||||||
'archlinux-latest'
|
|
||||||
)
|
)
|
||||||
DOCKER_WORKDIR='/workdir'
|
DOCKER_WORKDIR='/workdir'
|
||||||
|
|
||||||
@@ -33,6 +32,19 @@ check_docker() {
|
|||||||
set_docker_run_flags || return 1
|
set_docker_run_flags || return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# get full image digest for a given image
|
||||||
|
get_docker_image_tag() {
|
||||||
|
local distro="$1"
|
||||||
|
local tag=''
|
||||||
|
case "${distro}" in
|
||||||
|
ubuntu) tag='ubuntu:24.04' ;;
|
||||||
|
debian) tag='debian:13' ;;
|
||||||
|
fedora) tag='fedora:42' ;;
|
||||||
|
arch) tag='ogarcia/archlinux:latest' ;;
|
||||||
|
esac
|
||||||
|
echo "${tag}"
|
||||||
|
}
|
||||||
|
|
||||||
# change dash to colon for docker and add namespace
|
# change dash to colon for docker and add namespace
|
||||||
set_distro_image_tag() {
|
set_distro_image_tag() {
|
||||||
local image_tag="${1}"
|
local image_tag="${1}"
|
||||||
@@ -91,12 +103,7 @@ docker_build_image() {
|
|||||||
|
|
||||||
for distro in "${DISTROS[@]}"; do
|
for distro in "${DISTROS[@]}"; do
|
||||||
echo_info "sourcing package manager for ${distro}"
|
echo_info "sourcing package manager for ${distro}"
|
||||||
local dockerDistro="${distro}"
|
local dockerDistro="$(get_docker_image_tag "${distro}")"
|
||||||
# custom multi-arch image for archlinux
|
|
||||||
test "${distro}" == 'archlinux-latest' &&
|
|
||||||
dockerDistro='ogarcia/archlinux-latest'
|
|
||||||
# docker expects colon instead of dash
|
|
||||||
dockerDistro="${dockerDistro//-/:}"
|
|
||||||
# specific file for evaluated package manager info
|
# specific file for evaluated package manager info
|
||||||
distroPkgMgr="${DOCKER_DIR}/$(bash_basename "${distro}")-pkg_mgr"
|
distroPkgMgr="${DOCKER_DIR}/$(bash_basename "${distro}")-pkg_mgr"
|
||||||
# get package manager info
|
# get package manager info
|
||||||
@@ -117,7 +124,7 @@ docker_build_image() {
|
|||||||
echo 'ENV DEBIAN_FRONTEND=noninteractive'
|
echo 'ENV DEBIAN_FRONTEND=noninteractive'
|
||||||
# arch is rolling release, so highly likely
|
# arch is rolling release, so highly likely
|
||||||
# an updated is required between pkg changes
|
# an updated is required between pkg changes
|
||||||
if line_contains "${dockerDistro}" 'archlinux'; then
|
if line_contains "${dockerDistro}" 'arch'; then
|
||||||
local archRuns=''
|
local archRuns=''
|
||||||
archRuns+="${pkg_mgr_update}"
|
archRuns+="${pkg_mgr_update}"
|
||||||
archRuns+=" && ${pkg_mgr_upgrade}"
|
archRuns+=" && ${pkg_mgr_upgrade}"
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ print_req_pkgs() {
|
|||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
local pacman_pkgs=(
|
local pacman_pkgs=(
|
||||||
"${common_linux_pkgs[@]}" base-devel
|
"${common_linux_pkgs[@]}" base-devel
|
||||||
python-pipx ninja
|
python-pipx ninja numactl
|
||||||
)
|
)
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
local dnf_pkgs=(
|
local dnf_pkgs=(
|
||||||
@@ -78,6 +78,7 @@ print_req_pkgs() {
|
|||||||
pipx ninja-build fontconfig-devel wget2
|
pipx ninja-build fontconfig-devel wget2
|
||||||
cpuinfo-devel glibc-static glibc-devel
|
cpuinfo-devel glibc-static glibc-devel
|
||||||
libstdc++-static libstdc++-devel patch
|
libstdc++-static libstdc++-devel patch
|
||||||
|
numactl-devel
|
||||||
)
|
)
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
local android_pkgs=(
|
local android_pkgs=(
|
||||||
|
|||||||
Reference in New Issue
Block a user