Compare commits

...

3 Commits

Author SHA1 Message Date
5c9e97e0a2 update rustc 1.88->1.90 2025-12-17 19:01:11 -06:00
687a8473b5 more android fixes 2025-12-17 18:15:02 -06:00
c07b52f5c2 update docker base images shas 2025-12-17 18:11:12 -06:00
3 changed files with 32 additions and 22 deletions

View File

@@ -60,9 +60,13 @@ set_compile_opts() {
LIBDIR="${PREFIX}/lib" LIBDIR="${PREFIX}/lib"
LDFLAGS_ARR=("-L${LIBDIR}") LDFLAGS_ARR=("-L${LIBDIR}")
# HACK rope in libm # android does not find libraries due to different names
if is_android; then if is_android && [[ ! -f "${LIBDIR}/libm.so" ]]; then
test -f "${LIBDIR}/libm.so" || ln -s /system/lib64/libm.so "${LIBDIR}/libm.so" LDFLAGS_ARR+=(
"-L/system/lib64"
"-lm"
"-landroid-shmem"
)
fi fi
# use clang # use clang
@@ -84,13 +88,14 @@ set_compile_opts() {
if ! is_darwin; then if ! is_darwin; then
USE_LD=lld USE_LD=lld
LDFLAGS_ARR+=("-fuse-ld=${USE_LD}") LDFLAGS_ARR+=("-fuse-ld=${USE_LD}")
CMAKE_FLAGS+=( # android does not like LINKER_TYPE despite only using lld
"-DCMAKE_LINKER_TYPE=${USE_LD^^}" if ! is_android; then
"-DCMAKE_LINKER=${USE_LD}" CMAKE_FLAGS+=("-DCMAKE_LINKER_TYPE=${USE_LD^^}")
) fi
CMAKE_FLAGS+=("-DCMAKE_LINKER=${USE_LD}")
local compilerDir="${LOCAL_PREFIX}/compiler-tools" local compilerDir="${LOCAL_PREFIX}/compiler-tools"
test -d "${compilerDir}" && rm -rf "${compilerDir}" test -d "${compilerDir}" && rm -rf "${compilerDir}"
mkdir "${compilerDir}" mkdir -p "${compilerDir}"
# real:gnu:clang:generic # real:gnu:clang:generic
local compilerMap="\ local compilerMap="\
${CC}:gcc:clang:cc ${CC}:gcc:clang:cc
@@ -110,12 +115,13 @@ ld.lld:ld:lld:ld"
echo "#!/usr/bin/env bash echo "#!/usr/bin/env bash
echo \$@ > ${compilerDir}/${genericT}.\${RANDOM} echo \$@ > ${compilerDir}/${genericT}.\${RANDOM}
exec \"${realT}\" ${addFlag} \"\$@\"" >"${compilerDir}/${genericT}" exec \"${realT}\" ${addFlag} \"\$@\"" >"${compilerDir}/${genericT}"
chmod +x "${compilerDir}/${genericT}"
echo_if_fail "${compilerDir}/${genericT}" --version || return 1
# copy generic to gnu/clang variants # copy generic to gnu/clang variants
# cp "${compilerDir}/${genericT}" "${compilerDir}/${gnuT}" 2>/dev/null # cp "${compilerDir}/${genericT}" "${compilerDir}/${gnuT}" 2>/dev/null
# cp "${compilerDir}/${genericT}" "${compilerDir}/${clangT}" 2>/dev/null # cp "${compilerDir}/${genericT}" "${compilerDir}/${clangT}" 2>/dev/null
done <<<"${compilerMap}" done <<<"${compilerMap}"
chmod +x "${compilerDir}"/*
export PATH="${compilerDir}:${PATH}" export PATH="${compilerDir}:${PATH}"
fi fi
@@ -214,10 +220,7 @@ exec \"${realT}\" ${addFlag} \"\$@\"" >"${compilerDir}/${genericT}"
"-DCMAKE_EXE_LINKER_FLAGS=${LDFLAGS_ARR[*]}" "-DCMAKE_EXE_LINKER_FLAGS=${LDFLAGS_ARR[*]}"
) )
FFMPEG_EXTRA_FLAGS+=("--extra-ldflags=${LDFLAGS_ARR[*]}") FFMPEG_EXTRA_FLAGS+=("--extra-ldflags=${LDFLAGS_ARR[*]}")
LDFLAGS_ARR+=( LDFLAGS_ARR+=("-Wl,-rpath,${LIBDIR}")
"-Wl,-rpath,${LIBDIR}"
"-Wl,-rpath-link,${LIBDIR}"
)
CONFIGURE_FLAGS+=( CONFIGURE_FLAGS+=(
'--enable-shared' '--enable-shared'
'--disable-static' '--disable-static'
@@ -792,7 +795,8 @@ build_cmake3() {
overrideFlags+=("${flag}") overrideFlags+=("${flag}")
fi fi
done done
CMAKE_FLAGS='' meta_cmake_build \ CMAKE_FLAGS='' CFLAGS='' CXXFLAGS='' LDFLAGS='' \
meta_cmake_build \
"${overrideFlags[@]}" || return 1 "${overrideFlags[@]}" || return 1
} }

View File

@@ -43,10 +43,10 @@ get_docker_image_tag() {
local image="$1" local image="$1"
local tag='' local tag=''
case "${image}" in case "${image}" in
ubuntu) tag='ubuntu:24.04@sha256:9cbed754112939e914291337b5e554b07ad7c392491dba6daf25eef1332a22e8' ;; ubuntu) tag='ubuntu:24.04@sha256:c35e29c9450151419d9448b0fd75374fec4fff364a27f176fb458d472dfc9e54' ;;
debian) tag='debian:13@sha256:833c135acfe9521d7a0035a296076f98c182c542a2b6b5a0fd7063d355d696be' ;; debian) tag='debian:13@sha256:0d01188e8dd0ac63bf155900fad49279131a876a1ea7fac917c62e87ccb2732d' ;;
fedora) tag='fedora:42@sha256:6af051ad0a294182c3a957961df6203d91f643880aa41c2ffe3d1302e7505890' ;; fedora) tag='fedora:42@sha256:b3d16134560afa00d7cc2a9e4967eb5b954512805f3fe27d8e70bbed078e22ea' ;;
archlinux) tag='ogarcia/archlinux:latest@sha256:b93f426b23cd0ea0e1befd7d58a26eaf3e6eda3c154c0e8dd75145d11c21304c' ;; archlinux) tag='ogarcia/archlinux:latest@sha256:1d70273180e43b1f51b41514bdaa73c61f647891a53a9c301100d5c4807bf628' ;;
esac esac
echo "${tag}" echo "${tag}"
} }
@@ -161,7 +161,7 @@ docker_build_image() {
echo "RUN pipx install virtualenv" echo "RUN pipx install virtualenv"
# rust # rust
local rustupVersion='1.28.2' local rustupVersion='1.28.2'
local rustcVersion='1.88.0' local rustcVersion='1.90.0'
local rustupTarball="rustup-${rustupVersion}.tar.gz" local rustupTarball="rustup-${rustupVersion}.tar.gz"
local rustupTarballPath="${DOCKER_DIR}/${rustupTarball}" local rustupTarballPath="${DOCKER_DIR}/${rustupTarball}"
if [[ ! -f ${rustupTarballPath} ]]; then if [[ ! -f ${rustupTarballPath} ]]; then
@@ -178,10 +178,15 @@ docker_build_image() {
# install cargo-c # install cargo-c
echo "RUN cargo-binstall -y cargo-c" echo "RUN cargo-binstall -y cargo-c"
# final mods for PS1
echo 'USER root'
echo "RUN echo \"PS1='id=\\\$(id -u)@${image}:\w\\$ '\" >> /etc/bash.bashrc"
echo 'USER 65534:65534'
echo "WORKDIR ${DOCKER_WORKDIR}" echo "WORKDIR ${DOCKER_WORKDIR}"
} >"${dockerfile}" } >"${dockerfile}"
# return 1
image_tag="$(set_distro_image_tag "${image}")" image_tag="$(set_distro_image_tag "${image}")"
docker buildx build \ docker buildx build \
--platform "${PLATFORM}" \ --platform "${PLATFORM}" \

View File

@@ -67,12 +67,12 @@ print_req_pkgs() {
"${common_linux_pkgs[@]}" pipx "${common_linux_pkgs[@]}" pipx
build-essential libssl-dev gobjc++ build-essential libssl-dev gobjc++
mawk libc6-dev mediainfo ninja-build mawk libc6-dev mediainfo ninja-build
mkvtoolnix libgtest-dev mkvtoolnix libgtest-dev lld
) )
# 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 lld
) )
# shellcheck disable=SC2034 # shellcheck disable=SC2034
local dnf_pkgs=( local dnf_pkgs=(
@@ -157,6 +157,7 @@ check_for_req_pkgs() {
echo_pass "packages from ${pkg_mgr} installed" echo_pass "packages from ${pkg_mgr} installed"
has_cmd pipx || echo_if_fail python3 -m pip install --user pipx || return 1 has_cmd pipx || echo_if_fail python3 -m pip install --user pipx || return 1
has_cmd pipx || echo_if_fail python3 -m pipx ensurepath && source ~/.bashrc || return 1
echo_if_fail pipx install virtualenv || return 1 echo_if_fail pipx install virtualenv || return 1
echo_if_fail pipx ensurepath || return 1 echo_if_fail pipx ensurepath || return 1
has_cmd meson || echo_if_fail pipx install meson || return 1 has_cmd meson || echo_if_fail pipx install meson || return 1