diff --git a/package-system/Qt/build-linux-aarch64.sh b/package-system/Qt/build-linux-aarch64.sh index e8bf44ed..9c66c2d6 100755 --- a/package-system/Qt/build-linux-aarch64.sh +++ b/package-system/Qt/build-linux-aarch64.sh @@ -11,7 +11,8 @@ TIFF_PACKAGE=tiff-4.2.0.15-rev3-linux-aarch64 ZLIB_PACKAGE=zlib-1.2.11-rev5-linux-aarch64 +OPENSSL_PACKAGE=OpenSSL-1.1.1t-rev1-linux-aarch64 -./build-linux.sh $TIFF_PACKAGE $ZLIB_PACKAGE || exit 1 +./build-linux.sh $TIFF_PACKAGE $ZLIB_PACKAGE $OPENSSL_PACKAGE -exit 0 +exit $? diff --git a/package-system/Qt/build-linux-x86.sh b/package-system/Qt/build-linux-x86.sh index 22d9868a..eb440e27 100755 --- a/package-system/Qt/build-linux-x86.sh +++ b/package-system/Qt/build-linux-x86.sh @@ -11,7 +11,8 @@ TIFF_PACKAGE=tiff-4.2.0.15-rev3-linux ZLIB_PACKAGE=zlib-1.2.11-rev5-linux +OPENSSL_PACKAGE=OpenSSL-1.1.1t-rev1-linux -./build-linux.sh $TIFF_PACKAGE $ZLIB_PACKAGE || exit 1 +./build-linux.sh $TIFF_PACKAGE $ZLIB_PACKAGE $OPENSSL_PACKAGE -exit 0 +exit $? diff --git a/package-system/Qt/build-linux.sh b/package-system/Qt/build-linux.sh index 3f4706da..e5530d7a 100755 --- a/package-system/Qt/build-linux.sh +++ b/package-system/Qt/build-linux.sh @@ -15,6 +15,9 @@ TIFF_FOLDER_NAME=$1 # Arg 2: The zlib package name ZLIB_FOLDER_NAME=$2 +# Arg 3: The openssl package name +OPENSSL_FOLDER_NAME=$3 + # Make sure docker is installed DOCKER_VERSION=$(docker --version) if [ $? -ne 0 ] @@ -51,7 +54,7 @@ fi # Run the Docker Image echo "Running docker build script" -docker run -v $TEMP_FOLDER/src:/data/workspace/src -v $TEMP_FOLDER/$TIFF_FOLDER_NAME:/data/workspace/$TIFF_FOLDER_NAME -v $TEMP_FOLDER/$ZLIB_FOLDER_NAME:/data/workspace/$ZLIB_FOLDER_NAME --tty ${DOCKER_IMAGE_NAME}:latest ./docker_build_qt_linux.sh +docker run -v $TEMP_FOLDER/src:/data/workspace/src -v $TEMP_FOLDER/$TIFF_FOLDER_NAME:/data/workspace/o3de_tiff -v $TEMP_FOLDER/$ZLIB_FOLDER_NAME:/data/workspace/o3de_zlib -v $TEMP_FOLDER/$OPENSSL_FOLDER_NAME:/data/workspace/o3de_openssl --tty ${DOCKER_IMAGE_NAME}:latest ./docker_build_qt_linux.sh if [ $? -ne 0 ] then echo "Error occurred running Docker image ${DOCKER_IMAGE_NAME}:latest." @@ -71,20 +74,27 @@ fi # Copy the build artifacts from the Docker Container echo "Copying the built contents from the docker container for image ${DOCKER_IMAGE_NAME}" -docker cp --quiet $CONTAINER_ID:/data/workspace/qt/. $TARGET_INSTALL_ROOT +docker cp $CONTAINER_ID:/data/workspace/qt/. $TARGET_INSTALL_ROOT if [ $? -ne 0 ] then echo "Error occurred copying build artifacts from Docker image ${DOCKER_IMAGE_NAME}:latest." exit 1 fi - # Clean up the docker image and container echo "Cleaning up container" -docker container rm $CONTAINER_ID || (echo "Warning: Unable to clean up container for image ${DOCKER_IMAGE_NAME}") +docker container rm $CONTAINER_ID +if [ $? -ne 0 ] +then + echo "Warning: Unable to clean up container for image ${DOCKER_IMAGE_NAME}" +fi echo "Cleaning up image" -docker rmi --force $IMAGE_ID || (echo "Warning: Unable to clean up image ${DOCKER_IMAGE_NAME}") +docker rmi --force $IMAGE_ID +if [ $? -ne 0 ] +then + echo "Warning: Unable to clean up image ${DOCKER_IMAGE_NAME}" +fi popd diff --git a/package-system/Qt/build_config.json b/package-system/Qt/build_config.json index 7c867f46..b996304c 100644 --- a/package-system/Qt/build_config.json +++ b/package-system/Qt/build_config.json @@ -26,7 +26,7 @@ "build-windows.bat" ], "custom_install_cmd": [ - "copy_platform_cmakes.py" + "{python}", "copy_platform_cmakes.py" ] } }, @@ -34,7 +34,7 @@ "Mac": { "cmake_find_source": "FindQt.cmake.mac", "package_version": "5.15.2-rev8", - "patch_file": "qt-image-format.patch", + "patch_file": "qt-mac.patch", "depends_on_packages": [ ["tiff-4.2.0.15-rev3-mac", "c2615ccdadcc0e1d6c5ed61e5965c4d3a82193d206591b79b805c3b3ff35a4bf", ""], ["zlib-1.2.11-rev5-mac", "b6fea9c79b8bf106d4703b67fecaa133f832ad28696c2ceef45fb5f20013c096", ""] @@ -43,15 +43,16 @@ "./build-darwin.sh" ], "custom_install_cmd": [ - "{python} copy_platform_cmakes.py" + "{python}", "copy_platform_cmakes.py" ] } }, "Linux": { "Linux": { - "package_version": "5.15.2-rev8", - "patch_file": "qt-image-format.patch", + "package_version": "5.15.2-rev9", + "patch_file": "qt-linux.patch", "depends_on_packages": [ + ["OpenSSL-1.1.1t-rev1-linux", "63aea898b7afe8faccd0c7261e62d2f8b7b870f678a4520d5be81e5815542b39", ""], ["tiff-4.2.0.15-rev3-linux", "2377f48b2ebc2d1628d9f65186c881544c92891312abe478a20d10b85877409a", ""], ["zlib-1.2.11-rev5-linux", "9be5ea85722fc27a8645a9c8a812669d107c68e6baa2ca0740872eaeb6a8b0fc", ""] ], @@ -59,13 +60,14 @@ "./build-linux-x86.sh" ], "custom_install_cmd": [ - "{python} copy_platform_cmakes.py" + "{python}", "copy_platform_cmakes.py" ] }, "Linux-aarch64": { - "package_version": "5.15.2-rev8", - "patch_file": "qt-image-format.patch", + "package_version": "5.15.2-rev9", + "patch_file": "qt-linux.patch", "depends_on_packages": [ + ["OpenSSL-1.1.1t-rev1-linux-aarch64", "f32721bec9c82d1bd7fb244d78d5dc4e2a47e7b808bb36027236ad377e241ea5", ""], ["tiff-4.2.0.15-rev3-linux-aarch64", "429461014b21a530dcad597c2d91072ae39d937a04b7bbbf5c34491c41767f7f", ""], ["zlib-1.2.11-rev5-linux-aarch64", "ce9d1ed2883d77ffc69c7982c078595c1f89ca55ec19d89fe7e6beb05f774775", ""] ], @@ -73,7 +75,7 @@ "./build-linux-aarch64.sh" ], "custom_install_cmd": [ - "{python} copy_platform_cmakes.py" + "{python}", "copy_platform_cmakes.py" ] } } diff --git a/package-system/Qt/docker_build_qt_linux.sh b/package-system/Qt/docker_build_qt_linux.sh index 8c7ecf30..84cc65f1 100755 --- a/package-system/Qt/docker_build_qt_linux.sh +++ b/package-system/Qt/docker_build_qt_linux.sh @@ -10,8 +10,9 @@ # TEMP_FOLDER and TARGET_INSTALL_ROOT get set from the pull_and_build_from_git.py script # Read the dependent 3P library paths from the arguments -TIFF_PACKAGE_DIR=$1 -ZLIB_PACKAGE_DIR=$2 +TIFF_PACKAGE_DIR=/data/workspace/o3de_tiff +ZLIB_PACKAGE_DIR=/data/workspace/o3de_zlib +OPENSSL_PACKAGE_DIR=/data/workspace/o3de_openssl set -euo pipefail @@ -20,6 +21,7 @@ MAKE_FLAGS=-j32 echo "Building Qt5 from source with dependencies on" echo " " $TIFF_PACKAGE_DIR echo " " $ZLIB_PACKAGE_DIR +echo " " $OPENSSL_PACKAGE_DIR # Base the Tiff of the dependent tiff O3DE package (static) @@ -27,11 +29,16 @@ TIFF_PREFIX=$TIFF_PACKAGE_DIR/tiff TIFF_INCDIR=$TIFF_PREFIX/include TIFF_LIBDIR=$TIFF_PREFIX/lib -# We need to also bring in the zlib dependency since Tiff is a static lib dependency +# Bring in the zlib dependency since Tiff is a static lib dependency ZLIB_PREFIX=$ZLIB_PACKAGE_DIR/zlib ZLIB_INCDIR=$ZLIB_PREFIX/include ZLIB_LIBDIR=$ZLIB_PREFIX/lib +# Bring in the openssl dependency based +OPENSSL_PREFIX=$OPENSSL_PACKAGE_DIR/OpenSSL +OPENSSL_INCDIR=$OPENSSL_PREFIX/include +OPENSSL_LIBDIR=$OPENSSL_PREFIX/lib + BUILD_PATH=/data/workspace/build INSTALL_PATH=/data/workspace/qt @@ -64,12 +71,14 @@ echo Configuring Qt... -no-egl \ -qpa xcb \ -xcb-xlib \ + -openssl \ -I $TIFF_INCDIR \ -I $ZLIB_INCDIR \ + -I $OPENSSL_INCDIR \ -L $TIFF_LIBDIR \ -L $ZLIB_LIBDIR \ + -L $OPENSSL_LIBDIR \ -c++std c++1z \ - -openssl \ -fontconfig if [ $? -ne 0 ] then @@ -99,7 +108,7 @@ for qtlib in "${qtarray[@]}"; do echo Installing $qtlib... make module-$qtlib-install_subtargets - if [ ?$ -ne 0 ] + if [ $? -ne 0 ] then echo "Failed installing Qt module $qtlib" exit 1 diff --git a/package-system/Qt/qt-linux.patch b/package-system/Qt/qt-linux.patch new file mode 100644 index 00000000..0e610138 --- /dev/null +++ b/package-system/Qt/qt-linux.patch @@ -0,0 +1,38 @@ +diff --git a/qtbase/src/platformsupport/services/genericunix/qgenericunixservices.cpp b/qtbase/src/platformsupport/services/genericunix/qgenericunixservices.cpp +index b583d636c0..4615ebb126 100644 +--- a/qtbase/src/platformsupport/services/genericunix/qgenericunixservices.cpp ++++ b/qtbase/src/platformsupport/services/genericunix/qgenericunixservices.cpp +@@ -203,8 +203,7 @@ static inline QDBusMessage xdgDesktopPortalOpenFile(const QUrl &url) + // handle_token (s) - A string that will be used as the last element of the @handle. + // writable (b) - Whether to allow the chosen application to write to the file. + +-#ifdef O_PATH +- const int fd = qt_safe_open(QFile::encodeName(url.toLocalFile()), O_PATH); ++ const int fd = qt_safe_open(QFile::encodeName(url.toLocalFile()), O_RDONLY); + if (fd != -1) { + QDBusMessage message = QDBusMessage::createMethodCall(QLatin1String("org.freedesktop.portal.Desktop"), + QLatin1String("/org/freedesktop/portal/desktop"), +@@ -219,9 +218,6 @@ static inline QDBusMessage xdgDesktopPortalOpenFile(const QUrl &url) + + return QDBusConnection::sessionBus().call(message); + } +-#else +- Q_UNUSED(url) +-#endif + + return QDBusMessage::createError(QDBusError::InternalError, qt_error_string()); + } + +diff --git a/qtimageformats/src/imageformats/configure.json b/qtimageformats/src/imageformats/configure.json +index 5b876c3..f2fa1cc 100644 +--- a/qtimageformats/src/imageformats/configure.json ++++ b/qtimageformats/src/imageformats/configure.json +@@ -85,7 +85,7 @@ + }, + "sources": [ + { "type": "pkgConfig", "args": "libtiff-4" }, +- { "libs": "-ltiff" } ++ { "libs": "-ltiff -lz" } + ] + }, + "webp": { diff --git a/package-system/Qt/qt-image-format.patch b/package-system/Qt/qt-mac.patch similarity index 100% rename from package-system/Qt/qt-image-format.patch rename to package-system/Qt/qt-mac.patch diff --git a/package_build_list_host_linux-aarch64.json b/package_build_list_host_linux-aarch64.json index 598db8ed..50c9b583 100644 --- a/package_build_list_host_linux-aarch64.json +++ b/package_build_list_host_linux-aarch64.json @@ -34,7 +34,7 @@ "poly2tri-7f0487a-rev1-linux-aarch64": "package-system/poly2tri/build_package_image.py --platform-name linux-aarch64", "pyside2-5.15.2.1-py3.10-rev4-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/pyside2 --platform-name Linux-aarch64 --clean", "python-3.10.5-rev4-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/python --platform-name Linux-aarch64 --clean", - "qt-5.15.2-rev8-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Qt --platform-name Linux-aarch64 --clean", + "qt-5.15.2-rev9-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Qt --platform-name Linux-aarch64 --clean", "sdformat-13.5.0-rev1-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/sdformat --platform-name Linux-aarch64 --clean", "SPIRVCross-2021.04.29-rev1-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/SPIRVCross --platform-name Linux-aarch64 --clean", "SQLite-3.37.2-rev1-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/sqlite --platform-name Linux-aarch64 --clean", @@ -75,7 +75,7 @@ "poly2tri-7f0487a-rev1-linux-aarch64": "package-system/poly2tri-linux-aarch64", "pyside2-5.15.2.1-py3.10-rev4-linux-aarch64": "package-system/pyside2/temp/pyside2-linux-aarch64", "python-3.10.5-rev4-linux-aarch64": "package-system/python/temp/python-linux-aarch64", - "qt-5.15.2-rev8-linux-aarch64": "package-system/Qt/temp/qt-linux-aarch64", + "qt-5.15.2-rev9-linux-aarch64": "package-system/Qt/temp/qt-linux-aarch64", "sdformat-13.5.0-rev1-linux-aarch64": "package-system/sdformat/temp/sdformat-linux-aarch64", "SPIRVCross-2021.04.29-rev1-linux-aarch64": "package-system/SPIRVCross/temp/SPIRVCross-linux-aarch64", "SQLite-3.37.2-rev1-linux-aarch64": "package-system/sqlite/temp/SQLite-linux-aarch64", diff --git a/package_build_list_host_linux.json b/package_build_list_host_linux.json index b4ae5f1c..3d10297d 100644 --- a/package_build_list_host_linux.json +++ b/package_build_list_host_linux.json @@ -44,7 +44,7 @@ "python-3.10.5-rev4-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/python --platform-name Linux --clean", "python-3.10.5-rev4-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/python --platform-name Linux-aarch64 --clean", "mikkelsen-1.0.0.4-linux": "package-system/mikkelsen/build_package_image.py", - "qt-5.15.2-rev8-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Qt --platform-name Linux --package-root ../../package-system/Qt/temp --clean", + "qt-5.15.2-rev9-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Qt --platform-name Linux --package-root ../../package-system/Qt/temp --clean", "zlib-1.2.11-rev5-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/zlib --platform-name Linux --package-root ../../package-system --clean", "lz4-1.9.4-rev2-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/lz4 --platform-name Linux --package-root ../../package-system/lz4/temp --clean", "expat-2.4.2-rev2-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/expat --platform-name Linux --package-root ../../package-system/expat/temp --clean", @@ -93,7 +93,7 @@ "unwind-1.2.1-linux": "package-system/unwind-linux", "SQLite-3.37.2-rev1-linux": "package-system/SQLite-linux", "xxhash-0.7.4-rev1-multiplatform": "package-system/xxhash-multiplatform", - "qt-5.15.2-rev8-linux": "package-system/Qt/temp/qt-linux", + "qt-5.15.2-rev9-linux": "package-system/Qt/temp/qt-linux", "zlib-1.2.11-rev5-linux": "package-system/zlib-linux", "lz4-1.9.4-rev2-linux": "package-system/lz4/temp/lz4-linux", "expat-2.4.2-rev2-linux": "package-system/expat/temp/expat-linux",