From 9ab77d760cf309bb8b6ec17742c96ceae4de8965 Mon Sep 17 00:00:00 2001 From: skullydazed Date: Mon, 6 May 2019 10:56:34 -0700 Subject: [PATCH] Make python a required build dependency (#5784) * Make python a required build dependency * Add missing color * fixup sabayon linux per @BlitzKraft --- Makefile | 2 ++ changelog.md | 1 + message.mk | 4 ++++ util/freebsd_install.sh | 3 ++- util/linux_install.sh | 9 ++++++++- util/macos_install.sh | 2 +- util/msys2_install.sh | 2 +- 7 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index bf3abbe528..a6c3ee35b7 100644 --- a/Makefile +++ b/Makefile @@ -534,6 +534,8 @@ endef %: # Check if we have the CMP tool installed cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi; + # Ensure that python3 is installed. This check can be removed after python is used in more places. + if ! python3 --version 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; fi # Check if the submodules are dirty, and display a warning if they are ifndef SKIP_GIT if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --depth 1 --init lib/chibios; fi diff --git a/changelog.md b/changelog.md index cdebe64f43..c550b5f3b6 100644 --- a/changelog.md +++ b/changelog.md @@ -16,3 +16,4 @@ 05-05-2019 - New keycode macro (XP) for shifted character pairs using UNICODEMAP, and bugfixes/improvements 05-05-2019 - Add `LINK_TIME_OPTIMIZATION_ENABLE` to enable LTO and disable problematic features that cause LTO to fail 05-05-2019 - Fix issue with Space Cadet +05-06-2019 - Add Python dependency to build scripts diff --git a/message.mk b/message.mk index 71f37be0b5..734de86457 100644 --- a/message.mk +++ b/message.mk @@ -81,3 +81,7 @@ MSG_FILE_TOO_BIG = $(ERROR_COLOR)The firmware is too large!$(NO_COLOR) $(CURRENT MSG_FILE_TOO_SMALL = The firmware is too small! $(CURRENT_SIZE)/$(MAX_SIZE)\n MSG_FILE_JUST_RIGHT = The firmware size is fine - $(CURRENT_SIZE)/$(MAX_SIZE) ($(FREE_SIZE) bytes free)\n MSG_FILE_NEAR_LIMIT = The firmware size is approaching the maximum - $(CURRENT_SIZE)/$(MAX_SIZE) ($(FREE_SIZE) bytes free)\n +MSG_PYTHON_MISSING = $(WARN_COLOR)WARNING:$(NO_COLOR)\n \ + Python 3 is not installed. It will be required by a future version\n\ + of qmk_firmware.\n\n\ + Please run $(BOLD)util/qmk_install.sh$(NO_COLOR) to install all the dependencies QMK requires.\n\n diff --git a/util/freebsd_install.sh b/util/freebsd_install.sh index 25ea80a7fc..c8696e8cc7 100755 --- a/util/freebsd_install.sh +++ b/util/freebsd_install.sh @@ -15,4 +15,5 @@ pkg install -y \ arm-none-eabi-gcc \ arm-none-eabi-binutils \ arm-none-eabi-newlib \ - diffutils + diffutils \ + python3 diff --git a/util/linux_install.sh b/util/linux_install.sh index d6e6b86cdc..53f50d7f18 100755 --- a/util/linux_install.sh +++ b/util/linux_install.sh @@ -25,6 +25,7 @@ if grep ID /etc/os-release | grep -qE "fedora"; then kernel-headers \ make \ perl \ + python3 \ unzip \ wget \ zip @@ -47,6 +48,7 @@ elif grep ID /etc/os-release | grep -qE 'debian|ubuntu'; then gcc-avr \ git \ libnewlib-arm-none-eabi \ + python3 \ unzip \ wget \ zip @@ -66,6 +68,7 @@ elif grep ID /etc/os-release | grep -q 'arch\|manjaro'; then diffutils \ gcc \ git \ + python \ unzip \ wget \ zip @@ -87,6 +90,7 @@ elif grep ID /etc/os-release | grep -q gentoo; then app-arch/zip \ app-mobilephone/dfu-util \ dev-embedded/avrdude \ + dev-lang/python:3.5 \ net-misc/wget \ sys-devel/gcc \ sys-devel/crossdev @@ -102,6 +106,7 @@ elif grep ID /etc/os-release | grep -q sabayon; then app-arch/zip \ app-mobilephone/dfu-util \ dev-embedded/avrdude \ + dev-lang/python \ net-misc/wget \ sys-devel/gcc \ sys-devel/crossdev @@ -125,6 +130,7 @@ elif grep ID /etc/os-release | grep -qE "opensuse|tumbleweed"; then dfu-tool \ dfu-programmer \ gcc \ + python3 \ unzip \ wget \ zip @@ -143,7 +149,8 @@ elif grep ID /etc/os-release | grep -q slackware; then dfu-util \ arm-binutils \ arm-gcc \ - newlib + newlib \ + python3 echo "Done!" else echo "Quitting..." diff --git a/util/macos_install.sh b/util/macos_install.sh index d2629a8cb4..93f3ed0b96 100755 --- a/util/macos_install.sh +++ b/util/macos_install.sh @@ -22,5 +22,5 @@ fi brew tap osx-cross/avr brew tap PX4/homebrew-px4 brew update -brew install avr-gcc@7 gcc-arm-none-eabi dfu-programmer avrdude dfu-util +brew install avr-gcc@7 gcc-arm-none-eabi dfu-programmer avrdude dfu-util python3 brew link --force avr-gcc@7 diff --git a/util/msys2_install.sh b/util/msys2_install.sh index fcb4882494..bcb628ab21 100755 --- a/util/msys2_install.sh +++ b/util/msys2_install.sh @@ -7,7 +7,7 @@ armtools=gcc-arm-none-eabi installflip=false echo "Installing dependencies needed for the installation (quazip)" -pacman --needed -S msys/unzip msys/p7zip base-devel msys/git mingw-w64-x86_64-toolchain +pacman --needed -S base-devel mingw-w64-x86_64-toolchain msys/git msys/p7zip msys/python3 msys/unzip source "$dir/win_shared_install.sh"