diff --git a/plugins/python-build/share/python-build/cinder-3.10-dev b/plugins/python-build/share/python-build/cinder-3.10-dev new file mode 100644 index 00000000..7d83cd65 --- /dev/null +++ b/plugins/python-build/share/python-build/cinder-3.10-dev @@ -0,0 +1,43 @@ +if [ "$(expr substr "$(uname -s)" 1 5)" != "Linux" ]; then + { + echo + colorize 1 "ERROR" + echo ": Cinder currently only supports Linux." + echo + return 1 + } >&2 +fi + +if [[ $(${CC:-gcc} -dumpversion 2>/dev/null) != 10 ]] && + (command -v "gcc-10" >/dev/null) && + (command -v "g++-10" >/dev/null); then + echo "python-build: setting the compiler to GCC 10" + export CC="gcc-10" + export CXX="g++-10" +fi + +if [[ $(awk -F. '{print $1}' <<< "$(${CC:-gcc} -dumpversion)") -lt 10 ]]; then + { + echo + colorize 1 "ERROR" + echo ": Cinder requires at least GCC 10." + echo + return 1 + } >&2 +fi + +require_distro Fedora 32 &> /dev/null || + { + echo + colorize 1 "WARNING" + echo ": Cinder officially only supports Facebook's Docker" + echo "images which are based on Fedora 32. It may fail to build" + echo "on a system with a different GCC and/or Glibc version." + echo + } >&2 + +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1n" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline +install_git "Cinder-3.10-dev" "https://github.com/facebookincubator/cinder" "cinder/3.10" standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/cinder-3.8-dev b/plugins/python-build/share/python-build/cinder-3.8-dev index 5a3c8a82..4d8a8a7a 100644 --- a/plugins/python-build/share/python-build/cinder-3.8-dev +++ b/plugins/python-build/share/python-build/cinder-3.8-dev @@ -1,28 +1,40 @@ -require_distro Fedora 32 &>/dev/null || \ -{ echo - colorize 1 "WARNING" - cat >&2 <&2 +fi -[[ $(${CC:-gcc} -dumpversion 2>/dev/null) == 10 ]] || \ -{ command -v "gcc-10" >/dev/null && \ - export CC="gcc-10" && \ - echo "python-build: setting the compiler to \`gcc-10'"; } || \ -{ - echo - colorize 1 WARNING - cat >&2 </dev/null) != 10 ]] && + (command -v "gcc-10" >/dev/null) && + (command -v "g++-10" >/dev/null); then + echo "python-build: setting the compiler to GCC 10" + export CC="gcc-10" + export CXX="g++-10" +fi + +if [[ $(awk -F. '{print $1}' <<< "$(${CC:-gcc} -dumpversion)") -lt 10 ]]; then + { + echo + colorize 1 "ERROR" + echo ": Cinder requires at least GCC 10." + echo + return 1 + } >&2 +fi + +require_distro Fedora 32 &> /dev/null || + { + echo + colorize 1 "WARNING" + echo ": Cinder officially only supports Facebook's Docker" + echo "images which are based on Fedora 32. It may fail to build" + echo "on a system with a different GCC and/or Glibc version." + echo + } >&2 prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 diff --git a/plugins/python-build/share/python-build/patches/cinder-3.10-dev/Cinder-3.10-dev/001-disable-werror.patch b/plugins/python-build/share/python-build/patches/cinder-3.10-dev/Cinder-3.10-dev/001-disable-werror.patch new file mode 100644 index 00000000..3014b812 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/cinder-3.10-dev/Cinder-3.10-dev/001-disable-werror.patch @@ -0,0 +1,30 @@ +diff --git a/configure b/configure +index 5c74f00a..8bb51f40 100755 +--- a/configure ++++ b/configure +@@ -7057,8 +7057,8 @@ $as_echo "$ac_cv_extra_warnings" >&6; } + + if test $ac_cv_extra_warnings = yes + then +- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror" +- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough" ++ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra" ++ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough" + fi + + # Python doesn't violate C99 aliasing rules, but older versions of +diff --git a/configure.ac b/configure.ac +index c06b992d..6dee6632 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1622,8 +1622,8 @@ yes) + + if test $ac_cv_extra_warnings = yes + then +- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror" +- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough" ++ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra" ++ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough" + fi + + # Python doesn't violate C99 aliasing rules, but older versions of diff --git a/plugins/python-build/share/python-build/patches/cinder-3.8-dev/Cinder-3.8-dev/001-disable-werror.patch b/plugins/python-build/share/python-build/patches/cinder-3.8-dev/Cinder-3.8-dev/001-disable-werror.patch new file mode 100644 index 00000000..bbcd9a15 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/cinder-3.8-dev/Cinder-3.8-dev/001-disable-werror.patch @@ -0,0 +1,30 @@ +diff --git a/configure b/configure +index 0df332f7..df8143cf 100755 +--- a/configure ++++ b/configure +@@ -6952,8 +6952,8 @@ $as_echo "$ac_cv_extra_warnings" >&6; } + + if test $ac_cv_extra_warnings = yes + then +- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror" +- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough" ++ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra" ++ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough" + fi + + # Python doesn't violate C99 aliasing rules, but older versions of +diff --git a/configure.ac b/configure.ac +index f6718e36..0a651e7d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1579,8 +1579,8 @@ yes) + + if test $ac_cv_extra_warnings = yes + then +- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror" +- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough" ++ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra" ++ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough" + fi + + # Python doesn't violate C99 aliasing rules, but older versions of