diff options
author | Gerald Combs <gerald@wireshark.org> | 2024-01-25 13:29:16 -0800 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2024-01-25 22:24:04 +0000 |
commit | d1301fecc1f70c4720b58a81d088bc47e7e9d43b (patch) | |
tree | 678182b142ed3311d6b5f4e85aa6239e7d85d6b0 /tools | |
parent | 4571d9f1949a36a575934657ef9ff9a669f35f47 (diff) |
macos-setup: Use `set -e`
Use `set -e` and remove a bunch of no-longer-needed `|| exit 1`s. Make
sure we pass `--fail-with-body` to curl, and that we have a version of
curl that supports that option. Fix other issues that `set -e` turned
up.
[skip ci]
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/macos-setup.sh | 628 |
1 files changed, 319 insertions, 309 deletions
diff --git a/tools/macos-setup.sh b/tools/macos-setup.sh index e4ed43cb4c..78c7d2127f 100755 --- a/tools/macos-setup.sh +++ b/tools/macos-setup.sh @@ -10,6 +10,8 @@ # # SPDX-License-Identifier: GPL-2.0-or-later +set -e + shopt -s extglob # @@ -43,9 +45,10 @@ fi # # We use curl, but older versions of curl in older macOS releases can't -# handle some sites - including the xz site. +# handle some sites - including the xz site. We also use the --fail-with-body +# flag, which was added in curl 7.76.0. # -# If the version of curl in the system is older than 7.54.0, download +# If the version of curl in the system is older than 7.76.0, download # curl and install it. # current_curl_version=$( curl --version | sed -n 's/curl \([0-9.]*\) .*/\1/p' ) @@ -54,7 +57,7 @@ current_curl_minor_version="$(expr "$current_curl_version" : '[0-9][0-9]*\.\([0- if [[ $current_curl_major_version -lt 7 || ($current_curl_major_version -eq 7 && $current_curl_minor_version -lt 54) ]]; then - CURL_VERSION=${CURL_VERSION-7.60.0} + CURL_VERSION=${CURL_VERSION-7.88.1} fi # @@ -212,9 +215,15 @@ ZLIB_VERSION=1.3 # # Asciidoctor is required to build the documentation. # +# As the Asciidoctor Homebrew formula shows, managing all of the various +# dependencies can become quite hairy: +# https://github.com/Homebrew/homebrew-core/blob/master/Formula/a/asciidoctor.rb +# Maybe we should install a JRE and use AsciidoctorJ instead? ASCIIDOCTOR_VERSION=${ASCIIDOCTOR_VERSION-2.0.16} ASCIIDOCTORPDF_VERSION=${ASCIIDOCTORPDF_VERSION-1.6.1} +# css_parser 1.13 and later require Ruby 2.7 +CSS_PARSER_VERSION=${CSS_PARSER_VERSION-1.12.0} # # GNU autotools. They're not supplied with the macOS versions we # support, and we currently use them for minizip. @@ -226,13 +235,13 @@ LIBTOOL_VERSION=2.4.6 install_curl() { if [ "$CURL_VERSION" -a ! -f curl-$CURL_VERSION-done ] ; then echo "Downloading, building, and installing curl:" - [ -f curl-$CURL_VERSION.tar.bz2 ] || curl -L -O https://curl.haxx.se/download/curl-$CURL_VERSION.tar.bz2 || exit 1 + [ -f curl-$CURL_VERSION.tar.bz2 ] || curl --fail --location --remote-name https://curl.haxx.se/download/curl-$CURL_VERSION.tar.bz2 $no_build && echo "Skipping installation" && return - bzcat curl-$CURL_VERSION.tar.bz2 | tar xf - || exit 1 + bzcat curl-$CURL_VERSION.tar.bz2 | tar xf - cd curl-$CURL_VERSION - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch curl-$CURL_VERSION-done fi @@ -242,8 +251,8 @@ uninstall_curl() { if [ -n "$installed_curl_version" ] ; then echo "Uninstalling curl:" cd curl-$installed_curl_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm curl-$installed_curl_version-done @@ -262,9 +271,9 @@ uninstall_curl() { install_xz() { if [ "$XZ_VERSION" -a ! -f xz-$XZ_VERSION-done ] ; then echo "Downloading, building, and installing xz:" - [ -f xz-$XZ_VERSION.tar.bz2 ] || curl -L -O https://tukaani.org/xz/xz-$XZ_VERSION.tar.bz2 || exit 1 + [ -f xz-$XZ_VERSION.tar.bz2 ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://tukaani.org/xz/xz-$XZ_VERSION.tar.bz2 $no_build && echo "Skipping installation" && return - bzcat xz-$XZ_VERSION.tar.bz2 | tar xf - || exit 1 + bzcat xz-$XZ_VERSION.tar.bz2 | tar xf - cd xz-$XZ_VERSION # # This builds and installs liblzma, which libxml2 uses, and @@ -272,9 +281,9 @@ install_xz() { # all the minimum-deployment-version and SDK stuff. # CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch xz-$XZ_VERSION-done fi @@ -284,8 +293,8 @@ uninstall_xz() { if [ -n "$installed_xz_version" ] ; then echo "Uninstalling xz:" cd xz-$installed_xz_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm xz-$installed_xz_version-done @@ -304,13 +313,13 @@ uninstall_xz() { install_lzip() { if [ "$LZIP_VERSION" -a ! -f lzip-$LZIP_VERSION-done ] ; then echo "Downloading, building, and installing lzip:" - [ -f lzip-$LZIP_VERSION.tar.gz ] || curl -L -O https://download.savannah.gnu.org/releases/lzip/lzip-$LZIP_VERSION.tar.gz || exit 1 + [ -f lzip-$LZIP_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://download.savannah.gnu.org/releases/lzip/lzip-$LZIP_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat lzip-$LZIP_VERSION.tar.gz | tar xf - || exit 1 + gzcat lzip-$LZIP_VERSION.tar.gz | tar xf - cd lzip-$LZIP_VERSION - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch lzip-$LZIP_VERSION-done fi @@ -320,8 +329,8 @@ uninstall_lzip() { if [ -n "$installed_lzip_version" ] ; then echo "Uninstalling lzip:" cd lzip-$installed_lzip_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm lzip-$installed_lzip_version-done @@ -341,8 +350,8 @@ uninstall_pcre() { if [ -n "$installed_pcre_version" ] ; then echo "Uninstalling leftover pcre:" cd pcre-$installed_pcre_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm pcre-$installed_pcre_version-done @@ -361,17 +370,17 @@ uninstall_pcre() { install_pcre2() { if [ "$PCRE2_VERSION" -a ! -f "pcre2-$PCRE2_VERSION-done" ] ; then echo "Downloading, building, and installing pcre2:" - [ -f "pcre2-$PCRE2_VERSION.tar.bz2" ] || curl -L -O "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-$PCRE2_VERSION/pcre2-10.39.tar.bz2" || exit 1 + [ -f "pcre2-$PCRE2_VERSION.tar.bz2" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-$PCRE2_VERSION/pcre2-10.39.tar.bz2" $no_build && echo "Skipping installation" && return - bzcat "pcre2-$PCRE2_VERSION.tar.bz2" | tar xf - || exit 1 + bzcat "pcre2-$PCRE2_VERSION.tar.bz2" | tar xf - cd "pcre2-$PCRE2_VERSION" mkdir build_dir cd build_dir # https://github.com/Homebrew/homebrew-core/blob/master/Formula/pcre2.rb # https://github.com/microsoft/vcpkg/blob/master/ports/pcre2/portfile.cmake - "${DO_CMAKE[@]}" -DBUILD_STATIC_LIBS=OFF -DBUILD_SHARED_LIBS=ON -DPCRE2_SUPPORT_JIT=ON -DPCRE2_SUPPORT_UNICODE=ON .. || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + "${DO_CMAKE[@]}" -DBUILD_STATIC_LIBS=OFF -DBUILD_SHARED_LIBS=ON -DPCRE2_SUPPORT_JIT=ON -DPCRE2_SUPPORT_UNICODE=ON .. + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd ../.. touch "pcre2-$PCRE2_VERSION-done" fi @@ -399,13 +408,13 @@ uninstall_pcre2() { install_autoconf() { if [ "$AUTOCONF_VERSION" -a ! -f autoconf-$AUTOCONF_VERSION-done ] ; then echo "Downloading, building and installing GNU autoconf..." - [ -f autoconf-$AUTOCONF_VERSION.tar.xz ] || curl -L -O ftp://ftp.gnu.org/gnu/autoconf/autoconf-$AUTOCONF_VERSION.tar.xz || exit 1 + [ -f autoconf-$AUTOCONF_VERSION.tar.xz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://ftp.gnu.org/gnu/autoconf/autoconf-$AUTOCONF_VERSION.tar.xz $no_build && echo "Skipping installation" && return - xzcat autoconf-$AUTOCONF_VERSION.tar.xz | tar xf - || exit 1 + xzcat autoconf-$AUTOCONF_VERSION.tar.xz | tar xf - cd autoconf-$AUTOCONF_VERSION - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch autoconf-$AUTOCONF_VERSION-done fi @@ -421,8 +430,8 @@ uninstall_autoconf() { echo "Uninstalling GNU autoconf:" cd autoconf-$installed_autoconf_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm autoconf-$installed_autoconf_version-done @@ -441,13 +450,13 @@ uninstall_autoconf() { install_automake() { if [ "$AUTOMAKE_VERSION" -a ! -f automake-$AUTOMAKE_VERSION-done ] ; then echo "Downloading, building and installing GNU automake..." - [ -f automake-$AUTOMAKE_VERSION.tar.xz ] || curl -L -O ftp://ftp.gnu.org/gnu/automake/automake-$AUTOMAKE_VERSION.tar.xz || exit 1 + [ -f automake-$AUTOMAKE_VERSION.tar.xz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://ftp.gnu.org/gnu/automake/automake-$AUTOMAKE_VERSION.tar.xz $no_build && echo "Skipping installation" && return - xzcat automake-$AUTOMAKE_VERSION.tar.xz | tar xf - || exit 1 + xzcat automake-$AUTOMAKE_VERSION.tar.xz | tar xf - cd automake-$AUTOMAKE_VERSION - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch automake-$AUTOMAKE_VERSION-done fi @@ -462,8 +471,8 @@ uninstall_automake() { echo "Uninstalling GNU automake:" cd automake-$installed_automake_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm automake-$installed_automake_version-done @@ -482,13 +491,13 @@ uninstall_automake() { install_libtool() { if [ "$LIBTOOL_VERSION" -a ! -f libtool-$LIBTOOL_VERSION-done ] ; then echo "Downloading, building and installing GNU libtool..." - [ -f libtool-$LIBTOOL_VERSION.tar.xz ] || curl -L -O ftp://ftp.gnu.org/gnu/libtool/libtool-$LIBTOOL_VERSION.tar.xz || exit 1 + [ -f libtool-$LIBTOOL_VERSION.tar.xz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://ftp.gnu.org/gnu/libtool/libtool-$LIBTOOL_VERSION.tar.xz $no_build && echo "Skipping installation" && return - xzcat libtool-$LIBTOOL_VERSION.tar.xz | tar xf - || exit 1 + xzcat libtool-$LIBTOOL_VERSION.tar.xz | tar xf - cd libtool-$LIBTOOL_VERSION - ./configure "${CONFIGURE_OPTS[@]}" --program-prefix=g || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" --program-prefix=g + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch libtool-$LIBTOOL_VERSION-done fi @@ -500,8 +509,8 @@ uninstall_libtool() { cd libtool-$installed_libtool_version $DO_MV "$installation_prefix/bin/glibtool" "$installation_prefix/bin/libtool" $DO_MV "$installation_prefix/glibtoolize" "$installation_prefix/bin/libtoolize" - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm libtool-$installed_libtool_version-done @@ -524,7 +533,7 @@ install_ninja() { # Download the zipball, unpack it, and move the binary to # $installation_prefix/bin. # - [ -f ninja-mac-v$NINJA_VERSION.zip ] || curl -L -o ninja-mac-v$NINJA_VERSION.zip https://github.com/ninja-build/ninja/releases/download/v$NINJA_VERSION/ninja-mac.zip || exit 1 + [ -f ninja-mac-v$NINJA_VERSION.zip ] || curl "${CURL_LOCAL_NAME_OPTS[@]}" ninja-mac-v$NINJA_VERSION.zip https://github.com/ninja-build/ninja/releases/download/v$NINJA_VERSION/ninja-mac.zip $no_build && echo "Skipping installation" && return unzip ninja-mac-v$NINJA_VERSION.zip sudo mv ninja "$installation_prefix/bin" @@ -578,6 +587,7 @@ install_asciidoctorpdf() { ## ttfunk, pdf-core, prawn, prawn-table, Ascii85, ruby-rc4, hashery, afm, pdf-reader, prawn-templates, public_suffix, addressable, css_parser, prawn-svg, prawn-icon, safe_yaml, thread_safe, polyglot, treetop, asciidoctor-pdf echo "Downloading and installing Asciidoctor-pdf:" $no_build && echo "Skipping installation" && return + sudo gem install -V css_parser --version "=${CSS_PARSER_VERSION}" sudo gem install -V asciidoctor-pdf --version "=${ASCIIDOCTORPDF_VERSION}" touch asciidoctorpdf-${ASCIIDOCTORPDF_VERSION}-done fi @@ -641,10 +651,10 @@ install_cmake() { else type="macos10.0-universal" fi - [ -f cmake-$CMAKE_VERSION-$type.dmg ] || curl -L -O https://cmake.org/files/v$CMAKE_MAJOR_MINOR_VERSION/cmake-$CMAKE_VERSION-$type.dmg || exit 1 + [ -f cmake-$CMAKE_VERSION-$type.dmg ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://cmake.org/files/v$CMAKE_MAJOR_MINOR_VERSION/cmake-$CMAKE_VERSION-$type.dmg $no_build && echo "Skipping installation" && return - sudo hdiutil attach cmake-$CMAKE_VERSION-$type.dmg || exit 1 - sudo ditto /Volumes/cmake-$CMAKE_VERSION-$type/CMake.app /Applications/CMake.app || exit 1 + sudo hdiutil attach cmake-$CMAKE_VERSION-$type.dmg + sudo ditto /Volumes/cmake-$CMAKE_VERSION-$type/CMake.app /Applications/CMake.app # # Plant the appropriate symbolic links in $installation_prefix/bin. @@ -757,9 +767,9 @@ uninstall_pytest() { install_gettext() { if [ ! -f gettext-$GETTEXT_VERSION-done ] ; then echo "Downloading, building, and installing GNU gettext:" - [ -f gettext-$GETTEXT_VERSION.tar.gz ] || curl -L -O https://ftp.gnu.org/pub/gnu/gettext/gettext-$GETTEXT_VERSION.tar.gz || exit 1 + [ -f gettext-$GETTEXT_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://ftp.gnu.org/pub/gnu/gettext/gettext-$GETTEXT_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat gettext-$GETTEXT_VERSION.tar.gz | tar xf - || exit 1 + gzcat gettext-$GETTEXT_VERSION.tar.gz | tar xf - cd gettext-$GETTEXT_VERSION # @@ -864,9 +874,9 @@ install_gettext() { workaround_arg= fi CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" $workaround_arg || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" $workaround_arg + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch gettext-$GETTEXT_VERSION-done fi @@ -881,8 +891,8 @@ uninstall_gettext() { echo "Uninstalling GNU gettext:" cd gettext-$installed_gettext_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm gettext-$installed_gettext_version-done @@ -901,13 +911,13 @@ uninstall_gettext() { install_pkg_config() { if [ ! -f pkg-config-$PKG_CONFIG_VERSION-done ] ; then echo "Downloading, building, and installing pkg-config:" - [ -f pkg-config-$PKG_CONFIG_VERSION.tar.gz ] || curl -L -O https://pkgconfig.freedesktop.org/releases/pkg-config-$PKG_CONFIG_VERSION.tar.gz || exit 1 + [ -f pkg-config-$PKG_CONFIG_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://pkgconfig.freedesktop.org/releases/pkg-config-$PKG_CONFIG_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat pkg-config-$PKG_CONFIG_VERSION.tar.gz | tar xf - || exit 1 + gzcat pkg-config-$PKG_CONFIG_VERSION.tar.gz | tar xf - cd pkg-config-$PKG_CONFIG_VERSION - ./configure "${CONFIGURE_OPTS[@]}" --with-internal-glib || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" --with-internal-glib + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch pkg-config-$PKG_CONFIG_VERSION-done fi @@ -917,8 +927,8 @@ uninstall_pkg_config() { if [ -n "$installed_pkg_config_version" ] ; then echo "Uninstalling pkg-config:" cd pkg-config-$installed_pkg_config_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm pkg-config-$installed_pkg_config_version-done @@ -941,9 +951,9 @@ install_glib() { # # Starting with GLib 2.28.8, xz-compressed tarballs are available. # - [ -f glib-$GLIB_VERSION.tar.xz ] || curl -L -O https://download.gnome.org/sources/glib/$glib_dir/glib-$GLIB_VERSION.tar.xz || exit 1 + [ -f glib-$GLIB_VERSION.tar.xz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://download.gnome.org/sources/glib/$glib_dir/glib-$GLIB_VERSION.tar.xz $no_build && echo "Skipping installation" && return - xzcat glib-$GLIB_VERSION.tar.xz | tar xf - || exit 1 + xzcat glib-$GLIB_VERSION.tar.xz | tar xf - cd glib-$GLIB_VERSION # # First, determine where the system include files are. @@ -1092,13 +1102,13 @@ EOF then # It's defined, nothing to do CFLAGS="$CFLAGS -Wno-format-nonliteral $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS -Wno-format-nonliteral $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" else CFLAGS="$CFLAGS -DMACOSX -Wno-format-nonliteral $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS -DMACOSX -Wno-format-nonliteral $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" fi - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL ;; 59|[6-9][0-9]|[1-9][0-9][0-9]) @@ -1112,9 +1122,9 @@ EOF # https://gitlab.gnome.org/GNOME/glib/-/issues/2902 # CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - $MESON -Dprefix="$installation_prefix" -Dtests=false _build || exit 1 - ninja -C _build || exit 1 - $DO_NINJA_INSTALL || exit 1 + $MESON -Dprefix="$installation_prefix" -Dtests=false _build + ninja -C _build + $DO_NINJA_INSTALL ;; *) echo "Glib's put out 1000 2.x releases?" 1>&2 @@ -1130,7 +1140,7 @@ EOF uninstall_glib() { if [ -n "$installed_glib_version" ] ; then echo "Uninstalling GLib:" - cd "glib-$installed_glib_version" || exit 1 + cd "glib-$installed_glib_version" installed_glib_major_version="$( expr "$installed_glib_version" : '\([0-9][0-9]*\).*' )" installed_glib_minor_version="$( expr "$installed_glib_version" : '[0-9][0-9]*\.\([0-9][0-9]*\).*' )" # installed_glib_dotdot_version="$( expr $installed_glib_version : '[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*' )" @@ -1142,14 +1152,14 @@ uninstall_glib() { case $installed_glib_major_version in 1) - $DO_MAKE_UNINSTALL || exit 1 + $DO_MAKE_UNINSTALL # # This appears to delete dependencies out from under other # Makefiles in the tree, causing it to fail. At least until # that gets fixed, if it ever gets fixed, we just ignore the # exit status of "make distclean" # - # make distclean || exit 1 + # make distclean make distclean || echo "Ignoring make distclean failure" 1>&2 ;; @@ -1157,14 +1167,14 @@ uninstall_glib() { case $installed_glib_minor_version in [0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-8]) - $DO_MAKE_UNINSTALL || exit 1 + $DO_MAKE_UNINSTALL # # This appears to delete dependencies out from under other # Makefiles in the tree, causing it to fail. At least until # that gets fixed, if it ever gets fixed, we just ignore the # exit status of "make distclean" # - # make distclean || exit 1 + # make distclean make distclean || echo "Ignoring make distclean failure" 1>&2 ;; @@ -1174,7 +1184,7 @@ uninstall_glib() { # supports it, and I'm too lazy to add a dot-dot # version check. # - $DO_NINJA_UNINSTALL || exit 1 + $DO_NINJA_UNINSTALL # # For Meson+Ninja, we do the build in an _build # subdirectory, so the equivalent of "make distclean" @@ -1242,9 +1252,9 @@ install_qt() { ;; esac - [ -f $QT_VOLUME.dmg ] || curl -L -O https://download.qt.io/archive/qt/$QT_MAJOR_MINOR_VERSION/$QT_MAJOR_MINOR_DOTDOT_VERSION/$QT_VOLUME.dmg || exit 1 + [ -f $QT_VOLUME.dmg ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://download.qt.io/archive/qt/$QT_MAJOR_MINOR_VERSION/$QT_MAJOR_MINOR_DOTDOT_VERSION/$QT_VOLUME.dmg $no_build && echo "Skipping installation" && return - sudo hdiutil attach $QT_VOLUME.dmg || exit 1 + sudo hdiutil attach $QT_VOLUME.dmg # # Run the installer executable directly, so that we wait for @@ -1308,13 +1318,13 @@ uninstall_qt() { install_libsmi() { if [ "$LIBSMI_VERSION" -a ! -f libsmi-$LIBSMI_VERSION-done ] ; then echo "Downloading, building, and installing libsmi:" - [ -f libsmi-$LIBSMI_VERSION.tar.gz ] || curl -L -O https://www.ibr.cs.tu-bs.de/projects/libsmi/download/libsmi-$LIBSMI_VERSION.tar.gz || exit 1 + [ -f libsmi-$LIBSMI_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://www.ibr.cs.tu-bs.de/projects/libsmi/download/libsmi-$LIBSMI_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat libsmi-$LIBSMI_VERSION.tar.gz | tar xf - || exit 1 + gzcat libsmi-$LIBSMI_VERSION.tar.gz | tar xf - cd libsmi-$LIBSMI_VERSION - CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch libsmi-$LIBSMI_VERSION-done fi @@ -1324,8 +1334,8 @@ uninstall_libsmi() { if [ -n "$installed_libsmi_version" ] ; then echo "Uninstalling libsmi:" cd libsmi-$installed_libsmi_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm libsmi-$installed_libsmi_version-done @@ -1344,13 +1354,13 @@ uninstall_libsmi() { install_libgpg_error() { if [ "$LIBGPG_ERROR_VERSION" -a ! -f libgpg-error-$LIBGPG_ERROR_VERSION-done ] ; then echo "Downloading, building, and installing libgpg-error:" - [ -f libgpg-error-$LIBGPG_ERROR_VERSION.tar.bz2 ] || curl -L -O https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-$LIBGPG_ERROR_VERSION.tar.bz2 || exit 1 + [ -f libgpg-error-$LIBGPG_ERROR_VERSION.tar.bz2 ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-$LIBGPG_ERROR_VERSION.tar.bz2 $no_build && echo "Skipping installation" && return - bzcat libgpg-error-$LIBGPG_ERROR_VERSION.tar.bz2 | tar xf - || exit 1 + bzcat libgpg-error-$LIBGPG_ERROR_VERSION.tar.bz2 | tar xf - cd libgpg-error-$LIBGPG_ERROR_VERSION - CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch libgpg-error-$LIBGPG_ERROR_VERSION-done fi @@ -1365,8 +1375,8 @@ uninstall_libgpg_error() { echo "Uninstalling libgpg-error:" cd libgpg-error-$installed_libgpg_error_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm libgpg-error-$installed_libgpg_error_version-done @@ -1394,9 +1404,9 @@ install_libgcrypt() { fi echo "Downloading, building, and installing libgcrypt:" - [ -f libgcrypt-$LIBGCRYPT_VERSION.tar.gz ] || curl -L -O https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-$LIBGCRYPT_VERSION.tar.gz || exit 1 + [ -f libgcrypt-$LIBGCRYPT_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-$LIBGCRYPT_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat libgcrypt-$LIBGCRYPT_VERSION.tar.gz | tar xf - || exit 1 + gzcat libgcrypt-$LIBGCRYPT_VERSION.tar.gz | tar xf - cd libgcrypt-$LIBGCRYPT_VERSION # # The assembler language code is not compatible with the macOS @@ -1413,9 +1423,9 @@ install_libgcrypt() { # not matter, as we only use this for decryption, as far as I know.) # CFLAGS="$CFLAGS -std=gnu89 $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" --disable-asm --enable-random=unix || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" --disable-asm --enable-random=unix + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch libgcrypt-$LIBGCRYPT_VERSION-done fi @@ -1425,8 +1435,8 @@ uninstall_libgcrypt() { if [ -n "$installed_libgcrypt_version" ] ; then echo "Uninstalling libgcrypt:" cd libgcrypt-$installed_libgcrypt_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm libgcrypt-$installed_libgcrypt_version-done @@ -1445,10 +1455,10 @@ uninstall_libgcrypt() { install_gmp() { if [ "$GMP_VERSION" ] && [ ! -f "gmp-$GMP_VERSION-done" ] ; then echo "Downloading, building, and installing GMP:" - [ -f "gmp-$GMP_VERSION.tar.lz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://gmplib.org/download/gmp/gmp-$GMP_VERSION.tar.lz || exit 1 + [ -f "gmp-$GMP_VERSION.tar.lz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://gmplib.org/download/gmp/gmp-$GMP_VERSION.tar.lz $no_build && echo "Skipping installation" && return - lzip -c -d "gmp-$GMP_VERSION.tar.lz" | tar xf - || exit 1 - cd "gmp-$GMP_VERSION" || exit 1 + lzip -c -d "gmp-$GMP_VERSION.tar.lz" | tar xf - + cd "gmp-$GMP_VERSION" # # Create a fat binary: https://gmplib.org/manual/Notes-for-Package-Builds.html # @@ -1473,9 +1483,9 @@ install_gmp() { LD64_FLAG="" fi CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS $LD64_FLAG" \ - ./configure "${CONFIGURE_OPTS[@]}" --enable-fat || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" --enable-fat + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch "gmp-$GMP_VERSION-done" fi @@ -1489,9 +1499,9 @@ uninstall_gmp() { uninstall_nettle "$@" echo "Uninstalling GMP:" - cd "gmp-$installed_gmp_version" || exit 1 - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + cd "gmp-$installed_gmp_version" + $DO_MAKE_UNINSTALL + make distclean cd .. rm "gmp-$installed_gmp_version-done" @@ -1510,14 +1520,14 @@ uninstall_gmp() { install_libtasn1() { if [ "$LIBTASN1_VERSION" ] && [ ! -f "libtasn1-$LIBTASN1_VERSION-done" ] ; then echo "Downloading, building, and installing libtasn1:" - [ -f "libtasn1-$LIBTASN1_VERSION.tar.gz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://ftpmirror.gnu.org/libtasn1/libtasn1-$LIBTASN1_VERSION.tar.gz" || exit 1 + [ -f "libtasn1-$LIBTASN1_VERSION.tar.gz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://ftpmirror.gnu.org/libtasn1/libtasn1-$LIBTASN1_VERSION.tar.gz" $no_build && echo "Skipping installation" && return - gzcat "libtasn1-$LIBTASN1_VERSION.tar.gz" | tar xf - || exit 1 - cd "libtasn1-$LIBTASN1_VERSION" || exit 1 + gzcat "libtasn1-$LIBTASN1_VERSION.tar.gz" | tar xf - + cd "libtasn1-$LIBTASN1_VERSION" CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch "libtasn1-$LIBTASN1_VERSION-done" fi @@ -1531,9 +1541,9 @@ uninstall_libtasn1() { uninstall_p11_kit "$@" echo "Uninstalling libtasn1:" - cd "libtasn1-$installed_libtasn1_version" || exit 1 - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + cd "libtasn1-$installed_libtasn1_version" + $DO_MAKE_UNINSTALL + make distclean cd .. rm "libtasn1-$installed_libtasn1_version-done" @@ -1552,10 +1562,10 @@ uninstall_libtasn1() { install_p11_kit() { if [ "$P11KIT_VERSION" ] && [ ! -f "p11-kit-$P11KIT_VERSION-done" ] ; then echo "Downloading, building, and installing p11-kit:" - [ -f "p11-kit-$P11KIT_VERSION.tar.xz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://github.com/p11-glue/p11-kit/releases/download/$P11KIT_VERSION/p11-kit-$P11KIT_VERSION.tar.xz" || exit 1 + [ -f "p11-kit-$P11KIT_VERSION.tar.xz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://github.com/p11-glue/p11-kit/releases/download/$P11KIT_VERSION/p11-kit-$P11KIT_VERSION.tar.xz" $no_build && echo "Skipping installation" && return - xzcat "p11-kit-$P11KIT_VERSION.tar.xz" | tar xf - || exit 1 - cd "p11-kit-$P11KIT_VERSION" || exit 1 + xzcat "p11-kit-$P11KIT_VERSION.tar.xz" | tar xf - + cd "p11-kit-$P11KIT_VERSION" # # Prior to Catalina, the libffi that's supplied with macOS # doesn't support ffi_closure_alloc() or ffi_prep_closure_loc(), @@ -1572,9 +1582,9 @@ install_p11_kit() { # configure p11-kit not to use libffi. # CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LIBS=-lintl \ - ./configure "${CONFIGURE_OPTS[@]}" --without-libffi --without-trust-paths || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" --without-libffi --without-trust-paths + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch "p11-kit-$P11KIT_VERSION-done" fi @@ -1588,9 +1598,9 @@ uninstall_p11_kit() { uninstall_nettle "$@" echo "Uninstalling p11-kit:" - cd "p11-kit-$installed_p11_kit_version" || exit 1 - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + cd "p11-kit-$installed_p11_kit_version" + $DO_MAKE_UNINSTALL + make distclean cd .. rm "p11-kit-$installed_p11_kit_version-done" @@ -1609,14 +1619,14 @@ uninstall_p11_kit() { install_nettle() { if [ "$NETTLE_VERSION" ] && [ ! -f "nettle-$NETTLE_VERSION-done" ] ; then echo "Downloading, building, and installing Nettle:" - [ -f "nettle-$NETTLE_VERSION.tar.gz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://ftp.gnu.org/gnu/nettle/nettle-$NETTLE_VERSION.tar.gz" || exit 1 + [ -f "nettle-$NETTLE_VERSION.tar.gz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://ftp.gnu.org/gnu/nettle/nettle-$NETTLE_VERSION.tar.gz" $no_build && echo "Skipping installation" && return - gzcat "nettle-$NETTLE_VERSION.tar.gz" | tar xf - || exit 1 - cd "nettle-$NETTLE_VERSION" || exit 1 + gzcat "nettle-$NETTLE_VERSION.tar.gz" | tar xf - + cd "nettle-$NETTLE_VERSION" CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch "nettle-$NETTLE_VERSION-done" fi @@ -1630,9 +1640,9 @@ uninstall_nettle() { uninstall_gnutls "$@" echo "Uninstalling Nettle:" - cd "nettle-$installed_nettle_version" || exit 1 - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + cd "nettle-$installed_nettle_version" + $DO_MAKE_UNINSTALL + make distclean cd .. rm "nettle-$installed_nettle_version-done" @@ -1666,19 +1676,19 @@ install_gnutls() { # Starting with GnuTLS 3.x, the tarballs are compressed with # xz rather than bzip2. # - [ -f gnutls-$GNUTLS_VERSION.tar.xz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://www.gnupg.org/ftp/gcrypt/gnutls/v$GNUTLS_MAJOR_VERSION.$GNUTLS_MINOR_VERSION/gnutls-$GNUTLS_VERSION.tar.xz" || exit 1 + [ -f gnutls-$GNUTLS_VERSION.tar.xz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://www.gnupg.org/ftp/gcrypt/gnutls/v$GNUTLS_MAJOR_VERSION.$GNUTLS_MINOR_VERSION/gnutls-$GNUTLS_VERSION.tar.xz" $no_build && echo "Skipping installation" && return - xzcat gnutls-$GNUTLS_VERSION.tar.xz | tar xf - || exit 1 + xzcat gnutls-$GNUTLS_VERSION.tar.xz | tar xf - else - [ -f gnutls-$GNUTLS_VERSION.tar.bz2 ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://www.gnupg.org/ftp/gcrypt/gnutls/v$GNUTLS_MAJOR_VERSION.$GNUTLS_MINOR_VERSION/gnutls-$GNUTLS_VERSION.tar.bz2" || exit 1 + [ -f gnutls-$GNUTLS_VERSION.tar.bz2 ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://www.gnupg.org/ftp/gcrypt/gnutls/v$GNUTLS_MAJOR_VERSION.$GNUTLS_MINOR_VERSION/gnutls-$GNUTLS_VERSION.tar.bz2" $no_build && echo "Skipping installation" && return - bzcat gnutls-$GNUTLS_VERSION.tar.bz2 | tar xf - || exit 1 + bzcat gnutls-$GNUTLS_VERSION.tar.bz2 | tar xf - fi - cd gnutls-$GNUTLS_VERSION || exit 1 + cd gnutls-$GNUTLS_VERSION CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" --with-included-unistring --disable-guile || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" --with-included-unistring --disable-guile + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch gnutls-$GNUTLS_VERSION-done fi @@ -1687,9 +1697,9 @@ install_gnutls() { uninstall_gnutls() { if [ -n "$installed_gnutls_version" ] ; then echo "Uninstalling GnuTLS:" - cd "gnutls-$installed_gnutls_version" || exit 1 - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + cd "gnutls-$installed_gnutls_version" + $DO_MAKE_UNINSTALL + make distclean cd .. rm "gnutls-$installed_gnutls_version-done" s @@ -1708,12 +1718,12 @@ uninstall_gnutls() { install_lua() { if [ "$LUA_VERSION" -a ! -f lua-$LUA_VERSION-done ] ; then echo "Downloading, building, and installing Lua:" - [ -f lua-$LUA_VERSION.tar.gz ] || curl -L -O https://www.lua.org/ftp/lua-$LUA_VERSION.tar.gz || exit 1 + [ -f lua-$LUA_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://www.lua.org/ftp/lua-$LUA_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat lua-$LUA_VERSION.tar.gz | tar xf - || exit 1 + gzcat lua-$LUA_VERSION.tar.gz | tar xf - cd lua-$LUA_VERSION - make INSTALL_TOP="$installation_prefix" MYCFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" MYLDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" macosx || exit 1 - $DO_MAKE INSTALL_TOP="$installation_prefix" install || exit 1 + make INSTALL_TOP="$installation_prefix" MYCFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" MYLDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" macosx + $DO_MAKE INSTALL_TOP="$installation_prefix" install cd .. touch lua-$LUA_VERSION-done fi @@ -1732,7 +1742,7 @@ uninstall_lua() { (cd "$installation_prefix/lib"; $DO_RM -f liblua.a) (cd "$installation_prefix/man/man1"; $DO_RM -f lua.1 luac.1) cd lua-$installed_lua_version - make clean || exit 1 + make clean cd .. rm lua-$installed_lua_version-done @@ -1751,13 +1761,13 @@ uninstall_lua() { install_snappy() { if [ "$SNAPPY_VERSION" -a ! -f snappy-$SNAPPY_VERSION-done ] ; then echo "Downloading, building, and installing snappy:" - [ -f snappy-$SNAPPY_VERSION.tar.gz ] || curl -L -o snappy-$SNAPPY_VERSION.tar.gz https://github.com/google/snappy/archive/$SNAPPY_VERSION.tar.gz || exit 1 + [ -f snappy-$SNAPPY_VERSION.tar.gz ] || curl "${CURL_LOCAL_NAME_OPTS[@]}" snappy-$SNAPPY_VERSION.tar.gz https://github.com/google/snappy/archive/$SNAPPY_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat snappy-$SNAPPY_VERSION.tar.gz | tar xf - || exit 1 + gzcat snappy-$SNAPPY_VERSION.tar.gz | tar xf - cd snappy-$SNAPPY_VERSION if [ "$SNAPPY_VERSION" = "1.1.10" ] ; then # This patch corresponds to https://github.com/google/snappy/commit/27f34a580be4a3becf5f8c0cba13433f53c21337 - patch -p0 < "${topdir}/tools/macos-setup-patches/snappy-signed.patch" || exit 1 + patch -p0 < "${topdir}/tools/macos-setup-patches/snappy-signed.patch" fi mkdir build_dir cd build_dir @@ -1768,9 +1778,9 @@ install_snappy() { # will carry that dependency with it, so linking with it should # Just Work. # - "${DO_CMAKE[@]}" -DBUILD_SHARED_LIBS=YES -DSNAPPY_BUILD_BENCHMARKS=NO -DSNAPPY_BUILD_TESTS=NO .. || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + "${DO_CMAKE[@]}" -DBUILD_SHARED_LIBS=YES -DSNAPPY_BUILD_BENCHMARKS=NO -DSNAPPY_BUILD_TESTS=NO .. + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd ../.. touch snappy-$SNAPPY_VERSION-done fi @@ -1784,7 +1794,7 @@ uninstall_snappy() { # snappy uses cmake and doesn't support "make uninstall"; # just remove what we know it installs. # - # $DO_MAKE_UNINSTALL || exit 1 + # $DO_MAKE_UNINSTALL if [ -s build_dir/install_manifest.txt ] ; then while read -r ; do $DO_RM -v "$REPLY" ; done < <(cat build_dir/install_manifest.txt; echo) else @@ -1798,15 +1808,14 @@ uninstall_snappy() { "$installation_prefix/lib/cmake/Snappy/SnappyConfig.cmake" \ "$installation_prefix/lib/cmake/Snappy/SnappyConfigVersion.cmake" \ "$installation_prefix/lib/cmake/Snappy/SnappyTargets-noconfig.cmake" \ - "$installation_prefix/lib/cmake/Snappy/SnappyTargets.cmake" \ - || exit 1 + "$installation_prefix/lib/cmake/Snappy/SnappyTargets.cmake" fi # # snappy uses cmake and doesn't support "make distclean"; #.just remove the entire build directory. # - # make distclean || exit 1 - rm -rf build_dir || exit 1 + # make distclean + rm -rf build_dir cd .. rm snappy-$installed_snappy_version-done @@ -1825,15 +1834,15 @@ uninstall_snappy() { install_zstd() { if [ "$ZSTD_VERSION" ] && [ ! -f zstd-$ZSTD_VERSION-done ] ; then echo "Downloading, building, and installing zstd:" - [ -f zstd-$ZSTD_VERSION.tar.gz ] || curl -L -O https://github.com/facebook/zstd/releases/download/v$ZSTD_VERSION/zstd-$ZSTD_VERSION.tar.gz || exit 1 + [ -f zstd-$ZSTD_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://github.com/facebook/zstd/releases/download/v$ZSTD_VERSION/zstd-$ZSTD_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat zstd-$ZSTD_VERSION.tar.gz | tar xf - || exit 1 + gzcat zstd-$ZSTD_VERSION.tar.gz | tar xf - cd zstd-$ZSTD_VERSION # We shouldn't have to specify DESTDIR. # https://github.com/facebook/zstd/issues/3146 CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - make PREFIX="$installation_prefix" DESTDIR="$installation_prefix" "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE PREFIX="$installation_prefix" install || exit 1 + make PREFIX="$installation_prefix" DESTDIR="$installation_prefix" "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE PREFIX="$installation_prefix" install cd .. touch zstd-$ZSTD_VERSION-done fi @@ -1843,13 +1852,13 @@ uninstall_zstd() { if [ -n "$installed_zstd_version" ] ; then echo "Uninstalling zstd:" cd "zstd-$installed_zstd_version" - $DO_MAKE_UNINSTALL || exit 1 + $DO_MAKE_UNINSTALL # # zstd has no configure script, so there's no need for # "make distclean", and the Makefile supplied with it # has no "make distclean" rule; just do "make clean". # - make clean || exit 1 + make clean cd .. rm "zstd-$installed_zstd_version-done" @@ -1871,10 +1880,10 @@ install_libxml2() { LIBXML2_MAJOR_VERSION="$( expr "$LIBXML2_VERSION" : '\([0-9][0-9]*\).*' )" LIBXML2_MINOR_VERSION="$( expr "$LIBXML2_VERSION" : '[0-9][0-9]*\.\([0-9][0-9]*\).*' )" LIBXML2_MAJOR_MINOR_VERSION=$LIBXML2_MAJOR_VERSION.$LIBXML2_MINOR_VERSION - [ -f libxml2-$LIBXML2_VERSION.tar.gz ] || curl -L -O https://download.gnome.org/sources/libxml2/$LIBXML2_MAJOR_MINOR_VERSION/libxml2-$LIBXML2_VERSION.tar.xz || exit 1 + [ -f libxml2-$LIBXML2_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://download.gnome.org/sources/libxml2/$LIBXML2_MAJOR_MINOR_VERSION/libxml2-$LIBXML2_VERSION.tar.xz $no_build && echo "Skipping installation" && return - xzcat libxml2-$LIBXML2_VERSION.tar.xz | tar xf - || exit 1 - cd "libxml2-$LIBXML2_VERSION" || exit 1 + xzcat libxml2-$LIBXML2_VERSION.tar.xz | tar xf - + cd "libxml2-$LIBXML2_VERSION" # # At least on macOS 12.0.1 with Xcode 13.1, when we build # libxml2, the linker complains that we don't have the right @@ -1882,9 +1891,9 @@ install_libxml2() { # Python. # CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" --without-python || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" --without-python + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch libxml2-$LIBXML2_VERSION-done fi @@ -1894,8 +1903,8 @@ uninstall_libxml2() { if [ -n "$installed_libxml2_version" ] ; then echo "Uninstalling libxml2:" cd libxml2-$installed_libxml2_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm libxml2-$installed_libxml2_version-done @@ -1937,12 +1946,12 @@ install_lz4() { # if [[ "$LZ4_VERSION" == r* ]] then - [ -f lz4-$LZ4_VERSION.tar.gz ] || curl -L -o lz4-$LZ4_VERSION.tar.gz https://github.com/lz4/lz4/archive/$LZ4_VERSION.tar.gz || exit 1 + [ -f lz4-$LZ4_VERSION.tar.gz ] || curl "${CURL_LOCAL_NAME_OPTS[@]}" lz4-$LZ4_VERSION.tar.gz https://github.com/lz4/lz4/archive/$LZ4_VERSION.tar.gz else - [ -f lz4-$LZ4_VERSION.tar.gz ] || curl -L -o lz4-$LZ4_VERSION.tar.gz https://github.com/lz4/lz4/archive/v$LZ4_VERSION.tar.gz || exit 1 + [ -f lz4-$LZ4_VERSION.tar.gz ] || curl "${CURL_LOCAL_NAME_OPTS[@]}" lz4-$LZ4_VERSION.tar.gz https://github.com/lz4/lz4/archive/v$LZ4_VERSION.tar.gz fi $no_build && echo "Skipping installation" && return - gzcat lz4-$LZ4_VERSION.tar.gz | tar xf - || exit 1 + gzcat lz4-$LZ4_VERSION.tar.gz | tar xf - cd lz4-$LZ4_VERSION # # No configure script here, but it appears that if MOREFLAGS is @@ -1951,8 +1960,8 @@ install_lz4() { # files and libraries. # MOREFLAGS="-D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS" \ - make PREFIX="$installation_prefix" "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE PREFIX="$installation_prefix" install || exit 1 + make PREFIX="$installation_prefix" "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE PREFIX="$installation_prefix" install cd .. touch lz4-$LZ4_VERSION-done fi @@ -1962,14 +1971,14 @@ uninstall_lz4() { if [ -n "$installed_lz4_version" ] ; then echo "Uninstalling lz4:" cd "lz4-$installed_lz4_version" - $DO_MAKE_UNINSTALL || exit 1 + $DO_MAKE_UNINSTALL # # lz4's Makefile doesn't support "make distclean"; just do # "make clean". Perhaps not using autotools means that # there's no need for "make distclean". # - # make distclean || exit 1 - make clean || exit 1 + # make distclean + make clean cd .. rm "lz4-$installed_lz4_version-done" @@ -1994,19 +2003,19 @@ uninstall_lz4() { install_sbc() { if [ "$SBC_VERSION" -a ! -f sbc-$SBC_VERSION-done ] ; then echo "Downloading, building, and installing sbc:" - [ -f sbc-$SBC_VERSION.tar.gz ] || curl -L -O https://www.kernel.org/pub/linux/bluetooth/sbc-$SBC_VERSION.tar.gz || exit 1 + [ -f sbc-$SBC_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://www.kernel.org/pub/linux/bluetooth/sbc-$SBC_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat sbc-$SBC_VERSION.tar.gz | tar xf - || exit 1 + gzcat sbc-$SBC_VERSION.tar.gz | tar xf - cd sbc-$SBC_VERSION if [ "$DARWIN_PROCESSOR_ARCH" = "arm64" ] ; then CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS -U__ARM_NEON__" CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" --disable-tools --disable-tester --disable-shared || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" --disable-tools --disable-tester --disable-shared else CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" --disable-tools --disable-tester --disable-shared || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" --disable-tools --disable-tester --disable-shared fi - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch sbc-$SBC_VERSION-done fi @@ -2016,8 +2025,8 @@ uninstall_sbc() { if [ -n "$installed_sbc_version" ] ; then echo "Uninstalling sbc:" cd sbc-$installed_sbc_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm sbc-$installed_sbc_version-done @@ -2036,14 +2045,14 @@ uninstall_sbc() { install_maxminddb() { if [ "$MAXMINDDB_VERSION" -a ! -f maxminddb-$MAXMINDDB_VERSION-done ] ; then echo "Downloading, building, and installing MaxMindDB API:" - [ -f libmaxminddb-$MAXMINDDB_VERSION.tar.gz ] || curl -L -O https://github.com/maxmind/libmaxminddb/releases/download/$MAXMINDDB_VERSION/libmaxminddb-$MAXMINDDB_VERSION.tar.gz || exit 1 + [ -f libmaxminddb-$MAXMINDDB_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://github.com/maxmind/libmaxminddb/releases/download/$MAXMINDDB_VERSION/libmaxminddb-$MAXMINDDB_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat libmaxminddb-$MAXMINDDB_VERSION.tar.gz | tar xf - || exit 1 + gzcat libmaxminddb-$MAXMINDDB_VERSION.tar.gz | tar xf - cd libmaxminddb-$MAXMINDDB_VERSION CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch maxminddb-$MAXMINDDB_VERSION-done fi @@ -2053,8 +2062,8 @@ uninstall_maxminddb() { if [ -n "$installed_maxminddb_version" ] ; then echo "Uninstalling MaxMindDB API:" cd libmaxminddb-$installed_maxminddb_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm maxminddb-$installed_maxminddb_version-done @@ -2073,14 +2082,14 @@ uninstall_maxminddb() { install_c_ares() { if [ "$CARES_VERSION" -a ! -f c-ares-$CARES_VERSION-done ] ; then echo "Downloading, building, and installing C-Ares API:" - [ -f c-ares-$CARES_VERSION.tar.gz ] || curl -L -O https://c-ares.org/download/c-ares-$CARES_VERSION.tar.gz || exit 1 + [ -f c-ares-$CARES_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://c-ares.org/download/c-ares-$CARES_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat c-ares-$CARES_VERSION.tar.gz | tar xf - || exit 1 + gzcat c-ares-$CARES_VERSION.tar.gz | tar xf - cd c-ares-$CARES_VERSION CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch c-ares-$CARES_VERSION-done fi @@ -2090,8 +2099,8 @@ uninstall_c_ares() { if [ -n "$installed_cares_version" ] ; then echo "Uninstalling C-Ares API:" cd c-ares-$installed_cares_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm c-ares-$installed_cares_version-done @@ -2113,15 +2122,15 @@ install_libssh() { LIBSSH_MAJOR_VERSION="$( expr "$LIBSSH_VERSION" : '\([0-9][0-9]*\).*' )" LIBSSH_MINOR_VERSION="$( expr "$LIBSSH_VERSION" : '[0-9][0-9]*\.\([0-9][0-9]*\).*' )" LIBSSH_MAJOR_MINOR_VERSION=$LIBSSH_MAJOR_VERSION.$LIBSSH_MINOR_VERSION - [ -f libssh-$LIBSSH_VERSION.tar.xz ] || curl -L -O https://www.libssh.org/files/$LIBSSH_MAJOR_MINOR_VERSION/libssh-$LIBSSH_VERSION.tar.xz + [ -f libssh-$LIBSSH_VERSION.tar.xz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://www.libssh.org/files/$LIBSSH_MAJOR_MINOR_VERSION/libssh-$LIBSSH_VERSION.tar.xz $no_build && echo "Skipping installation" && return - xzcat libssh-$LIBSSH_VERSION.tar.xz | tar xf - || exit 1 - cd "libssh-$LIBSSH_VERSION" || exit 1 + xzcat libssh-$LIBSSH_VERSION.tar.xz | tar xf - + cd "libssh-$LIBSSH_VERSION" mkdir build cd build - "${DO_CMAKE[@]}" -DWITH_GCRYPT=1 .. || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + "${DO_CMAKE[@]}" -DWITH_GCRYPT=1 .. + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd ../.. touch libssh-$LIBSSH_VERSION-done fi @@ -2135,17 +2144,17 @@ uninstall_libssh() { # libssh uses cmake and doesn't support "make uninstall"; # just remove what we know it installs. # - # $DO_MAKE_UNINSTALL || exit 1 + # $DO_MAKE_UNINSTALL $DO_RM -rf "$installation_prefix"/lib/libssh* \ "$installation_prefix"/include/libssh \ "$installation_prefix"/lib/pkgconfig/libssh* \ - "$installation_prefix"/lib/cmake/libssh || exit 1 + "$installation_prefix"/lib/cmake/libssh # # libssh uses cmake and doesn't support "make distclean"; # just remove the entire build directory. # - # make distclean || exit 1 - rm -rf build || exit 1 + # make distclean + rm -rf build cd .. rm libssh-$installed_libssh_version-done @@ -2164,14 +2173,14 @@ uninstall_libssh() { install_nghttp2() { if [ "$NGHTTP2_VERSION" -a ! -f nghttp2-$NGHTTP2_VERSION-done ] ; then echo "Downloading, building, and installing nghttp2:" - [ -f nghttp2-$NGHTTP2_VERSION.tar.xz ] || curl -L -O https://github.com/nghttp2/nghttp2/releases/download/v$NGHTTP2_VERSION/nghttp2-$NGHTTP2_VERSION.tar.xz || exit 1 + [ -f nghttp2-$NGHTTP2_VERSION.tar.xz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://github.com/nghttp2/nghttp2/releases/download/v$NGHTTP2_VERSION/nghttp2-$NGHTTP2_VERSION.tar.xz $no_build && echo "Skipping installation" && return - xzcat nghttp2-$NGHTTP2_VERSION.tar.xz | tar xf - || exit 1 + xzcat nghttp2-$NGHTTP2_VERSION.tar.xz | tar xf - cd nghttp2-$NGHTTP2_VERSION CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" --enable-lib-only || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" --enable-lib-only + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch nghttp2-$NGHTTP2_VERSION-done fi @@ -2181,8 +2190,8 @@ uninstall_nghttp2() { if [ -n "$installed_nghttp2_version" ] ; then echo "Uninstalling nghttp2:" cd nghttp2-$installed_nghttp2_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm nghttp2-$installed_nghttp2_version-done @@ -2201,14 +2210,14 @@ uninstall_nghttp2() { install_nghttp3() { if [ "$NGHTTP3_VERSION" -a ! -f nghttp3-$NGHTTP3_VERSION-done ] ; then echo "Downloading, building, and installing nghttp3:" - [ -f nghttp3-$NGHTTP3_VERSION.tar.xz ] || curl -L -O https://github.com/ngtcp2/nghttp3/releases/download/v$NGHTTP3_VERSION/nghttp3-$NGHTTP3_VERSION.tar.xz || exit 1 + [ -f nghttp3-$NGHTTP3_VERSION.tar.xz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://github.com/ngtcp2/nghttp3/releases/download/v$NGHTTP3_VERSION/nghttp3-$NGHTTP3_VERSION.tar.xz $no_build && echo "Skipping installation" && return - xzcat nghttp3-$NGHTTP3_VERSION.tar.xz | tar xf - || exit 1 + xzcat nghttp3-$NGHTTP3_VERSION.tar.xz | tar xf - cd nghttp3-$NGHTTP3_VERSION CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" --enable-lib-only || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" --enable-lib-only + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch nghttp3-$NGHTTP3_VERSION-done fi @@ -2218,8 +2227,8 @@ uninstall_nghttp3() { if [ -n "$installed_nghttp3_version" ] ; then echo "Uninstalling nghttp3:" cd nghttp3-$installed_nghttp3_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm nghttp3-$installed_nghttp3_version-done @@ -2243,12 +2252,12 @@ install_libtiff() { curl "${CURL_REMOTE_NAME_OPTS[@]}" https://download.osgeo.org/libtiff/old/tiff-$LIBTIFF_VERSION.tar.gz || exit 1 $no_build && echo "Skipping installation" && return - gzcat tiff-$LIBTIFF_VERSION.tar.gz | tar xf - || exit 1 + gzcat tiff-$LIBTIFF_VERSION.tar.gz | tar xf - cd tiff-$LIBTIFF_VERSION CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch tiff-$LIBTIFF_VERSION-done fi @@ -2258,8 +2267,8 @@ uninstall_libtiff() { if [ -n "$installed_libtiff_version" ] ; then echo "Uninstalling libtiff:" cd tiff-$installed_libtiff_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm tiff-$installed_libtiff_version-done @@ -2278,20 +2287,20 @@ uninstall_libtiff() { install_spandsp() { if [ "$SPANDSP_VERSION" -a ! -f spandsp-$SPANDSP_VERSION-done ] ; then echo "Downloading, building, and installing SpanDSP:" - [ -f spandsp-$SPANDSP_VERSION.tar.gz ] || curl -L -O https://www.soft-switch.org/downloads/spandsp/spandsp-$SPANDSP_VERSION.tar.gz || exit 1 + [ -f spandsp-$SPANDSP_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://www.soft-switch.org/downloads/spandsp/spandsp-$SPANDSP_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat spandsp-$SPANDSP_VERSION.tar.gz | tar xf - || exit 1 + gzcat spandsp-$SPANDSP_VERSION.tar.gz | tar xf - cd spandsp-$SPANDSP_VERSION # # Don't use -Wunused-but-set-variable, as it's not supported # by all the gcc versions in the versions of Xcode that we # support. # - patch -p0 < "${topdir}/tools/macos-setup-patches/spandsp-configure-patch" || exit 1 + patch -p0 < "${topdir}/tools/macos-setup-patches/spandsp-configure-patch" CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch spandsp-$SPANDSP_VERSION-done fi @@ -2301,8 +2310,8 @@ uninstall_spandsp() { if [ -n "$installed_spandsp_version" ] ; then echo "Uninstalling SpanDSP:" cd spandsp-$installed_spandsp_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm spandsp-$installed_spandsp_version-done @@ -2321,14 +2330,14 @@ uninstall_spandsp() { install_speexdsp() { if [ "$SPEEXDSP_VERSION" -a ! -f speexdsp-$SPEEXDSP_VERSION-done ] ; then echo "Downloading, building, and installing SpeexDSP:" - [ -f speexdsp-$SPEEXDSP_VERSION.tar.gz ] || curl -L -O https://ftp.osuosl.org/pub/xiph/releases/speex/speexdsp-$SPEEXDSP_VERSION.tar.gz || exit 1 + [ -f speexdsp-$SPEEXDSP_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://ftp.osuosl.org/pub/xiph/releases/speex/speexdsp-$SPEEXDSP_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat speexdsp-$SPEEXDSP_VERSION.tar.gz | tar xf - || exit 1 + gzcat speexdsp-$SPEEXDSP_VERSION.tar.gz | tar xf - cd speexdsp-$SPEEXDSP_VERSION CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch speexdsp-$SPEEXDSP_VERSION-done fi @@ -2338,8 +2347,8 @@ uninstall_speexdsp() { if [ -n "$installed_speexdsp_version" ] ; then echo "Uninstalling SpeexDSP:" cd speexdsp-$installed_speexdsp_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm speexdsp-$installed_speexdsp_version-done @@ -2358,15 +2367,15 @@ uninstall_speexdsp() { install_bcg729() { if [ "$BCG729_VERSION" -a ! -f bcg729-$BCG729_VERSION-done ] ; then echo "Downloading, building, and installing bcg729:" - [ -f bcg729-$BCG729_VERSION.tar.gz ] || curl -L -O https://gitlab.linphone.org/BC/public/bcg729/-/archive/$BCG729_VERSION/bcg729-$BCG729_VERSION.tar.gz || exit 1 + [ -f bcg729-$BCG729_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://gitlab.linphone.org/BC/public/bcg729/-/archive/$BCG729_VERSION/bcg729-$BCG729_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat bcg729-$BCG729_VERSION.tar.gz | tar xf - || exit 1 + gzcat bcg729-$BCG729_VERSION.tar.gz | tar xf - cd bcg729-$BCG729_VERSION mkdir build_dir cd build_dir - "${DO_CMAKE[@]}" .. || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + "${DO_CMAKE[@]}" .. + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd ../.. touch bcg729-$BCG729_VERSION-done fi @@ -2380,17 +2389,17 @@ uninstall_bcg729() { # bcg729 uses cmake on macOS and doesn't support "make uninstall"; # just remove what we know it installs. # - # $DO_MAKE_UNINSTALL || exit 1 + # $DO_MAKE_UNINSTALL $DO_RM -rf "$installation_prefix"/share/Bcg729 \ "$installation_prefix"/lib/libbcg729* \ "$installation_prefix"/include/bcg729 \ - "$installation_prefix"/lib/pkgconfig/libbcg729* || exit 1 + "$installation_prefix"/lib/pkgconfig/libbcg729* # # bcg729 uses cmake on macOS and doesn't support "make distclean"; # just remove the enire build directory. # - # make distclean || exit 1 - rm -rf build_dir || exit 1 + # make distclean + rm -rf build_dir cd .. rm bcg729-$installed_bcg729_version-done @@ -2409,14 +2418,14 @@ uninstall_bcg729() { install_ilbc() { if [ -n "$ILBC_VERSION" ] && [ ! -f ilbc-$ILBC_VERSION-done ] ; then echo "Downloading, building, and installing iLBC:" - [ -f libilbc-$ILBC_VERSION.tar.bz ] || curl --location --remote-name https://github.com/TimothyGu/libilbc/releases/download/v$ILBC_VERSION/libilbc-$ILBC_VERSION.tar.bz2 || exit 1 + [ -f libilbc-$ILBC_VERSION.tar.bz ] || curl --location --remote-name https://github.com/TimothyGu/libilbc/releases/download/v$ILBC_VERSION/libilbc-$ILBC_VERSION.tar.bz2 $no_build && echo "Skipping installation" && return - bzcat libilbc-$ILBC_VERSION.tar.bz2 | tar xf - || exit 1 - cd libilbc-$ILBC_VERSION || exit 1 + bzcat libilbc-$ILBC_VERSION.tar.bz2 | tar xf - + cd libilbc-$ILBC_VERSION CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch ilbc-$ILBC_VERSION-done fi @@ -2425,9 +2434,9 @@ install_ilbc() { uninstall_ilbc() { if [ -n "$installed_ilbc_version" ] ; then echo "Uninstalling iLBC:" - cd "libilbc-$installed_ilbc_version" || exit 1 - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + cd "libilbc-$installed_ilbc_version" + $DO_MAKE_UNINSTALL + make distclean cd .. rm "ilbc-$installed_ilbc_version-done" @@ -2446,14 +2455,14 @@ uninstall_ilbc() { install_opus() { if [ "$OPUS_VERSION" -a ! -f opus-$OPUS_VERSION-done ] ; then echo "Downloading, building, and installing opus:" - [ -f opus-$OPUS_VERSION.tar.gz ] || curl -L -O https://downloads.xiph.org/releases/opus/opus-$OPUS_VERSION.tar.gz || exit 1 + [ -f opus-$OPUS_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://downloads.xiph.org/releases/opus/opus-$OPUS_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat opus-$OPUS_VERSION.tar.gz | tar xf - || exit 1 + gzcat opus-$OPUS_VERSION.tar.gz | tar xf - cd opus-$OPUS_VERSION CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd .. touch opus-$OPUS_VERSION-done fi @@ -2463,8 +2472,8 @@ uninstall_opus() { if [ -n "$installed_opus_version" ] ; then echo "Uninstalling opus:" cd opus-$installed_opus_version - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd .. rm opus-$installed_opus_version-done @@ -2487,9 +2496,9 @@ install_python3() { local macver=11 if [ "$PYTHON3_VERSION" -a ! -f python3-$PYTHON3_VERSION-done ] ; then echo "Downloading and installing python3:" - [ -f python-$PYTHON3_VERSION-macos$macver.pkg ] || curl -L -O https://www.python.org/ftp/python/$PYTHON3_VERSION/python-$PYTHON3_VERSION-macos$macver.pkg || exit 1 + [ -f python-$PYTHON3_VERSION-macos$macver.pkg ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://www.python.org/ftp/python/$PYTHON3_VERSION/python-$PYTHON3_VERSION-macos$macver.pkg $no_build && echo "Skipping installation" && return - sudo installer -target / -pkg python-$PYTHON3_VERSION-macos$macver.pkg || exit 1 + sudo installer -target / -pkg python-$PYTHON3_VERSION-macos$macver.pkg touch python3-$PYTHON3_VERSION-done # @@ -2554,15 +2563,15 @@ uninstall_python3() { install_brotli() { if [ "$BROTLI_VERSION" -a ! -f brotli-$BROTLI_VERSION-done ] ; then echo "Downloading, building, and installing brotli:" - [ -f brotli-$BROTLI_VERSION.tar.gz ] || curl -L -o brotli-$BROTLI_VERSION.tar.gz https://github.com/google/brotli/archive/v$BROTLI_VERSION.tar.gz || exit 1 + [ -f brotli-$BROTLI_VERSION.tar.gz ] || curl "${CURL_LOCAL_NAME_OPTS[@]}" brotli-$BROTLI_VERSION.tar.gz https://github.com/google/brotli/archive/v$BROTLI_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat brotli-$BROTLI_VERSION.tar.gz | tar xf - || exit 1 + gzcat brotli-$BROTLI_VERSION.tar.gz | tar xf - cd brotli-$BROTLI_VERSION mkdir build_dir cd build_dir - "${DO_CMAKE[@]}" .. || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + "${DO_CMAKE[@]}" .. + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd ../.. touch brotli-$BROTLI_VERSION-done fi @@ -2576,17 +2585,17 @@ uninstall_brotli() { # brotli uses cmake on macOS and doesn't support "make uninstall"; # just remove what we know it installs. # - # $DO_MAKE_UNINSTALL || exit 1 + # $DO_MAKE_UNINSTALL $DO_RM -rf "$installation_prefix"/bin/brotli \ "$installation_prefix"/lib/libbrotli* \ "$installation_prefix"/include/brotli \ - "$installation_prefix"/lib/pkgconfig/libbrotli* || exit 1 + "$installation_prefix"/lib/pkgconfig/libbrotli* # # brotli uses cmake on macOS and doesn't support "make distclean"; # just remove the enire build directory. # - # make distclean || exit 1 - rm -rf build_dir || exit 1 + # make distclean + rm -rf build_dir cd .. rm brotli-$installed_brotli_version-done @@ -2605,9 +2614,9 @@ uninstall_brotli() { install_minizip() { if [ "$ZLIB_VERSION" ] && [ ! -f minizip-$ZLIB_VERSION-done ] ; then echo "Downloading, building, and installing zlib for minizip:" - [ -f zlib-$ZLIB_VERSION.tar.gz ] || curl -L -o zlib-$ZLIB_VERSION.tar.gz https://zlib.net/fossils/zlib-$ZLIB_VERSION.tar.gz || exit 1 + [ -f zlib-$ZLIB_VERSION.tar.gz ] || curl "${CURL_LOCAL_NAME_OPTS[@]}" zlib-$ZLIB_VERSION.tar.gz https://zlib.net/fossils/zlib-$ZLIB_VERSION.tar.gz $no_build && echo "Skipping installation" && return - gzcat zlib-$ZLIB_VERSION.tar.gz | tar xf - || exit 1 + gzcat zlib-$ZLIB_VERSION.tar.gz | tar xf - # # minizip ships both with a minimal Makefile that doesn't # support "make install", "make uninstall", or "make distclean", @@ -2619,12 +2628,12 @@ install_minizip() { # # So that's what we do. # - cd zlib-$ZLIB_VERSION/contrib/minizip || exit 1 + cd zlib-$ZLIB_VERSION/contrib/minizip LIBTOOLIZE=glibtoolize autoreconf --force --install CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \ - ./configure "${CONFIGURE_OPTS[@]}" || exit 1 - make "${MAKE_BUILD_OPTS[@]}" || exit 1 - $DO_MAKE_INSTALL || exit 1 + ./configure "${CONFIGURE_OPTS[@]}" + make "${MAKE_BUILD_OPTS[@]}" + $DO_MAKE_INSTALL cd ../../.. touch minizip-$ZLIB_VERSION-done fi @@ -2634,8 +2643,8 @@ uninstall_minizip() { if [ -n "$installed_minizip_version" ] ; then echo "Uninstalling minizip:" cd zlib-$installed_minizip_version/contrib/minizip - $DO_MAKE_UNINSTALL || exit 1 - make distclean || exit 1 + $DO_MAKE_UNINSTALL + make distclean cd ../../.. rm minizip-$installed_minizip_version-done @@ -2658,7 +2667,7 @@ install_sparkle() { # # Download the tarball and unpack it in $installation_prefix/Sparkle-x.y.z # - [ -f Sparkle-$SPARKLE_VERSION.tar.xz ] || curl -L -o Sparkle-$SPARKLE_VERSION.tar.xz https://github.com/sparkle-project/Sparkle/releases/download/$SPARKLE_VERSION/Sparkle-$SPARKLE_VERSION.tar.xz || exit 1 + [ -f Sparkle-$SPARKLE_VERSION.tar.xz ] || curl "${CURL_LOCAL_NAME_OPTS[@]}" Sparkle-$SPARKLE_VERSION.tar.xz https://github.com/sparkle-project/Sparkle/releases/download/$SPARKLE_VERSION/Sparkle-$SPARKLE_VERSION.tar.xz $no_build && echo "Skipping installation" && return test -d "$installation_prefix/Sparkle-$SPARKLE_VERSION" || sudo mkdir "$installation_prefix/Sparkle-$SPARKLE_VERSION" sudo tar -C "$installation_prefix/Sparkle-$SPARKLE_VERSION" -xpof Sparkle-$SPARKLE_VERSION.tar.xz @@ -3511,7 +3520,7 @@ if [ "$installation_prefix" != "/usr/local" ] ; then export PATH="$installation_prefix/bin:$PATH" if [ ! -d "$installation_prefix" ] ; then echo "Creating $installation_prefix" - $DO_MKDIR "$installation_prefix" || exit 1 + $DO_MKDIR "$installation_prefix" fi fi @@ -3658,7 +3667,8 @@ if [ -z "$MAKE_BUILD_OPTS" ] ; then MAKE_BUILD_OPTS=( -j $(( $(sysctl -n hw.logicalcpu) * 3 / 2)) ) fi -CURL_REMOTE_NAME_OPTS=(--fail --location --remote-name) +CURL_REMOTE_NAME_OPTS=(--fail-with-body --location --remote-name) +CURL_LOCAL_NAME_OPTS=(--fail-with-body --location --output) # # If we have a target release, look for the oldest SDK that's for an @@ -3835,9 +3845,9 @@ fi if [ ! -d "${MACOSX_SUPPORT_LIBS}" ] then - mkdir "${MACOSX_SUPPORT_LIBS}" || exit 1 + mkdir "${MACOSX_SUPPORT_LIBS}" fi -cd "${MACOSX_SUPPORT_LIBS}" || exit 1 +cd "${MACOSX_SUPPORT_LIBS}" install_all |