Skip to content

Commit 5e9f57a

Browse files
author
Beat Reichenbach
committed
docs: update Rocky Linux 8.7 docs
1 parent 2311adc commit 5e9f57a

File tree

2 files changed

+124
-41
lines changed

2 files changed

+124
-41
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Open RV is currently supported on the following operating systems:
3838
* [macOS Big Sur, Monterey and Ventura](docs/build_system/config_macos.md)
3939
* [Linux Centos 7](docs/build_system/config_linux_centos7.md)
4040

41-
Support for other operating systems is on a best effort basis.
41+
Support for other [operating systems](docs/build_system) is on a best effort basis.
4242

4343
## Building RV
4444

Lines changed: 123 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,152 @@
1-
# Building Open RV on Rocky 8
1+
# Building OpenRV on Rocky Linux 8.7
22

3-
## Summary
3+
## Manual Build
44

5-
1. [Install Basics](#install-basics)
6-
1. [Install tools and build dependencies](#install-tools-and-build-dependencies)
7-
1. [Install CMake](#install-cmake)
8-
1. [Install Qt5](#install-qt)
5+
1. [Install Dependencies](#install-dependencies)
6+
2. [Install Qt5](#install-qt5)
7+
3. [Build and Install OpenRV](#build-and-install-openrv)
98

10-
## Install Basics
9+
### Install Dependencies
1110

1211
Make sure we have some basic tools available on the workstation:
1312

14-
```bash
15-
sudo dnf install wget git
13+
```shell
14+
sudo dnf install wget git cmake
1615
```
1716

18-
## Install tools and build dependencies
19-
2017
Some of the build dependencies come from outside the main AppStream repo. So first we will enable those and then install our dependencies:
2118

22-
```bash
19+
```shell
2320
sudo dnf install epel-release
24-
sudo dnf config-manager --set-enabled crb devel
25-
sudo dnf install alsa-lib-devel autoconf automake avahi-compat-libdns_sd-devel bison bzip2-devel cmake-gui curl-devel flex gcc gcc-c++ libXcomposite libXi-devel libaio-devel libffi-devel nasm ncurses-devel nss libtool libxkbcommon libXcomposite libXdamage libXrandr libXtst libXcursor mesa-libOSMesa mesa-libOSMesa-devel meson ninja-build openssl-devel patch pulseaudio-libs pulseaudio-libs-glib2 ocl-icd ocl-icd-devel opencl-headers python3 python3-devel qt5-qtbase-devel readline-devel sqlite-devel tcl-devel tcsh tk-devel yasm zip zlib-devel
21+
sudo dnf config-manager --set-enabled powertools
22+
sudo dnf install alsa-lib-devel autoconf automake avahi-compat-libdns_sd-devel bison bzip2-devel cmake-gui curl-devel flex gcc gcc-c++ libXcomposite libXi-devel libaio-devel libffi-devel nasm ncurses-devel nss libtool libxkbcommon libXcomposite libXdamage libXrandr libXtst libXcursor mesa-libOSMesa mesa-libOSMesa-devel meson ninja-build openssl-devel patch pulseaudio-libs pulseaudio-libs-glib2 ocl-icd ocl-icd-devel opencl-headers python3 python3-devel readline-devel sqlite-devel tcl-devel tcsh tk-devel yasm zip zlib-devel
2623
```
2724

28-
You can disable the devel repo afterwards since dnf will warn about it:
29-
```bash
30-
sudo dnf config-manager --set-disabled devel
25+
You may or may not have libGLU on your system depending on your graphics driver setup. To know you can check if you have the lib /usr/lib64/libGLU.so.1. If it's there you can skip this step, there's nothing further to do in this section. If not, you can install the graphics drivers for your system. As as last resort, you can install a software (mesa) libGLU version, but you may not have ideal performance with this option. To do so:
26+
27+
```shell
28+
sudo dnf install mesa-libGLU mesa-libGLU-devel
3129
```
3230

33-
### GLU
31+
Ensure that your `python3` packages are installed and up to date:
32+
```shell
33+
dnf install -y python3-setuptools
34+
python3 -m pip install --upgrade pip setuptools wheel
35+
```
3436

35-
You may or may not have libGLU on your system depending on your graphics driver setup. To know you can check if you have the lib /usr/lib64/libGLU.so.1. If it's there you can skip this step, there's nothing further to do in this section. If not, you can install the graphics drivers for your system. As as last resort, you can install a software (mesa) libGLU version, but you may not have ideal performance with this option. To do so:
37+
Ensure that you have a symlink to `python3` at `/usr/bin/python`.
38+
```shell
39+
ln -sf /usr/bin/python3 /usr/bin/python
40+
```
3641

37-
```bash
38-
sudo dnf install mesa-libGLU mesa-libGLU-devel
42+
### Install Qt5
43+
44+
Download the last version of Qt 5.15.x that you can get using the online installer on the [Qt page](https://www.qt.io/download-open-source). Logs, Android, iOS and WebAssembly are not required to build OpenRV.
45+
46+
WARNING: If you fetch Qt from another source, make sure to build it with SSL support, that it contains everything required to build PySide2, and that the file structure is similar to the official package.
47+
48+
```shell
49+
./qt-unified-linux-x64-4.6.1-online.run --email "<email>" --password "<password>" --platform minimal --confirm-command --accept-licenses --accept-obligations --accept-messages install qt.qt5.5152.qtpdf qt.qt5.5152.qtpurchasing qt.qt5.5152.qtvirtualkeyboard qt.qt5.5152.qtquicktimeline qt.qt5.5152.qtlottie qt.qt5.5152.debug_info qt.qt5.5152.qtscript qt.qt5.5152.qtcharts qt.qt5.5152.qtwebengine qt.qt5.5152.qtwebglplugin qt.qt5.5152.qtnetworkauth qt.qt5.5152.qtwaylandcompositor qt.qt5.5152.qtdatavis3d qt.qt5.5152.logs qt.qt5.5152 qt.qt5.5152.src qt.qt5.5152.gcc_64 qt.qt5.5152.qtquick3d
3950
```
4051

41-
### Install the python requirements
52+
### Build and Install OpenRV
4253

43-
Some of the RV build scripts requires extra python packages. They can be installed using the requirements.txt at the root of the repository.
54+
Get the repository:
55+
```shell
56+
git clone --recursive https://github.com/AcademySoftwareFoundation/OpenRV.git
57+
```
4458

45-
```bash
59+
Some of the RV build scripts requires extra python packages.
60+
They can be installed using the requirements.txt at the root of the repository.
61+
```shell
4662
python3 -m pip install -r requirements.txt
4763
```
4864

49-
## Install CMake
50-
51-
You need CMake version 3.24+ to build RV. The dnf-installable version is not quite recent enough, you'll to build and install CMake from sources.
65+
Set the QT_HOME to the install location, build and install:
66+
```shell
67+
export QT_HOME=/opt/Qt/5.15.2/gcc_64
68+
source rvcmds.sh
69+
rvbootstrap
70+
rvinst
71+
```
5272

53-
```bash
54-
wget https://github.com/Kitware/CMake/releases/download/v3.24.0/cmake-3.24.0.tar.gz
55-
tar -zxvf cmake-3.24.0.tar.gz
56-
cd cmake-3.24.0
57-
./bootstrap --parallel=32 # 32 or whatever your machine allows
58-
make -j 32 # 32 or whatever your machine allows
59-
sudo make install
60-
61-
cmake --version # confirm the version of your newly installed version of CMake
62-
cmake version 3.24.0
73+
## Docker Build
74+
75+
OpenRV can also be built inside a Docker Container.
76+
77+
1. [Build the Image](#build-the-image)
78+
2. [Extract the Installation Files](#extract-the-installation-files)
79+
3. [Cleanup](#cleanup)
80+
81+
### Build the Image
82+
83+
Here's a `Dockerfile` that installs all dependencies, builds and installs OpenRV from source.
84+
> Note: You will need an email and password for Qt and you might have to update the url to the Qt5 online installer.
85+
86+
```dockerfile
87+
FROM rockylinux:8.7
88+
89+
# Install dependencies
90+
RUN dnf install -y epel-release
91+
RUN dnf config-manager --set-enabled powertools
92+
RUN dnf install -y alsa-lib-devel autoconf automake avahi-compat-libdns_sd-devel bison \
93+
bzip2-devel cmake-gui curl-devel flex gcc gcc-c++ libXcomposite libXi-devel \
94+
libaio-devel libffi-devel nasm ncurses-devel nss libtool libxkbcommon libXcomposite \
95+
libXdamage libXrandr libXtst libXcursor mesa-libOSMesa mesa-libOSMesa-devel meson \
96+
ninja-build openssl-devel patch pulseaudio-libs pulseaudio-libs-glib2 ocl-icd \
97+
ocl-icd-devel opencl-headers qt5-qtbase-devel readline-devel \
98+
sqlite-devel tcl-devel tcsh tk-devel yasm zip zlib-devel
99+
RUN dnf install -y mesa-libGLU mesa-libGLU-devel
100+
RUN dnf install -y cmake git wget
101+
102+
# Note: /usr/bin/python needs to exist for OpenRV to build correctly.
103+
RUN dnf install -y python3-setuptools && \
104+
python3 -m pip install --upgrade pip setuptools wheel && \
105+
ln -sf /usr/bin/python3 /usr/bin/python
106+
107+
# Install Qt5
108+
ARG QT_EMAIL
109+
ARG QT_PASSWORD
110+
RUN wget https://d13lb3tujbc8s0.cloudfront.net/onlineinstallers/qt-unified-linux-x64-4.6.1-online.run && \
111+
chmod a+x qt-unified-linux-x64-4.6.1-online.run && \
112+
./qt-unified-linux-x64-4.6.1-online.run \
113+
--email "$QT_EMAIL" --password "$QT_PASSWORD" --platform minimal \
114+
--confirm-command --accept-licenses --accept-obligations --accept-messages \
115+
install qt.qt5.5152.qtpdf qt.qt5.5152.qtpurchasing qt.qt5.5152.qtvirtualkeyboard \
116+
qt.qt5.5152.qtquicktimeline qt.qt5.5152.qtlottie qt.qt5.5152.debug_info \
117+
qt.qt5.5152.qtscript qt.qt5.5152.qtcharts qt.qt5.5152.qtwebengine \
118+
qt.qt5.5152.qtwebglplugin qt.qt5.5152.qtnetworkauth \
119+
qt.qt5.5152.qtwaylandcompositor qt.qt5.5152.qtdatavis3d qt.qt5.5152.logs \
120+
qt.qt5.5152 qt.qt5.5152.src qt.qt5.5152.gcc_64 qt.qt5.5152.qtquick3d
121+
122+
# Get OpenRV Git Repo
123+
RUN git clone --recursive https://github.com/AcademySoftwareFoundation/OpenRV.git
124+
RUN python3 -m pip install -r /OpenRV/requirements.txt
125+
126+
# Build and Install OpenRV
127+
WORKDIR /OpenRV
128+
# Note: Aliases only work in interactive shells. Use bash script with expand_aliases to
129+
# use commands set in rvcmds.sh
130+
RUN echo "#!/bin/bash" > install.sh && \
131+
echo "set -e" >> install.sh && \
132+
echo "shopt -s expand_aliases" >> install.sh && \
133+
echo "export QT_HOME=/opt/Qt/5.15.2/gcc_64" >> install.sh && \
134+
echo "source /OpenRV/rvcmds.sh" >> install.sh && \
135+
echo "rvbootstrap" >> install.sh && \
136+
echo "rvinst" >> install.sh
137+
RUN bash ./install.sh
63138
```
64139

65-
## Install Qt
140+
### Extract the Installation Files
66141

67-
Download the last version of Qt 5.15.x that you can get using the online installer on the [Qt page](https://www.qt.io/download-open-source). Logs, Android, iOS and WebAssembly are not required to build OpenRV.
142+
Next mount the image and copy the `_install` directory from it:
143+
```shell
144+
docker cp $(docker create --name temp_container openrv):/OpenRV/_install install && docker rm temp_container
145+
```
68146

69-
WARNING: If you fetch Qt from another source, make sure to build it with SSL support, that it contains everything required to build PySide2, and that the file structure is similar to the official package.
147+
### Cleanup
148+
149+
To clean up, simply remove the image:
150+
```bash
151+
docker image rm openrv
152+
```

0 commit comments

Comments
 (0)