Skip to content

Commit d2b206e

Browse files
committed
Use new CentOS 7 Docker container for Linux builds
... in order to add SHA-256 payload digests to the official VirtualGL RPMS, for FIPS compliance. - Update README.md to reflect that the official Linux binaries now require GLIBC 2.17+ across the board. - Update rpmsign to use the gpg --passphrase option, which eliminates the need to use expect. - Remove the detailed Linux build environment description from README.md. At this point, the Docker recipe is too complex to perfectly describe in plain English, and since the recipe is open source, such a description is unnecessary.
1 parent 18f9985 commit d2b206e

File tree

4 files changed

+19
-73
lines changed

4 files changed

+19
-73
lines changed

README.md

Lines changed: 5 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ DRC's VirtualGL Build Scripts
22
=============================
33

44
These scripts are used to build the "official" VirtualGL binaries, which work
5-
on any Linux platform with GLIBC 2.12 and later, as well as Windows XP and
5+
on any Linux platform with GLIBC 2.17 and later, as well as Windows XP and
66
later and OS X/macOS 10.7 and later.
77

88
See **BUILDING.md** in the VirtualGL source for basic build requirements.
@@ -12,57 +12,10 @@ Additional build requirements for these scripts are listed below.
1212
Build Environment: Linux
1313
------------------------
1414

15-
Recommended distro: Red Hat or CentOS Enterprise Linux 6 x86-64
16-
17-
Install all software necessary to build an i386 and an x86-64 version of
18-
VirtualGL (both i386 and x86-64 libjpeg-turbo SDKs should be installed in their
19-
default locations. Refer to **BUILDING.md** for more information.)
20-
21-
Install a compatible x86-64 Linux hosted/AArch64 Linux target toolchain
22-
(available at
23-
<https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads>)
24-
under **/opt/gcc.arm64**. Note that 9.2-2019.12 is the latest toolchain that
25-
will run on RHEL 6.
26-
27-
Using `rpm2cpio`, install the following packages from Red Hat or CentOS
28-
Enterprise Linux 7 AArch64 under **/opt/arm64**:
29-
30-
- glibc
31-
- glibc-devel
32-
- libglvnd
33-
- libglvnd-devel
34-
- libglvnd-egl
35-
- libglvnd-glx
36-
- libglvnd-opengl
37-
- libstdc++
38-
- libX11
39-
- libX11-devel
40-
- libXau
41-
- libxcb
42-
- libxcb-devel
43-
- libXext
44-
- libXext-devel
45-
- libXi
46-
- libXi-devel
47-
- libXtst
48-
- libXtst-devel
49-
- libXv
50-
- libXv-devel
51-
- mesa-khr-devel
52-
- mesa-libEGL
53-
- mesa-libEGL-devel
54-
- mesa-libGL
55-
- mesa-libGL-devel
56-
- mesa-libGLU
57-
- mesa-libGLU-devel
58-
- xcb-util-keysyms
59-
- xcb-util-keysyms-devel
60-
- xorg-x11-proto-devel
61-
62-
Using `rpm2cpio`, install the AArch64 libjpeg-turbo RPM under **/opt/arm64**.
63-
64-
For convenience, a Docker recipe is available at
65-
<https://github.com/VirtualGL/docker>.
15+
Recommended distro: Red Hat or CentOS Enterprise Linux 7 x86-64
16+
17+
Complete Linux build environment requirements are best understood by examining
18+
the official Docker recipe at <https://github.com/VirtualGL/docker>.
6619

6720

6821
Build Environment: OS X/macOS

buildvgl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,7 @@ if [ $NOSRC = 0 ]; then
239239
popd
240240
mv $DIR/VirtualGL-$VERSION.src.rpm $OUTDIR/files/
241241
if [ -f $SCRIPTDIR/gpgsign ]; then
242-
. $SCRIPTDIR/gpgsign
243-
expect $SCRIPTDIR/rpmsign "$GPG_KEY_PASS" "$GPG_KEY_NAME" $OUTDIR/files/VirtualGL-$VERSION.src.rpm
242+
$SCRIPTDIR/rpmsign $OUTDIR/files/VirtualGL-$VERSION.src.rpm
244243
rpm --checksig -v $OUTDIR/files/VirtualGL-$VERSION.src.rpm
245244
fi
246245
fi

buildvgl.linux

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,9 @@ mv rpmbuild/RPMS/x86_64/VirtualGL-[0-9]*.x86_64.rpm $OUTDIR/files/VirtualGL-$VER
4040
mv rpmbuild/RPMS/x86_64/VirtualGL-debuginfo-[0-9]*.x86_64.rpm $OUTDIR/files/VirtualGL-debuginfo-$VERSION.x86_64.rpm
4141

4242
if [ -f $SCRIPTDIR/gpgsign ]; then
43-
. $SCRIPTDIR/gpgsign
44-
expect $SCRIPTDIR/rpmsign "$GPG_KEY_PASS" "$GPG_KEY_NAME" $OUTDIR/files/VirtualGL-$VERSION.x86_64.rpm
43+
$SCRIPTDIR/rpmsign $OUTDIR/files/VirtualGL-$VERSION.x86_64.rpm
4544
rpm --checksig -v $OUTDIR/files/VirtualGL-$VERSION.x86_64.rpm
46-
expect $SCRIPTDIR/rpmsign "$GPG_KEY_PASS" "$GPG_KEY_NAME" $OUTDIR/files/VirtualGL-debuginfo-$VERSION.x86_64.rpm
45+
$SCRIPTDIR/rpmsign $OUTDIR/files/VirtualGL-debuginfo-$VERSION.x86_64.rpm
4746
rpm --checksig -v $OUTDIR/files/VirtualGL-debuginfo-$VERSION.x86_64.rpm
4847
fi
4948

@@ -57,9 +56,9 @@ mv rpmbuild/RPMS/i386/VirtualGL-[0-9]*.i386.rpm $OUTDIR/files/VirtualGL-$VERSION
5756
mv rpmbuild/RPMS/i386/VirtualGL-debuginfo-[0-9]*.i386.rpm $OUTDIR/files/VirtualGL-debuginfo-$VERSION.i386.rpm
5857

5958
if [ -f $SCRIPTDIR/gpgsign ]; then
60-
expect $SCRIPTDIR/rpmsign "$GPG_KEY_PASS" "$GPG_KEY_NAME" $OUTDIR/files/VirtualGL-$VERSION.i386.rpm
59+
$SCRIPTDIR/rpmsign $OUTDIR/files/VirtualGL-$VERSION.i386.rpm
6160
rpm --checksig -v $OUTDIR/files/VirtualGL-$VERSION.i386.rpm
62-
expect $SCRIPTDIR/rpmsign "$GPG_KEY_PASS" "$GPG_KEY_NAME" $OUTDIR/files/VirtualGL-debuginfo-$VERSION.i386.rpm
61+
$SCRIPTDIR/rpmsign $OUTDIR/files/VirtualGL-debuginfo-$VERSION.i386.rpm
6362
rpm --checksig -v $OUTDIR/files/VirtualGL-debuginfo-$VERSION.i386.rpm
6463
fi
6564

@@ -79,6 +78,7 @@ make -j$NUMCPUS --load-average=$NUMCPUS
7978
make deb
8079
mv virtualgl_[0-9]*_amd64.deb $OUTDIR/files/
8180
if [ -f $SCRIPTDIR/gpgsign ]; then
81+
. $SCRIPTDIR/gpgsign
8282
expect $SCRIPTDIR/debsign "$GPG_KEY_PASS" "$GPG_KEY_ID" $OUTDIR/files/virtualgl_[0-9]*_amd64.deb
8383
fi
8484
popd
@@ -105,7 +105,7 @@ STRIP=/opt/gcc.arm64/bin/aarch64-none-linux-gnu-strip make rpm
105105
VERSION=`rpm -q -p VirtualGL-[0-9]*.aarch64.rpm | cut -f2 -d-`
106106
mv VirtualGL-[0-9]*.aarch64.rpm $OUTDIR/files/VirtualGL-$VERSION.aarch64.rpm
107107
if [ -f $SCRIPTDIR/gpgsign ]; then
108-
expect $SCRIPTDIR/rpmsign "$GPG_KEY_PASS" "$GPG_KEY_NAME" $OUTDIR/files/VirtualGL-$VERSION.aarch64.rpm
108+
$SCRIPTDIR/rpmsign $OUTDIR/files/VirtualGL-$VERSION.aarch64.rpm
109109
rpm --checksig -v $OUTDIR/files/VirtualGL-$VERSION.aarch64.rpm
110110
fi
111111
make deb

rpmsign

100644100755
Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
1-
#!/usr/bin/expect -f
1+
set -u
2+
set -e
23

3-
set password [lindex $argv 0]
4-
set key [lindex $argv 1]
5-
set files [lrange $argv 2 2 ]
4+
SCRIPTDIR=`dirname $0`
65

7-
spawn rpm --define "%_gpg_name $key" \
8-
--define "%__gpg_sign_cmd %{__gpg} gpg --digest-algo sha256 --batch --no-verbose --no-armor --passphrase-fd 3 --no-secmem-warning -u \"%{_gpg_name}\" -sbo %{__signature_filename} %{__plaintext_filename}" \
9-
--addsign $files
10-
expect "Enter pass phrase:"
11-
send -- "$password\r"
6+
. $SCRIPTDIR/gpgsign
127

13-
expect {
14-
"Pass phrase check failed" { exit 1 }
15-
eof
16-
}
8+
rpm --define "%_gpg_name $GPG_KEY_NAME" \
9+
--define "%__gpg_sign_cmd %{__gpg} gpg --digest-algo sha256 --batch --no-verbose --no-armor --passphrase $GPG_KEY_PASS --no-secmem-warning -u \"%{_gpg_name}\" -sbo %{__signature_filename} %{__plaintext_filename}" \
10+
--addsign ${1+"$@"}

0 commit comments

Comments
 (0)