good ol fedora

This commit is contained in:
2025-08-07 20:14:10 -05:00
parent d226433fa4
commit 8d34479711
5 changed files with 45 additions and 49 deletions

View File

@@ -15,31 +15,27 @@ set_compile_opts() {
# set job count for all builds
JOBS="$(nproc)"
MACHINE="$(cc -dumpmachine)"
test "${MACHINE}" == '' && return 1
MACHINE_LIB="${PREFIX}/lib/${MACHINE}"
mapfile -t pkgconfigDirs < <(find "${PREFIX}" -type d -name pkgconfig)
for d in "${pkgconfigDirs[@]}"; do
if [[ ${d} =~ '64' ]]; then
MACHINE_LIB="${d}"
fi
done
test "${MACHINE_LIB}" == '' && return 1
pkgconfigString="${pkgconfigDirs[*]}"
PKG_CONFIG_PATH="${pkgconfigString// /:}"
# set prefix flags
CONFIGURE_FLAGS+=("--prefix=${PREFIX}")
MESON_FLAGS+=("--prefix" "${PREFIX}")
CMAKE_FLAGS+=("-DCMAKE_PREFIX_PATH=${PREFIX}")
CMAKE_FLAGS+=("-DCMAKE_INSTALL_PREFIX=${PREFIX}")
PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"
PKG_CONFIG_PATH+=":${MACHINE_LIB}/pkgconfig"
export PKG_CONFIG_PATH
export PKG_CONFIG_DEBUG_SPEW=1
# add prefix include
C_FLAGS+=("-I${PREFIX}/include")
# enabling a clean build
if [[ ${CLEAN} == 'true' ]]; then
CLEAN="${SUDO} rm -rf"
echo_info "performing clean build"
else
CLEAN='void'
fi
# enabling link-time optimization
# shellcheck disable=SC2034
unset LTO_SWITCH LTO_FLAG LTO_BOOL
@@ -77,7 +73,7 @@ set_compile_opts() {
CONFIGURE_FLAGS+=('--enable-static')
CMAKE_FLAGS+=("-DBUILD_SHARED_LIBS=OFF")
MESON_FLAGS+=('--default-library=static')
CMAKE_FLAGS+=("-DCMAKE_EXE_LINKER_FLAGS='-static'")
CMAKE_FLAGS+=("-DCMAKE_EXE_LINKER_FLAGS=-static")
PKG_CFG_FLAGS='--static'
LIB_SUFF='a'
else
@@ -105,9 +101,10 @@ set_compile_opts() {
CXX_FLAGS=("${C_FLAGS[@]}")
CPP_FLAGS=("${C_FLAGS[@]}")
RUSTFLAGS+=("-C target-cpu=${CPU}")
CMAKE_FLAGS+=("-DCMAKE_C_FLAGS='${C_FLAGS[*]}'")
CMAKE_FLAGS+=("-DCMAKE_CXX_FLAGS='${CXX_FLAGS[*]}'")
CMAKE_FLAGS+=("-DCMAKE_C_FLAGS=${C_FLAGS[*]}")
CMAKE_FLAGS+=("-DCMAKE_CXX_FLAGS=${CXX_FLAGS[*]}")
MESON_FLAGS+=("-Dc_args=${C_FLAGS[*]}" "-Dcpp_args=${CPP_FLAGS[*]}")
echo_info "CLEAN: $CLEAN"
dump_arr CONFIGURE_FLAGS
dump_arr C_FLAGS
dump_arr RUSTFLAGS
@@ -220,9 +217,16 @@ download_release() {
rm -rf "${wrong_ver_build}"
done
# enabling a clean build
if [[ ${CLEAN} == 'true' ]]; then
DO_CLEAN="rm -rf"
else
DO_CLEAN='void'
fi
# create new build dir for clean builds
test -d "${extracted_dir}" &&
${CLEAN} "${extracted_dir}"
{ ${DO_CLEAN} "${extracted_dir}" || return 1; }
if test "${ext}" != "git"; then
wget_out="${base_dl_path}.${ext}"
@@ -237,7 +241,10 @@ download_release() {
test -d "${extracted_dir}" ||
{
mkdir "${extracted_dir}"
tar -xf "${wget_out}" --strip-components=1 -C "${extracted_dir}"
tar -xf "${wget_out}" \
--strip-components=1 \
--no-same-permissions \
-C "${extracted_dir}"
}
else
# for git downloads
@@ -330,6 +337,8 @@ build_libsvtav1() {
}
build_libsvtav1_psy() {
local hdr10pluslib="$(find "${PREFIX}" -type f -name "libhdr10plus-rs.${LIB_SUFF}")"
local dovilib="$(find "${PREFIX}" -type f -name "libdovi.${LIB_SUFF}")"
cmake \
"${CMAKE_FLAGS[@]}" \
-DSVT_AV1_LTO="${LTO_SWITCH}" \
@@ -338,8 +347,9 @@ build_libsvtav1_psy() {
-DCOVERAGE=OFF \
-DLIBDOVI_FOUND=1 \
-DLIBHDR10PLUS_RS_FOUND=1 \
-DLIBHDR10PLUS_RS_LIBRARY="${MACHINE_LIB}/libhdr10plus-rs.${LIB_SUFF}" \
-DLIBDOVI_LIBRARY="${MACHINE_LIB}/libdovi.${LIB_SUFF}" || return 1
-DLIBHDR10PLUS_RS_LIBRARY="${hdr10pluslib}" \
-DLIBDOVI_LIBRARY="${dovilib}" \
. || return 1
ccache make -j"${JOBS}" || return 1
${SUDO} make -j"${JOBS}" install || return 1
}

View File

@@ -53,6 +53,13 @@ validate_selected_image() {
fi
}
docker_login() {
echo_if_fail docker login \
-u "${DOCKER_REGISTRY_USER}" \
-p "${DOCKER_REGISTRY_PASS}" \
"${DOCKER_REGISTRY}"
}
FB_FUNC_NAMES+=('docker_build_image')
FB_FUNC_DESCS['docker_build_image']='build docker image with required dependencies pre-installed'
FB_FUNC_COMPLETION['docker_build_image']="${VALID_DOCKER_IMAGES[*]}"
@@ -107,11 +114,7 @@ docker_build_image() {
# if a docker registry is defined, push to it
if [[ ${DOCKER_REGISTRY} != '' ]]; then
docker login \
-u "${DOCKER_REGISTRY_USER}" \
-p "${DOCKER_REGISTRY_PASS}" \
"${DOCKER_REGISTRY}"
docker_login || return 1
docker buildx build \
--push \
--platform "${PLATFORM}" \
@@ -168,11 +171,7 @@ docker_run_image() {
# if a docker registry is defined, pull from it
if [[ ${DOCKER_REGISTRY} != '' ]]; then
docker login \
-u "${DOCKER_REGISTRY_USER}" \
-p "${DOCKER_REGISTRY_PASS}" \
"${DOCKER_REGISTRY}"
docker_login || return 1
docker pull \
"${DOCKER_REGISTRY}/${image_tag}"
docker tag "${DOCKER_REGISTRY}/${image_tag}" "${image_tag}"

View File

@@ -62,7 +62,7 @@ print_req_pkgs() {
libvorbis-dev libxcb1-dev pipx
libxcb-shm0-dev libxcb-xfixes0-dev
zlib1g-dev libssl-dev ninja-build
gobjc++ mawk libnuma-dev libcpuinfo-dev
gobjc++ mawk libnuma-dev
mediainfo mkvtoolnix libgtest-dev
)
# shellcheck disable=SC2034
@@ -74,7 +74,7 @@ print_req_pkgs() {
local dnf_pkgs=(
"${common_linux_pkgs[@]}" openssl-devel
pipx ninja-build fontconfig-devel wget2
cpuinfo-devel
cpuinfo-devel glibc-static libstdc++-static
)
local req_pkgs_env_name="${pkg_mgr/-/_}_pkgs"
@@ -97,9 +97,10 @@ print_pkg_mgr() {
echo "export req_pkgs=($(print_req_pkgs))"
}
print_os() {
print_os() {
if [[ -f /etc/os-release ]]; then
source /etc/os-release ; echo "${ID}-${VERSION_ID}"
source /etc/os-release
echo "${ID}-${VERSION_ID}"
fi
}

View File

@@ -1,14 +0,0 @@
#!/usr/bin/env bash
THIS_DIR="$(dirname "${BASH_SOURCE[0]}")"
IMAGE_NAME='ffmpeg_builder'
DISTROS=( debian ubuntu archlinux fedora )
DISTROS=( debian )
for DISTRO in "${DISTROS[@]}"; do
docker run \
--rm -it \
-v "${THIS_DIR}":/workdir \
-w /workdir \
"${IMAGE_NAME}-${DISTRO}" bash main.sh
done

View File

@@ -5,7 +5,7 @@ base="$(dirname "$(readlink -f "$0")")"
inotifywait -m -r \
-e close_write \
-e moved_to \
--format '%w%f' "$base" | while read -r file; do
--format '%w%f' "$base/lib" "$base/scripts" | while read -r file; do
if [[ -f $file && $file =~ .sh ]]; then
shfmt --write --simplify "$file"
fi