diff options
Diffstat (limited to 'meta/recipes-devtools/cmake/cmake')
-rw-r--r-- | meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch | 44 | ||||
-rw-r--r-- | meta/recipes-devtools/cmake/cmake/0001-CMakeLists.txt-disable-USE_NGHTTP2.patch | 31 | ||||
-rw-r--r-- | meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch (renamed from meta/recipes-devtools/cmake/cmake/cmlibarchive-disable-ext2fs.patch) | 19 | ||||
-rw-r--r-- | meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake | 14 | ||||
-rw-r--r-- | meta/recipes-devtools/cmake/cmake/SDKToolchainConfig.cmake.template | 31 | ||||
-rwxr-xr-x | meta/recipes-devtools/cmake/cmake/cmake-setup.py | 33 | ||||
-rw-r--r-- | meta/recipes-devtools/cmake/cmake/environment.d-cmake.sh | 3 | ||||
-rw-r--r-- | meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch | 77 | ||||
-rw-r--r-- | meta/recipes-devtools/cmake/cmake/support-oe-qt4-tools-names.patch | 54 |
9 files changed, 165 insertions, 141 deletions
diff --git a/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch b/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch new file mode 100644 index 0000000000..d13c367e78 --- /dev/null +++ b/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch @@ -0,0 +1,44 @@ +From 5acfcb2aba1a5641d390558fdf288373f5e39cb5 Mon Sep 17 00:00:00 2001 +From: Cody P Schafer <dev@codyps.com> +Date: Thu, 27 Apr 2017 11:35:05 -0400 +Subject: [PATCH] CMakeDetermineSystem: use oe environment vars to load default + toolchain file in sdk + +Passing the toolchain by: + + - shell aliases does not work if cmake is called by a script + - unconditionally by a wrapper script causes cmake to believe it is + configuring things when it is not (for example, `cmake --build` breaks). + +The OE_CMAKE_TOOLCHAIN_FILE variable is only used as a default if no +toolchain is explicitly specified. + +Setting the CMAKE_TOOLCHAIN_FILE cmake variable is marked as cached +because '-D' options are cache entries themselves. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Cody P Schafer <dev@codyps.com> +Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> + +--- + Modules/CMakeDetermineSystem.cmake | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake +index 2c2c2ac3..fae4f97f 100644 +--- a/Modules/CMakeDetermineSystem.cmake ++++ b/Modules/CMakeDetermineSystem.cmake +@@ -112,6 +112,13 @@ else() + endif() + endif() + ++if(NOT DEFINED CMAKE_TOOLCHAIN_FILE) ++ if(DEFINED ENV{OE_CMAKE_TOOLCHAIN_FILE}) ++ set(CMAKE_TOOLCHAIN_FILE "$ENV{OE_CMAKE_TOOLCHAIN_FILE}" CACHE FILEPATH "toolchain file") ++ message(STATUS "Toolchain file defaulted to '${CMAKE_TOOLCHAIN_FILE}'") ++ endif() ++endif() ++ + # if a toolchain file is used, the user wants to cross compile. + # in this case read the toolchain file and keep the CMAKE_HOST_SYSTEM_* + # variables around so they can be used in CMakeLists.txt. diff --git a/meta/recipes-devtools/cmake/cmake/0001-CMakeLists.txt-disable-USE_NGHTTP2.patch b/meta/recipes-devtools/cmake/cmake/0001-CMakeLists.txt-disable-USE_NGHTTP2.patch new file mode 100644 index 0000000000..d6486cb45f --- /dev/null +++ b/meta/recipes-devtools/cmake/cmake/0001-CMakeLists.txt-disable-USE_NGHTTP2.patch @@ -0,0 +1,31 @@ +From 3fd6082c52a8140db5995afb59fb391f7d5c19d7 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Wed, 28 Dec 2022 17:51:27 +0800 +Subject: [PATCH] CMakeLists.txt: disable USE_NGHTTP2 + +nghttp2 depends on cmake-native to build, to break circular +dependency, disable nghttp2. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + Utilities/cmcurl/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Utilities/cmcurl/CMakeLists.txt b/Utilities/cmcurl/CMakeLists.txt +index f842270b..17b1ce19 100644 +--- a/Utilities/cmcurl/CMakeLists.txt ++++ b/Utilities/cmcurl/CMakeLists.txt +@@ -68,7 +68,7 @@ set(ENABLE_UNIX_SOCKETS OFF CACHE INTERNAL "No curl Unix domain sockets support" + set(HTTP_ONLY OFF CACHE INTERNAL "Curl is not http-only") + set(PICKY_COMPILER OFF CACHE INTERNAL "Enable picky compiler options") + set(USE_LIBIDN2 ON) +-set(USE_NGHTTP2 ON) ++set(USE_NGHTTP2 OFF) + set(USE_NGTCP2 OFF) + set(USE_QUICHE OFF) + set(USE_WIN32_IDN OFF) +-- +2.25.1 + diff --git a/meta/recipes-devtools/cmake/cmake/cmlibarchive-disable-ext2fs.patch b/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch index bf3671259e..d6f7308fe0 100644 --- a/meta/recipes-devtools/cmake/cmake/cmlibarchive-disable-ext2fs.patch +++ b/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch @@ -1,4 +1,10 @@ -Disable use of ext2fs/ext2_fs.h by cmake's internal libarchive copy +From fd9a04c1434e12f21c043385e306e0b52d38d749 Mon Sep 17 00:00:00 2001 +From: Otavio Salvador <otavio@ossystems.com.br> +Date: Thu, 5 Jul 2018 10:28:04 -0300 +Subject: [PATCH] Disable use of ext2fs/ext2_fs.h by cmake's internal + + libarchive copy +Organization: O.S. Systems Software LTDA. We don't want to add a dependency on e2fsprogs-native for cmake-native, and we don't use CPack so just disable this functionality. @@ -6,10 +12,17 @@ and we don't use CPack so just disable this functionality. Upstream-Status: Inappropriate [config] Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> +Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> + +--- + Utilities/cmlibarchive/CMakeLists.txt | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) +diff --git a/Utilities/cmlibarchive/CMakeLists.txt b/Utilities/cmlibarchive/CMakeLists.txt +index bfcaf30..2960683 100644 --- a/Utilities/cmlibarchive/CMakeLists.txt +++ b/Utilities/cmlibarchive/CMakeLists.txt -@@ -237,12 +237,8 @@ LA_CHECK_INCLUDE_FILE("copyfile.h" HAVE_COPYFILE_H) +@@ -682,12 +682,8 @@ LA_CHECK_INCLUDE_FILE("copyfile.h" HAVE_COPYFILE_H) LA_CHECK_INCLUDE_FILE("direct.h" HAVE_DIRECT_H) LA_CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DLFCN_H) LA_CHECK_INCLUDE_FILE("errno.h" HAVE_ERRNO_H) @@ -23,4 +36,4 @@ Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> +SET(HAVE_WORKING_EXT2_IOC_GETFLAGS 0) LA_CHECK_INCLUDE_FILE("fcntl.h" HAVE_FCNTL_H) LA_CHECK_INCLUDE_FILE("grp.h" HAVE_GRP_H) - LA_CHECK_INCLUDE_FILE("inttypes.h" HAVE_INTTYPES_H) + LA_CHECK_INCLUDE_FILE("io.h" HAVE_IO_H) diff --git a/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake b/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake index 60014bbf2b..d6a1e0464c 100644 --- a/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake +++ b/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake @@ -1,18 +1,20 @@ set( CMAKE_SYSTEM_NAME Linux ) set( CMAKE_C_FLAGS $ENV{CFLAGS} CACHE STRING "" FORCE ) set( CMAKE_CXX_FLAGS $ENV{CXXFLAGS} CACHE STRING "" FORCE ) -set( CMAKE ASM_FLAGS ${CMAKE_C_FLAGS} CACHE STRING "" FORCE ) -set( CMAKE_LDFLAGS_FLAGS ${CMAKE_CXX_FLAGS} CACHE STRING "" FORCE ) -set( CMAKE_FIND_ROOT_PATH $ENV{OECORE_TARGET_SYSROOT} $ENV{OECORE_NATIVE_SYSROOT} ) +set( CMAKE_SYSROOT $ENV{OECORE_TARGET_SYSROOT} ) + +set( CMAKE_FIND_ROOT_PATH $ENV{OECORE_TARGET_SYSROOT} ) set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER ) set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) +set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY ) + +set(CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX "$ENV{OE_CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX}") -string(REGEX MATCH "sysroots/([a-zA-Z0-9]+)" CMAKE_SYSTEM_PROCESSOR $ENV{SDKTARGETSYSROOT}) -string(REGEX REPLACE "sysroots/" "" CMAKE_SYSTEM_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR}) +set( CMAKE_SYSTEM_PROCESSOR $ENV{OECORE_TARGET_ARCH} ) # Include the toolchain configuration subscripts -file( GLOB toolchain_config_files "${CMAKE_TOOLCHAIN_FILE}.d/*.cmake" ) +file( GLOB toolchain_config_files "${CMAKE_CURRENT_LIST_FILE}.d/*.cmake" ) foreach(config ${toolchain_config_files}) include(${config}) endforeach() diff --git a/meta/recipes-devtools/cmake/cmake/SDKToolchainConfig.cmake.template b/meta/recipes-devtools/cmake/cmake/SDKToolchainConfig.cmake.template new file mode 100644 index 0000000000..c69569a843 --- /dev/null +++ b/meta/recipes-devtools/cmake/cmake/SDKToolchainConfig.cmake.template @@ -0,0 +1,31 @@ +set(SDK_INSTALL_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../../..") +set(HOST_SYSROOT "${SDK_INSTALL_DIR}/sysroots/@OECORE_SDK_SYS") +set(TARGET_SYSROOT "${SDK_INSTALL_DIR}/sysroots/@OECORE_TARGET_SYS") +set(HOST_BIN "${HOST_SYSROOT}/usr/bin") +set(TOOLCHAIN_NAME "@OECORE_TARGET_ALIAS") +set(GCC_DIR "${HOST_BIN}/${TOOLCHAIN_NAME}") + +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR "@OECORE_TARGET_ARCH") + +set(CMAKE_C_COMPILER "${GCC_DIR}/${TOOLCHAIN_NAME}-gcc") +set(CMAKE_CXX_COMPILER "${GCC_DIR}/${TOOLCHAIN_NAME}-g++") + +set(ARCH_FLAGS "@OECORE_TUNE_CCARGS") +set(CMAKE_C_FLAGS "${ARCH_FLAGS}" CACHE STRING "" FORCE ) +set(CMAKE_CXX_FLAGS "${ARCH_FLAGS}" CACHE STRING "" FORCE ) +set(CMAKE_ASM_FLAGS ${CMAKE_C_FLAGS} CACHE STRING "" FORCE ) +set(CMAKE_LDFLAGS_FLAGS ${CMAKE_C_FLAGS} CACHE STRING "" FORCE ) + +set(CMAKE_SYSROOT "${TARGET_SYSROOT}") + +set(CMAKE_FIND_ROOT_PATH "${TARGET_SYSROOT}" ) + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER ) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY ) + +set(CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX "") + +set(CMAKE_PROGRAM_PATH "${HOST_SYSROOT}/usr/bin" CACHE STRING "" FORCE) diff --git a/meta/recipes-devtools/cmake/cmake/cmake-setup.py b/meta/recipes-devtools/cmake/cmake/cmake-setup.py new file mode 100755 index 0000000000..af587a44cc --- /dev/null +++ b/meta/recipes-devtools/cmake/cmake/cmake-setup.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 + +import os +import string +import sys + +class Template(string.Template): + delimiter = "@" + +class Environ(): + def __getitem__(self, name): + if name == "OECORE_SDK_SYS": + return os.path.basename(os.environ["OECORE_NATIVE_SYSROOT"]) + elif name == "OECORE_TARGET_SYS": + return os.path.basename(os.environ["OECORE_TARGET_SYSROOT"]) + elif name == "OECORE_TARGET_ALIAS": + return os.path.basename(os.environ["TARGET_PREFIX"].strip("-")) + else: + return os.environ[name] + +try: + sysroot = os.environ['OECORE_NATIVE_SYSROOT'] +except KeyError: + print("Not in environment setup, bailing") + sys.exit(1) + +template_file = os.path.join(sysroot, 'usr/share/cmake/SDKToolchainConfig.cmake.template') +cross_file = os.path.join(sysroot, 'usr/share/cmake/%s-toolchain.cmake' % (os.path.basename(os.environ["OECORE_TARGET_SYSROOT"]))) +with open(template_file) as in_file: + template = in_file.read() + output = Template(template).substitute(Environ()) + with open(cross_file, "w") as out_file: + out_file.write(output) diff --git a/meta/recipes-devtools/cmake/cmake/environment.d-cmake.sh b/meta/recipes-devtools/cmake/cmake/environment.d-cmake.sh index 0eb56b66fa..7bdb19fb6c 100644 --- a/meta/recipes-devtools/cmake/cmake/environment.d-cmake.sh +++ b/meta/recipes-devtools/cmake/cmake/environment.d-cmake.sh @@ -1 +1,2 @@ -alias cmake="cmake -DCMAKE_TOOLCHAIN_FILE=$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake" +export OE_CMAKE_TOOLCHAIN_FILE="$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake" +export OE_CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX="`echo $OECORE_BASELIB | sed -e s/lib//`" diff --git a/meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch b/meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch deleted file mode 100644 index 80fc277fa2..0000000000 --- a/meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch +++ /dev/null @@ -1,77 +0,0 @@ -Fail silently if system Qt installation is broken - -Fixes a regression in behaviour from 2.8.10 to 2.8.11 resulting in the -following error if the system Qt installation is broken: - -CMake Error at Modules/FindQt4.cmake:1028 (set_property): - set_property could not find TARGET Qt4::QtCore. Perhaps it has not yet - been created. -Call Stack (most recent call first): - Tests/RunCMake/CMakeLists.txt:79 (find_package) - -Upstream-Status: Pending - -Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> - -The patch was slightly adapted in order to match cmake 3.2.2: -Another set_property was introduced which had to be included -within the if(QT_QTCORE_FOUND) statement. - -Signed-off-by: Moritz Blume <moritz.blume@bmw-carit.de> ---- - Modules/FindQt4.cmake | 39 ++++++++++++++++++++------------------- - 1 file changed, 20 insertions(+), 19 deletions(-) - -diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake -index 6704769..9048e35 100644 ---- a/Modules/FindQt4.cmake -+++ b/Modules/FindQt4.cmake -@@ -1000,25 +1000,26 @@ if (QT_QMAKE_EXECUTABLE AND - endif() - endmacro() - -- -- # Set QT_xyz_LIBRARY variable and add -- # library include path to QT_INCLUDES -- _QT4_ADJUST_LIB_VARS(QtCore) -- set_property(TARGET Qt4::QtCore APPEND PROPERTY -- INTERFACE_INCLUDE_DIRECTORIES -- "${QT_MKSPECS_DIR}/default" -- ${QT_INCLUDE_DIR} -- ) -- set_property(TARGET Qt4::QtCore APPEND PROPERTY -- INTERFACE_COMPILE_DEFINITIONS -- $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG> -- ) -- set_property(TARGET Qt4::QtCore PROPERTY -- INTERFACE_QT_MAJOR_VERSION 4 -- ) -- set_property(TARGET Qt4::QtCore APPEND PROPERTY -- COMPATIBLE_INTERFACE_STRING QT_MAJOR_VERSION -- ) -+ if(QT_QTCORE_FOUND) -+ # Set QT_xyz_LIBRARY variable and add -+ # library include path to QT_INCLUDES -+ _QT4_ADJUST_LIB_VARS(QtCore) -+ set_property(TARGET Qt4::QtCore APPEND PROPERTY -+ INTERFACE_INCLUDE_DIRECTORIES -+ "${QT_MKSPECS_DIR}/default" -+ ${QT_INCLUDE_DIR} -+ ) -+ set_property(TARGET Qt4::QtCore APPEND PROPERTY -+ INTERFACE_COMPILE_DEFINITIONS -+ $<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG> -+ ) -+ set_property(TARGET Qt4::QtCore PROPERTY -+ INTERFACE_QT_MAJOR_VERSION 4 -+ ) -+ set_property(TARGET Qt4::QtCore APPEND PROPERTY -+ COMPATIBLE_INTERFACE_STRING QT_MAJOR_VERSION -+ ) -+ endif() - - foreach(QT_MODULE ${QT_MODULES}) - _QT4_ADJUST_LIB_VARS(${QT_MODULE}) --- -1.9.1 - diff --git a/meta/recipes-devtools/cmake/cmake/support-oe-qt4-tools-names.patch b/meta/recipes-devtools/cmake/cmake/support-oe-qt4-tools-names.patch deleted file mode 100644 index 15cbca89d8..0000000000 --- a/meta/recipes-devtools/cmake/cmake/support-oe-qt4-tools-names.patch +++ /dev/null @@ -1,54 +0,0 @@ -cmake: support OpenEmbedded Qt4 tool binary names - -The FindQt4 module looks for Qt4 binaries to be able to gather the -paths used for compilation and also to be using during other processes -(translation update, translation binary generating and like) however -OpenEmbedded has renamed those to allow old QMake to be used in -parallel with the current one. This patch adds support for the -OpenEmbedded specific binary names. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> - -The patch was slightly adapted in order to match cmake 3.2.2: -Instead of find_program, _find_qt4_program is now used. - -Signed-off-by: Moritz Blume <moritz.blume@bmw-carit.de> ---- - Modules/FindQt4.cmake | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake -index 11091b5..6704769 100644 ---- a/Modules/FindQt4.cmake -+++ b/Modules/FindQt4.cmake -@@ -522,7 +522,7 @@ endfunction() - - set(QT4_INSTALLED_VERSION_TOO_OLD FALSE) - --set(_QT4_QMAKE_NAMES qmake qmake4 qmake-qt4 qmake-mac) -+set(_QT4_QMAKE_NAMES qmake qmake2 qmake4 qmake-qt4 qmake-mac) - _qt4_find_qmake("${_QT4_QMAKE_NAMES}" QT_QMAKE_EXECUTABLE QTVERSION) - - if (QT_QMAKE_EXECUTABLE AND -@@ -1148,12 +1148,12 @@ if (QT_QMAKE_EXECUTABLE AND - _find_qt4_program(QT_MOC_EXECUTABLE Qt4::moc moc-qt4 moc4 moc) - _find_qt4_program(QT_UIC_EXECUTABLE Qt4::uic uic-qt4 uic4 uic) - _find_qt4_program(QT_UIC3_EXECUTABLE Qt4::uic3 uic3) -- _find_qt4_program(QT_RCC_EXECUTABLE Qt4::rcc rcc) -- _find_qt4_program(QT_DBUSCPP2XML_EXECUTABLE Qt4::qdbuscpp2xml qdbuscpp2xml) -- _find_qt4_program(QT_DBUSXML2CPP_EXECUTABLE Qt4::qdbusxml2cpp qdbusxml2cpp) -+ _find_qt4_program(QT_RCC_EXECUTABLE Qt4::rcc rcc4 rcc) -+ _find_qt4_program(QT_DBUSCPP2XML_EXECUTABLE Qt4::qdbuscpp2xml qdbuscpp2xml4 qdbuscpp2xml) -+ _find_qt4_program(QT_DBUSXML2CPP_EXECUTABLE Qt4::qdbusxml2cpp qdbusxml2cpp4 qdbusxml2cpp) - _find_qt4_program(QT_LUPDATE_EXECUTABLE Qt4::lupdate lupdate-qt4 lupdate4 lupdate) - _find_qt4_program(QT_LRELEASE_EXECUTABLE Qt4::lrelease lrelease-qt4 lrelease4 lrelease) -- _find_qt4_program(QT_QCOLLECTIONGENERATOR_EXECUTABLE Qt4::qcollectiongenerator qcollectiongenerator-qt4 qcollectiongenerator) -+ _find_qt4_program(QT_QCOLLECTIONGENERATOR_EXECUTABLE Qt4::qcollectiongenerator qcollectiongenerator-qt4 qcollectiongenerator qcollectiongenerator4) - _find_qt4_program(QT_DESIGNER_EXECUTABLE Qt4::designer designer-qt4 designer4 designer) - _find_qt4_program(QT_LINGUIST_EXECUTABLE Qt4::linguist linguist-qt4 linguist4 linguist) - --- -1.9.1 - |