feat: Check whether GCC is installed in initenv.sh

- Before proceeding with installation of Python dependencies, check
  whether the 'gcc' command is available by running it with the
  --version argument.  If it is not available, print a helpful message
  and exit.
- For the current set of Python dependencies, without GCC, the build
  process fails when building the crypt-r package.  According to the
  error message, on my system the exact command it tries to run is
  'x86_64-linux-gnu-gcc', but rather than depend on this variant
  specifically, the script checks for the generic 'gcc' command, so as
  to avoid coupling the check to an architecture or operating system.
  Similar problems arise if we attempt to check for packages by name;
  the compiler binary is provided by 'gcc-11', but the symlinks that
  provide the unversioned commands (as used by the Python build) come
  from a package named 'gcc'.  Trying to be too precise in what we
  check for could lead to unnecessary failures in some environments,
  or become a maintenance challenge in the future.  For that reason,
  this change simply attempts to run 'gcc' and uses that as a
  probably-sufficient proxy for having what the Python package install
  will need.
This commit is contained in:
cliffmccarthy
2025-08-08 08:52:19 -05:00
committed by missytake
parent 1e05974970
commit 3ce350de9e
2 changed files with 5 additions and 2 deletions

View File

@@ -2,6 +2,9 @@
## untagged ## untagged
- Check whether GCC is installed in initenv.sh
([#608](https://github.com/chatmail/relay/pull/608))
- Expire push notification tokens after 90 days - Expire push notification tokens after 90 days
([#583](https://github.com/chatmail/relay/pull/583)) ([#583](https://github.com/chatmail/relay/pull/583))

View File

@@ -9,9 +9,9 @@ if command -v lsb_release 2>&1 >/dev/null; then
echo "You need to install python3-dev for installing the other dependencies." echo "You need to install python3-dev for installing the other dependencies."
exit 1 exit 1
fi fi
if ! dpkg -l | grep build-essential 2>&1 >/dev/null if ! gcc --version 2>&1 >/dev/null
then then
echo "You need to install build-essential for building Python dependencies." echo "You need to install gcc for building Python dependencies."
exit 1 exit 1
fi fi
;; ;;