e.g. stands for "exempli gratia" in Latin which means "for example". The best way to make sure it makes sense when writing is to just expand it to "for example". In these cases where the text was "for e.g.", that leaves us with "for for example" which makes no sense. This commit fixes all 110 cases, mostly just just replacing the words with "for example", but also restructuring the text a bit more in a few cases, mostly by moving "e.g." to the beginning of a list in parentheses. Pull Request: https://projects.blender.org/blender/blender/pulls/139596
227 lines
7.2 KiB
Bash
227 lines
7.2 KiB
Bash
#!/usr/bin/env bash
|
|
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
# This script is part of the official build environment, see wiki page for details.
|
|
# https://developer.blender.org/docs/handbook/release_process/build/rocky_8/
|
|
|
|
set -e
|
|
|
|
if [ `id -u` -ne 0 ]; then
|
|
echo "This script must be run as root"
|
|
exit 1
|
|
fi
|
|
|
|
# Required by: config manager command below to enable powertools.
|
|
dnf -y install 'dnf-command(config-manager)'
|
|
|
|
# Packages `ninja-build` and `meson` are not available unless CBR or PowerTools repositories are enabled.
|
|
# See: https://wiki.rockylinux.org/rocky/repo/#notes-on-unlisted-repositories
|
|
dnf config-manager --set-enabled powertools
|
|
|
|
# Required by: epel-release has the patchelf and rubygem-asciidoctor packages
|
|
dnf -y install epel-release
|
|
|
|
# `yum-config-manager` does not come in the default minimal install,
|
|
# so make sure it is installed and available.
|
|
yum -y update
|
|
yum -y install yum-utils
|
|
|
|
# Install all the packages needed for a new tool-chain.
|
|
#
|
|
# NOTE: Keep this separate from the packages install, since otherwise
|
|
# older tool-chain will be installed.
|
|
yum -y update
|
|
yum -y install scl-utils
|
|
yum -y install scl-utils-build
|
|
|
|
# Currently this is defined by the VFX platform (CY2023), see: https://vfxplatform.com
|
|
yum -y install gcc-toolset-11
|
|
|
|
# Repository for CUDA (`nvcc`).
|
|
CUDA_ARCH=$(uname -i)
|
|
|
|
# For RHEL8 there is no aarch64 repo, instead use sbsa which works for device binaries.
|
|
# For RHEL9 there is an aarch64 repo, and this fallback will no longer be needed.
|
|
if [ "$CUDA_ARCH" = "aarch64" ]; then
|
|
CUDA_ARCH="sbsa"
|
|
fi
|
|
|
|
dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel8/$CUDA_ARCH/cuda-rhel8.repo
|
|
|
|
# Install packages needed for Blender's dependencies.
|
|
PACKAGES_FOR_LIBS=(
|
|
# Used to checkout Blender's code.
|
|
git
|
|
git-lfs
|
|
# Used to extract packages.
|
|
bzip2
|
|
# Used to extract packages.
|
|
tar
|
|
# Blender and some dependencies use `cmake`.
|
|
cmake3
|
|
# Apply patches from Blender's: `./build_files/build_environment/patches`
|
|
patch
|
|
# Use by `cmake` and `autoconf`.
|
|
make
|
|
|
|
# Required by: `external_nasm` which uses an `autoconf` build-system.
|
|
autoconf
|
|
automake
|
|
libtool
|
|
|
|
# Required by: `external_libsndfile` configure scripts.
|
|
autogen
|
|
|
|
# Used to set rpath on shared libraries
|
|
patchelf
|
|
|
|
# Builds generated by meson use Ninja for the actual build.
|
|
ninja-build
|
|
|
|
# Required by Blender build option: `WITH_GHOST_WAYLAND`.
|
|
mesa-libEGL-devel
|
|
# Required by: Blender & `external_opensubdiv` (probably others).
|
|
mesa-libGL-devel
|
|
mesa-libGLU-devel
|
|
|
|
# NOTE(@ideasman42): Currently flex's `autogen.sh` is required to run because the bundled
|
|
# configuration is looking for an older version of `aclocal` than the system provides.
|
|
# This is resolved by generating new configuration files which requires the `autopoint`
|
|
# command from `gettext-devel`, if the flex package is updated we could remove this.
|
|
# Required by: [`flex` running `autogen.sh` for `autopoint`].
|
|
gettext-devel
|
|
# NOTE(@ideasman42): It seems newer files generated by `autogen.sh` also require `makeinfo`
|
|
# and there isn't a flag to disable GNU "info".
|
|
# Required by: [`flex` as a build-time dependency for `makeinfo`].
|
|
texinfo
|
|
|
|
# NOTE(@ideasman42): `nvcc` will *not* be added to the `PATH`, must be done manually.
|
|
# Commands from:
|
|
# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#environment-setup
|
|
# Can be added to `~/.bash_profile`.
|
|
# `export LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}`
|
|
# `export PATH=/usr/local/cuda-12.5/bin${PATH:+:${PATH}}`
|
|
# Required by `external_openimagedenoise` (`nvcc` command)
|
|
cuda-toolkit
|
|
|
|
# Required by: `external_ispc`.
|
|
zlib-devel
|
|
# TODO: dependencies build without this, consider removal.
|
|
rubygem-asciidoctor
|
|
# TODO: dependencies build without this, consider removal.
|
|
wget
|
|
# Required by: `external_sqlite` as a build-time dependency (needed for the `tclsh` command).
|
|
tcl
|
|
# Required by: `external_aom`.
|
|
# TODO: Blender is already building `external_nasm` which is listed as an alternative to `yasm`.
|
|
# Why are both needed?
|
|
yasm
|
|
|
|
# NOTE(@ideasman42): while `python39` is available, the default Python version is 3.6.
|
|
# For example, this is used for the `python3-mako` package
|
|
# So use the "default" system Python since it means it's most compatible with other packages.
|
|
python3
|
|
# Required by: `external_mesa`.
|
|
python3-mako
|
|
|
|
# Required by: `external_igc`.
|
|
python3-pyyaml
|
|
|
|
# Required by: `external_mesa`.
|
|
expat-devel
|
|
|
|
# Required by: `external_mesa`.
|
|
libxshmfence
|
|
libxshmfence-devel
|
|
|
|
# Required by: `external_igc` & `external_osl` as a build-time dependency.
|
|
bison
|
|
# Required by: `external_osl` as a build-time dependency.
|
|
flex
|
|
|
|
# Required by: `external_ispc`.
|
|
ncurses-devel
|
|
# Required by: `external_ispc` (when building with CLANG).
|
|
libstdc++-static
|
|
|
|
# Required by: `external_ssl` (build dependencies).
|
|
perl-IPC-Cmd
|
|
perl-Pod-Html
|
|
|
|
# Required by: `external_wayland_weston`
|
|
cairo-devel
|
|
libdrm-devel
|
|
pixman-devel
|
|
libffi-devel
|
|
libinput-devel
|
|
libevdev-devel
|
|
mesa-libEGL-devel
|
|
systemd-devel # for `libudev` (not so obvious!).
|
|
# Required by: `weston --headless` (run-time requirement for off screen rendering).
|
|
mesa-dri-drivers
|
|
mesa-libEGL
|
|
mesa-libGL
|
|
)
|
|
|
|
# Additional packages needed for building Blender.
|
|
PACKAGES_FOR_BLENDER=(
|
|
# Required by Blender build option: `WITH_GHOST_WAYLAND`.
|
|
libxkbcommon-devel
|
|
|
|
# Required by Blender build option: `WITH_GHOST_X11`.
|
|
libX11-devel
|
|
libXcursor-devel
|
|
libXi-devel
|
|
libXinerama-devel
|
|
libXrandr-devel
|
|
libXt-devel
|
|
libXxf86vm-devel
|
|
)
|
|
|
|
yum -y install -y ${PACKAGES_FOR_LIBS[@]} ${PACKAGES_FOR_BLENDER[@]}
|
|
|
|
# Dependencies for pip (needed for `buildbot-worker`), uses Python3.6.
|
|
yum -y install python3 python3-pip python3-devel
|
|
|
|
# Dependencies for asound.
|
|
yum -y install -y \
|
|
alsa-lib-devel pulseaudio-libs-devel
|
|
|
|
# Required by Blender build option: `WITH_JACK`.
|
|
yum -y install jack-audio-connection-kit-devel
|
|
|
|
# AMD's ROCM
|
|
# Based on instructions from:
|
|
# https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/native-install/rhel.html
|
|
# NOTE: the following steps have intentionally been skipped as they aren't needed:
|
|
# - "Register kernel-mode driver".
|
|
# - "Install kernel driver".
|
|
|
|
# Register ROCm packages
|
|
sudo rpm --import https://repo.radeon.com/rocm/rocm.gpg.key
|
|
rm -f /etc/yum.repos.d/amdgpu-6.3.1.repo
|
|
rm -f /etc/yum.repos.d/rocm-6.3.1.repo
|
|
tee --append /etc/yum.repos.d/amdgpu-6.3.1.repo <<EOF
|
|
[amdgpu-6.3.1]
|
|
name=amdgpu-6.3.1
|
|
baseurl=https://repo.radeon.com/amdgpu/6.3.1/el/8.10/main/x86_64/
|
|
enabled=1
|
|
priority=50
|
|
gpgcheck=1
|
|
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
|
EOF
|
|
tee --append /etc/yum.repos.d/rocm-6.3.1.repo <<EOF
|
|
[ROCm-6.3.1]
|
|
name=ROCm-6.3.1
|
|
baseurl=https://repo.radeon.com/rocm/el8/6.3.1/main
|
|
enabled=1
|
|
gpgcheck=1
|
|
exclude=rock-dkms
|
|
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
|
EOF
|
|
yum -y update
|
|
sudo yum install -y hipcc6.3.1 hip-devel6.3.1 rocm-llvm6.3.1 rocm-core6.3.1 rocm-device-libs6.3.1
|
|
sudo update-alternatives --set rocm /opt/rocm-6.3.1
|